Binary files pencil_backup/bezierarea.o and pencil_dev/bezierarea.o differ
Binary files pencil_backup/beziercurve.o and pencil_dev/beziercurve.o differ
Binary files pencil_backup/bitmapimage.o and pencil_dev/bitmapimage.o differ
Binary files pencil_backup/blur.o and pencil_dev/blur.o differ
Binary files pencil_backup/colourref.o and pencil_dev/colourref.o differ
Binary files pencil_backup/editor.o and pencil_dev/editor.o differ
Binary files pencil_backup/flash.o and pencil_dev/flash.o differ
Binary files pencil_backup/gradient.o and pencil_dev/gradient.o differ
Binary files pencil_backup/icons/onionInbetween.png and pencil_dev/icons/onionInbetween.png differ
Binary files pencil_backup/icons/onionNext.png and pencil_dev/icons/onionNext.png differ
Binary files pencil_backup/icons/onionPrev.png and pencil_dev/icons/onionPrev.png differ
Binary files pencil_backup/icons/onionPrev_test.xcf and pencil_dev/icons/onionPrev_test.xcf differ
Binary files pencil_backup/icons/onionStraightAhead.png and pencil_dev/icons/onionStraightAhead.png differ
Binary files pencil_backup/layerbitmap.o and pencil_dev/layerbitmap.o differ
Binary files pencil_backup/layercamera.o and pencil_dev/layercamera.o differ
Binary files pencil_backup/layerimage.o and pencil_dev/layerimage.o differ
Binary files pencil_backup/layer.o and pencil_dev/layer.o differ
Binary files pencil_backup/layersound.o and pencil_dev/layersound.o differ
Binary files pencil_backup/layervector.o and pencil_dev/layervector.o differ
Binary files pencil_backup/linux.o and pencil_dev/linux.o differ
Binary files pencil_backup/main.o and pencil_dev/main.o differ
Binary files pencil_backup/mainwindow.o and pencil_dev/mainwindow.o differ
diff -rupN pencil_backup/Makefile pencil_dev/Makefile
--- pencil_backup/Makefile    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/Makefile    2009-09-28 18:57:52.000000000 -0500
@@ -0,0 +1,584 @@
+#############################################################################
+# Makefile for building: Pencil
+# Generated by qmake (2.01a) (Qt 4.5.0) on: Mon Sep 28 18:57:52 2009
+# Project:  pencil.pro
+# Template: app
+# Command: /usr/bin/qmake -unix -o Makefile pencil.pro
+#############################################################################
+
+####### Compiler, tools and options
+
+CC            = gcc
+CXX           = g++
+DEFINES       = -DQT_NO_DEBUG -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+CFLAGS        = -pipe -O2 -D_REENTRANT -Wall -W $(DEFINES)
+CXXFLAGS      = -pipe -O2 -D_REENTRANT -Wall -W $(DEFINES)
+INCPATH       = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4 -I. -Isrc -Isrc/external/flash -Isrc/external/linux -Isrc/external/macosx -Isrc/external/win32 -Isrc/graphics -Isrc/graphics/bitmap -Isrc/graphics/vector -Isrc/interface -Isrc/structure -I. -Iliblinux -I/usr/X11R6/include -I. -I.
+LINK          = g++
+LFLAGS        = -Wl,-O1
+LIBS          = $(SUBLIBS)  -L/usr/lib -L/usr/X11R6/lib -Lliblinux -lming -lpng -lQtXml -lQtOpenGL -lQtGui -lQtCore -lGLU -lGL -lpthread
+AR            = ar cqs
+RANLIB        =
+QMAKE         = /usr/bin/qmake
+TAR           = tar -cf
+COMPRESS      = gzip -9f
+COPY          = cp -f
+SED           = sed
+COPY_FILE     = $(COPY)
+COPY_DIR      = $(COPY) -r
+INSTALL_FILE  = install -m 644 -p
+INSTALL_DIR   = $(COPY_DIR)
+INSTALL_PROGRAM = install -m 755 -p
+DEL_FILE      = rm -f
+SYMLINK       = ln -sf
+DEL_DIR       = rmdir
+MOVE          = mv -f
+CHK_DIR_EXISTS= test -d
+MKDIR         = mkdir -p
+
+####### Output directory
+
+OBJECTS_DIR   = ./
+
+####### Files
+
+SOURCES       = src/external/flash/flash.cpp \
+        src/graphics/bitmap/blur.cpp \
+        src/graphics/bitmap/bitmapimage.cpp \
+        src/graphics/vector/bezierarea.cpp \
+        src/graphics/vector/beziercurve.cpp \
+        src/graphics/vector/colourref.cpp \
+        src/graphics/vector/gradient.cpp \
+        src/graphics/vector/vectorimage.cpp \
+        src/graphics/vector/vertexref.cpp \
+        src/structure/layer.cpp \
+        src/structure/layerbitmap.cpp \
+        src/structure/layercamera.cpp \
+        src/structure/layerimage.cpp \
+        src/structure/layersound.cpp \
+        src/structure/layervector.cpp \
+        src/structure/object.cpp \
+        src/interface/editor.cpp \
+        src/interface/mainwindow.cpp \
+        src/interface/palette.cpp \
+        src/interface/preferences.cpp \
+        src/interface/scribblearea.cpp \
+        src/interface/timeline.cpp \
+        src/interface/timecontrols.cpp \
+        src/interface/toolset.cpp \
+        src/main.cpp \
+        src/external/linux/linux.cpp moc_layer.cpp \
+        moc_layerbitmap.cpp \
+        moc_layercamera.cpp \
+        moc_layerimage.cpp \
+        moc_layersound.cpp \
+        moc_layervector.cpp \
+        moc_object.cpp \
+        moc_editor.cpp \
+        moc_mainwindow.cpp \
+        moc_palette.cpp \
+        moc_preferences.cpp \
+        moc_scribblearea.cpp \
+        moc_timeline.cpp \
+        moc_timecontrols.cpp \
+        moc_toolset.cpp \
+        qrc_pencil.cpp
+OBJECTS       = flash.o \
+        blur.o \
+        bitmapimage.o \
+        bezierarea.o \
+        beziercurve.o \
+        colourref.o \
+        gradient.o \
+        vectorimage.o \
+        vertexref.o \
+        layer.o \
+        layerbitmap.o \
+        layercamera.o \
+        layerimage.o \
+        layersound.o \
+        layervector.o \
+        object.o \
+        editor.o \
+        mainwindow.o \
+        palette.o \
+        preferences.o \
+        scribblearea.o \
+        timeline.o \
+        timecontrols.o \
+        toolset.o \
+        main.o \
+        linux.o \
+        moc_layer.o \
+        moc_layerbitmap.o \
+        moc_layercamera.o \
+        moc_layerimage.o \
+        moc_layersound.o \
+        moc_layervector.o \
+        moc_object.o \
+        moc_editor.o \
+        moc_mainwindow.o \
+        moc_palette.o \
+        moc_preferences.o \
+        moc_scribblearea.o \
+        moc_timeline.o \
+        moc_timecontrols.o \
+        moc_toolset.o \
+        qrc_pencil.o
+DIST          = /usr/share/qt4/mkspecs/common/g++.conf \
+        /usr/share/qt4/mkspecs/common/unix.conf \
+        /usr/share/qt4/mkspecs/common/linux.conf \
+        /usr/share/qt4/mkspecs/qconfig.pri \
+        /usr/share/qt4/mkspecs/features/qt_functions.prf \
+        /usr/share/qt4/mkspecs/features/qt_config.prf \
+        /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+        /usr/share/qt4/mkspecs/features/default_pre.prf \
+        /usr/share/qt4/mkspecs/features/release.prf \
+        /usr/share/qt4/mkspecs/features/default_post.prf \
+        /usr/share/qt4/mkspecs/features/qt.prf \
+        /usr/share/qt4/mkspecs/features/unix/opengl.prf \
+        /usr/share/qt4/mkspecs/features/unix/thread.prf \
+        /usr/share/qt4/mkspecs/features/moc.prf \
+        /usr/share/qt4/mkspecs/features/warn_on.prf \
+        /usr/share/qt4/mkspecs/features/resources.prf \
+        /usr/share/qt4/mkspecs/features/uic.prf \
+        /usr/share/qt4/mkspecs/features/yacc.prf \
+        /usr/share/qt4/mkspecs/features/lex.prf \
+        pencil.pro
+QMAKE_TARGET  = Pencil
+DESTDIR       =
+TARGET        = Pencil
+
+first: all
+####### Implicit rules
+
+.SUFFIXES: .o .c .cpp .cc .cxx .C
+
+.cpp.o:
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cc.o:
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cxx.o:
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.C.o:
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.c.o:
+    $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
+
+####### Build rules
+
+all: Makefile $(TARGET)
+
+$(TARGET):  $(OBJECTS)  
+    $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+Makefile: pencil.pro  /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/g++.conf \
+        /usr/share/qt4/mkspecs/common/unix.conf \
+        /usr/share/qt4/mkspecs/common/linux.conf \
+        /usr/share/qt4/mkspecs/qconfig.pri \
+        /usr/share/qt4/mkspecs/features/qt_functions.prf \
+        /usr/share/qt4/mkspecs/features/qt_config.prf \
+        /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+        /usr/share/qt4/mkspecs/features/default_pre.prf \
+        /usr/share/qt4/mkspecs/features/release.prf \
+        /usr/share/qt4/mkspecs/features/default_post.prf \
+        /usr/share/qt4/mkspecs/features/qt.prf \
+        /usr/share/qt4/mkspecs/features/unix/opengl.prf \
+        /usr/share/qt4/mkspecs/features/unix/thread.prf \
+        /usr/share/qt4/mkspecs/features/moc.prf \
+        /usr/share/qt4/mkspecs/features/warn_on.prf \
+        /usr/share/qt4/mkspecs/features/resources.prf \
+        /usr/share/qt4/mkspecs/features/uic.prf \
+        /usr/share/qt4/mkspecs/features/yacc.prf \
+        /usr/share/qt4/mkspecs/features/lex.prf \
+        /usr/lib/libQtXml.prl \
+        /usr/lib/libQtOpenGL.prl \
+        /usr/lib/libQtGui.prl \
+        /usr/lib/libQtCore.prl
+    $(QMAKE) -unix -o Makefile pencil.pro
+/usr/share/qt4/mkspecs/common/g++.conf:
+/usr/share/qt4/mkspecs/common/unix.conf:
+/usr/share/qt4/mkspecs/common/linux.conf:
+/usr/share/qt4/mkspecs/qconfig.pri:
+/usr/share/qt4/mkspecs/features/qt_functions.prf:
+/usr/share/qt4/mkspecs/features/qt_config.prf:
+/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
+/usr/share/qt4/mkspecs/features/default_pre.prf:
+/usr/share/qt4/mkspecs/features/release.prf:
+/usr/share/qt4/mkspecs/features/default_post.prf:
+/usr/share/qt4/mkspecs/features/qt.prf:
+/usr/share/qt4/mkspecs/features/unix/opengl.prf:
+/usr/share/qt4/mkspecs/features/unix/thread.prf:
+/usr/share/qt4/mkspecs/features/moc.prf:
+/usr/share/qt4/mkspecs/features/warn_on.prf:
+/usr/share/qt4/mkspecs/features/resources.prf:
+/usr/share/qt4/mkspecs/features/uic.prf:
+/usr/share/qt4/mkspecs/features/yacc.prf:
+/usr/share/qt4/mkspecs/features/lex.prf:
+/usr/lib/libQtXml.prl:
+/usr/lib/libQtOpenGL.prl:
+/usr/lib/libQtGui.prl:
+/usr/lib/libQtCore.prl:
+qmake:  FORCE
+    @$(QMAKE) -unix -o Makefile pencil.pro
+
+dist:
+    @$(CHK_DIR_EXISTS) .tmp/Pencil1.0.0 || $(MKDIR) .tmp/Pencil1.0.0
+    $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/Pencil1.0.0/ && $(COPY_FILE) --parents src/interfaces.h src/external/flash/flash.h src/graphics/bitmap/bitmapimage.h src/graphics/vector/bezierarea.h src/graphics/vector/beziercurve.h src/graphics/vector/colourref.h src/graphics/vector/gradient.h src/graphics/vector/vectorimage.h src/graphics/vector/vertexref.h src/structure/layer.h src/structure/layerbitmap.h src/structure/layercamera.h src/structure/layerimage.h src/structure/layersound.h src/structure/layervector.h src/structure/object.h src/interface/editor.h src/interface/mainwindow.h src/interface/palette.h src/interface/preferences.h src/interface/scribblearea.h src/interface/timeline.h src/interface/timecontrols.h src/interface/toolset.h .tmp/Pencil1.0.0/ && $(COPY_FILE) --parents pencil.qrc .tmp/Pencil1.0.0/ && $(COPY_FILE) --parents src/external/flash/flash.cpp src/graphics/bitmap/blur.cpp src/graphics/bitmap/bitmapimage.cpp src/graphics/vector/bezierarea.cpp src/graphics/vector/beziercurve.cpp src/graphics/vector/colourref.cpp src/graphics/vector/gradient.cpp src/graphics/vector/vectorimage.cpp src/graphics/vector/vertexref.cpp src/structure/layer.cpp src/structure/layerbitmap.cpp src/structure/layercamera.cpp src/structure/layerimage.cpp src/structure/layersound.cpp src/structure/layervector.cpp src/structure/object.cpp src/interface/editor.cpp src/interface/mainwindow.cpp src/interface/palette.cpp src/interface/preferences.cpp src/interface/scribblearea.cpp src/interface/timeline.cpp src/interface/timecontrols.cpp src/interface/toolset.cpp src/main.cpp src/external/linux/linux.cpp .tmp/Pencil1.0.0/ && (cd `dirname .tmp/Pencil1.0.0` && $(TAR) Pencil1.0.0.tar Pencil1.0.0 && $(COMPRESS) Pencil1.0.0.tar) && $(MOVE) `dirname .tmp/Pencil1.0.0`/Pencil1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/Pencil1.0.0
+
+
+clean:compiler_clean
+    -$(DEL_FILE) $(OBJECTS)
+    -$(DEL_FILE) *~ core *.core
+
+
+####### Sub-libraries
+
+distclean: clean
+    -$(DEL_FILE) $(TARGET)
+    -$(DEL_FILE) Makefile
+
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+compiler_moc_header_make_all: moc_layer.cpp moc_layerbitmap.cpp moc_layercamera.cpp moc_layerimage.cpp moc_layersound.cpp moc_layervector.cpp moc_object.cpp moc_editor.cpp moc_mainwindow.cpp moc_palette.cpp moc_preferences.cpp moc_scribblearea.cpp moc_timeline.cpp moc_timecontrols.cpp moc_toolset.cpp
+compiler_moc_header_clean:
+    -$(DEL_FILE) moc_layer.cpp moc_layerbitmap.cpp moc_layercamera.cpp moc_layerimage.cpp moc_layersound.cpp moc_layervector.cpp moc_object.cpp moc_editor.cpp moc_mainwindow.cpp moc_palette.cpp moc_preferences.cpp moc_scribblearea.cpp moc_timeline.cpp moc_timecontrols.cpp moc_toolset.cpp
+moc_layer.cpp: src/structure/layer.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layer.h -o moc_layer.cpp
+
+moc_layerbitmap.cpp: src/structure/layerimage.h \
+        src/structure/layer.h \
+        src/structure/layerbitmap.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layerbitmap.h -o moc_layerbitmap.cpp
+
+moc_layercamera.cpp: src/structure/layerimage.h \
+        src/structure/layer.h \
+        src/structure/layercamera.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layercamera.h -o moc_layercamera.cpp
+
+moc_layerimage.cpp: src/structure/layer.h \
+        src/structure/layerimage.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layerimage.h -o moc_layerimage.cpp
+
+moc_layersound.cpp: src/structure/layerimage.h \
+        src/structure/layer.h \
+        src/structure/layersound.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layersound.h -o moc_layersound.cpp
+
+moc_layervector.cpp: src/structure/layerimage.h \
+        src/structure/layer.h \
+        src/structure/layervector.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layervector.h -o moc_layervector.cpp
+
+moc_object.cpp: src/structure/layer.h \
+        src/structure/layerbitmap.h \
+        src/structure/layerimage.h \
+        src/structure/layervector.h \
+        src/structure/object.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/object.h -o moc_object.cpp
+
+moc_editor.cpp: src/interface/timeline.h \
+        src/interface/toolset.h \
+        src/interface/scribblearea.h \
+        src/interface/preferences.h \
+        src/interface/palette.h \
+        src/interface/editor.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/editor.h -o moc_editor.cpp
+
+moc_mainwindow.cpp: src/interface/editor.h \
+        src/interface/timeline.h \
+        src/interface/toolset.h \
+        src/interface/scribblearea.h \
+        src/interface/preferences.h \
+        src/interface/palette.h \
+        src/interface/mainwindow.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/mainwindow.h -o moc_mainwindow.cpp
+
+moc_palette.cpp: src/interface/toolset.h \
+        src/interface/palette.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/palette.h -o moc_palette.cpp
+
+moc_preferences.cpp: src/interface/preferences.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/preferences.h -o moc_preferences.cpp
+
+moc_scribblearea.cpp: src/interface/scribblearea.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/scribblearea.h -o moc_scribblearea.cpp
+
+moc_timeline.cpp: src/interface/toolset.h \
+        src/interface/timeline.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/timeline.h -o moc_timeline.cpp
+
+moc_timecontrols.cpp: src/interface/timecontrols.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/timecontrols.h -o moc_timecontrols.cpp
+
+moc_toolset.cpp: src/interface/toolset.h
+    /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/toolset.h -o moc_toolset.cpp
+
+compiler_rcc_make_all: qrc_pencil.cpp
+compiler_rcc_clean:
+    -$(DEL_FILE) qrc_pencil.cpp
+qrc_pencil.cpp: pencil.qrc \
+        background/weave.jpg \
+        background/dots.png \
+        icons/select.png \
+        icons/pen.png \
+        icons/brush.png \
+        icons/bucketTool.png \
+        icons/add.png \
+        icons/polyline.png \
+        icons/arrow.png \
+        icons/logo.png \
+        icons/layer-sound.png \
+        icons/eraser2.png \
+        icons/move.png \
+        icons/onionStraightAhead.png \
+        icons/prefs-files.png \
+        icons/icon.png \
+        icons/prefstimeline.png \
+        icons/aqua.png \
+        icons/eyedropper.png \
+        icons/smudge.png \
+        icons/layer-vector.png \
+        icons/magnify.png \
+        icons/pencil2.png \
+        icons/thinlines5.png \
+        icons/layer-bitmap.png \
+        icons/onionInbetween.png \
+        icons/house.png \
+        icons/hand.png \
+        icons/bucket.png \
+        icons/prefspencil.png \
+        icons/clear.png \
+        icons/mirror.png \
+        icons/layer-camera.png \
+        icons/eraser.png \
+        icons/outlines5.png \
+        icons/remove.png \
+        icons/controls/separator.png \
+        icons/controls/play.png \
+        icons/controls/sound.png \
+        icons/controls/loop.png
+    /usr/bin/rcc -name pencil pencil.qrc -o qrc_pencil.cpp
+
+compiler_image_collection_make_all: qmake_image_collection.cpp
+compiler_image_collection_clean:
+    -$(DEL_FILE) qmake_image_collection.cpp
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_uic_make_all:
+compiler_uic_clean:
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_header_clean compiler_rcc_clean
+
+####### Compile
+
+flash.o: src/external/flash/flash.cpp src/external/flash/flash.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o flash.o src/external/flash/flash.cpp
+
+blur.o: src/graphics/bitmap/blur.cpp src/graphics/bitmap/blur.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o blur.o src/graphics/bitmap/blur.cpp
+
+bitmapimage.o: src/graphics/bitmap/bitmapimage.cpp src/graphics/bitmap/bitmapimage.h \
+        src/graphics/bitmap/blur.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o bitmapimage.o src/graphics/bitmap/bitmapimage.cpp
+
+bezierarea.o: src/graphics/vector/bezierarea.cpp src/graphics/vector/bezierarea.h \
+        src/graphics/vector/vertexref.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o bezierarea.o src/graphics/vector/bezierarea.cpp
+
+beziercurve.o: src/graphics/vector/beziercurve.cpp src/graphics/vector/beziercurve.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o beziercurve.o src/graphics/vector/beziercurve.cpp
+
+colourref.o: src/graphics/vector/colourref.cpp src/graphics/vector/colourref.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o colourref.o src/graphics/vector/colourref.cpp
+
+gradient.o: src/graphics/vector/gradient.cpp src/graphics/vector/gradient.h \
+        src/graphics/vector/vectorimage.h \
+        src/graphics/vector/bezierarea.h \
+        src/graphics/vector/vertexref.h \
+        src/graphics/vector/beziercurve.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o gradient.o src/graphics/vector/gradient.cpp
+
+vectorimage.o: src/graphics/vector/vectorimage.cpp src/graphics/vector/vectorimage.h \
+        src/graphics/vector/bezierarea.h \
+        src/graphics/vector/vertexref.h \
+        src/graphics/vector/beziercurve.h \
+        src/graphics/vector/gradient.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o vectorimage.o src/graphics/vector/vectorimage.cpp
+
+vertexref.o: src/graphics/vector/vertexref.cpp src/graphics/vector/vertexref.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o vertexref.o src/graphics/vector/vertexref.cpp
+
+layer.o: src/structure/layer.cpp src/structure/layer.h \
+        src/structure/object.h \
+        src/structure/layerbitmap.h \
+        src/structure/layerimage.h \
+        src/structure/layervector.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layer.o src/structure/layer.cpp
+
+layerbitmap.o: src/structure/layerbitmap.cpp src/structure/layerbitmap.h \
+        src/structure/layerimage.h \
+        src/structure/layer.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layerbitmap.o src/structure/layerbitmap.cpp
+
+layercamera.o: src/structure/layercamera.cpp src/structure/layercamera.h \
+        src/structure/layerimage.h \
+        src/structure/layer.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layercamera.o src/structure/layercamera.cpp
+
+layerimage.o: src/structure/layerimage.cpp src/structure/layerimage.h \
+        src/structure/layer.h \
+        src/structure/object.h \
+        src/structure/layerbitmap.h \
+        src/structure/layervector.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layerimage.o src/structure/layerimage.cpp
+
+layersound.o: src/structure/layersound.cpp src/structure/layersound.h \
+        src/structure/layerimage.h \
+        src/structure/layer.h \
+        src/structure/object.h \
+        src/structure/layerbitmap.h \
+        src/structure/layervector.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layersound.o src/structure/layersound.cpp
+
+layervector.o: src/structure/layervector.cpp src/structure/layervector.h \
+        src/structure/layerimage.h \
+        src/structure/layer.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layervector.o src/structure/layervector.cpp
+
+object.o: src/structure/object.cpp src/structure/object.h \
+        src/structure/layer.h \
+        src/structure/layerbitmap.h \
+        src/structure/layerimage.h \
+        src/structure/layervector.h \
+        src/structure/layersound.h \
+        src/structure/layercamera.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o object.o src/structure/object.cpp
+
+editor.o: src/interface/editor.cpp src/interface/editor.h \
+        src/interface/timeline.h \
+        src/interface/toolset.h \
+        src/interface/scribblearea.h \
+        src/interface/preferences.h \
+        src/interface/palette.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o editor.o src/interface/editor.cpp
+
+mainwindow.o: src/interface/mainwindow.cpp src/interface/editor.h \
+        src/interface/timeline.h \
+        src/interface/toolset.h \
+        src/interface/scribblearea.h \
+        src/interface/preferences.h \
+        src/interface/palette.h \
+        src/interface/mainwindow.h \
+        src/interfaces.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o src/interface/mainwindow.cpp
+
+palette.o: src/interface/palette.cpp src/interface/palette.h \
+        src/interface/toolset.h \
+        src/interface/editor.h \
+        src/interface/timeline.h \
+        src/interface/scribblearea.h \
+        src/interface/preferences.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o palette.o src/interface/palette.cpp
+
+preferences.o: src/interface/preferences.cpp src/interface/preferences.h \
+        src/interface/scribblearea.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o preferences.o src/interface/preferences.cpp
+
+scribblearea.o: src/interface/scribblearea.cpp src/interface/scribblearea.h \
+        src/interface/editor.h \
+        src/interface/timeline.h \
+        src/interface/toolset.h \
+        src/interface/preferences.h \
+        src/interface/palette.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o scribblearea.o src/interface/scribblearea.cpp
+
+timeline.o: src/interface/timeline.cpp src/interface/timeline.h \
+        src/interface/toolset.h \
+        src/interface/editor.h \
+        src/interface/scribblearea.h \
+        src/interface/preferences.h \
+        src/interface/palette.h \
+        src/interface/timecontrols.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o timeline.o src/interface/timeline.cpp
+
+timecontrols.o: src/interface/timecontrols.cpp src/interface/timecontrols.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o timecontrols.o src/interface/timecontrols.cpp
+
+toolset.o: src/interface/toolset.cpp src/interface/toolset.h
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o toolset.o src/interface/toolset.cpp
+
+main.o: src/main.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o src/main.cpp
+
+linux.o: src/external/linux/linux.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o linux.o src/external/linux/linux.cpp
+
+moc_layer.o: moc_layer.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layer.o moc_layer.cpp
+
+moc_layerbitmap.o: moc_layerbitmap.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layerbitmap.o moc_layerbitmap.cpp
+
+moc_layercamera.o: moc_layercamera.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layercamera.o moc_layercamera.cpp
+
+moc_layerimage.o: moc_layerimage.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layerimage.o moc_layerimage.cpp
+
+moc_layersound.o: moc_layersound.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layersound.o moc_layersound.cpp
+
+moc_layervector.o: moc_layervector.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layervector.o moc_layervector.cpp
+
+moc_object.o: moc_object.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_object.o moc_object.cpp
+
+moc_editor.o: moc_editor.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_editor.o moc_editor.cpp
+
+moc_mainwindow.o: moc_mainwindow.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp
+
+moc_palette.o: moc_palette.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_palette.o moc_palette.cpp
+
+moc_preferences.o: moc_preferences.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_preferences.o moc_preferences.cpp
+
+moc_scribblearea.o: moc_scribblearea.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_scribblearea.o moc_scribblearea.cpp
+
+moc_timeline.o: moc_timeline.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_timeline.o moc_timeline.cpp
+
+moc_timecontrols.o: moc_timecontrols.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_timecontrols.o moc_timecontrols.cpp
+
+moc_toolset.o: moc_toolset.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_toolset.o moc_toolset.cpp
+
+qrc_pencil.o: qrc_pencil.cpp
+    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_pencil.o qrc_pencil.cpp
+
+####### Install
+
+install:   FORCE
+
+uninstall:   FORCE
+
+FORCE:
+
diff -rupN pencil_backup/moc_editor.cpp pencil_dev/moc_editor.cpp
--- pencil_backup/moc_editor.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_editor.cpp    2009-10-01 20:03:19.000000000 -0500
@@ -0,0 +1,469 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'editor.h'
+**
+** Created: Thu Oct 1 20:03:19 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/editor.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'editor.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_BackupElement[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_BackupElement[] = {
+    "BackupElement\0"
+};
+
+const QMetaObject BackupElement::staticMetaObject = {
+    { &QObject::staticMetaObject, qt_meta_stringdata_BackupElement,
+      qt_meta_data_BackupElement, 0 }
+};
+
+const QMetaObject *BackupElement::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *BackupElement::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_BackupElement))
+        return static_cast<void*>(const_cast< BackupElement*>(this));
+    return QObject::qt_metacast(_clname);
+}
+
+int BackupElement::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QObject::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+static const uint qt_meta_data_BackupBitmapElement[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_BackupBitmapElement[] = {
+    "BackupBitmapElement\0"
+};
+
+const QMetaObject BackupBitmapElement::staticMetaObject = {
+    { &BackupElement::staticMetaObject, qt_meta_stringdata_BackupBitmapElement,
+      qt_meta_data_BackupBitmapElement, 0 }
+};
+
+const QMetaObject *BackupBitmapElement::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *BackupBitmapElement::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_BackupBitmapElement))
+        return static_cast<void*>(const_cast< BackupBitmapElement*>(this));
+    return BackupElement::qt_metacast(_clname);
+}
+
+int BackupBitmapElement::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = BackupElement::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+static const uint qt_meta_data_BackupVectorElement[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_BackupVectorElement[] = {
+    "BackupVectorElement\0"
+};
+
+const QMetaObject BackupVectorElement::staticMetaObject = {
+    { &BackupElement::staticMetaObject, qt_meta_stringdata_BackupVectorElement,
+      qt_meta_data_BackupVectorElement, 0 }
+};
+
+const QMetaObject *BackupVectorElement::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *BackupVectorElement::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_BackupVectorElement))
+        return static_cast<void*>(const_cast< BackupVectorElement*>(this));
+    return BackupElement::qt_metacast(_clname);
+}
+
+int BackupVectorElement::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = BackupElement::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+static const uint qt_meta_data_Editor[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+     101,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+       8,    7,    7,    7, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      20,    7,    7,    7, 0x0a,
+      42,    7,   37,    7, 0x0a,
+      54,    7,    7,    7, 0x0a,
+      77,   68,    7,    7, 0x0a,
+      98,    7,    7,    7, 0x0a,
+     112,   68,    7,    7, 0x0a,
+     133,    7,    7,    7, 0x0a,
+     149,    7,    7,    7, 0x0a,
+     177,  165,    7,    7, 0x0a,
+     194,  165,    7,    7, 0x0a,
+     220,  165,    7,    7, 0x0a,
+     233,    7,    7,    7, 0x0a,
+     248,    7,    7,    7, 0x0a,
+     264,    7,    7,    7, 0x0a,
+     271,    7,    7,    7, 0x0a,
+     285,    7,    7,    7, 0x0a,
+     301,    7,    7,    7, 0x0a,
+     320,    7,  316,    7, 0x0a,
+     329,    7,    7,    7, 0x0a,
+     339,    7,    7,    7, 0x0a,
+     350,    7,    7,    7, 0x0a,
+     366,    7,    7,    7, 0x0a,
+     378,    7,    7,    7, 0x0a,
+     411,  387,    7,    7, 0x0a,
+     428,    7,    7,    7, 0x0a,
+     440,  165,    7,    7, 0x0a,
+     480,  454,    7,    7, 0x0a,
+     498,  165,    7,    7, 0x0a,
+     515,  165,  316,    7, 0x0a,
+     540,  165,  316,    7, 0x0a,
+     565,    7,    7,    7, 0x0a,
+     583,    7,    7,    7, 0x0a,
+     602,  595,    7,    7, 0x0a,
+     621,    7,    7,    7, 0x0a,
+     648,  636,    7,    7, 0x0a,
+     669,  636,    7,    7, 0x0a,
+     702,  698,    7,    7, 0x0a,
+     721,    7,    7,    7, 0x0a,
+     738,    7,    7,    7, 0x0a,
+     754,    7,    7,    7, 0x0a,
+     772,    7,    7,    7, 0x0a,
+     790,    7,    7,    7, 0x0a,
+     810,    7,    7,    7, 0x0a,
+     828,    7,    7,    7, 0x0a,
+     848,    7,    7,    7, 0x0a,
+     869,    7,    7,    7, 0x0a,
+     892,    7,    7,    7, 0x0a,
+     909,    7,    7,    7, 0x0a,
+     928,    7,    7,    7, 0x0a,
+     950,    7,    7,    7, 0x0a,
+     974,    7,    7,    7, 0x0a,
+     996,    7,    7,    7, 0x0a,
+    1020,    7,    7,    7, 0x0a,
+    1038,    7,    7,    7, 0x0a,
+    1064,    7,    7,    7, 0x0a,
+    1082,    7,    7,    7, 0x0a,
+    1100,    7,    7,    7, 0x0a,
+    1124, 1122,    7,    7, 0x0a,
+    1149, 1122,    7,    7, 0x0a,
+    1174,    7,    7,    7, 0x0a,
+    1186,    7,    7,    7, 0x0a,
+    1204,    7,    7,    7, 0x0a,
+    1224,    7,    7,    7, 0x0a,
+    1250,    7,    7,    7, 0x0a,
+    1265,    7,    7,    7, 0x0a,
+    1283,    7,    7,    7, 0x0a,
+    1292,  387,    7,    7, 0x0a,
+    1308,    7,    7,    7, 0x0a,
+    1315,    7,    7,    7, 0x0a,
+    1322,    7,    7,    7, 0x0a,
+    1329,    7,    7,    7, 0x0a,
+    1337,    7,    7,    7, 0x0a,
+    1356,    7,    7,    7, 0x0a,
+    1373,    7,    7,    7, 0x0a,
+    1390,    7,    7,    7, 0x0a,
+    1406,    7,    7,    7, 0x0a,
+    1423,    7,    7,    7, 0x0a,
+    1444,    7,    7,    7, 0x0a,
+    1459,    7,    7,    7, 0x0a,
+    1481,    7,    7,    7, 0x0a,
+    1495,    7,    7,    7, 0x0a,
+    1508,    7,    7,    7, 0x0a,
+    1526,    7,    7,    7, 0x0a,
+    1549, 1546,    7,    7, 0x0a,
+    1589,    7,    7,    7, 0x0a,
+    1606,    7,    7,    7, 0x0a,
+    1623,    7,  316,    7, 0x0a,
+    1639,    7,  316,    7, 0x0a,
+    1655,    7,    7,    7, 0x08,
+    1669,    7,    7,    7, 0x08,
+    1684,    7,   37,    7, 0x08,
+    1699,    7,    7,    7, 0x08,
+    1711,    7,   37,    7, 0x08,
+    1721,    7,   37,    7, 0x08,
+    1733,    7,   37,    7, 0x08,
+    1745,    7,   37,    7, 0x08,
+    1759,    7,    7,    7, 0x08,
+    1773,    7,    7,    7, 0x08,
+    1781,    7,    7,    7, 0x08,
+    1791,    7,    7,    7, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_Editor[] = {
+    "Editor\0\0selectAll()\0showCounter(int)\0"
+    "bool\0maybeSave()\0importImage()\0filePath\0"
+    "importImage(QString)\0importSound()\0"
+    "importSound(QString)\0importPalette()\0"
+    "exportPalette()\0frameNumber\0"
+    "updateFrame(int)\0updateFrameAndVector(int)\0"
+    "scrubTo(int)\0scrubForward()\0scrubBackward()\0"
+    "play()\0startOrStop()\0playNextFrame()\0"
+    "changeFps(int)\0int\0getFps()\0setLoop()\0"
+    "setSound()\0previousLayer()\0nextLayer()\0"
+    "addKey()\0layerNumber,frameNumber\0"
+    "addKey(int,int&)\0removeKey()\0addFrame(int)\0"
+    "frameNumber1,frameNumber2\0addFrame(int,int)\0"
+    "removeFrame(int)\0getLastIndexAtFrame(int)\0"
+    "getLastFrameAtFrame(int)\0showPreferences()\0"
+    "newObject()\0object\0setObject(Object*)\0"
+    "updateObject()\0layerNumber\0"
+    "setCurrentLayer(int)\0switchVisibilityOfLayer(int)\0"
+    "i,j\0moveLayer(int,int)\0updateMaxFrame()\0"
+    "setWidth(qreal)\0applyWidth(qreal)\0"
+    "setFeather(qreal)\0applyFeather(qreal)\0"
+    "setOpacity(qreal)\0applyOpacity(qreal)\0"
+    "setInvisibility(int)\0applyInvisibility(int)\0"
+    "setPressure(int)\0applyPressure(int)\0"
+    "setPreserveAlpha(int)\0applyPreserveAlpha(int)\0"
+    "setFollowContour(int)\0applyFollowContour(int)\0"
+    "selectColour(int)\0selectAndApplyColour(int)\0"
+    "setColour(QColor)\0changeColour(int)\0"
+    "changeColourName(int)\0,\0"
+    "changeColour(int,QColor)\0"
+    "updateColour(int,QColor)\0addColour()\0"
+    "removeColour(int)\0changeAutosave(int)\0"
+    "changeAutosaveNumber(int)\0modification()\0"
+    "modification(int)\0backup()\0backup(int,int)\0"
+    "undo()\0redo()\0copy()\0paste()\0"
+    "clipboardChanged()\0newBitmapLayer()\0"
+    "newVectorLayer()\0newSoundLayer()\0"
+    "newCameraLayer()\0deleteCurrentLayer()\0"
+    "toggleMirror()\0toggleShowAllLayers()\0"
+    "resetMirror()\0openRecent()\0dockAllPalettes()\0"
+    "detachAllPalettes()\0,,\0"
+    "restorePalettesSettings(bool,bool,bool)\0"
+    "getPrevKeyFlip()\0getNextKeyFlip()\0"
+    "getPrevKey(int)\0getNextKey(int)\0"
+    "newDocument()\0openDocument()\0"
+    "saveDocument()\0saveForce()\0exportX()\0"
+    "exportSeq()\0exportMov()\0exportFlash()\0"
+    "showPalette()\0about()\0helpBox()\0"
+    "saveLength(QString)\0"
+};
+
+const QMetaObject Editor::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_Editor,
+      qt_meta_data_Editor, 0 }
+};
+
+const QMetaObject *Editor::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *Editor::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_Editor))
+        return static_cast<void*>(const_cast< Editor*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int Editor::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: selectAll(); break;
+        case 1: showCounter((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 2: { bool _r = maybeSave();
+            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; }  break;
+        case 3: importImage(); break;
+        case 4: importImage((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 5: importSound(); break;
+        case 6: importSound((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 7: importPalette(); break;
+        case 8: exportPalette(); break;
+        case 9: updateFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 10: updateFrameAndVector((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 11: scrubTo((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 12: scrubForward(); break;
+        case 13: scrubBackward(); break;
+        case 14: play(); break;
+        case 15: startOrStop(); break;
+        case 16: playNextFrame(); break;
+        case 17: changeFps((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 18: { int _r = getFps();
+            if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; }  break;
+        case 19: setLoop(); break;
+        case 20: setSound(); break;
+        case 21: previousLayer(); break;
+        case 22: nextLayer(); break;
+        case 23: addKey(); break;
+        case 24: addKey((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+        case 25: removeKey(); break;
+        case 26: addFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 27: addFrame((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+        case 28: removeFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 29: { int _r = getLastIndexAtFrame((*reinterpret_cast< int(*)>(_a[1])));
+            if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; }  break;
+        case 30: { int _r = getLastFrameAtFrame((*reinterpret_cast< int(*)>(_a[1])));
+            if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; }  break;
+        case 31: showPreferences(); break;
+        case 32: newObject(); break;
+        case 33: setObject((*reinterpret_cast< Object*(*)>(_a[1]))); break;
+        case 34: updateObject(); break;
+        case 35: setCurrentLayer((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 36: switchVisibilityOfLayer((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 37: moveLayer((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+        case 38: updateMaxFrame(); break;
+        case 39: setWidth((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 40: applyWidth((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 41: setFeather((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 42: applyFeather((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 43: setOpacity((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 44: applyOpacity((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 45: setInvisibility((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 46: applyInvisibility((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 47: setPressure((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 48: applyPressure((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 49: setPreserveAlpha((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 50: applyPreserveAlpha((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 51: setFollowContour((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 52: applyFollowContour((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 53: selectColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 54: selectAndApplyColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 55: setColour((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+        case 56: changeColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 57: changeColourName((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 58: changeColour((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QColor(*)>(_a[2]))); break;
+        case 59: updateColour((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QColor(*)>(_a[2]))); break;
+        case 60: addColour(); break;
+        case 61: removeColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 62: changeAutosave((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 63: changeAutosaveNumber((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 64: modification(); break;
+        case 65: modification((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 66: backup(); break;
+        case 67: backup((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+        case 68: undo(); break;
+        case 69: redo(); break;
+        case 70: copy(); break;
+        case 71: paste(); break;
+        case 72: clipboardChanged(); break;
+        case 73: newBitmapLayer(); break;
+        case 74: newVectorLayer(); break;
+        case 75: newSoundLayer(); break;
+        case 76: newCameraLayer(); break;
+        case 77: deleteCurrentLayer(); break;
+        case 78: toggleMirror(); break;
+        case 79: toggleShowAllLayers(); break;
+        case 80: resetMirror(); break;
+        case 81: openRecent(); break;
+        case 82: dockAllPalettes(); break;
+        case 83: detachAllPalettes(); break;
+        case 84: restorePalettesSettings((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2])),(*reinterpret_cast< bool(*)>(_a[3]))); break;
+        case 85: getPrevKeyFlip(); break;
+        case 86: getNextKeyFlip(); break;
+        case 87: { int _r = getPrevKey((*reinterpret_cast< int(*)>(_a[1])));
+            if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; }  break;
+        case 88: { int _r = getNextKey((*reinterpret_cast< int(*)>(_a[1])));
+            if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; }  break;
+        case 89: newDocument(); break;
+        case 90: openDocument(); break;
+        case 91: { bool _r = saveDocument();
+            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; }  break;
+        case 92: saveForce(); break;
+        case 93: { bool _r = exportX();
+            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; }  break;
+        case 94: { bool _r = exportSeq();
+            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; }  break;
+        case 95: { bool _r = exportMov();
+            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; }  break;
+        case 96: { bool _r = exportFlash();
+            if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; }  break;
+        case 97: showPalette(); break;
+        case 98: about(); break;
+        case 99: helpBox(); break;
+        case 100: saveLength((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 101;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void Editor::selectAll()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_editor.o and pencil_dev/moc_editor.o differ
diff -rupN pencil_backup/moc_layerbitmap.cpp pencil_dev/moc_layerbitmap.cpp
--- pencil_backup/moc_layerbitmap.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layerbitmap.cpp    2009-09-28 17:10:22.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layerbitmap.h'
+**
+** Created: Mon Sep 28 17:10:22 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layerbitmap.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layerbitmap.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_LayerBitmap[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_LayerBitmap[] = {
+    "LayerBitmap\0"
+};
+
+const QMetaObject LayerBitmap::staticMetaObject = {
+    { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerBitmap,
+      qt_meta_data_LayerBitmap, 0 }
+};
+
+const QMetaObject *LayerBitmap::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *LayerBitmap::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_LayerBitmap))
+        return static_cast<void*>(const_cast< LayerBitmap*>(this));
+    return LayerImage::qt_metacast(_clname);
+}
+
+int LayerBitmap::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = LayerImage::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layerbitmap.o and pencil_dev/moc_layerbitmap.o differ
diff -rupN pencil_backup/moc_layercamera.cpp pencil_dev/moc_layercamera.cpp
--- pencil_backup/moc_layercamera.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layercamera.cpp    2009-09-28 17:10:24.000000000 -0500
@@ -0,0 +1,106 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layercamera.h'
+**
+** Created: Mon Sep 28 17:10:24 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layercamera.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layercamera.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_CameraPropertiesDialog[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_CameraPropertiesDialog[] = {
+    "CameraPropertiesDialog\0"
+};
+
+const QMetaObject CameraPropertiesDialog::staticMetaObject = {
+    { &QDialog::staticMetaObject, qt_meta_stringdata_CameraPropertiesDialog,
+      qt_meta_data_CameraPropertiesDialog, 0 }
+};
+
+const QMetaObject *CameraPropertiesDialog::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *CameraPropertiesDialog::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_CameraPropertiesDialog))
+        return static_cast<void*>(const_cast< CameraPropertiesDialog*>(this));
+    return QDialog::qt_metacast(_clname);
+}
+
+int CameraPropertiesDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QDialog::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+static const uint qt_meta_data_LayerCamera[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_LayerCamera[] = {
+    "LayerCamera\0"
+};
+
+const QMetaObject LayerCamera::staticMetaObject = {
+    { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerCamera,
+      qt_meta_data_LayerCamera, 0 }
+};
+
+const QMetaObject *LayerCamera::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *LayerCamera::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_LayerCamera))
+        return static_cast<void*>(const_cast< LayerCamera*>(this));
+    return LayerImage::qt_metacast(_clname);
+}
+
+int LayerCamera::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = LayerImage::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layercamera.o and pencil_dev/moc_layercamera.o differ
diff -rupN pencil_backup/moc_layer.cpp pencil_dev/moc_layer.cpp
--- pencil_backup/moc_layer.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layer.cpp    2009-09-28 17:10:20.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layer.h'
+**
+** Created: Mon Sep 28 17:10:20 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layer.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layer.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_Layer[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_Layer[] = {
+    "Layer\0"
+};
+
+const QMetaObject Layer::staticMetaObject = {
+    { &QObject::staticMetaObject, qt_meta_stringdata_Layer,
+      qt_meta_data_Layer, 0 }
+};
+
+const QMetaObject *Layer::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *Layer::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_Layer))
+        return static_cast<void*>(const_cast< Layer*>(this));
+    return QObject::qt_metacast(_clname);
+}
+
+int Layer::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QObject::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+QT_END_MOC_NAMESPACE
diff -rupN pencil_backup/moc_layerimage.cpp pencil_dev/moc_layerimage.cpp
--- pencil_backup/moc_layerimage.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layerimage.cpp    2009-09-28 17:10:27.000000000 -0500
@@ -0,0 +1,99 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layerimage.h'
+**
+** Created: Mon Sep 28 17:10:27 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layerimage.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layerimage.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_LayerImage[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       3,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+      12,   11,   11,   11, 0x05,
+      30,   28,   11,   11, 0x05,
+      50,   11,   11,   11, 0x05,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_LayerImage[] = {
+    "LayerImage\0\0imageAdded(int)\0,\0"
+    "imageAdded(int,int)\0imageRemoved(int)\0"
+};
+
+const QMetaObject LayerImage::staticMetaObject = {
+    { &Layer::staticMetaObject, qt_meta_stringdata_LayerImage,
+      qt_meta_data_LayerImage, 0 }
+};
+
+const QMetaObject *LayerImage::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *LayerImage::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_LayerImage))
+        return static_cast<void*>(const_cast< LayerImage*>(this));
+    return Layer::qt_metacast(_clname);
+}
+
+int LayerImage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = Layer::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: imageAdded((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 1: imageAdded((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+        case 2: imageRemoved((*reinterpret_cast< int(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 3;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void LayerImage::imageAdded(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void LayerImage::imageAdded(int _t1, int _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void LayerImage::imageRemoved(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layerimage.o and pencil_dev/moc_layerimage.o differ
Binary files pencil_backup/moc_layer.o and pencil_dev/moc_layer.o differ
diff -rupN pencil_backup/moc_layersound.cpp pencil_dev/moc_layersound.cpp
--- pencil_backup/moc_layersound.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layersound.cpp    2009-09-28 17:10:29.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layersound.h'
+**
+** Created: Mon Sep 28 17:10:29 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layersound.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layersound.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_LayerSound[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_LayerSound[] = {
+    "LayerSound\0"
+};
+
+const QMetaObject LayerSound::staticMetaObject = {
+    { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerSound,
+      qt_meta_data_LayerSound, 0 }
+};
+
+const QMetaObject *LayerSound::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *LayerSound::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_LayerSound))
+        return static_cast<void*>(const_cast< LayerSound*>(this));
+    return LayerImage::qt_metacast(_clname);
+}
+
+int LayerSound::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = LayerImage::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layersound.o and pencil_dev/moc_layersound.o differ
diff -rupN pencil_backup/moc_layervector.cpp pencil_dev/moc_layervector.cpp
--- pencil_backup/moc_layervector.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layervector.cpp    2009-09-28 17:10:31.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layervector.h'
+**
+** Created: Mon Sep 28 17:10:31 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layervector.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layervector.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_LayerVector[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_LayerVector[] = {
+    "LayerVector\0"
+};
+
+const QMetaObject LayerVector::staticMetaObject = {
+    { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerVector,
+      qt_meta_data_LayerVector, 0 }
+};
+
+const QMetaObject *LayerVector::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *LayerVector::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_LayerVector))
+        return static_cast<void*>(const_cast< LayerVector*>(this));
+    return LayerImage::qt_metacast(_clname);
+}
+
+int LayerVector::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = LayerImage::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layervector.o and pencil_dev/moc_layervector.o differ
diff -rupN pencil_backup/moc_mainwindow.cpp pencil_dev/moc_mainwindow.cpp
--- pencil_backup/moc_mainwindow.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_mainwindow.cpp    2009-10-01 20:03:22.000000000 -0500
@@ -0,0 +1,76 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'mainwindow.h'
+**
+** Created: Thu Oct 1 20:03:22 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/mainwindow.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'mainwindow.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_MainWindow[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       2,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // slots: signature, parameters, type, tag, flags
+      20,   12,   11,   11, 0x0a,
+      36,   11,   11,   11, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_MainWindow[] = {
+    "MainWindow\0\0opacity\0setOpacity(int)\0"
+    "exportFile()\0"
+};
+
+const QMetaObject MainWindow::staticMetaObject = {
+    { &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow,
+      qt_meta_data_MainWindow, 0 }
+};
+
+const QMetaObject *MainWindow::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *MainWindow::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_MainWindow))
+        return static_cast<void*>(const_cast< MainWindow*>(this));
+    return QMainWindow::qt_metacast(_clname);
+}
+
+int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QMainWindow::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: setOpacity((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 1: exportFile(); break;
+        default: ;
+        }
+        _id -= 2;
+    }
+    return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_mainwindow.o and pencil_dev/moc_mainwindow.o differ
diff -rupN pencil_backup/moc_object.cpp pencil_dev/moc_object.cpp
--- pencil_backup/moc_object.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_object.cpp    2009-09-28 17:10:34.000000000 -0500
@@ -0,0 +1,111 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'object.h'
+**
+** Created: Mon Sep 28 17:10:34 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/object.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'object.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_Object[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       7,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+       8,    7,    7,    7, 0x05,
+      26,   24,    7,    7, 0x05,
+      46,    7,    7,    7, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      64,    7,    7,    7, 0x0a,
+      79,    7,    7,    7, 0x0a,
+      94,    7,    7,    7, 0x0a,
+     108,    7,    7,    7, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_Object[] = {
+    "Object\0\0imageAdded(int)\0,\0imageAdded(int,int)\0"
+    "imageRemoved(int)\0modification()\0"
+    "toggleMirror()\0resetMirror()\0"
+    "imageCheck(int)\0"
+};
+
+const QMetaObject Object::staticMetaObject = {
+    { &QObject::staticMetaObject, qt_meta_stringdata_Object,
+      qt_meta_data_Object, 0 }
+};
+
+const QMetaObject *Object::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *Object::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_Object))
+        return static_cast<void*>(const_cast< Object*>(this));
+    return QObject::qt_metacast(_clname);
+}
+
+int Object::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QObject::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: imageAdded((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 1: imageAdded((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+        case 2: imageRemoved((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 3: modification(); break;
+        case 4: toggleMirror(); break;
+        case 5: resetMirror(); break;
+        case 6: imageCheck((*reinterpret_cast< int(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 7;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void Object::imageAdded(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void Object::imageAdded(int _t1, int _t2)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void Object::imageRemoved(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_object.o and pencil_dev/moc_object.o differ
diff -rupN pencil_backup/moc_palette.cpp pencil_dev/moc_palette.cpp
--- pencil_backup/moc_palette.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_palette.cpp    2009-09-28 17:10:42.000000000 -0500
@@ -0,0 +1,110 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'palette.h'
+**
+** Created: Mon Sep 28 17:10:42 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/palette.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'palette.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_Palette[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      15,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // slots: signature, parameters, type, tag, flags
+       9,    8,    8,    8, 0x0a,
+      22,    8,    8,    8, 0x0a,
+      45,   43,    8,    8, 0x0a,
+      63,    8,    8,    8, 0x0a,
+      85,   81,    8,    8, 0x0a,
+     112,    8,    8,    8, 0x08,
+     136,  134,    8,    8, 0x08,
+     184,    8,    8,    8, 0x08,
+     223,    8,    8,    8, 0x08,
+     238,    8,    8,    8, 0x08,
+     253,    8,    8,    8, 0x08,
+     284,    8,    8,    8, 0x08,
+     319,    8,    8,    8, 0x08,
+     330,    8,    8,    8, 0x08,
+     340,    8,    8,    8, 0x08,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_Palette[] = {
+    "Palette\0\0updateList()\0updateSwatch(QColor)\0"
+    "i\0selectColour(int)\0setColour(QColor)\0"
+    ",,,\0setColour(int,int,int,int)\0"
+    "colourSwatchClicked()\0,\0"
+    "selectColour(QListWidgetItem*,QListWidgetItem*)\0"
+    "selectAndApplyColour(QListWidgetItem*)\0"
+    "updateColour()\0changeColour()\0"
+    "changeColour(QListWidgetItem*)\0"
+    "changeColourName(QListWidgetItem*)\0"
+    "addClick()\0rmClick()\0closeIfDocked(bool)\0"
+};
+
+const QMetaObject Palette::staticMetaObject = {
+    { &QDockWidget::staticMetaObject, qt_meta_stringdata_Palette,
+      qt_meta_data_Palette, 0 }
+};
+
+const QMetaObject *Palette::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *Palette::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_Palette))
+        return static_cast<void*>(const_cast< Palette*>(this));
+    return QDockWidget::qt_metacast(_clname);
+}
+
+int Palette::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QDockWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: updateList(); break;
+        case 1: updateSwatch((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+        case 2: selectColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 3: setColour((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+        case 4: setColour((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3])),(*reinterpret_cast< int(*)>(_a[4]))); break;
+        case 5: colourSwatchClicked(); break;
+        case 6: selectColour((*reinterpret_cast< QListWidgetItem*(*)>(_a[1])),(*reinterpret_cast< QListWidgetItem*(*)>(_a[2]))); break;
+        case 7: selectAndApplyColour((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 8: updateColour(); break;
+        case 9: changeColour(); break;
+        case 10: changeColour((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 11: changeColourName((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+        case 12: addClick(); break;
+        case 13: rmClick(); break;
+        case 14: closeIfDocked((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 15;
+    }
+    return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_palette.o and pencil_dev/moc_palette.o differ
diff -rupN pencil_backup/moc_preferences.cpp pencil_dev/moc_preferences.cpp
--- pencil_backup/moc_preferences.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_preferences.cpp    2009-10-01 20:03:24.000000000 -0500
@@ -0,0 +1,427 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'preferences.h'
+**
+** Created: Thu Oct 1 20:03:24 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/preferences.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'preferences.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_Preferences[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      24,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+      13,   12,   12,   12, 0x05,
+      38,   12,   12,   12, 0x05,
+      62,   12,   12,   12, 0x05,
+      88,   12,   12,   12, 0x05,
+     115,   12,   12,   12, 0x05,
+     139,   12,   12,   12, 0x05,
+     160,   12,   12,   12, 0x05,
+     182,   12,   12,   12, 0x05,
+     201,   12,   12,   12, 0x05,
+     224,   12,   12,   12, 0x05,
+     241,   12,   12,   12, 0x05,
+     265,   12,   12,   12, 0x05,
+     295,   12,   12,   12, 0x05,
+     328,   12,   12,   12, 0x05,
+     353,   12,   12,   12, 0x05,
+     374,   12,   12,   12, 0x05,
+     399,   12,   12,   12, 0x05,
+     419,   12,   12,   12, 0x05,
+     445,   12,   12,   12, 0x05,
+     471,   12,   12,   12, 0x05,
+     491,   12,   12,   12, 0x05,
+     512,   12,   12,   12, 0x05,
+     529,   12,   12,   12, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     563,  546,   12,   12, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_Preferences[] = {
+    "Preferences\0\0windowOpacityChange(int)\0"
+    "curveOpacityChange(int)\0"
+    "curveSmoothingChange(int)\0"
+    "highResPositionChange(int)\0"
+    "antialiasingChange(int)\0gradientsChange(int)\0"
+    "backgroundChange(int)\0shadowsChange(int)\0"
+    "toolCursorsChange(int)\0styleChange(int)\0"
+    "onionOpacityChange(int)\0"
+    "onionStraightAheadChange(int)\0"
+    "onionPreviousPreviousChange(int)\0"
+    "onionPreviousChange(int)\0onionNextChange(int)\0"
+    "onionNextNextChange(int)\0autosaveChange(int)\0"
+    "autosaveNumberChange(int)\0"
+    "lengthSizeChange(QString)\0fontSizeChange(int)\0"
+    "frameSizeChange(int)\0labelChange(int)\0"
+    "scrubChange(int)\0current,previous\0"
+    "changePage(QListWidgetItem*,QListWidgetItem*)\0"
+};
+
+const QMetaObject Preferences::staticMetaObject = {
+    { &QDialog::staticMetaObject, qt_meta_stringdata_Preferences,
+      qt_meta_data_Preferences, 0 }
+};
+
+const QMetaObject *Preferences::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *Preferences::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_Preferences))
+        return static_cast<void*>(const_cast< Preferences*>(this));
+    return QDialog::qt_metacast(_clname);
+}
+
+int Preferences::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QDialog::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: windowOpacityChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 1: curveOpacityChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 2: curveSmoothingChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 3: highResPositionChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 4: antialiasingChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 5: gradientsChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 6: backgroundChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 7: shadowsChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 8: toolCursorsChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 9: styleChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 10: onionOpacityChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 11: onionStraightAheadChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 12: onionPreviousPreviousChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 13: onionPreviousChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 14: onionNextChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 15: onionNextNextChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 16: autosaveChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 17: autosaveNumberChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 18: lengthSizeChange((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 19: fontSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 20: frameSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 21: labelChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 22: scrubChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 23: changePage((*reinterpret_cast< QListWidgetItem*(*)>(_a[1])),(*reinterpret_cast< QListWidgetItem*(*)>(_a[2]))); break;
+        default: ;
+        }
+        _id -= 24;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void Preferences::windowOpacityChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void Preferences::curveOpacityChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void Preferences::curveSmoothingChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void Preferences::highResPositionChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void Preferences::antialiasingChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void Preferences::gradientsChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void Preferences::backgroundChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 6, _a);
+}
+
+// SIGNAL 7
+void Preferences::shadowsChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 7, _a);
+}
+
+// SIGNAL 8
+void Preferences::toolCursorsChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 8, _a);
+}
+
+// SIGNAL 9
+void Preferences::styleChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 9, _a);
+}
+
+// SIGNAL 10
+void Preferences::onionOpacityChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 10, _a);
+}
+
+// SIGNAL 11
+void Preferences::onionStraightAheadChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 11, _a);
+}
+
+// SIGNAL 12
+void Preferences::onionPreviousPreviousChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 12, _a);
+}
+
+// SIGNAL 13
+void Preferences::onionPreviousChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 13, _a);
+}
+
+// SIGNAL 14
+void Preferences::onionNextChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 14, _a);
+}
+
+// SIGNAL 15
+void Preferences::onionNextNextChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 15, _a);
+}
+
+// SIGNAL 16
+void Preferences::autosaveChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 16, _a);
+}
+
+// SIGNAL 17
+void Preferences::autosaveNumberChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 17, _a);
+}
+
+// SIGNAL 18
+void Preferences::lengthSizeChange(QString _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 18, _a);
+}
+
+// SIGNAL 19
+void Preferences::fontSizeChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 19, _a);
+}
+
+// SIGNAL 20
+void Preferences::frameSizeChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 20, _a);
+}
+
+// SIGNAL 21
+void Preferences::labelChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 21, _a);
+}
+
+// SIGNAL 22
+void Preferences::scrubChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 22, _a);
+}
+static const uint qt_meta_data_GeneralPage[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_GeneralPage[] = {
+    "GeneralPage\0"
+};
+
+const QMetaObject GeneralPage::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_GeneralPage,
+      qt_meta_data_GeneralPage, 0 }
+};
+
+const QMetaObject *GeneralPage::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *GeneralPage::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_GeneralPage))
+        return static_cast<void*>(const_cast< GeneralPage*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int GeneralPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+static const uint qt_meta_data_TimelinePage[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TimelinePage[] = {
+    "TimelinePage\0"
+};
+
+const QMetaObject TimelinePage::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TimelinePage,
+      qt_meta_data_TimelinePage, 0 }
+};
+
+const QMetaObject *TimelinePage::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *TimelinePage::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TimelinePage))
+        return static_cast<void*>(const_cast< TimelinePage*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TimelinePage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+static const uint qt_meta_data_FilesPage[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       0,    0, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_FilesPage[] = {
+    "FilesPage\0"
+};
+
+const QMetaObject FilesPage::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_FilesPage,
+      qt_meta_data_FilesPage, 0 }
+};
+
+const QMetaObject *FilesPage::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *FilesPage::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_FilesPage))
+        return static_cast<void*>(const_cast< FilesPage*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int FilesPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_preferences.o and pencil_dev/moc_preferences.o differ
diff -rupN pencil_backup/moc_scribblearea.cpp pencil_dev/moc_scribblearea.cpp
--- pencil_backup/moc_scribblearea.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_scribblearea.cpp    2009-10-01 20:03:27.000000000 -0500
@@ -0,0 +1,285 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'scribblearea.h'
+**
+** Created: Thu Oct 1 20:03:27 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/scribblearea.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'scribblearea.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_ScribbleArea[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      62,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+      14,   13,   13,   13, 0x05,
+      29,   13,   13,   13, 0x05,
+      47,   13,   13,   13, 0x05,
+      70,   13,   13,   13, 0x05,
+      92,   13,   13,   13, 0x05,
+     107,   13,   13,   13, 0x05,
+     118,   13,   13,   13, 0x05,
+     134,   13,   13,   13, 0x05,
+     158,   13,   13,   13, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     178,   13,   13,   13, 0x0a,
+     191,   13,   13,   13, 0x0a,
+     216,   13,   13,   13, 0x0a,
+     251,   13,   13,   13, 0x0a,
+     303,  279,   13,   13, 0x0a,
+     324,   13,   13,   13, 0x0a,
+     336,   13,   13,   13, 0x0a,
+     350,   13,   13,   13, 0x0a,
+     362,   13,   13,   13, 0x0a,
+     381,   13,   13,   13, 0x0a,
+     400,   13,   13,   13, 0x0a,
+     421,   13,   13,   13, 0x0a,
+     444,   13,   13,   13, 0x0a,
+     473,   13,   13,   13, 0x0a,
+     505,   13,   13,   13, 0x0a,
+     529,   13,   13,   13, 0x0a,
+     549,   13,   13,   13, 0x0a,
+     573,   13,   13,   13, 0x0a,
+     584,   13,   13,   13, 0x0a,
+     595,   13,   13,   13, 0x0a,
+     606,   13,   13,   13, 0x0a,
+     615,   13,   13,   13, 0x0a,
+     624,   13,   13,   13, 0x0a,
+     641,  636,   13,   13, 0x0a,
+     668,   13,  660,   13, 0x0a,
+     680,   13,   13,   13, 0x0a,
+     688,   13,   13,   13, 0x0a,
+     701,   13,   13,   13, 0x0a,
+     712,   13,   13,   13, 0x0a,
+     727,   13,   13,   13, 0x0a,
+     741,   13,   13,   13, 0x0a,
+     752,   13,   13,   13, 0x0a,
+     768,   13,   13,   13, 0x0a,
+     786,   13,   13,   13, 0x0a,
+     804,   13,   13,   13, 0x0a,
+     822,   13,   13,   13, 0x0a,
+     844,   13,   13,   13, 0x0a,
+     867,   13,   13,   13, 0x0a,
+     890,   13,   13,   13, 0x0a,
+     911,   13,   13,   13, 0x0a,
+     934,   13,   13,   13, 0x0a,
+     958,   13,   13,   13, 0x0a,
+     979,   13,   13,   13, 0x0a,
+     997,   13,   13,   13, 0x0a,
+    1016,   13,   13,   13, 0x0a,
+    1044,   13,   13,   13, 0x0a,
+    1060,   13,   13,   13, 0x0a,
+    1080,   13,   13,   13, 0x0a,
+    1094,   13,   13,   13, 0x0a,
+    1112,   13,   13,   13, 0x0a,
+    1129,   13,   13,   13, 0x0a,
+    1144,   13,   13,   13, 0x0a,
+    1166,   13,   13,   13, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_ScribbleArea[] = {
+    "ScribbleArea\0\0modification()\0"
+    "modification(int)\0thinLinesChanged(bool)\0"
+    "outlinesChanged(bool)\0flipPrevious()\0"
+    "flipNext()\0onionShortCut()\0"
+    "straightAheadShortCut()\0inbetweenShortCut()\0"
+    "clearImage()\0calculateSelectionRect()\0"
+    "calculateSelectionTransformation()\0"
+    "paintTransformedSelection()\0"
+    "layerNumber,frameNumber\0setModified(int,int)\0"
+    "selectAll()\0deselectAll()\0onionIsOn()\0"
+    "onionChangeSlot1()\0onionChangeSlot2()\0"
+    "onionChangeSlot(int)\0onionOpacityLevel(int)\0"
+    "onionStraightAheadLevel(int)\0"
+    "onionPreviousPreviousLevel(int)\0"
+    "onionPreviousLevel(int)\0onionNextLevel(int)\0"
+    "onionNextNextLevel(int)\0pencilOn()\0"
+    "eraserOn()\0selectOn()\0moveOn()\0handOn()\0"
+    "resetView()\0view\0setMyView(QMatrix)\0"
+    "QMatrix\0getMyView()\0penOn()\0polylineOn()\0"
+    "bucketOn()\0eyedropperOn()\0colouringOn()\0"
+    "smudgeOn()\0setWidth(qreal)\0setFeather(qreal)\0"
+    "setOpacity(qreal)\0setPressure(bool)\0"
+    "setInvisibility(bool)\0setPreserveAlpha(bool)\0"
+    "setFollowContour(bool)\0setCurveOpacity(int)\0"
+    "setCurveSmoothing(int)\0setHighResPosition(int)\0"
+    "setAntialiasing(int)\0setGradients(int)\0"
+    "setBackground(int)\0setBackgroundBrush(QString)\0"
+    "setShadows(int)\0setToolCursors(int)\0"
+    "setStyle(int)\0toggleThinLines()\0"
+    "toggleOutlines()\0toggleMirror()\0"
+    "toggleShowAllLayers()\0escape()\0"
+};
+
+const QMetaObject ScribbleArea::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_ScribbleArea,
+      qt_meta_data_ScribbleArea, 0 }
+};
+
+const QMetaObject *ScribbleArea::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *ScribbleArea::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_ScribbleArea))
+        return static_cast<void*>(const_cast< ScribbleArea*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int ScribbleArea::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: modification(); break;
+        case 1: modification((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 2: thinLinesChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 3: outlinesChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 4: flipPrevious(); break;
+        case 5: flipNext(); break;
+        case 6: onionShortCut(); break;
+        case 7: straightAheadShortCut(); break;
+        case 8: inbetweenShortCut(); break;
+        case 9: clearImage(); break;
+        case 10: calculateSelectionRect(); break;
+        case 11: calculateSelectionTransformation(); break;
+        case 12: paintTransformedSelection(); break;
+        case 13: setModified((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+        case 14: selectAll(); break;
+        case 15: deselectAll(); break;
+        case 16: onionIsOn(); break;
+        case 17: onionChangeSlot1(); break;
+        case 18: onionChangeSlot2(); break;
+        case 19: onionChangeSlot((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 20: onionOpacityLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 21: onionStraightAheadLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 22: onionPreviousPreviousLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 23: onionPreviousLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 24: onionNextLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 25: onionNextNextLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 26: pencilOn(); break;
+        case 27: eraserOn(); break;
+        case 28: selectOn(); break;
+        case 29: moveOn(); break;
+        case 30: handOn(); break;
+        case 31: resetView(); break;
+        case 32: setMyView((*reinterpret_cast< QMatrix(*)>(_a[1]))); break;
+        case 33: { QMatrix _r = getMyView();
+            if (_a[0]) *reinterpret_cast< QMatrix*>(_a[0]) = _r; }  break;
+        case 34: penOn(); break;
+        case 35: polylineOn(); break;
+        case 36: bucketOn(); break;
+        case 37: eyedropperOn(); break;
+        case 38: colouringOn(); break;
+        case 39: smudgeOn(); break;
+        case 40: setWidth((*reinterpret_cast< const qreal(*)>(_a[1]))); break;
+        case 41: setFeather((*reinterpret_cast< const qreal(*)>(_a[1]))); break;
+        case 42: setOpacity((*reinterpret_cast< const qreal(*)>(_a[1]))); break;
+        case 43: setPressure((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+        case 44: setInvisibility((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+        case 45: setPreserveAlpha((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+        case 46: setFollowContour((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+        case 47: setCurveOpacity((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 48: setCurveSmoothing((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 49: setHighResPosition((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 50: setAntialiasing((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 51: setGradients((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 52: setBackground((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 53: setBackgroundBrush((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 54: setShadows((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 55: setToolCursors((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 56: setStyle((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 57: toggleThinLines(); break;
+        case 58: toggleOutlines(); break;
+        case 59: toggleMirror(); break;
+        case 60: toggleShowAllLayers(); break;
+        case 61: escape(); break;
+        default: ;
+        }
+        _id -= 62;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void ScribbleArea::modification()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void ScribbleArea::modification(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void ScribbleArea::thinLinesChanged(bool _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void ScribbleArea::outlinesChanged(bool _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void ScribbleArea::flipPrevious()
+{
+    QMetaObject::activate(this, &staticMetaObject, 4, 0);
+}
+
+// SIGNAL 5
+void ScribbleArea::flipNext()
+{
+    QMetaObject::activate(this, &staticMetaObject, 5, 0);
+}
+
+// SIGNAL 6
+void ScribbleArea::onionShortCut()
+{
+    QMetaObject::activate(this, &staticMetaObject, 6, 0);
+}
+
+// SIGNAL 7
+void ScribbleArea::straightAheadShortCut()
+{
+    QMetaObject::activate(this, &staticMetaObject, 7, 0);
+}
+
+// SIGNAL 8
+void ScribbleArea::inbetweenShortCut()
+{
+    QMetaObject::activate(this, &staticMetaObject, 8, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_scribblearea.o and pencil_dev/moc_scribblearea.o differ
diff -rupN pencil_backup/moc_timecontrols.cpp pencil_dev/moc_timecontrols.cpp
--- pencil_backup/moc_timecontrols.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_timecontrols.cpp    2009-09-28 17:10:51.000000000 -0500
@@ -0,0 +1,110 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'timecontrols.h'
+**
+** Created: Mon Sep 28 17:10:51 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/timecontrols.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'timecontrols.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TimeControls[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       5,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+      14,   13,   13,   13, 0x05,
+      26,   13,   13,   13, 0x05,
+      38,   13,   13,   13, 0x05,
+      51,   13,   13,   13, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      65,   13,   13,   13, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TimeControls[] = {
+    "TimeControls\0\0playClick()\0loopClick()\0"
+    "soundClick()\0fpsClick(int)\0"
+    "updateButtons(bool)\0"
+};
+
+const QMetaObject TimeControls::staticMetaObject = {
+    { &QToolBar::staticMetaObject, qt_meta_stringdata_TimeControls,
+      qt_meta_data_TimeControls, 0 }
+};
+
+const QMetaObject *TimeControls::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *TimeControls::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TimeControls))
+        return static_cast<void*>(const_cast< TimeControls*>(this));
+    return QToolBar::qt_metacast(_clname);
+}
+
+int TimeControls::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QToolBar::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: playClick(); break;
+        case 1: loopClick(); break;
+        case 2: soundClick(); break;
+        case 3: fpsClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 4: updateButtons((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 5;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TimeControls::playClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TimeControls::loopClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+
+// SIGNAL 2
+void TimeControls::soundClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+
+// SIGNAL 3
+void TimeControls::fpsClick(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_timecontrols.o and pencil_dev/moc_timecontrols.o differ
diff -rupN pencil_backup/moc_timeline.cpp pencil_dev/moc_timeline.cpp
--- pencil_backup/moc_timeline.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_timeline.cpp    2009-10-01 18:20:13.000000000 -0500
@@ -0,0 +1,367 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'timeline.h'
+**
+** Created: Thu Oct 1 18:20:13 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/timeline.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'timeline.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_TimeLineCells[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      11,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+      15,   14,   14,   14, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      32,   14,   14,   14, 0x0a,
+      60,   48,   14,   14, 0x0a,
+      77,   14,   14,   14, 0x0a,
+      99,   14,   14,   14, 0x0a,
+     120,   14,   14,   14, 0x0a,
+     140,   14,   14,   14, 0x0a,
+     157,   14,   14,   14, 0x0a,
+     174,   14,   14,   14, 0x0a,
+     193,   14,   14,   14, 0x0a,
+     214,  212,   14,   14, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TimeLineCells[] = {
+    "TimeLineCells\0\0mouseMovedY(int)\0"
+    "updateContent()\0frameNumber\0"
+    "updateFrame(int)\0lengthChange(QString)\0"
+    "frameSizeChange(int)\0fontSizeChange(int)\0"
+    "scrubChange(int)\0labelChange(int)\0"
+    "hScrollChange(int)\0vScrollChange(int)\0"
+    "x\0setMouseMoveY(int)\0"
+};
+
+const QMetaObject TimeLineCells::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_TimeLineCells,
+      qt_meta_data_TimeLineCells, 0 }
+};
+
+const QMetaObject *TimeLineCells::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *TimeLineCells::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TimeLineCells))
+        return static_cast<void*>(const_cast< TimeLineCells*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int TimeLineCells::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: mouseMovedY((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 1: updateContent(); break;
+        case 2: updateFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 3: lengthChange((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 4: frameSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 5: fontSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 6: scrubChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 7: labelChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 8: hScrollChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 9: vScrollChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 10: setMouseMoveY((*reinterpret_cast< int(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 11;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TimeLineCells::mouseMovedY(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+static const uint qt_meta_data_TimeLine[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      27,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+      10,    9,    9,    9, 0x05,
+      25,    9,    9,    9, 0x05,
+      47,    9,    9,    9, 0x05,
+      68,    9,    9,    9, 0x05,
+      88,    9,    9,    9, 0x05,
+     105,    9,    9,    9, 0x05,
+     122,    9,    9,    9, 0x05,
+     136,    9,    9,    9, 0x05,
+     153,    9,    9,    9, 0x05,
+     170,    9,    9,    9, 0x05,
+     187,    9,    9,    9, 0x05,
+     203,    9,    9,    9, 0x05,
+     220,    9,    9,    9, 0x05,
+     241,    9,    9,    9, 0x05,
+     253,    9,    9,    9, 0x05,
+     265,    9,    9,    9, 0x05,
+     278,    9,    9,    9, 0x05,
+     292,    9,    9,    9, 0x05,
+     307,    9,    9,    9, 0x05,
+     322,    9,    9,    9, 0x05,
+     333,    9,    9,    9, 0x05,
+     352,    9,    9,    9, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     379,  367,    9,    9, 0x0a,
+     403,  396,    9,    9, 0x0a,
+     426,    9,    9,    9, 0x0a,
+     456,  444,    9,    9, 0x0a,
+     474,    9,    9,    9, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_TimeLine[] = {
+    "TimeLine\0\0modification()\0lengthChange(QString)\0"
+    "frameSizeChange(int)\0fontSizeChange(int)\0"
+    "labelChange(int)\0scrubChange(int)\0"
+    "addKeyClick()\0removeKeyClick()\0"
+    "newBitmapLayer()\0newVectorLayer()\0"
+    "newSoundLayer()\0newCameraLayer()\0"
+    "deleteCurrentLayer()\0playClick()\0"
+    "loopClick()\0soundClick()\0fpsClick(int)\0"
+    "onionChecked()\0onionType(int)\0onionKey()\0"
+    "straightAheadKey()\0inbetweenKey()\0"
+    "frameNumber\0updateFrame(int)\0number\0"
+    "updateLayerNumber(int)\0updateLayerView()\0"
+    "frameLength\0updateLength(int)\0"
+    "updateContent()\0"
+};
+
+const QMetaObject TimeLine::staticMetaObject = {
+    { &QDockWidget::staticMetaObject, qt_meta_stringdata_TimeLine,
+      qt_meta_data_TimeLine, 0 }
+};
+
+const QMetaObject *TimeLine::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *TimeLine::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_TimeLine))
+        return static_cast<void*>(const_cast< TimeLine*>(this));
+    return QDockWidget::qt_metacast(_clname);
+}
+
+int TimeLine::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QDockWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: modification(); break;
+        case 1: lengthChange((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 2: frameSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 3: fontSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 4: labelChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 5: scrubChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 6: addKeyClick(); break;
+        case 7: removeKeyClick(); break;
+        case 8: newBitmapLayer(); break;
+        case 9: newVectorLayer(); break;
+        case 10: newSoundLayer(); break;
+        case 11: newCameraLayer(); break;
+        case 12: deleteCurrentLayer(); break;
+        case 13: playClick(); break;
+        case 14: loopClick(); break;
+        case 15: soundClick(); break;
+        case 16: fpsClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 17: onionChecked(); break;
+        case 18: onionType((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 19: onionKey(); break;
+        case 20: straightAheadKey(); break;
+        case 21: inbetweenKey(); break;
+        case 22: updateFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 23: updateLayerNumber((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 24: updateLayerView(); break;
+        case 25: updateLength((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 26: updateContent(); break;
+        default: ;
+        }
+        _id -= 27;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void TimeLine::modification()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TimeLine::lengthChange(QString _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void TimeLine::frameSizeChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void TimeLine::fontSizeChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void TimeLine::labelChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void TimeLine::scrubChange(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void TimeLine::addKeyClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 6, 0);
+}
+
+// SIGNAL 7
+void TimeLine::removeKeyClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 7, 0);
+}
+
+// SIGNAL 8
+void TimeLine::newBitmapLayer()
+{
+    QMetaObject::activate(this, &staticMetaObject, 8, 0);
+}
+
+// SIGNAL 9
+void TimeLine::newVectorLayer()
+{
+    QMetaObject::activate(this, &staticMetaObject, 9, 0);
+}
+
+// SIGNAL 10
+void TimeLine::newSoundLayer()
+{
+    QMetaObject::activate(this, &staticMetaObject, 10, 0);
+}
+
+// SIGNAL 11
+void TimeLine::newCameraLayer()
+{
+    QMetaObject::activate(this, &staticMetaObject, 11, 0);
+}
+
+// SIGNAL 12
+void TimeLine::deleteCurrentLayer()
+{
+    QMetaObject::activate(this, &staticMetaObject, 12, 0);
+}
+
+// SIGNAL 13
+void TimeLine::playClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 13, 0);
+}
+
+// SIGNAL 14
+void TimeLine::loopClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 14, 0);
+}
+
+// SIGNAL 15
+void TimeLine::soundClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 15, 0);
+}
+
+// SIGNAL 16
+void TimeLine::fpsClick(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 16, _a);
+}
+
+// SIGNAL 17
+void TimeLine::onionChecked()
+{
+    QMetaObject::activate(this, &staticMetaObject, 17, 0);
+}
+
+// SIGNAL 18
+void TimeLine::onionType(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 18, _a);
+}
+
+// SIGNAL 19
+void TimeLine::onionKey()
+{
+    QMetaObject::activate(this, &staticMetaObject, 19, 0);
+}
+
+// SIGNAL 20
+void TimeLine::straightAheadKey()
+{
+    QMetaObject::activate(this, &staticMetaObject, 20, 0);
+}
+
+// SIGNAL 21
+void TimeLine::inbetweenKey()
+{
+    QMetaObject::activate(this, &staticMetaObject, 21, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_timeline.o and pencil_dev/moc_timeline.o differ
diff -rupN pencil_backup/moc_toolset.cpp pencil_dev/moc_toolset.cpp
--- pencil_backup/moc_toolset.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_toolset.cpp    2009-09-28 17:10:52.000000000 -0500
@@ -0,0 +1,506 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'toolset.h'
+**
+** Created: Mon Sep 28 17:10:52 2009
+**      by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/toolset.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'toolset.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_SpinSlider[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       6,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+      12,   11,   11,   11, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+      32,   11,   11,   11, 0x0a,
+      51,   11,   11,   11, 0x0a,
+      68,   11,   11,   11, 0x0a,
+      84,   11,   11,   11, 0x0a,
+     101,   11,   11,   11, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_SpinSlider[] = {
+    "SpinSlider\0\0valueChanged(qreal)\0"
+    "changeValue(qreal)\0changeValue(int)\0"
+    "setValue(qreal)\0sliderReleased()\0"
+    "sliderMoved(int)\0"
+};
+
+const QMetaObject SpinSlider::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_SpinSlider,
+      qt_meta_data_SpinSlider, 0 }
+};
+
+const QMetaObject *SpinSlider::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *SpinSlider::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_SpinSlider))
+        return static_cast<void*>(const_cast< SpinSlider*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int SpinSlider::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: valueChanged((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 1: changeValue((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 2: changeValue((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 3: setValue((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 4: sliderReleased(); break;
+        case 5: sliderMoved((*reinterpret_cast< int(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 6;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void SpinSlider::valueChanged(qreal _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+static const uint qt_meta_data_ToolSet[] = {
+
+ // content:
+       2,       // revision
+       0,       // classname
+       0,    0, // classinfo
+      60,   12, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+       9,    8,    8,    8, 0x05,
+      19,    8,    8,    8, 0x05,
+      31,    8,    8,    8, 0x05,
+      42,    8,    8,    8, 0x05,
+      56,    8,    8,    8, 0x05,
+      70,    8,    8,    8, 0x05,
+      84,    8,    8,    8, 0x05,
+      96,    8,    8,    8, 0x05,
+     108,    8,    8,    8, 0x05,
+     119,    8,    8,    8, 0x05,
+     138,    8,    8,    8, 0x05,
+     158,    8,    8,    8, 0x05,
+     182,    8,    8,    8, 0x05,
+     206,    8,    8,    8, 0x05,
+     222,    8,    8,    8, 0x05,
+     236,    8,    8,    8, 0x05,
+     254,    8,    8,    8, 0x05,
+     271,    8,    8,    8, 0x05,
+     285,    8,    8,    8, 0x05,
+     311,    8,    8,    8, 0x05,
+     333,    8,    8,    8, 0x05,
+     354,    8,    8,    8, 0x05,
+     368,    8,    8,    8, 0x05,
+     381,    8,    8,    8, 0x05,
+     398,    8,    8,    8, 0x05,
+     414,    8,    8,    8, 0x05,
+     428,    8,    8,    8, 0x05,
+     444,    8,    8,    8, 0x05,
+     462,    8,    8,    8, 0x05,
+     482,    8,    8,    8, 0x05,
+     502,    8,    8,    8, 0x05,
+     516,    8,    8,    8, 0x05,
+     528,    8,    8,    8, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+     541,    8,    8,    8, 0x0a,
+     557,    8,    8,    8, 0x0a,
+     573,    8,    8,    8, 0x0a,
+     591,    8,    8,    8, 0x0a,
+     609,    8,    8,    8, 0x0a,
+     630,    8,    8,    8, 0x0a,
+     647,    8,    8,    8, 0x0a,
+     669,    8,    8,    8, 0x0a,
+     691,    8,    8,    8, 0x0a,
+     709,    8,    8,    8, 0x0a,
+     730,    8,    8,    8, 0x0a,
+     751,    8,    8,    8, 0x0a,
+     772,    8,    8,    8, 0x0a,
+     791,    8,    8,    8, 0x0a,
+     810,    8,    8,    8, 0x0a,
+     828,    8,    8,    8, 0x0a,
+     851,    8,    8,    8, 0x0a,
+     872,    8,    8,    8, 0x0a,
+     897,    8,    8,    8, 0x0a,
+     921,    8,    8,    8, 0x0a,
+     949,    8,    8,    8, 0x0a,
+     976,    8,    8,    8, 0x0a,
+     997,    8,    8,    8, 0x0a,
+    1011,    8,    8,    8, 0x0a,
+    1031,    8,    8,    8, 0x0a,
+    1052,    8,    8,    8, 0x0a,
+    1077,    8,    8,    8, 0x0a,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_ToolSet[] = {
+    "ToolSet\0\0rmClick()\0playClick()\0"
+    "addClick()\0pencilClick()\0eraserClick()\0"
+    "selectClick()\0moveClick()\0handClick()\0"
+    "penClick()\0pressureClick(int)\0"
+    "invisibleClick(int)\0preserveAlphaClick(int)\0"
+    "followContourClick(int)\0polylineClick()\0"
+    "bucketClick()\0eyedropperClick()\0"
+    "colouringClick()\0smudgeClick()\0"
+    "onionStraightAheadClick()\0"
+    "onionInbetweenClick()\0lengthClick(QString)\0"
+    "fpsClick(int)\0clearClick()\0thinLinesClick()\0"
+    "outlinesClick()\0mirrorClick()\0"
+    "onionRadio(int)\0widthClick(qreal)\0"
+    "featherClick(qreal)\0opacityClick(qreal)\0"
+    "colourClick()\0loopClick()\0soundClick()\0"
+    "setCounter(int)\0setWidth(qreal)\0"
+    "setFeather(qreal)\0setOpacity(qreal)\0"
+    "setInvisibility(int)\0setPressure(int)\0"
+    "setPreserveAlpha(int)\0setFollowContour(int)\0"
+    "setColour(QColor)\0changePencilButton()\0"
+    "changeEraserButton()\0changeSelectButton()\0"
+    "changeMoveButton()\0changeHandButton()\0"
+    "changePenButton()\0changePolylineButton()\0"
+    "changeBucketButton()\0changeEyedropperButton()\0"
+    "changeColouringButton()\0"
+    "changeThinLinesButton(bool)\0"
+    "changeOutlinesButton(bool)\0"
+    "changeSmudgeButton()\0resetMirror()\0"
+    "pressureClick(bool)\0invisibleClick(bool)\0"
+    "preserveAlphaClick(bool)\0"
+    "followContourClick(bool)\0"
+};
+
+const QMetaObject ToolSet::staticMetaObject = {
+    { &QWidget::staticMetaObject, qt_meta_stringdata_ToolSet,
+      qt_meta_data_ToolSet, 0 }
+};
+
+const QMetaObject *ToolSet::metaObject() const
+{
+    return &staticMetaObject;
+}
+
+void *ToolSet::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_ToolSet))
+        return static_cast<void*>(const_cast< ToolSet*>(this));
+    return QWidget::qt_metacast(_clname);
+}
+
+int ToolSet::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QWidget::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: rmClick(); break;
+        case 1: playClick(); break;
+        case 2: addClick(); break;
+        case 3: pencilClick(); break;
+        case 4: eraserClick(); break;
+        case 5: selectClick(); break;
+        case 6: moveClick(); break;
+        case 7: handClick(); break;
+        case 8: penClick(); break;
+        case 9: pressureClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 10: invisibleClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 11: preserveAlphaClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 12: followContourClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 13: polylineClick(); break;
+        case 14: bucketClick(); break;
+        case 15: eyedropperClick(); break;
+        case 16: colouringClick(); break;
+        case 17: smudgeClick(); break;
+        case 18: onionStraightAheadClick(); break;
+        case 19: onionInbetweenClick(); break;
+        case 20: lengthClick((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 21: fpsClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 22: clearClick(); break;
+        case 23: thinLinesClick(); break;
+        case 24: outlinesClick(); break;
+        case 25: mirrorClick(); break;
+        case 26: onionRadio((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 27: widthClick((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 28: featherClick((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 29: opacityClick((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 30: colourClick(); break;
+        case 31: loopClick(); break;
+        case 32: soundClick(); break;
+        case 33: setCounter((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 34: setWidth((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 35: setFeather((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 36: setOpacity((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+        case 37: setInvisibility((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 38: setPressure((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 39: setPreserveAlpha((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 40: setFollowContour((*reinterpret_cast< int(*)>(_a[1]))); break;
+        case 41: setColour((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+        case 42: changePencilButton(); break;
+        case 43: changeEraserButton(); break;
+        case 44: changeSelectButton(); break;
+        case 45: changeMoveButton(); break;
+        case 46: changeHandButton(); break;
+        case 47: changePenButton(); break;
+        case 48: changePolylineButton(); break;
+        case 49: changeBucketButton(); break;
+        case 50: changeEyedropperButton(); break;
+        case 51: changeColouringButton(); break;
+        case 52: changeThinLinesButton((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 53: changeOutlinesButton((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 54: changeSmudgeButton(); break;
+        case 55: resetMirror(); break;
+        case 56: pressureClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 57: invisibleClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 58: preserveAlphaClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        case 59: followContourClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+        default: ;
+        }
+        _id -= 60;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void ToolSet::rmClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void ToolSet::playClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+
+// SIGNAL 2
+void ToolSet::addClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+
+// SIGNAL 3
+void ToolSet::pencilClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 3, 0);
+}
+
+// SIGNAL 4
+void ToolSet::eraserClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 4, 0);
+}
+
+// SIGNAL 5
+void ToolSet::selectClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 5, 0);
+}
+
+// SIGNAL 6
+void ToolSet::moveClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 6, 0);
+}
+
+// SIGNAL 7
+void ToolSet::handClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 7, 0);
+}
+
+// SIGNAL 8
+void ToolSet::penClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 8, 0);
+}
+
+// SIGNAL 9
+void ToolSet::pressureClick(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 9, _a);
+}
+
+// SIGNAL 10
+void ToolSet::invisibleClick(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 10, _a);
+}
+
+// SIGNAL 11
+void ToolSet::preserveAlphaClick(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 11, _a);
+}
+
+// SIGNAL 12
+void ToolSet::followContourClick(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 12, _a);
+}
+
+// SIGNAL 13
+void ToolSet::polylineClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 13, 0);
+}
+
+// SIGNAL 14
+void ToolSet::bucketClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 14, 0);
+}
+
+// SIGNAL 15
+void ToolSet::eyedropperClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 15, 0);
+}
+
+// SIGNAL 16
+void ToolSet::colouringClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 16, 0);
+}
+
+// SIGNAL 17
+void ToolSet::smudgeClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 17, 0);
+}
+
+// SIGNAL 18
+void ToolSet::onionStraightAheadClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 18, 0);
+}
+
+// SIGNAL 19
+void ToolSet::onionInbetweenClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 19, 0);
+}
+
+// SIGNAL 20
+void ToolSet::lengthClick(QString _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 20, _a);
+}
+
+// SIGNAL 21
+void ToolSet::fpsClick(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 21, _a);
+}
+
+// SIGNAL 22
+void ToolSet::clearClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 22, 0);
+}
+
+// SIGNAL 23
+void ToolSet::thinLinesClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 23, 0);
+}
+
+// SIGNAL 24
+void ToolSet::outlinesClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 24, 0);
+}
+
+// SIGNAL 25
+void ToolSet::mirrorClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 25, 0);
+}
+
+// SIGNAL 26
+void ToolSet::onionRadio(int _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 26, _a);
+}
+
+// SIGNAL 27
+void ToolSet::widthClick(qreal _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 27, _a);
+}
+
+// SIGNAL 28
+void ToolSet::featherClick(qreal _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 28, _a);
+}
+
+// SIGNAL 29
+void ToolSet::opacityClick(qreal _t1)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 29, _a);
+}
+
+// SIGNAL 30
+void ToolSet::colourClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 30, 0);
+}
+
+// SIGNAL 31
+void ToolSet::loopClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 31, 0);
+}
+
+// SIGNAL 32
+void ToolSet::soundClick()
+{
+    QMetaObject::activate(this, &staticMetaObject, 32, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_toolset.o and pencil_dev/moc_toolset.o differ
Binary files pencil_backup/object.o and pencil_dev/object.o differ
Binary files pencil_backup/palette.o and pencil_dev/palette.o differ
Binary files pencil_backup/Pencil and pencil_dev/Pencil differ
diff -rupN pencil_backup/pencil.qrc pencil_dev/pencil.qrc
--- pencil_backup/pencil.qrc    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/pencil.qrc    2009-09-28 17:01:13.000000000 -0500
@@ -24,8 +24,8 @@
         <file>icons/magnify.png</file>
         <file>icons/smudge.png</file>
         
-        <file>icons/onionPrev.png</file>
-        <file>icons/onionNext.png</file>
+        <file>icons/onionStraightAhead.png</file>
+        <file>icons/onionInbetween.png</file>
        
         <file>icons/layer-vector.png</file>
         <file>icons/layer-bitmap.png</file>
diff -rupN pencil_backup/pencil.qrc~ pencil_dev/pencil.qrc~
--- pencil_backup/pencil.qrc~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/pencil.qrc~    2008-01-21 11:43:53.000000000 -0600
@@ -0,0 +1,52 @@
+<!DOCTYPE RCC><RCC version="1.0">
+    <qresource>
+        <file>icons/arrow.png</file>
+
+        <file>icons/clear.png</file>
+        <file>icons/remove.png</file>
+        <file>icons/add.png</file>
+        <file>icons/eraser.png</file>
+        <file>icons/pencil2.png</file>
+        <file>icons/house.png</file>
+        <file>icons/select.png</file>
+        <file>icons/move.png</file>
+        <file>icons/pen.png</file>
+        <file>icons/brush.png</file>
+        <file>icons/polyline.png</file>
+        <file>icons/eraser2.png</file>
+        <file>icons/hand.png</file>
+        <file>icons/bucket.png</file>
+        <file>icons/bucketTool.png</file>
+        <file>icons/eyedropper.png</file>
+        <file>icons/thinlines5.png</file>
+        <file>icons/outlines5.png</file>
+        <file>icons/mirror.png</file>
+        <file>icons/magnify.png</file>
+        <file>icons/smudge.png</file>
+       
+        <file>icons/onionPrev.png</file>
+        <file>icons/onionNext.png</file>
+       
+        <file>icons/layer-vector.png</file>
+        <file>icons/layer-bitmap.png</file>
+        <file>icons/layer-sound.png</file>
+        <file>icons/layer-camera.png</file>
+       
+        <file>icons/controls/play.png</file>
+        <file>icons/controls/loop.png</file>
+        <file>icons/controls/sound.png</file>
+        <file>icons/controls/separator.png</file>
+
+        <file>icons/prefspencil.png</file>
+        <file>icons/prefstimeline.png</file>
+        <file>icons/prefs-files.png</file>
+
+        <file>background/weave.jpg</file>
+        <file>background/dots.png</file>
+
+        <file>icons/logo.png</file>
+        <file>icons/icon.png</file>
+
+        <file>icons/aqua.png</file>
+    </qresource>
+</RCC>
Binary files pencil_backup/preferences.o and pencil_dev/preferences.o differ
diff -rupN pencil_backup/qrc_pencil.cpp pencil_dev/qrc_pencil.cpp
--- pencil_backup/qrc_pencil.cpp    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/qrc_pencil.cpp    2009-09-28 17:10:55.000000000 -0500
@@ -0,0 +1,5928 @@
+/****************************************************************************
+** Resource object code
+**
+** Created: Mon Sep 28 17:10:55 2009
+**      by: The Resource Compiler for Qt version 4.5.0
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include <QtCore/qglobal.h>
+
+static const unsigned char qt_resource_data[] = {
+  // /home/matthew/pencil_dev/background/weave.jpg
+  0x0,0x0,0x11,0x0,
+  0xff,
+  0xd8,0xff,0xe0,0x0,0x10,0x4a,0x46,0x49,0x46,0x0,0x1,0x1,0x1,0x0,0x48,0x0,
+  0x48,0x0,0x0,0xff,0xdb,0x0,0x43,0x0,0x5,0x3,0x4,0x4,0x4,0x3,0x5,0x4,
+  0x4,0x4,0x5,0x5,0x5,0x6,0x7,0xc,0x8,0x7,0x7,0x7,0x7,0xf,0xb,0xb,
+  0x9,0xc,0x11,0xf,0x12,0x12,0x11,0xf,0x11,0x11,0x13,0x16,0x1c,0x17,0x13,0x14,
+  0x1a,0x15,0x11,0x11,0x18,0x21,0x18,0x1a,0x1d,0x1d,0x1f,0x1f,0x1f,0x13,0x17,0x22,
+  0x24,0x22,0x1e,0x24,0x1c,0x1e,0x1f,0x1e,0xff,0xdb,0x0,0x43,0x1,0x5,0x5,0x5,
+  0x7,0x6,0x7,0xe,0x8,0x8,0xe,0x1e,0x14,0x11,0x14,0x1e,0x1e,0x1e,0x1e,0x1e,
+  0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+  0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+  0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0xff,0xc0,0x0,
+  0x11,0x8,0x0,0x81,0x0,0x81,0x3,0x1,0x22,0x0,0x2,0x11,0x1,0x3,0x11,0x1,
+  0xff,0xc4,0x0,0x19,0x0,0x0,0x3,0x1,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,
+  0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x3,0x4,0x1,0x8,0xff,0xc4,0x0,0x43,0x10,
+  0x0,0x2,0x1,0x3,0x2,0x3,0x4,0x6,0x6,0x7,0x6,0x7,0x1,0x0,0x0,0x0,
+  0x1,0x2,0x3,0x0,0x11,0x12,0x13,0x21,0x4,0x31,0x51,0x22,0x41,0x71,0xf0,0x23,
+  0x61,0x91,0xa1,0xb1,0xd1,0x14,0x32,0x33,0x73,0xc1,0xf1,0x34,0x42,0x53,0x81,0x92,
+  0x93,0xe1,0x24,0x52,0x54,0x72,0xb2,0xd2,0x15,0x43,0x44,0x63,0x74,0xa3,0xc2,0xe2,
+  0xff,0xc4,0x0,0x14,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+  0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xc4,0x0,0x14,0x11,0x1,0x0,0x0,0x0,0x0,
+  0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xda,0x0,0xc,
+  0x3,0x1,0x0,0x2,0x11,0x3,0x11,0x0,0x3f,0x0,0xf5,0x5a,0xa4,0x52,0x33,0x40,
+  0xdc,0x41,0xe,0xa5,0x6c,0xd6,0x60,0x8,0xe7,0x5c,0x81,0xd1,0x74,0x62,0x95,0xed,
+  0x8b,0xb9,0xc8,0x16,0x1,0x4f,0xe2,0x29,0x65,0x70,0x4b,0x48,0xad,0x11,0x1e,0x8c,
+  0xdf,0x32,0x5,0xe9,0xb5,0x5b,0x34,0x66,0x78,0x9c,0xab,0x3e,0xda,0xc7,0x71,0x6e,
+  0x5b,0xf9,0xde,0x83,0x47,0xc,0x63,0xbc,0x4c,0xb2,0x46,0x6d,0x10,0x52,0xb,0x1e,
+  0xe6,0xd8,0xf2,0xf3,0xb5,0x2c,0xf0,0xc4,0x86,0x3c,0x98,0x2a,0x2c,0xae,0x6f,0x97,
+  0x2d,0xb9,0x54,0xf8,0x67,0xf,0x14,0x25,0x24,0x42,0x42,0x95,0x60,0x26,0xb1,0x16,
+  0x37,0xad,0x91,0xbb,0x2b,0xb0,0xc,0x1c,0x9,0x9,0xb1,0x90,0x76,0x86,0x34,0x18,
+  0x67,0xe1,0x62,0x73,0x65,0x94,0xaf,0xa0,0x18,0x96,0x90,0x8b,0x12,0x7f,0x2a,0x53,
+  0x13,0x23,0xf6,0x9a,0xc5,0x65,0x65,0x61,0x9f,0x2e,0xcf,0x31,0xf1,0xab,0xb0,0x63,
+  0x9,0x8a,0x54,0x62,0x86,0x5,0x46,0xb3,0xc,0x85,0x8f,0x3a,0xed,0xdf,0x3c,0x64,
+  0x47,0x62,0x26,0xb6,0x44,0x82,0xc4,0x63,0x8f,0xcb,0xcf,0x30,0x8c,0x83,0x28,0x75,
+  0x6d,0x67,0xd3,0x52,0x4a,0xcb,0xb5,0xc3,0x5a,0xe2,0xaa,0xd7,0x79,0x8b,0x2b,0x20,
+  0xcf,0x88,0x4,0x8c,0x81,0xb1,0x3,0xcf,0x9b,0xd7,0x26,0x8e,0x55,0xba,0x94,0x76,
+  0xc6,0xe,0x66,0xdb,0x6f,0xea,0xf9,0x51,0x34,0x72,0x17,0xb8,0xbe,0xf3,0xc7,0x72,
+  0x0,0x36,0xfd,0x5b,0xd0,0x65,0x23,0xfb,0x3c,0xb0,0x39,0x8d,0x8,0xe,0x14,0x99,
+  0x86,0xdd,0xae,0xb6,0xbd,0x55,0x57,0x3c,0x8e,0x31,0xab,0xac,0x8b,0x6b,0x4a,0x8,
+  0x6b,0xe,0x54,0x4e,0xcc,0xea,0xcc,0xeb,0x21,0x23,0x20,0x4e,0xb,0xd4,0x54,0xca,
+  0xb0,0x7e,0x20,0xa7,0xe,0xca,0xc1,0xd5,0x8a,0x82,0x7,0xbf,0xcf,0x3f,0x5d,0xe8,
+  0x34,0x70,0xed,0x23,0x68,0xae,0x10,0xb2,0xba,0x48,0xe,0x4f,0xb9,0x37,0xe5,0xef,
+  0xf7,0xd6,0x88,0xf1,0x95,0x55,0xc3,0x2d,0x81,0x5b,0xda,0x50,0xa,0x9a,0xc9,0xc3,
+  0xcc,0x32,0x53,0xa7,0x22,0xdf,0x32,0x31,0x64,0xec,0x9b,0xde,0xb5,0x24,0x82,0x36,
+  0x47,0x65,0x99,0x63,0x7c,0x3b,0x56,0x18,0xfe,0xfe,0x9b,0xd0,0x75,0xe1,0x4,0xe4,
+  0xae,0x9f,0x59,0xef,0xe9,0x79,0x5f,0xbe,0x91,0xd4,0x1e,0x1a,0xe2,0x4e,0xd2,0x4,
+  0x61,0x8b,0xdb,0x6e,0xfd,0xaa,0x8d,0x1d,0x86,0xd1,0xb2,0x87,0x77,0x24,0x5c,0x1,
+  0xc8,0xf7,0xf7,0x5e,0xd4,0x81,0x19,0xb8,0x75,0x43,0x13,0x6,0x28,0x8a,0x2e,0xc2,
+  0xf6,0xbd,0x4,0xe2,0x48,0xb5,0xcc,0x5a,0xb2,0xf,0x4d,0x20,0x18,0xc9,0x7b,0x77,
+  0xef,0x7f,0x6d,0x67,0x11,0x88,0x5d,0xe1,0x98,0x3a,0xae,0x5,0x85,0xa4,0x17,0x37,
+  0x3b,0x1a,0xdb,0x2c,0x6c,0x67,0xc,0xc8,0xec,0x16,0x43,0xfd,0xc0,0x40,0xb6,0xf6,
+  0xeb,0x59,0x26,0x8d,0x97,0x87,0xc1,0x95,0xf0,0x31,0x90,0x15,0xdd,0x6e,0x2c,0x68,
+  0x34,0xff,0x0,0xc3,0x17,0xf6,0xef,0xec,0xa2,0xb2,0xe5,0xc1,0xf5,0x3f,0xc4,0x68,
+  0xa0,0xd1,0xc4,0xeb,0x2b,0xb9,0xd6,0xba,0x38,0x40,0x5,0xc5,0xd4,0xde,0xc7,0xc4,
+  0x7c,0xeb,0x8c,0xf3,0x99,0xa3,0x64,0x3a,0xa1,0x64,0x2a,0xca,0x2,0x92,0x5,0xb6,
+  0x22,0xa9,0x28,0xf,0x12,0xb8,0x88,0x9c,0x96,0xc7,0x3c,0x2e,0x3b,0x5d,0xfd,0x45,
+  0x4b,0x4f,0x58,0x24,0x72,0x2c,0x71,0x4a,0xb3,0x76,0x3b,0x3,0x16,0x16,0xf5,0x7b,
+  0x28,0x39,0x19,0x66,0x8d,0x5f,0x1d,0x9a,0x37,0xd8,0xc6,0x36,0x20,0xee,0x2b,0x5c,
+  0x6,0x46,0x90,0xa3,0x3,0x62,0xe4,0x5f,0x4c,0x6d,0x61,0xb5,0xeb,0x7,0xa,0xb2,
+  0x21,0x50,0xa8,0xa0,0xd9,0xd4,0xab,0x44,0x48,0xd9,0xbe,0x75,0x50,0xc6,0x29,0xcc,
+  0xa3,0x16,0x8d,0xa5,0x52,0x7d,0x1b,0x29,0x5b,0xec,0x39,0x50,0x56,0x46,0xca,0x14,
+  0xc,0xaa,0x92,0x88,0xdc,0x90,0x63,0xbd,0xc0,0x3b,0xdb,0xdd,0x44,0x89,0x99,0x3b,
+  0xa5,0x8c,0x88,0x1,0x31,0x65,0x72,0x40,0xe5,0xee,0xae,0x49,0x26,0x20,0xac,0xb1,
+  0xa1,0xb0,0x95,0x15,0x95,0x49,0x23,0xd5,0x49,0x17,0x11,0x3,0xb4,0xa2,0xeb,0x75,
+  0x31,0x13,0xb9,0x6,0xfc,0xbc,0xf8,0xd0,0x33,0x21,0x31,0xaf,0x34,0xf4,0x4e,0x97,
+  0x11,0x9b,0x6c,0x6f,0xf8,0x79,0xee,0x55,0xbb,0x4d,0x30,0x4,0x5f,0x52,0x26,0xb0,
+  0x8f,0x95,0xea,0x8a,0x62,0x2c,0x11,0x5b,0x22,0x51,0xf1,0xb4,0x8c,0x2e,0x41,0xf3,
+  0xed,0xf0,0xa9,0x5b,0x87,0x9a,0x53,0x34,0x4f,0x13,0x37,0xa3,0x6b,0x6a,0x11,0x62,
+  0x3a,0xdb,0xdb,0x41,0xd7,0x8f,0x5b,0x87,0x2c,0x90,0xc6,0x5a,0xf2,0x62,0x56,0x33,
+  0xcc,0x1e,0x95,0x6,0x45,0x28,0xec,0x2,0xab,0x2a,0x21,0x37,0x88,0xdc,0x72,0x3,
+  0x9f,0x3d,0xef,0x56,0x84,0x2a,0x4b,0x24,0x2e,0xd1,0x63,0x77,0x61,0xdb,0x37,0xdf,
+  0xbe,0xa5,0x2c,0x42,0x32,0xc1,0x8c,0x6d,0x1e,0x8a,0xb8,0x2d,0x29,0xbd,0x81,0xf3,
+  0xbf,0xae,0x81,0xf8,0x65,0xbc,0x88,0xda,0x48,0xe4,0x87,0xc,0xcb,0x1,0xad,0x11,
+  0x10,0x0,0x42,0xaa,0x4,0x8a,0xbb,0x34,0x6,0xdd,0x2c,0x7d,0xb5,0x80,0xa1,0x8b,
+  0x8c,0x81,0xa1,0x94,0xe2,0xce,0xf7,0xb3,0x9c,0x79,0x77,0x9a,0xd8,0x24,0x32,0x70,
+  0xf6,0x7b,0x80,0xd0,0x29,0x23,0x33,0x71,0x63,0xcc,0x50,0x3e,0x6b,0x1d,0x92,0x65,
+  0x5c,0x35,0x2d,0x63,0x15,0xc8,0xdb,0x62,0x28,0x68,0x35,0x63,0x50,0xaf,0x13,0x30,
+  0x8c,0x3a,0x93,0x9,0xb9,0x3,0xf7,0xf5,0xb5,0x74,0xe9,0xcf,0x11,0x39,0xa9,0xca,
+  0x63,0xc8,0xb0,0xbe,0xdd,0xde,0xba,0x4e,0x1d,0x62,0x93,0x83,0x8f,0x17,0x74,0x68,
+  0xd1,0xac,0xc5,0xcd,0xc5,0x8d,0xbc,0x6d,0x40,0xd8,0xb4,0x82,0x32,0xca,0x85,0x96,
+  0x60,0x5d,0x74,0x6c,0x48,0xee,0xe7,0x49,0xa,0x38,0x8c,0xa0,0x48,0x8e,0x5,0xf1,
+  0xbc,0x47,0x98,0x20,0x55,0x59,0x33,0x8d,0x75,0x2f,0xbc,0x8a,0xa4,0xa3,0xb0,0x20,
+  0xd8,0x6f,0x59,0x24,0xd6,0x89,0xa4,0x94,0xa8,0x26,0x36,0x6b,0xe4,0xcc,0x3,0xaf,
+  0x5a,0xd,0x5a,0x2f,0xd1,0x3f,0x90,0x3e,0x54,0x56,0x7f,0xa6,0xc3,0xfe,0x11,0xff,
+  0x0,0x8e,0x8a,0xb,0x46,0xa8,0xbc,0x31,0xec,0x26,0xca,0x54,0x63,0x13,0x75,0xe8,
+  0x68,0xd2,0xe1,0xd2,0x5c,0x34,0xe1,0xd2,0xd5,0x12,0x0,0x14,0x8c,0x4d,0xbf,0x1b,
+  0x52,0x99,0x4,0x70,0x1b,0xc8,0x8,0xb3,0xdf,0x19,0x88,0xb9,0xbe,0xd5,0x4c,0xc0,
+  0xcf,0xfb,0x49,0x78,0x8b,0x46,0xc8,0x44,0xb6,0x23,0x90,0x20,0xd0,0x65,0xd3,0x55,
+  0xc5,0xe3,0x68,0x8,0x50,0xfc,0x98,0xf5,0xe7,0xf1,0xf6,0x55,0x5e,0xe1,0x9d,0x94,
+  0x46,0x8f,0x9a,0x7,0xd,0x29,0xb1,0x19,0x5c,0x35,0x38,0xd4,0x51,0x1a,0x86,0x37,
+  0xd,0x22,0xdf,0x30,0x2e,0x3c,0x3b,0xff,0x0,0xa5,0x70,0xfd,0x20,0x9,0x34,0xdc,
+  0x23,0xc,0x6d,0x76,0x52,0x7,0xab,0xd5,0xf9,0x50,0x52,0x37,0xcc,0xc,0x94,0x29,
+  0x66,0x7b,0x81,0x36,0xc4,0xdb,0xad,0x4e,0x41,0x1b,0xb4,0x8e,0xc0,0x82,0x63,0x44,
+  0x37,0x90,0x5b,0x9d,0xef,0xf0,0xa6,0xb9,0xd6,0x2c,0x22,0xa,0xad,0x29,0xb8,0x38,
+  0xd8,0x1b,0x73,0xf3,0xf9,0xcb,0x57,0x4e,0x24,0x25,0x5d,0x6e,0x88,0x36,0x55,0xdc,
+  0x13,0xbe,0xd4,0x14,0x77,0x78,0xf8,0x88,0xdc,0x72,0xbb,0x97,0x51,0x20,0x27,0x97,
+  0x3a,0x38,0x94,0x8a,0x64,0x92,0xf9,0x76,0x91,0x1c,0x35,0xc5,0xf9,0xed,0x6a,0xab,
+  0x4a,0x44,0x98,0xbb,0x96,0x56,0x76,0x0,0x60,0x37,0xb0,0xf7,0xd4,0xd8,0xde,0x32,
+  0x55,0xdc,0x90,0x91,0xfd,0x68,0xb7,0x3f,0xd6,0x81,0x1c,0x42,0xdc,0x41,0xcd,0xa4,
+  0x47,0xb3,0xef,0xa8,0x2,0xb1,0x1c,0xcf,0x9e,0x94,0xac,0xa5,0x55,0xb1,0x32,0x11,
+  0xa0,0x19,0x46,0xa0,0x36,0xc4,0xf7,0x1a,0xd2,0xe1,0x9a,0x58,0xed,0x1b,0xd8,0xbb,
+  0x6,0xb4,0x63,0xa5,0x49,0x2e,0xd,0x83,0x2e,0x5a,0x18,0xd8,0xa6,0xe2,0xc7,0x71,
+  0x41,0x9,0x56,0x39,0x24,0x81,0x82,0x15,0xbb,0xb2,0x9f,0x48,0x2c,0x6e,0x2c,0x7e,
+  0x34,0xdc,0x25,0x93,0x87,0x52,0xe8,0xd6,0x58,0x2d,0x98,0x7d,0xf6,0x6e,0xf1,0x55,
+  0x31,0x48,0xcd,0xd,0xd4,0xc,0x66,0x2c,0xae,0xaa,0x2d,0xb8,0xe9,0xe3,0xf0,0xa5,
+  0x8d,0x1c,0x46,0xa1,0xd4,0x82,0x23,0x63,0x90,0x8c,0x37,0xeb,0x6f,0xe7,0xd7,0x41,
+  0x48,0xd4,0xa4,0xd2,0x46,0xa5,0xec,0x26,0xc,0x8,0x6e,0x44,0x8d,0xc1,0xa9,0xc5,
+  0xa9,0xa7,0xaa,0xba,0x8d,0xe8,0x9e,0xe0,0xc8,0x37,0xb1,0xeb,0xcc,0xd6,0x85,0x59,
+  0x75,0x64,0x42,0x24,0x27,0x25,0x6b,0x95,0x5b,0x11,0xb7,0xf5,0xa5,0x58,0xe4,0x42,
+  0x8c,0x22,0x7,0x79,0xd,0x91,0x57,0xaf,0x33,0xe3,0x41,0x33,0x2d,0x84,0xad,0x84,
+  0x8c,0xad,0xa7,0xb6,0xa8,0xd8,0xf9,0xb5,0x54,0x15,0xcf,0x7,0x46,0x20,0xb3,0xda,
+  0xf2,0x5f,0x6a,0x56,0xe,0xf1,0xc9,0x82,0xc8,0xd9,0x46,0x84,0x76,0x54,0x6c,0x2f,
+  0xb5,0x70,0x6,0x1c,0x58,0x50,0x97,0xc,0xe4,0x80,0x63,0x2,0xdd,0x91,0xbd,0x6,
+  0x7d,0x2e,0x13,0xfc,0x34,0x5f,0xcc,0x1f,0x3a,0x2b,0x4e,0x97,0xfd,0xd4,0xf6,0x7f,
+  0xfa,0xa2,0x81,0xae,0x4c,0x2c,0x8c,0x1,0x5c,0x58,0x86,0x56,0x5d,0xbc,0xf5,0xa5,
+  0x95,0x54,0x9,0x57,0x25,0xed,0x2a,0x15,0xc8,0x2e,0xfd,0x4f,0xc6,0x9a,0x18,0xd8,
+  0x1c,0x96,0xd8,0x8c,0xee,0xad,0x18,0x16,0x3b,0xdf,0x7e,0x9b,0xd2,0x45,0x88,0xe1,
+  0xd1,0x1d,0x23,0x5c,0x63,0x4b,0xa3,0xc7,0x7b,0x6f,0xfd,0x68,0x17,0x89,0x80,0xab,
+  0x6a,0x24,0x4d,0x65,0x32,0x7d,0x55,0x1c,0x88,0xb7,0x5a,0x52,0xa3,0x49,0x98,0xab,
+  0x32,0x31,0x8b,0x76,0x51,0xcb,0xaf,0xc2,0xa8,0x15,0xa2,0x6e,0xc6,0x9c,0x6a,0x25,
+  0x6b,0xd,0x36,0x3d,0x4f,0x31,0x53,0x99,0x44,0x71,0x4a,0xe8,0x90,0x14,0x28,0xae,
+  0xc2,0xec,0x2d,0xb7,0xc2,0x81,0xe5,0x8d,0xd4,0xdc,0xab,0x36,0x79,0xa9,0x61,0x18,
+  0xe9,0xe3,0x5c,0x95,0x43,0xc0,0xcb,0xe9,0x5,0xd5,0x2d,0xd8,0x23,0x6a,0x79,0x11,
+  0x73,0xa,0xc,0x18,0xbb,0x92,0x3,0x3,0xce,0xd6,0xf3,0x7e,0x94,0x8b,0xf6,0x6e,
+  0x92,0x24,0xa,0x34,0xc7,0x7b,0x62,0x40,0x6e,0x9d,0xd4,0x8,0xd1,0xb8,0x2b,0xa6,
+  0x59,0x1a,0x29,0x5f,0xb2,0x52,0xe0,0xdd,0x4d,0x8f,0x85,0x67,0xd4,0xa,0xe,0xca,
+  0xa7,0x41,0x6e,0x18,0x30,0xef,0xb7,0x2a,0xdc,0xf1,0x29,0x95,0x11,0xa2,0x1,0xcb,
+  0x91,0x71,0x23,0x1d,0xf1,0xbf,0xca,0xb3,0x4c,0xb9,0x44,0x25,0xd0,0x4,0xe9,0xa8,
+  0x27,0x5a,0xdd,0xe3,0x63,0x7f,0x3b,0xd0,0x77,0x56,0x1d,0x78,0xa4,0xc,0x8a,0xba,
+  0x8d,0x7b,0x86,0xda,0xe3,0x95,0xaa,0xb7,0x8a,0x48,0x1,0x73,0x11,0x73,0xc3,0xb6,
+  0xf7,0x3b,0xd8,0x8d,0xfe,0x15,0x9,0x96,0xce,0x3,0x2b,0xfd,0xbb,0x63,0x94,0xb7,
+  0xc4,0xd8,0xed,0xb7,0x9d,0xe9,0x78,0x56,0x51,0xa2,0x62,0x93,0x4d,0x5a,0x6,0x16,
+  0x2f,0xdd,0x7b,0x8f,0x65,0x5,0x96,0x34,0xf,0xb,0xa1,0x8c,0x5d,0xc1,0x51,0x76,
+  0x26,0xe4,0x6f,0xbf,0x4e,0xd5,0x70,0xa2,0x22,0xc,0x1d,0x4a,0x34,0x6e,0xa,0x84,
+  0x22,0xc4,0xb0,0xde,0x99,0x72,0x26,0x1b,0x8c,0x1d,0x67,0x53,0x88,0x92,0xe1,0x81,
+  0x5e,0x7e,0x7a,0x50,0xce,0xfa,0x23,0x22,0x54,0x18,0xdc,0x30,0x32,0x5a,0xfb,0xdb,
+  0x9d,0x3,0x25,0xb5,0x9a,0x26,0x92,0x3c,0xae,0x87,0xb4,0xad,0xf5,0xad,0xb7,0xc0,
+  0xd7,0x62,0x28,0xad,0x1d,0x8c,0xb,0x91,0x72,0x2c,0xa7,0x1f,0xdd,0xe7,0xad,0x12,
+  0x96,0x13,0x48,0x7b,0x20,0x6b,0x46,0x1,0xf,0x6e,0xe1,0xb1,0xae,0x3a,0x33,0x88,
+  0x48,0x61,0x91,0x56,0xb8,0xe,0x6f,0xcb,0xce,0xf4,0x4,0xba,0x62,0x39,0xc1,0x64,
+  0xb,0x84,0x60,0x1c,0x49,0xa,0x77,0xf6,0x53,0xf1,0xc,0xa5,0x98,0x92,0x85,0x56,
+  0x45,0xb8,0x66,0x2a,0x50,0x91,0xe7,0xdb,0x51,0x8a,0x73,0x37,0xf,0x28,0x72,0x8a,
+  0xdf,0x47,0xc,0x6c,0xfb,0x78,0x8d,0xab,0x4a,0xb3,0x7d,0x20,0x2,0x50,0x8c,0x94,
+  0x39,0xd4,0xef,0xc7,0x97,0xac,0x6f,0x40,0x9a,0xf0,0x7e,0xda,0x3f,0xe6,0xa,0x2b,
+  0xba,0x13,0x7f,0x72,0xf,0xe1,0x1f,0xed,0xa2,0x82,0x5c,0x3c,0xd1,0x33,0x69,0x86,
+  0x8f,0x32,0xae,0x2f,0x8b,0x29,0xdf,0xd5,0xe7,0x9d,0x51,0x8d,0xa3,0x2f,0x6e,0x1d,
+  0x86,0x92,0x82,0xa1,0x8e,0xeb,0x7d,0xfe,0x35,0x6,0x9b,0x4e,0x40,0xe6,0x13,0x80,
+  0x65,0x21,0x96,0x51,0x63,0x7d,0xbf,0x13,0x57,0x8a,0x5b,0xc7,0x75,0x59,0xf1,0x6d,
+  0x40,0x46,0xd7,0x5f,0x1,0x40,0x36,0x94,0x60,0x33,0x2a,0x15,0x32,0x15,0xc,0x26,
+  0x6d,0xb6,0xef,0xa9,0x90,0xaa,0xb8,0x0,0x4a,0xe8,0x8b,0x63,0x35,0xc9,0x5e,0x5e,
+  0xcf,0xa,0xd1,0xaa,0xc3,0x3f,0xb4,0xb0,0x8,0xc4,0x80,0xd,0xfa,0xf8,0x54,0x58,
+  0x2d,0xd6,0x37,0x12,0x92,0x1d,0xd4,0x6c,0x2f,0x6b,0x5f,0x6f,0x6d,0x7,0x43,0x2a,
+  0x9c,0x9,0x40,0x75,0x32,0x0,0xcf,0x7b,0x8b,0x6c,0x41,0x3b,0xf3,0xae,0x31,0x5f,
+  0xa2,0xb6,0x4b,0x61,0xa6,0x46,0x2d,0x36,0xfb,0x9e,0xb5,0xd8,0xae,0xd1,0x69,0xb6,
+  0x65,0x4a,0xa6,0xd,0xa6,0xa0,0xfb,0xf6,0xfc,0xe9,0x78,0x77,0x95,0x42,0xc1,0x22,
+  0xb5,0xce,0x77,0x53,0x10,0xb3,0xfb,0x39,0x7e,0x54,0x1a,0x8,0x90,0x38,0x4,0xb1,
+  0x41,0x20,0x0,0xe6,0x39,0x63,0xf3,0xac,0xae,0x1,0x64,0x59,0x35,0x98,0x4b,0x9,
+  0x1b,0x62,0x41,0xb1,0xe5,0xe3,0x56,0x5b,0x28,0x90,0xe9,0xc9,0xda,0x54,0x20,0x18,
+  0xc1,0x1e,0xc1,0x44,0xa0,0x2b,0xba,0x98,0xcb,0x20,0x97,0x25,0xc6,0x2c,0x8a,0xdc,
+  0x7c,0xe8,0x25,0xa4,0xfa,0x80,0xa1,0x7b,0x6a,0x0,0xc0,0x4,0x3d,0xd5,0x4,0x33,
+  0x16,0x89,0x8b,0x33,0xb6,0x9b,0xdc,0x92,0xa1,0xaf,0x7f,0x3f,0xa,0xb6,0xa2,0xe3,
+  0x83,0xa4,0x80,0x94,0xbb,0x7a,0x2b,0x6,0x1,0xb9,0xf8,0x8a,0x1d,0xd0,0x4a,0xea,
+  0xcb,0xa9,0x79,0x41,0x3e,0x86,0xfb,0x1e,0xa2,0x82,0x40,0xca,0x78,0x58,0xe4,0x52,
+  0xcc,0xa8,0xf1,0x92,0x19,0xc6,0xc3,0xc6,0xae,0x4c,0xcd,0x18,0x25,0xd9,0x58,0xc6,
+  0xfc,0xd9,0x7a,0xf4,0xa9,0xa6,0x2a,0x8e,0xe8,0x84,0x29,0x4,0x3a,0xfd,0x1f,0xd6,
+  0x7b,0xbc,0xfb,0xea,0x91,0xa2,0x4,0x65,0x45,0xa,0xa6,0x5d,0x86,0x95,0xf1,0xc8,
+  0x77,0x50,0x5,0x9c,0x4a,0xfd,0x82,0x9,0x78,0xec,0x55,0xc1,0xb9,0xb0,0xdc,0x8f,
+  0x1b,0xd7,0x30,0x55,0x64,0x45,0x56,0x57,0x8d,0xa4,0x0,0x87,0x5d,0xaf,0xeb,0xee,
+  0xa4,0x6d,0x26,0x8e,0x25,0x9b,0x15,0x62,0x1a,0x33,0x8c,0x26,0xc4,0xe,0x9e,0xcf,
+  0x3d,0xfd,0x6,0x37,0xe1,0xe2,0x77,0x48,0xd9,0x81,0x46,0xcb,0x44,0x8b,0xef,0x63,
+  0xee,0xa0,0x57,0x63,0xa1,0x24,0x8c,0xac,0x2d,0x19,0x5c,0x75,0x31,0xde,0xf6,0xd8,
+  0xfa,0xc5,0x8f,0x9d,0x9c,0xdc,0x34,0x8b,0xe9,0x2c,0x70,0xa,0xc1,0x95,0xaf,0xb7,
+  0xbf,0xbb,0xfa,0x54,0x84,0x2a,0xf0,0x4b,0x12,0x62,0x43,0x66,0x0,0x30,0x9b,0xef,
+  0xcb,0x9f,0x9f,0x75,0x4d,0xa5,0x45,0x19,0x18,0xe3,0x24,0x84,0x72,0xaf,0x11,0xf5,
+  0xf,0xc2,0x83,0x66,0x5c,0xf,0xed,0x93,0xf8,0x68,0xa4,0xfa,0x44,0x3d,0x1b,0xf8,
+  0x47,0xce,0x8a,0x9,0x99,0x58,0x66,0xda,0x6c,0x2c,0x50,0x9b,0x45,0xb8,0xb1,0xb1,
+  0xaa,0xb0,0x31,0x71,0x59,0x61,0xd9,0x12,0xb6,0xeb,0x16,0x5b,0x15,0xfc,0xfc,0x7d,
+  0xd5,0xc9,0x1a,0x9,0x40,0x99,0xd2,0x44,0x56,0x8c,0xa3,0xdd,0x5b,0x6e,0x84,0xd4,
+  0xe1,0x9a,0x38,0xdd,0xd5,0xd9,0xf6,0x75,0x4,0xf6,0xac,0x54,0x8b,0x50,0x6a,0x2c,
+  0x1e,0x32,0x41,0x21,0x9b,0x87,0x7,0xec,0x8d,0xad,0x4e,0x24,0x2d,0x2b,0xf,0xd6,
+  0x59,0x41,0xde,0x23,0x71,0x71,0xf2,0xef,0xac,0xf0,0xcd,0x19,0x8b,0x51,0x65,0x1d,
+  0x98,0x5d,0x48,0x37,0xd8,0x83,0xd7,0xba,0xab,0x2c,0xc9,0x1b,0x23,0x19,0x4d,0x9a,
+  0x41,0xbe,0xa1,0x0,0xf6,0x7b,0xe8,0x21,0xe8,0xca,0x58,0x29,0xba,0x0,0x4a,0x98,
+  0x8e,0xd6,0x7b,0xd3,0xc4,0xec,0xb3,0x69,0x32,0x96,0x4d,0x56,0x2,0xe8,0xdb,0x5c,
+  0x75,0xb5,0x3b,0xce,0xb7,0xa,0x26,0x0,0x10,0xeb,0xbb,0x1d,0x88,0x3d,0x6d,0x48,
+  0xe1,0x75,0xac,0xec,0xe9,0x69,0x40,0xe,0x92,0xdc,0x5c,0xaf,0x7d,0x0,0xb2,0xe3,
+  0x1e,0x13,0x28,0x5b,0x22,0x60,0xf6,0x22,0xe0,0x11,0xb1,0xf6,0xd5,0x5d,0x90,0x4d,
+  0x21,0x56,0x7,0x17,0x53,0xf5,0x88,0xd8,0xfc,0x6a,0x20,0xb0,0xe1,0xcb,0x2c,0xac,
+  0x6d,0x1b,0x2,0x35,0x2f,0xb8,0x3e,0x45,0x34,0xd3,0x23,0x9,0xe4,0x4e,0x24,0x85,
+  0xa,0xac,0x4c,0x6e,0x36,0xb7,0x3f,0x9d,0x2,0xcc,0x53,0x12,0x17,0x5,0x65,0x46,
+  0xe7,0x2b,0x83,0xcf,0xa5,0x75,0x9a,0x29,0x11,0xdf,0x38,0xd8,0x2e,0x99,0x24,0x12,
+  0x7b,0xea,0x9a,0xb2,0x80,0x3,0xcd,0x1f,0x26,0xa,0xfa,0x83,0x91,0x1b,0x13,0x4b,
+  0x69,0x15,0xdc,0xa4,0x8b,0x76,0x89,0x49,0x50,0x56,0xfb,0x7a,0xfc,0xf3,0xa0,0x98,
+  0xd,0xc,0xec,0xea,0x50,0x11,0x96,0x57,0x66,0x20,0x8a,0x60,0x32,0x92,0x41,0x75,
+  0x52,0x4a,0xb5,0x89,0x6b,0x11,0xb7,0x9f,0xdf,0x4e,0xcf,0x2a,0xca,0xa7,0x39,0x31,
+  0x76,0xc7,0xeb,0xaf,0x2b,0x7e,0x75,0x54,0xd4,0x16,0xb9,0x94,0x59,0x45,0xc8,0x75,
+  0x23,0xdf,0x41,0x9e,0x4d,0x58,0xe3,0x5,0x5e,0x12,0xab,0x9f,0xd6,0x66,0x3c,0xfc,
+  0xfc,0x6a,0x43,0x88,0x74,0x8e,0x26,0x59,0x62,0x8,0xc8,0xaa,0x9,0x91,0xb6,0x37,
+  0xdc,0x56,0x90,0x78,0x88,0xdc,0xa9,0x69,0x1d,0x73,0x38,0x9c,0xd4,0x83,0x7e,0xe3,
+  0x7e,0x55,0xc1,0x24,0x86,0x16,0x2c,0xb2,0x5d,0x45,0xc8,0x12,0x2e,0xe4,0x1b,0xd0,
+  0x49,0x67,0x7,0x88,0xda,0x58,0xc0,0x2c,0xca,0x57,0x57,0xbc,0xf7,0x5f,0xba,0xa5,
+  0xc5,0x49,0x2e,0x9b,0x59,0x8a,0x38,0x85,0x6c,0xb,0x16,0x17,0xca,0xdc,0xfc,0xf3,
+  0xad,0x13,0x2c,0x85,0xe5,0x52,0x9c,0x41,0x5,0xc1,0xc,0xa5,0x6e,0x2e,0x3a,0x79,
+  0xf7,0x52,0x89,0x24,0x9b,0x86,0x47,0x56,0xe2,0x1f,0x2c,0x91,0x86,0x4a,0x2e,0x1,
+  0x23,0x95,0x4,0x35,0xdf,0xf6,0x1c,0x47,0xf1,0x1a,0x29,0xfe,0x9e,0xbd,0x27,0xf7,
+  0x51,0x40,0xc0,0xa2,0xa3,0x3c,0x72,0x90,0x3b,0x5d,0xad,0x53,0xb6,0xfb,0xb,0x77,
+  0xd3,0x39,0xc,0xe6,0x74,0x99,0x6f,0x64,0x62,0x33,0xec,0xee,0x29,0x63,0x32,0x6a,
+  0xe0,0xf2,0xca,0xac,0xd9,0x10,0xc1,0x94,0x8e,0x7d,0xc0,0xf5,0xae,0xc6,0x24,0xc7,
+  0x3e,0x1f,0x8a,0x72,0x44,0x6a,0x40,0xb2,0xf6,0x85,0xf9,0x79,0xeb,0x41,0xde,0x1a,
+  0x45,0x79,0x23,0x43,0x2a,0xb3,0x33,0x48,0x1,0xd4,0xb9,0xf7,0x8f,0x36,0xa2,0x3e,
+  0x20,0xe9,0xe8,0x15,0xed,0x85,0x43,0x88,0x71,0xda,0x1c,0xaa,0x9e,0x98,0x4c,0x8c,
+  0x3,0x9b,0x48,0xcd,0x62,0xaa,0x3b,0x36,0xf3,0xef,0xa4,0x93,0x39,0x20,0xa,0xd1,
+  0xb6,0xd0,0xdd,0x4b,0x46,0xe,0xe0,0xfe,0x54,0xd,0x24,0xdb,0xb0,0x63,0x25,0x83,
+  0x3a,0x82,0x5c,0xb,0x5b,0xcf,0xba,0x95,0xd8,0x37,0x69,0x5e,0x55,0x75,0x68,0xcf,
+  0x69,0x97,0x7e,0xef,0x75,0x3b,0x65,0xaa,0xdb,0xc8,0x2e,0xf9,0x6f,0x18,0xe9,0x52,
+  0x6c,0x84,0x57,0x64,0x20,0x84,0x53,0xf6,0x63,0x6b,0x1f,0x87,0xce,0x83,0xb0,0xb6,
+  0xeb,0x6d,0x60,0x7b,0x6a,0xc3,0xb3,0x72,0x79,0xde,0xd4,0xe5,0x9a,0xc2,0x70,0xf3,
+  0x35,0xe1,0xb6,0x41,0x54,0xf2,0x6e,0x95,0x24,0xc0,0x71,0x28,0x12,0xc2,0xef,0x22,
+  0x58,0x45,0xba,0x9c,0x6f,0x4a,0x54,0x24,0x42,0x58,0x22,0x50,0x34,0x18,0x98,0xcc,
+  0x76,0xdc,0x73,0x0,0x7e,0x1e,0xaa,0xb,0x2a,0x82,0x23,0x0,0x4a,0x1,0x92,0xc6,
+  0xe8,0xbd,0x93,0x51,0x8d,0x80,0x11,0x2e,0x53,0x24,0xda,0x2c,0x1,0x8,0x5,0xc0,
+  0x3e,0xea,0xa9,0x16,0x94,0x62,0x10,0x12,0x51,0x9a,0xd0,0x93,0x96,0xfb,0x9e,0x74,
+  0xb8,0xdc,0xe2,0x5a,0x3b,0x10,0xe4,0x7a,0x3,0xcb,0xa7,0xc3,0xc9,0xa0,0x72,0x63,
+  0x33,0x69,0xbe,0xa7,0x69,0x97,0xf5,0x54,0xa9,0x36,0xda,0xb8,0x8b,0x16,0x21,0x4a,
+  0x48,0x48,0x85,0x94,0xb,0xf,0xaa,0xf,0x77,0xb2,0xb8,0x1,0xd9,0x65,0x68,0xcd,
+  0xb4,0xc3,0xd,0x22,0x6f,0xb7,0x3b,0xd7,0x71,0xd9,0x63,0x69,0xa2,0xcb,0x17,0x3,
+  0xd0,0x9e,0x40,0xf7,0x8a,0xa,0x49,0x60,0x5d,0x99,0x24,0xc4,0x95,0xe,0xad,0x1a,
+  0x9f,0x81,0xa8,0x48,0xba,0x6f,0x32,0x18,0x65,0xc1,0xcb,0x1d,0x90,0x10,0xbe,0x7f,
+  0xa,0x7c,0x19,0xa2,0x90,0x47,0xc4,0x46,0x5b,0x4d,0x7e,0xbf,0xe,0x40,0x23,0xfa,
+  0xd2,0x48,0x88,0xd2,0x4d,0x13,0x68,0x10,0xec,0x6c,0x30,0x26,0xc7,0x1f,0x65,0x3,
+  0xea,0x26,0xab,0x4a,0xb,0x8b,0xb2,0x35,0x8a,0xf,0xf,0xc6,0xbb,0xc3,0xf6,0x65,
+  0xb1,0x85,0xec,0xa5,0x8a,0xb1,0x88,0x58,0x82,0x77,0xf8,0xd6,0x66,0x46,0x68,0x75,
+  0x23,0x5e,0x1e,0x42,0x42,0x11,0x8a,0xb5,0xc8,0xbf,0x31,0xeb,0xf9,0xfb,0x48,0x33,
+  0x59,0xd4,0xa6,0x8d,0x99,0xdf,0x70,0x8d,0xb6,0xd7,0x23,0xe3,0x41,0xb3,0x7f,0xda,
+  0x25,0x14,0xb8,0x1e,0x8b,0xfc,0xa6,0xff,0x0,0x6d,0x14,0x19,0x40,0x28,0x15,0xb3,
+  0x70,0x44,0xa4,0x2b,0x2a,0x3,0x6e,0xcf,0xc3,0x9f,0xbe,0xb8,0x86,0x36,0x2a,0x4a,
+  0xa8,0xf,0x7,0x6b,0x18,0xf6,0xd9,0xaf,0x70,0x2b,0xb1,0x17,0x8a,0x6b,0x2f,0xa,
+  0x16,0xf2,0x7e,0xc8,0xad,0xfb,0x34,0x47,0x89,0x11,0x13,0xa,0x82,0x23,0x90,0xb,
+  0xdf,0x95,0xf7,0x1e,0xbe,0x62,0x82,0x9c,0x3b,0xe3,0x38,0x1,0x95,0xed,0x35,0xf7,
+  0x8e,0xc7,0x12,0x29,0x63,0xb2,0x24,0x64,0x62,0xb1,0xbc,0x4e,0x2e,0x11,0x88,0x53,
+  0x7e,0x9e,0xdf,0x7d,0x2c,0xb8,0x2,0x92,0xfd,0x1c,0x64,0xa,0x16,0x24,0x11,0xb7,
+  0x2b,0xdf,0xc8,0xa9,0x87,0x8e,0x29,0x95,0xcc,0x2c,0x3b,0x72,0x2b,0x20,0x76,0x4,
+  0x8a,0xd,0xbe,0x8d,0xd8,0x32,0x15,0x4,0xba,0xb0,0xbc,0x67,0xa6,0xd5,0x35,0xc7,
+  0x6,0x17,0x5,0x34,0x6c,0x41,0x89,0x87,0x23,0xf1,0xa8,0xc7,0x82,0xce,0x86,0x12,
+  0xe6,0x36,0x58,0xee,0xc,0x86,0xe3,0x9d,0x52,0x2,0xaf,0x19,0xc,0x92,0x5f,0x7,
+  0x56,0xc8,0xb6,0xc2,0xfd,0x68,0x1a,0x41,0x13,0x4d,0x18,0x94,0x64,0xaf,0x38,0x2a,
+  0xc0,0x10,0x6e,0x54,0xfb,0xf,0x2a,0x92,0x8c,0x64,0x84,0x44,0xe1,0x98,0x97,0x1,
+  0xb,0x10,0x58,0x6f,0xb5,0xb9,0x6d,0xe7,0xd7,0x57,0x8d,0x80,0xed,0xac,0xa5,0x75,
+  0x10,0x9c,0x64,0x3b,0x5c,0x91,0x71,0xdf,0xd3,0x6a,0x8b,0xab,0x28,0x4d,0xa6,0x3a,
+  0x7c,0x43,0x0,0xda,0x97,0xb6,0xd7,0xf6,0x50,0x31,0x31,0xb2,0x86,0x8e,0x50,0x41,
+  0x29,0x22,0xab,0x48,0xc0,0xa8,0xfc,0x69,0x91,0xa3,0x21,0x6c,0x0,0xbb,0x48,0x19,
+  0x75,0x8d,0xaf,0xbf,0xb3,0xc7,0xc6,0xa2,0x25,0x91,0x14,0xb2,0x19,0x19,0x31,0x53,
+  0x6d,0x4d,0xf7,0x3c,0xab,0x40,0x76,0xc8,0x86,0xd5,0x52,0x24,0x65,0xde,0x41,0xbe,
+  0xd7,0xe7,0xdd,0x41,0x58,0x89,0x62,0x14,0x3c,0x6e,0x31,0x4b,0x1d,0x52,0x3f,0xbc,
+  0x3b,0xab,0x8a,0xa6,0xc0,0x29,0x56,0x68,0xd9,0xd5,0x3,0xc9,0x73,0xfe,0x5a,0xe2,
+  0x30,0xcf,0x19,0x11,0x97,0x38,0xd4,0xee,0xc0,0x5b,0x7e,0xe2,0x7d,0x75,0x68,0xcb,
+  0x3b,0xab,0xa2,0x12,0xc2,0x56,0x1b,0x4a,0x39,0x5b,0x9f,0x9f,0x55,0x6,0x75,0xd9,
+  0x6,0x5a,0x6e,0xa6,0x30,0x1,0xd7,0x3b,0xfe,0x75,0xd2,0x6d,0xc4,0x2,0x5e,0x26,
+  0x8c,0xc9,0x95,0xcc,0xc2,0xea,0x6d,0x6b,0x7a,0xeb,0xac,0xa0,0x43,0x8e,0x3f,0xf2,
+  0xc9,0x1d,0xb1,0x63,0x63,0xe7,0xdf,0x4d,0x24,0x13,0x47,0xc4,0x31,0x45,0x66,0x56,
+  0x91,0x4e,0xf2,0x6e,0x76,0xa0,0xc3,0x16,0xb4,0x9,0x1a,0xdd,0xa,0xac,0x64,0x10,
+  0x67,0x3,0x93,0x5f,0xba,0x9e,0x46,0x2,0x40,0xec,0xe1,0x2f,0x2d,0xc8,0x13,0xfa,
+  0xb9,0xf8,0xed,0x5d,0x6e,0x1f,0xb2,0x62,0x78,0xdd,0x49,0x8d,0x90,0x1c,0xd5,0x49,
+  0xb9,0xe7,0xea,0xf1,0xa5,0x65,0x9c,0x96,0x43,0x13,0x7,0x57,0x57,0x0,0xb8,0xed,
+  0x0,0x37,0x23,0xae,0xc2,0x82,0xfa,0x63,0xf6,0xfe,0xe6,0xa2,0x92,0xfc,0x47,0xf8,
+  0x1f,0xfd,0x69,0x45,0x0,0x79,0xc3,0xe2,0x3f,0xd3,0x54,0xe1,0x7f,0x42,0x83,0xee,
+  0xe4,0xfc,0x68,0xa2,0x82,0x8b,0xf5,0xd7,0xee,0x93,0xff,0x0,0x9a,0xcb,0xc5,0xfd,
+  0x8f,0xf,0xe2,0xdf,0x1a,0x28,0xa0,0x90,0xfb,0x6e,0x1f,0xee,0x7f,0x1a,0xef,0xf,
+  0xfa,0x62,0xf8,0xb5,0x14,0x50,0x57,0xfe,0x90,0x7d,0xf0,0xf8,0xad,0x53,0x8b,0xe6,
+  0xff,0x0,0xf9,0x1f,0x3a,0x28,0xa0,0xc7,0xc5,0xfd,0x84,0x7f,0xe4,0x5f,0x8d,0x56,
+  0x5f,0xd2,0xf,0xde,0xa7,0xc2,0x8a,0x28,0x35,0xaf,0xd6,0x3f,0x76,0xdf,0xeb,0x34,
+  0xf1,0xfd,0x91,0xfb,0xcf,0xc2,0x8a,0x28,0x16,0x5f,0xb7,0x87,0xef,0x24,0xff,0x0,
+  0x4d,0x34,0xbf,0xa4,0x7e,0xf8,0xe8,0xa2,0x82,0x7f,0xae,0xbf,0xe4,0x7a,0xc6,0xff,
+  0x0,0x63,0x27,0xde,0x2f,0xe3,0x45,0x14,0x13,0xa2,0x8a,0x28,0x3f,0xff,0xd9,
+    // /home/matthew/pencil_dev/background/dots.png
+  0x0,0x0,0x0,0xac,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x6,0x0,0x0,0x0,0x6,0x8,0x3,0x0,0x0,0x0,0xd7,0x12,0x1f,0x7a,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x0,0x9,0x50,0x4c,0x54,0x45,0xfb,0xfb,0xfb,
+  0xff,0xff,0xff,0xd2,0xd2,0xd2,0xf6,0xc3,0x4d,0x32,0x0,0x0,0x0,0x29,0x49,0x44,
+  0x41,0x54,0x78,0xda,0x62,0x60,0x0,0x2,0x26,0x6,0x80,0x0,0x2,0x91,0x8c,0xc,
+  0xc,0x0,0x1,0x4,0x65,0x3,0x4,0x10,0x94,0xd,0x10,0x40,0x50,0x36,0x40,0x0,
+  0x41,0x10,0x23,0x40,0x80,0x1,0x0,0x0,0xf3,0x0,0xa,0x5b,0x7d,0x59,0xcb,0x0,
+  0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/select.png
+  0x0,0x0,0x1,0xfc,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x1f,0xf3,0xff,0x61,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x1,0x8e,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xfc,0xff,0xff,0x3f,0x3,0x25,0x0,0x20,0x80,0x18,0xd3,0xd2,0xd2,0xfe,0xff,0xfb,
+  0xf7,0x8f,0x1,0x84,0xe7,0xce,0x9d,0xcb,0x8,0x12,0x8c,0x8a,0x8a,0xfa,0xff,0xe7,
+  0xcf,0x1f,0x6,0x64,0xbc,0x6d,0xdb,0x36,0xb0,0x9c,0xad,0xad,0x2d,0x58,0xee,0xf7,
+  0xef,0xdf,0xc,0x67,0xce,0x9c,0x61,0x4,0x8,0x20,0x16,0x90,0xc6,0xaa,0xaa,0x2a,
+  0x46,0x10,0xd,0x3,0x1d,0x1d,0x1d,0x8c,0x30,0x43,0xd1,0x5d,0xb8,0x74,0xe9,0x52,
+  0xc6,0xbf,0x7f,0xff,0x32,0x4,0x6,0x6,0x82,0x25,0x0,0x2,0x8,0x6c,0x0,0xc8,
+  0x34,0x14,0x67,0x31,0x32,0x82,0x35,0x82,0x14,0x82,0xe4,0x99,0x99,0x99,0x51,0xe4,
+  0x40,0x62,0x20,0x57,0x80,0x0,0x40,0x0,0xb1,0xc0,0x9c,0x8d,0xc,0x58,0x58,0x58,
+  0xc0,0x9a,0x40,0x34,0x36,0x39,0x10,0x80,0x19,0x0,0x10,0x40,0x8c,0xd8,0x2,0xf1,
+  0xed,0xdb,0xb7,0x70,0xe7,0x83,0x68,0x26,0x26,0x26,0x6,0x31,0x31,0x31,0xac,0x81,
+  0x8,0x10,0x40,0x4c,0xd1,0xd1,0xd1,0xff,0x5f,0xbc,0x78,0xc1,0xf0,0xfa,0xf5,0x6b,
+  0xb8,0x20,0xcc,0x76,0x36,0x36,0x36,0x6,0xe,0xe,0xe,0x30,0x8d,0xb,0x0,0x4,
+  0x10,0x13,0xc8,0x9f,0x20,0x7f,0x61,0x44,0xf,0x54,0xc,0x44,0x23,0xcb,0x7f,0xfc,
+  0xf8,0x91,0xe1,0xfd,0xfb,0xf7,0xc,0x32,0x32,0x32,0x60,0xa7,0x3,0x4,0x10,0x13,
+  0xcc,0x2f,0xc8,0x5e,0x81,0x69,0x0,0x39,0x1d,0x84,0xd1,0xd,0x6,0x61,0x98,0x3e,
+  0x80,0x0,0x62,0x5a,0xb3,0x66,0xd,0x4a,0x14,0xc2,0x14,0x81,0x34,0x22,0xbb,0x2,
+  0x3d,0x86,0x60,0x6,0x0,0x4,0x10,0xb,0xb2,0x9f,0xe1,0xfe,0x82,0xda,0x8a,0xcb,
+  0x6b,0x82,0x82,0x82,0xc,0x6f,0xde,0xbc,0x1,0x4b,0x2,0x4,0x10,0x93,0xa7,0xa7,
+  0xe7,0x7f,0x58,0xb4,0xa1,0x3b,0x13,0x9b,0x21,0xe8,0x7c,0x80,0x0,0x2,0x87,0x1,
+  0xb2,0x66,0x98,0xb,0x60,0xde,0x40,0x76,0x11,0x8c,0xfd,0xe5,0xcb,0x17,0x6,0x2e,
+  0x2e,0x2e,0x70,0xa0,0x1,0x4,0x10,0xb,0xc8,0x0,0x50,0x4c,0x60,0xf3,0x2,0xd6,
+  0x68,0x83,0xca,0xc1,0xc2,0xd,0x20,0x80,0x18,0x6d,0x6c,0x6c,0xfe,0x83,0x92,0x32,
+  0xc8,0x20,0x50,0xe6,0x0,0x9,0xaa,0xa9,0xa9,0xc1,0x33,0xc,0x2c,0x33,0x1,0xd3,
+  0x9,0x58,0x8e,0x9b,0x9b,0xfb,0x3f,0xc8,0x42,0x10,0x6,0xca,0x33,0x2,0x4,0x10,
+  0x23,0xa5,0xd9,0x19,0x20,0xc0,0x0,0x70,0xd3,0xca,0x9a,0xbe,0xa3,0x32,0x95,0x0,
+  0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/pen.png
+  0x0,0x0,0x2,0xc7,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x11,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0x3b,0x6d,0x47,0xfa,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x2,0x59,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xfa,0xff,0xff,0x3f,0x3,0x8,0x63,0x1,0x4c,0x40,0xcc,0x6c,0x18,0x9c,0xa,0x92,
+  0x64,0x3,0x62,0x16,0x10,0x1f,0x88,0x19,0xd1,0x15,0x2,0x4,0x10,0x13,0x3,0x76,
+  0x0,0x52,0xc8,0xb4,0xf9,0xc4,0x85,0xd9,0x2c,0x10,0x15,0x1c,0x40,0xcc,0xe,0x35,
+  0x8,0x43,0xf,0x40,0x0,0xe1,0x33,0x84,0xe5,0xc2,0xab,0xaf,0x89,0xb7,0x8e,0xef,
+  0x63,0x70,0xf3,0xb,0xfd,0x8,0xe4,0x73,0x23,0x19,0x84,0xe2,0x1a,0x80,0x0,0xc2,
+  0x65,0x8,0xd3,0xc6,0x63,0x67,0x67,0xbc,0xfd,0xfa,0x8b,0xc1,0x20,0xb2,0x80,0xe1,
+  0x35,0xbb,0x2c,0x48,0x8c,0xf,0x6a,0x10,0x2b,0xba,0x3e,0x80,0x0,0x62,0xc2,0xe1,
+  0xa,0xe6,0x2b,0x1f,0x7f,0xc5,0x7b,0xea,0x29,0x31,0x30,0x31,0xb1,0x30,0x84,0x45,
+  0x44,0x31,0xb8,0xfa,0x86,0xdc,0xc6,0xe5,0x1a,0x80,0x0,0x62,0xc2,0xe1,0x8a,0x99,
+  0x5f,0xff,0xfc,0x67,0x30,0x90,0x15,0x1,0xb,0xf8,0x9a,0x28,0x30,0x3c,0xfd,0x1,
+  0x72,0x8,0x3,0x2f,0x10,0x73,0xa2,0xbb,0x6,0x20,0x80,0x98,0xb0,0x84,0x11,0xeb,
+  0xa9,0x77,0xdf,0xe3,0xbd,0xb5,0x15,0x50,0x24,0x32,0xb2,0xf3,0x18,0xcc,0xec,0xdc,
+  0xcf,0x1,0x99,0x3c,0xe8,0x6,0x1,0x4,0x10,0x13,0xba,0x37,0x36,0x9e,0xbf,0xfe,
+  0x5d,0x80,0x9b,0x93,0x41,0x47,0x52,0x18,0x2c,0xe8,0x6a,0x65,0x2,0xa6,0x4d,0xd5,
+  0xc5,0x19,0x38,0x94,0x3d,0x18,0xda,0xbb,0xfa,0xaf,0x3,0xb9,0x5c,0xd0,0x68,0x7,
+  0x47,0x39,0x40,0x0,0x31,0x20,0xa5,0x13,0x90,0x81,0x9c,0x79,0xeb,0xf6,0xff,0xff,
+  0xf2,0xf3,0xd7,0xff,0x8f,0xdf,0x7f,0xfe,0x7f,0xf9,0xe9,0xeb,0x7f,0x7e,0x19,0xe5,
+  0xff,0x57,0x1e,0xbe,0xf9,0x7f,0xfc,0xfa,0xf3,0xff,0x3b,0x4e,0x3e,0xf8,0x2f,0xa7,
+  0xe7,0x6,0x52,0xac,0xd,0xc4,0xe2,0x50,0x17,0x31,0x1,0x4,0x10,0x13,0x9a,0x57,
+  0x58,0xd8,0xd9,0x58,0x19,0xaa,0xb6,0x1d,0x87,0xb,0x1e,0x39,0x7e,0x12,0xee,0xce,
+  0x49,0x6b,0x4f,0x33,0xf8,0x39,0x19,0x30,0xa0,0x5,0x30,0x13,0x40,0x0,0x21,0xbb,
+  0x4,0x24,0xc0,0xf,0xc4,0x8a,0x5a,0xa1,0x89,0xff,0x2f,0x3f,0x7b,0x3,0x76,0xc9,
+  0xfd,0x57,0x1f,0xff,0x5f,0x79,0xf4,0xe6,0xff,0xea,0x23,0xb7,0xff,0xcb,0xe8,0x3a,
+  0x80,0x14,0x6,0x2,0xb1,0x15,0x48,0x1d,0x54,0x3d,0xb,0x40,0x0,0xa1,0x7,0x2c,
+  0x48,0xd1,0xff,0x8,0x6b,0x63,0x86,0xde,0x3,0xe7,0x51,0x24,0x66,0x6d,0x3d,0xc6,
+  0x10,0xe6,0x65,0xd,0x53,0xf3,0xf,0xa6,0x16,0x24,0x0,0x10,0x40,0xe8,0x61,0x2,
+  0x72,0xa6,0x34,0x10,0x1b,0xc9,0x5a,0x3a,0x23,0x5c,0xf2,0xf8,0xcd,0x7f,0x7e,0x69,
+  0x65,0x90,0xa2,0x38,0x20,0xf6,0x2,0xc9,0x43,0xd5,0x81,0xd4,0x33,0x1,0x4,0x10,
+  0x23,0x2c,0xf3,0x31,0x2,0x1,0x34,0xc4,0xf9,0x4c,0x14,0xc4,0x5f,0xfd,0x63,0x84,
+  0x88,0x33,0x1,0x85,0xff,0xfd,0xfb,0xf,0xb3,0x93,0xe1,0xdc,0xc3,0x57,0x2e,0x40,
+  0xea,0x39,0x10,0xbf,0x6,0xe2,0x4f,0x40,0xfc,0xb,0x20,0x80,0x98,0xd0,0xbc,0xf2,
+  0x17,0x88,0x7f,0x9f,0x79,0xf0,0x52,0xd9,0xc5,0x42,0x96,0x61,0x6a,0x47,0x3a,0x43,
+  0x57,0x41,0x0,0xdc,0x30,0xa0,0x1,0x21,0x40,0xe6,0xf,0x28,0xfe,0xd,0x55,0xff,
+  0x1f,0x20,0x80,0xb0,0x85,0x9,0x48,0xe2,0x8f,0x90,0x18,0x7,0x3,0x33,0xb,0x1b,
+  0x38,0xe,0xfc,0x8c,0x15,0x61,0x2e,0xf9,0x3,0xd5,0xfc,0x7,0x66,0x0,0x48,0x10,
+  0x20,0x80,0x58,0xd0,0xc,0xf9,0x7,0x73,0xcd,0x7f,0xa6,0xff,0xf0,0xa8,0x35,0x55,
+  0x1,0x7a,0xff,0x1b,0x3,0xc3,0x99,0x87,0x2f,0xd1,0x5d,0x1,0x52,0xcf,0x0,0x10,
+  0x60,0x0,0x1c,0xc5,0xd8,0xf7,0xd3,0x3d,0xb9,0x1e,0x0,0x0,0x0,0x0,0x49,0x45,
+  0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/brush.png
+  0x0,0x0,0x2,0xe6,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x12,0x0,0x0,0x0,0xe,0x8,0x6,0x0,0x0,0x0,0x22,0xda,0x4c,0xb7,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x2,0x78,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xf9,0xff,0xff,0x3f,0x3,0xa9,0x60,0xd1,0xa2,0x45,0xf7,0xee,0xec,0x58,0xa7,0x18,
+  0x6a,0x67,0xca,0x30,0x61,0xfd,0xe,0x6,0x4e,0x56,0x16,0x6,0x80,0x0,0x62,0x22,
+  0xd5,0x90,0xc5,0x8b,0x17,0x1f,0x41,0x36,0xe4,0xe6,0xad,0x7b,0xc,0x51,0x55,0xad,
+  0xf,0x0,0x2,0x88,0x1,0xe4,0x22,0x62,0xf1,0x96,0x2d,0x5b,0xae,0xe6,0xfa,0xb9,
+  0xfe,0xbf,0x34,0xbd,0xe5,0x7f,0x41,0x80,0xeb,0x7f,0x6b,0x5,0xa9,0xff,0x7b,0xf6,
+  0xec,0x79,0xa,0x92,0x3,0x8,0x20,0xa2,0xd,0xd9,0xbe,0x7d,0xfb,0x8d,0xc,0x2f,
+  0x27,0xb0,0x21,0xad,0xf1,0xc1,0xff,0x6d,0x14,0xa5,0xff,0x6f,0x58,0xbf,0xfe,0x3c,
+  0x4c,0x1e,0x20,0x80,0x88,0x32,0x64,0xcf,0xbe,0x43,0x57,0xb,0x2,0xdd,0x20,0x86,
+  0xc4,0x41,0xc,0x99,0x35,0x6b,0xd6,0x4e,0x64,0x35,0x0,0x1,0xc4,0x42,0x28,0x4c,
+  0x26,0xcf,0xdb,0x7c,0x75,0xd3,0xeb,0xe7,0x5a,0x7f,0x4d,0x3,0x19,0xb6,0x9d,0xde,
+  0xcf,0xb0,0xed,0xd0,0x71,0x86,0xe0,0xbc,0x92,0x33,0xc6,0xc6,0xc6,0xab,0x91,0xd5,
+  0x1,0x4,0x10,0x23,0xae,0x58,0x3b,0x73,0xec,0xd0,0xa6,0x3,0x7b,0xf6,0xf9,0x6e,
+  0x63,0x95,0x60,0x58,0x18,0xeb,0xcb,0x50,0xb9,0x69,0x3f,0xc3,0xb3,0x8f,0x5f,0x18,
+  0x82,0xf9,0xff,0xbd,0x31,0x37,0x35,0xdd,0x62,0x62,0x6a,0x9a,0x88,0xac,0x1e,0x20,
+  0x80,0xb0,0xba,0x68,0xe3,0xc2,0x99,0xff,0xcf,0x1e,0x3f,0xcc,0xc0,0xc5,0xc9,0xc1,
+  0xa0,0xf9,0xe3,0x25,0x43,0xc7,0x4e,0x21,0xb0,0x21,0xe1,0x22,0xec,0x37,0x8c,0xd,
+  0x75,0xb7,0x9b,0x98,0x98,0x14,0xa1,0xeb,0x1,0x8,0x20,0x8c,0xf0,0xd8,0xb4,0x7c,
+  0xfe,0xff,0x9e,0x92,0xb4,0xff,0xef,0x5f,0xbf,0xfc,0xff,0xfe,0xcd,0xab,0xff,0x1c,
+  0xec,0x6c,0xff,0x75,0x35,0xd4,0xff,0xfb,0x6,0x46,0xfc,0xc7,0x17,0x8e,0x0,0x1,
+  0x84,0xc2,0x39,0xb9,0x77,0xdb,0xff,0x40,0x67,0x6b,0xb0,0x1,0xf,0x6e,0x5e,0xfb,
+  0xbf,0x7d,0xc3,0xea,0xff,0x9d,0xa5,0x99,0xff,0x85,0x5,0xf8,0xfe,0xaf,0x5d,0xb3,
+  0xfa,0x1b,0xbe,0xb0,0x4,0x8,0x20,0x14,0xaf,0xad,0x5e,0x3c,0x9f,0xa1,0xa6,0xb1,
+  0x85,0xe1,0xec,0xb1,0xc3,0xc,0x13,0x66,0x71,0x3,0x45,0x78,0x19,0x2e,0x1d,0x5f,
+  0xc5,0x20,0x29,0x2d,0xcb,0x20,0x2f,0xaf,0x70,0x18,0x68,0x19,0x63,0x43,0x43,0x3,
+  0x23,0x48,0xad,0xb6,0xb6,0x36,0x63,0x68,0x68,0xe8,0xff,0xd5,0xab,0x57,0x33,0x5e,
+  0xbd,0x7a,0x95,0x11,0x20,0x0,0x0,0x49,0x0,0xb6,0xff,0x1,0xff,0xff,0xff,0x0,
+  0xb8,0xab,0xa3,0xff,0xfe,0xfa,0xf8,0x0,0xea,0xe9,0xea,0x0,0xac,0xbe,0x20,0x0,
+  0xc3,0xc3,0xfd,0x0,0x15,0x15,0xa1,0x0,0xfc,0xe3,0xca,0x0,0xf2,0x0,0xfc,0x0,
+  0x9e,0xa8,0xa6,0xe3,0xc9,0xca,0xca,0x57,0x7,0x7,0x7,0xf7,0x3,0x3,0x3,0x1,
+  0xfd,0xfd,0xfd,0xfb,0x4,0x4,0x4,0xf5,0xf7,0xf7,0xf7,0xfa,0xa,0xa,0xa,0x0,
+  0x6,0x6,0x6,0xfd,0x2,0x88,0xc5,0xd7,0x77,0xe7,0xff,0x43,0x87,0x40,0x31,0xc7,
+  0xe,0xc4,0xb2,0x40,0xfc,0x97,0x81,0xf9,0x6b,0x1a,0xc3,0xfb,0xdf,0x2c,0xc,0xc2,
+  0x12,0x22,0xc,0xd5,0x59,0x59,0x5f,0x98,0x59,0x58,0xde,0x70,0x70,0x70,0xb8,0x1,
+  0xd,0x78,0xb,0x54,0xf0,0x7,0x68,0xd8,0xa7,0x1f,0x3f,0x7e,0xbc,0x0,0x3a,0xe2,
+  0x15,0x13,0x13,0xd3,0x8f,0x7f,0xff,0xfe,0xfd,0x0,0x8,0x20,0xb0,0x8b,0x7c,0x7c,
+  0x96,0x82,0xd3,0xc0,0xab,0x57,0xc7,0x19,0xde,0xbd,0xbb,0xce,0xc0,0xf0,0xef,0x3e,
+  0x43,0x80,0xaf,0xdf,0x67,0x7b,0x27,0xa7,0xcb,0x17,0x2e,0x5d,0x9c,0xb,0x34,0xe0,
+  0x13,0x50,0x1a,0x84,0xbf,0x0,0x35,0xfd,0x5,0x6a,0xfe,0xcc,0xca,0xca,0xfa,0xf1,
+  0xf7,0xef,0xdf,0x9f,0xf9,0xf8,0xf8,0x7e,0x3f,0x78,0xf0,0xe0,0x1f,0x40,0x80,0x1,
+  0x0,0xb5,0xaf,0xb4,0x36,0xdc,0x9d,0x9e,0x8e,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+  0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/bucketTool.png
+  0x0,0x0,0x5,0x75,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x13,0x0,0x0,0x0,0x15,0x8,0x6,0x0,0x0,0x0,0xa4,0x9,0xd5,0xd1,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x5,0x7,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xdc,0xb5,0x6b,0x17,0x3,0x8,0x30,0x32,0x32,0x32,0xfc,0xfe,0xfd,0x5b,0x67,0xef,
+  0xde,0xbd,0xa7,0xcc,0xcc,0xcc,0xca,0x95,0x95,0x95,0x27,0xbf,0x7a,0xf5,0x8a,0xe1,
+  0xe9,0xd3,0xa7,0xc,0xbc,0xbc,0xbc,0x60,0x79,0x66,0x66,0x66,0xde,0xbb,0x77,0xef,
+  0x2e,0xbb,0x77,0xff,0xbe,0xab,0xae,0x8e,0x4e,0x9e,0x8e,0x8e,0xce,0x2c,0x3e,0x3e,
+  0x3e,0x6,0x18,0x0,0x8,0x20,0xa0,0x3c,0x33,0xc3,0xe5,0xcb,0x97,0x19,0xae,0x5e,
+  0xbd,0xca,0x70,0xe4,0xc8,0x91,0x64,0x59,0x59,0xd9,0xbf,0xfb,0xf6,0xed,0xb3,0xfa,
+  0xf2,0xe5,0xcb,0xb,0x26,0x26,0xa6,0x5b,0x9c,0x9c,0x9c,0x20,0x9b,0x9c,0x4e,0x1c,
+  0x3f,0xde,0x76,0xf1,0xe2,0xc5,0xe9,0x72,0x72,0x72,0xba,0x6,0x46,0x46,0x2c,0x87,
+  0x8f,0x1d,0xf3,0xf9,0xfa,0xf9,0xb3,0x94,0xbe,0x9e,0xde,0xae,0x7f,0xff,0xfe,0xfd,
+  0x5,0xaa,0x65,0x0,0x8,0x20,0x16,0x4b,0x4b,0x4b,0xb0,0xad,0xec,0xec,0xec,0xcc,
+  0xa7,0x4f,0x9f,0x36,0xd4,0xd4,0xd4,0x8c,0x7d,0xf7,0xee,0x5d,0xde,0x89,0x13,0x27,
+  0x62,0x9d,0x9d,0x9d,0xaf,0xbf,0x79,0xf3,0x36,0xf1,0xf5,0xeb,0xd7,0xb9,0x82,0x82,
+  0x2,0xbc,0x45,0x45,0x45,0xc,0xfa,0xfa,0xfa,0x60,0x57,0xe8,0xe8,0xea,0x32,0x96,
+  0x94,0x96,0xa5,0x49,0x48,0x48,0x1c,0x2,0xfa,0x62,0xe9,0xb7,0x6f,0xdf,0x18,0x0,
+  0x2,0x88,0xe5,0xc3,0x87,0xf,0xc,0x5f,0xbf,0x7e,0x65,0x0,0xba,0x44,0x10,0x68,
+  0xba,0xe9,0xdf,0xbf,0x7f,0xd9,0xd4,0x35,0x34,0x8e,0x9f,0x3f,0x7f,0xbe,0xe4,0xd2,
+  0xa5,0xcb,0x1,0xa6,0xa6,0x26,0xac,0xe9,0xe9,0x69,0xc,0xf2,0xf2,0xf2,0x60,0x43,
+  0x80,0xea,0x18,0xfe,0xfc,0xf9,0xc3,0xa0,0xae,0xa2,0xc2,0xd0,0xd3,0xd9,0xc9,0xd0,
+  0xd0,0xd8,0x30,0xdd,0x8d,0xe1,0xff,0x35,0x79,0x79,0x85,0xf3,0x0,0x1,0xc4,0x2,
+  0xf4,0x37,0x3,0xc8,0x2b,0x97,0x2e,0x5d,0xfa,0x77,0xfc,0xf8,0x71,0xc6,0x3d,0x7b,
+  0xf6,0xac,0xfd,0xfc,0xf9,0xb3,0xb5,0xb8,0xb8,0x38,0x43,0x42,0x42,0x3c,0x83,0x83,
+  0x83,0x3,0xc3,0xff,0xff,0xff,0x19,0x80,0x62,0xc,0xdf,0xbf,0x7f,0x7,0xb3,0x81,
+  0x61,0xb,0x31,0x50,0x4d,0x95,0x41,0x4b,0x43,0x83,0x77,0xd7,0xae,0x3d,0xed,0x5,
+  0xf9,0x79,0x1e,0x0,0x1,0xc4,0xc4,0xc1,0xc1,0xc1,0x0,0xc4,0xae,0x77,0xef,0xdd,
+  0x5b,0xc,0xf4,0x8e,0xac,0x89,0xa9,0xa9,0xf5,0x8c,0x19,0x33,0x18,0x92,0x92,0x92,
+  0x18,0x80,0x61,0x4,0xd6,0xfc,0xe6,0xcd,0x1b,0xb0,0xeb,0x41,0x6,0xfc,0xfc,0xf9,
+  0x93,0xe1,0xc7,0x8f,0x1f,0xc,0x6f,0xdf,0xbe,0x65,0xb8,0x7d,0xfb,0x36,0x83,0x8f,
+  0x8f,0xf,0x3,0x27,0x17,0xa7,0xd9,0x91,0xa3,0x47,0x45,0x1,0x2,0x88,0xe5,0xf1,
+  0xe3,0xc7,0x1e,0xf3,0xe6,0xcd,0xdb,0xa8,0xad,0xa3,0xc3,0x36,0x7f,0xfe,0x7c,0x6,
+  0x60,0x0,0x83,0xbd,0x23,0x2a,0x2a,0xca,0xb0,0x69,0xd3,0x26,0xb0,0x26,0x98,0x4b,
+  0x7e,0xfd,0xfa,0x5,0xa6,0x41,0x7c,0x18,0x6,0x86,0x35,0x83,0xac,0x8c,0x8c,0xe0,
+  0xfb,0xf7,0xef,0x4b,0x0,0x2,0x88,0x65,0xf1,0xe2,0xc5,0x53,0x1e,0x3d,0x7a,0xc4,
+  0x26,0x29,0x29,0x9,0xe,0xf,0x90,0xcd,0x20,0x1a,0x94,0x1c,0x40,0x0,0x64,0x18,
+  0x28,0xc6,0x41,0xe2,0x20,0x83,0x60,0x86,0xc1,0x68,0x50,0xc0,0x4b,0xcb,0xc8,0x30,
+  0x2c,0x5c,0xb0,0xd0,0x8,0x20,0x80,0x98,0x80,0xea,0xd9,0x81,0xe9,0x8a,0xe1,0xe5,
+  0xcb,0x97,0xc,0x25,0x25,0x25,0xc,0xa0,0x8,0x1,0x79,0x83,0x8d,0x8d,0x8d,0x81,
+  0x9f,0x9f,0x1f,0x6c,0x18,0x88,0xf,0xd2,0x4,0xc2,0x20,0xef,0xc2,0x30,0x88,0xff,
+  0xf9,0xf3,0x27,0xb0,0x3a,0x31,0x71,0x71,0x43,0x80,0x0,0x62,0x52,0x55,0x55,0x3d,
+  0xd,0x4c,0xa,0xe0,0x28,0xff,0xf8,0xf1,0x23,0xc3,0xd4,0xa9,0x53,0x19,0x80,0x31,
+  0xca,0xf0,0xfc,0xf9,0x73,0x70,0xa0,0x6f,0xdb,0xb6,0xd,0x6c,0x11,0xcc,0x40,0x50,
+  0x24,0x80,0x30,0xcc,0xe0,0x2f,0x5f,0xbe,0x32,0x30,0x1,0x93,0x16,0x2b,0xb,0x33,
+  0xb,0x40,0x0,0x31,0xb1,0xb0,0xb0,0xac,0x5,0x27,0x38,0x16,0x16,0x6,0x35,0x35,
+  0x35,0x86,0xe5,0xcb,0x97,0x33,0xdc,0xb8,0x71,0x83,0xe1,0xce,0x9d,0x3b,0xc,0xa0,
+  0x98,0x6,0xc9,0x81,0x2,0x1a,0xe4,0x4d,0x98,0xeb,0x60,0x18,0x66,0xf0,0xef,0xdf,
+  0xbf,0x18,0x18,0xfe,0x33,0x30,0x0,0x4,0x10,0x50,0x2d,0xd3,0x7a,0xa0,0xc4,0x43,
+  0x50,0xf8,0x28,0x29,0x29,0x31,0xe8,0xea,0xea,0x32,0x6c,0xdd,0xba,0x95,0x41,0x4c,
+  0x4c,0x8c,0xe1,0xd9,0xb3,0x67,0xe0,0x40,0x7,0x65,0x99,0x4f,0x9f,0x3e,0xc1,0xbd,
+  0x7,0xa,0x53,0x90,0x61,0x20,0xb,0xbe,0x2,0xe9,0x73,0xe7,0x2f,0x32,0xbc,0xfb,
+  0xf0,0xe1,0x27,0x40,0x0,0xb1,0x78,0x7b,0x7b,0x7f,0x3,0xc6,0xc4,0x15,0x20,0x96,
+  0x7,0xc5,0x24,0x28,0xfc,0xb6,0x6d,0xdd,0xc6,0x60,0x6a,0x6a,0xa,0x66,0x83,0x34,
+  0x0,0xb3,0xb,0x3c,0xb1,0x82,0x30,0xc8,0x19,0x3f,0x80,0xe2,0xcf,0x9f,0xbf,0x60,
+  0x38,0x78,0xf8,0x28,0xc3,0xdb,0xd7,0x2f,0x6f,0x7b,0x7a,0x78,0xe4,0x0,0x4,0x10,
+  0x13,0x28,0x65,0x7,0x5,0x5,0x4d,0x7b,0xfd,0xe6,0xf5,0x3f,0xe,0x60,0x34,0x3,
+  0xb3,0x7,0x3,0xaf,0x0,0x1f,0x38,0xac,0x40,0x86,0x80,0xc2,0xa,0x64,0x10,0xc8,
+  0x3b,0x20,0x57,0x82,0xf0,0xa9,0xd3,0xe7,0x18,0xd6,0x6f,0xd8,0xc4,0x70,0xf0,0xe0,
+  0xa1,0x5d,0x82,0x7c,0x3c,0x7e,0x72,0xb2,0xb2,0x46,0x1c,0xec,0x1c,0xbb,0x0,0x2,
+  0x88,0xe9,0xec,0xd9,0xb3,0x20,0xdb,0xb7,0x7d,0xfb,0xfa,0x6d,0xdd,0xe5,0x2b,0x57,
+  0x18,0x44,0x44,0x44,0x18,0xec,0xec,0x6d,0x19,0xde,0xbc,0x7f,0x3,0x8f,0x49,0x90,
+  0x6b,0x40,0xde,0xbb,0x7a,0xed,0x6,0xc3,0xf6,0x9d,0x3b,0x7f,0x5d,0xbe,0x72,0xe9,
+  0x24,0x1b,0xb,0x4b,0x8a,0xa2,0xbc,0x9c,0x2f,0x30,0x8,0x36,0x3,0x13,0xf6,0x97,
+  0x7f,0xff,0xff,0x31,0x0,0x4,0x10,0xb,0x28,0x80,0x41,0x19,0x3d,0x2c,0x3c,0x7c,
+  0xf2,0xb2,0x65,0xcb,0x80,0x3e,0x33,0x93,0x93,0x91,0x90,0x66,0xe0,0xe6,0xe4,0x66,
+  0x0,0x7a,0x9d,0xe1,0x1f,0x30,0x7,0x80,0x22,0xe0,0xf1,0xe3,0x27,0xdf,0x7e,0xfd,
+  0xfc,0x79,0x8a,0x8d,0x8d,0xb5,0xdb,0xc4,0xc8,0x68,0x1b,0x28,0x57,0xfc,0x4,0xba,
+  0x12,0x94,0x43,0x40,0xb1,0xf,0x2,0x0,0x1,0xc4,0xac,0xa0,0xa0,0x0,0x76,0xd,
+  0xb0,0x7c,0x7a,0x28,0x26,0x2a,0x7a,0x74,0xf6,0xac,0xd9,0xe6,0xaf,0x5e,0xbf,0x17,
+  0x57,0x54,0xd3,0x66,0xb8,0x76,0xf9,0x2,0xc3,0xe1,0xc3,0x47,0x18,0xde,0xbe,0x79,
+  0x7b,0x48,0x57,0x47,0x3b,0x59,0x4a,0x4a,0xb2,0x9,0xa8,0xf1,0x36,0x28,0xb,0x82,
+  0x22,0x0,0x14,0x44,0xa0,0x3c,0xc,0x72,0xb9,0x80,0x80,0x0,0x3,0x40,0x0,0x31,
+  0x82,0x4c,0x46,0x6,0x9e,0x9e,0x9e,0xa9,0x11,0x71,0xa9,0x19,0x1b,0xd7,0xad,0x32,
+  0xf8,0xfd,0xe3,0xdb,0x26,0x71,0x71,0xb1,0x5e,0x6e,0x6e,0xee,0x33,0xc0,0x84,0xf9,
+  0x3,0x64,0xe9,0xce,0x9d,0x3b,0x19,0x80,0x69,0x13,0x1c,0xdb,0xa0,0xb0,0x14,0x12,
+  0x12,0x2,0xbb,0xe,0x64,0x1,0x40,0x0,0xb1,0x30,0xa0,0x81,0x9b,0x37,0x6f,0x89,
+  0xda,0x58,0x9a,0xee,0xbb,0x73,0xe3,0xd2,0xed,0xe6,0xc6,0x86,0x8,0x98,0x78,0x67,
+  0x47,0x3b,0xb7,0xa4,0x84,0xc4,0xef,0xbf,0x7f,0xfe,0xfc,0xfa,0x7,0xf4,0x16,0xf,
+  0x37,0x24,0x18,0x40,0xb1,0xd,0xca,0x2d,0x20,0x3,0x1,0x2,0x8,0xc3,0x30,0x41,
+  0x41,0x41,0xf5,0xa6,0xfa,0x1a,0xce,0x85,0xb,0x17,0x86,0x21,0x8b,0xdf,0x7d,0xf8,
+  0xe2,0xeb,0xe3,0x97,0xef,0x18,0xde,0x7c,0xf8,0xc2,0xc0,0x5,0xcc,0x1d,0x5f,0xbe,
+  0x7c,0x62,0x60,0x63,0x65,0x65,0x10,0x17,0x13,0x65,0x60,0x2,0xe6,0x5d,0x10,0x0,
+  0x8,0x20,0xb0,0x89,0xc8,0x18,0x8,0xe2,0xd0,0xc5,0x88,0xc5,0x0,0x1,0x6,0x0,
+  0xc9,0xba,0xe3,0x6,0xeb,0x52,0x42,0x4d,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+  0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/add.png
+  0x0,0x0,0x3,0x3,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x1f,0xf3,0xff,0x61,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x2,0x95,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xfc,0xff,0xff,0x3f,0x3,0x32,0x90,0x97,0x97,0x77,0x63,0x65,0x65,0x75,0x67,0x61,
+  0x61,0xb1,0x2,0x62,0x4d,0x26,0x26,0x26,0x90,0xf0,0xf5,0x7f,0xff,0xfe,0x1d,0xfb,
+  0xf3,0xe7,0xcf,0xce,0x1b,0x37,0x6e,0xec,0x42,0x56,0xf,0x10,0x40,0x8c,0x30,0x3,
+  0x64,0x64,0x64,0x14,0xd8,0xd8,0xd8,0x72,0x38,0x38,0x38,0xd2,0xb9,0xb8,0xb8,0x78,
+  0x80,0x34,0x3,0xd0,0x20,0x6,0x66,0x66,0x66,0xb0,0xfc,0xdf,0xbf,0x7f,0x19,0x7e,
+  0xff,0xfe,0xfd,0xe5,0xc7,0x8f,0x1f,0x33,0xbf,0x7d,0xfb,0x36,0xe5,0xda,0xb5,0x6b,
+  0xf,0x40,0xe2,0x0,0x1,0x4,0x36,0x0,0xa4,0x99,0x9d,0x9d,0xbd,0x99,0x87,0x87,
+  0x27,0x6,0x88,0x19,0x40,0x58,0x59,0x59,0x99,0x41,0x42,0x42,0x82,0xe1,0xdd,0xbb,
+  0x77,0xc,0x6f,0xdf,0xbe,0x65,0x0,0x6a,0x2,0x19,0xc0,0xf0,0xf3,0xe7,0x4f,0x86,
+  0x2f,0x5f,0xbe,0x2c,0x1,0xe2,0xda,0x8b,0x17,0x2f,0x3e,0x0,0x8,0x20,0x16,0x90,
+  0x29,0x20,0x9b,0x41,0x9a,0xf9,0xf9,0xf9,0x19,0xf8,0xf8,0xf8,0x18,0x38,0x39,0x39,
+  0x19,0x78,0x79,0x79,0x19,0x92,0x92,0x92,0x18,0xb8,0xb9,0xb9,0x19,0xba,0xbb,0xbb,
+  0x19,0x1e,0x3f,0x7e,0xcc,0x0,0xf4,0x6,0x3,0xd0,0x22,0x90,0xcb,0x62,0x80,0x2e,
+  0x7b,0x9,0xd4,0x5a,0x2,0x10,0x40,0x2c,0x20,0x3f,0x3,0x15,0xa5,0x83,0x6c,0x5,
+  0x69,0x6,0xd1,0x20,0xa7,0x83,0xbc,0x20,0x2e,0x2e,0xce,0x0,0xa,0x3,0x90,0x37,
+  0x40,0x34,0xc,0x43,0xbd,0x95,0x6e,0x6d,0x6d,0xbd,0xb,0x20,0x80,0x58,0x40,0x1,
+  0x6,0xf2,0x33,0x48,0x23,0xc8,0x66,0x90,0x66,0x98,0x42,0xa0,0x7f,0x41,0xae,0x63,
+  0x0,0x6,0x1e,0x3c,0xd0,0x40,0xe2,0x20,0x35,0x40,0xb5,0x3c,0x40,0x2f,0xb9,0x3,
+  0x4,0x10,0xb,0x28,0xb4,0x41,0xb6,0x81,0x9c,0xaf,0xa3,0xa3,0x3,0x96,0x4,0x5,
+  0x18,0xc8,0x35,0x1f,0x3f,0x7e,0x64,0x0,0xca,0x33,0x88,0x88,0x88,0x30,0x0,0x2d,
+  0x1,0x6b,0xfe,0xfa,0xf5,0x2b,0xc3,0xcb,0x97,0x2f,0x61,0xde,0xb1,0x2,0x8,0x20,
+  0x90,0x1,0x9a,0x20,0x4d,0x20,0x9c,0x97,0x97,0x7,0xf6,0x3b,0x28,0x60,0x9f,0x3f,
+  0x7f,0xe,0x66,0x83,0x40,0x78,0x78,0x38,0x38,0x40,0x19,0x19,0x19,0xc1,0x1,0x5a,
+  0x54,0x54,0x4,0x73,0x89,0x26,0x40,0x0,0x31,0xc1,0xfc,0x4,0xc2,0xa0,0x10,0x6,
+  0x1,0x10,0xd,0x32,0x4,0x64,0x3b,0xcc,0x4b,0x20,0xcd,0x20,0xc,0x12,0x7,0xd9,
+  0xe,0x62,0x83,0xc4,0x1,0x2,0x8,0x14,0xb,0xd7,0x81,0xd8,0x2,0x24,0xd8,0xd5,
+  0xd5,0x5,0xd6,0x4,0xf2,0x2,0x28,0x0,0xe3,0xe3,0xe3,0xc1,0xe1,0x32,0x77,0xee,
+  0x5c,0x86,0x17,0x2f,0x5e,0xc0,0xc3,0x3,0x96,0x36,0x40,0x7a,0x1,0x2,0x88,0x5,
+  0x94,0xc2,0x80,0x1a,0x2c,0xbe,0x7f,0xff,0xce,0xf0,0xea,0xd5,0x2b,0x6,0x68,0xca,
+  0x63,0x80,0xa5,0x7,0x50,0xf8,0x80,0xfc,0xc,0x8c,0x77,0x94,0x80,0x4,0x59,0x8,
+  0xd2,0xb,0x10,0x40,0x4c,0xa0,0xe4,0x9,0x4a,0x61,0xa0,0x44,0x2,0x12,0x84,0x1,
+  0x10,0x1b,0xa4,0x19,0xe4,0x54,0x90,0xab,0xd0,0x1,0x50,0x1e,0xa4,0x67,0x27,0x40,
+  0x0,0x31,0x81,0xd2,0x36,0x28,0x79,0x82,0xfc,0xfd,0xeb,0xd7,0x2f,0xb8,0x21,0xa0,
+  0xd0,0x6,0xb9,0xe8,0xfd,0xfb,0xf7,0x60,0x2f,0xa1,0x69,0x6,0xa9,0x9d,0xb9,0x69,
+  0xd3,0xa6,0x5d,0x0,0x1,0x4,0x36,0x1a,0x94,0xb6,0x81,0x51,0x22,0xe,0x4d,0x61,
+  0xe0,0x80,0x3,0x69,0xce,0xcd,0xcd,0x5,0x7,0x1a,0xc8,0x25,0x30,0x7f,0x83,0x34,
+  0x3,0x6d,0x5e,0x2,0xf4,0xf2,0x14,0x10,0x1f,0x20,0x80,0xe0,0x99,0x49,0x5f,0x5f,
+  0x5f,0x1,0x98,0x16,0x72,0x80,0xf1,0x9f,0xe,0x4a,0x24,0xa0,0x0,0x83,0x85,0x3e,
+  0x8,0x40,0x43,0xff,0xb,0xc8,0x66,0x90,0xe6,0x2d,0x5b,0xb6,0x80,0x33,0x13,0x40,
+  0x0,0x31,0xa2,0x67,0x67,0x60,0xf2,0x74,0x3,0x6,0x9e,0x3b,0x28,0x91,0x40,0xe3,
+  0x19,0x9e,0x9d,0x41,0x7e,0x6,0x39,0x1b,0x59,0x3d,0x40,0x80,0x1,0x0,0x18,0x4c,
+  0x2e,0xe9,0x19,0xc4,0xa1,0x62,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
+  0x60,0x82,
+    // /home/matthew/pencil_dev/icons/polyline.png
+  0x0,0x0,0x1,0xae,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x1f,0xf3,0xff,0x61,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+  0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd8,
+  0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+  0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+  0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+  0xb,0x0,0x0,0x1,0x24,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0x60,0x60,0x60,0x48,
+  0x6,0x62,0x2b,0x6,0x34,0xf0,0xff,0xff,0x7f,0xbc,0x18,0x8,0x42,0x80,0xf8,0x2d,
+  0x40,0x0,0x81,0x18,0x1b,0x81,0xf8,0x3,0x10,0xaf,0x3,0x62,0x2d,0x62,0xc,0x0,
+  0x82,0x28,0x20,0x7e,0x8,0xc4,0x9f,0x0,0x2,0x8,0xc4,0xd1,0x5,0xe2,0x47,0x40,
+  0x5c,0xa,0x35,0x71,0xe,0x10,0xcb,0xe1,0xd1,0x9c,0x0,0xd5,0xac,0x8,0xb2,0x18,
+  0x20,0x80,0x60,0x16,0x6e,0x81,0x7a,0x85,0x1f,0x88,0xdb,0xa1,0x6,0xf5,0x2,0xb1,
+  0x10,0x9a,0xe6,0x64,0x98,0x66,0x28,0xff,0x3,0x40,0x0,0xc1,0xc,0xb0,0x4,0xe2,
+  0x1b,0x40,0xcc,0xc,0xe5,0x4b,0x0,0xf1,0x34,0xa8,0x41,0x15,0x40,0xcc,0x3,0xc4,
+  0x69,0x40,0x7c,0xf,0xd9,0x75,0x20,0x3,0x0,0x2,0x8,0x39,0xdc,0xe,0x40,0x3,
+  0x6,0x1e,0x6,0x40,0xa0,0x2,0xc4,0x2b,0x80,0xf8,0xd,0x10,0xdf,0x4,0x62,0x69,
+  0x34,0x17,0x7d,0x0,0x8,0x20,0x64,0x3,0x3c,0x80,0xf8,0xc,0xb6,0x40,0x4,0x2,
+  0x3d,0x90,0xab,0xb0,0x84,0xc7,0x7,0x80,0x0,0x42,0x8f,0xbd,0x33,0x50,0x83,0x8,
+  0x46,0x23,0xd4,0x80,0x8f,0x0,0x1,0x84,0x6e,0x0,0xc8,0xb,0x4b,0xf1,0x19,0x0,
+  0xa,0x58,0x20,0xce,0x1,0xe2,0x4b,0x40,0x7c,0xe,0x20,0x80,0xd0,0xd,0x60,0x86,
+  0x5,0x24,0x16,0x8d,0xf6,0x50,0xc3,0x3f,0x40,0xc3,0xc5,0x15,0x24,0xe,0x10,0x40,
+  0xc,0xb8,0x0,0x54,0x52,0x2,0x1a,0xb,0xb7,0x81,0xf8,0x2a,0x10,0x17,0xa1,0x47,
+  0x2d,0x40,0x0,0x11,0xf2,0xe3,0x79,0x20,0x9e,0xf,0x8a,0x66,0x5c,0x6a,0x0,0x2,
+  0x88,0x11,0xaf,0x33,0x88,0x0,0x0,0x1,0x44,0xb1,0x1,0x0,0x1,0x44,0xb1,0x1,
+  0x0,0x1,0x44,0xb1,0x1,0x0,0x1,0x6,0x0,0x58,0x49,0x16,0x83,0xc9,0xda,0xd7,
+  0xdf,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/arrow.png
+  0x0,0x0,0x1,0xe3,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0xe,0x0,0x0,0x0,0xe,0x8,0x6,0x0,0x0,0x0,0x1f,0x48,0x2d,0xd1,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x1,0x75,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xf8,0xff,0xff,0x3f,0x3,0x8,0x8b,0x8b,0x8b,0xff,0x3f,0x74,0xe8,0xd0,0x62,0x18,
+  0x9f,0x10,0x6,0x8,0x20,0x38,0x43,0x5b,0x5b,0xfb,0x3f,0x54,0xf3,0xc,0x62,0x34,
+  0x2,0x4,0x10,0x9c,0xe1,0xe4,0xe4,0xf4,0xdf,0xc7,0xc7,0xe7,0xbf,0x82,0x82,0xc2,
+  0xff,0x3,0x7,0xe,0x10,0xd4,0xc,0x10,0x40,0x4c,0xc,0x50,0xc0,0xc7,0xc7,0xc7,
+  0x0,0xd4,0x4,0x72,0x32,0x43,0x7c,0x7c,0x7c,0xfa,0x91,0x23,0x47,0x36,0x30,0xe0,
+  0x1,0x0,0x1,0x4,0xd7,0xc8,0xc1,0xc1,0xc1,0xc0,0xc3,0xc3,0xc3,0xf0,0xe5,0xcb,
+  0x17,0x86,0x6f,0xdf,0xbe,0x81,0x5c,0xe0,0x7f,0xec,0xe8,0xd1,0xe5,0xb8,0x34,0x2,
+  0x4,0x10,0x5c,0x23,0x33,0x33,0x33,0x3,0x2b,0x2b,0x2b,0xc3,0xfb,0xf7,0xef,0x19,
+  0x3e,0x7c,0xf8,0xc0,0xf0,0xfb,0xf7,0x6f,0x6,0x6b,0x1b,0x9b,0x88,0xe3,0xc7,0x8f,
+  0x63,0xb5,0x19,0x20,0x80,0x50,0x6c,0x64,0x67,0x67,0x67,0xf8,0xf5,0xeb,0x17,0xc3,
+  0xdf,0xbf,0x7f,0xe1,0xa,0xac,0xac,0xac,0xfc,0x4f,0x9e,0x3c,0xb9,0x10,0x5d,0x23,
+  0x40,0x0,0xc1,0x35,0x82,0x3c,0x7c,0xed,0xda,0x35,0x86,0x7f,0xff,0xfe,0x81,0x31,
+  0x32,0xb0,0xb0,0xb0,0x88,0x43,0xd7,0x8,0x10,0x40,0x2c,0x30,0x6,0x23,0x23,0x23,
+  0xc3,0xeb,0xd7,0xaf,0x19,0x58,0x58,0x20,0x42,0x6c,0x6c,0x6c,0xc,0x5b,0x36,0x6f,
+  0x7e,0xc5,0xcb,0xc7,0xf7,0x9e,0x89,0x89,0xe9,0x15,0xba,0x46,0x80,0x0,0x62,0x42,
+  0xe6,0x7c,0xfa,0xf4,0x89,0x61,0xce,0x9c,0x39,0xaf,0xcd,0xcd,0xcd,0xc1,0x4e,0xde,
+  0xb2,0x75,0xeb,0x2f,0x6e,0x6e,0xee,0x6b,0x66,0x66,0x66,0x76,0xe8,0x1a,0x1,0x2,
+  0x8,0x1e,0x2f,0x21,0x21,0x21,0xff,0x8f,0x1d,0x3b,0x76,0x17,0xc4,0x9e,0x3a,0x75,
+  0xea,0x2a,0x90,0xeb,0x41,0x9,0xe2,0xec,0x99,0x33,0xf7,0xb0,0xc5,0x23,0x40,0x0,
+  0xe1,0x8c,0x60,0x75,0x75,0xf5,0xff,0x20,0xcd,0xb5,0xb5,0xb5,0xff,0x9f,0x3f,0x7f,
+  0xbe,0x7,0x5d,0x1e,0x20,0x80,0x70,0x6a,0x9c,0x32,0x65,0xca,0x46,0xa0,0x7f,0xff,
+  0xcb,0xc8,0xc8,0xfc,0x7f,0xf1,0xfc,0x79,0x13,0xba,0x3c,0x40,0x0,0xe1,0x4f,0x8f,
+  0x40,0x1b,0x41,0x1a,0x9f,0x3c,0x79,0x72,0x8,0x5d,0xe,0x20,0xc0,0x0,0xe8,0x78,
+  0x54,0xc0,0xc6,0x93,0x38,0x12,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
+  0x60,0x82,
+    // /home/matthew/pencil_dev/icons/logo.png
+  0x0,0x0,0x63,0x26,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x1,0x3e,0x0,0x0,0x0,0x7b,0x8,0x2,0x0,0x0,0x0,0x62,0xb8,0x7b,0xc,
+  0x0,0x0,0xb,0x33,0x69,0x43,0x43,0x50,0x49,0x43,0x43,0x20,0x50,0x72,0x6f,0x66,
+  0x69,0x6c,0x65,0x0,0x0,0x78,0x9c,0x95,0x97,0x67,0x58,0x14,0xd7,0x1e,0x87,0x7f,
+  0x43,0x15,0x41,0x40,0x44,0x10,0x41,0x58,0x10,0x10,0xa4,0x77,0x11,0xa5,0x57,0xe9,
+  0x4b,0x91,0xaa,0x2e,0x5b,0x60,0x91,0x2d,0xec,0x2e,0x4b,0x15,0xc4,0x86,0x51,0x63,
+  0x4b,0xec,0x1a,0x54,0x22,0x82,0x90,0x60,0x41,0x29,0x6a,0x6c,0x10,0x2b,0x62,0xec,
+  0x3d,0x62,0x45,0xa2,0x20,0xa2,0xe2,0xb5,0xed,0xfd,0x30,0x4b,0x11,0xaf,0xc6,0x7b,
+  0xf6,0xcb,0x99,0x79,0x4e,0x99,0xd9,0xf7,0xfd,0xfd,0xe7,0x39,0x80,0x7a,0x3b,0x8d,
+  0xcf,0xcf,0x90,0x1,0xc0,0xe1,0x8a,0x4,0xd4,0x0,0x6f,0x4a,0x5c,0x7c,0x2,0x45,
+  0xf1,0x1a,0x14,0xa0,0x8e,0x51,0x70,0x81,0x2b,0x8d,0x2e,0xe4,0x7b,0x45,0x44,0x84,
+  0xe0,0xab,0xed,0xcd,0x55,0x10,0x0,0x70,0xc9,0x8a,0xc6,0xe7,0x67,0x7c,0x7d,0xdc,
+  0xff,0x6c,0xaa,0x82,0xb8,0xf8,0x4,0x80,0xb0,0x4,0xa0,0x99,0x4a,0xf6,0x3d,0x1,
+  0x68,0xa6,0x90,0xfd,0x68,0x0,0x9a,0xd9,0x22,0xbe,0x8,0x20,0xd2,0x0,0x68,0xd2,
+  0xd3,0x68,0xc,0x80,0x28,0x0,0x60,0x29,0x88,0xa6,0xfa,0x0,0x44,0x5,0x0,0xd5,
+  0x54,0xb2,0x5f,0xf,0x40,0x35,0x85,0xec,0x9f,0x2,0xa0,0x2a,0xa6,0xa7,0x8a,0x0,
+  0xe2,0x3a,0xa0,0xa0,0xc1,0x65,0xb0,0xb9,0x80,0xe2,0x33,0x40,0xc1,0x9d,0xc1,0x14,
+  0xd2,0x1,0x55,0x4b,0x0,0xc,0x86,0x90,0xce,0x1,0x54,0x57,0x2,0xc4,0x27,0xe,
+  0x87,0xc7,0x0,0xd4,0x57,0x2,0x30,0xa3,0xf3,0x5,0x22,0x40,0xbd,0x1e,0x80,0x55,
+  0x5c,0x7c,0x2,0x85,0x7c,0x64,0xfa,0x44,0xc0,0x45,0x19,0x90,0x7b,0x3f,0x70,0x8f,
+  0xa3,0xb,0xec,0x7e,0x1,0xe8,0x7f,0x1c,0xb8,0x67,0xba,0xa,0x18,0x43,0x1,0x6a,
+  0x2c,0x7,0xee,0xf5,0x50,0x41,0x0,0x20,0xb4,0x5a,0x85,0x2c,0x7,0x7b,0x0,0x0,
+  0xa1,0xe2,0xd,0xc8,0xdf,0x95,0x48,0x7a,0x4c,0x1,0xc5,0xd5,0xc0,0xc7,0x55,0x12,
+  0xc9,0xfb,0xed,0x12,0xc9,0xc7,0x32,0x40,0xf6,0x36,0x70,0x34,0x83,0x9e,0x25,0x10,
+  0x4b,0xff,0x2f,0x82,0x68,0x1,0xfe,0xed,0x9a,0x7c,0x67,0x69,0x93,0x25,0x0,0x19,
+  0x40,0x55,0x4f,0xe3,0xa1,0xf6,0xd8,0xb1,0xba,0x7a,0x66,0x6,0x3a,0x86,0xc6,0x46,
+  0x86,0xc6,0xe6,0xa6,0x94,0x9,0x26,0xe6,0x96,0x13,0xcd,0x2d,0x2d,0xad,0x2c,0xac,
+  0xad,0x6c,0xac,0x6c,0x6d,0xec,0x6c,0x1c,0xec,0x1c,0x9d,0x9c,0x9c,0x9d,0x1d,0x9d,
+  0x6b,0x5d,0x5c,0x5d,0x9d,0x27,0xbb,0xb9,0x4d,0x99,0xea,0xee,0x3e,0xd5,0xc3,0xd3,
+  0xd3,0xd3,0xcb,0xcb,0xc7,0xd7,0xd7,0xc7,0xcf,0xcf,0xdf,0x3f,0xc0,0x3f,0x30,0x20,
+  0x28,0x70,0xda,0xb4,0xe0,0xe0,0x90,0xd0,0xd0,0xd0,0xb0,0xf0,0xf0,0xb0,0x88,0xc8,
+  0xc8,0x48,0x6a,0x64,0x54,0x54,0x74,0x74,0x4c,0x6c,0x6c,0xec,0xf4,0xe9,0x71,0xf1,
+  0xf1,0xf1,0x9,0xf1,0x89,0x89,0x89,0xb7,0x92,0x92,0x92,0x93,0x67,0x24,0xcf,0x9c,
+  0x39,0x6b,0x16,0x8d,0x96,0x92,0x92,0x72,0x9f,0xce,0x60,0x30,0x98,0xc,0x16,0x2b,
+  0x35,0x35,0xf5,0x49,0x1a,0x9b,0xcd,0x4e,0x4f,0x9f,0x3d,0x7b,0xf6,0x3f,0x19,0x19,
+  0x1c,0xe,0x97,0xcb,0xe3,0xf1,0xba,0xf8,0xfc,0xcc,0x4c,0x81,0x40,0x28,0x14,0xf6,
+  0x88,0x44,0x59,0x59,0x62,0xb1,0xf8,0x4d,0x76,0x76,0x4e,0x76,0x6e,0x6e,0x5e,0x5e,
+  0xde,0xbb,0xfc,0x82,0x82,0x82,0x39,0x85,0x85,0x85,0x85,0x9f,0x8a,0x8a,0xe6,0x16,
+  0x15,0x17,0xcf,0x9b,0x37,0x5f,0x66,0xfe,0xfc,0x5,0xb,0x16,0x2e,0x5c,0xb4,0xa8,
+  0xa4,0x64,0xb1,0xe2,0xe2,0xc5,0x3f,0xfc,0xb0,0x64,0xc9,0xd2,0xa5,0xcb,0x96,0xfe,
+  0xa8,0xf2,0xe3,0x8f,0xcb,0x97,0xaf,0x58,0xb1,0x72,0xe5,0xaa,0x55,0xab,0x47,0xae,
+  0x5e,0xfd,0xd3,0x4f,0x3f,0xff,0xbc,0x66,0xcd,0xda,0xb5,0xeb,0xb4,0xd6,0xad,0x5b,
+  0xbf,0x7e,0xc3,0x86,0x8d,0x1b,0x37,0x8d,0xdd,0xb4,0x69,0xf3,0xe6,0x2d,0x5b,0x7e,
+  0xf9,0xa5,0x54,0xbf,0xb4,0x74,0xeb,0xd6,0x6d,0xdb,0xb6,0x6f,0x2f,0x33,0x2a,0x2b,
+  0xfb,0xf5,0xd7,0x1d,0x3b,0xca,0x4d,0xca,0xcb,0x77,0xee,0xac,0xa8,0xa8,0xac,0xdc,
+  0x65,0xbe,0x6b,0x57,0x55,0x55,0x75,0xf5,0x6f,0x96,0xbf,0xfd,0xf6,0xfb,0xef,0x35,
+  0x35,0xbb,0x6d,0x76,0xef,0xde,0xb3,0x67,0xef,0xde,0x7d,0xf6,0xfb,0xf6,0xd5,0xd6,
+  0xee,0xdf,0x7f,0xc0,0xe9,0xc0,0x81,0xba,0xba,0xfa,0xfa,0x86,0x49,0xd,0xd,0x8d,
+  0x8d,0x7,0xf,0x1e,0x72,0x3b,0x74,0xe8,0xf0,0xe1,0x3f,0xfe,0x38,0xe2,0x7e,0xe4,
+  0xc8,0xd1,0xa3,0xc7,0x8e,0x1d,0xf7,0x3a,0x7e,0xfc,0xc4,0x89,0xa6,0xa6,0x66,0xdf,
+  0xe6,0xe6,0x3f,0xff,0x3c,0xe9,0x7f,0xf2,0xe4,0xa9,0x53,0xa7,0x4f,0x9f,0x9,0x3a,
+  0x73,0xe6,0xec,0xd9,0x73,0xe7,0x5a,0x42,0x5a,0x5a,0xce,0x9f,0x6f,0x6d,0xbd,0x10,
+  0x7e,0xe1,0xc2,0x5f,0x7f,0x5d,0xbc,0x78,0x89,0x7a,0xe9,0xd2,0xe5,0xcb,0x57,0xae,
+  0x5c,0x8d,0xb9,0x7a,0xf5,0xda,0xb5,0xeb,0xd7,0x6f,0xc4,0xdd,0xb8,0x71,0xf3,0xe6,
+  0xad,0x5b,0xb7,0x6f,0xdf,0x49,0xba,0x73,0xe7,0xee,0xdd,0xbf,0xff,0xbe,0x77,0xaf,
+  0x6d,0x56,0x5b,0xdb,0xfd,0xfb,0xf,0x1e,0x3c,0x7c,0xf8,0xe8,0xd1,0xe3,0xc7,0x4f,
+  0x9e,0xb4,0xb7,0x3f,0x7d,0xda,0xd1,0xf1,0xcf,0x3f,0xcf,0x9e,0x3d,0x7f,0xde,0xd9,
+  0xd9,0xd5,0xf5,0xe2,0x45,0x77,0xf7,0xcb,0x97,0x3d,0x3d,0xaf,0x5f,0xbf,0x79,0xd3,
+  0xdb,0xfb,0xf6,0xed,0xbb,0x77,0xef,0xdf,0x7f,0xfc,0x28,0x91,0x0,0x4a,0xea,0x2a,
+  0xcf,0xd5,0x35,0x34,0x46,0x8d,0xd6,0xd3,0xd6,0xd0,0xa1,0xe8,0xea,0x8c,0xa3,0xe8,
+  0xeb,0x52,0xf4,0xc,0x4d,0xc7,0x1b,0x19,0x1b,0x9b,0x1a,0x4d,0x30,0x35,0x33,0x9d,
+  0x68,0x6e,0x61,0x6e,0x69,0x61,0x65,0x6d,0x6d,0x63,0x63,0x65,0xbb,0xc0,0xce,0xde,
+  0xde,0xce,0xd1,0xc9,0xc9,0xc9,0xd9,0xc5,0xc5,0xd9,0x75,0xf2,0xe4,0xc9,0x6e,0x6e,
+  0x53,0xa6,0x4e,0x9d,0xe2,0xee,0xe1,0xe9,0xe1,0xe5,0xe9,0xed,0xe5,0xe3,0xed,0xeb,
+  0xeb,0xe7,0xe7,0x1f,0x10,0x10,0x10,0x18,0x14,0x14,0x38,0x2d,0x38,0x38,0x38,0x24,
+  0x38,0x34,0x34,0x2c,0x2c,0xac,0x25,0x3c,0x3c,0x22,0x22,0x92,0x4a,0xa5,0x46,0x51,
+  0xa3,0xa3,0x63,0x62,0x62,0xae,0xc4,0xc6,0x4e,0x8f,0x8d,0x8b,0x8b,0x8f,0x4f,0x48,
+  0x48,0xb8,0x99,0x98,0x98,0x94,0x4c,0xfa,0x30,0xf3,0x6f,0x52,0x8,0x3a,0x9d,0xfe,
+  0x80,0xc1,0x60,0x32,0x59,0x2c,0xd6,0xe3,0xd4,0x54,0xd2,0x88,0xf4,0x8e,0xd9,0xb3,
+  0x33,0x38,0x1c,0xe,0xe7,0x39,0x97,0xcb,0xe3,0xf1,0xf9,0x99,0xfc,0xcc,0x6e,0x81,
+  0x50,0x28,0x14,0x89,0x44,0xaf,0xb2,0xc4,0x62,0x71,0xb6,0x38,0xbb,0x37,0x27,0x47,
+  0xea,0x44,0x7e,0x41,0xc1,0x9c,0x39,0x52,0x27,0xe6,0xe,0x71,0x42,0xa1,0xa4,0x44,
+  0xea,0xc4,0xf0,0xa5,0x4b,0x97,0x2d,0x93,0x3a,0xa1,0xb6,0x72,0xe5,0xaa,0x55,0x52,
+  0x27,0x34,0xd7,0xac,0x59,0xbb,0x56,0xea,0x84,0xce,0xc6,0x8d,0xdf,0x70,0xa2,0x7c,
+  0xe7,0xce,0x8a,0x9,0x15,0x15,0x95,0x95,0xbb,0x76,0x55,0x55,0x55,0x5b,0x54,0x57,
+  0x7f,0xc5,0x88,0x3,0x75,0xce,0x75,0x75,0xf5,0xf5,0xd,0xd,0x8d,0x8d,0x7,0x27,
+  0x1f,0x3c,0x38,0xc4,0x87,0xe3,0x27,0xbc,0x4f,0x9c,0x68,0x6a,0xfa,0xcc,0x86,0x33,
+  0x67,0xa7,0x9d,0x3d,0x7b,0xee,0x5c,0x4b,0xcb,0xf9,0xf3,0xad,0x61,0xad,0xad,0x43,
+  0x5c,0x18,0x6a,0x42,0x9f,0x7,0xdf,0xb0,0xe0,0x45,0xd7,0x80,0x3,0x6f,0xdf,0xbe,
+  0x7b,0xf7,0xe1,0x83,0x44,0x2,0xc,0x1f,0x49,0xf2,0xd7,0xd4,0xd5,0x1a,0xa9,0xad,
+  0xaf,0xa3,0x3d,0xd6,0x40,0x4f,0x6b,0x9c,0xae,0xbe,0xa1,0x81,0x3e,0x85,0x62,0x68,
+  0x60,0x64,0x38,0xde,0xd0,0x78,0xbc,0xf1,0x36,0x13,0x63,0xd3,0x9,0x13,0xcc,0xcc,
+  0x4c,0xcd,0xca,0xcd,0x2d,0x2c,0xcc,0x2c,0xad,0xac,0xad,0x6d,0x6c,0x6d,0x6d,0xec,
+  0xec,0x1d,0x1c,0x1c,0x1d,0x9d,0x9c,0x9d,0x9d,0x5c,0x5c,0x26,0x4d,0x72,0x9d,0xe4,
+  0xe6,0x3a,0xc5,0x6d,0xea,0x54,0x77,0x77,0xf,0x4f,0x4f,0x4f,0x2f,0x6f,0x6f,0x2f,
+  0x1f,0x5f,0x5f,0x5f,0x3f,0x5f,0x7f,0xff,0x80,0x80,0xc0,0xc0,0xc0,0x53,0x41,0x41,
+  0xfd,0x3e,0x84,0x87,0x87,0x47,0x44,0x44,0x5c,0x88,0x8c,0xa4,0x52,0xa3,0xa2,0xa2,
+  0xa3,0x63,0xa2,0x7,0x7c,0x88,0xbf,0x91,0x90,0x98,0x98,0x98,0x94,0x94,0x9c,0x9c,
+  0x7c,0x67,0xc6,0xc,0xb2,0x42,0xd0,0xda,0x52,0x52,0xe8,0x74,0x6,0x83,0xc9,0x64,
+  0x3e,0x62,0xb1,0x52,0x53,0xd3,0xd2,0xd2,0xda,0xd9,0xec,0x74,0xb6,0xb4,0x46,0x70,
+  0x7,0xd5,0x88,0x4c,0xc1,0x4b,0xa1,0x50,0x24,0xcc,0xca,0xca,0x7a,0x2d,0x16,0x67,
+  0x67,0xe7,0xe4,0xe4,0xe6,0xe6,0xfe,0x27,0x2f,0x2f,0x3f,0xbf,0xa0,0x60,0x4e,0xc1,
+  0x9c,0x8f,0x85,0x85,0x52,0x1f,0x88,0x79,0xf3,0xa4,0x3e,0xc8,0x2f,0x5a,0xd4,0xef,
+  0xc3,0xd2,0x65,0xca,0xfd,0x3e,0xc,0xad,0x11,0xeb,0xd6,0x6b,0x4b,0x6b,0xc4,0x97,
+  0x36,0x94,0xfd,0x3a,0xbe,0xdf,0x86,0xc1,0xf5,0xe1,0x73,0x17,0xf6,0xd5,0xd6,0xee,
+  0x77,0xdc,0xbf,0x5f,0x5a,0x1b,0x1a,0x1a,0x5d,0x1b,0x1b,0xfb,0x4d,0x38,0x72,0xd4,
+  0x43,0x6a,0xc2,0x40,0x5d,0xf8,0xd2,0x3,0xd2,0x82,0xc8,0x8b,0x17,0x3f,0xb3,0xe0,
+  0x5f,0x1d,0x20,0xd,0xe8,0xea,0x7c,0xf1,0xe2,0x4b,0xfe,0xe4,0xb7,0xf,0x0,0x14,
+  0x9c,0x81,0xcd,0xd5,0x40,0x9c,0x3a,0x40,0xe5,0x2,0xcb,0x35,0x81,0x9,0x1c,0x40,
+  0xab,0x2,0x88,0x18,0x1,0x44,0xbb,0x42,0xc6,0xc1,0x1,0xc4,0xbb,0x36,0x10,0xd7,
+  0x86,0xf7,0x7d,0x3f,0x6,0x35,0x42,0xfa,0x93,0x81,0xc,0x64,0x20,0xb,0x59,0xc8,
+  0x41,0x1,0x8a,0x50,0x82,0x32,0x46,0x40,0x1d,0xa3,0xa0,0x5,0x5d,0x50,0x60,0x2,
+  0x6b,0xb8,0xc0,0x1d,0x7e,0x8,0x45,0x3c,0x98,0x28,0xc6,0x4a,0x94,0x62,0x37,0x8e,
+  0xe1,0x11,0xde,0x12,0xca,0x84,0x13,0x11,0x4c,0xd0,0x88,0x95,0xc4,0x31,0xe2,0xb5,
+  0x8c,0x85,0xc,0x43,0xa6,0x58,0xa6,0x54,0xe6,0xb6,0xac,0x9e,0xec,0x4c,0xd9,0xe,
+  0x39,0x35,0x39,0x47,0xb9,0x22,0xb9,0x16,0xb9,0xd7,0xf2,0xe3,0xe4,0xf9,0xf2,0x4d,
+  0xa,0xba,0xa,0x22,0x85,0x6d,0xa,0xad,0x8a,0x56,0x8a,0xcb,0x14,0x3b,0x87,0x51,
+  0x87,0xd5,0x2b,0x51,0x94,0x96,0x28,0xbd,0x19,0xce,0x18,0x7e,0x45,0x39,0x40,0xf9,
+  0x90,0x8a,0xbd,0x4a,0xd5,0x8,0xd3,0x11,0xdb,0x55,0xd,0x55,0xb7,0xa9,0x19,0xab,
+  0x55,0xaa,0xdb,0xa8,0xd7,0x8f,0xf4,0x19,0xd9,0xaa,0xd1,0x39,0x6a,0xae,0xe6,0x68,
+  0xcd,0xaa,0xd1,0x3e,0xa3,0xef,0x68,0xe5,0x6a,0x1f,0x18,0x13,0x37,0xe6,0x83,0xce,
+  0xb6,0xb1,0x81,0xba,0x9b,0xf5,0x82,0xf4,0xde,0x8e,0xab,0x30,0x50,0x33,0x68,0xa6,
+  0xcc,0x31,0x74,0x31,0xda,0x3d,0x9e,0x67,0x6c,0x6b,0xdc,0x63,0x5a,0x38,0xc1,0xdf,
+  0x4c,0xdd,0xbc,0x72,0x62,0xae,0xc5,0x34,0x4b,0x3d,0xab,0x93,0xd6,0x5b,0x6d,0x72,
+  0x6d,0x63,0xec,0x35,0xec,0x7b,0x1c,0xae,0x38,0x36,0x38,0x97,0xb8,0x64,0x4e,0x4a,
+  0x72,0xd,0x9a,0x3c,0x69,0xca,0xd8,0xa9,0xaa,0xee,0xb2,0xee,0xef,0x3d,0x5e,0x79,
+  0x75,0x78,0xb7,0xfb,0xb4,0xfb,0x3e,0xf5,0x7b,0x16,0xd0,0x1b,0x28,0x99,0xa6,0x14,
+  0xac,0x19,0x62,0x18,0xe6,0x19,0x4e,0x8d,0x60,0x45,0xe6,0x47,0x55,0x45,0x37,0xc7,
+  0xb4,0xc5,0x4a,0xe2,0x3d,0x12,0x68,0x89,0xb,0x93,0xaa,0x66,0xbc,0x9f,0x65,0x42,
+  0xa3,0xd2,0x6b,0x18,0xf7,0x58,0x1a,0xa9,0x1,0xec,0xda,0xf4,0xe7,0x19,0x66,0xdc,
+  0xed,0xbc,0xb6,0x4c,0x23,0x61,0xa5,0xa8,0x4b,0xec,0x9c,0x73,0x3a,0x6f,0x74,0x3e,
+  0xbd,0x50,0xb6,0x28,0x66,0x6e,0xe5,0xfc,0xd8,0x5,0x35,0x8b,0x94,0x16,0x1f,0x5f,
+  0x62,0xb8,0xb4,0x78,0x79,0xc0,0x8a,0xea,0x55,0x1a,0x3f,0x3d,0x5c,0x13,0xb1,0xf6,
+  0xd0,0x86,0x4d,0x9b,0x54,0xb6,0xbc,0x2a,0x4d,0xdf,0xda,0x56,0x76,0x65,0x47,0x64,
+  0x79,0x6b,0xe5,0xf9,0xaa,0xc8,0xea,0xcb,0x35,0xf7,0xf6,0xb0,0xf7,0xbe,0x3c,0xa0,
+  0x5c,0xb7,0xa1,0xc1,0xfc,0x50,0xe8,0xe1,0xb6,0x23,0xd9,0xc7,0x77,0x36,0x79,0x35,
+  0xdf,0x39,0x99,0x7f,0xa6,0xf1,0x5c,0x62,0x8b,0xa4,0xb5,0xec,0x62,0xf7,0xe5,0x4d,
+  0x57,0xfd,0xae,0x75,0xdf,0x28,0xbd,0x15,0x76,0x5b,0x72,0x77,0xcf,0x3d,0xc6,0x7d,
+  0x9d,0x7,0x17,0x1e,0x2d,0x7e,0xe2,0xd5,0xfe,0xa1,0xa3,0xe1,0x99,0xb8,0xd3,0xb9,
+  0xab,0xb7,0xbb,0xe1,0xe5,0xc6,0x9e,0x82,0xd7,0xde,0xbd,0xc3,0xde,0x5e,0xf8,0xcf,
+  0xfe,0x77,0x1b,0x3f,0x30,0x3f,0x6,0x7f,0xb2,0x93,0x8c,0x91,0x48,0x86,0xb0,0x27,
+  0xb9,0xcb,0x43,0x1,0xc3,0xa0,0xc,0x55,0x68,0x40,0xb,0xe3,0x60,0x2,0xb,0xd8,
+  0xc1,0x5,0xde,0x52,0xde,0x42,0x29,0xf1,0x63,0xb8,0x88,0x47,0x84,0x32,0x41,0x21,
+  0x9c,0x8,0x1a,0x91,0x23,0x25,0xae,0x26,0x63,0x21,0xc3,0xe8,0x27,0x5e,0x2c,0xdb,
+  0x21,0xe7,0x28,0x17,0x2f,0x57,0x24,0xd7,0x22,0x3f,0x4e,0x9e,0x2f,0xbf,0x51,0xca,
+  0x9c,0x24,0x7e,0xf8,0xdb,0xcc,0x3f,0x23,0x9e,0x3c,0x40,0x5c,0x5b,0xbb,0x9f,0x78,
+  0x37,0x49,0x5c,0x3f,0xd1,0x40,0xcd,0xa0,0xd9,0xd0,0xc5,0xf0,0xa5,0xd1,0xee,0xf1,
+  0x3c,0xe3,0x1e,0x93,0x3a,0xd3,0x42,0x33,0x75,0xb3,0xdb,0xe6,0x95,0x13,0x73,0x2d,
+  0xf5,0x2c,0xbb,0xad,0x4e,0xda,0xe4,0xda,0xc6,0xd8,0x39,0x7c,0xce,0xdb,0xcd,0x8c,
+  0xe4,0xed,0xf1,0xca,0xb3,0xd3,0xab,0xc3,0xbb,0xdd,0xf7,0xa9,0xdf,0x33,0xff,0xee,
+  0x80,0x5e,0x92,0x76,0xa8,0x6d,0x98,0x67,0x4,0x2b,0x32,0x9f,0xba,0x3a,0xaa,0x2a,
+  0xba,0x39,0x56,0x12,0xa7,0x4f,0xf2,0x4e,0xbe,0x48,0xf2,0x4e,0x29,0x22,0x79,0xa7,
+  0x15,0xa4,0x3f,0xcf,0x30,0xe3,0x30,0xb8,0xdb,0x79,0x6d,0x2,0xe6,0x60,0xe2,0x5,
+  0x7b,0x8b,0x62,0xe6,0x56,0x16,0x4b,0x16,0xd4,0x2c,0x52,0x2a,0x61,0x2e,0x3e,0xbe,
+  0xb4,0x78,0xd9,0x83,0xe5,0x1,0x2b,0xaa,0x57,0xe7,0xf,0x30,0xdf,0x5c,0xb4,0xe5,
+  0xd5,0xd6,0xb6,0xed,0x9,0x65,0x57,0x76,0x44,0x56,0x84,0xd,0xa6,0x5e,0x5b,0x58,
+  0xb7,0xa1,0xc1,0xbc,0xb1,0xf1,0x50,0xe8,0x91,0xec,0x63,0xaa,0x43,0xb9,0xff,0x35,
+  0xed,0x3b,0xc8,0x6b,0x75,0xf5,0x76,0x37,0xf4,0x14,0xbc,0xf6,0x7e,0x63,0xd2,0xc7,
+  0xfe,0x7d,0x11,0x49,0xff,0xd3,0x59,0x9,0xf3,0x2b,0xfc,0x65,0x21,0x3f,0x84,0xbf,
+  0xb5,0x94,0x3e,0xc9,0x5e,0x9a,0x75,0x42,0x99,0x70,0x1a,0x94,0xf3,0xa1,0x19,0x2f,
+  0x97,0x12,0x6f,0x92,0xef,0x1a,0x44,0xbc,0x73,0x18,0x75,0xd8,0x82,0x6f,0xa6,0x7c,
+  0x10,0x71,0x8d,0xce,0x51,0x73,0xfb,0x33,0xae,0xfd,0x7f,0x65,0xbc,0x9b,0xcc,0xb8,
+  0x9d,0x83,0xbd,0x86,0x7d,0x8f,0x63,0x83,0xd3,0x56,0xe7,0x12,0x32,0xe1,0x6e,0x66,
+  0x43,0x13,0xee,0xdf,0x4d,0x26,0x9c,0x24,0xfe,0x79,0xc2,0xe3,0xf4,0xe3,0x3d,0x12,
+  0x17,0x26,0x55,0xf5,0x31,0xef,0xcb,0x78,0x5a,0x1,0xbb,0x36,0xfd,0x39,0xc9,0x3c,
+  0xd3,0x48,0xc0,0x14,0x75,0x89,0x9d,0xb3,0x8b,0x6,0xe7,0xbc,0x58,0x32,0x3f,0x76,
+  0x41,0x4d,0x9,0x93,0x4c,0xfa,0xb2,0x7,0x2b,0xaa,0x57,0x69,0x90,0xdc,0xd7,0x5b,
+  0xf4,0x71,0x2f,0x4d,0x27,0xb9,0x97,0xb7,0x56,0x84,0x55,0x45,0x56,0x5f,0xfe,0x3d,
+  0x61,0x70,0xde,0x1b,0x1b,0x3f,0x4f,0xfc,0x69,0x9d,0xef,0x63,0xff,0xf4,0xe6,0x60,
+  0xfa,0x64,0xf2,0xbf,0xce,0x9f,0x3c,0x2f,0x1,0x0,0x86,0xfb,0xf0,0x32,0x78,0x2,
+  0x4a,0x88,0x8f,0xef,0x77,0x1d,0xf1,0xbe,0xbf,0x71,0x32,0xb2,0xfa,0xf6,0x50,0x3,
+  0xa0,0xc2,0x16,0x5,0x45,0x3,0xd0,0x4,0xd0,0xc4,0x12,0xf8,0x53,0x1,0x78,0x3,
+  0xb8,0xce,0x4d,0x9,0xb,0x7,0xa0,0x1,0x10,0x63,0x99,0x42,0xbf,0x28,0x69,0xdf,
+  0x92,0xc5,0xf6,0xf,0x2,0xa0,0xe,0x10,0xee,0x7c,0x51,0x44,0x34,0x80,0x31,0x0,
+  0x11,0x96,0x97,0x16,0x3d,0x1d,0x80,0x2a,0x40,0xb0,0xd2,0x69,0xd3,0x22,0xa4,0x7d,
+  0x11,0x37,0x23,0x2c,0x4,0x80,0x16,0x40,0xcc,0x63,0x30,0x7d,0xfd,0xa4,0x73,0xd7,
+  0xcf,0xe6,0x5,0x53,0x1,0xa8,0x0,0x44,0x5,0x93,0x1b,0xd3,0xb7,0x7e,0xad,0x50,
+  0x1c,0xd5,0x37,0xe6,0x4f,0x6,0xcd,0x37,0x18,0x80,0x1e,0x40,0x5c,0xcd,0x4b,0xf3,
+  0x9,0x93,0x8e,0x7f,0x89,0x10,0xf8,0xc0,0x17,0x14,0xd0,0xc1,0x43,0x6,0x78,0x10,
+  0x80,0x8d,0xd3,0xa0,0x43,0x0,0x1a,0xb8,0xa0,0xe0,0x1e,0x28,0xa0,0x43,0x0,0x36,
+  0x84,0x10,0x81,0x86,0x2c,0xe4,0x80,0x82,0xc,0xb0,0x91,0x89,0x2c,0xb0,0xc1,0x0,
+  0x13,0x42,0xe9,0xfc,0x2c,0x64,0x80,0x89,0x2c,0x8,0xe0,0xf,0x1a,0x4,0x48,0x5,
+  0x13,0x56,0xd2,0x1d,0xbe,0xdc,0x27,0x16,0xf,0x21,0x0,0xfb,0x1b,0x23,0xd8,0x60,
+  0x80,0x37,0x93,0x3d,0x4f,0xc0,0xd9,0xcb,0x12,0xaf,0xe7,0xe5,0x4e,0x8e,0x4d,0xb3,
+  0xad,0xb2,0x7d,0x6a,0xfb,0x1,0x14,0xe9,0xe8,0xe0,0xfe,0x1d,0x99,0xe0,0xf6,0xaf,
+  0x44,0xee,0x9e,0xd2,0x77,0x7d,0xfe,0x59,0xdd,0xb3,0xfe,0x19,0x3e,0xfd,0xab,0x53,
+  0xfa,0x47,0x3f,0x84,0x0,0xa9,0x43,0x9e,0xc3,0xa,0x2c,0xd0,0x20,0x80,0x18,0x4c,
+  0x8,0x31,0x1b,0x8f,0x21,0x0,0x67,0x26,0x7b,0xde,0xc0,0x3c,0x90,0x67,0x6f,0x0,
+  0x50,0x50,0x7,0x36,0x53,0x0,0xa0,0x3e,0x7f,0xed,0xdc,0xa1,0x9e,0x88,0x98,0x39,
+  0x22,0x0,0xf0,0xe1,0xf1,0x73,0x5,0xec,0xd4,0x34,0x11,0xc5,0x8b,0xcf,0xcf,0x60,
+  0x52,0x7c,0x78,0x1c,0x7e,0x96,0x88,0x29,0xb0,0xa4,0x4,0x71,0xe9,0xd6,0x96,0x14,
+  0x7b,0x5b,0x5b,0x27,0x0,0xf8,0x2f,0xe5,0xbe,0x80,0x90,0x4c,0x36,0x19,0x1,0x0,
+  0x0,0x20,0x0,0x49,0x44,0x41,0x54,0x78,0x9c,0xec,0xbd,0x79,0x7c,0x5c,0x57,0x7d,
+  0x37,0xfc,0x3d,0x77,0xbf,0xb3,0x49,0x1a,0x49,0xb6,0x2c,0xc9,0x96,0xbc,0xc5,0x76,
+  0x6c,0x67,0xb1,0x93,0x18,0x27,0x4e,0x42,0x48,0x48,0x42,0x2,0x2d,0x4b,0x79,0xa,
+  0xf,0xcf,0x4b,0x3,0x7d,0x1e,0x5e,0xa,0xb4,0x6f,0x4b,0x4b,0x59,0x1a,0x28,0x2d,
+  0x4b,0x69,0x81,0x42,0x69,0x81,0x42,0x5b,0xa,0xa5,0x90,0x40,0xfb,0x10,0x42,0x16,
+  0x48,0x8,0x21,0x2b,0xd9,0xed,0x38,0xde,0x13,0x2f,0x92,0x6d,0xc9,0x5a,0x67,0x46,
+  0x33,0x9a,0xb9,0xfb,0x39,0xef,0x1f,0x67,0xe6,0xe8,0xcc,0x9d,0x91,0x2c,0x67,0x75,
+  0x12,0x7d,0x3f,0xfa,0xdc,0xcf,0x99,0x3b,0x77,0xee,0x72,0x74,0xbe,0xf7,0xf7,0x3b,
+  0xbf,0xed,0x90,0xc9,0xc9,0x49,0x2c,0xe0,0x74,0x45,0x14,0x45,0x0,0x1c,0xc7,0x89,
+  0xa2,0x28,0x9f,0xcf,0xbb,0xae,0x9b,0xcf,0x4f,0x96,0x4a,0xd3,0xbf,0xdb,0xfa,0xb1,
+  0xd8,0x91,0x9f,0x7b,0xfc,0x7f,0x67,0xb3,0x59,0xdb,0xb2,0x17,0x2d,0xee,0x6c,0x6b,
+  0x6b,0xb7,0x2c,0xcb,0xb2,0xac,0x54,0x2a,0xa5,0xeb,0xba,0xa6,0x69,0xaa,0xaa,0xbe,
+  0x14,0xb7,0xbf,0x80,0x17,0x10,0xca,0x4b,0x7d,0x3,0xb,0x98,0xb,0xaa,0xaa,0x86,
+  0x61,0x8,0xc0,0x71,0x1c,0xb1,0xb3,0x55,0x1d,0x9e,0xed,0x78,0x3b,0x61,0xc7,0xf6,
+  0x68,0x9a,0xf6,0x2,0xdd,0xdb,0x2,0x5e,0x5a,0x2c,0x50,0xf7,0xb4,0x6,0x97,0xba,
+  0x0,0x6c,0x7b,0x86,0x93,0xb9,0x6,0x45,0xe9,0x86,0x81,0x77,0x1,0xb0,0x2d,0x1b,
+  0x80,0x55,0xdd,0x5a,0xe2,0x27,0xb,0x22,0xf7,0x15,0x89,0x5,0xea,0xbe,0x3c,0xc0,
+  0xa5,0xae,0xe3,0x54,0x0,0x64,0xdb,0xdb,0x1b,0xf,0x58,0xd1,0xe1,0x0,0x30,0x4d,
+  0x3,0x80,0x65,0x59,0x7c,0xa7,0xae,0xeb,0x2f,0xde,0x2d,0x2e,0xe0,0xc5,0xc5,0x2,
+  0x75,0x5f,0x66,0xf0,0x7d,0xbf,0x4f,0xdf,0x1e,0xdb,0x79,0x78,0xc2,0x2e,0xd0,0x9e,
+  0x97,0xe4,0x7e,0x16,0xf0,0x52,0x61,0x81,0xba,0x2f,0x3,0x8,0xb5,0x79,0x6e,0xd8,
+  0x9,0xdb,0x30,0xc,0xf1,0x71,0x41,0x4f,0x7e,0x65,0x63,0x81,0xba,0x2f,0x33,0x78,
+  0x9e,0xdf,0xb8,0x33,0x9b,0xcd,0x8a,0xb6,0x6d,0x27,0x20,0xcd,0x8d,0x17,0x8,0xfc,
+  0x4a,0xc5,0x2,0x75,0x5f,0x66,0xe0,0xb3,0x59,0x19,0xfb,0xdd,0x6d,0xb9,0x5c,0x8e,
+  0xb7,0x85,0x8d,0x8a,0xcf,0x8d,0x17,0xcc,0xcb,0xaf,0x60,0x3c,0xd7,0x7f,0xad,0xac,
+  0xcb,0x2d,0xbc,0xe0,0x5f,0x8,0x4,0x41,0xc0,0x1b,0xae,0xeb,0x2,0xf0,0x3c,0x7f,
+  0x6d,0xeb,0x3,0xb1,0x63,0xb8,0x47,0x57,0x66,0xb5,0x6c,0x91,0x5e,0xc0,0x2b,0x12,
+  0xcf,0x46,0xea,0x46,0x12,0x0,0x84,0x35,0x44,0xf5,0x78,0xbe,0x6f,0xf5,0x55,0xd,
+  0xce,0x5b,0x8e,0xfd,0xee,0x36,0xf9,0xab,0x1d,0x23,0x7d,0x42,0xea,0xca,0xe0,0xe6,
+  0xe5,0x85,0x7f,0xc4,0x2b,0x15,0xa7,0x26,0x75,0xc5,0x38,0xe0,0x71,0x2,0x1c,0x5c,
+  0x2c,0xe8,0xba,0xee,0x38,0x4e,0x53,0x6f,0xc4,0x82,0x34,0x7e,0xd6,0x10,0xf1,0x18,
+  0x96,0x65,0xb9,0xae,0xeb,0xba,0xe,0x80,0xb5,0x56,0x13,0xa9,0xb,0x80,0xdb,0xa8,
+  0x84,0x67,0x88,0x63,0xa1,0xf3,0x5f,0xa9,0x38,0x5,0xea,0xa,0x19,0xcb,0x3f,0x72,
+  0xc6,0xa,0x32,0xf3,0x6,0xdf,0xaa,0xaa,0xaa,0xeb,0x3a,0x3f,0x52,0xd3,0x34,0xb1,
+  0xf3,0xf9,0xbc,0xf1,0x57,0x1,0x64,0x81,0x29,0x4b,0xdd,0x18,0xe,0x4f,0xd8,0xd9,
+  0x6c,0x3c,0x8e,0x6a,0xa1,0xb7,0x5f,0xf1,0x98,0x2f,0x75,0x65,0xde,0x6,0x41,0x20,
+  0x62,0x6b,0xf9,0xb7,0xae,0xeb,0xc6,0x5e,0xf6,0xb6,0x6d,0xcb,0xa3,0x67,0x81,0xc0,
+  0xcf,0x5,0xb6,0x6d,0xb,0xea,0x36,0x46,0x41,0x36,0x9a,0x97,0x17,0xf0,0x6a,0xc0,
+  0xbc,0xa8,0xdb,0xc8,0x5b,0x4e,0x5a,0x31,0x9e,0x5c,0xd7,0xe5,0x6d,0x4e,0x60,0x61,
+  0xe1,0xb4,0x6d,0x3b,0x8a,0xa2,0xd9,0xe8,0xba,0x40,0xe3,0xf9,0x40,0xf4,0xf6,0x6c,
+  0xc8,0xe5,0x72,0x3d,0xdd,0x75,0xf1,0x18,0xb,0x36,0xaa,0x57,0x3,0x4e,0x4e,0x5d,
+  0x59,0x6d,0x8b,0xf1,0x96,0xd3,0x95,0x47,0xe7,0x71,0x38,0x4e,0xc5,0xb6,0x13,0x32,
+  0x8d,0x21,0x11,0x98,0x6b,0xd1,0xc2,0x63,0x31,0x7,0xab,0x17,0x20,0x20,0xba,0x48,
+  0xee,0x67,0x81,0xfd,0xee,0x36,0x59,0xea,0xd6,0x8e,0x74,0x52,0xa9,0xd4,0xb,0x7e,
+  0x67,0xb,0x78,0x49,0x31,0x5f,0x85,0x39,0xc,0x43,0x99,0xb7,0x85,0x42,0x1,0x80,
+  0x56,0xda,0x9e,0x76,0x1e,0x6a,0x3,0x0,0xec,0x67,0x6f,0xe5,0x47,0x72,0x53,0xa,
+  0x77,0x30,0xca,0x8a,0x74,0x4c,0x2,0x73,0x2,0x2f,0x68,0xd1,0x27,0xc5,0x49,0x4d,
+  0xc4,0x5c,0xea,0x9a,0xa6,0x21,0x9c,0xba,0x58,0x88,0x5e,0x7e,0x15,0xe0,0xe4,0xd4,
+  0x55,0x55,0x35,0x36,0x7a,0x5c,0xd7,0x35,0xa3,0x91,0x4d,0xf4,0xef,0xc1,0x8e,0xc1,
+  0x2,0xec,0xa5,0x70,0x8e,0xad,0xc5,0x3,0xfb,0xdd,0x6d,0x83,0xc1,0xa6,0x82,0xd7,
+  0x6d,0x9a,0x86,0xef,0xfb,0xae,0xeb,0x34,0x25,0x30,0x80,0x98,0xf8,0x5d,0xc0,0x3c,
+  0xe1,0xfb,0xfe,0xda,0xfa,0x0,0xe6,0x1d,0x23,0x7d,0x8d,0x52,0x97,0x77,0xf2,0x42,
+  0x9a,0xee,0xfc,0x11,0x4,0xc1,0xe1,0xc3,0x87,0x7,0x6,0x6,0x86,0x87,0x87,0x8b,
+  0x85,0x29,0xd7,0xf7,0x54,0x45,0x49,0xa5,0x52,0x1d,0x1d,0x1d,0x1d,0x9d,0x9d,0x5d,
+  0x5d,0x5d,0x4b,0x96,0x2c,0x69,0x69,0x69,0x79,0xa9,0x6f,0xb3,0xe,0xa7,0x46,0x1e,
+  0xa1,0x2a,0x6b,0x95,0x61,0xb0,0x63,0x40,0x95,0xb7,0xfc,0xdb,0xb5,0xd6,0x3,0x6b,
+  0xad,0x7,0x60,0x2f,0xbd,0x61,0xdf,0x25,0x9e,0xb1,0xca,0x4e,0xd8,0x32,0x81,0x5,
+  0x1a,0xc5,0xef,0x82,0xe6,0xfc,0x1c,0x21,0xcc,0xcb,0x31,0x63,0xe1,0x2,0x4e,0x8a,
+  0xd1,0xd1,0xd1,0xff,0xf8,0x8f,0xff,0xb8,0xfd,0xf6,0xdb,0x27,0x27,0x26,0xba,0x93,
+  0xe9,0xb5,0x6d,0x8b,0xba,0x12,0x29,0x5b,0x33,0xc2,0x28,0x1a,0x74,0xa7,0x1f,0x9c,
+  0x2e,0xe,0x4e,0x4f,0xe5,0x3d,0xc7,0xb2,0xac,0xe5,0xfd,0xfd,0x6f,0xb8,0xe6,0x9a,
+  0x6b,0xae,0xb9,0x66,0xf1,0xe2,0xc5,0x2f,0xf5,0x5d,0x3,0xf3,0x9f,0xeb,0xa,0xab,
+  0xb2,0xeb,0xba,0x8e,0x53,0x49,0xa3,0x46,0x5a,0x47,0x22,0x70,0x6d,0xcf,0x3b,0xfb,
+  0x7f,0xc0,0x9,0x5c,0xa8,0x27,0xb0,0x6c,0xff,0x94,0x4d,0x29,0xc2,0xfe,0x8c,0x5,
+  0xe5,0xb9,0x6,0xd1,0xed,0xfc,0x63,0xdc,0x39,0x24,0x3a,0xbc,0x6,0x39,0xf1,0x40,
+  0x3e,0xc9,0x42,0x7f,0x36,0x5,0xa5,0xf4,0xd8,0xb1,0x63,0xdf,0xfb,0xde,0xf7,0x6e,
+  0xfe,0xc1,0xd,0xeb,0xda,0x17,0xff,0xf1,0x59,0xe7,0x5f,0xf9,0xa6,0xd,0xdd,0x99,
+  0x56,0x42,0x48,0xe3,0xc1,0x53,0x4e,0x65,0xe7,0x89,0x63,0xf7,0x1f,0x79,0xfa,0xa7,
+  0xdf,0xfc,0xf6,0xb7,0xbf,0xf2,0xf,0xaf,0xff,0xed,0x37,0xfd,0xde,0x75,0xd7,0x2d,
+  0x5b,0xb6,0xec,0xa5,0x9d,0x95,0xcc,0x4b,0xea,0xca,0x1,0x18,0x33,0x63,0x48,0x70,
+  0x55,0x12,0xbc,0xc0,0x8c,0x1c,0x7e,0x67,0xff,0xf,0xf6,0xbb,0xdb,0x76,0x8c,0xf4,
+  0x71,0x2,0x3,0x70,0x5d,0xa7,0xad,0xad,0x5d,0xd6,0x9f,0x53,0xa9,0x94,0x18,0x9d,
+  0x62,0xf6,0xbb,0x30,0xda,0x38,0xe4,0x6e,0x9f,0xd,0x72,0xae,0x9f,0x78,0x33,0x8a,
+  0xe,0x5c,0xe8,0xc9,0xa6,0x8,0xc3,0xf0,0xab,0x5f,0xfd,0xea,0x6f,0xee,0xba,0x7b,
+  0xa3,0x99,0xf9,0xcf,0xff,0xf1,0xbf,0xcf,0xeb,0xed,0x37,0xb5,0xb9,0x48,0xd8,0x62,
+  0x27,0x2e,0x59,0xb1,0xe6,0x92,0x15,0x6b,0xfe,0xec,0xd2,0x37,0x3c,0x7e,0xfc,0xc8,
+  0x4f,0x77,0x6f,0xff,0xd0,0x7b,0x7e,0xff,0x9a,0xb7,0xbf,0xed,0xdd,0xef,0x7e,0xf7,
+  0x4b,0xa8,0x45,0x9f,0x82,0xc2,0xec,0x38,0x8e,0xe0,0x6d,0xae,0xe8,0x61,0xd1,0xd2,
+  0x59,0xd9,0x5b,0xc3,0xda,0xb6,0xc1,0xb5,0xd6,0x3,0xfb,0xdd,0x6d,0xf,0xe7,0x2e,
+  0x7,0x60,0x9a,0x46,0x3e,0x3f,0x29,0xf4,0x67,0xcb,0xb2,0xa6,0xa7,0xa7,0x17,0x66,
+  0xbf,0x27,0x85,0xe8,0x76,0xcf,0xf3,0xd7,0x2e,0x19,0x44,0xbd,0xab,0xc8,0xb6,0x16,
+  0x5c,0x41,0xa7,0x80,0x20,0x8,0xfe,0xfa,0xaf,0xff,0xfa,0xd6,0x1b,0xff,0xeb,0x6b,
+  0x6f,0x7c,0xc7,0x95,0x6b,0x36,0xda,0xa7,0x22,0x39,0x4d,0x4d,0xbb,0xa8,0x7f,0xf5,
+  0x79,0xbd,0xcb,0xf7,0x8e,0xe,0x5f,0xff,0xdf,0x3f,0xfd,0xe5,0x9d,0x77,0x7e,0xf3,
+  0x9f,0xff,0xb9,0xa7,0xe7,0xa5,0xc9,0x94,0x7e,0x36,0x31,0xcc,0xae,0xeb,0x14,0xa2,
+  0xee,0xf8,0x5e,0xbb,0x81,0xc9,0xb5,0xed,0x5a,0xeb,0x81,0xeb,0x56,0x7e,0xe7,0x6c,
+  0xeb,0xd6,0x42,0x7e,0xaa,0x54,0x9a,0x2e,0x16,0xa7,0x1c,0xa7,0x92,0xcf,0xe7,0x6a,
+  0xbe,0x25,0x27,0x8a,0x22,0x21,0x7b,0xb1,0x10,0x76,0x5b,0xf,0x29,0xee,0xc5,0xa9,
+  0x26,0x18,0xd4,0x3a,0x76,0x7f,0xbe,0x4f,0x1c,0x26,0x5e,0x88,0xb,0x4e,0xdd,0x39,
+  0x50,0xa9,0x54,0xbe,0xf2,0xe5,0x2f,0x3f,0x74,0xdb,0x2f,0x7e,0xf9,0xde,0xf,0xff,
+  0xf6,0x86,0x4d,0xa7,0xc4,0x5b,0x1,0x53,0xd3,0xce,0xed,0x59,0xf6,0xfd,0xdf,0xf9,
+  0xfd,0x33,0xa9,0xf1,0x8e,0xb7,0xbe,0xed,0xa1,0x87,0x1e,0xa2,0x94,0x3e,0xef,0xb7,
+  0x7a,0x52,0x68,0xcf,0x8e,0x27,0x4e,0x45,0x7a,0xf3,0xc7,0xe6,0x5d,0xd,0xd3,0xb0,
+  0xaa,0x9,0xba,0xd,0x6b,0xad,0xbf,0xba,0xa3,0xf4,0x47,0x5,0xaf,0xbb,0x58,0x9c,
+  0xca,0x64,0x5a,0xf2,0xf9,0x9c,0x6d,0x27,0x5a,0x5b,0x5b,0x1d,0xc7,0x11,0x3,0x4e,
+  0x76,0x1a,0x2d,0x20,0x6,0xcf,0xf3,0xab,0x7d,0x5b,0x55,0x73,0xaa,0xd4,0x35,0x4d,
+  0xc3,0x75,0x1d,0xdb,0x4e,0xf0,0x60,0x18,0xe1,0xd4,0x5d,0xe8,0x46,0x19,0xc5,0x62,
+  0xf1,0xef,0xbf,0xfc,0xe5,0xbd,0xbf,0x7e,0xe0,0xcb,0x57,0xbf,0xbd,0xbd,0xa5,0xa5,
+  0x10,0x78,0x2a,0x21,0x86,0xaa,0xe9,0x44,0x61,0x0,0x53,0x88,0x46,0xd9,0xfc,0xcf,
+  0x96,0x4d,0x24,0xbf,0xfe,0xdb,0xff,0xeb,0xdb,0xf,0xdf,0xf3,0x77,0x9f,0xfa,0xf4,
+  0x1f,0x7e,0xfc,0xa3,0x97,0x5e,0x7a,0xe9,0xb,0x77,0xe7,0x4d,0x71,0x6a,0x81,0x90,
+  0xa8,0x5,0x6,0x2c,0x49,0xe7,0x1,0x54,0xf9,0x29,0x88,0x1a,0xfb,0xd8,0xec,0x80,
+  0xab,0xec,0x9b,0xf6,0xe7,0xfb,0xb8,0xfe,0x2c,0x87,0xcb,0x73,0xb3,0x73,0xf5,0x9e,
+  0x16,0xd4,0xe6,0x39,0x20,0xf5,0xed,0x8e,0x81,0x5,0xa9,0x3b,0x5f,0x4c,0x4f,0x4f,
+  0x7f,0xea,0x53,0x9f,0x1a,0x18,0x18,0xe8,0x5d,0xb3,0xea,0x36,0x5a,0xb8,0x67,0x32,
+  0xd0,0x75,0x9d,0x46,0xd4,0xf7,0x3c,0x6f,0x32,0xdf,0xad,0x98,0xe7,0x9f,0xb1,0xee,
+  0xcc,0x4c,0xb6,0x35,0x3c,0x5,0x45,0x54,0x57,0xd5,0xff,0xb3,0xe5,0x52,0xdb,0xd0,
+  0x3f,0xf6,0x27,0x7f,0xfa,0xaf,0xdf,0xff,0xde,0xfa,0xf5,0xeb,0x5f,0xc0,0x7,0x68,
+  0xc0,0xc9,0x49,0xd2,0x68,0x2c,0xf1,0x7d,0xbf,0xde,0xdb,0xb3,0x14,0x4d,0x3f,0xc6,
+  0x28,0x5d,0xdb,0xb3,0xb6,0x6d,0x10,0xf8,0xd5,0xc3,0xb9,0xcb,0x5b,0xdb,0x5a,0x50,
+  0x9b,0xc8,0x71,0xc1,0x1b,0x45,0xd1,0x42,0x2c,0xc1,0x1c,0x68,0xc,0x60,0xb6,0x2d,
+  0x5b,0xd4,0xb5,0x91,0x3d,0x43,0xb,0xaf,0x3f,0x19,0xc5,0x62,0xf1,0xae,0xbb,0xee,
+  0xda,0xb6,0x6d,0xdb,0xef,0xfd,0xde,0x75,0x9a,0xa6,0x29,0x8a,0x2,0x80,0x31,0x6,
+  0x30,0x80,0x4,0x81,0x3f,0x34,0x34,0xf4,0xa3,0xed,0xdb,0xdd,0xc1,0x3d,0x5d,0x54,
+  0xb9,0xc0,0x6a,0xdb,0x90,0x5d,0xd4,0x9d,0x69,0x35,0x54,0xad,0x89,0xb9,0xb9,0x1e,
+  0x86,0xa6,0x5d,0x77,0xde,0xc5,0x47,0x72,0x13,0x7f,0xf4,0x81,0xf,0xfe,0xfb,0xf7,
+  0xff,0x63,0xe9,0xd2,0xa5,0x4d,0xf,0x6b,0x6a,0xb8,0x7e,0x8e,0x50,0x3f,0xf2,0x91,
+  0x8f,0xcc,0x7d,0x84,0xa2,0x28,0x9e,0xe7,0x31,0xc6,0x78,0x52,0xae,0xeb,0x3a,0x8c,
+  0x31,0x25,0x98,0x5c,0x95,0xdc,0xdf,0x78,0xf0,0xfe,0x7c,0xdf,0xa7,0x6e,0x5e,0x56,
+  0x54,0xd7,0xea,0x1a,0x26,0xc2,0x65,0x1d,0xf6,0x54,0xdd,0xd7,0x7a,0xd5,0x1c,0xd7,
+  0x61,0x4f,0x59,0x24,0x37,0xe4,0xad,0x24,0xa4,0x9a,0x66,0x54,0xfd,0x5e,0xd7,0x19,
+  0x63,0x84,0x10,0xde,0xb9,0xaf,0x72,0x78,0x9e,0x17,0x45,0x11,0xef,0xf6,0x52,0xa9,
+  0x18,0x86,0x61,0xac,0xdb,0x1f,0x18,0xbb,0x50,0xd7,0x74,0x5d,0xd7,0x4d,0xd3,0xd0,
+  0x34,0xdd,0xb6,0x6d,0x4d,0xd3,0x74,0x5d,0x37,0x4d,0x93,0x52,0xba,0xd0,0x87,0x1c,
+  0xf9,0x7c,0xfe,0x6f,0xfe,0xe6,0xb,0xd3,0xd3,0x95,0xd7,0xbd,0xee,0xca,0x74,0xba,
+  0xc5,0x34,0x6d,0xcb,0xb2,0x55,0x55,0xd7,0x75,0x4d,0xd7,0x8d,0x54,0x2a,0xd5,0xd1,
+  0xd1,0xd9,0xdb,0xbb,0xf4,0x9c,0x73,0xce,0x39,0x63,0xcd,0x5a,0xa3,0xb3,0x7d,0xb7,
+  0x57,0xbc,0x65,0xcf,0x8e,0x3d,0x43,0x47,0x3b,0xda,0xdb,0xb3,0x86,0x7d,0xd2,0x4e,
+  0x24,0x84,0x5c,0xd8,0xb7,0x6a,0xc7,0x91,0x43,0x4f,0x1c,0x3d,0xbc,0x75,0xeb,0xd6,
+  0xd8,0x4b,0x53,0x26,0xed,0xf3,0x4b,0xe0,0x79,0x49,0x5d,0x5d,0xd7,0xe5,0x59,0x53,
+  0x5c,0xea,0x72,0x38,0xc7,0xf6,0xbb,0xdb,0xbe,0x76,0x47,0x6,0xc0,0xfd,0x3b,0xf3,
+  0xf7,0xef,0xcc,0xf4,0xf4,0x74,0x3,0x6b,0x57,0x74,0x38,0xe7,0x76,0xd,0xae,0x6d,
+  0x1b,0x8c,0x1d,0xbe,0xb6,0x6d,0x70,0x70,0x6c,0xb8,0xe0,0x75,0xf3,0xc0,0x49,0x2c,
+  0x84,0x13,0xd4,0xa3,0xb1,0xdb,0x63,0x90,0x6d,0x54,0x68,0xc8,0x19,0x5a,0x90,0xba,
+  0x1c,0xb9,0x5c,0xee,0x83,0x1f,0xfc,0xa0,0xef,0x47,0x5f,0xf8,0xc2,0x97,0x3a,0x3b,
+  0xab,0xa1,0x14,0x5c,0x60,0xa8,0x2a,0xb1,0x6d,0xc3,0x30,0x74,0x5d,0xd7,0xa2,0x88,
+  0xfa,0xbe,0xd7,0xd6,0x96,0x5d,0xb2,0xa4,0x67,0xc5,0x8a,0x55,0x53,0x5b,0x2f,0x7a,
+  0xe2,0x89,0xc7,0xfe,0xf4,0x17,0x37,0xbd,0xef,0xc2,0xcb,0xae,0xed,0xe8,0xb3,0x70,
+  0x12,0xca,0x59,0xba,0xfe,0xe7,0x17,0x5f,0xf5,0xf6,0x1b,0xbe,0xfd,0xf8,0xd5,0x57,
+  0x6f,0xdb,0x36,0x53,0x8,0x81,0x10,0xc2,0x18,0x6b,0xda,0x7e,0xee,0x8f,0x76,0xf2,
+  0x7f,0xb0,0xa6,0x69,0x73,0x67,0xae,0x70,0x8,0xde,0xf6,0xf4,0xd4,0x19,0x9f,0xf,
+  0x4f,0xd8,0x87,0x27,0xd6,0xae,0xe8,0xe8,0x7b,0xe7,0xba,0xfb,0x62,0x3f,0xb9,0x6a,
+  0xd1,0x4d,0xdf,0x3d,0xf4,0x5e,0x11,0x7c,0xcb,0x35,0x67,0xdb,0xb6,0x17,0x1c,0x45,
+  0xa8,0xef,0x76,0xe1,0x1c,0x6a,0x2c,0xe3,0x8a,0xfa,0x6a,0x55,0xb,0x13,0x5d,0x19,
+  0xa3,0xa3,0xa3,0x9f,0xf9,0xcc,0x67,0x0,0xe5,0x9f,0xfe,0xe9,0x9b,0xc9,0x64,0x52,
+  0xec,0xb7,0x2c,0xae,0xa7,0xa8,0xba,0xae,0xea,0xba,0xae,0xaa,0x84,0x31,0x58,0x96,
+  0x99,0x48,0x24,0x72,0xb9,0xbc,0xaa,0x2e,0xb6,0x2c,0xfb,0xb2,0xcb,0x2e,0x5f,0xbf,
+  0x7e,0xe3,0x7d,0xf7,0xfd,0x3a,0x37,0xf2,0xcc,0x9b,0xdb,0x97,0x75,0xe8,0xd6,0xdc,
+  0x6c,0x5b,0xda,0x92,0x7d,0xfd,0xd2,0x35,0x9f,0xfa,0xf8,0x27,0x7e,0x72,0xcb,0xcf,
+  0x32,0x99,0xc,0xdf,0xd9,0x28,0x72,0x9f,0x47,0x21,0x7c,0x72,0x85,0x39,0xc,0x43,
+  0xbe,0x7c,0x86,0x50,0x98,0x3d,0xcf,0xd3,0x69,0x21,0xa6,0x30,0xff,0x72,0xe0,0xec,
+  0x48,0xcb,0x66,0x32,0x69,0xf0,0x52,0x49,0xf5,0x18,0x9e,0xc,0x87,0x2a,0x3d,0xba,
+  0x86,0x98,0xa,0x3d,0x1a,0xf6,0x97,0x83,0x84,0xaa,0x2a,0x0,0x84,0xbe,0xc7,0x18,
+  0x53,0x55,0x75,0x41,0xdf,0xb,0xc3,0x90,0xcf,0x53,0x0,0xb8,0xae,0x13,0x86,0xa1,
+  0x66,0xa6,0x7b,0xb4,0xdd,0xfc,0xdb,0x9,0xb7,0x75,0x34,0x38,0x3,0x80,0x65,0x5b,
+  0xc9,0x64,0x4a,0xd7,0xf5,0x54,0x2a,0x15,0x86,0xa1,0x65,0x59,0xb,0xbd,0x7,0xe0,
+  0xf8,0xf1,0xe3,0x7f,0xf9,0x97,0x7f,0xa9,0xaa,0xe6,0xf5,0xd7,0xff,0x55,0x6b,0x6b,
+  0xab,0xd8,0xaf,0xeb,0xaa,0xa6,0xa9,0x84,0x40,0x51,0x14,0xbe,0x1e,0x93,0xa2,0x10,
+  0xce,0x22,0x45,0x51,0x4c,0xd3,0x62,0x8c,0x0,0xaa,0xa2,0xa8,0xa6,0xa9,0xf7,0xf6,
+  0x2e,0x1d,0x9,0xbd,0xc7,0x6,0xe,0xb6,0x43,0x6d,0x37,0x13,0x73,0x93,0xad,0x54,
+  0x74,0xef,0xde,0xbd,0xf3,0x44,0x71,0x72,0xdb,0xc5,0x17,0x13,0x42,0xe6,0x3e,0xb8,
+  0x91,0xc9,0xa7,0x8a,0x93,0xff,0x83,0x35,0x4d,0x9b,0x35,0x1c,0x4f,0xc2,0xe1,0x89,
+  0xea,0xfb,0x9e,0x47,0xc3,0xdb,0x96,0x9d,0xad,0x81,0xb7,0xb,0xb4,0x67,0xc7,0x48,
+  0x5f,0xe3,0xf,0x9d,0x8a,0xe3,0xfb,0x4d,0xa,0x94,0xbe,0xca,0x21,0xac,0x83,0x22,
+  0xb9,0xd2,0xf7,0xfd,0xb4,0xf3,0x90,0x38,0x80,0x77,0x66,0xe3,0x22,0x43,0x58,0xd0,
+  0x96,0x81,0x63,0xc7,0x8e,0xbd,0xef,0x7d,0xef,0x63,0x4c,0xf9,0xe8,0x47,0xaf,0x6f,
+  0x6f,0xef,0x10,0xfb,0x15,0x85,0x18,0x86,0x91,0x48,0x98,0xa6,0x69,0xe8,0xba,0x48,
+  0x3e,0x65,0x41,0x10,0x79,0x9e,0xef,0x79,0x7e,0x14,0x51,0x45,0x51,0x54,0x55,0xb5,
+  0xed,0x54,0x4b,0x4b,0x7b,0x67,0x67,0xd7,0x39,0xe7,0x9c,0xdb,0x7d,0xc1,0xa6,0x7f,
+  0x3e,0xb2,0x6b,0xb0,0x98,0x9f,0xe3,0x8a,0xa,0x21,0x49,0xdd,0x7c,0x7d,0xcf,0x86,
+  0xdb,0x6e,0xbb,0x6d,0xf7,0xee,0xdd,0xac,0x1e,0xa8,0x5a,0xc5,0xc0,0x1a,0xf0,0xac,
+  0x9f,0xf1,0xd4,0xde,0xcd,0xb3,0x4d,0x47,0xc5,0xbc,0x4b,0x10,0xb5,0xb5,0xad,0xc5,
+  0x34,0x8d,0x74,0x3a,0x65,0x9a,0x46,0x6b,0x5b,0xb,0xe7,0x73,0x81,0xf6,0x7c,0x73,
+  0xcf,0x3b,0x1,0x20,0x53,0x35,0xa3,0xcb,0xcb,0xe7,0xf0,0x31,0x3a,0x1f,0xe5,0xfc,
+  0xd5,0x3,0x5e,0x95,0x4a,0x7c,0xcc,0x2c,0xde,0x20,0xda,0x9e,0xb1,0x8a,0x37,0xe4,
+  0xe8,0xe5,0x5,0x85,0x19,0xc0,0xc0,0xc0,0xc0,0xf5,0xd7,0x5f,0xbf,0x62,0xc5,0xaa,
+  0xbf,0xfd,0xdb,0xaf,0xb4,0xb6,0x56,0xc3,0x92,0x75,0x5d,0x4d,0xa5,0xec,0x4c,0x26,
+  0x99,0x4a,0x59,0x96,0x65,0x58,0x96,0xa1,0x69,0x2a,0x80,0x30,0x8c,0x28,0xa5,0x51,
+  0x14,0x15,0x8b,0x95,0x5c,0x6e,0xba,0x58,0xac,0x38,0x8e,0x4f,0x29,0x23,0x84,0xe8,
+  0xba,0x69,0xdb,0xc9,0xd6,0xd6,0xf6,0x55,0xab,0xd7,0x9c,0x79,0xe9,0xb6,0xbf,0x78,
+  0xe2,0xd7,0x3,0xf9,0x89,0xd9,0xc8,0x46,0x29,0xb,0xa2,0xa8,0xd3,0x4e,0xf7,0xd0,
+  0xc4,0xdd,0x77,0xfd,0x4a,0xae,0xb2,0x48,0xeb,0xc1,0x19,0x2b,0x1a,0xcf,0x9a,0xc0,
+  0x27,0xa7,0x6e,0xd3,0x0,0xe6,0x3e,0x7d,0x7b,0x95,0x7e,0x99,0x19,0x5f,0x16,0xe7,
+  0xad,0x9d,0xb0,0x4d,0xd3,0x30,0xc,0x23,0x93,0x69,0xb1,0x2c,0x3b,0x93,0x69,0x31,
+  0xc,0xc3,0x34,0xd,0xfe,0x2d,0x38,0xcf,0x8b,0x7b,0xf8,0x6f,0xc5,0xf2,0x39,0xc2,
+  0x58,0x25,0x3b,0x78,0x17,0x80,0x7a,0x4d,0xa7,0x38,0xba,0x1b,0xa8,0xf6,0xb9,0xe3,
+  0xce,0xbc,0xe3,0x78,0x30,0x6,0x6f,0x8b,0xaa,0x60,0xaf,0x4e,0xec,0xdb,0xb7,0xef,
+  0x63,0x1f,0xfb,0xd8,0x92,0x25,0x4b,0x3f,0xfe,0xf1,0xbf,0x34,0xc,0x83,0x10,0x10,
+  0x2,0xcb,0xd2,0x33,0x99,0x64,0x4b,0x4b,0x32,0x93,0x49,0x98,0xa6,0xa1,0xaa,0xaa,
+  0xaa,0x2a,0x9a,0xa6,0xaa,0xaa,0x42,0x29,0xd,0x82,0x20,0x8,0xa2,0x30,0xa4,0x41,
+  0x10,0x3a,0x8e,0x17,0x4,0xd5,0xde,0x23,0x84,0x68,0x9a,0xa1,0x69,0x46,0x32,0x99,
+  0xd9,0xb8,0xf1,0xec,0x2d,0x57,0x5f,0xf9,0x57,0x8f,0xfe,0x6a,0xa0,0x30,0xd1,0xf4,
+  0xba,0x41,0x18,0x4d,0x95,0x1d,0x0,0xeb,0x33,0xdd,0xbb,0x9e,0x7a,0x6a,0x6a,0x6a,
+  0x4a,0xe6,0x2d,0x6f,0x34,0xca,0xe1,0xe7,0x22,0x78,0xe7,0x2b,0x75,0x63,0xc2,0xb0,
+  0x64,0x6f,0xad,0xd2,0xaf,0xb8,0x7,0xf5,0x59,0xa3,0xa6,0x69,0x64,0x32,0x2d,0x6d,
+  0x6d,0xed,0xb6,0x9d,0x68,0x6b,0xcb,0xda,0x76,0x82,0x13,0xd8,0x34,0x8d,0x19,0xed,
+  0x8e,0x13,0xbe,0xb8,0xe7,0xf0,0xb8,0x5,0xc0,0xf3,0x7c,0x11,0x51,0xe0,0x38,0xce,
+  0x42,0xd0,0xbc,0x40,0x4c,0x8a,0xae,0xed,0x4b,0x1,0x40,0x71,0xcf,0xfe,0x7c,0x1f,
+  0x7f,0xf,0x36,0x56,0x54,0xc7,0xab,0x58,0x61,0xde,0xb3,0x67,0xcf,0xfb,0xdf,0xff,
+  0xfe,0x35,0x6b,0xd6,0x7f,0xe4,0x23,0x1f,0xeb,0xea,0x5a,0x94,0x4e,0xdb,0xa9,0x94,
+  0x6d,0x59,0xa6,0xaa,0xaa,0x51,0x44,0x1,0x28,0x8a,0xa2,0x28,0x84,0x10,0x88,0xc9,
+  0x2d,0x21,0xc4,0x71,0xfc,0x4a,0xc5,0x6b,0x2a,0x30,0x8,0x21,0xba,0x6e,0x58,0x56,
+  0x22,0x9d,0x6e,0xbb,0xe0,0x82,0x2d,0x6b,0x2e,0x7f,0xed,0xf7,0x76,0x3f,0x5e,0xf1,
+  0xbd,0xc6,0x23,0x4b,0xae,0x3b,0x9c,0x2b,0x0,0x68,0x33,0x12,0xa3,0x87,0x8f,0xe6,
+  0xf3,0x79,0xce,0xd5,0xa6,0x22,0xb7,0x91,0xc0,0xcf,0xe2,0x61,0xe7,0xa2,0x2e,0xb7,
+  0x4b,0xc9,0xe9,0x7e,0x0,0x5c,0xd7,0xf1,0x3c,0x3f,0xed,0x3c,0x24,0x4b,0x5d,0x9e,
+  0xbf,0xc2,0x45,0x6e,0x26,0xd3,0x2,0x80,0x2f,0xcd,0xcc,0x1b,0x6d,0x6d,0xd5,0x52,
+  0xa3,0xa6,0x69,0xd8,0x96,0x3d,0x18,0x6c,0x42,0x71,0x8f,0x2c,0xae,0x9b,0x8e,0xbf,
+  0x5,0xa0,0x3e,0x80,0x19,0x80,0xe8,0xb7,0xcc,0xe2,0xd,0x8e,0xeb,0xd8,0x9,0x5b,
+  0x7e,0xeb,0xe1,0xd5,0x9d,0x2a,0xb4,0x77,0xef,0xde,0x4f,0x7e,0xf2,0x53,0x97,0x5f,
+  0x7e,0xf5,0x47,0x3f,0xfa,0x17,0x8b,0x16,0x75,0xb4,0xb4,0x24,0x5b,0x5a,0x92,0xad,
+  0xad,0xa9,0x6c,0x36,0x95,0x4c,0xda,0xaa,0xaa,0x7a,0x5e,0xe0,0xfb,0x41,0x14,0x55,
+  0x5,0xac,0xef,0x87,0x9e,0x17,0xf8,0x7e,0xe8,0xba,0xbe,0xe3,0xb8,0x9c,0xdb,0x31,
+  0x10,0x42,0x14,0x45,0x55,0x55,0x2d,0x91,0x48,0xb5,0xb4,0x74,0x6c,0x79,0xcd,0x85,
+  0xc3,0x9d,0xe9,0xc7,0x4e,0xc4,0x33,0x6d,0xfc,0x30,0xbc,0x67,0xf7,0xfe,0x20,0x8a,
+  0x0,0xe8,0xaa,0xe6,0xe5,0xa6,0xb,0x85,0x2,0xf7,0xc9,0xc7,0x64,0x2f,0x87,0x50,
+  0x98,0x65,0x32,0x9f,0xea,0xf3,0xce,0x4a,0x5d,0x59,0xe9,0x12,0x3,0x88,0x47,0x41,
+  0x56,0x99,0xc6,0x87,0x51,0x71,0xf,0x32,0xeb,0x79,0x9,0x6f,0xae,0x2a,0xa3,0xe6,
+  0x63,0xb4,0x24,0x70,0xd9,0xb,0x61,0x56,0xa9,0xfd,0x90,0xb3,0x1d,0xf5,0xa,0xf3,
+  0xa9,0x3e,0xc3,0xab,0x8,0xb5,0x7e,0x2b,0x8e,0xee,0x6e,0x94,0xba,0xaf,0xe6,0xae,
+  0x7b,0xf8,0xe1,0x87,0xff,0xfc,0xcf,0xff,0x7c,0xcb,0x96,0x6d,0xef,0x7b,0xdf,0x7,
+  0x0,0xe6,0xba,0x7e,0xa9,0x54,0x9e,0x9a,0x9a,0xae,0x54,0x1c,0xc6,0xa0,0x69,0x8a,
+  0xae,0xab,0xba,0xae,0x12,0x42,0x28,0x65,0x5c,0xd4,0x45,0x11,0x75,0x1c,0xaf,0x54,
+  0x2a,0x7,0x41,0x38,0x1f,0xe2,0x98,0xa6,0xd5,0xd9,0xd9,0xf5,0xda,0xcb,0xaf,0xf8,
+  0xde,0xd1,0xbd,0x39,0xa7,0x2c,0xf6,0xfb,0x41,0x78,0xdf,0xee,0xa7,0xf,0xc,0x8d,
+  0xf2,0x8f,0x3a,0x51,0x13,0x9a,0x71,0xe4,0xc8,0x91,0x20,0x8,0x62,0x4b,0xb,0xc8,
+  0x72,0xf8,0xb9,0xab,0xcd,0xcd,0x35,0x2b,0x51,0xfc,0x11,0xb5,0xe8,0x65,0xd9,0xce,
+  0xe9,0x79,0x3e,0xac,0x99,0x61,0xb4,0x7f,0x70,0x5a,0xcc,0x63,0x45,0x44,0x9e,0x58,
+  0x9a,0x99,0xd3,0xde,0xb2,0x2c,0xc7,0xa9,0xf0,0x6f,0xfb,0xc8,0x76,0x20,0x5,0x60,
+  0xff,0xe0,0xb4,0xb8,0xa2,0xac,0x30,0x2f,0x94,0x44,0xe3,0x68,0xa2,0xc2,0xd5,0x5e,
+  0x97,0x83,0xc1,0x5b,0x62,0xdf,0xc4,0x12,0xf,0x5e,0x55,0xf8,0xd9,0xcf,0x7e,0xf6,
+  0xc9,0x4f,0x7e,0xd2,0x75,0xcb,0x53,0x53,0xb9,0xdb,0x6f,0xff,0x89,0xe7,0xf9,0xbe,
+  0x1f,0x2,0x4c,0xd7,0xf5,0xf6,0xf6,0xf6,0xe5,0xcb,0x97,0x9f,0x77,0xde,0x79,0x5b,
+  0xb7,0x5e,0xbc,0x66,0xcd,0x5a,0xcb,0x32,0x54,0x55,0xd5,0x75,0xee,0x10,0x62,0x94,
+  0x32,0xdf,0x8f,0xe6,0xcf,0x1a,0xd3,0xb4,0xd7,0xae,0xdd,0xb0,0xff,0x9c,0xbd,0xdf,
+  0xd8,0xfe,0xc0,0xf5,0x17,0x5d,0x5,0x20,0xa2,0xf4,0xf1,0x83,0x83,0x8f,0x3c,0x73,
+  0x58,0x1c,0xa3,0x12,0x92,0xd4,0x8c,0xc1,0xc1,0xc1,0x30,0xc,0x79,0x5c,0x20,0x8f,
+  0x6c,0x13,0xd1,0x97,0xaa,0xaa,0xf2,0x3d,0x3c,0x48,0x83,0xab,0xee,0xcf,0xf,0x75,
+  0x1b,0x8b,0x2d,0xd7,0x6c,0xbf,0x15,0xae,0x2d,0xcf,0x1c,0xda,0x6c,0x18,0xc5,0xc2,
+  0x7a,0x6c,0xdb,0xae,0x15,0x76,0x4d,0x70,0xd1,0x5a,0xb2,0xb7,0xa2,0x78,0x23,0x32,
+  0xeb,0x4b,0xee,0x46,0x7e,0x8c,0xb0,0x91,0xca,0x6b,0xb1,0x2f,0x20,0x86,0x9e,0xc4,
+  0x9,0xf1,0xba,0xc4,0x58,0x75,0x67,0xa3,0x79,0xf9,0xd5,0x36,0xd1,0x7d,0xe4,0x91,
+  0x47,0xbe,0xf5,0xad,0x2f,0xbc,0xe1,0xd,0x27,0xb6,0x6c,0x81,0xaa,0x16,0x75,0x1d,
+  0x86,0x1,0xd3,0x84,0x6d,0xc3,0xb2,0x0,0x1c,0x39,0x7e,0xfc,0xf1,0x7,0x1e,0xb8,
+  0xf9,0xd6,0x5b,0x6d,0xdb,0x5e,0xba,0xf5,0x82,0x37,0x5e,0x74,0xd1,0x25,0xbd,0x7d,
+  0xab,0x17,0x2f,0x5e,0x44,0x88,0xa2,0x69,0xaa,0x61,0x68,0x9e,0x17,0x9c,0xf4,0x2a,
+  0x1c,0x8a,0xa2,0xa4,0x52,0x2d,0x97,0x5c,0x72,0xd9,0x3f,0xdc,0xff,0xe0,0xe3,0x47,
+  0x7,0x16,0xdb,0x99,0x1d,0x47,0x8e,0xee,0x1a,0x1c,0xa,0x25,0x65,0x5b,0x51,0x14,
+  0x5b,0x33,0x46,0x47,0x46,0x39,0x8f,0x14,0x9,0xaa,0xaa,0x72,0xa2,0xf2,0x7a,0x6f,
+  0x9c,0xc6,0xcf,0xee,0xa9,0xc3,0x30,0x6c,0xfe,0x6f,0x9e,0x8d,0xb7,0xdc,0x1,0x9b,
+  0xcb,0xe5,0x32,0xe7,0x6e,0x40,0xf1,0x36,0x64,0xd6,0x23,0xb3,0x3e,0xb7,0x6f,0x12,
+  0xe8,0x41,0x33,0xe5,0x2d,0x56,0x92,0xce,0xb2,0xec,0xaa,0xb,0x37,0xb3,0x1e,0xc5,
+  0x3d,0xb9,0xe2,0x19,0x40,0x42,0xd6,0xb1,0x5,0x5e,0x6d,0xe3,0xaf,0x11,0x72,0x2,
+  0x73,0x5d,0x19,0xd7,0xcc,0x7a,0x0,0x87,0xc7,0x2d,0xdb,0x9a,0xe9,0xf0,0x98,0x79,
+  0xf9,0x55,0xd2,0x7b,0x8c,0xb1,0xdb,0x6e,0xbb,0xed,0x1f,0xff,0xf1,0xaf,0xdf,0xff,
+  0xfe,0x81,0x77,0xbf,0x1b,0x73,0xc4,0xd1,0xbe,0xeb,0x5d,0xfe,0xe4,0xa4,0xbf,0xfb,
+  0xc1,0xe2,0xa1,0x1d,0xfe,0xaf,0xfe,0xef,0xf6,0x27,0x8f,0xe2,0x9c,0x73,0xcf,0xfb,
+  0xed,0xdf,0x7e,0xeb,0xf2,0xe5,0xcb,0x93,0x49,0x6e,0x28,0x9d,0x2f,0x7b,0x55,0x55,
+  0xed,0xed,0x5d,0xde,0xb7,0x6e,0xfd,0xe7,0xee,0xb8,0x75,0x53,0x4b,0x1f,0x6d,0x96,
+  0x27,0x68,0xa8,0xda,0x54,0xa1,0xc0,0xa9,0x4b,0x8,0xe1,0x11,0x32,0x8a,0xa2,0x30,
+  0xc6,0x44,0xa8,0xc,0xff,0xf8,0x5c,0x42,0x23,0xe3,0x73,0x5d,0x7e,0x3d,0xc1,0x5b,
+  0x93,0x8e,0xb,0xeb,0x14,0x57,0x95,0x9d,0x8a,0x93,0xcb,0xe5,0xba,0xad,0x81,0xaa,
+  0x4,0xa8,0x47,0x6c,0x91,0xc8,0x46,0x78,0x9e,0x7f,0xfe,0xa2,0x5d,0x0,0x90,0x59,
+  0x7f,0xa2,0xd4,0x26,0x47,0x14,0x2c,0xc4,0x30,0xb,0xf0,0x0,0x66,0xf1,0x91,0xbf,
+  0xd7,0x72,0x45,0xf,0xa8,0x9a,0xf4,0xf9,0xf4,0x24,0x66,0xa3,0x2,0x10,0x4,0xc1,
+  0xab,0x84,0xb7,0x0,0x6e,0xb9,0xe5,0x96,0x4f,0x7e,0xf2,0xe3,0xd7,0x5f,0x3f,0xf0,
+  0x9e,0xf7,0xcc,0xc5,0x5b,0x0,0x4,0xe8,0x0,0xb9,0x74,0xcd,0xba,0xeb,0x3e,0xf0,
+  0xc7,0xd7,0x7f,0xec,0x83,0x9f,0xbb,0xae,0xeb,0xc0,0x23,0x3f,0xbe,0xee,0xba,0xff,
+  0xf9,0xcb,0x5f,0xde,0x59,0xa9,0x78,0xb6,0x6d,0x9a,0xe6,0x29,0xe4,0xab,0xe9,0xba,
+  0x71,0xe9,0x65,0x97,0xef,0x29,0x8e,0x15,0xdc,0x72,0xd3,0x3,0x54,0xa2,0x38,0x8e,
+  0xe3,0xfb,0xbe,0x98,0xee,0x72,0x59,0xd8,0xe8,0x22,0x8a,0x5,0x6c,0xcc,0x13,0x55,
+  0x79,0xde,0xf8,0x5,0x7f,0xdf,0x73,0xee,0x4d,0xf9,0xe9,0xad,0xf6,0xf7,0xb6,0xda,
+  0xdf,0xeb,0xd4,0x6,0x39,0x6f,0x65,0x77,0xa2,0x6c,0x25,0x6e,0xf2,0x0,0xf5,0x22,
+  0x97,0xcb,0xed,0x74,0xba,0xea,0xde,0x18,0x76,0xfb,0xf9,0x7e,0xc3,0x30,0x62,0x36,
+  0xd2,0x85,0xbc,0x3f,0x39,0x82,0xd,0x35,0xa9,0x9b,0xcd,0x98,0x0,0xb8,0x71,0x1,
+  0x35,0xa3,0x20,0xcf,0xb0,0xe7,0x87,0xbd,0x7a,0xba,0x2e,0x8a,0xa2,0x3b,0xef,0xbc,
+  0xe3,0xeb,0x5f,0xbf,0xfe,0x1b,0xdf,0x18,0x7d,0xeb,0x5b,0x71,0x92,0x87,0xe,0xc1,
+  0x86,0x54,0x36,0xb9,0x19,0x3d,0x9f,0x53,0x53,0xbf,0x95,0xa,0x4f,0x6c,0x5e,0x6e,
+  0xdd,0xf8,0xb9,0xd7,0xfd,0xf9,0xef,0xf6,0x7e,0xee,0x93,0x1f,0xfc,0xf2,0x97,0xbf,
+  0x38,0x3e,0x3e,0x91,0x4a,0x59,0xc9,0xa4,0x35,0x7f,0xd1,0x17,0x45,0x5e,0xcb,0xd2,
+  0xc5,0x83,0xd3,0x4d,0x16,0x58,0xe4,0xa0,0x51,0x14,0x4,0x81,0xa0,0x2e,0xa5,0x34,
+  0xb6,0x14,0x66,0xcc,0xc2,0x7c,0x2a,0x4f,0xf,0x0,0x41,0x10,0xd4,0x51,0x37,0xe6,
+  0xca,0x17,0xa6,0x29,0x0,0xe7,0x2f,0xda,0xd5,0xaa,0xe,0x3b,0xae,0xd3,0x74,0x3d,
+  0xc8,0xa6,0x10,0xbc,0x95,0x83,0xa,0x3a,0xb5,0x41,0x0,0xc8,0xac,0xdf,0x75,0xdc,
+  0x10,0x16,0x69,0xe,0x21,0x75,0xe5,0x51,0xfb,0xea,0x44,0xd3,0x30,0x18,0x11,0x5,
+  0xc9,0x63,0xaa,0xea,0xa,0x95,0xd4,0xf0,0x6a,0xe8,0xba,0x30,0xc,0x7f,0xf0,0x83,
+  0xff,0xfc,0xd2,0x97,0x3e,0xfc,0x89,0x4f,0x8c,0xbc,0xe1,0xd,0x27,0x3b,0x3a,0x0,
+  0x8e,0xa9,0x98,0x3a,0xf,0x8b,0x3e,0x6,0xf3,0x22,0x4c,0x3c,0x81,0xc9,0x1d,0x8,
+  0x7d,0x93,0xfa,0xef,0xb9,0xba,0xff,0xfb,0x7f,0x79,0xc9,0xd1,0xa7,0x7e,0xfa,0xb9,
+  0xcf,0x7e,0x7a,0x74,0x64,0x3c,0x99,0xb4,0xd2,0x69,0x7b,0x3e,0xe4,0x8d,0x22,0x3a,
+  0x32,0x32,0xbc,0x7c,0xf9,0xf2,0xdd,0xc5,0x78,0xfa,0x34,0x7,0x65,0x8c,0x87,0xfd,
+  0x73,0xff,0x10,0x27,0xb0,0xcc,0xde,0x46,0x1f,0xef,0x29,0x3d,0x3e,0x6f,0x34,0x91,
+  0xba,0x31,0xc3,0xa6,0x10,0x8f,0x57,0xad,0x7a,0x7a,0x45,0xe7,0xac,0x31,0xcc,0x4d,
+  0xe1,0x38,0x4e,0x6c,0x75,0xa2,0xaa,0xb6,0xc,0xc8,0xd5,0xad,0x84,0xdc,0x10,0x25,
+  0xe6,0x4e,0xe9,0x2a,0xaf,0x54,0x34,0x9,0x83,0x1,0x50,0x8b,0xa9,0xe2,0x73,0x8d,
+  0x98,0xc2,0xfc,0x8a,0xf,0xa5,0xa2,0x94,0x7e,0xff,0xfb,0xdf,0xff,0xc7,0x7f,0xfc,
+  0xfc,0xd7,0xbf,0x3e,0xfe,0xe6,0x37,0x9f,0x4c,0xde,0x52,0xe0,0x84,0xc2,0xbc,0xf3,
+  0xb0,0xec,0xb,0x48,0x5e,0x46,0x46,0x7e,0x83,0x3,0x37,0xa0,0x3c,0x81,0xc0,0x43,
+  0xe0,0x2b,0x51,0x74,0xfe,0x19,0x6d,0x5f,0xff,0xf3,0x8b,0xcc,0xf2,0x8e,0x3f,0xfb,
+  0xb3,0x3f,0x2a,0x16,0x4b,0x89,0x84,0x69,0xdb,0x27,0x9f,0xb5,0x1d,0x3f,0x7e,0xb8,
+  0x50,0x28,0xf4,0xf6,0xf6,0x4e,0xc0,0x2d,0xf9,0x4d,0x18,0x11,0xd0,0xd0,0x4e,0x26,
+  0x84,0xc2,0x2c,0x1c,0xbc,0x72,0x84,0xc6,0xb3,0x53,0x95,0x5,0xa2,0x28,0x6a,0xee,
+  0xd7,0x15,0x7c,0x33,0xa3,0x91,0xa1,0x62,0x5a,0xec,0xbf,0x6a,0xd5,0xd3,0x2b,0x3a,
+  0x9c,0x15,0x1d,0xf3,0xa,0x33,0xe6,0x85,0x2f,0xc4,0xba,0x44,0xae,0xeb,0x54,0x45,
+  0x2e,0x30,0xec,0xf6,0xb,0xa1,0x21,0x2f,0xb7,0x21,0xf0,0xca,0x1e,0x7f,0x1c,0xfc,
+  0x19,0x67,0xdb,0xa2,0x7e,0x81,0x3f,0xdf,0xf7,0x7b,0x32,0x25,0xde,0x96,0x23,0x99,
+  0x5d,0x69,0xfe,0xc2,0xab,0xf3,0xbd,0x82,0xe7,0xba,0x41,0x10,0xfc,0xf8,0xc7,0x3f,
+  0xfa,0xf1,0x8f,0x3f,0xff,0xc3,0x1f,0xe6,0x2f,0xbc,0x10,0x27,0x7d,0x50,0x56,0xd1,
+  0x19,0xbb,0xc,0xa9,0x8f,0x10,0x6b,0x33,0x39,0xf1,0x0,0x6,0x6e,0x81,0x6,0x58,
+  0x9,0x44,0x21,0x0,0x84,0x1,0x18,0x5b,0xdc,0x62,0xfc,0xdd,0x7,0x36,0x77,0xe0,
+  0xd0,0xff,0xf7,0x47,0xef,0x3f,0x7a,0xf4,0x58,0x32,0x69,0xd9,0xb6,0xa1,0x28,0xb3,
+  0xa,0x5f,0xc7,0x71,0x76,0xed,0xda,0x49,0x8,0x69,0x6b,0x6b,0xeb,0xe8,0xec,0x18,
+  0x98,0x1e,0x8f,0x1d,0x40,0x19,0x75,0x42,0xbf,0xa5,0xb5,0x55,0xe,0xc9,0x88,0xb5,
+  0x1b,0xe3,0xab,0x9e,0x45,0x6f,0x9c,0x24,0x10,0xd2,0x53,0xbb,0xc6,0xc3,0xba,0x74,
+  0x9f,0x77,0x6e,0x99,0x9c,0xed,0x60,0x1,0x31,0xe0,0x62,0x22,0x57,0xc,0x3e,0xa1,
+  0x2d,0x37,0x16,0xfe,0xe6,0x22,0xf7,0x95,0x3a,0xfe,0x4,0x39,0x1b,0xb9,0xca,0xfb,
+  0xaa,0x71,0x39,0xc5,0xa6,0x70,0xdc,0xba,0x17,0x1f,0x87,0xbc,0xac,0xf1,0x2b,0xf,
+  0x8e,0xe3,0x7c,0xe3,0x1b,0x5f,0xff,0xee,0x77,0xff,0xe2,0x6f,0xff,0xb6,0xb8,0x65,
+  0xcb,0x9c,0x87,0x32,0x80,0x2,0x81,0x89,0xa1,0xcd,0xb0,0x3e,0x80,0x45,0x97,0x23,
+  0xb7,0x3,0x23,0x77,0x23,0x72,0xa1,0x68,0xa0,0x80,0x95,0x80,0xaa,0x42,0xd3,0x40,
+  0x43,0x4,0x6e,0xd6,0xc4,0xd7,0xfe,0xf8,0x82,0x33,0x5a,0x4e,0x7c,0xfa,0x2f,0x3f,
+  0x31,0x32,0x72,0x22,0x9d,0xb6,0x2d,0xcb,0x6c,0xaa,0x39,0x87,0x61,0x78,0xe0,0xc0,
+  0xee,0x7c,0xbe,0x4a,0x81,0xb5,0x6b,0xd7,0x8e,0xba,0xc5,0xd8,0x31,0x11,0xa5,0xd3,
+  0x81,0xb7,0x68,0xd1,0x22,0x31,0xd1,0x15,0xa4,0xe5,0x59,0x9c,0x72,0x54,0x46,0xf5,
+  0x7e,0x9f,0xaf,0x68,0x2a,0x55,0x55,0xb9,0xe2,0xca,0xe3,0x28,0x0,0xfc,0xe8,0xc0,
+  0x6b,0xe5,0x3,0xe6,0xc3,0x5e,0xe,0x31,0x5b,0xe6,0x22,0xb7,0xdb,0x1a,0xe0,0xfb,
+  0x4f,0x94,0xda,0xc4,0x31,0x22,0xf4,0xea,0x15,0xef,0xd1,0xe5,0x6e,0x1b,0x39,0xdc,
+  0x25,0x90,0x20,0x7f,0x3c,0x69,0x2,0xc6,0x6c,0xb5,0x97,0x5f,0xa9,0x52,0xd7,0xf7,
+  0xfd,0x6f,0x7e,0xf3,0x9b,0xff,0xfd,0xdf,0xff,0xf0,0x83,0x1f,0x4c,0x5f,0x76,0x19,
+  0x9b,0xd5,0x1b,0xca,0x0,0xde,0x73,0xd4,0x64,0x7,0xce,0x44,0xf2,0xe3,0x68,0xbb,
+  0x94,0x8c,0xfe,0x6,0x7,0x6f,0x80,0x5f,0x80,0xae,0xc2,0xb0,0x60,0x5a,0x50,0x54,
+  0xe8,0x26,0x34,0x1d,0x8c,0xc2,0x9d,0x46,0x39,0x9f,0x46,0xe5,0xa3,0xbf,0xd3,0xd7,
+  0x16,0xee,0xfd,0xfc,0xe7,0x3f,0xcb,0x18,0x12,0x9,0x93,0xe7,0x15,0xc5,0x70,0xfc,
+  0xf8,0xc0,0xfe,0xfd,0xbb,0x79,0xe9,0x56,0x55,0x55,0xbb,0xba,0xba,0xa6,0x58,0x5c,
+  0x61,0xe,0x19,0x2d,0x85,0xee,0xe2,0xc5,0x8b,0x67,0x9b,0xd6,0x3e,0xf7,0xe8,0x65,
+  0x7e,0xf5,0x3a,0xea,0x36,0xfe,0xd7,0x45,0x0,0xe3,0x1d,0x7,0xcf,0x38,0xa5,0x53,
+  0xcb,0x26,0x2e,0xce,0x7f,0x21,0x72,0x1f,0x1b,0xdb,0xc8,0xe7,0x69,0xc2,0xb6,0x2c,
+  0xb4,0x65,0xee,0xa1,0x7e,0xe5,0xd,0x3e,0x21,0x9,0x65,0xde,0xba,0xae,0x1b,0xcd,
+  0x2,0x34,0x4c,0x74,0x63,0xa8,0xb3,0xf3,0x4b,0x78,0x45,0x4a,0x5d,0xc7,0x71,0xbe,
+  0xf3,0x9d,0x7f,0xbd,0xf7,0xde,0xaf,0xfe,0xe4,0x27,0xe5,0xb5,0x6b,0x31,0x57,0x11,
+  0x81,0x8,0x8,0xc0,0x7c,0x83,0xd,0x6d,0x42,0xc7,0xe7,0xc8,0xe2,0x8b,0xc8,0xc4,
+  0xc3,0x18,0xbf,0x7,0x1a,0x85,0xaa,0x81,0xa8,0x8,0x7c,0x54,0x8a,0x70,0xcb,0x70,
+  0x4a,0xf0,0x3d,0x80,0xc0,0x4e,0xa3,0xb5,0x13,0x89,0x96,0x96,0x4c,0xf2,0x13,0xef,
+  0xda,0xb0,0xef,0xd1,0x5b,0x7e,0xf8,0xc3,0x1f,0x10,0x82,0x98,0xbb,0x28,0x8,0x82,
+  0xc3,0x87,0x9f,0x79,0xf0,0xc1,0x7b,0x82,0x20,0x50,0x14,0x65,0x68,0x68,0x68,0x74,
+  0x74,0x74,0x7a,0x7a,0xba,0x58,0x89,0xaf,0x9c,0xea,0x47,0xa1,0x92,0x34,0x2d,0xcb,
+  0x12,0x92,0x96,0x1b,0xa8,0x62,0x21,0x90,0xcf,0x3e,0xfe,0xb1,0xc6,0xe,0xa5,0xe9,
+  0x2c,0x2b,0x6,0xd3,0x34,0x4e,0x94,0xda,0x1e,0x1b,0xab,0x6,0x3f,0x21,0xbd,0x2e,
+  0xd6,0xe0,0x66,0x67,0xcf,0xf3,0xf9,0xd4,0xcb,0x95,0x20,0x66,0xb9,0xdd,0xd6,0x0,
+  0x3f,0x7e,0xcf,0x50,0x2,0xf5,0xf1,0x1b,0x8d,0x13,0xdd,0xb9,0xe7,0x81,0x2f,0xd3,
+  0x2d,0x97,0xa8,0x82,0xb1,0x8e,0x84,0x7c,0x3e,0x2f,0x4c,0x7a,0x32,0x69,0x85,0xce,
+  0x12,0xfb,0x8f,0x34,0x95,0xba,0x91,0x54,0x89,0xfe,0x25,0x7f,0xd8,0xe7,0x6b,0x5b,
+  0x2c,0x16,0xbf,0xf8,0xc5,0xbf,0xfb,0xf9,0xcf,0x3f,0xff,0xd5,0xaf,0xba,0x6b,0xd7,
+  0x36,0x3e,0x74,0x3d,0x34,0x40,0x51,0x71,0xe2,0x1c,0xd8,0x1f,0x45,0x7a,0x1d,0x4e,
+  0xdc,0x8f,0xa3,0xbf,0x40,0x79,0xc,0xbe,0x8b,0xd0,0x3,0xa3,0x20,0x4,0x1a,0x1f,
+  0x78,0x4,0x34,0x82,0xe7,0x22,0xf0,0xe1,0xb9,0x70,0x2b,0x70,0xa7,0x97,0xb5,0xab,
+  0x7f,0xff,0x7,0x9b,0xbe,0xf3,0xad,0xaf,0xed,0xdc,0xf9,0xa4,0xec,0x28,0xaa,0x54,
+  0x2a,0x3b,0x77,0x3e,0xf6,0xe8,0xa3,0xf,0x50,0x4a,0xcb,0xe5,0xb2,0xe7,0x79,0x8e,
+  0xe3,0xec,0xd8,0xb1,0x23,0x97,0xcb,0xb9,0x61,0xbc,0x4a,0x44,0x39,0xf2,0xcc,0xf6,
+  0x16,0x4d,0xd3,0x18,0x63,0x9c,0xb7,0x41,0x10,0xf0,0x36,0xab,0xd5,0x3c,0xe1,0x26,
+  0xab,0x39,0x9e,0x7a,0xee,0x8f,0xd5,0x67,0xe5,0x2a,0x9c,0x50,0xe4,0x38,0xb8,0xf4,
+  0xe3,0x8c,0xe2,0xb1,0xc7,0x76,0xc2,0xde,0x33,0x84,0x9e,0x4c,0x7f,0xb7,0x35,0x80,
+  0xd2,0x3e,0x0,0x48,0xaf,0xe3,0x8d,0x2,0xed,0x91,0x97,0x89,0xe4,0x32,0x96,0xab,
+  0xc1,0x9c,0xb7,0x10,0x22,0xb7,0xb4,0x4f,0x88,0x5c,0x0,0x7c,0x1,0x31,0x59,0xe4,
+  0x8a,0x89,0xee,0x2b,0x46,0x74,0x88,0x7,0x91,0x3,0xc2,0x63,0x26,0x0,0xe,0xf9,
+  0x63,0xd3,0x3,0x4,0x64,0xc3,0xe1,0x1c,0x17,0x9d,0xfb,0x75,0xfc,0xb2,0x80,0xeb,
+  0xba,0x5f,0xfd,0xea,0x57,0x1f,0x7e,0xf8,0x3b,0x37,0xdd,0xe4,0xf7,0xf4,0xe0,0x24,
+  0x9e,0x9b,0x8,0x28,0x81,0xd,0x74,0x63,0xe9,0xa7,0x61,0xf5,0x91,0x89,0x27,0x30,
+  0xfe,0x20,0x88,0xf,0x42,0x10,0x86,0x88,0x2,0xf8,0x15,0x50,0x6,0xc3,0x86,0x4a,
+  0x60,0x24,0xa0,0x19,0x48,0x28,0x20,0xa,0x8,0xc0,0x18,0xbc,0xa,0xca,0xc5,0xb,
+  0xd7,0x64,0xde,0x72,0x61,0xf1,0x47,0x3f,0xfa,0xf1,0x27,0x3e,0x71,0x3d,0x80,0x28,
+  0x8a,0xe,0x1f,0x3e,0xb0,0x73,0xe7,0xf6,0x13,0x27,0x86,0xa7,0xa7,0xa7,0xdb,0xdb,
+  0xdb,0xa7,0xa6,0xa6,0xa6,0xa7,0xa7,0x35,0x4d,0xab,0x54,0x2a,0xc9,0x64,0xb2,0x51,
+  0x68,0xe,0x94,0x26,0x3a,0xd6,0x2e,0x36,0xc,0x83,0x52,0x2a,0x97,0x92,0x43,0x2d,
+  0x64,0x4a,0xc4,0x2d,0xcf,0x81,0x18,0x2b,0x9b,0x92,0x54,0x43,0x4d,0x4,0xf3,0x6d,
+  0x18,0x86,0xba,0xae,0x7,0x41,0x90,0x4a,0xa5,0xa6,0xa7,0xa7,0x79,0xd2,0xf,0x0,
+  0xdf,0xf7,0x9d,0x8a,0x73,0xe7,0xbe,0xc5,0x57,0xae,0x43,0x55,0x7e,0x96,0xf6,0xf1,
+  0x6d,0xab,0x32,0x74,0x78,0xc2,0xce,0x66,0xb3,0x7c,0x51,0x3f,0x0,0x96,0x65,0x73,
+  0x2,0x73,0xde,0xce,0x88,0xdc,0xd2,0xbe,0x3d,0x43,0x9,0x3b,0x1,0xd9,0x40,0xc5,
+  0xa9,0x1b,0x8b,0x9b,0x17,0xb7,0x14,0xd6,0xc2,0xfa,0x5e,0x8e,0x5b,0xf1,0x8,0xd5,
+  0xa1,0x55,0xcf,0xdb,0x46,0x66,0x5a,0x96,0xc5,0x77,0xca,0x6a,0x48,0x5d,0x14,0x64,
+  0xed,0x75,0x29,0x20,0x87,0x64,0xcc,0x7,0xa7,0x43,0xb7,0xcc,0x73,0x3b,0x3d,0x3d,
+  0xfd,0xad,0x6f,0x7d,0x73,0xcf,0x9e,0x6f,0xfd,0xf8,0xc7,0x41,0x6f,0xef,0xc9,0x1f,
+  0x8d,0x45,0xc0,0x74,0x3f,0x7a,0x3f,0x46,0x40,0x70,0xec,0x3e,0x8c,0x3c,0x8c,0xca,
+  0x4,0xcc,0x4,0x54,0x1d,0x8a,0x2,0xd5,0x84,0x69,0x83,0x32,0xe8,0x6,0x34,0x3,
+  0x8c,0x81,0x86,0xa0,0x11,0xfc,0x32,0x2,0x17,0x51,0x8,0xdd,0x42,0x6b,0x27,0x51,
+  0xf5,0x77,0xbd,0x21,0xf9,0x3f,0x3f,0x7d,0xfb,0xbf,0xfc,0x4b,0x36,0x91,0x48,0x28,
+  0x8a,0x52,0x2a,0x95,0xb8,0x84,0x3c,0x74,0xe8,0x50,0xb1,0x58,0x4c,0xa7,0xd3,0xe3,
+  0xe3,0xe3,0xd9,0x6c,0x96,0x52,0xea,0xba,0xae,0xa9,0xd6,0xd9,0x59,0xbd,0x28,0xd8,
+  0xef,0x8c,0x5d,0xbd,0x62,0x2b,0x5f,0xbc,0xd2,0x30,0xc,0x51,0x99,0x98,0x6f,0x35,
+  0x4d,0x23,0x84,0x88,0xad,0xd8,0x23,0x4f,0x15,0x67,0x1b,0x48,0x62,0xcb,0x49,0x1a,
+  0x9f,0x55,0xf2,0xa1,0xc6,0xd9,0xcb,0x33,0x7,0xf8,0x30,0x72,0x5d,0xa7,0xb5,0xad,
+  0xa5,0x90,0x9f,0xba,0x77,0x67,0xe9,0x9d,0x57,0xcc,0xf0,0x16,0xe9,0x75,0xa8,0xc5,
+  0xc2,0x37,0x6,0x9,0xf8,0xbe,0x6f,0x18,0xc6,0xf9,0x8b,0x76,0xf1,0x83,0x7f,0x3a,
+  0x70,0xa5,0x9d,0xf0,0x51,0x9b,0xe5,0xca,0x22,0x17,0x92,0x3b,0x37,0x26,0x28,0xea,
+  0xde,0x34,0xd2,0xeb,0xe7,0xf4,0x9f,0x12,0xcb,0x46,0x29,0x61,0x31,0x16,0xa4,0x15,
+  0x9c,0x6c,0x35,0x8a,0x5d,0xda,0x1,0x0,0x83,0xee,0xa5,0x90,0x8,0xdc,0x4,0xbc,
+  0xc3,0xc7,0x66,0x76,0x58,0xcd,0x34,0xe7,0x20,0x8,0x62,0xbe,0xf1,0x97,0x51,0xa7,
+  0x71,0xe4,0xf3,0xf9,0x2f,0x7d,0xe9,0x8b,0x7,0xf,0x7e,0xf7,0x2b,0x5f,0x9,0xfb,
+  0xfb,0xe7,0xf1,0x3,0x6,0xc,0x2e,0x43,0xdb,0x87,0xc1,0xda,0x30,0xb6,0x1f,0xc5,
+  0x43,0xb0,0xc,0xd8,0xbd,0x20,0x4,0x81,0x57,0x3d,0x40,0xd3,0xc1,0x18,0x7c,0x7,
+  0x9e,0x3,0xc6,0x40,0x0,0x45,0x5,0x21,0x48,0xb5,0x41,0xd5,0x41,0x80,0x30,0x40,
+  0xa5,0xb8,0xb8,0xc5,0x78,0xed,0xd9,0xad,0x3f,0xbf,0xfd,0xd6,0xf3,0x2f,0x78,0x4d,
+  0xb1,0x58,0x6c,0x6d,0x6d,0xf5,0x3c,0x8f,0x52,0xaa,0x69,0xda,0xf0,0xf0,0xf0,0x92,
+  0x25,0x4b,0xf8,0x7f,0x30,0x8a,0xa2,0xb1,0xb1,0xb1,0xb4,0x6e,0x8a,0x5b,0x8,0x69,
+  0x74,0xff,0xc8,0x81,0xe4,0xa2,0xec,0xda,0x75,0xeb,0xe4,0x5b,0x23,0x12,0xe6,0xd8,
+  0x33,0xff,0xce,0xa9,0xfe,0x2b,0x63,0x7b,0xc5,0xff,0x58,0xfc,0xef,0x6b,0x19,0xf3,
+  0xd5,0x6c,0xdb,0x9c,0xdb,0x73,0xc7,0xe,0xf7,0xaa,0x73,0x25,0xf6,0xa2,0x5a,0xa4,
+  0xa6,0xd1,0x76,0xe2,0x79,0xfe,0x9b,0x37,0x1e,0x43,0x9,0x0,0x86,0xdd,0x7e,0x9e,
+  0x75,0x14,0xcb,0xe9,0x85,0x94,0x68,0x2a,0xc6,0x1c,0x6f,0x70,0x25,0x93,0x37,0xc4,
+  0x47,0xd4,0x5b,0x7d,0x4e,0xe7,0xb1,0x28,0xf3,0x96,0xef,0x11,0xf3,0x7f,0x0,0xae,
+  0xeb,0x9c,0x93,0xdd,0x5d,0xd3,0x47,0x6,0x90,0x5e,0xb7,0x7f,0xb0,0x62,0xdb,0x9,
+  0x79,0x11,0x53,0x19,0x33,0xca,0xe,0x36,0x36,0x7e,0x2b,0x20,0x8c,0xd5,0xa2,0xdf,
+  0xe4,0x9b,0x79,0x59,0xc0,0x71,0x9c,0x2f,0x7e,0xf1,0x8b,0x7b,0xf7,0xfe,0xc7,0x4f,
+  0x7e,0x12,0x2e,0x5a,0x74,0x32,0x3d,0x19,0x40,0x4,0xb6,0xa7,0x17,0x4b,0xbe,0x0,
+  0x63,0x39,0x99,0xd8,0x7,0xf7,0x28,0x34,0x8a,0x80,0xa1,0x9c,0x83,0x99,0x0,0x5,
+  0xdc,0x22,0x40,0x40,0x14,0x28,0x2a,0x74,0xb,0x96,0x5,0x5e,0xf9,0x6,0x4,0x61,
+  0x0,0x1a,0x41,0x51,0x11,0xf8,0x88,0x22,0x18,0x96,0xa1,0xe9,0xd7,0x6e,0xed,0xf9,
+  0xcf,0xdb,0xee,0x3a,0xd0,0xd2,0xe6,0xba,0x6e,0x26,0x93,0x31,0xc,0x63,0x78,0x78,
+  0xb8,0xb5,0xb5,0x75,0x6a,0x6a,0x4a,0xd8,0x9f,0xc,0xc3,0x28,0x14,0xa,0x4b,0x8d,
+  0xaa,0xca,0x43,0x19,0xdb,0x99,0x3b,0xb6,0xbf,0x32,0xfe,0x87,0x1f,0xf8,0x13,0x31,
+  0x9e,0xb9,0xb6,0x2c,0x58,0xaa,0x88,0x22,0x1d,0xf5,0x38,0xd5,0xdc,0x3,0x3e,0xec,
+  0x15,0x34,0x4c,0x8a,0xe4,0xff,0xb1,0xb8,0x9,0x6e,0x6a,0xe6,0x65,0x2e,0xe,0x8f,
+  0x5b,0x8f,0x1d,0xaa,0x11,0xa6,0xde,0x52,0xe5,0xb8,0x8e,0x53,0x71,0xa,0xf9,0x29,
+  0x5e,0x5f,0xef,0xe2,0xbe,0x1,0xfe,0xed,0xf0,0xb8,0x73,0xff,0x60,0x3f,0x50,0x55,
+  0x95,0x9b,0x86,0x61,0x88,0x31,0xc7,0x5f,0x69,0xc2,0x9c,0x23,0x7f,0x94,0x5d,0x29,
+  0x73,0x4c,0xe2,0x4f,0x9f,0xad,0x78,0xdd,0xc8,0x39,0x58,0xad,0x46,0x71,0x6d,0xe2,
+  0xb1,0x6b,0xd6,0x1c,0xea,0xee,0xb4,0x85,0xf2,0x72,0xfb,0x81,0x95,0xae,0xeb,0xc8,
+  0xea,0x71,0x5c,0xf6,0xa6,0xeb,0xde,0xe5,0x8d,0xe0,0x6b,0x26,0xa,0xf0,0x9f,0x8b,
+  0xee,0x92,0xff,0xb9,0xa7,0xf3,0x36,0x9f,0xcf,0x7f,0xe5,0x2b,0x5f,0x1a,0x18,0xf8,
+  0xf7,0x1b,0x6e,0xf0,0x17,0x2f,0x3e,0x39,0x6f,0x99,0x43,0xd8,0xd3,0x67,0x62,0xc9,
+  0xb7,0x48,0x72,0x3d,0x19,0xd9,0x8e,0x13,0xf,0xc2,0x9d,0x42,0x71,0x2,0xf9,0x13,
+  0x88,0x2,0xf8,0xe,0x10,0xc2,0x4a,0x22,0xd3,0x81,0x4c,0x7,0x52,0xad,0x30,0xc,
+  0x4,0x2e,0xdc,0x12,0xa6,0x26,0x90,0x1f,0x1,0xa3,0x20,0xa,0x18,0x83,0x6e,0xc2,
+  0x4c,0x42,0x51,0xa3,0x88,0x75,0xb7,0x1a,0xfd,0x4b,0x5a,0x86,0x8e,0xd,0x14,0x8b,
+  0xc5,0xc3,0x87,0xf,0x13,0x42,0xf8,0xbf,0x2f,0x8,0x82,0xe9,0xe9,0xe9,0x30,0xc,
+  0x15,0x45,0x49,0xa7,0xd3,0x85,0x42,0xa1,0xcb,0x6e,0x5,0x40,0x19,0x3b,0x50,0x38,
+  0xb1,0xd3,0x1d,0x79,0xd7,0x7b,0x7f,0x8f,0x17,0x8e,0x8d,0xa2,0x88,0xe7,0x6,0x11,
+  0x42,0x78,0x76,0x2e,0x6f,0x47,0x51,0xc4,0xf3,0x75,0x79,0x9b,0x67,0xf3,0x12,0x42,
+  0xe6,0x6f,0xb2,0x12,0xff,0xc7,0x26,0x86,0x76,0x59,0x8e,0x71,0x1f,0xaf,0xa8,0x56,
+  0xc3,0xed,0x55,0xb6,0x65,0x1f,0x3c,0x32,0x2c,0xe6,0x5d,0x97,0x9e,0x5d,0xb5,0x9a,
+  0x8,0xf6,0xf2,0x8f,0x17,0xf7,0xd,0x70,0x47,0xee,0x63,0x63,0x1b,0xef,0xdc,0x57,
+  0x2d,0x3c,0xdf,0xa8,0x2a,0xf3,0xb7,0x83,0x3c,0xe6,0x9a,0x9a,0x5e,0x39,0xa6,0xa7,
+  0xa7,0xf9,0x31,0x4d,0x47,0xe4,0xe9,0x9,0xfe,0x44,0x82,0xb7,0x6b,0x13,0x8f,0x6d,
+  0x5a,0x72,0xb4,0xea,0xe2,0xae,0x19,0xfc,0x1e,0x3b,0xa4,0x95,0x4a,0x33,0x85,0x7,
+  0x9a,0x2b,0xcc,0xc2,0x3a,0x78,0x2a,0x97,0x16,0xed,0x97,0x45,0x78,0xf3,0xc4,0xc4,
+  0xc4,0x67,0x3e,0xf3,0x99,0xdd,0xbb,0xbf,0xfe,0x95,0xaf,0x44,0xb3,0x2c,0xdf,0x53,
+  0x8f,0xa,0xb0,0xef,0xc,0xa8,0x1f,0x86,0xd2,0x8a,0x67,0x6e,0xc5,0x89,0x47,0x11,
+  0xba,0x88,0x42,0x98,0x49,0xb4,0x2d,0x41,0xcb,0x62,0xa4,0x3b,0x60,0x24,0xa1,0x68,
+  0x70,0xa6,0x31,0x9d,0x83,0x53,0x44,0x79,0xa,0x9e,0x3,0x45,0x43,0xaa,0x15,0x6d,
+  0x5d,0x30,0x2c,0xe8,0x26,0x18,0x45,0x29,0x87,0x89,0x63,0xc8,0x8f,0x1c,0xda,0x37,
+  0xe0,0x4f,0x7,0xd7,0x5d,0x75,0x46,0xd2,0x39,0x1e,0x5,0x7e,0xb9,0x5c,0x1e,0x1f,
+  0x1f,0x4f,0x26,0x93,0x61,0x18,0x6,0x41,0x50,0x2e,0x97,0x93,0xc9,0x64,0x3a,0x9d,
+  0xe6,0x13,0xe0,0xa5,0xc9,0x36,0xca,0xe8,0x53,0xb9,0x63,0xf7,0x4f,0x1d,0xbe,0xfc,
+  0xda,0xab,0xfb,0xfb,0xfb,0x21,0x49,0x51,0x2e,0x69,0x45,0xde,0x9f,0xca,0xd7,0x5c,
+  0xa8,0xed,0x7c,0x2e,0xb5,0xb2,0xab,0x52,0x77,0x36,0xc4,0xe6,0x4b,0x42,0xf0,0x2,
+  0xa8,0x56,0x72,0x4c,0xaf,0x3,0xd0,0x6d,0xd,0xfc,0xc5,0x3b,0xd2,0xe7,0xad,0x49,
+  0xa0,0xc6,0xde,0x25,0xe9,0xfc,0xc5,0x7d,0x3,0x5c,0xa4,0xdc,0xb1,0x23,0x3a,0x9c,
+  0x6f,0xe7,0xb1,0x53,0xe9,0x74,0x4a,0x96,0xb7,0x82,0xbd,0xc2,0x29,0x22,0xc7,0x3c,
+  0x37,0x85,0x38,0xac,0x29,0x81,0x4f,0x1f,0xc8,0x22,0x57,0x2e,0xf,0xe4,0xba,0x4e,
+  0x77,0xa7,0xd,0xd4,0x18,0x98,0x5e,0x7,0xe0,0xb1,0x43,0x1a,0x77,0x98,0x9,0x34,
+  0x2a,0xcc,0x9e,0xe7,0x57,0x7f,0x52,0x6f,0xa6,0x42,0x6d,0xce,0x1c,0x63,0xbb,0xb8,
+  0x28,0x67,0x6f,0xec,0x35,0x17,0x33,0x19,0x9c,0x26,0x5b,0xdf,0xf7,0xff,0xe6,0x6f,
+  0xfe,0xe6,0xd8,0xb1,0x1b,0x6f,0xbc,0x91,0xae,0x5f,0x3f,0xf,0x3d,0xd9,0x1,0x7b,
+  0xac,0x17,0xe4,0xbd,0xe8,0xb9,0x80,0xe4,0x9e,0x80,0x77,0x1c,0x76,0x2,0x89,0x16,
+  0x58,0x29,0x98,0x9,0xe8,0x26,0x8,0x41,0x69,0x2,0xd3,0x39,0x84,0x21,0x54,0xd,
+  0x9a,0x1,0xcd,0x42,0xaa,0xd,0x99,0xe,0x98,0x49,0x68,0x6,0xc0,0xe0,0x94,0x31,
+  0x71,0x1c,0xb9,0x13,0x70,0xcb,0xa0,0x74,0xfb,0xf6,0x43,0xc5,0xbc,0x97,0x32,0x94,
+  0xcb,0xd6,0xb7,0x2d,0x4a,0x44,0x86,0x42,0x1,0xe4,0x72,0x39,0xc6,0x98,0x61,0x18,
+  0xe9,0x74,0x3a,0x99,0x4c,0xae,0x58,0xb1,0x42,0xd3,0xb4,0x62,0xb1,0x98,0xd5,0xed,
+  0x8c,0x6e,0xef,0x2b,0xc,0xff,0x6a,0x64,0xef,0xb5,0x6f,0x7b,0xf3,0xfa,0xf5,0xeb,
+  0x29,0xa5,0x3c,0x61,0x8e,0x3b,0x87,0xf8,0x96,0x5b,0x9b,0x75,0x5d,0x17,0x5b,0x4d,
+  0xd3,0x78,0x3b,0x8a,0x22,0x91,0x62,0x3d,0x9b,0x3d,0x62,0xb6,0x29,0xe1,0x5c,0x5d,
+  0x89,0x1a,0x7b,0x85,0xda,0x2c,0x8a,0xd4,0xd4,0x21,0xbd,0xe,0xc0,0x55,0xe7,0xaa,
+  0x1b,0x7b,0xf9,0x35,0x8a,0xdd,0x9d,0x36,0x60,0x73,0x25,0xd9,0xa9,0x38,0xb2,0x49,
+  0x59,0x98,0x43,0xc5,0x2c,0x97,0x87,0x3a,0xcb,0xee,0x90,0x58,0x2c,0x87,0xec,0x6d,
+  0xe2,0xf3,0x40,0x9e,0xf,0xcc,0xcb,0xbe,0xaa,0xaa,0x2a,0x66,0x74,0x2f,0xbe,0xec,
+  0x9d,0x4d,0xcf,0x11,0x88,0xea,0xcb,0x3,0x89,0x28,0x6e,0xa0,0x6a,0x73,0x1a,0x1e,
+  0x77,0x1e,0x3f,0x94,0x69,0x1a,0xf4,0xde,0xdc,0x5e,0x55,0x6f,0xa6,0x72,0x5d,0xa7,
+  0xad,0xad,0xdd,0x75,0x5d,0xae,0xa7,0xf1,0x6e,0x5c,0x67,0xdc,0xb9,0xf,0x57,0x42,
+  0x5a,0x3f,0x31,0x56,0x8d,0xe1,0x25,0x67,0x69,0xe3,0xb6,0x52,0xa9,0x7c,0xf9,0xcb,
+  0x7f,0x37,0x3e,0xfe,0x83,0x1f,0xfc,0x80,0xd6,0x2a,0xfc,0xce,0x5,0xe6,0x1,0x7,
+  0x56,0x20,0xfd,0x5e,0xb2,0xfe,0x6d,0x98,0x78,0x4,0x53,0x7,0xc1,0x22,0x50,0xa,
+  0x42,0x50,0x29,0x81,0x46,0x50,0x55,0x68,0x16,0x12,0x6d,0x0,0x45,0xb9,0x0,0xab,
+  0x5,0x8a,0xe,0x30,0x30,0x86,0xd0,0x47,0xe0,0xc1,0x77,0xe1,0x55,0xa0,0x1b,0xd0,
+  0xd,0x10,0x42,0x5d,0xf7,0xc0,0x33,0xc3,0x95,0xc0,0x58,0xd9,0x63,0x53,0xa2,0x5a,
+  0x6a,0xb0,0xa9,0x3f,0xf1,0xab,0x21,0x9f,0x10,0x32,0x3d,0x3d,0xad,0xaa,0x6a,0x2a,
+  0x95,0xea,0xec,0xec,0x54,0x55,0xd5,0x30,0x8c,0x7c,0x3e,0x9f,0xcb,0xe5,0xfa,0xad,
+  0xf6,0x23,0xd3,0xe3,0xf,0x4d,0xd,0xbc,0xe5,0x77,0xdf,0x7e,0xc6,0x19,0x67,0x30,
+  0xc6,0xf8,0xda,0x1d,0xa6,0x69,0x2,0xd0,0x75,0x9d,0x10,0xc2,0x87,0x3d,0xdf,0xcf,
+  0xb7,0x96,0x65,0xf1,0x63,0x28,0xa5,0x86,0x61,0xf0,0x69,0x73,0x14,0x45,0x96,0x65,
+  0xc9,0xd4,0x8b,0x31,0xb1,0x69,0xbf,0x9d,0x84,0xbd,0x8d,0xb0,0x13,0x36,0xd0,0xa4,
+  0x12,0x7c,0x55,0x9e,0x0,0x0,0x86,0xc7,0x9d,0x9b,0x77,0x64,0x6c,0xcb,0x11,0xb1,
+  0xca,0xc2,0x16,0x2a,0xd4,0x6f,0x1,0xae,0x4f,0x62,0x66,0xc1,0xce,0x4a,0x63,0x10,
+  0x82,0xeb,0x3a,0xe2,0xc,0xb2,0x21,0xc7,0xb6,0x6d,0x99,0xbd,0x2f,0xce,0x38,0x43,
+  0x3d,0x45,0x65,0x73,0x9a,0xdc,0x68,0x8c,0x67,0x3c,0x7f,0xa5,0xd4,0xa5,0xe9,0x75,
+  0x0,0x6e,0xde,0x91,0xa9,0x75,0x29,0x7f,0x9c,0x53,0xf0,0xf4,0xa0,0xe6,0x87,0x6b,
+  0x6b,0xcb,0x8a,0x3e,0xb1,0x6d,0x1b,0x11,0x4c,0x3a,0xee,0x38,0x9d,0xe2,0x9d,0x1b,
+  0x7b,0xc7,0x9d,0xe,0x5c,0x95,0xb7,0xf9,0x7c,0xfe,0xb3,0x9f,0xfd,0x6c,0x2e,0x77,
+  0xe3,0x57,0xbe,0xc2,0xba,0xbb,0xe7,0x7a,0xde,0x2a,0x18,0xb0,0x77,0x19,0xd4,0xff,
+  0x17,0xab,0xae,0xc2,0xe8,0x3d,0x18,0xf8,0xd,0x2a,0x39,0x58,0x49,0x10,0x2,0x45,
+  0xab,0x8a,0x5c,0xa1,0x8e,0x52,0x8a,0x44,0xb,0xa2,0x8,0x9e,0x3,0x4a,0xa1,0x6a,
+  0x10,0xe9,0x3e,0x89,0xc,0x54,0x5,0x14,0x30,0xcc,0x91,0x3c,0xcd,0xfb,0x89,0x9e,
+  0x4c,0x39,0xd4,0x4c,0x52,0x99,0xd2,0x69,0xf1,0x8c,0xe,0xed,0x89,0x91,0xca,0x9,
+  0x25,0x11,0x86,0x61,0x3a,0x9d,0xe6,0xff,0x53,0x4e,0xcb,0x42,0xa1,0xe0,0x39,0xe,
+  0x65,0xfa,0x5d,0xe3,0x7,0xb6,0x5d,0xf9,0xba,0xb5,0x6b,0xd7,0x72,0x66,0x42,0x62,
+  0x69,0xac,0xcd,0x7f,0xc8,0x25,0x30,0xdf,0x72,0xf6,0x72,0xd9,0x6b,0x18,0x46,0x4c,
+  0xea,0xce,0xf1,0x71,0x86,0xb7,0x98,0x87,0xf4,0x10,0x3,0xab,0x91,0x54,0x8d,0xb8,
+  0xe1,0xae,0xb1,0x2,0xed,0x11,0x11,0x3f,0x62,0x7e,0xb,0x89,0xb7,0x5c,0xd2,0x36,
+  0xfa,0x4b,0x5c,0xd7,0xe9,0xca,0x4,0x51,0x38,0xac,0x26,0xba,0xa3,0xca,0x4c,0x3e,
+  0xe4,0x78,0xd8,0x57,0x2c,0x4e,0xc5,0x2e,0x24,0xc4,0xaf,0x18,0x97,0x73,0x3f,0xce,
+  0xf3,0xb5,0x45,0xbd,0xa,0xca,0x29,0x2a,0x88,0x1a,0xd5,0x15,0x18,0x70,0xc4,0xa3,
+  0xb5,0x1a,0xf1,0x50,0xf5,0xe1,0x71,0x2c,0x93,0x48,0xfd,0x0,0x0,0x20,0x0,0x49,
+  0x44,0x41,0x54,0x7,0xd0,0x45,0x6d,0xc7,0xa6,0xd6,0xbb,0xa6,0xe0,0x95,0x5c,0x21,
+  0x49,0xdd,0xba,0xd9,0x87,0x1,0x4f,0xe9,0x44,0x4d,0x8,0x37,0x6,0x87,0xbf,0x38,
+  0xbd,0x34,0xcf,0x6d,0xa5,0x52,0xf9,0xfc,0xe7,0x3f,0x3f,0x36,0xf6,0x5f,0xff,0xf5,
+  0x5f,0xac,0xb5,0x55,0xf8,0x4b,0xf8,0xe2,0xb7,0xcd,0xc0,0x40,0x77,0x76,0x93,0xfc,
+  0x5b,0xb0,0xf9,0x2a,0x32,0xf9,0x20,0x8e,0x3d,0x1,0x95,0xa0,0x65,0x11,0x54,0x15,
+  0x7c,0x49,0x3e,0x59,0xd5,0x66,0xc,0x95,0x2,0x8,0xa0,0x59,0x50,0x75,0x44,0x2e,
+  0x88,0x2,0xd3,0x86,0xef,0x80,0x46,0xd0,0x93,0x30,0x4c,0x10,0xd5,0x75,0xfc,0x23,
+  0xc7,0x8b,0xfd,0x6d,0x24,0x98,0xf2,0x34,0xbf,0xa8,0x54,0x26,0x61,0xdb,0x29,0x4b,
+  0xb5,0x98,0xc7,0x98,0xcd,0xcb,0xd3,0x15,0xa,0x5,0x5e,0x4d,0x6a,0x7a,0x7a,0x7a,
+  0x6a,0x6a,0xaa,0x3c,0x35,0xfd,0x84,0x9f,0x7b,0xf3,0xdb,0xdf,0xba,0x7e,0xfd,0x7a,
+  0x7e,0xcf,0x5c,0x13,0x46,0xcd,0x85,0xcb,0xb7,0xaa,0xaa,0xf2,0xba,0x36,0x9c,0xa5,
+  0xa2,0xcd,0xf5,0x6a,0x45,0x51,0xf8,0x5b,0x35,0xac,0xad,0xec,0x5,0x69,0x8c,0xcd,
+  0xf1,0x31,0x9c,0xad,0x36,0x55,0xc,0xb2,0xba,0x65,0x59,0x76,0xa9,0x34,0xed,0x68,
+  0xfd,0x40,0xbc,0x1a,0x2d,0x80,0x3b,0x76,0x44,0x8f,0x1f,0xa8,0x0,0x36,0x8f,0xaf,
+  0xb2,0x13,0x76,0xb5,0x2c,0x46,0xf5,0xb7,0x75,0xbc,0xe5,0x3b,0x5,0x6f,0xf3,0xf9,
+  0xc9,0xae,0x4c,0xb0,0xa9,0xef,0x68,0xed,0xf0,0xa3,0x75,0xa7,0xc6,0xa1,0xc7,0xe,
+  0x69,0x87,0xf3,0xed,0xe3,0xe3,0xe3,0xb1,0x73,0xa2,0x26,0x55,0xe6,0xf3,0x2c,0xcf,
+  0x1d,0x82,0xb4,0x73,0x4,0x1b,0xcb,0xf,0x88,0xd9,0xe3,0xa2,0xee,0xdc,0xb7,0x18,
+  0xa8,0x1e,0x26,0x2f,0x6f,0x5d,0xf3,0xa5,0xcf,0x9a,0x1d,0x6d,0x5b,0xb6,0x53,0x71,
+  0xb8,0xdd,0xc1,0x71,0x2a,0x31,0x59,0xbd,0xcf,0xbf,0x52,0xbe,0x93,0xf9,0x3c,0xd4,
+  0x4b,0x88,0xef,0x7c,0xe7,0xdf,0x26,0x87,0xef,0xfc,0xde,0x3f,0x2d,0x4d,0x4d,0x18,
+  0xd1,0x89,0x96,0xc8,0x6f,0x67,0x51,0x96,0x91,0x4,0x3a,0xc,0xad,0x65,0x37,0x51,
+  0x47,0x88,0x1e,0x90,0x68,0x44,0x31,0x2b,0x50,0xc0,0x22,0xc2,0x8e,0x77,0x93,0xa9,
+  0xab,0xc8,0x59,0xd7,0xa2,0xb0,0x3,0xb9,0xc3,0x10,0x9e,0xed,0x28,0x4,0xa3,0x55,
+  0xf6,0x72,0x66,0x6a,0x1a,0x54,0x3,0xba,0xd,0xdf,0x81,0x57,0x81,0x6e,0x42,0x37,
+  0xe0,0x3b,0x50,0x34,0x24,0x32,0x50,0x54,0x50,0xc6,0x4a,0xb9,0xe9,0x92,0x77,0xf8,
+  0x78,0xa9,0xd7,0x86,0xee,0x4d,0x4d,0x6b,0x96,0x45,0x69,0x10,0x80,0xa4,0xd3,0x29,
+  0x93,0xda,0x26,0x1,0xa3,0xba,0x6e,0x72,0xd6,0x69,0x9a,0x96,0x4c,0x26,0xa7,0xa6,
+  0xa6,0x26,0x27,0x27,0x3,0x42,0xaf,0x7d,0xf3,0x9b,0x36,0x6c,0xd8,0x20,0xaa,0xc6,
+  0x69,0x9a,0x26,0x6c,0x51,0xaa,0xaa,0x6a,0x9a,0xa6,0xd6,0x43,0xde,0xc3,0x2d,0x55,
+  0x8d,0xe,0xde,0xf9,0xe3,0xe4,0xd4,0xd5,0x75,0xdd,0x75,0x5d,0x39,0x77,0xd4,0x34,
+  0xd,0x3b,0x1c,0x0,0xe2,0x54,0xb9,0x63,0x47,0x74,0xf3,0xdd,0x7,0x7b,0x7a,0xba,
+  0xe5,0x95,0x10,0x0,0x58,0x96,0xcd,0xab,0xa8,0x37,0xca,0x93,0x98,0xb0,0xdd,0xb4,
+  0x24,0x46,0xd7,0x3a,0x9c,0xbf,0x32,0xec,0x19,0x1f,0xb8,0x7f,0xb0,0x5f,0x36,0xc6,
+  0x72,0xf0,0x19,0xdd,0x8b,0x90,0xa3,0x2f,0x3b,0x69,0x1b,0x17,0xd1,0x44,0x6d,0x82,
+  0xca,0xc5,0x60,0x8c,0x7b,0x5,0x3f,0x23,0x7f,0xfc,0xd1,0xe3,0x8b,0x1,0x87,0xf7,
+  0x15,0x37,0xe0,0xc9,0xbe,0xee,0xb9,0xe1,0xb8,0x8e,0xe8,0x64,0x99,0xb7,0x31,0xdb,
+  0x81,0xc0,0x69,0x5b,0x5a,0x7d,0x74,0x74,0xf4,0x27,0x3f,0xfa,0xfe,0xd7,0xff,0xea,
+  0xba,0xa4,0x72,0x66,0x45,0x49,0x91,0x94,0xa5,0x28,0xba,0xa2,0x0,0x44,0x3,0x14,
+  0xbf,0x70,0x5,0x8b,0x7c,0xa6,0x96,0x8,0x3d,0xa4,0x19,0xfb,0x75,0xfd,0x3e,0x32,
+  0xad,0x63,0x74,0x1b,0x96,0x5d,0x88,0xc9,0x9d,0x28,0x1e,0x85,0x57,0xaa,0xd2,0x55,
+  0x55,0x11,0x6,0x50,0x54,0x28,0x2a,0x14,0x5,0x66,0x12,0x8a,0x2,0x42,0xc0,0x28,
+  0xc2,0x0,0xba,0x89,0xc8,0x87,0xef,0x42,0xb7,0x90,0x68,0x5,0x18,0x9c,0x12,0x14,
+  0x5,0x44,0x1d,0x1e,0x99,0x2a,0x38,0x56,0xbb,0x1a,0x25,0x99,0x3b,0x15,0xa9,0x49,
+  0xc3,0xf4,0x2b,0x15,0x45,0x51,0xad,0xca,0x48,0x21,0x34,0xa8,0xaa,0x75,0x75,0x2d,
+  0x49,0x24,0x93,0xdc,0xa9,0xdb,0xd5,0xd5,0x65,0x9a,0xe6,0xd3,0x4f,0x3f,0x3d,0x36,
+  0x36,0x76,0xd1,0x45,0x17,0x6d,0xdc,0xb8,0x11,0xb5,0x25,0x14,0x84,0xd,0x99,0x87,
+  0x49,0x35,0x42,0x36,0x2f,0x8b,0xda,0xae,0x82,0xb4,0x2f,0x8,0x75,0x39,0x78,0x58,
+  0xd5,0x1c,0x72,0x0,0x40,0x36,0x63,0xf2,0xc5,0x75,0x73,0xb9,0x5c,0x4f,0x77,0x8f,
+  0x9d,0xb0,0x63,0xaa,0x32,0x9a,0x9,0x1,0xee,0x34,0x69,0xe4,0x2d,0x49,0xf6,0xb3,
+  0xf2,0x40,0xac,0xdd,0xd3,0xbf,0xee,0x62,0xec,0x13,0xec,0x15,0x1,0xc,0xbc,0x4,
+  0x71,0x63,0x14,0xd1,0xf3,0x88,0xd9,0x82,0x90,0xe7,0x8,0x45,0x8e,0x11,0xd8,0x75,
+  0x9d,0xdb,0xf,0xac,0xec,0xca,0x4,0x51,0x65,0x78,0xa8,0xb2,0xc4,0xa9,0x4c,0x71,
+  0xa5,0x57,0xf0,0x36,0xa6,0x95,0xcc,0xd1,0xe1,0x31,0xa9,0xcb,0xdf,0x8c,0xa8,0xd9,
+  0xa5,0xe4,0xad,0xfc,0xab,0xd3,0xb0,0xfc,0xc8,0x2d,0xb7,0xdc,0x92,0x6d,0x6f,0x3d,
+  0xeb,0xc2,0xad,0xc4,0xb4,0x14,0xd5,0x54,0x55,0x4b,0x51,0x2d,0x45,0x25,0x84,0x11,
+  0x0,0x34,0xd1,0xc2,0xa2,0x20,0xc,0x2a,0x11,0xed,0xa5,0xd1,0x36,0xbf,0xf2,0x96,
+  0xc4,0x23,0xdf,0x50,0xf3,0xf,0x92,0xf6,0x61,0x64,0xb2,0x30,0x93,0xd0,0x54,0xe8,
+  0x6,0x54,0x3,0x4,0xd0,0x2d,0xa0,0xa6,0x2d,0x33,0x8a,0x28,0x40,0x18,0xc2,0xaf,
+  0x80,0x52,0xe8,0x26,0x34,0x13,0x56,0x1a,0xbe,0x83,0xd2,0x4,0x74,0x13,0x86,0xd,
+  0xc3,0x1a,0x1e,0x1a,0x3f,0x3a,0xa9,0xb7,0x25,0x94,0xd6,0x70,0xac,0xa8,0x77,0x12,
+  0x94,0x4d,0xd,0x6e,0xb1,0xa4,0xeb,0x2a,0x53,0xf5,0x14,0xf1,0x92,0xa9,0x6c,0x7f,
+  0xb6,0xbf,0x52,0x71,0x28,0xa5,0x1b,0x37,0x6e,0x34,0xc,0x63,0xc7,0x8e,0x1d,0x7b,
+  0xf7,0xee,0xdd,0xba,0x75,0xeb,0xd6,0xad,0x5b,0x63,0x54,0xe4,0x82,0x97,0xb3,0x54,
+  0x6e,0x70,0x4a,0xb,0x87,0x90,0xa0,0xab,0x88,0xd0,0x78,0x76,0x52,0x77,0x5e,0x9e,
+  0x25,0xfe,0xce,0xae,0x8b,0x8f,0xd7,0xfa,0x1,0x90,0x64,0xff,0xf0,0xb8,0xc3,0x1b,
+  0x0,0x7a,0x32,0xa5,0xa1,0xa1,0x61,0xd4,0xd6,0xe9,0xe4,0x93,0x37,0x31,0x22,0xf9,
+  0x42,0xbb,0xf2,0x69,0xe5,0xd0,0x22,0xce,0x5b,0x7e,0x1e,0xbe,0xe5,0x5c,0x15,0xed,
+  0xe1,0x71,0xe7,0xb1,0x43,0x1a,0x2b,0xf,0xf4,0xf4,0xaf,0xbb,0xb8,0x6f,0x80,0x2f,
+  0xed,0x29,0xfb,0x45,0x4e,0x9a,0xe3,0xfa,0x5c,0x10,0xe3,0x6d,0x2c,0x35,0xca,0x71,
+  0x2a,0xf9,0xfc,0x24,0xff,0xe3,0x1f,0x1d,0xa7,0x92,0xcf,0xe7,0x20,0xa9,0x15,0xa8,
+  0x45,0xa4,0x1d,0x9d,0x60,0x43,0x95,0x25,0x9e,0xe7,0x8b,0xc5,0x10,0x67,0x7b,0xbb,
+  0xc9,0x33,0x58,0xce,0x52,0xde,0x1b,0xdd,0x4b,0xba,0xe4,0x7b,0x6b,0xc,0xc0,0xe2,
+  0x67,0x10,0xe7,0x39,0x6d,0x45,0xae,0xe7,0x79,0x3f,0xff,0xf9,0x6d,0xef,0x7c,0xfb,
+  0xe5,0xba,0x99,0x54,0xb5,0x94,0xa6,0xda,0xaa,0x6e,0xa9,0x9a,0xa6,0xaa,0x86,0xaa,
+  0x1a,0xaa,0x66,0x68,0xaa,0xa5,0x69,0xb6,0x66,0xa6,0x74,0x3d,0xa1,0x9a,0x69,0xd5,
+  0xec,0xf5,0x37,0xbd,0x3f,0xcc,0x9e,0xc9,0x2a,0x5,0x38,0x53,0xd0,0x54,0x58,0x29,
+  0xe8,0x16,0x8,0x1,0x63,0xa0,0x11,0xa2,0x0,0x61,0x0,0x67,0x1a,0xd3,0x79,0x38,
+  0x25,0xb0,0x8,0x46,0x2,0xc9,0x16,0xa8,0x2a,0xdc,0x12,0xa,0x27,0x10,0x38,0x2c,
+  0xd5,0xc6,0x52,0xad,0x4c,0x37,0x4f,0x1c,0x1b,0x3d,0x78,0x60,0x52,0x27,0x58,0x84,
+  0xb1,0xc0,0xc8,0x30,0x28,0x44,0x51,0x54,0xe6,0xc1,0x30,0x19,0x8b,0x14,0xdf,0x2d,
+  0x7a,0xaa,0xa6,0x69,0x94,0x32,0x5d,0xd7,0x93,0xc9,0x64,0x32,0x99,0x1c,0x1d,0x1d,
+  0xdd,0xbf,0x7f,0xff,0x96,0x2d,0x5b,0x2e,0xbc,0xf0,0x42,0xce,0x5b,0x51,0xa8,0x95,
+  0xf3,0x56,0x90,0x56,0x40,0xde,0x1f,0xe3,0xb0,0x4c,0xe6,0x67,0xd1,0x7b,0x27,0xa7,
+  0xae,0x98,0xda,0x89,0xc1,0xe1,0x79,0xbe,0x1d,0xe,0x70,0x49,0xb8,0xeb,0xb8,0x1,
+  0x80,0x95,0x7,0xaa,0xec,0xad,0x2d,0x69,0xdf,0xb4,0x4a,0x2b,0xd7,0x19,0x10,0xcf,
+  0x6b,0x73,0xce,0x5e,0xea,0x41,0x12,0xad,0xe2,0x6c,0x62,0xf,0x49,0xf6,0xef,0x3a,
+  0x6e,0xfc,0xfb,0x4f,0xf7,0xf0,0x6f,0x59,0x72,0xb5,0xe3,0x3a,0x22,0xc7,0x50,0x40,
+  0xce,0x7a,0x7b,0xbe,0x20,0x72,0xdf,0x45,0xac,0x88,0x4c,0xda,0x7c,0x7e,0xb2,0x58,
+  0x9c,0x6a,0x35,0x8a,0x5d,0x99,0xa0,0x2b,0x13,0x74,0x6a,0x83,0xe3,0xe3,0xe3,0xc5,
+  0xe2,0x54,0xb1,0x38,0xc5,0x43,0xa3,0x38,0x99,0xc5,0x93,0x8a,0xd3,0x72,0xab,0xbb,
+  0xac,0x95,0x70,0xef,0x8e,0xfc,0x76,0x93,0xa5,0xae,0x5c,0xb9,0x9e,0x94,0x9f,0x11,
+  0xb,0xe,0x1,0x70,0x9c,0x8a,0x38,0xf2,0xf4,0x9f,0xd9,0xca,0xd8,0xbf,0x7f,0x7f,
+  0x79,0xba,0x74,0xcd,0xd5,0x17,0x6a,0xaa,0xa1,0xe9,0x86,0xaa,0xeb,0xba,0x61,0x6b,
+  0x9a,0xa9,0xa8,0x3a,0x51,0x75,0x42,0x34,0xa2,0x69,0x44,0xd3,0x35,0xd5,0x50,0x54,
+  0x8b,0xc2,0x88,0xd4,0x64,0x90,0x59,0xe9,0x6f,0xf9,0x23,0xef,0xcc,0xdf,0xa5,0x9e,
+  0x87,0xa3,0x7b,0x91,0x1f,0x85,0x57,0x81,0x53,0xc2,0x74,0x1e,0x5e,0x19,0xbe,0x8b,
+  0x28,0x4,0x21,0xd0,0x4d,0x68,0x6,0x7c,0x17,0xa5,0x49,0x14,0x27,0xe0,0x94,0x0,
+  0x82,0x54,0x16,0x76,0xb,0x34,0x3,0x11,0xf5,0x8a,0x53,0xe3,0x47,0x47,0x32,0xe9,
+  0x64,0x56,0xad,0xa8,0x95,0x9c,0x43,0x92,0xac,0x32,0xa9,0x80,0xf9,0x5e,0x48,0x99,
+  0x62,0xa8,0x84,0x32,0x56,0xac,0x4,0x27,0xa6,0x55,0xd7,0x75,0x53,0xa9,0x54,0x36,
+  0x9b,0x1d,0x1c,0x1c,0xbc,0xe3,0x8e,0x3b,0xd6,0xad,0x5b,0xb7,0x75,0xeb,0x56,0xce,
+  0x43,0x1,0x9d,0xaf,0xb1,0xad,0xaa,0xba,0x4,0x4e,0x5d,0xf1,0x95,0xe0,0x6d,0x4c,
+  0xd8,0x3e,0xeb,0xd5,0xb1,0xe7,0xa5,0x30,0x47,0x51,0x64,0xdb,0x76,0x3e,0x5f,0x75,
+  0x8,0x99,0xa6,0xe1,0xa0,0x9f,0x13,0x2c,0x37,0xf9,0x28,0x49,0x5e,0x20,0x34,0x5b,
+  0x19,0xb2,0xdd,0x85,0x1b,0x81,0x63,0x7,0xf0,0xd1,0xef,0xfb,0x7e,0x4f,0xe2,0x38,
+  0x67,0xa9,0x2c,0x6f,0x5,0xf8,0x57,0x1b,0x7b,0xfd,0xec,0x9b,0xd7,0x93,0x64,0x2f,
+  0x0,0x32,0xbe,0xf,0xc8,0x80,0xe7,0x33,0x55,0x5,0xda,0xb,0xb2,0x6c,0x47,0x53,
+  0x25,0xd9,0x95,0xa,0xca,0x2f,0xeb,0x20,0x8b,0x5b,0x58,0x4f,0xe2,0x58,0xed,0x3e,
+  0xc3,0xb,0x92,0xf6,0xd0,0xc0,0xbe,0x47,0x47,0xce,0x28,0x95,0xa6,0x9b,0x2e,0xf9,
+  0x2d,0x3b,0xc6,0x65,0x87,0x99,0xd8,0x29,0x17,0xc1,0x15,0x85,0x4a,0x44,0x3f,0x90,
+  0x64,0x3f,0xab,0x84,0xc0,0xa8,0x53,0x71,0x5a,0xdb,0x5a,0xa4,0x53,0xc5,0xcf,0x20,
+  0x77,0xb8,0x1c,0x1,0x7e,0xfa,0x60,0xc7,0x8e,0xed,0xaf,0x39,0xef,0x8c,0xce,0xf6,
+  0xac,0xa2,0x5a,0x84,0xe8,0x8a,0xaa,0x2b,0x8a,0x6,0xc6,0x0,0xd,0x2a,0x3,0x65,
+  0x20,0x14,0xaa,0xa,0xaa,0x87,0x11,0x8b,0x68,0x14,0x84,0x21,0xa0,0x47,0x46,0xab,
+  0x91,0x5e,0xce,0xba,0x2f,0xb1,0xe,0xdf,0x4e,0x8e,0x3c,0x89,0x15,0x67,0x21,0xd3,
+  0x1,0x85,0xc0,0x29,0x43,0x51,0xe1,0x94,0xa0,0x69,0xf0,0x5c,0x0,0x30,0x6d,0x24,
+  0x53,0x50,0xc,0x68,0x3a,0x40,0xa0,0xa8,0x60,0x8c,0xb8,0x25,0xc6,0xe8,0x8e,0x3d,
+  0x63,0x2d,0x6d,0xfd,0x8a,0x9b,0x6f,0x73,0x8f,0x95,0x94,0x36,0xc3,0x2b,0x94,0x98,
+  0x9a,0x22,0x34,0x82,0x5a,0xf6,0xa2,0xb4,0x19,0x85,0x94,0x1e,0x2d,0x84,0x13,0x9e,
+  0xd6,0x46,0x69,0x47,0x47,0xc7,0x91,0x23,0x47,0x7e,0xfa,0xd3,0x9f,0x5e,0x72,0xc9,
+  0x25,0x67,0x9f,0x7d,0x36,0x9f,0x77,0x70,0x91,0x2b,0xc4,0x29,0x67,0x29,0x67,0xaf,
+  0x6c,0xaf,0xe2,0xbc,0x8d,0x5,0x30,0xcb,0x51,0xcd,0x2f,0x2c,0x75,0xb9,0x41,0x5c,
+  0xde,0x63,0x87,0x3,0x24,0xb9,0x92,0x95,0x7,0xa,0xb4,0xa7,0x3a,0x9e,0xca,0x3,
+  0x3d,0xfd,0xeb,0x80,0x5d,0x0,0x6c,0xcb,0x16,0xda,0xf2,0x6c,0xe7,0x94,0xe5,0xc9,
+  0xcc,0xa0,0xac,0xb1,0x17,0xc0,0xf0,0xb8,0xb3,0x6b,0xc7,0xa1,0x9b,0xef,0x3e,0x8,
+  0x1c,0xf8,0xc6,0x9f,0xae,0xe9,0xe9,0x5f,0xd7,0x5d,0x93,0xc9,0x2c,0xb9,0x9a,0x8f,
+  0xdd,0x17,0x6d,0x89,0xc0,0x46,0xde,0x76,0x65,0x82,0x4d,0x4b,0x8e,0x91,0x64,0x3f,
+  0x2b,0x1f,0x15,0x6f,0x1c,0xd1,0xf,0x6f,0xee,0x1c,0xf8,0xee,0x7d,0x19,0xa7,0xe2,
+  0xc8,0xda,0x87,0x61,0x18,0x3c,0x95,0x8a,0x7f,0xac,0x66,0x74,0xd4,0x4f,0x71,0x5,
+  0xdf,0xf8,0x64,0xb5,0xe9,0x5c,0x97,0x94,0x9f,0xb1,0xad,0xc5,0x0,0x3c,0xcf,0x37,
+  0xc,0x43,0x56,0x98,0xc5,0xcf,0x1b,0x79,0x7b,0xba,0x4d,0x74,0xcb,0xe5,0xf2,0xfe,
+  0xfd,0x7b,0xdf,0xf2,0x86,0x2d,0xaa,0x6e,0xaa,0x9a,0xa9,0x68,0x9a,0xa2,0xa8,0x20,
+  0x84,0x1,0x60,0x14,0x14,0x20,0x8c,0x31,0x84,0x41,0xc8,0xc0,0x14,0x55,0xd5,0x54,
+  0x85,0x31,0x25,0x8,0xfc,0x90,0xa8,0x51,0x66,0x99,0x96,0x6c,0x8f,0x92,0x1d,0x89,
+  0x83,0x37,0x29,0x93,0x27,0x50,0x2e,0x20,0xd1,0xa,0x45,0x81,0x6e,0xc0,0xb2,0xc1,
+  0x0,0xc3,0x86,0xa2,0x56,0xf3,0xd,0xa0,0x80,0x10,0xd0,0x10,0x9e,0xb,0xc6,0xc2,
+  0x88,0x1c,0x3e,0xea,0x6a,0xd0,0x32,0x56,0x14,0x8d,0x1e,0xf2,0x93,0x99,0x72,0xa0,
+  0x6,0x41,0x39,0x6d,0x30,0x1a,0x2a,0x45,0x96,0x6a,0x57,0x8b,0x1,0x49,0xa8,0x6a,
+  0xf4,0xb3,0x3d,0x7e,0xcb,0xf2,0x74,0x4f,0x4f,0xcf,0xe8,0xe8,0xe8,0x3d,0xf7,0xdc,
+  0x73,0xe9,0xa5,0x97,0x6e,0xda,0xb4,0x89,0x87,0x22,0xb,0x2b,0x31,0xdf,0xca,0x32,
+  0x96,0xb3,0xd7,0x30,0xc,0xa1,0x30,0x8b,0x83,0x65,0x3c,0x47,0xde,0x62,0x9e,0x16,
+  0x66,0xfe,0xc2,0x96,0xf5,0x37,0x47,0xab,0xd2,0xac,0x55,0x79,0x94,0x24,0x2f,0x80,
+  0xa4,0xdc,0x66,0xe5,0xbc,0xfb,0x5a,0xd1,0x29,0x3e,0x92,0x1a,0xdf,0xfd,0x42,0x87,
+  0x14,0x8c,0x3d,0x3e,0x1e,0xee,0x3e,0x10,0xdd,0x7c,0xf7,0x1d,0xf2,0x61,0xb2,0xfe,
+  0x4c,0x92,0xfd,0x42,0xea,0x9e,0x2a,0x62,0x99,0x49,0xf3,0xf9,0x49,0x2c,0x59,0xcf,
+  0x71,0x2a,0xc5,0xe2,0xd4,0xf9,0x2b,0x59,0x6f,0xa7,0xc6,0xca,0xa8,0xbb,0x2b,0xe9,
+  0xd5,0x43,0x92,0xfd,0x67,0xad,0xa6,0x8f,0xec,0x3a,0x1,0x20,0x46,0x60,0xce,0x5e,
+  0xc1,0x5b,0xb1,0xbf,0xa9,0x62,0x82,0x66,0xbe,0x74,0x96,0x5c,0xed,0xb8,0xa3,0x76,
+  0x2d,0x28,0x55,0x98,0xa9,0xe4,0x52,0xb8,0xb1,0x7,0x3c,0xdd,0x78,0xb,0xa0,0x50,
+  0x28,0x4c,0xe5,0x47,0xd6,0xad,0x79,0x93,0xa2,0xe8,0x44,0xd5,0x8,0x8,0x21,0x1a,
+  0xaa,0xeb,0x80,0xf0,0x2d,0x21,0x8c,0x29,0x8a,0xa,0x50,0xa2,0x21,0x8c,0x42,0xc6,
+  0x28,0x21,0xa0,0x8c,0x1,0x6a,0xa4,0x18,0xb4,0xf3,0x4c,0x4a,0x58,0x6a,0xef,0x7f,
+  0x29,0xbe,0x87,0xa4,0x2,0xc3,0x6,0xa5,0x20,0x7c,0xe,0xa8,0x80,0x52,0xf0,0xfa,
+  0x4d,0x34,0xaa,0x26,0x9,0xa9,0x1a,0xd,0xfc,0xdc,0x89,0x49,0x36,0x31,0x91,0xb1,
+  0x92,0x98,0x38,0x62,0x9b,0xfa,0x84,0x67,0x24,0x55,0x9f,0x32,0xaa,0xb3,0x20,0xaf,
+  0x64,0xfd,0x72,0xc5,0x34,0x23,0x27,0xa,0xc7,0xa,0xce,0xb1,0x2,0x96,0x67,0xb3,
+  0x23,0x23,0x23,0x8f,0x3c,0xf2,0xc8,0xf9,0xe7,0x9f,0xbf,0x61,0xc3,0x6,0x48,0x6b,
+  0x8,0x89,0x69,0x2d,0xe7,0xad,0x50,0x92,0x85,0x86,0x2c,0xeb,0xc9,0x31,0xf6,0x3e,
+  0x47,0x55,0x19,0xd5,0x27,0x9c,0x7,0x9a,0x5a,0x80,0xf8,0x18,0x3d,0x3c,0x61,0xa3,
+  0xde,0xa4,0xd4,0x58,0x63,0x9d,0xf,0xfd,0xb9,0x47,0xf,0x3f,0xc3,0xd,0x77,0x8d,
+  0x7d,0xee,0x9b,0xbf,0xba,0xf9,0xee,0x83,0x4d,0xbf,0x85,0xc4,0xf0,0x93,0xa2,0xb1,
+  0x6e,0x9b,0xbc,0x47,0xfe,0x6a,0x8e,0x33,0x34,0x26,0xeb,0x9,0xde,0xca,0x37,0x23,
+  0x4b,0x5d,0x71,0xb7,0x9b,0x57,0x29,0xa8,0x25,0x63,0x70,0xd3,0x15,0xcf,0xa6,0x2,
+  0xe0,0xfb,0xf1,0x59,0x3a,0x7,0xbf,0x1c,0x7f,0x73,0xf3,0x3d,0xb2,0xc2,0x3c,0xdb,
+  0xe3,0x37,0x55,0x6d,0x4e,0x43,0xae,0xc6,0xb0,0x77,0xef,0xee,0x25,0x8b,0x52,0xed,
+  0xed,0x59,0x45,0x35,0x89,0xa2,0x10,0xa2,0x10,0x10,0x30,0x0,0xa4,0x66,0x25,0x6,
+  0x21,0xaa,0xaa,0xa8,0xaa,0xa2,0xa9,0x9a,0xa6,0x69,0x6,0x23,0x8c,0x29,0x4,0xe0,
+  0xc2,0x4a,0x5,0x51,0xa2,0xf6,0xd5,0xa5,0x33,0xff,0x7,0xf5,0x42,0x4c,0x1c,0x7,
+  0xd,0xa1,0x19,0xd5,0x4,0x20,0x2b,0x51,0xb5,0x60,0xa9,0x3a,0x74,0x1d,0x51,0x80,
+  0xd2,0x4,0xca,0x53,0x13,0xb9,0xe8,0x78,0x5e,0xa3,0xaa,0x99,0x61,0x45,0xc5,0x2f,
+  0x79,0x44,0xa7,0x51,0x60,0xba,0x93,0x59,0xcd,0x2d,0x19,0x8b,0xe8,0xf4,0x54,0x6b,
+  0x42,0xf,0x89,0xe6,0x97,0xa,0xf7,0x1c,0x9,0x93,0xe9,0x96,0x72,0xb9,0xfc,0xcb,
+  0x5f,0xfe,0xf2,0x92,0x4b,0x2e,0x39,0xeb,0xac,0xb3,0x84,0xde,0xdb,0x68,0x8b,0x6a,
+  0x9c,0xd9,0xca,0xe,0x21,0x79,0x96,0x1b,0xb3,0x2d,0x3f,0x97,0xe,0x3c,0xb9,0xd4,
+  0xd,0x82,0xa0,0xd1,0xc2,0x6c,0x87,0x3,0xc0,0x4a,0x0,0xbc,0x26,0xb3,0x3c,0xa4,
+  0x62,0x52,0x57,0x3e,0x8f,0x3c,0x9e,0x84,0x6d,0x59,0xb6,0x9d,0x1e,0x9e,0xb0,0x7b,
+  0x7a,0x6c,0x7e,0xce,0xc3,0x13,0xf6,0x8a,0xe,0x67,0xd5,0xf2,0xee,0xb,0xce,0xea,
+  0xe5,0x3f,0x11,0xdc,0x18,0x9,0xd7,0x0,0x27,0xe4,0x93,0x73,0x8d,0x51,0x84,0xfb,
+  0x89,0x9d,0xb1,0x7b,0x98,0xcd,0x6b,0x82,0x6,0xad,0x32,0x98,0x65,0xc1,0xb4,0x9e,
+  0xc4,0x89,0xde,0xce,0x5e,0xd4,0x13,0x55,0x36,0x8c,0x43,0x92,0xc3,0xe7,0xad,0x64,
+  0x77,0x3e,0x96,0xe7,0x1d,0xb2,0x65,0xe3,0x92,0xc5,0x2d,0x14,0xc0,0xe8,0x14,0x39,
+  0x3a,0xc1,0x7c,0xdf,0xe7,0x31,0x8c,0x32,0xf1,0x78,0x3f,0xcf,0xf6,0x36,0x39,0x3e,
+  0x1e,0xf2,0x57,0x46,0xc3,0x43,0x55,0x5e,0x8e,0xcb,0x35,0xfd,0xfc,0xf6,0xdb,0x5e,
+  0x7b,0xe1,0x9a,0x44,0xc2,0x56,0x14,0x55,0xe1,0x9a,0x2d,0x23,0xd5,0x20,0x2a,0xc6,
+  0xc0,0x8,0x40,0xa1,0x28,0x20,0x2c,0xc,0x2,0x45,0x51,0x54,0x42,0x74,0x55,0x1,
+  0x8d,0x22,0x42,0xc1,0x7c,0xe6,0x97,0x15,0x35,0x64,0x20,0x51,0x76,0xb9,0xb3,0xe4,
+  0x2,0x2b,0xbf,0x5b,0x8d,0x22,0x68,0x14,0x61,0x0,0x12,0x82,0x1,0x34,0x2,0x28,
+  0xc2,0x0,0x61,0xc0,0xcc,0x44,0x98,0xc8,0x1e,0x1b,0xf1,0xc7,0x8f,0x8d,0x74,0xb5,
+  0x27,0xe8,0x78,0x41,0x33,0x4d,0x97,0x58,0x95,0xc8,0xe8,0x50,0xa7,0x48,0x48,0x7d,
+  0x35,0xcd,0x2a,0x53,0x61,0x44,0x3b,0x58,0xb9,0x58,0xcc,0xeb,0x66,0xe2,0xae,0x3d,
+  0x25,0xa8,0xc9,0x3d,0x7b,0xf6,0xbc,0xe9,0x4d,0x6f,0x3a,0xe3,0x8c,0x33,0xc4,0xd4,
+  0x54,0x88,0x50,0x61,0x8e,0x32,0xc,0x83,0x6f,0x79,0x43,0x36,0x53,0x35,0x6,0x60,
+  0x3c,0x5f,0x22,0x17,0xf3,0xf7,0xeb,0x42,0x52,0x98,0x3d,0xcf,0x87,0xd9,0xcf,0x77,
+  0x72,0xa9,0x2b,0xb0,0xa2,0xc3,0x29,0x34,0x59,0x1c,0x7c,0x6,0x73,0xbb,0x70,0xae,
+  0xff,0xfd,0x6a,0x12,0xb9,0x34,0xf5,0xed,0x15,0xdf,0xa,0x6e,0xfc,0xfc,0xde,0x3d,
+  0xbc,0x9e,0x8e,0x6c,0x9,0x6b,0x3c,0x7f,0x2c,0x2c,0x81,0xd3,0x3b,0x9f,0xcf,0xcb,
+  0xab,0x99,0xf1,0x58,0xe,0xf9,0x30,0x99,0x39,0x31,0xde,0x76,0x65,0x82,0xcd,0xab,
+  0x7a,0x63,0x37,0x23,0x8,0xbc,0xfd,0xc4,0x32,0x2e,0x69,0xc5,0x4e,0xbe,0xc0,0x57,
+  0x2e,0x97,0xbb,0xf2,0xfc,0xb6,0xcd,0xab,0x14,0xae,0xe3,0xf4,0x76,0x62,0xf3,0x2a,
+  0xdc,0xb6,0x5d,0x2d,0x16,0xa7,0x32,0x99,0x16,0xf9,0x5a,0x8d,0x3a,0xf3,0xdc,0x8e,
+  0xf4,0xda,0x23,0x9c,0x5a,0xd8,0xf3,0xe9,0x80,0xf1,0xf1,0xf1,0xdd,0xbb,0x9e,0xfc,
+  0xa3,0xf7,0xbd,0x5e,0x21,0x2a,0x2f,0x58,0x41,0x0,0x10,0x6,0xc2,0xaa,0x82,0x17,
+  0xc,0x20,0x88,0x22,0xca,0xa8,0xef,0x79,0x8a,0xa6,0x29,0x44,0x23,0x44,0x65,0x4a,
+  0x8,0xa,0x2,0x45,0x51,0x82,0xea,0x51,0x8a,0xe6,0x2f,0x7d,0xd,0x99,0x1e,0xb3,
+  0x47,0x7,0x48,0x47,0x37,0x54,0x15,0x7e,0x0,0xd3,0x4,0x21,0xd0,0x2c,0xd8,0x69,
+  0xa8,0xfa,0xe4,0x64,0xe9,0xd8,0xf1,0x51,0x77,0xaa,0xbc,0xc8,0x8e,0xd4,0x42,0x8e,
+  0xaa,0x66,0x5,0xc9,0x80,0xb9,0x36,0x2a,0x6e,0xb9,0x92,0x4c,0x25,0x82,0x72,0xd1,
+  0xa3,0x96,0xa2,0x6a,0x85,0xa9,0x62,0xc8,0xb4,0x52,0x64,0xef,0x1f,0x1e,0xa9,0x4,
+  0xe4,0x8a,0x2b,0xae,0x58,0xb1,0x62,0x85,0x6c,0x55,0x6a,0x54,0x92,0x1b,0xed,0xc9,
+  0xb2,0x37,0xa8,0xd1,0x4c,0xf5,0xdc,0x49,0xcb,0x31,0x5f,0x85,0xb9,0x59,0x34,0x15,
+  0x50,0x93,0xba,0x2,0x5,0xda,0x13,0x53,0x98,0x79,0x24,0x16,0xf,0x75,0x8a,0x25,
+  0xc1,0x81,0x17,0xf5,0x4f,0xd4,0xc9,0x4f,0x8e,0x98,0x1c,0x93,0xf1,0x8d,0x9b,0x86,
+  0xf8,0x4a,0xdc,0x8d,0xd5,0x36,0xa4,0xf4,0x3a,0x27,0x16,0x68,0xc9,0x51,0x28,0x14,
+  0x0,0x14,0xa,0x85,0x58,0xa,0x21,0x1a,0x92,0xe3,0xa2,0xfa,0xa,0xe6,0x5c,0xbf,
+  0x15,0xcc,0x6c,0xc4,0xe7,0x6e,0x2c,0xfd,0xeb,0xf,0x7f,0xf9,0x8b,0x7,0xe,0xcd,
+  0x76,0x40,0x23,0xb8,0x73,0xcb,0x71,0x2a,0xe2,0x66,0x4,0xc4,0xd5,0xe7,0x16,0xa7,
+  0xc2,0x39,0x34,0xff,0x8b,0x9e,0x26,0xf8,0xc5,0x2f,0x7e,0x91,0x4e,0xd9,0x67,0xac,
+  0xea,0x5,0x28,0x27,0x29,0x40,0x80,0x8,0xe0,0x2f,0x7e,0x2,0x42,0x40,0xc0,0x14,
+  0x15,0xa,0x88,0xaa,0x79,0xae,0xe3,0xb8,0x65,0x4a,0x43,0x30,0x0,0xc,0x4,0xd5,
+  0xe9,0x31,0x0,0x1a,0x46,0x5a,0xa2,0xb2,0xea,0x6a,0x9f,0xb4,0xb2,0x89,0x21,0x38,
+  0x15,0x66,0x27,0x99,0x95,0x61,0xa9,0xe,0x58,0x69,0x68,0x46,0xae,0x30,0xbd,0x77,
+  0xcf,0xf0,0xb1,0x23,0xe3,0x49,0x5a,0x2c,0xba,0x74,0xca,0x83,0x91,0x6a,0x8d,0x7c,
+  0x57,0x53,0x99,0xe2,0x14,0x52,0x16,0xf5,0x82,0x30,0x52,0xad,0x29,0x66,0xb5,0xaa,
+  0x15,0xd7,0x6a,0xcb,0x66,0xac,0xff,0x7c,0xb4,0x7c,0x64,0x22,0x78,0xeb,0x5b,0xdf,
+  0xba,0x6a,0xd5,0x2a,0x4d,0xd3,0x38,0xdf,0x4,0x27,0x63,0x8c,0x95,0x3f,0xca,0x26,
+  0xab,0xa6,0x16,0xa9,0xe7,0x4b,0xe4,0xe2,0x59,0x5b,0x98,0x79,0x48,0x6,0x44,0xe2,
+  0xae,0x84,0x6c,0x36,0xeb,0xb8,0x4e,0x2b,0xe2,0xf2,0x84,0xab,0xa3,0x8d,0x52,0x77,
+  0x3c,0xec,0xab,0xd5,0xbd,0x3e,0x39,0x7e,0xf1,0xc0,0x21,0xc0,0xc2,0x2c,0x2b,0xee,
+  0xa0,0xa1,0x96,0xa2,0x1c,0x11,0x51,0x3b,0xa0,0xae,0xc,0x45,0x63,0xa,0x21,0xea,
+  0x17,0x3a,0x13,0x8a,0xfd,0xb5,0x9b,0x66,0xbd,0xc9,0x5f,0x3c,0x70,0x88,0xc7,0xa2,
+  0xdc,0x7c,0xf7,0xc1,0x6c,0xc6,0x14,0x1a,0xfe,0x89,0x52,0x1b,0xd0,0x9c,0x57,0x6a,
+  0xe5,0x69,0xa0,0x9b,0xab,0xcd,0xf2,0xcd,0x37,0x46,0xad,0xcc,0xde,0x19,0x78,0xd1,
+  0xc,0xec,0xcf,0x2f,0x82,0x20,0xf8,0xd9,0xcf,0x7e,0xf6,0xc6,0x2b,0x2f,0xd0,0x55,
+  0x85,0x31,0x80,0x30,0x44,0x84,0x28,0x0,0x51,0xc0,0x8,0x8,0x5,0x18,0x61,0xc,
+  0x50,0x18,0x8b,0x8,0x83,0xa9,0x6b,0x4,0xaa,0xef,0x87,0x61,0x44,0x69,0x8,0x5d,
+  0xa5,0xa0,0xe,0x8,0x65,0x81,0x47,0xa0,0x46,0x44,0x9,0x7d,0x3f,0x52,0x92,0xd1,
+  0xaa,0x37,0x66,0xe,0xde,0x6c,0xb9,0x65,0xc2,0x28,0x4b,0x84,0x8,0x2d,0x66,0x5a,
+  0xc5,0x92,0xff,0xd8,0x23,0x87,0x87,0xf3,0x74,0x75,0xbb,0xa2,0x69,0x5a,0xae,0x50,
+  0xe9,0xe8,0xea,0xc,0x2,0x9f,0x6a,0x76,0x34,0x75,0x82,0x41,0x4b,0x99,0xfa,0xd4,
+  0xa4,0x57,0xd6,0x5b,0xad,0x60,0x6a,0x4a,0xd1,0x53,0x2c,0xf7,0xed,0x1d,0xe6,0x8f,
+  0x76,0xd2,0xeb,0xde,0xf3,0xfb,0x5d,0x5d,0x5d,0x0,0x84,0xcc,0x94,0x27,0xb1,0x7a,
+  0x33,0x8,0xb,0xb3,0x1c,0x7d,0xd1,0x68,0x58,0x7e,0xb1,0xa5,0x6e,0xf3,0x2f,0xac,
+  0x9e,0xd8,0x8e,0x15,0x9d,0x6e,0x2e,0x97,0xe3,0xa9,0x30,0x8d,0x96,0x98,0xa6,0xd3,
+  0x66,0x81,0x27,0xe,0xd2,0x1f,0xde,0xfc,0xe8,0xf1,0xf1,0x59,0x73,0x6e,0x7f,0xf1,
+  0xc0,0xa1,0xc7,0xf,0x54,0x50,0x73,0x3e,0x71,0xbf,0x48,0xe3,0x61,0x42,0xc6,0xe6,
+  0xf3,0x39,0x1e,0xd8,0xe4,0xba,0x8e,0xeb,0x3a,0x3c,0x52,0x82,0x7,0x4b,0x88,0xb0,
+  0x27,0x21,0x8a,0xe5,0xc,0x7e,0x48,0xaf,0x0,0xfe,0x73,0x1e,0x34,0x32,0x1b,0x64,
+  0xbb,0xda,0x9d,0x8f,0xe5,0xc5,0x23,0xc,0xd,0xf,0xf1,0xc6,0xe3,0x87,0xe2,0xff,
+  0x2d,0x47,0xeb,0xe7,0x86,0xab,0x98,0xe0,0x95,0x4b,0x31,0xcb,0xbd,0xd4,0x94,0xa5,
+  0x22,0x4e,0x43,0xfe,0xed,0x69,0xe8,0xbf,0x8d,0xe1,0xd0,0xa1,0x43,0xc7,0x8f,0x1f,
+  0xfb,0xad,0x6b,0xb6,0x82,0x28,0x84,0x28,0x50,0xf8,0x5a,0xef,0x3c,0x55,0x88,0x10,
+  0x28,0x84,0x13,0x9a,0x46,0x60,0x0,0x23,0x8c,0x52,0x85,0x31,0x95,0xb9,0xa0,0xa1,
+  0x42,0x28,0xa8,0x47,0x58,0xc8,0x28,0x28,0xb4,0x20,0x64,0x5e,0xd9,0xd,0x7d,0x3f,
+  0xf4,0x2,0x47,0x6d,0xc9,0xf7,0xbe,0x3e,0x9a,0x2e,0x21,0xf4,0x49,0xba,0x3,0x76,
+  0xba,0xe2,0xb2,0x3,0xfb,0x47,0x86,0x8a,0x6a,0x4f,0x77,0xb6,0xc5,0x8,0x83,0x20,
+  0xc8,0xb4,0x66,0x40,0x69,0x64,0xb7,0x30,0xa7,0x68,0x4,0x65,0x9d,0xb0,0xe2,0x74,
+  0x18,0x52,0xa2,0x79,0x53,0x89,0x74,0xca,0xf,0xa3,0x7f,0xf8,0x4d,0xf8,0x2f,0xf,
+  0x7,0x97,0x5d,0x71,0xd5,0xe2,0xc5,0x8b,0xb9,0x13,0xa8,0x51,0xde,0xca,0x73,0x5a,
+  0x59,0x79,0x6e,0xb4,0x4e,0x29,0xd,0x39,0x6,0xcf,0x17,0x6f,0xf1,0xac,0xe7,0xba,
+  0xd5,0x91,0xe4,0xe,0x1,0x80,0xd5,0x3,0x77,0x88,0x6f,0xb3,0x19,0x13,0xa8,0x38,
+  0xae,0x63,0x7b,0x76,0x93,0xa4,0xfc,0xda,0x5b,0xa0,0x69,0x74,0x6e,0x54,0x19,0x3e,
+  0x3c,0x61,0xdf,0xff,0xcd,0x5f,0xf5,0xf4,0x74,0xf3,0x9a,0x1b,0x8e,0xd6,0xdf,0x93,
+  0x38,0x31,0x1e,0xf6,0x75,0x6a,0x83,0x7b,0x86,0x12,0x8e,0x6b,0xf5,0x74,0xb7,0xc5,
+  0x12,0x80,0xb9,0xd8,0x94,0xa3,0x85,0x85,0x9c,0x14,0xcb,0x79,0x3,0xd8,0x76,0xa6,
+  0x5e,0xb5,0xf1,0x58,0x3d,0xc7,0x8f,0xd,0xee,0x3c,0x66,0x16,0x8b,0x53,0x22,0xfb,
+  0xbf,0x50,0x28,0x8,0xe7,0xaa,0xac,0x69,0xf3,0xf3,0x94,0x4a,0xd3,0xbd,0x3c,0x15,
+  0x59,0x7a,0x52,0xf1,0xf1,0xd1,0xa7,0x8e,0xf3,0xe3,0x45,0x24,0xd9,0x77,0x7f,0xb6,
+  0xef,0x7d,0xff,0xeb,0xea,0x45,0xe6,0x90,0x78,0xb4,0x5c,0x2e,0xf7,0xe8,0x53,0xec,
+  0x82,0xb,0xb6,0x88,0x1f,0x7a,0xde,0x41,0x1e,0x11,0x15,0x13,0xbc,0x68,0x98,0xa2,
+  0x73,0x78,0x9e,0xf,0xe8,0xfc,0x8a,0x4d,0x8d,0x55,0x2f,0x23,0x3c,0xfe,0xf8,0xe3,
+  0x1b,0xd7,0xf5,0xf4,0xf6,0x2e,0x26,0x8a,0x4a,0x54,0x83,0x70,0x65,0xb2,0xaa,0x33,
+  0x33,0x30,0x5,0x2c,0x62,0x0,0x3,0x5,0x3,0xa3,0x21,0x63,0x11,0xd,0x1d,0x46,
+  0x5d,0x44,0x84,0x30,0x80,0x4,0x0,0xa5,0x61,0x18,0xd1,0xd0,0xf7,0x83,0xc0,0xa7,
+  0x84,0x82,0x22,0x8c,0x7c,0xe6,0x92,0x4e,0x7f,0xd9,0xdb,0xfb,0x9f,0xf9,0x37,0x74,
+  0x2c,0xb,0x34,0xeb,0x89,0x47,0x8e,0x24,0x5a,0xb3,0x4b,0x96,0xa4,0xdb,0xd8,0x84,
+  0x4a,0x48,0xae,0x18,0x76,0xf6,0xa5,0x35,0xbf,0x82,0x72,0xce,0x8,0xa6,0x3,0x20,
+  0x69,0x5b,0xbb,0x8f,0x14,0x5a,0x5b,0x12,0xba,0x95,0x50,0x40,0xbe,0xf3,0x70,0xf9,
+  0x27,0xbb,0x95,0xb7,0xbd,0xe3,0x1d,0xc9,0x64,0x12,0x52,0x5e,0x81,0x6c,0x97,0x92,
+  0xad,0xca,0x1c,0x22,0xc,0xa3,0xd1,0x7f,0x2b,0x9b,0xa6,0x9e,0xbb,0x49,0x39,0x86,
+  0x53,0x48,0xfa,0xab,0x11,0x43,0xa,0x84,0xb0,0x7a,0x80,0x43,0xf2,0x68,0x1e,0xf,
+  0xfb,0x9a,0x66,0xe1,0xcb,0x90,0x3,0xb3,0x66,0xce,0xe3,0xe,0x1d,0xce,0xb7,0x3,
+  0x79,0x4e,0x0,0x2e,0x5d,0x81,0xbd,0x7b,0x0,0x80,0x1b,0x69,0x1d,0xdb,0xb2,0x65,
+  0xde,0xca,0x5,0xae,0x64,0xde,0x2,0xd8,0xb8,0xb2,0x65,0x91,0x39,0x74,0xe3,0xbd,
+  0x55,0xc7,0xcc,0x59,0xab,0x5b,0x7b,0x97,0x2e,0x15,0xf7,0xd9,0xdb,0xa9,0xf5,0x2e,
+  0xed,0x7a,0x62,0xf7,0xb1,0x67,0x86,0xaa,0x1,0x4f,0xa2,0x4,0x87,0xb8,0x23,0x21,
+  0x6,0x8b,0xc5,0x29,0xd3,0x34,0x66,0xe8,0xa,0xd4,0xb1,0xb7,0x26,0x51,0x5,0x6f,
+  0x1,0x64,0xb3,0xd9,0x81,0x3,0x8f,0xf8,0x4b,0xba,0xb2,0xd9,0xac,0x98,0xf9,0x8f,
+  0x87,0x7d,0x33,0x3f,0x74,0x87,0x5a,0xd5,0xe1,0x1c,0x2c,0x1e,0x55,0xc2,0x6b,0x29,
+  0xbb,0xf5,0x15,0x98,0x9b,0xab,0xca,0xf5,0x97,0x6,0x10,0x63,0xfe,0x8b,0x99,0xfc,
+  0xf8,0xec,0xe0,0xba,0xee,0xce,0x9d,0x3b,0xaf,0x79,0xfd,0x16,0x42,0x54,0x55,0xb5,
+  0x14,0x45,0x55,0x14,0x15,0x0,0x18,0x9f,0xba,0x32,0x0,0x94,0x31,0xc6,0x42,0x30,
+  0x4a,0x19,0x18,0xd,0xa3,0xd0,0x8b,0x68,0x40,0xa3,0x50,0x61,0x11,0x0,0x30,0xf0,
+  0x15,0x41,0x2,0x3f,0xa,0xbd,0x30,0xa,0x29,0x0,0x16,0xb1,0x30,0x62,0x34,0xa2,
+  0x45,0x92,0x9d,0x4c,0xad,0xb1,0x26,0x73,0x4f,0x8f,0x30,0x96,0x48,0x57,0xbc,0x70,
+  0xb1,0x19,0x84,0xe5,0xb0,0xe4,0x78,0xd9,0xa4,0x46,0x9d,0x92,0x9e,0xce,0xb0,0xe3,
+  0x7b,0x74,0x25,0x52,0xac,0xc4,0x44,0x99,0x66,0x52,0x9a,0xa6,0x40,0xd5,0xf5,0xaf,
+  0xdd,0x33,0x71,0xd7,0x60,0xe6,0xb7,0x7f,0xe7,0x8d,0xc9,0x64,0x52,0xa9,0xa5,0xda,
+  0x36,0xd5,0x93,0x63,0x96,0x64,0xd9,0x34,0x25,0xbb,0x82,0xe4,0xcc,0x84,0xe7,0x57,
+  0xde,0x72,0xcc,0x37,0x10,0x52,0xb4,0x2d,0xcb,0x96,0xe3,0xfb,0x3a,0xbb,0x96,0xcf,
+  0xc8,0x22,0xa0,0x53,0x7b,0x4,0xb3,0x2f,0x66,0xc5,0x21,0xe7,0xc4,0x54,0x25,0xb3,
+  0x3b,0x4,0xab,0xa7,0x55,0xbd,0xaf,0xf1,0x60,0x6e,0x91,0x42,0x6d,0x11,0x77,0x7e,
+  0x7c,0x5b,0x5b,0x3b,0xea,0xab,0x6d,0xc8,0xf2,0xf6,0xf2,0x33,0xa7,0x1,0xc0,0xea,
+  0xc9,0xe5,0x1e,0xe5,0x67,0x88,0x9b,0x97,0xac,0x1e,0xb8,0x43,0x9b,0x57,0x29,0x4f,
+  0x3d,0xe3,0x0,0x10,0x19,0xfc,0xf5,0x59,0x3e,0xd5,0xf7,0x94,0xe7,0xf9,0xab,0x7b,
+  0xcc,0x19,0xce,0xf0,0x39,0x82,0x44,0xa1,0x5d,0xbb,0x76,0xb,0xde,0xf2,0xbb,0x75,
+  0x5c,0x67,0xcf,0x50,0x62,0x3c,0x34,0xf9,0x1e,0xce,0xde,0x4e,0x6d,0x10,0xe8,0x15,
+  0x37,0x70,0xa2,0x94,0x13,0x99,0xba,0x90,0x72,0x6e,0xe5,0x44,0x2,0x71,0x33,0xbc,
+  0xc3,0x3d,0xa5,0x13,0x56,0x82,0x5f,0x3a,0x9b,0xad,0xa6,0x39,0x88,0xd7,0xa8,0xeb,
+  0xba,0x6d,0x6d,0x33,0x8b,0xb0,0x9d,0xb6,0xc8,0xe7,0xf3,0xc3,0xc7,0xf,0x9f,0xff,
+  0x7f,0x2e,0x21,0xaa,0xa6,0xa8,0x3a,0x81,0x6,0xa6,0x82,0x80,0xbb,0x71,0xc1,0x18,
+  0x65,0x11,0xa3,0x21,0x8,0xa5,0x51,0x44,0x59,0x44,0x69,0x40,0x43,0x37,0xa,0x3,
+  0xbe,0x8a,0x0,0x65,0x14,0x94,0x45,0x61,0x14,0xf8,0x61,0xe8,0x87,0x61,0x48,0xc1,
+  0x18,0x3,0x8b,0xf8,0x2,0x7a,0x51,0x14,0x84,0xd1,0x89,0xc4,0x26,0x65,0xe8,0x31,
+  0x4,0x51,0x7b,0x3a,0x9d,0x1f,0x19,0x9,0x53,0x2d,0x1d,0x9,0x56,0xf2,0x3,0x8b,
+  0x3a,0x4a,0xeb,0x2a,0xad,0x74,0xdc,0xd,0xbc,0xbc,0xd9,0x92,0x30,0xed,0xd2,0x74,
+  0x29,0x93,0x4c,0x39,0x4c,0xfb,0xec,0xcd,0xc3,0x4f,0x4d,0xb6,0xbc,0xee,0x8a,0xd7,
+  0xb7,0xb4,0xb4,0x28,0xf5,0x49,0x7c,0x42,0xa8,0xc6,0x78,0xcb,0xbd,0x41,0x72,0x9a,
+  0x41,0x2c,0xf4,0x42,0x7d,0x9e,0x2a,0xc8,0xcd,0x86,0xf9,0x9e,0x51,0x36,0x9f,0x54,
+  0xa7,0x58,0x56,0xf,0xdc,0xa1,0xc5,0x2d,0x54,0x1e,0xc7,0x3c,0xa9,0x65,0xb6,0xc5,
+  0xac,0xd0,0x2c,0x8b,0x45,0x24,0xdf,0x76,0x76,0x2d,0x97,0xf7,0x67,0xb3,0xd9,0x9e,
+  0xee,0x1e,0x2e,0x69,0x5b,0xdb,0x5a,0xd2,0xe9,0x54,0x26,0xd3,0x62,0x59,0xb6,0xe0,
+  0x6d,0xe3,0xc9,0xb9,0x7e,0x3b,0xe6,0xf5,0x88,0xfb,0xb1,0x2d,0xfb,0x1d,0x97,0xda,
+  0x8d,0x73,0x72,0x58,0x3d,0xb0,0x7a,0xce,0x5a,0xdd,0x1a,0x9b,0x70,0x42,0xb2,0x6c,
+  0x55,0x2b,0x63,0x55,0x9c,0xd6,0xb6,0x7a,0x53,0x9c,0x44,0xe3,0x27,0xe,0xce,0xb8,
+  0xc2,0xc4,0x5b,0x86,0x3b,0x72,0xc7,0x46,0xc7,0xc5,0x7e,0x0,0x6a,0xa2,0xbb,0x8e,
+  0xfc,0xb1,0xce,0xac,0xa1,0xc5,0x28,0xc5,0xc,0xce,0xc2,0x64,0x60,0xd2,0x71,0x71,
+  0x69,0xd3,0x34,0x44,0xa1,0xc,0xe9,0xf1,0xe7,0xb5,0xee,0xf1,0x4b,0x8b,0x81,0x81,
+  0x81,0x84,0xc5,0x3a,0x3b,0x5a,0x8,0x51,0x88,0xa2,0x12,0x55,0xe5,0x1e,0x1e,0x54,
+  0x17,0xf5,0xa0,0x2c,0xf2,0x19,0x8b,0x68,0x14,0x31,0x16,0xd1,0xd0,0xa3,0x81,0x13,
+  0x85,0x3e,0xa3,0x21,0x58,0xc4,0x18,0x65,0x11,0x8d,0xc2,0xd0,0xf,0x83,0x20,0x8,
+  0x23,0x1a,0xd1,0x88,0xd2,0x90,0x82,0x52,0x2,0x16,0x45,0x2c,0x8,0x29,0xd,0x82,
+  0xb2,0x92,0x3e,0x56,0xb1,0xc,0x16,0xe0,0xd8,0x8e,0x8c,0xc5,0x8a,0x4e,0x40,0x43,
+  0xdf,0x24,0x74,0x4a,0xeb,0x4c,0x87,0x93,0x5a,0x79,0x3c,0x47,0xda,0xcc,0xb6,0xce,
+  0x52,0xb1,0x6c,0x6b,0x81,0x92,0x6a,0xfd,0xf4,0xad,0xb9,0xa7,0xf2,0x6d,0x6f,0x7e,
+  0xeb,0xdb,0xda,0xdb,0xdb,0x85,0x8a,0x2b,0x42,0x2f,0x74,0x29,0xb6,0x51,0x70,0x55,
+  0x10,0x58,0x1c,0xa0,0x4a,0x99,0xf4,0xb2,0x61,0x99,0xe3,0x85,0xe8,0xc9,0xf9,0x9e,
+  0x54,0x1e,0x16,0x33,0x13,0x5d,0x3e,0xa,0xe5,0x6d,0xfc,0x57,0x4d,0xec,0xab,0x72,
+  0x6d,0xe7,0xea,0x2e,0xab,0x7,0x35,0xd7,0x4b,0xb6,0x86,0xea,0x31,0xf5,0x1a,0xb2,
+  0x88,0xf8,0x6d,0x2c,0x70,0x25,0xf4,0xdb,0xd2,0x74,0x45,0xdc,0xdb,0x7b,0xde,0x90,
+  0xad,0x93,0x93,0xe2,0x3e,0xdd,0x21,0x0,0x8b,0x5b,0x28,0x2f,0x1c,0xcd,0xc3,0x9b,
+  0x62,0xec,0x75,0x5d,0x87,0xbf,0x56,0x56,0xf6,0x24,0x9a,0x3c,0xa9,0xd5,0x3,0x60,
+  0x7c,0xe4,0x8,0x17,0xb9,0xf2,0xd,0xf3,0x2d,0xaf,0x7a,0x2b,0x14,0x10,0x1e,0x8f,
+  0x21,0xae,0xde,0xf4,0xed,0xd6,0x62,0x94,0x56,0xf6,0x24,0x7a,0xb3,0xb2,0x6b,0xba,
+  0x22,0xf4,0xe1,0xd1,0x29,0x45,0x5c,0x7a,0x59,0x7,0x41,0x6d,0xb9,0x89,0xf9,0x94,
+  0x1c,0x3a,0x7d,0x70,0xcb,0x2d,0x3f,0x3b,0xf7,0xac,0x55,0xe9,0x54,0x82,0x10,0xd,
+  0x50,0x18,0x2f,0x83,0xcc,0x73,0xf6,0x68,0x10,0x6,0x2e,0xa5,0x1,0x45,0x44,0x19,
+  0x8d,0x22,0x3f,0xa2,0x41,0x14,0xf9,0x34,0xf2,0x29,0x8d,0xa2,0x88,0x46,0x21,0xd,
+  0xc3,0x30,0x8,0x22,0x1a,0x50,0x1a,0x86,0x51,0x40,0x9,0x17,0xb5,0x21,0x8d,0x82,
+  0x80,0x85,0x61,0x14,0x84,0x1,0x65,0x94,0x68,0x15,0xa5,0xa5,0x60,0x76,0x8d,0x17,
+  0x2a,0x25,0x5f,0xeb,0x4e,0x86,0xd3,0x4e,0x60,0x1a,0x7a,0xfb,0xe2,0x45,0xd3,0xd3,
+  0xe5,0x49,0xd6,0x62,0xa4,0xd2,0x49,0xf8,0x34,0x70,0xa9,0x6a,0x7d,0xea,0xff,0x1e,
+  0x1f,0xf4,0x16,0xbd,0xf1,0x8d,0x6f,0x32,0xc,0x43,0x30,0x2d,0xa6,0x1e,0x5b,0x96,
+  0x65,0x9a,0xa6,0x50,0x8f,0x45,0xc,0x86,0xaa,0xaa,0x82,0xcc,0x82,0xc0,0x8d,0xd3,
+  0xdd,0x17,0xa8,0x27,0x15,0x61,0x90,0x9c,0xa3,0x11,0xc3,0x8c,0xd4,0x15,0x90,0x66,
+  0x5f,0x73,0x43,0xf6,0x58,0xc6,0x89,0x6d,0xf5,0xf4,0x74,0xcf,0xb8,0x85,0x1b,0x67,
+  0xb6,0xa8,0x29,0xc9,0x8d,0xa4,0x15,0xa6,0x60,0xcf,0xf3,0xb,0xf9,0x49,0x7e,0x6f,
+  0xbf,0x73,0xcd,0x5,0x75,0x26,0xa5,0xfa,0x6b,0x1,0xe8,0x5d,0xda,0x7,0x80,0xe7,
+  0xf,0x72,0xa5,0x54,0x64,0xdb,0x72,0x13,0x17,0x44,0xf6,0xa2,0xfc,0x80,0xb3,0x3c,
+  0xac,0xb8,0x61,0xfe,0x37,0xf3,0xdb,0x86,0x8,0xb3,0x31,0x2f,0xee,0xfd,0x9e,0x3,
+  0x4d,0x99,0x59,0x7d,0x11,0x48,0xae,0x5d,0x59,0x50,0x8b,0x48,0x4f,0xf9,0xe3,0xe9,
+  0xd0,0xa8,0x54,0x2a,0xf,0x3e,0x70,0xcf,0xe6,0x73,0xce,0x20,0x84,0x30,0x16,0x30,
+  0x16,0x32,0x16,0x51,0xea,0x47,0x91,0x17,0x6,0xd3,0xa1,0x57,0x8e,0xc2,0x80,0xd2,
+  0x10,0x94,0x81,0x51,0x86,0x88,0x46,0x3e,0x8d,0x2,0x4a,0x23,0x16,0x85,0x51,0x18,
+  0x55,0xd7,0x9a,0xf6,0x3,0x1a,0x52,0x42,0x1,0x4a,0x23,0x4a,0x59,0x44,0x83,0x30,
+  0x72,0x9d,0xa0,0x52,0x9,0xfc,0x20,0xa2,0x21,0xf5,0x82,0x88,0xa9,0xf6,0x48,0xae,
+  0x44,0xf4,0x84,0x4e,0xc2,0x4a,0xa8,0x2e,0x46,0xe,0x56,0x52,0x77,0x27,0x27,0xd1,
+  0x56,0xf2,0xc8,0x62,0xd3,0xa3,0x53,0x63,0x53,0xa1,0xf9,0xf1,0xff,0x1e,0x3e,0xec,
+  0x75,0xbf,0xf6,0xb5,0xaf,0xb5,0x6d,0x9b,0x10,0xc2,0x4b,0x4f,0x69,0xb5,0xd5,0x7d,
+  0x84,0x9f,0x96,0x37,0x38,0x7b,0x35,0x4d,0x33,0x4d,0x93,0x2f,0x26,0x64,0x9a,0xa6,
+  0x56,0x2b,0xda,0xaa,0xaa,0x2a,0xff,0xb9,0xa2,0x28,0xbc,0x66,0xba,0xa2,0x28,0x8d,
+  0x95,0xcc,0xe6,0xd9,0x88,0xb5,0x9b,0x1e,0xa3,0xe8,0xd,0x75,0xc,0x1b,0x1b,0x32,
+  0xea,0xcc,0x54,0xb5,0xd1,0xdf,0x54,0xe4,0xc6,0xc0,0x27,0xcc,0x6a,0x6d,0xdd,0x6d,
+  0xe,0x5e,0xd8,0xf9,0xd0,0x50,0x95,0xc3,0xaf,0x3f,0x2f,0x13,0x1b,0xe5,0x8d,0x75,
+  0x36,0x1a,0xee,0x67,0xc6,0x73,0xcb,0xd7,0x34,0x7b,0x66,0xa8,0xea,0xc8,0x59,0xc4,
+  0x5d,0xcb,0xe2,0xde,0x9a,0x51,0x6e,0x45,0xa7,0xb,0x40,0xa8,0xcd,0x7c,0xa7,0x6d,
+  0x27,0xd6,0xf6,0x65,0xf8,0xfe,0x6a,0x1d,0x2c,0xf9,0x1,0xe7,0xf1,0xb0,0xa8,0x77,
+  0xe7,0xe4,0x72,0x39,0x5e,0xe7,0x8d,0x63,0xe0,0xc0,0x23,0x4d,0xc3,0x45,0x47,0x8b,
+  0xfa,0xa1,0xa1,0xca,0xf1,0xdc,0x8c,0x51,0x50,0xac,0x6f,0xc,0x60,0xa4,0x38,0x13,
+  0x46,0x6a,0x64,0xfa,0x44,0xbb,0xb6,0x44,0x5b,0xd5,0x3c,0x2e,0x62,0x4b,0xf4,0xfa,
+  0x3c,0x84,0xd3,0xa1,0x71,0xff,0xfd,0xf7,0xd3,0x28,0xd8,0x74,0xf6,0x6a,0x80,0x32,
+  0x4a,0x69,0xe0,0xd2,0xd0,0xa3,0x41,0x25,0xa,0x2a,0x51,0xe0,0xd1,0xc8,0xe7,0x11,
+  0x1a,0x8c,0x81,0x45,0x11,0x8b,0x7c,0xc6,0x57,0xa3,0xd,0xc3,0x30,0xa4,0x41,0x10,
+  0x44,0x61,0x18,0x7a,0x11,0x61,0x8c,0x21,0xa,0x81,0x8,0x8c,0x5,0x34,0x8,0x98,
+  0x5b,0xf6,0x3c,0xc7,0xb,0xc3,0x88,0x46,0x34,0x8,0x23,0x16,0x31,0xd3,0x4e,0x97,
+  0xb,0x65,0xd3,0x4a,0xc0,0xcc,0x28,0x95,0x3c,0xb1,0x5b,0xa0,0x59,0x7b,0xc7,0x95,
+  0x96,0x70,0xa2,0x55,0x29,0x19,0xb4,0x52,0x8,0x95,0xeb,0x7f,0x3a,0x5a,0x6e,0x39,
+  0xeb,0xf2,0xcb,0x2f,0xcf,0x64,0x32,0x9c,0xb7,0x7a,0x2d,0x7a,0x9c,0xb3,0x54,0x51,
+  0x14,0xcb,0xb2,0x74,0x5d,0x27,0x84,0xd8,0xb6,0xcd,0xf9,0x69,0x59,0x96,0x88,0xe1,
+  0xe3,0x24,0xb7,0x2c,0x4b,0x55,0x55,0x5e,0xe7,0x91,0x10,0x22,0x56,0x9,0xb,0xc3,
+  0x90,0xff,0xf6,0x59,0x74,0x94,0xcc,0xc1,0xd8,0x47,0xd1,0x50,0xe6,0x73,0x3a,0x19,
+  0x96,0x65,0xc7,0xa6,0x67,0x32,0xe4,0x1,0xca,0x21,0x5c,0x8e,0xb1,0x68,0x7,0x48,
+  0xa,0x73,0x21,0x3f,0xc9,0x1b,0xbd,0x4b,0xfb,0xf8,0x98,0x96,0xd,0x5d,0x73,0x28,
+  0x84,0xb2,0x7e,0x5b,0x2c,0x4e,0x79,0x9e,0xef,0xb8,0xb3,0x66,0x2,0xde,0x78,0xaf,
+  0xf3,0xe8,0xa3,0x8f,0xc4,0x76,0xae,0x5e,0x77,0x5e,0x2e,0x97,0xe3,0xea,0x2b,0x57,
+  0x9b,0x5d,0xd7,0x59,0x9c,0x9,0x56,0xf6,0x24,0xf8,0x63,0x76,0x65,0xe6,0x72,0x93,
+  0x8a,0xd0,0x14,0xe,0x71,0x69,0x3e,0x2f,0xaa,0x3e,0xa6,0x65,0x83,0x6b,0xdd,0x35,
+  0x88,0x82,0xe9,0x5c,0x4a,0x8b,0xfd,0x96,0x65,0x4d,0xf9,0x69,0xd1,0x46,0xed,0x95,
+  0xd4,0xe8,0x66,0x5b,0xd4,0x2,0x6e,0xf,0x13,0x4b,0xb4,0xc5,0x66,0xc8,0xf3,0x79,
+  0x23,0xbf,0xc8,0xd,0xdf,0xf7,0x6f,0xba,0xe9,0xa6,0x2b,0x5f,0x77,0x7e,0x3a,0x65,
+  0x73,0xaf,0x4f,0x44,0xfd,0x28,0xc,0xa2,0x28,0x88,0x42,0x3f,0xa,0x3,0x2e,0x60,
+  0x29,0xd,0x69,0xe8,0xd3,0xc8,0x8f,0xc2,0x90,0xd2,0x90,0x86,0x11,0xa5,0x2c,0xc,
+  0xc3,0xc8,0x8b,0x2,0x2f,0x8,0xa3,0xd0,0xf3,0x83,0x30,0x8,0xa9,0x1f,0x86,0x4e,
+  0xe8,0xfa,0x7e,0xc5,0x73,0xfc,0x30,0xc,0x29,0x89,0x68,0x44,0x59,0xc4,0xc0,0x8,
+  0x21,0xba,0x61,0x66,0x52,0x6,0x5,0x19,0x9d,0x98,0xea,0x30,0xdc,0x3,0xde,0x22,
+  0x5f,0xb5,0x17,0xa7,0x95,0xf2,0xd8,0x70,0x8b,0x89,0x83,0x93,0xe4,0xfd,0x3f,0x9a,
+  0x42,0xc7,0xfa,0x8b,0xb6,0x6d,0xe3,0x35,0x56,0xb9,0xea,0xb,0x40,0xd3,0x34,0xcb,
+  0xb2,0xb8,0xb0,0x35,0x4d,0x53,0x55,0x55,0xd3,0x34,0x13,0x89,0x4,0x21,0x84,0x6b,
+  0xce,0xdc,0x82,0xc5,0xc5,0xf,0x97,0xc0,0x5c,0xea,0x5a,0x96,0xc5,0x85,0xad,0x69,
+  0x9a,0x51,0x14,0xf1,0xe3,0xc3,0x5a,0x31,0xf3,0x53,0xed,0x31,0x99,0x83,0xb1,0x8f,
+  0xa2,0xf1,0x5c,0xa5,0x6e,0xc,0x26,0xad,0xda,0x66,0xc4,0x90,0x8a,0x15,0x6d,0x69,
+  0xea,0xba,0x10,0x72,0x12,0xc0,0x3b,0xae,0x5a,0x5,0xc9,0xd0,0x25,0xf4,0x58,0x48,
+  0x44,0x8d,0x81,0x27,0xf4,0x78,0x9e,0xef,0x54,0x9c,0xbe,0xbe,0x65,0x6f,0x79,0xed,
+  0xb2,0xa6,0xf7,0x76,0xf0,0xe0,0x41,0x5e,0x67,0x43,0x46,0x3a,0x95,0x10,0x37,0x2c,
+  0xd4,0xe6,0x81,0xd1,0x40,0x28,0x2,0x73,0x43,0x4,0x84,0x72,0x7e,0x8a,0x97,0xda,
+  0xda,0xbe,0x8c,0xe0,0xbc,0x5c,0x2,0xae,0x7a,0x70,0xbd,0x79,0xa9,0xe9,0x6a,0x7d,
+  0xa8,0xe6,0x4b,0x56,0x6f,0xcf,0x34,0xd,0x61,0xf7,0xe2,0x38,0x6b,0x75,0xab,0x68,
+  0x37,0xad,0x16,0xf2,0x92,0xcb,0xd8,0x58,0x63,0x7c,0x7c,0xfc,0xc9,0x27,0x9f,0x7c,
+  0xfb,0x5b,0x2e,0xe1,0x37,0xc9,0x58,0x44,0xc3,0x20,0xa,0x9d,0x30,0x70,0xc3,0xd0,
+  0xa5,0xd4,0x67,0x94,0xb2,0x28,0xa0,0x34,0x88,0xa8,0x1b,0x85,0x2e,0x8b,0x2,0x16,
+  0x6,0x34,0x8,0x43,0x3f,0xa4,0x7e,0x18,0x6,0x21,0xd,0xa3,0x28,0x62,0x94,0x22,
+  0xc,0x68,0x10,0x84,0x7e,0x14,0xf8,0x5e,0x10,0x7a,0x51,0x14,0x32,0xc6,0xb3,0x5,
+  0x19,0x14,0x28,0xa0,0x54,0xd3,0x95,0x24,0x73,0x1c,0x3f,0x4a,0x6b,0x61,0x5e,0x6d,
+  0x5b,0x92,0x62,0x88,0xc2,0xf2,0xf0,0xe1,0x8e,0xb4,0xf1,0xe4,0x9,0xfc,0xe1,0xd,
+  0xc3,0xe6,0xe2,0xd,0x17,0x5d,0x74,0x91,0x5e,0xab,0x93,0xcc,0xad,0xc1,0x42,0xd8,
+  0xda,0xb6,0xcd,0x77,0xda,0xb6,0xcd,0xe7,0xc0,0x89,0x44,0x82,0x37,0xf8,0x57,0xfc,
+  0xbf,0x43,0x8,0xe1,0xe5,0x94,0x15,0x45,0xe1,0xc2,0x96,0x37,0x9e,0xb5,0xb0,0xc5,
+  0xb,0x2d,0x75,0x9b,0x8e,0x33,0xe,0x21,0x75,0xc5,0xe8,0x9c,0x23,0x94,0xcf,0xaa,
+  0xad,0x63,0x4,0x40,0xa6,0xca,0x96,0x8d,0x4b,0x50,0x5b,0x79,0x8c,0x93,0x41,0xac,
+  0xa3,0xd5,0x48,0xda,0x7c,0x7e,0x92,0x4f,0x71,0x9d,0x8a,0xb3,0x68,0x71,0xe7,0xb5,
+  0x17,0x76,0x35,0xbf,0x18,0xc0,0x63,0x15,0xc7,0xea,0x6b,0x39,0x2f,0x6a,0x89,0x1f,
+  0xe6,0xfb,0x7e,0xb1,0x38,0xf5,0xd4,0x33,0x13,0x98,0xd3,0x54,0xce,0x21,0xa4,0xae,
+  0x38,0x92,0x67,0xf6,0xad,0xec,0x49,0x78,0x6a,0x97,0x53,0x71,0xf8,0xfe,0xd8,0xcc,
+  0x96,0x7f,0x94,0x35,0x8b,0x98,0x8f,0x5a,0xcc,0xe7,0x6b,0xdb,0xaa,0xe9,0x4b,0xbe,
+  0xf9,0xa5,0xb5,0x35,0x79,0x1a,0x23,0x99,0xe5,0xc,0xa4,0x97,0x5c,0xd8,0x8a,0xc6,
+  0xe3,0x8f,0x3f,0x9e,0xb0,0x75,0x4a,0x8d,0xe1,0x91,0x42,0x18,0x46,0x60,0x8c,0xb1,
+  0x80,0x46,0x6e,0x14,0xb8,0x34,0xf2,0x69,0x14,0x52,0xea,0xd3,0xc8,0xa5,0x81,0xc3,
+  0x95,0xe7,0x30,0x8,0x59,0x18,0xd1,0x30,0xc,0xa2,0xc8,0x73,0x7d,0xdf,0xf7,0x83,
+  0x30,0xa,0x83,0x88,0x6,0x2c,0x8c,0x98,0xe3,0x45,0x81,0x1b,0x45,0x51,0xc4,0x68,
+  0x35,0xd1,0x88,0x0,0x4,0x20,0x8c,0x29,0x50,0x14,0xea,0x6b,0x51,0xc9,0xb6,0xac,
+  0x6c,0x47,0x76,0x22,0x48,0xa4,0x4c,0x42,0x8b,0x63,0x8b,0x4d,0x7f,0x18,0x8b,0x3f,
+  0xf2,0xdf,0xc3,0x3d,0xeb,0x2f,0xbd,0xe8,0xa2,0x8b,0x38,0xe5,0xc4,0x64,0x95,0x13,
+  0x4f,0xd7,0x75,0xdb,0xb6,0x79,0x83,0x93,0x93,0xef,0x41,0x4d,0x20,0x73,0xa9,0xcb,
+  0x45,0x2b,0xd7,0x9f,0xf9,0x7a,0x5f,0x7c,0x5,0x3,0x21,0x6c,0xf9,0xf,0x9f,0x75,
+  0x8f,0xbd,0x20,0x52,0xb7,0xe,0x66,0x67,0x7c,0x2b,0xc6,0x74,0xbd,0xd4,0x8d,0xf9,
+  0x2d,0xf8,0x12,0x64,0x33,0xa7,0x31,0x8d,0x81,0xd1,0x40,0x9c,0x64,0xf3,0x86,0xa5,
+  0x5c,0x4c,0x71,0xf6,0xf2,0x4a,0x31,0x72,0xf4,0xa2,0xa8,0xe4,0xc6,0x8d,0x49,0xa5,
+  0xd2,0x34,0x8f,0xbb,0xa8,0xf2,0x56,0xdc,0x49,0x7d,0x83,0x9b,0x82,0xb7,0x3f,0x76,
+  0x5f,0xec,0x2b,0xe1,0x7a,0x95,0xd7,0x7,0xe6,0x7c,0xb0,0x2d,0xbb,0x3a,0xc3,0x6c,
+  0x7c,0x52,0x33,0x3e,0x35,0x10,0xea,0x2b,0x9f,0x1e,0x9b,0xd1,0x88,0xf8,0xaa,0x2a,
+  0x75,0x6b,0x3f,0x91,0x99,0x5c,0x5f,0xef,0x26,0x6e,0x81,0x43,0x7d,0x62,0xd0,0x6d,
+  0x77,0xef,0x7a,0x62,0xf7,0x31,0x7e,0xaa,0x45,0x2d,0xd5,0x70,0x71,0xf1,0xad,0x98,
+  0x9b,0x88,0xbc,0xdf,0xd3,0x84,0xb4,0xbe,0xef,0x7,0x41,0xf0,0xd4,0x53,0x4f,0x1d,
+  0x78,0xfa,0xf0,0x55,0x6f,0xf9,0xe3,0xd7,0x5c,0xf1,0x87,0xe7,0x5f,0xfe,0x27,0xef,
+  0xfa,0x83,0x7f,0xfc,0xe6,0xbf,0xdd,0xfe,0xd0,0xa3,0xfb,0x26,0x26,0xb,0x51,0x18,
+  0xd0,0x28,0x8c,0xc2,0xaa,0xe6,0x1c,0xf9,0x6e,0xe8,0xf9,0xa1,0x17,0x38,0xae,0x5f,
+  0x76,0x7c,0xa7,0xec,0x7a,0x5e,0x58,0x55,0xa8,0xfd,0xd0,0xb,0x3c,0xaf,0xe2,0x78,
+  0x8e,0x17,0x84,0x51,0x40,0x59,0x44,0x18,0xab,0x6,0x4c,0x32,0x1e,0x4b,0x49,0x9,
+  0x58,0x50,0x9e,0x9e,0x2a,0x28,0xa9,0x56,0x4d,0xd7,0x56,0xb6,0x52,0xc7,0x71,0x54,
+  0xaf,0xb8,0xdb,0x5b,0x74,0xdd,0xb7,0x9e,0xe9,0x5b,0x7f,0xd1,0x99,0x67,0x9e,0xc9,
+  0x49,0xb,0x49,0x43,0x16,0xfa,0x30,0xe7,0x2a,0x57,0xa1,0x85,0xaa,0xcc,0x97,0xc9,
+  0xe6,0xc7,0x0,0xe0,0xa4,0xe5,0xf5,0xd0,0x39,0x69,0xb9,0xaa,0x2c,0x68,0xfc,0x1c,
+  0x7b,0x6c,0x5e,0x52,0x97,0xff,0xd7,0x5,0x45,0x1b,0x1b,0x8d,0xe0,0x75,0x55,0x0,
+  0xc0,0x1b,0x87,0xd9,0x39,0xb3,0x95,0x7,0x5c,0x6d,0x85,0x7b,0x21,0x75,0xc5,0x2c,
+  0x57,0x55,0x55,0x29,0xe7,0xae,0x6a,0x86,0x19,0x1f,0x1f,0x9f,0x39,0x21,0xf0,0x8e,
+  0xab,0x56,0xf5,0xf5,0x2d,0x83,0xb4,0xea,0x27,0x27,0xb0,0x88,0x43,0x2e,0x16,0xa7,
+  0x4a,0xa5,0xe9,0x52,0x69,0xba,0x90,0x9f,0x2,0x70,0xc9,0x5,0x2b,0x37,0x6f,0xde,
+  0xc4,0xc7,0x34,0xbc,0xf1,0x43,0x43,0x95,0x19,0x1,0x55,0xbb,0x37,0x2e,0x75,0xab,
+  0x71,0x5a,0xb5,0xb,0xc1,0x1b,0xe7,0xd2,0x8f,0x73,0xa0,0x71,0x1a,0x5f,0x55,0x53,
+  0x67,0x79,0xd2,0x65,0x1d,0x84,0x9f,0x56,0x5e,0xa3,0x94,0x9b,0xb8,0xa,0x7e,0x46,
+  0x88,0xdc,0xba,0x18,0x95,0x6,0xce,0xcf,0x6,0x99,0xc6,0x82,0xe1,0x9e,0xda,0x25,
+  0xee,0x67,0x75,0x8f,0x9,0x80,0x3b,0xb7,0xf8,0xb7,0xa7,0x9b,0x9d,0xd9,0xf7,0x7d,
+  0xbe,0xc6,0xec,0xc4,0xc4,0xc4,0xae,0x5d,0xbb,0x2c,0xcb,0x5a,0xbd,0x7a,0xcd,0xbb,
+  0xdf,0xfd,0x9e,0xf,0x7d,0xe8,0xc3,0xab,0x57,0x9f,0xf3,0xed,0xef,0xdd,0xf1,0x7b,
+  0x7f,0xf0,0xb7,0x1f,0xfc,0xb3,0xaf,0xdd,0x75,0xcf,0xce,0x30,0xc,0x41,0x23,0x5a,
+  0x5b,0x3,0xce,0xf7,0x7c,0xd7,0xf5,0xdd,0x8a,0xef,0x7b,0x41,0xe0,0x51,0x1a,0x52,
+  0xca,0xe7,0xb2,0x21,0x75,0x2b,0x81,0x53,0xe,0x42,0x1a,0x51,0xca,0x8,0x23,0xd5,
+  0x25,0x12,0x28,0x63,0x14,0x4,0xc,0xa,0x61,0x84,0x44,0xbe,0xa7,0x28,0xc8,0x64,
+  0x12,0x34,0xc,0x11,0x38,0x6a,0x79,0xec,0xe1,0x63,0xf4,0xa3,0x37,0xc,0xac,0x39,
+  0xe7,0xa2,0x4d,0x9b,0x36,0xe9,0xb5,0x55,0x8,0xb4,0xda,0xea,0xf2,0xbc,0x61,0x18,
+  0x6,0x17,0xc5,0x9c,0x2d,0xdc,0x9d,0x2b,0x16,0x1c,0x89,0x19,0x93,0x79,0x83,0xaf,
+  0x63,0xc0,0xf5,0x64,0xee,0xa,0x7a,0xbe,0xba,0xe,0xd,0x1c,0x8c,0x1d,0x73,0xca,
+  0xa,0x33,0x64,0xdb,0x69,0x6d,0x1c,0xdf,0xf6,0xeb,0x5d,0xd5,0x8f,0x35,0xc4,0xa4,
+  0x2e,0xea,0x67,0xb9,0x4d,0xb,0x17,0x1e,0x1a,0xaa,0xcc,0xd0,0xc3,0xec,0xbc,0xf6,
+  0xc2,0xae,0xdf,0xb9,0xe6,0x82,0xaa,0x31,0xc6,0x75,0x72,0xb9,0x5c,0x21,0x3f,0x25,
+  0xff,0x71,0xf3,0xef,0x25,0x17,0xac,0x7c,0xc7,0x55,0xab,0x56,0xae,0xe8,0x13,0x6c,
+  0x1c,0x9b,0xc2,0x97,0xbe,0x7e,0xe3,0xb1,0x63,0xc7,0x64,0xbe,0x55,0x85,0x15,0x30,
+  0x34,0x34,0x3c,0x36,0x5,0xf9,0x42,0xb1,0x99,0x67,0x8c,0xbd,0x8e,0xeb,0xd4,0x1d,
+  0x5f,0xfb,0x15,0x6f,0x6c,0xde,0x30,0xb3,0x92,0xa4,0x60,0xef,0xca,0x9e,0x4,0xcc,
+  0x4e,0xfe,0x32,0x9a,0xdb,0x9,0x24,0xf2,0x16,0x45,0x2f,0xd9,0x12,0x50,0x2f,0x87,
+  0xf9,0xc1,0x66,0x34,0x22,0x6e,0x60,0xa9,0xb4,0x8e,0x65,0xe3,0x74,0x97,0x37,0x5e,
+  0x72,0x91,0x1b,0x4,0x1,0x63,0xac,0x58,0x2c,0x1e,0x38,0x70,0x60,0xf5,0xea,0x35,
+  0xbf,0xf5,0x5b,0x6f,0xbd,0xf0,0xc2,0x8b,0x37,0x6f,0x3e,0xef,0xd,0x6f,0x78,0xe3,
+  0x87,0x3e,0xf4,0x27,0x1b,0x37,0x9e,0x7b,0xef,0x3,0x3b,0xdf,0xfb,0x81,0x2f,0xfc,
+  0xdb,0xf7,0x7f,0x4d,0x19,0x8b,0xa2,0x28,0xf0,0x3,0xcf,0xf3,0x1d,0x27,0xf0,0x3d,
+  0xdf,0xf7,0xa3,0xc0,0xd,0x23,0x1e,0x58,0x5,0x12,0x7a,0x81,0x53,0xf1,0x3d,0x2f,
+  0x88,0x18,0x14,0x6,0xc6,0x0,0x46,0x9,0xe3,0x31,0x86,0x4,0x84,0x55,0xb3,0x5,
+  0x29,0x2d,0xe5,0x26,0x35,0x45,0x49,0x18,0x1a,0xb,0xdd,0xa8,0x52,0xd8,0x37,0x12,
+  0x7d,0xfa,0xd6,0xfc,0xe6,0x8b,0xaf,0x39,0xe7,0xdc,0x73,0x39,0xc1,0xf8,0xc0,0xe6,
+  0xc2,0x53,0x48,0x5a,0x1e,0x86,0xc1,0x1b,0xa6,0x69,0x72,0x69,0xac,0x69,0x5a,0x22,
+  0x91,0xe0,0x8e,0x1f,0xae,0x1e,0x8b,0x6,0x17,0xb9,0x61,0x18,0xf2,0xe3,0x9f,0xb5,
+  0x51,0xaa,0xb1,0xf1,0x3c,0x2b,0xcc,0x71,0x5d,0xae,0xa6,0x37,0xde,0x74,0xcf,0xd1,
+  0x5b,0x6f,0xbd,0xbd,0x51,0x98,0x70,0x41,0x51,0x73,0x72,0xc4,0x33,0xda,0xe5,0x71,
+  0xc9,0x8f,0xdc,0x3f,0x58,0x9c,0x39,0xad,0x37,0xe,0xb3,0x73,0xd1,0xa2,0xce,0xf7,
+  0xbc,0x65,0xe3,0x55,0x97,0x6c,0x58,0xb3,0x66,0xcd,0x96,0x8d,0x4b,0x96,0xf5,0x2d,
+  0x3b,0x6b,0x75,0x2b,0xdf,0x9e,0xb5,0xba,0xf5,0xda,0xd7,0x6d,0xbc,0xf6,0xc2,0xae,
+  0x95,0x2b,0xfa,0x66,0x34,0x58,0x6f,0x1c,0xc0,0xb7,0xff,0xf3,0x17,0x0,0x9e,0x7a,
+  0xa6,0x20,0xef,0x7f,0xea,0x99,0x82,0xb8,0xee,0xb1,0x63,0xc7,0xe4,0xb,0x89,0x65,
+  0x50,0x84,0xc6,0x2b,0xf2,0x2b,0x38,0xab,0xeb,0x8e,0x17,0x52,0xb7,0xf6,0x71,0xe3,
+  0xc6,0xd,0x5c,0xf0,0x2,0xc8,0xe5,0x72,0x7d,0x7d,0xcb,0xf8,0x57,0x4e,0xc5,0xa9,
+  0xe3,0xad,0xa4,0x66,0x37,0xf5,0xc,0xcd,0x91,0x9a,0x2b,0x74,0x93,0x99,0xb7,0x4c,
+  0xad,0x7f,0xaa,0x9f,0x66,0x99,0xee,0xe2,0xa5,0x33,0x4a,0x71,0x19,0xe5,0xfb,0x3e,
+  0xd7,0x4b,0xef,0xab,0x4b,0xca,0xdf,0x0,0x0,0x17,0x96,0x49,0x44,0x41,0x54,0xb9,
+  0xe7,0x9e,0x6c,0xb6,0xfd,0xe2,0x8b,0x5f,0x7b,0xc5,0x15,0x57,0x6e,0xdc,0x78,0x76,
+  0x26,0xd3,0x9a,0x48,0x24,0x7b,0x7a,0x96,0x9e,0x73,0xce,0xe6,0x2b,0xae,0x78,0xbd,
+  0x69,0x59,0x7f,0xf1,0x57,0xff,0xf4,0xf1,0xbf,0xfe,0xfe,0xd8,0x78,0x31,0x8,0xa2,
+  0xc0,0xb,0x7d,0xcf,0x73,0x3d,0xdf,0x77,0xbd,0x30,0xa,0x43,0xdf,0xf7,0xbd,0xb0,
+  0x5c,0xaa,0x54,0x2a,0x9e,0x1f,0x44,0x2c,0xe2,0xab,0xc5,0x13,0x0,0x50,0x14,0x86,
+  0x88,0x80,0x11,0x85,0x40,0x55,0xa1,0x28,0xd5,0x14,0x24,0x46,0x95,0x64,0x8b,0x1b,
+  0x4,0x7a,0x58,0x79,0xfc,0xe9,0xdc,0x1f,0xfc,0xb8,0xb4,0x79,0xdb,0x95,0xcb,0x97,
+  0x2f,0x6f,0x34,0x4a,0x71,0xc7,0xf,0x77,0xe7,0xd8,0xb6,0xcd,0xa5,0x6e,0x22,0x91,
+  0xe0,0xb1,0x8d,0x89,0x44,0x42,0xaf,0x19,0xa5,0x62,0xae,0x20,0xd3,0x34,0xb9,0x99,
+  0x8a,0x33,0x9c,0xbb,0x82,0x9e,0xaf,0x3e,0x9c,0x8f,0xc2,0xac,0xf1,0x43,0x5,0xb3,
+  0x9b,0x36,0x1a,0x7,0xd3,0x8c,0xb5,0xd3,0x1b,0xbf,0xe8,0xdc,0x65,0x86,0x71,0xcd,
+  0x6c,0xc3,0x6e,0xb6,0x12,0xc1,0x62,0x71,0xd,0x3e,0x97,0xf3,0x7d,0x7f,0x6c,0x74,
+  0x7c,0x46,0x8f,0x95,0xe6,0xa2,0x2b,0x57,0x60,0xe5,0xa,0x49,0xc5,0x9d,0x3,0x66,
+  0xe7,0xbf,0xdf,0x78,0x37,0x27,0xd2,0xd0,0xf0,0x90,0x7c,0x36,0x91,0x7f,0x7,0xe0,
+  0x91,0x5d,0x27,0x36,0x6f,0xae,0xde,0x3c,0xcc,0xce,0xb5,0x7d,0x95,0x1d,0x3b,0x90,
+  0xcb,0xe5,0x64,0x46,0x9,0xd9,0x6b,0x5b,0xf6,0x53,0xcf,0x14,0x36,0x6f,0x46,0xfc,
+  0xde,0x6a,0x1f,0xb7,0x6c,0x5c,0xb2,0x6b,0xd7,0x6e,0xf1,0x43,0xae,0x2d,0xc3,0x1b,
+  0x97,0xaf,0xd8,0xda,0xd6,0x22,0xab,0xe8,0xf2,0xb5,0xac,0x3a,0x63,0x95,0x8d,0x1a,
+  0xeb,0x78,0x79,0x83,0xc6,0xd8,0xc6,0xaa,0xc2,0x3c,0x67,0x57,0xc8,0x5,0x37,0x5e,
+  0x12,0x61,0xab,0x69,0x1a,0xd7,0xe1,0xf9,0x9e,0x28,0x8a,0xee,0xbc,0xf3,0xce,0xee,
+  0xee,0xde,0xf3,0xcf,0xdf,0xd2,0xdd,0xdd,0x1d,0x86,0xe1,0xd0,0xd0,0xb1,0xa3,0x47,
+  0x8f,0xe,0xd,0x1d,0xdf,0xbe,0xfd,0xf1,0xae,0xae,0xae,0xd,0x1b,0xce,0x7e,0xe8,
+  0xa1,0x7,0xbe,0xf7,0xc3,0x5b,0x74,0x4d,0xf9,0xe0,0x75,0x57,0x2b,0x94,0x79,0x5e,
+  0x48,0x69,0xe4,0x7b,0x21,0xa3,0x2c,0xa,0x82,0x88,0x11,0x6,0x6,0x6,0x4a,0x19,
+  0x0,0x42,0xc0,0x40,0x9,0xc0,0x22,0x10,0x45,0xa9,0x2e,0x4b,0x5f,0x3,0xa3,0x91,
+  0xa6,0x92,0x54,0xd2,0xb2,0xc7,0xf7,0xde,0x71,0x90,0x7d,0xed,0x9e,0x68,0xdb,0xeb,
+  0xae,0xee,0xeb,0xeb,0xe3,0xa,0x30,0x97,0x9f,0x9c,0x78,0x9a,0xa6,0x89,0x5a,0x7c,
+  0x3c,0x2a,0x43,0xaf,0x59,0xa7,0xe4,0xaf,0xb8,0x51,0x8a,0xcf,0x8a,0x79,0x43,0x98,
+  0xa9,0x9e,0x17,0xa3,0xd4,0x1c,0xd,0xc1,0xbe,0x46,0x6e,0x2a,0x98,0xb7,0xe6,0x2d,
+  0x47,0xc6,0xdb,0x9,0xfb,0xd0,0xe1,0x41,0x3e,0x86,0x16,0x2d,0xea,0xbc,0xf6,0xb2,
+  0x8d,0xb1,0xd1,0x23,0x5b,0x98,0xe7,0x59,0x39,0xc9,0x4e,0xd8,0xbf,0xda,0x1e,0x5f,
+  0xcb,0x6f,0x6,0xf3,0x98,0x22,0x3e,0xf1,0xc4,0x76,0x4e,0x98,0x9e,0x9e,0xee,0xaa,
+  0x62,0x5c,0x83,0x4c,0xcb,0x19,0x61,0x68,0x76,0x42,0xf2,0xf,0x41,0x12,0xbc,0x90,
+  0xe6,0x5,0x8e,0xeb,0x1c,0x3a,0x3c,0x18,0xbf,0x81,0xda,0x47,0x3e,0xc7,0x16,0x82,
+  0x77,0xe5,0x8a,0x3e,0x34,0xd8,0xb1,0xd,0xc3,0x68,0x62,0x3c,0x9b,0x13,0xaa,0x54,
+  0x59,0xae,0xee,0xb2,0x92,0xf5,0xab,0x11,0x8d,0xf6,0xfc,0xf9,0xfc,0x73,0x9f,0xf7,
+  0x86,0x98,0x7b,0xf3,0xb9,0xee,0x33,0xcf,0x3c,0x73,0xf0,0xe0,0xc1,0x6c,0xb6,0x7d,
+  0xd9,0xb2,0x3e,0x5d,0x37,0x5c,0xd7,0x3d,0x72,0xe4,0xd0,0x43,0xf,0xdd,0x7f,0xe0,
+  0xc0,0x9e,0x7d,0xfb,0x76,0xff,0xfc,0xe7,0xb7,0x85,0x61,0x68,0x18,0xa6,0xef,0x7,
+  0xdf,0xfe,0xee,0x4f,0x1f,0x7d,0xe2,0x69,0xd7,0xf,0x82,0x88,0x3a,0xe,0xf5,0x7d,
+  0x1a,0xfa,0x51,0x44,0xc1,0x58,0x35,0x58,0x83,0xa7,0x6,0x12,0xc6,0x73,0x4,0x9,
+  0x8,0x94,0x86,0xd5,0xfd,0x82,0x4a,0x69,0xea,0xf8,0x91,0x74,0x38,0xfe,0xc4,0x10,
+  0x3e,0x73,0x47,0x79,0xdb,0x55,0x6f,0xe3,0x8b,0x59,0x2b,0x8a,0xc2,0xe7,0xa8,0x62,
+  0x8a,0xcb,0xa5,0xae,0xae,0xeb,0x5c,0xea,0x8a,0x3d,0xfc,0x18,0x0,0xbc,0x21,0x64,
+  0xb5,0x98,0xd0,0x72,0xba,0xa2,0xd9,0xca,0x8f,0xcf,0x7b,0x63,0xb6,0xfd,0xa7,0x10,
+  0x18,0x2d,0xc6,0x10,0xd7,0x6f,0xab,0x36,0xe1,0x79,0xff,0xaa,0xa9,0x47,0x57,0xe8,
+  0xcc,0xbc,0x4a,0xd3,0xd1,0xc1,0xa3,0x63,0x63,0xe3,0x8d,0x87,0xcd,0x7,0x63,0x63,
+  0xe3,0x3f,0xbf,0x77,0xcf,0xd0,0xd0,0x30,0xb7,0x24,0xf7,0xf4,0x74,0xef,0x3a,0x34,
+  0x43,0xa0,0x5c,0x2e,0xd7,0xd3,0xd3,0xcd,0xff,0x86,0x86,0x86,0xab,0xef,0x1d,0x0,
+  0xc0,0xa2,0x45,0x9d,0xd7,0x7f,0xf8,0xff,0x79,0xe7,0x9b,0x2f,0x59,0xb2,0xa4,0x89,
+  0x63,0x89,0x87,0x22,0xdf,0xf7,0xe8,0x5c,0x95,0x6b,0xae,0xbc,0xf2,0xa,0x0,0x43,
+  0x43,0xc3,0xef,0x7c,0x73,0xd5,0x69,0x59,0xd5,0xb1,0x6b,0x38,0x7f,0xfd,0xac,0x2e,
+  0xab,0x18,0xe6,0x48,0xd9,0xe3,0xdd,0x5e,0x95,0xba,0x12,0x64,0x23,0x33,0xd7,0x71,
+  0x4e,0x93,0x35,0x10,0x18,0xe3,0xe9,0x3c,0xf4,0x96,0x5b,0x6e,0x61,0x8c,0xb5,0xb7,
+  0x77,0xa4,0x52,0x69,0xcf,0xf3,0xc7,0xc6,0xc6,0xc2,0x30,0x8a,0xa2,0x70,0xfb,0xf6,
+  0x27,0xf2,0xf9,0xbc,0xef,0xfb,0xf,0x3d,0xf4,0x60,0xb9,0x3c,0xd,0x20,0xc,0xc3,
+  0x8f,0xfc,0xf5,0xbf,0x8d,0x4c,0x94,0x7c,0xc7,0xa3,0x61,0x40,0xc3,0x30,0xa0,0x51,
+  0xc4,0x68,0x35,0xd6,0x82,0x11,0x28,0x84,0x80,0x50,0x46,0x0,0xa5,0x5a,0x15,0xbd,
+  0x3e,0x48,0x98,0x51,0x1a,0x56,0xa6,0xc,0x5b,0xfb,0xcf,0xa7,0xf4,0xf,0xfd,0xc4,
+  0x7d,0xdd,0xeb,0xaf,0x5d,0xb4,0x68,0x51,0x2c,0x7,0x28,0x56,0xe6,0x22,0x56,0x17,
+  0x2e,0x96,0x8b,0x2b,0x92,0xf8,0x62,0xf1,0xc9,0xa4,0x7e,0x1,0xa1,0x17,0x1f,0xf3,
+  0x5d,0x73,0x48,0xce,0x19,0xe0,0xd1,0x8b,0x47,0x7,0x9b,0xaf,0xca,0xd7,0x74,0x22,
+  0x17,0x9b,0xeb,0xf2,0x1,0x1a,0xcb,0x43,0x48,0xa7,0x53,0x76,0xc2,0xbe,0xfb,0xe1,
+  0x78,0x25,0xd7,0x79,0x82,0x4f,0x71,0xe5,0xbc,0xd9,0xd9,0xee,0xb0,0xa7,0xa7,0xbb,
+  0x91,0x8a,0x2b,0x57,0xf4,0xbd,0xe5,0xaa,0xcd,0x57,0x5d,0xb2,0x81,0x7f,0xac,0xda,
+  0x84,0x6a,0x33,0x5e,0xc7,0x75,0xe6,0x78,0xa7,0xbc,0xe5,0xaa,0xcd,0x7f,0xf5,0xd1,
+  0xf7,0x7e,0xf3,0xcb,0x1f,0xe5,0x22,0x77,0xbc,0x9c,0xe4,0x15,0x98,0xab,0x97,0xeb,
+  0xee,0x11,0x93,0x52,0x19,0x31,0xf3,0x58,0x23,0x64,0xc1,0x2b,0x5c,0x44,0x4d,0xbc,
+  0x47,0x75,0x91,0x67,0xae,0x5c,0x34,0xef,0x25,0x4,0xab,0xa1,0x5c,0x2e,0xdf,0x77,
+  0xdf,0x7d,0x8a,0xa2,0xac,0x5c,0xb9,0xda,0x30,0xac,0xc3,0x87,0x9f,0xb9,0xff,0xfe,
+  0xbb,0x77,0xee,0xdc,0x7e,0xef,0xbd,0xf7,0x4c,0x4e,0x4e,0x26,0x12,0x9,0xc6,0x28,
+  0x63,0x33,0x9,0x58,0x13,0x93,0x93,0xdf,0xf8,0xee,0x2d,0x11,0x45,0x18,0x45,0x94,
+  0xd7,0x98,0xab,0x16,0x9a,0x3,0x1,0x23,0x8c,0x12,0xc2,0x78,0xa1,0xf5,0xa6,0xcb,
+  0xe3,0xf9,0x6e,0xe5,0xf8,0xf0,0xd0,0x4f,0x9f,0x18,0xff,0xf1,0xe3,0xe5,0x37,0x5c,
+  0x7b,0xed,0xf2,0xe5,0xcb,0x5,0xf1,0x4,0x69,0x5,0x57,0x4d,0xb1,0x7e,0x8c,0x44,
+  0x5a,0x6e,0x4c,0xd6,0x6b,0x55,0x2f,0xe4,0xa4,0x82,0x17,0xae,0xe4,0xc5,0xb3,0xc0,
+  0xb3,0x2f,0x70,0x33,0xa3,0x33,0x4b,0xe0,0x21,0x19,0x76,0xb5,0x7e,0xc5,0x5c,0xab,
+  0x1f,0x8,0x70,0xc1,0xcb,0x8f,0x34,0x4d,0xc3,0xa9,0x38,0xbf,0x79,0x72,0xf8,0xa4,
+  0xbf,0x8a,0xe1,0x1b,0xdf,0xbd,0x4d,0xb4,0xf9,0xbb,0x43,0xf6,0x79,0x8e,0x97,0x93,
+  0x22,0x1b,0x89,0x6f,0x87,0x86,0x87,0x9a,0x52,0x71,0xe5,0x8a,0xbe,0xd6,0xb6,0x16,
+  0x11,0xa,0x2,0xc1,0x5e,0xcb,0x7e,0x70,0xc7,0x5c,0xb,0x88,0xca,0xe4,0xbc,0xf5,
+  0x96,0x5b,0x64,0x3,0x95,0x1c,0xf6,0x24,0xee,0x30,0x96,0xd2,0xdc,0x74,0x4e,0xc1,
+  0xa7,0xbb,0xf2,0x9e,0xd9,0xe2,0xd8,0x1a,0x2d,0xd5,0x2f,0x6d,0xc2,0x3d,0x27,0x2d,
+  0x6f,0x1c,0x38,0x70,0x60,0x6c,0x6c,0xac,0xa7,0xa7,0x77,0xf5,0xea,0xd5,0xa5,0x52,
+  0xe9,0x9e,0x7b,0xee,0xda,0xb5,0x6b,0xd7,0x23,0x8f,0x3c,0x4,0x10,0xcb,0xb2,0xf2,
+  0xf9,0x7c,0xe3,0x8b,0xe6,0xe1,0xc7,0x76,0x3f,0x73,0x64,0x98,0x7,0x48,0xf1,0x2,
+  0x73,0xac,0x5a,0xe8,0x95,0xd7,0x8c,0xe4,0xfb,0x1a,0x6a,0x6,0x79,0xfe,0xaf,0x1e,
+  0xd8,0xf1,0xd1,0xbf,0xfb,0xfe,0x87,0xff,0xfe,0xd6,0x3b,0x9e,0x2a,0x5e,0x7d,0xcd,
+  0x9b,0x7a,0x7b,0x7b,0xe5,0x32,0x17,0x5a,0x7d,0xc1,0x64,0xde,0x96,0xf3,0xe6,0x5,
+  0x69,0x9b,0xe6,0xdf,0x42,0xaa,0x9f,0xfe,0x92,0xf3,0x16,0xf3,0xaf,0x92,0x21,0xa,
+  0xd3,0xf0,0x3d,0x3c,0x80,0xe9,0xb1,0xdd,0xc3,0x5c,0xce,0x8,0x1c,0x38,0xb0,0x8f,
+  0x37,0x4e,0x5a,0xf1,0x8c,0x9f,0x53,0xb6,0xc4,0x8,0x23,0xea,0x81,0xfd,0xfb,0x2d,
+  0xcb,0xda,0xb4,0xb6,0x79,0x3d,0xe7,0x18,0x72,0x6e,0xe6,0xc6,0x1b,0x6f,0xe0,0x54,
+  0x11,0x2,0xbf,0xa7,0xbb,0x87,0x37,0xf6,0xe,0x54,0xce,0xec,0x4f,0x1c,0xdd,0x7f,
+  0x3f,0x0,0xdb,0xb2,0xf9,0x7e,0x7e,0xd8,0x7f,0xdf,0xfe,0xe8,0x7,0xae,0xbb,0xb6,
+  0xf1,0x84,0x86,0x61,0xc8,0x69,0xfd,0x2,0x85,0xfc,0xd4,0xaf,0x1e,0x3a,0x78,0xf9,
+  0xd6,0x55,0x73,0xdf,0xcf,0x4d,0x77,0x3c,0x21,0xc,0x54,0x3c,0xd8,0x23,0xdb,0x7b,
+  0x6e,0xec,0x98,0x6c,0x36,0xcb,0x67,0xd4,0x4d,0x6b,0x0,0xcd,0x6,0x5e,0xe4,0xa0,
+  0xc5,0x28,0x1,0x33,0x3d,0xc3,0xd3,0x95,0x62,0x47,0xca,0x25,0xf2,0x5e,0x12,0x8,
+  0x91,0x4b,0x29,0x7d,0xf2,0xc9,0x27,0x83,0x20,0x58,0xb7,0x6e,0x83,0x69,0xda,0x7b,
+  0xf7,0x3e,0xf5,0xe8,0xa3,0x8f,0x4c,0x4f,0x97,0x6,0x7,0x7,0x3d,0x6f,0xd6,0x30,
+  0xbb,0xfc,0xd4,0xf4,0x8e,0x3d,0x7,0xfb,0x7b,0x3a,0x14,0x10,0x10,0xca,0xa0,0x2a,
+  0xa4,0x56,0x36,0x52,0x22,0x4c,0x18,0x45,0xf9,0xa9,0xe9,0x13,0x63,0xb9,0x43,0x3,
+  0xc3,0x4f,0xee,0x3d,0x72,0x70,0x70,0xcc,0xb4,0xed,0xde,0xde,0xde,0xdf,0xbd,0xe0,
+  0x92,0xae,0xae,0x2e,0x5d,0xd7,0x85,0xb0,0x55,0x1b,0x8a,0x9e,0xc7,0x48,0xab,0x4b,
+  0xeb,0x7d,0x89,0xe2,0x18,0x72,0xc6,0x3c,0xa9,0x5f,0x9b,0xef,0xc5,0xe8,0xc4,0x93,
+  0xe1,0x14,0xaa,0x1c,0xc5,0x68,0xc6,0xcb,0x3e,0x6d,0xdf,0x9f,0x13,0x1c,0xcb,0xb9,
+  0x99,0x13,0x27,0x46,0xf8,0x60,0x6a,0xac,0x90,0x3c,0x7,0x1a,0xf,0xdb,0xf9,0xe4,
+  0x93,0x4f,0x3f,0x6d,0x6f,0xd9,0xf2,0x9a,0xe5,0x8b,0x4f,0xf2,0x6e,0xbb,0xf7,0xde,
+  0x5f,0xb,0x83,0xad,0x1d,0xf3,0xa0,0x0,0x7,0xe,0xec,0xeb,0x48,0x2c,0x3b,0x3a,
+  0xc1,0x1a,0xd5,0x78,0xc7,0x75,0x6e,0xfc,0xd9,0x43,0x57,0x5e,0x79,0x55,0xd6,0x2a,
+  0xce,0x79,0x6f,0x33,0x67,0x3b,0x3a,0x78,0xf4,0xdf,0x7,0x8f,0x6e,0x79,0xcd,0x6b,
+  0xce,0xec,0x6f,0xae,0x4d,0xdc,0xf6,0xeb,0x5d,0x7b,0xf6,0xec,0x95,0xaf,0x95,0xcd,
+  0x66,0x93,0x64,0x2,0xa8,0x53,0x98,0xb9,0x72,0xd1,0x28,0x2a,0x4f,0xa,0xc3,0x30,
+  0xe4,0x4,0xf,0xae,0x9e,0xc8,0x95,0xba,0x4e,0x13,0xb0,0x9a,0xbd,0xd7,0x71,0x9c,
+  0xdd,0xbb,0x77,0x13,0x42,0xfa,0xfa,0xfa,0xa7,0xa7,0x8b,0xf7,0xde,0xfb,0xab,0xc9,
+  0xc9,0xc9,0xb1,0xb1,0xd1,0x39,0x78,0xb,0x20,0x8a,0xc2,0x23,0x47,0x47,0x3d,0x3f,
+  0xb4,0x4d,0xa3,0xe6,0xb0,0xad,0x3a,0x83,0xf8,0xc9,0x27,0xb,0xc5,0x9d,0x7b,0xf,
+  0xef,0xdc,0x7b,0xf8,0xf0,0xd1,0x91,0x90,0x2a,0xa9,0x96,0x6c,0x6f,0x4f,0xff,0x95,
+  0xeb,0x36,0x65,0xb3,0x59,0x91,0x76,0x2b,0x64,0xa6,0x2e,0x15,0x7c,0xd3,0xea,0x4b,
+  0x28,0xf3,0x9c,0x5b,0x31,0xad,0x8d,0xa9,0xc7,0x31,0x3d,0xf9,0x85,0xce,0xbf,0x3d,
+  0x55,0x3c,0x8b,0x2,0x37,0xdc,0x10,0x52,0x5d,0x8,0xe7,0xe9,0xa7,0xf,0x58,0xd6,
+  0xd9,0x67,0xf6,0x27,0x8e,0x4e,0x28,0xbf,0xf9,0xcd,0x1d,0x9c,0xb7,0xdc,0x53,0x3a,
+  0xcf,0x35,0xda,0xe5,0x65,0xa0,0x85,0xa3,0x8,0x80,0x53,0x71,0x7e,0xfe,0xf3,0xdb,
+  0xd7,0xac,0x59,0x73,0xee,0xb9,0x9b,0x9a,0xb2,0xeb,0xe8,0x84,0xf2,0x9b,0xdf,0x3c,
+  0x78,0xf0,0xe0,0x41,0xc1,0x5b,0x91,0x88,0x23,0x4b,0xb3,0xc7,0xf6,0x8c,0x0,0x48,
+  0xa7,0x53,0xc2,0xec,0x69,0x9a,0x46,0xd5,0x11,0x5a,0x71,0xee,0xbd,0xf7,0xd7,0x97,
+  0x5e,0x7a,0x99,0x38,0xff,0xde,0x81,0xca,0xd8,0xe8,0xb8,0xf4,0xea,0x99,0x29,0x19,
+  0xcb,0xf7,0x38,0x15,0xe7,0x9e,0x7b,0x7e,0xfd,0x54,0x36,0x1b,0xe3,0xfc,0x91,0x51,
+  0x76,0xcf,0xaf,0x7f,0x1d,0xcb,0x34,0xe0,0xf1,0x24,0x5a,0x66,0x25,0x50,0x77,0x64,
+  0x21,0x3f,0x35,0x5b,0x31,0xda,0xa6,0x90,0x3b,0xe7,0xc4,0x89,0xe1,0x33,0xfb,0x57,
+  0x1,0xf8,0xcd,0x93,0xc3,0x47,0x8f,0xe,0x9e,0xd2,0x79,0x5e,0x64,0x30,0xc6,0xa,
+  0x85,0xc2,0x53,0x4f,0x3d,0x55,0x2a,0x95,0x1c,0xa7,0xb2,0x7d,0xfb,0xa3,0xcf,0x3c,
+  0xf3,0xf4,0xf0,0xf0,0xf1,0x58,0x61,0xe0,0x66,0x3f,0xc4,0xce,0x7d,0x47,0x4a,0x65,
+  0xd7,0xb6,0x4c,0x48,0xc6,0x63,0x3f,0x8,0x1e,0x7c,0x7c,0xdf,0x6d,0x77,0x3f,0xb2,
+  0x6b,0xef,0x11,0xc3,0x32,0xd7,0xaf,0xdf,0xf0,0x9a,0x8b,0xaf,0x68,0x6d,0x6d,0x8d,
+  0x55,0x6f,0x53,0x6b,0x2b,0xdf,0xca,0x82,0x54,0x4c,0x5f,0xb9,0xb0,0x15,0x59,0xf2,
+  0x32,0x6f,0x85,0x94,0x16,0x6a,0xb6,0x7c,0xe6,0xd3,0x41,0x49,0x96,0x41,0x6,0x7,
+  0xe3,0xf3,0xd5,0xa6,0x68,0xba,0x50,0x25,0x6a,0xa9,0x76,0xe9,0x74,0x4a,0xd4,0xa9,
+  0x89,0x95,0x7d,0xb3,0x2c,0x6b,0x8e,0xb4,0xa1,0xc6,0x45,0xe2,0xf9,0x8a,0xd2,0x22,
+  0x13,0x48,0xcc,0x57,0x1b,0xc3,0x92,0xaa,0xea,0x68,0x36,0x2b,0x27,0xe5,0xe3,0x64,
+  0xe3,0xd8,0x95,0x72,0x92,0x4,0x81,0xc5,0xb7,0x62,0x99,0x79,0xd4,0xcf,0xd5,0x45,
+  0x89,0x49,0xfe,0x98,0xf2,0xcd,0xc4,0x1c,0xc2,0x90,0x94,0x58,0x7e,0xe6,0xb3,0xcf,
+  0x39,0x87,0xef,0xcf,0xe7,0x73,0xae,0xeb,0xf0,0x57,0x3,0x1a,0x16,0xb3,0x97,0x9d,
+  0xba,0x27,0xed,0x73,0xf9,0x72,0xdc,0x38,0x1f,0x5b,0x31,0xb0,0x69,0x6f,0xbf,0x68,
+  0xe0,0x3e,0x21,0xc6,0xd8,0xfd,0xf7,0xdf,0xff,0xbe,0xf7,0xbd,0x6f,0xe9,0xd2,0x65,
+  0xaf,0x79,0xcd,0xb6,0x3,0x7,0xf6,0xc,0xc,0xc,0x4c,0x4d,0x15,0x98,0xe4,0x83,
+  0x9d,0xd,0x86,0x61,0x7c,0xe3,0xb3,0x1f,0x5a,0xbe,0x74,0xd1,0x64,0xbe,0x34,0x32,
+  0x9e,0x3b,0x3c,0x78,0xe2,0xc9,0x7d,0x3,0xcf,0xc,0x8e,0x5a,0x76,0x62,0xc9,0x92,
+  0x25,0x2b,0x56,0xac,0xe0,0xc5,0x56,0x65,0x3a,0xc9,0xa6,0x60,0x45,0x5a,0x60,0x5e,
+  0xae,0x20,0x25,0x74,0x63,0xb9,0xc1,0xbf,0x6a,0xb4,0x21,0x9f,0x26,0x96,0xe4,0xd9,
+  0x30,0x5f,0xea,0x62,0xf6,0x91,0xc4,0x73,0x0,0xe4,0x15,0x28,0x63,0x65,0xdf,0xe6,
+  0x1e,0x49,0x8d,0xa7,0x45,0xb5,0xec,0x43,0xb5,0x14,0x2b,0x27,0x40,0xd3,0x24,0x1e,
+  0x59,0xd2,0x8a,0x11,0x2c,0xbe,0xb5,0x9a,0x95,0x8c,0x85,0x14,0x75,0x24,0x38,0xc0,
+  0x39,0xcc,0xa5,0x71,0x23,0x6f,0xe5,0x1f,0xc6,0xee,0xaa,0xba,0xdf,0x75,0x62,0xba,
+  0xba,0x3c,0xd5,0x6f,0x8c,0x8b,0x6e,0x7c,0xbb,0x35,0xed,0x25,0xa1,0xec,0x88,0xd5,
+  0x3a,0xe5,0x3e,0xb7,0x2c,0x9b,0x6f,0x21,0x69,0xdd,0x73,0xbf,0x28,0x5f,0x34,0x8,
+  0xea,0x7e,0xfc,0xe3,0x1f,0xbf,0xe9,0xa6,0x9b,0x52,0xa9,0xb4,0x65,0x59,0xa5,0x52,
+  0xd1,0xf3,0xbc,0xf9,0xf0,0x96,0xe3,0xff,0x6f,0xef,0xfa,0x9a,0xd2,0xc8,0x96,0x78,
+  0xeb,0x60,0x64,0x5c,0x4d,0x98,0x89,0xa0,0x93,0x4b,0xe9,0x15,0x2a,0xab,0x71,0x53,
+  0x9,0xa6,0x6a,0xaf,0xe6,0x2d,0x79,0xba,0x95,0xfb,0x5,0xf6,0x63,0xec,0x97,0xda,
+  0xd7,0x7d,0x8d,0x2f,0x7b,0x4b,0x1f,0x72,0x2b,0x58,0xd9,0x35,0x98,0x72,0x89,0x24,
+  0x15,0x14,0xc2,0x66,0xd4,0x51,0x6,0x4d,0xc2,0x41,0x51,0xb8,0xf,0x9d,0xe9,0x6d,
+  0xce,0xc0,0x38,0xe2,0x9f,0xc5,0x2c,0xbf,0x7,0xb,0x86,0xf3,0xa7,0xe7,0x38,0xbf,
+  0xe9,0x3e,0xdd,0xe7,0xf4,0xf9,0xf7,0xe3,0x7f,0x41,0xed,0xf8,0xc3,0x56,0xb1,0x5a,
+  0x53,0xb4,0x9b,0xe1,0x5b,0xb7,0x6e,0x69,0x9a,0x76,0xe3,0xc6,0x8d,0xbe,0xbe,0x3e,
+  0x0,0xc0,0x85,0xfe,0x4,0x24,0x1e,0x0,0xa0,0x9a,0xc5,0x75,0xc8,0xdc,0x18,0x26,
+  0x8a,0x52,0x62,0x1a,0xfa,0x4b,0xd4,0xed,0x6d,0x3c,0xd7,0x8b,0xb4,0x6e,0x7,0xf2,
+  0x16,0xda,0xa0,0x2e,0x34,0xa3,0x19,0x2f,0xc6,0xed,0x64,0xfe,0x24,0x41,0x8b,0x87,
+  0xc9,0xdd,0x2c,0xb4,0xc8,0xa5,0xc,0x8e,0x1e,0x93,0x18,0x72,0x62,0x26,0xd,0x9,
+  0x92,0xd8,0xd2,0xea,0x5f,0x7e,0x7c,0xa6,0x3b,0x93,0xe,0x97,0xa,0x1a,0x69,0xc9,
+  0x6d,0x75,0xe2,0x55,0xc5,0xd9,0xc4,0x4f,0xc5,0xa8,0x0,0x4f,0xd9,0x3,0x2d,0x5e,
+  0x70,0x6e,0xab,0x84,0xb,0x2f,0x45,0x8c,0xfc,0x6c,0x8d,0xbe,0x1c,0x1c,0x1e,0x1e,
+  0xd6,0x6a,0xb5,0x6a,0xb5,0xfa,0xfd,0xf7,0xdf,0xb7,0x11,0xa9,0xea,0xe9,0xe9,0xa9,
+  0xd7,0xeb,0xba,0xae,0xcf,0xcc,0xcc,0xdc,0xbd,0x7b,0xf7,0xfa,0xf5,0xeb,0x0,0x80,
+  0x4e,0x2f,0xf2,0x5d,0x13,0xf8,0x8c,0x94,0x3c,0xc9,0xb8,0xba,0x98,0x34,0xad,0xd2,
+  0x98,0xd5,0x91,0xae,0x28,0xae,0x5c,0x70,0xa,0xcb,0xc3,0x4a,0x1e,0xa9,0xe,0xf1,
+  0x4b,0x49,0x68,0x3f,0x19,0x77,0x2b,0x92,0xf0,0xc7,0x88,0xe0,0xf1,0x18,0x91,0xfb,
+  0x9a,0x26,0xbd,0xae,0x6,0x55,0x62,0x17,0x4d,0x59,0xb9,0x6d,0x2c,0xd1,0xcc,0xbf,
+  0x6f,0x8c,0x74,0xb2,0xaa,0xe,0x10,0x93,0x5b,0xb5,0x56,0x71,0x4e,0x39,0x71,0x12,
+  0x26,0xab,0x95,0x8a,0xb8,0x7e,0xfd,0x6,0xca,0x46,0x56,0x3a,0x36,0x85,0x19,0xf0,
+  0xe8,0xab,0xdb,0x86,0xe7,0x7a,0x12,0x5a,0xec,0xc7,0x60,0x85,0xff,0x74,0x7,0xe0,
+  0x5f,0x4d,0xd3,0xa5,0xbc,0xcd,0x9d,0xc3,0x5b,0x70,0xdc,0x54,0x8b,0x8b,0x8b,0x1e,
+  0xbb,0xb5,0xdd,0xf8,0xe6,0x9b,0x6f,0x74,0x5d,0xf,0x85,0x42,0x13,0x13,0x13,0xb1,
+  0x58,0xec,0xe6,0xcd,0x9b,0xc4,0x55,0x3c,0x90,0x1a,0xd7,0xc,0x3,0xf3,0x33,0x13,
+  0xc1,0xf8,0x4c,0x55,0xa,0x5,0x49,0x86,0xb1,0x14,0xb3,0xd,0x38,0xa7,0xe0,0x4a,
+  0x16,0x32,0x5,0x84,0x3a,0x50,0xdf,0x22,0x4e,0x41,0x5d,0x89,0x63,0x70,0x12,0x7b,
+  0xe1,0xa4,0x27,0xd2,0x7f,0xcb,0x9c,0x5a,0x9c,0x24,0xbc,0x3b,0x5e,0x85,0x4e,0xe2,
+  0x6c,0xfa,0xca,0xc7,0x92,0xb4,0x42,0x93,0x3b,0x81,0x78,0x23,0x92,0xc,0xbc,0x16,
+  0xaf,0x2,0x8d,0x56,0x3a,0x0,0xe0,0x41,0xd5,0x44,0xb3,0xa6,0xc1,0x6d,0x9f,0x7a,
+  0x92,0x46,0xc6,0x2d,0x92,0xfb,0xe5,0xd2,0x21,0x8b,0xa8,0x8,0x3f,0xff,0xfc,0xb3,
+  0x77,0x1,0xd4,0xae,0x3,0x3,0x3,0xb7,0x6f,0xdf,0x8e,0xc7,0xe3,0x23,0x23,0x23,
+  0xba,0xae,0xf,0xd,0xd,0x1,0xd3,0xb1,0x52,0x79,0x6e,0xbb,0x92,0x9d,0x4c,0xa4,
+  0xed,0x6d,0xcc,0x78,0xce,0xe7,0xb4,0x92,0x79,0xcc,0xe7,0xc3,0xa4,0x6f,0xc1,0x79,
+  0x17,0x50,0x2f,0x1d,0xcb,0x5b,0x68,0x5b,0xeb,0x36,0x6,0x8a,0x9a,0x13,0x98,0x3f,
+  0x49,0xde,0x61,0xc6,0xc6,0x84,0x55,0x2a,0x38,0x69,0xd6,0x79,0x19,0xa6,0xee,0x82,
+  0x4d,0x15,0x8e,0x24,0x1b,0xb6,0xe3,0x7e,0x9a,0x89,0xd2,0x92,0x3a,0x95,0xfa,0x72,
+  0xcb,0xc3,0x6b,0xf1,0x2a,0xa4,0xc,0xdd,0x2d,0x78,0xeb,0x7f,0xf7,0xaf,0xee,0x51,
+  0xa2,0x91,0x21,0x31,0x5a,0x35,0xdb,0xea,0xdc,0xe0,0xbf,0x4,0x48,0xb9,0x56,0x33,
+  0x5b,0x64,0xec,0xb5,0x6b,0xd7,0x1e,0x3c,0x78,0xf0,0xf0,0xe1,0xc3,0xa9,0xa9,0xa9,
+  0x7a,0xbd,0x7e,0x7c,0x7c,0x7c,0x74,0x74,0x54,0xab,0xd5,0x6a,0xb5,0xda,0xd1,0xd1,
+  0x11,0x56,0xec,0xed,0xed,0xc5,0x39,0x2d,0x6a,0x5d,0xde,0x2,0x71,0xc,0x49,0xc8,
+  0xe3,0xb1,0xdc,0xb1,0x4c,0x11,0x20,0xba,0x48,0x1a,0x95,0xd8,0x2e,0x29,0xd8,0xce,
+  0xf4,0x27,0xbb,0xd1,0xbe,0xc1,0x2c,0x3d,0xd3,0xd2,0x75,0x9,0xde,0xf6,0x9b,0xd2,
+  0x98,0x71,0x8e,0xb7,0xc9,0x9,0x16,0xa,0x85,0x88,0xb4,0x6e,0xc2,0xf0,0x7e,0x3d,
+  0x9e,0x60,0xb6,0xfa,0xd2,0xcb,0x76,0x70,0xef,0x73,0xe2,0xb5,0x78,0x15,0x14,0xcc,
+  0xdd,0x82,0x1f,0xf6,0x4a,0xbd,0x78,0x8f,0x12,0x3f,0xd7,0xdb,0xd9,0x74,0xd5,0x40,
+  0xd7,0xe,0xb1,0x96,0x1,0x0,0x2d,0xdb,0x1f,0x7e,0xf8,0xe1,0xc5,0x8b,0x17,0xd5,
+  0x6a,0x15,0xb9,0xa7,0xaa,0x6a,0x24,0x12,0x89,0x44,0x22,0x13,0x13,0x13,0xdf,0x7d,
+  0xf7,0x5d,0x3c,0x1e,0x57,0x14,0x5,0x37,0xc1,0x1c,0x1f,0x1f,0xe3,0xf6,0x57,0x32,
+  0x8c,0xd1,0x45,0x84,0x17,0xc1,0xa5,0xfd,0x88,0xba,0x3c,0x0,0xcb,0xf5,0xad,0xa4,
+  0x78,0xa9,0x40,0xc0,0x39,0xed,0x96,0x7,0x6f,0x79,0xe4,0xb6,0xe7,0x2,0xe,0x7,
+  0xba,0x20,0x9c,0xc2,0x4d,0x85,0xf0,0x3e,0xdb,0x1a,0x9a,0x9d,0x34,0xe9,0xff,0x49,
+  0x42,0xb5,0xe3,0xee,0xa2,0x95,0xab,0xe3,0x1c,0x55,0x8d,0x74,0xe0,0xbd,0x9f,0x66,
+  0xa5,0xd7,0x56,0x53,0x61,0x9a,0xda,0xed,0x9c,0x81,0xfe,0xdd,0x78,0x3e,0xf1,0x97,
+  0xf3,0x16,0x0,0xe,0xe,0xe,0x6a,0xb5,0xda,0xe7,0xcf,0x9f,0x7f,0xfa,0xe9,0xa7,
+  0x67,0xcf,0x9e,0xf5,0xf7,0xf7,0xdf,0xb9,0x73,0x27,0x16,0x8b,0x45,0x22,0x91,0xe1,
+  0xe1,0xe1,0x40,0x20,0x70,0x74,0x74,0x54,0xfd,0x92,0x55,0xf9,0x8,0xa9,0x7b,0x74,
+  0x74,0x84,0xc7,0x2c,0xd6,0x1c,0x48,0xb3,0x5c,0x70,0xc,0x66,0x70,0x16,0x24,0xe2,
+  0x57,0x3e,0xb9,0xe5,0x14,0xe5,0xe1,0x5c,0x49,0xc7,0x72,0xa7,0x54,0x87,0x7,0x6f,
+  0x3d,0x70,0x6a,0xea,0x22,0x3c,0x9e,0x27,0xae,0x42,0xdb,0x7b,0x8c,0x4e,0xfb,0xb0,
+  0x36,0x15,0xe0,0xec,0xed,0x37,0x7d,0x89,0x9c,0x3b,0xb0,0x17,0x6f,0x99,0xfd,0x8b,
+  0xd1,0x9,0xbc,0x5,0x87,0xba,0x44,0x48,0x62,0x29,0x9a,0xc4,0xf8,0x15,0xff,0xd2,
+  0xaf,0xc8,0x5b,0xb4,0x9c,0xb9,0x33,0x19,0xa9,0x4b,0x3e,0x5e,0x8a,0x0,0x71,0x83,
+  0x99,0x2c,0x61,0x72,0x56,0x91,0xa6,0x25,0xb3,0xd9,0x1d,0xf8,0x21,0xf5,0x2b,0x45,
+  0x80,0xae,0xa,0x75,0x3,0xe7,0xfe,0x74,0xf2,0x6,0x2f,0xe1,0xd1,0xf7,0x16,0xa0,
+  0x13,0xda,0xf1,0xd3,0xcb,0xd5,0x92,0xf9,0x44,0x70,0xe5,0x89,0x3e,0x61,0x60,0x7b,
+  0x0,0xf1,0x2f,0x38,0x53,0x62,0x64,0x26,0x7e,0xc6,0xd,0xb1,0x34,0xb3,0xa5,0x2,
+  0x3c,0x7e,0xcb,0x2d,0x6a,0x6e,0xf4,0xd2,0x56,0x5b,0xa5,0x71,0x49,0x63,0xc0,0x39,
+  0x96,0x9e,0x9a,0x42,0x2,0x63,0x7a,0x2a,0xae,0xd8,0xaf,0xa,0x69,0x11,0x57,0xfb,
+  0xa4,0xd6,0x2e,0x3a,0x16,0x1e,0x26,0x2e,0xb9,0x73,0xf1,0x60,0x3,0xa4,0x56,0xaf,
+  0x93,0x99,0xad,0x69,0xf0,0xd6,0xbd,0x46,0x82,0x47,0x74,0x14,0xb6,0x61,0x80,0xb8,
+  0x4a,0x1c,0xee,0x65,0x87,0xee,0x29,0x8d,0xa7,0xef,0xb9,0x4d,0xf1,0x2b,0x84,0x2e,
+  0x75,0xbb,0xb8,0x10,0xf4,0x34,0x86,0x70,0xc8,0xee,0x45,0x4e,0x22,0x3f,0x69,0x6e,
+  0x85,0xbc,0x45,0x6f,0x16,0x8f,0x9,0x91,0x3e,0xe4,0x13,0x51,0xa2,0x5f,0x2f,0x4b,
+  0xe9,0x8,0x0,0x3c,0x42,0x4b,0x2a,0x97,0x88,0xd,0xce,0xe2,0xd,0xb7,0x82,0xbd,
+  0x8a,0xbc,0x85,0x36,0xa8,0x6b,0xdb,0x36,0x2e,0x33,0xe6,0x50,0xd5,0x1,0xc3,0x30,
+  0x4e,0xdb,0x4e,0xa5,0x52,0x31,0xc,0xc3,0x34,0xcd,0x60,0x30,0xc8,0xcf,0x86,0x15,
+  0x42,0x98,0xe6,0x87,0x58,0x2c,0x7e,0x5a,0xd9,0x3c,0x7a,0x69,0xaf,0x7a,0xe7,0x48,
+  0x72,0x2a,0x8,0x21,0x70,0xf7,0x65,0x22,0xf1,0xe0,0x12,0xba,0x73,0xa3,0xc7,0x9,
+  0xe7,0x20,0x67,0x90,0x90,0x8a,0xa2,0x90,0x3a,0x45,0xb2,0x91,0xda,0x44,0x1a,0xa3,
+  0x99,0xdd,0xd4,0x3b,0xd5,0xdb,0xb8,0x5d,0x56,0x9a,0xb2,0x12,0x5d,0x25,0xd5,0xca,
+  0x63,0x3f,0x3d,0x8d,0xc0,0x32,0x70,0x75,0x66,0xb6,0x6e,0x9c,0x9a,0xba,0x95,0x4a,
+  0x5,0xd3,0x94,0xf2,0x35,0x89,0x43,0x43,0x83,0xa7,0xa7,0x6e,0xd1,0xb2,0xac,0x68,
+  0x34,0x9a,0xcf,0xe7,0xc2,0xe1,0xf0,0xf0,0xf0,0x70,0xa1,0x50,0xc8,0xe7,0x73,0xb3,
+  0xb3,0x73,0x95,0x4a,0x25,0x93,0xc9,0x9c,0x13,0x61,0x8a,0x96,0x65,0xb5,0x4d,0x98,
+  0xb3,0x4b,0x92,0x4e,0xaf,0x6,0x83,0x6a,0x2c,0x16,0x3f,0xa3,0x24,0xa7,0xc2,0x52,
+  0x32,0xa9,0xe,0xa8,0xe1,0x70,0xd8,0x34,0x4d,0x1c,0xd2,0x4b,0xe8,0xd4,0xd,0xae,
+  0x6c,0x89,0xc3,0xdc,0x12,0x46,0x4d,0x8b,0xc5,0x28,0x38,0xe4,0x56,0xb9,0x3d,0x2c,
+  0x60,0xa3,0xb0,0x35,0x8f,0x9c,0xa8,0x4a,0xe3,0xae,0x5a,0x6e,0x4e,0x73,0xa2,0x92,
+  0x24,0x57,0x9d,0xb7,0xd0,0x6,0x75,0xd,0xc3,0x30,0xc,0x43,0x51,0x94,0xb7,0x6f,
+  0xdf,0x58,0x96,0x35,0x3b,0x3b,0x77,0x46,0x4f,0x2c,0x3e,0x58,0xc7,0xc7,0xc7,0xb8,
+  0x5e,0x4a,0x51,0x14,0x4d,0xd3,0x9e,0x3c,0x69,0x99,0x62,0xb2,0xd,0xb4,0x2d,0xe1,
+  0xd9,0x25,0xf9,0xf8,0xf1,0x13,0x2e,0xff,0x8a,0xc5,0xe2,0xe7,0xf2,0x32,0xf2,0x3,
+  0x51,0x11,0xf7,0x13,0x89,0xe1,0xe1,0xe1,0xb7,0x6f,0xdf,0xc0,0x65,0xb9,0xca,0x25,
+  0x70,0x83,0x99,0xeb,0x3a,0x24,0x64,0xb5,0x5a,0xa5,0xc8,0x2d,0xaa,0x68,0x54,0x92,
+  0xe4,0xd3,0x2,0x87,0xba,0xc0,0xa2,0xb8,0x78,0x2f,0x12,0x63,0x7b,0x1b,0x83,0xb1,
+  0xdc,0x2a,0x96,0xbc,0xc7,0x3d,0x57,0x30,0x2,0xe4,0x81,0x36,0xe7,0xba,0x6e,0x37,
+  0x32,0x86,0x2e,0x4d,0xf3,0x3,0x19,0xcf,0xa6,0x69,0x22,0x1b,0xd,0xe3,0x16,0x45,
+  0x2f,0xd1,0xde,0xc6,0xa5,0x82,0xc0,0x8e,0xdb,0x5,0x67,0x1b,0xc0,0xce,0xce,0x8e,
+  0xa6,0x69,0xb6,0x6d,0x93,0x9,0x8d,0x55,0xb8,0x4d,0x6e,0xdb,0x76,0x30,0x18,0x2c,
+  0x95,0x4a,0x42,0x94,0x79,0xe3,0x68,0xdf,0x82,0xcb,0x80,0x6f,0x1a,0x28,0x96,0x4a,
+  0x92,0x18,0xfc,0x16,0xb0,0x2f,0x4d,0xd3,0x70,0xef,0x8e,0xa6,0x69,0xd9,0xec,0x3b,
+  0x0,0x40,0x12,0xf2,0xcf,0xd8,0x2,0x8a,0x44,0x17,0x9d,0x6d,0x3,0x82,0xc7,0x7e,
+  0x9d,0x5e,0x4c,0x5c,0xea,0x4c,0xbd,0xbb,0xdb,0x6f,0x25,0xb3,0x74,0xcb,0xd2,0x38,
+  0xd8,0xb6,0xd,0xce,0xde,0x49,0x1a,0x52,0xbe,0xe2,0x12,0x47,0x8f,0x2f,0xcf,0xc2,
+  0x8,0xb3,0x7b,0xe8,0xa8,0x29,0xba,0x1d,0xb7,0x0,0x4d,0x41,0x6,0x73,0x20,0xf0,
+  0x25,0x84,0x81,0xb4,0x44,0xa7,0x14,0xd2,0x15,0xa3,0x47,0x64,0x1e,0x3,0x0,0xf2,
+  0x96,0xc8,0x8c,0x7c,0x26,0x3d,0x89,0xcd,0x4a,0x61,0x21,0xae,0x45,0xe9,0x33,0xf7,
+  0x45,0x1,0xf3,0x2a,0x7f,0x35,0xa4,0x45,0x28,0x3f,0xfe,0xf8,0x63,0x7b,0x35,0x6d,
+  0xdb,0x2e,0x97,0xcb,0xd1,0x68,0x14,0xbf,0x2e,0x2f,0xff,0xb6,0xb1,0xbe,0x71,0x58,
+  0x3d,0xdc,0xdb,0xdb,0x8b,0x46,0xa3,0xe9,0xf4,0x6a,0x26,0x93,0xa9,0xd7,0xeb,0xbb,
+  0x3b,0xbb,0x7f,0x14,0xa,0x23,0xa3,0xa3,0x7d,0x7d,0x7d,0xa6,0x69,0xfe,0xfa,0xeb,
+  0x8b,0x7a,0xbd,0x5e,0x78,0x5f,0x38,0xac,0x1e,0x2,0x40,0x34,0x1a,0x5d,0x5e,0xfe,
+  0xad,0x56,0xab,0xf5,0xf5,0xf5,0xfd,0xfe,0xfb,0xef,0x42,0x88,0x42,0xa1,0x30,0x3c,
+  0x3c,0x9c,0x4c,0x3e,0xbf,0x7d,0xfb,0x36,0x0,0x50,0x95,0x4d,0x73,0x73,0x63,0x63,
+  0xe3,0x9f,0x13,0x13,0x0,0xb0,0xb8,0xb8,0x70,0x70,0x50,0x29,0x16,0x8b,0xbc,0x71,
+  0x21,0xc4,0x52,0x32,0xb9,0xb7,0xb7,0x77,0x58,0x3d,0x5c,0x5f,0x5f,0xaf,0x56,0xf,
+  0xc2,0xe1,0x88,0x24,0x24,0xa2,0x69,0xc9,0xf7,0xef,0xf3,0xeb,0xeb,0x59,0xbc,0x5,
+  0x5e,0x1d,0x25,0xf9,0xf4,0xe9,0x53,0x32,0xf9,0xbc,0x58,0xdc,0x3d,0x3e,0x3e,0xda,
+  0xd8,0xc8,0x55,0xab,0x7,0xd9,0x6c,0xb6,0x5c,0x2e,0x17,0xa,0x5,0x2c,0x29,0x84,
+  0x78,0xf5,0x6a,0x65,0xd3,0xdc,0x3c,0xac,0x1e,0xee,0xee,0xec,0x6e,0x6d,0x6f,0x45,
+  0xa3,0xd1,0xf7,0xef,0xf3,0x85,0x42,0x61,0x6f,0x6f,0x6f,0x7f,0x7f,0xbf,0x56,0xab,
+  0xad,0xaf,0x67,0x51,0x12,0x1a,0x1c,0xea,0x88,0xb7,0xbf,0xb5,0xb9,0x8d,0xd5,0xdd,
+  0x32,0x1f,0x56,0xf,0xcb,0xe5,0xf2,0xeb,0xd7,0xaf,0x7,0x7,0x7,0x71,0xad,0xef,
+  0xf2,0xf2,0x6f,0xd8,0x29,0x5d,0x5c,0x5c,0x5c,0x0,0x80,0xf2,0xe7,0xf2,0xfe,0xfe,
+  0xde,0xe6,0xe6,0x26,0xe,0x69,0xbd,0x5e,0xdb,0xde,0xde,0x1a,0x1d,0x35,0x70,0xf4,
+  0xf6,0xf7,0xf7,0xb1,0xfd,0xff,0x3d,0x7b,0x36,0x38,0x38,0x18,0x8,0x4,0x9a,0xe,
+  0x5d,0x32,0xf9,0xbc,0x5c,0x2e,0xef,0xee,0xec,0xf6,0x7,0x83,0xbc,0xcc,0xc6,0xfa,
+  0xc6,0x8d,0x50,0xc8,0x83,0xbd,0x48,0x3f,0xfc,0xdc,0xe3,0x84,0x79,0x38,0x91,0x88,
+  0x4e,0x4a,0xe3,0xd2,0x7f,0x85,0x21,0xd0,0x98,0x26,0x4a,0x4a,0x76,0x21,0x45,0x80,
+  0xa8,0x3a,0x9f,0xdf,0xba,0xe7,0xc6,0x5f,0xd,0x6f,0xe1,0x7c,0x3d,0xcc,0xea,0x80,
+  0x8a,0xd6,0xaf,0x10,0x22,0x97,0xcb,0xcf,0xcd,0x3d,0xd4,0x34,0x4d,0x51,0x94,0xff,
+  0xfe,0xf2,0xb,0x3a,0x7b,0x32,0x6b,0x6b,0x93,0x93,0x93,0xb1,0x58,0x1c,0x1f,0x44,
+  0x9e,0x89,0x46,0xd3,0xb4,0xc9,0xc9,0x49,0xb4,0xc0,0xf1,0x65,0x8f,0xed,0xa4,0x52,
+  0x2f,0x13,0x89,0x19,0xd4,0x3,0x4b,0x4b,0xc9,0x74,0x7a,0x75,0x7a,0xfa,0x4b,0xd2,
+  0x46,0xec,0x6b,0x71,0x61,0x1,0x1b,0x5f,0x5f,0x7f,0x47,0x2,0x98,0xa6,0x99,0x4a,
+  0xbd,0xa4,0x92,0x12,0x5a,0x95,0x2c,0x16,0x8b,0x8f,0x1e,0x3d,0x56,0x55,0x35,0x9b,
+  0x7d,0x97,0xcf,0xe5,0xa7,0xa7,0xe5,0x8a,0xe1,0x70,0x38,0x16,0x8b,0x8f,0x8c,0x98,
+  0xa9,0xd4,0x4b,0xbc,0x11,0xaa,0x5e,0x2a,0x95,0x44,0x59,0x3c,0x7a,0xfc,0x18,0xc5,
+  0x5e,0x5c,0x5c,0xb0,0x6d,0x3b,0x16,0x8b,0x5b,0x96,0x85,0xb5,0x50,0x9d,0x62,0x8f,
+  0xdb,0x5b,0x16,0x76,0x64,0xdb,0xf6,0x4a,0x2a,0xa5,0x69,0x26,0x6a,0x45,0x2c,0x89,
+  0x9c,0x91,0x16,0x5a,0x99,0xe6,0x7,0x92,0x39,0x9d,0x5e,0xb5,0xed,0x5d,0xc3,0x30,
+  0x52,0xa9,0x65,0x0,0x98,0x9d,0x9b,0x53,0x55,0x15,0x25,0x9,0x85,0x42,0x4f,0x9e,
+  0xfc,0x67,0x7e,0xfe,0xe9,0xfd,0x44,0x2,0x75,0x38,0xe,0xa9,0x69,0x9a,0x99,0xb5,
+  0x35,0x0,0xb0,0x6d,0x5b,0xd,0xaa,0x98,0x2a,0xc0,0xb6,0x6d,0x51,0x11,0xa1,0x50,
+  0xc8,0x63,0xe8,0xc6,0xc6,0xc6,0x71,0xf0,0x17,0x17,0x16,0x22,0x23,0x61,0xbc,0x9e,
+  0xcd,0xbe,0x5b,0x49,0xa5,0xf0,0x66,0x9b,0xa2,0xa7,0x71,0xd5,0x31,0x2a,0x43,0xda,
+  0xf4,0xd3,0xeb,0x44,0x80,0x30,0xea,0x4b,0xc5,0x68,0x96,0x2b,0x4d,0x44,0x39,0xdb,
+  0xe9,0x2b,0x3a,0xba,0x9a,0x1a,0xc3,0x92,0xbe,0x85,0x4e,0xdd,0xb5,0x77,0x46,0x9c,
+  0x27,0x75,0xc3,0x61,0xe7,0x84,0x4e,0x55,0xc5,0x47,0x13,0x0,0x76,0x76,0x76,0xf0,
+  0xa2,0x10,0x42,0x54,0x84,0x61,0xdc,0xc2,0x2,0x91,0x91,0x30,0x25,0xd6,0x68,0x85,
+  0x52,0xa9,0xa4,0x6,0x55,0xb2,0xdf,0xc6,0xc6,0xc6,0x33,0x6b,0x6b,0xc8,0xa8,0x91,
+  0x91,0x2f,0x17,0x89,0xff,0xd3,0xd3,0x77,0xd1,0xfc,0x13,0x42,0x48,0x5b,0x88,0x25,
+  0xb4,0x2a,0xa9,0xeb,0x3a,0xca,0xac,0x69,0x7a,0x26,0x93,0x71,0x57,0x44,0xbb,0x11,
+  0x69,0xc6,0x3f,0x3,0x80,0x61,0x18,0x41,0xe7,0x4c,0xc3,0x52,0xa9,0xe4,0xae,0x4b,
+  0xb0,0xed,0xdd,0xc8,0x48,0xd8,0xe9,0x48,0x8b,0x8c,0x84,0x6d,0x7b,0xd7,0x30,0xfe,
+  0x41,0x6d,0xe2,0x4c,0xc1,0x9d,0x4e,0x59,0x94,0x85,0x69,0x9a,0xa1,0x50,0x88,0x78,
+  0x55,0xb2,0xf7,0x26,0xa7,0xa6,0xb0,0x98,0x61,0x18,0x99,0xb5,0xb5,0x52,0xa9,0xd4,
+  0x54,0x19,0x86,0x42,0x21,0xcc,0x55,0x60,0xdb,0x45,0xcc,0x4d,0x8b,0x1e,0x6f,0x35,
+  0xa8,0xaa,0xaa,0xea,0x31,0x74,0x64,0xcf,0x8b,0x8a,0x98,0x98,0x88,0xd3,0x38,0x64,
+  0x32,0x19,0x8f,0xb5,0xa2,0xa4,0x69,0xe9,0x73,0x2f,0x5b,0x18,0x8c,0x1e,0x29,0x3a,
+  0x68,0xab,0xee,0xe4,0x8e,0x94,0xaa,0xf3,0xaf,0x44,0x45,0x8c,0x27,0x71,0x26,0x93,
+  0xf3,0x59,0xd2,0xea,0x70,0x65,0xa3,0x3e,0x3e,0x71,0x51,0x71,0xdd,0x52,0xa9,0xb4,
+  0x94,0x4c,0xe2,0xe3,0x82,0x19,0x24,0xa4,0xe3,0x4b,0x82,0x41,0xf5,0x44,0xea,0xa,
+  0x51,0xe6,0x9a,0x39,0x18,0xc,0x52,0xae,0xc,0xf7,0xb2,0x7e,0x8c,0x88,0x98,0xe6,
+  0x26,0xf5,0xd8,0xba,0x59,0xbf,0x25,0xfd,0x43,0x51,0x14,0xd3,0xfc,0x63,0x25,0x95,
+  0xa2,0x8c,0x19,0xad,0xf0,0xf1,0xe3,0x27,0x7a,0xc7,0x1,0x40,0x30,0xa8,0x5a,0x96,
+  0x75,0xa2,0xe3,0x19,0x15,0x78,0x2a,0xf5,0x12,0x0,0xc,0x63,0x74,0x72,0xf2,0x8e,
+  0xaa,0xaa,0xa2,0xd2,0xb0,0x11,0x42,0x1d,0x50,0x5b,0xbd,0xb3,0x70,0xd8,0x4d,0xd3,
+  0xac,0x54,0x4,0xa6,0x1,0xc1,0x6c,0x3b,0x21,0xed,0x6,0xf8,0x18,0x10,0xfc,0xdf,
+  0xa1,0x29,0xce,0x2f,0x7a,0x53,0x17,0x21,0x99,0xca,0x14,0xbf,0x45,0xf6,0x82,0xcb,
+  0xed,0x2c,0xb1,0x4e,0xd2,0xc0,0x9c,0xa8,0xee,0x9f,0xa4,0xd9,0x6c,0x97,0xba,0xa7,
+  0x86,0x6d,0xdb,0x68,0x52,0x6a,0x9a,0xae,0x69,0xda,0xd2,0x52,0xf2,0x22,0x7a,0x91,
+  0xf0,0xea,0xd5,0xa,0x0,0x24,0x12,0x33,0xb8,0xc1,0x28,0x99,0x7c,0x7e,0xf6,0x92,
+  0xfe,0xf1,0xf6,0xed,0x9b,0xed,0x2d,0x6b,0x72,0x6a,0x2a,0x14,0xa,0xa9,0xaa,0x3a,
+  0x3f,0xff,0xf4,0xec,0x6d,0x4a,0x98,0x9d,0x9d,0x13,0x42,0xac,0xaf,0xbf,0xdb,0xde,
+  0xb2,0x96,0x92,0x49,0xf,0x7b,0xb5,0x29,0x74,0x5d,0x17,0xa2,0xfc,0xf1,0xe3,0xa7,
+  0xb1,0xb1,0x71,0x70,0xf2,0x6c,0xe1,0x4b,0xc4,0xe7,0x80,0xcc,0xcd,0x3d,0xe4,0x5f,
+  0x79,0x28,0x5e,0x2,0x91,0x8a,0x7b,0x8c,0x11,0x81,0x40,0x80,0x16,0x2a,0x93,0xca,
+  0x85,0x46,0x15,0x2d,0xcd,0x93,0xa1,0xd1,0x30,0xe6,0x6c,0x94,0xd4,0xaf,0xbb,0xe2,
+  0x57,0x8c,0xb,0xa2,0x6e,0x51,0xd7,0xf5,0x3f,0x5d,0xaf,0x65,0x1,0xce,0x7f,0x9a,
+  0x5c,0xc7,0x52,0x6e,0xb4,0xa6,0x50,0xd5,0x1,0x9e,0x2,0xa,0x9b,0x6d,0x55,0xb8,
+  0x58,0x2c,0xe2,0xec,0x1a,0x0,0xbc,0x4d,0x56,0xff,0x25,0xfd,0xc3,0xb2,0xac,0xb1,
+  0xf1,0x31,0xc9,0x59,0xdd,0x14,0x43,0x43,0x83,0xfc,0xde,0xf7,0xf7,0xf7,0xe8,0xa8,
+  0x41,0xf,0x90,0xe7,0x79,0x7a,0xfa,0xae,0xa6,0x99,0xa8,0x7e,0x75,0x5d,0xb7,0xed,
+  0x22,0x51,0x48,0x94,0x85,0x47,0xce,0xfa,0xa1,0xa1,0x41,0xcb,0xb2,0x8a,0xc5,0xe2,
+  0xb7,0xdf,0x4e,0xa2,0xaa,0xc7,0xcf,0xe0,0x63,0x40,0xc8,0x86,0xa7,0x1b,0xcc,0x64,
+  0x5e,0x4b,0xd9,0x8b,0x38,0xb8,0x26,0x94,0x96,0x34,0x22,0x99,0x15,0x45,0xe1,0x6b,
+  0x9b,0xdd,0x15,0xdd,0xd,0x92,0xae,0x96,0x4a,0x36,0x55,0xce,0x7f,0x7,0x5c,0xd4,
+  0xf4,0x5d,0x94,0x5,0x22,0x9d,0x5e,0x25,0x2b,0x57,0xd7,0xf5,0x37,0x6f,0x32,0x42,
+  0x8,0xdb,0xb6,0xd1,0x3c,0xf3,0x6,0xee,0x83,0x4d,0xa7,0x57,0xb1,0x4a,0x3e,0x97,
+  0xe7,0xa6,0xa6,0x4,0x35,0xa8,0x9a,0xe6,0x1f,0x0,0x60,0xdb,0x36,0xba,0x64,0xce,
+  0x5e,0xd2,0x3f,0xfa,0xfb,0xaf,0x7d,0x59,0xa9,0x22,0x4,0x2a,0x31,0x82,0x94,0xfb,
+  0xca,0x30,0xfe,0x61,0x9a,0x9b,0x48,0xc5,0x6c,0xf6,0x9d,0x69,0x6e,0xe2,0x44,0xf7,
+  0x44,0xe4,0x73,0x79,0x7c,0x29,0xd8,0xf6,0x2e,0x9a,0xb5,0xe1,0x70,0x38,0x9f,0xcb,
+  0xe3,0x1,0x2,0xe9,0xf4,0x2a,0x38,0x23,0xd6,0x14,0x9a,0x76,0x93,0xde,0xa1,0x9a,
+  0xa6,0xa3,0xa7,0xa,0x39,0xe9,0x67,0x40,0x74,0x5d,0xcf,0xe7,0x73,0xf8,0x3f,0xcd,
+  0x64,0x5e,0x97,0xec,0xbd,0x13,0xe3,0x43,0x3d,0x8e,0xf,0x99,0x83,0xb2,0x43,0xf5,
+  0x3b,0x8,0x32,0xf4,0xb7,0x0,0x1d,0x35,0xc2,0x3d,0xcc,0xdc,0xb7,0xfc,0x75,0xdb,
+  0xc6,0x4d,0x71,0x21,0x5a,0xd7,0x30,0x6e,0x59,0x96,0x85,0x53,0xa3,0xf1,0xf1,0x31,
+  0xc3,0x18,0xc5,0xc7,0xf7,0xde,0xbd,0xfb,0x4b,0xc9,0xe4,0xe2,0xe2,0x82,0x1a,0x54,
+  0xd,0x63,0x54,0x4a,0x95,0x88,0xce,0xa1,0xf9,0xf9,0xa7,0x89,0xc4,0x97,0xe3,0x2,
+  0x54,0x55,0xbd,0x9f,0x48,0xac,0xa4,0x52,0xb9,0x5c,0x1e,0x9b,0xf2,0x58,0xd5,0x30,
+  0x39,0x35,0x95,0x4a,0xbd,0xcc,0xe5,0xf2,0x6a,0x50,0xc5,0xcf,0xad,0xb4,0x9f,0xff,
+  0x92,0xfe,0x31,0x3e,0x3e,0xb1,0x92,0x4a,0xcd,0xcf,0x3f,0xc5,0x36,0x45,0xf9,0x4b,
+  0xe,0xc7,0x70,0x38,0x9c,0xc9,0x64,0xb6,0xb7,0xac,0xb1,0xf1,0x31,0xe7,0x36,0xb5,
+  0x44,0x62,0x26,0x95,0x7a,0x89,0x9e,0xb0,0x44,0x62,0x6,0xe3,0xd8,0xde,0xed,0xf3,
+  0x21,0x55,0x83,0x2a,0x26,0x88,0x8d,0xc5,0xe2,0x95,0x8a,0x40,0xfb,0x16,0x2f,0x4a,
+  0x74,0xa2,0x21,0x7d,0xf4,0xe8,0x31,0x7a,0xaa,0xd0,0x6c,0x41,0xc6,0x92,0x9,0xe3,
+  0x67,0x40,0xee,0xdd,0xbb,0xff,0xea,0xd5,0x8a,0x24,0x40,0x17,0x7f,0x21,0x7a,0xb2,
+  0xd9,0xec,0x5,0x35,0xcd,0x43,0xff,0x7e,0xae,0x83,0xb3,0x32,0xc1,0xfd,0x2b,0x3e,
+  0xd9,0x1e,0x93,0x2b,0x5e,0xfd,0xc4,0x62,0xa7,0x2a,0xe9,0x1f,0xa7,0x12,0xbe,0x55,
+  0x61,0x6f,0xb4,0xd1,0x94,0xcf,0x8e,0x7c,0xe,0x88,0xcf,0x7f,0x44,0x17,0x97,0x80,
+  0xb,0xa4,0x6e,0x17,0x5d,0x74,0x71,0x71,0xf8,0xa,0x43,0xd5,0x5d,0x74,0xf1,0x77,
+  0x40,0x97,0xba,0x5d,0x74,0x71,0x25,0xd1,0xa5,0x6e,0x17,0x5d,0x5c,0x49,0x4,0xb6,
+  0xb7,0xb7,0x9b,0xfe,0x10,0x89,0x44,0x2e,0x59,0x94,0x2e,0xba,0xe8,0xc2,0x3f,0xfe,
+  0xf,0xd,0x28,0xea,0xf0,0x6b,0xc6,0x29,0x94,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+  0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/layer-sound.png
+  0x0,0x0,0x3,0x72,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x13,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0xf4,0xc4,0x44,0x62,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x3,0x4,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0x60,0xc0,0xf,0x84,0x58,0x59,0xd9,0x3f,0x2,0xe9,0xff,0x9a,0x9a,0x9a,0x33,0xd0,
+  0xe4,0x18,0x81,0xd8,0x3,0x88,0xd7,0x3,0xb1,0x30,0x48,0x0,0x20,0x80,0x98,0xf0,
+  0x18,0x24,0x29,0x22,0x2a,0x77,0x44,0x5d,0x5d,0x83,0x6d,0xd7,0xae,0x5d,0xc,0x22,
+  0x22,0x22,0xb1,0x30,0x4d,0x40,0x60,0x6,0xc4,0x9b,0x80,0x58,0x1f,0x88,0x41,0xe2,
+  0x6f,0x41,0x82,0x0,0x1,0xc4,0x8c,0xcd,0x14,0x76,0x76,0x76,0x45,0x61,0x11,0xb9,
+  0x7d,0x6e,0x1e,0xd9,0xea,0xaa,0xca,0x3c,0x4c,0xfa,0xfa,0xfa,0x8c,0x9c,0x9c,0x9c,
+  0xac,0x4f,0x9e,0x3c,0xf9,0xf4,0xf6,0xed,0xdb,0xc3,0x40,0x25,0x1c,0x40,0xbc,0x8,
+  0x88,0xf7,0x1,0xf1,0x2f,0x98,0x3e,0x80,0x0,0xc2,0x70,0x19,0x1b,0x1b,0x9b,0xa6,
+  0x80,0x90,0xec,0xfe,0xd4,0xcc,0x59,0x2a,0x9f,0x3e,0x5c,0xfd,0x64,0x65,0x65,0x5,
+  0x56,0x63,0x60,0x60,0xc0,0xc0,0xc5,0xc5,0x15,0xe,0x55,0x76,0x17,0x88,0x3f,0x43,
+  0xd9,0x2c,0x40,0xec,0x8,0xc4,0xe9,0x0,0x1,0xc4,0x2,0x15,0x0,0xb9,0x50,0x84,
+  0x95,0x95,0xd5,0x5b,0x54,0x4c,0xb9,0x21,0x39,0x63,0xba,0x2c,0x37,0xb7,0x0,0xc3,
+  0xbb,0xb7,0xf,0x98,0xa5,0xa5,0xa5,0x19,0x18,0x19,0x19,0x19,0x80,0x2e,0x63,0x0,
+  0xca,0x8b,0xfd,0xff,0xff,0x1f,0xcc,0x7,0x2,0x63,0x20,0xce,0x6,0x62,0x1,0x20,
+  0x6,0xb9,0x76,0x3,0x40,0x0,0x81,0xc,0x63,0x13,0x12,0x92,0x3e,0x23,0x29,0xa5,
+  0x26,0x7e,0xed,0xea,0x41,0xd1,0x94,0xcc,0x59,0x8c,0x5c,0x5c,0xbc,0x10,0x67,0x33,
+  0x83,0x6d,0x65,0x0,0x19,0x0,0xf5,0x3e,0x37,0x23,0xc4,0x24,0x90,0xc0,0x2b,0x20,
+  0x2e,0x85,0x85,0x17,0x8,0x0,0x4,0x10,0x8b,0xbd,0xbd,0xfd,0x4f,0x31,0x49,0xa7,
+  0x5f,0xff,0x80,0xf2,0xc6,0x66,0xbe,0xc,0x30,0x83,0x40,0xe0,0xf6,0xad,0x5b,0xac,
+  0x35,0x35,0xb5,0xc,0x36,0x36,0xd6,0xc,0xde,0xde,0xde,0xc,0xfc,0xfc,0xfc,0x3c,
+  0x40,0x61,0x7e,0x20,0xfe,0x0,0xc4,0x8f,0xd1,0x83,0x8,0x20,0x80,0xc0,0xe1,0x21,
+  0x25,0xa3,0xce,0xf6,0xee,0xcd,0xa3,0xaf,0xc2,0x22,0xb2,0x8c,0xc8,0x92,0x4a,0xca,
+  0x2a,0xc,0xe9,0xe9,0x59,0xc,0x17,0x2f,0x5e,0x66,0xf8,0xfa,0xf5,0x2b,0xc8,0xab,
+  0xff,0x80,0xc2,0xdc,0x50,0x69,0x71,0x20,0x2e,0x80,0xba,0xae,0x1a,0x88,0xeb,0x1,
+  0x2,0x8,0xec,0x8d,0x9f,0x3f,0xbe,0x32,0xfc,0xfa,0xf9,0xfd,0x3f,0x2b,0x2b,0x7,
+  0x5a,0x42,0x62,0x4,0xfb,0x8f,0x9b,0x9b,0x9b,0x41,0x43,0x43,0x83,0xe1,0xfb,0xf7,
+  0xef,0x7f,0x80,0xdc,0x2f,0x50,0x69,0x50,0x4,0x9c,0x4,0xe2,0xdf,0xd0,0x18,0xfd,
+  0x5,0x10,0x40,0x60,0xc3,0xee,0xdc,0x3e,0xfd,0x49,0x4c,0x42,0x99,0xeb,0xc5,0xf3,
+  0x3b,0xff,0x91,0x5d,0xf7,0xe1,0xc3,0x87,0xff,0x7b,0xf6,0xec,0x62,0x70,0x77,0x77,
+  0x65,0x50,0x50,0x50,0x60,0xf8,0xfc,0xf9,0xf3,0x77,0xa0,0xf0,0x27,0xa8,0xf4,0x37,
+  0x20,0x3e,0x8e,0x6c,0x39,0x40,0x0,0xb1,0x1c,0x3c,0x78,0x90,0x5d,0x48,0xe4,0xfe,
+  0xea,0xdf,0xbf,0x7f,0x68,0x7f,0xfe,0xf8,0x4a,0xb9,0xae,0x79,0x3f,0x3,0x37,0x8f,
+  0x20,0x24,0x8a,0x99,0xd9,0x3e,0x67,0x65,0x65,0x8,0x9a,0x9a,0x9a,0x82,0x23,0x81,
+  0x99,0x99,0xf9,0xb,0x90,0xfe,0xf,0x8d,0x4d,0x55,0x20,0xf6,0x6,0xe2,0x65,0xd0,
+  0xc8,0x60,0x0,0x8,0x20,0x50,0x98,0xfd,0x2,0x86,0x97,0x3f,0xd0,0x20,0x15,0x60,
+  0x1a,0x53,0x3b,0xb8,0xa7,0x1,0xe8,0xa2,0x17,0x60,0xc3,0xf8,0xf8,0x25,0xff,0xaa,
+  0xa9,0xa9,0x31,0xb0,0xb0,0x40,0x52,0xd0,0xeb,0xd7,0xaf,0xdf,0x23,0x39,0xe4,0x1e,
+  0x10,0x5f,0x3,0xe2,0x2e,0x20,0x5e,0x1,0xc4,0xae,0x0,0x1,0xc4,0x82,0xec,0xcc,
+  0x5f,0xbf,0x7e,0xdd,0x6,0xba,0x54,0x1a,0xc8,0x7c,0x6a,0x66,0x5d,0x4,0x8c,0x18,
+  0x3,0x5e,0x60,0xaa,0xff,0x2f,0x2c,0x2c,0xcc,0xf8,0xec,0xd9,0x33,0x86,0x1f,0x3f,
+  0x7e,0x9c,0x44,0x52,0xfe,0x17,0x88,0x77,0x41,0x31,0x28,0x86,0xd5,0x1,0x2,0x8,
+  0x5b,0xde,0x7c,0x6,0x34,0x50,0xf8,0xd4,0xd1,0x3e,0x6,0x6e,0x5e,0x71,0xd6,0xfd,
+  0xfb,0xf,0x82,0x3,0x7c,0xfd,0xfa,0xf5,0x1f,0x6f,0xdf,0xbe,0x3d,0x5,0xea,0xc5,
+  0x20,0x20,0xf6,0x81,0x66,0x76,0x10,0x0,0x15,0x6,0xa7,0x0,0x2,0x8,0x5f,0x89,
+  0xc1,0x3,0x4c,0x83,0xff,0xad,0xac,0xec,0x3f,0xff,0xfc,0xf9,0xf3,0xbf,0x9f,0x9f,
+  0xdf,0x75,0x58,0xe2,0x85,0xe6,0xcd,0xa,0x20,0x5e,0xb,0xc4,0x7a,0x30,0x41,0x80,
+  0x0,0x22,0x84,0xd8,0x41,0x6,0x2,0xc3,0xf2,0x7,0x1f,0x1f,0x9f,0x19,0x92,0x61,
+  0xc,0x48,0x69,0x6d,0xa,0x10,0x2b,0x80,0x38,0x0,0x1,0x6,0x0,0xae,0x19,0xe5,
+  0xdb,0xe5,0x56,0x21,0x6,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,
+  0x82,
+    // /home/matthew/pencil_dev/icons/eraser2.png
+  0x0,0x0,0x2,0x65,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x1f,0x0,0x0,0x0,0x18,0x8,0x6,0x0,0x0,0x0,0x2,0xab,0x26,0x81,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+  0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd8,
+  0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+  0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+  0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+  0xb,0x0,0x0,0x1,0xdb,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+  0x3,0x2d,0x0,0x23,0x13,0x2b,0xd8,0xe0,0xff,0xff,0x7e,0x33,0xe2,0x52,0x3,0x10,
+  0x40,0x2c,0xb4,0xb2,0xb4,0x71,0xe7,0xe5,0x74,0x18,0x1f,0x97,0x3,0x0,0x2,0x88,
+  0x91,0x5a,0x3e,0x47,0xb3,0x74,0x26,0x92,0x54,0x7a,0xbd,0xbb,0xee,0x4c,0x6c,0xe,
+  0x0,0x8,0x20,0x8a,0x2d,0xc7,0x63,0x29,0x3,0x21,0x7,0x0,0x4,0x10,0xd9,0x96,
+  0x13,0x69,0x29,0x5e,0x7,0x0,0x4,0x10,0xc9,0x96,0x93,0x61,0x29,0x4e,0x7,0x0,
+  0x4,0x10,0xd1,0x96,0xc3,0x2c,0x7d,0xf7,0xf6,0x95,0xf0,0xe4,0x33,0x2f,0xdf,0x52,
+  0x10,0x53,0x70,0x7,0x0,0x4,0x10,0x41,0xcb,0x91,0x2d,0x5,0x52,0x6f,0xdf,0xbf,
+  0x7f,0xf,0x16,0x5f,0x72,0xf7,0x17,0x3,0xa5,0xe,0x0,0x8,0x20,0x26,0x7c,0x96,
+  0x82,0x30,0xc8,0x52,0x20,0x66,0x0,0x5a,0xa,0xb7,0x18,0x4,0x62,0x94,0xd9,0xc8,
+  0xb2,0x55,0x8b,0xf,0x4c,0x81,0xa3,0xb,0x20,0x80,0x98,0x48,0xb5,0x14,0x19,0x90,
+  0xe2,0x0,0xa8,0xa5,0xc,0xab,0x8f,0x5f,0x65,0xb8,0x7a,0xf5,0xea,0x2c,0x10,0x1b,
+  0x20,0x80,0x50,0x82,0x1d,0x66,0x29,0x72,0xf0,0x12,0x3,0xf0,0x45,0x1,0xc8,0xd2,
+  0x6b,0x9f,0x18,0x40,0x16,0xc2,0xc5,0x56,0x15,0x45,0x80,0x4b,0x3e,0x80,0x0,0x62,
+  0xa2,0xd4,0x62,0x5c,0x21,0x80,0xe6,0x53,0x64,0xa9,0x59,0x30,0x6,0x40,0x0,0x81,
+  0x7d,0x8e,0x54,0x4,0xfe,0x7,0x59,0x4c,0xaa,0xe5,0xc8,0x21,0x80,0xcd,0xa7,0xc8,
+  0x16,0x3,0x7d,0x9d,0x6,0xcb,0x6a,0x0,0x1,0x84,0x5c,0xb6,0x83,0xc3,0x5f,0x50,
+  0x50,0x10,0xcc,0x21,0xd5,0x1,0x4a,0x4a,0x4a,0xc,0xc,0x77,0x6f,0x80,0x7d,0x8a,
+  0x3,0xa0,0x58,0xc,0x2,0x0,0x1,0xc4,0xc8,0xc0,0xc8,0x2,0xf,0x6e,0x98,0xc5,
+  0x30,0xcb,0x89,0x71,0x0,0xc8,0xd2,0x3d,0x7b,0xf6,0x80,0xd5,0xae,0x79,0xca,0x84,
+  0xd3,0x52,0x6c,0x35,0x1c,0x40,0x0,0xc1,0x2c,0x87,0xb,0xa0,0x3b,0x0,0x57,0x28,
+  0x20,0x5b,0xa,0x3,0x68,0x96,0xe3,0xb4,0x14,0x6,0x0,0x2,0x8,0xc5,0xe7,0xc4,
+  0x38,0x0,0x9b,0xa5,0x68,0x96,0x13,0xb4,0x14,0x6,0x0,0x2,0x8,0x9e,0xe0,0x8,
+  0x39,0x0,0xc4,0xc7,0x65,0x29,0x14,0x84,0x87,0x85,0x47,0xad,0x24,0xc6,0x52,0x18,
+  0x0,0x8,0x20,0x78,0x3e,0x27,0xe4,0x80,0xd5,0xab,0x57,0x53,0xcd,0x52,0x18,0x0,
+  0x8,0x20,0x9c,0x85,0xc,0xb2,0x3,0x70,0x58,0x4c,0xb6,0xa5,0x30,0x0,0x10,0x40,
+  0x18,0x15,0xb,0xba,0x3,0x40,0x41,0x4d,0x6d,0x4b,0x61,0x0,0x20,0x80,0x30,0xda,
+  0x70,0xe0,0xaa,0xe,0xea,0x0,0x50,0xb9,0x8e,0xc5,0xd2,0x95,0x94,0x5a,0xa,0x3,
+  0x0,0x1,0x84,0xb3,0x4a,0x5,0x39,0x60,0xd5,0xca,0x65,0xe1,0x20,0x36,0xb5,0x7c,
+  0x8a,0xe,0x0,0x2,0x8,0x6f,0x7d,0x4e,0x4c,0xf3,0x97,0x12,0x0,0x10,0x60,0x0,
+  0x83,0xe1,0x74,0x16,0x50,0xec,0xe9,0x34,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+  0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/move.png
+  0x0,0x0,0x1,0x26,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0xf,0x0,0x0,0x0,0xe,0x8,0x6,0x0,0x0,0x0,0xf0,0x8a,0x46,0xef,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x0,0xb8,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0x60,0xc0,0xf,0x2a,0xf0,0x49,0x2,0x4,0x10,0x3e,0xe4,0xa,0xc4,0xff,0x81,0xd8,
+  0x18,0x97,0x2,0x80,0x0,0xc2,0x87,0xe,0x43,0x35,0x6f,0xc1,0xa5,0x0,0x20,0x80,
+  0x8,0xd9,0xfa,0x1f,0x9f,0xed,0x0,0x1,0x84,0xf,0xb5,0x43,0x35,0xe2,0xf4,0x37,
+  0x40,0x0,0x31,0x21,0xb1,0x15,0x81,0x78,0x26,0x10,0x5b,0xe2,0x31,0x70,0x5,0x10,
+  0x7b,0xc0,0x38,0x0,0x1,0x84,0xac,0xe9,0xf,0x9a,0x53,0xf1,0xe1,0x63,0x20,0x43,
+  0x0,0x2,0x8,0x64,0x33,0xf,0x10,0xb,0x1,0x31,0x33,0x9,0x5e,0xe2,0x7,0xe9,
+  0x1,0x8,0x20,0x64,0x1,0x5d,0x20,0x5e,0xd,0xc4,0x36,0x78,0xfc,0xbc,0x1d,0x88,
+  0xa3,0x60,0x1c,0x80,0x0,0x62,0x41,0x92,0xb8,0xc,0xc4,0xa1,0x4,0x6c,0xf4,0x44,
+  0xe6,0x0,0x4,0x10,0xbe,0xa8,0x7a,0xe,0xb5,0xf9,0x9,0xae,0x40,0x4,0x8,0x20,
+  0x5c,0x88,0xd,0x88,0xef,0x41,0x35,0x5f,0xc2,0xa5,0x8,0x20,0x80,0xf0,0xa1,0x64,
+  0xa8,0xe6,0x10,0x5c,0xa,0x0,0x2,0x88,0x90,0xed,0x1b,0xf1,0x29,0x0,0x8,0x30,
+  0x0,0xa1,0xda,0x26,0xbe,0x2a,0xea,0x46,0xb5,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+  0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/onionStraightAhead.png
+  0x0,0x0,0x4,0x5,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x14,0x0,0x0,0x0,0x15,0x8,0x6,0x0,0x0,0x0,0x46,0xd5,0xce,0xa8,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+  0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x9,0x19,
+  0x1,0x4,0x9,0xc5,0x96,0x8a,0xb4,0x0,0x0,0x3,0x85,0x49,0x44,0x41,0x54,0x38,
+  0xcb,0x9d,0x94,0x6d,0x48,0x5b,0x57,0x18,0xc7,0x9f,0x7b,0xcf,0xbd,0x49,0xd4,0xd4,
+  0xe6,0xe6,0xc6,0x3a,0x6f,0xa8,0x33,0xed,0xd6,0xb1,0xd9,0xb4,0x9b,0x88,0xb0,0x71,
+  0x9,0xea,0x60,0x29,0x58,0xf4,0x8b,0x60,0xf7,0xa1,0x35,0xa9,0xba,0x65,0x8c,0x75,
+  0x5f,0xa,0x93,0xe,0x37,0xd8,0x1b,0x6c,0x20,0xa3,0x1d,0x8c,0x41,0x45,0x94,0xd0,
+  0x42,0xfd,0x20,0x83,0x41,0xf6,0x52,0x18,0x6e,0x9f,0xb6,0x99,0xe2,0xc4,0x64,0xc3,
+  0x9a,0xe8,0x5d,0xd0,0xe4,0xfa,0x92,0x18,0x8d,0x79,0xb9,0x2f,0x39,0x77,0x5f,0x34,
+  0xa6,0xf5,0x6e,0xce,0x3d,0x9f,0x9e,0xc3,0x39,0xe7,0xc7,0xff,0xf9,0xff,0xf,0x7,
+  0xc1,0xbf,0xd4,0xe0,0xe0,0xe0,0xa9,0x58,0x2c,0xd6,0xc6,0xf3,0xbc,0xa9,0xa1,0xa1,
+  0xe1,0xb2,0xaa,0xaa,0xad,0x3c,0xcf,0x57,0x65,0xb3,0xd9,0x2b,0x76,0xbb,0xbd,0xcb,
+  0xe3,0xe9,0x1b,0x48,0x24,0xe2,0xcf,0xe5,0xf3,0xf9,0x58,0xed,0xc9,0xa7,0x6f,0x9b,
+  0xcc,0xc7,0xde,0x20,0xf5,0x40,0xc1,0x60,0xf0,0xc4,0xc8,0xc8,0x88,0x7d,0x6c,0x6c,
+  0xec,0xc5,0xfe,0xfe,0x7e,0xa9,0xa9,0xa9,0xc9,0x3e,0x33,0x33,0xe3,0x6e,0x6c,0x6c,
+  0x9c,0x89,0xc5,0x96,0x5b,0x1d,0x8e,0xd3,0xde,0xf1,0xf1,0x7b,0xc7,0x7a,0x7b,0x7,
+  0x92,0x79,0x45,0x6b,0x7f,0xde,0x75,0x71,0xf4,0xda,0xa7,0x7e,0x83,0xc5,0x5a,0x9b,
+  0x26,0x1e,0x87,0xf9,0x7c,0xbe,0x33,0x81,0x40,0xe0,0xac,0xd3,0xe9,0x5c,0x62,0x18,
+  0xc6,0x49,0x51,0x54,0x57,0x2a,0x95,0xba,0x1f,0xe,0x87,0xdb,0x5d,0xae,0x36,0x67,
+  0x73,0x73,0x4b,0xdc,0x60,0x30,0x3e,0xb9,0x99,0xde,0x9a,0xff,0xfe,0xc7,0xa9,0xf3,
+  0xa7,0x9b,0x5f,0x2e,0x3c,0xd3,0xe4,0xa,0x1,0x0,0x7c,0xf5,0xfe,0x80,0x86,0xf6,
+  0x40,0x93,0x93,0x93,0xdc,0xf4,0xf4,0x74,0xab,0x28,0x8a,0x15,0x13,0x13,0x13,0xf9,
+  0x48,0x24,0xf2,0x36,0xc7,0x71,0xf6,0xa1,0xa1,0xa1,0xa5,0xb9,0xb9,0xd0,0xe5,0x96,
+  0x96,0x97,0xce,0x5d,0xbf,0xfe,0xce,0xd6,0xf6,0x76,0x66,0x7b,0xd4,0x3f,0xfe,0x2c,
+  0x79,0xdc,0xce,0x5c,0xb8,0xf4,0xba,0x52,0x90,0x8b,0x4a,0x65,0x35,0xb3,0x1,0x0,
+  0x10,0x9c,0xfa,0x6,0x28,0x0,0x0,0xbf,0xdf,0xcf,0x79,0x3c,0x9e,0xee,0x68,0x34,
+  0x6a,0xca,0xe5,0x72,0xa8,0xa7,0xa7,0xe7,0x62,0x20,0x10,0x30,0x21,0x84,0xd2,0x57,
+  0xaf,0xf6,0x75,0xdd,0xb8,0xf1,0xde,0x26,0x49,0x22,0xf5,0x83,0x8f,0x3f,0x7c,0x22,
+  0x91,0xcc,0x71,0xee,0x57,0xdf,0x42,0x35,0x75,0x27,0x65,0x3d,0xbb,0x48,0x0,0x80,
+  0x70,0x38,0x6c,0x72,0x38,0x1c,0xf,0x6c,0x36,0xdb,0xba,0x28,0x8a,0xa6,0xce,0xce,
+  0xce,0x39,0x86,0x61,0x92,0x3b,0x3b,0x3b,0x24,0xcf,0xbb,0x54,0xab,0x95,0xc5,0x0,
+  0x0,0x99,0x9c,0x6a,0xec,0xec,0xbd,0xa6,0x18,0x4d,0x15,0xff,0x18,0x64,0x29,0x14,
+  0x8c,0x71,0x69,0x7c,0x45,0x51,0xca,0xc2,0xda,0xb7,0x99,0x42,0x8,0xe,0x2b,0xdd,
+  0x94,0x9,0x82,0xd0,0xf6,0x7b,0xad,0x44,0xc4,0xba,0x8,0x42,0x1f,0x58,0x2c,0x16,
+  0x49,0x7d,0x85,0x47,0xab,0xd2,0x45,0x8a,0xa2,0x8a,0x7b,0xbd,0xd1,0x68,0xc4,0x0,
+  0x0,0x9a,0xa6,0xfd,0x7f,0x20,0xc6,0xb8,0xd4,0xab,0xaa,0x4a,0xee,0xaa,0x26,0x48,
+  0x92,0x3c,0x84,0xaa,0x11,0x87,0x7a,0xf8,0xa8,0x9f,0xfb,0x47,0x48,0xdd,0xd3,0x9a,
+  0xbe,0xc2,0x47,0x83,0x20,0x74,0x55,0x61,0x7c,0x84,0x91,0x49,0x92,0x2c,0x79,0x48,
+  0xd3,0xf4,0x1,0xf,0x49,0x92,0xc4,0x65,0xb2,0xb5,0x23,0x3d,0x9b,0xb2,0xe4,0x9,
+  0x55,0x2d,0x66,0xf7,0xd6,0xd9,0x5c,0x7e,0xeb,0xc0,0xc0,0xda,0x7f,0xf0,0x50,0x51,
+  0x14,0x19,0x0,0x40,0x96,0x65,0x41,0x55,0x65,0x94,0x4e,0xa7,0xab,0x45,0x71,0x55,
+  0x28,0x16,0x15,0xd3,0xce,0x76,0xda,0x82,0x10,0xa5,0xca,0x92,0x84,0x22,0xb,0xb,
+  0x6,0x43,0x85,0x39,0x9,0x0,0x10,0x99,0xfb,0xb5,0x32,0xb9,0xba,0x4c,0x50,0x7a,
+  0x40,0x9a,0xa6,0xd,0x0,0x10,0x15,0x45,0x91,0x3,0x0,0xda,0x60,0x30,0xfe,0x82,
+  0x10,0xaa,0xc2,0x18,0x23,0x73,0x35,0xb3,0xb9,0xb1,0xbe,0x6,0x99,0xec,0x7a,0xde,
+  0x5a,0xd7,0x30,0xaf,0xaa,0x32,0xdc,0xbd,0xf5,0xae,0x45,0xf8,0xe3,0xc1,0x77,0xa9,
+  0xd5,0x95,0xcf,0x74,0x81,0xb3,0xb3,0xb3,0x61,0x41,0x10,0x78,0x9a,0xa6,0xd5,0x42,
+  0x41,0x8e,0xc6,0xe3,0x71,0x73,0x55,0x95,0x39,0xf,0x58,0x93,0x17,0xa3,0x51,0xad,
+  0xd2,0x62,0x5b,0x60,0xb9,0xda,0xf4,0x9f,0xc1,0x9f,0xcd,0xdf,0xde,0xf9,0x22,0xb7,
+  0x91,0x58,0xf2,0x4a,0x92,0xb4,0x4,0x0,0x40,0x3d,0x96,0xec,0x4f,0xc3,0xc3,0xc3,
+  0x28,0x14,0xa,0x9d,0x59,0x5b,0x5b,0xbb,0xeb,0xf5,0x7a,0xeb,0xdb,0xdb,0x5f,0x79,
+  0x8d,0x61,0x98,0x87,0xa3,0xa3,0xb7,0x61,0x51,0x58,0xdc,0x6a,0xb3,0x9f,0x7a,0xa8,
+  0x48,0x79,0xe2,0xce,0xe7,0x83,0x16,0x61,0xe1,0xf7,0xaf,0x53,0x89,0x95,0x9b,0xe5,
+  0x6f,0xa7,0x4,0xcc,0x64,0x32,0xd5,0xf5,0xf5,0xf5,0x75,0x6e,0xb7,0x3b,0x27,0x49,
+  0x92,0xd0,0xdd,0xdd,0x7d,0xd6,0x66,0xb3,0xad,0x60,0x8c,0x97,0x7d,0xbe,0xfe,0x62,
+  0x24,0x32,0xff,0x11,0xf7,0xd4,0xf9,0x4f,0x42,0xbf,0x4d,0x55,0xfe,0x70,0xef,0xcb,
+  0x4c,0x5c,0xf8,0xeb,0xa,0x40,0x21,0xa6,0x9b,0x66,0x47,0x47,0xc7,0xb,0x2c,0xcb,
+  0xf6,0xed,0xf6,0x17,0x58,0x96,0xbd,0xb5,0xbb,0x75,0xae,0xa6,0xe6,0xc4,0x4d,0x0,
+  0x40,0x0,0x0,0x66,0x8b,0x35,0xc8,0xd6,0x72,0x6f,0x1e,0xf8,0x11,0xca,0xea,0x6f,
+  0x77,0xa1,0x84,0x11,0xdf,0xff,0xf0,0xf8,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+  0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/prefs-files.png
+  0x0,0x0,0x10,0xe0,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x3a,0x0,0x0,0x0,0x36,0x8,0x6,0x0,0x0,0x0,0x96,0x79,0x8a,0x53,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x10,0x72,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0x60,0xa0,0xf,0x60,0x4,0x62,0x26,0x28,0x4d,0x31,0xe0,0x66,0x63,0x67,0x10,0xe0,
+  0xe0,0x4,0xb3,0x39,0x59,0xd9,0x18,0x98,0x19,0x99,0x8,0xea,0x1,0x8,0x20,0x16,
+  0x98,0x43,0xd8,0xd9,0xd9,0x79,0xd8,0x39,0x38,0xf8,0xfe,0xff,0xff,0xc7,0xc2,0xf0,
+  0x1f,0xec,0x28,0x26,0x72,0x1c,0xf1,0xff,0xff,0x7f,0x14,0x9a,0x85,0x85,0xe5,0xff,
+  0xf7,0xef,0xdf,0x3f,0xfc,0x2,0x2,0x20,0xf7,0xf,0x10,0xff,0x6,0xe2,0xbf,0xc,
+  0x74,0x6,0x0,0x1,0x4,0xf3,0xe8,0xff,0xa4,0xa4,0xa4,0xa2,0x8a,0x8a,0x8a,0x86,
+  0x8f,0x1f,0x3f,0x7e,0x46,0x8a,0x5,0x84,0xc3,0xff,0xfd,0x67,0xf8,0x7,0xc,0x81,
+  0xff,0xff,0xfe,0x31,0xfc,0xfb,0x7,0x12,0x83,0xd0,0x20,0x79,0x10,0xfe,0x7,0x16,
+  0xff,0xc7,0xf0,0xe7,0xf7,0x1f,0x86,0x1f,0x3f,0x7f,0x30,0xfc,0xfc,0xf9,0x93,0xe1,
+  0xf7,0xef,0xdf,0x8c,0x3c,0x3c,0x3c,0xac,0x7,0xe,0x1c,0x98,0xd2,0xd9,0xd9,0xd9,
+  0x7,0xf5,0xe8,0x37,0x28,0xfe,0x7,0x32,0x96,0x5e,0x1e,0x5,0x8,0x20,0x16,0xa8,
+  0x87,0xfe,0x73,0x71,0x71,0xf1,0x8a,0x8a,0x88,0x80,0x62,0x80,0x17,0x6b,0xc,0x81,
+  0x3c,0x2,0xa5,0x61,0x9e,0x83,0x79,0x10,0xd9,0xa3,0x20,0xc,0x8a,0x3c,0x90,0x47,
+  0xbf,0x7d,0xff,0xc6,0xf0,0xed,0xeb,0x37,0x6,0x7,0x7,0x87,0xbc,0x6f,0xdf,0xbe,
+  0xf1,0xce,0x9a,0x35,0x6b,0xe,0x50,0xfc,0x39,0xd4,0xe8,0x1f,0xd0,0xd8,0xa5,0xb,
+  0x0,0x8,0x20,0x98,0x47,0x99,0x80,0xe,0x64,0xff,0xf3,0xf7,0x2f,0xc3,0xdf,0xbf,
+  0x7f,0xb1,0x26,0x47,0x6c,0x18,0xe6,0x49,0x70,0x6c,0xff,0x3,0xc7,0x37,0x58,0x3d,
+  0x13,0x13,0x13,0x28,0xc0,0x18,0x58,0x59,0x58,0xc1,0xf4,0xa7,0x4f,0x9f,0x58,0x3c,
+  0x3c,0x3c,0x52,0x81,0x66,0xf3,0x4c,0x9b,0x36,0xad,0x1f,0x9a,0x2d,0x3e,0x2,0xf1,
+  0x67,0x7a,0xc5,0x2c,0x40,0x0,0xc1,0x3c,0xca,0xcc,0xc8,0xc8,0x8,0xc2,0xc,0x20,
+  0x8c,0xb3,0x44,0x1,0xca,0x81,0x3c,0x4,0xa3,0x41,0x1e,0x2,0xd1,0x20,0x67,0x33,
+  0x42,0x21,0xc8,0xe3,0xcc,0xcc,0xcc,0x60,0xf5,0x7f,0xfe,0xfc,0x61,0x60,0x63,0x63,
+  0x3,0x7b,0xf6,0xf5,0xeb,0xd7,0xc,0x61,0x61,0x61,0x91,0xc0,0xd8,0xfe,0x3e,0x67,
+  0xce,0x9c,0x19,0x50,0xcf,0xfe,0xa5,0x57,0xcc,0x2,0x4,0x10,0x2c,0x8f,0xe2,0x2d,
+  0x7c,0x60,0x1,0x0,0xf2,0x4,0xcc,0x73,0x20,0x1a,0xb9,0xe0,0x81,0x79,0x1e,0xa6,
+  0x6,0xc4,0xe7,0xe0,0xe0,0x0,0x8b,0xb1,0xb2,0xb2,0x82,0x93,0x32,0x28,0x49,0x3,
+  0xcb,0x81,0x24,0x60,0x0,0x30,0x2e,0x58,0xb0,0x60,0x16,0x34,0x36,0x3f,0x0,0xf1,
+  0x17,0x5a,0xc7,0x2c,0x40,0x0,0xb1,0x10,0x55,0x37,0xa0,0xc5,0x32,0xb2,0x27,0x61,
+  0x6c,0x98,0xe7,0x91,0x93,0x3a,0x28,0x66,0x41,0x9e,0x4,0x61,0x90,0x1c,0x30,0x9,
+  0x33,0xf0,0xf2,0xf2,0x32,0x94,0x94,0x94,0x24,0x2,0xf9,0x4c,0xf3,0xe6,0xcd,0x9b,
+  0xa,0xd,0xe0,0x7f,0xb4,0x8e,0x59,0x80,0x0,0x62,0xc1,0x16,0x73,0xc4,0xc4,0x2c,
+  0xcc,0x73,0x30,0x3e,0x2c,0x46,0x91,0x3d,0xa,0xf2,0x1c,0xc8,0x93,0xc0,0xaa,0xb,
+  0x8c,0x3f,0x7f,0xfe,0xcc,0xc0,0xcd,0xcd,0xd,0x56,0x5b,0x5a,0x5a,0x1a,0xf,0xa4,
+  0x19,0xe7,0xce,0x9d,0x3b,0x83,0x1e,0x31,0xb,0x10,0x40,0x2c,0xe8,0x9e,0xc0,0xe7,
+  0x51,0x6c,0xb1,0xc,0x8b,0x59,0x58,0xec,0x82,0x0,0xcc,0xc3,0x20,0x3e,0xac,0x60,
+  0x2,0xe5,0x55,0x60,0xd5,0x5,0x66,0xf3,0xf3,0xf3,0x83,0xd5,0x14,0x16,0x16,0xc6,
+  0x81,0xe4,0x67,0xcf,0x9e,0x3d,0x5,0x1a,0xb3,0x20,0xc3,0xbe,0xd3,0x22,0x66,0x1,
+  0x2,0x8,0x35,0x46,0x19,0x88,0xf7,0x24,0x2c,0xc6,0x60,0x31,0x8b,0x1e,0x58,0x30,
+  0x31,0x50,0x29,0xe,0x8b,0x59,0x50,0xe1,0x4,0x12,0xe7,0xe4,0xe4,0x64,0x10,0x16,
+  0x16,0x6,0x8b,0x3,0x93,0x71,0x1c,0x50,0x3d,0x13,0xb0,0xea,0x99,0x6,0x8d,0x4d,
+  0x26,0x5a,0x94,0xc6,0x0,0x1,0x84,0x1a,0xa3,0x4c,0xc8,0x31,0xca,0x88,0xd7,0x1e,
+  0x98,0x67,0x91,0xf3,0x29,0x32,0x1f,0x6,0x40,0xf9,0x14,0x84,0x61,0xb1,0xfb,0xe3,
+  0xc7,0xf,0x70,0xac,0x82,0xd4,0x82,0x3c,0xc,0x2,0xe5,0xe5,0xe5,0x31,0xa0,0x80,
+  0x98,0x3a,0x75,0xea,0x24,0xa8,0xc5,0xff,0xa8,0x1d,0xb3,0x0,0x1,0x84,0x91,0x47,
+  0x91,0x1d,0x89,0xdc,0x34,0x45,0x4e,0xa2,0xe8,0x9e,0xc5,0x86,0x91,0x93,0x33,0xc8,
+  0xa3,0xa0,0xa4,0xb,0x12,0x9f,0x3c,0x79,0x32,0x3,0xb0,0x49,0x8,0x16,0x7,0x79,
+  0x54,0x4,0xd8,0x48,0x91,0x91,0x91,0x61,0x88,0x8b,0x8b,0x8b,0x1,0x8a,0x31,0x3,
+  0x3d,0x3b,0xed,0x1f,0xa4,0xe9,0xc5,0x4,0xcd,0xb3,0x7f,0xa9,0x11,0xb3,0x0,0x1,
+  0x84,0x35,0x8f,0xe2,0xf2,0x14,0xa1,0xd8,0x45,0x2e,0xa4,0x60,0xb1,0xc,0xf2,0x24,
+  0x28,0x6,0x41,0x85,0x11,0xb0,0xf5,0x5,0xf6,0x30,0xb0,0x95,0x4,0xf6,0x2c,0x88,
+  0x7e,0xf7,0xee,0x1d,0xc3,0xc3,0x87,0xf,0xc1,0x49,0xd9,0xc6,0xc6,0x26,0x12,0xa8,
+  0x46,0xac,0xb7,0xb7,0xb7,0x9,0x98,0xcc,0x9f,0x41,0x8d,0x7,0x35,0x17,0x7f,0x51,
+  0xea,0x51,0x80,0x0,0x22,0xba,0xd4,0x85,0x79,0x1e,0x5d,0x1e,0x5b,0x2,0x47,0x4e,
+  0xca,0x20,0xc,0x4a,0x96,0xa0,0x3a,0x95,0x8f,0x8f,0xf,0x9c,0x4f,0x41,0x1e,0x86,
+  0x95,0xd8,0xc8,0x7a,0xde,0xbc,0x79,0xc3,0x60,0x6e,0x6e,0xee,0xc,0x2c,0xa4,0xde,
+  0x74,0x77,0x77,0x4f,0x85,0x7a,0xf0,0x2f,0x12,0x86,0xb4,0x1d,0x7f,0x3,0x9b,0x98,
+  0x48,0x85,0xe1,0x7f,0x22,0x22,0x1c,0x20,0x80,0x58,0xb0,0x79,0x12,0x9b,0x67,0xb1,
+  0x95,0xb2,0x50,0x9,0xb0,0x67,0xb1,0x25,0x63,0x18,0x0,0xc5,0x22,0xa8,0x5a,0x11,
+  0x6,0x26,0x53,0x90,0x87,0x7f,0x1,0x1d,0xa,0x72,0x1b,0xcc,0xcc,0xbf,0xd0,0xa6,
+  0x27,0xac,0xad,0xec,0xe4,0xe4,0x14,0x30,0x73,0xe6,0xcc,0x83,0xc0,0x7a,0xf7,0x1b,
+  0xb4,0x23,0x0,0xaa,0x63,0xff,0x2,0x55,0xeb,0x9a,0xca,0x29,0x45,0x1b,0x49,0x2b,
+  0xc8,0xb3,0x2,0x53,0xca,0xbd,0xf7,0x6f,0xbe,0xdc,0x7a,0xf9,0xec,0xe2,0xed,0x37,
+  0x2f,0x37,0x2,0xe5,0x1f,0xe3,0xf3,0x28,0x40,0x0,0xb1,0x20,0xc7,0x18,0xae,0x18,
+  0x5,0xcb,0x81,0xbc,0xc3,0x88,0x3f,0x96,0xd1,0x3d,0x8b,0xec,0x51,0x50,0xa8,0x83,
+  0x62,0x8d,0xb,0x98,0x2f,0x91,0xdb,0xd3,0x20,0x75,0x20,0x3e,0xb0,0xa7,0x3,0xc6,
+  0x20,0x36,0xb0,0xbe,0x5,0xb5,0xbd,0xc5,0x80,0xd2,0xa2,0xd0,0x36,0xf1,0x6f,0x5e,
+  0x36,0x76,0xcf,0x9,0xde,0x91,0xab,0x13,0xad,0x1c,0xb9,0x19,0x39,0xb9,0x80,0xc5,
+  0xd5,0x5f,0x50,0x3d,0xc6,0xf0,0xfe,0xf3,0x27,0x86,0xa9,0x47,0xf7,0xd4,0xb6,0xee,
+  0xd9,0x18,0xfc,0xe3,0xcf,0xef,0x23,0xb8,0x3c,0xa,0x10,0x40,0x2c,0xc8,0x49,0x7,
+  0x97,0x47,0x91,0xf3,0x2d,0xb2,0x3c,0xb6,0xfc,0x8c,0x9c,0xcf,0xe1,0xe6,0x81,0x10,
+  0xb0,0x44,0x7,0x35,0xf2,0x41,0x1e,0x41,0xee,0x10,0xc0,0xea,0x5d,0x90,0x27,0x41,
+  0x4d,0x44,0x90,0x3c,0x30,0xff,0x32,0x2,0xe5,0xf8,0x81,0x52,0x3c,0xa0,0x70,0x32,
+  0x34,0x36,0xaa,0xe,0x77,0x76,0x2f,0x36,0xd2,0xd4,0xe7,0x3e,0xf4,0xf2,0x35,0x3,
+  0xf7,0xe3,0xa7,0xc,0xda,0xbc,0xc2,0xc,0x9c,0xc0,0xce,0xb7,0x20,0x37,0xf,0x43,
+  0x8d,0x77,0x98,0x98,0x99,0xac,0xe2,0x96,0xc4,0x95,0xb3,0x6b,0x9e,0x7d,0xfa,0x30,
+  0x5,0x9b,0x47,0x1,0x2,0x88,0x5,0x3d,0x6f,0xe1,0xca,0xa3,0x60,0xc7,0x43,0xa2,
+  0x0,0x67,0x20,0x60,0x3,0x30,0x33,0x99,0x18,0x81,0xa5,0x2f,0x13,0x33,0x46,0xb7,
+  0xe,0xd8,0xd1,0x7,0xf7,0x6b,0x61,0xd5,0x10,0xc8,0xa3,0xd0,0x6a,0x87,0x15,0x88,
+  0x7f,0x8a,0x8a,0x8a,0xf9,0x4e,0xe8,0x9b,0xd6,0x22,0xa7,0xa8,0xc0,0xf0,0xf3,0xdf,
+  0x4f,0x6,0x5e,0x16,0x26,0x86,0x1b,0x57,0xaf,0xff,0xbf,0x7a,0xe8,0x4,0xa3,0xe7,
+  0x3f,0x61,0x6,0x31,0x4e,0x60,0x58,0xfc,0xf9,0xc6,0xe0,0x66,0x68,0xc1,0x3f,0xf1,
+  0xe7,0x8f,0xae,0xd0,0x45,0x93,0xf,0x1,0xf5,0x5d,0x42,0x6a,0x80,0x80,0x1d,0x7,
+  0x10,0x40,0x2c,0xe8,0x79,0x10,0x52,0xbd,0xfc,0x7,0x17,0x33,0x28,0x1e,0x0,0x27,
+  0x5f,0x20,0xc5,0x88,0x5a,0xe5,0x10,0x2a,0xa9,0x61,0xc9,0x18,0xa6,0xe,0x52,0x50,
+  0xfd,0x3,0x7a,0x8,0x54,0xaf,0xfe,0x83,0x96,0xd0,0x20,0x9a,0x9,0xde,0x61,0x0,
+  0x16,0x56,0xff,0x81,0x31,0xcc,0x24,0x2f,0xaf,0x98,0xd8,0xd3,0x33,0xd1,0x45,0x5b,
+  0x5b,0x7,0x58,0x72,0x33,0x2,0xf3,0xb9,0x28,0x58,0x5e,0xc8,0x54,0x90,0xf1,0xae,
+  0xa4,0x2c,0xc3,0xc9,0x6b,0xd7,0x18,0x94,0xaf,0x3f,0x62,0xd0,0xe2,0x11,0x2,0xd6,
+  0xba,0x5f,0x19,0xbc,0xd5,0xf5,0x39,0xd,0x44,0xe5,0x12,0x2f,0xbc,0x7e,0x54,0x8,
+  0xf5,0x1b,0xcc,0xa3,0x7f,0x1,0x2,0x88,0x5,0xfb,0xf0,0xe,0x96,0x2,0x9,0xc6,
+  0x47,0xf2,0x10,0x72,0x1,0x45,0x4c,0xd3,0x11,0xde,0xad,0x63,0x0,0xd5,0xad,0xa0,
+  0x0,0x80,0xb5,0xa2,0x60,0x6d,0x4,0x68,0x7e,0xfe,0xcf,0xf6,0x5b,0x5a,0x5a,0x4d,
+  0x7f,0xc1,0x82,0x95,0x56,0x46,0x46,0x5a,0x8c,0x40,0x21,0x6,0x10,0xfe,0xfd,0xfb,
+  0xf,0xb0,0xbb,0xf7,0x81,0xe1,0xfb,0xb7,0x9f,0xc,0xa2,0xbc,0x42,0xc,0x2,0x96,
+  0xd6,0xc,0x87,0x9f,0x3c,0x65,0x10,0x7c,0xff,0x96,0x41,0x52,0x4a,0x9a,0xe1,0xed,
+  0xcb,0xb7,0xc,0xe2,0x6c,0x7c,0x3e,0x40,0x63,0x3a,0x80,0xf8,0x13,0x34,0x56,0x41,
+  0x85,0x19,0x3,0x40,0x0,0x61,0x89,0x51,0x6,0xb0,0x3,0xd0,0x3d,0x8b,0xb5,0x7a,
+  0xf9,0xcf,0x0,0x2e,0x64,0x50,0x3c,0xc,0x2b,0xb1,0x18,0xb1,0xc7,0x2c,0x72,0xa3,
+  0x1f,0xb9,0xc7,0x3,0x32,0x2,0x54,0xd,0xbd,0x7f,0xff,0x83,0xe1,0xe0,0xc1,0x89,
+  0x9c,0x59,0x59,0xff,0xcc,0x99,0x98,0xba,0x18,0x4f,0x9f,0xfe,0xcf,0xf0,0xe2,0xb9,
+  0xec,0x7f,0x65,0xe5,0x0,0x6,0x2d,0x1d,0x23,0xc6,0x5f,0xbf,0xfe,0x82,0xcd,0xfe,
+  0xf3,0xf7,0xf,0x30,0xca,0x98,0x19,0x8c,0xbc,0xbc,0x19,0xf6,0x2c,0x5b,0xce,0xa0,
+  0x7c,0xfa,0x2,0xc3,0xd9,0xbb,0x8f,0x19,0xf8,0xd9,0xb8,0xe4,0x80,0xc6,0xe9,0x0,
+  0xf1,0x39,0xa8,0x47,0x7f,0x82,0xac,0x4,0x8,0x20,0x16,0xcc,0xe4,0xc6,0x84,0x14,
+  0x79,0xff,0xf1,0x57,0x2f,0x68,0x95,0x28,0x36,0xf,0x23,0x77,0xd6,0xb1,0x75,0xeb,
+  0x60,0xe6,0x31,0x33,0xb3,0x2,0x9b,0x87,0xec,0xc,0xe7,0xce,0xcd,0x65,0x8,0xd,
+  0x5d,0xc1,0xa8,0xa9,0xc9,0xc0,0xf2,0xf7,0xdf,0x35,0x86,0x7f,0xc0,0x46,0xe0,0xeb,
+  0xbb,0xa6,0xff,0x8e,0xec,0xff,0xc0,0x78,0xee,0xcc,0x31,0x6,0x9f,0xa0,0x4,0x46,
+  0xa6,0x5f,0x3f,0xa0,0x25,0xf4,0x1f,0x6,0x49,0x61,0x31,0x86,0x8b,0x1a,0x6a,0x3f,
+  0xe7,0x2c,0x9f,0xc4,0xa6,0xc2,0x2f,0xc1,0xc8,0xc5,0xca,0xe,0x8c,0x7b,0x6,0x29,
+  0x20,0xbe,0x89,0xe4,0xc2,0xbf,0x0,0x1,0xc4,0x84,0xee,0x48,0x48,0x5e,0x62,0x82,
+  0xe7,0x27,0x18,0x86,0x89,0xa3,0x8b,0xa1,0xf0,0x99,0x18,0x51,0xc4,0x60,0xf9,0x12,
+  0xdc,0xd6,0x65,0x66,0x82,0xd3,0x30,0x36,0xac,0xd,0xc,0xaa,0x5b,0xdf,0xbc,0xf9,
+  0xc6,0xb0,0x6b,0x57,0x1a,0x83,0x95,0x55,0x1b,0x3,0xd0,0x93,0x10,0xcf,0x83,0x4a,
+  0xa4,0xaf,0xc1,0xff,0xa4,0xd8,0x33,0x99,0xc2,0x4c,0xff,0x30,0xd9,0xb,0xec,0x60,
+  0x3c,0xb8,0x69,0x22,0x30,0x2d,0x32,0x81,0x93,0x38,0xb0,0xc5,0xc8,0xf0,0xf5,0xeb,
+  0x97,0xdf,0x9f,0x3f,0xbf,0xff,0xcd,0x26,0xca,0xc7,0xc8,0x2,0xf4,0xd7,0xaf,0x7f,
+  0x7f,0xfe,0x42,0x53,0xaa,0x0,0x68,0x64,0x14,0x88,0xd9,0x41,0x46,0x1,0x4,0x10,
+  0x13,0xb6,0xc2,0x8,0x5c,0x23,0x20,0x35,0x9,0x11,0x8e,0x67,0xc0,0x10,0x43,0xe1,
+  0x33,0x32,0xe1,0x94,0x87,0xc9,0x81,0x68,0x26,0x46,0x44,0x40,0x80,0x9a,0x86,0x3f,
+  0x7e,0x70,0x32,0x5c,0xbc,0x38,0x8b,0xc1,0xcb,0x6b,0x2d,0x83,0x9a,0xda,0x6f,0x44,
+  0xb6,0xf8,0xe8,0xfb,0xff,0xff,0xe7,0x44,0x46,0x86,0x27,0x7,0x18,0x19,0x7e,0x7c,
+  0x61,0xd0,0x54,0x97,0x64,0xd0,0x62,0x39,0xf0,0x7f,0xd7,0xda,0xa9,0xff,0x39,0xb9,
+  0x79,0x81,0x49,0x9d,0xed,0xdf,0xe5,0xcb,0xe7,0x7e,0xdd,0xbd,0x7f,0x8b,0x8b,0x99,
+  0x8b,0x83,0x1,0x58,0x27,0x31,0x7c,0xf9,0xfd,0xe3,0xb,0xb4,0xd9,0x8,0xae,0x9a,
+  0xa0,0x9e,0x66,0x2,0x8,0x20,0x16,0x52,0xda,0xb4,0x84,0x7a,0x34,0xff,0xff,0x23,
+  0xca,0x2c,0x9c,0xba,0xa1,0xf9,0x15,0x52,0xba,0x72,0x33,0x3c,0x79,0xf2,0x81,0xe1,
+  0xd0,0xa1,0x24,0x6,0x7,0x87,0x8d,0xc,0xb2,0xb2,0x48,0x79,0xff,0xbd,0x3,0x3,
+  0xe3,0x4b,0x1f,0x46,0x86,0xf,0xdb,0x80,0x1a,0x81,0x91,0xc4,0x4,0xac,0x6d,0xbe,
+  0xff,0x61,0x30,0xd4,0x93,0x67,0x64,0xb8,0x73,0x95,0x61,0xd9,0xe2,0x19,0x3f,0x39,
+  0xb9,0xf9,0x19,0xce,0x9f,0x3b,0xc5,0xf9,0xf8,0xc5,0x33,0x26,0xae,0x37,0x1f,0x18,
+  0x54,0xd9,0xa5,0x19,0x9e,0x7e,0x7b,0x7f,0x5,0xda,0x19,0x60,0x87,0xf6,0x80,0xc0,
+  0xd,0x37,0x80,0x0,0x62,0xc1,0x9e,0x74,0x19,0x71,0xf6,0x58,0xf0,0x37,0x26,0x30,
+  0xaa,0x59,0xd4,0xaa,0x7,0xda,0x5c,0x4,0xf1,0xd9,0xd8,0xd8,0x81,0x8d,0xf9,0x77,
+  0xc,0x97,0x2e,0xd5,0x32,0xf8,0xfa,0x6e,0x60,0x90,0x90,0x80,0x6a,0xf8,0x3,0x4c,
+  0xb0,0x1f,0x81,0x5,0xe7,0x2b,0xdb,0xff,0xc,0x6f,0x4f,0x0,0x35,0x3,0x9b,0x8b,
+  0x8c,0xcc,0xa0,0x16,0x7,0x24,0x5e,0x80,0x75,0xae,0xb6,0x24,0xeb,0xbf,0x9,0x2b,
+  0x16,0xb3,0xdc,0x7c,0xc3,0xc3,0xcc,0xf4,0xff,0x37,0x3,0x1b,0x27,0x7,0x83,0x20,
+  0x30,0x39,0x5f,0x7c,0xff,0xf8,0xdb,0xf5,0xf7,0xcf,0xf6,0x22,0x57,0x2b,0x30,0xc,
+  0x10,0x40,0x4c,0x84,0x3c,0x81,0xd1,0x88,0xc7,0x21,0x46,0xac,0x3c,0xa4,0xa,0x61,
+  0x67,0x78,0xf6,0xec,0x15,0xc3,0xae,0xdd,0x4e,0xc,0x6e,0x6e,0xf3,0x11,0x9e,0x4,
+  0x39,0xed,0x95,0x27,0x3,0xc3,0x73,0xf,0x6,0xc6,0xb7,0xd7,0x18,0xc1,0x21,0xc7,
+  0xc2,0x1,0xc4,0x6c,0x90,0x10,0xfc,0xfb,0x9d,0xe1,0xf3,0xab,0xb7,0xff,0x9e,0x5f,
+  0x7f,0xf4,0xc7,0x4a,0xe2,0x17,0xd3,0x83,0xfb,0x77,0x19,0x98,0x81,0xad,0x2d,0x49,
+  0x11,0x31,0x86,0xf3,0xcf,0xef,0x7d,0x58,0x74,0xe7,0x68,0xff,0xb7,0x3f,0xbf,0xae,
+  0x40,0x4b,0xdb,0x1f,0x50,0xc,0xea,0x18,0xfc,0x3,0x8,0x20,0x16,0x62,0x1a,0xef,
+  0x58,0xab,0x19,0x58,0xdb,0x17,0xad,0x8a,0xc1,0x56,0xaf,0xa2,0xf3,0x7f,0xfd,0xfa,
+  0xcf,0x70,0xf1,0xcc,0x1a,0x86,0x48,0x3f,0x9,0x6,0x41,0x36,0x5d,0x86,0xdf,0x5f,
+  0xbe,0x1,0x5d,0x76,0x9b,0x81,0xf9,0x31,0xb0,0xca,0xfb,0x69,0x9,0x4c,0x70,0xc0,
+  0x9a,0x81,0x95,0x5,0x12,0x93,0xa0,0x36,0xed,0xaf,0x6f,0x60,0x7d,0xbf,0xff,0x33,
+  0xfd,0x7f,0xf7,0xf6,0xdb,0x5f,0xe,0xc6,0xbf,0xac,0xb2,0x9c,0x5f,0x19,0xc5,0x85,
+  0xf9,0x19,0xa4,0xa4,0xa4,0x18,0x6e,0xdf,0xbe,0xf5,0xfb,0xea,0xeb,0x47,0xcb,0x80,
+  0x4a,0xae,0x43,0x83,0xeb,0x1b,0x34,0xd9,0xc2,0x3a,0xef,0x7f,0x1,0x2,0x88,0x5,
+  0x57,0xc7,0x1a,0x9b,0xe7,0x50,0x2,0x2,0x96,0x57,0x19,0x11,0x43,0x30,0xc8,0x75,
+  0x2d,0xba,0x1e,0x18,0x1f,0x54,0xf8,0x9c,0x39,0x7b,0x8e,0xe1,0x27,0xb0,0x25,0x23,
+  0x26,0x3d,0x97,0xe1,0xef,0x4f,0x36,0x6,0x46,0x60,0xd3,0xee,0xe7,0xb7,0x17,0xc,
+  0x2c,0x8f,0x56,0x30,0xb0,0xfd,0x2,0xb6,0xcb,0x25,0xe4,0x40,0xad,0x3,0x60,0x32,
+  0xfe,0xe,0xf1,0x28,0xb0,0x34,0xff,0xc3,0xc2,0xf1,0xff,0xf6,0xe5,0x27,0xbf,0xf9,
+  0x7e,0x7d,0x64,0x65,0x63,0xfd,0xc3,0xf8,0xfb,0xf7,0x3f,0x6,0x5d,0x7d,0x43,0x86,
+  0xf7,0x1f,0x3e,0x7e,0x3b,0x7b,0xee,0xdc,0x2,0xa4,0x7a,0xf3,0xb,0xb4,0xb1,0xf0,
+  0x5,0x29,0x46,0xff,0x2,0x4,0x10,0x13,0x66,0x81,0xc1,0x88,0x33,0x9,0x63,0x4b,
+  0xa2,0xb8,0x92,0x2d,0xba,0x3c,0x62,0x2c,0xe9,0x3f,0xc3,0xed,0x1b,0x17,0x19,0xcc,
+  0x4c,0xf5,0x81,0x85,0x3e,0x2b,0x3,0x33,0xdb,0x5f,0x6,0x66,0x76,0xa0,0x33,0x38,
+  0x44,0x18,0x3e,0xeb,0x25,0x31,0x7c,0xe7,0xd7,0x63,0x60,0x78,0xf9,0x0,0xe8,0xb4,
+  0x5f,0x90,0xc8,0x1,0x36,0x22,0x18,0x38,0xb8,0xff,0xbf,0x7d,0xf6,0xee,0x2f,0xe7,
+  0xcf,0x4f,0xac,0xcc,0xff,0x80,0xd,0x7e,0x60,0x37,0xef,0xd6,0x47,0xe,0x86,0x87,
+  0xcf,0xde,0xfc,0x3c,0x76,0xf4,0xc8,0x4a,0xa0,0xc2,0x8b,0xd0,0xa6,0xd5,0x67,0x24,
+  0x4f,0x7e,0x87,0x36,0x16,0xc0,0x31,0xa,0x10,0x40,0x98,0x31,0xca,0x88,0xea,0x59,
+  0x5c,0x31,0x8d,0x2b,0xc6,0xb0,0xa9,0x81,0xf0,0xff,0x83,0xeb,0xbd,0xe7,0xcf,0x5f,
+  0x30,0xfc,0xfa,0xf1,0x82,0x41,0x45,0xd3,0xe,0x1c,0x6b,0xe0,0x52,0xe3,0x3f,0xa8,
+  0x41,0x1,0xec,0x93,0x2,0x63,0xef,0x9b,0x92,0xb,0xb0,0xaa,0xff,0xcc,0xc0,0xf9,
+  0x5,0xe8,0x59,0x7e,0x31,0x86,0x3f,0xc0,0xe4,0x7a,0xef,0xda,0xd3,0x5f,0xcc,0x9f,
+  0x3f,0xb0,0xb2,0xff,0xf9,0xc2,0xf8,0xf7,0xcf,0x2f,0x60,0x99,0xf4,0x87,0xe1,0xf8,
+  0xad,0x4f,0x1f,0x8e,0x9c,0xbe,0xb3,0x10,0xe8,0x87,0x9b,0x48,0xc3,0xa5,0xef,0x80,
+  0xf8,0x3d,0xb4,0x6b,0xf7,0xd,0xea,0x51,0x50,0x13,0xf0,0x3f,0x40,0x0,0x31,0xe1,
+  0x1b,0x13,0xc2,0x37,0xc,0x4a,0x4a,0xc,0x43,0xc4,0x40,0xd,0x7,0x16,0x60,0xc3,
+  0xe0,0x5,0x83,0x8e,0x9a,0x4,0xc4,0x69,0xd0,0x6c,0xce,0xf8,0x1f,0x34,0xb,0xf7,
+  0xd,0x58,0xe1,0x7d,0x5,0xd6,0x24,0xdf,0x19,0xde,0x8b,0xd9,0x31,0x7c,0xfc,0x23,
+  0xfc,0xff,0x3f,0xb0,0xe5,0x73,0xfb,0xfe,0xc7,0x7f,0xaf,0x1e,0xbd,0x64,0xfd,0xb,
+  0xc,0x27,0xc6,0xdf,0xdf,0x81,0x4d,0xbf,0x7f,0xc,0xab,0x2e,0x7c,0xfb,0xb2,0xe7,
+  0xca,0xbb,0xa5,0x40,0x4f,0xde,0x80,0x96,0xaa,0x1f,0xa1,0x1e,0x45,0x4e,0xb2,0xbf,
+  0x91,0x47,0x12,0x1,0x2,0x8,0x6f,0x3d,0x4a,0x6c,0x6c,0x12,0x2b,0x6,0x8a,0xd1,
+  0x5f,0x3f,0x3e,0x30,0xa8,0xab,0x2a,0x42,0xcb,0x41,0x60,0x52,0x6,0x26,0xd1,0x3f,
+  0xbf,0xbe,0x2,0x73,0x12,0x30,0x22,0x80,0x1e,0xf9,0xfa,0xf1,0x1b,0xc3,0xf7,0x1f,
+  0x7f,0x19,0x3e,0x71,0x18,0x31,0x3c,0xb9,0xba,0xfd,0xcf,0xc7,0x4f,0x3f,0x98,0x85,
+  0xb8,0x99,0x18,0x39,0x81,0x9d,0x0,0x56,0x60,0x6b,0xa8,0x6b,0xfb,0xdb,0x17,0x93,
+  0x76,0xbf,0x9c,0x7,0xd4,0xfc,0x8,0xea,0x91,0xf7,0x50,0xfc,0xe,0xea,0xd1,0xaf,
+  0xd0,0x98,0xfc,0x85,0x3c,0xfc,0x2,0x10,0x40,0x4c,0x84,0x46,0xf9,0xf0,0xc5,0x26,
+  0xa9,0x79,0xf6,0xfb,0xf7,0x1f,0xc,0x1f,0xdf,0x3d,0x67,0x60,0x7,0x56,0x2f,0xff,
+  0xa1,0xb1,0xf8,0xe7,0xf7,0x57,0x60,0xc1,0xf4,0x96,0xe1,0xe7,0x8f,0x6f,0xc,0xdf,
+  0x3e,0x7f,0x63,0xf8,0xf1,0xed,0x7,0xc3,0xcf,0xaf,0x5f,0x18,0xde,0x7d,0x67,0x66,
+  0x7c,0xf4,0x8e,0x83,0x99,0xf3,0xd7,0x7b,0x46,0x50,0x13,0xf1,0x2f,0x30,0x5f,0xce,
+  0x3d,0xfe,0xe9,0xcd,0x9c,0x43,0x6f,0x17,0x3,0x8d,0x7b,0x8,0x8d,0x31,0x98,0x7,
+  0xdf,0x41,0x63,0x15,0xa5,0x0,0x42,0x76,0x33,0x40,0x0,0x11,0x4c,0xba,0x84,0x6,
+  0xce,0x70,0x6,0x4,0x1a,0x9f,0xd,0x58,0xa8,0xdc,0xb9,0x73,0x9b,0xe1,0xc1,0x9d,
+  0x8b,0xc,0x1c,0xac,0xbf,0x81,0x49,0xf4,0x1d,0xc3,0x1f,0x60,0xec,0xfe,0xfe,0xf1,
+  0x99,0xe1,0x17,0xd0,0x63,0x5f,0x3f,0x7c,0x61,0xf8,0xfe,0xe5,0x7,0xc3,0x97,0x4f,
+  0xdf,0x19,0xde,0xbd,0xfd,0xa,0xac,0x82,0xfe,0x30,0xfc,0x67,0x65,0xff,0xff,0x9b,
+  0x89,0x3,0xd8,0xd9,0xfe,0xcb,0xb0,0xf0,0xc0,0x93,0x97,0x55,0xab,0x9f,0x4c,0xfa,
+  0xf6,0xf3,0xcf,0x1d,0x68,0xbe,0x3,0x79,0xee,0x35,0x10,0xbf,0x41,0x8a,0x4d,0xd8,
+  0x88,0xe1,0x1f,0x74,0x77,0x2,0x4,0x10,0xc1,0x26,0x20,0xc9,0xd5,0xe,0x5a,0x2b,
+  0x8,0x1e,0xa2,0xc0,0x6,0xfc,0xc1,0x83,0xfb,0x19,0x76,0xec,0xba,0xcc,0xf0,0x8f,
+  0x59,0x98,0x41,0x54,0xe0,0x1f,0x83,0x97,0x8b,0x31,0x30,0x26,0x7f,0x31,0xbc,0x7f,
+  0xfb,0x19,0x18,0x93,0x3f,0x81,0x31,0xfe,0xb,0x4c,0x43,0x4a,0xa8,0x7f,0xc,0x1c,
+  0xff,0xbf,0x31,0xf0,0x73,0x31,0x33,0x4c,0xda,0x7a,0xf7,0x55,0xd7,0xf6,0x57,0xab,
+  0x80,0xa2,0xcf,0xa1,0x31,0xf9,0x11,0xea,0xb9,0xf,0x50,0x36,0x72,0x72,0xfd,0x83,
+  0x2d,0xa2,0x0,0x2,0x88,0x85,0x98,0x26,0x1e,0xbe,0xa4,0x4d,0x6c,0x77,0xee,0xe7,
+  0x4f,0x60,0xb2,0xfd,0xf8,0x99,0x21,0x33,0xbb,0xc,0xd8,0x80,0xbf,0xc8,0xd0,0x3f,
+  0x79,0xe,0xc3,0xc9,0x53,0x57,0x18,0xb2,0xe3,0xbd,0x81,0x1d,0xe6,0xf,0xc,0xa0,
+  0x7e,0xe6,0x1f,0x60,0xc7,0x3,0x98,0x8d,0xc1,0xad,0x1d,0xd0,0xcc,0x3a,0xf,0xe3,
+  0x67,0xa6,0x39,0x3b,0xee,0x3e,0xef,0xd9,0xf9,0x1a,0x34,0xc5,0xf8,0xc,0x9a,0x2c,
+  0x61,0x1e,0x7c,0x8f,0x14,0x8b,0x58,0x93,0x2b,0x32,0x0,0x8,0x20,0xa2,0xa6,0xd,
+  0x89,0x2d,0xa4,0x70,0x75,0xd0,0x41,0x62,0x1f,0x3f,0x7e,0x62,0x10,0x14,0x4,0xd6,
+  0x95,0x9f,0x3e,0x31,0xcc,0x9b,0x3b,0x8d,0xe1,0xc1,0x83,0x7,0xc,0x7d,0xd3,0x6e,
+  0x31,0x88,0xf1,0xf3,0x32,0x38,0x98,0xeb,0x82,0x9b,0x78,0xdc,0xc0,0x1e,0x8,0x68,
+  0xdc,0xf7,0xcd,0x87,0x4f,0xc0,0xce,0xf6,0xf3,0xff,0x3b,0x37,0xdd,0x7c,0xb3,0xe1,
+  0xd4,0xeb,0x5d,0x40,0x23,0xde,0x22,0x79,0x12,0x96,0x4c,0x91,0xab,0x90,0x5f,0x84,
+  0x16,0x80,0x0,0x4,0x10,0xee,0xa4,0xfb,0x1f,0xd6,0x4f,0xf9,0x4f,0x46,0x2c,0xff,
+  0x47,0x69,0xdc,0x83,0x46,0xea,0x1f,0x3d,0x7a,0xc8,0x70,0xf7,0xee,0x1d,0x86,0x5,
+  0xb,0xe6,0x2,0x3d,0x79,0x1f,0x2e,0xb7,0xf3,0xe0,0x19,0x6,0xb,0x43,0x35,0x60,
+  0x57,0xed,0x37,0xc3,0xe5,0x5b,0x8f,0x18,0xae,0xdf,0x7b,0xc1,0xf0,0xe2,0xfd,0xcf,
+  0xff,0x5b,0x77,0xec,0xba,0x4,0x2c,0xbc,0xae,0x40,0x4b,0xd7,0xaf,0xd0,0xbc,0xf8,
+  0xa,0x1a,0x9b,0x5f,0x91,0x92,0xeb,0x6f,0xf8,0x38,0xc,0x1e,0x0,0x10,0x40,0x2c,
+  0x38,0xbb,0x67,0xf0,0x61,0x5c,0xc4,0x58,0xd1,0x7f,0x9c,0xb1,0xfc,0x1f,0xad,0xd7,
+  0xc2,0x8,0xed,0xc9,0xfc,0x87,0x77,0xbc,0x57,0xac,0x58,0xc9,0x30,0x69,0x52,0x1f,
+  0x46,0xef,0xe6,0xed,0xa7,0x5f,0xc,0x7,0x2e,0xbc,0x60,0xf8,0xf9,0x7,0x58,0x2a,
+  0xff,0x62,0x66,0xe0,0x93,0x54,0x67,0x10,0x55,0x60,0x3,0x7a,0x74,0xf7,0x7,0x68,
+  0x8c,0x7d,0x46,0xf2,0xe4,0x5b,0x28,0xff,0x27,0x52,0x63,0xe0,0x1f,0x31,0x29,0x12,
+  0x20,0x80,0x58,0x88,0x99,0xe1,0x46,0xef,0x83,0xc1,0xbc,0x8c,0x28,0x6e,0x18,0x71,
+  0xc6,0x3c,0xa8,0x83,0xd,0x9a,0x0,0xde,0xb3,0x67,0xf,0xd8,0xe3,0xa0,0xb6,0xae,
+  0x9c,0x9c,0x1c,0x83,0xbe,0xbe,0x3e,0x83,0x8e,0x8e,0xe,0x3,0x1f,0x3f,0x3f,0x50,
+  0x1d,0x33,0xb8,0xf0,0x1,0x99,0xcb,0xa,0x8c,0x7d,0xd0,0x32,0x0,0x68,0x72,0xfc,
+  0x2,0x8d,0xc1,0xb7,0xd0,0x3c,0xf9,0x19,0x29,0x3f,0xfe,0x26,0x65,0xf2,0x9,0x20,
+  0x80,0x48,0xea,0x78,0xc3,0xeb,0x44,0x6,0xfc,0x3d,0x1c,0xf4,0x85,0x55,0xa0,0xa4,
+  0xdb,0xdc,0xdc,0xc,0x4c,0xbe,0x8f,0xc0,0xbd,0xd,0xd0,0x1c,0xc,0x68,0xfc,0x16,
+  0x34,0xd5,0xff,0xf5,0xeb,0x57,0xf0,0xf8,0xf,0x6c,0xc2,0x18,0x34,0xa6,0xfb,0xe3,
+  0xc7,0xf,0x60,0xff,0x9c,0xf1,0x3b,0x52,0xe9,0x8a,0xdc,0x18,0xf8,0x4d,0xce,0xc,
+  0x1b,0x40,0x0,0x91,0x5c,0xbd,0x90,0x53,0x22,0x83,0xb0,0xb3,0xb3,0x33,0x78,0xf6,
+  0xc,0x34,0x91,0xf4,0xfe,0xfd,0x7b,0xb0,0x7,0x41,0xe3,0x3e,0xa0,0x64,0xd,0x9b,
+  0x88,0x2,0xf1,0x41,0x13,0x50,0x20,0x39,0xa8,0x47,0xbf,0x40,0xf1,0x57,0xa4,0x46,
+  0xfa,0x7f,0x72,0xa6,0x11,0x1,0x2,0x88,0x85,0x50,0x4c,0x22,0xba,0x65,0x98,0xa3,
+  0xf4,0xc4,0x96,0xc8,0xa0,0xd8,0x2,0x25,0x47,0xd8,0x72,0x1c,0xd0,0x82,0xd,0x50,
+  0x12,0x6,0xd1,0xb0,0x11,0x42,0xf0,0xba,0x24,0xa0,0x67,0x79,0x78,0x78,0x40,0x1,
+  0x1,0x8b,0xd1,0x6f,0x68,0x25,0xeb,0x3f,0x6,0x32,0x1,0x40,0x0,0x11,0x5f,0xbd,
+  0x20,0xd,0x62,0x13,0x8a,0x65,0x74,0x79,0xd8,0xd4,0x3e,0x6c,0x1a,0x2,0x36,0xf5,
+  0x0,0x9b,0x6c,0x82,0x8d,0x6,0x82,0x68,0x50,0x8c,0x82,0xe6,0x60,0x80,0xe6,0xfc,
+  0x46,0xca,0x8b,0x14,0xaf,0x1f,0x4,0x8,0x20,0x16,0x72,0x34,0xe1,0x8b,0x41,0x6c,
+  0xf2,0xb0,0xfc,0x7,0x8b,0x39,0xd8,0x5a,0x6,0xf4,0xa9,0xa,0x10,0x6,0xc5,0x38,
+  0x74,0xee,0xe5,0x1f,0xd2,0x98,0xf,0xc5,0x33,0xde,0x0,0x1,0xc4,0x82,0xbe,0xa2,
+  0x84,0xd8,0x55,0x29,0xc4,0x8d,0x1a,0x92,0x7,0x90,0x3c,0x4a,0xb5,0xc5,0x1a,0x0,
+  0x1,0x4,0xf7,0x28,0xb0,0xa0,0x0,0x97,0xe9,0x1f,0x3f,0x7e,0xfc,0xf5,0x1f,0x32,
+  0x27,0x41,0x96,0xf,0xf0,0x25,0x6b,0x6c,0x72,0xe8,0x62,0xc0,0x18,0x67,0x2,0xe6,
+  0x51,0xe4,0x64,0x4b,0x95,0x25,0xaf,0x0,0x1,0x4,0x5b,0x30,0xcc,0xf,0xec,0xa,
+  0xa9,0x0,0xb1,0x36,0x90,0xad,0x6,0x9d,0x80,0xe5,0x21,0x66,0xb8,0x93,0x6,0x0,
+  0x68,0xed,0xff,0x2f,0xc0,0xba,0xf7,0x21,0x90,0xbe,0xa,0xe4,0xdf,0x81,0xce,0x66,
+  0x7f,0xa1,0xc4,0xd3,0x0,0x1,0x4,0x9b,0x5a,0xfb,0x3,0xac,0xbb,0xde,0x0,0xf1,
+  0x1d,0x68,0x28,0xa,0x2,0x31,0x17,0x3,0x95,0x56,0x4c,0x93,0xea,0x51,0x68,0x75,
+  0xf2,0x1e,0xda,0x22,0xfa,0x42,0x6a,0xe3,0x0,0x1b,0x0,0x8,0x20,0x58,0xd2,0xfd,
+  0xd,0x35,0xf0,0x15,0x34,0xd4,0xb8,0xa0,0x23,0xdd,0x3,0xe5,0xd1,0x9f,0x50,0xf7,
+  0xbc,0x85,0xd2,0x7f,0x28,0xf5,0x28,0x40,0x0,0xc1,0x3c,0xc2,0xc,0x9d,0x61,0x6,
+  0x95,0x2,0x1c,0x50,0x36,0x13,0xc3,0xc0,0x81,0xbf,0xd0,0xc0,0x47,0x19,0x84,0xa6,
+  0xc4,0x40,0x80,0x0,0x42,0x6e,0xac,0xc2,0xf2,0x2b,0x13,0x12,0x7f,0xa0,0x0,0xf2,
+  0x94,0xc2,0x7f,0x72,0x5b,0x43,0xc8,0x0,0x20,0xc0,0x0,0x52,0x5e,0x46,0x1a,0x84,
+  0xdb,0x12,0x48,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/icon.png
+  0x0,0x0,0x3f,0xe2,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x80,0x0,0x0,0x0,0x80,0x8,0x6,0x0,0x0,0x0,0xc3,0x3e,0x61,0xcb,
+  0x0,0x0,0x20,0x0,0x49,0x44,0x41,0x54,0x78,0x9c,0xec,0xbd,0x77,0x98,0x64,0x57,
+  0x79,0xee,0xfb,0x5b,0x6b,0x87,0xca,0x9d,0xa7,0xd3,0x48,0x33,0x23,0x8d,0x46,0xa3,
+  0x8c,0x22,0x20,0x21,0x40,0x20,0x93,0xc4,0x91,0x0,0xdb,0xd8,0x17,0xdb,0xd7,0xf8,
+  0x98,0x63,0xb0,0xf1,0x1,0x1e,0xc,0x18,0x9b,0x73,0x6c,0x9f,0x63,0xf9,0x1a,0xec,
+  0x8b,0xed,0x6b,0xc,0x38,0x1d,0xdb,0x38,0xe0,0x84,0x49,0x26,0x9,0x81,0x84,0x50,
+  0x40,0x81,0x91,0x18,0x8d,0x34,0x39,0x87,0xe,0xd3,0xb9,0xbb,0xe2,0xe,0x6b,0xad,
+  0xfb,0xc7,0xda,0xd5,0xbd,0x67,0x4f,0xf5,0x68,0x94,0x50,0x40,0xdf,0xf3,0xec,0xa9,
+  0xae,0x5d,0x53,0x55,0xbb,0xf6,0x97,0xde,0xef,0x5d,0xdf,0x5a,0xb,0x5e,0x90,0x17,
+  0xe4,0x5,0x79,0x41,0x5e,0x90,0x17,0xe4,0x5,0x79,0x41,0x5e,0x90,0x1f,0x39,0x11,
+  0xcf,0xf4,0x5,0x3c,0xc7,0xa4,0x1f,0xe8,0x3,0xba,0x81,0x2e,0xc0,0x3,0x24,0x60,
+  0x80,0x10,0x68,0x0,0xb5,0xe4,0x58,0x4a,0x8e,0xf8,0x19,0xb9,0xd2,0xd3,0x94,0x17,
+  0xc,0xe0,0xb1,0x65,0x3d,0xb0,0x9,0x38,0x7,0xb8,0x4,0x38,0x77,0x4d,0xa9,0xbc,
+  0xb1,0xb7,0x50,0x5a,0xef,0x3b,0x9e,0x90,0x42,0xa0,0xd1,0x44,0x4a,0x51,0x6b,0xb5,
+  0xa6,0xe6,0x5b,0xf5,0xa3,0x8d,0x28,0x3a,0x6,0x8c,0x3,0x87,0x80,0x83,0xc0,0x4,
+  0x70,0x24,0x39,0x9e,0x55,0xf2,0x82,0x1,0xac,0x2e,0x9b,0x81,0x57,0x2,0xaf,0x1b,
+  0x2e,0x57,0xae,0x3b,0xab,0x7f,0xa8,0xef,0x8c,0xee,0x5e,0xd6,0xf7,0xf4,0xb1,0x71,
+  0x60,0x90,0x75,0x3d,0x3,0x54,0x72,0x5,0x3c,0x29,0x89,0xb4,0xa2,0x1a,0xb4,0x98,
+  0xaa,0x55,0x19,0x5f,0x9c,0x67,0xbc,0xba,0xc0,0x4c,0xbd,0xc6,0x5c,0xa3,0xc6,0x54,
+  0x6d,0x89,0xb1,0xc5,0xf9,0xa3,0x33,0x8d,0xda,0x7d,0xc0,0xfd,0xc0,0xb7,0x80,0x6d,
+  0xcf,0xe8,0x2f,0x4b,0xc9,0xb,0x6,0x70,0xb2,0x9c,0xd,0xfc,0x1a,0xf0,0x63,0x6f,
+  0xd8,0x7c,0xc9,0xe6,0x9f,0xbc,0xe4,0x4a,0x2e,0x19,0x39,0x93,0xd,0xbd,0x3,0xc,
+  0x54,0xba,0xc0,0xf3,0x41,0x6b,0x30,0x1a,0x8c,0x59,0x79,0x97,0x10,0x80,0x0,0x29,
+  0xec,0xdf,0x4a,0xd3,0x68,0xd6,0x99,0xa9,0x55,0x19,0xaf,0x2e,0xb0,0x77,0xe6,0x38,
+  0xb7,0xef,0xdb,0xc9,0x3f,0x6c,0xb9,0xe7,0x98,0xc6,0xdc,0xb,0x7c,0x12,0xb8,0xf3,
+  0x19,0xf9,0x85,0x29,0x79,0xc1,0x0,0x4e,0x94,0x5f,0x7,0xde,0xba,0x79,0x60,0xe8,
+  0xf2,0xf,0xbc,0xf2,0x6,0x79,0xfd,0x39,0xe7,0x73,0xf6,0x9a,0x61,0x90,0x12,0xb4,
+  0xb2,0xa,0x4f,0x2b,0xfd,0xb1,0x44,0x48,0x6b,0x10,0x52,0x82,0x36,0x4c,0x2f,0xce,
+  0xf3,0xdd,0x3,0xbb,0xf8,0xe4,0xf7,0x6e,0xe3,0xbb,0x7,0x76,0x1f,0x4,0xfe,0xe,
+  0xf8,0x38,0xd0,0x7c,0x7a,0x7e,0xce,0x69,0x5c,0xe2,0x33,0xf5,0xc5,0xcf,0x42,0x79,
+  0x7,0xf0,0xb1,0x37,0x5f,0x78,0xf9,0xc0,0xff,0xbc,0xfe,0x46,0xae,0x58,0xbb,0x1e,
+  0x5c,0x17,0x94,0x7a,0xea,0xbe,0x41,0x3a,0x60,0x34,0x47,0xe7,0x67,0xf9,0x97,0xad,
+  0xf7,0xf3,0xbb,0xdf,0xfe,0x52,0xad,0x1e,0x86,0x77,0x1,0xef,0x3,0xf6,0x3e,0x75,
+  0x5f,0x74,0xfa,0xe2,0x3c,0x13,0x5f,0xfa,0x2c,0x94,0x5f,0x5,0x7e,0xfb,0xc3,0xd7,
+  0xdd,0x30,0xf4,0xbf,0x5e,0xfb,0x66,0xce,0x1b,0x5a,0x6b,0xc3,0xb8,0xd6,0x4f,0xed,
+  0xb7,0x24,0xd1,0xa3,0xbb,0x54,0xe1,0xaa,0xb5,0xeb,0x79,0xd5,0x39,0xe7,0xfb,0x5b,
+  0x8e,0x1e,0xdc,0x38,0x55,0xab,0xbe,0xe,0x78,0x98,0x67,0x0,0x24,0xbe,0x60,0x0,
+  0xf0,0x21,0xe0,0x23,0xbf,0xfd,0x63,0x6f,0x1a,0xfe,0xf5,0xeb,0x6e,0x60,0xb0,0xab,
+  0x3b,0x51,0xd4,0xe3,0x8,0xf5,0x8f,0x57,0x8c,0xc6,0x71,0x1c,0xd6,0xf5,0xf4,0x73,
+  0xd3,0x85,0x97,0x89,0x43,0x73,0xd3,0x3,0x3b,0xa7,0x26,0xde,0x0,0xec,0x6,0xf6,
+  0x3c,0x7d,0x5f,0x7c,0xb2,0xfc,0x28,0x1b,0x80,0x4,0x7e,0xe,0xf8,0xc3,0xf7,0x5d,
+  0xfb,0xda,0xde,0xb7,0x5d,0x76,0x35,0x78,0xe,0xb5,0x38,0xa2,0x66,0x62,0x5a,0x5a,
+  0x81,0x14,0x78,0x8e,0x83,0x30,0x10,0x3b,0x12,0xed,0x48,0xe4,0x53,0x1c,0x14,0xba,
+  0xf2,0x45,0xde,0x78,0xde,0x8b,0x98,0x6b,0xd6,0xca,0xf,0x1d,0x3b,0xf4,0x1a,0x60,
+  0x3b,0x3f,0xc4,0x74,0xf0,0xa3,0x8a,0x1,0x9c,0x75,0xeb,0xd6,0xfd,0xd7,0x4a,0xa5,
+  0xf2,0x17,0xeb,0xd7,0xaf,0x77,0x6,0x7a,0x7b,0xa9,0x94,0x2b,0x14,0xa,0x79,0x7c,
+  0x3f,0x7,0x80,0xd6,0x8a,0x30,0x8,0x59,0x9c,0x99,0xd1,0xf9,0x7a,0xc8,0xe6,0xde,
+  0x35,0xf2,0xe2,0x8d,0x9b,0xd8,0x54,0xe9,0x65,0x20,0x32,0xb8,0xc6,0xe0,0x8,0xf9,
+  0x14,0x5d,0x8e,0xa0,0x15,0x87,0xfc,0xea,0x17,0xfe,0x91,0xbf,0xdd,0x72,0xd7,0x18,
+  0xf0,0x66,0x60,0xcb,0x53,0xf4,0xe1,0x8f,0xf1,0xcd,0x3f,0x62,0x32,0x34,0x34,0x54,
+  0x7a,0xfd,0xeb,0x5f,0xff,0x9e,0xd,0x1b,0x36,0x7c,0x74,0xd3,0xa6,0x4d,0xc,0xf,
+  0x8f,0x20,0x4,0x48,0x29,0x69,0xdf,0xe,0x63,0x74,0xf2,0x8,0x6,0xc3,0xdc,0xec,
+  0x1c,0xfb,0xf7,0xef,0x33,0x8f,0x6e,0x7f,0x54,0x84,0xcd,0xc0,0x8c,0x16,0x2b,0x5c,
+  0xe1,0x96,0xc4,0x35,0x43,0xeb,0x18,0x29,0x77,0x51,0xf0,0x7d,0xc4,0x32,0x21,0xf8,
+  0xc4,0xa5,0x16,0xb4,0xf8,0xf1,0x7f,0xf8,0x33,0xf3,0xad,0xbd,0x3b,0x76,0x0,0x3f,
+  0x6,0x4c,0x72,0xfa,0x3a,0x7a,0x42,0x5f,0xfe,0xa3,0x96,0x2,0xa,0xc5,0x62,0xf1,
+  0x17,0x87,0x87,0x87,0xff,0xe8,0xea,0xab,0xaf,0xe5,0xfc,0xf3,0x2f,0xc0,0x71,0x1c,
+  0x3c,0xcf,0xc7,0xf3,0x7c,0xa4,0x74,0x10,0x42,0xe0,0xba,0xe,0x8e,0xe3,0x92,0xcf,
+  0xe7,0x29,0x97,0x4b,0xc,0xe,0xe,0xb1,0x79,0xf3,0x66,0xf1,0x92,0x97,0x5c,0xcd,
+  0xe6,0xf3,0xce,0x13,0x3a,0xe7,0xf3,0xc0,0xec,0x4,0x7f,0x7e,0xdf,0xed,0xfa,0xbe,
+  0x3d,0x3b,0x45,0x6f,0xb9,0x2c,0x7a,0xcb,0x15,0xf2,0xae,0xb,0xe6,0x89,0xfb,0x94,
+  0xef,0xba,0xbc,0x62,0xe3,0x79,0xe2,0xf3,0xf,0x6f,0xe9,0x5b,0xa,0x9a,0x1b,0x81,
+  0x7f,0x4f,0x5e,0x6a,0x5b,0x67,0xf6,0x48,0xcb,0x6a,0xe7,0x4f,0x29,0x3f,0x4a,0x6,
+  0x50,0x4,0x7e,0xc5,0x75,0xbd,0xff,0xef,0x9a,0x6b,0x5e,0xa1,0xdf,0xfa,0xd6,0xb7,
+  0x89,0x7c,0xbe,0x48,0x2e,0x57,0xa0,0x50,0x28,0x27,0x47,0x29,0x79,0x5e,0xa4,0x58,
+  0x2c,0xd0,0xd5,0xd5,0xcd,0xc0,0xc0,0x1a,0x2a,0x95,0xa,0xbe,0xef,0xe2,0xfb,0x39,
+  0x7a,0x7b,0x7b,0xd9,0xb8,0x71,0x93,0xb8,0xe8,0xc2,0x8b,0xc4,0xa5,0x97,0x5e,0x26,
+  0x8f,0x34,0x6b,0xfc,0xf5,0xf7,0x6e,0xd7,0x7,0x83,0x9a,0x18,0xed,0x5f,0x23,0xfa,
+  0xfc,0x3c,0xce,0x93,0x8,0xac,0xdd,0xf9,0x22,0x9b,0xd7,0x8c,0xc8,0x7f,0xde,0x7a,
+  0xdf,0x5a,0xa0,0xa,0x7c,0x9f,0xce,0x6,0xc0,0x2a,0xe7,0xb2,0xe7,0x4f,0x29,0x3f,
+  0x2a,0x6,0x50,0x2,0x7e,0xb5,0xbb,0xbb,0xf7,0xe3,0xef,0x78,0xc7,0x3b,0xcd,0x87,
+  0x3f,0xfc,0x3f,0xa4,0xd6,0x6,0x21,0x4,0x8e,0xe3,0xe1,0x38,0xe,0xae,0xeb,0x51,
+  0x28,0x14,0x28,0x95,0xca,0x74,0x77,0x77,0xd1,0xdf,0xdf,0x4f,0x4f,0x4f,0x37,0xc5,
+  0x62,0x91,0x7c,0x3e,0x47,0xa1,0x50,0xa2,0x50,0xc8,0xe3,0x38,0xf6,0x96,0x69,0xd,
+  0xe5,0x72,0x85,0x2b,0xaf,0xb8,0x42,0x5c,0x7a,0xc9,0x8b,0xe4,0x3d,0x8f,0x6e,0x13,
+  0x77,0x8d,0x1d,0xd4,0xc5,0x4a,0x59,0xc,0xba,0x79,0xa,0xae,0xf7,0xf8,0x48,0xa3,
+  0x44,0x84,0x10,0xc,0x16,0xcb,0xec,0x38,0x3a,0x9e,0xdf,0x33,0x3f,0x79,0x2e,0xf0,
+  0x1d,0xe0,0x38,0x56,0x57,0xa7,0x63,0x0,0x9d,0x8c,0x61,0x55,0xf9,0x51,0x30,0x80,
+  0x12,0xf0,0xde,0x9e,0x9e,0xbe,0x8f,0xbd,0xf3,0x9d,0xbf,0x6c,0xde,0xff,0xfe,0xdf,
+  0x10,0x41,0xd0,0xc2,0xa4,0x94,0xe3,0x38,0x82,0x7c,0xde,0x23,0x9f,0xf7,0xf1,0x7d,
+  0xf,0xcf,0x73,0x70,0x1c,0x89,0xe3,0x38,0x38,0x8e,0x40,0x4a,0x89,0x94,0x2,0xd7,
+  0x75,0xc9,0xe5,0xf2,0x88,0x4,0xfc,0x9,0xe1,0x10,0x45,0x11,0xe5,0x72,0x99,0x6b,
+  0x5f,0x76,0x2d,0xcd,0xa0,0xc5,0x96,0xa9,0x31,0xe6,0x5a,0x75,0x31,0xec,0xe5,0xe9,
+  0xca,0x15,0x1e,0xbf,0x11,0x8,0x70,0x84,0x83,0x8f,0xcb,0x1d,0xfb,0x77,0xf5,0x35,
+  0x54,0xd8,0xb,0x7c,0x15,0x9b,0xe3,0x1f,0xaf,0x1,0x64,0x1f,0x4f,0x92,0xe7,0xbb,
+  0x1,0x14,0x81,0xf7,0xf7,0xf4,0xf4,0xfd,0x3f,0xef,0x7a,0xd7,0xbb,0xf5,0x7b,0xde,
+  0xf3,0x1,0x19,0x86,0x27,0x2a,0x1f,0xc0,0xf7,0x6d,0x14,0x10,0x2,0x8c,0x31,0x48,
+  0x29,0xf1,0x3c,0x7,0x29,0x25,0x42,0x48,0x84,0xb0,0x9e,0x9,0x24,0x18,0xc1,0x43,
+  0x4a,0x7,0x63,0x24,0x52,0xba,0x18,0x3,0x51,0x14,0xb0,0x71,0xe3,0x39,0xa2,0xab,
+  0x5c,0x12,0x7b,0x97,0xe6,0xd9,0x39,0x7e,0x94,0x11,0xe9,0xd1,0x57,0xee,0x7a,0xdc,
+  0x84,0x92,0x10,0xd0,0x6c,0xc5,0x1c,0x9c,0x98,0x61,0xcf,0xd2,0xc4,0x10,0x76,0x34,
+  0xf1,0x7,0x80,0xcb,0xea,0xca,0x3f,0x95,0x1,0x64,0xcf,0x2f,0xcb,0xf3,0xd9,0x0,
+  0xa,0xc0,0x7,0xba,0xbb,0x7b,0x6e,0xfe,0x95,0x5f,0xf9,0xef,0xbc,0xfb,0xdd,0xef,
+  0x95,0x61,0x18,0x9e,0xf4,0x9f,0x1c,0x47,0xe2,0xba,0x2e,0xae,0xeb,0x26,0x29,0x41,
+  0xe2,0xba,0x4e,0xe2,0xf5,0xd6,0xd3,0x8d,0x1,0xad,0xd,0x5a,0x1b,0x94,0xd2,0x80,
+  0xc1,0x18,0x43,0x14,0x29,0xb4,0x36,0xb8,0xae,0x8f,0xe3,0x38,0x28,0x15,0xd3,0xdb,
+  0xdb,0x4b,0x7f,0x7f,0x2f,0x63,0xf5,0x2a,0x77,0x6c,0x7f,0xd8,0xac,0x75,0x72,0xc,
+  0x75,0xf7,0x8a,0xc7,0x6b,0x4,0xb,0xf5,0x6,0x7,0xc6,0x66,0x68,0xea,0xa8,0x74,
+  0xbc,0xb9,0x58,0x6,0xbe,0x88,0xed,0x2d,0x68,0xd7,0x9e,0xa7,0xa3,0xfc,0x4e,0xa9,
+  0xe0,0x4,0x23,0x78,0xbe,0x1a,0xc0,0x30,0xf0,0x97,0xeb,0xd7,0x6f,0x78,0xcf,0x1f,
+  0xfc,0xc1,0x1f,0x8b,0x9f,0xfc,0xc9,0xb7,0x89,0x38,0x8e,0x96,0x5f,0x6c,0x23,0x7d,
+  0xcf,0x73,0xc9,0xe7,0x73,0x14,0x8b,0x79,0xa,0x85,0x1c,0xb9,0x9c,0x87,0xe7,0xb9,
+  0xcb,0x5e,0x6f,0xef,0x95,0x55,0x7c,0x18,0xc6,0xd4,0x6a,0xd,0x9a,0xcd,0x90,0x38,
+  0x56,0x44,0x91,0x22,0xc,0x43,0x94,0xd2,0xc9,0xe7,0xf9,0xb8,0xae,0xf,0x40,0xb1,
+  0x58,0x64,0x64,0x64,0x84,0x30,0xef,0x89,0x7f,0xbc,0xfb,0x36,0xe3,0x36,0x5a,0x9c,
+  0x3f,0xba,0x5e,0x18,0xad,0x4e,0xb,0x1e,0x1a,0x63,0x98,0x98,0x5f,0xe2,0xc0,0xf8,
+  0x34,0x95,0x5c,0x81,0x3,0x4b,0x53,0xa3,0x81,0x8e,0x1f,0x0,0x76,0x1,0x3e,0x9d,
+  0xbd,0xff,0x54,0x55,0xc2,0xaa,0x86,0xf0,0x7c,0x34,0x80,0x33,0x80,0x4f,0xac,0x5b,
+  0xb7,0xe1,0xad,0x37,0xdf,0xfc,0x51,0x5e,0xf9,0xca,0x57,0xa3,0xd4,0x4a,0x53,0x8e,
+  0x94,0x92,0x42,0xc1,0xa7,0x5c,0xce,0x53,0x28,0x58,0xc5,0x7b,0x9e,0x9b,0xe4,0x7c,
+  0x89,0x10,0x2,0x21,0x4,0xc6,0x68,0xb4,0x36,0xcb,0x3,0x80,0x61,0x18,0x53,0xaf,
+  0xb7,0x68,0xb5,0x62,0xa2,0x28,0x26,0x8e,0x63,0xb4,0x56,0x27,0xa4,0xf8,0x76,0x19,
+  0xe9,0x38,0xe,0xbe,0xe7,0xd3,0xd7,0xdb,0x8b,0xf2,0x5c,0xf1,0x95,0x7b,0xef,0xa4,
+  0x47,0xc3,0xa6,0xd1,0x75,0xe2,0x74,0x6,0x97,0x62,0x6d,0x38,0x30,0x39,0xcd,0xfe,
+  0xc9,0x29,0xa,0xae,0x4f,0x35,0x6e,0xb9,0x63,0xf5,0xf9,0x3d,0xc0,0x43,0x80,0xe2,
+  0xc4,0xaa,0x80,0x55,0x1e,0x3b,0x95,0x89,0x64,0xce,0x8b,0xe7,0x9b,0x1,0x9c,0x5,
+  0xfc,0xd9,0xc6,0x8d,0xe7,0xbc,0xe5,0xe6,0x9b,0x3f,0xc6,0xb5,0xd7,0xbe,0x72,0xf9,
+  0x5,0x21,0x2c,0xd8,0x2b,0x16,0xf3,0xcb,0x1e,0xef,0xfb,0x6e,0x12,0xee,0x5,0x52,
+  0x8a,0x65,0xe5,0xb7,0xff,0xd6,0xda,0x10,0xc7,0xa,0x63,0x6c,0xe8,0xf,0x82,0x8,
+  0xa5,0xec,0xf3,0xb6,0x71,0x64,0x45,0x8,0x89,0x52,0xa,0x10,0x48,0xe9,0xb0,0x66,
+  0x70,0xd,0x75,0x94,0xb8,0xf5,0xbe,0xef,0x89,0xf3,0x2b,0xbd,0xc,0xf5,0xf4,0xdb,
+  0x5e,0x82,0xd5,0x44,0x8,0xc2,0x30,0xe2,0xa1,0x3,0x47,0x98,0x5a,0xac,0x52,0xf4,
+  0x7c,0x9a,0x71,0xc4,0x8e,0x85,0xf1,0x1a,0xb6,0x24,0x9c,0x63,0x5,0xb,0x3c,0x96,
+  0xc7,0x3f,0x56,0x14,0x78,0x5e,0x45,0x80,0xf3,0x80,0x3f,0xbb,0xf0,0xc2,0x8b,0xde,
+  0xf8,0x7b,0xbf,0xf7,0x7,0x5c,0x7b,0xed,0x2b,0xc8,0xe7,0xbd,0x4,0xd5,0xbb,0x78,
+  0x9e,0xbb,0xc,0xea,0x40,0xe0,0x38,0x16,0xd5,0xaf,0x48,0x1b,0x64,0xaf,0x0,0x41,
+  0x63,0x4,0x41,0x10,0x12,0x4,0x11,0x51,0x14,0xa3,0x54,0x8c,0xd6,0x8f,0x8d,0xea,
+  0xa5,0x74,0xf0,0x3c,0xf,0x29,0x5d,0x1c,0xc7,0x61,0x68,0x70,0x90,0x23,0x8b,0x73,
+  0xdc,0xbf,0xf5,0x41,0x5e,0x77,0xd6,0x79,0x38,0xae,0xbb,0x7a,0x75,0x20,0x4,0xd5,
+  0x66,0x8b,0x5b,0x7f,0xb0,0x1d,0xd,0x38,0x8,0x2,0x15,0xb1,0x67,0x71,0xa2,0x1c,
+  0x6a,0x75,0x7,0x70,0x18,0xdb,0x8b,0xd8,0x56,0x7a,0x1b,0x13,0x64,0xb9,0x2,0x58,
+  0x3d,0xa,0x2c,0xff,0xfd,0x7c,0x31,0x80,0x21,0xe0,0x33,0x97,0x5e,0x7a,0xf9,0x8f,
+  0xdd,0x7c,0xf3,0x47,0x79,0xd9,0xcb,0xae,0xa5,0x5c,0x6e,0x7b,0xba,0x4f,0x3e,0xef,
+  0x93,0xcb,0x59,0x63,0xb0,0xc0,0xce,0xa0,0x94,0x41,0x6b,0x8d,0xe3,0xb4,0x81,0x9e,
+  0x7d,0xde,0x6,0x7c,0xf6,0x51,0xd1,0x68,0x4,0x34,0x9b,0x21,0x4a,0xa9,0xd3,0x52,
+  0xbe,0x8d,0x20,0xd6,0xd0,0xda,0x2c,0xa3,0xef,0xfb,0xf4,0xf4,0x74,0xb3,0x65,0xff,
+  0x1e,0xdd,0xdd,0xc,0xd9,0x34,0x34,0xba,0x2a,0x28,0x8c,0xb5,0xe6,0xde,0x5d,0xfb,
+  0xd9,0x37,0x39,0x8d,0x93,0x44,0xa4,0x48,0x2b,0xf6,0x2e,0x1d,0xaf,0xd4,0xe2,0xe0,
+  0x56,0x60,0x7,0x90,0xe3,0x44,0x85,0x9f,0x8a,0x29,0x34,0xac,0x1e,0x9,0x9e,0x17,
+  0x6,0xb0,0xe,0xf8,0xf8,0xd5,0x57,0x5f,0x7b,0xe3,0x6f,0xff,0xf6,0xcd,0x5c,0x7e,
+  0xf9,0xe5,0x9,0xaa,0x77,0x70,0x5d,0xb9,0x5c,0xc3,0x5b,0xb2,0xc7,0x49,0x50,0xbe,
+  0x5c,0xfe,0x5b,0x6b,0x9d,0x1c,0x56,0xb9,0x5a,0x2b,0xa2,0x28,0x26,0x8,0x22,0x5a,
+  0xad,0x88,0x56,0x2b,0x40,0x29,0x7d,0x5a,0xca,0xcf,0x4a,0xdb,0x18,0x1c,0xc7,0xa5,
+  0x5c,0x2a,0x22,0x7c,0x57,0xdc,0xb3,0xe5,0x1,0x71,0x7e,0xa5,0xd7,0x96,0x87,0x99,
+  0x28,0x60,0x8c,0x61,0xff,0xe4,0x34,0xdf,0x78,0x68,0x3b,0x52,0xb4,0x3f,0xc3,0x3e,
+  0xee,0x5c,0x98,0x60,0x31,0x6c,0xdc,0x87,0x35,0x80,0xd3,0x51,0x3c,0x9c,0x1c,0x1,
+  0x4e,0x3a,0xff,0x5c,0x37,0x80,0x73,0x81,0x4f,0x9c,0x7d,0xf6,0x39,0x3f,0xfe,0xd1,
+  0x8f,0xfe,0xbf,0x9c,0x7b,0xee,0x79,0x4,0x41,0x48,0xab,0x15,0xd0,0x68,0x34,0x59,
+  0x5a,0xaa,0xb2,0xb0,0xb0,0x48,0xad,0xd6,0x20,0x8a,0x62,0x60,0x5,0xdc,0xb5,0xf3,
+  0xbd,0x25,0x7b,0x64,0xe2,0xb5,0xed,0x92,0x8f,0xc4,0x0,0x2,0xe2,0x58,0x9f,0xc4,
+  0x1b,0x3c,0x5e,0x69,0x33,0x8d,0x3d,0x5d,0x15,0xee,0xde,0xf9,0x88,0x71,0xab,0xd,
+  0x71,0x61,0xdf,0xd0,0x32,0xab,0xd8,0x96,0x89,0xb9,0x5,0x3e,0xf7,0xbd,0x7,0x89,
+  0xe2,0x74,0x27,0xb9,0xc0,0x95,0x92,0x5d,0xb,0x13,0xcc,0x6,0xb5,0x1d,0xd8,0x86,
+  0xd2,0x90,0x15,0xdd,0x9d,0x8a,0xf,0x78,0x2c,0x11,0xee,0x63,0xff,0x9f,0x67,0xad,
+  0x5c,0x5,0xfc,0x47,0xa1,0xe0,0xac,0xab,0xd5,0xc6,0xd4,0x2f,0xfd,0xd2,0x5b,0x8c,
+  0x52,0x4a,0x28,0x15,0x8b,0x28,0xd2,0xc2,0x18,0x3b,0x2a,0xe3,0x79,0xe,0x5d,0x5d,
+  0x5d,0xf4,0xf7,0xf,0x70,0xc6,0x19,0xeb,0xf4,0xe6,0xcd,0x97,0x8a,0x4b,0x2f,0x7d,
+  0xb1,0xb8,0xf0,0xc2,0xb,0xe9,0xef,0xef,0xa3,0x54,0x2a,0xe2,0xfb,0x3e,0xae,0xeb,
+  0x20,0x84,0xc4,0x96,0xfe,0x3a,0x1,0x7e,0xe6,0x49,0x2b,0x1f,0xac,0x67,0xbb,0xae,
+  0x47,0x5f,0xdf,0x10,0x2f,0xbb,0xe6,0x1a,0xbe,0xf6,0x85,0x2f,0xeb,0x8b,0x7b,0x7,
+  0xc5,0x15,0xeb,0x37,0xa,0xb4,0x46,0x29,0xc5,0xec,0x52,0x9d,0x7f,0xff,0xde,0x83,
+  0x34,0x82,0xe0,0xc4,0xf7,0x62,0xf0,0xa4,0x43,0xce,0x71,0x1,0x6,0x81,0xa,0x76,
+  0xfe,0x81,0x4,0x2c,0x29,0x71,0xf2,0xa3,0x60,0xa5,0x5a,0x20,0x39,0xf,0x2b,0x23,
+  0x86,0xcb,0xe9,0xe1,0xb9,0x6a,0x0,0x97,0x1,0x9f,0xbe,0xe0,0x2,0xd6,0xdd,0x74,
+  0x93,0x62,0xdd,0xba,0xa6,0x23,0x25,0x38,0xe,0x78,0x1e,0xf8,0x3e,0xe4,0xf3,0xed,
+  0x43,0xe3,0x38,0xb3,0xd4,0xeb,0xb3,0xec,0xd8,0xb1,0x5b,0xde,0x79,0xe7,0x6d,0xfa,
+  0xb,0x5f,0xf0,0xf1,0xbc,0x2e,0x36,0x6d,0xba,0xd4,0xbc,0xf5,0x2d,0x3f,0x23,0xcf,
+  0xbf,0xf0,0x62,0x6,0x6,0x87,0xe8,0xee,0xee,0xc6,0x71,0x1c,0xb4,0xd6,0xf8,0xbe,
+  0x47,0x1c,0x2b,0x82,0x20,0x7a,0xca,0x8c,0xc0,0xf3,0x7c,0xae,0xb8,0xec,0xc5,0xe2,
+  0x8e,0xbb,0xef,0x16,0xdf,0x3a,0xb4,0x87,0xd,0x3d,0x3,0x38,0x38,0xec,0x38,0x36,
+  0xce,0xf7,0x76,0xef,0xa7,0xde,0x6c,0x75,0x7c,0xaf,0x40,0x90,0x77,0x7c,0xb0,0x13,
+  0x53,0x8a,0x58,0xef,0x77,0x58,0x51,0x7a,0xfb,0x10,0xac,0x18,0x81,0x49,0x9d,0x6b,
+  0x1b,0x4b,0xda,0x68,0xe0,0x39,0x1a,0x1,0x5e,0xc,0xfc,0xed,0xab,0x5f,0xcd,0x85,
+  0x7f,0xfd,0xd7,0x70,0xf6,0xd9,0xa7,0xff,0xc6,0x37,0xbc,0x1,0x3e,0xf0,0x1,0x2d,
+  0x1b,0xcd,0x16,0x77,0xdc,0xd6,0xe2,0x96,0x2f,0xdd,0xaa,0x3f,0xff,0xa9,0xbb,0xe3,
+  0x79,0xb3,0x56,0x8c,0x6e,0xbe,0x46,0xbe,0xfe,0x75,0x37,0x70,0xf1,0xc5,0x17,0x89,
+  0xd1,0xd1,0x51,0x72,0x39,0x8f,0x62,0x31,0xf,0x18,0x5a,0xad,0xe8,0x31,0x3f,0xfb,
+  0x74,0x44,0x8,0xc1,0xe0,0xe0,0x8,0x97,0x5f,0x72,0xb9,0xf9,0xc7,0xbf,0xf8,0xb4,
+  0xd1,0xb,0xa1,0x94,0x2d,0x87,0x7a,0xd0,0xc2,0x91,0x72,0x99,0x6e,0xee,0x24,0x39,
+  0xc7,0x45,0x40,0xc5,0x58,0x86,0xd3,0xc1,0x96,0x82,0x59,0x3,0xd0,0x58,0xcf,0x4f,
+  0x2b,0x19,0x56,0xc,0x1,0x4e,0x4c,0xd,0xe6,0xb9,0x86,0x1,0xae,0x6,0x3e,0xf3,
+  0xda,0xd7,0x72,0xc1,0xdf,0xfd,0x1d,0xac,0x5f,0xff,0xc4,0x3e,0xc4,0xf3,0x60,0xd3,
+  0x28,0xbc,0xe1,0xa2,0x35,0xf2,0x35,0x3f,0xf6,0xb,0x8d,0x73,0xcf,0x7b,0x49,0xfe,
+  0x8e,0xdb,0xbf,0xc1,0x5f,0xfd,0xd5,0x5f,0x98,0xed,0xbb,0xf6,0xd3,0xdd,0xdd,0x43,
+  0x7f,0xff,0x80,0x28,0x97,0x4b,0xf8,0xbe,0x4b,0x1c,0xeb,0x84,0x2,0x7e,0xf2,0x22,
+  0xa5,0xcb,0x40,0xff,0x80,0xf9,0xca,0xb7,0xbf,0x21,0xe,0xee,0x3b,0x24,0xd6,0x96,
+  0xfb,0xf0,0x1c,0xf7,0x94,0xca,0x97,0x42,0x70,0xa4,0x36,0xc7,0x91,0xda,0xec,0xac,
+  0xc6,0xdc,0x9,0xcc,0x73,0xe2,0xe8,0x60,0xba,0x14,0x6c,0x4b,0xa7,0xf,0x34,0x99,
+  0xc7,0xe7,0x14,0x11,0xf4,0x32,0xe0,0x33,0x37,0xdc,0xc0,0xe6,0xbf,0xfd,0x5b,0x58,
+  0xbb,0xf6,0x9,0x7e,0x4a,0x84,0x1d,0x5c,0x9d,0x38,0x23,0xa0,0xeb,0x17,0xe2,0xe2,
+  0x39,0xef,0x2e,0x9e,0x3d,0x9a,0xe3,0x67,0x5f,0x9e,0x13,0x17,0x9e,0xd5,0x2d,0xee,
+  0x7d,0xe0,0x41,0x3e,0xf3,0x4f,0xff,0xae,0x14,0xae,0x1c,0x19,0x1e,0x65,0x60,0xa0,
+  0x1f,0xdf,0x77,0x96,0xc9,0xa0,0x93,0xab,0xaa,0xc7,0x27,0x42,0x8,0x7c,0xdf,0x9d,
+  0xdb,0xf1,0xc8,0xc3,0xe6,0xc1,0x9d,0xdb,0xfc,0x8d,0xa5,0x41,0xca,0x7e,0xfe,0x94,
+  0xef,0x71,0x84,0xe4,0x70,0x6d,0x96,0xc3,0xd5,0x99,0x39,0x8d,0xb9,0x83,0x15,0x32,
+  0x28,0x3b,0x2e,0x90,0x95,0xf6,0xc5,0xae,0x9a,0xc3,0x9e,0x2b,0x6,0xf0,0xa,0xe0,
+  0x6f,0xde,0xf8,0x46,0xce,0xfd,0x9b,0xbf,0x81,0x91,0x91,0x27,0xf8,0x29,0x2d,0xe0,
+  0xa8,0x80,0xb9,0x33,0x43,0x86,0x7f,0x5,0x86,0x7f,0x39,0x4f,0xbd,0x5,0x87,0x6f,
+  0x81,0xe6,0x4,0x9b,0x37,0xf,0xf1,0x7f,0xbd,0xe6,0x3c,0x11,0xab,0xd8,0x7c,0xe6,
+  0xb3,0x5f,0x14,0xbb,0xf,0x8c,0x8b,0x73,0x36,0x9e,0xc3,0x99,0x67,0x9e,0x99,0x8c,
+  0xe,0x8a,0x84,0x19,0x7c,0xe2,0x3f,0xc4,0x75,0x3d,0xe,0x1e,0xdc,0x77,0xa4,0x5e,
+  0xaf,0x16,0xee,0xdb,0xfa,0x50,0xa1,0x2b,0x76,0x18,0x2e,0xf6,0x9c,0x32,0x2,0x38,
+  0x42,0x72,0xa8,0x3e,0xc3,0xa1,0xda,0xcc,0x8c,0x36,0xe6,0xbb,0x9c,0xcc,0x6,0xb6,
+  0xe5,0x84,0xf0,0x7e,0x3a,0x8f,0xcf,0x5,0x3,0x78,0x15,0xf0,0x97,0x37,0xde,0xc8,
+  0xe6,0xbf,0xfc,0xcb,0x27,0xa1,0xfc,0x0,0x38,0x22,0x60,0x61,0x7d,0xc8,0xf0,0xbb,
+  0x60,0xf0,0x1d,0x39,0x54,0x11,0x8e,0x7e,0x9,0xe6,0x1f,0xb5,0xf5,0x5f,0xac,0x70,
+  0x1d,0xc1,0x2b,0xaf,0x3e,0x53,0x6e,0x5a,0xdb,0x23,0xbe,0x7a,0xeb,0x3d,0xdc,0x7a,
+  0xe7,0x43,0xe6,0x82,0xf3,0xce,0xe3,0xac,0xb3,0xce,0x16,0x9e,0x67,0xcb,0xc5,0x28,
+  0x52,0x49,0xdf,0xe0,0xe3,0x8f,0x4,0xae,0xeb,0xb1,0x7d,0xfb,0xf,0x9a,0xc6,0xa8,
+  0xe2,0xc1,0x83,0x7,0x73,0xe3,0xc7,0x27,0xd9,0xdc,0x35,0x8c,0x2f,0x57,0x57,0x85,
+  0x23,0x24,0x7,0xaa,0x53,0x1c,0xaa,0xce,0x1c,0xd7,0x98,0xbb,0xb0,0x29,0xa0,0x8d,
+  0xdf,0x56,0x9a,0x19,0x3b,0x4b,0xb6,0x2,0x38,0xa1,0xe7,0xfd,0xa9,0x6a,0x6b,0x7d,
+  0xba,0xe4,0x7d,0xc0,0xbf,0xfe,0xd6,0x6f,0xb1,0xf9,0x9f,0xff,0x19,0x46,0x47,0x9f,
+  0xe0,0xa7,0xb4,0x80,0xbd,0x8e,0x21,0x7a,0x71,0x93,0x73,0xfe,0x8,0x46,0xdf,0xeb,
+  0x13,0x49,0x38,0xf8,0x6f,0x30,0x71,0xf,0x84,0x4d,0x6b,0x0,0x51,0x0,0x61,0xb,
+  0x6a,0x75,0x6e,0x7a,0xf9,0x19,0x7c,0xe5,0x4f,0x6e,0xe4,0xa5,0xeb,0x17,0xc4,0xdb,
+  0x7e,0xf6,0x67,0xf4,0xdf,0xff,0xfd,0x67,0x8c,0xe7,0xf9,0x94,0xcb,0x5,0xba,0xbb,
+  0x4b,0xa7,0xf4,0xd8,0xd5,0xc4,0x75,0x5d,0x26,0x27,0x8f,0x8d,0x1d,0x3f,0x3e,0x51,
+  0x6e,0x34,0x1a,0x95,0xab,0x5f,0xf2,0x52,0xa6,0x69,0xb1,0x10,0x36,0x38,0x95,0xe,
+  0x5,0x82,0x40,0xc5,0xc4,0x46,0x37,0x92,0x53,0x1e,0xd6,0x0,0xda,0x8f,0xed,0xc3,
+  0xc1,0xea,0xf4,0x74,0x8e,0x67,0x3d,0x15,0xfc,0x6b,0xc0,0x47,0x7e,0xfb,0xb7,0x19,
+  0xfc,0xd0,0x87,0xa0,0x52,0x79,0x12,0x9f,0x34,0xe5,0x41,0xf4,0xd2,0x26,0xc5,0xff,
+  0xea,0x33,0xf2,0x56,0x8f,0x56,0x15,0x8e,0x7c,0x5,0x26,0xee,0x2,0x42,0x90,0x2e,
+  0x84,0xc9,0xbd,0x55,0x31,0xb8,0x3e,0x20,0xa9,0xf4,0x55,0x78,0xe9,0x85,0xc3,0xd4,
+  0x6a,0xb,0xfc,0xd9,0xdf,0xdf,0x62,0xfa,0x7a,0x7b,0xc5,0xe5,0x97,0x5f,0x29,0x1c,
+  0x47,0x2c,0xf7,0x2,0x3c,0x9e,0x12,0x51,0x4a,0x87,0x47,0x1e,0x79,0xa8,0x7e,0xf8,
+  0xf0,0xa1,0x2,0xe0,0xf7,0xf5,0xf5,0xf1,0xd0,0xb6,0x87,0xe9,0x8a,0x1d,0x86,0xa,
+  0xdd,0xab,0x1a,0x95,0x23,0x25,0xdb,0xe6,0x8e,0x32,0xd1,0x58,0xd8,0xd,0x3c,0x80,
+  0xe5,0x1,0xd2,0xba,0x4b,0xd3,0xbe,0xd9,0xb,0x32,0x99,0xf3,0xe9,0xe7,0xcf,0xda,
+  0x2a,0xe0,0x37,0x81,0xdf,0xf8,0xdd,0xdf,0x65,0xe0,0x3,0x1f,0x78,0x92,0xca,0x9f,
+  0xf5,0xa0,0x7a,0x79,0x93,0xfc,0x7f,0xf3,0x18,0xf9,0x69,0xf,0x1d,0xc3,0xe1,0x2f,
+  0xc3,0xd1,0x6f,0x83,0x63,0xc0,0xf1,0x20,0x57,0x0,0x2f,0xf,0x5e,0xce,0x92,0x9,
+  0x5a,0x81,0x8a,0x20,0x8a,0x28,0xb8,0x9a,0x97,0x9c,0xd3,0x2d,0xa2,0xb0,0xc5,0x9f,
+  0x7c,0xe6,0x56,0xd3,0x55,0xa9,0x88,0xcb,0x2f,0xbf,0x42,0x48,0x69,0xec,0x24,0x60,
+  0x75,0x7a,0x4c,0xa1,0xef,0xfb,0xcc,0xcd,0xcd,0x2c,0xde,0x7f,0xff,0x3d,0x5a,0x6b,
+  0xd5,0x2b,0xa5,0x24,0x9f,0xcf,0x73,0xf4,0xc8,0x11,0xdd,0x9a,0x5b,0x14,0x67,0x95,
+  0x7,0x90,0x1d,0xe6,0x19,0xb4,0xdb,0x12,0xb6,0xce,0x1e,0x61,0xba,0x55,0x7d,0x18,
+  0x3b,0x24,0x1c,0x71,0x72,0xc8,0x68,0x73,0x0,0x70,0xa2,0x11,0x98,0xe,0xc7,0xb2,
+  0x3c,0x1b,0xd,0xe0,0x7f,0x3,0x1f,0xfc,0xd8,0xc7,0xe8,0x79,0xdf,0xfb,0xa0,0x5c,
+  0x7e,0x2,0x9f,0xd0,0xfe,0x99,0xaa,0x0,0x7,0xce,0x89,0xc8,0xbd,0xcb,0x61,0xed,
+  0x4f,0x7b,0x38,0x12,0xc6,0xbf,0x3,0xd3,0x77,0x81,0x6a,0x1,0x32,0x9,0xfd,0x91,
+  0x7d,0x43,0x1c,0xda,0x9,0x9c,0x60,0xd,0xc1,0x71,0x40,0xba,0xe4,0x8a,0x39,0xae,
+  0xbc,0x60,0x48,0x34,0x9a,0x55,0xfe,0xe0,0xcf,0xbf,0x64,0x4a,0xc5,0x2,0x2f,0x7b,
+  0xd9,0xcb,0x84,0x6d,0x16,0xd1,0xc4,0xf1,0xa9,0x4b,0x44,0xc7,0x71,0x68,0x36,0x1b,
+  0xf5,0x87,0x1f,0x7e,0x70,0x66,0x6c,0xec,0xe8,0x88,0xeb,0xba,0xb2,0x3d,0x4e,0x10,
+  0x4,0x1,0xe3,0x47,0x8e,0x8a,0x4d,0xa5,0x35,0xb8,0x1d,0x70,0x80,0x14,0x82,0x50,
+  0xc5,0x6c,0x9d,0x3b,0xc2,0x7c,0x50,0xbf,0x7,0x3b,0x73,0x28,0x8d,0xee,0xd3,0xde,
+  0x9f,0xbd,0x3,0x69,0x76,0xb0,0xe3,0xf1,0x6c,0x23,0x82,0x7e,0xd6,0x75,0xf9,0xc0,
+  0xc7,0x3f,0x4e,0xe9,0x5d,0xef,0xb2,0x4c,0xde,0x69,0x4b,0xda,0xb6,0x5,0x20,0x8a,
+  0xf0,0xe8,0x3a,0x45,0xf9,0x3d,0x92,0x33,0xde,0xea,0x60,0x2,0x38,0xf8,0x4d,0x98,
+  0xbc,0x13,0x8,0x2d,0x5d,0x88,0x48,0xc2,0x3d,0x49,0xdf,0x9e,0x49,0xa6,0x72,0x6b,
+  0x8b,0x5,0x54,0x13,0xc2,0x0,0x84,0xa0,0x9c,0x2f,0xf0,0x81,0xb7,0x9c,0x2d,0x6b,
+  0x4b,0x4b,0xe6,0xf,0x3f,0xfe,0x47,0xe6,0xe5,0x2f,0x7f,0x39,0x17,0x5f,0x7c,0x9,
+  0x4a,0xd9,0x9e,0x81,0x30,0xec,0xbc,0x12,0x8c,0x55,0x72,0x18,0xec,0xdc,0xf9,0xe8,
+  0xfc,0xee,0xdd,0x3b,0x86,0x3d,0xcf,0x73,0xda,0xa1,0xde,0xf7,0x7d,0x6,0x7,0x7,
+  0xc5,0x43,0x52,0x9f,0x62,0x56,0x87,0xa0,0xa9,0x22,0x9a,0x71,0x8,0x16,0xfd,0x87,
+  0xd8,0x7c,0x9f,0x26,0x7b,0xd2,0xd,0xa3,0xa4,0xfe,0x4e,0xf,0x18,0x75,0x94,0x67,
+  0x4b,0x4,0x70,0x80,0x5f,0xf4,0x3c,0x3e,0xf1,0xa9,0x4f,0x51,0x79,0xe7,0x3b,0x21,
+  0x97,0x7b,0x9c,0x9f,0x10,0xb1,0x12,0x18,0x9d,0x3c,0x6c,0x3f,0x53,0x51,0xf9,0x75,
+  0x38,0xf3,0xc7,0x1d,0x4c,0xb,0x26,0x6f,0x83,0xa5,0x87,0x41,0xc4,0xe0,0xe6,0x6c,
+  0xde,0x47,0x40,0xd0,0x84,0xa0,0xb1,0x2,0x0,0xdb,0xd1,0xc0,0x68,0xf0,0xb,0x50,
+  0xac,0x40,0xa1,0x2,0x7e,0x81,0x5c,0xb9,0xcc,0x8b,0x36,0xd,0x8a,0xfd,0xfb,0xe,
+  0x8a,0x6d,0x87,0x9a,0xbc,0xf8,0xaa,0x2b,0xa8,0x54,0x4a,0x44,0x91,0x6d,0x11,0xcb,
+  0x8a,0x10,0x82,0x28,0x8a,0xc2,0x1d,0x3b,0x1e,0x9d,0x7a,0xf0,0xc1,0x7b,0xfb,0x5d,
+  0xd7,0x2d,0x4a,0x29,0x59,0x5c,0x5c,0xa4,0xd9,0x6c,0xe2,0xfb,0x3e,0xf3,0xf3,0xf3,
+  0x3c,0xbc,0x6d,0x1b,0x97,0x56,0xd6,0xe2,0x75,0x88,0x0,0x8e,0x10,0xcc,0xb6,0x6a,
+  0x6c,0x9d,0x3d,0x1c,0xb4,0x54,0x74,0x1b,0x30,0xc6,0x4a,0x5,0x0,0x27,0x33,0x7e,
+  0xed,0x73,0x59,0x86,0xb0,0x63,0x44,0x78,0x36,0x44,0x80,0x1c,0xf0,0x8b,0xc5,0x22,
+  0x7f,0xfa,0xee,0x77,0xe3,0xbd,0xf3,0x9d,0x4f,0xf0,0x53,0x7c,0x92,0x9f,0x94,0x83,
+  0x47,0x37,0x28,0xba,0x7f,0x7,0x86,0x5f,0xe3,0x60,0x42,0x38,0x76,0xb,0x4c,0x3d,
+  0x8,0x71,0xd,0x74,0x6c,0x15,0x1d,0x87,0x50,0xec,0x6,0x84,0xcd,0xfd,0xae,0x7,
+  0xd2,0xb3,0xe3,0xaf,0x2,0x6b,0x10,0x2a,0x86,0xa8,0xe,0x71,0xf2,0x9e,0xb0,0xc9,
+  0x70,0xa5,0xc4,0xfb,0xde,0x7c,0xe,0x6f,0xfb,0xc3,0xcf,0x9a,0x2b,0xaf,0xb8,0x9c,
+  0x9f,0xfb,0xd9,0x9f,0x11,0xb9,0x9c,0xb7,0xdc,0x33,0x90,0x96,0x56,0xab,0xd9,0xdc,
+  0xb2,0xe5,0xde,0x63,0x7b,0xf6,0xec,0x5a,0xef,0x38,0x8e,0x6f,0xfb,0xf,0x1c,0xe2,
+  0x38,0x66,0xef,0xde,0xbd,0xec,0xdf,0xbf,0x1f,0xcf,0xf7,0xa9,0xb7,0x9a,0xab,0x46,
+  0x0,0x21,0x4,0xd,0x15,0xb0,0x18,0x36,0x8f,0x0,0x8b,0xac,0x20,0x7d,0xc3,0xa,
+  0xa2,0x6f,0xd7,0xa4,0xab,0x11,0x42,0xab,0x9d,0xe7,0x99,0x36,0x80,0x22,0xf0,0xae,
+  0xae,0x2e,0xfe,0xf8,0xbd,0xef,0x45,0xdf,0x7c,0xf3,0x93,0xfc,0xb4,0xc0,0x81,0x3d,
+  0x1b,0x34,0x6b,0x7e,0x4f,0xd0,0x7f,0x95,0xa4,0x39,0x5,0xe3,0x77,0xc2,0xd4,0x7d,
+  0x20,0x94,0xf5,0x7a,0x37,0x7,0xf9,0x2e,0xab,0x68,0xad,0x20,0x8e,0xac,0x51,0x54,
+  0x67,0xad,0xf7,0x4b,0x9,0x42,0xda,0xf3,0xe5,0x1e,0x9b,0x22,0xbc,0x2,0x14,0xbb,
+  0xc0,0x71,0xc1,0x68,0x2e,0xbf,0xb4,0x9b,0xd7,0xbf,0xe8,0x80,0xf9,0x97,0x7f,0xfa,
+  0x8c,0x39,0x63,0xed,0xa8,0xbc,0xf2,0xca,0x17,0x8b,0x54,0x6f,0x81,0x89,0xe3,0x38,
+  0x9e,0x9b,0x9b,0xad,0xde,0x71,0xc7,0x37,0x8e,0x37,0x9b,0xc1,0xf9,0x52,0xda,0x12,
+  0x70,0x7e,0x7e,0x9e,0x30,0xc,0x71,0x5d,0x17,0xad,0x35,0xe3,0xe3,0xe3,0x8c,0x8e,
+  0x8e,0xa2,0x4d,0x96,0xba,0x5f,0x91,0xd8,0x68,0xe6,0x5a,0x35,0x34,0xe6,0x30,0x2b,
+  0x6,0x70,0x2a,0x65,0xb7,0xe5,0xb1,0x5e,0x7,0x9e,0x59,0x3,0x28,0x3,0xbf,0xd2,
+  0xdf,0xcf,0x1f,0xfe,0xda,0xaf,0xa1,0x3f,0xf2,0x91,0x27,0xc1,0x49,0x68,0x60,0x1a,
+  0xc3,0xb1,0x61,0xcd,0xf0,0xaf,0x43,0xdf,0xc5,0xe,0x8d,0x19,0x98,0x7e,0x8,0x96,
+  0xb6,0x41,0x3e,0x67,0xbd,0x58,0xc5,0x10,0x85,0x56,0xe1,0x51,0x8,0x71,0x13,0xdc,
+  0x4,0xfd,0xe7,0xa,0x50,0xea,0x5,0x3f,0xbf,0x2,0x4,0x4d,0x92,0xa,0xb4,0xb6,
+  0xc6,0xd2,0xaa,0x41,0xb3,0xa,0x39,0x9f,0xf7,0xbc,0xed,0x32,0xf9,0x73,0x37,0xdf,
+  0xc9,0x6d,0xb7,0x7f,0xd7,0x6c,0xda,0x74,0xae,0x6a,0xb5,0x22,0xa3,0x35,0xaa,0xd5,
+  0x6a,0xc5,0xf7,0xdd,0x77,0xd7,0xfe,0x89,0x89,0xa3,0xe7,0x68,0xad,0xcf,0x3f,0x7c,
+  0xf8,0x30,0xf9,0x7c,0x9e,0xa1,0xa1,0x21,0xe2,0x38,0x66,0x6c,0x6c,0x8c,0xbe,0xbe,
+  0x3e,0x84,0x10,0x84,0x61,0x68,0xdb,0xcf,0x56,0x29,0xff,0xa4,0x10,0x2c,0x85,0x4d,
+  0x8e,0xd6,0xe7,0xc0,0xb6,0x82,0x2d,0xb2,0x92,0xff,0x57,0x6b,0x0,0x39,0x15,0x57,
+  0x7d,0x92,0x51,0x3c,0x53,0x6,0x50,0x6,0xfe,0xfb,0xe0,0x20,0x1f,0xfd,0xe0,0x7,
+  0x31,0x1f,0xfa,0xd0,0x93,0x24,0xa4,0x62,0xc,0x8b,0x7d,0x11,0x23,0xef,0x11,0x74,
+  0x6d,0x70,0x99,0xdb,0xf,0xd3,0xdb,0x61,0xe6,0x7,0x50,0x9f,0x85,0x5c,0xd1,0x96,
+  0x7b,0x9e,0x67,0x91,0xbd,0xeb,0x5a,0x45,0xd3,0x6d,0xdf,0xef,0xe7,0xec,0xeb,0x6,
+  0x6b,0x1c,0x71,0xb8,0x42,0xc,0xc5,0x21,0xb4,0xea,0x36,0x62,0xe4,0x8a,0xd0,0x3b,
+  0xc,0x6e,0x8e,0x73,0x86,0x5d,0x6e,0x7a,0xc5,0xd9,0xfa,0x4f,0xff,0xe6,0x13,0x71,
+  0xd0,0x5a,0x5a,0xe8,0xee,0xee,0xd1,0xae,0xeb,0x4f,0xb7,0x5a,0xf5,0x75,0xb9,0x5c,
+  0xee,0x92,0x5c,0x2e,0x47,0xb3,0xd9,0xa4,0xd5,0x6a,0x71,0xf4,0xe8,0x51,0x94,0x52,
+  0x54,0x2a,0x15,0xea,0xf5,0x3a,0x9e,0xe7,0x21,0x84,0x20,0x8e,0x63,0x82,0x30,0xc0,
+  0x93,0xe9,0xf9,0x1e,0x2b,0x22,0x80,0xe9,0x56,0x95,0x7d,0xd5,0xe3,0x75,0xe0,0x68,
+  0x72,0xba,0x3d,0xc,0xc,0x27,0xc2,0xde,0x6c,0x15,0xd0,0x49,0x4e,0x3a,0xff,0x4c,
+  0x80,0xc0,0x12,0xf0,0xde,0xc1,0x41,0x3e,0xfa,0xe1,0xf,0x63,0x3e,0xf8,0xc1,0x27,
+  0x31,0xb2,0x2,0x16,0x13,0x8f,0x15,0x43,0xba,0x7f,0xf,0xa,0xeb,0x7c,0x66,0xc6,
+  0x5,0x53,0x3b,0xa0,0xba,0xd7,0xae,0xe8,0xd5,0x35,0x0,0xa5,0x1e,0xab,0xbc,0x76,
+  0x9d,0xad,0x23,0x7b,0x2b,0x72,0x25,0x1b,0xd6,0xb5,0xb6,0xd1,0x21,0xe,0xad,0x97,
+  0x7,0xd,0x68,0x35,0xec,0xf3,0x42,0x19,0xca,0xbd,0x50,0xee,0xb3,0xff,0x5f,0x48,
+  0x7b,0x3e,0x8e,0xd9,0xbc,0x61,0x40,0x7c,0xf5,0xce,0xdd,0xce,0xd1,0xe3,0xcd,0xd2,
+  0x86,0xd,0xeb,0xca,0x13,0x13,0x63,0x43,0xbe,0xef,0xe7,0x95,0x52,0x4,0x41,0x80,
+  0x31,0x86,0x20,0x8,0x98,0x9a,0x9a,0x22,0x8a,0x22,0x7c,0xdf,0x67,0x61,0x61,0x61,
+  0x59,0xf9,0xb,0xb,0xb,0x4,0xad,0x90,0xd6,0x52,0x95,0xcb,0x7a,0xcf,0x3c,0x1,
+  0x4,0x4a,0x4,0xd5,0xb8,0xc5,0x3d,0xc7,0xf7,0x70,0xb4,0x3e,0xbf,0x13,0xf8,0x26,
+  0x27,0x36,0x7e,0xb4,0x87,0x7d,0xb3,0xc3,0xc0,0xd9,0xe7,0x8a,0x13,0xc1,0x5f,0x1a,
+  0x14,0xfe,0xd0,0x23,0x40,0x1,0x78,0xcf,0x9a,0x35,0xfc,0xfe,0x6f,0xfc,0x6,0xe6,
+  0xfd,0xef,0x7f,0x92,0xca,0x8f,0x31,0x8c,0x95,0x42,0xea,0x6f,0xd7,0xc,0xbd,0xb4,
+  0x40,0x7d,0x11,0xe2,0x49,0x90,0x55,0x68,0x4f,0xc9,0x8a,0x93,0xd9,0x40,0x2a,0xb6,
+  0x94,0xaf,0x74,0x2c,0xe9,0x3,0xf6,0xb5,0x20,0x51,0xb4,0x90,0x16,0x23,0x78,0x3e,
+  0xe4,0x7a,0x2c,0x28,0xd4,0x1a,0x8c,0x6d,0xf1,0xc6,0xa8,0xc4,0x50,0x22,0x1b,0x11,
+  0x1c,0x97,0xc1,0x33,0xfb,0xb9,0xe1,0x9a,0xb3,0xf4,0x5f,0xff,0xe7,0x6e,0xb1,0x6b,
+  0xd7,0xa8,0xa8,0xd7,0xeb,0xcc,0xcf,0xcf,0x2f,0x7b,0xfa,0xfc,0xfc,0x3c,0x1b,0x36,
+  0x6c,0xc0,0x71,0x1c,0xe6,0xe6,0xe6,0xc8,0xe7,0xf3,0xe8,0xa4,0x3,0x28,0x8a,0x22,
+  0x5c,0xd7,0xa5,0x5a,0xaf,0x9a,0xa2,0xf0,0x85,0x4c,0xdd,0xa,0x81,0x20,0x34,0x31,
+  0x3f,0x98,0x39,0xcc,0xc3,0x73,0x47,0x17,0x80,0xef,0x62,0x57,0x1f,0xed,0x34,0xdc,
+  0x9b,0xad,0xed,0x4f,0x59,0xf7,0x67,0xdf,0xfb,0xc3,0x8c,0x0,0x39,0xe0,0x7d,0xbd,
+  0xbd,0x7c,0xec,0xc3,0x1f,0xc6,0x7c,0xe0,0x3,0x4f,0x52,0xf9,0x1,0x86,0x23,0x6b,
+  0x42,0xa2,0xf7,0x68,0xce,0x7e,0x7b,0x8e,0x56,0x4d,0x30,0xb3,0x1d,0xea,0x7,0x40,
+  0x7,0x56,0xb1,0xcd,0x2a,0xd4,0xe7,0x92,0x25,0xde,0xb4,0xfd,0xf9,0xad,0xfa,0xa,
+  0x16,0x40,0x5b,0x90,0x57,0xea,0x81,0x52,0x77,0x92,0xff,0x25,0xa8,0xd0,0x1a,0x8b,
+  0x36,0x56,0xe1,0x18,0x9b,0x2,0x54,0x64,0xcf,0xe5,0x4b,0x36,0xa2,0x20,0x59,0x53,
+  0x40,0x7c,0xe1,0xb6,0x9d,0xa2,0x1e,0xf9,0xa8,0x38,0xa2,0xd1,0x68,0xd0,0x68,0x34,
+  0x28,0x97,0xcb,0x6c,0xdd,0xba,0x15,0xdf,0xf7,0x31,0xc6,0xb0,0xb4,0xb4,0x84,0xe7,
+  0x79,0x44,0x51,0x44,0x2e,0x97,0x23,0x8,0x2,0xa,0x85,0x2,0xe3,0x13,0x13,0x66,
+  0x80,0xbc,0xd8,0xdc,0x3d,0x82,0x93,0x98,0x81,0x32,0x9a,0x7,0x67,0xf,0x73,0xfb,
+  0xd8,0x8e,0x50,0x63,0xbe,0x6,0xdc,0x86,0x8d,0xd6,0x59,0x2f,0xce,0x7a,0xba,0xca,
+  0x3c,0x4f,0x47,0x80,0x4e,0x51,0xe0,0x87,0x16,0x1,0x7c,0xe0,0xbd,0x5d,0x5d,0xfc,
+  0xde,0x87,0x3f,0xc,0x1f,0xfa,0xd0,0x93,0x54,0x7e,0xb,0xd8,0xd5,0x17,0x23,0xde,
+  0xd,0xe7,0xbf,0x23,0x4f,0x38,0x23,0x38,0x72,0x7,0x2c,0xee,0x3,0xa1,0x6d,0x9b,
+  0x43,0x7d,0xde,0x7a,0xac,0xe7,0x5b,0xe5,0x19,0x1,0x9e,0xb,0x5e,0x8f,0xad,0xef,
+  0x65,0x42,0xf9,0xea,0x18,0xe2,0x0,0x9a,0x8b,0x2b,0x1d,0xa1,0x5a,0xd9,0xf7,0x14,
+  0xbb,0x93,0xd2,0x10,0x40,0x82,0x5f,0xb4,0xdf,0xaf,0x63,0x10,0xd0,0x5c,0xa8,0xd1,
+  0xed,0xeb,0xa5,0xcd,0xeb,0xfa,0x73,0xdb,0x27,0x26,0x7d,0xd3,0xbb,0x46,0x8,0x60,
+  0x7e,0x7e,0x9e,0xbe,0xbe,0x3e,0xd6,0xad,0x5b,0xc7,0xe1,0xc3,0x87,0x19,0x19,0x19,
+  0x21,0x8a,0x22,0xea,0xf5,0x3a,0x60,0xc9,0x21,0xdf,0xf7,0x29,0x14,0xa,0xd4,0x1b,
+  0xd,0xd1,0x5f,0x1e,0xa0,0x1d,0x1,0x34,0xb0,0x75,0xee,0x28,0xb7,0x1f,0xdb,0x1e,
+  0x47,0x46,0xdd,0xa,0xdc,0xc2,0x8a,0xf2,0xa1,0xb3,0x57,0x67,0xbd,0x3e,0xfd,0x9c,
+  0x55,0xce,0x1,0x3f,0x1c,0x3,0xe8,0x5,0xfe,0xf8,0x8c,0x33,0xf8,0x85,0x4f,0x7d,
+  0xa,0x6e,0xba,0xe9,0x49,0x7e,0xda,0x2,0xf0,0xc8,0x86,0x90,0xd2,0xfb,0x24,0x9b,
+  0xdf,0x94,0x63,0xfa,0x7,0x70,0xf4,0xbb,0xd0,0x18,0x7,0x47,0x82,0xf0,0x6c,0x38,
+  0xef,0x1a,0xb4,0x80,0x4f,0x24,0x94,0xae,0x31,0x9,0xf2,0xf,0xa1,0x36,0x6f,0x1,
+  0x9e,0xe3,0x26,0xc6,0xa1,0xed,0xa3,0x97,0x87,0x9c,0x9f,0x70,0x2,0xed,0x8e,0xab,
+  0xc4,0x56,0x83,0x3a,0xd4,0x17,0x2d,0x71,0x24,0xd,0x93,0x75,0x97,0xf1,0xc3,0x63,
+  0xb5,0xfe,0x35,0xa3,0xc1,0x7f,0xbb,0xf1,0xa2,0xe2,0x5f,0xff,0xcb,0xdd,0x62,0x22,
+  0x2e,0xd1,0x52,0xe,0x8d,0x66,0x93,0xc9,0xc9,0x49,0x86,0x86,0x86,0x38,0x7a,0xf4,
+  0x28,0x71,0x1c,0x13,0x86,0x21,0xd5,0x6a,0x95,0xc1,0xc1,0x41,0x7a,0x7a,0x7a,0x58,
+  0x5a,0x5a,0xa2,0xd9,0x6c,0x12,0xc5,0x91,0x58,0x5f,0xee,0xc7,0x91,0x96,0x96,0xbe,
+  0x7d,0x62,0x7,0xf7,0x1e,0xdf,0x17,0xc4,0x46,0x7f,0x16,0xb8,0x9b,0x13,0x7b,0xfd,
+  0xda,0xb2,0x5a,0x24,0xc8,0xe2,0x80,0xc7,0x24,0x83,0x9e,0x6e,0x3,0xe8,0x5,0xfe,
+  0x68,0x68,0x88,0xb7,0x7f,0xf2,0x93,0x4f,0x81,0xf2,0x6b,0xc0,0x96,0xc1,0x80,0xfc,
+  0x4f,0x3b,0x9c,0xff,0x16,0x97,0xf0,0x30,0xcc,0x6e,0x5,0x35,0xf,0xa5,0x2e,0xeb,
+  0xd5,0xd2,0x59,0x1,0x7b,0xed,0xe5,0xde,0x1a,0x55,0xb,0xee,0xa4,0x9b,0x28,0x57,
+  0x5a,0xe5,0x3b,0x9,0x1e,0x68,0x2b,0x5c,0xc8,0x95,0x46,0x7c,0x8c,0xa5,0x81,0x5b,
+  0x55,0xcb,0x9,0xa8,0xc8,0x46,0x6,0x9,0x8d,0xf9,0x2a,0x3b,0x76,0xce,0xd4,0x87,
+  0x7a,0xcb,0xda,0xcb,0xe5,0x7,0x5e,0x72,0x6e,0x49,0x7c,0xbd,0x1b,0x53,0x6d,0x68,
+  0xd1,0xd2,0x36,0xab,0x2e,0x2e,0x2e,0x52,0x2e,0x97,0x29,0x95,0x4a,0x78,0x9e,0x5d,
+  0x7c,0xc2,0xf7,0x7d,0xd6,0xae,0x5d,0x4b,0x77,0x77,0x37,0x4b,0x4b,0x4b,0xcc,0xce,
+  0xcd,0x51,0x72,0x72,0xf4,0xe4,0x8a,0x38,0x42,0xf2,0x9d,0x89,0x9d,0xdc,0x37,0xb5,
+  0x5f,0xc7,0x46,0xff,0x7,0x70,0x1f,0x2b,0x54,0x6e,0xbc,0x72,0x51,0x27,0x28,0xb1,
+  0x93,0x62,0xb3,0x1d,0xc2,0xab,0xe1,0x2,0xe0,0xe9,0x8d,0x0,0xfd,0xc0,0xc7,0x87,
+  0x87,0x79,0xfb,0xa7,0x3f,0x8d,0x78,0xd3,0x9b,0x9e,0xe4,0xa7,0xc5,0xc0,0x83,0xbd,
+  0x1,0xfc,0xb8,0xc3,0xe5,0xff,0xcd,0x45,0x4c,0xc1,0xdc,0x2e,0x8,0xa7,0x21,0x5f,
+  0x5e,0x19,0x36,0xb,0x1a,0x36,0xcf,0xc7,0x91,0x55,0xac,0xeb,0xdb,0xe5,0x5a,0xb,
+  0x5d,0x36,0xb7,0x7,0x75,0xa8,0xf4,0x40,0xbe,0x68,0x7b,0x62,0x65,0x5b,0xe9,0x49,
+  0x24,0x8,0x5b,0x2b,0xf8,0xc1,0x49,0x5e,0x77,0x3d,0x6b,0x0,0xc2,0xd0,0x58,0x6a,
+  0xf0,0xc0,0xa3,0xe3,0x51,0x77,0xb9,0x5b,0xf7,0xc,0x8e,0x96,0xa5,0x57,0x10,0x45,
+  0x47,0xb1,0x7e,0xb0,0x60,0x8e,0x1c,0x8b,0x85,0x8,0x3c,0x0,0x6a,0xb5,0x1a,0xb3,
+  0xb3,0xb3,0xe4,0xf3,0x79,0x2a,0x95,0xa,0x71,0xd2,0xeb,0xdf,0xfe,0xdb,0x18,0xc3,
+  0xd8,0xd8,0x98,0x19,0xf6,0x2a,0xa2,0xe8,0xe6,0xb8,0xeb,0xf8,0x6e,0xee,0x9d,0xda,
+  0x4b,0xa4,0xd5,0xe7,0x80,0xef,0x25,0xbf,0xba,0xad,0xfc,0x4e,0x4a,0xcf,0xe6,0xfa,
+  0x4e,0xff,0x27,0x6b,0x20,0x27,0xd,0xb,0x3f,0x5d,0x6,0x90,0x3,0xfe,0x64,0x64,
+  0x84,0x9f,0xfb,0xd4,0xa7,0x10,0x6f,0x79,0xcb,0x53,0xf0,0x89,0x77,0x77,0x7,0x38,
+  0x3f,0x2f,0x78,0xc9,0x3b,0x5d,0xfc,0x6,0x4c,0x6c,0x85,0xe9,0x6d,0x10,0xd6,0x57,
+  0xe8,0xdd,0x76,0x5e,0xf7,0xf2,0x50,0x2a,0xae,0xb0,0x7a,0x52,0xda,0x54,0xa0,0x3c,
+  0xcb,0x4,0xba,0x39,0x7b,0x5e,0x6b,0x88,0x5a,0x56,0xb9,0x61,0x62,0x1c,0x42,0x82,
+  0x30,0xd6,0x60,0xa4,0x80,0xda,0x2,0xe4,0x4,0x14,0x2b,0x44,0x11,0x6c,0x3b,0x34,
+  0x13,0x35,0x9b,0x34,0xce,0xdd,0x34,0x50,0xf1,0x3d,0x57,0x36,0xaa,0xb,0x78,0x39,
+  0xc9,0xe5,0x6b,0x73,0xf2,0xe8,0x5c,0xdd,0x8c,0x37,0xa,0x22,0x19,0x3,0x20,0x8,
+  0x2,0x72,0xb9,0x1c,0xb5,0x5a,0xd,0xcf,0xf3,0x70,0x5d,0x3b,0x57,0xb0,0x5a,0xad,
+  0xd2,0x68,0x34,0x58,0xac,0x55,0xc5,0x35,0x3,0xe7,0xb1,0x65,0xe6,0x20,0xf7,0x4c,
+  0xee,0xa1,0xa9,0xa2,0x2f,0x0,0xf7,0xb0,0xa2,0xf4,0x74,0x9,0x97,0x2d,0xe7,0xda,
+  0xcf,0xe1,0x44,0x0,0x98,0x7d,0xdf,0x6a,0x11,0x2,0x78,0x7a,0x22,0x40,0x1,0xf8,
+  0xb5,0x75,0xeb,0xf8,0xbf,0x3f,0xf1,0x9,0x78,0xd2,0x9e,0xf,0x70,0x4f,0xa5,0x45,
+  0xfc,0xd3,0xe,0x97,0xbe,0xd3,0xc5,0xd,0xe0,0xe0,0xb7,0xe0,0xe0,0xfd,0x10,0x35,
+  0xad,0x97,0x96,0x7a,0x2d,0x8a,0x97,0xc9,0xcf,0x69,0x2b,0xfe,0x4,0x7e,0xc4,0x24,
+  0x58,0x40,0x27,0x11,0x22,0xc1,0x3,0x5e,0x61,0x5,0x7,0x14,0xba,0x2c,0x21,0x14,
+  0xd6,0x93,0x70,0xef,0x42,0xa5,0x17,0x72,0x25,0x94,0x36,0xec,0xde,0x73,0x38,0x9e,
+  0x5b,0x6c,0x35,0x2e,0x38,0x7b,0xa8,0x1c,0x23,0xa4,0x89,0x41,0xc6,0x2d,0x72,0xf1,
+  0x3c,0xb9,0x9c,0xc3,0x70,0xae,0x49,0x18,0xb4,0x96,0xe7,0x16,0x14,0xa,0x5,0x46,
+  0x47,0x47,0x99,0x9e,0x9e,0xc6,0x71,0x1c,0x72,0xb9,0x1c,0x4a,0x29,0x5a,0xad,0x16,
+  0x73,0x73,0x73,0x14,0xa4,0xcb,0x58,0x7d,0x81,0xdd,0x4b,0x13,0xd4,0xe3,0xf0,0xab,
+  0xac,0x28,0x3f,0xd,0x92,0xd3,0xa,0xcc,0x22,0xfb,0xd5,0x50,0x7f,0x36,0x32,0x74,
+  0x2,0x80,0x4f,0x4b,0x4,0x28,0x3,0x1f,0xec,0xe9,0xe1,0x7f,0xfc,0xf9,0x9f,0xc3,
+  0xd,0x37,0x74,0xa2,0xa3,0x4f,0x2,0xa2,0xa7,0x96,0xad,0xe5,0x3a,0x73,0xd7,0x79,
+  0x5c,0xfd,0x4b,0x1e,0x6e,0x8,0x47,0xbf,0x1,0xc7,0xf7,0xda,0xd2,0xcd,0x5d,0x93,
+  0x90,0x9b,0x4e,0x2a,0x77,0x67,0xbf,0x2b,0x91,0x38,0x86,0xc6,0x82,0xad,0x4,0x1c,
+  0x3f,0x21,0x75,0x9c,0x24,0xcb,0x7a,0x90,0x73,0x20,0x6e,0x41,0x2b,0xe1,0xa,0xf2,
+  0x85,0x64,0xd4,0xd0,0x7e,0xf6,0xec,0xd4,0x6c,0x74,0x7c,0x6a,0x61,0xf1,0xc2,0xb3,
+  0x6,0x7b,0xca,0xf5,0x9,0xa7,0x11,0xf9,0x38,0x71,0x1d,0x27,0xa8,0x61,0xca,0x65,
+  0xf2,0xbe,0x4f,0x8f,0x1b,0x81,0x8e,0xd0,0xc2,0xae,0x3a,0x52,0x2c,0x16,0xe9,0xea,
+  0xea,0xe2,0xc8,0x91,0x23,0x74,0x77,0x77,0x93,0xcf,0xe7,0xa9,0xd5,0x6a,0xb4,0x5a,
+  0x2d,0xc6,0xc7,0xc7,0x8d,0x13,0x1b,0xb1,0xbd,0x39,0x46,0x53,0x85,0xb7,0x60,0x6b,
+  0xfd,0x30,0x75,0xe1,0x69,0xcf,0x4f,0x83,0x3b,0xd5,0xe1,0x58,0x8d,0x10,0x5a,0xad,
+  0x22,0x58,0x7e,0xfe,0x54,0x1a,0x40,0xe,0x78,0xe7,0xc0,0x80,0xf8,0x9d,0xdf,0xfa,
+  0x4d,0xc1,0xd,0x2f,0x91,0xb0,0xd7,0x45,0xb5,0x72,0x81,0x9,0xbb,0x1b,0x46,0x95,
+  0x5b,0x26,0xca,0xc5,0x26,0x5f,0x88,0xc5,0x99,0xb1,0x70,0x7a,0xf,0xad,0x71,0xdc,
+  0x5a,0x9,0x1d,0x1b,0xdb,0x96,0x85,0x38,0xc9,0x56,0x76,0xe7,0xaa,0x1c,0xbc,0xca,
+  0xe3,0xca,0x5f,0xf2,0x91,0x4b,0x30,0x73,0x18,0xaa,0xc7,0x93,0xfc,0xdd,0xc9,0xb0,
+  0x12,0x83,0x8b,0x2,0xb,0xfa,0x8c,0x59,0x51,0xb8,0x4c,0xe8,0xdf,0xa0,0x9,0xba,
+  0x69,0x7,0x77,0x7c,0xdf,0x62,0x85,0xfa,0xbc,0x8d,0xe,0xf9,0x12,0xe4,0x2b,0xc9,
+  0xa0,0x8f,0x80,0xa0,0x8a,0x9,0x9a,0x4c,0x4d,0x57,0xe3,0xfd,0x47,0x67,0x97,0x36,
+  0xf4,0xe4,0x7b,0xbb,0xa3,0x19,0x67,0xc9,0x2d,0xd9,0x28,0x13,0x46,0x4,0xa1,0x41,
+  0xe4,0xfa,0x29,0xe5,0xa7,0x28,0xf8,0x8a,0x82,0xef,0xd0,0x68,0x58,0xd6,0xaf,0x52,
+  0xa9,0x50,0xab,0xd5,0x92,0xb9,0x81,0x2e,0xa5,0x52,0x89,0x7a,0xbd,0xce,0xe2,0xe2,
+  0x22,0x8d,0x46,0x43,0xd4,0x5b,0x75,0x80,0x5b,0x81,0x3b,0xb0,0x6d,0xab,0x59,0xc5,
+  0x67,0x15,0x1b,0xa7,0x8e,0x4e,0xde,0x9e,0x35,0x98,0x34,0x7,0x70,0x12,0x0,0xe4,
+  0x29,0x8e,0x0,0x17,0x77,0x95,0xfc,0x8f,0xfc,0xd2,0x4d,0x97,0x2f,0xfc,0xf2,0xcb,
+  0x5e,0x5e,0x5d,0x3c,0x38,0x50,0xa6,0x38,0x50,0x92,0xc5,0x42,0x4e,0x14,0x64,0x4e,
+  0x48,0x89,0x31,0xda,0xe0,0xe6,0x31,0xd,0x10,0xc7,0x27,0x8c,0x69,0xcd,0xcc,0x99,
+  0x4a,0x34,0xe9,0x15,0x76,0xc7,0xae,0xba,0x6b,0x9d,0x1c,0x9c,0xeb,0x76,0xfc,0xc0,
+  0x52,0x61,0xb,0xde,0x2c,0x47,0x5f,0xe1,0x72,0xe5,0x3b,0x7d,0xa,0x2,0x26,0xef,
+  0x85,0xe6,0x94,0xcd,0xf7,0x98,0xe4,0x67,0x8,0x4b,0xeb,0x36,0xdb,0xa0,0xcf,0xb1,
+  0x21,0x5c,0xba,0x2b,0xa3,0x77,0x69,0x3,0x31,0x6,0xa,0x49,0x49,0x18,0x36,0x2d,
+  0x6,0xc8,0x15,0xa0,0x67,0x30,0x19,0x0,0x4a,0x6,0x7f,0x82,0x6,0xb4,0x9a,0xe8,
+  0xfa,0x22,0xb,0x2d,0x1d,0x1f,0x9d,0xa8,0xcf,0x8d,0x16,0xdc,0x81,0x1e,0x4f,0xcb,
+  0x66,0x5d,0x63,0xa4,0xc1,0x15,0x2,0x15,0x47,0xe8,0x7c,0x85,0x5c,0x6d,0x82,0x30,
+  0x56,0x2c,0x6,0x2,0x2f,0x5f,0xa4,0xe2,0x48,0xa,0x85,0x2,0xe7,0x9c,0x73,0xe,
+  0xf,0x3f,0xfc,0x30,0x9e,0xe7,0x51,0x2a,0x95,0xe8,0xea,0xea,0xa2,0x56,0xab,0x71,
+  0xf0,0xe0,0x41,0x1a,0x8d,0x6,0xc0,0xed,0xc9,0xd1,0xe0,0x44,0x6f,0xed,0xf4,0x98,
+  0x55,0x6a,0xc4,0xc9,0x91,0xa0,0x6d,0x18,0xa7,0x62,0x3,0xe1,0x69,0x88,0x0,0x39,
+  0xe0,0xe5,0x17,0x9f,0x7b,0x46,0xff,0xbb,0xde,0xf1,0x33,0x4,0xeb,0xce,0xed,0x91,
+  0x46,0x80,0xe3,0xe0,0x8,0xf,0x21,0xbd,0x4,0x68,0x3b,0x2,0x69,0x10,0x4a,0xa0,
+  0xbb,0x6,0x4,0x9a,0x3e,0x1d,0x35,0xfa,0x74,0x7c,0x29,0x35,0xe7,0xed,0x2d,0x39,
+  0x7e,0xf0,0x50,0x41,0x7f,0xba,0x5b,0x6,0x47,0x5c,0x77,0xcf,0x19,0xe,0x83,0xe7,
+  0x56,0xa8,0x1d,0x90,0x4c,0x4d,0x43,0x54,0x4d,0x50,0x7c,0x72,0xaf,0x84,0xb3,0x82,
+  0xd2,0x73,0x79,0x3b,0x74,0xdb,0x49,0xda,0xa5,0xa0,0x8a,0xc1,0x24,0x8c,0xa0,0x4a,
+  0x9c,0xad,0x4d,0x8,0xb5,0x7,0x7e,0x6a,0x73,0x89,0x91,0x94,0x89,0xf3,0x65,0x76,
+  0x1d,0x9c,0x8f,0x66,0xe7,0x82,0xf9,0x91,0x81,0xc1,0xbe,0x35,0xd1,0x51,0x19,0xe1,
+  0xd1,0xcc,0xf5,0x10,0x2f,0xcd,0xe1,0xba,0x3e,0x71,0x18,0x92,0x77,0x1c,0x5c,0x22,
+  0x9a,0xca,0x21,0x88,0x5,0x95,0xae,0x1e,0xfa,0x4b,0x3d,0x78,0x9e,0x47,0x2e,0x97,
+  0xa3,0x58,0x2c,0x32,0x38,0x38,0xc8,0xc0,0xc0,0x0,0x8d,0x46,0x83,0xc3,0x87,0xf,
+  0x33,0x31,0x31,0x61,0x8c,0x31,0xdb,0x81,0xbb,0xb0,0xca,0x6f,0xd7,0xf9,0x69,0xa0,
+  0xd6,0x56,0x68,0xa7,0x70,0x1f,0xa7,0x1e,0x3b,0x85,0xfc,0x4e,0x11,0xe4,0x24,0xe5,
+  0xf3,0x14,0x46,0x80,0x7e,0x29,0xc5,0x4d,0x9b,0x2e,0x38,0x97,0x33,0x2e,0xb8,0x98,
+  0x7a,0xa3,0x85,0x74,0x7c,0xa4,0xe3,0xe1,0x38,0x3e,0xc2,0xc9,0x21,0x1c,0x81,0x50,
+  0xc2,0x32,0x75,0x8e,0xc4,0x11,0x5,0x4c,0x1c,0xa1,0xa4,0x44,0xb9,0x1e,0x9e,0x56,
+  0x79,0xd1,0x73,0xc1,0x59,0xf5,0xd6,0x9f,0xd6,0xf3,0x87,0xfe,0xa3,0x21,0xa6,0xbe,
+  0xdc,0xe5,0x1c,0xfd,0x27,0x49,0xdf,0x7a,0xe8,0x19,0x82,0xae,0x7e,0x3b,0x6c,0x9b,
+  0x2f,0xd9,0xd2,0xce,0xc9,0x5c,0xba,0x59,0xfe,0xc7,0x2,0x38,0x95,0xb0,0x7c,0x6,
+  0xab,0xf0,0x28,0x4a,0x46,0x4,0x7d,0x70,0xb,0xe0,0xbb,0xd6,0x20,0x1a,0x4b,0x36,
+  0x12,0xf8,0x79,0xb,0xf8,0xfc,0x22,0x51,0xa4,0xd8,0xb7,0xf3,0x90,0x9a,0x99,0x6d,
+  0x2c,0x74,0x77,0xf,0xf4,0xd,0xbb,0x8b,0xae,0xa9,0x55,0xa9,0x16,0xcf,0xc4,0xb,
+  0x17,0xc8,0x17,0x72,0x78,0xba,0x89,0x32,0x1a,0x57,0x7,0x18,0x99,0xa3,0x4b,0x6,
+  0xe4,0x3d,0x4d,0x77,0xa1,0x97,0x72,0xcf,0x1a,0xaa,0xd5,0x25,0xa6,0xa7,0xa7,0x19,
+  0x1a,0x1a,0x62,0xdd,0xba,0x75,0x34,0x1a,0xd,0x76,0xef,0xde,0xcd,0x8e,0x1d,0x3b,
+  0x8c,0x52,0xea,0xfb,0xd8,0xb5,0xff,0x16,0x58,0x41,0xaa,0xab,0x91,0x37,0xed,0x90,
+  0x1f,0xa5,0xe,0x95,0x3c,0x66,0x53,0x43,0xa7,0xbc,0xdf,0x89,0x6,0x6e,0xdf,0xac,
+  0xa7,0xcc,0x0,0xce,0x58,0xbf,0x6e,0xe4,0xba,0x1b,0x5e,0x77,0x35,0xb1,0x32,0x38,
+  0x4e,0x21,0x31,0x0,0x89,0xe3,0xe6,0x92,0xb9,0xf8,0x8e,0x65,0xea,0x30,0x16,0xa1,
+  0x1b,0x30,0x8e,0x0,0x21,0x10,0x42,0x62,0x54,0x84,0xc1,0x90,0xcb,0xcb,0x92,0xb8,
+  0xfc,0xa7,0x4a,0x51,0x2e,0x5f,0x67,0xf7,0x2d,0xda,0x89,0x83,0x82,0x6d,0xd9,0xee,
+  0xb3,0x23,0x73,0x90,0xa0,0x76,0xec,0x6f,0x69,0xaf,0xb4,0xb1,0xfc,0x18,0xdb,0xd2,
+  0x2e,0x8e,0x6d,0x74,0xf0,0xfc,0xa4,0x9,0x24,0x69,0x2d,0x8e,0x2,0x68,0x2e,0x25,
+  0x46,0x12,0x5b,0xe4,0x9f,0x2b,0x5b,0xac,0x60,0xac,0xf1,0xec,0x7d,0x78,0x97,0x3a,
+  0x72,0x64,0x71,0xb1,0xd2,0x3f,0xd8,0x7b,0x46,0xaf,0xe3,0x7a,0x93,0x7,0xa9,0x77,
+  0x9d,0x8d,0x68,0x45,0xc4,0x5a,0x51,0xec,0x2a,0x13,0x7,0x2d,0xb4,0xb1,0xb8,0xc3,
+  0x89,0x5a,0x2c,0x34,0x41,0xa,0x17,0x4,0xc4,0x71,0x84,0xe3,0x38,0x14,0xa,0x5,
+  0x3c,0xcf,0xc3,0x18,0xc3,0xb1,0x63,0xc7,0xd8,0xb6,0x6d,0x1b,0x41,0x10,0xdc,0xf,
+  0x7c,0x1b,0xbb,0xc,0x6c,0x9b,0xe2,0x3d,0x15,0xaf,0xdf,0x29,0xcc,0xa7,0xcb,0xc4,
+  0xd5,0xc6,0x0,0xb2,0x46,0x90,0xdc,0xb0,0xe5,0xc7,0xa7,0x2c,0x5,0xe4,0x80,0xeb,
+  0xd6,0x8e,0xe,0x70,0xed,0xd5,0x97,0xa0,0x8c,0xb0,0x4a,0x97,0x12,0xc7,0xcf,0xe1,
+  0x38,0x39,0x30,0x32,0xc1,0x67,0xae,0xbd,0xe9,0xed,0xe5,0x2f,0x1c,0x81,0x54,0x20,
+  0xb4,0x41,0x9,0x81,0x8e,0x35,0x46,0x3a,0x28,0xc,0xf2,0xf2,0x5f,0x28,0x5,0x83,
+  0x97,0xcc,0xbb,0x47,0xbe,0xad,0x9c,0x85,0x3,0x25,0xe7,0xc8,0xa3,0x82,0xe1,0x73,
+  0x6d,0xa8,0xf7,0x7d,0x50,0xda,0xe6,0xff,0xf6,0x48,0x9e,0x8a,0x13,0xf0,0x66,0xc0,
+  0xc9,0x59,0xa5,0x4a,0x61,0xcf,0x7,0x4d,0x4b,0xec,0xc4,0xc9,0xf8,0xbe,0x70,0xa0,
+  0xd2,0x67,0x23,0x82,0xeb,0x63,0xa4,0x83,0xd0,0x6,0x24,0x8c,0xef,0x3b,0xa0,0xeb,
+  0xe3,0x63,0x8d,0xae,0xee,0x33,0xba,0xfa,0xca,0xbe,0x5b,0x9c,0xdd,0x4e,0x24,0x8b,
+  0xb4,0x44,0x1,0x5a,0x47,0xd0,0xc2,0x47,0x86,0x2d,0x82,0xd0,0xe0,0x17,0x4b,0xb8,
+  0x32,0xc6,0x48,0x7,0xa9,0x62,0xf6,0x2d,0x78,0x26,0xee,0xd1,0x22,0xc,0x43,0xf2,
+  0xf9,0x3c,0x3,0x3,0x3,0x0,0xec,0xd9,0xb3,0x87,0x5b,0x6e,0xb9,0x85,0xd9,0xd9,
+  0xd9,0xed,0xc0,0xd7,0xb1,0xfb,0x9,0xa6,0x95,0x9f,0xf6,0xd2,0x74,0xd8,0x6f,0x7b,
+  0x7e,0xa7,0x54,0x90,0x4d,0x11,0xe9,0xfa,0x3f,0xad,0xf0,0x8e,0x9e,0xdf,0x56,0xde,
+  0x53,0x61,0x0,0x95,0xae,0xae,0xd2,0x9b,0x2f,0xbd,0x78,0x13,0x23,0xc3,0x83,0x34,
+  0x9a,0xa,0xe1,0x48,0x1b,0xfe,0xdd,0x1c,0xa2,0x3d,0x3,0xdd,0x60,0x9,0x96,0xf6,
+  0xf8,0xbb,0x2b,0x40,0xb,0x84,0x14,0x28,0xa5,0x6d,0x1b,0xbe,0xd6,0xf6,0x8a,0x55,
+  0x84,0xd3,0x8a,0xf0,0x87,0x2f,0xee,0xd,0xf3,0x7d,0xb3,0xde,0xa3,0xff,0x82,0xb3,
+  0xb4,0xa5,0xc4,0x91,0x47,0x4,0x7d,0x67,0xc0,0x9a,0x11,0xab,0x44,0xa3,0x6d,0xa8,
+  0x77,0xb0,0xe4,0x8f,0x74,0xec,0x77,0x44,0x31,0x54,0x93,0xc1,0x1d,0x15,0xdb,0xba,
+  0x3e,0x5f,0xb6,0xe9,0xc3,0x5f,0xb3,0x42,0xc,0x25,0x7b,0xf8,0x8,0x15,0x83,0xd4,
+  0x2c,0x8e,0xcf,0xc5,0x87,0xf7,0x4c,0x34,0xf3,0x7d,0xeb,0x73,0xbd,0x7d,0x7d,0x6e,
+  0x69,0x71,0x3f,0x26,0xc,0x58,0x2a,0x9d,0x85,0x5b,0x3f,0x4e,0x4b,0x1b,0xa,0x5,
+  0x87,0x28,0x68,0x12,0x2a,0x9f,0x5c,0x4e,0x22,0x5a,0x55,0x54,0xec,0xb2,0xd4,0xc,
+  0xd9,0x5f,0x2b,0xa,0x59,0xd6,0x88,0x28,0x62,0x78,0x78,0x18,0x29,0x25,0xbb,0x77,
+  0xef,0xe6,0x9b,0xdf,0xfc,0x26,0xb3,0xb3,0xb3,0xdb,0x80,0xaf,0x61,0x3d,0xbf,0xdd,
+  0xd5,0x93,0xf5,0xf8,0xec,0xb9,0xb8,0xc3,0xd1,0xe9,0x7c,0xa7,0xca,0x61,0x35,0x10,
+  0xf8,0x94,0x57,0x1,0x6b,0x87,0x6,0x7b,0xaf,0x7e,0xfd,0x6b,0xae,0x26,0x8e,0xc1,
+  0x71,0xf2,0x48,0xd7,0x43,0xb4,0x39,0x79,0x91,0xec,0xb8,0xd5,0x9e,0xce,0xde,0x66,
+  0xb7,0xb5,0xc6,0x18,0x8d,0x41,0xa0,0x71,0xda,0x34,0x5a,0xd,0x0,0x0,0x1f,0x9d,
+  0x49,0x44,0x41,0x54,0x51,0xc2,0x20,0xa4,0x83,0xd0,0xa,0x83,0x47,0x28,0x40,0x87,
+  0x11,0x39,0x21,0xfa,0x83,0xb3,0xae,0xaf,0x92,0x2b,0x2e,0xe6,0xe,0x7e,0xa7,0xcc,
+  0xfc,0x98,0x4b,0xa9,0x4,0xe5,0xfe,0x95,0xb1,0xfe,0x30,0x0,0xcf,0x24,0x7d,0xfd,
+  0x22,0xb9,0x5,0x31,0x48,0xdf,0x32,0x82,0xbd,0x83,0x80,0x58,0x19,0x27,0x68,0xe3,
+  0x85,0x76,0x8f,0x80,0x23,0x68,0xd4,0xa2,0x70,0xdb,0xa3,0x63,0x8d,0xc2,0x9a,0x8d,
+  0xf9,0x35,0x43,0x3,0x7e,0xfd,0xd0,0x36,0x4a,0xde,0x12,0xb3,0xf4,0x60,0xb4,0xc4,
+  0x8b,0x1a,0x48,0x2f,0x4f,0xde,0xb4,0xa8,0xb,0xf,0xd,0x48,0x15,0xd1,0x32,0x2e,
+  0x25,0xcf,0x67,0xe7,0x64,0xcb,0xcc,0x45,0xbd,0x62,0xd0,0x71,0x28,0x95,0x4a,0xf4,
+  0xf5,0xf5,0xb1,0x6b,0xd7,0x2e,0xbe,0xf9,0xcd,0x6f,0x32,0x33,0x33,0xf3,0x30,0xd6,
+  0xf3,0xa7,0xe9,0xec,0xf9,0x59,0x14,0x9f,0xce,0xe9,0xd9,0x94,0xd0,0x89,0x1b,0x38,
+  0xd5,0x78,0x40,0xd6,0xf3,0x9f,0xd2,0x8,0x90,0x13,0xe,0x3f,0x79,0xe6,0x19,0x43,
+  0xbc,0xea,0xe5,0x97,0xa3,0x8c,0x44,0xba,0x39,0xa4,0x48,0xd6,0xd8,0x4d,0x6e,0xb4,
+  0x11,0x58,0xc0,0xa5,0x59,0xe9,0x4a,0x53,0x86,0x28,0x56,0x8,0x34,0x46,0x82,0xe7,
+  0x3b,0xc4,0x4a,0x11,0xb7,0xec,0x7f,0x95,0x52,0x13,0x2b,0x41,0xec,0xaf,0xc1,0xef,
+  0xef,0xa9,0xd4,0x7a,0xcf,0x6e,0x44,0x5d,0xa3,0xb,0xe5,0xfd,0x5f,0xcd,0x33,0x37,
+  0x59,0xa6,0xbe,0x94,0x74,0xea,0xf4,0xd8,0x10,0xef,0x7a,0xd6,0xc3,0xed,0x74,0x9d,
+  0xe4,0x27,0x9b,0x14,0x19,0x98,0x94,0x81,0xed,0x21,0x60,0x1d,0x5b,0x2,0xa8,0x50,
+  0xa0,0xb9,0xb0,0xd4,0x38,0xbc,0xfb,0x68,0x58,0x12,0x94,0xd6,0xac,0xe9,0xf2,0xbc,
+  0xb9,0x3d,0x74,0xc5,0x53,0x34,0xfd,0x3e,0xe6,0x54,0x9e,0xe1,0x70,0x8e,0x7a,0x53,
+  0x31,0x90,0x9f,0xa7,0x1e,0xe7,0x8,0xb,0xbd,0x14,0x1a,0xc7,0xf0,0xa5,0xa4,0x5a,
+  0x1c,0xa6,0x2c,0xaa,0xdc,0xb2,0x33,0x10,0x4b,0xe4,0x38,0xb7,0xa7,0x97,0xb3,0xce,
+  0x3a,0x8b,0xfb,0xef,0xbf,0x9f,0xbb,0xee,0xba,0x4b,0xb7,0x5a,0xad,0x6f,0x63,0x49,
+  0x9e,0x66,0x46,0xf9,0xab,0xe5,0xf8,0x36,0xd0,0x8b,0xb1,0xc4,0x50,0xfb,0x79,0x98,
+  0x3a,0xbf,0x9a,0x81,0xac,0x46,0x0,0x65,0x81,0xe0,0xb2,0x3c,0x59,0x3,0xf0,0x87,
+  0x6,0xfa,0x7e,0xf2,0xda,0x6b,0x5e,0x44,0xb1,0x58,0x24,0x8c,0x9c,0x64,0xb5,0x4c,
+  0x2c,0xe8,0x23,0xe1,0xdb,0x45,0xa2,0x85,0xf6,0xa3,0xb1,0x6,0xe2,0x39,0x1e,0xa0,
+  0x31,0x18,0x74,0x72,0x8d,0xb1,0x54,0x18,0x7,0xb4,0x11,0x18,0xa3,0x90,0x42,0x12,
+  0x69,0x70,0x4,0xc5,0x60,0xed,0x55,0x92,0x38,0xac,0x97,0x77,0x7d,0xde,0xc1,0x95,
+  0x85,0xe5,0xd6,0x6d,0x2f,0x6f,0xc3,0xfe,0x9,0x1b,0x39,0x26,0xb3,0x7e,0x5c,0x2f,
+  0xa9,0xf1,0x45,0xa2,0xf4,0xa4,0x33,0xd8,0x78,0xa0,0x23,0xe2,0xf9,0xe9,0xd6,0xf4,
+  0xde,0x63,0x91,0x59,0x6a,0x94,0xf3,0xa5,0x5e,0x37,0x57,0x1b,0xa7,0x36,0x33,0x41,
+  0x77,0xa9,0xc2,0x44,0xe0,0x33,0x50,0x92,0x44,0xf5,0x26,0x39,0x1f,0xb4,0x74,0x68,
+  0x38,0x7d,0xc4,0x41,0x8b,0xbc,0x84,0xc8,0xb8,0xf8,0xc1,0x1c,0x33,0xcd,0x80,0x89,
+  0x45,0x45,0x69,0xb4,0xc2,0xc0,0xc0,0x1a,0xb6,0x6c,0xd9,0xc2,0x9d,0x77,0xde,0x69,
+  0x82,0x20,0xb8,0x15,0x3b,0xa4,0x9b,0x55,0x7e,0x9a,0xcf,0x6f,0x87,0xf5,0xac,0x72,
+  0xd3,0x75,0x7e,0x3a,0xfc,0x9f,0xaa,0xf5,0xeb,0x54,0xe1,0xff,0x24,0xe5,0x3f,0x69,
+  0x3,0xf0,0x3c,0xce,0xed,0xee,0x29,0x9f,0xf7,0xda,0x57,0xbe,0x98,0x58,0x9,0x84,
+  0xe3,0x2d,0x3,0x3c,0x41,0xd2,0x84,0xb1,0x2c,0x49,0xfb,0xfa,0x32,0x61,0xe7,0x20,
+  0xa5,0x2,0x1c,0xc,0x6,0x21,0xc,0x42,0xa,0x84,0x8c,0x97,0x37,0xe6,0x14,0xc2,
+  0x49,0x6c,0xc6,0x1,0x62,0xa4,0x70,0xf2,0xc1,0xda,0xab,0x1c,0x13,0xb5,0x1a,0xc5,
+  0xfd,0x5f,0x37,0x8e,0xd2,0x45,0x94,0x82,0xfe,0x11,0x8b,0xf6,0x9d,0x24,0xb7,0xa7,
+  0x87,0x75,0xdb,0x83,0x41,0x8,0xd0,0x8e,0x1d,0x34,0x6a,0xd5,0x92,0xca,0xdb,0xc4,
+  0x7b,0xf7,0xcf,0x37,0x1b,0x71,0x4f,0xa9,0x54,0xca,0xbb,0x79,0x19,0xe1,0x54,0x27,
+  0xed,0x6c,0x1e,0x3c,0xc2,0xd8,0x50,0xe,0x26,0xa9,0xc5,0x31,0x95,0x92,0x4f,0xd5,
+  0x5b,0x83,0x5b,0xab,0xd2,0x68,0x29,0xa,0x7d,0x25,0xaa,0x8d,0x98,0x62,0x63,0x8a,
+  0x7,0x27,0x8b,0xd4,0x62,0xc7,0xbc,0xe8,0xfc,0xcd,0x62,0xeb,0xd6,0x1f,0xb0,0x65,
+  0xcb,0x16,0x82,0x20,0xf8,0x6,0x76,0x54,0xaf,0x95,0xdc,0xe7,0x2c,0x7f,0x9f,0x5,
+  0x7b,0x69,0xc5,0x77,0xca,0xfb,0xe9,0x3c,0xdf,0x9,0x2f,0xa4,0x3f,0x9f,0xd4,0xff,
+  0x4f,0xa7,0x80,0x93,0xe4,0xc9,0x18,0x80,0x23,0x84,0xff,0x5f,0x6,0x7,0xfa,0xb9,
+  0xf4,0xd2,0x73,0x51,0xc6,0xe0,0x3a,0x8e,0x55,0xbc,0x10,0x9,0x48,0x4b,0xea,0xfe,
+  0x13,0xd6,0x28,0x52,0x36,0x2a,0x48,0x40,0x4a,0xc,0xa,0xad,0x34,0xc2,0x8,0xa4,
+  0x90,0x76,0xa3,0x4d,0x40,0x9,0x8d,0x30,0x60,0x74,0x94,0x54,0xe,0x1,0x18,0x90,
+  0x5e,0xde,0xb,0xd7,0xbf,0xac,0x28,0x9b,0xf3,0xad,0xd2,0xa1,0x3b,0x22,0x7a,0x46,
+  0x3d,0xc,0xc9,0x54,0x22,0xb1,0xe2,0xf9,0x2a,0xf1,0x76,0x13,0x43,0x10,0xda,0x2a,
+  0x40,0x1b,0xdb,0x22,0x9e,0xcf,0x11,0x45,0x44,0xfb,0xf,0xcf,0x2c,0x2e,0xc6,0xa5,
+  0xae,0x91,0x35,0x5d,0x7e,0x3c,0xb5,0x97,0x92,0x6c,0xd1,0x52,0x39,0x8a,0x39,0xc3,
+  0x9c,0xca,0x33,0x5a,0xa8,0xd3,0xa8,0xb6,0xe8,0x72,0x62,0x62,0xb7,0x87,0x38,0x68,
+  0x11,0x87,0x4d,0xca,0x8e,0x44,0x84,0x11,0x2c,0xcd,0x91,0xeb,0xef,0xe1,0xf6,0x3d,
+  0x75,0x9d,0xef,0x1e,0x92,0x3b,0x77,0xee,0x34,0x7b,0x76,0xef,0x16,0xad,0x56,0xeb,
+  0x3f,0xb1,0xb3,0x78,0x5b,0x58,0xcf,0xef,0xe4,0xb5,0x69,0xaf,0x4f,0x2b,0x3d,0x8b,
+  0xfe,0xd3,0x29,0x20,0x1b,0x9,0xb2,0xa3,0x80,0xed,0x24,0x9b,0x36,0x82,0x55,0x95,
+  0xf,0x4f,0xce,0x0,0xdc,0xae,0xae,0xfc,0x4f,0xbf,0xf2,0x65,0x97,0x90,0xcb,0xe5,
+  0xd1,0x26,0xf1,0xba,0xa4,0xae,0x47,0x26,0x91,0x47,0x1b,0x96,0x3b,0x6e,0x8c,0x6,
+  0xe3,0x20,0x64,0x92,0x9b,0xb5,0xc6,0x88,0x8,0x15,0x6b,0x1c,0xd7,0xae,0xe2,0xe9,
+  0xba,0x2e,0x4a,0x6b,0xb4,0xd1,0x48,0x21,0x10,0x46,0xa3,0x5b,0x8b,0xe0,0x4b,0x8c,
+  0xb1,0x11,0x43,0xfa,0x45,0x2f,0x3c,0xfb,0xd5,0xc8,0xda,0x6c,0xcb,0x9f,0x1d,0xc7,
+  0xc9,0xf9,0x1e,0xf5,0x5,0xdb,0xde,0x2d,0x9d,0x24,0xc4,0xc7,0xd0,0x4c,0xc6,0x3,
+  0xfc,0x62,0x42,0x20,0xe5,0xc0,0x75,0x69,0x5,0x2a,0x3a,0x32,0x31,0xb3,0x38,0x33,
+  0xb1,0x54,0xea,0x1b,0x1a,0xf2,0xb,0xad,0x49,0x22,0x5a,0x68,0xaf,0x9b,0x56,0xb3,
+  0x1,0x7e,0x11,0x2f,0x6e,0x10,0xb5,0xea,0xb6,0x27,0xb4,0x67,0x90,0x7a,0xbd,0x41,
+  0x1c,0x2a,0xa6,0xab,0x9a,0xf3,0x47,0xf3,0xcc,0xcd,0x4c,0x92,0xf3,0x40,0xe4,0x4a,
+  0xec,0x9b,0x98,0x96,0xd3,0xf3,0xc2,0x34,0xc6,0xa7,0x44,0x14,0x86,0x5f,0x4,0x1e,
+  0xc4,0x72,0xfb,0x6d,0x86,0x2f,0x1d,0xf2,0x3b,0x45,0x80,0xb4,0xd2,0xd3,0x18,0x20,
+  0x4b,0xf7,0xae,0xc6,0xc,0x76,0x2,0x80,0x9d,0x98,0xbf,0xa7,0xd4,0x0,0x36,0x4b,
+  0xe9,0x9c,0x7b,0xdd,0xcb,0x2f,0x43,0xa9,0xd8,0x96,0x7b,0x46,0x5b,0xcf,0x47,0x58,
+  0xc5,0xb,0x48,0x90,0x60,0xe2,0x99,0x1a,0xa4,0x4e,0x2e,0x31,0xc6,0x8,0x41,0xd8,
+  0x52,0x84,0x71,0x88,0xa7,0xc,0x52,0xba,0x68,0x65,0x30,0x49,0x9e,0x50,0x4a,0x21,
+  0x85,0x87,0xeb,0xe7,0xd0,0x22,0xc2,0x15,0x12,0xa5,0x93,0xd7,0x4b,0x3,0x5e,0x6b,
+  0xd3,0x6b,0x90,0x5b,0xff,0x29,0x70,0xc6,0xe,0x78,0xac,0xdd,0x68,0x7f,0x67,0xb3,
+  0xe,0xa2,0x6e,0x39,0xfe,0x7c,0x19,0xfc,0xa4,0xf5,0x5b,0xa,0xb4,0x32,0x8c,0x1d,
+  0x39,0xae,0xf6,0xef,0x9b,0x6c,0xce,0xcf,0xd4,0x2a,0x9b,0xd7,0xf5,0xe7,0x4a,0x8d,
+  0x31,0x4c,0x54,0x25,0x14,0x25,0x5a,0xca,0xc3,0x29,0x94,0xa9,0x7,0x1,0x65,0x19,
+  0x11,0x6,0x4d,0xba,0xfa,0x7a,0x51,0xcd,0x25,0x9c,0x46,0x93,0x86,0xe8,0xa6,0xab,
+  0xbb,0x44,0xd8,0x9c,0xa7,0xa5,0x5c,0xca,0x3d,0xdd,0xec,0x99,0x85,0x43,0x73,0x11,
+  0x8b,0x8b,0x2d,0x1,0xe6,0x3f,0xb0,0x1b,0x3b,0xa4,0x3b,0x78,0x56,0xf3,0xfa,0xb4,
+  0x82,0xb3,0x8a,0xcf,0x46,0x80,0xec,0x0,0xd0,0x6a,0xde,0x7f,0x52,0x99,0xf7,0x58,
+  0x4a,0x7c,0x32,0x13,0x32,0xde,0xd4,0x55,0x29,0x99,0x2b,0x2e,0xdb,0x94,0x4c,0x8f,
+  0x36,0x2b,0x68,0x5b,0x62,0x15,0x2f,0xdb,0x91,0x48,0xda,0xcb,0x73,0x24,0x42,0xcb,
+  0x64,0x95,0x3b,0xdb,0xa9,0xe3,0x78,0x12,0xe9,0xb8,0x4,0x41,0x8b,0x66,0xab,0x81,
+  0xd2,0xb1,0x5,0xef,0x12,0x84,0x51,0x88,0x4,0x14,0xa,0x4,0xaa,0x1d,0xe0,0x74,
+  0x6c,0x69,0xe4,0xee,0xf5,0x5e,0x63,0xf3,0x4d,0x6e,0xd0,0xc,0x97,0x98,0x1b,0x83,
+  0x56,0xb,0xbc,0x3c,0xa6,0xd0,0x83,0x29,0xf5,0x42,0xa1,0xdb,0xd2,0xc6,0xc9,0xca,
+  0xdf,0x47,0x8f,0x1d,0xd7,0x3b,0xb6,0x1d,0xa9,0x4f,0x4f,0x35,0xfc,0xde,0xa2,0x9b,
+  0x13,0x3a,0xa0,0x1e,0x28,0xa6,0x54,0x11,0xb7,0xd2,0x8d,0xaf,0x2,0xb4,0x74,0x28,
+  0x88,0x26,0xba,0xb9,0x40,0xb9,0x0,0x12,0xcd,0x54,0x2d,0x24,0xc8,0xf7,0x13,0x49,
+  0x8f,0x61,0x67,0x81,0x86,0xf2,0x18,0xe8,0xaf,0xa0,0xa4,0xcf,0xef,0x7c,0x71,0xcc,
+  0xec,0x9a,0x68,0x1,0xe6,0x5f,0xb1,0x9e,0x9f,0xa5,0x64,0x57,0xf3,0xf6,0xf6,0x11,
+  0xb2,0x3a,0x6,0xc8,0x7a,0x7e,0x27,0x20,0x8,0x27,0x1a,0x40,0xfb,0x79,0xa7,0xba,
+  0xff,0x24,0x79,0xa2,0x6,0x20,0x5c,0xd7,0xf9,0xa9,0xd7,0xbd,0xea,0x4a,0xd7,0x77,
+  0xac,0x67,0x5b,0xbc,0x67,0x7,0x7a,0xac,0xd3,0xb,0x50,0x49,0x53,0x26,0xa,0xa4,
+  0xb1,0x6c,0x1b,0xc6,0x62,0x3,0x1d,0x83,0x56,0xb8,0xd2,0x25,0xef,0x39,0x78,0xbe,
+  0x40,0xa2,0x51,0x3a,0x46,0x45,0x11,0x52,0x1b,0x5c,0x5f,0x20,0x9,0x6c,0xa9,0xa8,
+  0x35,0x32,0xac,0x5b,0x34,0x21,0x93,0xa5,0xdb,0xa2,0x98,0x66,0xff,0xf9,0xf9,0xea,
+  0xc6,0x37,0x7a,0x6a,0x61,0xb6,0x49,0xd8,0x80,0xc6,0x22,0x22,0x58,0x80,0x85,0x69,
+  0x4c,0x63,0xc9,0xb2,0x7f,0x18,0xa6,0x27,0x66,0xf4,0xf7,0xef,0xdd,0xdb,0x38,0x32,
+  0xa3,0xfc,0xd1,0xe1,0xfe,0x7c,0xc1,0x33,0x84,0xad,0x88,0x16,0x39,0x44,0x65,0x10,
+  0x15,0x2a,0x84,0x9f,0xa7,0xd6,0x8a,0x91,0x8d,0x5,0x14,0x1e,0xb9,0x52,0x17,0x8d,
+  0x85,0x39,0xe6,0x55,0x17,0x33,0x2a,0x87,0xdf,0x5a,0x60,0x5e,0xe5,0x91,0x28,0xaa,
+  0x2d,0xc3,0x2f,0xff,0xf3,0x24,0x5f,0xdb,0x3a,0xd7,0xc4,0x98,0xcf,0x0,0x5b,0x39,
+  0x31,0xcf,0x67,0x3d,0x3f,0x4b,0xe2,0xac,0xe6,0xf1,0x9d,0x0,0x62,0xa7,0x32,0x6f,
+  0xb5,0xb0,0xdf,0x11,0xed,0xaf,0x26,0x4f,0xd4,0x0,0x2e,0x10,0x70,0xce,0x1b,0x5e,
+  0x73,0x15,0xda,0x8,0x4,0x89,0xd2,0xa5,0x44,0x38,0x9,0xfa,0xd7,0xc6,0x56,0x4,
+  0xc6,0x7a,0xaf,0x68,0xa7,0x43,0x47,0x80,0x91,0x18,0x61,0x0,0x7,0xa3,0x5,0x2,
+  0x89,0x27,0x4,0x92,0x10,0x54,0x84,0x90,0x2,0x88,0x91,0x3a,0x42,0x6a,0xdb,0x20,
+  0x23,0x84,0x40,0x79,0x25,0x82,0x50,0x13,0x37,0x42,0xe2,0x30,0x20,0x8a,0x14,0x2a,
+  0x8c,0x69,0xd,0x5f,0x59,0xa8,0xd,0x5c,0xa6,0xd5,0xf4,0xc1,0x8,0x1d,0x41,0x79,
+  0xd,0xa2,0x6f,0x10,0x51,0xec,0x2,0x2f,0xc7,0xc2,0x62,0x55,0xdf,0x77,0xcf,0xae,
+  0xc6,0x91,0x45,0xe1,0xd,0x9e,0x31,0x9a,0xef,0x96,0xd,0xf2,0x22,0x4,0xd7,0xa3,
+  0x41,0x1,0xc7,0x28,0x4c,0x2e,0xc7,0x92,0xf2,0xe9,0x9,0x27,0x69,0x84,0x9a,0x58,
+  0x78,0xa8,0x56,0x8b,0xfd,0xb,0x3e,0x3d,0x25,0x7,0x59,0x9f,0xc5,0x2d,0xf7,0x22,
+  0xe2,0x26,0xca,0x18,0xde,0xfb,0xb9,0x59,0xbe,0xfc,0xfd,0xe9,0x79,0xa3,0xcd,0x67,
+  0xb1,0x8b,0x36,0x64,0xf3,0xf1,0xa9,0x78,0xfc,0x53,0x1d,0xe9,0x1,0x9f,0xc7,0x93,
+  0xef,0xb3,0x1e,0xff,0x98,0xde,0xf,0x4f,0x1c,0x3,0xfc,0xc4,0xc0,0x40,0xb7,0x78,
+  0xe9,0x55,0xe7,0x63,0x10,0x8,0xd7,0xb5,0x43,0xbe,0xc8,0xa4,0xf4,0x4b,0x50,0xbe,
+  0x6e,0xc7,0xf2,0xa4,0x57,0x4f,0xf8,0xa0,0x62,0x8c,0x89,0xed,0xb8,0x80,0xb6,0xa9,
+  0x52,0xc7,0x21,0x46,0x47,0x48,0x5a,0x60,0x5c,0x5b,0x38,0x88,0x0,0x63,0x42,0x10,
+  0xa,0x13,0x2b,0x8c,0xd6,0xc4,0x4a,0xa1,0x23,0x45,0x10,0xda,0xe,0x5d,0x69,0xc,
+  0xa1,0x56,0x8,0x42,0xa6,0xcf,0x7c,0xa3,0xa1,0xb9,0x14,0x74,0x4f,0x3c,0xea,0xd0,
+  0x33,0x22,0xc9,0x97,0x30,0xc6,0x30,0x37,0xb3,0x64,0x1e,0xb8,0x7b,0x7b,0xa3,0x6b,
+  0x60,0x44,0xac,0x29,0xf9,0xb9,0x33,0xbb,0x5,0x5e,0x10,0xa3,0x9c,0x3c,0x5a,0x2b,
+  0x7a,0x92,0x30,0xaf,0x73,0x7d,0xe4,0x6b,0x7,0x70,0xa2,0x0,0x17,0x43,0x8f,0x13,
+  0x32,0x59,0x75,0xa8,0x14,0x1d,0xdc,0xe6,0x3c,0x6e,0xbe,0x9b,0xee,0xbc,0x61,0xb6,
+  0xe5,0xf1,0x97,0x77,0x35,0xf9,0xda,0xd6,0xf9,0x9,0xec,0x3e,0x3e,0xfb,0x58,0x99,
+  0x62,0x97,0xf5,0xfe,0x4e,0xf4,0x6d,0xc4,0xea,0x39,0x3f,0x8d,0x11,0xd2,0xde,0xdf,
+  0x29,0xb2,0x74,0x1a,0xec,0x79,0x5c,0xca,0x87,0x27,0x1e,0x1,0xde,0xf4,0xe6,0x37,
+  0x5e,0x93,0x73,0xbd,0x5c,0x52,0xab,0x3b,0x8,0xc7,0x45,0x38,0xa9,0x26,0x4c,0x92,
+  0xe6,0x4a,0x1,0xe8,0xc4,0x30,0x4c,0xbc,0x4c,0xff,0x1a,0x63,0xd,0x41,0xab,0x10,
+  0x6d,0x62,0xb4,0xa,0xec,0xd6,0x2e,0xba,0x1,0xba,0x86,0x34,0x4d,0x8b,0xe4,0x95,
+  0x42,0x2b,0x45,0xac,0x63,0x62,0x15,0x13,0x84,0x11,0x2a,0x36,0x28,0x25,0x89,0x95,
+  0x46,0x2b,0x43,0x1c,0x80,0xa,0x74,0xf9,0xd8,0xe8,0x7f,0x69,0xd6,0xdc,0xbe,0x16,
+  0x73,0x63,0x10,0x47,0x2c,0x2d,0xd4,0xf4,0xf7,0xef,0xdd,0x55,0xf7,0x8a,0xbd,0x62,
+  0xe4,0xac,0xf5,0xa5,0xa1,0x92,0x40,0x37,0xe6,0x88,0xb4,0x8b,0xa,0x43,0x1a,0xca,
+  0xa3,0xec,0xc6,0x8,0xaf,0x88,0x99,0x9b,0xa0,0x10,0x54,0xa9,0xc6,0x6,0x2f,0xe7,
+  0x12,0x79,0x45,0x26,0xe6,0xea,0x48,0xa3,0xa8,0xca,0x1e,0xba,0x4b,0x79,0xa6,0xeb,
+  0x82,0x4f,0xdf,0xbd,0xc8,0x27,0xbf,0x35,0x3e,0x87,0xdd,0xd5,0x73,0xf,0x2b,0x73,
+  0xf5,0xb3,0xf5,0xf9,0x6a,0x65,0xdd,0xa9,0x3c,0xbe,0x53,0x99,0xf7,0x58,0xca,0xcf,
+  0xd2,0xbe,0xa7,0xad,0x7c,0x78,0x62,0x11,0x60,0x33,0x70,0xf6,0xd,0xaf,0xb9,0x6,
+  0x84,0xc4,0x71,0x3d,0x1c,0xe9,0xdb,0xb0,0x2d,0x12,0xef,0x37,0x36,0xcc,0xdb,0xe5,
+  0x56,0xc,0x8,0x8b,0xeb,0xd1,0xf1,0x9,0xfb,0xf2,0x6a,0xa3,0x31,0x3a,0x51,0xbe,
+  0xb6,0x5e,0x8e,0x89,0x6c,0xe6,0xd0,0xd8,0x6d,0x5b,0x92,0x8d,0x1c,0x54,0xa8,0x6c,
+  0x79,0x18,0xd9,0xf5,0xfd,0xd,0x6,0x69,0x4,0x26,0x32,0x28,0xc,0x2a,0x56,0x68,
+  0x51,0x58,0x33,0x57,0xb9,0xa8,0xe5,0x85,0x87,0x75,0x30,0x3d,0x23,0x76,0xee,0x9e,
+  0xa9,0xb9,0x95,0x5e,0x59,0xea,0x5e,0x53,0x9a,0x3c,0x7c,0x8c,0xd1,0xb2,0xa4,0xb1,
+  0x64,0x68,0x35,0xeb,0xc4,0xc2,0xa3,0xcf,0x6b,0x11,0x16,0xd6,0x93,0x43,0xa3,0xab,
+  0x13,0x48,0x11,0xe0,0x23,0x29,0x54,0xba,0x98,0x9c,0xf,0xe8,0x2e,0xdb,0x46,0x96,
+  0x2e,0xdf,0xb0,0x18,0x39,0x7c,0xf4,0xeb,0x63,0xfc,0xdb,0xf7,0x66,0xa6,0x80,0x6f,
+  0x0,0x87,0x58,0x59,0xaf,0x37,0xd,0xf8,0xd2,0xde,0xdf,0x7e,0xec,0x14,0xfe,0xb3,
+  0x9e,0x7e,0xaa,0x1a,0x3f,0x9b,0x2,0xb2,0x86,0x90,0x5,0x80,0xa7,0x2d,0x4f,0x24,
+  0x2,0xfc,0xc4,0x40,0x7f,0xb7,0x7f,0xd9,0x8b,0x36,0xd9,0x35,0xf6,0xa5,0x9b,0xc,
+  0xe2,0x38,0x8,0x93,0x5a,0xbd,0xb4,0xed,0xfd,0x12,0xbb,0x46,0xbf,0x52,0x18,0xa1,
+  0x31,0x46,0xa1,0x75,0x8c,0x56,0x31,0x5a,0x87,0x36,0x2,0xe8,0xd0,0xf6,0x3,0x24,
+  0xe3,0xeb,0xb6,0xa0,0x30,0xcb,0x9b,0x39,0xa8,0xd8,0x92,0x45,0x71,0xb2,0x67,0x8f,
+  0x1d,0xfb,0xd7,0x76,0xb,0x97,0x64,0x5c,0x1,0xa5,0x50,0x51,0xc8,0x6c,0xe5,0x62,
+  0x8e,0x37,0x2a,0xfa,0xf0,0xfe,0xc9,0xa6,0x9,0x94,0xd8,0x70,0xe6,0x48,0x79,0x6e,
+  0x72,0x9c,0x5e,0xe6,0x10,0xc6,0xd0,0x5f,0x72,0x70,0x45,0x8c,0x27,0x42,0x8a,0xbe,
+  0x83,0x97,0xcb,0x23,0x6b,0xe3,0x98,0xa8,0xce,0x5c,0x20,0xf1,0xba,0xba,0xa9,0x51,
+  0xa2,0x16,0xb9,0xf8,0x85,0x22,0x3,0x7d,0x5,0x16,0x42,0xc1,0xcd,0x5f,0x3e,0xc6,
+  0xbf,0x7d,0xef,0xf8,0x38,0xf0,0x15,0xec,0x4a,0x5d,0xe9,0xc5,0x9a,0x3b,0xe5,0xfa,
+  0x74,0x79,0x97,0xe6,0xf4,0xb3,0x47,0x96,0xe3,0x5f,0xcd,0xfb,0x4f,0x27,0xf7,0x3f,
+  0x2e,0xe5,0xc3,0x13,0x33,0x80,0xd7,0xdf,0xf0,0xda,0x2b,0xb,0xb9,0xbc,0x97,0x84,
+  0x7f,0x17,0x21,0x5d,0x90,0xe,0xa6,0x4d,0x44,0xb5,0xbb,0x6d,0xc1,0x7a,0xbd,0x8a,
+  0xc0,0x28,0x8c,0x56,0xf6,0x2a,0xb5,0x46,0xeb,0x16,0x3a,0xa,0x88,0xa3,0x10,0x1d,
+  0xb7,0xbd,0xdf,0x92,0x46,0x76,0x53,0x7,0x8d,0x8a,0x63,0xe2,0x28,0x22,0x8c,0x22,
+  0x94,0xd2,0xc4,0x2a,0xb6,0xbc,0x12,0x22,0x9,0x34,0x6,0x6d,0x34,0xca,0x68,0x62,
+  0xd,0x2a,0x8c,0x20,0xd7,0x9b,0x3f,0x56,0xcd,0xab,0xa9,0x5a,0x5e,0xf6,0x97,0x44,
+  0x45,0x4d,0xee,0xa3,0xbb,0x35,0xe,0xf9,0x6e,0xa6,0xab,0x11,0x79,0x5a,0x20,0x5d,
+  0x86,0xdd,0x45,0x1a,0x14,0x29,0x34,0xa7,0xf1,0x82,0x25,0x2,0x93,0xa3,0x91,0xef,
+  0x45,0x96,0xfb,0x98,0x9f,0x6f,0xe0,0x9a,0x80,0xbe,0xee,0x22,0x7,0xea,0x5d,0xfc,
+  0xfe,0x2d,0xf3,0x7c,0xfe,0xde,0x89,0xa3,0xc0,0x7f,0x2,0xf,0x63,0xe7,0x3a,0x76,
+  0x42,0xfb,0x59,0x8f,0xef,0x54,0xcb,0x77,0xc2,0x1,0x59,0x3,0xe8,0x64,0x54,0x9d,
+  0xbc,0xfe,0x9,0x85,0xfd,0xb4,0x3c,0xde,0x14,0x70,0x5,0x70,0xee,0xcf,0xfe,0xd4,
+  0x6b,0x84,0xe7,0x5a,0xa5,0xb,0xe9,0x60,0x84,0x44,0xa,0x93,0x20,0xfd,0x84,0xf,
+  0x90,0x22,0x9,0xef,0x2a,0x61,0xf0,0xc,0x46,0x1b,0x4b,0x6,0xaa,0x10,0x6d,0x14,
+  0x5a,0x5,0xf6,0xf5,0x24,0x35,0xb4,0x15,0x6f,0x92,0x5,0x18,0xe3,0x24,0xec,0xab,
+  0x28,0x46,0x69,0x83,0x30,0x22,0x31,0x1e,0xbb,0xb7,0x8f,0x94,0xa,0x69,0x4,0xb1,
+  0x32,0xc4,0x51,0x44,0xac,0x14,0x46,0x40,0xd8,0x7f,0xae,0x3b,0x3d,0xb5,0x45,0xe,
+  0xf5,0xaf,0xa1,0xb1,0xef,0x6e,0xba,0x2a,0xdd,0x2c,0x88,0x2e,0x7a,0xe5,0x18,0x73,
+  0x75,0x45,0x45,0x34,0x9,0x8a,0x6b,0x71,0xba,0x6,0x70,0x66,0xb6,0x51,0xa3,0xc0,
+  0x7c,0xae,0x87,0xb5,0x83,0x5d,0xcc,0x4d,0x4d,0xa2,0x9a,0x73,0x8c,0xc,0xf5,0xb1,
+  0x65,0x5c,0xf0,0xe1,0xcf,0xee,0x62,0xd7,0xb1,0xa5,0x7,0xb1,0x93,0x34,0xa7,0xb1,
+  0xca,0xcf,0x72,0xf3,0x9d,0xf2,0x7e,0x36,0xb7,0xa7,0x41,0x5e,0xb8,0xca,0xeb,0x9d,
+  0xca,0xc6,0xd5,0xf2,0x7f,0x27,0x10,0xf8,0xb8,0xe5,0xf1,0x46,0x80,0x1b,0xcf,0x18,
+  0x1d,0x28,0x6d,0xdc,0x30,0x6a,0xe9,0x5e,0x3,0x26,0x29,0xf9,0x8c,0xd1,0x98,0x36,
+  0xb,0x88,0x46,0xeb,0x88,0x38,0x6e,0xa1,0xe3,0x96,0x55,0xb0,0x56,0x18,0x21,0x30,
+  0x26,0x5a,0x51,0xbe,0x8e,0x13,0x30,0xa8,0xec,0x98,0x80,0xd1,0x68,0x65,0xe7,0xcf,
+  0xc7,0x61,0x8c,0x8a,0x6d,0xf8,0x37,0xca,0x60,0x94,0xc0,0x44,0x76,0x30,0xc9,0x24,
+  0x4b,0xba,0x29,0x65,0x8,0x22,0x1b,0x29,0xa2,0x38,0x1,0x84,0x51,0x84,0x5b,0x59,
+  0xe3,0x34,0x63,0xc7,0xcc,0x44,0x3e,0xf3,0x81,0x24,0x72,0xbb,0x88,0x6b,0xb,0x94,
+  0x8b,0x1e,0xc4,0x1,0x85,0x42,0x9e,0x46,0x7e,0x88,0xb2,0x5a,0x60,0x21,0x3f,0xca,
+  0xd1,0x46,0x9e,0x72,0xe,0xba,0xd4,0x2,0xa6,0x59,0x65,0xa8,0xaf,0xcc,0xa3,0x93,
+  0x8a,0xdf,0xfc,0xec,0x5e,0x76,0x1d,0x5b,0x7a,0x0,0xdb,0xc8,0x31,0xc3,0xc9,0x39,
+  0x3f,0x8b,0xf6,0x3b,0xd5,0xf8,0x69,0x85,0x87,0x58,0x8a,0x78,0xb5,0xdc,0x7f,0x2a,
+  0xc2,0xe7,0xb1,0xca,0xbe,0x27,0x24,0x8f,0x37,0x2,0x5c,0xff,0xba,0xeb,0xaf,0x2a,
+  0x17,0xa,0x5,0x8c,0x31,0x89,0xf2,0x22,0xc,0xe,0xc6,0x38,0xa0,0x3,0x6b,0x8,
+  0x3a,0x42,0xe9,0x8,0xad,0x24,0xc2,0x68,0x3b,0x49,0x47,0x3a,0x96,0xfb,0x37,0x76,
+  0xf0,0x57,0xeb,0xd8,0x1a,0x40,0xdb,0xa3,0x93,0x23,0x8e,0xb5,0xdd,0x90,0x51,0x69,
+  0xe2,0x28,0x6,0x21,0x91,0x8,0xb4,0x8a,0x2c,0xbf,0xda,0xfe,0x7f,0x6,0xb4,0x52,
+  0x84,0xad,0x98,0x28,0x6,0x65,0xc,0x2,0x63,0xd,0x8,0x89,0x97,0x2b,0x30,0x3b,
+  0xbf,0x48,0x8f,0x5f,0xa0,0x52,0x72,0x98,0x5b,0xa8,0xd3,0xca,0xfb,0xac,0x65,0x9a,
+  0xaa,0x3c,0x83,0x2e,0x2f,0x20,0x88,0x34,0xb3,0xa1,0xb,0x51,0x44,0xbf,0xf,0xe1,
+  0xc2,0x22,0xa3,0x3,0x45,0xbe,0x7b,0x50,0xf1,0x3b,0x9f,0x3f,0xcc,0x8e,0x63,0xf5,
+  0xfb,0xb0,0x2b,0x73,0x2c,0x70,0xe2,0x88,0x5e,0xa7,0x90,0x1f,0x75,0x78,0xec,0x44,
+  0xeb,0x66,0x43,0x7e,0x76,0xc4,0x2f,0x4b,0xf9,0xae,0x16,0xee,0x9f,0x94,0xe2,0xdb,
+  0xf2,0x78,0xc,0xe0,0x12,0xe0,0x8c,0x37,0xbc,0xe6,0xc5,0xe4,0xf3,0x9e,0xf5,0x5a,
+  0xa3,0x50,0x51,0x60,0x15,0x24,0xdd,0x95,0x1d,0x37,0x8d,0xdd,0x55,0x53,0x20,0x31,
+  0xc2,0xa1,0x3d,0x40,0x6c,0x94,0xb6,0x91,0x40,0xdb,0xc5,0x91,0x8c,0x36,0x68,0x6d,
+  0x1,0x9e,0xd6,0x6,0x15,0xc7,0x16,0xe9,0xc7,0x6,0x94,0x46,0x4a,0x89,0x36,0x9a,
+  0x58,0x18,0x62,0x23,0x2c,0x79,0x14,0x6a,0x62,0x6d,0x8,0x83,0x98,0x48,0x87,0x98,
+  0xc8,0xa0,0x71,0x31,0x5a,0xa1,0x8c,0xc5,0x11,0xc2,0x11,0x14,0xbb,0xfa,0x4d,0x6d,
+  0x72,0x2f,0x83,0x9e,0x87,0xce,0x75,0xe1,0x78,0x31,0xb2,0x31,0x87,0x29,0xf6,0x13,
+  0xf8,0x3d,0xb8,0xcd,0x2a,0x63,0x8d,0x2,0x85,0xc6,0x18,0xbd,0x65,0x97,0xa2,0x30,
+  0xe4,0x4b,0xe,0xff,0xb1,0x23,0x34,0x37,0x7f,0x71,0x4c,0xec,0x9d,0xa8,0xdf,0x3,
+  0x7c,0x8b,0x13,0xfb,0xf7,0x4e,0x5,0xfa,0xd2,0x61,0x3e,0x4b,0xf3,0xa6,0xd,0x62,
+  0x35,0xf4,0x6f,0x52,0x8f,0x9d,0x40,0xdf,0xa9,0xea,0xfe,0x27,0x2c,0x8f,0xc7,0x0,
+  0x6e,0x18,0x5a,0xd3,0xdb,0xbb,0x69,0xe3,0x5a,0x1c,0x29,0x2d,0x5e,0x53,0x1a,0x23,
+  0x94,0x1d,0xc,0x42,0x22,0x64,0xe2,0xc9,0xca,0xd8,0xbc,0x2f,0x8d,0x1d,0xd2,0x95,
+  0x2,0x62,0x85,0xc1,0x1a,0x80,0x8e,0x15,0x46,0xa9,0xc4,0xeb,0xc1,0x28,0x83,0x52,
+  0xa,0x15,0x29,0x1b,0xf6,0x8d,0xc5,0x1,0xc2,0xd8,0x21,0x61,0x54,0xe2,0xd9,0x61,
+  0x84,0x36,0x86,0x20,0x8a,0x51,0xb1,0x22,0xd6,0x1a,0x61,0x24,0x9a,0x38,0xb9,0x2b,
+  0x76,0x1f,0x5f,0x29,0x40,0x78,0x39,0x93,0xcf,0xfb,0xc6,0x31,0x52,0x4c,0xcd,0x7,
+  0x2c,0x34,0xc,0x9b,0x7b,0x2,0x76,0x7,0x43,0x9c,0x51,0x76,0x99,0xd7,0x3d,0x14,
+  0xcc,0x71,0x3c,0xd5,0xa2,0xc7,0x71,0xa9,0xe4,0x8a,0xfc,0x9f,0x7,0x8c,0xf9,0xd8,
+  0x7f,0x1e,0x15,0x87,0xa7,0x9a,0x77,0x60,0x27,0x6c,0xd4,0x38,0xb1,0x67,0x3f,0x9b,
+  0xef,0x3b,0xd1,0xbc,0x59,0xef,0xee,0x64,0x20,0x9d,0xc6,0x7,0xb2,0xca,0x7e,0xac,
+  0x70,0xff,0x43,0x8f,0x0,0xd7,0xbf,0xee,0xfa,0xab,0xba,0x7b,0xba,0xcb,0x49,0xe3,
+  0x8d,0xbd,0x5e,0xad,0x63,0xcb,0xff,0x63,0x95,0x61,0xda,0xf5,0x3c,0x6,0xb4,0xb0,
+  0xe5,0xa0,0x49,0x30,0x82,0x8e,0xd1,0x71,0x60,0xa3,0x87,0x56,0x18,0x15,0xa3,0xe3,
+  0x44,0xf9,0x71,0xa2,0x7c,0x6d,0xa7,0x4e,0x6b,0xa5,0xd1,0xd8,0xf1,0x81,0x28,0x52,
+  0xa8,0x18,0x94,0xb6,0xdb,0xb9,0xc5,0x5a,0x61,0x8c,0x40,0x47,0x0,0xc9,0x38,0x84,
+  0x21,0xd9,0xf4,0xd9,0xe2,0x84,0x42,0xb1,0x18,0xfa,0xb4,0xf2,0x8e,0xef,0x8a,0xa3,
+  0xb,0x1,0x1b,0x72,0xb,0x48,0xbf,0x88,0x14,0x15,0x8c,0xd0,0x4,0xb5,0x45,0x72,
+  0xb5,0x49,0xfa,0x73,0x11,0x3d,0xdd,0x7d,0x7c,0xea,0xee,0x45,0xf3,0x87,0x5f,0x39,
+  0x2a,0xc6,0xe7,0x5a,0xb7,0xb2,0x32,0x61,0x23,0x7b,0xf3,0x3b,0x81,0xb4,0xc7,0x42,
+  0xfc,0xab,0xd5,0xfd,0xed,0xe7,0xab,0x11,0x3d,0xab,0xa1,0xfc,0xa7,0x2c,0xfc,0xc3,
+  0xe9,0x1b,0xc0,0x65,0xc0,0x99,0xaf,0x7d,0xf5,0x15,0x94,0x4b,0x36,0xff,0x5b,0xc0,
+  0xaf,0x41,0xc7,0x36,0xff,0xea,0x38,0x59,0xee,0xdc,0x2a,0xdb,0xb6,0x84,0x19,0x8c,
+  0x6c,0xd7,0xed,0xa0,0x55,0x82,0xf6,0xe3,0x8,0xa3,0x94,0x55,0x7e,0x18,0xda,0x5d,
+  0x3c,0x95,0x22,0x8e,0x92,0xdd,0x3b,0x25,0x18,0x63,0x49,0xa4,0x58,0x19,0xb,0xee,
+  0x54,0x98,0x18,0x82,0x46,0xc5,0x7a,0x99,0x65,0xc6,0x8,0x84,0x1d,0x70,0xb0,0x97,
+  0xa4,0x4,0xc6,0xd1,0x48,0x9a,0x81,0xa3,0x1b,0xf9,0x7a,0xb5,0x4e,0xec,0xf5,0xb2,
+  0x6e,0xc0,0x67,0xbf,0x1a,0xe4,0xec,0x72,0x95,0xa6,0x29,0xe1,0x34,0xe6,0x88,0xeb,
+  0x55,0x7a,0x47,0x46,0xf8,0xe8,0x2d,0xb3,0xe6,0x93,0xb7,0x8e,0x89,0xd9,0x6a,0xf8,
+  0x15,0xe0,0x5e,0x2c,0x50,0x6b,0x4b,0x7b,0x48,0x33,0x5b,0xa2,0xa5,0x15,0x9a,0x55,
+  0x7e,0x36,0xe7,0x77,0x62,0x6,0x3b,0x79,0x7d,0xfb,0xdc,0x93,0xe2,0xf7,0x1f,0x8f,
+  0x3c,0xd6,0x22,0x51,0xed,0x6a,0xfe,0xe7,0x3d,0xcf,0x79,0xf5,0x45,0x17,0x6c,0x98,
+  0x12,0x86,0xa5,0x28,0xd6,0x42,0xa,0x7c,0xad,0x6d,0xd2,0x75,0x1c,0x23,0xc1,0x24,
+  0xbb,0x69,0xb7,0x97,0x4f,0x37,0x49,0xed,0xaf,0x2d,0xe5,0x9b,0x80,0x37,0x54,0x64,
+  0x87,0x8f,0x95,0xb2,0x75,0xbe,0x36,0x44,0x4a,0x11,0x86,0x11,0xb1,0x8a,0x2c,0x16,
+  0xd0,0x6,0xa1,0x41,0x2b,0xdb,0x2b,0xd8,0xc,0x62,0x74,0x64,0x88,0x82,0xe4,0xfe,
+  0x6b,0xdb,0xf9,0x63,0x5b,0xc9,0x92,0x39,0xa5,0xed,0x49,0x1a,0x8,0x8c,0xe3,0x40,
+  0x75,0x3c,0x10,0xb3,0xfb,0x73,0x85,0x62,0x51,0xf4,0xf,0xf4,0xe0,0x14,0x2a,0x2c,
+  0x36,0xd,0x83,0x65,0x87,0xda,0xc2,0x22,0xb9,0xea,0x31,0xd6,0xac,0xe9,0xe7,0xe3,
+  0x77,0xb5,0xf8,0xd3,0xaf,0x1f,0xd6,0xb,0xf5,0xf8,0xcb,0xd8,0x55,0x39,0x2,0x4e,
+  0xe,0xbf,0xd9,0x7a,0xbc,0x53,0xed,0xde,0x7e,0xc,0x3b,0x9c,0xcb,0x62,0x5,0xbd,
+  0xca,0xe7,0x66,0xa9,0xdd,0xa7,0x14,0xf1,0x77,0x92,0x4e,0x73,0xaa,0xb3,0xaf,0x19,
+  0xe0,0x6b,0x42,0x88,0x1b,0xda,0xeb,0xe2,0x3b,0x8e,0x8b,0x10,0xcc,0x9c,0x73,0xd6,
+  0xe8,0xa1,0xb7,0xfe,0xf8,0x2b,0xf3,0x37,0xbe,0xee,0xa5,0x1b,0x7,0x6,0x7a,0xdc,
+  0x72,0xa9,0x28,0x73,0x39,0xcf,0xd1,0xda,0xd8,0xce,0xa0,0x84,0xd8,0xc3,0x88,0x24,
+  0x5,0xd8,0x92,0x2e,0x8e,0x15,0x71,0x14,0x13,0x46,0x31,0x3a,0x8a,0x88,0x62,0x45,
+  0x1c,0x2b,0xab,0xd8,0x84,0x1,0x14,0x52,0xd8,0xc1,0x9f,0x38,0xa6,0xd5,0x54,0xa0,
+  0xd,0xca,0xa8,0x24,0xda,0x88,0x44,0xf9,0xd2,0x7a,0xbf,0x11,0x68,0xa3,0x93,0x76,
+  0x34,0x10,0x8e,0x47,0x7c,0xec,0xde,0x60,0x69,0xc7,0x9d,0x7e,0xcf,0x99,0x1b,0xc5,
+  0xb9,0x23,0x79,0xe,0xd4,0xcb,0x6c,0x2c,0x2e,0x5a,0x63,0x9a,0x3e,0x8,0xc5,0x1e,
+  0x6e,0xd9,0xef,0xf2,0x81,0xbf,0xdd,0xd6,0xa,0x63,0xf3,0x65,0x56,0xc6,0xf2,0x3b,
+  0xf1,0xeb,0x9d,0x14,0xba,0x1a,0xca,0xf,0x39,0x31,0xcc,0xa7,0x2b,0x83,0xf6,0xf9,
+  0xb4,0xc7,0xa7,0xa3,0xa,0x1d,0xbe,0xfb,0x69,0x53,0x3e,0x74,0x8e,0x0,0xe9,0x49,
+  0xfd,0x6,0xb8,0x12,0x78,0xbb,0x94,0x72,0xd0,0xf7,0x73,0x6c,0xd8,0x70,0x16,0x57,
+  0x5f,0x7d,0xd,0xe7,0x9f,0x7f,0x41,0xb1,0xde,0x54,0xa3,0x5f,0xf9,0xfa,0x5d,0x83,
+  0x9f,0xfe,0x3f,0x5f,0xa,0xbe,0xfa,0x8d,0x7b,0xf7,0xf6,0x74,0x97,0xa2,0xe1,0xc1,
+  0x9e,0x62,0x3e,0xef,0x5b,0xc7,0x34,0xda,0x72,0x4,0x2a,0x41,0xfa,0xca,0xae,0xaa,
+  0x1d,0x85,0x91,0xf5,0xf8,0x28,0x26,0x8c,0x22,0x4c,0x2c,0xc0,0xac,0x28,0x1e,0x3,
+  0x2a,0x8a,0x9,0x82,0x98,0x38,0x88,0x8,0xe3,0xa4,0xb,0x48,0xd8,0xc6,0x4e,0x2d,
+  0x4c,0xd2,0xf1,0x6d,0x68,0x9f,0xb6,0xca,0x37,0xd8,0x79,0x6,0xa8,0x70,0x72,0xbb,
+  0x2b,0xea,0xc7,0x45,0xff,0xd0,0x10,0xf9,0x7c,0x9e,0xa8,0xd5,0xa2,0xdb,0x6b,0x12,
+  0x2f,0xcd,0x80,0x90,0x7c,0x69,0x8f,0xcb,0x6f,0xfe,0xe3,0xf6,0x30,0x88,0xcc,0xe7,
+  0xb0,0xca,0xd7,0xa9,0xdf,0x9c,0x2e,0xc7,0x3a,0x1,0xba,0x2c,0x8b,0x97,0xf6,0xfc,
+  0xb4,0x11,0x9c,0x8a,0xe2,0xcd,0xd6,0xf9,0x59,0xc3,0x4b,0x5f,0xcb,0xd3,0xa2,0x7c,
+  0x38,0xd9,0x0,0x44,0xe6,0x6f,0x3,0xfc,0x8c,0xeb,0xba,0x6f,0xec,0xee,0xee,0x29,
+  0x9c,0x7f,0xfe,0x5,0xdc,0x78,0xe3,0x5b,0x78,0xe3,0x1b,0x6f,0xe2,0xf5,0xaf,0xbf,
+  0x91,0x6b,0xae,0xb9,0x16,0x21,0xc,0x93,0x93,0x13,0xfe,0xe4,0xf1,0xd9,0xa1,0xaf,
+  0x7c,0xe3,0x7b,0xde,0xdd,0xdf,0x7b,0xf4,0xe8,0x85,0xe7,0xaf,0x17,0x23,0x43,0x7d,
+  0x79,0x29,0xa4,0xb0,0xbb,0x6e,0x2b,0x94,0x56,0xc4,0xa1,0x5d,0x57,0x5f,0xc5,0x9a,
+  0x28,0xb0,0x84,0x8f,0x56,0x9a,0x38,0x6,0xa3,0x14,0x8,0x61,0x47,0xf8,0x22,0x4d,
+  0x14,0x69,0x82,0x28,0x24,0x8a,0x6c,0xc7,0xb0,0x1d,0x60,0xb2,0xf7,0xc6,0x8,0x81,
+  0xd3,0x6e,0xfe,0xd4,0xc9,0x85,0x4a,0x2c,0x67,0x20,0x25,0x61,0x10,0xb7,0xd4,0xdc,
+  0x1,0x57,0x34,0xe6,0xc5,0xba,0xb3,0xd6,0x73,0x74,0x49,0x33,0xea,0xd7,0x9,0xeb,
+  0x75,0x9c,0xb8,0xc1,0xbf,0x3d,0x1c,0xf2,0x9b,0xff,0x7a,0xa0,0x19,0xc5,0xdc,0x81,
+  0x6d,0xdb,0x4e,0xdf,0xec,0x2c,0xd2,0x4f,0x47,0x80,0x2c,0xa2,0xcf,0x92,0x3e,0x59,
+  0x10,0x98,0xc6,0x9,0x9d,0x3c,0x3e,0xfd,0x98,0x56,0x3c,0x9c,0xe8,0xfd,0x4f,0x9b,
+  0x74,0xda,0x77,0xa6,0x1d,0x1,0xc,0x40,0x3e,0x9f,0xff,0x60,0x4f,0x4f,0xcf,0x65,
+  0x1b,0x37,0x6e,0xe2,0xfa,0xeb,0x5f,0xc7,0x5,0x17,0x5c,0xc0,0x9a,0x35,0x83,0x78,
+  0x9e,0x8b,0xeb,0xba,0x6c,0xd8,0x70,0x36,0x23,0x23,0xc3,0x80,0x60,0x69,0x69,0xc1,
+  0x3b,0x78,0x78,0xac,0xff,0xb,0x5f,0xb9,0xbb,0x7e,0xd9,0x25,0x9b,0x96,0xd6,0x8e,
+  0xf6,0x97,0x1c,0x21,0x44,0x14,0x2a,0xa2,0x38,0x26,0x8a,0x62,0xc2,0x20,0xb6,0xf5,
+  0xbe,0xd2,0xa8,0x30,0x4e,0xf5,0x0,0xda,0x7c,0x11,0x5,0x31,0x51,0x18,0x11,0x4,
+  0x16,0xf,0x8,0xec,0xa2,0xc9,0x3a,0x81,0xfa,0x32,0x69,0x30,0xb6,0x21,0x46,0x24,
+  0x1d,0xe0,0x49,0x37,0x30,0x76,0xd,0xbe,0x46,0xad,0xda,0x5a,0x38,0xb8,0xc5,0xab,
+  0x78,0x4a,0xae,0x19,0x5d,0xcb,0xd2,0xfc,0xc,0x43,0x65,0x41,0x63,0x6e,0x9a,0x7f,
+  0xd8,0xd2,0xe2,0xb7,0xbe,0x38,0x51,0x33,0x86,0xdb,0xb1,0x93,0x34,0xdb,0x6c,0x68,
+  0x96,0xd9,0xeb,0xc4,0xcc,0x75,0x52,0x7e,0x36,0xd4,0x77,0x6a,0xe6,0x48,0x2b,0x7a,
+  0x35,0xe5,0x9f,0xa,0xfc,0x3d,0x6d,0x92,0xde,0x81,0x3a,0xfd,0x48,0xf2,0xe5,0x67,
+  0xf6,0xf4,0xf4,0xbc,0x7b,0x70,0x70,0x68,0xf8,0xaa,0xab,0xae,0xe6,0xba,0xeb,0x5e,
+  0xc5,0xf9,0xe7,0x5f,0x40,0x57,0x57,0x9f,0xd,0xc1,0x82,0x64,0xb7,0xc,0xbb,0x2e,
+  0x4e,0xb9,0x5c,0x62,0x61,0x7e,0x9e,0x85,0xc5,0xa5,0xd2,0x2d,0xdf,0xba,0x6f,0x69,
+  0xfd,0xba,0xa1,0xa5,0xd,0x67,0x8e,0x54,0x30,0x42,0x44,0x61,0x44,0x1c,0x29,0x54,
+  0x18,0x12,0x29,0x8d,0x8a,0x14,0xda,0xa8,0x84,0x7,0x50,0x44,0x81,0x22,0x6c,0x85,
+  0xc4,0x61,0x4c,0x9c,0x70,0xfd,0x42,0x1b,0x8b,0xf7,0x84,0x5c,0x9e,0x62,0x20,0xa4,
+  0x44,0x63,0x27,0x8c,0x58,0xeb,0x38,0x91,0xcd,0x16,0x42,0xd0,0x68,0x34,0xea,0xea,
+  0xf8,0x8e,0x5c,0xb9,0xab,0x24,0x73,0xa5,0x32,0x45,0x5d,0xc5,0xb4,0x1a,0xfc,0xf3,
+  0xdd,0xe3,0xfc,0xaf,0xaf,0xcd,0x2d,0x62,0x15,0xff,0x1d,0x56,0xc6,0xf2,0xb3,0x48,
+  0x3c,0xeb,0xed,0xab,0x29,0x3d,0xcd,0xe1,0xa7,0x23,0x41,0xd6,0x0,0x1e,0x4b,0xf9,
+  0x9d,0x42,0xfe,0xd3,0xae,0x7c,0x38,0xf5,0xda,0xf3,0xa6,0x54,0x2a,0x5d,0x59,0xa9,
+  0x54,0xde,0xb5,0x6e,0xdd,0x59,0xf9,0x57,0xbc,0xe2,0x95,0x5c,0x74,0xd1,0x25,0x54,
+  0x2a,0x15,0x96,0x96,0x16,0x39,0x7e,0x7c,0x82,0xb1,0xb1,0x71,0x26,0x27,0x27,0xd8,
+  0xb7,0x6f,0xf,0x7,0xe,0xec,0xe7,0xcc,0x33,0xcf,0x20,0xe7,0xe7,0x99,0x9e,0x3a,
+  0x4e,0xb5,0xd6,0xe8,0xba,0xed,0x8e,0x87,0xea,0x17,0x9d,0xbf,0xa1,0xb1,0x76,0xa8,
+  0xbf,0xa8,0xa2,0x58,0x44,0x61,0x44,0x14,0xda,0xdf,0x1c,0x5,0xc9,0x8,0x5f,0x14,
+  0x11,0x5,0x11,0xb1,0xd2,0xc4,0x26,0x21,0x86,0x34,0xb6,0x92,0x30,0x22,0x59,0xbf,
+  0xc1,0x24,0x17,0x68,0x43,0x3e,0x32,0x69,0x3d,0xef,0xb0,0x59,0x93,0x74,0x1c,0x96,
+  0xe6,0xa6,0xab,0x7e,0x30,0x91,0xef,0xed,0x29,0x3b,0x7d,0x8d,0x43,0x38,0xd2,0xf0,
+  0xd9,0xbb,0xa7,0xf9,0xdf,0x5f,0x9b,0x5b,0x34,0x76,0x49,0x96,0xbb,0xe8,0xbc,0xf7,
+  0x6e,0x27,0xe5,0x77,0x2a,0xf3,0x56,0xb,0xfd,0x69,0xc0,0x97,0xf5,0xfa,0xd5,0x6,
+  0x77,0x3a,0x95,0x79,0x3f,0x14,0xe5,0xc3,0xca,0xee,0x13,0x69,0x69,0x1b,0x83,0xe3,
+  0x79,0xde,0x4f,0x74,0x75,0x75,0xdf,0x78,0xc1,0x5,0x17,0x71,0xdd,0x75,0xd7,0x33,
+  0x32,0x32,0x8a,0xd6,0xb0,0xb8,0x38,0xc7,0x8e,0x1d,0xdb,0xd9,0xb2,0xe5,0x1,0x76,
+  0xed,0xda,0xce,0xcc,0xcc,0x14,0x77,0xdd,0xf5,0x5d,0x16,0x17,0x17,0xe9,0x1f,0x58,
+  0x3,0x8,0xa6,0xa6,0x8e,0x13,0xc5,0xaa,0xf2,0xcd,0xef,0x3c,0x18,0x5f,0x7d,0xc5,
+  0xe6,0xb0,0xbb,0x52,0xca,0xa9,0x58,0x89,0x30,0x52,0xb6,0x15,0x3c,0x8a,0x21,0x82,
+  0x58,0x29,0x3b,0xd3,0x3b,0x51,0x85,0x91,0x96,0xc8,0xc1,0x11,0x18,0x48,0x96,0x50,
+  0x35,0x8,0x99,0x34,0x9f,0x62,0x12,0x8e,0x81,0x95,0xd9,0x3f,0x99,0xcb,0x9f,0xde,
+  0xf7,0x50,0x60,0x6a,0x53,0xf9,0xd,0xc5,0x9a,0x74,0x54,0xc0,0xfb,0xff,0xed,0x38,
+  0x7f,0xf1,0xdd,0xd9,0xa3,0x6,0xfe,0x15,0xdb,0xbc,0x99,0xde,0x73,0x27,0xcd,0xe9,
+  0x77,0x2,0x78,0x9d,0xce,0x75,0xe2,0xf3,0x3b,0xf5,0xf3,0xa7,0xcb,0xbe,0x6c,0x4,
+  0xe8,0xe4,0xf9,0xf0,0x43,0x54,0x3e,0xac,0xae,0x7c,0xd,0x9c,0x19,0x4,0xc1,0x65,
+  0xc6,0x68,0x7a,0x7a,0xfa,0xa8,0x54,0xca,0x38,0x8e,0x24,0xc,0x5b,0x34,0x9b,0x41,
+  0xb2,0xe8,0x3,0x1c,0x39,0x72,0x98,0x83,0x7,0xf7,0xb3,0xb0,0x30,0xcf,0xee,0xdd,
+  0xbb,0xb8,0xff,0xfe,0x7b,0x39,0x7a,0xf4,0xc8,0xf2,0x7,0x36,0x1a,0xad,0x9e,0xff,
+  0xf9,0xfb,0x9f,0x69,0xcc,0x2d,0xd4,0x95,0xd2,0xda,0xe,0xf1,0xc6,0x1a,0x13,0x1b,
+  0x5b,0x6,0x1a,0x43,0x32,0x29,0xdc,0x4e,0xf,0x33,0x62,0x25,0xbf,0x63,0x73,0xff,
+  0xf2,0xc8,0xa3,0x90,0xd6,0x10,0x56,0x13,0x21,0xd0,0x71,0x84,0x13,0xd7,0xf3,0xba,
+  0x59,0x97,0x93,0x61,0x89,0x5f,0xfd,0xdc,0x2,0xff,0xb9,0x75,0xe9,0x28,0xf0,0x79,
+  0xe0,0x0,0x27,0x4f,0xd0,0xec,0xa4,0xb0,0x4e,0x8a,0x5d,0x4d,0xe1,0xd9,0x68,0xb1,
+  0x5a,0xce,0xef,0x94,0xef,0xe9,0xf0,0xf7,0xf,0x55,0xb2,0xcb,0x8f,0xa7,0x1,0xe0,
+  0x59,0x4a,0xa9,0x97,0x7b,0x9e,0xc7,0xc8,0xc8,0x8,0xe5,0x72,0x17,0x61,0xa8,0x98,
+  0x98,0x98,0xe0,0xf0,0xe1,0x83,0x4c,0x4e,0x8e,0x33,0x3e,0x3e,0xce,0x81,0x3,0xfb,
+  0xd9,0xbb,0x77,0x2f,0x95,0x4a,0x85,0x4a,0xa5,0x8b,0xe9,0xe9,0x29,0x16,0x17,0x17,
+  0x4e,0xf8,0x92,0x9d,0xfb,0x8e,0xf5,0x7f,0xe3,0x3b,0xdf,0x3f,0x5e,0xab,0x6,0x4a,
+  0xa9,0x64,0x14,0xd0,0x28,0x8c,0x4,0xa5,0xad,0xc7,0x2f,0xbb,0x83,0x0,0x8c,0x41,
+  0x6a,0x6d,0xa7,0xf1,0xa3,0x97,0xef,0x90,0xe8,0x98,0xa9,0x52,0x62,0x60,0xfe,0xf8,
+  0x58,0xd8,0x57,0x11,0xbe,0xec,0x19,0x10,0x1f,0xf9,0xdc,0x11,0x6e,0x79,0x64,0xf1,
+  0x28,0xb6,0x7f,0xef,0x20,0x2b,0x9b,0x2d,0x64,0x51,0x79,0x27,0xe5,0xa7,0x3b,0x76,
+  0xd2,0xe5,0x5d,0x16,0xe8,0x65,0x4b,0xc4,0x4e,0x21,0xfe,0x54,0xb5,0xfd,0x33,0xa6,
+  0x7c,0x38,0x71,0xff,0x59,0x58,0xb9,0xbb,0x2e,0x70,0x2e,0xb0,0x76,0xcd,0x9a,0x61,
+  0xce,0x3a,0x6b,0x23,0xb9,0x5c,0x81,0xe9,0xe9,0x9,0x1e,0x79,0x64,0x2b,0xf,0x3d,
+  0xf4,0x7d,0x8c,0x31,0xdc,0x7d,0xf7,0x9d,0x34,0x1a,0x75,0xba,0xba,0xba,0x51,0x2a,
+  0x66,0x69,0x69,0x71,0xb5,0xef,0xf1,0x3f,0xf1,0x57,0x5f,0xa8,0xbc,0xf2,0xaa,0x4b,
+  0x44,0xa9,0x98,0x43,0x25,0x3d,0x7d,0x16,0xe1,0x4b,0xdb,0x0,0x22,0x40,0x1a,0x83,
+  0x14,0x12,0x9d,0x6c,0xa3,0xa6,0x21,0x69,0x11,0x3f,0x15,0x5f,0x65,0x81,0x9f,0xe7,
+  0x3a,0xa0,0x23,0x82,0xda,0x4c,0xe3,0xd1,0x3d,0x53,0xa5,0xcf,0xdf,0x73,0x4c,0x3c,
+  0x7c,0x60,0xfe,0x30,0xf0,0x5,0xec,0x6e,0x1b,0xc9,0xc4,0xc4,0x93,0xbc,0xb2,0xd3,
+  0xa0,0x4d,0x7a,0x24,0x2f,0x5b,0xce,0xa9,0xd4,0xeb,0xd9,0x12,0x31,0x9b,0xe3,0xd3,
+  0xcf,0xe1,0x19,0x42,0xfa,0xa7,0x92,0xec,0x16,0xe4,0x60,0x2f,0x68,0x4,0x78,0xa9,
+  0xeb,0xba,0x6c,0xda,0xb4,0x89,0xb5,0x6b,0xd7,0x12,0x86,0x21,0xdb,0xb6,0xfd,0x80,
+  0xfb,0xee,0xbb,0x87,0x66,0xb3,0xc5,0xfe,0xfd,0x7b,0x71,0x5d,0x8f,0xb5,0x6b,0xcf,
+  0xe4,0xf0,0xe1,0x83,0x0,0x27,0xed,0x9a,0x95,0x96,0x46,0x2b,0xec,0xba,0xed,0xee,
+  0x7,0xa7,0x5e,0xf7,0xf2,0x2b,0x6,0x96,0x37,0x4e,0x84,0xa4,0xb3,0x7,0x94,0x31,
+  0x48,0xe1,0x2c,0x83,0x3f,0x8b,0xfe,0x57,0x57,0xbc,0x10,0x2,0x47,0x4a,0x5c,0xd7,
+  0xa1,0x11,0x4,0xdc,0x7b,0xff,0xe,0xee,0xd9,0xf2,0x28,0xbb,0x76,0xee,0xed,0x99,
+  0x5d,0xac,0x31,0x57,0x8b,0x16,0xb0,0x61,0xff,0x58,0xf2,0x96,0x6c,0x99,0xf7,0x58,
+  0x24,0x4f,0x27,0xd0,0xd7,0x89,0xde,0x3d,0x55,0xb9,0x97,0xf5,0xf6,0xf4,0x39,0x78,
+  0x86,0x95,0xf,0x2b,0x11,0xa0,0x7d,0xa7,0x25,0x96,0xb,0x5f,0x7,0xbc,0xaa,0xb7,
+  0xb7,0x8f,0xf5,0xeb,0x37,0x52,0x28,0x94,0x19,0x1b,0x3b,0xc6,0xfd,0xf7,0xdf,0xc7,
+  0x81,0x3,0xfb,0xf1,0x7d,0x9f,0x83,0x7,0xf,0x12,0x45,0x11,0xb,0xb,0xf3,0xa7,
+  0x54,0x7c,0x5a,0xfe,0xf1,0xf3,0xb7,0x45,0xd7,0x5d,0x7d,0x9,0x8e,0xe7,0xda,0xe6,
+  0x8d,0xf6,0x28,0x1e,0x2e,0x8e,0x54,0x16,0x8,0x26,0xdb,0xb6,0x75,0x84,0x77,0x49,
+  0x49,0x28,0x85,0x60,0xa9,0xd6,0x60,0xcb,0xb6,0x3d,0xdc,0xb3,0x65,0x7,0x8f,0xee,
+  0x39,0x44,0xb5,0xd6,0xa0,0xd1,0x6c,0x4d,0xc4,0xb1,0xde,0x5,0xec,0xc2,0x76,0xf0,
+  0xb4,0x73,0x51,0xd6,0x23,0xd3,0x6,0x90,0xf5,0xee,0x4e,0xad,0x5a,0x9d,0xc6,0xf0,
+  0xdb,0x7f,0xa7,0x39,0xfd,0x4e,0x83,0x3a,0xab,0x11,0x3a,0xcf,0xb8,0xf2,0x61,0x65,
+  0xf,0x7a,0x52,0x8f,0x3e,0xb0,0xc9,0x71,0x9c,0x75,0x23,0x23,0x23,0x8c,0x8e,0xe,
+  0x53,0xad,0x2e,0xb1,0x63,0xc7,0x23,0xec,0xde,0xbd,0x8b,0xae,0xae,0x5e,0xb6,0x6e,
+  0x7d,0x90,0x56,0xab,0x9,0xc0,0x69,0xea,0x1e,0x80,0x85,0x6a,0x7d,0xb8,0x51,0x6f,
+  0xc5,0xe5,0x42,0xd1,0x37,0xda,0x2e,0xce,0x69,0xef,0x94,0x5e,0xe6,0x15,0x56,0x13,
+  0x63,0xc,0x53,0x33,0x8b,0xdc,0xf7,0x83,0x9d,0xdc,0xf5,0xc0,0x76,0xb3,0x73,0xef,
+  0x11,0xe2,0x38,0x56,0x71,0xac,0x26,0x62,0xad,0x77,0x0,0x8f,0x60,0x9b,0x37,0xda,
+  0xb4,0x6c,0xa7,0x9a,0x3b,0x8d,0xca,0x3b,0x1,0xb8,0x53,0x75,0xee,0xa4,0x73,0x7c,
+  0xf6,0xef,0x4e,0xde,0x9f,0x36,0x0,0x52,0xe7,0xd2,0x6c,0xdf,0x33,0x2e,0xe9,0xe1,
+  0xe0,0x36,0xfa,0x1f,0x2,0x5e,0x1,0x50,0x28,0x94,0x28,0x16,0x4b,0xcc,0xce,0x1e,
+  0xe7,0xee,0xbb,0xef,0xa0,0x56,0xab,0xb3,0x77,0xef,0xee,0x53,0xe5,0xfa,0xc7,0x12,
+  0xe7,0x1b,0xdf,0x7d,0x68,0xec,0xe7,0xde,0x72,0xfd,0x3a,0xe9,0x8,0x94,0x59,0x26,
+  0xf0,0x96,0x27,0x8f,0xd9,0x89,0x9c,0xda,0x32,0x85,0x5a,0x33,0x36,0x39,0xc3,0x7d,
+  0x3f,0xd8,0xc5,0x5d,0xf7,0x3d,0xa2,0xf6,0x1e,0x1a,0x37,0xda,0xe8,0x10,0xc3,0x41,
+  0x6d,0xcc,0x4e,0x2c,0xaa,0x5f,0x64,0xc5,0xb,0xd3,0x37,0x5d,0xa5,0xce,0xa5,0x95,
+  0xdf,0x49,0xe9,0x59,0x8f,0x4f,0x87,0xfc,0xd3,0x41,0xf9,0x59,0x3e,0x21,0x1d,0xe6,
+  0x61,0xf5,0x28,0xf0,0x8c,0x4b,0x36,0x5,0x68,0x60,0x18,0x78,0xb5,0x52,0x8a,0x6a,
+  0x75,0x91,0xd9,0xd9,0x59,0x76,0xec,0xd8,0xc6,0xd8,0xd8,0x31,0x8e,0x1f,0x9f,0x64,
+  0x69,0x69,0x9,0xa5,0x9e,0x98,0x11,0x7,0x41,0xc4,0xad,0x77,0x6e,0xd1,0x3f,0xff,
+  0x13,0xd7,0x5b,0x3c,0x2f,0xed,0x57,0xb,0x20,0x56,0x9a,0x20,0x8c,0x68,0xb4,0x2,
+  0xf6,0x1f,0x9e,0x60,0xcb,0xc3,0xbb,0xb9,0xf3,0xfe,0x47,0xc2,0xc9,0xe9,0x79,0x85,
+  0x4d,0x4b,0xfb,0xb0,0xa1,0x7d,0x3f,0x76,0xe1,0x85,0xf6,0x75,0x67,0x73,0x6c,0xf6,
+  0xb1,0xad,0xa8,0x6c,0x18,0xef,0x14,0xe2,0xd3,0x0,0x30,0x4d,0xea,0x64,0x95,0xdf,
+  0x29,0xd7,0x77,0xf2,0xfe,0x67,0x15,0xe0,0xeb,0x24,0xed,0x14,0xd0,0x3e,0x5c,0xe0,
+  0x1c,0x60,0xbd,0x5d,0xe2,0x74,0x98,0x7b,0xef,0xbd,0x9b,0x9d,0x3b,0xb7,0x33,0x31,
+  0x31,0xce,0xd2,0xd2,0xc2,0x69,0xe7,0xfb,0xd5,0x64,0x7a,0x76,0xa1,0x5f,0x6b,0xa3,
+  0x7d,0xcf,0x91,0xad,0x20,0xa4,0xd1,0xa,0xa8,0xd6,0x9a,0x1c,0x38,0x32,0xc1,0xfd,
+  0x5b,0x77,0x71,0xfb,0xdd,0x5b,0x5b,0xcd,0x20,0xc,0xb1,0xe1,0x7c,0x3f,0xb0,0x1b,
+  0x3b,0xb,0x47,0xb1,0x3c,0xd5,0xa4,0xa3,0xe2,0x3b,0x29,0x27,0x8b,0xdc,0x57,0xcb,
+  0xf7,0x9d,0x14,0x9f,0x8d,0x18,0x8f,0x35,0x88,0xd3,0x7e,0xe,0x27,0x1a,0x61,0xfb,
+  0xf9,0xb3,0x4e,0xf9,0x70,0x62,0xa,0xd0,0xc0,0x0,0xf0,0x2a,0xb0,0x60,0x6b,0x7e,
+  0x7e,0x8e,0x3,0x7,0xf6,0x51,0xad,0x56,0xa9,0xd5,0xaa,0x44,0x51,0xfc,0xa4,0xbf,
+  0x50,0x6b,0x2a,0x5b,0x1e,0xd9,0x5b,0xaf,0x94,0xa,0xa5,0xed,0x7b,0xe,0xf1,0xc0,
+  0xc3,0x7b,0xcc,0xf,0x1e,0xdd,0x57,0x8f,0x63,0xd5,0xc2,0x82,0xb6,0xed,0x58,0xa5,
+  0x4f,0x91,0x70,0x82,0xc9,0x75,0xb6,0xc7,0x2d,0x3a,0x79,0xd5,0x6a,0x5c,0x7b,0x27,
+  0x84,0xdf,0x29,0x2,0x74,0x1a,0xed,0xcb,0x1a,0x4e,0x56,0xd9,0xd9,0x94,0xd3,0xa9,
+  0xdc,0xcb,0xfe,0xfd,0xac,0x13,0x81,0x5,0x7d,0xed,0x1a,0x79,0x33,0xf0,0x65,0xe0,
+  0xec,0xa7,0xef,0x1b,0x5,0xe5,0x62,0xae,0x5e,0xab,0xb7,0x2,0x6c,0xd3,0xe5,0x34,
+  0x36,0xbc,0xef,0x5,0x8e,0x63,0x95,0xdd,0x56,0xb8,0x61,0xc5,0xeb,0xd3,0x37,0x32,
+  0xab,0x8c,0xb4,0x12,0xd2,0xde,0x9a,0xee,0xbb,0xcb,0x76,0xea,0x74,0x1a,0xe4,0x49,
+  0x47,0x86,0x4e,0xde,0x9f,0xd,0xf9,0xa7,0x43,0xee,0x3c,0x6b,0x95,0xf,0x27,0x46,
+  0x0,0x17,0xd8,0xc0,0xd3,0xa7,0xfc,0x26,0xb0,0x88,0x31,0xb,0xb5,0x7a,0x6b,0x1c,
+  0xab,0xf0,0x3,0x58,0xaf,0xf7,0xb0,0xa,0x6f,0x1b,0xe3,0xf2,0x70,0x34,0x9d,0x1,
+  0x54,0x27,0x2f,0xec,0x14,0xaa,0xd3,0x8a,0xd,0x39,0x51,0xc1,0x2a,0x73,0xbe,0x53,
+  0xc8,0x5f,0x2d,0xcf,0x9f,0x2a,0xc7,0x3f,0x67,0x94,0xf,0x2b,0x18,0xc0,0x60,0x77,
+  0xfb,0x78,0xc5,0x53,0xfc,0xf9,0xb,0xc0,0x5c,0x72,0x1c,0xc6,0x2a,0xfc,0x30,0xd6,
+  0x18,0xfc,0xe4,0xfb,0xb,0x9c,0x48,0x42,0x69,0x4e,0x1c,0x93,0x80,0xce,0x6,0x91,
+  0xd,0xf7,0x9d,0x8e,0x4e,0x25,0x5e,0xd6,0x0,0x56,0x53,0x7c,0xb6,0xd4,0xeb,0x84,
+  0xf8,0x9f,0xd3,0xca,0x7,0x7b,0x63,0xf3,0xd8,0x8b,0xdd,0x80,0x6d,0x8a,0x5c,0x65,
+  0xe1,0xfd,0xd3,0x92,0x18,0x3b,0x67,0xfe,0x20,0x56,0xd9,0x33,0xc0,0x2c,0x16,0xd0,
+  0x9,0xac,0xa7,0x7b,0xb0,0xbc,0xef,0x7d,0x9a,0x80,0xca,0x5e,0x57,0x5b,0xb2,0x9e,
+  0xdf,0xbe,0xf1,0x59,0x6,0xae,0x93,0xf2,0x3a,0xe5,0xfa,0x4e,0xf9,0xbd,0x13,0x9b,
+  0x97,0x8e,0x26,0x9d,0xca,0xcc,0x4e,0x2c,0x5f,0xf6,0x7a,0x9f,0xf5,0x92,0x2e,0x3,
+  0x5d,0x9e,0x98,0xf2,0x67,0x80,0x47,0xb1,0x88,0xfd,0x18,0xd6,0xdb,0x17,0x80,0x3a,
+  0xc9,0x32,0xce,0xac,0x84,0xf8,0x74,0x2e,0xef,0xe4,0xe9,0x6d,0x69,0xdf,0xc4,0xf4,
+  0xa4,0xc,0x38,0xf1,0xe6,0x77,0xf2,0xd2,0xf4,0xf3,0x34,0x78,0xeb,0x94,0xe7,0xb3,
+  0x58,0x20,0xd,0x26,0xb3,0xe1,0x3f,0xcb,0xe8,0x65,0x8f,0x6c,0xdd,0xff,0x9c,0x91,
+  0x76,0x53,0x84,0xc4,0x2,0xb2,0x3b,0x80,0xeb,0x4e,0xe3,0x7d,0x3b,0x80,0x6d,0xc0,
+  0x4e,0x2c,0x5a,0x5f,0x4c,0xde,0x1f,0x62,0x43,0xbb,0xcf,0xc9,0x4a,0x87,0xce,0xca,
+  0x87,0x13,0x79,0x88,0x74,0x3a,0x48,0x1b,0x40,0x3a,0xd7,0x77,0xca,0xf9,0x59,0xb6,
+  0x2e,0xcd,0xfa,0x65,0xeb,0xfa,0xf4,0x7b,0x56,0x43,0xf8,0x59,0x52,0x27,0x8b,0xf0,
+  0x4f,0x45,0xf3,0x3e,0x67,0x24,0x1d,0x1,0x16,0xb1,0xc3,0xa6,0xd7,0x75,0xf8,0x7f,
+  0xb3,0xd8,0xce,0xd9,0x2d,0x58,0xc4,0x3e,0x8f,0x55,0x78,0x1d,0xab,0x60,0x1f,0xbb,
+  0x6f,0x40,0x3b,0xaf,0x67,0xeb,0xf4,0xec,0xd1,0xe,0xff,0xe9,0xdc,0xde,0x56,0x38,
+  0x9c,0x78,0x53,0xb3,0xb4,0x6a,0x3a,0xfc,0x67,0xa9,0xd9,0xd5,0xbc,0x3b,0xb,0xfe,
+  0x56,0xb,0xf3,0xab,0x51,0xbb,0x9d,0x42,0x7d,0xba,0xec,0x7b,0xce,0x4a,0xba,0xa,
+  0x88,0xb1,0xdb,0x98,0xe4,0x81,0x9b,0xb0,0x1e,0xbc,0x13,0xb8,0x13,0x5b,0x9e,0xd5,
+  0x93,0x23,0x62,0x25,0xac,0xb7,0x3d,0x3d,0xdb,0x5b,0x7,0x9d,0xf3,0x78,0x5b,0xf1,
+  0xd9,0x8,0xd0,0x9,0x3c,0xe9,0xd4,0xff,0x4d,0xe7,0x5f,0x43,0x67,0x5a,0xf6,0xb1,
+  0x30,0x40,0x36,0x5a,0x64,0x15,0x7c,0x2a,0xd4,0x9f,0xbe,0xb6,0xac,0x21,0x3c,0xa7,
+  0x45,0x60,0x3d,0xb7,0x1d,0xaa,0x25,0x50,0x4,0xba,0x58,0x69,0x9b,0x6a,0x2f,0x79,
+  0xda,0xae,0xcd,0x3d,0x56,0x6a,0xf5,0x74,0xcd,0x9e,0x7e,0xad,0xfd,0x5c,0xa4,0x3e,
+  0xbb,0x5d,0xcf,0xb7,0xbf,0x37,0x5b,0xdf,0x67,0x51,0x74,0xda,0xd3,0xb2,0x6,0x90,
+  0x56,0x72,0x56,0xa9,0xd9,0xfa,0xbf,0x93,0x31,0x74,0x42,0xf6,0xe9,0xd4,0x92,0x36,
+  0x80,0xf6,0xf5,0x64,0x8d,0xf4,0x39,0x1b,0xf6,0xd3,0xd2,0x69,0x6e,0x60,0x88,0x5,
+  0x72,0x12,0xab,0xbc,0xb4,0x81,0x64,0x43,0x74,0x27,0xaf,0x48,0x87,0xd3,0x36,0x99,
+  0xd3,0x36,0x2e,0xc5,0xc9,0x9d,0x47,0x69,0x10,0x98,0xbe,0xe1,0xd9,0x50,0x9b,0xfe,
+  0x3f,0x9d,0x50,0x7b,0xfa,0x79,0x36,0xd4,0x9f,0x6e,0x6d,0xdf,0x89,0xdc,0x81,0x93,
+  0x95,0xff,0xbc,0x91,0x4e,0x6,0x90,0x46,0xe0,0xe9,0xe7,0xed,0x90,0x9c,0xbe,0x9,
+  0x59,0x85,0xb6,0xd1,0x74,0x7a,0xbe,0x41,0xda,0x6b,0xb3,0x2d,0x68,0xab,0x95,0x78,
+  0x9d,0x8c,0x29,0xeb,0xfd,0x59,0x4f,0xcd,0x86,0xf6,0x2c,0xd8,0x4b,0x47,0x88,0xec,
+  0x61,0x56,0xf9,0x2e,0xe8,0xac,0xfc,0xe7,0x8d,0x11,0xb4,0xd,0x40,0xb3,0x7a,0x38,
+  0x6e,0xdf,0xa4,0xb6,0xc2,0xda,0x8a,0x8c,0x59,0x59,0xa,0xbd,0x53,0x64,0x68,0xbf,
+  0xa7,0x1d,0x49,0xb2,0x39,0x3f,0xfb,0x9e,0xd5,0x6a,0xeb,0xf4,0x6b,0xe9,0x23,0x4e,
+  0xbd,0xde,0x9,0xb8,0x65,0xd,0x61,0x35,0x32,0xa7,0xd3,0xb9,0xd5,0xc,0x20,0xfd,
+  0xf8,0xbc,0x90,0xec,0x60,0x50,0x76,0xc0,0x25,0x7d,0x63,0xb2,0x9e,0x9e,0x6d,0x26,
+  0x49,0xa3,0xfb,0xb6,0x41,0xb5,0x8f,0x34,0x60,0x4a,0x87,0xfe,0xec,0x77,0xa5,0xc3,
+  0xee,0x6a,0xca,0x6a,0x8f,0x48,0xad,0x66,0x0,0x59,0xe5,0x77,0x2,0x74,0xab,0x29,
+  0xbf,0x2d,0xcf,0xfb,0xd0,0xdf,0x96,0xcc,0xde,0xaa,0x27,0x28,0x3b,0x1d,0x72,0xf9,
+  0xff,0xdb,0x39,0xa3,0xed,0x6,0x61,0x18,0x86,0xaa,0xdb,0xff,0xff,0xf1,0x46,0xf7,
+  0xa4,0xb3,0x8b,0x90,0x43,0x9f,0x1,0xbd,0x24,0xd,0x9,0xd9,0xa9,0x6c,0xcb,0x31,
+  0x65,0x3a,0xbe,0x40,0x62,0x22,0xfc,0x5,0x32,0x4f,0xd8,0xb4,0x4f,0x2c,0x73,0xbd,
+  0xd7,0xb4,0x73,0x7e,0x1a,0x4,0x75,0xd9,0xfb,0x26,0xd1,0x53,0x94,0x68,0xc7,0x39,
+  0x66,0xf5,0x8a,0xfe,0x99,0xf7,0x5f,0xe,0x2e,0x4,0x49,0xdd,0x23,0x3d,0x6e,0xaf,
+  0x4f,0xfc,0x68,0xff,0x6e,0x5d,0x7a,0x3d,0xd,0x20,0x31,0x91,0x9f,0x7a,0xcf,0xb6,
+  0x25,0x6a,0xa9,0xdd,0xf6,0x7c,0x69,0x1f,0x5,0x1a,0xc9,0xbc,0x8f,0x74,0x34,0x8e,
+  0xcb,0x12,0x6f,0x64,0x4,0x60,0xe6,0xde,0xf4,0x3c,0x93,0x3e,0x66,0xed,0xdf,0x31,
+  0xd7,0xfa,0xef,0xdc,0x22,0x43,0xbf,0xd7,0x49,0xeb,0xf3,0xb6,0x49,0x4c,0x92,0xf9,
+  0x59,0x9a,0x13,0xbc,0x33,0x23,0xcb,0xeb,0xf9,0xb7,0x5d,0x1a,0x36,0x0,0x5a,0xfc,
+  0x16,0x73,0xf2,0xa7,0x9a,0x94,0x87,0xcc,0x1,0x5e,0x3a,0x4a,0x45,0x4b,0xfe,0x58,
+  0xc,0x5a,0x49,0x80,0xdb,0xf4,0xe8,0xc,0xe5,0x2d,0x61,0x9c,0x12,0x4b,0x2d,0xf6,
+  0xbc,0x5,0xe9,0x84,0x25,0xc0,0x4,0x26,0xf9,0xc2,0xb5,0x1c,0xdb,0xa2,0x65,0x9d,
+  0xa0,0x19,0x0,0x93,0xc4,0x46,0x9a,0xd1,0x12,0xbf,0xc,0xff,0x2b,0x63,0xc9,0x71,
+  0xe9,0x33,0x3,0xb8,0x25,0x18,0x1,0xa6,0xfa,0x3d,0x43,0xba,0xe7,0xb2,0xc0,0x63,
+  0xad,0x4f,0xef,0xcf,0x7,0x3d,0x44,0xca,0x47,0x23,0x27,0x8d,0x63,0x25,0x13,0x2b,
+  0x23,0x78,0xc7,0x1a,0xee,0x21,0xdd,0x98,0x7c,0x69,0x2e,0x4,0xa5,0x57,0x7e,0x95,
+  0x31,0x93,0xc8,0x9f,0x6e,0xbd,0x62,0x8d,0xef,0xe7,0xf9,0x9e,0xb7,0x95,0xf1,0x24,
+  0x65,0x4a,0xd4,0xa6,0xd0,0x7d,0xa6,0xeb,0xd9,0x67,0x7b,0x5b,0xa4,0x4,0x90,0xc,
+  0x97,0x6e,0x8d,0x4c,0xfe,0x48,0xf0,0xa4,0xfb,0xf9,0xb4,0x2f,0x49,0x17,0xae,0x71,
+  0x4e,0x1a,0xdb,0xef,0x30,0x47,0x3a,0x92,0xfe,0x49,0x21,0xe7,0xf6,0xc4,0x1b,0x7e,
+  0x58,0xd3,0x42,0x36,0x49,0x64,0x35,0x8f,0xff,0x55,0xa4,0xbd,0x5d,0xcc,0x7b,0xe4,
+  0x5e,0xf4,0x62,0xe6,0xf,0x93,0xe7,0x4b,0x7b,0xa9,0xc8,0x39,0xfc,0xfc,0x69,0x5,
+  0xef,0x21,0x1f,0x60,0x1d,0x40,0x3a,0x46,0x2,0xc3,0x5f,0x2e,0x8f,0x74,0xac,0xf8,
+  0x79,0x2d,0x5b,0x62,0x45,0xc6,0x99,0x1,0x64,0xe8,0x9f,0xee,0x33,0xe9,0xfa,0x43,
+  0xfc,0x2,0xed,0x11,0xed,0x14,0x9,0xd8,0xcf,0xa,0x1f,0xfb,0x34,0x90,0x49,0x83,
+  0x85,0x31,0x62,0xca,0xda,0x57,0x72,0xe1,0x7e,0x2b,0xe5,0xb6,0x3d,0x1e,0x0,0x2b,
+  0xed,0xe6,0x1c,0x95,0xf1,0x76,0xec,0xcb,0xba,0x80,0xf4,0x6f,0x10,0x52,0x27,0x23,
+  0xbd,0x7e,0x3a,0x92,0x9e,0x69,0xfa,0x99,0x71,0x3d,0x28,0xf8,0x3,0xe9,0x4a,0x1,
+  0xef,0xb4,0x3e,0x14,0xed,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,
+  0x82,
+    // /home/matthew/pencil_dev/icons/prefstimeline.png
+  0x0,0x0,0xd,0x38,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x4b,0x0,0x0,0x0,0x33,0x8,0x6,0x0,0x0,0x0,0xdf,0x3f,0xf5,0x46,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0xc,0xca,0x49,0x44,0x41,0x54,0x78,0xda,0xa4,
+  0xcc,0x4b,0xa,0x80,0x30,0xc,0x4,0xd0,0x54,0xdd,0x28,0x2e,0x4,0x5,0xf5,0x44,
+  0xde,0xff,0x1e,0x85,0x22,0x56,0xa9,0xdf,0x3a,0xc5,0x59,0x94,0x6e,0xd,0x3c,0x86,
+  0x7c,0x88,0xd2,0x5a,0x4f,0x22,0x52,0x40,0x4d,0x1d,0x8c,0xd0,0xc3,0x0,0x2d,0x34,
+  0x50,0x41,0x9,0x39,0x65,0xf2,0x95,0x4a,0xf2,0x6f,0x79,0xfe,0xf2,0xec,0x1f,0xba,
+  0x23,0x61,0x77,0x71,0x2e,0xd1,0xad,0x4f,0x84,0x9b,0x3,0x76,0x70,0xb0,0xd0,0xa,
+  0x6,0x36,0xb0,0x51,0x6,0x33,0xf7,0x96,0xe9,0xe8,0x7c,0x5,0x10,0xb,0x23,0x23,
+  0xe3,0x67,0x68,0x60,0xfd,0x83,0x3a,0x92,0x17,0x6a,0x38,0xcc,0x1,0xb0,0x80,0x61,
+  0x42,0x12,0xa3,0x76,0x0,0x21,0x3,0xf4,0x80,0x42,0xf,0x0,0x46,0x68,0x20,0xfc,
+  0x47,0x52,0x87,0xc,0x98,0xa0,0x6a,0x90,0x3,0xf2,0x2f,0x54,0x1c,0xe4,0x4f,0x56,
+  0xa8,0x9f,0xd8,0x41,0x1,0x0,0xe5,0xc3,0xe4,0x18,0xa1,0x34,0xc,0x33,0x23,0xf9,
+  0xfb,0x3f,0x40,0x0,0xb1,0x30,0x33,0x33,0x7f,0x85,0x6a,0x4,0x49,0x70,0x43,0xd,
+  0x80,0x39,0x84,0x9,0x29,0x40,0x90,0x3,0xd,0x5f,0x8a,0xa0,0x46,0xca,0x62,0x40,
+  0xb,0x8,0x98,0x7b,0x90,0x53,0xd9,0x3f,0x2c,0x11,0xc7,0x8,0x75,0x27,0xb2,0xf8,
+  0x5f,0x24,0x8f,0xb3,0x20,0xb9,0x1f,0xd9,0x1e,0x26,0x24,0x9a,0x9,0x29,0xc2,0x98,
+  0x91,0xcc,0x65,0x4,0x8,0x20,0x96,0xff,0xff,0xff,0x7f,0x87,0x2a,0xf8,0x83,0x64,
+  0x0,0x13,0x52,0x76,0x83,0xc5,0x6,0x23,0x5a,0xe0,0x61,0x4b,0x11,0xb4,0x0,0xc8,
+  0x81,0x4,0x4b,0x55,0xc,0x68,0x1,0xc4,0x88,0xe6,0xd1,0x7f,0x50,0xf6,0x3f,0x34,
+  0xcf,0xff,0x43,0x4b,0xb5,0xb0,0x6c,0xfd,0x1b,0x2d,0x25,0x32,0x22,0xa5,0x34,0x78,
+  0x6a,0x5,0x8,0x20,0x96,0xbf,0x40,0x0,0x75,0xc0,0x5f,0xb4,0xd0,0x65,0x41,0xa,
+  0x30,0x66,0xf4,0x50,0x46,0x8b,0xd1,0xff,0x54,0xc,0x18,0x5c,0x7c,0xe4,0x94,0xf4,
+  0xf,0x2d,0xc0,0xd0,0xdd,0xc6,0xc,0xf5,0x13,0x23,0x9a,0xfb,0x60,0xfe,0xfc,0x5,
+  0xd,0x20,0x58,0x79,0x6,0xa3,0x7f,0x23,0x5,0x20,0x72,0xc0,0x81,0x3,0x1e,0x20,
+  0x80,0x58,0xbe,0x7f,0xff,0xfe,0x17,0x29,0xc9,0x21,0x63,0x56,0x2,0x81,0x4,0x6,
+  0xac,0x5f,0xbf,0x91,0x1c,0x50,0xbf,0xb9,0xb9,0x8,0x65,0x63,0xf4,0x2,0x1b,0x39,
+  0x52,0xd0,0x23,0x8a,0x9,0x2d,0x75,0xa1,0xa7,0xac,0xff,0x48,0x1,0xf0,0x7,0x2d,
+  0x70,0xbe,0x23,0xf1,0x61,0x95,0xc1,0x5f,0xa4,0x54,0xc8,0x8c,0x64,0x26,0x33,0x40,
+  0x0,0xb1,0x1c,0x39,0x72,0xe2,0x1f,0x5a,0x4c,0x21,0x2b,0x60,0x42,0x73,0xc,0x23,
+  0x52,0xea,0x3,0x3,0xe5,0xc5,0xb,0x18,0x38,0x39,0x39,0x89,0xce,0x82,0xc0,0xc8,
+  0x61,0xb8,0x1b,0x9b,0x40,0xa8,0x60,0x87,0x17,0xd6,0x6f,0xdf,0xbe,0xfd,0x23,0x2c,
+  0x2c,0x8c,0x5e,0xc8,0xa3,0x97,0x31,0x70,0x37,0x2,0xd5,0x33,0x0,0xd5,0x23,0x97,
+  0x57,0xff,0x91,0x2,0xea,0x1f,0x52,0x40,0x81,0x3,0x9,0xa8,0xfe,0x27,0x50,0xfd,
+  0xf,0x28,0xff,0xf,0x52,0x96,0xff,0x8f,0x96,0x35,0xff,0x3,0x4,0x10,0x8b,0xa9,
+  0xa9,0x21,0x7a,0x6a,0xf9,0x8f,0x56,0x13,0x30,0xa2,0xc5,0x38,0x4a,0xc0,0x1c,0xab,
+  0x2e,0x67,0xf0,0xf6,0xf6,0x26,0xba,0x70,0xdf,0xba,0x75,0x2b,0x83,0x95,0xa9,0x21,
+  0x31,0x35,0x21,0x38,0xeb,0x65,0x65,0x65,0x31,0x4c,0x9b,0x36,0xd,0x3d,0xa2,0xfe,
+  0xa1,0x95,0x27,0xf0,0xf2,0xb,0xaa,0x1e,0xb9,0x7c,0xfa,0x83,0x14,0x60,0xbf,0xd1,
+  0xb2,0xe2,0x4f,0xa0,0xfa,0x5f,0x40,0xf5,0xbf,0xd1,0xe4,0xfe,0xa3,0x95,0x89,0xe0,
+  0x32,0x1c,0x20,0x80,0x98,0x90,0x6a,0x16,0x98,0x87,0x59,0xb1,0x14,0xe4,0xff,0x71,
+  0xd4,0x4e,0xf8,0xca,0x1b,0x4a,0xdb,0x58,0xff,0xb1,0x54,0x1c,0x4c,0x68,0xf6,0x30,
+  0xa3,0xd5,0x80,0xc,0x38,0xb2,0x31,0x72,0x61,0xfe,0xf,0xad,0x6c,0xfa,0x8b,0x14,
+  0xa0,0xff,0x70,0xa4,0x2c,0x70,0xd6,0x6,0x8,0x20,0x64,0xcb,0xff,0xa2,0xd5,0x8a,
+  0xff,0xd0,0xa,0xd6,0xff,0x44,0x4,0xca,0x7f,0x42,0x81,0x6,0xcc,0xb2,0x84,0xda,
+  0x58,0xc8,0xa9,0x86,0x11,0x9a,0x5,0xd1,0xdb,0x51,0xe8,0xed,0x3e,0x78,0xd1,0x0,
+  0x55,0xcf,0x84,0x23,0xc0,0xfe,0x23,0x5,0x18,0x38,0x5,0x41,0xd5,0x23,0xdb,0x8b,
+  0x5e,0xc3,0xc2,0xcd,0x1,0x8,0x20,0xc6,0x3b,0x77,0xee,0x80,0x5a,0xe9,0xfc,0xd0,
+  0x96,0x3a,0xa8,0xe5,0xae,0x0,0xc4,0x8a,0x40,0x2c,0xb,0xc4,0xd2,0x50,0x71,0x3e,
+  0x68,0x5b,0x8c,0x5,0xad,0xf5,0xce,0x70,0xcc,0xcd,0xd,0x94,0xd,0x19,0x49,0x69,
+  0x42,0xbc,0xcf,0xcf,0xc7,0x27,0xfd,0xf,0x29,0x75,0xfd,0xc5,0xe6,0x41,0x24,0x75,
+  0x2c,0x68,0x45,0x7,0x72,0xcb,0xfd,0x2f,0x52,0xeb,0xfb,0x1b,0xb4,0x65,0xe,0x6a,
+  0xb5,0xbf,0x85,0xd2,0x20,0xfc,0x9,0xda,0x52,0xff,0x8e,0x54,0x1b,0xc2,0xa,0xfb,
+  0x1f,0x68,0xf8,0x1b,0x40,0x0,0x31,0x61,0x69,0x8d,0xff,0x47,0x6a,0x77,0xfc,0x45,
+  0x2b,0x1c,0xd1,0x63,0x9,0x96,0x52,0xfe,0x53,0x29,0x3b,0xa2,0x67,0x43,0x26,0xb4,
+  0xec,0xc7,0x84,0x25,0xd6,0x61,0x7a,0xfe,0xa2,0x55,0x2,0xff,0xd0,0xfc,0x84,0xdc,
+  0x7e,0x62,0x42,0x6b,0xa8,0xb2,0x60,0x11,0x47,0xae,0xe4,0xc0,0x0,0x20,0x80,0x58,
+  0xb0,0x78,0xf0,0x17,0x52,0xec,0xfc,0x41,0x8b,0x55,0x66,0x34,0x3,0xfe,0x3b,0x39,
+  0x39,0xa1,0xb7,0x88,0xe1,0x55,0xfc,0x3f,0x3c,0xcd,0x7d,0x2,0xd9,0x10,0x3d,0xf0,
+  0xfe,0x62,0x89,0xc,0x46,0x2c,0xcd,0xd,0xf4,0x86,0x27,0x7a,0x83,0x16,0x96,0x7d,
+  0x41,0xb9,0x84,0xd,0x4a,0xa3,0xf7,0x31,0xd1,0xd5,0xc2,0xcd,0x4,0x8,0x20,0xe4,
+  0x98,0xfa,0x83,0xd4,0x3a,0xfe,0x8d,0x94,0x24,0x7f,0x63,0xa9,0x52,0xff,0xe3,0x28,
+  0x8c,0xe1,0x9e,0xf9,0xf5,0xe7,0x27,0xc3,0xc3,0x6f,0xbf,0x29,0xed,0x44,0xff,0xc7,
+  0x92,0x45,0xff,0x63,0xc9,0xf2,0xff,0xd1,0xa,0x65,0x6c,0xdd,0x21,0x66,0xb4,0x9e,
+  0x9,0x2c,0xb0,0x38,0xa0,0x98,0x1d,0x5a,0xb9,0xb1,0x21,0x25,0xa,0xe4,0xb2,0x9b,
+  0x1,0x20,0x80,0x98,0x90,0xc,0x67,0x40,0xab,0x31,0x7e,0x21,0x5,0x20,0xae,0xc0,
+  0xfa,0x87,0x19,0xe3,0xff,0x18,0xde,0xff,0xfc,0xc9,0x70,0xf6,0xde,0x3d,0x86,0x86,
+  0x87,0xaf,0xc8,0xe9,0x44,0xa3,0x17,0xb4,0xff,0xb0,0x14,0xba,0xc,0x38,0x6a,0xad,
+  0xbf,0x68,0x62,0xbf,0x91,0xfc,0xc6,0x88,0xd4,0xd8,0x66,0x45,0xa,0x2c,0x18,0x9b,
+  0xd,0x29,0xc5,0xb1,0x60,0x69,0x8c,0x33,0x0,0x4,0x10,0xb,0x16,0x8f,0xc3,0x5a,
+  0xb9,0xc8,0xdd,0xa0,0xbf,0x68,0xd5,0x2a,0x23,0x96,0x90,0x87,0x24,0xd9,0xdf,0x1f,
+  0x19,0xb7,0x3c,0x7e,0xcb,0xf0,0xe8,0x3f,0xd3,0x7f,0x2e,0x46,0x46,0x46,0x32,0x52,
+  0x16,0x13,0x96,0x54,0x84,0x6d,0xf4,0x1,0xbd,0xf6,0xfd,0x8b,0x14,0xb8,0xc8,0xfd,
+  0xbd,0x7f,0x48,0xe2,0xff,0x90,0x2,0x81,0x15,0x1a,0x38,0xff,0x90,0x9a,0x1e,0x30,
+  0x3f,0x33,0x21,0x5,0x2e,0xbc,0x46,0x4,0x8,0x20,0xf4,0xa6,0xc3,0x7f,0xb4,0xce,
+  0xe5,0x5f,0x2c,0x4d,0x9,0x7c,0xfd,0x38,0x46,0x6,0x56,0x41,0x86,0x58,0x15,0x15,
+  0x86,0x52,0x81,0xff,0xc,0xbf,0xfe,0xff,0x27,0x27,0x65,0x31,0xe0,0x18,0x96,0x61,
+  0xc4,0x33,0x6e,0x85,0xdc,0xf7,0xfb,0x87,0x36,0x84,0xf3,0x17,0x69,0xc8,0x9,0x56,
+  0x46,0x73,0x22,0xa5,0x26,0x18,0x66,0x45,0xc3,0xcc,0xe8,0x29,0x1e,0x20,0x80,0x98,
+  0xd0,0x5a,0xc4,0xff,0xd0,0x6a,0x96,0x7f,0x78,0xca,0xb,0xbc,0x9e,0x4,0xf6,0x38,
+  0x19,0xc9,0xac,0xd,0xd1,0x7b,0x3,0xb8,0x7a,0xf,0x8c,0x38,0x22,0xec,0x3f,0x52,
+  0xb9,0xfb,0x7,0xa9,0x62,0xfa,0x8f,0x14,0x60,0xb0,0x5a,0xf,0x16,0x48,0x2c,0x48,
+  0xd9,0x8f,0x9,0xcd,0x6c,0x58,0xae,0x62,0x4,0x8,0x20,0x26,0x2c,0xe,0xfa,0x8b,
+  0x23,0x16,0x99,0xb0,0x38,0x96,0x11,0x4b,0xb6,0x20,0xaa,0x71,0x4a,0x42,0x8d,0x88,
+  0xab,0x93,0xfd,0xf,0x8b,0xfd,0xcc,0x58,0xfa,0x8f,0xcc,0x58,0xb2,0x31,0x33,0x92,
+  0x1e,0xf4,0xd1,0x15,0x6,0x2c,0x95,0x8,0x38,0xc0,0x0,0x2,0x8,0xbd,0x93,0xfc,
+  0x17,0x87,0xe3,0x19,0xb1,0xb0,0xff,0x63,0x9,0x34,0x6a,0x8d,0x6d,0x31,0x12,0x18,
+  0xc,0x64,0xc0,0xd2,0x77,0x63,0x44,0x1b,0x29,0x45,0x1f,0xd6,0x41,0xae,0x15,0xff,
+  0x22,0x8d,0xd1,0x31,0xa3,0xe5,0xaa,0xff,0x58,0xc6,0xb9,0xc0,0xb9,0xc,0x20,0x80,
+  0x98,0xd0,0x6a,0xf,0x6c,0x16,0xa2,0xd7,0x42,0xc,0xd8,0x86,0x6a,0xd0,0xf9,0x4c,
+  0xcc,0xac,0xff,0x25,0x59,0x99,0xa9,0x31,0xae,0x85,0x2b,0x32,0xd0,0xdb,0x7c,0xc8,
+  0x6d,0x23,0xf4,0x41,0xcb,0xff,0x48,0xa9,0xe6,0xf,0x5a,0x85,0xf0,0x1b,0x29,0xab,
+  0xfd,0x44,0x1a,0xaa,0x81,0xb5,0x6,0xe0,0x23,0xc7,0x0,0x1,0xc4,0x82,0x54,0xe8,
+  0x21,0x87,0xfa,0x3f,0x2c,0x13,0x12,0xb8,0x2,0x9,0x6b,0x60,0xf1,0x8a,0x2b,0x33,
+  0xb6,0x88,0x93,0x3d,0xfe,0x8e,0xad,0x3c,0x42,0x1f,0x75,0x60,0x40,0x2b,0x1e,0xfe,
+  0xa1,0x8d,0x65,0x31,0x62,0x69,0x87,0x31,0xa1,0x35,0x91,0x90,0x9b,0x49,0xbf,0x90,
+  0x2,0xc,0xbd,0xe7,0x2,0xa6,0x1,0x2,0x8,0x34,0xac,0xfc,0xf,0xad,0x69,0x8f,
+  0x2d,0x36,0x18,0x71,0x65,0xc7,0xff,0x90,0x1a,0xef,0x3f,0x5a,0x47,0x97,0x1,0xc7,
+  0xa8,0x1,0x3,0x92,0x1e,0x7c,0x5,0xfc,0x7f,0xb4,0xb2,0xea,0x1f,0x8e,0x40,0x64,
+  0xc2,0xd2,0x92,0x47,0x1e,0x4e,0x66,0x46,0xf2,0xd3,0x5f,0x2c,0x65,0xea,0x6f,0xa4,
+  0x1,0xbf,0x9f,0xd0,0x3e,0xe4,0x6f,0xa4,0x14,0xf5,0xf,0x79,0xd8,0x6,0x20,0x80,
+  0x58,0x1e,0x3f,0x7e,0xfc,0x1f,0x6d,0x22,0xe2,0x3f,0x9e,0xe1,0x63,0x8c,0x94,0xc0,
+  0xfc,0xe9,0xf3,0x7f,0x1c,0xfd,0x4b,0x9c,0xa9,0x10,0x68,0x27,0x31,0x29,0xb,0xdb,
+  0x64,0xc4,0x3f,0xb4,0xbe,0x22,0xae,0xda,0x11,0x39,0x57,0xb0,0x42,0x3b,0xc2,0xff,
+  0xd1,0x52,0x27,0x72,0xfb,0xf2,0xf,0x52,0x0,0xfd,0x86,0xaa,0xff,0x85,0x14,0x50,
+  0x60,0xbb,0x1,0x2,0x88,0xe5,0xde,0xbd,0x47,0xe8,0x35,0xb,0x3,0x5a,0xe0,0x31,
+  0x61,0x29,0xaf,0xe0,0x16,0xb,0x7c,0xf8,0xc0,0x88,0xa3,0xd6,0xc2,0xd9,0x2d,0x84,
+  0xda,0x49,0xcc,0x18,0x3c,0xfa,0xec,0xb,0xa1,0x9,0x12,0x74,0xfb,0x99,0xa1,0x9e,
+  0x46,0x57,0xff,0x17,0x6d,0x84,0xe2,0x37,0x5a,0x63,0x16,0xbd,0xcd,0x9,0xce,0xae,
+  0x0,0x1,0xc4,0x72,0xee,0xdc,0x29,0xe4,0xec,0xf2,0x87,0x40,0xd5,0x8f,0x32,0xac,
+  0xfc,0xeb,0xd7,0x2f,0x6,0xd1,0xc7,0x8f,0x18,0x98,0x98,0x98,0x19,0xb0,0xa4,0x4,
+  0x9c,0xa3,0xa7,0x67,0xcf,0x9e,0x26,0x76,0xde,0x10,0xd7,0x38,0x3c,0x3,0x52,0x56,
+  0xfb,0x8f,0xa3,0xd6,0x44,0x6e,0x27,0x22,0x57,0x6,0xcc,0x48,0x33,0x37,0xff,0xb1,
+  0x34,0x45,0xd0,0x87,0x83,0xe0,0x6d,0x3f,0x80,0x0,0x62,0x9,0xb,0xb,0x43,0x2e,
+  0x20,0x59,0xb0,0xc4,0xd4,0x5f,0x1c,0x65,0x9,0xc3,0x92,0x25,0x4b,0xc0,0x16,0xaa,
+  0xa8,0x98,0x33,0xfc,0xf9,0xf3,0x9b,0xe8,0x1,0x6,0x77,0xf7,0x1c,0x62,0x47,0x49,
+  0x99,0xf0,0xa4,0x36,0x46,0x1c,0x1d,0xed,0x7f,0x38,0x3c,0xcc,0x80,0x36,0x1,0x83,
+  0xdc,0xb1,0x66,0x40,0x4a,0x65,0x8c,0xb8,0x26,0x4e,0x0,0x2,0x88,0x5,0x4b,0x40,
+  0x30,0xe0,0x18,0x59,0x60,0xc0,0x31,0xdc,0xb,0x56,0x73,0xe0,0xc0,0xda,0x7f,0xcc,
+  0xcc,0x2c,0x4c,0x84,0xda,0x5a,0x7f,0xff,0xfe,0x61,0x90,0x8d,0x2d,0x24,0x94,0xa2,
+  0x98,0xd0,0xa,0x75,0x6c,0xe5,0xe1,0x3f,0x34,0x36,0x3a,0xfe,0x8b,0x36,0x1a,0xc1,
+  0x8c,0x36,0xb5,0x85,0x3e,0xd9,0x81,0x6d,0x28,0xfd,0x1f,0xf2,0x50,0xd,0x40,0x0,
+  0xb1,0xa0,0x95,0x2f,0x7f,0xd1,0x1a,0x73,0xf8,0xc6,0x89,0x30,0x6a,0x3b,0x13,0x13,
+  0x5b,0x6c,0xd9,0x5,0x25,0xd0,0x4e,0x9e,0xdc,0x4f,0x6c,0xdf,0x10,0x5f,0x63,0xf7,
+  0x2f,0x16,0x77,0x21,0xf7,0x3e,0x90,0x1b,0x95,0xff,0xb1,0xe8,0x61,0xc2,0x32,0x91,
+  0xcc,0x8c,0x96,0x45,0xd1,0x67,0xa7,0x19,0x1,0x2,0x88,0x5,0xad,0x96,0x61,0xc6,
+  0xd2,0x17,0xfc,0x87,0xa3,0xd7,0xff,0x9f,0x40,0x4d,0x46,0xad,0xe9,0x7b,0xf4,0xd6,
+  0x35,0x23,0x5a,0xb6,0x61,0xc0,0x32,0x3f,0xf8,0x17,0x6d,0x76,0xe7,0xf,0x96,0x1e,
+  0x7,0x33,0x5a,0x80,0xb0,0x20,0xf9,0x9f,0x19,0xad,0x57,0x3,0xb6,0x1b,0x20,0x80,
+  0x58,0xd0,0x52,0xd1,0x5f,0xb4,0x72,0x3,0x7d,0x78,0x86,0x50,0x60,0x61,0xab,0xbe,
+  0xc9,0x6d,0x98,0xa2,0x67,0xc5,0xbf,0x68,0x5d,0x32,0xe4,0x45,0x22,0xff,0xd0,0x86,
+  0x93,0x18,0xd0,0x86,0x98,0xfe,0xa3,0xd,0x2d,0x31,0x21,0x75,0xb0,0x61,0x2d,0x7d,
+  0xf4,0x32,0x8d,0x5,0x3d,0xa5,0x3,0x4,0x10,0xb,0x96,0xae,0xc2,0x5f,0x2,0x43,
+  0xb4,0xd8,0xca,0x33,0x6c,0x81,0x44,0x69,0x2a,0xfb,0x8f,0x67,0x6a,0xb,0x39,0x12,
+  0xff,0x60,0x19,0x4a,0xfa,0x83,0xa5,0xa0,0x67,0x40,0x1b,0xbb,0x62,0xc1,0xd2,0x45,
+  0x62,0x44,0x1b,0x6a,0x47,0x49,0xc9,0x0,0x1,0xc4,0x82,0x34,0x0,0xc8,0x80,0xd6,
+  0x3f,0xc4,0x35,0x4c,0xfb,0x1f,0xcf,0xb4,0x3a,0x7a,0x8d,0xc6,0x48,0x41,0x20,0x31,
+  0xe2,0x18,0x8d,0xf8,0x87,0xd6,0x97,0xfb,0x8f,0xa5,0x7b,0x82,0xdc,0x65,0xfb,0x8b,
+  0xa3,0xe9,0xc1,0x88,0xa3,0x29,0x82,0xdc,0xc6,0x42,0x1,0x0,0x1,0xc4,0x82,0x56,
+  0x83,0x30,0xa3,0xd,0x9e,0xa1,0x67,0xc1,0xbf,0x68,0xa3,0x87,0xff,0xb1,0xa4,0xa4,
+  0xbf,0x68,0xd5,0x31,0x23,0x5,0x29,0xb,0xbd,0x88,0x40,0x6,0xbf,0xd1,0x5a,0xdf,
+  0xff,0xd1,0xda,0x89,0xc,0x68,0x65,0x15,0xb6,0x9,0xc,0xe4,0x61,0x1d,0xe4,0x21,
+  0x76,0x46,0x2c,0xb3,0x46,0xc,0x0,0x1,0xc4,0x84,0x96,0xf4,0xfe,0xa1,0x15,0x9e,
+  0xe8,0xc9,0x1d,0xdb,0xfa,0x28,0xac,0xb3,0xb7,0x14,0xe,0xd5,0xa0,0x67,0xf3,0x7f,
+  0x68,0x23,0xa1,0xff,0xb1,0x14,0x15,0x7f,0xd0,0x3c,0x87,0x3e,0x43,0x83,0xbc,0x4a,
+  0x88,0x19,0x4b,0x99,0xf6,0x17,0xcb,0x3c,0x25,0xca,0xc4,0x2c,0x40,0x0,0xa1,0xf,
+  0x6f,0xe0,0x2a,0x1f,0xfe,0xe0,0xa8,0xd,0xff,0xe1,0x69,0x30,0x52,0x12,0x50,0xd8,
+  0x66,0x8d,0x90,0x9b,0xd,0xbf,0xb1,0x94,0x6b,0xcc,0x58,0x6,0xf3,0x18,0xb1,0xf8,
+  0xef,0x1f,0x96,0x14,0xfb,0x7,0x6d,0x26,0xeb,0x17,0xda,0xfc,0x29,0xd8,0x2d,0x0,
+  0x1,0xc4,0x82,0x94,0x4f,0x19,0xb0,0x4,0xd2,0x7f,0x2c,0xeb,0x5,0xfe,0x63,0xa9,
+  0xca,0x19,0x19,0xb0,0x2f,0x9,0xa2,0xb4,0xd9,0x80,0xde,0xd9,0x45,0x5f,0x2f,0x8a,
+  0x6d,0x1,0xc7,0x7f,0xb4,0x19,0x1d,0xf4,0x44,0xf0,0x1b,0x6d,0x7a,0xef,0x27,0x52,
+  0x56,0xfe,0x85,0x96,0xbd,0x51,0x52,0x31,0x40,0x0,0xb1,0xe0,0x48,0x11,0x4c,0x68,
+  0x33,0x25,0xe8,0x34,0x13,0x8e,0xd6,0x3d,0xae,0xb5,0xa7,0xe4,0x4c,0x58,0x30,0xa2,
+  0xa5,0x2,0x6c,0xb3,0xcb,0x8c,0x58,0x46,0x20,0xfe,0xe3,0x18,0x28,0xfc,0x8d,0xe6,
+  0x66,0xe4,0x41,0xbe,0x9f,0x48,0x1,0xf5,0x1b,0x6d,0xc4,0x1,0xde,0x22,0x0,0x8,
+  0x20,0x16,0xa4,0x61,0xc,0xf4,0xb9,0xba,0xff,0x78,0xa6,0xa2,0xfe,0xe1,0x48,0x51,
+  0x94,0xd6,0x82,0x8c,0x78,0x2,0xf0,0x1f,0xda,0x38,0x16,0xae,0x31,0xb4,0x7f,0x68,
+  0x65,0xdd,0x3f,0x34,0xb1,0x3f,0x68,0x59,0xef,0x2f,0x8e,0x49,0xe5,0x3f,0x68,0xd9,
+  0xfd,0x3f,0x40,0x0,0xb1,0xe0,0x18,0xb8,0x47,0x5e,0xd5,0xcb,0x84,0xa5,0x63,0x89,
+  0x6f,0x8,0xe5,0x3f,0x9e,0x19,0x19,0x62,0xc7,0xdd,0xd1,0x1b,0xa8,0xc8,0x66,0x33,
+  0xe3,0x19,0xc9,0xfd,0x8f,0x96,0x15,0xb1,0xad,0x35,0x65,0xc4,0xd2,0x3e,0x43,0xf,
+  0xb4,0x3f,0x48,0x76,0xc0,0x52,0xe4,0x3f,0x80,0x0,0x62,0xc1,0xd2,0x4f,0x62,0x45,
+  0x9b,0x47,0x63,0x66,0xc0,0xbe,0x52,0xf9,0x3f,0x96,0x89,0x0,0x26,0x34,0x4f,0x30,
+  0x92,0x59,0xb,0x62,0x6b,0x14,0xa2,0xa7,0x5c,0x26,0x1c,0x53,0xfd,0xc8,0x4d,0x8,
+  0xe4,0xb5,0xa5,0xc8,0xa9,0x1f,0x79,0xfc,0xea,0x17,0x96,0x31,0xad,0x7f,0xe8,0xa3,
+  0xa4,0x20,0xbd,0x0,0x1,0x84,0xdc,0x74,0x60,0x42,0x9b,0xff,0x67,0xc7,0x32,0x1,
+  0xc9,0x8c,0x36,0xb4,0xc1,0x88,0x63,0x26,0x86,0x92,0x96,0x3b,0x23,0xe,0x9a,0x81,
+  0x1,0xfb,0xe2,0x35,0xf4,0x51,0x3,0xe4,0x7e,0x1f,0x3,0x5a,0xb1,0xf2,0xf,0xcb,
+  0xdc,0x28,0xb6,0xc5,0x6e,0xd8,0x1a,0xa5,0xff,0x1,0x2,0x8,0x39,0x65,0xb1,0x20,
+  0x5,0x10,0x7,0x74,0xd6,0x16,0x86,0x39,0xf0,0xa4,0x34,0x46,0x6,0x2c,0xcb,0x73,
+  0xa8,0xd4,0xcd,0x61,0xc0,0x32,0xc,0xcc,0x88,0x23,0xe5,0xe2,0x5b,0x99,0xf8,0xf,
+  0x4b,0xa0,0x30,0x60,0x69,0x58,0xff,0x43,0xb3,0x7,0xb9,0x6f,0xca,0x8,0x10,0x40,
+  0x2c,0x48,0x31,0x6,0x9b,0x91,0x85,0xad,0x2a,0xe1,0x42,0xa,0x28,0x36,0xb4,0x80,
+  0x62,0xc6,0x32,0x57,0x47,0x68,0xf8,0x85,0x94,0x2,0x1e,0x3d,0x85,0x32,0x21,0x65,
+  0x2f,0x26,0xb4,0xde,0xc6,0x7f,0x1c,0xcd,0x1e,0xe4,0xd6,0x3d,0xfa,0xf2,0x47,0x6c,
+  0x1,0xc5,0x80,0x63,0xfa,0xf,0xde,0xc8,0x6,0x8,0x20,0x16,0xb4,0x6c,0x85,0x1c,
+  0x58,0x9c,0x58,0xb2,0x22,0xb,0x52,0xd,0x8a,0x32,0xa1,0xe1,0xe2,0x12,0xc1,0x4c,
+  0xe4,0x94,0x19,0xc3,0x4d,0xc2,0xc3,0xc9,0x8c,0x68,0x65,0xd3,0x5f,0x2c,0x43,0x48,
+  0xe8,0x23,0x13,0xc,0x68,0xd3,0xed,0xff,0x90,0xa,0xf0,0xdf,0x68,0xf3,0x83,0xff,
+  0x71,0x44,0xe,0xbe,0x32,0x97,0x11,0x20,0x80,0x58,0xda,0xda,0xda,0xfe,0x23,0xe5,
+  0x73,0x36,0xa4,0x6c,0xc8,0x8e,0x94,0xaa,0x90,0x57,0xc8,0xa1,0xcc,0x62,0x7f,0xfc,
+  0xf8,0x91,0xe1,0xf4,0xe9,0xed,0x4c,0x38,0xa6,0xcc,0xb0,0x82,0x25,0xef,0x6f,0x13,
+  0x33,0xfe,0xce,0x88,0xc5,0x4c,0xf4,0xd9,0x26,0xf4,0x94,0x82,0x9c,0xa2,0x90,0x97,
+  0x4c,0xfd,0x45,0x6b,0xe,0xa0,0x77,0x9e,0x99,0xd0,0xc6,0xe9,0x19,0xb1,0x8c,0xc4,
+  0x30,0x0,0x4,0x10,0xcb,0xcc,0x99,0x33,0x99,0xd0,0x62,0xa,0x79,0xc1,0x4,0x7a,
+  0xe1,0x8e,0x5c,0x4e,0x31,0xa4,0xa7,0xa7,0x83,0xd,0x35,0xb,0x70,0x62,0x22,0xb2,
+  0xcd,0x4,0x6,0xfc,0x25,0x69,0xa4,0x16,0xf8,0xd8,0xe6,0x22,0xff,0xa2,0xb5,0xad,
+  0xfe,0xa2,0xa5,0x26,0xd8,0x5c,0xe0,0x6f,0xa4,0x56,0xfa,0x6f,0xb4,0xc6,0x26,0x13,
+  0x5a,0xa,0x66,0x41,0xab,0x20,0x50,0x96,0x57,0x1,0x4,0x10,0xcb,0x8f,0x1f,0x3f,
+  0x90,0x27,0x54,0x99,0xd0,0x42,0x9a,0x9,0x4b,0x20,0x61,0xc4,0xf0,0xb7,0xbf,0xbf,
+  0xfe,0xbf,0x3d,0x73,0x97,0x91,0xd8,0xe6,0xc2,0xdb,0x9f,0x9f,0x89,0x2d,0xdc,0x19,
+  0x71,0xb4,0xd6,0x99,0xb0,0xcc,0x44,0xfd,0x47,0xcb,0x76,0x28,0x9b,0x3,0x90,0xda,
+  0x52,0x7f,0x70,0x8c,0xcb,0x31,0x62,0xa9,0xe5,0x99,0x91,0xec,0x61,0x4,0x8,0x20,
+  0x96,0x9f,0x3f,0x7f,0xfe,0x63,0xc0,0xbd,0x73,0x1,0xbd,0x20,0x47,0xf,0x10,0xb0,
+  0xfa,0xef,0x7f,0x7f,0x32,0x7d,0xfe,0xfc,0xf9,0xbf,0x82,0x82,0x2,0xc1,0x64,0xf2,
+  0xe0,0xc1,0x3,0x86,0xb7,0xbf,0x3e,0x13,0x93,0xd,0x99,0x18,0x30,0x37,0x9,0x30,
+  0x21,0xf5,0xef,0x98,0x91,0xd4,0xfd,0x65,0xc0,0x5c,0x7,0xfb,0x13,0x6d,0x76,0x19,
+  0x79,0xf6,0xf9,0x17,0x5a,0xad,0xc8,0x80,0x66,0x1e,0xd6,0xb5,0x1d,0x0,0x1,0xc4,
+  0xf2,0xfa,0xf5,0x6b,0xe4,0xc6,0xda,0x5f,0x6,0x2c,0x5b,0x4e,0x18,0xf0,0x2f,0x4,
+  0x61,0xfa,0xfc,0xed,0x2b,0x3,0xb0,0xec,0x62,0xfc,0xf2,0xe5,0xb,0xc1,0xc0,0x2,
+  0x95,0x71,0xcf,0xde,0xbe,0x24,0x76,0x68,0x19,0x5b,0x8d,0x8,0x6b,0x17,0xfe,0xc2,
+  0xe2,0xa6,0xff,0x68,0x13,0xa5,0xbf,0xd0,0xba,0x31,0xbf,0xb0,0x94,0x59,0xc,0x48,
+  0x1,0x87,0x6d,0x3d,0x5,0xbc,0x31,0xc,0x10,0x40,0x2c,0x6f,0xde,0xbc,0xc1,0xd7,
+  0xdb,0xc7,0x36,0xc,0x83,0x91,0x15,0x3f,0x7f,0x7,0x7,0x16,0x3,0xf1,0x81,0xf5,
+  0x8a,0xd8,0x46,0x29,0x7a,0x5f,0x8f,0x9,0x6d,0xe,0xf0,0x1f,0x8e,0x4a,0xe5,0x1f,
+  0x3,0xee,0x35,0xf4,0xff,0xb1,0xc,0x49,0xa3,0x8f,0x64,0x60,0x1b,0xd1,0xf8,0xf,
+  0x10,0x60,0x0,0xc4,0x34,0x3b,0x42,0xd5,0x78,0x67,0x8a,0x0,0x0,0x0,0x0,0x49,
+  0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/aqua.png
+  0x0,0x0,0x1,0x1e,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x4,0x0,0x0,0x0,0x13,0x8,0x2,0x0,0x0,0x0,0x38,0x40,0x3b,0xa,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x0,0xb0,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xbc,0xf7,0xf0,0xcb,0xbf,0xff,0xff,0x19,0x19,0x19,0xff,0xff,0xff,0xf,0x10,0x40,
+  0x2c,0xf7,0x3f,0xfd,0x66,0x64,0x64,0x80,0x0,0x80,0x0,0x62,0x79,0xf9,0xf5,0xf,
+  0x3,0xc,0x0,0x4,0x10,0xcb,0x97,0x9f,0xff,0xe1,0x1c,0x80,0x0,0x62,0xf9,0x85,
+  0x90,0x60,0x0,0x8,0x20,0x96,0x1f,0x7f,0xff,0x33,0x31,0x32,0x41,0x38,0x0,0x1,
+  0xc4,0xc2,0xc0,0xc4,0xcc,0x0,0x33,0x0,0x20,0x80,0x58,0xfe,0xff,0x67,0xfa,0xb,
+  0xd3,0x5,0x10,0x40,0x2c,0x37,0xdf,0xb2,0xc0,0xf5,0x0,0x4,0x10,0xb,0x3b,0x7,
+  0x82,0x3,0x10,0x40,0x2c,0x1c,0xec,0xec,0x70,0xe,0x40,0x0,0xb1,0x70,0xb2,0x33,
+  0xc1,0x39,0x0,0x1,0xc4,0xc2,0xc5,0x8d,0xb0,0x7,0x20,0x80,0x58,0x78,0x39,0x11,
+  0x1c,0x80,0x0,0x62,0x61,0xe1,0x40,0x70,0x0,0x2,0x88,0x85,0x93,0xd,0xc1,0x1,
+  0x8,0x20,0x14,0xe,0x40,0x0,0x31,0x6e,0xfc,0x8c,0x70,0x35,0x40,0x0,0x31,0x6e,
+  0xff,0xff,0x1f,0x6e,0x2b,0x40,0x80,0x1,0x0,0x28,0x2a,0x22,0x2e,0x4,0xbe,0xb8,
+  0x37,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/eyedropper.png
+  0x0,0x0,0x2,0x44,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x1f,0xf3,0xff,0x61,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+  0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd8,
+  0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+  0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+  0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+  0xb,0x0,0x0,0x1,0xba,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0x62,0x20,0x3,0x48,
+  0xcb,0xa8,0xff,0x7,0x61,0x20,0x93,0xb,0x20,0x80,0x98,0x48,0xd5,0x2c,0x29,0xad,
+  0xf9,0xbf,0xb8,0x7c,0x3e,0xc3,0xbf,0x7f,0xec,0xc,0x6a,0xea,0x16,0x5f,0x1,0x2,
+  0x88,0x89,0x58,0x1b,0xe7,0x2f,0x3a,0xf8,0x5f,0x42,0x4a,0xeb,0x7f,0x51,0xe9,0x42,
+  0x86,0xed,0x3b,0xef,0x33,0x8,0x8b,0xea,0x30,0xfc,0xfc,0xf9,0x9d,0x1,0x20,0x80,
+  0x8,0x6a,0x56,0x52,0xb1,0xf8,0xdf,0x37,0xe9,0x38,0x50,0xb3,0xc9,0xff,0x8e,0xde,
+  0xb3,0xff,0x9d,0xbc,0x56,0xfc,0x57,0xd3,0xc,0x5,0x1b,0xb6,0x62,0xd5,0xbe,0xff,
+  0x0,0x1,0x84,0x57,0xb3,0xac,0xac,0xda,0xff,0x89,0x53,0xf,0xff,0x77,0xf1,0x59,
+  0xf6,0x5f,0x55,0x2b,0xf5,0xbf,0x88,0xb8,0x5,0x90,0x8e,0xfd,0x2f,0x23,0x67,0xf2,
+  0xbf,0xb1,0x79,0x9,0x28,0xc,0x4c,0x0,0x2,0x88,0x91,0x80,0x3,0xd8,0xa5,0xa4,
+  0x35,0x7f,0xf0,0xf2,0x6b,0x33,0xbc,0x7e,0x7d,0x87,0x81,0x8d,0x5d,0x88,0x81,0x85,
+  0xf9,0x37,0x43,0x64,0x54,0x16,0x43,0x77,0x7b,0xa4,0x29,0x50,0xfe,0x13,0x40,0x0,
+  0xe1,0x35,0x60,0xf6,0xec,0xc5,0xff,0x3f,0x7e,0x66,0x66,0xe8,0xed,0x69,0x61,0xf8,
+  0xf3,0x97,0x85,0xe1,0xff,0x7f,0x46,0x6,0x2e,0x2e,0x1e,0x86,0x7f,0x7f,0xdf,0x30,
+  0x3c,0x79,0x7c,0x53,0xf,0xa8,0xe4,0x5,0x40,0x0,0xe1,0xc,0xc4,0xf9,0xf3,0xe7,
+  0xff,0x4f,0x49,0x89,0x61,0x60,0x64,0xf8,0xcc,0xe0,0xec,0xe2,0xc7,0xc0,0xca,0xf2,
+  0x9b,0x81,0x85,0xe5,0xf,0x3,0x2b,0xeb,0x1f,0x90,0x66,0x90,0xed,0xdf,0x80,0xf8,
+  0x2b,0x40,0x0,0x61,0xd5,0xbc,0x68,0xd1,0xa2,0xff,0x20,0xf0,0xe5,0xcb,0x97,0xff,
+  0x19,0x99,0x39,0xff,0xb9,0x79,0x78,0xc1,0xfe,0x95,0x95,0x53,0x5,0xd1,0x86,0x40,
+  0xac,0x6,0xc4,0x82,0x40,0xcc,0xc,0x10,0x40,0x18,0x9a,0x17,0x2c,0x58,0x0,0xd6,
+  0xfc,0xf5,0xeb,0xd7,0xff,0x9b,0x36,0x6d,0xfa,0xcf,0xcb,0xb,0xd1,0xc,0xd5,0x24,
+  0x3,0xc5,0x70,0xcd,0x0,0x1,0x84,0xd5,0x66,0x98,0x66,0x3e,0x3e,0x3e,0x64,0xcd,
+  0x20,0x4d,0xec,0x50,0xc,0xd7,0xc,0x10,0x40,0x58,0x9d,0xbd,0x71,0xe3,0x46,0x74,
+  0x9b,0xb1,0xdb,0x8,0x4,0x0,0x1,0x4,0x46,0x25,0x25,0x25,0x28,0x36,0xf3,0xf0,
+  0xf0,0x10,0xad,0x19,0x20,0x80,0xc0,0x8,0x64,0x23,0xc8,0x66,0x72,0x34,0x3,0x4,
+  0x10,0xc3,0xe6,0xcd,0x9b,0xff,0x7f,0xfb,0xf6,0xd,0xec,0x64,0x92,0x9c,0xd,0x5,
+  0x0,0x1,0x4,0x4a,0x48,0xec,0xc0,0xc0,0xfa,0xf1,0xe9,0xd3,0x27,0x3d,0xa8,0x18,
+  0x28,0x7e,0xdf,0x81,0x52,0x19,0x10,0xff,0x25,0x64,0x0,0x40,0x80,0x1,0x0,0xe3,
+  0x8e,0xc8,0xed,0xab,0x89,0x9e,0x95,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,
+  0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/smudge.png
+  0x0,0x0,0x2,0xd9,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x13,0x0,0x0,0x0,0x12,0x8,0x6,0x0,0x0,0x0,0xb9,0xc,0xe5,0x69,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x2,0x6b,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xfc,0xff,0xff,0x3f,0x3,0xb5,0x0,0x40,0x0,0x31,0x11,0xa3,0xe8,0xcf,0x9f,0x3f,
+  0x20,0x1b,0x51,0x30,0x8,0x98,0x9b,0x9b,0xa3,0xb8,0x4,0x20,0x80,0xf0,0x1a,0x36,
+  0x69,0xd2,0xa4,0xff,0xbf,0x7e,0xfd,0xfa,0xcf,0xcc,0xcc,0xcc,0x80,0xee,0x83,0x7f,
+  0xff,0xfe,0x31,0xb0,0xb2,0xb2,0xa2,0x88,0x1,0x4,0x10,0x58,0x11,0x2e,0xfc,0xe3,
+  0xc7,0x8f,0xff,0xbf,0x7f,0xff,0xfe,0xf,0x72,0xd9,0xdf,0xbf,0x7f,0xff,0x3,0xd,
+  0x80,0xe3,0xaf,0x5f,0xbf,0xfe,0x8f,0x8a,0x8a,0xfa,0x9f,0x91,0x91,0xf1,0x1f,0xa6,
+  0x1e,0x20,0x80,0x70,0xba,0xec,0xe3,0xc7,0x8f,0xff,0x2f,0x5e,0xbc,0x8,0x37,0x18,
+  0xe4,0x12,0x10,0xd,0x34,0x94,0xe1,0xe7,0xcf,0x9f,0x60,0xbe,0x92,0x92,0x12,0x3,
+  0xd0,0x32,0xb8,0x1e,0x80,0x0,0x62,0xc2,0x15,0x46,0x2b,0x56,0xac,0x0,0x2b,0x3e,
+  0x72,0xe4,0x8,0x58,0x23,0x50,0x8c,0xe1,0xdb,0xb7,0x6f,0xc,0x5f,0xbe,0x7c,0x61,
+  0xf8,0xf4,0xe9,0x13,0xc8,0xd5,0xc,0xe2,0xe2,0xe2,0xc,0x6f,0xdf,0xbe,0x85,0xeb,
+  0x3,0x8,0x20,0xac,0x86,0x75,0x76,0x76,0x32,0xc4,0xc4,0xc4,0x30,0x6c,0xd8,0xb0,
+  0x81,0xc1,0xc4,0xc4,0x84,0x61,0xe7,0xce,0x9d,0xc,0xef,0xde,0xbd,0x63,0x0,0x7a,
+  0xd,0x6c,0x10,0xc8,0x50,0x10,0x5f,0x4e,0x4e,0x8e,0xe1,0xc3,0x87,0xf,0x70,0x7d,
+  0x0,0x1,0x84,0xd5,0x30,0xb,0xb,0xb,0x86,0xee,0xee,0x6e,0x6,0x3f,0x3f,0x3f,
+  0xb0,0xc1,0x8a,0x8a,0x8a,0x60,0x43,0xce,0x9c,0x39,0xc3,0x50,0x50,0x50,0x0,0x76,
+  0x29,0x88,0xcf,0xc9,0xc9,0xc9,0xf0,0xf2,0xe5,0x4b,0xb8,0x3e,0x80,0x0,0xc2,0x6a,
+  0xd8,0xe1,0xc3,0x87,0x19,0x6c,0x6c,0x6c,0x18,0x6a,0x6b,0x6b,0x19,0x5c,0x5c,0x5c,
+  0x18,0x58,0x58,0x58,0x18,0x1e,0x3f,0x7e,0xc,0xf6,0xf2,0xcd,0x9b,0x37,0xc1,0x2e,
+  0x64,0x62,0x62,0x2,0x85,0x2b,0x3,0x23,0x23,0x23,0x5c,0x1f,0x40,0x0,0x61,0x35,
+  0xac,0xa1,0xa1,0x81,0xf1,0xc1,0x83,0x7,0xc,0xd2,0xd2,0xd2,0xc,0x92,0x92,0x92,
+  0xc,0xec,0xec,0xec,0xc,0xbb,0x76,0xed,0x62,0x78,0xf2,0xe4,0x9,0x83,0xa0,0xa0,
+  0x20,0xd8,0x0,0x90,0x57,0xdf,0xbc,0x79,0x3,0x76,0x1d,0xc,0x0,0x4,0x10,0xce,
+  0xd8,0x4,0x79,0x29,0x35,0x35,0x95,0x81,0x83,0x83,0x83,0x61,0xd3,0xa6,0x4d,0xc,
+  0x3b,0x76,0xec,0x60,0xb8,0x77,0xef,0x1e,0x43,0x68,0x68,0x28,0xc3,0xf3,0xe7,0xcf,
+  0x19,0xee,0xde,0xbd,0xcb,0xd0,0xdf,0xdf,0xcf,0xa0,0xa2,0xa2,0x2,0xd7,0x3,0x10,
+  0x40,0x2c,0xb8,0xc,0x53,0x56,0x56,0x86,0x7b,0x6f,0xfe,0xfc,0xf9,0xc,0xad,0xad,
+  0xad,0x60,0x17,0x81,0xc2,0xeb,0xd6,0xad,0x5b,0xc,0xd3,0xa6,0x4d,0x63,0x30,0x32,
+  0x32,0x62,0x58,0xbe,0x7c,0x39,0xdc,0x9f,0x0,0x1,0xc4,0x88,0x2d,0x6f,0xe6,0xe6,
+  0xe6,0xfe,0x6f,0x6c,0x6c,0x4,0xc7,0x58,0x7e,0x7e,0x3e,0x98,0x66,0x63,0x63,0x3,
+  0x7b,0x17,0x64,0x1,0x28,0x49,0x80,0x92,0x6,0xb2,0x41,0x20,0x0,0x10,0x40,0x18,
+  0x2e,0x3,0xba,0x0,0x94,0xe7,0xc0,0x2e,0xb8,0x7f,0xff,0x3e,0xd8,0x65,0x3a,0x3a,
+  0x3a,0xc,0xcb,0x96,0x2d,0x63,0x24,0x94,0x87,0x1,0x2,0x8,0x23,0xb,0xf5,0xf4,
+  0xf4,0xfc,0x7,0x6,0xec,0xff,0xed,0xdb,0xb7,0xff,0x7,0x7a,0xe3,0x7f,0x5c,0x5c,
+  0xdc,0x7f,0x7c,0x59,0xe,0x19,0x3,0x4,0x10,0xa,0x27,0x3d,0x3d,0xfd,0x3f,0x30,
+  0x60,0xff,0x9f,0x38,0x71,0xe2,0xbf,0x9d,0x9d,0xdd,0xff,0x84,0x84,0x4,0xa2,0xd,
+  0x2,0x61,0x80,0x0,0x42,0x9,0xb3,0xca,0xca,0xca,0xff,0xa0,0xf0,0x1,0x79,0xf,
+  0x94,0xba,0xe7,0xcc,0x99,0xc3,0x48,0x4a,0x79,0x6,0x10,0x40,0x8c,0xd4,0x2c,0x1c,
+  0x1,0x2,0xc,0x0,0x22,0x6,0xa9,0x7,0xeb,0xc8,0x20,0x9,0x0,0x0,0x0,0x0,
+  0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/layer-vector.png
+  0x0,0x0,0x3,0x57,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x13,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0xf4,0xc4,0x44,0x62,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x2,0xe9,0x49,0x44,0x41,0x54,0x78,0xda,0x6c,
+  0xca,0xa1,0xd,0x0,0x30,0x8,0x4,0xc0,0xaf,0x24,0x81,0x45,0xd9,0x8c,0xed,0x48,
+  0x40,0x20,0x48,0xbe,0xb6,0xa2,0xa7,0xef,0x44,0x4,0xbb,0x1b,0x33,0x3,0x92,0xf8,
+  0xd9,0x5d,0x64,0x26,0xaa,0xa,0xaa,0xa,0x11,0x81,0x99,0xc1,0xdd,0xcf,0xfb,0xae,
+  0x0,0x62,0x79,0xf9,0xf2,0x25,0x83,0xbb,0xbb,0x3b,0x3,0x13,0x13,0x13,0x3,0x2e,
+  0xf0,0xfb,0xf7,0x6f,0x86,0x6f,0xdf,0xbe,0x31,0x7c,0xfd,0xfa,0x95,0xe1,0xe9,0xd3,
+  0xa7,0xc,0x20,0x3d,0x5e,0x5e,0x5e,0xc,0xf5,0xf5,0xf5,0xff,0x1b,0x1b,0x1b,0xe1,
+  0x6,0x2,0x4,0x10,0x13,0x33,0x33,0x33,0xd8,0x20,0x10,0x66,0x64,0x64,0xc4,0x8a,
+  0xd9,0xd8,0xd8,0xc0,0x2e,0x2,0xb9,0x46,0x52,0x52,0x12,0x6c,0xa0,0x8c,0x8c,0xc,
+  0x43,0x62,0x62,0x22,0x43,0x75,0x75,0x35,0xdc,0x3b,0x0,0x1,0x4,0x76,0xe,0xb,
+  0xb,0xb,0x3,0xc8,0x50,0x7c,0x18,0x64,0x20,0x37,0x37,0x37,0xd8,0xc0,0xc7,0x8f,
+  0x1f,0x83,0x35,0x83,0xc,0x4c,0x4d,0x4d,0x65,0xa8,0xab,0xab,0x3,0x1b,0x8,0x10,
+  0x40,0x2c,0x20,0x2,0xa4,0x18,0xe4,0x2,0x18,0xa8,0x6f,0x6c,0x66,0xa8,0xab,0xa9,
+  0x2,0x8b,0x83,0xc0,0xaf,0x5f,0xbf,0x18,0x16,0xce,0x9b,0xc3,0x70,0x68,0xf7,0x16,
+  0x6,0xa0,0x57,0x18,0x78,0x44,0x65,0x19,0x62,0x62,0x62,0xc0,0xde,0x16,0x17,0x17,
+  0x67,0xe0,0xe3,0xe3,0x63,0x58,0xb1,0x62,0xc5,0x7f,0x80,0x0,0x2,0x1b,0xc6,0xca,
+  0xca,0xa,0x37,0xe8,0xe8,0xd1,0x63,0xc,0x17,0x9f,0xb,0x32,0x2c,0x5a,0xb2,0x82,
+  0x21,0x35,0x39,0x1e,0x1c,0x29,0x19,0x89,0x91,0xc,0xee,0xbc,0x97,0x18,0xd6,0x39,
+  0xfe,0x60,0xf8,0xf6,0x9b,0x81,0x21,0x6f,0xdf,0x7d,0x6,0x25,0xf7,0x34,0x6,0x73,
+  0x4b,0x6b,0xb0,0xfc,0xb3,0x67,0xcf,0xc0,0xe1,0x8,0x10,0x40,0x70,0x6f,0xc2,0xc,
+  0x9c,0x34,0x77,0x1d,0x83,0xb2,0x5b,0x1b,0xc3,0xee,0xe3,0xf7,0x18,0xfe,0xfe,0xfd,
+  0xcb,0x70,0xfc,0xf8,0x71,0x6,0xe5,0xbf,0x37,0x19,0x8a,0x4d,0x7f,0x30,0x8,0x72,
+  0x32,0x30,0x48,0xf3,0x31,0x30,0xac,0xf0,0xfd,0xc8,0xb0,0x63,0xed,0x62,0x6,0x45,
+  0x45,0x45,0xb0,0xcb,0xa4,0xa4,0xa4,0xc0,0xae,0x7,0x8,0x20,0x14,0x6f,0xf6,0x4d,
+  0x9c,0xc6,0xc0,0xa9,0x57,0x4,0x64,0x33,0x31,0xf0,0x19,0x15,0x31,0x4c,0x98,0x32,
+  0x93,0x81,0x8b,0xe5,0xf,0x83,0x87,0xec,0x47,0x94,0xd8,0x65,0x5,0xfa,0x5e,0x49,
+  0xf0,0x1f,0x38,0x86,0xf9,0xf9,0xf9,0xc1,0x62,0xd7,0xae,0x5d,0x63,0x0,0x8,0x20,
+  0xb0,0x61,0xa0,0x98,0x7c,0x1,0x74,0xe6,0xc1,0xb,0xef,0x19,0x64,0x5c,0x8d,0x18,
+  0xe,0xaf,0xf1,0x61,0xf8,0x2c,0x7a,0x9b,0x61,0xff,0x97,0x37,0xc,0xfc,0xdf,0xd9,
+  0x18,0xa2,0xfe,0x33,0x31,0xf8,0x6b,0xfc,0x83,0x1b,0x6,0x4a,0x8e,0x4f,0x3e,0xfe,
+  0x7,0xc7,0x2c,0xc8,0x11,0xff,0xfe,0xfd,0x3,0x27,0x1f,0x80,0x0,0x62,0x81,0x29,
+  0xa8,0xae,0x6d,0x4,0xaa,0x12,0x60,0x78,0xb1,0xaf,0x80,0xe1,0xfb,0xb7,0x2b,0xc,
+  0x9f,0xd7,0x3c,0x4,0x8b,0x7f,0xfb,0xc3,0xc0,0xb0,0xd8,0x9a,0x81,0xc1,0xf5,0x2e,
+  0x3,0x83,0x9b,0x12,0x3,0xc3,0x57,0x60,0x98,0xd5,0x1c,0xe6,0x66,0xb0,0x72,0xb,
+  0x1,0xc7,0x2c,0xc8,0x20,0x58,0xe4,0x1,0x4,0x10,0xd8,0x30,0x10,0x67,0xe1,0xbc,
+  0x59,0xf0,0x84,0xeb,0x93,0x74,0x99,0x61,0x1f,0xc3,0x43,0x6,0x98,0x8a,0x57,0x5b,
+  0x19,0x18,0x92,0x5d,0x38,0x19,0xa4,0xce,0x88,0x30,0x70,0x72,0xf3,0x30,0x4,0x47,
+  0xa7,0x30,0xc4,0x27,0x26,0x33,0xc0,0x7c,0x5,0xca,0x11,0x20,0x0,0x10,0x40,0x60,
+  0xc3,0x40,0x69,0x8,0x14,0x2b,0x8c,0xb0,0x5c,0xc0,0x88,0x96,0x5,0x44,0x80,0xd8,
+  0x56,0x88,0x61,0x5d,0xf9,0x31,0x6,0x21,0x21,0x21,0xb0,0x5a,0x64,0xc,0x8a,0x40,
+  0x10,0x0,0x8,0x20,0xb8,0xcb,0x60,0x69,0xa,0x62,0x16,0x23,0xd6,0x6c,0x5,0xcb,
+  0x29,0x90,0x70,0x43,0x18,0x6,0x3,0x0,0x1,0xc4,0x82,0xae,0x8,0x4,0xf8,0x98,
+  0xf8,0x18,0x8c,0xa3,0x8c,0x51,0xc,0xfa,0xf6,0xe4,0x1b,0x3,0x17,0x17,0x17,0xd8,
+  0x52,0x98,0x1,0x70,0xc3,0xa0,0x7c,0x80,0x0,0x62,0x1,0x5,0x20,0xc8,0x20,0x64,
+  0x1b,0x56,0x2d,0x58,0x85,0xd5,0x65,0xb8,0x4a,0x15,0x50,0xae,0x0,0x99,0x3,0x10,
+  0x40,0x60,0xc3,0x5c,0x5c,0x5c,0x18,0xee,0xdd,0xbb,0xc7,0xc0,0xce,0xce,0xce,0x40,
+  0x2a,0xf8,0xf9,0xf3,0x27,0x83,0x92,0x92,0x12,0x83,0xb7,0xb7,0x37,0x3,0x40,0x80,
+  0x1,0x0,0x51,0x26,0xb,0x0,0xd5,0xe8,0x78,0xaa,0x0,0x0,0x0,0x0,0x49,0x45,
+  0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/magnify.png
+  0x0,0x0,0x2,0xf8,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x1f,0xf3,0xff,0x61,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+  0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd8,
+  0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+  0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+  0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+  0xb,0x0,0x0,0x2,0x6e,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+  0x3,0x8,0x2c,0x5c,0xb8,0xf0,0xff,0xa3,0x47,0x8f,0x18,0x9e,0x3c,0x79,0xc2,0xf0,
+  0xfe,0xfd,0x7b,0x6,0x5e,0x5e,0x5e,0x6,0x23,0x23,0x23,0x86,0xec,0xec,0x6c,0x46,
+  0x6,0x3c,0x0,0x20,0x80,0x18,0x41,0x6,0xcc,0x9c,0x39,0xf3,0xbf,0xa8,0xa8,0x28,
+  0x83,0x82,0xbc,0x3c,0x83,0x98,0xb8,0x38,0xc3,0xb7,0x6f,0xdf,0x18,0xae,0x5f,0xbf,
+  0xce,0xb0,0x61,0xc3,0x6,0x6,0x6e,0x6e,0x6e,0x86,0x29,0x53,0xa6,0xe0,0x34,0x4,
+  0x20,0x80,0x98,0xd5,0xd4,0xd4,0xfe,0xf3,0xf3,0xf3,0x33,0x38,0x3b,0x3b,0x83,0x6d,
+  0xfd,0xf9,0xf3,0x27,0xc3,0xef,0xdf,0xbf,0x19,0xb8,0x38,0x39,0x19,0x74,0x75,0x75,
+  0x19,0x36,0x6f,0xde,0xcc,0xf0,0xee,0xdd,0xbb,0x6,0x73,0x73,0xf3,0x46,0x6c,0x6,
+  0x0,0x4,0x10,0xd3,0x83,0x7,0xf,0x18,0x94,0x95,0x95,0xc1,0x9a,0xbe,0x7c,0xf9,
+  0x2,0xb6,0xfd,0xfb,0xf7,0xef,0xc,0xdf,0x7f,0xfc,0x60,0xf8,0xfc,0xf9,0x33,0x83,
+  0x95,0x95,0x15,0xc3,0xca,0x95,0x2b,0x71,0x7a,0x1,0x20,0x80,0x98,0x5e,0xbc,0x78,
+  0xc1,0x20,0x22,0x22,0xc2,0xf0,0x1d,0xa8,0xf1,0x7,0x50,0xd3,0x4f,0x10,0x6,0xba,
+  0x2,0xc4,0x6,0x19,0x24,0x20,0x20,0xc0,0x70,0xef,0xde,0x3d,0x9c,0x6,0x0,0x4,
+  0x10,0xd3,0xdb,0xb7,0x6f,0x19,0xbe,0x1,0x6d,0x6,0x29,0x6,0x69,0xfc,0xf9,0xeb,
+  0x17,0xc3,0x2f,0x20,0x66,0x65,0x65,0x65,0x50,0x51,0x52,0x2,0xbb,0xe8,0xef,0xdf,
+  0xbf,0xc,0x77,0xee,0xdc,0xf9,0x8f,0xcd,0x0,0x80,0x0,0x62,0xe2,0xe2,0xe2,0x62,
+  0xb8,0xa,0xc,0xb0,0xaf,0x5f,0xbf,0x82,0x31,0x48,0x3,0x3b,0x3b,0x3b,0x83,0x96,
+  0x96,0x16,0x3,0x3,0x13,0x13,0x3,0x28,0x66,0xa4,0xa5,0xa5,0x19,0xfe,0xfd,0xfb,
+  0x87,0xd5,0x5,0x0,0x1,0xc4,0x64,0x66,0x66,0x6,0xe,0xa8,0xcf,0x40,0x57,0x80,
+  0xfc,0xfc,0xf1,0xe3,0x47,0x6,0x29,0x29,0x29,0x86,0xd3,0xa7,0x4f,0x33,0x6c,0xdf,
+  0xbe,0x9d,0x61,0xd5,0xaa,0x55,0xc,0x51,0x51,0x51,0x40,0xb3,0x98,0xb0,0x1a,0x0,
+  0x10,0x40,0x8c,0xcf,0x9e,0x3d,0xfb,0xdf,0xda,0xda,0xca,0xf0,0xf0,0xe1,0x43,0x6,
+  0x73,0xa0,0x61,0x42,0xc2,0xc2,0x60,0x57,0x80,0x2,0x77,0xf5,0xea,0xd5,0x60,0xaf,
+  0x81,0xbc,0xb4,0x72,0xc5,0xa,0x6,0xff,0x80,0x0,0x8c,0xe8,0x4,0x8,0x20,0x6,
+  0x50,0x3a,0x0,0xe1,0x89,0x13,0x27,0xfe,0xb7,0xb3,0xb5,0xfd,0xf,0xb4,0xfd,0xbf,
+  0x98,0x98,0xd8,0x7f,0x60,0x22,0xfa,0x5f,0x5b,0x5b,0xfb,0x1f,0x18,0x7d,0xff,0x81,
+  0x5e,0x2,0xe3,0x1d,0x3b,0x76,0xfc,0x87,0xa9,0x87,0x61,0x80,0x0,0x62,0x84,0xa5,
+  0x44,0x64,0x70,0xeb,0xd6,0x2d,0xb0,0xc2,0x3f,0x7f,0xfe,0x30,0xac,0x5b,0xbb,0x96,
+  0x61,0xd7,0xee,0xdd,0x60,0x2f,0x81,0xc0,0xd6,0xad,0x5b,0x41,0x69,0x6,0xee,0x12,
+  0x80,0x0,0x62,0xc1,0xe6,0x2f,0x60,0xe2,0x42,0x28,0x60,0x61,0x81,0xdb,0x70,0xe6,
+  0xcc,0x19,0x6,0x6f,0x6f,0x6f,0x86,0x6d,0xdb,0xb6,0xfd,0x77,0x72,0x72,0x2,0xab,
+  0x1,0x8,0x20,0x6,0x74,0x27,0xa1,0xe3,0xe7,0xcf,0x9f,0xff,0x7,0x45,0x61,0x73,
+  0x73,0xf3,0x7f,0x1b,0x1b,0x1b,0xb8,0x77,0xe,0x1c,0x38,0x0,0x76,0x25,0x40,0x0,
+  0x11,0x34,0x0,0x84,0x5f,0xbe,0x7c,0xf9,0x1f,0x98,0x98,0xfe,0x37,0x37,0x35,0x81,
+  0xd,0xe1,0xe0,0xe0,0x0,0x87,0xd5,0xe3,0xc7,0x8f,0xff,0x3,0x4,0x10,0xb,0x3,
+  0x11,0x0,0x18,0xa8,0x8c,0xc0,0x1c,0xfa,0x3f,0x3e,0x3e,0x9e,0x81,0x91,0x91,0x11,
+  0x9c,0x26,0x40,0x49,0x1c,0x94,0x5e,0x0,0x2,0x8,0x6b,0x20,0xe2,0x2,0xc0,0x34,
+  0xf2,0x1f,0x94,0x56,0x80,0x81,0xcc,0xa0,0xa2,0xa2,0xc2,0x0,0x74,0x9,0x3,0x40,
+  0x80,0x1,0x0,0x84,0xd,0x67,0x87,0x48,0xae,0x8b,0x35,0x0,0x0,0x0,0x0,0x49,
+  0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/pencil2.png
+  0x0,0x0,0x2,0xb7,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x11,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0x3b,0x6d,0x47,0xfa,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+  0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x2,0x69,0x49,0x44,0x41,0x54,0x38,0x8d,0xad,
+  0xd0,0x4f,0x48,0x93,0x61,0x1c,0x7,0xf0,0xef,0xf3,0xbe,0xef,0xf6,0xce,0x25,0xd3,
+  0x66,0xa1,0x23,0x45,0xc2,0x18,0x89,0x18,0xb,0x16,0x93,0x5,0x1e,0x92,0xba,0x78,
+  0x48,0xc2,0x45,0xd,0xf4,0x20,0x76,0x91,0x6e,0x11,0xe4,0xc5,0x77,0xbb,0xf5,0x47,
+  0xf2,0x10,0x48,0xb2,0x8,0xca,0xb4,0x7a,0x27,0x78,0xe8,0x10,0x1d,0xd5,0x83,0x7,
+  0xc5,0xb2,0x43,0x3a,0x22,0xa7,0xaf,0x30,0x4d,0xa7,0xd9,0x74,0xbe,0x6f,0x7b,0xf7,
+  0x3c,0x4f,0x87,0x98,0xe4,0x4c,0x51,0xe8,0x77,0x7d,0xbe,0xbf,0xf,0xbf,0xe7,0xb,
+  0xfc,0x87,0x21,0x47,0x9,0x2f,0xd4,0xd7,0x73,0x0,0xe0,0xd5,0xd5,0x1b,0x5,0xa2,
+  0x58,0x51,0xda,0xdb,0xbb,0x5,0x0,0xc2,0x51,0x80,0xd2,0xee,0x6e,0x14,0x5,0x83,
+  0xb0,0xd9,0x6c,0xc5,0xa6,0xc5,0xf2,0x3c,0xf7,0x76,0x28,0x24,0x12,0x89,0xf0,0xbb,
+  0x65,0x65,0x30,0xa6,0xa6,0x76,0xce,0x7f,0xb4,0xb0,0x10,0x98,0x9c,0x9c,0xb4,0x1f,
+  0xa,0x19,0x7b,0x73,0x9d,0x6b,0x9a,0x86,0xc6,0xc6,0x46,0x3c,0x4e,0x24,0xf0,0x6b,
+  0x66,0x6,0x0,0x30,0x35,0x3d,0xd,0x87,0xc3,0xe1,0x4,0x0,0xe9,0x20,0x60,0x7c,
+  0xa8,0x95,0xd7,0x9d,0x71,0xe3,0x9b,0x51,0x8e,0x4c,0x26,0x3,0x0,0xa8,0xec,0xeb,
+  0xc3,0x5,0x97,0xb,0x4f,0x86,0x87,0xb,0xdd,0x6e,0x77,0xfa,0xc0,0x4b,0xc6,0x87,
+  0x5a,0x79,0xdd,0xd9,0x73,0x80,0xb9,0x89,0x2b,0x45,0xef,0xc1,0x18,0xc3,0xec,0xec,
+  0x2c,0x0,0xa0,0x27,0x1a,0xb5,0x7a,0x3c,0x9e,0x74,0x2e,0xfb,0x4f,0x64,0x7,0xd0,
+  0x57,0x91,0xd5,0x93,0x38,0x59,0x52,0x88,0xa6,0xa2,0x67,0x58,0x9a,0x98,0xd8,0x1e,
+  0x19,0x19,0x71,0x79,0xbd,0x5e,0xf3,0xef,0xfc,0x1e,0x24,0x1f,0x0,0x80,0xf5,0xc4,
+  0x67,0x34,0x77,0x26,0xf1,0x70,0x70,0xd0,0xe3,0xf3,0xf9,0x96,0xf3,0x77,0x76,0x75,
+  0xa2,0xbd,0xa8,0xe5,0x15,0xfb,0x0,0x3d,0xd1,0xa8,0x35,0xff,0x82,0x5d,0x8,0x7,
+  0xc8,0xe8,0xeb,0x1b,0xac,0xa2,0xd6,0xb,0xe8,0xc9,0x3d,0xc0,0x83,0x81,0x1,0xfb,
+  0x7e,0xc0,0xce,0x77,0xee,0x37,0xe0,0xf4,0xe2,0xda,0x22,0x66,0xd6,0x4d,0x6c,0xaf,
+  0x7f,0x45,0x46,0xdf,0xf8,0x3,0xdc,0x5b,0x5d,0x19,0x8b,0xc7,0x89,0xdf,0xef,0xd7,
+  0xf7,0x3,0x0,0x40,0x8,0x4,0x20,0x66,0x8b,0x5,0x5f,0x53,0xf0,0x25,0xe6,0x3e,
+  0xbe,0xc5,0x9c,0x54,0x83,0xad,0x1f,0x1a,0x9a,0x3b,0x93,0x18,0x8d,0xc7,0x5d,0x9c,
+  0x73,0xa2,0x28,0x8a,0xa0,0x28,0x8a,0xa0,0xaa,0xaa,0xc8,0x39,0x17,0x54,0x55,0x15,
+  0x15,0x45,0x91,0x38,0xe7,0x4,0x0,0x48,0xf7,0x4d,0xd7,0x89,0xfa,0xab,0x1,0xad,
+  0xe6,0xf2,0xed,0x82,0xb9,0x4f,0xaf,0xd0,0xd1,0xde,0xf,0x0,0xbc,0xad,0xab,0xeb,
+  0x56,0x2c,0x16,0xfb,0x22,0xcb,0xb2,0x2e,0x8a,0x22,0xa1,0x94,0x9a,0x92,0x24,0xa5,
+  0x75,0x5d,0xcf,0xd8,0xed,0x76,0x58,0xad,0x56,0x9a,0x4e,0xa7,0x53,0xa1,0x50,0x48,
+  0x97,0x2a,0xfd,0xde,0x3b,0x97,0xda,0x9e,0x16,0x8c,0xbf,0x2b,0x46,0x47,0x7b,0x3f,
+  0x1a,0x5a,0x5a,0x54,0x6,0x18,0x9a,0xa6,0x9d,0xb7,0xd9,0x6c,0xe5,0x94,0xd2,0x35,
+  0x0,0x59,0x51,0x14,0x53,0x86,0x61,0x2c,0x73,0xce,0x57,0x4,0x41,0x30,0x18,0x63,
+  0x46,0xae,0xe,0x52,0x55,0x5,0x7e,0xed,0x62,0x25,0x8e,0x9d,0xa,0x7e,0x80,0x2c,
+  0xc7,0x8,0x21,0xab,0x84,0x90,0x4,0xa5,0x34,0x5,0x20,0x5,0x60,0x8b,0x31,0x46,
+  0x5,0x41,0xd8,0xb4,0x58,0x2c,0x3f,0x4d,0xd3,0xdc,0x74,0x38,0x1c,0xe6,0xfc,0xfc,
+  0x3c,0x73,0x3a,0x9d,0x66,0x38,0x1c,0x66,0x84,0x73,0x2e,0x86,0x42,0xa1,0xe3,0x94,
+  0xd2,0x12,0x59,0x96,0x8d,0x6c,0x36,0xfb,0x3d,0x1c,0xe,0x1b,0x7,0x15,0x99,0x3f,
+  0xbf,0x1,0x62,0x93,0x23,0x58,0x29,0xc1,0x80,0xb5,0x0,0x0,0x0,0x0,0x49,0x45,
+  0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/thinlines5.png
+  0x0,0x0,0x1,0x55,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x2,0x0,0x0,0x0,0x90,0x91,0x68,0x36,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x0,0xe7,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0x3c,0xfa,0xe0,0x1d,0x3,0x71,0xe0,0xd5,0xa7,0xaf,0x77,0x9f,0xbf,0x5,0x8,0x20,
+  0x26,0xe2,0x55,0xdf,0x7b,0xfe,0x16,0xc8,0x0,0x8,0x20,0x26,0xe2,0x55,0xff,0x7,
+  0xb3,0x1,0x2,0x88,0x89,0x24,0xd5,0x40,0x0,0x10,0x40,0x4c,0x24,0xa9,0x6,0x2,
+  0x80,0x0,0x62,0x22,0x49,0x35,0x10,0x0,0x4,0x10,0x13,0x49,0xaa,0x81,0x0,0x20,
+  0x80,0xb0,0x6b,0xd8,0xb4,0x7e,0xed,0x9c,0x9,0xdd,0xff,0xb1,0x49,0x1,0x4,0x10,
+  0x16,0xd,0x4f,0x5e,0xbd,0xf9,0xcf,0x23,0xac,0x65,0xe9,0x80,0xd5,0x2c,0x80,0x0,
+  0x42,0xd7,0x70,0xee,0xfc,0xf9,0x4c,0x3f,0x47,0x41,0x9,0x69,0x71,0x39,0x25,0xac,
+  0x1a,0x0,0x2,0x8,0x45,0xc3,0xd1,0xa3,0x47,0x3e,0x33,0x71,0x25,0x35,0x4e,0x64,
+  0x65,0x63,0xc7,0xe5,0x37,0x80,0x0,0x42,0x68,0xb8,0xf7,0xf8,0x69,0x47,0x71,0xe6,
+  0xfb,0x57,0xcf,0x25,0x14,0x54,0xf0,0x4,0x1d,0x40,0x0,0x31,0x42,0xd2,0xd2,0xee,
+  0x9d,0xdb,0xff,0xf0,0x88,0x70,0xf3,0x9,0xe0,0x31,0x1b,0x2,0x0,0x2,0x88,0x9,
+  0xe2,0xcb,0x99,0xed,0xf5,0x5f,0xde,0xbf,0x25,0xa8,0x1a,0x8,0x0,0x2,0x88,0x5,
+  0x68,0xf6,0xe7,0xff,0xac,0x85,0xd3,0x56,0x32,0x31,0x33,0x13,0x93,0xae,0x0,0x2,
+  0x88,0x69,0xc1,0xc4,0xae,0xbf,0x7f,0xfe,0x10,0xa9,0x1a,0x8,0x0,0x2,0xc,0x0,
+  0xab,0xfd,0x5f,0x5c,0x31,0x31,0xef,0xaa,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+  0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/layer-bitmap.png
+  0x0,0x0,0x3,0x88,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x13,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0xf4,0xc4,0x44,0x62,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x3,0x1a,0x49,0x44,0x41,0x54,0x78,0xda,0x6c,
+  0xca,0xa1,0xd,0x0,0x30,0x8,0x4,0xc0,0xaf,0x24,0x81,0x45,0xd9,0x8c,0xed,0x48,
+  0x40,0x20,0x48,0xbe,0xb6,0xa2,0xa7,0xef,0x44,0x4,0xbb,0x1b,0x33,0x3,0x92,0xf8,
+  0xd9,0x5d,0x64,0x26,0xaa,0xa,0xaa,0xa,0x11,0x81,0x99,0xc1,0xdd,0xcf,0xfb,0xae,
+  0x0,0x62,0x79,0xf9,0xf2,0x25,0x83,0xbb,0xbb,0x3b,0x3,0x13,0x13,0x13,0x3,0x2e,
+  0xf0,0xfb,0xf7,0x6f,0x86,0x6f,0xdf,0xbe,0x31,0x7c,0xfd,0xfa,0x95,0xe1,0xe9,0xd3,
+  0xa7,0xc,0x20,0x3d,0x5e,0x5e,0x5e,0xc,0xf5,0xf5,0xf5,0xff,0x1b,0x1b,0x1b,0xe1,
+  0x6,0x2,0x4,0x10,0x13,0x33,0x33,0x33,0xd8,0x20,0x10,0x66,0x64,0x64,0x4,0xe3,
+  0xd7,0xaf,0x5f,0x83,0x5d,0x2,0xe3,0xb3,0xb1,0xb1,0x81,0x5d,0x4,0x72,0x8d,0xa4,
+  0xa4,0x24,0xd8,0x40,0x19,0x19,0x19,0x86,0xc4,0xc4,0x44,0x86,0xea,0xea,0x6a,0xb8,
+  0x77,0x0,0x2,0x8,0xec,0x1c,0x16,0x16,0x16,0x6,0x90,0xa1,0x30,0x7c,0xf0,0xe0,
+  0x41,0x86,0x85,0xb,0x17,0xa2,0x88,0x81,0xc,0xe4,0xe6,0xe6,0x6,0x1b,0xf8,0xf8,
+  0xf1,0x63,0xb0,0x66,0x90,0x81,0xa9,0xa9,0xa9,0xc,0x75,0x75,0x75,0x60,0x3,0x1,
+  0x2,0x88,0x5,0x44,0x80,0x14,0x83,0x5c,0x0,0x2,0x30,0x17,0x7d,0xfa,0xf4,0x89,
+  0xe1,0xf8,0xf1,0xe3,0xc,0xb6,0xb6,0xb6,0xe0,0xb0,0x4,0x61,0x50,0xd8,0x3e,0x7b,
+  0xf6,0x8c,0x81,0x9d,0x9d,0x9d,0x21,0x2c,0x2c,0xc,0xec,0x7d,0x71,0x71,0x71,0x6,
+  0x3e,0x3e,0x3e,0x86,0x15,0x2b,0x56,0xfc,0x7,0x8,0x20,0xb0,0x61,0xac,0xac,0xac,
+  0xf0,0xf0,0xb9,0x7c,0xf9,0x32,0x83,0x8e,0x8e,0xe,0x83,0xae,0xae,0x2e,0xc3,0xfc,
+  0xf9,0xf3,0x19,0x1c,0x1d,0x1d,0xc1,0x6,0xdd,0xbf,0x7f,0x9f,0x61,0xca,0x94,0x29,
+  0x60,0x17,0x82,0x34,0x4b,0x48,0x48,0x30,0x48,0x49,0x49,0x31,0xc8,0xcb,0xcb,0x83,
+  0x2d,0x0,0x85,0x23,0x40,0x0,0xc1,0xbd,0x9,0x32,0x10,0x16,0xb8,0xfa,0xfa,0xfa,
+  0xc,0x46,0x46,0x46,0xc,0x42,0x42,0x42,0xc,0xeb,0xd7,0xaf,0x7,0x1b,0x76,0xe6,
+  0xcc,0x19,0x86,0xb2,0xb2,0x32,0x86,0xa6,0xa6,0x26,0x6,0x4f,0x4f,0x4f,0x86,0x9f,
+  0x3f,0x7f,0x32,0x3c,0x7c,0xf8,0x90,0x41,0x58,0x58,0x18,0x6c,0xe8,0xaf,0x5f,0xbf,
+  0x18,0x0,0x2,0x8,0xee,0xcd,0x77,0xef,0xde,0x31,0xec,0xdd,0xb7,0x97,0xc1,0xd7,
+  0xd7,0x97,0x81,0x9b,0x87,0x9b,0xe1,0xe3,0xc7,0x8f,0x60,0x45,0xbd,0xbd,0xbd,0xc,
+  0x57,0xaf,0x5e,0x5,0xab,0x51,0x56,0x56,0x6,0xc7,0xaa,0xaa,0xaa,0x2a,0x38,0xec,
+  0x56,0xad,0x5a,0xc5,0xf0,0xfd,0xfb,0x77,0xb0,0x57,0xaf,0x5d,0xbb,0xc6,0x0,0x10,
+  0x40,0x60,0xc3,0x40,0x69,0x6c,0xef,0xde,0xbd,0xc,0x46,0x86,0x46,0xc,0x5c,0x9c,
+  0x5c,0xc,0xbf,0x7e,0xfe,0x62,0x58,0xb5,0x72,0x15,0xd8,0x65,0x6e,0x6e,0x6e,0xe0,
+  0x70,0x54,0x50,0x50,0x60,0xd8,0xbe,0x7d,0x3b,0xd8,0x30,0x90,0x37,0x43,0x42,0x42,
+  0xc0,0x86,0xa,0xa,0xa,0x82,0xd3,0x1d,0x28,0xfc,0x0,0x2,0x70,0x48,0x6,0x35,
+  0x0,0x0,0x20,0x8,0x24,0x85,0x9,0x7c,0xd8,0xcc,0x44,0x46,0x31,0x84,0x4f,0x3,
+  0xe9,0x1c,0xf2,0x87,0xc1,0x8d,0xf,0xe3,0x2d,0xcc,0xc,0x55,0x85,0x88,0xc0,0xcc,
+  0xa0,0xbb,0xa1,0xaa,0x10,0x91,0xe7,0xe7,0xee,0xd8,0x5d,0x64,0xe6,0x1b,0x79,0x1f,
+  0xb6,0x22,0x33,0x4e,0xa6,0x4e,0x0,0x1,0x4,0x36,0xc,0x64,0xb2,0xb1,0xb1,0x31,
+  0x83,0xa9,0xa9,0x29,0x43,0x4e,0x4e,0xe,0xc3,0xb1,0x63,0xc7,0x18,0x96,0x2f,0x5f,
+  0xce,0x50,0x5b,0x5b,0xb,0xe,0xcf,0x3f,0x7f,0x7e,0x83,0xd5,0x80,0xc2,0xee,0xec,
+  0xd9,0xb3,0x60,0xef,0x82,0x2c,0xce,0xcf,0xcf,0x7,0x47,0x8,0x2c,0xc1,0x3,0x4,
+  0x10,0xd8,0x30,0x90,0x0,0x48,0x21,0x23,0x54,0x10,0x14,0xd8,0x7a,0xc0,0x48,0x10,
+  0x7,0xc6,0x18,0x18,0x20,0x25,0xd,0x51,0x51,0x51,0x70,0x58,0x2a,0x29,0x29,0x31,
+  0xc8,0xca,0xca,0x82,0xd,0x2,0x59,0x8,0x2,0x0,0x1,0x4,0x26,0x41,0xe9,0xa,
+  0x14,0xc0,0x30,0x0,0xf2,0x22,0xc8,0xe9,0x8f,0x1f,0x3d,0x2,0x87,0xf,0x28,0x5c,
+  0xf8,0xf9,0xf9,0xc1,0x69,0xf,0xe4,0x2a,0x50,0x6c,0x82,0xc,0x80,0xa5,0x3f,0x18,
+  0x0,0x8,0x20,0x78,0x98,0x21,0xe7,0xcd,0x19,0x33,0x66,0x30,0x3c,0x79,0xf2,0x4,
+  0x9c,0x4c,0xde,0xbc,0x79,0x3,0x8e,0xe9,0x17,0x2f,0x5e,0x80,0x2d,0x5,0x25,0x21,
+  0x10,0x1b,0x14,0x56,0x70,0xc3,0xa0,0x6,0x2,0x4,0x10,0xb,0x28,0x50,0x41,0x6,
+  0x21,0xdb,0xc0,0xc5,0xc5,0xc5,0xa0,0xa6,0xa6,0x6,0xc6,0xc8,0x0,0xa6,0x6,0xbd,
+  0x74,0x1,0x66,0x70,0x70,0xe4,0x0,0x4,0x10,0xd8,0x30,0x17,0x17,0x17,0x86,0x7b,
+  0xf7,0xee,0x81,0xb3,0x9,0xa9,0x0,0x14,0x1c,0xa0,0xf0,0xf3,0xf6,0xf6,0x66,0x0,
+  0x8,0x30,0x0,0xe7,0x1c,0x4b,0xb1,0xf9,0xa8,0x4c,0x2c,0x0,0x0,0x0,0x0,0x49,
+  0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/onionInbetween.png
+  0x0,0x0,0x4,0xe1,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x18,0x0,0x0,0x0,0x15,0x8,0x6,0x0,0x0,0x0,0x5c,0xe9,0x2e,0x26,
+  0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+  0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+  0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+  0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x9,0x19,
+  0x1,0xc,0x1,0x3,0x94,0x88,0x8e,0x0,0x0,0x4,0x61,0x49,0x44,0x41,0x54,0x38,
+  0xcb,0x9d,0x55,0x6d,0x4c,0x5b,0x55,0x18,0x7e,0xef,0xb9,0x97,0x7e,0x42,0x4b,0xb9,
+  0x77,0xed,0x44,0xbe,0x9,0x84,0xaf,0x4e,0x67,0xc8,0x4,0x29,0x3,0xf7,0xc3,0xe1,
+  0x20,0x93,0xa0,0x21,0x31,0xe2,0x28,0xc1,0x55,0x9c,0x86,0x8c,0x18,0x13,0xd0,0x40,
+  0x32,0x7f,0xf8,0x43,0x8d,0xcb,0x6c,0x50,0x54,0x74,0x45,0x92,0x89,0xa9,0x21,0xa4,
+  0xf2,0x47,0x32,0xc,0x2b,0xd9,0xe6,0xf8,0x30,0xc6,0x40,0x50,0x2c,0x30,0xb,0x3,
+  0x4a,0xf9,0x68,0x29,0xed,0xe5,0x72,0xef,0x3d,0xf5,0xc7,0x18,0x94,0x8f,0xcd,0xea,
+  0xfb,0xeb,0x3d,0x1f,0xef,0xf3,0xbc,0xe7,0x7d,0xde,0x73,0xe,0x9,0xf,0xb1,0xc6,
+  0xc6,0xc6,0x4,0xa7,0xd3,0x99,0x67,0x30,0x18,0xa4,0x3e,0x9f,0xaf,0x30,0x2e,0x2e,
+  0xee,0x75,0xa3,0xb1,0xf6,0xfc,0xc2,0xc2,0x7c,0x16,0xcb,0xb2,0x4e,0x5d,0x7c,0xda,
+  0x57,0xb2,0xc8,0xa8,0x37,0xea,0x2f,0xd4,0x8d,0x39,0x9d,0xce,0x1a,0x83,0xc1,0xa0,
+  0xd4,0x68,0x34,0x17,0x48,0x92,0xd4,0x1a,0xc,0x6,0x39,0xc7,0x71,0xa7,0xbc,0x5e,
+  0xef,0xef,0x68,0x3f,0xf0,0xc8,0xc8,0x8,0xdd,0xde,0xde,0x7e,0xd4,0x62,0xb1,0x1c,
+  0xcf,0xce,0xce,0x9e,0x73,0x38,0x66,0xce,0x66,0x64,0x64,0xbf,0xd7,0xd1,0xf1,0x7d,
+  0x54,0x75,0xf5,0xf9,0x15,0x96,0xf,0x9e,0x7a,0xf2,0x64,0xd9,0x37,0x4d,0x9f,0x74,
+  0x46,0x67,0x66,0xe6,0x88,0x16,0x8b,0xe5,0xa5,0xf2,0xf2,0xf2,0xbb,0xe9,0xe9,0xe9,
+  0x2a,0x87,0xc3,0x51,0xa8,0xd7,0xeb,0x27,0xd5,0x6a,0x35,0xb7,0xba,0xba,0x9a,0xa,
+  0x0,0x40,0x85,0x82,0xd7,0xd5,0xd5,0x25,0x57,0x54,0x54,0xa4,0xeb,0xf5,0xfa,0x59,
+  0x9a,0xa6,0xb1,0x54,0xaa,0xf8,0xbc,0xa1,0xe1,0xed,0x75,0x9d,0x2e,0xd6,0x77,0xc3,
+  0x7e,0xe3,0xe8,0x4f,0x3f,0xf,0x3c,0x71,0xb6,0xe6,0x9d,0xcd,0xb8,0xf8,0x84,0x7b,
+  0x7d,0xdd,0x96,0xd8,0xd,0x9f,0xd7,0x53,0x54,0x54,0x74,0x37,0x31,0x31,0xf1,0x9c,
+  0xdd,0x6e,0xff,0x31,0x32,0x32,0xd2,0xd3,0xdb,0xdb,0x7b,0xa2,0xb2,0xb2,0xf2,0xd6,
+  0x3,0x4c,0x12,0x0,0xa0,0xbb,0xbb,0x5b,0x3b,0x3c,0x3c,0x9c,0xb7,0xb8,0xb8,0x28,
+  0x6d,0x6d,0x6d,0xbd,0x37,0x31,0xf1,0xc7,0x7,0x6,0x43,0x71,0x59,0x53,0x53,0xb3,
+  0x9f,0x65,0xb9,0x4d,0x73,0xdb,0x67,0x4f,0x11,0xaa,0x58,0xed,0x99,0x4a,0x23,0x8c,
+  0xc,0xf6,0xc9,0xd9,0x80,0x9f,0x7b,0xf1,0xe5,0xea,0xd,0x15,0xf2,0xa7,0x18,0xa,
+  0x9e,0x91,0x9b,0x4c,0x26,0x77,0x4e,0x4e,0x8e,0x4a,0xa3,0xd1,0x64,0x15,0x14,0x14,
+  0xfc,0x6a,0xb5,0x5a,0x67,0x27,0x27,0x27,0xf5,0x3c,0xcf,0xf7,0x53,0x9d,0x9d,0x9d,
+  0x3a,0xa3,0xd1,0x58,0x32,0x35,0x35,0x25,0x65,0x59,0xd6,0x5f,0x55,0xf5,0xea,0x97,
+  0x97,0x2f,0x9b,0x97,0x19,0x46,0xeb,0x6d,0xb9,0xd4,0x92,0xb6,0xba,0x21,0x2a,0x9e,
+  0xaf,0x6a,0xa0,0x34,0xd1,0x51,0xfc,0xd5,0x2b,0xef,0xab,0x3f,0xfe,0xe8,0x43,0x90,
+  0xc8,0x14,0x31,0x5f,0x7f,0xd1,0x1a,0xf5,0x9a,0xf1,0x15,0xe2,0x58,0x4e,0xb6,0x1a,
+  0x0,0xd4,0x0,0x30,0x86,0x31,0x26,0x43,0xa,0x42,0x1,0x0,0xa0,0xf1,0xf1,0x71,
+  0x69,0x72,0x72,0xf2,0x18,0xc3,0x30,0xab,0x6e,0xb7,0x5b,0x52,0x5c,0xfc,0x6c,0x80,
+  0x61,0xb4,0x3c,0x0,0x80,0x9f,0xc3,0xca,0x17,0x8c,0x17,0x79,0x99,0x42,0x11,0x64,
+  0xfd,0x1b,0xc4,0x89,0x93,0xa7,0xd9,0x20,0x92,0xf0,0x81,0x40,0x80,0xc8,0x2b,0x28,
+  0xdc,0xa4,0xa8,0x8,0x11,0xfe,0xc5,0x10,0x0,0xc0,0x5e,0xe6,0x5d,0xdd,0x29,0xb4,
+  0x47,0x22,0x10,0x45,0x81,0xd8,0xf1,0x5,0x91,0x80,0x30,0xc,0x1d,0x9c,0xa,0xee,
+  0x4,0xe2,0x7d,0x2b,0x4,0x10,0xc1,0x1d,0x3f,0x2c,0xf8,0x6d,0x2,0x51,0xc,0x2f,
+  0x9b,0xd0,0x7d,0x22,0xc6,0xe1,0x13,0x50,0x14,0x85,0xb7,0x1,0x1e,0xb9,0x99,0xa4,
+  0xa8,0x9d,0x13,0x50,0x24,0x19,0xc,0x9b,0x0,0x63,0x8c,0x0,0x0,0x4,0x41,0x40,
+  0x8,0xa1,0x87,0x6,0x62,0xbc,0x7b,0x2,0x8c,0xf1,0xff,0xd3,0x0,0x21,0x14,0xe2,
+  0x1f,0x16,0x12,0x84,0xff,0x62,0xe8,0xbe,0x60,0x44,0xf0,0xf0,0x8c,0xf7,0x89,0xbc,
+  0x47,0x59,0x22,0x7c,0x2,0x84,0x90,0x18,0x96,0x6,0xe4,0xae,0x6,0x24,0x75,0x50,
+  0x3,0x8a,0xa2,0xf8,0x90,0x4a,0x6c,0x1d,0x28,0x91,0x20,0x8,0x88,0x20,0x76,0xa7,
+  0xb8,0xad,0x2d,0xf6,0x40,0x81,0x82,0x87,0xa6,0xde,0x1f,0xe2,0x7f,0xf7,0x48,0xd,
+  0x8,0xe2,0x7e,0xfb,0xf3,0xbc,0x38,0x87,0x83,0x62,0x4,0xb7,0x19,0x90,0x93,0x88,
+  0x14,0x79,0x7e,0x8b,0x5c,0x72,0xb9,0x28,0x89,0x44,0xc2,0x2,0x0,0xac,0x7b,0xd6,
+  0x90,0x28,0xf0,0x0,0x0,0xfd,0x3,0x3,0x3,0xb1,0x3d,0x3d,0x3d,0xcf,0x75,0x75,
+  0x75,0xfd,0x52,0x58,0x58,0x98,0x65,0xb3,0xd9,0xce,0xc9,0xe5,0x72,0xd7,0x1,0x2,
+  0x8c,0x31,0x10,0x4,0x81,0x78,0x5e,0x9c,0x5b,0x5e,0x76,0xab,0x82,0x38,0x88,0xa4,
+  0x32,0x65,0x60,0x6d,0x6d,0x4d,0x74,0xb9,0x5c,0x9c,0x44,0xa6,0x9c,0x91,0x4a,0xa5,
+  0xec,0xec,0xd4,0x84,0x64,0x6b,0x63,0x65,0x25,0x2b,0x33,0xc3,0x6c,0xb7,0xdb,0x53,
+  0x3c,0x1e,0x8f,0x96,0x61,0x98,0xb7,0x24,0x12,0x89,0x75,0x69,0x69,0x49,0x6b,0x32,
+  0x99,0xda,0xdc,0x6e,0xb7,0xf9,0xc0,0x73,0x2d,0x8,0x2,0x62,0x59,0x6e,0x75,0x69,
+  0xc9,0xa5,0x96,0xc9,0x64,0x3c,0x16,0x4,0x71,0xca,0xf1,0x17,0x52,0x44,0x33,0x93,
+  0xaa,0x18,0x2d,0x8c,0x8d,0xde,0xa2,0xff,0xfc,0xed,0x36,0xa4,0x25,0xc7,0xdf,0x1c,
+  0xbd,0x73,0xb3,0x6f,0x70,0x70,0x30,0x9f,0x61,0x98,0x8d,0x8c,0x8c,0x8c,0x8e,0xb2,
+  0xb2,0x32,0x2a,0x29,0x29,0xc9,0x6b,0x36,0x9b,0x27,0x72,0x73,0x73,0x17,0xe,0xeb,
+  0xa2,0x3b,0x26,0x93,0x69,0xde,0xe3,0xf1,0x44,0x29,0x95,0x8a,0xcd,0xf6,0xf6,0xb6,
+  0x88,0x99,0xbf,0x67,0x7c,0xf4,0xe3,0x29,0xa3,0x14,0x15,0xe1,0xbb,0xfe,0x43,0x7b,
+  0xd4,0xf8,0xd0,0xf5,0xd1,0xb2,0x33,0xa7,0x2b,0x9b,0x9b,0x9b,0x6f,0xdb,0x6c,0xb6,
+  0xe3,0x1e,0x8f,0xa7,0xb7,0xa6,0xa6,0xc6,0x96,0x9f,0x9f,0xff,0x58,0x5e,0x5e,0xde,
+  0xbc,0xd5,0x6a,0x1d,0xd,0x5,0xdf,0x21,0xf0,0xf9,0x7c,0x91,0x9,0x9,0x9,0xd9,
+  0x32,0x99,0x8c,0xe3,0xb8,0x4d,0x5f,0x6d,0x6d,0x75,0xc4,0xb5,0x6b,0xdf,0x5e,0x22,
+  0x48,0x89,0x63,0x6c,0x68,0x40,0x61,0x7e,0xb7,0x5a,0x50,0x45,0xe0,0x16,0x2,0x8b,
+  0x43,0xa9,0xa9,0xa9,0x25,0x1a,0x8d,0xc6,0xcb,0xf3,0x7c,0x5f,0x7d,0x7d,0xbd,0x52,
+  0xa7,0xd3,0xad,0x4f,0x4f,0x4f,0x77,0x99,0xcd,0xe6,0x89,0x43,0x5b,0xaf,0xb4,0xb4,
+  0x34,0x8b,0xa6,0xe9,0xca,0xed,0xe1,0xb1,0x23,0x47,0xb4,0x57,0x1e,0x7c,0x44,0x91,
+  0xd1,0x31,0x23,0xb4,0x2e,0xf6,0x4d,0x0,0x20,0x4a,0x4b,0x4b,0x4b,0x68,0x9a,0xfe,
+  0x74,0x3b,0xe6,0x69,0x9a,0xa6,0x2f,0x86,0x73,0xf,0xfe,0x1,0xbd,0xce,0xdd,0xde,
+  0x81,0x4d,0xf3,0x69,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,

+    // /home/matthew/pencil_dev/icons/house.png
+  0x0,0x0,0x0,0xb9,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x14,0x0,0x0,0x0,0x14,0x8,0x3,0x0,0x0,0x0,0xba,0x57,0xed,0x3f,
+  0x0,0x0,0x0,0x18,0x50,0x4c,0x54,0x45,0xff,0xff,0xff,0x0,0x33,0x66,0xcc,0xcc,
+  0xff,0x66,0x66,0x99,0x99,0x99,0xcc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+  0x3e,0x91,0x33,0xdf,0x0,0x0,0x0,0x5c,0x49,0x44,0x41,0x54,0x18,0x95,0x6d,0xd0,
+  0x41,0x12,0x0,0x11,0xc,0x44,0x51,0x5f,0xdc,0xff,0xcc,0x83,0x4,0xd1,0x26,0x2b,
+  0xf5,0xaa,0x91,0xea,0x52,0xf2,0x40,0xd1,0x81,0x5a,0x79,0x49,0xd0,0xe9,0xd2,0x4d,
+  0x9,0xb1,0x83,0x4b,0x31,0x33,0x8d,0xe,0xd3,0xe8,0x34,0x89,0xf2,0xe0,0x54,0xbb,
+  0x95,0xb8,0x9e,0x5e,0x85,0xb6,0x90,0x58,0xa0,0x53,0x13,0x1c,0xc4,0x46,0x73,0x1c,
+  0xa9,0xc0,0xf3,0x93,0x63,0xd4,0x17,0x5b,0x39,0xe6,0x42,0x1c,0xa5,0xe4,0xce,0xfc,
+  0xf6,0xbe,0x8f,0x1f,0x96,0xff,0x2,0x1c,0xb4,0x2d,0xab,0xd7,0x0,0x0,0x0,0x0,
+  0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/hand.png
+  0x0,0x0,0x3,0x86,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x11,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0x3b,0x6d,0x47,0xfa,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+  0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd8,
+  0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+  0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+  0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+  0xb,0x0,0x0,0x2,0xfc,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0x64,0x40,0x0,0xe,
+  0x20,0x16,0x84,0xb2,0x7f,0x0,0xb1,0x54,0x75,0x75,0xf5,0x15,0x16,0x16,0x16,0x86,
+  0xc6,0xc6,0x46,0x13,0x20,0xff,0x3d,0x10,0x7f,0x87,0xd2,0x3f,0x90,0xf4,0x31,0x0,
+  0x4,0x10,0xb2,0x1,0xda,0xb5,0xb5,0xb5,0xff,0xfb,0xfb,0xfb,0xff,0x3,0xd9,0xae,
+  0xb3,0x67,0xcf,0xfe,0xf,0x2,0xcf,0x9f,0x3f,0xff,0xdf,0xd1,0xd1,0xf1,0x7f,0xc1,
+  0x82,0x5,0xff,0x81,0x86,0x82,0xe4,0xb4,0xa1,0xea,0xe1,0x0,0x20,0x80,0x60,0x48,
+  0xb2,0xa6,0xa6,0x6,0xac,0xe9,0xc7,0x8f,0x1f,0xff,0xe7,0xcf,0x9f,0xff,0x3f,0x2f,
+  0x2f,0xf,0xcc,0xff,0xfb,0xf7,0xef,0xff,0xb0,0xb0,0x30,0x30,0xfb,0xe2,0xc5,0x8b,
+  0xff,0x83,0x83,0x83,0x41,0x6,0x19,0x83,0xf4,0xc0,0xc,0x3,0x8,0x20,0x26,0x98,
+  0x29,0xf2,0xf2,0xf2,0x60,0x9a,0x9d,0x9d,0x9d,0x41,0x54,0x54,0x94,0xe1,0xd3,0xa7,
+  0x4f,0x70,0x3b,0x5e,0xbc,0x78,0x1,0x57,0xf3,0xf6,0xed,0x5b,0x86,0xf6,0xf6,0xf6,
+  0x33,0x4d,0x4d,0x4d,0xcf,0x80,0x42,0xca,0x20,0x83,0x0,0x2,0x8,0xd9,0x3b,0xc6,
+  0x27,0x4f,0x9e,0x4,0xdb,0xf8,0xef,0xdf,0xbf,0xff,0xe,0xe,0xe,0x60,0xf6,0xaf,
+  0x5f,0xbf,0xfe,0x5b,0x58,0x58,0x80,0xd9,0x6f,0xde,0xbc,0xf9,0x6f,0x63,0x63,0xf3,
+  0x7f,0xc7,0x8e,0x1d,0xff,0x4f,0x9f,0x3e,0xfd,0xdf,0xcb,0xcb,0xb,0xe4,0x2a,0x49,
+  0x80,0x0,0x62,0x41,0xa,0x50,0xce,0xa7,0x4f,0x9f,0x82,0x4d,0x64,0x64,0x64,0x64,
+  0xf0,0xf6,0xf6,0x6,0xb3,0xff,0xfc,0xf9,0xc3,0x0,0xd4,0xcf,0x0,0xf4,0x16,0x3,
+  0xd0,0x40,0x30,0x1b,0x68,0x10,0xc3,0x87,0xf,0x1f,0xc0,0x18,0xa4,0xf,0x20,0x80,
+  0x40,0x86,0x28,0x3,0xfd,0x7c,0x85,0x95,0x95,0x95,0xe1,0xfd,0xfb,0xf7,0xc,0x87,
+  0xf,0x1f,0x66,0xb0,0xb5,0xb5,0x65,0x8,0xc,0xc,0x4,0x6b,0x0,0xba,0x8a,0x21,
+  0x20,0x20,0x0,0x4c,0x83,0x34,0x59,0x5b,0x5b,0x83,0xd9,0xbf,0x7f,0xff,0x6,0xcb,
+  0x83,0x0,0x40,0x0,0x1e,0xc8,0xd0,0x6,0x60,0x28,0x84,0x82,0x9d,0xa5,0x8a,0xd,
+  0x58,0xa,0xcb,0x4e,0xec,0xc0,0x26,0x68,0x34,0x8a,0x90,0xa0,0xde,0x6f,0x2b,0xea,
+  0x2f,0x97,0xcb,0x5d,0x22,0xf2,0xa5,0x76,0x37,0x88,0x8,0xaa,0xfa,0xf,0x7d,0x40,
+  0xec,0x2e,0x22,0x2,0x33,0x83,0xcc,0x84,0xbb,0xa3,0xaa,0x60,0x66,0x60,0xe6,0xd7,
+  0x72,0x1f,0x1,0xc4,0x4,0x4a,0x7,0x20,0x93,0xb9,0xb9,0xb9,0x19,0xb6,0x6d,0xdb,
+  0xc6,0x0,0x8c,0x1d,0xb0,0x17,0x40,0x4e,0x7,0xd1,0x20,0x2c,0x2e,0x2e,0xe,0x16,
+  0x67,0x66,0x66,0x66,0x50,0x56,0x56,0x66,0xb8,0x72,0xe5,0xa,0xc3,0x99,0x33,0x67,
+  0x18,0x2c,0x2d,0x2d,0x41,0xee,0xf8,0xe,0x10,0x40,0x20,0x42,0x1b,0x14,0xff,0x20,
+  0x97,0x80,0x6c,0xfe,0xfe,0xfd,0x3b,0x18,0x83,0xf8,0xc0,0x18,0x2,0x7,0xe6,0xb3,
+  0x67,0xcf,0xfe,0xdf,0xbb,0x77,0xef,0xff,0xd5,0xab,0x57,0xff,0x9f,0x3a,0x75,0xea,
+  0xff,0xba,0x75,0xeb,0xfe,0x9b,0x99,0x99,0xc1,0xa2,0x9a,0x3,0x20,0x80,0x40,0x61,
+  0x72,0xb7,0xb5,0xb5,0x55,0x87,0x83,0x83,0xe3,0x4a,0x51,0x51,0x11,0xd8,0xaf,0xa0,
+  0x40,0x4,0xb9,0x0,0xc4,0x6,0x1a,0xc8,0x0,0xf4,0x12,0x18,0x83,0xf8,0xa0,0x28,
+  0xbe,0x76,0xed,0x1a,0x98,0xf,0x4,0xa0,0x68,0xfe,0x1,0x10,0x40,0xcc,0xa0,0x8,
+  0x0,0xe2,0xcf,0xfb,0xf7,0xef,0xdf,0xc0,0xc7,0xc7,0x97,0x6,0xc,0x17,0x6,0xa0,
+  0xff,0xc1,0x9a,0x41,0xf4,0xd7,0xaf,0x5f,0xc1,0x5e,0x1,0x61,0x10,0xfb,0xfe,0xfd,
+  0xfb,0xc,0x6b,0xd7,0xae,0x5,0x79,0x7,0x94,0x15,0x1e,0x81,0xf4,0x3,0x4,0x10,
+  0xb,0x52,0x5e,0x79,0x6,0x74,0x32,0x3,0x30,0x10,0x19,0x84,0x85,0x85,0xc1,0xae,
+  0x1,0xd9,0xc,0xa,0x1b,0x58,0xf8,0x80,0xc,0x6,0x66,0x3,0xb0,0x81,0x30,0x57,
+  0x80,0x18,0x0,0x1,0xc4,0x8c,0x94,0xf4,0xff,0x9c,0x3d,0x7b,0x76,0x5,0x50,0x63,
+  0x96,0x82,0x82,0x2,0x38,0xfa,0x60,0x86,0xc0,0x68,0x90,0x4b,0x66,0xce,0x9c,0xc9,
+  0x70,0xe9,0xd2,0x25,0xb8,0x2b,0x40,0x1a,0x1,0x2,0x88,0x5,0xc9,0x10,0x90,0xa9,
+  0x77,0x97,0x2d,0x5b,0x6,0x52,0x70,0x26,0x36,0x36,0x16,0x1c,0x6b,0xb0,0xf0,0x1,
+  0x6,0x34,0xc3,0x83,0x7,0xf,0x18,0x5e,0xbf,0x7e,0xcd,0x80,0x9e,0x93,0x1,0x2,
+  0x88,0x9,0x2d,0x23,0x82,0xbd,0x5,0xd2,0x0,0xb2,0x15,0xe4,0x7c,0x90,0xd3,0x41,
+  0xae,0x0,0xc6,0x12,0xc3,0xb9,0x73,0xe7,0xc0,0x89,0xd,0x16,0xad,0x30,0x0,0x10,
+  0x40,0x8c,0x38,0x8a,0x5,0x70,0x36,0x60,0xc0,0xe,0x30,0xca,0x14,0x80,0x0,0x3,
+  0x0,0x2f,0x4f,0xf3,0xc6,0xbf,0xe7,0x77,0xeb,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+  0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/bucket.png
+  0x0,0x0,0x7,0x74,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x16,0x0,0x0,0x0,0x18,0x8,0x6,0x0,0x0,0x0,0xfe,0xbe,0xd,0x4b,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x7,0x6,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xdc,0xb5,0x6b,0x17,0x3,0x3a,0x60,0x64,0x64,0x64,0xf8,0xfd,0xfb,0xb7,0xce,0xde,
+  0xbd,0x7b,0x4f,0x99,0x99,0x99,0x95,0x2b,0x2b,0x2b,0x4f,0x7e,0xf5,0xea,0x15,0xc3,
+  0xd3,0xa7,0x4f,0x19,0x78,0x79,0x79,0xc1,0xf2,0xcc,0xcc,0xcc,0xbc,0x77,0xef,0xde,
+  0x5d,0x76,0xef,0xfe,0x7d,0x57,0x5d,0x1d,0x9d,0x3c,0x1d,0x1d,0x9d,0x59,0x7c,0x7c,
+  0x7c,0x70,0x33,0x0,0x2,0x88,0x31,0x21,0x21,0x1,0xc3,0x60,0x26,0x26,0x26,0x86,
+  0x77,0xef,0xde,0x55,0xea,0xe9,0xe9,0x59,0x5f,0xbe,0x7c,0x59,0xcc,0xd0,0xd0,0xb0,
+  0x59,0x46,0x46,0x66,0x33,0x3b,0x3b,0x3b,0x3,0x23,0x13,0x93,0xd3,0xc9,0x13,0x27,
+  0x52,0xdf,0xbf,0x7f,0xef,0x65,0x6c,0x6c,0xcc,0x27,0x2d,0x2b,0xcb,0xb0,0x7d,0xe7,
+  0xce,0xff,0xca,0xf2,0xf2,0xb3,0x83,0x83,0x82,0x72,0x7f,0xfc,0xfc,0xf9,0xb,0x64,
+  0x6,0x40,0x0,0xb1,0x58,0x5a,0x5a,0x62,0xb8,0x16,0x68,0x0,0xf3,0xe9,0xd3,0xa7,
+  0xd,0x35,0x35,0x35,0x63,0x81,0x16,0xe4,0x9d,0x38,0x71,0x22,0xd6,0xd9,0xd9,0xf9,
+  0xfa,0x9b,0x37,0x6f,0x13,0x5f,0xbf,0x7e,0x9d,0x2b,0x28,0x28,0xc0,0x5b,0x54,0x54,
+  0xc4,0xa0,0xaf,0xaf,0xf,0xd6,0xa3,0xa3,0xab,0xcb,0x58,0x52,0x5a,0x96,0x26,0x21,
+  0x21,0x71,0x8,0xe8,0xbb,0xa5,0xdf,0xbe,0x7d,0x63,0x0,0x8,0x20,0x96,0xf,0x1f,
+  0x3e,0xa0,0x18,0xfc,0xf5,0xeb,0x57,0x86,0x2f,0x5f,0xbe,0x8,0x2,0x5d,0x6d,0xfa,
+  0xf7,0xef,0x5f,0x36,0x75,0xd,0x8d,0xe3,0xe7,0xcf,0x9f,0x2f,0xb9,0x74,0xe9,0x72,
+  0x80,0xa9,0xa9,0x9,0x6b,0x7a,0x7a,0x1a,0x83,0xbc,0xbc,0x3c,0x58,0x2d,0x50,0x1d,
+  0xc3,0x9f,0x3f,0x7f,0x18,0xd4,0x55,0x54,0x18,0x7a,0x3a,0x3b,0x19,0x1a,0x1a,0x1b,
+  0xa6,0xbb,0x31,0xfc,0xbf,0x26,0x2f,0xaf,0x70,0x1e,0x20,0x80,0x58,0x80,0xde,0x85,
+  0x1b,0xfa,0xef,0xdf,0x3f,0x6,0x4e,0x4e,0x4e,0x86,0x4b,0x97,0x2e,0xfd,0x3b,0x7e,
+  0xfc,0x38,0xe3,0x9e,0x3d,0x7b,0xd6,0x7e,0xfe,0xfc,0xd9,0x5a,0x5c,0x5c,0x9c,0x21,
+  0x21,0x21,0x9e,0xc1,0xc1,0xc1,0x81,0xe1,0xff,0xff,0xff,0xc,0x40,0x31,0x86,0xef,
+  0xdf,0xbf,0x83,0xd9,0xc0,0xb8,0x80,0x18,0xae,0xa6,0xca,0xa0,0xa5,0xa1,0xc1,0xbb,
+  0x6b,0xd7,0x9e,0xf6,0x82,0xfc,0x3c,0xf,0x80,0x0,0x62,0x2,0x46,0x2,0x3,0xc,
+  0x73,0x70,0x70,0x80,0xb0,0xeb,0xdd,0x7b,0xf7,0x16,0x3,0xbd,0x2c,0x6b,0x62,0x6a,
+  0x6a,0x3d,0x63,0xc6,0xc,0x86,0xa4,0xa4,0x24,0x86,0x8b,0x17,0x2f,0x82,0xd,0x7a,
+  0xf3,0xe6,0xd,0xd8,0x57,0x20,0xc3,0x7e,0xfe,0xfc,0xc9,0xf0,0xe3,0xc7,0xf,0x86,
+  0xb7,0x6f,0xdf,0x32,0xdc,0xbe,0x7d,0x9b,0xc1,0xc7,0xc7,0x87,0x81,0x93,0x8b,0xd3,
+  0xec,0xc8,0xd1,0xa3,0xa2,0x0,0x1,0xc4,0x2,0x92,0x4,0x7,0x36,0xb,0xb,0xc3,
+  0xb3,0x67,0xcf,0x7c,0xe6,0xcd,0x9b,0xb7,0x56,0x5b,0x47,0x87,0x6d,0xfe,0xfc,0xf9,
+  0xc,0x72,0x72,0x72,0x60,0x39,0x51,0x51,0x51,0x86,0x4d,0x9b,0x36,0x81,0xd,0x80,
+  0xb9,0xf0,0xd7,0xaf,0x5f,0x60,0x1a,0xc4,0x87,0x61,0x50,0xe4,0xca,0xca,0xc8,0x8,
+  0x2,0x23,0xb6,0x4,0x20,0x80,0x58,0xce,0x9e,0x3d,0xb,0xd6,0xc,0x74,0x29,0xef,
+  0xee,0xdd,0xbb,0xe7,0x3e,0x7a,0xf4,0x88,0x4d,0x52,0x52,0x12,0x1c,0x7e,0x20,0x4b,
+  0x41,0x34,0x28,0x89,0x81,0x0,0xc8,0x60,0x90,0xcf,0x40,0xe2,0x20,0x43,0x61,0x6,
+  0xc3,0x68,0x50,0xa4,0x49,0xcb,0xc8,0x30,0x2c,0x5c,0xb0,0xd0,0x8,0x20,0x80,0x98,
+  0x60,0xb6,0x1,0x5d,0xc0,0x4,0xd4,0xcb,0xe,0x4c,0xb7,0xc,0x2f,0x5f,0xbe,0x64,
+  0x28,0x29,0x29,0x61,0x0,0x45,0x2c,0xc8,0xab,0x6c,0x6c,0x6c,0xc,0xfc,0xfc,0xfc,
+  0x60,0x83,0x41,0x7c,0x90,0x1,0x20,0xc,0xa,0x12,0x18,0x6,0xf1,0x3f,0x7f,0xfe,
+  0x4,0x56,0x27,0x26,0x2e,0x6e,0x8,0x10,0x40,0x4c,0x8e,0x8e,0x8e,0xc,0x20,0xec,
+  0xea,0xea,0xfa,0x51,0x55,0x55,0xf5,0x4,0x30,0x79,0x81,0x93,0xd1,0xc7,0x8f,0x1f,
+  0x19,0xa6,0x4e,0x9d,0xca,0x0,0x4c,0x19,0xc,0xcf,0x9f,0x3f,0x7,0x47,0xd8,0xb6,
+  0x6d,0xdb,0xc0,0x96,0xc2,0xc,0x7,0x45,0x20,0x8,0xc3,0x2c,0xf9,0xf2,0xe5,0x2b,
+  0x3,0x13,0x30,0xb9,0xb2,0xb2,0x30,0xb3,0x0,0x4,0x10,0xb3,0x82,0x82,0x2,0xc3,
+  0xc3,0x87,0xf,0x19,0xee,0xdf,0xbf,0xf,0xd2,0xc0,0x2,0x34,0x38,0x0,0x14,0x14,
+  0x5c,0x5c,0x5c,0x60,0x83,0xcc,0xcd,0xcd,0xc1,0xf2,0x82,0x82,0x82,0x60,0x3,0x40,
+  0xbe,0x3,0xb9,0xa,0x64,0x20,0x28,0x48,0x60,0x18,0x14,0xe6,0x20,0xcc,0xc4,0xc4,
+  0xc8,0x70,0xe3,0xfa,0xcd,0x9f,0x0,0x1,0xc4,0x4,0x72,0x9,0x8,0x83,0x5c,0x8,
+  0x4c,0xbb,0xab,0x81,0x9a,0x1f,0x82,0xc2,0x53,0x49,0x49,0x89,0x41,0x57,0x57,0x97,
+  0x61,0xeb,0xd6,0xad,0xc,0x62,0x62,0x62,0xa0,0x88,0x5,0x6b,0x4,0x65,0xdb,0x4f,
+  0x9f,0x3e,0xc1,0x83,0x0,0x14,0x7,0x20,0xb,0x41,0x86,0x7f,0x5,0xd2,0xe7,0xce,
+  0x5f,0x64,0x78,0xf7,0xe1,0xc3,0x4f,0x80,0x0,0x62,0xb1,0xb7,0xb7,0x87,0xa7,0x63,
+  0x60,0x1a,0xfe,0xa,0x8c,0xd1,0x2b,0x40,0x2c,0xf,0x4a,0x11,0xa0,0xf0,0xde,0xb6,
+  0x75,0x1b,0x83,0xa9,0xa9,0x29,0x98,0xd,0xd2,0xc,0x4a,0xeb,0xb0,0x8c,0x1,0xc2,
+  0xc,0xc,0xff,0x19,0x80,0xd9,0x18,0x18,0x5c,0x2f,0x18,0xe,0x1e,0x3e,0xca,0xf0,
+  0xf6,0xf5,0xcb,0xdb,0x9e,0x1e,0x1e,0x39,0x0,0x1,0xc4,0x2,0x72,0x19,0xc,0x80,
+  0x22,0x29,0x28,0x28,0x68,0xda,0xbc,0xf9,0xf3,0x3c,0x39,0xd8,0xd9,0x99,0x40,0xae,
+  0xe3,0x15,0xe0,0x3,0x7,0x49,0x68,0x68,0x28,0x38,0x6c,0x41,0xae,0x6,0x85,0x3b,
+  0x28,0x4d,0x83,0xc,0xbe,0x70,0xf1,0x32,0xc3,0xdd,0x7b,0x77,0x19,0x7e,0xfe,0xf8,
+  0xb1,0x4b,0x50,0x80,0x7f,0xa,0x37,0x7,0xdb,0x7e,0xe,0x76,0x8e,0x2f,0x0,0x1,
+  0xc4,0x72,0xe3,0xc6,0xd,0xb0,0x2b,0x40,0xa,0x41,0x34,0x30,0x39,0x6d,0xfb,0xf6,
+  0xf5,0xdb,0xba,0xcb,0x57,0xae,0x84,0xb8,0xbb,0xbb,0x33,0xd8,0xd9,0xdb,0x32,0x0,
+  0x4b,0x39,0x70,0x8a,0x0,0xc9,0x83,0x30,0xc8,0xeb,0xf7,0x1f,0x3c,0x62,0xb8,0x77,
+  0xff,0xee,0x2f,0x60,0x86,0x39,0x2f,0xc0,0xc7,0x3f,0x5b,0x4a,0x5e,0x6e,0xf1,0xbf,
+  0xff,0xff,0x7f,0x1,0x33,0x16,0xc3,0xbf,0xff,0xff,0x18,0x0,0x2,0x88,0x59,0x5,
+  0x98,0xcf,0x61,0xb1,0xa,0x8a,0x14,0x50,0xc9,0xa6,0xac,0xa2,0xf2,0x12,0x68,0x98,
+  0x33,0xb0,0x10,0xe2,0xe7,0xe7,0xe5,0x63,0xb8,0x73,0xe7,0xe,0x83,0xa8,0x88,0x28,
+  0xc3,0x77,0xa0,0x8b,0xaf,0x5c,0xb9,0x2,0xc,0xc7,0xb,0xdf,0x9e,0x3f,0x7b,0x76,
+  0x94,0x91,0x81,0x21,0x4f,0x47,0x5b,0xbb,0x1c,0x68,0xd9,0xf9,0xdf,0x7f,0xfe,0xfc,
+  0x5,0xf9,0x4,0x9c,0x96,0xa5,0xa5,0x19,0x0,0x2,0x88,0x19,0x58,0x22,0x81,0xbd,
+  0x4,0x2a,0x6b,0x41,0xe9,0x56,0x44,0x44,0x84,0x1,0x58,0xbe,0x3e,0x14,0x13,0x15,
+  0xfd,0x30,0x7b,0xd6,0xec,0x0,0x39,0x39,0x35,0x6,0x76,0x1e,0x7e,0x86,0x6b,0x97,
+  0x2f,0x30,0x1c,0x3e,0x7c,0x84,0xe1,0xed,0x9b,0xb7,0x87,0x74,0x75,0xb4,0x93,0xa5,
+  0xa4,0x24,0x9b,0x80,0x6,0xdd,0x6,0x15,0x3,0x20,0xc3,0x40,0x5,0x13,0xa8,0x4c,
+  0x1,0x99,0x25,0x20,0x20,0xc0,0x0,0x10,0x40,0x2c,0xac,0xac,0xac,0x60,0x57,0x82,
+  0xb2,0xf4,0x85,0xb,0x17,0xc0,0xe5,0x5,0x8,0xf0,0xf1,0xf1,0xae,0xe7,0x17,0xe0,
+  0x9f,0x20,0x22,0x2d,0xc9,0x7f,0xf4,0xe4,0x61,0x86,0xdf,0x3f,0x7e,0x6c,0x30,0x32,
+  0x34,0xe8,0xe5,0xe6,0xe6,0x3e,0x3,0xf4,0xd9,0xf,0x90,0x3,0x40,0xe5,0x3,0xc8,
+  0x61,0x6,0x6,0x6,0xe0,0x8,0x15,0x12,0x12,0x2,0x27,0x4b,0x90,0x19,0x0,0x1,
+  0xc4,0x4,0x2b,0x83,0x41,0x59,0x95,0x1d,0x18,0x79,0x1c,0x1c,0xec,0xdc,0x8f,0x1e,
+  0x3e,0xe0,0xdc,0xbc,0x71,0x93,0xda,0xe7,0x2f,0x5f,0x39,0x6c,0x2c,0x4d,0x19,0xb4,
+  0xb5,0x34,0xfe,0x88,0x8,0xb,0xb5,0x3f,0x7d,0xf2,0xe4,0xc8,0xef,0x5f,0x3f,0x59,
+  0xb9,0xb9,0x38,0x5,0x24,0x25,0x24,0xf8,0xff,0xfe,0xf9,0xc3,0xf2,0xf,0xe8,0x7d,
+  0x1e,0x6e,0x6e,0x70,0xfa,0x86,0x95,0x3b,0xa0,0xf8,0x2,0x8,0x20,0x16,0xa0,0xa1,
+  0x8c,0xbf,0x7f,0xfd,0x30,0x7a,0x70,0xff,0xbe,0xf1,0xb7,0x1f,0x7f,0x64,0x2f,0x5f,
+  0xbf,0xed,0x27,0x2c,0x2c,0xac,0xfc,0xfe,0xcb,0xf,0x86,0xc4,0xb4,0x6c,0x76,0x21,
+  0x60,0xd8,0x9a,0x99,0x5b,0xb2,0x9c,0x3d,0x77,0xe1,0x0,0xaf,0xa0,0xe8,0xcf,0x2f,
+  0x3f,0xff,0x31,0xde,0x7d,0xf8,0x82,0xf1,0xf1,0xcb,0x77,0xc,0x6f,0x3e,0x7c,0x59,
+  0xc7,0xf5,0xfc,0xf9,0xfd,0x2f,0x5f,0x3e,0x7d,0x66,0x63,0x65,0xbd,0x22,0x2e,0x26,
+  0x7a,0x6,0x58,0x5c,0xbe,0x7,0x19,0xe,0x10,0x40,0x8c,0xc0,0x34,0x17,0x70,0xef,
+  0xf9,0xbb,0x35,0xca,0xfa,0xb6,0xcc,0x46,0x96,0xf6,0xc,0xc2,0xc0,0xe4,0x25,0xc0,
+  0xcd,0xc6,0x20,0x2a,0xc4,0xc7,0x20,0x22,0xc0,0xcb,0xc0,0xcc,0xf0,0x17,0x18,0x4c,
+  0xcc,0xc,0xdf,0x7f,0xfe,0x66,0xf8,0xf4,0xf5,0x27,0xc3,0x7,0xa0,0x85,0xef,0xbf,
+  0x7c,0x67,0x78,0xff,0x19,0x98,0x95,0x7f,0xfe,0x63,0x78,0xf2,0xe4,0x9,0xc3,0xa3,
+  0x7b,0x37,0x19,0xee,0x5d,0x3e,0xce,0xa0,0x28,0xc6,0xfd,0xc5,0xda,0xdc,0x24,0x2,
+  0xe8,0xb0,0xad,0x0,0x1,0xc4,0xc,0xc,0xe8,0x5d,0x92,0xe6,0xc1,0x2,0x56,0x5e,
+  0x31,0xc,0x3c,0x3c,0xbc,0xe0,0x82,0x1e,0x84,0x99,0x98,0x59,0x18,0x7e,0xff,0xf9,
+  0xcb,0xf0,0xfb,0x1f,0x3,0xc3,0xaf,0x3f,0xc0,0x2,0xfd,0x3f,0x13,0xc3,0xdf,0xff,
+  0xcc,0xc,0xff,0x99,0x58,0x19,0x18,0x59,0x39,0x18,0x58,0xd8,0xb8,0x19,0x18,0xd9,
+  0xb8,0x18,0xd8,0xf9,0xc5,0x19,0x4,0xe5,0x74,0x19,0x78,0xe4,0xd,0x19,0x4e,0x1c,
+  0xd8,0xcb,0xc6,0xf0,0xe5,0x39,0x8f,0xa6,0xb6,0xf6,0xa,0x80,0x0,0x62,0x91,0x91,
+  0x96,0xca,0x7a,0x70,0x69,0xf7,0xac,0x13,0xbf,0x3f,0x4b,0xa,0xa,0x3,0x15,0x9,
+  0x89,0x30,0x48,0x88,0x8b,0x32,0xf0,0xf3,0x72,0x31,0x70,0xb0,0x32,0x3,0xb,0x14,
+  0x26,0x20,0x66,0x64,0xf8,0xf3,0xfb,0xf,0xc3,0x8f,0x5f,0x7f,0x80,0x49,0xee,0x27,
+  0x30,0xcb,0x7e,0x62,0x78,0xf1,0xe2,0x25,0xc3,0x4f,0xa0,0xd8,0x97,0xcf,0x5f,0x18,
+  0xde,0xbd,0x79,0xf1,0xf3,0xd7,0x87,0x67,0x5f,0xf5,0x65,0x39,0x2e,0x3b,0x3a,0x3b,
+  0x4f,0x3,0x65,0x2c,0x80,0x0,0x62,0xe1,0xe0,0xe4,0xda,0x62,0xa2,0x29,0xac,0x23,
+  0x2e,0xfe,0x37,0x7d,0xf2,0xd4,0x5a,0x1e,0x35,0x75,0xd,0x3,0xa0,0x26,0x96,0x2f,
+  0xc0,0x0,0x57,0xd7,0xd0,0x92,0xff,0xf6,0xf5,0xcb,0x8f,0x67,0x4f,0x9f,0xbc,0x62,
+  0x61,0x61,0x62,0x62,0x5,0x45,0x30,0x3b,0x1b,0xa8,0x58,0x64,0x94,0x96,0x92,0xfa,
+  0xb3,0x6f,0xef,0xde,0x73,0x9e,0x1e,0x6e,0x2c,0xd2,0x4c,0xc,0x7,0x65,0xf4,0xe4,
+  0xf7,0x9,0x89,0x98,0xfe,0x6,0x1a,0xfa,0x1f,0x14,0x91,0x0,0x1,0x6,0x0,0x5d,
+  0x9a,0x7c,0x5d,0x8a,0xb1,0xc5,0x37,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,
+  0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/prefspencil.png
+  0x0,0x0,0x19,0x11,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x40,0x0,0x0,0x0,0x36,0x8,0x6,0x0,0x0,0x0,0x77,0x12,0x9f,0x2,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+  0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd8,
+  0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+  0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+  0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+  0xb,0x0,0x0,0x18,0x87,0x49,0x44,0x41,0x54,0x78,0xda,0xdc,0xc7,0xc9,0xd,0x0,
+  0x20,0xc,0xc4,0xc0,0xd,0x2,0xd2,0x7f,0xb9,0x9c,0xc1,0x8f,0x54,0x81,0xa5,0x79,
+  0xd8,0x24,0x55,0x34,0x38,0x7a,0x7e,0x81,0xe9,0x8f,0x2,0x17,0x1b,0x13,0x3,0xb,
+  0x27,0xe8,0x9,0x20,0x98,0xe7,0xb9,0x81,0x98,0x17,0x88,0x79,0x80,0x98,0x3,0x2a,
+  0x36,0x9c,0x0,0xc8,0xc3,0x3f,0x80,0xf8,0xb,0x10,0x7f,0x6,0xe2,0xaf,0xd0,0x40,
+  0xf9,0xf,0x10,0x40,0x2c,0xd0,0x98,0x7,0x79,0x5e,0x2,0x88,0x85,0xa1,0x6c,0xf6,
+  0x61,0x96,0x2,0x7e,0x42,0x3d,0xfe,0x16,0x2a,0xf6,0x7,0x8a,0xff,0x1,0x4,0x10,
+  0xb,0x34,0xd9,0x83,0x62,0x5e,0x78,0xcf,0x99,0xdd,0x9b,0x1d,0xf,0x0,0x55,0xaa,
+  0xbd,0x66,0x58,0x2f,0x74,0x9b,0x21,0xc1,0xba,0x8e,0x3c,0x2b,0x81,0xe1,0xbb,0xff,
+  0xc4,0x79,0x6,0x2d,0x69,0x25,0x86,0xb7,0x1f,0xdf,0x30,0xb0,0xb2,0xb1,0x33,0xfc,
+  0xff,0xfb,0x9b,0xe1,0xc7,0xa7,0x1f,0xc,0x7c,0x92,0xe2,0xc,0xef,0xdf,0xbe,0x60,
+  0x10,0xe5,0x17,0x62,0xf8,0xf8,0xed,0x7,0x3,0x1b,0xcb,0x7f,0x86,0x9f,0xdf,0xff,
+  0x30,0xf0,0xf1,0xf0,0x31,0xbc,0xff,0xf4,0x9e,0x81,0x9d,0x8b,0x8b,0x81,0x8d,0x95,
+  0x9d,0xe1,0xc7,0x8f,0xaf,0xc,0xbf,0xff,0xfc,0x64,0x60,0xfa,0xc7,0xc1,0xa0,0x6b,
+  0xab,0x48,0x71,0x28,0x7c,0xfd,0xfe,0x8b,0x81,0x87,0x8b,0xdd,0x17,0x9a,0xa,0x40,
+  0x29,0xe0,0x3b,0x48,0x1c,0x20,0x0,0x1f,0x65,0xb0,0x82,0x20,0x10,0x84,0xe1,0x7f,
+  0x51,0x56,0x4d,0xac,0xe,0x3d,0x42,0x27,0x4f,0xbd,0x43,0x11,0x79,0xed,0x89,0x85,
+  0x20,0xba,0x18,0x74,0x8,0x25,0x8,0xec,0x50,0x1d,0x45,0xd1,0x55,0x58,0xdc,0x6d,
+  0x8c,0x8d,0x3a,0x75,0x18,0x86,0x81,0x61,0x66,0xf8,0xe7,0x9b,0xb1,0x8d,0xd,0xd8,
+  0x7,0xb2,0xd1,0xb8,0x6d,0xe7,0x38,0x5d,0x1d,0xcc,0xa,0x1f,0x71,0xbc,0x43,0x92,
+  0x24,0xd8,0x44,0x2b,0x94,0x65,0x45,0x5a,0x6a,0x3,0x86,0xfe,0xb,0x8,0xb3,0x18,
+  0x82,0xb1,0x85,0xbc,0xca,0xe8,0xd0,0x28,0x6e,0x25,0xb8,0xe7,0x43,0x4f,0x15,0x1e,
+  0x65,0x6,0xee,0x3a,0xb8,0x8b,0x9c,0x84,0xe1,0x10,0x4a,0x41,0x3b,0x3d,0x84,0x2c,
+  0xc0,0x27,0x36,0x6a,0x59,0xbf,0x81,0x55,0x8c,0x16,0xc4,0xa9,0x7,0x6b,0x70,0xd8,
+  0x3f,0xd1,0x9b,0x8e,0x6a,0xa8,0xf7,0x19,0x1,0xdf,0x31,0x6,0xd7,0x76,0x1d,0x34,
+  0x25,0x78,0x23,0x17,0x69,0x7a,0x86,0xa8,0x3b,0x84,0x8b,0x10,0xe9,0xf1,0x82,0xf5,
+  0x32,0x82,0xa1,0xdb,0xfd,0xf9,0x73,0x78,0x9,0x40,0x48,0xb5,0xe3,0x20,0xc,0xc3,
+  0xd0,0xa7,0xd8,0xb4,0x31,0x37,0x48,0xe,0xc0,0x8e,0x10,0x3,0x52,0x25,0x50,0x7,
+  0x4e,0xcd,0x2d,0x38,0x42,0xc6,0x48,0x28,0x53,0xa1,0x9,0xa2,0xb4,0x69,0xa,0x1b,
+  0x78,0xf1,0x93,0x7f,0xcf,0xb6,0x64,0x2f,0x20,0x3f,0x41,0xcd,0xa,0x21,0x4,0xdc,
+  0xae,0x17,0x98,0xcd,0x19,0xac,0x12,0xda,0xf6,0x88,0xd8,0x27,0x88,0x96,0x4c,0xe4,
+  0x9c,0x83,0x31,0x6,0xcc,0xfc,0x77,0xeb,0xf4,0x41,0x55,0xe9,0x52,0x41,0xea,0xb9,
+  0xe,0x51,0x9d,0x35,0xab,0x31,0x4a,0xcd,0x91,0xc3,0x6b,0xb2,0x53,0xf1,0x7f,0xb3,
+  0x21,0xf2,0x93,0x27,0xc6,0x8,0xef,0x3d,0xac,0xb5,0x78,0xa4,0x1e,0x52,0x69,0xec,
+  0xb6,0x7b,0xdc,0x53,0x37,0xe2,0x35,0x9a,0xd3,0x1,0x4f,0xea,0x50,0x4e,0x7b,0xb5,
+  0xc,0x3f,0xc9,0x5b,0x0,0xb1,0x20,0x45,0x25,0xa3,0xb0,0xb0,0x8,0x83,0xae,0x8a,
+  0x2e,0x30,0xc4,0xf6,0x33,0xf0,0x8,0x71,0x31,0x88,0x8,0xb1,0x33,0x28,0xc8,0xab,
+  0x30,0x70,0x70,0x30,0x41,0x95,0x32,0x30,0xbc,0x7c,0xf9,0x92,0x41,0x5b,0x5b,0x9b,
+  0x81,0xb,0x98,0x54,0x7,0xb,0xf8,0xf4,0xe9,0x13,0xc3,0x97,0x2f,0x5f,0x18,0x14,
+  0x95,0xe4,0x19,0xb8,0xfe,0x70,0x33,0x1c,0x7e,0xbc,0x9f,0xe1,0xd1,0xbf,0xcb,0xc,
+  0x49,0x2a,0x65,0xc,0x5,0x67,0xa3,0x18,0x26,0x38,0x2c,0x63,0xf8,0xc3,0xf2,0x9b,
+  0x1,0xd9,0xaf,0x30,0xbd,0x0,0x1,0x84,0x12,0x8d,0x3f,0xff,0x2,0xcb,0x9,0x66,
+  0x26,0x6,0x69,0x2b,0x7f,0x6,0x71,0x60,0xd2,0xfb,0xfe,0xe3,0x27,0x30,0xd5,0xff,
+  0x67,0xf8,0xf3,0x87,0x99,0x81,0x88,0x8,0x27,0xbe,0x54,0x2,0x26,0xdf,0x7f,0xff,
+  0x6e,0x31,0x7c,0xfd,0xaa,0xc6,0xc0,0x4,0xc,0x5b,0x10,0xa6,0x46,0x78,0xfe,0xfe,
+  0xfd,0x8f,0x81,0x5d,0x94,0x83,0xc1,0x45,0xc4,0x93,0xe1,0xce,0x57,0x15,0x70,0xdd,
+  0x16,0xa6,0x9d,0x8,0x4e,0x80,0x2c,0xbf,0xfe,0x61,0xd5,0x3,0x10,0x40,0x4c,0xc8,
+  0x1c,0x16,0x26,0x48,0xed,0xc7,0x7e,0xfd,0x3c,0x3,0xbf,0xb0,0x24,0x83,0x8c,0xbc,
+  0x3c,0xb0,0x30,0xfa,0x2,0xf4,0x3c,0xf5,0x2a,0x84,0xef,0xc0,0x2c,0xfe,0xf5,0x9b,
+  0x31,0x30,0x89,0xab,0x3,0x3d,0xce,0xc8,0xf0,0xea,0x15,0x23,0x30,0x20,0x18,0x19,
+  0x2e,0x5f,0x5a,0xc4,0x70,0xff,0x21,0x42,0xdd,0xbf,0x7f,0x7f,0x48,0x36,0x5b,0x4c,
+  0x54,0x94,0x61,0xfd,0xb9,0x73,0xc,0x86,0x1d,0x73,0x19,0xa4,0x1f,0xb1,0x30,0x2c,
+  0x59,0xb1,0x88,0x41,0xf6,0x9d,0x1,0xc3,0xa3,0x1b,0xf7,0x81,0x81,0xc0,0x8e,0x55,
+  0xf,0x40,0x0,0x31,0x61,0xd4,0x96,0xa0,0xfc,0x27,0x2e,0xc9,0xf0,0xfc,0xc9,0x73,
+  0x86,0x7,0x77,0x1f,0x31,0x70,0x73,0xf3,0x3,0x1d,0xf3,0x8f,0x2a,0x9e,0x7,0x96,
+  0xa7,0xc,0x6c,0x3c,0x66,0xc,0x3c,0xdc,0xe7,0xc0,0x7c,0x1e,0x60,0xdd,0xa3,0xa4,
+  0xc4,0xc0,0x0,0x74,0x37,0x83,0xb2,0x5a,0x3c,0x30,0x50,0x98,0x18,0x6e,0xdd,0x89,
+  0x6,0x17,0x78,0x4c,0x4c,0x2c,0xc0,0x82,0xf7,0x3d,0x49,0xc9,0xa,0xa4,0x4f,0xeb,
+  0xd6,0xd,0x86,0xa2,0xca,0x14,0x86,0xd3,0x9a,0x8a,0xc,0x2,0x1c,0x42,0xc,0x32,
+  0xba,0xa2,0xc,0x92,0x8a,0x32,0xc,0xff,0x7e,0x63,0xd7,0x6,0x10,0x40,0xa8,0x1,
+  0xc0,0x9,0x89,0xe9,0xf3,0x57,0x2e,0x3,0x4b,0xe5,0xbf,0xc0,0x2,0x8b,0x1d,0x58,
+  0xe2,0xfe,0xa5,0x4a,0x93,0xe0,0x17,0xb0,0xd2,0x31,0x36,0x96,0x61,0xb8,0x7d,0xe1,
+  0x34,0x43,0x5b,0x2d,0x23,0xc3,0xb5,0xdb,0xc0,0x94,0x80,0x14,0xc9,0xc0,0x82,0x9b,
+  0xe1,0xef,0x1b,0x35,0x86,0x53,0xdb,0x96,0x31,0xcc,0xea,0x17,0x3,0x8b,0xf1,0xf3,
+  0xb,0x2,0x93,0xf5,0x6f,0xa2,0xed,0x0,0x79,0x46,0xf1,0xbd,0x30,0x83,0x3f,0x90,
+  0xb6,0x2,0x62,0x4b,0x63,0x1d,0x86,0xfd,0xbb,0xf7,0x32,0xb0,0xb2,0xb3,0x2,0x2b,
+  0xfd,0x9f,0x58,0xf5,0x0,0x4,0x10,0x4a,0x0,0x30,0xfd,0xfa,0xb,0xa6,0xa3,0x63,
+  0xe3,0x18,0xbe,0x7e,0x78,0xc5,0xc0,0xc1,0xc5,0xe,0x76,0x0,0x23,0x15,0x72,0x0,
+  0x1b,0xe7,0x3c,0x86,0x83,0x87,0x9e,0x32,0x5c,0x3f,0x71,0x88,0x21,0x31,0xea,0x3b,
+  0xc3,0xd9,0x1d,0x33,0x19,0x56,0x4d,0x59,0xcf,0xd0,0x59,0x3d,0x97,0xe1,0x1d,0xb0,
+  0x81,0xfa,0xeb,0xb3,0x14,0xc3,0x9e,0xed,0x9e,0xc,0x9a,0x7a,0xa9,0xc,0xf2,0xbc,
+  0xaf,0x19,0xa6,0x4d,0xcb,0x4,0xeb,0x63,0x65,0x25,0xae,0x51,0xfa,0x1f,0x54,0x63,
+  0x2,0x3,0x79,0x6e,0x1a,0xb,0x3,0x3f,0xb0,0x8c,0x61,0xf9,0xc8,0xc0,0x70,0x15,
+  0x98,0xa7,0x9c,0x5c,0x9d,0x51,0x52,0x37,0x3a,0x0,0x8,0x20,0x94,0xa2,0x8d,0x83,
+  0x9b,0x8b,0xe1,0x2f,0xd0,0x90,0x69,0xd3,0xa6,0x32,0x68,0x6a,0x68,0x32,0x7c,0xff,
+  0xfe,0x1d,0x23,0x91,0x90,0x55,0x38,0x1,0x3d,0x78,0xe7,0x59,0x32,0x3,0x1f,0x53,
+  0x1c,0x83,0x7d,0x8a,0x2d,0x30,0xaa,0x4f,0x32,0xc4,0xe6,0x6,0x43,0x1b,0x68,0x52,
+  0xc,0xb7,0xae,0x31,0x33,0x5c,0x7b,0x97,0xc0,0xa0,0xac,0xf5,0x1c,0xd8,0xf8,0xf9,
+  0xcc,0xc0,0x29,0x28,0xc1,0xa0,0xc5,0x2f,0x9,0x6d,0x6d,0x0,0xdb,0x9,0x40,0xdf,
+  0x31,0x12,0x13,0xb,0xc0,0x6c,0x2e,0x71,0xfb,0x15,0x83,0x24,0x30,0x75,0x31,0xd8,
+  0x0,0x3,0x9d,0x8d,0x85,0xe1,0x1a,0xb0,0x3d,0xc0,0xcd,0xc8,0xc9,0x20,0xaf,0xa1,
+  0x84,0x55,0xb,0x40,0x0,0xa1,0x4,0x0,0x23,0xb,0x2b,0x3,0x33,0x50,0xe4,0xc3,
+  0xfb,0x77,0xc,0xec,0xc0,0x64,0x23,0x2c,0x20,0x8,0xae,0xee,0x40,0xf5,0x2c,0x1b,
+  0x1b,0x1b,0xd9,0x1,0xc0,0xa,0xd4,0xaa,0xa1,0x0,0x34,0x5f,0xc6,0x83,0xe1,0xe3,
+  0xb3,0x7b,0xc,0xdf,0xbe,0x3d,0x63,0xe0,0x60,0x7f,0xcb,0xf0,0xed,0xeb,0x37,0x6,
+  0x69,0x4d,0x60,0x3e,0xfd,0x1f,0xc7,0xb0,0x66,0xee,0x2,0x6,0x8f,0x8c,0x7b,0xc,
+  0xbf,0x3e,0xca,0x2,0xb3,0x6,0x3b,0xc3,0xc7,0x7b,0x67,0xa1,0x19,0x8f,0x9,0x18,
+  0x0,0xff,0x8,0x6,0x0,0x48,0xf6,0x27,0x30,0x4b,0x5,0x2a,0xf1,0x31,0x4,0xaa,
+  0x73,0x32,0xbc,0x6,0x16,0x1f,0x6f,0x9e,0xbf,0x66,0x30,0xb3,0xb0,0x2,0x9a,0xc0,
+  0xc8,0xf0,0xf3,0xf7,0x5f,0xac,0xfa,0x0,0x2,0x8,0x25,0x7a,0x5f,0xbf,0x7a,0x5,
+  0x6e,0x26,0xf8,0x5,0x4,0x30,0xe8,0xea,0xe8,0x0,0xcb,0x81,0xef,0xc,0x5b,0x36,
+  0x6d,0xa7,0xc8,0xf3,0xa0,0xee,0xd7,0xd3,0x1b,0x33,0x18,0x7a,0x7b,0x25,0x18,0xdc,
+  0x22,0x22,0x81,0xb5,0xcb,0x35,0x6,0x49,0xd,0x51,0x60,0xaa,0xf8,0xc6,0x20,0x20,
+  0x26,0xd,0x2c,0x71,0x75,0x18,0x6e,0xef,0x99,0xc2,0x20,0xa3,0xf9,0x1b,0x58,0xdd,
+  0x72,0x2,0xdb,0x44,0xc0,0x18,0xf8,0xf6,0x90,0x41,0x58,0xae,0x10,0xe1,0x48,0x26,
+  0x26,0x22,0xca,0x40,0x46,0x6,0x76,0xb6,0x77,0xc,0xad,0x3d,0xde,0xc0,0xc0,0xfa,
+  0xc6,0x20,0x2a,0x78,0x88,0x41,0x43,0x5b,0x1f,0xec,0x79,0xb0,0xfc,0x4f,0xec,0x65,
+  0x0,0x40,0x0,0xa1,0x98,0xcc,0xce,0xc2,0x1,0xa6,0xcd,0x4d,0x8d,0x19,0x5e,0x7d,
+  0xe6,0x63,0x90,0x55,0x50,0x66,0xd0,0xd3,0x55,0xa0,0x28,0xf9,0x7f,0x78,0xf3,0x83,
+  0xe1,0xda,0xa5,0xab,0xc,0xe9,0x81,0x67,0x19,0xea,0x13,0x97,0x0,0xeb,0xe6,0x1f,
+  0xc,0xa2,0x52,0x8a,0xc,0xf,0x59,0x43,0x18,0xb8,0xc5,0x3e,0x33,0x5c,0x98,0x39,
+  0x8b,0xe1,0xea,0x9d,0xab,0xc,0x32,0x96,0x5f,0x18,0xfe,0x7f,0x12,0x2,0xe6,0xf9,
+  0xbf,0xc,0x77,0x6e,0x30,0x30,0x48,0x4a,0x9,0x90,0x61,0x9b,0x10,0x83,0xb3,0xdb,
+  0x19,0x6,0xb,0x9b,0x2c,0x20,0xdb,0xe,0x58,0xf0,0x7e,0x62,0x58,0xb5,0x74,0x21,
+  0xc3,0xd7,0xcf,0x7f,0xc1,0xd9,0x1b,0x1b,0x0,0x8,0x20,0x94,0x0,0x30,0xd6,0xb5,
+  0x0,0x16,0x50,0x49,0xc,0xfd,0xd3,0x37,0x31,0xe8,0xa9,0x9d,0x67,0x38,0xb9,0x21,
+  0x93,0x41,0x50,0x56,0x13,0x58,0x29,0xff,0x24,0x3b,0x0,0x9e,0xbf,0xff,0xc6,0x70,
+  0xff,0x2e,0xb,0x3,0xa7,0xf0,0x1d,0x6,0x6b,0x6f,0x43,0x60,0x92,0x50,0x60,0x28,
+  0x49,0xd9,0xc3,0xa0,0x23,0x71,0x89,0xe1,0xe2,0xdc,0x2d,0xc,0xef,0xee,0x2,0x3b,
+  0x48,0x5e,0x97,0x19,0x78,0x5,0xdf,0x1,0xfb,0xa,0x1f,0x19,0x9e,0xdd,0xdf,0xcd,
+  0x60,0xe0,0x36,0x95,0x41,0x5f,0xcf,0x80,0x24,0x7b,0x40,0x39,0xe4,0x1d,0xb0,0x8b,
+  0x63,0xa1,0x25,0xcd,0x70,0xfc,0x70,0x2a,0xc3,0xb5,0x67,0xbf,0x19,0x3e,0x3,0x9b,
+  0xf5,0xa6,0xb6,0xe,0xc,0xdc,0xbc,0xcc,0xc,0xdf,0xbf,0x7e,0xc3,0xaa,0xf,0x20,
+  0x80,0x50,0x2,0xe0,0x27,0xc3,0x37,0x6,0x7b,0x2b,0x47,0x60,0x67,0xe6,0x1f,0xc3,
+  0xa7,0x97,0xbf,0x19,0x44,0x25,0xcd,0x80,0x1a,0x19,0xc8,0x2e,0x8,0x3f,0x1,0xc3,
+  0x8d,0xe5,0xe5,0x46,0x86,0xb4,0xe2,0x70,0x6,0x66,0x76,0x61,0x86,0xad,0xd5,0xdd,
+  0xc,0x1f,0xee,0xbd,0x65,0x28,0x6f,0x52,0x6,0x76,0x58,0x98,0x19,0x98,0x45,0x35,
+  0x18,0x78,0xe4,0x80,0x5,0xd5,0x85,0x97,0xc,0x6f,0xf7,0xa6,0x32,0x3c,0x39,0xfc,
+  0x89,0xe1,0xf9,0xcf,0x4f,0xc,0xe,0xce,0x59,0x64,0xf5,0x7a,0x85,0x80,0x2d,0xbf,
+  0x2b,0x57,0x4f,0x33,0xac,0x6d,0x32,0x62,0x50,0x91,0x2,0x95,0x67,0x8c,0xc0,0xf2,
+  0x87,0x85,0xe1,0xf7,0xf7,0xff,0xc,0x6c,0x5c,0xd8,0xb3,0x31,0x40,0x0,0xa1,0x14,
+  0x82,0x57,0x2f,0x9e,0x67,0x48,0xc8,0x89,0x85,0xf3,0x8f,0x5c,0xb9,0xc4,0x60,0xf8,
+  0x19,0xd8,0x8a,0xe2,0x27,0xaf,0x3b,0xfa,0xfe,0xd5,0xb,0x86,0xff,0xcc,0xc0,0xd2,
+  0x88,0x4d,0x85,0xe1,0xeb,0xc7,0x47,0xc,0xe,0x69,0x51,0xc,0x2f,0x3e,0x7f,0x67,
+  0x60,0x79,0xcc,0xc9,0xc0,0x23,0xcb,0xc3,0xc0,0xfc,0xf7,0x2b,0xc3,0x7f,0xa6,0xaf,
+  0xc,0x46,0x9c,0xe9,0xc,0x2,0x4c,0x7f,0x81,0x55,0xa1,0xd,0x43,0x6c,0xd9,0x19,
+  0x32,0xd3,0x1a,0x23,0xc3,0xa7,0x8f,0xbf,0x19,0xc4,0x95,0xcd,0x18,0x74,0xea,0x2e,
+  0x30,0x5c,0xb9,0xf4,0x94,0xe1,0xe9,0xab,0x97,0xc,0xa2,0x12,0x92,0xc,0x5f,0xd8,
+  0x7f,0x31,0x8,0x72,0x60,0xaf,0x4e,0x1,0x2,0x8,0x25,0x0,0xd8,0x79,0xd8,0xc1,
+  0x35,0xd3,0xd3,0x97,0xf7,0x18,0xa4,0xe5,0x94,0x18,0x54,0x25,0x99,0x18,0x58,0x58,
+  0x79,0xc8,0x4e,0xfe,0xf2,0xb2,0x12,0xc,0x87,0x8e,0x8,0x30,0xcc,0x5d,0x12,0xc1,
+  0xf0,0xe3,0x3,0x30,0x45,0x19,0x9b,0x33,0xd8,0x7,0x79,0x1,0x3d,0xaf,0xcc,0x70,
+  0xeb,0xd0,0x5e,0x86,0x27,0xe7,0x2f,0x32,0x48,0xe8,0x6a,0x32,0xfc,0xfb,0xf2,0x89,
+  0x81,0x99,0xed,0x3f,0xc3,0xa3,0x73,0x47,0x18,0xd8,0x29,0xa9,0x6e,0xff,0xbc,0x67,
+  0xe0,0xe6,0x14,0x6,0x8f,0xed,0xe8,0x68,0xff,0x66,0x90,0x57,0xf2,0x4,0xb6,0x36,
+  0xb9,0x80,0x41,0xc3,0xc4,0xf0,0xed,0xd3,0x17,0xac,0x7a,0x0,0x2,0x8,0x25,0x0,
+  0xb4,0x95,0x64,0x18,0xaa,0x57,0xbd,0x60,0x50,0xfd,0x7f,0x81,0x41,0xe6,0xc6,0x25,
+  0x6,0x79,0x65,0x23,0x86,0xbf,0x8c,0xff,0x18,0x7e,0x1,0x1b,0x43,0x6c,0xac,0xa4,
+  0x8f,0x92,0x81,0xc6,0x2,0xe4,0xd,0x5,0x18,0x4c,0x8c,0x32,0x19,0xb8,0x94,0x80,
+  0x9d,0x93,0x37,0xef,0x19,0x6e,0xbd,0x78,0xcf,0xf0,0x87,0xff,0x25,0x3,0x3,0x28,
+  0x76,0x80,0x62,0x8f,0x5e,0x7e,0x66,0x50,0x94,0x95,0x64,0x78,0xba,0x77,0x21,0x83,
+  0x96,0x53,0x4,0x65,0x83,0x1e,0x5f,0x41,0x8d,0xb6,0xf,0xc0,0xaa,0x1b,0xd8,0xb6,
+  0x66,0x66,0x65,0xe0,0xe5,0x41,0xb8,0xf9,0x3f,0xf3,0x7f,0xac,0x7a,0x0,0x2,0x8,
+  0x25,0x0,0x4e,0x5e,0xbe,0xc5,0xd0,0x1a,0x6e,0x7,0x64,0xf9,0x83,0x7b,0xf3,0x3f,
+  0xbe,0x7d,0x65,0x78,0xfb,0xfe,0x3,0x3,0xb,0x72,0xdf,0x9c,0x4,0xf0,0xec,0xc9,
+  0x63,0x6,0x96,0xef,0x1f,0x19,0xee,0x31,0xa,0x33,0xfc,0x38,0x7f,0x87,0xe1,0xf3,
+  0xdb,0x77,0xc,0x4a,0x3a,0xda,0xc,0x42,0xdf,0x3e,0x33,0xdc,0xbd,0x74,0x84,0x81,
+  0x89,0x87,0x97,0xe1,0xfb,0xcb,0x77,0xc,0xb7,0xaf,0xee,0x62,0xe0,0xb0,0x4b,0x62,
+  0x70,0x8d,0xcc,0xa1,0x28,0x0,0x58,0x59,0x19,0xd1,0xbd,0x84,0xc8,0x20,0xff,0xb1,
+  0x8b,0x3,0x4,0x10,0xb,0x6a,0x5d,0xa,0x9,0xa5,0x4d,0x5b,0xb6,0x33,0xc8,0x48,
+  0x4a,0x32,0xf0,0xb,0x8a,0x32,0x5c,0xbf,0x76,0x89,0x41,0x5a,0x5a,0x9a,0x2c,0x7,
+  0x7d,0xfe,0xf1,0x89,0x41,0x94,0x87,0x9b,0x41,0x43,0x48,0x9c,0xe1,0xdd,0xdb,0x37,
+  0xc,0x62,0xc6,0xc0,0x56,0xe0,0xf7,0xcf,0xc,0x1b,0x92,0x92,0x18,0x5e,0x9b,0x47,
+  0x32,0x68,0x1b,0x98,0x32,0x88,0xbd,0x7f,0xc9,0xa0,0xea,0x11,0xc7,0x20,0xc9,0xc3,
+  0xcc,0x40,0x29,0x60,0x67,0xe7,0x2,0x76,0xa8,0xb0,0x37,0x78,0x58,0x58,0xb1,0x9b,
+  0xf,0x10,0x40,0x28,0x1,0xf0,0xe4,0xc5,0x33,0x6,0x6,0x7d,0x6,0x6,0x75,0x75,
+  0x75,0x60,0xd7,0x98,0x5,0xd8,0xbd,0xe4,0x63,0xe0,0x32,0x36,0x26,0xdb,0x41,0x2f,
+  0x1e,0x3e,0x62,0x50,0x55,0x67,0x62,0xf8,0xc7,0xc8,0x2,0xec,0x55,0x2,0xcb,0x12,
+  0x66,0x51,0x86,0x87,0xcb,0x26,0x33,0x3c,0x16,0x50,0x64,0xc8,0x28,0xae,0xa7,0xfa,
+  0xd0,0xf3,0xff,0xff,0x7f,0x19,0xfe,0xff,0xc7,0x35,0x26,0xf8,0x11,0xab,0x38,0x40,
+  0x0,0xa1,0xd4,0x6f,0x56,0x6,0xb6,0x90,0xc2,0x4b,0x4e,0x9e,0x41,0x59,0x59,0x11,
+  0xd8,0x2a,0xe3,0x0,0xf6,0xc8,0xf8,0xe0,0x29,0x83,0x54,0xa0,0xaa,0x61,0xce,0xb0,
+  0x6e,0xc7,0x21,0x6,0xb6,0xff,0x4f,0x19,0xb8,0xa5,0x6d,0x18,0x6e,0xef,0x5c,0xc1,
+  0x30,0x7d,0xf1,0x7a,0x60,0x4b,0x2b,0x88,0x86,0xe3,0xee,0xd8,0x93,0x3a,0x37,0x27,
+  0x3f,0x56,0x71,0x80,0x0,0x42,0x51,0xfd,0xf,0xda,0x65,0xfa,0xfe,0xfa,0xb,0xc3,
+  0x1f,0x76,0x6e,0x60,0xb2,0xf9,0xcf,0xf0,0xfc,0xe3,0x6b,0x6,0x5,0x60,0x80,0x90,
+  0x3,0x64,0x65,0x84,0x18,0x6c,0x2,0x27,0x31,0xec,0xbd,0x7c,0x9c,0xe1,0xd4,0xa,
+  0x2f,0x6,0x55,0x59,0x25,0x6,0x43,0x2d,0x39,0x6,0xb3,0x80,0x78,0x86,0x2f,0xc0,
+  0x9e,0x27,0xf,0x1b,0x33,0x3,0xbd,0xc0,0xcf,0x1f,0xd8,0xbb,0x83,0x0,0x1,0x84,
+  0x92,0x2,0xc4,0xb8,0xc5,0x19,0xae,0xbe,0x3d,0xcf,0xb0,0xfa,0xde,0x62,0x86,0x73,
+  0xaf,0xf7,0x33,0x4c,0xbd,0xdc,0xc6,0xa0,0xc8,0xd,0xea,0xc5,0xfc,0x25,0xdb,0x62,
+  0x26,0xd6,0xcf,0xc,0xce,0xe,0x96,0xc,0xc6,0x5f,0xae,0x31,0x8,0xbf,0x3c,0xc2,
+  0x20,0x1f,0x5a,0xce,0xa0,0x28,0xcc,0xc6,0xb0,0x61,0xf9,0x62,0x86,0x57,0xaf,0x5f,
+  0xd2,0xc0,0xab,0x7f,0x71,0x8c,0x54,0x63,0x57,0xd,0x10,0x40,0x28,0x29,0xe0,0xd5,
+  0xb7,0xf7,0xc,0xda,0x62,0x86,0xc,0x3c,0x8a,0x22,0xc,0x82,0xdc,0xfc,0xc,0x2a,
+  0x22,0xfa,0xc,0x4f,0xbf,0x3c,0x65,0x90,0x16,0x21,0xaf,0x10,0x3c,0x75,0xea,0x14,
+  0x3,0x13,0xb0,0x93,0x72,0x1a,0xd8,0xbb,0xfc,0x6e,0x95,0xc1,0x60,0xed,0xea,0xc7,
+  0x20,0xa3,0xaa,0xcb,0xb0,0x7c,0xe9,0x52,0x86,0x98,0xf8,0x4,0x86,0x59,0xb3,0x66,
+  0x31,0x24,0x27,0x27,0xa3,0x8e,0x0,0x53,0x8,0x1e,0x3d,0x7a,0xc6,0xb0,0x7b,0xcb,
+  0xe,0x86,0xd7,0xc0,0xf2,0x87,0x85,0x83,0x9d,0x41,0x5c,0x5e,0x8e,0xc1,0xc0,0xd4,
+  0x4,0xd8,0x39,0x12,0xc1,0xaa,0x1e,0x20,0x80,0x50,0x2,0xe0,0xfd,0xdb,0x67,0xc,
+  0x32,0xc0,0x1e,0x1a,0x1b,0x30,0x87,0xfe,0xfe,0xf7,0x9b,0x81,0xf3,0x3f,0x17,0xc3,
+  0x27,0x96,0xf,0x64,0xd6,0xc9,0x5f,0x19,0x64,0x64,0x64,0x18,0x78,0x79,0x79,0x19,
+  0x4c,0x80,0xf8,0xd6,0x33,0x2b,0x6,0x19,0x29,0x5e,0x86,0x59,0x33,0xa6,0x33,0xa4,
+  0x65,0x64,0x32,0xbc,0x2,0xf6,0x3c,0x13,0x13,0x13,0x19,0x2e,0x5d,0x2,0xb6,0x36,
+  0xd,0xd,0xc9,0xb2,0x3,0x34,0x54,0x87,0xdc,0x53,0xdc,0xb7,0x7d,0x7,0x3,0xc7,
+  0x91,0x8b,0xc,0x6e,0xd2,0x4a,0xc,0xfc,0x5c,0xd2,0xc0,0x86,0xd1,0x6f,0x86,0x77,
+  0xd7,0x5e,0x32,0x1c,0x3b,0x34,0x93,0xe1,0xbb,0x89,0x36,0x56,0x33,0x0,0x2,0x8,
+  0x75,0x44,0x88,0x15,0x32,0xfe,0x2e,0x22,0x23,0xc8,0x20,0x28,0x22,0xc0,0x20,0x28,
+  0xce,0xcf,0x20,0x2c,0x20,0x4a,0x56,0x21,0xf8,0x13,0xd8,0xfd,0x4,0x8d,0xd3,0x83,
+  0x2,0x0,0x4,0x84,0xd9,0x7e,0x30,0x2c,0x5e,0xbc,0x8,0xec,0xf9,0x77,0xef,0xde,
+  0x81,0x87,0xd7,0x41,0xa3,0x3d,0xe2,0xe2,0xe2,0xc,0xd7,0xae,0x5d,0x23,0x2f,0x7b,
+  0x21,0x79,0xfe,0xc2,0x85,0xb,0xc,0x8f,0x2e,0x5c,0x66,0x50,0x32,0xd0,0x65,0x78,
+  0x8,0x6c,0x55,0x3e,0xfd,0xf4,0x9e,0x81,0x95,0x91,0x89,0x41,0x9c,0x97,0x8f,0x21,
+  0x50,0xcd,0x80,0x41,0xeb,0xe2,0x7d,0x6,0x11,0x6e,0x1e,0x27,0x74,0x33,0x0,0x2,
+  0x8,0x25,0x0,0x84,0xf8,0x79,0x18,0x3e,0xbf,0xf9,0xc6,0xb0,0x7e,0xd5,0x76,0x86,
+  0xcb,0xa7,0x2f,0x33,0xac,0x5a,0xbd,0x8e,0xe1,0xdc,0xb9,0xd3,0xc4,0x8d,0xc6,0xa0,
+  0x81,0xa7,0x4f,0x9f,0x32,0xfc,0xfd,0x8b,0xc8,0x8f,0xc2,0x22,0xa2,0xc,0xb1,0xb1,
+  0x71,0xf0,0xc9,0x15,0x25,0x25,0xc8,0x8,0xd,0x28,0x90,0x40,0xc3,0x6e,0x94,0xc,
+  0xbc,0xee,0xdf,0x7f,0x80,0x41,0x42,0x52,0x9e,0x21,0xbc,0xa8,0x84,0x81,0x2f,0xd0,
+  0x9d,0x81,0x37,0xc6,0x97,0xe1,0xbc,0x81,0x2,0xc3,0xae,0x6f,0xaf,0x81,0x85,0xdf,
+  0xf,0x6,0x6,0x20,0x36,0x50,0x52,0x67,0x98,0x1f,0x9a,0x12,0xc1,0xc4,0xc8,0xa8,
+  0x7,0x9b,0xb7,0x1,0xfa,0x8b,0x9,0x20,0x80,0x50,0x2,0xe0,0xfd,0xe7,0xaf,0xc,
+  0xbc,0x22,0x5c,0xc,0x66,0x66,0x46,0xc,0xb2,0x2a,0x72,0xc,0xe,0xf6,0xd6,0xc,
+  0x3a,0x3a,0x7a,0x64,0x36,0x4a,0xd8,0xb1,0xa6,0x1c,0x90,0x47,0x41,0xd,0x2b,0xe,
+  0xe,0xe,0xc4,0x78,0x21,0x1b,0x1b,0x78,0x66,0x87,0x1c,0x10,0x97,0x90,0x0,0x8c,
+  0x20,0x76,0x6,0x1f,0x6f,0x1f,0x6,0x1,0x3e,0x1e,0x6,0x29,0x60,0x40,0x4b,0x2,
+  0x1b,0x5e,0x46,0x56,0x76,0xc,0x3c,0x3e,0xae,0xc,0xbb,0xb9,0xff,0x31,0x3c,0x3,
+  0xa6,0x6,0xd0,0xb8,0x9c,0xa3,0xa2,0x6,0x8b,0xb9,0x98,0x12,0x68,0xb0,0x91,0x1b,
+  0x1a,0xf9,0x2c,0x0,0x1,0x84,0x12,0x0,0xff,0xfe,0x42,0x86,0x69,0xe5,0x14,0x24,
+  0x18,0x84,0x4,0x85,0x18,0x4,0x5,0x84,0xc9,0x1e,0x11,0xfe,0xf8,0xf1,0x23,0xce,
+  0xe9,0xb3,0xb7,0x6f,0xdf,0x82,0x53,0x8,0x28,0x2b,0x80,0xed,0x93,0x93,0x3,0x76,
+  0x5a,0x48,0xef,0x74,0x25,0x24,0x26,0x30,0xb8,0xbb,0x6,0x30,0x68,0x6b,0xeb,0x1,
+  0x23,0xf9,0xf,0x3,0x37,0xf,0x7,0xc3,0xb7,0x6f,0x3f,0x18,0x9e,0x3e,0x7b,0xcd,
+  0xf0,0xed,0xf3,0x37,0x6,0x69,0x51,0x69,0x6,0x69,0x77,0x57,0x86,0x6b,0x2,0xc0,
+  0xae,0xf0,0x9f,0x3f,0xc,0xe7,0xee,0x3c,0x64,0x50,0xe5,0x95,0xd4,0x64,0x64,0x60,
+  0x54,0x80,0xce,0xd7,0xb1,0x3,0x4,0x10,0x8a,0xb,0x85,0x44,0x44,0xc0,0xb3,0xe8,
+  0x37,0xee,0xdd,0x65,0xf8,0xfc,0xf9,0x33,0x83,0xac,0xbc,0x3c,0xb0,0xd,0xfd,0xf,
+  0x98,0x94,0x79,0x49,0x2a,0xa9,0x41,0xf9,0x5f,0x48,0x48,0x8,0x67,0xbe,0xe5,0xe7,
+  0xe7,0x7,0x7,0x2,0xac,0x89,0xcd,0xcd,0xcd,0x4d,0xb2,0xe7,0x33,0xb3,0x12,0x19,
+  0xfc,0xfd,0x56,0x31,0x28,0x2a,0x6e,0x61,0xf8,0xf0,0xf1,0x2f,0xc3,0xad,0xab,0x6a,
+  0xc,0xbf,0x7e,0xa4,0x33,0x28,0x69,0x3b,0x3,0x23,0x8e,0x97,0xe1,0xc7,0xf7,0xef,
+  0x40,0x3f,0x3,0x7b,0xa0,0xbc,0x2,0xc,0x6f,0x55,0x55,0x18,0xe6,0x4e,0x5f,0xce,
+  0xf0,0xf2,0xd5,0x67,0x60,0xdb,0x83,0x9d,0x9,0x98,0xd,0x24,0xfe,0xfe,0xff,0xf,
+  0x1a,0x22,0x62,0x4,0x8,0x20,0x16,0xd4,0x2a,0x81,0x91,0xe1,0x3,0x30,0x1b,0x3c,
+  0x7e,0xfa,0x88,0x41,0x5a,0x4a,0x8e,0x81,0x8b,0x93,0x8b,0xe1,0xdb,0xd7,0x8f,0x24,
+  0x57,0x53,0xa0,0x9,0x56,0x7c,0xfd,0x7,0x9,0x9,0x9,0x30,0x26,0x17,0x4,0xfa,
+  0xa7,0x32,0x74,0x76,0x2f,0x60,0x50,0x53,0x3,0x37,0xdb,0x80,0xb1,0xcb,0xc9,0xf0,
+  0x5f,0xd1,0x9d,0xe1,0xd5,0xd9,0x73,0xc,0xbb,0xb6,0x1e,0x60,0x50,0x71,0x28,0x6,
+  0x76,0xc5,0x15,0x80,0x6e,0xff,0x2,0x8c,0x40,0xa0,0x12,0x3e,0x2e,0x86,0xdd,0xcf,
+  0xee,0x33,0xe8,0x31,0x9,0x3,0x33,0x3e,0x13,0xa8,0x48,0x3,0x36,0x6f,0x81,0x18,
+  0x18,0x0,0x0,0x1,0x84,0x92,0x5,0xfe,0x0,0x5b,0x67,0x2c,0xcc,0x8c,0xe0,0xd2,
+  0x59,0x59,0x59,0x9e,0x81,0x1d,0xd8,0x81,0x0,0x25,0x29,0x52,0x1,0xa8,0x64,0x47,
+  0xce,0xe3,0xd4,0x4,0xfe,0x4e,0x89,0xc,0xdd,0x7d,0x73,0xa0,0x9e,0x7,0x82,0x1f,
+  0xca,0xc,0xff,0x5f,0x76,0x31,0x30,0xde,0xe3,0x60,0x10,0xe7,0x78,0xcf,0x10,0x65,
+  0xf1,0x9b,0xe1,0xdb,0x99,0x16,0x86,0x7,0x77,0x2e,0x31,0xf0,0xf2,0x9,0x0,0x23,
+  0xe3,0x1d,0xc3,0x9d,0xdb,0x37,0x18,0xd8,0x80,0xfd,0x9a,0x3f,0xc0,0x2c,0xfe,0x15,
+  0xe8,0xc9,0xbf,0xff,0xc0,0x65,0x13,0x78,0xaa,0x1c,0x20,0x80,0x50,0x52,0xc0,0xdb,
+  0xf,0xaf,0x19,0xa4,0xd4,0x65,0x19,0x4c,0x8d,0x4d,0x19,0xbe,0x0,0x53,0xc2,0x8f,
+  0x1f,0xdf,0x81,0x79,0x93,0x8f,0x61,0x30,0x0,0x50,0x8d,0x12,0xe6,0x1d,0xcb,0x30,
+  0x6b,0xf9,0x72,0x60,0x0,0xc3,0x46,0x40,0x80,0xa9,0xf8,0x55,0x2a,0x3,0xe3,0xf3,
+  0x17,0xc0,0x80,0xb8,0xb,0xcc,0x5f,0x6c,0xc,0xcc,0x2c,0x4c,0xc,0xce,0x6,0x3f,
+  0x19,0x36,0x5f,0x5a,0x1,0x6c,0x6b,0x7c,0x61,0x38,0x7f,0xf9,0x14,0xc3,0xed,0x7b,
+  0xb7,0xc1,0xad,0x4e,0x4d,0x16,0x19,0x86,0x27,0x6f,0xdf,0xbe,0xff,0xcf,0xf0,0x1f,
+  0x34,0xe1,0x1,0x8a,0x21,0x66,0x80,0x0,0x42,0x9,0x0,0x36,0x66,0x48,0x17,0xe5,
+  0xfd,0xfb,0x8f,0xc,0xe2,0x12,0x62,0xc,0xa2,0xa2,0xa2,0xc0,0x7c,0xf4,0xf,0x98,
+  0xa7,0xbf,0x1,0xf3,0x2e,0x3b,0xd0,0x11,0xbf,0xc1,0x63,0xf4,0x6f,0xde,0xbc,0x63,
+  0xe0,0xe4,0xfc,0x2,0x2e,0x20,0x99,0x18,0x40,0x73,0x72,0xc0,0x62,0x5,0x54,0xe0,
+  0x81,0xa6,0xb1,0x80,0xe9,0xb,0x54,0xfa,0x33,0x82,0xdb,0x9e,0x90,0xde,0x19,0x82,
+  0xfd,0x1f,0x3c,0xce,0x0,0xca,0x51,0x7f,0xfe,0x40,0xd6,0x2e,0x31,0x33,0xb3,0x1,
+  0xb,0xdf,0x9f,0xe0,0x55,0x24,0xc8,0x65,0x8,0x68,0x6e,0x10,0x34,0x41,0xca,0x2,
+  0x14,0xfe,0xff,0x87,0x99,0x21,0x23,0x36,0x89,0x61,0xf6,0xb2,0x2d,0xc,0xf0,0xa2,
+  0xe5,0x7,0x30,0x2,0xdf,0xe5,0x0,0xbb,0x9c,0x6f,0x80,0x1a,0x9e,0x2,0x8d,0x65,
+  0x87,0x24,0x68,0xa0,0x3e,0x60,0xf2,0x63,0x10,0x65,0x7a,0xc8,0x50,0xd2,0xdb,0xc8,
+  0xc0,0xc2,0xc6,0xc9,0xf0,0xfd,0xf7,0xf,0x6,0xd1,0xbf,0x4c,0xc,0xf7,0xbe,0xbf,
+  0xfe,0x77,0xe4,0xe5,0xed,0xc3,0xc,0x90,0xf5,0x42,0x20,0x7,0xfc,0x1,0x8,0x20,
+  0x94,0x0,0xf8,0xb,0xad,0x8b,0xa5,0xa4,0xc4,0x18,0x6e,0x5e,0xbd,0xce,0xf0,0xfe,
+  0xcd,0x17,0x86,0x2f,0x7f,0xbe,0x30,0x58,0x5a,0x59,0x1,0x25,0xbf,0x32,0xac,0x5c,
+  0xb5,0x2,0x58,0x2d,0xea,0x30,0xdc,0xb8,0x71,0x1d,0x98,0x3a,0x7e,0x0,0x7b,0x8b,
+  0x4c,0x20,0x4d,0xc,0x8c,0xc0,0x26,0xe7,0x7f,0x60,0xb6,0x61,0xfa,0xf4,0x99,0xe1,
+  0x3f,0x33,0xb,0xb8,0xdd,0xfd,0xff,0x1f,0x64,0x9c,0x8e,0x11,0x98,0x9,0x61,0xd5,
+  0x21,0xb,0xd0,0x37,0x7f,0xfe,0xfe,0x2,0xb7,0x2b,0xfe,0xfe,0x81,0x4,0x8,0x68,
+  0xd0,0x92,0x5,0x18,0xf0,0xf,0xee,0x3d,0x0,0x7b,0x9c,0x95,0x9d,0xd,0x98,0xbc,
+  0x55,0x80,0xe6,0xff,0x2,0x7,0xc,0x17,0x37,0x2f,0x43,0x6f,0x77,0x2b,0xc3,0xd2,
+  0x15,0x7b,0x19,0xf8,0x61,0x23,0xe5,0x3f,0x80,0xa9,0xf2,0x59,0x1,0x30,0xa6,0x80,
+  0x16,0xfd,0x7e,0xce,0xc0,0xc0,0xca,0xd,0xaa,0xc2,0x20,0x15,0x16,0xd0,0xfc,0x2f,
+  0x8f,0x3f,0x32,0x8,0xfd,0xfe,0xc4,0x20,0xfc,0xef,0x19,0xc3,0xed,0x77,0xc2,0xc,
+  0x52,0x12,0x22,0xc,0x1f,0x9f,0x3f,0x67,0x38,0xf8,0xe8,0xf6,0xf1,0x6f,0x7f,0x7f,
+  0x5d,0x80,0x8f,0x1,0x33,0x30,0xfc,0x2,0x8,0x20,0x94,0x0,0xe0,0xe1,0x85,0x8c,
+  0x9d,0xbf,0x7b,0xfb,0x81,0x41,0x5c,0x56,0x9a,0x81,0x5f,0xe8,0x7,0x83,0x0,0xb0,
+  0x2a,0xfc,0xf6,0xf3,0xb,0x3,0x1f,0xf,0x2f,0x43,0x5a,0x5a,0x1a,0xc3,0xb4,0xa9,
+  0x53,0x19,0xac,0xed,0x6c,0x18,0xd4,0x55,0xd5,0x19,0x3e,0xbd,0x7b,0xcb,0xf0,0x53,
+  0x4c,0x9c,0xe1,0xdf,0x99,0x53,0xc,0x7c,0x93,0xfb,0x19,0xde,0x2c,0x5d,0xce,0xc0,
+  0x74,0xff,0x2a,0xd0,0x43,0x4c,0xc,0x7f,0xfe,0xff,0x1,0x17,0xab,0xa0,0x99,0xf5,
+  0xdf,0x40,0xc8,0xcb,0xc1,0xcf,0x70,0xe3,0xf6,0x75,0x6,0x69,0x49,0x29,0x70,0x19,
+  0xf3,0xe7,0xdf,0x3f,0x70,0xe1,0xfa,0xef,0x17,0x50,0x1d,0x50,0x91,0xbe,0x81,0x34,
+  0x30,0x70,0x18,0x19,0xd8,0x80,0xb1,0x77,0xe3,0xda,0x45,0x6,0x3e,0x1,0x1,0x6,
+  0x63,0x43,0x77,0x6,0x4b,0x97,0x4,0x86,0x25,0x5d,0xea,0xc,0xfc,0xcc,0xe6,0xc,
+  0xbf,0xde,0xbf,0x65,0x60,0xfc,0x7d,0x89,0x81,0xf5,0x89,0x18,0xa4,0x7a,0xfe,0xf9,
+  0x90,0x1,0x9c,0x44,0x40,0x9e,0x87,0x6,0xc0,0xfb,0xf,0xdf,0x19,0x3e,0x3f,0xff,
+  0xc0,0x20,0xf0,0xef,0xb,0x83,0x96,0x24,0x30,0xc0,0xff,0xab,0x82,0xe7,0x39,0xaf,
+  0xbc,0x7c,0xc0,0xf0,0xe5,0xef,0xaf,0xeb,0xc,0x90,0xd5,0x61,0x5f,0x61,0x18,0x20,
+  0x80,0x50,0x2,0xe0,0xf,0x74,0xa9,0xca,0xbb,0x8f,0x1f,0x18,0xd8,0x80,0x5,0xe0,
+  0xd2,0x25,0x8b,0x18,0xac,0xed,0x9d,0x19,0xb4,0x80,0x25,0xe,0x2c,0x16,0x39,0x81,
+  0xf5,0xf5,0xb1,0xa3,0x47,0x19,0xe,0xed,0x3b,0xc8,0xf0,0xe5,0xfd,0x67,0x6,0x79,
+  0x67,0x5b,0x6,0xee,0x7,0xd7,0x19,0xb8,0xf6,0xbe,0x62,0x60,0xd8,0xcb,0xc2,0xc0,
+  0x74,0x19,0x58,0x22,0x83,0xd7,0x19,0xfc,0x87,0x62,0xe8,0x92,0x43,0xa6,0xbf,0x40,
+  0x37,0x6a,0x32,0xdc,0x7,0xcd,0xd5,0x30,0x43,0x9d,0x1,0x6e,0x8f,0xc1,0x3a,0x70,
+  0xff,0xc0,0x4a,0x81,0x65,0x30,0xc3,0xcb,0x8f,0x92,0xc,0x9c,0x42,0xbf,0x18,0x36,
+  0x2e,0x5b,0xc1,0xe0,0x6c,0xc4,0xc8,0xa0,0x6c,0x54,0xc5,0xf0,0xff,0x27,0x13,0x3,
+  0x13,0xe3,0x6f,0x86,0xef,0xdf,0x5f,0x32,0xfc,0x7d,0xb3,0x84,0x81,0xe3,0xdf,0x19,
+  0x60,0xe9,0xe,0xc,0x8,0x60,0xf6,0x4,0x27,0x37,0x60,0xa0,0x7e,0xfd,0xfe,0x97,
+  0xe1,0xf5,0xfd,0x57,0xc,0xfc,0x4c,0x5f,0x19,0xfe,0x1,0x93,0x3d,0x33,0xb7,0x18,
+  0xb0,0xa4,0xe3,0x66,0xb8,0x78,0xe8,0x3a,0x3,0x9b,0x20,0xb0,0xe5,0xf9,0xed,0x32,
+  0xcc,0xf3,0xa0,0x15,0x63,0xa0,0x3c,0xfc,0x13,0x20,0x80,0x50,0x2,0x80,0x19,0x3a,
+  0x7f,0xc6,0xcf,0xc3,0x5,0x8c,0x1,0x11,0x86,0xda,0xda,0x46,0x86,0x5f,0x3f,0xbf,
+  0x33,0xec,0xda,0xb9,0x9b,0xc1,0xd3,0xdb,0x1b,0x32,0x6e,0x78,0xfc,0x38,0x83,0x9e,
+  0x9e,0x31,0x3,0x3f,0xb0,0xaf,0xc0,0xca,0x8,0x8c,0x49,0xa0,0xa5,0xca,0xbc,0xb2,
+  0xc,0xfb,0xa4,0xee,0x33,0xec,0x75,0xbe,0xc2,0x20,0x25,0x76,0x8e,0xe1,0x1f,0xb,
+  0xf2,0xca,0x9b,0xff,0x70,0x8a,0x99,0x83,0x99,0xe1,0x3f,0xd0,0xe,0xec,0xad,0x5e,
+  0x26,0xf8,0xa8,0x4,0xd3,0xf7,0x5f,0xc,0x22,0xf7,0xbf,0x31,0x1c,0xba,0x70,0x89,
+  0x61,0x56,0x66,0x0,0xa8,0x10,0x0,0x77,0xc9,0x99,0x59,0x81,0xd9,0x8d,0xb,0xd8,
+  0x5c,0xd7,0x8,0x61,0x60,0xb8,0xb5,0x94,0x81,0xe3,0x13,0x30,0xef,0xf3,0x89,0x83,
+  0x3,0xf1,0xcf,0x6f,0x60,0xd9,0xf4,0xf0,0x5,0x3,0xc7,0xef,0x8f,0xc0,0xa2,0xe0,
+  0x37,0xc3,0x87,0xef,0xff,0x18,0x8e,0xde,0xfd,0xc2,0x70,0xf3,0xde,0x76,0x86,0xef,
+  0xb2,0x5c,0xc,0x13,0x8a,0x8a,0x19,0x12,0x12,0x12,0xbe,0x23,0x5,0x0,0x88,0xfd,
+  0xb,0x20,0x80,0x58,0x10,0x2e,0x4,0x5a,0xc3,0x8,0x61,0xfe,0xf8,0xf9,0x83,0x81,
+  0xe5,0xc7,0x4f,0x86,0x97,0x2f,0x9e,0x81,0xdb,0xec,0xaa,0x5a,0x9a,0xe0,0xde,0x1d,
+  0x1f,0x1f,0x1f,0x83,0x9d,0x95,0x5,0xb0,0xe1,0xc2,0xa,0x2e,0xa4,0xa4,0xf9,0x84,
+  0x18,0x5e,0x3,0x3d,0x75,0xef,0xd1,0x4b,0x6,0x7d,0x26,0x6e,0x86,0x9b,0x57,0x1e,
+  0x31,0xc8,0x9c,0x7f,0xc3,0xf0,0x8f,0x95,0x9,0x69,0xba,0x2,0x65,0xee,0x2,0x3e,
+  0x8b,0x83,0xbc,0xc8,0xb,0x99,0xd,0xac,0xa3,0x80,0x65,0x18,0x33,0xc3,0x9f,0xe7,
+  0x7f,0x19,0x58,0x6f,0x5d,0x66,0x50,0x55,0xc9,0x4,0x9,0x2,0xe5,0xfe,0x43,0xfa,
+  0xb,0xc0,0x5e,0x2a,0x68,0xdc,0xef,0x9b,0x92,0x1b,0xc3,0xff,0x5b,0x9b,0x18,0x38,
+  0x7f,0x7d,0x64,0xf8,0xf2,0x9f,0x87,0xe1,0xd6,0xe5,0xc7,0xc,0x3c,0xff,0x80,0xb5,
+  0xd6,0xbf,0x1f,0xc,0xac,0x4c,0xff,0x19,0xce,0x3d,0xfc,0xc6,0x70,0xe1,0xda,0x73,
+  0x6,0x46,0x36,0x56,0x86,0xd8,0xf0,0x58,0x6,0x41,0x41,0x41,0x6,0x6,0xc4,0x42,
+  0xc9,0x6f,0xd0,0x69,0xcb,0xdf,0x0,0x1,0xc4,0x2,0x4d,0x8c,0xa0,0xe1,0x92,0x9f,
+  0x42,0x3c,0xc2,0xd0,0xc5,0xa,0x2,0xc,0xf7,0xaf,0x5c,0x63,0x78,0xf5,0xe9,0x2b,
+  0x83,0xb8,0xa8,0x14,0x83,0xba,0x8a,0x2a,0x30,0x74,0xfe,0x43,0xcb,0x9,0x41,0x86,
+  0x4f,0xef,0xbf,0x1,0x53,0x1c,0x13,0xc3,0x2f,0x60,0xb6,0x78,0xf7,0xed,0xd,0xc3,
+  0x4f,0x60,0xc3,0x47,0xfd,0xb7,0x10,0x83,0xc1,0x1d,0x41,0x6,0xbe,0x77,0x62,0x40,
+  0xa7,0x32,0x62,0xf6,0xb6,0x18,0x21,0x4b,0xdc,0x60,0x6c,0xa6,0xff,0xb0,0xf8,0x46,
+  0x55,0xf3,0x1f,0xe8,0x49,0x46,0xa0,0xb9,0x6f,0x81,0xb1,0x6a,0x63,0xa6,0xce,0xc0,
+  0x4,0x1a,0x4b,0xfc,0x5,0x5e,0x54,0x4,0x74,0xc3,0xf,0x60,0x99,0xf1,0xe,0x98,
+  0x8a,0x3e,0x33,0x7c,0xff,0xfa,0x87,0xe1,0x13,0xaf,0x5,0x3,0xef,0xdb,0x43,0xc,
+  0xf7,0x1e,0xbf,0x64,0xf8,0x7,0x8c,0x20,0x16,0x6e,0x60,0x30,0x1,0xcb,0x82,0xed,
+  0x37,0xff,0x32,0x54,0xae,0x7b,0xcf,0xc0,0xcb,0x2f,0xc4,0x90,0x92,0x90,0xce,0xf0,
+  0xff,0xc5,0x4f,0x6,0x11,0x7,0xf0,0x78,0x0,0x68,0xc9,0xc9,0x27,0xa4,0x0,0xf8,
+  0x7,0x10,0x40,0xa0,0x0,0xf8,0x3,0xad,0x16,0x3e,0x3f,0x7f,0xf3,0x8a,0x81,0x87,
+  0x95,0x87,0x81,0x1d,0x58,0x88,0x29,0x2a,0xa9,0x32,0x68,0x0,0xab,0xa6,0x9f,0xc0,
+  0x4e,0xc4,0x6f,0xa0,0x87,0xff,0x3,0xab,0x18,0x41,0x1,0x56,0x6,0x61,0xd,0xf,
+  0x86,0x55,0x67,0x58,0x18,0x4c,0x35,0x98,0x19,0x76,0x5d,0xf8,0xce,0xb0,0x38,0x94,
+  0x93,0x41,0x8,0xd4,0x8b,0x2e,0x29,0x64,0x50,0x7,0xfb,0xc2,0x92,0x2a,0xf5,0xbe,
+  0xbd,0x5b,0x20,0xc3,0xbc,0xde,0x68,0x60,0xec,0x3,0x3d,0xf5,0xe7,0x27,0xb0,0xda,
+  0xfc,0x1,0xcc,0xee,0x6f,0x81,0x59,0xee,0x33,0xc3,0xb7,0x4f,0xdf,0x18,0xbe,0x7f,
+  0xfe,0xce,0xf0,0xfd,0x27,0xb,0xc3,0xfd,0x67,0xbc,0xc,0x5c,0x6f,0x6f,0x30,0x88,
+  0x8,0x72,0x32,0xb0,0x3,0xcb,0x99,0x79,0xa7,0x7f,0x33,0xf4,0xee,0x78,0xcf,0x60,
+  0xa8,0x6f,0xc2,0x90,0x98,0x96,0x8,0x6e,0x76,0x83,0xaa,0x73,0xe8,0x32,0xbf,0x57,
+  0xd0,0x40,0x0,0x7,0x0,0x68,0xad,0x30,0x40,0x0,0xb1,0x40,0x43,0x2,0x94,0x34,
+  0xde,0x6a,0xab,0x68,0xf9,0x32,0x60,0x5f,0x2a,0xcb,0x8,0x2d,0xae,0xc0,0xeb,0x9,
+  0xa7,0x2c,0x4f,0xec,0xfb,0x71,0xe5,0xf,0x83,0xf,0xf,0x13,0x83,0x30,0xd7,0xc2,
+  0x22,0x6,0xa4,0x5,0xc8,0xe8,0xa9,0x9e,0xa8,0x39,0x2d,0xc4,0x62,0x4d,0x60,0x9f,
+  0x88,0x47,0xb4,0xa2,0xbe,0x2c,0xf7,0xe3,0xfb,0x1b,0x8c,0x7c,0xdc,0xc0,0x56,0xcd,
+  0xdf,0xf,0xc0,0x8e,0xdc,0x2f,0x60,0x1e,0xff,0xc9,0xf0,0xeb,0x1b,0xb0,0x5a,0x6,
+  0xa6,0xca,0xef,0x5f,0x7f,0x32,0x7c,0xfa,0x8,0x6c,0xa8,0x1,0x6d,0xfd,0xf1,0x8f,
+  0x8d,0x81,0x13,0xd8,0xbf,0xe0,0x62,0x63,0x66,0x58,0x73,0xec,0x5,0xc3,0xcc,0x43,
+  0xbf,0x81,0x1d,0x39,0xc1,0x9f,0x6f,0xfe,0xbd,0x3a,0x1b,0x1f,0x1f,0x7f,0x19,0xea,
+  0x61,0xd0,0x12,0xd9,0x17,0xa0,0xb9,0x5a,0x28,0xfb,0x1b,0xac,0x18,0x6,0x8,0x20,
+  0x90,0xe5,0x9c,0xc,0x84,0x17,0x4b,0x33,0x42,0xc5,0xd8,0xa0,0xf2,0x1c,0xd0,0x94,
+  0xfb,0xf,0x9a,0x7a,0x7e,0xc0,0xf2,0x14,0x99,0x1,0xc0,0x6,0xb5,0x5f,0xc8,0x2f,
+  0xd1,0xd3,0x91,0xe3,0x7,0x8f,0xd5,0xf1,0xc3,0x47,0xa5,0x33,0x52,0x63,0x39,0xb9,
+  0xd8,0xbf,0x33,0x44,0x4,0xd9,0x31,0x70,0x0,0x4b,0xf9,0x77,0xaf,0x3f,0x80,0x57,
+  0x7f,0x7e,0xfd,0x2,0x8c,0x7d,0x60,0x41,0xc9,0x8,0x6c,0x44,0xfd,0x7d,0x71,0x89,
+  0x41,0x85,0xe9,0x36,0xc3,0xce,0xd3,0x4f,0x19,0x9a,0xb7,0x7e,0x67,0xe0,0xe6,0xe3,
+  0xfd,0xf5,0xfc,0xe3,0x8b,0xcd,0x1f,0x5f,0x7f,0xba,0xf,0x9a,0x9b,0x1,0xe2,0x37,
+  0x50,0x4f,0xbf,0x85,0x6,0xc6,0x7,0x68,0x39,0xf0,0x13,0x98,0x0,0xfe,0x1,0x4,
+  0x10,0xb,0xd4,0xd1,0x5f,0xa1,0x59,0xe1,0x2b,0x3,0xf6,0xe5,0xf2,0xc8,0x29,0x80,
+  0xd,0x8a,0x61,0xe5,0xd7,0x2f,0x24,0xcf,0x93,0x9b,0x2,0x40,0x29,0xe,0xd4,0xe6,
+  0xfe,0x75,0x66,0xff,0xf9,0xb3,0xef,0x5f,0xbf,0xff,0x9e,0x94,0x98,0x95,0xa2,0xa0,
+  0x62,0xc1,0xd0,0xd8,0x54,0xcb,0x70,0xf8,0xc8,0x59,0x86,0xa6,0x92,0x78,0xb0,0xe7,
+  0x7f,0xfd,0xfc,0x5,0x6e,0x9d,0xb2,0xb0,0x30,0x33,0xb0,0x1,0x1b,0x4d,0xdf,0x80,
+  0x8d,0xa5,0xe9,0x3b,0xef,0x33,0x2c,0x3a,0xf2,0x9b,0x81,0x47,0x5c,0xf0,0xcf,0x87,
+  0x1f,0xef,0x36,0x1,0x3d,0x7f,0x3,0x34,0x3c,0x8,0xc5,0xa0,0x3e,0xf7,0x47,0x68,
+  0x2a,0xff,0xe,0x8d,0x2c,0x78,0x44,0x1,0x4,0x10,0xb,0xd4,0xd1,0xb0,0xf5,0xf4,
+  0xb8,0x16,0x5,0x31,0x42,0xc5,0x61,0x81,0xc0,0x8c,0x14,0x0,0x7f,0x91,0x3c,0xff,
+  0x8f,0x82,0x0,0x0,0x37,0x4f,0xa5,0x95,0xa4,0xa4,0xbf,0x7d,0xfa,0x21,0xaf,0xa4,
+  0xa8,0xc4,0x3c,0x71,0x62,0x17,0xc3,0xad,0x5b,0x57,0x19,0x6e,0xdd,0xfc,0xcf,0xa0,
+  0xad,0xac,0xc0,0x10,0xe0,0x6a,0xc1,0xc0,0xca,0xc2,0xa,0x5e,0xb4,0xf9,0xee,0xc3,
+  0x67,0x86,0x1b,0x17,0x6f,0x31,0x6c,0xde,0x75,0x8e,0xe1,0xee,0x3d,0x66,0x6,0x6e,
+  0x71,0xce,0x2f,0xbf,0x59,0x7e,0xec,0x79,0xf1,0xe0,0xd5,0x79,0xa8,0xc7,0x1f,0x43,
+  0x53,0xc0,0x47,0x58,0x95,0x7,0x75,0xdf,0x5f,0xa4,0x46,0xa,0x3,0x40,0x0,0xb1,
+  0x20,0x71,0xfe,0x11,0xe1,0x50,0x58,0x4a,0x60,0x42,0x99,0x4e,0x40,0x33,0x94,0x9c,
+  0x89,0x5d,0x68,0x4,0x30,0x9d,0xde,0x77,0xee,0x9a,0xb8,0xb8,0xa4,0xc4,0x8e,0x1d,
+  0x5b,0x19,0x4e,0x9d,0x3a,0xe,0x57,0x70,0xf8,0xd4,0x65,0x6,0xb,0x43,0xd,0x86,
+  0xb,0x57,0xef,0x31,0x1c,0x39,0x73,0x9d,0xe1,0xce,0xc3,0x97,0xc,0x5f,0xbe,0xfc,
+  0x64,0xf8,0xf1,0xe1,0x17,0x3,0xaf,0xc,0xf7,0xc3,0x77,0x1f,0xde,0xec,0x7b,0xfb,
+  0xe2,0xfd,0x4d,0xa0,0xd2,0xfb,0xd0,0x0,0x78,0x9,0x4d,0xf6,0xb0,0xec,0x89,0x15,
+  0x0,0x4,0xd0,0x60,0xd9,0x13,0x0,0x5b,0xb0,0xd,0x2a,0x8b,0x2c,0x80,0x4d,0xe4,
+  0x4d,0xc0,0xde,0x1f,0x7c,0x10,0x82,0x99,0x89,0xe9,0x97,0x10,0x9f,0x10,0x1b,0x1f,
+  0x2f,0x37,0xc3,0xd7,0x1f,0x3f,0xff,0x72,0x9,0x70,0xff,0xfe,0xf9,0xf1,0x37,0x8b,
+  0xba,0xa5,0x3c,0xcb,0xbe,0x8d,0x87,0x17,0x40,0x4b,0xf7,0x67,0xd0,0x58,0x7f,0xc,
+  0x2d,0xf0,0x60,0xd5,0xdd,0x6f,0xdc,0x53,0x69,0xff,0x19,0x0,0x2,0x88,0x65,0x90,
+  0x4,0xc0,0x7f,0xa8,0x43,0x41,0x49,0xf5,0x37,0xd0,0xf3,0xb7,0xa0,0x85,0x15,0xa8,
+  0xd4,0xfe,0x2a,0x29,0x27,0x29,0x5,0x54,0xc0,0xfd,0xfa,0xdd,0xbb,0x77,0x9f,0x3e,
+  0x7d,0xfe,0xc0,0xfd,0x93,0x8b,0xe5,0xeb,0xa7,0x6f,0x1f,0x9f,0x6e,0x7c,0xf4,0x9,
+  0x5a,0xc8,0x3d,0x87,0xe2,0x17,0xd0,0xc0,0xf8,0xa,0xf5,0x3c,0xc1,0x19,0x1d,0x80,
+  0x0,0x1a,0x6c,0xbb,0x42,0x98,0xa0,0xb5,0x1,0xa8,0xd9,0x26,0xa,0x1a,0xa1,0x7,
+  0x8d,0xaf,0x40,0x31,0xb7,0x98,0xac,0xa8,0xd0,0xab,0xc7,0xaf,0xdf,0x40,0x3,0xea,
+  0x2b,0x34,0x7f,0xbf,0x43,0xaa,0xdf,0x3f,0x40,0xb,0xbb,0xdf,0xc4,0x78,0x1e,0x94,
+  0x2,0x0,0x2,0x88,0x65,0x90,0x5,0x0,0x2c,0x25,0x7c,0x61,0x40,0xac,0xeb,0xff,
+  0xb,0xad,0xb6,0xd8,0x81,0x9e,0x67,0x44,0xaa,0xb5,0xbe,0x20,0xb5,0xeb,0x3f,0x41,
+  0x3,0xe5,0x1b,0xb4,0x2c,0x21,0x7a,0x8c,0x1d,0x20,0xc0,0x0,0x1c,0x2e,0x8a,0xb8,
+  0xe2,0x1,0xb7,0x9d,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,

+    // /home/matthew/pencil_dev/icons/clear.png
+  0x0,0x0,0xd,0x7d,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x28,0x0,0x0,0x0,0x25,0x8,0x6,0x0,0x0,0x0,0x30,0x60,0xab,0xb3,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+  0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd8,
+  0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+  0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+  0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+  0xb,0x0,0x0,0xc,0xf3,0x49,0x44,0x41,0x54,0x78,0xda,0x84,0xcd,0x31,0xa,0x80,
+  0x30,0xc,0x85,0xe1,0x26,0xd2,0xe,0xa5,0x3d,0x80,0x63,0x67,0xef,0xe0,0x5,0x3c,
+  0xbf,0x20,0x88,0x9b,0x93,0x74,0x29,0xa5,0x94,0xa6,0x60,0x8c,0x17,0xd0,0x6f,0x7a,
+  0x43,0xf8,0x3,0xcc,0xac,0xbe,0x10,0x11,0x18,0x63,0x38,0xa5,0x84,0xce,0xb9,0x41,
+  0xdc,0x42,0xd5,0x5a,0xd9,0x5a,0xcb,0xef,0x96,0x1b,0x4,0x0,0x8b,0x88,0x63,0x29,
+  0x65,0x8e,0x31,0x2e,0xad,0xb5,0x49,0x6b,0x4d,0x39,0xe7,0xd3,0x7b,0x7f,0x84,0x10,
+  0xd6,0xde,0xfb,0x26,0xff,0x76,0xe9,0x5c,0x92,0x6e,0xea,0x87,0xb4,0xe1,0x11,0x40,
+  0x8c,0xd8,0x1c,0x8,0x34,0x9c,0x91,0x9d,0x9d,0x1d,0x24,0xc1,0x4,0xc4,0x2c,0x40,
+  0xcc,0x9,0xc4,0x2,0x7f,0xfe,0xfc,0xe1,0x6,0x3a,0x4,0xa4,0xe7,0x27,0x90,0xfa,
+  0x1,0x74,0xec,0x6f,0x90,0x9a,0x2f,0x5f,0xbe,0x8,0xbc,0x7b,0xf7,0x4e,0x1e,0xe4,
+  0x28,0x20,0xdf,0x12,0x28,0x6e,0xc8,0xcd,0xcd,0x2d,0x9,0xc4,0xcc,0x2c,0x2c,0x2c,
+  0x7f,0x5e,0xbf,0x7e,0xfd,0xe5,0xef,0xdf,0xbf,0x2f,0x81,0x8e,0xbd,0x9,0xf4,0xd4,
+  0x41,0x9,0x9,0x89,0xfd,0x40,0x75,0xf7,0x81,0xf2,0xdf,0x81,0x34,0xde,0x10,0x2,
+  0x8,0x40,0x7,0x19,0xa4,0x0,0x8,0xc3,0x40,0x90,0xaa,0x94,0x4,0x11,0x72,0x51,
+  0x51,0xda,0x7b,0xff,0x8f,0xff,0xf1,0x13,0x12,0xf1,0xe6,0xe4,0xae,0x87,0x52,0x48,
+  0xe8,0x76,0x76,0x86,0x8f,0x59,0x22,0x34,0x1,0x93,0xb9,0x47,0x4c,0x15,0x4c,0x34,
+  0xda,0x37,0x2c,0x2e,0x40,0x74,0xc0,0x3f,0x7c,0x74,0x85,0x21,0xf6,0xbd,0xbb,0x4f,
+  0x0,0x14,0xcc,0x54,0x33,0xdb,0x55,0x75,0xa6,0xbd,0x84,0x7d,0x11,0xc9,0x18,0x14,
+  0xf2,0xc,0xf0,0x8d,0xf9,0x4a,0x4e,0x14,0x3d,0x78,0x7f,0x72,0xee,0xe8,0xfc,0x7,
+  0xf8,0xa,0xc0,0x26,0x19,0xab,0x0,0x8,0x3,0x31,0xb4,0x2d,0x9c,0x8e,0x42,0xbb,
+  0x3a,0x3a,0xb8,0xa8,0xff,0xbf,0xf6,0x43,0x5c,0x3b,0x15,0xa,0x2e,0x37,0xd8,0xea,
+  0x2b,0x38,0x3a,0x1c,0x84,0x92,0x5e,0x42,0x2e,0x7f,0x6,0x47,0x12,0xf2,0x9c,0x6a,
+  0x46,0x74,0x65,0xf9,0xe,0xde,0x54,0x75,0x61,0x26,0xf0,0x50,0x4a,0x69,0xf0,0x2a,
+  0xa6,0x1b,0x9c,0x7,0x53,0x2e,0x84,0x20,0x18,0x13,0xde,0x5,0x5e,0xaf,0x82,0x45,
+  0xdc,0xc0,0x31,0x24,0xe5,0xc0,0x82,0x39,0x9f,0x52,0x3a,0x72,0xce,0xae,0xff,0xa1,
+  0x3a,0x11,0xfe,0x89,0xde,0xc5,0xdc,0x54,0xa4,0x7d,0x89,0xd6,0x7e,0x61,0x76,0xdb,
+  0x57,0x0,0x1e,0xc9,0x18,0x85,0x42,0x18,0x8,0xa2,0xd3,0xb,0x29,0x82,0x49,0x67,
+  0x95,0x52,0xfb,0x7f,0xff,0x3b,0x4,0xec,0x16,0x2,0x36,0x41,0x25,0x8d,0xad,0xf0,
+  0xdf,0x36,0xb6,0x9,0x3b,0xf3,0x76,0x66,0xbf,0x8a,0x19,0xf6,0x3a,0x3,0x69,0x6c,
+  0x6c,0xf8,0x63,0xfb,0x15,0x93,0x32,0xc6,0x58,0x7a,0xef,0x33,0x26,0x53,0x29,0xc5,
+  0x85,0xe5,0xc6,0xfc,0x89,0x54,0x54,0x6b,0x55,0x8,0x41,0xc0,0xf9,0x5d,0xa,0x78,
+  0xb9,0x26,0xc0,0xca,0x39,0xab,0xb5,0x26,0x92,0x55,0x4a,0x49,0xa4,0xe9,0x33,0xaf,
+  0x99,0x3d,0xe8,0x1b,0x92,0x7b,0x8c,0xd1,0x78,0x3b,0xf1,0xbf,0x0,0xbe,0x69,0xa6,
+  0xa3,0x7f,0xc0,0x32,0x1c,0xf4,0x2f,0x0,0x93,0x64,0x88,0x3,0x20,0xc,0x43,0xd1,
+  0x6,0x83,0xc1,0x4c,0x70,0x81,0x25,0xdb,0x5,0x50,0x1c,0x87,0x5b,0x72,0x6,0x3c,
+  0x72,0x17,0xa8,0x6c,0x46,0xc0,0x90,0xf0,0x5a,0x85,0xa8,0xd9,0xba,0xbf,0xbe,0xdf,
+  0xff,0xcf,0xe0,0x68,0x66,0x2b,0x79,0xd9,0x58,0xe3,0xc2,0xa7,0x33,0xc3,0x4c,0xbe,
+  0xea,0xd6,0xda,0xe0,0x2e,0xd4,0x5a,0x5,0x4a,0x87,0x9,0x67,0x80,0x11,0x44,0x85,
+  0x37,0x82,0xb3,0x31,0xa4,0x17,0xe,0xc6,0x19,0x7a,0x42,0xde,0xa2,0xcf,0x61,0x72,
+  0xce,0x92,0x52,0x12,0x80,0x5f,0xee,0x1f,0x55,0xed,0xa5,0x94,0xb,0x3d,0xcf,0xf2,
+  0x8d,0x96,0x32,0xe0,0x49,0xed,0xc0,0x1c,0x44,0xcc,0x3e,0x1,0x38,0x26,0x43,0x24,
+  0x0,0x61,0x18,0x8,0x1e,0x3,0xae,0x22,0xa6,0xa,0xc3,0x47,0x2a,0xe0,0xff,0x16,
+  0x51,0x5f,0x53,0x85,0xc7,0x30,0xec,0x45,0x75,0x26,0x4d,0x2e,0xcd,0x5e,0x9a,0x16,
+  0x53,0xbc,0x30,0x7d,0x40,0xeb,0x22,0xf9,0x64,0xaa,0x1d,0xa1,0x8d,0x5d,0x4b,0x71,
+  0x6c,0x4e,0x4a,0x7e,0x9c,0x1b,0x81,0x5e,0xbe,0xf3,0x89,0x98,0xe6,0x9c,0x19,0xa7,
+  0x4e,0x26,0xc,0x1d,0x61,0xa3,0xd0,0x53,0x6b,0x4d,0x63,0xc,0xf5,0xde,0x33,0x5e,
+  0x6b,0x15,0x3b,0xb7,0xa2,0x5f,0x20,0x55,0x4c,0xd5,0x6e,0x78,0xf,0x19,0xfa,0xe5,
+  0xc3,0x1d,0xe4,0x7d,0x11,0xf1,0xd0,0xf7,0xfe,0x5,0xe0,0x98,0x8c,0x91,0x0,0x4,
+  0x42,0x18,0x48,0x67,0xa7,0x35,0x63,0x69,0xc9,0x13,0xf8,0xff,0x43,0xac,0xfc,0x86,
+  0xbb,0xa1,0x3b,0xe6,0x20,0x21,0x99,0x84,0xa0,0x40,0xd8,0x7a,0x42,0xf2,0x1,0xe0,
+  0xe2,0xea,0xf4,0xe9,0x15,0x1f,0x63,0x95,0x4,0x2d,0x92,0x18,0x8b,0x25,0xa8,0x5a,
+  0xbe,0x2d,0x81,0x50,0x3e,0xca,0x49,0x4c,0x5b,0x77,0xb7,0x50,0x29,0xb3,0x33,0x93,
+  0x43,0xc5,0x22,0xf1,0x12,0x2a,0x14,0xaa,0xee,0xe,0x41,0xc3,0x89,0xe2,0x7,0xf3,
+  0x37,0x6e,0x2c,0xfb,0x5f,0x76,0x7c,0xbf,0x0,0x34,0x92,0xcb,0xd,0x0,0x21,0x8,
+  0x5,0x17,0x2f,0xc6,0xbb,0xa7,0xf5,0x20,0x35,0xd8,0x7f,0x23,0x34,0x40,0x1d,0xbe,
+  0x21,0x91,0x84,0x44,0x5,0xe4,0x37,0xad,0x2c,0x66,0x4d,0x1f,0x4d,0x4d,0xe8,0x17,
+  0x3b,0x9d,0x44,0x8,0xc5,0x21,0x24,0x60,0x6d,0xe8,0x7b,0x23,0x9,0x77,0x26,0x4c,
+  0xc1,0x8,0xc5,0x64,0xe6,0xa7,0x29,0x94,0x3d,0x22,0xaa,0x1,0xce,0x30,0x88,0xd2,
+  0x14,0x38,0x10,0x3,0xb3,0xa0,0xf2,0x30,0xd3,0x36,0xcc,0xdd,0xe5,0x32,0xb6,0xd8,
+  0x3d,0xf2,0x5b,0x57,0x0,0x1a,0xe9,0x20,0x5,0x40,0x28,0x4,0x2,0x68,0x44,0x74,
+  0x80,0xbf,0x91,0x16,0xae,0x83,0xee,0x7f,0xc0,0xe6,0x49,0x2d,0x44,0xf8,0x8e,0x5f,
+  0x67,0xc6,0x51,0x2a,0xa0,0xd8,0x7f,0x5e,0x89,0x15,0xab,0xe,0x56,0xb8,0x33,0xcc,
+  0xb0,0x64,0x2d,0x2b,0x3f,0xec,0x28,0xe4,0xbe,0xc,0x91,0xa9,0x61,0x88,0x81,0x6a,
+  0x16,0x54,0xcb,0xdd,0xce,0xd2,0xd4,0xd5,0xef,0xd,0xd9,0xee,0xde,0xaa,0x6a,0xea,
+  0x7a,0xc5,0xef,0x64,0x94,0xdb,0x83,0x59,0xf9,0xf7,0x89,0x0,0xf7,0x2b,0x0,0x53,
+  0xf5,0x92,0x3,0x20,0x8,0xc4,0x0,0x54,0x82,0x5e,0x40,0x16,0x26,0xb3,0xf4,0xfe,
+  0x87,0xb4,0x8f,0x40,0xe2,0x8e,0x4f,0x68,0x4b,0xa7,0x3,0x67,0xba,0xae,0x7,0xf0,
+  0x8e,0x13,0x6f,0x36,0xbd,0x55,0x4d,0x29,0x88,0x5a,0xf9,0x3c,0x96,0xcb,0x73,0xac,
+  0x4b,0x9,0x51,0x62,0x64,0xc8,0x77,0x59,0x11,0x98,0x5b,0x97,0x35,0xd1,0x90,0x4f,
+  0x8d,0xe4,0x2c,0x27,0xab,0x6a,0xe6,0x14,0xde,0xce,0xeb,0xef,0x83,0x80,0xdb,0x72,
+  0x99,0x2b,0x3a,0x46,0xdc,0x7f,0x3e,0x1,0x68,0xaa,0x83,0x1c,0x0,0x20,0x20,0x86,
+  0xa2,0x91,0xd8,0x59,0x3b,0x82,0x85,0xfb,0x5f,0x50,0x9f,0xa4,0x2b,0x62,0xa4,0xfe,
+  0x74,0xc,0x33,0x9b,0x76,0xe0,0x4e,0x68,0x6f,0x40,0x57,0xc6,0xd1,0xfb,0xa6,0x84,
+  0xc4,0x89,0x10,0x4,0xd0,0xc6,0xd0,0x8d,0x1c,0xe0,0x34,0x8,0x90,0xd6,0xf2,0x14,
+  0x7d,0x77,0x80,0x72,0x5f,0xe3,0x70,0x57,0xbc,0xa5,0xa6,0x55,0xcd,0x9a,0x20,0x69,
+  0xa5,0x97,0x78,0xe6,0x7e,0xa7,0x95,0xb3,0xf6,0x13,0x80,0x66,0x7a,0xb7,0x1,0x0,
+  0x4,0x81,0x0,0x1a,0x6b,0x47,0xa0,0x73,0x2,0xd7,0x71,0xff,0x35,0x8c,0xf1,0x5e,
+  0x81,0x95,0x31,0x8,0xf7,0x83,0xc5,0x27,0xcb,0xb0,0x2,0x66,0xe7,0x61,0x66,0xd8,
+  0x60,0x2d,0x10,0x86,0xb4,0x7a,0x3e,0xf6,0x5d,0x73,0xc0,0xd,0xa6,0xb4,0x5c,0xb2,
+  0x8d,0x3a,0x0,0xb6,0x1a,0xac,0xa6,0x92,0xc3,0x5e,0x84,0x5b,0x65,0x51,0x41,0x40,
+  0x2f,0x75,0x16,0x12,0x48,0x84,0x11,0x49,0x34,0x5e,0x55,0xdd,0x2f,0x80,0x58,0x9e,
+  0x3e,0x7d,0x1a,0xf,0x8c,0x6f,0x1e,0x60,0xb4,0xa,0x3,0xd,0x65,0x3,0x26,0x4e,
+  0x46,0x90,0x6,0x58,0x14,0x81,0x1c,0xb,0xcb,0xa9,0x20,0x47,0x82,0x1c,0x8,0xb2,
+  0xc,0x84,0x41,0x3e,0x7,0x59,0x2,0x4c,0xd8,0x60,0xc,0xf3,0x4,0x2c,0x74,0x40,
+  0x8e,0x3,0x39,0xa,0xa4,0x16,0xe4,0x21,0x58,0x3a,0x3,0x1,0x68,0xd1,0x2,0x17,
+  0x3,0x79,0x8,0x94,0x7c,0x80,0xf8,0x3f,0x30,0xb4,0xff,0x1,0xdd,0xf4,0x4e,0x4e,
+  0x4e,0xee,0x39,0x40,0x0,0x9a,0xea,0xc0,0x4,0x0,0x10,0x4,0xa2,0x28,0x44,0xcb,
+  0xb4,0xff,0x2e,0x2d,0xd2,0x0,0x75,0x2f,0xb8,0x20,0xc,0xc4,0xd0,0x6f,0x67,0x33,
+  0x81,0x2b,0xad,0x19,0x76,0x1c,0xc3,0xbc,0xca,0x20,0xfd,0x64,0xb4,0xc7,0x8f,0xa0,
+  0x32,0x84,0x52,0xd1,0x4f,0xaa,0xaa,0x95,0x5c,0x67,0xa2,0x85,0x28,0x55,0xa3,0x53,
+  0x51,0x55,0x40,0xa8,0xb1,0x48,0xf5,0xdc,0x4,0x3d,0x15,0x71,0x40,0xc4,0x7f,0x63,
+  0x4f,0xa,0xd8,0xb9,0x77,0x3f,0x1,0x98,0xac,0xa3,0x23,0x0,0x20,0x18,0x6,0xa0,
+  0x7f,0xf6,0x1f,0xcb,0xe,0x36,0x30,0x83,0xf,0x79,0x3d,0xbd,0xe3,0x53,0xb5,0x24,
+  0x95,0x40,0x24,0x43,0x10,0x5b,0x5a,0x45,0x20,0x18,0x50,0x8,0x2a,0x56,0xa1,0xa0,
+  0x58,0xbe,0x4c,0x75,0xa8,0x1e,0xa,0x5a,0xff,0x9e,0xca,0x2,0x65,0xb3,0xbe,0x57,
+  0x3a,0xc1,0xf,0x7f,0x11,0x68,0x9f,0x39,0x76,0xd3,0xa,0x6,0x50,0x1e,0xb6,0x23,
+  0xb6,0xa4,0x9e,0x1d,0x1d,0xcc,0x90,0xb7,0xae,0x0,0x62,0x81,0x15,0xbc,0xb0,0xb4,
+  0xa4,0xa1,0xa1,0x1,0x36,0x18,0x54,0x3c,0x80,0xc,0x4,0x39,0xa,0x58,0xc1,0xc3,
+  0xa3,0x6,0x14,0x3a,0x20,0xcb,0x41,0x6,0x82,0x30,0x88,0xf,0xb3,0x8,0xa6,0x6,
+  0xc4,0x6,0x45,0x21,0xcc,0x71,0xa0,0xc4,0xf,0xa,0x51,0x63,0x63,0x63,0x6,0x60,
+  0x3d,0xc,0xf6,0x3c,0x28,0x23,0xc2,0xd2,0x32,0xac,0xa4,0x0,0xc5,0x10,0x28,0x4,
+  0x81,0xd1,0xfb,0x16,0x98,0xc4,0xae,0x2,0x3d,0xf1,0x6,0x20,0x0,0x93,0xf5,0xae,
+  0x2,0x0,0x8,0xc3,0x50,0x74,0xf1,0xff,0x7f,0x55,0x70,0x75,0xb1,0x67,0xb8,0xe0,
+  0x28,0xf4,0x91,0x84,0x36,0x75,0x35,0x57,0x94,0x51,0x84,0xf4,0x5d,0x9,0xc9,0x40,
+  0xb6,0xc,0x94,0x6,0x2,0x53,0x0,0x28,0x9b,0x1d,0x89,0xf9,0xff,0x96,0xff,0x5b,
+  0x9d,0x96,0x2b,0x6f,0x45,0x8c,0x38,0xf5,0x41,0xc6,0x18,0xc9,0x19,0xb3,0x3f,0x43,
+  0x7e,0xf,0x8e,0xfb,0x4,0xe0,0xb1,0xde,0x8d,0x0,0x0,0x41,0x18,0x80,0x36,0xee,
+  0xbf,0x22,0x43,0x78,0xf6,0xf2,0x38,0x63,0x61,0x23,0x47,0x30,0xfc,0xe2,0xe2,0x28,
+  0xb0,0x3e,0xf3,0x40,0x59,0x1,0x90,0x3d,0xc7,0xa6,0x2c,0xb4,0xb5,0xaa,0x66,0x95,
+  0x28,0xa7,0x3,0x4c,0x80,0xff,0x91,0x7c,0x3d,0x15,0x3b,0x32,0x29,0x21,0x7c,0x2a,
+  0x83,0xb0,0x1,0xc,0x41,0xb1,0x32,0x30,0xee,0xe1,0x35,0xe9,0xd3,0x49,0xd8,0x34,
+  0xf9,0xa,0x20,0x16,0x60,0xf0,0xee,0x7,0xc6,0xbb,0x4,0xd0,0x10,0x49,0x20,0xe6,
+  0x3,0xfa,0x84,0x9,0x39,0x7d,0x80,0x82,0x1f,0x44,0x83,0xca,0x3a,0x50,0xb4,0x3,
+  0x5b,0x1f,0x60,0x47,0x82,0x2c,0x2,0x39,0x2,0x24,0xf,0xa,0x45,0x58,0xce,0x6,
+  0xa9,0x85,0xb5,0x78,0x40,0x1e,0x0,0x25,0x17,0x98,0x3,0x41,0x85,0x39,0x2c,0x69,
+  0x20,0xa7,0x57,0x90,0x3a,0x50,0xe8,0x82,0xec,0x5,0xda,0xcf,0x8,0xa4,0x7f,0x1,
+  0xcd,0xff,0x3,0xf2,0x20,0x40,0x0,0x1e,0xeb,0x28,0x5,0x60,0x10,0x86,0x1,0x28,
+  0x82,0x78,0x27,0x77,0xe5,0x5d,0xd2,0xbc,0xb1,0x28,0xf8,0x67,0xda,0x26,0x6d,0xa4,
+  0x33,0x8f,0xde,0xc8,0xbd,0xc3,0xee,0x61,0xa8,0xc8,0xfc,0xed,0x7c,0x75,0x1c,0xa0,
+  0x82,0x80,0xed,0x76,0x8e,0x56,0x30,0x47,0x99,0x6b,0x91,0x84,0x6e,0x93,0x19,0x3,
+  0xc5,0xeb,0x0,0x7c,0x89,0xfc,0xa,0x5d,0x95,0x6b,0xba,0xfe,0xb9,0x21,0x34,0x32,
+  0xb3,0x33,0xb1,0x97,0x15,0xef,0x8,0x40,0x53,0x19,0xe2,0x0,0x0,0xc2,0x30,0x50,
+  0x0,0x1a,0x83,0x20,0x98,0xfd,0xff,0xb,0x3c,0x65,0x8e,0x8f,0x10,0x7a,0x24,0xb5,
+  0x30,0xd1,0x75,0xeb,0xad,0x8a,0xfa,0x5b,0x58,0xb9,0x72,0x67,0x65,0xe6,0xd4,0x5e,
+  0x34,0x82,0x41,0xc7,0x8c,0x36,0x22,0x3e,0xfd,0x79,0x63,0xcc,0xb8,0xc8,0xfe,0x70,
+  0x2d,0x2c,0xca,0xa3,0xe5,0x2e,0xd3,0x14,0x4e,0x11,0xc,0xea,0x1c,0x3a,0xfe,0x70,
+  0x1d,0xc1,0xd4,0x38,0xc9,0x66,0xa6,0xd1,0x25,0xa3,0x8a,0x70,0xd7,0x85,0xb7,0x21,
+  0x91,0xe7,0x9,0x40,0x73,0xb9,0xe3,0x0,0x8,0xc3,0x30,0x54,0x48,0x4c,0x8c,0xdc,
+  0xff,0x64,0x9d,0xa2,0x88,0x8d,0xb,0x30,0x94,0xcf,0x7b,0x48,0x9e,0x13,0xc5,0xb1,
+  0xeb,0xa6,0xe9,0x8a,0xef,0x4e,0x56,0x9e,0x1,0xf3,0xa3,0xbb,0x27,0x4d,0xbc,0x80,
+  0x2f,0x19,0x13,0x16,0xb5,0x80,0x5,0xbd,0x65,0xfa,0x28,0xd,0x48,0x40,0xb5,0xe3,
+  0x25,0xc1,0xf9,0xd1,0xfd,0xf1,0x0,0xab,0x9e,0xc4,0x54,0x54,0x75,0x3d,0xb6,0x6c,
+  0x33,0x7a,0xde,0x5c,0x9f,0x41,0x6c,0xf0,0x10,0xbf,0xab,0xea,0x52,0x59,0x26,0xca,
+  0x4e,0xee,0xf6,0x9,0x40,0x73,0x1d,0xab,0x0,0x8,0xc3,0x40,0x0,0x15,0x5c,0xfd,
+  0xff,0x8f,0x12,0x9a,0x2f,0x70,0xd2,0x4d,0x9c,0xdd,0x4,0xef,0x15,0x32,0x95,0x96,
+  0x92,0x4b,0xd2,0x4b,0x2f,0xc1,0xc1,0x37,0xde,0x5e,0x79,0xa6,0x33,0x11,0x1b,0x84,
+  0xb6,0x48,0xd6,0xda,0x95,0x2d,0x72,0x0,0xdd,0x90,0x2,0x88,0x91,0x25,0xa,0x34,
+  0x57,0xa0,0x9c,0x7,0xe6,0x4e,0x67,0xe,0xef,0x9c,0x55,0xd5,0xe4,0x9a,0xce,0x9a,
+  0x14,0x2a,0x3c,0xb6,0x5,0x2e,0x93,0xbe,0xb0,0x31,0x86,0xfd,0x17,0xa7,0x9e,0xd8,
+  0x3b,0xd2,0x79,0xef,0x49,0xc6,0x8d,0x42,0xbf,0x0,0x62,0x1,0x49,0x0,0x1d,0xf2,
+  0x1,0xe8,0xea,0x27,0x40,0x47,0x7e,0x2,0x62,0x31,0x50,0xa7,0x7,0xe4,0x73,0x50,
+  0x5a,0x3,0xf9,0xe,0x54,0x1c,0xc0,0x5a,0x29,0xa0,0x2,0x1d,0xc4,0x6,0x61,0x58,
+  0x28,0x82,0xc,0x82,0x15,0x21,0xa0,0xa8,0x7,0xd1,0xa0,0x74,0x9,0x52,0xf,0xab,
+  0x8d,0x64,0x64,0x64,0xc0,0x51,0xa,0xa,0x61,0x10,0x6,0x95,0xb9,0x20,0x39,0x68,
+  0xc3,0xe3,0x37,0x50,0xff,0x6b,0xa0,0x9a,0x73,0x40,0x3d,0x7b,0x80,0xe9,0xfb,0x8,
+  0x30,0x20,0x1e,0x2,0x3d,0xf2,0x19,0x20,0x80,0x58,0xa0,0x89,0xf6,0x3b,0x10,0xbf,
+  0x4,0x86,0xc0,0x1b,0x20,0xad,0x0,0x94,0x0,0xa5,0x5c,0x46,0x50,0x50,0x83,0xd2,
+  0x1f,0x28,0x84,0x40,0x69,0xd,0xe4,0x28,0x50,0x54,0xc1,0x2a,0x75,0x58,0x63,0x0,
+  0x14,0x5a,0x20,0x3e,0x8,0xc0,0xca,0x35,0x98,0x67,0x40,0x72,0xa0,0x56,0x33,0x88,
+  0x6,0xf6,0x6d,0xc0,0x35,0x13,0x28,0x16,0x60,0xad,0x24,0x10,0x6,0xaa,0xfd,0xc,
+  0x94,0x3f,0x7,0xc,0xe5,0xcd,0x40,0x7,0xef,0x5,0x9a,0xf1,0x8,0x48,0xff,0x1,
+  0x6,0xdc,0x7f,0x80,0x0,0x62,0x81,0x16,0xb,0xbf,0x81,0xa,0x9e,0x3,0x1d,0xf8,
+  0x8,0x18,0xec,0x3a,0x40,0x1f,0xb0,0x3,0xd,0x0,0x75,0xde,0xe1,0xa1,0x1,0xab,
+  0x3b,0x41,0xe,0x1,0x85,0x8,0xac,0xfc,0x4,0xd5,0xdb,0xb0,0x86,0x0,0x28,0x49,
+  0xc0,0x12,0x3f,0x28,0x74,0x40,0xe,0x3,0x45,0x25,0xc8,0x63,0xa0,0xb4,0x76,0xed,
+  0xda,0x35,0x70,0xd2,0x50,0x51,0x51,0x1,0x87,0x34,0xd0,0x11,0xff,0x80,0x55,0xed,
+  0x57,0xa0,0x9e,0xab,0x40,0xc7,0xed,0x0,0x6,0xc6,0x1e,0xa0,0x7d,0x4f,0x80,0xea,
+  0x7f,0xc3,0xca,0x56,0x80,0x0,0x2,0x65,0x67,0x50,0x71,0xff,0x7,0x68,0xc9,0x33,
+  0xa0,0x5,0xa7,0x80,0x69,0x42,0x1,0x98,0xe6,0xb4,0x80,0x96,0xf3,0x3,0xd,0x2,
+  0x35,0x22,0xe0,0x5,0x31,0x28,0x8d,0xc1,0xa,0x67,0x58,0xd1,0x3,0xab,0x25,0xa0,
+  0x4d,0x76,0x70,0xd4,0xc1,0xf8,0x20,0xc7,0x81,0x3c,0x8,0x4a,0xc3,0xe7,0xcf,0x9f,
+  0x67,0xb8,0x7d,0xfb,0x36,0xbc,0xb,0xa,0x2,0xc0,0x34,0xfc,0x7,0xe8,0xf0,0x17,
+  0xc0,0xa8,0x3d,0x8,0x8c,0x89,0x3,0x40,0xf3,0x9e,0x0,0x3,0xeb,0x17,0x72,0x27,
+  0x1d,0x20,0x80,0x60,0x35,0xff,0x3f,0xa0,0xa1,0xef,0x81,0x86,0x9f,0x0,0x2a,0x10,
+  0xbb,0x73,0xe7,0xe,0xa8,0x73,0xae,0x1,0x4c,0x7f,0xdc,0xc0,0xce,0xe,0x13,0x28,
+  0x64,0x40,0x8e,0x1,0x25,0x76,0x50,0x68,0x80,0x42,0x16,0xe4,0x30,0x50,0x54,0x83,
+  0xa2,0x12,0x94,0x29,0xa0,0x1d,0x74,0x78,0x3a,0x7b,0xf2,0xe4,0x9,0xd8,0x81,0xa0,
+  0xa4,0x1,0xca,0x8,0xa0,0x32,0x14,0x14,0xfa,0xa0,0x8c,0x2,0xf2,0x4,0xa8,0xce,
+  0x5,0x3a,0x10,0xd4,0x8e,0xbb,0x8,0xf4,0xd8,0x1e,0xa0,0xb9,0xf7,0xd0,0x1d,0x7,
+  0x2,0x0,0x1,0xc4,0x82,0x54,0x4d,0x7d,0x3,0x56,0x35,0x57,0x80,0xe5,0xde,0x7f,
+  0xa0,0x8f,0xbf,0x3,0x8b,0x93,0x6f,0xc0,0xc,0xa0,0x9,0xa4,0xf9,0x80,0x96,0xb2,
+  0x3,0xa3,0x8b,0x11,0xd4,0x18,0x5,0x25,0x76,0x50,0xa8,0x80,0x1c,0x2,0x2a,0x2a,
+  0x40,0x21,0xa,0x73,0x20,0x88,0xf,0x4a,0x5f,0xa0,0x76,0x1d,0x28,0xea,0x41,0x1e,
+  0x0,0xa5,0x53,0x50,0x52,0x0,0x79,0xc,0x14,0xe5,0x20,0xc,0x4a,0x77,0xa0,0xd1,
+  0x9,0x60,0x7a,0x7e,0x3,0x4c,0x2e,0x47,0x81,0xb1,0x71,0x1d,0xe8,0xe1,0x1f,0xd8,
+  0x86,0x3e,0x0,0x2,0x8,0xee,0x40,0x60,0xd0,0x83,0x46,0xaa,0xbe,0x3,0x1b,0x89,
+  0x97,0x81,0x3e,0x7f,0xf,0xf4,0xdd,0x3,0xa0,0x2f,0x6d,0x80,0x16,0x69,0x0,0xc5,
+  0xe5,0x80,0xc5,0x8d,0x28,0x68,0xac,0x6,0x68,0x10,0x13,0xa8,0x16,0x1,0x85,0x2a,
+  0x8,0xc3,0xea,0x5a,0x58,0x4e,0x6,0x45,0x27,0xc8,0x71,0x20,0x7,0x83,0x42,0xa,
+  0x56,0x43,0x80,0x42,0x1c,0xc4,0x6,0x15,0x2d,0xc0,0x6a,0xf3,0x1f,0x30,0xb9,0xbc,
+  0x3,0xea,0x39,0x5,0x4c,0x8b,0x87,0x81,0xe6,0xbd,0x7,0x86,0x1e,0xd6,0xf1,0x19,
+  0x80,0x0,0x42,0x19,0x9b,0x1,0x46,0xd7,0x7f,0x20,0xfe,0x1,0xc,0x85,0xfb,0x40,
+  0xc3,0x5f,0x2,0x43,0xf0,0xc,0x90,0xad,0x5,0x8c,0x6a,0x4b,0xa0,0xb4,0x35,0xb0,
+  0x58,0xd1,0x6,0x3a,0x0,0xd4,0x6f,0x61,0x6,0x5a,0xc6,0x8,0x8a,0x52,0x50,0xe2,
+  0x87,0xe5,0x48,0x50,0xd4,0x2,0x93,0x7,0x38,0xad,0x81,0x1c,0xe,0xaa,0x85,0x40,
+  0xe9,0x16,0xe4,0x78,0xd0,0xb8,0xb,0xd0,0xac,0xef,0x40,0x75,0x1f,0x41,0xed,0x3c,
+  0x60,0x39,0x7,0x2a,0xeb,0xb6,0x2,0x3,0xe6,0x3a,0x30,0x36,0x7e,0xe3,0x1a,0x3c,
+  0x2,0x8,0x20,0x46,0x7c,0xe3,0x83,0xa0,0x21,0xf,0x60,0x14,0xb1,0x1,0x2d,0x16,
+  0x7,0xa6,0x29,0x7d,0x60,0xb4,0x38,0x1,0x2d,0x32,0x4,0x26,0x68,0x65,0x60,0xd4,
+  0x8,0x1,0xd,0x67,0x7,0x8d,0xd,0x2,0x1d,0xfd,0x1b,0x58,0x5,0xbe,0x3,0x46,
+  0xe5,0x6b,0x60,0x34,0x7f,0x1,0x86,0xc8,0x5f,0x50,0x86,0x1,0x86,0x30,0x3b,0x68,
+  0x54,0xb,0x68,0x87,0x18,0x68,0xe4,0x0,0x18,0xd2,0xf,0x80,0x1,0x70,0x9,0xa8,
+  0x77,0x3f,0x10,0x9f,0x4,0xea,0x7f,0x0,0xa4,0xf1,0x8e,0x6e,0x1,0x4,0x10,0x23,
+  0xa1,0x1,0x4c,0x10,0x0,0x96,0x5d,0x8c,0xc0,0x84,0xce,0xc,0xc4,0xa2,0xc0,0x50,
+  0xd5,0x6,0x3a,0xda,0x5,0x98,0xc,0x2c,0x80,0x21,0x22,0x7,0x2a,0x4c,0x81,0x66,
+  0x3c,0x4,0x3a,0xe6,0x32,0xd0,0xf2,0x8b,0xc0,0x1c,0xfa,0x1c,0x58,0xc4,0xfc,0x1,
+  0x86,0x2e,0x1b,0x30,0xe4,0x40,0xdd,0x43,0x11,0xa0,0x3c,0xa8,0x4d,0xf6,0x1,0xa8,
+  0xe6,0x1e,0xd0,0xe1,0x4f,0x81,0x1e,0x78,0x7,0x54,0xfb,0x1d,0xa8,0xee,0x1f,0x21,
+  0xbb,0x1,0x2,0x88,0x28,0x7,0xc2,0xc0,0xe9,0xd3,0xa7,0x19,0x81,0xe5,0x18,0x2b,
+  0xd0,0xa1,0xd2,0x40,0x87,0x82,0x8a,0x22,0x35,0x60,0x88,0x7d,0x3,0x5a,0xfa,0x8,
+  0x68,0xd9,0x7d,0x60,0x59,0xf6,0x1c,0x98,0xa6,0xbe,0x1,0x43,0xf8,0x1f,0x28,0x9,
+  0x0,0x43,0x9b,0x19,0x18,0x9d,0xa0,0x64,0xf4,0x17,0x3a,0xbc,0xf6,0x17,0x98,0x11,
+  0x89,0xb7,0x10,0x8,0x0,0x2,0x88,0x11,0x98,0x98,0x41,0x3,0x96,0x24,0x69,0x3a,
+  0x76,0xec,0x18,0x33,0x30,0x1d,0x72,0x2,0x33,0xf,0x2f,0xb4,0x43,0xf4,0x15,0x18,
+  0x2a,0xdf,0x81,0xf8,0xf,0x30,0xa7,0x93,0x64,0x16,0x21,0x0,0x10,0x40,0xa0,0xea,
+  0x8c,0x15,0x18,0x4d,0xbf,0x49,0xd5,0x8,0xec,0x5b,0x30,0x81,0xca,0x38,0xa0,0x7,
+  0x41,0x3,0x91,0xff,0x81,0x8e,0xfc,0x7,0xc,0x3d,0x8a,0x1d,0x7,0xf4,0x30,0x23,
+  0xb4,0xd8,0x3,0x9b,0x5,0x10,0x60,0x0,0xc6,0x55,0x8a,0x45,0xf5,0x12,0xb6,0x3d,
+  0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/mirror.png
+  0x0,0x0,0x1,0x2f,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x1f,0xf3,0xff,0x61,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x0,0xc1,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xfc,0xff,0xff,0x3f,0x3,0x25,0x0,0x20,0x80,0x98,0x18,0x28,0x4,0x0,0x1,0x44,
+  0xb1,0x1,0x0,0x1,0x44,0xb1,0x1,0x0,0x1,0x84,0x8e,0x84,0x80,0x98,0x8d,0x8,
+  0x35,0x70,0x0,0x10,0x40,0xe8,0x12,0x67,0x80,0x98,0x9f,0x80,0x1,0x27,0x81,0x58,
+  0x2,0xc6,0x1,0x8,0x20,0x16,0x24,0xcd,0xbb,0x80,0xd8,0x18,0x88,0x13,0x80,0xf8,
+  0x3b,0x1e,0x3,0x74,0x81,0xf8,0x0,0x10,0x3b,0x0,0xf1,0xb,0x80,0x0,0x42,0xb6,
+  0xf9,0x3f,0x89,0xf8,0x6,0xc8,0x25,0x0,0x1,0x4,0x32,0x60,0x3b,0x19,0x9a,0x61,
+  0xf8,0x18,0x40,0x0,0x81,0xc,0x50,0x7,0xe2,0xe7,0x64,0x68,0x7e,0xb,0xf2,0x32,
+  0x40,0x0,0x31,0x42,0xfd,0xa5,0xe,0xf5,0x17,0x28,0x70,0x16,0x0,0xf1,0x2f,0x3c,
+  0x61,0x0,0xa,0xa3,0x2f,0x40,0xec,0x6,0xc4,0x67,0x1,0x2,0x8,0x59,0x2,0xe6,
+  0x12,0x42,0xb1,0x70,0xf,0x1a,0xd8,0x60,0x0,0x10,0x40,0xe8,0x8,0x64,0x8,0x27,
+  0x1,0x3,0xd4,0x91,0x39,0x0,0x1,0xc4,0x48,0x69,0x66,0x2,0x8,0x20,0x8a,0x93,
+  0x32,0x40,0x0,0x51,0x6c,0x0,0x40,0x80,0x1,0x0,0x35,0x1a,0x3f,0x47,0x29,0x18,
+  0x39,0xd8,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/layer-camera.png
+  0x0,0x0,0x4,0x71,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x16,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x12,0xed,0x8f,0x26,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x4,0x3,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0x64,0x40,0x3,0xea,0xea,0xea,0x81,0xec,0xec,0xec,0xb3,0x98,0x98,0x98,0xb8,0xff,
+  0x3,0x1,0x37,0x37,0x37,0xdb,0xcf,0x9f,0x3f,0x99,0x81,0xcc,0x47,0x1f,0x3e,0x7c,
+  0x88,0xbd,0x77,0xef,0xde,0x61,0x6,0x22,0x0,0x40,0x0,0x31,0x22,0x73,0xb4,0xb5,
+  0xb5,0x3,0x58,0x59,0x59,0x57,0x96,0x57,0x56,0xb2,0x99,0x5b,0x58,0x30,0x3c,0x78,
+  0xf0,0x80,0xe1,0xe6,0xd5,0xab,0xc,0x26,0x86,0x86,0xc,0xfb,0xf,0x1e,0x64,0x58,
+  0xbe,0x72,0xe5,0xaf,0x37,0x6f,0xde,0x68,0x3e,0x7e,0xfc,0xf8,0x1e,0x21,0x83,0x1,
+  0x2,0x88,0x19,0x99,0x23,0x2e,0x2e,0xbe,0x39,0x35,0x3d,0x5d,0xd4,0xc9,0xd9,0x99,
+  0xe1,0xd7,0xef,0xdf,0xc,0xa2,0xa2,0xa2,0xc,0xdf,0x7e,0xfc,0x60,0xb8,0x75,0xeb,
+  0x16,0x83,0x2b,0x50,0xc,0xa4,0xfe,0xde,0xfd,0xfb,0x71,0x2f,0x5f,0xbe,0xec,0x24,
+  0x64,0x30,0x40,0x0,0x31,0xc1,0x18,0x7a,0x7a,0x7a,0x9c,0x40,0xef,0x2b,0x7b,0x7b,
+  0x7b,0x33,0x7c,0xff,0xf6,0x8d,0xe1,0xff,0xdf,0xbf,0xc,0x3f,0x80,0x86,0xaa,0xa9,
+  0xa9,0x31,0xfc,0x7,0xca,0xbf,0x7d,0xfb,0x96,0x21,0x2c,0x34,0x94,0x81,0x85,0x85,
+  0x85,0x4f,0x45,0x45,0x45,0x9a,0x90,0xc1,0x0,0x1,0x4,0x37,0xf8,0xcb,0x97,0x2f,
+  0x9e,0xc0,0x60,0xf8,0xcb,0xca,0xc2,0xc2,0x0,0xe,0x1f,0x46,0x46,0x6,0x60,0xb8,
+  0x32,0x70,0x70,0x70,0x30,0xb0,0x1,0xf1,0x8f,0x9f,0x3f,0x19,0xfe,0x1,0x2d,0x13,
+  0x11,0x11,0x61,0xfc,0xfb,0xf7,0xaf,0x1b,0x21,0x83,0x1,0x2,0x88,0x5,0x18,0xae,
+  0x5a,0x40,0x3,0x77,0x32,0x33,0x33,0xcb,0xb8,0xbb,0xbb,0x33,0x3c,0x7a,0xf4,0x88,
+  0x1,0xc8,0x67,0x60,0x7,0x19,0xc8,0xce,0xce,0xc0,0x2,0x62,0x3,0x69,0x60,0x4,
+  0x32,0x7c,0xfc,0xf4,0x89,0x81,0x9b,0x8b,0x8b,0xe9,0xcf,0x9f,0x3f,0x5a,0x40,0xbd,
+  0xac,0x50,0x87,0xfd,0xc4,0x66,0x30,0x40,0x0,0x31,0xea,0xea,0xea,0xbe,0xe,0xe,
+  0xa,0x12,0x9,0x9,0xa,0x62,0xd8,0xbd,0x6f,0x1f,0x3,0xbf,0x80,0x0,0x3,0x23,
+  0x13,0x13,0xd8,0xb5,0x20,0x0,0xb2,0xe4,0xee,0xdd,0xbb,0xc,0x77,0x6f,0xdf,0x66,
+  0x60,0x63,0x63,0x83,0xb8,0xfc,0xff,0xff,0x9f,0x7f,0x7e,0xfd,0x62,0xb8,0x7e,0xfd,
+  0xfa,0xed,0x2b,0x57,0xae,0xe8,0x62,0x33,0x18,0x20,0x80,0x58,0x80,0x5e,0xe7,0x89,
+  0x8,0xb,0x63,0x78,0xf1,0xe2,0x5,0x83,0xa0,0x90,0x10,0x83,0xa3,0x8b,0xb,0xc3,
+  0xa7,0x8f,0x1f,0x19,0x40,0x1a,0xc1,0x61,0x5,0xc,0x1a,0x3,0x60,0xaa,0x0,0x7a,
+  0x9f,0x1,0x98,0xd4,0x18,0x7e,0x2,0xc3,0xdd,0xd0,0xc8,0x88,0xfd,0x1e,0x30,0x42,
+  0xeb,0xea,0xeb,0xc5,0x71,0x5,0x5,0x40,0x0,0xb1,0x0,0x83,0x80,0x85,0x11,0x18,
+  0x9e,0x40,0x9a,0xe1,0xdd,0xbb,0x77,0xc,0x9d,0x6d,0x6d,0xc,0x40,0xe7,0x32,0x8,
+  0xa,0xa,0x32,0x8,0x0,0x31,0x2b,0xd0,0x95,0x20,0x43,0x9d,0x81,0x16,0xf2,0xf0,
+  0xf0,0x80,0x5d,0xd,0xd4,0xc4,0xf0,0x12,0xe8,0x90,0x7f,0xff,0xfe,0x21,0xbc,0xce,
+  0xc8,0xc8,0x2,0xf2,0x20,0xd4,0xa7,0xff,0x0,0x2,0x88,0x5,0xe8,0xed,0xbf,0x40,
+  0x83,0x58,0x40,0x5e,0xbe,0x77,0xe7,0xe,0x83,0xa6,0xba,0x3a,0x83,0xb2,0xa2,0x22,
+  0xc3,0x3b,0xa0,0xab,0xbf,0x3,0xbd,0x7d,0xe5,0xf2,0x65,0x70,0x38,0xdf,0x1,0xca,
+  0x9,0xb,0xb,0x33,0xbc,0x7c,0xfe,0x9c,0x61,0xef,0x9e,0x3d,0xc,0x9f,0x3f,0x7f,
+  0x6,0x59,0xce,0x2d,0x26,0x26,0x36,0x57,0x42,0x42,0x22,0x9,0x25,0x45,0x30,0x31,
+  0xfd,0x0,0x8,0x20,0x96,0x5f,0xbf,0x7e,0xfd,0x7d,0xf4,0xf8,0x31,0xd8,0x85,0xa0,
+  0x64,0xa6,0xac,0xa4,0xc4,0x20,0x2d,0x25,0xc5,0x20,0xf,0x34,0x9c,0x17,0x28,0xa6,
+  0xa4,0xac,0xcc,0xf0,0xe8,0xe1,0x43,0x86,0xbf,0x7f,0xfe,0x80,0x35,0x9d,0x3b,0x77,
+  0x8e,0xc1,0xd7,0xd7,0x97,0x41,0xd,0xe8,0x0,0x20,0xe6,0x3a,0x76,0xf4,0x68,0x12,
+  0xc8,0xf5,0x3c,0xbc,0xbc,0xc,0x9e,0xc0,0xa4,0x6a,0x66,0x66,0xc6,0xe0,0xe1,0xea,
+  0xca,0xe,0x10,0x40,0x4c,0x3f,0xbe,0x7f,0xdf,0xb5,0x61,0xd3,0x26,0x6,0x2e,0x2e,
+  0x2e,0x6,0x26,0x66,0x48,0x7e,0x1,0xc6,0x3a,0x3,0x50,0x9c,0xe1,0x2b,0xd0,0x55,
+  0x9c,0x9c,0x9c,0xc,0x1f,0x81,0xae,0x7,0xc9,0x7d,0x1,0xf2,0x99,0x81,0x11,0x2b,
+  0xc4,0xcf,0xcf,0xf0,0xe1,0xcd,0x1b,0x86,0x2f,0x40,0x71,0x3b,0x7b,0x7b,0xb0,0xa1,
+  0xff,0x81,0xc1,0xc2,0xe,0xc,0xa6,0xdf,0xc0,0x8c,0x5,0xa,0xe,0x80,0x0,0x62,
+  0x1,0x26,0xa9,0x9c,0xc3,0x47,0x8e,0x80,0xd2,0x30,0xfb,0x43,0x60,0x52,0x83,0xe5,
+  0x71,0x50,0x9a,0x5,0x59,0x0,0x32,0x8,0x98,0xa,0x18,0xfe,0x1,0xd9,0xff,0x80,
+  0xec,0x5f,0xc0,0xc8,0xfb,0xd,0xc,0x22,0x56,0xa0,0x45,0xa0,0x4c,0x4,0x4a,0x86,
+  0x8c,0x50,0xc7,0x7c,0x5,0xfa,0x98,0x5,0x94,0xf,0x80,0x71,0x6,0x10,0x40,0x4c,
+  0x97,0x2e,0x5d,0x7a,0xa,0xb4,0xc5,0x7a,0xcf,0xde,0xbd,0xd7,0x81,0xe5,0xc0,0x4f,
+  0x60,0xb6,0x6,0x47,0x10,0x48,0xf2,0x3f,0xc8,0x30,0xa0,0x66,0x26,0x20,0x1b,0x94,
+  0x4a,0x40,0x6,0x0,0xc3,0x94,0xe1,0xf8,0xc9,0x93,0xc,0x4f,0x81,0x61,0xfd,0xd,
+  0x68,0x10,0x48,0xed,0x1b,0x60,0xae,0xe4,0x0,0xfa,0xf8,0xf5,0xab,0x57,0xc,0x27,
+  0x8e,0x1f,0x7,0x47,0x2a,0x40,0x0,0x31,0x22,0x65,0x69,0x15,0xa0,0x17,0xce,0xf2,
+  0xf3,0xf3,0x33,0x2b,0x29,0x2a,0x72,0xc9,0xcb,0xc9,0x31,0xa,0x1,0x23,0x4b,0x52,
+  0x5a,0x9a,0xe1,0xfe,0xfd,0xfb,0xe0,0x8,0xfd,0xf8,0xfe,0x3d,0xc3,0x4b,0xa0,0xe6,
+  0xa7,0x4f,0x9f,0x32,0x1c,0x3b,0x71,0x2,0xe8,0x91,0xff,0x4c,0xb2,0x72,0x72,0xbf,
+  0xc2,0x22,0x22,0xd8,0xec,0x81,0x41,0x72,0xf,0x98,0xde,0x37,0x6d,0xdc,0xf8,0x60,
+  0xfb,0xf6,0xed,0x2f,0x0,0x2,0x8,0xa5,0x74,0x3,0x1a,0xae,0xe,0xb4,0x4d,0xb,
+  0x58,0x46,0x98,0x2,0x5d,0x62,0x21,0x20,0x20,0x20,0xd,0xf4,0xa2,0x24,0x10,0x33,
+  0x3,0x31,0x17,0xd0,0x9b,0x3f,0x80,0x18,0x18,0xd4,0x9f,0xf,0x3,0xf9,0x93,0x80,
+  0xe1,0x7f,0xc,0x98,0x14,0x2f,0xc9,0xc8,0xca,0x8a,0x3,0xc5,0x57,0x1f,0x3a,0x78,
+  0x70,0x3d,0x50,0xee,0x10,0xd0,0xa8,0xaf,0x0,0x1,0x6,0x0,0x60,0xbe,0xac,0x25,
+  0x5b,0xa4,0x27,0x14,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,

+    // /home/matthew/pencil_dev/icons/eraser.png
+  0x0,0x0,0x4,0x88,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x16,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0xd9,0xb1,0x5c,0x83,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x4,0x1a,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0x60,0x60,0x64,0x61,0x20,0xb,0x33,0x30,0xd8,0xca,0xa,0x9,0x57,0xfb,0x1b,0x18,
+  0x9d,0x60,0x65,0x66,0x71,0x67,0x60,0x40,0x95,0x7,0x8,0x20,0x66,0x6,0x46,0x26,
+  0x6,0xa2,0xc1,0xff,0xbf,0x40,0xe2,0x9f,0x12,0x10,0x77,0x15,0xbb,0xba,0xf9,0xd7,
+  0x5,0x4,0x78,0x97,0x86,0x87,0xde,0xfb,0xf6,0xe9,0x93,0xe5,0x91,0x3b,0x37,0x9f,
+  0x33,0x30,0x32,0xde,0x7,0x9a,0xa,0x56,0xa,0x10,0x40,0xc4,0x1a,0xcc,0xca,0xf0,
+  0xff,0x8f,0xaa,0x8,0xf,0x5f,0x85,0xaf,0x9e,0x41,0xf5,0x9e,0x82,0x2,0x59,0x1f,
+  0xb,0x73,0x4d,0x5,0x11,0x11,0x61,0x86,0x2f,0x5f,0xd4,0x5c,0x8c,0x8d,0xbe,0xff,
+  0xfd,0xf1,0x4b,0xf3,0xd0,0xed,0x9b,0x6f,0x81,0x6,0xdf,0x5,0x5a,0xc0,0x0,0x10,
+  0x40,0xf8,0xd,0xfe,0xff,0x7,0xe4,0x42,0x6b,0x4e,0x36,0x96,0xc4,0x54,0x1b,0xbb,
+  0xa6,0x49,0x31,0xd1,0xf2,0x39,0x5e,0x1e,0xca,0x3c,0x6c,0x6c,0x32,0xcc,0x7f,0xfe,
+  0x70,0x30,0xfc,0xf9,0x3,0x71,0xde,0x9f,0x3f,0xe2,0x4e,0x46,0x86,0xbf,0xff,0xfe,
+  0xfa,0xad,0x7a,0xe8,0xd6,0x8d,0xf7,0x40,0x33,0xef,0x0,0x4,0x10,0xe,0x83,0xff,
+  0x73,0x3,0xbd,0x2d,0xc0,0xc4,0xcc,0x36,0x31,0x2a,0x21,0x5e,0x67,0x56,0x62,0x82,
+  0x6b,0xaa,0xb9,0xa9,0x90,0x4,0x2f,0x9f,0x2a,0xc3,0x8f,0xef,0x6c,0xc,0xff,0xff,
+  0x63,0x6a,0xf9,0xf3,0x47,0xcc,0xc9,0xd0,0xf0,0xe7,0x8f,0xaf,0xdf,0xd4,0x8f,0xde,
+  0xb9,0xf5,0x4,0x20,0x80,0x18,0xa1,0x11,0x81,0xec,0x4a,0x17,0x9,0x9,0x49,0x15,
+  0x4b,0x4b,0xab,0xfc,0xc6,0xc6,0xfa,0xd3,0x12,0x52,0x52,0x61,0x8c,0xdf,0xbf,0x33,
+  0xf2,0x1e,0x3e,0xcc,0xc6,0xfe,0xfe,0x3d,0x30,0x8e,0x58,0xb0,0xfb,0xee,0x2f,0x30,
+  0xfc,0x39,0x38,0x18,0x18,0x24,0x25,0xaf,0x79,0x97,0x96,0x33,0x2,0x4,0x10,0xb,
+  0x52,0xc4,0x28,0x0,0x89,0xe6,0x9c,0xdc,0xbc,0x8f,0x81,0x1,0x1,0x76,0x76,0x76,
+  0xb6,0xbf,0x9f,0x3e,0x7d,0x1a,0xfb,0xe9,0xc3,0x7,0x6,0x6,0x66,0x66,0x86,0xcf,
+  0xa6,0xa6,0xc,0xd2,0xa7,0x4e,0x31,0xb0,0x81,0xc,0x67,0x65,0x85,0xea,0x81,0xba,
+  0x9c,0x9,0xe8,0x6b,0x71,0x71,0x86,0x3f,0x5f,0xbe,0x30,0x7c,0xba,0x7a,0x55,0xe8,
+  0xc7,0xf7,0xef,0xbf,0x1,0x2,0x8,0xe2,0xe2,0xff,0x7f,0xb4,0xdd,0xdc,0x3d,0x62,
+  0xa7,0x4d,0x9d,0xa2,0xc1,0xcb,0xcb,0xeb,0xc0,0xc8,0xc8,0xc8,0xf3,0xf1,0xe3,0x47,
+  0x66,0x26,0x26,0x44,0x30,0xfd,0x7,0x1a,0xce,0xf4,0xe7,0xf,0x83,0xd4,0xc9,0x93,
+  0xc,0xec,0x20,0xcb,0x40,0x80,0x87,0x7,0xec,0x83,0x1f,0x40,0xb9,0x57,0xd7,0xae,
+  0x31,0xfc,0xfd,0xfc,0xf9,0xd7,0xaa,0xf3,0x17,0x58,0x2a,0xe,0xec,0x4f,0x0,0x8,
+  0x20,0x16,0xa0,0xa1,0xea,0x5e,0x5e,0xde,0xd1,0x6b,0xd7,0xae,0xe1,0xfb,0xf6,0xed,
+  0x9b,0xff,0x7b,0xa0,0x8b,0x80,0x6,0x33,0x20,0x1b,0xa,0x2,0x8c,0x40,0xaf,0xfe,
+  0x5,0x1a,0xf2,0xdc,0xcc,0x8c,0x41,0xf2,0xcc,0x19,0x6,0x76,0xa0,0xab,0xbf,0x7f,
+  0xfe,0xcc,0xf0,0xf6,0xf1,0x63,0x86,0x97,0xb7,0x6f,0x33,0xb0,0x2,0xe5,0xfe,0xfc,
+  0xff,0xff,0x78,0xd3,0xbd,0x7b,0xf7,0x80,0xca,0xf,0x3,0x4,0x10,0x28,0x28,0x8c,
+  0x23,0x22,0x23,0x82,0x39,0x38,0x38,0x24,0xff,0xfd,0xfb,0x7,0x74,0x0,0xb,0xc3,
+  0xef,0xdf,0xbf,0x31,0xc,0xfe,0xf,0xf4,0x36,0x7,0xd0,0x65,0x7f,0xb8,0xb8,0x18,
+  0xfe,0xc9,0xc9,0x31,0x3c,0xdc,0xb6,0x8d,0xe1,0xfd,0xdb,0xb7,0xc,0xcc,0x7f,0xff,
+  0xfe,0x67,0x63,0x63,0xfb,0xf5,0xe6,0xeb,0xb7,0x77,0x75,0x7,0xf,0xde,0x39,0xf6,
+  0xe8,0x61,0x26,0x30,0x14,0x1e,0x0,0x4,0x10,0xa3,0xbb,0xbb,0xe7,0x91,0xed,0xdb,
+  0xb7,0xfe,0xfd,0xf5,0xeb,0xb7,0x1d,0x3b,0x3b,0x1b,0xc3,0xf7,0xef,0xdf,0x19,0xde,
+  0x2,0x35,0xfc,0x1,0x7a,0x1b,0x64,0x11,0xc8,0x40,0xa0,0x46,0xb0,0x45,0x5f,0xbf,
+  0x7e,0x65,0xb8,0xd,0x74,0x21,0x3b,0x30,0x38,0x44,0x6e,0xde,0x64,0x10,0x10,0x14,
+  0x7c,0x7b,0xec,0xf1,0x53,0x96,0xed,0x77,0xee,0xde,0x5e,0x72,0xe9,0xfc,0xd,0xa0,
+  0xbf,0xaa,0x18,0x18,0x99,0x1f,0x83,0x1c,0x2,0x10,0x40,0x2c,0x7f,0xfe,0xfe,0x5,
+  0xfa,0x9c,0xf1,0xd7,0x8f,0x1f,0xdf,0x41,0xee,0x62,0xe0,0xe4,0xe4,0x64,0x10,0x15,
+  0x15,0x65,0xf8,0xc,0xf4,0x26,0xc8,0x20,0x10,0xff,0xd5,0xab,0x57,0x60,0xfc,0xe2,
+  0xc5,0xb,0x6,0x2e,0x21,0xc1,0x3f,0xbc,0xec,0xec,0xff,0x5e,0xff,0xf8,0xf9,0xb8,
+  0x74,0xf3,0x36,0xd1,0xb,0x2f,0x9e,0x75,0xbd,0xf9,0xf6,0x75,0x3f,0xd0,0x95,0xc7,
+  0x90,0x7d,0x8,0x10,0x40,0xcc,0xf7,0xef,0xdd,0xbd,0xf3,0xf1,0xd3,0x67,0x3e,0x3f,
+  0x3f,0xdf,0x77,0x5f,0xbe,0x7c,0x51,0x7,0x85,0x2f,0x3b,0x3b,0x3b,0xd8,0xc0,0x4f,
+  0x9f,0x3e,0x31,0x9c,0x3f,0x7f,0x9e,0xe1,0xd9,0xb3,0x67,0x60,0x9f,0x8,0x8,0x8,
+  0x3c,0xbc,0x75,0xfd,0xe6,0xa7,0x39,0x9b,0xb7,0x1e,0x69,0xdd,0xba,0xe5,0xde,0xdd,
+  0xf7,0xef,0x3c,0xbe,0xfd,0xf9,0x77,0x8,0xe8,0xca,0xfb,0xe8,0xa9,0xf,0x20,0x80,
+  0x80,0x19,0x84,0xf9,0xe1,0x89,0xe3,0xc7,0xd8,0xbe,0x7d,0xff,0xc1,0xed,0xeb,0xeb,
+  0xf3,0x19,0x68,0xb8,0xa,0x2b,0x30,0x62,0x9e,0x3f,0x7f,0xce,0x70,0xec,0xd8,0x31,
+  0x70,0x50,0x70,0x73,0x73,0x7f,0xbe,0x7f,0xff,0xfe,0xa5,0x45,0x8b,0x97,0xfc,0x9d,
+  0x3b,0x67,0xf6,0xf2,0x3b,0x77,0xef,0x2c,0xfe,0xcf,0xc0,0x34,0x11,0xa8,0x17,0xe8,
+  0x4d,0xc6,0x3f,0xd8,0x92,0x35,0x40,0x0,0xb1,0x40,0xa,0xd,0xa6,0xad,0xdd,0x5d,
+  0x9d,0xc,0xff,0xfe,0xfe,0x63,0xe8,0xe9,0xe9,0xfa,0xf7,0xf0,0xe1,0x43,0xaf,0x8b,
+  0x17,0x2f,0x82,0x22,0xe5,0xe3,0xeb,0xd7,0xaf,0xef,0x2d,0x58,0xb8,0x84,0xe1,0xca,
+  0xe5,0x4b,0xfb,0x3f,0x7f,0xfe,0xb8,0x0,0xe8,0xe5,0x3b,0x40,0xfc,0x9b,0x50,0xe1,
+  0x2,0x10,0x40,0x90,0x2c,0xd,0xf4,0x3e,0x10,0xdf,0x3e,0x7e,0xec,0x8,0xe3,0xc7,
+  0x8f,0x9f,0x45,0x75,0x74,0xb4,0x1f,0x1e,0x3e,0x7c,0x44,0x60,0xcb,0x96,0x2d,0xa7,
+  0x7b,0x7b,0x7b,0x6f,0x3f,0x79,0xfc,0x28,0xef,0xd7,0xaf,0x5f,0xab,0x81,0x6,0xbe,
+  0x1,0x15,0x1e,0xc4,0x94,0x5a,0x0,0x1,0x84,0x56,0xc6,0x32,0x3,0x33,0x19,0x8b,
+  0x8f,0x91,0xb1,0xe9,0x61,0x11,0x11,0xd1,0x4a,0xa0,0x80,0x1d,0xb9,0xe5,0x35,0x40,
+  0x80,0x1,0x0,0x27,0xac,0xb4,0xd7,0x6c,0x4d,0xce,0x70,0x0,0x0,0x0,0x0,0x49,
+  0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/outlines5.png
+  0x0,0x0,0x1,0xd6,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x1f,0xf3,0xff,0x61,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x1,0x68,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xb9,0xf2,0xfe,0xef,0x37,0x6,0x6,0x86,0x20,0x6d,0x1,0xa6,0x1d,0xc,0x44,0x2,
+  0x2d,0x15,0x63,0x9,0x20,0x75,0x0,0x88,0xa7,0x3,0x4,0x10,0x13,0x90,0xe0,0x4,
+  0xe2,0x75,0x57,0x3f,0xfc,0xf3,0x20,0x55,0xf3,0xb5,0x3b,0x67,0x27,0x2,0x4,0x10,
+  0x13,0x54,0x9c,0x28,0x43,0xd0,0x35,0x83,0xc4,0x0,0x2,0x88,0x9,0x49,0x1e,0xaf,
+  0x21,0xd8,0x34,0x83,0x0,0x40,0x0,0x31,0xa1,0xa9,0xc3,0x6a,0x8,0x2e,0xcd,0x20,
+  0x0,0x10,0x40,0x4c,0x58,0x2c,0x43,0x31,0x4,0x9f,0x66,0x10,0x0,0x8,0x20,0x26,
+  0x1c,0xde,0xe5,0xfc,0xf7,0xef,0xdf,0xba,0xec,0xa2,0xc6,0x6,0x7c,0x9a,0x41,0x0,
+  0x20,0x80,0x18,0x81,0xd1,0xf8,0x1f,0x5d,0x10,0xa8,0x99,0xa1,0xb7,0xac,0x9c,0xe1,
+  0xf4,0xc1,0x83,0xbf,0x99,0xd9,0xd9,0x4e,0x5d,0xba,0x72,0xcc,0x6,0x57,0xc0,0x2,
+  0x4,0x10,0x13,0x2e,0xcd,0x67,0xe,0x1f,0xfe,0xc1,0xc4,0xc2,0xca,0xea,0x96,0x9e,
+  0x63,0x3c,0xf3,0xd8,0x5d,0x9c,0xb1,0x3,0x10,0x40,0x28,0x6,0xfc,0xf9,0xfd,0x1b,
+  0xae,0xf9,0xef,0xdf,0x3f,0x1c,0x21,0xd5,0xf5,0xc,0xaa,0xc6,0xe6,0x1c,0xa0,0x30,
+  0xc1,0x65,0x8,0x40,0x0,0x31,0x21,0x6b,0xee,0xaf,0xac,0x62,0x38,0x73,0xe8,0xd0,
+  0xf,0x46,0x26,0x26,0xe,0x87,0xf8,0x64,0x6,0x9,0x25,0x55,0x94,0x80,0xc5,0x66,
+  0x8,0x40,0x0,0x31,0xa1,0x68,0x3e,0x72,0xe4,0xdb,0xdf,0x7f,0x7f,0x39,0x2c,0x43,
+  0x23,0x18,0xc,0x9c,0x3d,0xb0,0xc6,0xe,0xba,0x21,0x0,0x1,0xc4,0x84,0x6c,0x33,
+  0x13,0x33,0x33,0x97,0x63,0x6c,0x12,0x83,0xb1,0x87,0x2f,0x2e,0x2f,0x63,0x18,0x2,
+  0x10,0x40,0xcc,0xdf,0xdf,0x7d,0x6b,0x38,0x7b,0xe4,0xc8,0x57,0xa0,0x9f,0xb9,0xb4,
+  0xec,0x1c,0x18,0xac,0x82,0x23,0x8,0x65,0x7,0x56,0x20,0xe,0x3e,0xfb,0xf8,0xfd,
+  0x59,0x13,0x59,0xa1,0x3b,0x0,0x1,0xc4,0xa8,0xa3,0x61,0xfe,0x91,0x95,0x9d,0x9d,
+  0x4f,0xcd,0xdc,0x9a,0xc1,0x11,0xe8,0x6f,0x12,0xc0,0x77,0x50,0x2e,0x6,0x8,0x20,
+  0xa6,0x5f,0xff,0x7e,0xf1,0x89,0xca,0x2b,0x90,0xaa,0x19,0xee,0x1d,0x80,0x0,0x3,
+  0x0,0xd9,0xe1,0xa9,0xc9,0xc2,0xff,0x8,0x6,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+  0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/remove.png
+  0x0,0x0,0x2,0x9c,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x1f,0xf3,0xff,0x61,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x2,0x2e,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0xfc,0xff,0xff,0x3f,0x3,0x32,0x90,0x97,0x97,0x77,0x63,0x65,0x65,0x75,0x67,0x61,
+  0x61,0xb1,0x2,0x62,0x4d,0x26,0x26,0x26,0x90,0xf0,0xf5,0x7f,0xff,0xfe,0x1d,0xfb,
+  0xf3,0xe7,0xcf,0xce,0x1b,0x37,0x6e,0xec,0x42,0x56,0xf,0x10,0x40,0x8c,0x30,0x3,
+  0x64,0x64,0x64,0x14,0xd8,0xd8,0xd8,0x72,0x38,0x38,0x38,0xd2,0xb9,0xb8,0xb8,0x78,
+  0x80,0x34,0x3,0xd0,0x20,0x6,0x66,0x66,0x66,0xb0,0xfc,0xdf,0xbf,0x7f,0x19,0x7e,
+  0xff,0xfe,0xfd,0xe5,0xc7,0x8f,0x1f,0x33,0xbf,0x7d,0xfb,0x36,0xe5,0xda,0xb5,0x6b,
+  0xf,0x40,0xe2,0x0,0x1,0x4,0x36,0x0,0xa4,0x99,0x9d,0x9d,0xbd,0x99,0x87,0x87,
+  0x27,0x6,0x88,0x19,0x40,0x18,0xc8,0x7,0x1b,0x0,0x75,0x1,0x3,0xd0,0x5,0x20,
+  0x3,0x18,0x7e,0xfe,0xfc,0xc9,0xf0,0xe5,0xcb,0x97,0x25,0x40,0x5c,0x7b,0xf1,0xe2,
+  0xc5,0x7,0x0,0x1,0xc4,0x2,0x92,0x4,0xd9,0xc,0xd2,0xcc,0xcf,0xcf,0xcf,0xc0,
+  0xc7,0xc7,0xc7,0xc0,0xc9,0xc9,0x9,0x12,0x3,0x6b,0x66,0x64,0x64,0x4,0x1b,0x0,
+  0xb2,0x8,0x64,0x8,0xd4,0xe0,0x18,0xa0,0xcb,0x5e,0x2,0x85,0x4b,0x0,0x2,0x88,
+  0x51,0x4e,0x4e,0xce,0x8d,0x9b,0x9b,0x7b,0xad,0xa0,0xa0,0x20,0xf,0x10,0x83,0x6d,
+  0x47,0xb6,0x19,0x1d,0xc0,0x5c,0x2,0x74,0xc1,0x97,0xf7,0xef,0xdf,0x7,0x3,0x4,
+  0x10,0xb,0x28,0xc0,0x40,0x7e,0x6,0x69,0x4,0xd9,0x8c,0x4f,0x33,0x8,0x80,0xe4,
+  0x40,0x6a,0x80,0x6a,0x79,0x80,0x6,0xb9,0x3,0x4,0x10,0xb,0x28,0xb4,0x41,0x1,
+  0x6,0xc,0x7,0x50,0xc,0x30,0x0,0xf9,0x60,0x67,0x83,0x2,0xf,0xe4,0xd,0x10,
+  0x1b,0xa4,0x1,0x64,0x33,0x48,0xec,0xeb,0xd7,0xaf,0xc,0xb7,0x6e,0xdd,0x82,0x79,
+  0xc7,0xa,0x20,0x80,0x40,0x6,0x68,0xc2,0x6c,0xcd,0xcb,0xcb,0x63,0xe0,0xe5,0xe5,
+  0x5,0x3b,0x11,0x14,0xea,0xb0,0x18,0x2,0xc9,0x81,0xc,0x6,0x19,0xf0,0xf6,0xed,
+  0x5b,0x86,0xa2,0xa2,0x22,0x98,0x4b,0x34,0x1,0x2,0x88,0x9,0xc4,0x0,0x49,0x80,
+  0x14,0x80,0x42,0x18,0x4,0x80,0xf1,0xd,0xd6,0xc,0x12,0x3,0x79,0xb,0x14,0x70,
+  0xb0,0x0,0x5,0x89,0x83,0x30,0x88,0xd,0x12,0x3,0x8,0x20,0x50,0x2c,0x5c,0x7,
+  0x62,0xb,0x90,0x21,0xf3,0xe6,0xcd,0x83,0x2b,0x86,0x45,0xd9,0xaf,0x5f,0xbf,0xe0,
+  0x9a,0x41,0x34,0x30,0x1d,0xc0,0x63,0x6,0xa4,0x17,0x20,0x80,0x58,0x40,0x29,0xc,
+  0xe8,0x5c,0x8b,0xe7,0xcf,0x9f,0x33,0x7c,0xfc,0xf8,0x11,0x6f,0x0,0xc2,0x0,0xc8,
+  0x32,0x50,0x18,0x80,0xf4,0x2,0x4,0x10,0x13,0x28,0x79,0x82,0x52,0x18,0xc8,0x46,
+  0x90,0x20,0xb1,0x0,0xa8,0x16,0xa4,0x67,0x27,0x40,0x0,0x31,0x81,0xd2,0x36,0x28,
+  0x79,0xc2,0x9c,0x4b,0x8c,0x21,0x20,0x35,0x40,0xb5,0x33,0x37,0x6d,0xda,0xb4,0xb,
+  0x20,0x80,0xc0,0xee,0x5,0xa5,0x6d,0x50,0xf2,0xfc,0xfe,0xfd,0x3b,0x3,0x21,0x97,
+  0x40,0x13,0x12,0x48,0xed,0x14,0x10,0x1f,0x20,0x80,0xe0,0x99,0x49,0x5f,0x5f,0x5f,
+  0x1,0x98,0x94,0x73,0x80,0x49,0x39,0x1d,0x94,0x48,0x70,0x24,0xe5,0x2f,0x20,0x9b,
+  0x41,0x9a,0xb7,0x6c,0xd9,0x2,0xce,0x4c,0x0,0x1,0xc4,0x88,0x9e,0x9d,0xad,0xad,
+  0xad,0xdd,0x80,0xa9,0xd2,0x1d,0x94,0x48,0xa0,0xf1,0xc,0xcf,0xce,0x20,0x3f,0x83,
+  0x9c,0x8d,0xac,0x1e,0x20,0xc0,0x0,0xba,0x65,0x16,0xd6,0xb7,0xe7,0xf0,0xe6,0x0,
+  0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/controls/separator.png
+  0x0,0x0,0x5,0x21,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x25,0x0,0x0,0x0,0x1f,0x8,0x6,0x0,0x0,0x0,0x60,0x7f,0x4,0xc8,
+  0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+  0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+  0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+  0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x4,0xb3,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+  0x64,0x60,0x60,0xe0,0x68,0x6c,0x6c,0xb4,0xe3,0xe0,0xe0,0x30,0x62,0x65,0x65,0x8d,
+  0x60,0x64,0x64,0xd4,0xfc,0xff,0xff,0xff,0x85,0x3f,0x7f,0xfe,0x6c,0x7f,0xfc,0xf8,
+  0xf1,0xaa,0x3b,0x77,0xee,0x3c,0xfc,0xf0,0xe1,0xc3,0xef,0x47,0x8f,0x1e,0xfd,0x7d,
+  0xfa,0xf4,0xe9,0x7f,0xa0,0x7a,0x18,0xa6,0x19,0x0,0x8,0x20,0x66,0x20,0x66,0x3a,
+  0x70,0xe0,0xc0,0x93,0x3d,0x7b,0xf6,0x9c,0x15,0x17,0x17,0xdf,0x5,0x74,0xd8,0x3e,
+  0x20,0x16,0x62,0x63,0x63,0x8b,0x14,0x14,0x14,0x4c,0x95,0x97,0x97,0x57,0xe2,0xe3,
+  0xe3,0x7b,0xf2,0xec,0xd9,0xb3,0xb7,0x4c,0x4c,0x4c,0x7f,0xbf,0x7e,0xfd,0xa,0xd2,
+  0xc7,0x48,0x4b,0x47,0x1,0x4,0x10,0xc8,0x70,0x16,0x90,0xc3,0xa0,0x34,0x33,0x8c,
+  0xb6,0xb5,0xb5,0x15,0xf4,0xf4,0xf4,0xc,0xe3,0xe4,0xe4,0xf4,0x7,0xf2,0x75,0xff,
+  0xfd,0xfb,0xb7,0x6b,0xe5,0xca,0x95,0x71,0x9f,0x3e,0x7d,0xfa,0x6,0xe4,0xff,0xbd,
+  0x71,0xe3,0x6,0xcd,0x42,0xc,0x20,0x80,0x98,0x91,0xc,0xfe,0x7,0x65,0x83,0xe8,
+  0x7f,0xc0,0xe8,0xfa,0x71,0xfa,0xf4,0xe9,0x8b,0xef,0xdf,0xbf,0xdf,0xaa,0xa0,0xa0,
+  0x70,0xf,0x18,0x72,0x9,0x9a,0x9a,0x9a,0xdc,0x40,0x70,0xfe,0xfb,0xf7,0xef,0x3f,
+  0x25,0x24,0x24,0xfe,0x1,0xa3,0x93,0x26,0x21,0x5,0x10,0x40,0xcc,0x50,0xfa,0x3f,
+  0xb2,0x83,0x60,0xe,0xfc,0xf9,0xf3,0xe7,0x7f,0xa0,0xe3,0x7e,0x9e,0x3a,0x75,0xea,
+  0xa6,0x95,0x95,0xd5,0x5b,0xa0,0xc3,0x4a,0x81,0x51,0xfa,0xa,0x28,0x76,0x5,0x98,
+  0x6,0xff,0x2,0x43,0xf2,0x3f,0xd0,0xe1,0x54,0x77,0x14,0x40,0x0,0x31,0xe2,0x10,
+  0x63,0x44,0x8a,0x52,0x56,0x10,0xcd,0xcf,0xcf,0xcf,0x52,0x59,0x59,0x19,0xc7,0xce,
+  0xce,0x5e,0x7,0xc,0x3d,0xcf,0x43,0x87,0xe,0x9d,0x7f,0xf1,0xe2,0xc5,0xcf,0xeb,
+  0xd7,0xaf,0xff,0x3,0x66,0xe,0xaa,0x3a,0xa,0x20,0x80,0x18,0x9,0xc8,0x31,0x21,
+  0xa5,0x33,0x16,0x60,0x28,0xb1,0x2,0x1d,0x96,0x7,0xcc,0x8,0x29,0xef,0xde,0xbd,
+  0xf3,0x3e,0x7c,0xf8,0xf0,0xd,0xa8,0xc3,0xfe,0x53,0xd3,0x61,0x0,0x1,0xc4,0x84,
+  0x47,0xe,0x16,0x9d,0x7f,0x81,0xf8,0x37,0x8,0x3,0x43,0xe8,0xd7,0xde,0xbd,0x7b,
+  0x67,0x0,0x8b,0x8b,0x8d,0x42,0x42,0x42,0x5b,0x8c,0x8d,0x8d,0xe5,0x40,0x8e,0x6,
+  0xa6,0x35,0x46,0x60,0x31,0x42,0x35,0x47,0x1,0x4,0x10,0x33,0x91,0xea,0x60,0x69,
+  0x8e,0xf1,0xee,0xdd,0xbb,0x7f,0xbf,0x7d,0xfb,0x76,0x52,0x43,0x43,0xc3,0xc,0x58,
+  0x54,0x38,0x7e,0xfc,0xf8,0x71,0x17,0x30,0xad,0xfd,0x4c,0x4c,0x4c,0xa4,0x5a,0x51,
+  0x1,0x10,0x40,0xcc,0x64,0x44,0x35,0xd3,0xeb,0xd7,0xaf,0x19,0x74,0x74,0x74,0x1e,
+  0xf1,0xf2,0xf2,0x96,0x8b,0x8a,0x8a,0x5e,0x6,0xe6,0xc6,0x47,0x5f,0xbe,0x7c,0xf9,
+  0xd,0x2c,0x64,0xa9,0x12,0x52,0x0,0x1,0xc4,0x44,0x42,0x48,0xc1,0x72,0xe5,0xdf,
+  0x1f,0x3f,0x7e,0xfc,0xed,0xea,0xea,0xba,0xf0,0xfb,0xf7,0xef,0x4d,0x40,0x87,0x35,
+  0xab,0xa9,0xa9,0x69,0x2,0xc5,0xd9,0x49,0x30,0xf,0x2f,0x0,0x8,0x20,0x66,0x32,
+  0x33,0x7,0x38,0x3,0x0,0xb,0xd2,0xd3,0xc0,0x10,0xcb,0x1,0x16,0xb0,0x6c,0x40,
+  0xf6,0x51,0x60,0x95,0xf4,0x93,0x1a,0x5,0x2a,0x40,0x0,0x91,0xea,0xb3,0xff,0xd0,
+  0x84,0xf,0xc6,0x27,0x4f,0x9e,0xfc,0xc,0x8c,0xba,0x59,0x40,0x76,0x38,0xd0,0x71,
+  0xca,0x2,0x2,0x2,0x4c,0x48,0x45,0xa,0xd9,0x0,0x20,0x80,0x98,0x29,0x28,0x4a,
+  0x40,0xe,0x0,0x56,0x87,0x4c,0xf7,0x81,0xd1,0xe7,0xcf,0xc3,0xc3,0xa3,0x2,0xcc,
+  0x91,0x87,0x2e,0x5c,0xb8,0xf0,0x99,0xd2,0x90,0x2,0x8,0x20,0x66,0xa,0xca,0x36,
+  0xb0,0xc3,0x9e,0x3c,0x79,0xf2,0x1b,0x58,0x24,0xdc,0x2,0xe6,0xc4,0x62,0x20,0x3e,
+  0xb,0x2c,0xbf,0xee,0x2,0xcb,0xae,0xbf,0x94,0x84,0x16,0x40,0x0,0x91,0x93,0x30,
+  0x61,0x89,0xfe,0xf,0xa8,0xec,0xfa,0x5,0x4,0xf3,0xe6,0xcd,0x3b,0xe,0x4c,0xf4,
+  0x3b,0x80,0xf5,0x62,0xd,0xb0,0x4e,0xe4,0x2,0x39,0xe8,0x3f,0x5,0x5,0x17,0x40,
+  0x0,0x91,0x9b,0x5b,0xfe,0x23,0x17,0xaa,0xc0,0xd0,0x1,0xd5,0x8f,0x2d,0xc0,0x96,
+  0x84,0x8c,0xd,0x10,0x0,0xd3,0x16,0xb,0xb0,0x84,0x67,0x22,0x37,0xb4,0x0,0x2,
+  0x88,0x99,0xa,0x39,0x18,0x1c,0x8d,0xaf,0x5e,0xbd,0xfa,0x69,0x6d,0x6d,0xed,0x8,
+  0xac,0x1b,0xf5,0x84,0x85,0x85,0xf7,0x9e,0x3f,0x7f,0xfe,0x3b,0xb9,0xd,0x42,0x80,
+  0x0,0x62,0x66,0xa0,0xe,0x60,0x2,0xd6,0x87,0x4c,0xc0,0x52,0xfe,0x1,0xb0,0xdc,
+  0x2a,0x1,0x56,0xde,0xd7,0x81,0x85,0xea,0xc3,0x2b,0x57,0xae,0xfc,0x24,0xc7,0x30,
+  0x80,0x0,0xa2,0x56,0x48,0x31,0x2,0x9b,0x39,0xc,0x40,0x47,0xbc,0x2,0xc6,0x9e,
+  0x8,0x30,0xb4,0x12,0x80,0x8e,0xdb,0x5,0x4c,0xf0,0xef,0xde,0xbc,0x79,0xf3,0x8f,
+  0xd4,0xd0,0x2,0x8,0x20,0x4a,0x4b,0x60,0xe4,0x4a,0xfb,0x2f,0xb0,0x0,0xfd,0x75,
+  0xe9,0xd2,0xa5,0xc9,0x20,0xcf,0x72,0x71,0x71,0x85,0x2,0x9b,0xd2,0x1c,0xe4,0x94,
+  0x5b,0x0,0x1,0x44,0x8d,0x6a,0x1,0x96,0xe8,0x41,0xb9,0xf1,0xcf,0xe6,0xcd,0x9b,
+  0x5f,0x0,0xeb,0xc1,0x36,0x60,0x74,0xe6,0x2,0x1b,0x86,0xba,0xd0,0x66,0xf,0x49,
+  0xe,0x3,0x8,0x20,0x6a,0x39,0xa,0x56,0x44,0xfc,0x1,0xb6,0x1a,0x7e,0x4d,0x9e,
+  0x3c,0x79,0xe3,0xdf,0xbf,0x7f,0x77,0x3,0xcb,0xad,0x6e,0x60,0x34,0xb2,0x21,0x25,
+  0x13,0xa2,0x1c,0x6,0x10,0x40,0xd4,0x4a,0xe8,0x28,0xe9,0xb,0xd4,0xe3,0x1,0x46,
+  0xe5,0x1,0x60,0xd5,0x53,0xb,0xc,0xad,0x4f,0xc0,0x9e,0xd2,0x79,0xa4,0x3e,0x0,
+  0x41,0x0,0x10,0x40,0xd4,0x76,0x14,0x3c,0x6,0x80,0x25,0xfd,0x5f,0xa0,0x83,0xde,
+  0x1,0xab,0x9f,0x4c,0x20,0x7d,0x7e,0xff,0xfe,0xfd,0xcf,0x89,0x75,0x14,0x40,0x0,
+  0x31,0x51,0xd1,0x21,0x28,0x89,0x1e,0x84,0xeb,0xeb,0xeb,0x97,0x1,0x2b,0xec,0xf9,
+  0xc0,0x22,0x62,0x22,0xb0,0x11,0x28,0x8d,0xd4,0x9d,0xc3,0xdb,0x52,0x5,0x8,0x20,
+  0x26,0x2a,0x87,0x10,0x4a,0xfa,0x2,0x39,0x6c,0xdb,0xb6,0x6d,0x6b,0x81,0x25,0x3d,
+  0x83,0x9e,0x9e,0xde,0xc1,0xec,0xec,0x6c,0x6d,0x68,0x47,0x84,0x19,0xa9,0xc4,0xc7,
+  0x48,0x67,0x0,0x1,0x44,0xab,0xe8,0x83,0xa7,0x31,0x60,0x77,0xec,0x37,0xb0,0x98,
+  0x58,0x69,0x69,0x69,0xa9,0xe,0x2c,0xe9,0xdb,0xcc,0xcd,0xcd,0x9f,0x1e,0x3c,0x78,
+  0xf0,0x26,0x5a,0x1a,0x43,0xae,0x92,0x18,0x1,0x2,0x88,0x96,0x8e,0x82,0xc7,0xf,
+  0xb0,0x88,0x60,0x0,0xd6,0x8f,0xc7,0xb4,0xb5,0xb5,0x19,0x81,0xe5,0x57,0xb5,0xab,
+  0xab,0xab,0x11,0xb0,0xf4,0x7f,0x2,0x6c,0x8f,0xbd,0xc4,0x92,0x1,0x98,0x0,0x2,
+  0x88,0x96,0x63,0x2,0xb0,0x36,0x17,0x2b,0x14,0xb3,0x69,0x69,0x69,0xf1,0x44,0x46,
+  0x46,0x7a,0x1,0x13,0x7f,0x38,0x90,0x6f,0x0,0x4c,0x57,0xf7,0x81,0x69,0xae,0xfe,
+  0xe2,0xc5,0x8b,0x7,0x56,0xad,0x5a,0xf5,0x19,0xd4,0xb2,0x0,0x46,0x2b,0x23,0x40,
+  0x0,0x31,0xd2,0x3a,0xfa,0xd0,0x1d,0xa6,0xaf,0xaf,0xcf,0x3,0xac,0x8a,0x94,0x80,
+  0x4d,0x1c,0x75,0x60,0x19,0xe6,0xc,0x14,0xd3,0x3,0xba,0x45,0x11,0x98,0xee,0x8e,
+  0x2,0x8b,0x92,0x36,0x60,0x4b,0xe8,0x6,0x40,0x80,0x1,0x0,0x44,0xee,0xf0,0x97,
+  0xfd,0x3e,0x4d,0x44,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,

+    // /home/matthew/pencil_dev/icons/controls/play.png
+  0x0,0x0,0x1,0x30,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x1f,0xf3,0xff,0x61,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+  0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd8,
+  0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+  0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+  0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+  0xb,0x0,0x0,0x0,0xa6,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+  0x3,0x25,0x0,0x20,0x80,0x18,0x29,0x35,0x0,0x20,0x80,0x28,0x36,0x0,0x20,0x80,
+  0x30,0xc,0x48,0x4f,0x4f,0x7,0xb,0xcc,0x9c,0x39,0x93,0x91,0x18,0x3,0x0,0x2,
+  0x8,0xc3,0x0,0x46,0x46,0xc6,0xff,0x8e,0x8e,0x8e,0xc,0xaa,0xaa,0xaa,0xc,0xc4,
+  0x18,0x4,0x10,0x40,0x58,0xd,0x80,0xb1,0x89,0x31,0x8,0x20,0x80,0xf0,0x1a,0x40,
+  0x8c,0x41,0x0,0x1,0x44,0x94,0x1,0xf8,0xc,0x2,0x8,0x20,0x92,0xc,0xc0,0x66,
+  0x10,0x40,0x0,0x31,0x91,0x13,0x75,0xfb,0xf7,0xef,0x87,0xb3,0x1,0x2,0x88,0x1,
+  0xe4,0x2,0x64,0xc,0x4,0xff,0xf1,0x61,0xa0,0xed,0xff,0xd3,0xd2,0xd2,0xfe,0xc3,
+  0xd4,0x3,0x4,0x10,0xd1,0x5e,0x0,0x6a,0xc2,0x1a,0x88,0x0,0x1,0x44,0xd0,0x5,
+  0xe8,0x36,0xa2,0x63,0x80,0x0,0xc2,0xe9,0x2,0x9c,0x36,0xa2,0x1,0x80,0x0,0xa2,
+  0x38,0x29,0x3,0x4,0x10,0xc5,0x99,0x9,0x20,0xc0,0x0,0xd,0xfc,0x8f,0x4,0x89,
+  0x14,0xb4,0x97,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/controls/sound.png
+  0x0,0x0,0x1,0x7,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0xe,0x0,0x0,0x0,0xd,0x8,0x6,0x0,0x0,0x0,0x99,0xdc,0x5f,0x7f,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+  0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd8,
+  0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+  0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+  0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+  0xb,0x0,0x0,0x0,0x7d,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+  0x3,0x36,0xc0,0xc8,0xc8,0x8,0x96,0x0,0xca,0x33,0xa2,0x8b,0x83,0xc4,0x0,0x2,
+  0x88,0x9,0x9f,0x26,0x6c,0xe2,0x30,0x83,0x0,0x2,0x88,0x89,0x1c,0x4d,0x20,0x0,
+  0x10,0x40,0x4c,0xc4,0x68,0xc2,0xe6,0x64,0x80,0x0,0x62,0xc1,0xa7,0x18,0x1f,0x0,
+  0x8,0x20,0x26,0x6,0x32,0x1,0x40,0x0,0xb1,0x90,0xa2,0x18,0xd9,0x75,0x0,0x1,
+  0x44,0x92,0x46,0x64,0x7f,0x2,0x4,0x10,0xd9,0x4e,0x5,0x8,0x20,0x16,0x64,0x53,
+  0x48,0x9,0x28,0x80,0x0,0x62,0xc2,0x17,0xe4,0xf8,0xa2,0xa,0x20,0x80,0x98,0x8,
+  0xc5,0x17,0xb2,0x38,0xb2,0x66,0x80,0x0,0x62,0x22,0x26,0xb2,0xb1,0x69,0x6,0x8,
+  0x30,0x0,0x70,0x5d,0x34,0x21,0xfa,0xec,0x43,0xcb,0x0,0x0,0x0,0x0,0x49,0x45,
+  0x4e,0x44,0xae,0x42,0x60,0x82,
+    // /home/matthew/pencil_dev/icons/controls/loop.png
+  0x0,0x0,0x0,0x96,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0xc,0x0,0x0,0x0,0xc,0x8,0x6,0x0,0x0,0x0,0x56,0x75,0x5c,0xe7,
+  0x0,0x0,0x0,0x5d,0x49,0x44,0x41,0x54,0x28,0x91,0x9d,0x91,0x51,0xa,0xc0,0x20,
+  0xc,0x43,0x5b,0xd9,0x21,0x73,0x35,0x6f,0x90,0x5b,0xf4,0x68,0xee,0xc7,0x4a,0x99,
+  0x43,0xb2,0x3d,0x28,0x58,0x4c,0x9b,0x88,0x66,0x5,0x0,0xc3,0x54,0xa6,0x58,0x1b,
+  0x28,0xe2,0x63,0x1,0x18,0xb2,0x38,0xcb,0xd3,0x81,0x64,0xba,0x6d,0x9,0xf2,0x4e,
+  0x7e,0x43,0xef,0x7d,0x39,0xb4,0xb2,0xc5,0xdf,0xb6,0x3f,0x69,0xb5,0x21,0xe9,0x9f,
+  0x6,0x14,0xae,0x99,0xef,0x48,0x44,0xac,0xb3,0x9b,0xfa,0x59,0x7f,0x22,0x1,0xb0,
+  0x1b,0x39,0x41,0x39,0xf2,0xf,0x61,0x19,0x1f,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+  0x44,0xae,0x42,0x60,0x82,

+};
+
+static const unsigned char qt_resource_name[] = {
+  // icons
+  0x0,0x5,
+  0x0,0x6f,0xa6,0x53,
+  0x0,0x69,
+  0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x73,
+    // background
+  0x0,0xa,
+  0x1,0xe4,0x67,0x4,
+  0x0,0x62,
+  0x0,0x61,0x0,0x63,0x0,0x6b,0x0,0x67,0x0,0x72,0x0,0x6f,0x0,0x75,0x0,0x6e,0x0,0x64,
+    // weave.jpg
+  0x0,0x9,
+  0x8,0xc8,0xaa,0x7,
+  0x0,0x77,
+  0x0,0x65,0x0,0x61,0x0,0x76,0x0,0x65,0x0,0x2e,0x0,0x6a,0x0,0x70,0x0,0x67,
+    // dots.png
+  0x0,0x8,
+  0x6,0xb6,0x5a,0x27,
+  0x0,0x64,
+  0x0,0x6f,0x0,0x74,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // select.png
+  0x0,0xa,
+  0xb,0xa8,0x6f,0x7,
+  0x0,0x73,
+  0x0,0x65,0x0,0x6c,0x0,0x65,0x0,0x63,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // pen.png
+  0x0,0x7,
+  0x6,0xc1,0x57,0xa7,
+  0x0,0x70,
+  0x0,0x65,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // brush.png
+  0x0,0x9,
+  0xc,0x9b,0x84,0x67,
+  0x0,0x62,
+  0x0,0x72,0x0,0x75,0x0,0x73,0x0,0x68,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // bucketTool.png
+  0x0,0xe,
+  0x5,0x1c,0xde,0x47,
+  0x0,0x62,
+  0x0,0x75,0x0,0x63,0x0,0x6b,0x0,0x65,0x0,0x74,0x0,0x54,0x0,0x6f,0x0,0x6f,0x0,0x6c,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // add.png
+  0x0,0x7,
+  0x7,0xa7,0x57,0x87,
+  0x0,0x61,
+  0x0,0x64,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // polyline.png
+  0x0,0xc,
+  0x2,0xac,0xd7,0x7,
+  0x0,0x70,
+  0x0,0x6f,0x0,0x6c,0x0,0x79,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // arrow.png
+  0x0,0x9,
+  0x9,0x6a,0x86,0x67,
+  0x0,0x61,
+  0x0,0x72,0x0,0x72,0x0,0x6f,0x0,0x77,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // logo.png
+  0x0,0x8,
+  0x5,0xe2,0x59,0x27,
+  0x0,0x6c,
+  0x0,0x6f,0x0,0x67,0x0,0x6f,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // layer-sound.png
+  0x0,0xf,
+  0x7,0xcc,0x9,0xa7,
+  0x0,0x6c,
+  0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x73,0x0,0x6f,0x0,0x75,0x0,0x6e,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // controls
+  0x0,0x8,
+  0x6,0x5b,0x9b,0x73,
+  0x0,0x63,
+  0x0,0x6f,0x0,0x6e,0x0,0x74,0x0,0x72,0x0,0x6f,0x0,0x6c,0x0,0x73,
+    // eraser2.png
+  0x0,0xb,
+  0xc,0x8c,0x46,0x67,
+  0x0,0x65,
+  0x0,0x72,0x0,0x61,0x0,0x73,0x0,0x65,0x0,0x72,0x0,0x32,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // move.png
+  0x0,0x8,
+  0x6,0xc8,0x59,0xc7,
+  0x0,0x6d,
+  0x0,0x6f,0x0,0x76,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // onionStraightAhead.png
+  0x0,0x16,
+  0xc,0x19,0x91,0x47,
+  0x0,0x6f,
+  0x0,0x6e,0x0,0x69,0x0,0x6f,0x0,0x6e,0x0,0x53,0x0,0x74,0x0,0x72,0x0,0x61,0x0,0x69,0x0,0x67,0x0,0x68,0x0,0x74,0x0,0x41,0x0,0x68,0x0,0x65,0x0,0x61,
+  0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // prefs-files.png
+  0x0,0xf,
+  0x5,0x6b,0xff,0x67,
+  0x0,0x70,
+  0x0,0x72,0x0,0x65,0x0,0x66,0x0,0x73,0x0,0x2d,0x0,0x66,0x0,0x69,0x0,0x6c,0x0,0x65,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // icon.png
+  0x0,0x8,
+  0xa,0x61,0x5a,0xa7,
+  0x0,0x69,
+  0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // prefstimeline.png
+  0x0,0x11,
+  0xc,0xc2,0x8,0x67,
+  0x0,0x70,
+  0x0,0x72,0x0,0x65,0x0,0x66,0x0,0x73,0x0,0x74,0x0,0x69,0x0,0x6d,0x0,0x65,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,

+    // aqua.png
+  0x0,0x8,
+  0x8,0xb4,0x5a,0x47,
+  0x0,0x61,
+  0x0,0x71,0x0,0x75,0x0,0x61,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // eyedropper.png
+  0x0,0xe,
+  0x9,0xb2,0x60,0x87,
+  0x0,0x65,
+  0x0,0x79,0x0,0x65,0x0,0x64,0x0,0x72,0x0,0x6f,0x0,0x70,0x0,0x70,0x0,0x65,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // smudge.png
+  0x0,0xa,
+  0xa,0xdb,0x1e,0x27,
+  0x0,0x73,
+  0x0,0x6d,0x0,0x75,0x0,0x64,0x0,0x67,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // layer-vector.png
+  0x0,0x10,
+  0x3,0xd0,0x63,0xe7,
+  0x0,0x6c,
+  0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x76,0x0,0x65,0x0,0x63,0x0,0x74,0x0,0x6f,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // magnify.png
+  0x0,0xb,
+  0xf,0x3e,0xab,0xc7,
+  0x0,0x6d,
+  0x0,0x61,0x0,0x67,0x0,0x6e,0x0,0x69,0x0,0x66,0x0,0x79,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // pencil2.png
+  0x0,0xb,
+  0xf,0x18,0xde,0x67,
+  0x0,0x70,
+  0x0,0x65,0x0,0x6e,0x0,0x63,0x0,0x69,0x0,0x6c,0x0,0x32,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // thinlines5.png
+  0x0,0xe,
+  0x2,0x6e,0x11,0x67,
+  0x0,0x74,
+  0x0,0x68,0x0,0x69,0x0,0x6e,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x73,0x0,0x35,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // layer-bitmap.png
+  0x0,0x10,
+  0xb,0x38,0xd5,0xc7,
+  0x0,0x6c,
+  0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x62,0x0,0x69,0x0,0x74,0x0,0x6d,0x0,0x61,0x0,0x70,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // onionInbetween.png
+  0x0,0x12,
+  0xe,0xc4,0xd8,0x67,
+  0x0,0x6f,
+  0x0,0x6e,0x0,0x69,0x0,0x6f,0x0,0x6e,0x0,0x49,0x0,0x6e,0x0,0x62,0x0,0x65,0x0,0x74,0x0,0x77,0x0,0x65,0x0,0x65,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,
+  0x0,0x67,
+    // house.png
+  0x0,0x9,
+  0xc,0x98,0x89,0x87,
+  0x0,0x68,
+  0x0,0x6f,0x0,0x75,0x0,0x73,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // hand.png
+  0x0,0x8,
+  0x8,0x47,0x5a,0x87,
+  0x0,0x68,
+  0x0,0x61,0x0,0x6e,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // bucket.png
+  0x0,0xa,
+  0x1,0xca,0x60,0x7,
+  0x0,0x62,
+  0x0,0x75,0x0,0x63,0x0,0x6b,0x0,0x65,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // prefspencil.png
+  0x0,0xf,
+  0xe,0x4a,0x59,0xe7,
+  0x0,0x70,
+  0x0,0x72,0x0,0x65,0x0,0x66,0x0,0x73,0x0,0x70,0x0,0x65,0x0,0x6e,0x0,0x63,0x0,0x69,0x0,0x6c,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // clear.png
+  0x0,0x9,
+  0xb,0x85,0x83,0x7,
+  0x0,0x63,
+  0x0,0x6c,0x0,0x65,0x0,0x61,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // mirror.png
+  0x0,0xa,
+  0x9,0x6b,0xd6,0x67,
+  0x0,0x6d,
+  0x0,0x69,0x0,0x72,0x0,0x72,0x0,0x6f,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // layer-camera.png
+  0x0,0x10,
+  0x4,0x3b,0xc4,0xc7,
+  0x0,0x6c,
+  0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x63,0x0,0x61,0x0,0x6d,0x0,0x65,0x0,0x72,0x0,0x61,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // eraser.png
+  0x0,0xa,
+  0x9,0xc8,0xc6,0x47,
+  0x0,0x65,
+  0x0,0x72,0x0,0x61,0x0,0x73,0x0,0x65,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // outlines5.png
+  0x0,0xd,
+  0x1,0xf2,0x36,0x7,
+  0x0,0x6f,
+  0x0,0x75,0x0,0x74,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x73,0x0,0x35,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // remove.png
+  0x0,0xa,
+  0x6,0xcb,0x4f,0xc7,
+  0x0,0x72,
+  0x0,0x65,0x0,0x6d,0x0,0x6f,0x0,0x76,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // separator.png
+  0x0,0xd,
+  0x8,0xe8,0x47,0xa7,
+  0x0,0x73,
+  0x0,0x65,0x0,0x70,0x0,0x61,0x0,0x72,0x0,0x61,0x0,0x74,0x0,0x6f,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // play.png
+  0x0,0x8,
+  0x2,0x8c,0x59,0xa7,
+  0x0,0x70,
+  0x0,0x6c,0x0,0x61,0x0,0x79,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // sound.png
+  0x0,0x9,
+  0xc,0x47,0xa3,0x87,
+  0x0,0x73,
+  0x0,0x6f,0x0,0x75,0x0,0x6e,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+    // loop.png
+  0x0,0x8,
+  0x6,0x63,0x59,0x27,
+  0x0,0x6c,
+  0x0,0x6f,0x0,0x6f,0x0,0x70,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,

+};
+
+static const unsigned char qt_resource_struct[] = {
+  // :
+  0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,
+  // :/icons
+  0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x5,
+  // :/background
+  0x0,0x0,0x0,0x10,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x3,
+  // :/background/dots.png
+  0x0,0x0,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x11,0x4,
+  // :/background/weave.jpg
+  0x0,0x0,0x0,0x2a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,
+  // :/icons/bucket.png
+  0x0,0x0,0x3,0x70,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0xf,0x2e,
+  // :/icons/outlines5.png
+  0x0,0x0,0x4,0x20,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x47,0x70,
+  // :/icons/thinlines5.png
+  0x0,0x0,0x2,0xd0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x1,0x1d,
+  // :/icons/polyline.png
+  0x0,0x0,0x0,0xd4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x21,0xe9,
+  // :/icons/layer-vector.png
+  0x0,0x0,0x2,0x72,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf8,0xb,
+  // :/icons/layer-camera.png
+  0x0,0x0,0x3,0xe0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x3e,0x6f,
+  // :/icons/bucketTool.png
+  0x0,0x0,0x0,0x9e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x19,0x69,
+  // :/icons/prefs-files.png
+  0x0,0x0,0x1,0xbe,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x93,0xbe,
+  // :/icons/logo.png
+  0x0,0x0,0x1,0xa,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x25,0x82,
+  // :/icons/controls
+  0x0,0x0,0x1,0x44,0x0,0x2,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x28,
+  // :/icons/pen.png
+  0x0,0x0,0x0,0x72,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x13,0xb4,
+  // :/icons/move.png
+  0x0,0x0,0x1,0x76,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x8e,0x8b,
+  // :/icons/remove.png
+  0x0,0x0,0x4,0x40,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x49,0x4a,
+  // :/icons/add.png
+  0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1e,0xe2,
+  // :/icons/layer-sound.png
+  0x0,0x0,0x1,0x20,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x88,0xac,
+  // :/icons/hand.png
+  0x0,0x0,0x3,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0xb,0xa4,
+  // :/icons/aqua.png
+  0x0,0x0,0x2,0x20,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf1,0xc4,
+  // :/icons/arrow.png
+  0x0,0x0,0x0,0xf2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x23,0x9b,
+  // :/icons/mirror.png
+  0x0,0x0,0x3,0xc6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x3d,0x3c,
+  // :/icons/eyedropper.png
+  0x0,0x0,0x2,0x36,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf2,0xe6,
+  // :/icons/eraser.png
+  0x0,0x0,0x4,0x6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x42,0xe4,
+  // :/icons/icon.png
+  0x0,0x0,0x1,0xe2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xa4,0xa2,
+  // :/icons/smudge.png
+  0x0,0x0,0x2,0x58,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf5,0x2e,
+  // :/icons/layer-bitmap.png
+  0x0,0x0,0x2,0xf2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x2,0x76,
+  // :/icons/clear.png
+  0x0,0x0,0x3,0xae,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x2f,0xbb,
+  // :/icons/select.png
+  0x0,0x0,0x0,0x58,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x11,0xb4,
+  // :/icons/onionStraightAhead.png
+  0x0,0x0,0x1,0x8c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x8f,0xb5,
+  // :/icons/eraser2.png
+  0x0,0x0,0x1,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x8c,0x22,
+  // :/icons/house.png
+  0x0,0x0,0x3,0x42,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0xa,0xe7,
+  // :/icons/brush.png
+  0x0,0x0,0x0,0x86,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x16,0x7f,
+  // :/icons/prefstimeline.png
+  0x0,0x0,0x1,0xf8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xe4,0x88,
+  // :/icons/prefspencil.png
+  0x0,0x0,0x3,0x8a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x16,0xa6,
+  // :/icons/onionInbetween.png
+  0x0,0x0,0x3,0x18,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x6,0x2,
+  // :/icons/pencil2.png
+  0x0,0x0,0x2,0xb4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xfe,0x62,
+  // :/icons/magnify.png
+  0x0,0x0,0x2,0x98,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xfb,0x66,
+  // :/icons/controls/play.png
+  0x0,0x0,0x4,0x7a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x51,0xf,
+  // :/icons/controls/loop.png
+  0x0,0x0,0x4,0xa8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x53,0x4e,
+  // :/icons/controls/separator.png
+  0x0,0x0,0x4,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x4b,0xea,
+  // :/icons/controls/sound.png
+  0x0,0x0,0x4,0x90,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x52,0x43,
+
+};
+
+QT_BEGIN_NAMESPACE
+
+extern bool qRegisterResourceData
+    (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+extern bool qUnregisterResourceData
+    (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+QT_END_NAMESPACE
+
+
+int QT_MANGLE_NAMESPACE(qInitResources_pencil)()
+{
+    QT_PREPEND_NAMESPACE(qRegisterResourceData)
+        (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+    return 1;
+}
+
+Q_CONSTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qInitResources_pencil))
+
+int QT_MANGLE_NAMESPACE(qCleanupResources_pencil)()
+{
+    QT_PREPEND_NAMESPACE(qUnregisterResourceData)
+       (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+    return 1;
+}
+
+Q_DESTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qCleanupResources_pencil))
+
Binary files pencil_backup/qrc_pencil.o and pencil_dev/qrc_pencil.o differ
Binary files pencil_backup/scribblearea.o and pencil_dev/scribblearea.o differ
diff -rupN pencil_backup/src/external/flash/flash.cpp~ pencil_dev/src/external/flash/flash.cpp~
--- pencil_backup/src/external/flash/flash.cpp~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/external/flash/flash.cpp~    2009-09-22 20:27:34.000000000 -0500
@@ -0,0 +1,234 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#include <QtCore>
+#include <QtGui>
+#include <QtDebug>
+
+#include "flash.h"
+
+#include "object.h"
+#include "beziercurve.h"
+#include "colourref.h"
+
+void Flash::exportFlash(Object* object, int startFrame, int endFrame, QMatrix view, QSize exportSize, QString filePath, int fps, int compression) {
+    qDebug() << "------Flash------" << compression;
+   
+    // ************* Requires the MING Library ***************
+    Ming_init();
+
+  SWFMovie *movie = new SWFMovie();
+    movie->setDimension(exportSize.width(), exportSize.height());
+    movie->setRate(fps); // 12 frames per seconds
+   
+  //SWFShape *shape = new SWFShape();
+    SWFSprite *objectSprite = new SWFSprite();
+   
+    for(int i=0; i < object->getLayerCount(); i++) {
+        Layer* layer = object->getLayer(i);
+        if(layer->visible) {
+            // paints the bitmap images
+            if(layer->type == Layer::BITMAP) {
+                LayerBitmap* layerBitmap = (LayerBitmap*)layer;
+                SWFSprite *layerSprite = new SWFSprite();
+                SWFDisplayItem *previousItem = NULL;
+                for(int frameNumber = startFrame; frameNumber <= endFrame; frameNumber++) {
+                    BitmapImage* bitmapImage = layerBitmap->getBitmapImageAtFrame(frameNumber);
+                    if(bitmapImage != NULL) {
+                        if(previousItem != NULL) layerSprite->remove( previousItem );
+                        SWFSprite *imageSprite = new SWFSprite();
+                        convertToSWFSprite( bitmapImage, object, view, imageSprite);
+                        previousItem = layerSprite->add( imageSprite );
+                    }
+                    layerSprite->nextFrame();
+                }
+                    //layerSprite->add( new SWFAction("stop();") );
+                    //layerSprite->nextFrame();
+                objectSprite->add(layerSprite);
+            }
+            // paints the vector images
+            if(layer->type == Layer::VECTOR) {
+                LayerVector* layerVector = (LayerVector*)layer;
+                SWFSprite *layerSprite = new SWFSprite();
+                SWFDisplayItem *previousItem = NULL;
+                for(int frameNumber = startFrame; frameNumber <= endFrame; frameNumber++) {
+                    VectorImage* vectorImage = layerVector->getVectorImageAtFrame(frameNumber);
+                    if(vectorImage != NULL) {
+                        if(previousItem != NULL) layerSprite->remove( previousItem );
+                        SWFSprite *sprite = new SWFSprite();
+                        convertToSWFSprite( vectorImage, object, view, sprite);
+                        previousItem = layerSprite->add( sprite );
+                    }
+                    layerSprite->nextFrame();
+                }
+                //layerSprite->add( new SWFAction("stop();") );
+                //layerSprite->nextFrame();
+
+                objectSprite->add(layerSprite);
+            }
+        }
+    }
+
+    objectSprite->nextFrame();
+    //objectSprite->add( new SWFAction("stop();") );
+    //objectSprite->nextFrame();
+   
+    movie->add(objectSprite);
+    movie->nextFrame();
+    movie->add( new SWFAction("gotoFrame(0);") );
+    movie->nextFrame();
+
+   
+    QByteArray byteArray(filePath.toLatin1()); // is there any problem with accented characters?
+  movie->save(byteArray.data(), compression);
+   
+    qDebug() << "done.";
+}
+
+
+void Flash::convertToSWFSprite( BitmapImage* bitmapImage, QMatrix view, SWFSprite* sprite ) {
+    QString tempPath = QDir::tempPath()+"penciltemp.png";
+    QByteArray tempPath2( tempPath.toLatin1());
+    bitmapImage->image->save( tempPath , "PNG");
+    SWFShape *shape = new SWFShape();
+    SWFFill* fill = shape->addBitmapFill( new SWFBitmap( tempPath2.data() ) );
+    fill->moveTo(static_cast<float>(bitmapImage->topLeft().x()), static_cast<float>(bitmapImage->topLeft().y()));
+    shape->setRightFill(fill);
+    shape->movePenTo(bitmapImage->left(), bitmapImage->top());
+    shape->drawLineTo(bitmapImage->right(), bitmapImage->top());
+    shape->drawLineTo(bitmapImage->right(), bitmapImage->bottom());
+    shape->drawLineTo(bitmapImage->left(), bitmapImage->bottom());
+    shape->drawLineTo(bitmapImage->left(), bitmapImage->top());
+    SWFDisplayItem *item = sprite->add( shape );
+    //item->setMatrix( view.m11(), view.m12(), view.m21(), view.m22(), view.dx(), view.dy() ); // this C++ method is not defined in mingpp.h version 0.3
+    SWFDisplayItem_setMatrix( item->item, view.m11(), view.m12(), view.m21(), view.m22(), view.dx(), view.dy() ); // we use the C function instead
+    sprite->nextFrame();
+}
+
+
+void Flash::convertToSWFSprite( VectorImage* vectorImage, Object* object, QMatrix view, SWFSprite* sprite ) {
+   
+    // add filled areas
+    for(int i=0; i< vectorImage->area.size(); i++) {
+        QColor colour = object->getColour(vectorImage->area[i].getColourNumber()).colour;
+        QPainterPath path = view.map( vectorImage->area[i].path );
+        addShape(sprite, path, colour, colour, 0, true);
+    }
+    // add curves
+    for(int i=0; i< vectorImage->curve.size(); i++) {
+        if(!vectorImage->curve[i].isInvisible()) {
+            QColor colour = object->getColour(vectorImage->curve[i].getColourNumber()).colour;
+            if(vectorImage->curve[i].getVariableWidth()) {
+                QPainterPath path = view.map( vectorImage->curve[i].getStrokedPath() );
+                addShape(sprite, path, colour, colour, 0, true);
+            } else {
+                QPainterPath path = view.map( vectorImage->curve[i].getSimplePath() );
+                qreal width = vectorImage->curve[i].getWidth();
+                addShape(sprite, path, colour, colour, width, false);
+            }
+        }
+    }
+    sprite->nextFrame();
+}
+
+
+
+
+void Flash::addShape( SWFSprite* sprite, QPainterPath path, QColor fillColour, QColor borderColour, qreal width, bool fill ) {
+    SWFShape* shape = new SWFShape();
+    //float widthf = static_cast< float >(width);
+    if(width == 0.0) {
+        shape->setLine( static_cast<unsigned short>(width), borderColour.red(), borderColour.green(), borderColour.blue(), 0);
+    } else {
+        shape->setLine(static_cast<unsigned short>(width), borderColour.red(), borderColour.green(), borderColour.blue() );
+    }
+    if(fill) {
+        SWFFill* fill = shape->addSolidFill( fillColour.red(), fillColour.green(), fillColour.blue() );
+        shape->setRightFill(fill);
+    }
+   
+    qreal memoP0x = 0.0;
+    qreal memoP0y = 0.0;
+    qreal memoP1x = 0.0;
+    qreal memoP1y = 0.0;
+    qreal memoP2x = 0.0;
+    qreal memoP2y = 0.0;
+    qreal memoP3x = 0.0;
+    qreal memoP3y = 0.0;
+    qreal memo = 0.0;
+    for(int i=0; i < path.elementCount() ; i++) {
+        QPainterPath::Element element = path.elementAt(i);
+        if( element.type == QPainterPath::CurveToDataElement ) {
+            memo++;
+            if(memo == 1) {
+                memoP2x = element.x;
+                memoP2y = element.y;
+            }
+            if(memo == 2) {
+                memoP3x = element.x;
+                memoP3y = element.y;
+            }
+        }
+        if( (element.type != QPainterPath::CurveToDataElement) || ((element.type == QPainterPath::CurveToDataElement) && (i==path.elementCount()-1)) ) {
+            if(memo == 1) {
+                shape->drawCurveTo( static_cast<float>(memoP1x), static_cast<float>(memoP1y), static_cast<float>(memoP2x), static_cast<float>(memoP2y) );
+                //---
+                memo = 0;
+                memoP0x = memoP2x;
+                memoP0y = memoP2y;
+            }
+            if(memo == 2) {
+                // now we need to approximate a cubic Bezier curve by 4 quadratic Bezier curves (Flash API uses only quadratic Bezier curves)
+                // we use the fixed midpoint method
+                // Excellent explanations here: http://timotheegroleau.com/Flash/articles/cubic_bezier_in_flash.htm
+                QPointF P0(memoP0x, memoP0y);
+                QPointF P1(memoP1x, memoP1y);
+                QPointF P2(memoP2x, memoP2y);
+                QPointF P3(memoP3x, memoP3y);
+               
+                QPointF M2 = (P0+3*P1+3*P2+P3)/8;
+                QPointF C1 = (5*P0+3*P1)/8;
+                QPointF C4 = (5*P3+3*P2)/8;
+                QPointF C2 = (3*(P0+2*P1+P2)/4+M2)/4;
+                QPointF C3 = (3*(P1+2*P2+P3)/4+M2)/4;
+                QPointF M1 = 0.5*(C1+C2);
+                QPointF M3 = 0.5*(C3+C4);
+                shape->drawCurveTo( static_cast<float>(C1.x()), static_cast<float>(C1.y()), static_cast<float>(M1.x()), static_cast<float>(M1.y()) );
+                shape->drawCurveTo( static_cast<float>(C2.x()), static_cast<float>(C2.y()), static_cast<float>(M2.x()), static_cast<float>(M2.y()) );
+                shape->drawCurveTo( static_cast<float>(C3.x()), static_cast<float>(C3.y()), static_cast<float>(M3.x()), static_cast<float>(M3.y()) );
+                shape->drawCurveTo( static_cast<float>(C4.x()), static_cast<float>(C4.y()), static_cast<float>(P3.x()), static_cast<float>(P3.y()) );
+                //---
+                memo = 0;
+                memoP0x = memoP3x;
+                memoP0y = memoP3y;
+            }
+        }
+        if( element.type == QPainterPath::MoveToElement ) {
+            shape->movePenTo( static_cast<float>(element.x), static_cast<float>(element.y) );
+            memoP0x = element.x;
+            memoP0y = element.y;
+        }
+        if( element.type == QPainterPath::LineToElement ) {
+            shape->drawLineTo( static_cast<float>(element.x), static_cast<float>(element.y) );
+            memoP0x = element.x;
+            memoP0y = element.y;
+        }
+        if( element.type == QPainterPath::CurveToElement ) {
+            memoP1x = element.x;
+            memoP1y = element.y;
+        }
+    }
+    sprite->add( shape );
+}
diff -rupN pencil_backup/src/interface/editor.cpp pencil_dev/src/interface/editor.cpp
--- pencil_backup/src/interface/editor.cpp    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/editor.cpp    2009-10-01 20:52:36.000000000 -0500
@@ -126,9 +126,11 @@ Editor::Editor(QMainWindow* parent)
     connect(scribbleArea, SIGNAL(thinLinesChanged(bool)), toolSet, SLOT(changeThinLinesButton(bool)));
     connect(scribbleArea, SIGNAL(outlinesChanged(bool)), toolSet, SLOT(changeOutlinesButton(bool)));
     connect(toolSet, SIGNAL(mirrorClick()), this, SLOT(toggleMirror()));
-    connect(toolSet, SIGNAL(prevClick()), scribbleArea, SLOT(onionPrevSlot()));
-    connect(toolSet, SIGNAL(nextClick()), scribbleArea, SLOT(onionNextSlot()));
-   
+
+    connect(toolSet, SIGNAL(onionStraightAheadClick()), scribbleArea, SLOT(onionChangeSlot1()));
+    connect(toolSet, SIGNAL(onionInbetweenClick()), scribbleArea, SLOT(onionChangeSlot2()));
+    connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));   
+
     connect(this, SIGNAL(selectAll()), scribbleArea, SLOT(selectAll()));
    
     connect(scribbleArea, SIGNAL(modification()), this, SLOT(modification()));
@@ -138,6 +140,13 @@ Editor::Editor(QMainWindow* parent)
     connect(timeLine, SIGNAL(addKeyClick()), this, SLOT(addKey()));
     connect(timeLine, SIGNAL(removeKeyClick()), this, SLOT(removeKey()));
    
+    connect(scribbleArea, SIGNAL(flipPrevious()), this, SLOT(getPrevKeyFlip()));
+    connect(scribbleArea, SIGNAL(flipNext()), this, SLOT(getNextKeyFlip()));
+
+    connect(scribbleArea, SIGNAL(onionShortCut()), timeLine, SIGNAL(onionKey()));
+    connect(scribbleArea, SIGNAL(straightAheadShortCut()), timeLine, SIGNAL(straightAheadKey()));
+    connect(scribbleArea, SIGNAL(inbetweenShortCut()), timeLine, SIGNAL(inbetweenKey()));
+
     connect(timeLine, SIGNAL(newBitmapLayer()), this, SLOT(newBitmapLayer()));
     connect(timeLine, SIGNAL(newVectorLayer()), this, SLOT(newVectorLayer()));
     connect(timeLine, SIGNAL(newSoundLayer()), this, SLOT(newSoundLayer()));
@@ -148,9 +157,9 @@ Editor::Editor(QMainWindow* parent)
     connect(timeLine, SIGNAL(loopClick()), this, SLOT(setLoop()));
     connect(timeLine, SIGNAL(soundClick()), this, SLOT(setSound()));
     connect(timeLine, SIGNAL(fpsClick(int)), this, SLOT(changeFps(int)));
-   
-    connect(timeLine, SIGNAL(onionPrevClick()), scribbleArea, SLOT(onionPrevSlot()));
-    connect(timeLine, SIGNAL(onionNextClick()), scribbleArea, SLOT(onionNextSlot()));
+
+    connect(timeLine, SIGNAL(onionChecked()), scribbleArea, SLOT(onionIsOn()));   
+    connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));
    
     connect(preferences, SIGNAL(windowOpacityChange(int)), mainWindow, SLOT(setOpacity(int)));
     connect(preferences, SIGNAL(curveOpacityChange(int)), scribbleArea, SLOT(setCurveOpacity(int)));
@@ -171,7 +180,14 @@ Editor::Editor(QMainWindow* parent)
     connect(preferences, SIGNAL(frameSizeChange(int)), timeLine, SIGNAL(frameSizeChange(int)));
     connect(preferences, SIGNAL(labelChange(int)), timeLine, SIGNAL(labelChange(int)));
     connect(preferences, SIGNAL(scrubChange(int)), timeLine, SIGNAL(scrubChange(int)));
-   
+
+    connect(preferences, SIGNAL(onionOpacityChange(int)), scribbleArea, SLOT(onionOpacityLevel(int)));
+    connect(preferences, SIGNAL(onionStraightAheadChange(int)), scribbleArea, SLOT(StraightAheadLevel(int)));
+    connect(preferences, SIGNAL(onionPreviousPreviousChange(int)), scribbleArea, SLOT(onionPreviousPreviousLevel(int)));
+    connect(preferences, SIGNAL(onionPreviousChange(int)), scribbleArea, SLOT(onionPreviousLevel(int)));
+    connect(preferences, SIGNAL(onionNextChange(int)), scribbleArea, SLOT(onionNextLevel(int)));
+    connect(preferences, SIGNAL(onionNextNextChange(int)), scribbleArea, SLOT(onionNextNextLevel(int)));       
+
     connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardChanged()) );
    
     framelay->addWidget(scribbleArea);
@@ -291,6 +307,7 @@ void Editor::applyWidth(qreal width)
     setWidth(width);
     Layer* layer = getCurrentLayer(); if(layer == NULL) return;
     if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyWidthToSelection(width);
+    scribbleArea->setFocus();
 }
 
 void Editor::setFeather(qreal feather)
@@ -304,6 +321,7 @@ void Editor::applyFeather(qreal feather)
     setFeather(feather);
     Layer* layer = getCurrentLayer(); if(layer == NULL) return;
     if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyFeatherToSelection(feather);
+    scribbleArea->setFocus();
 }
 
 void Editor::setOpacity(qreal opacity)
@@ -317,6 +335,7 @@ void Editor::applyOpacity(qreal opacity)
     setOpacity(opacity);
     Layer* layer = getCurrentLayer(); if(layer == NULL) return;
     if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyOpacityToSelection(opacity);
+    scribbleArea->setFocus();
 }
 
 void Editor::setInvisibility(int invisibility)
@@ -330,6 +349,7 @@ void Editor::applyInvisibility(int invis
     setInvisibility(invisibility);
     Layer* layer = getCurrentLayer(); if(layer == NULL) return;
     if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyInvisibilityToSelection(invisibility>0);
+    scribbleArea->setFocus();
 }
 
 void Editor::setPreserveAlpha(int preserveAlpha)
@@ -341,6 +361,7 @@ void Editor::setPreserveAlpha(int preser
 void Editor::applyPreserveAlpha(int preserveAlpha)
 {
     setPreserveAlpha(preserveAlpha);
+    scribbleArea->setFocus();
 }
 
 void Editor::setFollowContour(int followContour)
@@ -352,6 +373,7 @@ void Editor::setFollowContour(int follow
 void Editor::applyFollowContour(int followContour)
 {
     setFollowContour(followContour);
+    scribbleArea->setFocus();
 }
 
 void Editor::setPressure(int pressure)
@@ -365,6 +387,7 @@ void Editor::applyPressure(int pressure)
     setPressure(pressure);
     Layer* layer = getCurrentLayer(); if(layer == NULL) return;
     if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyVariableWidthToSelection(pressure>0);
+    scribbleArea->setFocus();
 }
 
 void Editor::selectColour(int i)
@@ -685,6 +708,7 @@ void Editor::newBitmapLayer() {
         timeLine->updateLayerNumber( object->getLayerCount() );
         setCurrentLayer( object->getLayerCount()-1 );
     }
+    scribbleArea->setFocus();
 }
 
 void Editor::newVectorLayer() {
@@ -693,6 +717,7 @@ void Editor::newVectorLayer() {
         timeLine->updateLayerNumber( object->getLayerCount() );
         setCurrentLayer( object->getLayerCount()-1 );
     }
+    scribbleArea->setFocus();
 }
 
 void Editor::newSoundLayer() {
@@ -701,6 +726,7 @@ void Editor::newSoundLayer() {
         timeLine->updateLayerNumber( object->getLayerCount() );
         setCurrentLayer( object->getLayerCount()-1 );
     }
+    scribbleArea->setFocus();
 }
 
 void Editor::newCameraLayer() {
@@ -709,11 +735,12 @@ void Editor::newCameraLayer() {
         timeLine->updateLayerNumber( object->getLayerCount() );
         setCurrentLayer( object->getLayerCount()-1 );
     }
+    scribbleArea->setFocus();
 }
 
 void Editor::deleteCurrentLayer() {
     int ret = QMessageBox::warning(this, tr("Warning"),
-                   tr("Are yo sure you want to delete the selected layer?"),
+                   tr("Are you sure you want to delete the selected layer?"),
                    QMessageBox::Ok | QMessageBox::Cancel,
             QMessageBox::Ok);
     if(ret == QMessageBox::Ok) {
@@ -723,12 +750,14 @@ void Editor::deleteCurrentLayer() {
         //timeLine->update();
         scribbleArea->updateAllFrames();
     }
+    scribbleArea->setFocus();
 }
 
 
 void Editor::toggleMirror() {
     object->toggleMirror();
     scribbleArea->toggleMirror();
+    scribbleArea->setFocus();
 }
 
 void Editor::toggleShowAllLayers() {
@@ -747,6 +776,7 @@ void Editor::showPalette() {
     } else {
         palette->show();
     }
+    scribbleArea->setFocus();
 }
 
 void Editor::saveLength(QString x) {
@@ -1430,6 +1460,7 @@ void Editor::nextLayer() {
 
 void Editor::addKey() {
     addKey(currentLayer, currentFrame);
+    scribbleArea->setFocus();
 }
 
 void Editor::addKey(int layerNumber, int &frameNumber) {
@@ -1459,6 +1490,7 @@ void Editor::removeKey() {
         if(layer->type == Layer::CAMERA) ((LayerCamera*)layer)->removeImageAtFrame(currentFrame);
         timeLine->updateContent();
         scribbleArea->updateFrame();
+        scribbleArea->setFocus();
     }
 }
 
@@ -1483,7 +1515,68 @@ void Editor::removeFrame(int frameNumber
     scribbleArea->updateFrame();
     timeLine->update();
 }
+///*
+void Editor::getPrevKeyFlip() {
+    currentFrame = getPrevKey(currentFrame);
+    timeLine->update();
+    scribbleArea->updateFrame();
+}
+
+int Editor::getPrevKey(int frameNumber) {
+    int keyInQuestion = frameNumber;
+    bool nothingFound = true;   
+    Layer* layer;
+    if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+    else return NULL;
+    while(nothingFound) {
+        --keyInQuestion;
+        if(keyInQuestion == 0) keyInQuestion = object->getLayer(currentLayer)->getMaxFrame();
+        switch(layer->type) {
+            case Layer::BITMAP:
+                if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;   
+                break;
+            case Layer::VECTOR:
+                if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+                break;
+            case Layer::CAMERA:
+                if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+                break;
+        }
+    }
+    return keyInQuestion;
+}
+
+void Editor::getNextKeyFlip() {
+    currentFrame = getNextKey(currentFrame);
+    timeLine->update();
+    scribbleArea->updateFrame();
+}
+
+int Editor::getNextKey(int frameNumber) {
+    int keyInQuestion = frameNumber;
+    bool nothingFound = true;   
+    Layer* layer;
+    if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+    else return NULL;
+    while(nothingFound) {
+        ++keyInQuestion;
+        if(keyInQuestion > object->getLayer(currentLayer)->getMaxFrame()) keyInQuestion = 1;
+        switch(layer->type) {
+            case Layer::BITMAP:
+                if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;   
+                break;
+            case Layer::VECTOR:
+                if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+                break;
+            case Layer::CAMERA:
+                if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+                break;
+        }
+    }
+    return keyInQuestion;
+}
 
+//*/
 int Editor::getLastIndexAtFrame(int frameNumber) {
     int position  = -1;
     int index = -1;
@@ -1521,6 +1614,7 @@ void Editor::play() {
             startOrStop();
         }
     }
+    scribbleArea->setFocus();
 }
 
 void Editor::startOrStop() {
@@ -1541,6 +1635,7 @@ void Editor::playNextFrame() {
     } else {
         play();
     }
+    scribbleArea->setFocus();
 }
 
 void Editor::changeFps(int x) {
@@ -1548,6 +1643,7 @@ void Editor::changeFps(int x) {
     QSettings settings("Pencil","Pencil");
     settings.setValue("fps", x);
     timer->setInterval(1000/fps);
+    scribbleArea->setFocus();
 }
 
 int Editor::getFps() {
@@ -1557,6 +1653,7 @@ int Editor::getFps() {
 void Editor::setLoop() {
     if (looping) looping=false;
     else looping=true;
+    scribbleArea->setFocus();
 }
 
 void Editor::setSound() {
diff -rupN pencil_backup/src/interface/editor.cpp~ pencil_dev/src/interface/editor.cpp~
--- pencil_backup/src/interface/editor.cpp~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/editor.cpp~    2009-10-01 19:40:58.000000000 -0500
@@ -0,0 +1,1819 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include <QBoxLayout>
+#include <QLabel>
+#include <QSlider>
+#include <QTableWidget>
+#include <QListWidget>
+#include <QMainWindow>
+#include <QTimer>
+
+#include "editor.h"
+#include "layerbitmap.h"
+#include "layervector.h"
+#include "layersound.h"
+#include "layercamera.h"
+
+
+Editor::Editor(QMainWindow* parent)
+{
+    mainWindow = parent;
+   
+    QSettings settings("Pencil","Pencil");
+   
+    object = NULL; // the editor is initialized with no object
+    savedName = "";
+    altpress=false;
+    modified=false;
+    numberOfModifications = 0;
+    autosave=settings.value("autosave").toBool();
+    autosaveNumber=settings.value("autosaveNumber").toInt();
+    if (autosaveNumber==0) { autosaveNumber=20; settings.setValue("autosaveNumber", 20); }
+    backupIndex = -1;
+    clipboardBitmapOk = false;
+    clipboardVectorOk = false;
+   
+   
+    fps = settings.value("fps").toInt();
+    if (fps==0) { fps=12; settings.setValue("fps", 12); }
+    maxFrame = 1;
+    timer = new QTimer(this);
+    timer->setInterval(1000/fps);
+    connect(timer, SIGNAL(timeout()), this, SLOT(playNextFrame()));
+    playing = false;
+    looping = false;
+    sound = true;
+   
+    frameList << 1;
+    currentFrame = 1;
+    currentLayer = 0;
+   
+    QHBoxLayout *lay = new QHBoxLayout();
+    QVBoxLayout *framelay = new QVBoxLayout();
+   
+    scribbleArea = new ScribbleArea(this, this);
+    timeLine = new TimeLine(this, this);
+   
+    toolSet = new ToolSet();
+    palette = new Palette(this);
+    preferences = new Preferences();
+    exportFramesDialog = NULL; // will be created when needed
+    exportMovieDialog = NULL;
+    exportFlashDialog = NULL;
+    newDocumentDialog = NULL;
+    exportFramesDialog_hBox = NULL;
+    exportFramesDialog_vBox = NULL;
+    exportFramesDialog_format = NULL;
+    exportMovieDialog_hBox = NULL;
+    exportMovieDialog_vBox = NULL;
+    exportMovieDialog_format = NULL;
+   
+    exportFlashDialog_compression = NULL;
+   
+    // FOCUS POLICY
+    scribbleArea->setFocusPolicy(Qt::StrongFocus);
+    timeLine->setFocusPolicy(Qt::NoFocus);
+    toolSet->setFocusPolicy(Qt::NoFocus);
+    palette->setFocusPolicy(Qt::NoFocus);
+
+    // CONNECTIONS
+    connect(toolSet, SIGNAL(addClick()), this, SLOT(addKey()));
+    connect(toolSet, SIGNAL(rmClick()), this, SLOT(removeKey()));
+    connect(toolSet, SIGNAL(playClick()), this, SLOT(play()));
+    connect(toolSet, SIGNAL(fpsClick(int)), this, SLOT(changeFps(int)));
+    connect(toolSet, SIGNAL(loopClick()), this, SLOT(setLoop()));
+   
+    connect(toolSet, SIGNAL(pencilClick()), scribbleArea, SLOT(pencilOn()));
+    connect(toolSet, SIGNAL(eraserClick()), scribbleArea, SLOT(eraserOn()));   
+    connect(toolSet, SIGNAL(selectClick()), scribbleArea, SLOT(selectOn()));
+    connect(toolSet, SIGNAL(moveClick()), scribbleArea, SLOT(moveOn()));   
+    connect(toolSet, SIGNAL(handClick()), scribbleArea, SLOT(handOn()));
+    connect(toolSet, SIGNAL(penClick()), scribbleArea, SLOT(penOn()));   
+    connect(toolSet, SIGNAL(polylineClick()), scribbleArea, SLOT(polylineOn()));   
+    connect(toolSet, SIGNAL(bucketClick()), scribbleArea, SLOT(bucketOn()));
+    connect(toolSet, SIGNAL(eyedropperClick()), scribbleArea, SLOT(eyedropperOn()));
+    connect(toolSet, SIGNAL(colouringClick()), scribbleArea, SLOT(colouringOn()));
+    connect(toolSet, SIGNAL(smudgeClick()), scribbleArea, SLOT(smudgeOn()));
+   
+    connect(toolSet, SIGNAL(pressureClick(int)), this, SLOT(applyPressure(int)));
+    connect(toolSet, SIGNAL(invisibleClick(int)), this, SLOT(applyInvisibility(int)));
+    connect(toolSet, SIGNAL(preserveAlphaClick(int)), this, SLOT(applyPreserveAlpha(int)));
+    connect(toolSet, SIGNAL(followContourClick(int)), this, SLOT(applyFollowContour(int)));
+   
+    connect(toolSet, SIGNAL(widthClick(qreal)), this, SLOT(applyWidth(qreal)));
+    connect(toolSet, SIGNAL(featherClick(qreal)), this, SLOT(applyFeather(qreal)));
+    connect(toolSet, SIGNAL(opacityClick(qreal)), this, SLOT(applyOpacity(qreal)));
+   
+    connect(toolSet, SIGNAL(colourClick()), this, SLOT(showPalette()));
+   
+    connect(toolSet,SIGNAL(clearClick()), scribbleArea, SLOT(clearImage()));
+    connect(toolSet, SIGNAL(thinLinesClick()), scribbleArea, SLOT(toggleThinLines()));
+    connect(toolSet, SIGNAL(outlinesClick()), scribbleArea, SLOT(toggleOutlines()));
+    connect(scribbleArea, SIGNAL(thinLinesChanged(bool)), toolSet, SLOT(changeThinLinesButton(bool)));
+    connect(scribbleArea, SIGNAL(outlinesChanged(bool)), toolSet, SLOT(changeOutlinesButton(bool)));
+    connect(toolSet, SIGNAL(mirrorClick()), this, SLOT(toggleMirror()));
+
+    connect(toolSet, SIGNAL(onionStraightAheadClick()), scribbleArea, SLOT(onionChangeSlot1()));
+    connect(toolSet, SIGNAL(onionInbetweenClick()), scribbleArea, SLOT(onionChangeSlot2()));
+    connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));   
+
+    connect(this, SIGNAL(selectAll()), scribbleArea, SLOT(selectAll()));
+   
+    connect(scribbleArea, SIGNAL(modification()), this, SLOT(modification()));
+    connect(scribbleArea, SIGNAL(modification(int)), this, SLOT(modification(int)));
+    connect(timeLine, SIGNAL(modification()), this, SLOT(modification()));
+   
+    connect(timeLine, SIGNAL(addKeyClick()), this, SLOT(addKey()));
+    connect(timeLine, SIGNAL(removeKeyClick()), this, SLOT(removeKey()));
+   
+    connect(scribbleArea, SIGNAL(flipPrevious()), this, SLOT(getPrevKeyFlip()));
+    connect(scribbleArea, SIGNAL(flipNext()), this, SLOT(getNextKeyFlip()));
+
+    connect(scribbleArea, SIGNAL(onionShortCut()), timeLine, SIGNAL(onionKey()));
+    connect(scribbleArea, SIGNAL(straightAheadShortCut()), timeLine, SIGNAL(straightAheadKey()));
+    connect(scribbleArea, SIGNAL(inbetweenShortCut()), timeLine, SIGNAL(inbetweenKey()));
+
+    connect(timeLine, SIGNAL(newBitmapLayer()), this, SLOT(newBitmapLayer()));
+    connect(timeLine, SIGNAL(newVectorLayer()), this, SLOT(newVectorLayer()));
+    connect(timeLine, SIGNAL(newSoundLayer()), this, SLOT(newSoundLayer()));
+    connect(timeLine, SIGNAL(newCameraLayer()), this, SLOT(newCameraLayer()));
+    connect(timeLine, SIGNAL(deleteCurrentLayer()), this, SLOT(deleteCurrentLayer()));
+   
+    connect(timeLine, SIGNAL(playClick()), this, SLOT(play()));
+    connect(timeLine, SIGNAL(loopClick()), this, SLOT(setLoop()));
+    connect(timeLine, SIGNAL(soundClick()), this, SLOT(setSound()));
+    connect(timeLine, SIGNAL(fpsClick(int)), this, SLOT(changeFps(int)));
+
+    connect(timeLine, SIGNAL(onionChecked()), scribbleArea, SLOT(onionIsOn()));   
+    connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));
+   
+    connect(preferences, SIGNAL(windowOpacityChange(int)), mainWindow, SLOT(setOpacity(int)));
+    connect(preferences, SIGNAL(curveOpacityChange(int)), scribbleArea, SLOT(setCurveOpacity(int)));
+    connect(preferences, SIGNAL(curveSmoothingChange(int)), scribbleArea, SLOT(setCurveSmoothing(int)));
+    connect(preferences, SIGNAL(highResPositionChange(int)), scribbleArea, SLOT(setHighResPosition(int)));
+    connect(preferences, SIGNAL(antialiasingChange(int)), scribbleArea, SLOT(setAntialiasing(int)));
+    connect(preferences, SIGNAL(gradientsChange(int)), scribbleArea, SLOT(setGradients(int)));
+    connect(preferences, SIGNAL(backgroundChange(int)), scribbleArea, SLOT(setBackground(int)));
+    connect(preferences, SIGNAL(shadowsChange(int)), scribbleArea, SLOT(setShadows(int)));
+    connect(preferences, SIGNAL(toolCursorsChange(int)), scribbleArea, SLOT(setToolCursors(int)));
+    connect(preferences, SIGNAL(styleChange(int)), scribbleArea, SLOT(setStyle(int)));
+   
+    connect(preferences, SIGNAL(autosaveChange(int)), this, SLOT(changeAutosave(int)));
+    connect(preferences, SIGNAL(autosaveNumberChange(int)), this, SLOT(changeAutosaveNumber(int)));
+   
+    connect(preferences, SIGNAL(lengthSizeChange(QString)), timeLine, SIGNAL(lengthChange(QString)));
+    connect(preferences, SIGNAL(fontSizeChange(int)), timeLine, SIGNAL(fontSizeChange(int)));
+    connect(preferences, SIGNAL(frameSizeChange(int)), timeLine, SIGNAL(frameSizeChange(int)));
+    connect(preferences, SIGNAL(labelChange(int)), timeLine, SIGNAL(labelChange(int)));
+    connect(preferences, SIGNAL(scrubChange(int)), timeLine, SIGNAL(scrubChange(int)));
+
+    connect(preferences, SIGNAL(onionOpacityChange(int)), scribbleArea, SLOT(onionOpacityLevel(int)));
+    connect(preferences, SIGNAL(onionStraightAheadChange(int)), scribbleArea, SLOT(StraightAheadLevel(int)));
+    connect(preferences, SIGNAL(onionPreviousPreviousChange(int)), scribbleArea, SLOT(onionPreviousPreviousLevel(int)));
+    connect(preferences, SIGNAL(onionPreviousChange(int)), scribbleArea, SLOT(onionPreviousLevel(int)));
+    connect(preferences, SIGNAL(onionNextChange(int)), scribbleArea, SLOT(onionNextLevel(int)));
+    connect(preferences, SIGNAL(onionNextNextChange(int)), scribbleArea, SLOT(onionNextNextLevel(int)));       
+
+    connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardChanged()) );
+   
+    framelay->addWidget(scribbleArea);
+    lay->addWidget(toolSet);
+    lay->addLayout(framelay);
+   
+    framelay->setMargin(0);
+    framelay->setSpacing(0);
+    lay->setMargin(0);
+    lay->setSpacing(0);
+   
+    setLayout(lay);
+   
+    qDebug() << "Hello";
+    qDebug() << QLibraryInfo::location(QLibraryInfo::PluginsPath);
+    qDebug() << QLibraryInfo::location(QLibraryInfo::BinariesPath);
+    qDebug() << QLibraryInfo::location(QLibraryInfo::LibrariesPath);
+   
+    setAcceptDrops(true);
+}
+
+Editor::~Editor() {
+    // a lot more probably needs to be cleaned here...
+    if (object) delete object;
+    clearBackup();
+}
+
+void Editor::dragEnterEvent(QDragEnterEvent *event)
+{
+    //if (event->mimeData()->hasFormat("text/plain"))
+    event->acceptProposedAction();
+}
+
+void Editor::dropEvent(QDropEvent *event)
+{
+    if( event->mimeData()->hasUrls() ) {
+        for(int i=0; i < event->mimeData()->urls().size(); i++) {
+            if(i>0) scrubForward();
+            QUrl url = event->mimeData()->urls()[i];
+            QString filePath = url.toLocalFile();
+            if(filePath.endsWith(".png") || filePath.endsWith(".jpg") || filePath.endsWith(".jpeg"))
+                importImage( filePath );
+            if(filePath.endsWith(".aif") || filePath.endsWith(".mp3") || filePath.endsWith(".wav"))
+                importSound( filePath );
+        }
+    }
+}
+
+
+void Editor::showCounter(int n) {
+    toolSet->setCounter(n);
+}
+
+void Editor::newDocument() {
+    if (maybeSave()) {
+        //if (!exportFramesDialog) createNewDocumentDialog();
+        //newDocumentDialog->exec();
+        //if(newDocumentDialog->result() == QDialog::Rejected) return;
+        //QSize documentSize = QSize(newDocumentDialog_hBox->value(), newDocumentDialog_vBox->value());
+        //newObject(documentSize);
+        newObject(); // default size
+    }
+}
+
+void Editor::openDocument()
+{
+    if (maybeSave()) {
+        QSettings settings("Pencil","Pencil");
+        QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+        QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), myPath);
+        if (!fileName.isEmpty()) {
+            bool ok = openObject(fileName);
+            if(!ok) {
+                QMessageBox::warning(this, "Warning", "Pencil cannot read this file. If you want to import images, use the command import.");
+                newObject();
+            }
+        }
+    }
+}
+
+void Editor::openRecent() {
+    QSettings settings("Pencil","Pencil");
+    QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+    bool ok = openObject(myPath);
+    if(!ok) {
+        QMessageBox::warning(this, "Warning", "Pencil cannot read this file. If you want to import images, use the command import.");
+        newObject();
+    }
+}
+
+bool Editor::saveDocument()
+{
+    //QAction *action = qobject_cast<QAction *>(sender()); // ? old code from Patrick?
+    //QByteArray fileFormat = action->data().toByteArray();  // ? old code from Patrick?
+    QSettings settings("Pencil","Pencil");
+    QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+   
+    QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"), myPath);
+           
+    if (fileName.isEmpty()) {
+        return false;
+    } else {
+        QSettings settings("Pencil","Pencil");
+        settings.setValue("lastFilePath", QVariant(fileName));
+        return saveObject(fileName);
+    }
+}
+
+void Editor::setWidth(qreal width)
+{
+    scribbleArea->setWidth(width);
+    toolSet->setWidth(width);
+}
+
+void Editor::applyWidth(qreal width)
+{
+    setWidth(width);
+    Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyWidthToSelection(width);
+    scribbleArea->setFocus();
+}
+
+void Editor::setFeather(qreal feather)
+{
+    scribbleArea->setFeather(feather);
+    toolSet->setFeather(feather);
+}
+
+void Editor::applyFeather(qreal feather)
+{
+    setFeather(feather);
+    Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyFeatherToSelection(feather);
+    scribbleArea->setFocus();
+}
+
+void Editor::setOpacity(qreal opacity)
+{
+    scribbleArea->setOpacity(opacity);
+    toolSet->setOpacity(opacity);
+}
+
+void Editor::applyOpacity(qreal opacity)
+{
+    setOpacity(opacity);
+    Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyOpacityToSelection(opacity);
+    scribbleArea->setFocus();
+}
+
+void Editor::setInvisibility(int invisibility)
+{
+    if(invisibility>=0) scribbleArea->setInvisibility(invisibility>0);
+    toolSet->setInvisibility(invisibility);
+}
+
+void Editor::applyInvisibility(int invisibility)
+{
+    setInvisibility(invisibility);
+    Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyInvisibilityToSelection(invisibility>0);
+    scribbleArea->setFocus();
+}
+
+void Editor::setPreserveAlpha(int preserveAlpha)
+{
+    if(preserveAlpha>=0) scribbleArea->setPreserveAlpha(preserveAlpha>0);
+    toolSet->setPreserveAlpha(preserveAlpha);
+}
+
+void Editor::applyPreserveAlpha(int preserveAlpha)
+{
+    setPreserveAlpha(preserveAlpha);
+    scribbleArea->setFocus();
+}
+
+void Editor::setFollowContour(int followContour)
+{
+    if(followContour>=0) scribbleArea->setFollowContour(followContour>0);
+    toolSet->setFollowContour(followContour);
+}
+
+void Editor::applyFollowContour(int followContour)
+{
+    setFollowContour(followContour);
+    scribbleArea->setFocus();
+}
+
+void Editor::setPressure(int pressure)
+{
+    if(pressure>=0) scribbleArea->setPressure(pressure>0);
+    toolSet->setPressure(pressure);
+}
+
+void Editor::applyPressure(int pressure)
+{
+    setPressure(pressure);
+    Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyVariableWidthToSelection(pressure>0);
+    scribbleArea->setFocus();
+}
+
+void Editor::selectColour(int i)
+{
+    if(i > -1) {
+        scribbleArea->setColour(i);
+        toolSet->setColour(object->getColour(i).colour);
+        palette->selectColour(i);
+        palette->setColour(object->getColour(i).colour);
+    }
+}
+
+void Editor::selectAndApplyColour(int i)
+{
+    selectColour(i);
+    Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyColourToSelection(i);
+}
+
+void Editor::setColour(QColor colour)
+{
+    scribbleArea->setColour(colour);
+    toolSet->setColour(colour);
+    palette->setColour(colour);
+}
+
+void Editor::changeColour(int i)
+{
+    //QColor newColour = QColorDialog::getColor(object->getColour(i).colour);
+    if(i>-1) {
+        bool *ok;
+        ok = new bool;
+        QRgb qrgba = QColorDialog::getRgba( object->getColour(i).colour.rgba(), ok, this );
+        if(*ok) {
+            changeColour(i, QColor::fromRgba(qrgba) );
+        }
+        delete ok;
+    }
+}
+
+void Editor::changeColourName(int i)
+{
+    if (i>-1) {
+        bool ok;
+        QString text = QInputDialog::getText(this, tr("Colour name"),
+                                          tr("Colour name:"), QLineEdit::Normal,
+                                          object->getColour(i).name, &ok);
+        if (ok && !text.isEmpty()) {
+            object->renameColour(i, text);
+            palette->updateList();
+        }
+    }
+}
+
+void Editor::changeColour(int i, QColor newColour)
+{
+    if (newColour.isValid() && i>-1) {
+        /*object->setColour(i, newColour);
+        Layer* layer = object->getLayer(currentLayer);
+        if(layer != NULL) {
+            if(layer->type == Layer::VECTOR) scribbleArea->setModified(layer, currentFrame);
+        }*/
+        updateColour(i, newColour);
+        palette->updateList();
+        selectColour(i);
+    }
+}
+
+void Editor::updateColour(int i, QColor newColour)
+{
+    if( newColour.isValid() && i>-1) {
+        object->setColour(i, newColour);
+        Layer* layer = object->getLayer(currentLayer);
+        if(layer != NULL) {
+            if(layer->type == Layer::VECTOR) scribbleArea->setModified(currentLayer, currentFrame);
+        }
+        toolSet->setColour(object->getColour(i).colour);
+        palette->updateSwatch(object->getColour(i).colour);
+        scribbleArea->setColour(i);
+    }
+}
+
+void Editor::addColour() {
+    QColor initialColour = Qt::white;
+    int currentColourIndex = palette->currentColour();
+  if( currentColourIndex > -1 ) {
+        initialColour = object->getColour(currentColourIndex).colour;
+    }
+    bool *ok;
+    ok = new bool;
+    QRgb qrgba = QColorDialog::getRgba( initialColour.rgba(), ok, this );
+    if(*ok) {
+        object->addColour( QColor::fromRgba(qrgba) );
+        palette->updateList();
+        selectColour(object->getColourCount()-1);
+    }
+    delete ok;
+
+    /*QColor newColour = QColorDialog::getColor( initialColour );
+    if (newColour.isValid()) {
+        object->addColour(newColour);
+        palette->updateList();
+        //selectColour(object->getColourCount());
+    }*/
+}
+
+
+void Editor::removeColour(int i) {
+    if(object->removeColour(i)) {
+        palette->updateList();
+    } else {
+        QMessageBox::warning(this, tr("Warning"),
+                   tr("You cannot remove this colour because it is used!"),
+                   QMessageBox::Ok,
+                                    QMessageBox::Ok);
+    }
+}
+
+void Editor::changeAutosave(int x) {
+    QSettings settings("Pencil","Pencil");
+    if (x==0) { autosave=false; settings.setValue("autosave","false"); }
+    else { autosave=true; settings.setValue("autosave","true"); }
+}
+
+void Editor::changeAutosaveNumber(int number) {
+    autosaveNumber = number;
+    QSettings settings("Pencil","Pencil");
+    settings.setValue("autosaveNumber", number);
+}
+
+void Editor::modification() {
+    modification(currentLayer);
+}
+
+void Editor::modification(int layerNumber) {
+    modified = true;
+    if(object != NULL) object->modification();
+    lastModifiedFrame = currentFrame;
+    lastModifiedLayer = layerNumber;
+    scribbleArea->update();
+    timeLine->updateContent();
+    numberOfModifications++;
+    if(autosave && numberOfModifications > autosaveNumber) {
+        numberOfModifications = 0;
+        //saveForce();
+        if (savedName!="") saveObject(savedName);
+    }
+}
+
+void Editor::backup() {
+    if(lastModifiedLayer>-1 && lastModifiedFrame > 0) {
+        backup(lastModifiedLayer, lastModifiedFrame);
+    }
+    if( lastModifiedLayer != currentLayer || lastModifiedFrame != currentFrame ) {
+        backup(currentLayer, currentFrame);
+    }
+}
+
+void Editor::backup(int backupLayer, int backupFrame) {
+    while(backupList.size()-1 > backupIndex && backupList.size() > 0) {
+        delete backupList.takeLast();
+    }
+    while(backupList.size() > 19) { // we authorize only 20 levels of cancellation
+        delete backupList.takeFirst();
+        backupIndex--;
+    }
+    Layer* layer = object->getLayer(backupLayer);
+    if(layer != NULL) {
+        if(layer->type == Layer::BITMAP) {
+            BackupBitmapElement* element = new BackupBitmapElement();
+            element->layer = backupLayer;
+            element->frame = backupFrame;
+            BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(backupFrame, 0);
+            if(bitmapImage != NULL) {
+                element->bitmapImage =  bitmapImage->copy();  // copy the image
+                backupList.append(element);
+                backupIndex++;
+            }
+        }
+        if(layer->type == Layer::VECTOR) {
+            BackupVectorElement* element = new BackupVectorElement();
+            element->layer = backupLayer;
+            element->frame = backupFrame;
+            VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(backupFrame, 0);
+            if(vectorImage != NULL) {
+                element->vectorImage = *vectorImage;  // copy the image (that works but I should also provide a copy() method)
+                backupList.append(element);
+                backupIndex++;
+            }
+        }
+    }
+}
+
+void BackupBitmapElement::restore(Editor* editor) {
+    Layer* layer = editor->object->getLayer(this->layer);
+    if(layer != NULL) {
+        if(layer->type == Layer::BITMAP) {
+            *(   ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(this->frame, 0)    ) = this->bitmapImage;  // restore the image
+        }
+    }
+    editor->updateFrame(this->frame);
+    editor->scrubTo(this->frame);
+}
+
+void BackupVectorElement::restore(Editor* editor) {
+    Layer* layer = editor->object->getLayer(this->layer);
+    if(layer != NULL) {
+        if(layer->type == Layer::VECTOR) {
+            *(  ((LayerVector*)layer)->getLastVectorImageAtFrame(this->frame, 0)  ) = this->vectorImage;  // restore the image
+            //((LayerVector*)layer)->getLastVectorImageAtFrame(this->frame, 0)->setModified(true); // why?
+            //editor->scribbleArea->setModified(layer, this->frame);
+        }
+    }
+    editor->updateFrameAndVector(this->frame);
+    editor->scrubTo(this->frame);
+}
+
+void Editor::undo() {
+    if( backupList.size() > 0 && backupIndex > -1) {
+        if(backupIndex == backupList.size()-1) {
+            BackupElement* lastBackupElement = backupList[backupIndex];
+            if(lastBackupElement->type() == BackupElement::BITMAP_MODIF) {
+                BackupBitmapElement* lastBackupBitmapElement = (BackupBitmapElement*)lastBackupElement;
+                backup( lastBackupBitmapElement->layer, lastBackupBitmapElement->frame );
+                backupIndex--;
+            }
+            if(lastBackupElement->type() == BackupElement::VECTOR_MODIF) {
+                BackupVectorElement* lastBackupVectorElement = (BackupVectorElement*)lastBackupElement;
+                backup( lastBackupVectorElement->layer, lastBackupVectorElement->frame );
+                backupIndex--;
+            }
+        }
+        //
+        backupList[backupIndex]->restore(this);
+        backupIndex--;
+        scribbleArea->calculateSelectionRect(); // really ugly -- to improve
+    }
+}
+
+void Editor::redo() {
+    if( backupList.size() > 0 && backupIndex < backupList.size()-2) {
+        backupIndex++;
+        backupList[backupIndex+1]->restore(this);
+    }
+}
+
+void Editor::clearBackup() {
+    backupIndex = -1;
+    while( !backupList.isEmpty() ) {
+        delete backupList.takeLast();
+    }
+    lastModifiedLayer = -1;
+    lastModifiedFrame = -1;
+}
+
+void Editor::copy() {
+    Layer* layer = object->getLayer(currentLayer);
+    if(layer != NULL) {
+        if(layer->type == Layer::BITMAP) {
+            if(scribbleArea->somethingSelected) {
+                clipboardBitmapImage =   ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(currentFrame, 0)->copy( scribbleArea->getSelection().toRect() );  // copy part of the image
+            } else {
+                clipboardBitmapImage =   ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(currentFrame, 0)->copy();  // copy the whole image
+            }
+            clipboardBitmapOk = true;
+            if( clipboardBitmapImage.image != NULL ) QApplication::clipboard()->setImage( *(clipboardBitmapImage.image) );
+        }
+        if(layer->type == Layer::VECTOR) {
+            clipboardVectorOk = true;
+            clipboardVectorImage = *(  ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)  );  // copy the image (that works but I should also provide a copy() method)
+        }
+    }
+}
+
+void Editor::paste() {
+    Layer* layer = object->getLayer(currentLayer);
+    if(layer != NULL) {
+        if(layer->type == Layer::BITMAP && clipboardBitmapImage.image != NULL) { // clipboardBitmapOk
+            backup();
+            BitmapImage tobePasted = clipboardBitmapImage.copy();
+            qDebug() << "to be pasted --->" << tobePasted.image->size();
+            if(scribbleArea->somethingSelected) {
+                QRectF selection = scribbleArea->getSelection();
+                if( clipboardBitmapImage.width() <= selection.width() && clipboardBitmapImage.height() <= selection.height() ) {
+                    tobePasted.moveTopLeft( selection.topLeft() );
+                } else {
+                    tobePasted.transform( selection, true );
+                }
+            }
+            ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(currentFrame, 0)->paste( &tobePasted ); // paste the clipboard
+        }
+        if(layer->type == Layer::VECTOR && clipboardVectorOk) {
+            backup();
+            scribbleArea->deselectAll();
+            VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0);
+            vectorImage->paste( clipboardVectorImage );  // paste the clipboard
+            scribbleArea->setSelection( vectorImage->getSelectionRect(), true );
+            //((LayerVector*)layer)->getLastVectorImageAtFrame(backupFrame, 0)->modification(); ????
+        }
+    }
+    scribbleArea->updateFrame();
+}
+
+void Editor::clipboardChanged() {
+    if(clipboardBitmapOk == false) {
+        clipboardBitmapImage.image = new QImage( QApplication::clipboard()->image() );
+        clipboardBitmapImage.boundaries = QRect( clipboardBitmapImage.topLeft(), clipboardBitmapImage.image->size() );
+        qDebug() << "New clipboard image" << clipboardBitmapImage.image->size();
+    } else {
+        clipboardBitmapOk = false;
+        qDebug() << "The image has been saved in the clipboard";
+    }
+}
+
+void Editor::newBitmapLayer() {
+    if(object != NULL) {
+        object->addNewBitmapLayer();
+        timeLine->updateLayerNumber( object->getLayerCount() );
+        setCurrentLayer( object->getLayerCount()-1 );
+    }
+    scribbleArea->setFocus();
+}
+
+void Editor::newVectorLayer() {
+    if(object != NULL) {
+        object->addNewVectorLayer();
+        timeLine->updateLayerNumber( object->getLayerCount() );
+        setCurrentLayer( object->getLayerCount()-1 );
+    }
+    scribbleArea->setFocus();
+}
+
+void Editor::newSoundLayer() {
+    if(object != NULL) {
+        object->addNewSoundLayer();
+        timeLine->updateLayerNumber( object->getLayerCount() );
+        setCurrentLayer( object->getLayerCount()-1 );
+    }
+    scribbleArea->setFocus();
+}
+
+void Editor::newCameraLayer() {
+    if(object != NULL) {
+        object->addNewCameraLayer();
+        timeLine->updateLayerNumber( object->getLayerCount() );
+        setCurrentLayer( object->getLayerCount()-1 );
+    }
+    scribbleArea->setFocus();
+}
+
+void Editor::deleteCurrentLayer() {
+    int ret = QMessageBox::warning(this, tr("Warning"),
+                   tr("Are you sure you want to delete the selected layer?"),
+                   QMessageBox::Ok | QMessageBox::Cancel,
+            QMessageBox::Ok);
+    if(ret == QMessageBox::Ok) {
+        object->deleteLayer(currentLayer);
+        if(currentLayer == object->getLayerCount()) setCurrentLayer( currentLayer-1 );
+        timeLine->updateLayerNumber( object->getLayerCount() );
+        //timeLine->update();
+        scribbleArea->updateAllFrames();
+    }
+    scribbleArea->setFocus();
+}
+
+
+void Editor::toggleMirror() {
+    object->toggleMirror();
+    scribbleArea->toggleMirror();
+    scribbleArea->setFocus();
+}
+
+void Editor::toggleShowAllLayers() {
+    scribbleArea->toggleShowAllLayers();
+    timeLine->updateContent();
+}
+
+void Editor::resetMirror() {
+    object->resetMirror();
+    toolSet->resetMirror();
+}
+
+void Editor::showPalette() {
+    if(palette->isVisible()) {
+        palette->close();
+    } else {
+        palette->show();
+    }
+    scribbleArea->setFocus();
+}
+
+void Editor::saveLength(QString x) {
+    bool ok;
+    int dec = x.toInt(&ok, 10);  
+    QSettings settings("Pencil","Pencil");
+    settings.setValue("length", dec);
+}
+
+void Editor::about()
+{
+            QMessageBox::about(this, tr("Pencil 0.4.4b"),
+            tr("<div style='background-color: #DDDDDD; text-align: center'>"
+                             "<img src=':icons/logo.png' width='100%'><br>"
+                             "<table style='background-color: #DDDDDD'><tr><td width='160px'>"
+                             "Developed by: <i>Pascal Naidon</i> &  <i>Patrick Corrieri</i><br>"
+                             "Version: <b>0.4.4b</b> (21st January, 2008)<br><br>"
+               "<b>Thanks to:</b><br>"
+               "Trolltech for the Qt libraries<br>"
+               "Roland for the Movie export functions<br>"
+                             "Axel for his help with Qt<br>"
+                             "Mark for his help with Qt and SVN<br><br>"
+               "<a href='http://www.les-stooges.org/pascal/pencil'>http://www.les-stooges.org/pascal/pencil/</a><br><br>"
+                             "Distributed under the GPL License."
+                             "</td></tr></table>"
+                             "</div>"));
+}
+
+void Editor::helpBox() {
+    QMessageBox::about(this, tr("Help"), tr("Some documentation is available online.<br><br>"
+        "Please visit:<br>"
+        "<a href='http://www.les-stooges.org/pascal/pencil'>http://www.les-stooges.org/pascal/pencil/</a>."));
+    }
+
+
+bool Editor::maybeSave()
+{
+    if (object->modified) {
+        int ret = QMessageBox::warning(this, tr("Warning"),
+                          tr("This animation has been modified.\n"
+                             "Do you want to save your changes?"),
+                          QMessageBox::Yes | QMessageBox::Default,
+                          QMessageBox::No,
+                          QMessageBox::Cancel | QMessageBox::Escape);
+        if (ret == QMessageBox::Yes) {
+            saveForce();
+            return true;
+        } else if (ret == QMessageBox::Cancel) {
+            return false;
+        }
+    }
+    return true;
+}
+
+bool Editor::saveObject(QString filePath)
+{
+    QFileInfo fileInfo(filePath);
+    if(fileInfo.isDir()) return false;
+   
+    QFileInfo dataInfo(filePath+".data");
+    if(!dataInfo.exists()) {
+        QDir dir(fileInfo.absolutePath()); // the directory where filePath is or will be saved
+        dir.mkpath(filePath+".data"); // creates a directory with the same name +".data"
+    }
+   
+    savedName=filePath;
+    mainWindow->setWindowTitle(savedName);
+   
+    QProgressDialog progress("Saving document...", "Abort", 0, 100, mainWindow);
+    progress.setWindowModality(Qt::WindowModal);
+    progress.show();
+    int progressValue = 0;
+   
+    // save data
+    int nLayers = object->getLayerCount();
+    for(int i=0; i < nLayers; i++) {
+        qDebug() << "Saving Layer " << i;
+        progressValue = (i*100)/nLayers;
+        progress.setValue(progressValue);
+        Layer* layer = object->getLayer(i);
+        if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->saveImages(filePath+".data", i);
+        if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->saveImages(filePath+".data", i);
+        if(layer->type == Layer::SOUND) ((LayerSound*)layer)->saveImages(filePath+".data", i);
+    }
+   
+    // save palette
+    object->savePalette(filePath+".data");
+   
+    // -------- save main XML file -----------
+    QFile* file = new QFile(filePath);
+    if (!file->open(QFile::WriteOnly | QFile::Text)) {
+        //QMessageBox::warning(this, "Warning", "Cannot write file");
+        return false;
+    }
+    QTextStream out(file);
+    QDomDocument doc("PencilDocument");
+    QDomElement root = doc.createElement("document");
+    doc.appendChild(root);
+   
+    // save editor information
+    QDomElement editorElement = createDomElement(doc);
+    root.appendChild(editorElement);
+    // save object
+    QDomElement objectElement = object->createDomElement(doc);
+    root.appendChild(objectElement);
+   
+    int IndentSize = 2;
+    doc.save(out, IndentSize);
+    // -----------------------------------
+
+    progress.setValue(100);
+   
+    object->modified = false;
+    timeLine->updateContent();
+    return true;
+}
+
+void Editor::newObject() {
+    //if(object != NULL) delete object;
+    Object *newObject = new Object();
+    newObject->defaultInitialisation();
+   
+    setObject(newObject);
+    updateObject();
+    savedName = "";
+    mainWindow->setWindowTitle(tr("Pencil v0.4.4b"));
+}
+
+void Editor::setObject(Object *object) {
+    if ((this->object)&&(object!=this->object)) {
+        disconnect( this->object, 0, 0, 0); // disconnect the current object from everything
+        delete this->object;
+    }
+    this->object = object;
+    if(object) {
+        connect( object, SIGNAL(imageAdded(int)), this, SLOT(addFrame(int)) );
+        connect( object, SIGNAL(imageAdded(int,int)), this, SLOT(addFrame(int,int)) );
+        connect( object, SIGNAL(imageRemoved(int)), this, SLOT(removeFrame(int)) );
+       
+        //currentLayer = object->getLayerCount()-1; // the default selected layer is the last one
+        currentLayer = 0; // the default selected layer is the first one
+        currentFrame = 1;
+        frameList.clear(); frameList << 1;
+    }
+}
+
+void Editor::updateObject() {
+        scribbleArea->resetColours();
+        palette->selectColour(0);
+       
+        //scribbleArea->resize(object->size);
+        //scribbleArea->updateAllFrames();
+        //scribbleArea->resetView();
+        timeLine->updateLayerNumber(object->getLayerCount());
+        palette->updateList();
+        clearBackup();
+        scribbleArea->resetColours();
+        palette->selectColour(0);
+        scribbleArea->updateAllFrames();
+}
+
+bool Editor::openObject(QString filePath) {
+    // ---- test before opening ----
+    QFileInfo fileInfo(filePath);
+    if( fileInfo.isDir() ) return false;
+    QFile* file = new QFile(filePath);
+    if (!file->open(QFile::ReadOnly)) return false;
+    QDomDocument doc;
+    if (!doc.setContent(file)) return false; // this is not a XML file
+    QDomDocumentType type = doc.doctype();
+    if(type.name() != "PencilDocument" && type.name() != "MyObject") return false; // this is not a Pencil document
+    // -----------------------------
+   
+    QProgressDialog progress("Opening document...", "Abort", 0, 100, mainWindow);
+    progress.setWindowModality(Qt::WindowModal);
+    progress.show();
+   
+    savedName = filePath;
+    QSettings settings("Pencil","Pencil");
+    settings.setValue("lastFilePath", QVariant(savedName) );
+    mainWindow->setWindowTitle(savedName);
+   
+    Object* newObject = new Object();
+    if(!newObject->loadPalette(savedName+".data")) newObject->loadDefaultPalette();
+    setObject(newObject);
+   
+    // ------- reads the XML file -------
+    bool ok = true;
+    QDomElement docElem = doc.documentElement();
+    if(docElem.isNull()) return false;
+    if(docElem.tagName() == "document") {
+        QDomNode tag = docElem.firstChild();
+        while(!tag.isNull()) {
+            QDomElement element = tag.toElement(); // try to convert the node to an element.
+            if(!element.isNull()) {
+                if(element.tagName() == "editor") {
+                    loadDomElement(element, filePath);
+                }
+                if(element.tagName() == "object") {
+                    ok = newObject->loadDomElement(element, filePath);
+                }
+            }
+            tag = tag.nextSibling();
+        }
+    } else {
+        if(docElem.tagName() == "object" || docElem.tagName() == "MyOject") { // old Pencil format (<=0.4.3)
+            ok = newObject->loadDomElement(docElem, filePath);
+        }
+    }
+    // ------------------------------
+    if(ok) updateObject();
+   
+    progress.setValue(100);
+    return ok;
+}
+
+void Editor::saveForce() {
+    if (savedName!="")
+        saveObject(savedName);
+    else saveDocument();
+}
+
+void Editor::createNewDocumentDialog() {
+    /*newDocumentDialog = new QDialog(this, Qt::Dialog);
+    QGridLayout *mainLayout = new QGridLayout;
+   
+    QGroupBox *resolutionBox = new QGroupBox(tr("Resolution"));
+    newDocumentDialog_hBox = new QSpinBox(this);
+    newDocumentDialog_hBox->setMinimum(1);
+    newDocumentDialog_hBox->setMaximum(10000);
+    int defaultWidth = 720; int defaultHeight = 540;
+    //if(object != NULL) {
+    //    defaultWidth = object->size.width(); defaultHeight = object->size.height();
+    //}
+    newDocumentDialog_hBox->setValue(defaultWidth);
+    newDocumentDialog_hBox->setFixedWidth(80);
+    newDocumentDialog_vBox = new QSpinBox(this);
+    newDocumentDialog_vBox->setMinimum(1);
+    newDocumentDialog_vBox->setMaximum(10000);
+    newDocumentDialog_vBox->setValue(defaultHeight);
+    newDocumentDialog_vBox->setFixedWidth(80);
+    QGridLayout *resolutionLayout = new QGridLayout;
+    resolutionLayout->addWidget(newDocumentDialog_hBox,0,0);
+    resolutionLayout->addWidget(newDocumentDialog_vBox,0,1);
+    resolutionBox->setLayout(resolutionLayout);
+   
+    QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+    connect(buttonBox, SIGNAL(accepted()), newDocumentDialog, SLOT(accept()));
+    connect(buttonBox, SIGNAL(rejected()), newDocumentDialog, SLOT(reject()));
+   
+    mainLayout->addWidget(resolutionBox, 0, 0);
+    mainLayout->addWidget(buttonBox, 1, 0);
+    newDocumentDialog->setLayout(mainLayout);
+    newDocumentDialog->setWindowTitle(tr("Options"));
+    newDocumentDialog->setModal(true);*/
+}
+
+void Editor::createExportFramesSizeBox() {
+    int defaultWidth = 720; int defaultHeight = 540;
+    exportFramesDialog_hBox = new QSpinBox(this);
+    exportFramesDialog_hBox->setMinimum(1);
+    exportFramesDialog_hBox->setMaximum(10000);
+    exportFramesDialog_hBox->setValue(defaultWidth);
+    exportFramesDialog_hBox->setFixedWidth(80);
+    exportFramesDialog_vBox = new QSpinBox(this);
+    exportFramesDialog_vBox->setMinimum(1);
+    exportFramesDialog_vBox->setMaximum(10000);
+    exportFramesDialog_vBox->setValue(defaultHeight);
+    exportFramesDialog_vBox->setFixedWidth(80);
+}
+
+void Editor::createExportMovieSizeBox() {
+    int defaultWidth = 720; int defaultHeight = 540;   
+    exportMovieDialog_hBox = new QSpinBox(this);
+    exportMovieDialog_hBox->setMinimum(1);
+    exportMovieDialog_hBox->setMaximum(10000);
+    exportMovieDialog_hBox->setValue(defaultWidth);
+    exportMovieDialog_hBox->setFixedWidth(80);
+    exportMovieDialog_vBox = new QSpinBox(this);
+    exportMovieDialog_vBox->setMinimum(1);
+    exportMovieDialog_vBox->setMaximum(10000);
+    exportMovieDialog_vBox->setValue(defaultHeight);
+    exportMovieDialog_vBox->setFixedWidth(80);
+
+}
+
+void Editor::createExportFramesDialog() {
+    exportFramesDialog = new QDialog(this, Qt::Dialog);
+    QGridLayout *mainLayout = new QGridLayout;
+   
+    QGroupBox *resolutionBox = new QGroupBox(tr("Resolution"));
+    if(exportFramesDialog_hBox == NULL || exportFramesDialog_vBox == NULL) {
+        createExportFramesSizeBox();
+    }
+    QGridLayout *resolutionLayout = new QGridLayout;
+    resolutionLayout->addWidget(exportFramesDialog_hBox,0,0);
+    resolutionLayout->addWidget(exportFramesDialog_vBox,0,1);
+    resolutionBox->setLayout(resolutionLayout);
+   
+    QGroupBox *formatBox = new QGroupBox(tr("Format"));
+    exportFramesDialog_format = new QComboBox();
+    exportFramesDialog_format->addItem("PNG");
+    exportFramesDialog_format->addItem("JPEG");
+    QGridLayout *formatLayout = new QGridLayout;
+    formatLayout->addWidget(exportFramesDialog_format,0,0);
+    formatBox->setLayout(formatLayout);
+   
+    QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+    connect(buttonBox, SIGNAL(accepted()), exportFramesDialog, SLOT(accept()));
+    connect(buttonBox, SIGNAL(rejected()), exportFramesDialog, SLOT(reject()));
+   
+    mainLayout->addWidget(resolutionBox, 0, 0);
+    mainLayout->addWidget(formatBox, 1, 0);
+    mainLayout->addWidget(buttonBox, 2, 0);
+    exportFramesDialog->setLayout(mainLayout);
+    exportFramesDialog->setWindowTitle(tr("Options"));
+    exportFramesDialog->setModal(true);
+}
+
+void Editor::createExportMovieDialog() {
+    exportMovieDialog = new QDialog(this, Qt::Dialog);
+    QGridLayout *mainLayout = new QGridLayout;
+   
+    QGroupBox *resolutionBox = new QGroupBox(tr("Resolution"));
+    if(!exportMovieDialog_hBox || !exportMovieDialog_vBox) {
+        createExportMovieSizeBox();
+    }
+    QGridLayout *resolutionLayout = new QGridLayout;
+    resolutionLayout->addWidget(exportMovieDialog_hBox,0,0);
+    resolutionLayout->addWidget(exportMovieDialog_vBox,0,1);
+    resolutionBox->setLayout(resolutionLayout);
+   
+    QGroupBox *formatBox = new QGroupBox(tr("Format"));
+    exportMovieDialog_format = new QComboBox();
+    exportMovieDialog_format->addItem("MOV");
+    //exportFramesDialog_format->addItem("JPEG");
+    QGridLayout *formatLayout = new QGridLayout;
+    formatLayout->addWidget(exportMovieDialog_format,0,0);
+    formatBox->setLayout(formatLayout);
+   
+    QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+    connect(buttonBox, SIGNAL(accepted()), exportMovieDialog, SLOT(accept()));
+    connect(buttonBox, SIGNAL(rejected()), exportMovieDialog, SLOT(reject()));
+   
+    mainLayout->addWidget(resolutionBox, 0, 0);
+    mainLayout->addWidget(formatBox, 1, 0);
+    mainLayout->addWidget(buttonBox, 2, 0);
+    exportMovieDialog->setLayout(mainLayout);
+    exportMovieDialog->setWindowTitle(tr("Options"));
+    exportMovieDialog->setModal(true);
+}
+
+
+void Editor::createExportFlashDialog() {
+    exportFlashDialog = new QDialog(this, Qt::Dialog);
+    QGridLayout *mainLayout = new QGridLayout;
+   
+    QSettings settings("Pencil","Pencil");
+   
+   
+    exportFlashDialog_compression = new QSlider(Qt::Horizontal);
+    exportFlashDialog_compression->setTickPosition(QSlider::TicksBelow);
+    exportFlashDialog_compression->setMinimum(0);
+    exportFlashDialog_compression->setMaximum(10);
+    exportFlashDialog_compression->setValue( 10 - settings.value("flashCompressionLevel").toInt() );
+    QLabel* label1 = new QLabel("Large file");
+    QLabel* label2 = new QLabel("Small file");
+   
+    QGroupBox *compressionBox = new QGroupBox(tr("Compression"));
+    QGridLayout *compressionLayout = new QGridLayout;
+    compressionLayout->addWidget(label1,0,0);
+    compressionLayout->addWidget(exportFlashDialog_compression,0,1);
+    compressionLayout->addWidget(label2,0,2);
+    compressionBox->setLayout(compressionLayout);
+   
+    QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel | QDialogButtonBox::Ok);
+    connect(buttonBox, SIGNAL(accepted()), exportFlashDialog, SLOT(accept()));
+    connect(buttonBox, SIGNAL(rejected()), exportFlashDialog, SLOT(reject()));
+   
+    mainLayout->addWidget(compressionBox, 0, 0);
+    mainLayout->addWidget(buttonBox, 1, 0);
+    exportFlashDialog->setLayout(mainLayout);
+    exportFlashDialog->setWindowTitle(tr("Options"));
+    exportFlashDialog->setModal(true);
+}
+
+QMatrix Editor::map(QRectF source, QRectF target) { // this method should be put somewhere else...
+        qreal x1 = source.left(); qreal y1 = source.top(); qreal x2 = source.right(); qreal y2 = source.bottom();
+        qreal x1P = target.left(); qreal y1P = target.top(); qreal x2P = target.right(); qreal y2P = target.bottom();
+        QMatrix matrix;
+        bool mirror = false;
+        if( (x1 != x2) && (y1 != y2) ) {
+            if( !mirror) {
+                matrix = QMatrix ( (x2P-x1P)/(x2-x1), 0, 0, (y2P-y1P)/(y2-y1), (x1P*x2-x2P*x1)/(x2-x1), (y1P*y2-y2P*y1)/(y2-y1) );
+            } else {
+                matrix = QMatrix ( (x2P-x1P)/(x1-x2), 0, 0, (y2P-y1P)/(y2-y1), (x1P*x1-x2P*x2)/(x1-x2), (y1P*y2-y2P*y1)/(y2-y1) );
+            }
+        } else {
+            matrix.reset();
+        }
+    return matrix;
+}
+
+bool Editor::exportSeq() {
+    QSettings settings("Pencil","Pencil");
+    QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();       
+    if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+    QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+    if (filePath.isEmpty()) {
+        return false;
+    } else {
+        settings.setValue("lastExportPath", QVariant(filePath));
+       
+        if (!exportFramesDialog) createExportFramesDialog();
+        exportFramesDialog_hBox->setValue( scribbleArea->getViewRect().toRect().width() );
+        exportFramesDialog_vBox->setValue( scribbleArea->getViewRect().toRect().height() );
+        exportFramesDialog->exec();
+        if(exportFramesDialog->result() == QDialog::Rejected) return false;
+       
+        QSize exportSize = QSize(exportFramesDialog_hBox->value(), exportFramesDialog_vBox->value());
+        //QMatrix view = map( QRectF(QPointF(0,0), scribbleArea->size() ), QRectF(QPointF(0,0), exportSize) );
+        QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+        view = scribbleArea->getView() * view;
+   
+        QByteArray exportFormat(exportFramesDialog_format->currentText().toLatin1());
+        updateMaxFrame();       
+        object->exportFrames(1, maxFrame, view, getCurrentLayer(), exportSize, filePath, exportFormat, -1, false, true, 2);
+        return true;
+    }
+}
+
+bool Editor::exportX() {
+    QSettings settings("Pencil","Pencil");
+    QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();       
+    if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+    QString filePath = QFileDialog::getSaveFileName(this, tr("Save As"),initialPath);
+    if (filePath.isEmpty()) {
+        qDebug() << "empty file";
+        return false;
+    } else {
+        settings.setValue("lastExportPath", QVariant(filePath));
+       
+        QSize exportSize = scribbleArea->getViewRect().toRect().size();
+        QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+        view = scribbleArea->getView() * view;
+       
+        updateMaxFrame();
+        object->exportX(1, maxFrame, view, exportSize, filePath, true, 2);
+        return true;
+    }
+}
+
+
+bool Editor::exportMov() {
+    QSettings settings("Pencil","Pencil");
+    QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();       
+    if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+    QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+    if (filePath.isEmpty()) {
+        return false;
+    } else {
+        settings.setValue("lastExportPath", QVariant(filePath));
+        if (!exportMovieDialog) createExportMovieDialog();
+        exportMovieDialog_hBox->setValue( scribbleArea->getViewRect().toRect().width() );
+        exportMovieDialog_vBox->setValue( scribbleArea->getViewRect().toRect().height() );
+        exportMovieDialog->exec();
+        if(exportMovieDialog->result() == QDialog::Rejected) return false;
+       
+        QSize exportSize = QSize(exportMovieDialog_hBox->value(), exportMovieDialog_vBox->value());
+        QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+        view = scribbleArea->getView() * view;
+       
+        updateMaxFrame();
+        object->exportMovie(1, maxFrame, view, getCurrentLayer(), exportSize, filePath, fps);
+        return true;
+    }
+}
+
+bool Editor::exportFlash() {
+    QSettings settings("Pencil","Pencil");
+    QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();       
+    if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+    QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+    if (filePath.isEmpty()) {
+        return false;
+    } else {
+        settings.setValue("lastExportPath", QVariant(filePath));
+        if (!exportFlashDialog) createExportFlashDialog();
+        exportFlashDialog->exec();
+        if(exportFlashDialog->result() == QDialog::Rejected) return false;
+       
+        settings.setValue("flashCompressionLevel", 10-exportFlashDialog_compression->value() );
+   
+        QSize exportSize = scribbleArea->getViewRect().toRect().size();
+        QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+        view = scribbleArea->getView() * view;
+       
+        updateMaxFrame();
+        object->exportFlash(1, maxFrame, view, exportSize, filePath, fps, exportFlashDialog_compression->value());
+        return true;
+    }
+}
+
+void Editor::exportPalette()
+{
+    QSettings settings("Pencil","Pencil");
+    QString initialPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();       
+    if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled.xml";
+    QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+    if (!filePath.isEmpty()) object->exportPalette(filePath);
+}
+
+void Editor::importPalette()
+{
+    QSettings settings("Pencil","Pencil");
+    QString initialPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();       
+    if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled.xml";
+    QString filePath = QFileDialog::getOpenFileName(this, tr("Import"),initialPath);
+    if (!filePath.isEmpty()) {
+        object->importPalette(filePath);
+        palette->updateList();
+    }
+}
+
+void Editor::importImage()
+{
+    importImage("fromDialog");
+}
+
+void Editor::importImage(QString filePath)
+{               
+    Layer* layer = object->getLayer(currentLayer);
+    if(layer != NULL) {
+        if( layer->type == Layer::BITMAP || layer->type == Layer::VECTOR ) {
+            if(filePath == "fromDialog") {
+                QSettings settings("Pencil","Pencil");
+                QString initialPath = settings.value("lastImportPath", QVariant(QDir::homePath())).toString();       
+                if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+                filePath = QFileDialog::getOpenFileName(this, tr("Import image..."),initialPath);
+                if (!filePath.isEmpty()) settings.setValue("lastImportPath", QVariant(filePath));
+            }
+            if (!filePath.isEmpty()) {
+                backup();
+                // --- option 1
+                //((LayerBitmap*)layer)->loadImageAtFrame(filePath, currentFrame);
+                // --- option 2
+                // TO BE IMPROVED
+                if(layer->type == Layer::BITMAP) {
+                    BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getBitmapImageAtFrame(currentFrame);
+                    if(bitmapImage == NULL) { addKey(); bitmapImage = ((LayerBitmap*)layer)->getBitmapImageAtFrame(currentFrame); }
+                    QImage* importedImage = new QImage(filePath);
+                    if(!importedImage->isNull()) {
+                        QRect boundaries = importedImage->rect();
+                        //boundaries.moveTopLeft( scribbleArea->getView().inverted().map(QPoint(0,0)) );
+                        boundaries.moveTopLeft( scribbleArea->getCentralPoint().toPoint() - QPoint(boundaries.width()/2, boundaries.height()/2) );
+                        BitmapImage* importedBitmapImage = new BitmapImage(NULL, boundaries, *importedImage);
+                        if(scribbleArea->somethingSelected) {
+                            QRectF selection = scribbleArea->getSelection();
+                            if( importedImage->width() <= selection.width() && importedImage->height() <= selection.height() ) {
+                                importedBitmapImage->boundaries.moveTopLeft( selection.topLeft().toPoint() );
+                            } else {
+                                importedBitmapImage->transform( selection.toRect(), true );
+                            }
+                        }
+                        bitmapImage->paste( importedBitmapImage );
+                    } else {
+                        QMessageBox::warning(this, tr("Warning"),
+                            tr("This is not a bitmap image that Pencil can read."),
+                            QMessageBox::Ok,
+                            QMessageBox::Ok);
+                    }
+                }
+                if(layer->type == Layer::VECTOR) {
+                    VectorImage* vectorImage = ((LayerVector*)layer)->getVectorImageAtFrame(currentFrame);
+                    if(vectorImage == NULL) { addKey(); vectorImage = ((LayerVector*)layer)->getVectorImageAtFrame(currentFrame); }
+                    VectorImage* importedVectorImage = new VectorImage(NULL);
+                    bool ok = importedVectorImage->read(filePath);
+                    if(ok) {
+                        importedVectorImage->selectAll();
+                        vectorImage->paste( *importedVectorImage );
+                    } else {
+                        QMessageBox::warning(this, tr("Warning"),
+                            tr("This is not a vector image that Pencil can read."),
+                            QMessageBox::Ok,
+                            QMessageBox::Ok);
+                    }
+                }
+                scribbleArea->updateFrame();
+                timeLine->updateContent();
+            }
+        }  else {
+            // create a new Bitmap layer ?
+            QMessageBox::warning(this, tr("Warning"),
+                tr("Please select a bitmap or vector layer in order to import images."),
+                QMessageBox::Ok,
+                QMessageBox::Ok);
+        }
+    }
+}
+
+void Editor::importSound()
+{
+    importSound("fromDialog");
+}
+
+void Editor::importSound(QString filePath)
+{
+    Layer* layer = object->getLayer(currentLayer);
+    if(layer != NULL) {
+        if( layer->type == Layer::SOUND) {
+            if(filePath == "fromDialog") {
+                QSettings settings("Pencil","Pencil");
+                QString initialPath = settings.value("lastImportPath", QVariant(QDir::homePath())).toString();       
+                if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+                filePath = QFileDialog::getOpenFileName(this, tr("Import sound..."),initialPath);
+                if (!filePath.isEmpty()) settings.setValue("lastImportPath", QVariant(filePath));
+            }
+            if (!filePath.isEmpty()) {
+                ((LayerSound*)layer)->loadSoundAtFrame(filePath, currentFrame);
+                timeLine->updateContent();
+            }   
+        } else {
+            // create a new Sound layer ?
+            QMessageBox::warning(this, tr("Warning"),
+                tr("Please select a sound layer in order to import sounds."),
+                QMessageBox::Ok,
+                QMessageBox::Ok);
+        }
+    }
+}
+
+void Editor::updateFrame(int frameNumber) {
+    scribbleArea->updateFrame(frameNumber);
+}
+
+void Editor::updateFrameAndVector(int frameNumber) {
+    scribbleArea->updateAllVectorLayersAt(frameNumber);
+}
+
+void Editor::scrubTo(int frameNumber) {
+    int oldFrame = currentFrame;
+    if(frameNumber < 1) frameNumber = 1;
+    currentFrame = frameNumber;
+    //toolSet->setCounter(frameNumber);
+    //timeLine->setCurrentFrame(currentFrame);
+    timeLine->updateFrame(oldFrame);
+    timeLine->updateFrame(currentFrame);
+    scribbleArea->readCanvasFromCache = true;
+    scribbleArea->update();
+}
+
+void Editor::scrubForward() {
+    scrubTo(currentFrame+1);
+}
+
+void Editor::scrubBackward() {
+    if(currentFrame > 1) scrubTo(currentFrame-1);
+}
+
+/*void Editor::scrubKF() {
+    //timeLine->scrubKF();
+}
+
+void Editor::scrubKB() {
+    //timeLine->scrubKB();
+}*/
+
+void Editor::previousLayer() {
+    currentLayer--;
+    if(currentLayer<0) currentLayer = 0;
+    timeLine->updateContent();
+    scribbleArea->updateAllFrames();
+}
+
+void Editor::nextLayer() {
+    currentLayer++;
+    if(currentLayer == object->getLayerCount()) currentLayer = object->getLayerCount()-1;
+    timeLine->updateContent();
+    scribbleArea->updateAllFrames();
+}
+
+void Editor::addKey() {
+    addKey(currentLayer, currentFrame);
+    scribbleArea->setFocus();
+}
+
+void Editor::addKey(int layerNumber, int &frameNumber) {
+    Layer* layer = object->getLayer(layerNumber);
+    if(layer != NULL) {
+        if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR || layer->type == Layer::CAMERA) {
+            bool success = false;
+            if(layer->type == Layer::BITMAP) success = ((LayerBitmap*)layer)->addImageAtFrame(frameNumber);
+            if(layer->type == Layer::VECTOR) success = ((LayerVector*)layer)->addImageAtFrame(frameNumber);
+            if(layer->type == Layer::CAMERA) success = ((LayerCamera*)layer)->addImageAtFrame(frameNumber);
+            if(success) {
+                timeLine->updateContent();
+                //scribbleArea->addFrame(frameNumber);
+            } else {
+                frameNumber++;
+                addKey();
+            }
+        }
+    }
+}
+
+void Editor::removeKey() {
+    Layer* layer = object->getLayer(currentLayer);
+    if(layer != NULL) {
+        if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->removeImageAtFrame(currentFrame);
+        if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->removeImageAtFrame(currentFrame);
+        if(layer->type == Layer::CAMERA) ((LayerCamera*)layer)->removeImageAtFrame(currentFrame);
+        timeLine->updateContent();
+        scribbleArea->updateFrame();
+        scribbleArea->setFocus();
+    }
+}
+
+void Editor::addFrame(int frameNumber) { // adding a frame to the cache
+    frameList << frameNumber;
+    qSort(frameList);
+    scribbleArea->updateFrame();
+    timeLine->update();
+}
+
+void Editor::addFrame(int frameNumber1, int frameNumber2) { // adding a range of frames to the cache
+    for(int i=frameNumber1; i<=frameNumber2; i++) {
+        frameList << i;
+    }
+    qSort(frameList);
+    scribbleArea->updateFrame();
+    timeLine->update();
+}
+
+void Editor::removeFrame(int frameNumber) {
+    frameList.removeAt( getLastIndexAtFrame(frameNumber) );
+    scribbleArea->updateFrame();
+    timeLine->update();
+}
+///*
+void Editor::getPrevKeyFlip() {
+    currentFrame = getPrevKey(currentFrame);
+    timeLine->update();
+    scribbleArea->updateFrame();
+    printf("Previous key flipped \n");
+}
+
+int Editor::getPrevKey(int frameNumber) {
+    int keyInQuestion = frameNumber;
+    bool nothingFound = true;   
+    Layer* layer;
+    if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+    else return NULL;
+    while(nothingFound) {
+        --keyInQuestion;
+        if(keyInQuestion == 0) keyInQuestion = object->getLayer(currentLayer)->getMaxFrame();
+        switch(layer->type) {
+            case Layer::BITMAP:
+                if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;   
+                break;
+            case Layer::VECTOR:
+                if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+                break;
+            case Layer::CAMERA:
+                if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+                break;
+        }
+    }
+    return keyInQuestion;
+}
+
+void Editor::getNextKeyFlip() {
+    currentFrame = getNextKey(currentFrame);
+    timeLine->update();
+    scribbleArea->updateFrame();
+    printf("Next key flipped \n");
+}
+
+int Editor::getNextKey(int frameNumber) {
+    int keyInQuestion = frameNumber;
+    bool nothingFound = true;   
+    Layer* layer;
+    if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+    else return NULL;
+    while(nothingFound) {
+        ++keyInQuestion;
+        if(keyInQuestion > object->getLayer(currentLayer)->getMaxFrame()) keyInQuestion = 1;
+        switch(layer->type) {
+            case Layer::BITMAP:
+                if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;   
+                break;
+            case Layer::VECTOR:
+                if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+                break;
+            case Layer::CAMERA:
+                if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+                break;
+        }
+    }
+    return keyInQuestion;
+}
+
+//*/
+int Editor::getLastIndexAtFrame(int frameNumber) {
+    int position  = -1;
+    int index = -1;
+    for(int i=0; i < frameList.size(); i++) {
+        if(frameList.at(i) > position && frameList.at(i) <= frameNumber) {
+            position = frameList.at(i);
+            index = i;
+        }
+    }
+    return index;
+}
+
+int Editor::getLastFrameAtFrame(int frameNumber) {
+    return frameList.at( getLastIndexAtFrame(frameNumber) );
+}
+
+
+
+void Editor::showPreferences() {
+    preferences->show();
+}
+
+void Editor::play() {
+    updateMaxFrame();
+    if(currentFrame > maxFrame) {
+        scrubTo(maxFrame);
+    } else {
+        if(currentFrame == maxFrame) {
+            if( !playing ) {
+                scrubTo(0);
+            } else {
+                if( looping ) { scrubTo(0); } else { startOrStop(); }
+            }
+        } else {
+            startOrStop();
+        }
+    }
+    scribbleArea->setFocus();
+}
+
+void Editor::startOrStop() {
+    if(!playing) {
+        playing = true;
+        timer->start();
+    } else {
+        playing = false;
+        timer->stop();
+        object->stopSoundIfAny();
+    }
+}
+
+void Editor::playNextFrame() {
+    if(currentFrame < maxFrame) {
+        if(sound) object->playSoundIfAny(currentFrame);
+        scrubForward();
+    } else {
+        play();
+    }
+    scribbleArea->setFocus();
+}
+
+void Editor::changeFps(int x) {
+    fps=x;
+    QSettings settings("Pencil","Pencil");
+    settings.setValue("fps", x);
+    timer->setInterval(1000/fps);
+    scribbleArea->setFocus();
+}
+
+int Editor::getFps() {
+    return fps;
+}
+
+void Editor::setLoop() {
+    if (looping) looping=false;
+    else looping=true;
+    scribbleArea->setFocus();
+}
+
+void Editor::setSound() {
+    if(sound) sound = false;
+    else sound = true;
+}
+
+void Editor::setCurrentLayer(int layerNumber) {
+    currentLayer = layerNumber;
+    timeLine->updateContent();
+    scribbleArea->updateAllFrames();
+}
+
+void Editor::switchVisibilityOfLayer(int layerNumber) {
+    Layer* layer = object->getLayer(layerNumber);
+    if(layer != NULL) layer->switchVisibility();
+    scribbleArea->updateAllFrames();
+    timeLine->updateContent();
+}
+
+void Editor::moveLayer(int i, int j) {
+    object->moveLayer(i, j);
+    if(j<i) { currentLayer = j; } else { currentLayer = j-1; }
+    timeLine->updateContent();
+    scribbleArea->updateAllFrames();
+}
+
+void Editor::updateMaxFrame() {
+    maxFrame = -1;
+    for(int i=0; i < object->getLayerCount(); i++) {
+        int frameNumber = object->getLayer(i)->getMaxFrame();
+        if( frameNumber > maxFrame) maxFrame = frameNumber;
+    }
+}
+
+void Editor::dockAllPalettes() {
+    getToolSet()->drawPalette->setFloating(false);
+    getToolSet()->optionPalette->setFloating(false);
+    getToolSet()->displayPalette->setFloating(false);
+    getToolSet()->onionPalette->setFloating(false);
+    getTimeLine()->setFloating(false);
+    getPalette()->setFloating(false);
+}
+
+void Editor::detachAllPalettes() {
+    getToolSet()->drawPalette->setFloating(true);
+    getToolSet()->optionPalette->setFloating(true);
+    getToolSet()->displayPalette->setFloating(true);
+    getToolSet()->onionPalette->setFloating(true);
+    getTimeLine()->setFloating(true);
+    getPalette()->setFloating(true);
+    restorePalettesSettings(false, true, true);
+}
+
+void Editor::restorePalettesSettings(bool restoreFloating, bool restorePosition, bool restoreSize) {
+    QSettings settings("Pencil", "Pencil");
+   
+    Palette* colourPalette = getPalette();
+    if(colourPalette != NULL) {
+        QPoint pos = settings.value("colourPalettePosition", QPoint(100, 100)).toPoint();
+        QSize size = settings.value("colourPaletteSize", QSize(400, 300)).toSize();
+        bool floating = settings.value("colourPaletteFloating", false).toBool();
+        if(restoreFloating) colourPalette->setFloating(floating);
+        if(restorePosition) colourPalette->move(pos);
+        if(restoreSize) colourPalette->resize(size);
+        colourPalette->show();
+    }
+   
+    TimeLine* timelinePalette = getTimeLine();
+    if(timelinePalette != NULL) {
+        QPoint pos = settings.value("timelinePalettePosition", QPoint(100, 100)).toPoint();
+        QSize size = settings.value("timelinePaletteSize", QSize(400, 300)).toSize();
+        bool floating = settings.value("timelinePaletteFloating", false).toBool();
+        if(restoreFloating) timelinePalette->setFloating(floating);
+        if(restorePosition) timelinePalette->move(pos);
+        if(restoreSize) timelinePalette->resize(size);
+        timelinePalette->show();
+    }
+   
+    QDockWidget* drawPalette = getToolSet()->drawPalette;
+    if(drawPalette != NULL) {
+        QPoint pos = settings.value("drawPalettePosition", QPoint(100, 100)).toPoint();
+        QSize size = settings.value("drawPaletteSize", QSize(400, 300)).toSize();
+        bool floating = settings.value("drawPaletteFloating", false).toBool();
+        if(restoreFloating) drawPalette->setFloating(floating);
+        if(restorePosition) drawPalette->move(pos);
+        if(restoreSize) drawPalette->resize(size);
+        drawPalette->show();
+    }
+   
+    QDockWidget* optionPalette = getToolSet()->optionPalette;
+    if(optionPalette != NULL) {
+        QPoint pos = settings.value("optionPalettePosition", QPoint(100, 100)).toPoint();
+        QSize size = settings.value("optionPaletteSize", QSize(400, 300)).toSize();
+        bool floating = settings.value("optionPaletteFloating", false).toBool();
+        if(restoreFloating) optionPalette->setFloating(floating);
+        if(restorePosition) optionPalette->move(pos);
+        if(restoreSize) optionPalette->resize(size);
+        optionPalette->show();
+    }
+
+    QDockWidget* displayPalette = getToolSet()->displayPalette;
+    if(optionPalette != NULL) {
+        QPoint pos = settings.value("displayPalettePosition", QPoint(100, 100)).toPoint();
+        QSize size = settings.value("displayPaletteSize", QSize(400, 300)).toSize();
+        bool floating = settings.value("displayPaletteFloating", false).toBool();
+        if(restoreFloating) displayPalette->setFloating(floating);
+        if(restorePosition) displayPalette->move(pos);
+        if(restoreSize) displayPalette->resize(size);
+        displayPalette->show();
+    }
+}
+
+QDomElement Editor::createDomElement(QDomDocument &doc) {
+    QDomElement tag = doc.createElement("editor");
+   
+    QDomElement tag1 = doc.createElement("currentLayer");
+    tag1.setAttribute("value", currentLayer);
+    tag.appendChild(tag1);
+    QDomElement tag2 = doc.createElement("currentFrame");
+    tag2.setAttribute("value", currentFrame);
+    tag.appendChild(tag2);
+    QDomElement tag3 = doc.createElement("currentView");
+    QMatrix myView = scribbleArea->getMyView();
+    tag3.setAttribute("m11", myView.m11());
+    tag3.setAttribute("m12", myView.m12());
+    tag3.setAttribute("m21", myView.m21());
+    tag3.setAttribute("m22", myView.m22());
+    tag3.setAttribute("dx", myView.dx());
+    tag3.setAttribute("dy", myView.dy());
+    tag.appendChild(tag3);
+
+    return tag;
+}
+
+bool Editor::loadDomElement(QDomElement docElem, QString filePath) {
+    if(docElem.isNull()) return false;
+    QDomNode tag = docElem.firstChild();
+    while(!tag.isNull()) {
+        QDomElement element = tag.toElement(); // try to convert the node to an element.
+        if(!element.isNull()) {
+            if(element.tagName() == "currentLayer") {
+                currentLayer = element.attribute("value").toInt();
+            }
+            if(element.tagName() == "currentFrame") {
+                currentFrame = element.attribute("value").toInt();
+            }
+            if(element.tagName() == "currentView") {
+                qreal m11 = element.attribute("m11").toDouble();
+                qreal m12 = element.attribute("m12").toDouble();
+                qreal m21 = element.attribute("m21").toDouble();
+                qreal m22 = element.attribute("m22").toDouble();
+                qreal dx = element.attribute("dx").toDouble();
+                qreal dy = element.attribute("dy").toDouble();
+                scribbleArea->setMyView( QMatrix(m11,m12,m21,m22,dx,dy) );
+            }
+        }
+        tag = tag.nextSibling();
+    }
+    return true;
+}
diff -rupN pencil_backup/src/interface/editor.h pencil_dev/src/interface/editor.h
--- pencil_backup/src/interface/editor.h    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/editor.h    2009-10-01 19:35:38.000000000 -0500
@@ -97,6 +97,7 @@ public:
     bool isModified() { return modified; }
     int allLayers() { return scribbleArea->allLayers(); }
     static QMatrix map(QRectF, QRectF);
+
    
 protected:
     void dragEnterEvent(QDragEnterEvent *event);
@@ -208,6 +209,12 @@ public slots:
     void detachAllPalettes();
     void restorePalettesSettings(bool, bool, bool);
    
+    void getPrevKeyFlip();
+    void getNextKeyFlip();
+
+    int getPrevKey(int);
+    int getNextKey(int);
+
 private slots:
     void newDocument();
     void openDocument();
diff -rupN pencil_backup/src/interface/editor.h~ pencil_dev/src/interface/editor.h~
--- pencil_backup/src/interface/editor.h~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/editor.h~    2009-09-30 16:31:52.000000000 -0500
@@ -0,0 +1,288 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#ifndef EDITOR_H
+#define EDITOR_H
+
+
+#include <QList>
+#include <QMainWindow>
+#include <QLabel>
+#include <QToolButton>
+#include "timeline.h"
+#include "scribblearea.h"
+#include "toolset.h"
+#include "preferences.h"
+#include "palette.h"
+#include "object.h"
+#include "vectorimage.h"
+#include "bitmapimage.h"
+
+class Editor;
+
+class BackupElement : public QObject
+{
+    Q_OBJECT
+    public:
+        enum types { UNDEFINED, BITMAP_MODIF, VECTOR_MODIF };
+        //int type;
+        //BackupElement() { type = UNDEFINED; }
+        virtual int type() { return UNDEFINED; }
+        virtual void restore(Editor*) { qDebug() << "Wrong"; };
+};
+
+class BackupBitmapElement : public BackupElement
+{
+    Q_OBJECT
+    public:
+        int layer, frame;
+        BitmapImage bitmapImage;
+        //BackupBitmapElement() { type = BackupElement::BITMAP_MODIF; }
+        int type() { return BackupElement::BITMAP_MODIF; }
+        void restore(Editor*);
+};
+
+class BackupVectorElement : public BackupElement
+{
+    Q_OBJECT
+    public:
+        int layer, frame;
+        VectorImage vectorImage;
+        //BackupVectorElement() { type = BackupElement::VECTOR_MODIF; }
+        int type() { return BackupElement::VECTOR_MODIF; }
+        void restore(Editor*);
+};
+
+
+class Editor : public QWidget
+{
+    Q_OBJECT
+
+public:
+    Editor(QMainWindow* parent);
+    virtual ~Editor();
+   
+    //Object* getObject() { return object; }
+    //bool somethingSelected();
+    Object* object;  // the object to be edited by the editor
+    //int currentPenColour, currentFillColour;
+    int currentLayer; // the current layer to be edited/displayed by the editor
+    int currentFrame; // the current frame to be edited/displayed by the editor
+    int maxFrame; // the number of the last frame for the current object
+    QList<int> frameList; // the frames that are to be cached -- should we use a QMap, or a QHash?
+   
+    int fps; // the number of frames per second used by the editor
+    QTimer* timer; // the timer used for animation in the editor
+    bool playing;
+    bool looping;
+    bool sound;
+   
+    Palette* getPalette() { return palette; }
+    TimeLine* getTimeLine() { return timeLine; }
+    ToolSet* getToolSet() { return toolSet; }
+    Layer* getCurrentLayer(int incr) { if(object != NULL) { return object->getLayer(currentLayer+incr); } else { return NULL; } }
+    Layer* getCurrentLayer() { return getCurrentLayer(0); }
+    bool isModified() { return modified; }
+    int allLayers() { return scribbleArea->allLayers(); }
+    static QMatrix map(QRectF, QRectF);
+
+   
+protected:
+    void dragEnterEvent(QDragEnterEvent *event);
+    void dropEvent(QDropEvent *event);
+   
+signals:
+    void selectAll();
+   
+public slots:
+    void showCounter(int);
+    bool maybeSave();
+    void importImage();
+    void importImage(QString filePath);
+    void importSound();
+    void importSound(QString filePath);
+    void importPalette();
+    void exportPalette();
+    void updateFrame(int frameNumber);
+    void updateFrameAndVector(int frameNumber);
+    void scrubTo(int frameNumber);   
+    void scrubForward();
+    void scrubBackward();
+    void play();
+    void startOrStop();
+    void playNextFrame();
+    void changeFps(int);
+    int getFps();
+    void setLoop();
+    void setSound();
+   
+    //void scrubKF();
+    //void scrubKB();
+    void previousLayer();
+    void nextLayer();
+   
+    void addKey();
+    void addKey(int layerNumber, int &frameNumber);
+    void removeKey();
+   
+    void addFrame(int frameNumber);
+    void addFrame(int frameNumber1, int frameNumber2);
+    void removeFrame(int frameNumber);
+    int getLastIndexAtFrame(int frameNumber);
+    int getLastFrameAtFrame(int frameNumber);
+   
+    //void altPress();
+    //void altRelease();
+    void showPreferences();
+   
+    void newObject();
+    void setObject(Object *object);
+    void updateObject();
+   
+    void setCurrentLayer(int layerNumber);
+    void switchVisibilityOfLayer(int layerNumber);
+    void moveLayer(int i, int j);
+    void updateMaxFrame();
+   
+    void setWidth(qreal);
+    void applyWidth(qreal);
+    void setFeather(qreal);
+    void applyFeather(qreal);
+    void setOpacity(qreal);
+    void applyOpacity(qreal);
+    void setInvisibility(int);
+    void applyInvisibility(int);
+    void setPressure(int);
+    void applyPressure(int);
+    void setPreserveAlpha(int);
+    void applyPreserveAlpha(int);
+    void setFollowContour(int);
+    void applyFollowContour(int);
+    void selectColour(int);
+    void selectAndApplyColour(int);
+    void setColour(QColor);
+    void changeColour(int);
+    void changeColourName(int);
+    void changeColour(int,QColor);
+    void updateColour(int, QColor);
+    void addColour();
+    void removeColour(int);
+   
+    void changeAutosave(int);
+    void changeAutosaveNumber(int);
+   
+    void modification();
+    void modification(int);
+    void backup();
+    void backup(int layerNumber, int frameNumber);
+    void undo();
+    void redo();
+    void copy();
+    void paste();
+    void clipboardChanged();
+   
+    void newBitmapLayer();
+    void newVectorLayer();
+    void newSoundLayer();
+    void newCameraLayer();
+    void deleteCurrentLayer();
+   
+    void toggleMirror();
+    void toggleShowAllLayers();
+    void resetMirror();
+   
+    void openRecent();
+   
+    void dockAllPalettes();
+    void detachAllPalettes();
+    void restorePalettesSettings(bool, bool, bool);
+///*   
+    void getPrevKeyFlip();
+    void getNextKeyFlip();
+
+    int getPrevKey(int);
+    int getNextKey(int);
+//*/
+
+private slots:
+    void newDocument();
+    void openDocument();
+    bool saveDocument();
+    void saveForce();
+    bool exportX();
+    bool exportSeq();
+    bool exportMov();
+    bool exportFlash();
+   
+     void showPalette();
+    void about();
+    void helpBox();
+    void saveLength(QString);
+   
+private:
+    bool openObject(QString);
+    bool saveObject(QString);
+   
+    ScribbleArea *scribbleArea;
+    TimeLine *timeLine;
+    ToolSet *toolSet;
+    Palette *palette;
+    Preferences *preferences;
+    QMainWindow *mainWindow;
+   
+    QString savedName;
+    bool altpress;
+    bool modified;
+    int numberOfModifications;
+   
+    bool autosave;
+    int autosaveNumber;
+   
+    // backup
+    int backupIndex;
+    QList<BackupElement*> backupList;
+    void clearBackup();
+    int lastModifiedFrame, lastModifiedLayer;
+   
+    // clipboard
+    bool clipboardBitmapOk, clipboardVectorOk;
+    BitmapImage clipboardBitmapImage;
+    VectorImage clipboardVectorImage;
+   
+    // dialogs
+    void createExportFramesSizeBox();
+    void createExportMovieSizeBox();
+    void createExportFramesDialog();
+    void createExportMovieDialog();
+    void createExportFlashDialog();
+    void createNewDocumentDialog();
+    QDialog *newDocumentDialog;
+    QDialog *exportFramesDialog;
+    QDialog *exportMovieDialog;
+    QDialog *exportFlashDialog;
+    QSpinBox *exportFramesDialog_hBox;
+    QSpinBox *exportFramesDialog_vBox;
+    QSpinBox *exportMovieDialog_hBox;
+    QSpinBox *exportMovieDialog_vBox;
+    QComboBox *exportFramesDialog_format;
+    QComboBox *exportMovieDialog_format;
+    QSlider* exportFlashDialog_compression;
+   
+    // saving (XML)
+    QDomElement createDomElement(QDomDocument &doc);
+    bool loadDomElement(QDomElement element,  QString filePath);       
+};
+
+#endif
diff -rupN pencil_backup/src/interface/mainwindow.cpp pencil_dev/src/interface/mainwindow.cpp
--- pencil_backup/src/interface/mainwindow.cpp    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.cpp    2009-09-30 15:41:11.000000000 -0500
@@ -324,53 +324,6 @@ void MainWindow::closeEvent(QCloseEvent
     }
 }
 
-void MainWindow::keyPressEvent( QKeyEvent *e ) {
-    switch (e->key()) {
-    case Qt::Key_H:
-        editor->switchVisibilityOfLayer(editor->currentLayer);
-        break;
-    case Qt::Key_D:
-        editor->scrubForward();
-        break;
-    case Qt::Key_Right:
-        //editor->scrubForward();
-        break;
-    case Qt::Key_S:
-        editor->scrubBackward();
-        break;
-    case Qt::Key_Left:
-        //editor->scrubBackward();
-        break;
-    case Qt::Key_Up:
-        //editor->previousLayer();
-        break;
-    case Qt::Key_Down:
-        //editor->nextLayer();
-        break;
-    case Qt::Key_Space:
-        editor->play();
-        break;
-     case Qt::Key_Alt:
-        //editor->altPress();
-        break;
-    case Qt::Key_Return:
-        editor->addKey();
-        break;
-    default:
-    QWidget::keyPressEvent(e);
-    }
-}
-
-void MainWindow::keyReleaseEvent( QKeyEvent *e ) {
-    switch (e->key()) {
-    case Qt::Key_Alt:
-        //editor->altRelease();
-    break;
-        default:
-    QWidget::keyPressEvent(e);
-    }
-}
-
 void MainWindow::readSettings() {
     QSettings settings("Pencil", "Pencil");
     QRect desktopRect = QApplication::desktop()->screenGeometry();
diff -rupN pencil_backup/src/interface/mainwindow.cpp~ pencil_dev/src/interface/mainwindow.cpp~
--- pencil_backup/src/interface/mainwindow.cpp~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.cpp~    2009-09-29 21:16:45.000000000 -0500
@@ -0,0 +1,395 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "editor.h"
+#include "mainwindow.h"
+#include "object.h"
+#include <interfaces.h>
+
+MainWindow::MainWindow() {
+    editor = new Editor(this);
+    //Object* object = new Object();
+    //object->defaultInitialisation();
+    //editor->setObject( object );
+    editor->newObject();
+
+    arrangePalettes();
+   
+    //editor->getTimeLine()->close();
+   
+    createMenus();
+    loadPlugins();
+    readSettings();
+}
+
+void MainWindow::arrangePalettes() {
+    setCentralWidget(editor);
+    addDockWidget(Qt::RightDockWidgetArea, editor->getPalette());
+    //editor->getPalette()->close();
+    addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->drawPalette);
+    addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->optionPalette);
+    addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->displayPalette);
+    //addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->onionPalette);
+    //addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->keyPalette);
+
+    //addDockWidget(Qt::BottomDockWidgetArea, editor->getToolSet()->timePalette);
+    addDockWidget(Qt::BottomDockWidgetArea, editor->getTimeLine());
+
+    editor->getToolSet()->drawPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+    editor->getToolSet()->optionPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+    //editor->getToolSet()->keyPalette->setFeatures(QDockWidget::NoDockWidgetFeatures);
+    //editor->getToolSet()->onionPalette->setFeatures(QDockWidget::NoDockWidgetFeatures);
+    editor->getToolSet()->displayPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+    editor->getToolSet()->keyPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+    editor->getToolSet()->onionPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+    editor->getToolSet()->timePalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+    editor->getTimeLine()->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+}
+
+void MainWindow::createMenus() {
+    // ---------- Actions -------------
+    exitAct = new QAction(tr("E&xit"), this);
+    exitAct->setShortcut(tr("Ctrl+Q"));
+    connect(exitAct, SIGNAL(triggered()), editor, SLOT(close()));
+
+    newAct = new QAction(tr("&New"), this);
+    newAct->setShortcut(tr("Ctrl+N"));
+    connect(newAct, SIGNAL(triggered()), editor, SLOT(newDocument()));
+
+    openAct = new QAction(tr("&Open..."), this);
+    openAct->setShortcut(tr("Ctrl+O"));
+    connect(openAct, SIGNAL(triggered()), editor, SLOT(openDocument()));
+
+    saveAct = new QAction(tr("Save &As..."), this);
+    saveAct->setShortcut(tr("Ctrl+Shift+S"));
+    connect(saveAct, SIGNAL(triggered()), editor, SLOT(saveDocument()));
+
+    savAct = new QAction(tr("&Save"), this);
+    savAct->setShortcut(tr("Ctrl+S"));
+    connect(savAct, SIGNAL(triggered()), editor, SLOT(saveForce()));
+
+    exportXAct = new QAction(tr("&X-Sheet..."), this);
+    exportXAct->setShortcut(tr("Ctrl+Alt+X"));
+    connect(exportXAct, SIGNAL(triggered()), editor, SLOT(exportX()));
+
+    exportAct = new QAction(tr("&Image Sequence..."), this);
+    exportAct->setShortcut(tr("Ctrl+Alt+S"));
+    connect(exportAct, SIGNAL(triggered()), editor, SLOT(exportSeq()));
+
+    exportMovAct = new QAction(tr("&Movie..."), this);
+    exportMovAct->setShortcut(tr("Ctrl+Alt+M"));
+    connect(exportMovAct, SIGNAL(triggered()), editor, SLOT(exportMov()));
+
+    exportFlashAct = new QAction(tr("&Flash/SWF..."), this);
+    exportFlashAct->setShortcut(tr("Ctrl+Alt+F"));
+    connect(exportFlashAct, SIGNAL(triggered()), editor, SLOT(exportFlash()));
+
+    exportFlashAct = new QAction(tr("&Flash/SWF..."), this);
+    exportFlashAct->setShortcut(tr("Ctrl+Alt+F"));
+    connect(exportFlashAct, SIGNAL(triggered()), editor, SLOT(exportFlash()));
+   
+    exportPaletteAct = new QAction(tr("Palette..."), this);
+    connect(exportPaletteAct, SIGNAL(triggered()), editor, SLOT(exportPalette()));
+   
+    importPaletteAct = new QAction(tr("Palette..."), this);
+    connect(importPaletteAct, SIGNAL(triggered()), editor, SLOT(importPalette()));
+   
+    importAct = new QAction(tr("&Import image..."), this);
+    importAct->setShortcut(tr("Ctrl+I"));
+    connect(importAct, SIGNAL(triggered()), editor, SLOT(importImage()));
+
+    importSndAct = new QAction(tr("&Import sound..."), this);
+//    importAct->setShortcut(tr("Ctrl+I"));
+    connect(importSndAct, SIGNAL(triggered()), editor, SLOT(importSound()));
+
+    aboutAct = new QAction(tr("&About"), this);
+    connect(aboutAct, SIGNAL(triggered()), editor, SLOT(about()));
+
+    helpMe = new QAction(tr("&Help"), this);
+    helpMe->setShortcut(tr("Ctrl+?"));
+    connect(helpMe, SIGNAL(triggered()), editor, SLOT(helpBox()));
+
+    aboutQtAct = new QAction(tr("About &Qt"), this);
+    connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
+
+    undoAct = new QAction(tr("Undo"), this);
+    undoAct->setShortcut(tr("Ctrl+Z"));
+    connect(undoAct, SIGNAL(triggered()), editor, SLOT(undo()));
+
+    redoAct = new QAction(tr("Redo"), this);
+    redoAct->setShortcut(tr("Ctrl+Shift+Z"));
+    connect(redoAct, SIGNAL(triggered()), editor, SLOT(redo()));
+
+    copyAct = new QAction(tr("Copy"), this);
+    copyAct->setShortcut(tr("Ctrl+C"));
+    connect(copyAct, SIGNAL(triggered()), editor, SLOT(copy()));
+
+    pasteAct = new QAction(tr("Paste"), this);
+    pasteAct->setShortcut(tr("Ctrl+V"));
+    connect(pasteAct, SIGNAL(triggered()), editor, SLOT(paste()));
+
+    selectAllAct = new QAction(tr("Select All"), this);
+    selectAllAct->setShortcut(tr("Ctrl+A"));
+    connect(selectAllAct, SIGNAL(triggered()), editor, SIGNAL(selectAll()));
+
+    preferencesAct = new QAction(tr("Preferences"), this);
+    connect(preferencesAct, SIGNAL(triggered()), editor, SLOT(showPreferences()));
+
+
+    newBitmapLayerAct = new QAction(tr("New Bitmap Layer"), this);
+    connect(newBitmapLayerAct, SIGNAL(triggered()), editor, SLOT(newBitmapLayer()));
+
+    newVectorLayerAct = new QAction(tr("New Vector Layer"), this);
+    connect(newVectorLayerAct, SIGNAL(triggered()), editor, SLOT(newVectorLayer()));
+
+    newSoundLayerAct = new QAction(tr("New Sound Layer"), this);
+    connect(newSoundLayerAct, SIGNAL(triggered()), editor, SLOT(newSoundLayer()));
+
+    newCameraLayerAct = new QAction(tr("New Camera Layer"), this);
+    connect(newCameraLayerAct, SIGNAL(triggered()), editor, SLOT(newCameraLayer()));
+
+    deleteLayerAct = new QAction(tr("Delete Current Layer"), this);
+    connect(deleteLayerAct, SIGNAL(triggered()), editor, SLOT(deleteCurrentLayer()));
+
+
+    dockAllPalettesAct = new QAction(tr("Dock All Palettes"), this);
+    connect(dockAllPalettesAct, SIGNAL(triggered()), editor, SLOT(dockAllPalettes()));
+
+    detachAllPalettesAct = new QAction(tr("Detach All Palettes"), this);
+    connect(detachAllPalettesAct, SIGNAL(triggered()), editor, SLOT(detachAllPalettes()));
+   
+    // --------------- Menus ------------------
+   
+    importMenu = new QMenu(tr("Import"), this);
+    importMenu->addAction(importPaletteAct);
+
+    exportMenu = new QMenu(tr("Export"), this);
+    exportMenu->addAction(exportXAct);
+    exportMenu->addAction(exportAct);
+    exportMenu->addAction(exportMovAct);
+    exportMenu->addAction(exportFlashAct);
+    exportMenu->addSeparator();
+    exportMenu->addAction(exportPaletteAct);
+
+    openRecentMenu = new QMenu(tr("Open recent..."), this);
+
+    fileMenu = new QMenu(tr("&File"), this);
+    fileMenu->addAction(newAct);
+    fileMenu->addAction(openAct);
+    fileMenu->addMenu(openRecentMenu);
+    fileMenu->addAction(savAct);
+    fileMenu->addAction(saveAct);
+    fileMenu->addSeparator();
+    fileMenu->addMenu(importMenu);
+    fileMenu->addMenu(exportMenu);
+
+    editMenu = new QMenu(tr("&Edit"), this);
+    editMenu->addAction(undoAct);
+    editMenu->addAction(redoAct);
+    editMenu->addSeparator();
+    editMenu->addAction(copyAct);
+    editMenu->addAction(pasteAct);
+    editMenu->addSeparator();
+    editMenu->addAction(selectAllAct);
+    editMenu->addSeparator();
+    editMenu->addAction(importAct);
+    editMenu->addAction(importSndAct);
+    editMenu->addSeparator();
+    editMenu->addAction(preferencesAct);
+
+    layerMenu = new QMenu(tr("&Layer"), this);
+    layerMenu->addAction(newBitmapLayerAct);
+    layerMenu->addAction(newVectorLayerAct);
+    layerMenu->addAction(newSoundLayerAct);
+    layerMenu->addAction(newCameraLayerAct);
+    layerMenu->addSeparator();
+    layerMenu->addAction(deleteLayerAct);
+
+    helpMenu = new QMenu(tr("&Help"), this);
+    helpMenu->addAction(helpMe);
+    helpMenu->addAction(aboutAct);
+    helpMenu->addAction(aboutQtAct);
+
+    windowsMenu = new QMenu(tr("Windows"), this);
+    windowsMenu->addAction(dockAllPalettesAct);
+    windowsMenu->addAction(detachAllPalettesAct);
+
+    menuBar()->addMenu(fileMenu);
+    menuBar()->addMenu(editMenu);
+    menuBar()->addMenu(layerMenu);
+    menuBar()->addMenu(helpMenu);
+    menuBar()->addMenu(windowsMenu);
+}
+
+void MainWindow::loadPlugins() {
+    qDebug() << "MainWindow loadplugins" << this << this->thread();
+    // foreach (QObject *plugin, QPluginLoader::staticInstances()) populateMenus(plugin); // static plugins
+    QDir pluginsDir = QDir(qApp->applicationDirPath());
+ #if defined(Q_OS_WIN)
+     if (pluginsDir.dirName().toLower() == "debug" || pluginsDir.dirName().toLower() == "release")
+         pluginsDir.cdUp();
+ #elif defined(Q_OS_MAC)
+     if (pluginsDir.dirName() == "MacOS") {
+         pluginsDir.cdUp();
+     }
+ #endif
+    pluginsDir.cd("plugins");
+
+    qDebug() << "Plugin dir = " << pluginsDir.dirName();
+    /*foreach (QString fileName, pluginsDir.entryList(QDir::Files)) {
+        QPluginLoader loader(pluginsDir.absoluteFilePath(fileName));
+        QObject *plugin = loader.instance();
+        qDebug() << "loader " << loader.thread();
+        qDebug() << "plugin " << fileName << plugin << plugin->thread();
+        if (plugin) {
+            plugin->moveToThread(this->thread());
+            populateMenus(plugin);
+            //pluginFileNames += fileName;
+        }
+    }*/
+
+    //brushMenu->setEnabled(!brushActionGroup->actions().isEmpty());
+    //shapesMenu->setEnabled(!shapesMenu->actions().isEmpty());
+    //filterMenu->setEnabled(!filterMenu->actions().isEmpty());
+}
+
+void MainWindow::populateMenus(QObject *plugin) {
+    qDebug() << "MainWindow populateMenus" << this << this->thread();
+    qDebug() << "MainWindow populateMenus" << plugin << plugin->thread();
+    /*BrushInterface *iBrush = qobject_cast<BrushInterface *>(plugin);
+    if (iBrush) addToMenu(plugin, iBrush->brushes(), brushMenu, SLOT(changeBrush()), brushActionGroup);
+
+    ShapeInterface *iShape = qobject_cast<ShapeInterface *>(plugin);
+    if (iShape) addToMenu(plugin, iShape->shapes(), shapesMenu, SLOT(insertShape()));
+
+    FilterInterface *iFilter = qobject_cast<FilterInterface *>(plugin);
+    if (iFilter) addToMenu(plugin, iFilter->filters(), filterMenu, SLOT(applyFilter()));*/
+   
+    ExportInterface *exportPlugin = qobject_cast<ExportInterface *>(plugin);
+    if (exportPlugin) addToMenu(plugin, exportPlugin->name(), exportMenu, SLOT(exportFile()));
+}
+
+void MainWindow::addToMenu(QObject *plugin, const QString text, QMenu *menu, const char *member, QActionGroup *actionGroup) {
+    qDebug() << "MainWindow populateMenus" << this << this->thread();
+    qDebug() << "MainWindow populateMenus" << plugin << plugin->thread();
+    qDebug() << "addToMenu 1";
+    QAction *action = new QAction(text, plugin);
+    qDebug() << "addToMenu 2";
+    connect(action, SIGNAL(triggered()), this, member);
+    menu->addAction(action);
+    if (actionGroup) {
+        action->setCheckable(true);
+        actionGroup->addAction(action);
+    }
+}
+
+void MainWindow::exportFile() {
+    QAction *action = qobject_cast<QAction *>(sender());
+    ExportInterface *exportPlugin = qobject_cast<ExportInterface *>(action->parent());
+    if(exportPlugin) {
+        //exportPlugin->exportFile();
+    } else {
+        qDebug() << "exportPlugin is null";
+    }
+    //const QImage image = iFilter->filterImage(action->text(), paintArea->image(), this);
+    //paintArea->setImage(image);
+}
+
+void MainWindow::setOpacity(int opacity) {
+    QSettings settings("Pencil","Pencil");
+    settings.setValue("windowOpacity", 100-opacity);
+    setWindowOpacity(opacity/100.0);
+}
+
+void Main
+
+void MainWindow::closeEvent(QCloseEvent *event)
+{
+    if (editor->maybeSave()) {
+        writeSettings();
+        event->accept();
+    } else {
+        event->ignore();
+    }
+}
+
+void MainWindow::readSettings() {
+    QSettings settings("Pencil", "Pencil");
+    QRect desktopRect = QApplication::desktop()->screenGeometry();
+    desktopRect.adjust(80,80,-80,-80);
+    //QPoint pos = settings.value("editorPosition", QPoint( qMax(0, (desktopRect.width()-800)/2), qMax(0, (desktopRect.height()-600)/2) )).toPoint();
+    QPoint pos = settings.value("editorPosition", desktopRect.topLeft() ).toPoint();
+    //QSize size = settings.value("editorSize", QSize(800, 600)).toSize();
+    QSize size = settings.value("editorSize", desktopRect.size() ).toSize();
+    move(pos);
+    resize(size);
+   
+    editor->restorePalettesSettings(true, true, true);
+   
+    QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+    addRecentFile(myPath);
+
+    setOpacity(100-settings.value("windowOpacity").toInt());   
+    //initialiseStyle();
+}
+
+void MainWindow::writeSettings() {
+    QSettings settings("Pencil", "Pencil");
+    settings.setValue("editorPosition", pos());
+    settings.setValue("editorSize", size());
+   
+    Palette* colourPalette = editor->getPalette();
+    if(colourPalette != NULL) {
+        settings.setValue("colourPalettePosition", colourPalette->pos());
+        settings.setValue("colourPaletteSize", colourPalette->size());
+        settings.setValue("colourPaletteFloating", colourPalette->isFloating());
+    }
+   
+    TimeLine* timelinePalette = editor->getTimeLine();
+    if(timelinePalette != NULL) {
+        settings.setValue("timelinePalettePosition", timelinePalette->pos());
+        settings.setValue("timelinePaletteSize", timelinePalette->size());
+        settings.setValue("timelinePaletteFloating", timelinePalette->isFloating());
+    }
+   
+    QDockWidget* drawPalette = editor->getToolSet()->drawPalette;
+    if(drawPalette != NULL) {
+        settings.setValue("drawPalettePosition", drawPalette->pos());
+        settings.setValue("drawPaletteSize", drawPalette->size());
+        settings.setValue("drawPaletteFloating", drawPalette->isFloating());
+    }
+
+    QDockWidget* optionPalette = editor->getToolSet()->optionPalette;
+    if(optionPalette != NULL) {
+        settings.setValue("optionPalettePosition", optionPalette->pos());
+        settings.setValue("optionPaletteSize", optionPalette->size());
+        settings.setValue("optionPaletteFloating", optionPalette->isFloating());
+    }
+
+    QDockWidget* displayPalette = editor->getToolSet()->displayPalette;
+    if(optionPalette != NULL) {
+        settings.setValue("displayPalettePosition", displayPalette->pos());
+        settings.setValue("displayPaletteSize", displayPalette->size());
+        settings.setValue("displayPaletteFloating", displayPalette->isFloating());
+    }
+           
+}
+
+void MainWindow::addRecentFile(QString filePath) {
+    QAction* openThisFileAct = new QAction(filePath, this);
+    connect(openThisFileAct, SIGNAL(triggered()), editor, SLOT(openRecent()));
+    openRecentMenu->addAction(openThisFileAct);
+}
diff -rupN pencil_backup/src/interface/mainwindow.h pencil_dev/src/interface/mainwindow.h
--- pencil_backup/src/interface/mainwindow.h    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.h    2009-09-29 20:59:42.000000000 -0500
@@ -39,8 +39,6 @@ private:
     void addToMenu(QObject *plugin, const QString text, QMenu *menu, const char *member, QActionGroup *actionGroup = 0);
    
      void closeEvent(QCloseEvent *);
-    void keyPressEvent( QKeyEvent *e);
-    void keyReleaseEvent( QKeyEvent *e);
     void readSettings();
     void writeSettings();
    
diff -rupN pencil_backup/src/interface/mainwindow.h~ pencil_dev/src/interface/mainwindow.h~
--- pencil_backup/src/interface/mainwindow.h~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.h~    2009-09-29 20:57:57.000000000 -0500
@@ -0,0 +1,89 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include <QObject>
+#include "editor.h"
+class MainWindow : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+    MainWindow();
+        //void initialiseStyle();
+    void addRecentFile(QString filePath);
+
+public slots:
+        void setOpacity(int opacity);
+
+private slots:
+        void exportFile();
+               
+private:
+    void arrangePalettes();
+    void createMenus();
+    void loadPlugins();
+    void populateMenus(QObject *plugin);
+    void addToMenu(QObject *plugin, const QString text, QMenu *menu, const char *member, QActionGroup *actionGroup = 0);
+   
+     void closeEvent(QCloseEvent *);
+    void readSettings();
+    void writeSettings();
+   
+    Editor *editor;
+   
+    QMenu *fileMenu;
+    QMenu *openRecentMenu;
+    QMenu *importMenu;
+    QMenu *exportMenu;
+    QMenu *editMenu;
+    QMenu *layerMenu;
+    QMenu *helpMenu;
+        QMenu *windowsMenu;
+       
+    QAction *newAct;
+    QAction *openAct;
+    QAction *saveAct;
+    QAction *exitAct;
+    QAction *helpMe;
+    QAction *aboutAct;
+    QAction *aboutQtAct;
+    QAction *exportXAct;
+    QAction *exportAct;
+    QAction *exportMovAct;
+    QAction *exportFlashAct;
+    QAction *exportPaletteAct;
+    QAction *importPaletteAct;
+    QAction *savAct;
+    QAction *importAct;
+    QAction *undoAct;
+    QAction *redoAct;
+    QAction *copyAct;
+    QAction *pasteAct;
+    QAction *selectAllAct;
+    QAction *importSndAct;
+    QAction *preferencesAct;
+   
+    QAction *newBitmapLayerAct;
+    QAction *newVectorLayerAct;
+    QAction *newSoundLayerAct;
+    QAction *newCameraLayerAct;
+    QAction *deleteLayerAct;
+   
+    QAction *dockAllPalettesAct;
+    QAction *detachAllPalettesAct;
+};
+
+
diff -rupN pencil_backup/src/interface/preferences.cpp pencil_dev/src/interface/preferences.cpp
--- pencil_backup/src/interface/preferences.cpp    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/preferences.cpp    2009-10-01 20:24:03.000000000 -0500
@@ -15,7 +15,7 @@ GNU General Public License for more deta
 */
 #include <QtGui>
 #include "preferences.h"
-#include "scribblearea.h";
+#include "scribblearea.h"
 
 Preferences::Preferences()
  {
@@ -310,10 +310,14 @@ GeneralPage::GeneralPage(QWidget *parent
 
 TimelinePage::TimelinePage(QWidget *parent) : QWidget(parent) {
     QSettings settings("Pencil","Pencil");
-   
-    QVBoxLayout *lay = new QVBoxLayout();
+    QVBoxLayout *generalLay = new QVBoxLayout();
+    QGridLayout *onionLay = new QGridLayout();
    
     QGroupBox* timeLineBox = new QGroupBox(tr("Time Line"));
+    QGroupBox* onionSkinBox = new QGroupBox(tr("Onion Skin"));   
+   
+    // General timeline buttons
+
     QCheckBox *drawLabel = new QCheckBox(tr("Draw timeline labels"));
     QLabel *fontSizeLabel = new QLabel(tr("Labels font size"));
     QSpinBox *fontSize = new QSpinBox();
@@ -354,17 +358,75 @@ TimelinePage::TimelinePage(QWidget *pare
     //lay->addWidget(drawLabel);
     //lay->addWidget(fontSizeLabel);
     //lay->addWidget(fontSize);
-    lay->addWidget(frameSizeLabel);
-    lay->addWidget(frameSize);
-    lay->addWidget(lengthSizeLabel);
-    lay->addWidget(lengthSize);
-    lay->addWidget(scrubBox);
-    timeLineBox->setLayout(lay);
-   
-    QVBoxLayout *lay2 = new QVBoxLayout();
-    lay2->addWidget(timeLineBox);
-    lay2->addStretch(1);
-    setLayout(lay2);
+    generalLay->addWidget(frameSizeLabel);
+    generalLay->addWidget(frameSize);
+    generalLay->addWidget(lengthSizeLabel);
+    generalLay->addWidget(lengthSize);
+    generalLay->addWidget(scrubBox);
+    timeLineBox->setLayout(generalLay);
+
+    // Onion skin buttons
+
+    QLabel *onionOpacityLabel = new QLabel(tr("Opacity"));
+    QLabel *onionFrameLabel = new QLabel(tr("Straight ahead"));
+    QLabel *onionInbetweenLabel = new QLabel(tr("Inbetween"));   
+    QLabel *onionCurrentFrameLabel = new QLabel(tr("*current frame*"));
+
+    QSlider *onionOpacity = new QSlider(Qt::Horizontal);
+    onionOpacity->setToolTip(tr("Opacity of onion skin frames"));   
+    QSpinBox *onionFrameNumber = new QSpinBox();
+    onionFrameNumber->setToolTip(tr("Number of frames to show in straight ahead mode"));           
+    QCheckBox *previousprevious = new QCheckBox();   
+    previousprevious->setToolTip(tr("Frame before previous"));       
+    QCheckBox *previous = new QCheckBox();           
+    previous->setToolTip(tr("Previous frame"));           
+    QCheckBox *next = new QCheckBox();   
+    next->setToolTip(tr("Next frame"));
+    QCheckBox *nextnext = new QCheckBox();   
+    nextnext->setToolTip(tr("Frame after next"));   
+       
+    onionOpacity->setMinimum(0);
+    onionOpacity->setMaximum(100);               
+    onionOpacity->setSliderPosition(30);
+    onionFrameNumber->setMinimum(1);
+    onionFrameNumber->setMaximum(20);   
+    onionFrameNumber->setValue(5);
+    previousprevious->setChecked(false);
+    previous->setChecked(true);
+    next->setChecked(true);
+    nextnext->setChecked(false);
+   
+    connect(onionOpacity, SIGNAL(valueChanged(int)), parent, SIGNAL(onionOpacityChange(int)));
+    connect(onionFrameNumber, SIGNAL(valueChanged(int)), parent, SIGNAL(onionStraightAheadChange(int)));
+    connect(previousprevious, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousPreviousChange(int)));
+    connect(previous, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousChange(int)));
+    connect(next, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextChange(int)));
+    connect(nextnext, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextNextChange(int)));
+
+    QGroupBox *onionInbetweenBox = new QGroupBox();
+    QGridLayout *onionInbetweenBoxLayout = new QGridLayout();
+    onionInbetweenBox->setLayout(onionInbetweenBoxLayout);
+    onionInbetweenBoxLayout->addWidget(previousprevious, 0, 0);
+    onionInbetweenBoxLayout->addWidget(previous, 0, 1);
+    onionInbetweenBoxLayout->addWidget(onionCurrentFrameLabel, 0, 2);
+    onionInbetweenBoxLayout->addWidget(next, 0, 3);
+    onionInbetweenBoxLayout->addWidget(nextnext, 0, 4);
+
+    onionSkinBox->setLayout(onionLay);
+    onionLay->addWidget(onionOpacityLabel, 0, 0);
+    onionLay->addWidget(onionOpacity, 0, 1);
+    onionLay->addWidget(onionFrameLabel, 1, 0);
+    onionLay->addWidget(onionInbetweenLabel, 1, 1);
+    onionLay->addWidget(onionFrameNumber, 2, 0);
+    onionLay->addWidget(onionInbetweenBox, 2, 1);
+
+    // Generic timeline settings
+   
+    QVBoxLayout *fullLay = new QVBoxLayout();
+    fullLay->addWidget(timeLineBox);
+    fullLay->addWidget(onionSkinBox);
+    fullLay->addStretch(1);
+    setLayout(fullLay);
 }
 
 FilesPage::FilesPage(QWidget *parent) : QWidget(parent) {
diff -rupN pencil_backup/src/interface/preferences.cpp~ pencil_dev/src/interface/preferences.cpp~
--- pencil_backup/src/interface/preferences.cpp~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/preferences.cpp~    2009-10-01 20:17:25.000000000 -0500
@@ -0,0 +1,465 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "preferences.h"
+#include "scribblearea.h"
+
+Preferences::Preferences()
+ {
+     contentsWidget = new QListWidget;
+     contentsWidget->setViewMode(QListView::IconMode);
+     contentsWidget->setIconSize(QSize(96, 84));
+     contentsWidget->setMovement(QListView::Static);
+     contentsWidget->setMaximumWidth(128);
+     contentsWidget->setSpacing(12);
+
+     pagesWidget = new QStackedWidget;
+     pagesWidget->addWidget(new GeneralPage(this));
+     pagesWidget->addWidget(new FilesPage(this));
+     pagesWidget->addWidget(new TimelinePage(this));
+     //pagesWidget->addWidget(new QueryPage);
+
+     QPushButton *closeButton = new QPushButton(tr("Close"));
+
+     createIcons();
+     contentsWidget->setCurrentRow(0);
+
+     connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
+
+     QHBoxLayout *horizontalLayout = new QHBoxLayout;
+     horizontalLayout->addWidget(contentsWidget);
+     horizontalLayout->addWidget(pagesWidget, 1);
+
+     QHBoxLayout *buttonsLayout = new QHBoxLayout;
+     buttonsLayout->addStretch(1);
+     buttonsLayout->addWidget(closeButton);
+
+     QVBoxLayout *mainLayout = new QVBoxLayout;
+     mainLayout->addLayout(horizontalLayout);
+     mainLayout->addStretch(1);
+     mainLayout->addSpacing(12);
+     mainLayout->addLayout(buttonsLayout);
+     setLayout(mainLayout);
+
+     setWindowTitle(tr("Preferences"));
+ }
+
+ void Preferences::createIcons()
+ {
+     QListWidgetItem *generalButton = new QListWidgetItem(contentsWidget);
+     generalButton->setIcon(QIcon(":icons/prefspencil.png"));
+     generalButton->setText(tr("General"));
+     generalButton->setTextAlignment(Qt::AlignHCenter);
+     generalButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+         
+         QListWidgetItem *filesButton = new QListWidgetItem(contentsWidget);
+     filesButton->setIcon(QIcon(":icons/prefs-files.png"));
+     filesButton->setText(tr("Files"));
+     filesButton->setTextAlignment(Qt::AlignHCenter);
+     filesButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+         
+         QListWidgetItem *timelineButton = new QListWidgetItem(contentsWidget);
+     timelineButton->setIcon(QIcon(":icons/prefstimeline.png"));
+     timelineButton->setText(tr("Time Line"));
+     timelineButton->setTextAlignment(Qt::AlignHCenter);
+     timelineButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
+     /*QListWidgetItem *queryButton = new QListWidgetItem(contentsWidget);
+     queryButton->setIcon(QIcon(":/images/query.png"));
+     queryButton->setText(tr("Query"));
+     queryButton->setTextAlignment(Qt::AlignHCenter);
+     queryButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);*/
+
+     connect(contentsWidget,
+             SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)),
+             this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*)));
+ }
+
+ void Preferences::changePage(QListWidgetItem *current, QListWidgetItem *previous)
+ {
+     if (!current)
+         current = previous;
+
+     pagesWidget->setCurrentIndex(contentsWidget->row(current));
+ }
+
+
+
+GeneralPage::GeneralPage(QWidget *parent) : QWidget(parent) {
+    QSettings settings("Pencil","Pencil");
+    QVBoxLayout *lay = new QVBoxLayout();
+   
+    QGroupBox* windowOpacityBox = new QGroupBox(tr("Window opacity"));
+    QGroupBox* backgroundBox = new QGroupBox(tr("Background"));
+    QGroupBox* appearanceBox = new QGroupBox(tr("Appearance"));
+    QGroupBox* displayBox = new QGroupBox(tr("Rendering"));
+    QGroupBox* editingBox = new QGroupBox(tr("Editing"));
+   
+    QLabel *windowOpacityLabel = new QLabel(tr("Opacity"));
+    QSlider *windowOpacityLevel = new QSlider(Qt::Horizontal);
+    windowOpacityLevel->setMinimum(30);
+    windowOpacityLevel->setMaximum(100);
+    int value = settings.value("windowOpacity").toInt();
+    windowOpacityLevel->setValue( 100 - value );
+   
+    QButtonGroup* backgroundButtons = new QButtonGroup();
+    QRadioButton* checkerBackgroundButton = new QRadioButton();
+    QRadioButton* whiteBackgroundButton = new QRadioButton();
+    QRadioButton* greyBackgroundButton = new QRadioButton();
+    QRadioButton* dotsBackgroundButton = new QRadioButton();
+    QRadioButton* weaveBackgroundButton = new QRadioButton();
+    QPixmap previewCheckerboard(32,32);
+    QPixmap previewWhite(32,32);
+    QPixmap previewGrey(32,32);
+    QPixmap previewDots(32,32);
+    QPixmap previewWeave(32,32);
+    QPainter painter(&previewCheckerboard);
+    painter.fillRect( QRect(0,0,32,32), ScribbleArea::getBackgroundBrush("checkerboard") );
+    painter.end();
+    painter.begin(&previewDots);
+    painter.fillRect( QRect(0,0,32,32), ScribbleArea::getBackgroundBrush("dots") );
+    painter.end();
+    painter.begin(&previewWeave);
+    painter.fillRect( QRect(0,0,32,32), ScribbleArea::getBackgroundBrush("weave") );
+    painter.end();
+    previewWhite.fill( Qt::white );
+    previewGrey.fill( Qt:: lightGray );
+    checkerBackgroundButton->setIcon( previewCheckerboard );
+    whiteBackgroundButton->setIcon( previewWhite );
+    greyBackgroundButton->setIcon( previewGrey );
+    dotsBackgroundButton->setIcon( previewDots );
+    dotsBackgroundButton->setIcon( previewWeave );
+    backgroundButtons->addButton(checkerBackgroundButton);
+    backgroundButtons->addButton(whiteBackgroundButton);
+    backgroundButtons->addButton(greyBackgroundButton);
+    backgroundButtons->addButton(dotsBackgroundButton);
+    backgroundButtons->addButton(weaveBackgroundButton);
+    backgroundButtons->setId(checkerBackgroundButton, 1);
+    backgroundButtons->setId(whiteBackgroundButton, 2);
+    backgroundButtons->setId(greyBackgroundButton, 3);
+    backgroundButtons->setId(dotsBackgroundButton, 4);
+    backgroundButtons->setId(weaveBackgroundButton, 5);
+    QHBoxLayout *backgroundLayout = new QHBoxLayout();
+    backgroundBox->setLayout(backgroundLayout);
+    backgroundLayout->addWidget(checkerBackgroundButton);
+    backgroundLayout->addWidget(whiteBackgroundButton);
+    backgroundLayout->addWidget(greyBackgroundButton);
+    backgroundLayout->addWidget(dotsBackgroundButton);
+    backgroundLayout->addWidget(weaveBackgroundButton);
+    if( settings.value("background").toString() == "checkerboard" ) checkerBackgroundButton->setChecked(true);
+    if( settings.value("background").toString() == "white" ) whiteBackgroundButton->setChecked(true);
+    if( settings.value("background").toString() == "grey" ) greyBackgroundButton->setChecked(true);
+    if( settings.value("background").toString() == "dots" ) dotsBackgroundButton->setChecked(true);
+    if( settings.value("background").toString() == "weave" ) weaveBackgroundButton->setChecked(true);
+   
+    QCheckBox *shadowsBox = new QCheckBox(tr("Shadows"));
+    shadowsBox->setChecked(false); // default
+    if (settings.value("shadows").toString()=="true") shadowsBox->setChecked(true);
+   
+    QCheckBox *toolCursorsBox = new QCheckBox(tr("Tool Cursors"));
+    toolCursorsBox->setChecked(true); // default
+    if (settings.value("toolCursors").toString()=="false") toolCursorsBox->setChecked(false);
+
+    QCheckBox *aquaBox = new QCheckBox(tr("Aqua Style"));
+    aquaBox->setChecked(false); // default
+    if (settings.value("style").toString()=="aqua") aquaBox->setChecked(true);
+   
+    QCheckBox *antialiasingBox = new QCheckBox(tr("Antialiasing"));
+    antialiasingBox->setChecked(true); // default
+    if (settings.value("antialiasing").toString()=="false") antialiasingBox->setChecked(false);
+   
+    QButtonGroup *gradientsButtons = new QButtonGroup();
+    QRadioButton* gradient1Button = new QRadioButton(tr("None"));
+    QRadioButton* gradient2Button = new QRadioButton(tr("Quick"));
+    QRadioButton* gradient3Button = new QRadioButton(tr("Gradient1"));
+    QRadioButton* gradient4Button = new QRadioButton(tr("Gradient2"));
+    gradientsButtons->addButton(gradient1Button);
+    gradientsButtons->addButton(gradient2Button);
+    gradientsButtons->addButton(gradient3Button);
+    gradientsButtons->addButton(gradient4Button);
+    gradientsButtons->setId(gradient1Button, 1);
+    gradientsButtons->setId(gradient2Button, 2);
+    gradientsButtons->setId(gradient3Button, 3);
+    gradientsButtons->setId(gradient4Button, 4);
+    QGroupBox* gradientsBox = new QGroupBox(tr("Gradients"));
+    QHBoxLayout *gradientsLayout = new QHBoxLayout();
+    gradientsBox->setLayout(gradientsLayout);
+    gradientsLayout->addWidget(gradient1Button);
+    gradientsLayout->addWidget(gradient2Button);
+    gradientsLayout->addWidget(gradient3Button);
+    gradientsLayout->addWidget(gradient4Button);
+    if( settings.value("gradients").toString() == "1" ) gradient1Button->setChecked(true);
+    if( settings.value("gradients").toString() == "2" ) gradient2Button->setChecked(true);
+    if( settings.value("gradients").toString() == "" )  gradient2Button->setChecked(true); // default
+    if( settings.value("gradients").toString() == "3" ) gradient3Button->setChecked(true);
+    if( settings.value("gradients").toString() == "4" ) gradient4Button->setChecked(true);
+   
+   
+    /*QCheckBox *gradientsBox = new QCheckBox(tr("Gradients"));
+    gradientsBox->setChecked(true); // default
+    if (settings.value("gradients").toString()=="0") gradientsBox->setChecked(false);*/
+   
+    QLabel *curveOpacityLabel = new QLabel(tr("Vector curve opacity"));
+    QSlider *curveOpacityLevel = new QSlider(Qt::Horizontal);
+    curveOpacityLevel->setMinimum(0);
+    curveOpacityLevel->setMaximum(100);
+    curveOpacityLevel->setValue( 100 - settings.value("curveOpacity").toInt() );
+   
+    QGridLayout *windowOpacityLayout = new QGridLayout();
+    windowOpacityBox->setLayout(windowOpacityLayout);
+    windowOpacityLayout->addWidget(windowOpacityLabel, 0, 0);
+    windowOpacityLayout->addWidget(windowOpacityLevel, 0, 1);
+   
+    QVBoxLayout *appearanceLayout = new QVBoxLayout();
+    appearanceBox->setLayout(appearanceLayout);
+    appearanceLayout->addWidget(shadowsBox);
+    appearanceLayout->addWidget(toolCursorsBox);
+#ifdef Q_WS_MAC   
+    appearanceLayout->addWidget(aquaBox);
+#endif
+
+    QGridLayout *displayLayout = new QGridLayout();
+    displayBox->setLayout(displayLayout);
+    displayLayout->addWidget(antialiasingBox, 0, 0);
+    displayLayout->addWidget(gradientsBox, 1, 0);
+    displayLayout->addWidget(curveOpacityLabel, 2, 0);
+    displayLayout->addWidget(curveOpacityLevel, 3, 0);
+   
+    QLabel *curveSmoothingLabel = new QLabel(tr("Vector curve smoothing"));
+    QSlider *curveSmoothingLevel = new QSlider(Qt::Horizontal);
+    curveSmoothingLevel->setMinimum(1);
+    curveSmoothingLevel->setMaximum(100);
+    value = settings.value("curveSmoothing").toInt();
+    curveSmoothingLevel->setValue( value );
+   
+    QCheckBox *highResBox = new QCheckBox(tr("Tablet high-resolution position"));
+    if (settings.value("highResPosition")=="true") highResBox->setChecked(true);
+    else highResBox->setChecked(false);
+   
+    QGridLayout *editingLayout = new QGridLayout();
+    editingBox->setLayout(editingLayout);
+    editingLayout->addWidget(curveSmoothingLabel, 0, 0);
+    editingLayout->addWidget(curveSmoothingLevel, 1, 0);
+    editingLayout->addWidget(highResBox, 2, 0);
+   
+    //QLabel *fontSizeLabel = new QLabel(tr("Labels font size"));
+    //QDoubleSpinBox *fontSize = new QDoubleSpinBox();
+
+    /*fontSize->setMinimum(4);
+    fontSize->setMaximum(20);
+    frameSize->setMinimum(4);
+    frameSize->setMaximum(20);
+   
+    fontSize->setFixedWidth(50);
+    frameSize->setFixedWidth(50);
+    lengthSize->setFixedWidth(50);
+   
+    if (settings.value("drawLabel")=="false") drawLabel->setChecked(false);
+    else drawLabel->setChecked(true);
+    fontSize->setValue(settings.value("labelFontSize").toInt());
+    frameSize->setValue(settings.value("frameSize").toInt());
+    if (settings.value("labelFontSize").toInt()==0) fontSize->setValue(12);
+    if (settings.value("frameSize").toInt()==0) frameSize->setValue(6);
+    lengthSize->setText(settings.value("length").toString());
+    if (settings.value("length").toInt()==0) lengthSize->setText("240");
+
+    connect(fontSize, SIGNAL(valueChanged(int)), this, SIGNAL(fontSizeChange(int)));
+    connect(frameSize, SIGNAL(valueChanged(int)), this, SIGNAL(frameSizeChange(int)));
+    connect(lengthSize, SIGNAL(textChanged(QString)), this, SIGNAL(lengthSizeChange(QString)));
+    connect(drawLabel, SIGNAL(stateChanged(int)), this, SIGNAL(labelChange(int)));*/
+   
+    lay->addWidget(windowOpacityBox);
+    lay->addWidget(appearanceBox);
+    lay->addWidget(backgroundBox);
+    lay->addWidget(displayBox);
+    lay->addWidget(editingBox);
+   
+    connect(windowOpacityLevel, SIGNAL(valueChanged(int)), parent, SIGNAL(windowOpacityChange(int)));
+    connect(backgroundButtons, SIGNAL(buttonClicked(int)), parent, SIGNAL(backgroundChange(int)));
+    connect(gradientsButtons, SIGNAL(buttonClicked(int)), parent, SIGNAL(gradientsChange(int)));
+    connect(shadowsBox, SIGNAL(stateChanged(int)), parent, SIGNAL(shadowsChange(int)));
+    connect(toolCursorsBox, SIGNAL(stateChanged(int)), parent, SIGNAL(toolCursorsChange(int)));
+    connect(aquaBox, SIGNAL(stateChanged(int)), parent, SIGNAL(styleChange(int)));
+    connect(antialiasingBox, SIGNAL(stateChanged(int)), parent, SIGNAL(antialiasingChange(int)));
+    connect(curveOpacityLevel, SIGNAL(valueChanged(int)), parent, SIGNAL(curveOpacityChange(int)));
+    connect(curveSmoothingLevel, SIGNAL(valueChanged(int)), parent, SIGNAL(curveSmoothingChange(int)));
+    connect(highResBox, SIGNAL(stateChanged(int)), parent, SIGNAL(highResPositionChange(int)));
+   
+    /*lay->addWidget(fontSizeLabel);
+    lay->addWidget(fontSize);
+    lay->addWidget(frameSizeLabel);
+    lay->addWidget(frameSize);
+    lay->addWidget(lengthSizeLabel);
+    lay->addWidget(lengthSize);*/
+    setLayout(lay);
+}
+
+
+TimelinePage::TimelinePage(QWidget *parent) : QWidget(parent) {
+    QSettings settings("Pencil","Pencil");
+    QVBoxLayout *generalLay = new QVBoxLayout();
+    QGridLayout *onionLay = new QGridLayout();
+   
+    QGroupBox* timeLineBox = new QGroupBox(tr("Time Line"));
+    QGroupBox* onionSkinBox = new QGroupBox(tr("Onion Skin"));   
+   
+    // General timeline buttons
+
+    QCheckBox *drawLabel = new QCheckBox(tr("Draw timeline labels"));
+    QLabel *fontSizeLabel = new QLabel(tr("Labels font size"));
+    QSpinBox *fontSize = new QSpinBox();
+    QLabel *frameSizeLabel = new QLabel(tr("Frame size in Pixels"));
+    QSpinBox *frameSize = new QSpinBox(this);
+    QLabel *lengthSizeLabel = new QLabel(tr("Timeline size in Frames"));
+    QLineEdit *lengthSize = new QLineEdit(this);
+    lengthSize->setInputMask("9999");
+
+    QCheckBox *scrubBox = new QCheckBox(tr("Short scrub"));
+    scrubBox->setChecked(false); // default
+    if (settings.value("shortScrub").toBool()) scrubBox->setChecked(true);
+   
+    fontSize->setMinimum(4);
+    fontSize->setMaximum(20);
+    frameSize->setMinimum(4);
+    frameSize->setMaximum(20);
+   
+    fontSize->setFixedWidth(50);
+    frameSize->setFixedWidth(50);
+    lengthSize->setFixedWidth(50);
+   
+    if (settings.value("drawLabel")=="false") drawLabel->setChecked(false);
+    else drawLabel->setChecked(true);
+    fontSize->setValue(settings.value("labelFontSize").toInt());
+    frameSize->setValue(settings.value("frameSize").toInt());
+    if (settings.value("labelFontSize").toInt()==0) fontSize->setValue(12);
+    if (settings.value("frameSize").toInt()==0) frameSize->setValue(6);
+    lengthSize->setText(settings.value("length").toString());
+    if (settings.value("length").toInt()==0) lengthSize->setText("240");
+
+    connect(fontSize, SIGNAL(valueChanged(int)), parent, SIGNAL(fontSizeChange(int)));
+    connect(frameSize, SIGNAL(valueChanged(int)), parent, SIGNAL(frameSizeChange(int)));
+    connect(lengthSize, SIGNAL(textChanged(QString)), parent, SIGNAL(lengthSizeChange(QString)));
+    connect(drawLabel, SIGNAL(stateChanged(int)), parent, SIGNAL(labelChange(int)));
+    connect(scrubBox, SIGNAL(stateChanged(int)), parent, SIGNAL(scrubChange(int)));
+   
+    //lay->addWidget(drawLabel);
+    //lay->addWidget(fontSizeLabel);
+    //lay->addWidget(fontSize);
+    generalLay->addWidget(frameSizeLabel);
+    generalLay->addWidget(frameSize);
+    generalLay->addWidget(lengthSizeLabel);
+    generalLay->addWidget(lengthSize);
+    generalLay->addWidget(scrubBox);
+    timeLineBox->setLayout(generalLay);
+
+    // Onion skin buttons
+
+    QLabel *onionOpacityLabel = new QLabel(tr("Opacity"));
+    QLabel *onionFrameLabel = new QLabel(tr("Straight ahead"));
+    QLabel *onionInbetweenLabel = new QLabel(tr("Inbetween"));   
+    QLabel *onionCurrentFrameLabel = new QLabel(tr("*current frame*"));
+
+    QSlider *onionOpacity = new QSlider(Qt::Horizontal);
+    onionOpacity->setToolTip(tr("Opacity of onion skin frames"));   
+    QSpinBox *onionFrameNumber = new QSpinBox();
+    onionFrameNumber->setToolTip(tr("Number of frames to show in straight ahead mode"));           
+    QCheckBox *previousprevious = new QCheckBox();   
+    previousprevious->setToolTip(tr("Frame before previous"));       
+    QCheckBox *previous = new QCheckBox();           
+    previous->setToolTip(tr("Previous frame"));           
+    QCheckBox *next = new QCheckBox();   
+    next->setToolTip(tr("Next frame"));
+    QCheckBox *nextnext = new QCheckBox();   
+    nextnext->setToolTip(tr("Frame after next"));   
+       
+    onionOpacity->setMinimum(0);
+    onionOpacity->setMaximum(100);               
+    onionOpacity->setSliderPosition(30);
+    onionFrameNumber->setMinimum(1);
+    onionFrameNumber->setMaximum(20);   
+    previousprevious->setChecked(false);
+    previous->setChecked(true);
+    next->setChecked(true);
+    nextnext->setChecked(false);
+   
+    connect(onionOpacity, SIGNAL(valueChanged(int)), parent, SIGNAL(onionOpacityChange(int)));
+    connect(onionFrameNumber, SIGNAL(valueChanged(int)), parent, SIGNAL(onionStraightAheadChange(int)));
+    connect(previousprevious, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousPreviousChange(int)));
+    connect(previous, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousChange(int)));
+    connect(next, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextChange(int)));
+    connect(nextnext, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextNextChange(int)));
+
+    QGroupBox *onionInbetweenBox = new QGroupBox();
+    QGridLayout *onionInbetweenBoxLayout = new QGridLayout();
+    onionInbetweenBox->setLayout(onionInbetweenBoxLayout);
+    onionInbetweenBoxLayout->addWidget(previousprevious, 0, 0);
+    onionInbetweenBoxLayout->addWidget(previous, 0, 1);
+    onionInbetweenBoxLayout->addWidget(onionCurrentFrameLabel, 0, 2);
+    onionInbetweenBoxLayout->addWidget(next, 0, 3);
+    onionInbetweenBoxLayout->addWidget(nextnext, 0, 4);
+
+    onionSkinBox->setLayout(onionLay);
+    onionLay->addWidget(onionOpacityLabel, 0, 0);
+    onionLay->addWidget(onionOpacity, 0, 1);
+    onionLay->addWidget(onionFrameLabel, 1, 0);
+    onionLay->addWidget(onionInbetweenLabel, 1, 1);
+    onionLay->addWidget(onionFrameNumber, 2, 0);
+    onionLay->addWidget(onionInbetweenBox, 2, 1);
+
+    // Generic timeline settings
+   
+    QVBoxLayout *fullLay = new QVBoxLayout();
+    fullLay->addWidget(timeLineBox);
+    fullLay->addWidget(onionSkinBox);
+    fullLay->addStretch(1);
+    setLayout(fullLay);
+}
+
+FilesPage::FilesPage(QWidget *parent) : QWidget(parent) {
+    QSettings settings("Pencil","Pencil");
+   
+    QVBoxLayout *lay = new QVBoxLayout();
+   
+    QGroupBox* autosaveBox = new QGroupBox(tr("Autosave documents"));
+    QCheckBox *autosaveCheckBox = new QCheckBox(tr("Enable autosave"));
+    QLabel *autosaveNumberLabel = new QLabel(tr("Number of modifications before autosaving:"));
+    QSpinBox *autosaveNumberBox = new QSpinBox();
+   
+    autosaveNumberBox->setMinimum(5);
+    autosaveNumberBox->setMaximum(200);
+    autosaveNumberBox->setFixedWidth(50);
+   
+    autosaveCheckBox->setChecked(false);
+    if (settings.value("autosave")=="true") autosaveCheckBox->setChecked(true);
+   
+    autosaveNumberBox->setValue(settings.value("autosaveNumber").toInt());
+    if (settings.value("autosaveNumber").toInt()==0) autosaveNumberBox->setValue(20);
+   
+    connect(autosaveNumberBox, SIGNAL(valueChanged(int)), parent, SIGNAL(autosaveNumberChange(int)));
+    connect(autosaveCheckBox, SIGNAL(stateChanged(int)), parent, SIGNAL(autosaveChange(int)));
+   
+    lay->addWidget(autosaveCheckBox);
+    lay->addWidget(autosaveNumberLabel);
+    lay->addWidget(autosaveNumberBox);
+    autosaveBox->setLayout(lay);
+   
+    QVBoxLayout *lay2 = new QVBoxLayout();
+    lay2->addWidget(autosaveBox);
+    lay2->addStretch(1);
+    setLayout(lay2);
+}
+
+
diff -rupN pencil_backup/src/interface/preferences.h pencil_dev/src/interface/preferences.h
--- pencil_backup/src/interface/preferences.h    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/preferences.h    2009-10-01 19:41:14.000000000 -0500
@@ -39,6 +39,13 @@ class Preferences : public QDialog {
         void shadowsChange(int);
         void toolCursorsChange(int);
         void styleChange(int);
+
+        void onionOpacityChange(int);
+        void onionStraightAheadChange(int);
+        void onionPreviousPreviousChange(int);
+        void onionPreviousChange(int);
+        void onionNextChange(int);
+        void onionNextNextChange(int);
    
         void autosaveChange(int);
         void autosaveNumberChange(int);
@@ -85,4 +92,4 @@ class FilesPage : public QWidget
     public:
     FilesPage(QWidget *parent = 0);
 
-};
\ No newline at end of file
+};
diff -rupN pencil_backup/src/interface/preferences.h~ pencil_dev/src/interface/preferences.h~
--- pencil_backup/src/interface/preferences.h~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/preferences.h~    2009-10-01 18:24:29.000000000 -0500
@@ -0,0 +1,95 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+
+class QListWidget;
+class QListWidgetItem;
+class QStackedWidget;
+
+class Preferences : public QDialog {
+    Q_OBJECT
+
+    public:
+        Preferences();
+
+    public slots:
+        void changePage(QListWidgetItem *current, QListWidgetItem *previous);
+
+    signals:
+        void windowOpacityChange(int);
+        void curveOpacityChange(int);
+        void curveSmoothingChange(int);
+        void highResPositionChange(int);
+        void antialiasingChange(int);
+        void gradientsChange(int);
+        void backgroundChange(int);
+        void shadowsChange(int);
+        void toolCursorsChange(int);
+        void styleChange(int);
+/*
+        void onionOpacityChange(int);
+        void onionStraightAheadChange(int);
+        void onionPreviousPreviousChange(int);
+        void onionPreviousChange(int);
+        void onionNextChange(int);
+        void onionNextNextChange(int);
+*/   
+        void autosaveChange(int);
+        void autosaveNumberChange(int);
+               
+        void lengthSizeChange(QString);
+        void fontSizeChange(int);
+        void frameSizeChange(int);
+        void labelChange(int);
+        void scrubChange(int);
+   
+    private:
+        void createIcons();
+
+        QListWidget *contentsWidget;
+        QStackedWidget *pagesWidget;
+ };
+
+
+class GeneralPage : public QWidget
+{
+    Q_OBJECT
+
+    public:
+    GeneralPage(QWidget *parent = 0);
+
+};
+
+
+
+class TimelinePage : public QWidget
+{
+    Q_OBJECT
+
+    public:
+    TimelinePage(QWidget *parent = 0);
+
+};
+
+
+class FilesPage : public QWidget
+{
+    Q_OBJECT
+
+    public:
+    FilesPage(QWidget *parent = 0);
+
+};
diff -rupN pencil_backup/src/interface/scribblearea.cpp pencil_dev/src/interface/scribblearea.cpp
--- pencil_backup/src/interface/scribblearea.cpp    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.cpp    2009-10-03 09:10:22.000000000 -0500
@@ -15,6 +15,7 @@ GNU General Public License for more deta
 */
 #include <QtGui>
 #include <math.h>
+#include <stdio.h>
 #include "scribblearea.h"
 #include "beziercurve.h"
 #include "editor.h"
@@ -134,8 +135,15 @@ ScribbleArea::ScribbleArea(QWidget *pare
     makeInvisible = false;
     somethingSelected = false;
     setCursor(Qt::CrossCursor);
-    onionPrev = true;
-    onionNext = false;
+    onion = false;
+    onionOpacity = 0.2;
+    onionStraightAheadFrames = 5;
+    onionStraightAhead = true;
+    onionInbetween = false;
+    onionPreviousPrevious = false;
+    onionPrevious = true;
+    onionNext = true;
+    onionNextNext = false;
     showThinLines = false;
     showAllLayers = 1;
     myView = QMatrix(); // identity matrix
@@ -510,9 +518,11 @@ void ScribbleArea::keyPressEvent( QKeyEv
     switch (event->key()) {
       case Qt::Key_Right:
         if(somethingSelected) { myTempTransformedSelection.translate(1,0); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubForward(); event->ignore(); }
+        printf("Key right clicked \n");
         break;
     case Qt::Key_Left:
         if(somethingSelected) { myTempTransformedSelection.translate(-1,0);  myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubBackward(); event->ignore(); }
+        printf("Key left clicked \n");
         break;
     case Qt::Key_Up:
         if(somethingSelected) { myTempTransformedSelection.translate(0,-1); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->previousLayer(); event->ignore(); }
@@ -549,6 +559,33 @@ void ScribbleArea::keyPressEvent( QKeyEv
         gradients = 2;
         updateAllVectorLayersAtCurrentFrame();
         break;
+    case Qt::Key_A:
+        flipPrevious();
+        break;
+    case Qt::Key_D:
+        flipNext();
+        break;
+    case Qt::Key_W:
+        editor->addKey();
+        break;
+    case Qt::Key_S:
+        editor->removeKey();
+        break;
+    case Qt::Key_Q:
+        editor->scrubBackward();
+        break;
+    case Qt::Key_E:
+        editor->scrubForward();
+        break;
+    case Qt::Key_Z:
+        onionShortCut();
+        break;
+    case Qt::Key_X:
+        straightAheadShortCut();
+        break;
+    case Qt::Key_C:
+        inbetweenShortCut();
+        break;
     default:
         event->ignore();
         //QWidget::keyPressEvent(e);
@@ -1210,6 +1247,8 @@ void ScribbleArea::paintBitmapBuffer() {
                         case PENCIL:
                             if(pencil.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
                             break;
+                        default:
+                            break;
                     }
                     targetImage->paste(bufferImg, cm);
                 }
@@ -1464,6 +1503,8 @@ void ScribbleArea::updateCanvas(int fram
         //painter.drawLine( QPoint(mySize.width()/3, 0), QPoint(mySize.width()/3, mySize.height()) );
         //painter.drawLine( QPoint(mySize.width()*2/3, 0), QPoint(mySize.width()*2/3, mySize.height()) );
     }
+
+    int tempFrame = frame;
    
     Object* object = editor->object;
     qreal opacity;
@@ -1480,14 +1521,48 @@ void ScribbleArea::updateCanvas(int fram
                 if(bitmapImage != NULL) {
                     painter.setWorldMatrixEnabled(true);
                    
-                    // previous frame (onion skin)
-                    BitmapImage* previousImage = layerBitmap->getLastBitmapImageAtFrame(frame, -1);
-                    if(previousImage != NULL && onionPrev) { painter.setOpacity(opacity*0.5); previousImage->paintImage(painter); }
+                    // straight ahead (onion skin)
+                    BitmapImage* straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+                    tempFrame = frame;                   
+                    if(onionStraightAhead && onion) {
+                        for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+                            tempFrame = editor->getPrevKey(tempFrame);
+                            straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(tempFrame, 0);
+                            if(tempFrame == layerBitmap->getMaxFrame()) {
+                                frames = onionStraightAheadFrames;
+                                straightAheadImage = NULL;
+                            }
+                            if(straightAheadImage != NULL) {
+                                painter.setOpacity(opacity*onionOpacity);
+                                straightAheadImage->paintImage(painter);
+                            }
+                        }
+                    }                   
+
                     //painter.drawImage(previousImage->topLeft(), *(previousImage->image) );
                    
-                    // next frame (onion skin)
-                    BitmapImage* nextImage = layerBitmap->getLastBitmapImageAtFrame(frame, 1);
-                    if(nextImage != NULL && onionNext) { painter.setOpacity(opacity*0.5); nextImage->paintImage(painter); }
+                    // inbetween frame (onion skin)
+                    BitmapImage* inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+                   
+                    if(onionInbetween && onion) {
+                        painter.setOpacity(opacity*onionOpacity);                       
+                        if(onionPreviousPrevious) {
+                            inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0);
+                            inbetweenImage->paintImage(painter);
+                        }
+                        if(onionPrevious) {
+                            inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(frame), 0);
+                            inbetweenImage->paintImage(painter);
+                        }
+                        if(onionNext) {
+                            inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(frame), 0);
+                            inbetweenImage->paintImage(painter);
+                        }
+                        if(onionNextNext) {
+                            inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0);
+                            inbetweenImage->paintImage(painter);
+                        }
+                    }
                    
                     // current frame
                     painter.setOpacity(opacity);
@@ -1531,13 +1606,45 @@ void ScribbleArea::updateCanvas(int fram
                 if(image != NULL) {
                     painter.setWorldMatrixEnabled(false);
                    
-                    // previous frame (onion skin)
-                    QImage* previousImage = layerVector->getLastImageAtFrame(frame, -1, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
-                    if(previousImage != NULL && onionPrev) { painter.setOpacity(opacity*0.5); painter.drawImage(QPoint(0, 0), *previousImage ); }
+                    // straight ahead (onion skin)
+                    QImage* straightAheadImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                    tempFrame = frame;                   
+                    if(onionStraightAhead && onion) {
+                        for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+                            tempFrame = editor->getPrevKey(tempFrame);                           
+                            straightAheadImage = layerVector->getLastImageAtFrame(tempFrame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);                       
+                            if(tempFrame == layerVector->getMaxFrame()) {
+                                frames = onionStraightAheadFrames;
+                                straightAheadImage = NULL;                           
+                            }
+                            if(straightAheadImage != NULL) {
+                                painter.setOpacity(onionOpacity*opacity);
+                                painter.drawImage(QPoint(0, 0), *straightAheadImage);
+                            }
+                        }                   
+                    }
                    
-                    // next frame (onion skin)
-                    QImage* nextImage = layerVector->getLastImageAtFrame(frame, 1, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
-                    if(nextImage != NULL && onionNext) { painter.setOpacity(opacity*0.5); painter.drawImage(QPoint(0, 0), *nextImage ); }
+                    // inbetween (onion skin)
+                    QImage* inbetweenImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                    if(onionInbetween && onion) {
+                        painter.setOpacity(onionOpacity*opacity);
+                        if(onionPreviousPrevious) {
+                            inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                            painter.drawImage(QPoint(0, 0), *inbetweenImage);
+                        }
+                        if(onionPrevious) {
+                            inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                            painter.drawImage(QPoint(0, 0), *inbetweenImage);
+                        }                                               
+                        if(onionNext) {
+                            inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                            painter.drawImage(QPoint(0, 0), *inbetweenImage);
+                        }
+                        if(onionNextNext) {
+                            inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                            painter.drawImage(QPoint(0, 0), *inbetweenImage);
+                        }
+                    }
                    
                     // current frame
                     painter.setOpacity(opacity);
@@ -1936,18 +2043,69 @@ void ScribbleArea::deselectAll() {
     updateFrame();
 }
 
-void ScribbleArea::onionNextSlot() {
-    onionNext = !onionNext;
+void ScribbleArea::onionChangeSlot1() {
+    onionChangeSlot(1);
+}
+
+void ScribbleArea::onionChangeSlot2() {
+    onionChangeSlot(2);
+}
+
+void ScribbleArea::onionIsOn() {
+    onion = !onion;
+    updateAllFrames();
+    ScribbleArea::setFocus();
+}
+
+void ScribbleArea::onionChangeSlot(int onionIndex) {
+    switch(onionIndex){
+        case 1 :{
+            ScribbleArea::onionStraightAhead = true;
+            ScribbleArea::onionInbetween = false;
+            break;
+        }   
+        case 2 :{
+            ScribbleArea::onionStraightAhead = false;
+            ScribbleArea::onionInbetween = true;
+            break;
+        }
+    }
+    updateAllFrames();
+}
+
+void ScribbleArea::onionOpacityLevel(int opacityInteger) {
+    onionOpacity = (opacityInteger/100);
+    updateAllFrames();
+}
+
+void ScribbleArea::onionStraightAheadLevel(int numberOfFrames) {
+    onionStraightAheadFrames = numberOfFrames;
     updateAllFrames();
 }
 
-void ScribbleArea::onionPrevSlot() {
-    onionPrev = !onionPrev;
+void ScribbleArea::onionPreviousPreviousLevel(int boolean) {
+    if(boolean) onionPreviousPrevious = true;
+    else onionPreviousPrevious = false;
     updateAllFrames();
 }
 
+void ScribbleArea::onionPreviousLevel(int boolean) {
+    if(boolean) onionPrevious = true;
+    else onionPrevious = false;
+    updateAllFrames();
+}
 
+void ScribbleArea::onionNextLevel(int boolean) {
+    if(boolean) onionNext = true;
+    else onionNext = false;
+    updateAllFrames();
+}
 
+void ScribbleArea::onionNextNextLevel(int boolean) {
+    if(boolean) onionNextNext = true;
+    else onionNextNext = false;
+    updateAllFrames();
+}
 
 void ScribbleArea::floodFill(VectorImage* vectorImage, QPoint point, QRgb targetColour, QRgb replacementColour, int tolerance) {
     bool invertible;
diff -rupN pencil_backup/src/interface/scribblearea.cpp~ pencil_dev/src/interface/scribblearea.cpp~
--- pencil_backup/src/interface/scribblearea.cpp~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.cpp~    2009-10-03 09:08:34.000000000 -0500
@@ -0,0 +1,2756 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include <math.h>
+#include <stdio.h>
+#include "scribblearea.h"
+#include "beziercurve.h"
+#include "editor.h"
+#include "layerbitmap.h"
+#include "layervector.h"
+#include "layercamera.h"
+
+#include "bitmapimage.h"
+
+void VectorSelection::clear() {
+    vertex.clear();
+    curve.clear();
+}
+
+void VectorSelection::add(int curveNumber) {
+    curve << curveNumber;
+}
+
+void VectorSelection::add(QList<int> list) {
+    if(list.size() > 0) add(list[0]);
+    /*for(int i=0; i<list.size(); i++) {
+        add(list[i]);
+    }*/
+}
+
+void VectorSelection::add(VertexRef point) {
+    vertex << point;
+    add(point.curveNumber);
+}
+
+void VectorSelection::add(QList<VertexRef> list) {
+    if(list.size() > 0) add(list[0]);
+    /*for(int i=0; i<list.size(); i++) {
+        add(list[i]);
+    }*/
+}
+
+ScribbleArea::ScribbleArea(QWidget *parent, Editor* editor)
+    : QWidget(parent)
+//ScribbleArea::ScribbleArea(QWidget *parent, Editor* editor)
+//    : QGLWidget(QGLFormat(QGL::SampleBuffers), parent)
+{   
+    this->editor = editor;
+    QSettings settings("Pencil","Pencil");
+   
+    pencil.width = settings.value("pencilWidth").toDouble();
+    if (pencil.width == 0) { pencil.width = 1; settings.setValue("pencilWidth", pencil.width); }
+    pen.width = settings.value("penWidth").toDouble();
+    if (pen.width == 0) { pen.width = 2; settings.setValue("penWidth", pen.width); }
+    brush.width = settings.value("brushWidth").toDouble();
+    if (brush.width == 0) { brush.width = 48; settings.setValue("brushWidth", brush.width); }
+    eraser.width = settings.value("eraserWidth").toDouble();
+    if (eraser.width == 0) { eraser.width = 24; settings.setValue("eraserWidth", brush.width); }
+    currentWidth = pencil.width;
+   
+    pencil.colour = Qt::black;
+    pen.colour = Qt::black;
+    brush.colour = Qt::blue;
+    currentColour = pencil.colour;
+   
+    pencil.colourNumber = 0;
+    pen.colourNumber = 0;
+    brush.colourNumber = 1;
+   
+    pencil.feather = 0;
+    pen.feather = 0;
+    brush.feather = settings.value("brushFeather").toDouble();
+    if (brush.feather == 0) { brush.feather = 70; settings.setValue("brushFeather", brush.feather); }
+    eraser.feather = 0;
+   
+    pencil.opacity = 0.8;
+    pen.opacity = 1;
+    brush.opacity = 0.5;
+    eraser.opacity = 0.5;
+   
+    pencil.pressure = 1;
+    pen.pressure = 1;
+    brush.pressure = 1;
+    eraser.pressure = 1;
+   
+    pencil.invisibility = 1;
+    pen.invisibility = 0;
+    brush.invisibility = -1;
+    eraser.invisibility = -1;
+   
+    pencil.preserveAlpha = 0;
+    pen.preserveAlpha = 0;
+    brush.preserveAlpha = 0;
+    eraser.preserveAlpha = 0;
+   
+    followContour = 0;
+   
+    curveOpacity = (100-settings.value("curveOpacity").toInt())/100.0; // default value is 1.0
+    int curveSmoothingLevel = settings.value("curveSmoothing").toInt();
+    if(curveSmoothingLevel == 0) { curveSmoothingLevel = 20; settings.setValue("curveSmoothing", curveSmoothingLevel); } // default
+    curveSmoothing = curveSmoothingLevel/20.0; // default value is 1.0
+   
+    highResPosition = false; // default is false (because it does not work on Windows)
+    if( settings.value("highResPosition").toString() == "true") highResPosition = true;
+    antialiasing = true; // default value is true (because it's prettier)
+    if( settings.value("antialiasing").toString() == "false") antialiasing = false;
+    shadows = false; // default value is false
+    if( settings.value("shadows").toString() == "true") shadows = true;
+    toolCursors = true; // default value is true
+    if( settings.value("toolCursors").toString() == "false") toolCursors = false;
+    gradients = 2;
+    if( settings.value("gradients").toString() != "") gradients = settings.value("gradients").toInt();;
+   
+    toolMode = PENCIL;
+    tabletEraserBackupToolMode=-1;
+    tabletInUse=false;
+    tabletPressure=1.0;
+    setAttribute(Qt::WA_StaticContents); // ?
+    modified = false;
+    simplified = false;
+    usePressure = true;
+    makeInvisible = false;
+    somethingSelected = false;
+    setCursor(Qt::CrossCursor);
+    onion = false;
+    onionOpacity = 0.2;
+    onionStraightAheadFrames = 5;
+    onionStraightAhead = true;
+    onionInbetween = false;
+    onionPreviousPrevious = false;
+    onionPrevious = true;
+    onionNext = true;
+    onionNextNext = false;
+    showThinLines = false;
+    showAllLayers = 1;
+    myView = QMatrix(); // identity matrix
+    myTempView = QMatrix();
+    transMatrix = QMatrix();
+    centralView = QMatrix();
+   
+    QString background = settings.value("background").toString();
+    if(background == "") background = "white";
+    setBackgroundBrush(background);
+    bufferImg = new BitmapImage(NULL);
+    eyedropperCursor = NULL;
+   
+    QRect newSelection(QPoint(0,0), QSize(0,0));
+    mySelection =  newSelection;
+    myTransformedSelection = newSelection;
+    myTempTransformedSelection = newSelection;
+    offset.setX(0);
+    offset.setY(0);
+    selectionTransformation.reset();
+   
+    tol = 7.0;
+   
+    readCanvasFromCache = true;
+    mouseInUse = false;
+    setMouseTracking(true); // reacts to mouse move events, even if the button is not pressed
+   
+    debugRect = QRectF(0,0,0,0);
+   
+    setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding) );
+    QPixmapCache::setCacheLimit(30*2*1024);
+    //setAutoFillBackground (false);
+    //setAttribute(Qt::WA_OpaquePaintEvent, false);
+    //setAttribute(Qt::WA_NoSystemBackground, true);
+}
+
+void ScribbleArea::setColour(const int i)
+{
+    if(toolMode == PENCIL) {
+        pencil.colourNumber = i;
+        pencil.colour = editor->object->getColour(i).colour;
+    }
+    if(toolMode == PEN || toolMode == POLYLINE) {
+        pen.colourNumber = i;
+        pen.colour = editor->object->getColour(i).colour;
+    }
+    if(toolMode == BUCKET || toolMode == COLOURING || toolMode == EYEDROPPER) {
+        brush.colourNumber = i;
+        brush.colour = editor->object->getColour(i).colour;
+    }
+    updateCursor();
+    updateFrame();
+}
+
+void ScribbleArea::setColour(const QColor colour)
+{
+    if(toolMode == PENCIL || toolMode == EYEDROPPER) {
+        pencil.colour = colour;
+    }
+    if(toolMode == PEN || toolMode == EYEDROPPER) {
+        pen.colour = colour;
+    }
+    if(toolMode == COLOURING || toolMode == BUCKET || toolMode == EYEDROPPER) {
+        brush.colour = colour;
+    }
+    currentColour = colour;
+    updateCursor();
+}
+
+void ScribbleArea::resetColours()
+{
+    pen.colourNumber = 0;
+    pencil.colourNumber = 0;
+    brush.colourNumber = 1;
+}
+
+void ScribbleArea::setWidth(const qreal newWidth)
+{
+    QSettings settings("Pencil","Pencil");
+    if(toolMode == PENCIL) {
+        pencil.width = newWidth;
+        settings.setValue("pencilWidth", newWidth);
+    }
+    if(toolMode == ERASER) {
+        eraser.width = newWidth;
+        settings.setValue("eraserWidth", newWidth);
+    }
+    if(toolMode == PEN || toolMode == POLYLINE) {
+        pen.width = newWidth;
+        settings.setValue("penWidth", newWidth);
+    }
+    if(toolMode == COLOURING) {
+        brush.width = newWidth;
+        settings.setValue("brushWidth", newWidth);
+    }
+    currentWidth = newWidth;
+    updateAllFrames();
+    updateCursor();
+}
+
+void ScribbleArea::setFeather(const qreal newFeather)
+{
+    QSettings settings("Pencil","Pencil");
+    if(toolMode == PENCIL) {
+        pencil.feather = newFeather;
+        settings.setValue("pencilOpacity", newFeather);
+    }
+    if(toolMode == PEN || toolMode == POLYLINE) {
+        pen.feather = newFeather;
+        settings.setValue("penOpacity", newFeather);
+    }
+    if(toolMode == COLOURING) {
+        brush.feather = newFeather;
+        settings.setValue("brushOpacity", newFeather);
+    }
+    //currentWidth = newWidth;
+    updateAllFrames();
+    updateCursor();
+}
+
+void ScribbleArea::setOpacity(const qreal newOpacity)
+{
+    QSettings settings("Pencil","Pencil");
+    if(toolMode == PENCIL) {
+        pencil.opacity = newOpacity;
+        settings.setValue("pencilOpacity", newOpacity);
+    }
+    if(toolMode == PEN || toolMode == POLYLINE) {
+        pen.opacity = newOpacity;
+        settings.setValue("penOpacity", newOpacity);
+    }
+    if(toolMode == COLOURING) {
+        brush.opacity = newOpacity;
+        settings.setValue("brushOpacity", newOpacity);
+    }
+    //currentWidth = newWidth;
+    updateAllFrames();
+}
+
+void ScribbleArea::setInvisibility(const bool invisibility)
+{
+    QSettings settings("Pencil","Pencil");
+    if(toolMode == PENCIL) {
+        pencil.invisibility = invisibility;
+        settings.setValue("pencilOpacity", invisibility);
+    }
+    if(toolMode == PEN || toolMode == POLYLINE) {
+        pen.invisibility = invisibility;
+        settings.setValue("penOpacity", invisibility);
+    }
+    makeInvisible = invisibility;
+    updateAllFrames();
+}
+
+void ScribbleArea::setPressure(const bool pressure)
+{
+    QSettings settings("Pencil","Pencil");
+    if(toolMode == PENCIL) {
+        pencil.pressure = pressure;
+        settings.setValue("pencilOpacity", pressure);
+    }
+    if(toolMode == PEN || toolMode == POLYLINE) {
+        pen.pressure = pressure;
+        settings.setValue("penOpacity", pressure);
+    }
+    if(toolMode == COLOURING) {
+        brush.pressure = pressure;
+        settings.setValue("brushOpacity", pressure);
+    }
+    usePressure = pressure;
+    updateAllFrames();
+}
+
+void ScribbleArea::setPreserveAlpha(const bool preserveAlpha)
+{
+    QSettings settings("Pencil","Pencil");
+    if(toolMode == PENCIL) {
+        pencil.preserveAlpha = preserveAlpha;
+        //settings.setValue("pencilCompositionMode", preserveAlpha);
+    }
+    if(toolMode == PEN || toolMode == POLYLINE) {
+        pen.preserveAlpha = preserveAlpha;
+        //settings.setValue("penCompositionMode", preserveAlpha);
+    }
+    if(toolMode == COLOURING) {
+        brush.preserveAlpha = preserveAlpha;
+        //settings.setValue("brushCompositionMode", preserveAlpha);
+    }
+    //this->preserveAlpha = preserveAlpha;
+    //updateAllFrames();
+}
+
+void ScribbleArea::setFollowContour(const bool followContour)
+{
+    this->followContour = followContour;
+}
+
+void ScribbleArea::setCurveOpacity(int newOpacity)
+{
+    curveOpacity = newOpacity/100.0;
+    QSettings settings("Pencil","Pencil");
+    settings.setValue("curveOpacity", 100-newOpacity);
+    updateAllVectorLayers();
+}
+
+void ScribbleArea::setCurveSmoothing(int newSmoothingLevel)
+{
+    curveSmoothing = newSmoothingLevel/20.0;
+    QSettings settings("Pencil","Pencil");
+    settings.setValue("curveSmoothing", newSmoothingLevel);
+}
+
+void ScribbleArea::setHighResPosition(int x)
+{
+    QSettings settings("Pencil","Pencil");
+    if (x==0) { highResPosition=false; settings.setValue("highResPosition","false"); }
+    else { highResPosition=true; settings.setValue("highResPosition","true"); }
+}
+
+void ScribbleArea::setAntialiasing(int x)
+{
+    QSettings settings("Pencil","Pencil");
+    if (x==0) { antialiasing=false; settings.setValue("antialiasing","false"); }
+    else { antialiasing=true; settings.setValue("antialiasing","true"); }
+    updateAllVectorLayers();
+}
+
+void ScribbleArea::setGradients(int x)
+{
+    //if(x==0) { gradients = x; } else { gradients = x; }
+    QSettings settings("Pencil","Pencil");
+    if(x > 0) {
+        gradients = x;
+        settings.setValue("gradients", gradients);
+    } else {
+        gradients = 2;
+        gradients = settings.value("gradients").toInt();
+    }
+    //if (x==0) { antialiasing=false; settings.setValue("antialiasing","false"); }
+    //else { antialiasing=true; settings.setValue("antialiasing","true"); }
+    updateAllVectorLayers();
+}
+
+void ScribbleArea::setShadows(int x)
+{
+    QSettings settings("Pencil","Pencil");
+    if (x==0) { shadows=false; settings.setValue("shadows","false"); }
+    else { shadows=true; settings.setValue("shadows","true"); }
+    update();
+}
+
+void ScribbleArea::setToolCursors(int x)
+{
+    QSettings settings("Pencil","Pencil");
+    if (x==0) { toolCursors=false; settings.setValue("toolCursors","false"); }
+    else { toolCursors=true; settings.setValue("toolCursors","true"); }
+}
+
+void ScribbleArea::setStyle(int x)
+{
+    QSettings settings("Pencil","Pencil");
+    if (x==0) { settings.setValue("style","default"); }
+    else { settings.setValue("style","aqua"); }
+    update();
+}
+
+void ScribbleArea::setBackground(int number)
+{
+    if(number == 1) setBackgroundBrush("checkerboard");
+    if(number == 2) setBackgroundBrush("white");
+    if(number == 3) setBackgroundBrush("grey");
+    if(number == 4) setBackgroundBrush("dots");
+    if(number == 5) setBackgroundBrush("weave");
+    updateAllFrames();
+}
+
+void ScribbleArea::setBackgroundBrush(QString brushName)
+{
+    QSettings settings("Pencil","Pencil");
+    settings.setValue("background", brushName);
+    backgroundBrush = getBackgroundBrush(brushName);
+}
+
+QBrush ScribbleArea::getBackgroundBrush(QString brushName)
+{
+    QBrush brush = QBrush(Qt::white);
+    if(brushName == "white") {
+        brush = QBrush(Qt::white);
+    }
+    if(brushName == "grey") {
+        brush = QBrush(Qt::lightGray);
+    }
+    if(brushName == "checkerboard") {
+        QPixmap pattern(16,16);
+        pattern.fill( QColor(255,255,255) );
+        QPainter painter(&pattern);
+        painter.fillRect( QRect(0,0,8,8), QColor(220,220,220) );
+        painter.fillRect( QRect(8,8,8,8), QColor(220,220,220) );
+        painter.end();
+        brush.setTexture(pattern);
+    }
+    if(brushName == "dots") {
+        QPixmap pattern(":background/dots.png");
+        brush.setTexture(pattern);
+    }
+    if(brushName == "weave") {
+        QPixmap pattern(":background/weave.jpg");
+        brush.setTexture(pattern);
+    }
+    return brush;
+}
+
+void ScribbleArea::updateFrame() {
+    updateFrame(editor->currentFrame);
+}
+
+void ScribbleArea::updateFrame(int frame) {
+    //qDebug() << "updateFrame";
+    //paintCanvas(frame);
+    setView();
+    int frameNumber = editor->getLastFrameAtFrame( frame );
+    QPixmapCache::remove("frame"+QString::number(frameNumber));
+    readCanvasFromCache = true;
+    update();
+}
+
+void ScribbleArea::updateAllFrames() {
+    //qDebug() << "updateAllFrames";
+    //frameList.clear();
+    setView();
+    QPixmapCache::clear();
+    readCanvasFromCache = true;
+    update();
+}
+
+void ScribbleArea::updateAllVectorLayersAtCurrentFrame() {
+    updateAllVectorLayersAt(editor->currentFrame);
+}
+
+void ScribbleArea::updateAllVectorLayersAt(int frameNumber) {
+    for(int i=0; i< editor->object->getLayerCount(); i++) {
+        Layer* layer = editor->object->getLayer(i);
+        if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(frameNumber, 0)->setModified(true);
+    }
+    updateFrame(editor->currentFrame);
+}
+
+
+void ScribbleArea::updateAllVectorLayers() {
+    for(int i=0; i< editor->object->getLayerCount(); i++) {
+        Layer* layer = editor->object->getLayer(i);
+        if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->setModified(true);
+    }
+    updateAllFrames();
+}
+
+void ScribbleArea::setModified(int layerNumber, int frameNumber) {
+    Layer* layer = editor->object->getLayer(layerNumber);
+    //if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(frameNumber, 0)->setModified(true);
+    if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->setModified(frameNumber, true);
+    if(layer->type == Layer::BITMAP) ((LayerImage*)layer)->setModified(frameNumber, true);
+    emit modification(layerNumber);
+    //updateFrame(frame);
+    updateAllFrames();
+}
+
+void ScribbleArea::escape() {
+    deselectAll();
+}
+
+void ScribbleArea::keyPressEvent( QKeyEvent *event ) {
+    switch (event->key()) {
+      case Qt::Key_Right:
+        if(somethingSelected) { myTempTransformedSelection.translate(1,0); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubForward(); event->ignore(); }
+        printf("Key right clicked \n");
+        break;
+    case Qt::Key_Left:
+        if(somethingSelected) { myTempTransformedSelection.translate(-1,0);  myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubBackward(); event->ignore(); }
+        printf("Key left clicked \n");
+        break;
+    case Qt::Key_Up:
+        if(somethingSelected) { myTempTransformedSelection.translate(0,-1); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->previousLayer(); event->ignore(); }
+        break;
+    case Qt::Key_Down:
+        if(somethingSelected) { myTempTransformedSelection.translate(0,1); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->nextLayer(); event->ignore(); }
+        break;
+    case Qt::Key_Return:
+        if(somethingSelected) { paintTransformedSelection(); deselectAll(); } else {
+            if(toolMode == POLYLINE) {
+                endPolyline();
+            } else {
+                event->ignore();
+            }
+        }
+        break;
+    case Qt::Key_Escape:
+        if(somethingSelected || toolMode == POLYLINE) { escape(); }
+        break;
+    case Qt::Key_Backspace:
+        if(somethingSelected) deleteSelection();
+        break;
+    case Qt::Key_F1:
+        simplified = true;
+        emit outlinesChanged(simplified);
+        gradients = 0;
+        updateAllVectorLayersAtCurrentFrame();
+        break;
+    case Qt::Key_F2:
+        gradients = 1;
+        updateAllVectorLayersAtCurrentFrame();
+        break;
+    case Qt::Key_F3:
+        gradients = 2;
+        updateAllVectorLayersAtCurrentFrame();
+        break;
+    case Qt::Key_A:
+        flipPrevious();
+        break;
+    case Qt::Key_D:
+        flipNext();
+        break;
+    case Qt::Key_W:
+        editor->addKey();
+        break;
+    case Qt::Key_S:
+        editor->removeKey();
+        break;
+    case Qt::Key_Q:
+        editor->scrubBackward();
+        break;
+    case Qt::Key_E:
+        editor->scrubForward();
+        break;
+    case Qt::Key_Z:
+        onionShortCut();
+        break;
+    case Qt::Key_X:
+        straightAheadShortCut();
+        break;
+    case Qt::Key_C:
+        inbetweenShortCut();
+        break;
+    default:
+        event->ignore();
+        //QWidget::keyPressEvent(e);
+    }
+}
+
+void ScribbleArea::keyReleaseEvent( QKeyEvent *event ) {
+    switch (event->key()) {
+    case Qt::Key_F1:
+        simplified = false;
+        emit outlinesChanged(simplified);
+        setGradients(-1);
+        updateAllVectorLayersAtCurrentFrame();
+        break;
+    case Qt::Key_F2:
+        setGradients(-1);
+        updateAllVectorLayersAtCurrentFrame();
+        break;
+    case Qt::Key_F3:
+        setGradients(-1);
+        updateAllVectorLayersAtCurrentFrame();
+        break;
+    default:
+        event->ignore();
+        //QWidget::keyPressEvent(e);
+    }
+}
+
+void ScribbleArea::tabletEvent(QTabletEvent *event)
+{
+    //qDebug() << "Device" << event->device() << "Pointer type" << event->pointerType();
+    tabletInUse = true;
+    tabletPosition = event->hiResGlobalPos();
+    tabletPressure = event->pressure();
+    if(event->pointerType() == QTabletEvent::Cursor) tabletPressure = 0.5*tabletPressure; // "normal" pressure is chosen to be 0.5 instead of 1.0
+    mousePressure.append(tabletPressure);
+    if(toolMode==ScribbleArea::ERASER) {
+        //myPenWidth = static_cast<int>(10.0*tabletPressure);
+        currentWidth = (eraser.width*tabletPressure);
+    }
+    if(toolMode==ScribbleArea::PENCIL) {
+        currentColour = pencil.colour;
+        if(usePressure) {currentColour.setAlphaF(pencil.colour.alphaF()*tabletPressure); } else { currentColour.setAlphaF(pencil.colour.alphaF()); }
+        currentWidth = pencil.width;
+    }
+    if(toolMode==ScribbleArea::PEN) {
+        currentColour = pen.colour;
+        currentColour.setAlphaF(pen.colour.alphaF());
+        if(usePressure) { currentWidth = 2.0*pen.width*tabletPressure; } else { currentWidth = pen.width; }
+    }
+    if(event->pointerType() == QTabletEvent::Eraser) {
+        //if(tabletEraser == false) eraserOn();
+        //tabletEraser = true;
+        if(tabletEraserBackupToolMode == -1) {
+            tabletEraserBackupToolMode = toolMode; // memorise which tool was being used before switching to the eraser
+            eraserOn();
+        }
+    } else {
+        //if(tabletEraser == true) pencilOn();
+        //tabletEraser = false;
+        if(tabletEraserBackupToolMode != -1) { // restore the tool in use
+            switch(tabletEraserBackupToolMode) {
+                case ScribbleArea::PENCIL:
+                    pencilOn();
+                    break;
+                case ScribbleArea::PEN:
+                    penOn();
+                    break;
+                default:
+                    pencilOn();
+            }
+            tabletEraserBackupToolMode = -1;
+        }
+    }
+    event->ignore(); // indicates that the tablet event is not accepted yet, so that it is propagated as a mouse event)
+}
+
+void ScribbleArea::mousePressEvent(QMouseEvent *event)
+{
+    mouseInUse = true;
+   
+    Layer* layer = editor->getCurrentLayer();
+    // ---- checks ------
+    if(layer==NULL) return;
+    if(!layer->visible && toolMode != HAND && (event->button() != Qt::RightButton)) {
+        QMessageBox::warning(this, tr("Warning"),
+                tr("You are drawing on a hidden layer! Please select another layer (or make the current layer visible)."),
+                QMessageBox::Ok,
+                QMessageBox::Ok);
+        mouseInUse = false;
+        return;
+    }
+    if(layer->type == Layer::VECTOR) {
+        VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+        if (vectorImage == NULL) return;
+        if(toolMode == ScribbleArea::PENCIL) editor->selectColour(pencil.colourNumber);
+        if(toolMode == ScribbleArea::PEN) editor->selectColour(pen.colourNumber);
+        if(toolMode == ScribbleArea::COLOURING || toolMode == ScribbleArea::BUCKET) editor->selectColour(brush.colourNumber);
+    }
+    if(layer->type == Layer::BITMAP) {
+        BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+        if (bitmapImage == NULL) return;
+    }
+    // --- end checks ----
+   
+    while(!mousePath.isEmpty()) mousePath.removeAt(0); // empty the mousePath
+    while(!mousePressure.isEmpty()) mousePressure.removeAt(0); // empty the mousePressure
+    if (event->button() == Qt::LeftButton || event->button() == Qt::RightButton) {  // if the user is pressing the left or right button
+        if(tabletInUse && highResPosition) { lastPixel = QPointF(event->pos()) + tabletPosition - QPointF(event->globalPos()); } else { lastPixel = QPointF(event->pos()); }
+        bool invertible = true;
+        lastPoint = myTempView.inverted(&invertible).map(QPointF(lastPixel));
+        lastBrushPoint = lastPoint;
+    }
+   
+    if (event->button() == Qt::LeftButton) {
+        if(toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::ERASER || toolMode == ScribbleArea::PEN || toolMode == ScribbleArea::BUCKET || toolMode == ScribbleArea::COLOURING) {
+           
+            editor->backup();
+           
+            if(layer->type == Layer::VECTOR) {
+                if(toolMode == ScribbleArea::PENCIL && !showThinLines) toggleThinLines();
+            }
+            mousePath.append(lastPoint);
+        }
+        // ----------------------------------------------------------------------
+        if(toolMode == COLOURING) {
+            if(layer->type == Layer::BITMAP) {
+                qreal opacity = 1.0;
+                qreal brushWidth = brush.width +  0.5*brush.feather;
+                qreal offset = qMax(0.0,brush.width-0.5*brush.feather)/brushWidth;
+                if(tabletInUse) opacity = tabletPressure;
+                if(usePressure) brushWidth = brushWidth*tabletPressure;
+                drawBrush( lastPoint, brushWidth, offset, brush.colour, opacity);
+                int rad = qRound(brushWidth / 2) + 3;
+                update(myTempView.mapRect(QRect(lastPoint.toPoint(), lastPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+            }
+        }       
+        // ----------------------------------------------------------------------
+        if(toolMode == POLYLINE && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) ) {
+            if(mousePoints.size() == 0) editor->backup();
+            if(layer->type == Layer::VECTOR) {
+                ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deselectAll();
+                if(makeInvisible && !showThinLines) toggleThinLines();
+            }
+            mousePoints << lastPoint;
+            //qDebug() << "--------- " << mousePoints;
+        }
+        // ----------------------------------------------------------------------
+        if(toolMode == ScribbleArea::SELECT && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+            if(layer->type == Layer::VECTOR) {
+                ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deselectAll();
+            }
+            moveMode = ScribbleArea::MIDDLE;
+            if( somethingSelected ) {  // there is something selected
+                if( BezierCurve::mLength(lastPoint - myTransformedSelection.topLeft()) < 6) moveMode = ScribbleArea::TOPLEFT;
+                if( BezierCurve::mLength(lastPoint - myTransformedSelection.topRight()) < 6) moveMode = ScribbleArea::TOPRIGHT;
+                if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomLeft()) < 6) moveMode = ScribbleArea::BOTTOMLEFT;
+                if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomRight()) < 6) moveMode = ScribbleArea::BOTTOMRIGHT;
+                if( moveMode == ScribbleArea::MIDDLE ) { paintTransformedSelection(); deselectAll(); } // the user did not click on one of the corners
+            } else { // there is nothing selected
+                mySelection.setTopLeft( lastPoint );
+                mySelection.setBottomRight( lastPoint );
+                setSelection(mySelection, true);
+            }
+            update();
+        }
+        // ----------------------------------------------------------------------
+        if(toolMode == ScribbleArea::EDIT) {
+            if(layer->type == Layer::VECTOR) {
+                closestCurves = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getCurvesCloseTo(currentPoint, tol/myTempView.m11());
+                closestVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, tol/myTempView.m11());
+                if( closestVertices.size() > 0 || closestCurves.size() > 0 ) {  // the user clicks near a vertex or a curve
+                    editor->backup();
+                    VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+                    if(event->modifiers() != Qt::ShiftModifier && !vectorImage->isSelected(closestVertices)) { paintTransformedSelection(); deselectAll(); }
+                    vectorImage->setSelected(closestVertices, true);
+                    vectorSelection.add(closestCurves);
+                    vectorSelection.add(closestVertices);
+                    /*calculateSelectionRect();
+                    moveMode == ScribbleArea::MIDDLE;
+                    if( somethingSelected ) {  // there is an area selection
+                        if( BezierCurve::mLength(lastPoint - myTransformedSelection.topLeft()) < 6) moveMode = ScribbleArea::TOPLEFT;
+                        if( BezierCurve::mLength(lastPoint - myTransformedSelection.topRight()) < 6) moveMode = ScribbleArea::TOPRIGHT;
+                        if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomLeft()) < 6) moveMode = ScribbleArea::BOTTOMLEFT;
+                        if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomRight()) < 6) moveMode = ScribbleArea::BOTTOMRIGHT;
+                    }*/
+                    update();
+                } else {
+                    deselectAll();
+                }
+            }
+        }
+        // ----------------------------------------------------------------------
+        if(toolMode == ScribbleArea::MOVE && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+            editor->backup();
+            moveMode = ScribbleArea::MIDDLE;
+            if( somethingSelected ) {  // there is an area selection
+                if( BezierCurve::mLength(lastPoint - myTransformedSelection.topLeft()) < 6) moveMode = ScribbleArea::TOPLEFT;
+                if( BezierCurve::mLength(lastPoint - myTransformedSelection.topRight()) < 6) moveMode = ScribbleArea::TOPRIGHT;
+                if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomLeft()) < 6) moveMode = ScribbleArea::BOTTOMLEFT;
+                if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomRight()) < 6) moveMode = ScribbleArea::BOTTOMRIGHT;
+            }
+            // ---
+            if(moveMode == ScribbleArea::MIDDLE) {
+                if(layer->type == Layer::BITMAP) {
+                    if(!(myTransformedSelection.contains(lastPoint))) {  // click is outside the transformed selection with the MOVE tool
+                        paintTransformedSelection(); deselectAll();
+                    }
+                }
+                if(layer->type == Layer::VECTOR) {
+                    VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+                    if(closestCurves.size() > 0) { // the user clicks near a curve
+                        //    editor->backup();
+                        if(!vectorImage->isSelected(closestCurves)) {
+                            paintTransformedSelection();
+                            if(event->modifiers() != Qt::ShiftModifier) { deselectAll(); }
+                            vectorImage->setSelected(closestCurves, true);
+                            setSelection( vectorImage->getSelectionRect(), true );
+                            update();
+                        }
+                    } else {
+                        int areaNumber = vectorImage->getLastAreaNumber(lastPoint);
+                        if(areaNumber != -1) { // the user clicks on an area
+                            if(!vectorImage->isAreaSelected(areaNumber)) {
+                                if(event->modifiers() != Qt::ShiftModifier) { deselectAll(); }
+                                vectorImage->setAreaSelected(areaNumber, true);
+                                //setSelection( vectorImage->getSelectionRect() );
+                                setSelection( QRectF(0,0,0,0), true );
+                                update();
+                            }
+                        }    else { // the user doesn't click near a curve or an area
+                            if(!(myTransformedSelection.contains(lastPoint))) {  // click is outside the transformed selection with the MOVE tool
+                                paintTransformedSelection(); deselectAll();
+                            }
+                        }
+                    }
+                }
+            }
+            // ---
+                       
+        }
+    }
+}
+
+void ScribbleArea::mouseMoveEvent(QMouseEvent *event)
+{
+    Layer* layer = editor->getCurrentLayer();
+    // ---- checks ------
+    if(layer==NULL) return;
+    if(layer->type == Layer::VECTOR) {
+        VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+        if (vectorImage == NULL) return;
+    }
+    if(layer->type == Layer::BITMAP) {
+        BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+        if (bitmapImage == NULL) return;
+    }
+    // ---- end checks ------
+   
+    if(tabletInUse  && highResPosition) { currentPixel = QPointF(event->pos()) + tabletPosition - QPointF(event->globalPos()); } else { currentPixel = event->pos(); }
+    bool invertible = true;
+    currentPoint = myTempView.inverted(&invertible).map(QPointF(currentPixel));
+    if(event->buttons() & Qt::LeftButton || event->buttons() & Qt::RightButton) { // the user is also pressing the mouse (dragging)
+        offset = currentPoint - lastPoint;
+        mousePath.append(currentPoint);
+    }
+   
+    // ----------------------------------------------------------------------
+    if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) {
+        if ((event->buttons() & Qt::LeftButton) && (toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::ERASER || toolMode == ScribbleArea::PEN || toolMode == ScribbleArea::COLOURING))
+            drawLineTo(currentPixel, currentPoint);
+        if(toolMode == ScribbleArea::POLYLINE)
+            drawPolyline();
+    }
+    // ----------------------------------------------------------------------
+    if (toolMode == ScribbleArea::SELECT && (event->buttons() & Qt::LeftButton) && somethingSelected && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+        if(moveMode == ScribbleArea::MIDDLE) mySelection.setBottomRight(currentPoint);
+        if(moveMode == ScribbleArea::TOPLEFT) mySelection.setTopLeft(currentPoint);
+        if(moveMode == ScribbleArea::TOPRIGHT) mySelection.setTopRight(currentPoint);
+        if(moveMode == ScribbleArea::BOTTOMLEFT) mySelection.setBottomLeft(currentPoint);
+        if(moveMode == ScribbleArea::BOTTOMRIGHT) mySelection.setBottomRight(currentPoint);
+        myTransformedSelection = mySelection.adjusted(0,0,0,0);
+        myTempTransformedSelection = mySelection.adjusted(0,0,0,0);
+        if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->select(mySelection);
+        update();
+    }
+    // ----------------------------------------------------------------------
+    if (toolMode == ScribbleArea::ERASER && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+        if(event->buttons() & Qt::LeftButton) { // the user is also pressing the mouse (dragging)
+            if(layer->type == Layer::VECTOR) {
+                qreal radius = (eraser.width/2)/myTempView.m11();
+                QList<VertexRef> nearbyVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, radius);
+                for(int i=0; i< nearbyVertices.size(); i++) {
+                    ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setSelected(nearbyVertices.at(i), true);
+                }
+                //update();
+            }
+        }
+    }
+    // ----------------------------------------------------------------------
+    if (toolMode == ScribbleArea::EDIT && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+        if(event->buttons() & Qt::LeftButton) { // the user is also pressing the mouse (dragging) {
+            if( layer->type == Layer::VECTOR) {
+                if( event->modifiers() != Qt::ShiftModifier) { // (and the user doesn't press shift)
+                    // transforms the selection
+                    selectionTransformation = QMatrix().translate(offset.x(), offset.y());
+                    ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setSelectionTransformation(selectionTransformation);
+                    /*if(moveMode == ScribbleArea::MIDDLE) {
+                        if(QLineF(lastPixel,currentPixel).length()>4) myTempTransformedSelection = myTransformedSelection.translated(offset);
+                    }
+                    if(moveMode == ScribbleArea::TOPLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), offset.y(), 0, 0);
+                    if(moveMode == ScribbleArea::TOPRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, offset.y(), offset.x(), 0);
+                    if(moveMode == ScribbleArea::BOTTOMLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), 0, 0, offset.y());
+                    if(moveMode == ScribbleArea::BOTTOMRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, 0, offset.x(), offset.y());
+                    calculateSelectionTransformation();*/
+                    //update();
+                }
+            }
+        } else { // the user is moving the mouse without pressing it
+            if(layer->type == Layer::VECTOR)  {
+                closestVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, tol/myTempView.m11());
+            }
+            //update();
+        }
+        update();
+    }
+    // ----------------------------------------------------------------------
+    if (toolMode == ScribbleArea::MOVE  && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+        if(event->buttons() & Qt::LeftButton) { // the user is also pressing the mouse (dragging)
+            if( somethingSelected) {  // there is something selected
+                if( event->modifiers() != Qt::ShiftModifier) { // (and the user doesn't press shift)
+                    // transforms the selection
+                    if(moveMode == ScribbleArea::MIDDLE) {
+                        if(QLineF(lastPixel,currentPixel).length()>4) myTempTransformedSelection = myTransformedSelection.translated(offset);
+                    }
+                    if(moveMode == ScribbleArea::TOPLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), offset.y(), 0, 0);
+                    if(moveMode == ScribbleArea::TOPRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, offset.y(), offset.x(), 0);
+                    if(moveMode == ScribbleArea::BOTTOMLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), 0, 0, offset.y());
+                    if(moveMode == ScribbleArea::BOTTOMRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, 0, offset.x(), offset.y());
+                    calculateSelectionTransformation();
+                    update();
+                }
+            } else { // there is nothing selected
+                //selectionTransformation = selectionTransformation.translate(offset.x(), offset.y());
+                //if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setSelectionTransformation(selectionTransformation);
+               
+                //VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+                //setSelection( vectorImage->getSelectionRect() );
+               
+                // we switch to the select tool
+                editor->getToolSet()->changeSelectButton();
+                selectOn();
+                moveMode = ScribbleArea::MIDDLE;
+                mySelection.setTopLeft( lastPoint );
+                mySelection.setBottomRight( lastPoint );
+                setSelection(mySelection, true);
+            }
+        } else { // the user is moving the mouse without pressing it
+            if(layer->type == Layer::VECTOR)  {
+                closestCurves = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getCurvesCloseTo(currentPoint, tol/myTempView.m11());
+            }
+            update();
+        }
+    }
+    // ----------------------------------------------------------------------
+    if (  toolMode == ScribbleArea::HAND && (event->buttons() != Qt::NoButton || event->buttons() & Qt::RightButton) ) {
+        if(event->modifiers() & Qt::ControlModifier || event->modifiers() & Qt::AltModifier || event->buttons() & Qt::RightButton) {
+            QPoint centralPixel(width()/2, height()/2);
+            if(lastPixel.x() != centralPixel.x()) {
+                qreal scale = 1.0;
+                qreal cosine = 1.0;
+                qreal sine = 0.0;
+                if( event->modifiers() & Qt::AltModifier) { // rotation
+                    QPointF V1 = lastPixel-centralPixel;
+                    QPointF V2 = currentPixel-centralPixel;
+                    cosine = ( V1.x()*V2.x() + V1.y()*V2.y()  )/(BezierCurve::eLength(V1)*BezierCurve::eLength(V2));
+                    sine = ( -V1.x()*V2.y() + V1.y()*V2.x()  )/(BezierCurve::eLength(V1)*BezierCurve::eLength(V2));
+                   
+                }
+                if( event->modifiers() & Qt::ControlModifier || event->buttons() & Qt::RightButton) { // scale
+                    scale = exp( 0.01*( currentPixel.y()-lastPixel.y() ) );
+                }
+                transMatrix = QMatrix(
+                    scale*cosine, -scale*sine,
+                    scale*sine,  scale*cosine,
+                    0.0,
+                    0.0
+                );
+            }
+        } else { // translation
+            transMatrix.setMatrix(1.0,0.0,0.0,1.0, currentPixel.x()-lastPixel.x(), currentPixel.y()-lastPixel.y());
+        }
+        update();
+    }
+    // ----------------------------------------------------------------------
+    if( toolMode == EYEDROPPER ) {
+        if(layer->type == Layer::BITMAP) {
+            BitmapImage* targetImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+            if( targetImage->contains(currentPoint) ) {
+                QColor pickedColour = targetImage->pixel(currentPoint.x(), currentPoint.y());
+                if(pickedColour.alpha() != 0) drawEyedropperPreview(pickedColour);
+            }
+        }
+        if(layer->type == Layer::VECTOR) {
+            VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+            int colourNumber = vectorImage->getColourNumber(currentPoint);
+            if( colourNumber != -1) {
+                drawEyedropperPreview( editor->object->getColour(colourNumber).colour );
+            }
+        }
+    }
+
+}
+
+void ScribbleArea::mouseReleaseEvent(QMouseEvent *event)
+{   
+    mouseInUse = false;
+   
+    Layer* layer = editor->getCurrentLayer();
+    // ---- checks ------
+    if(layer==NULL) return;
+    if(layer->type == Layer::VECTOR) {
+        VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+        if (vectorImage == NULL) return;
+    }
+    if(layer->type == Layer::BITMAP) {
+        BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+        if (bitmapImage == NULL) return;
+    }
+    // ---- end checks ------
+
+    //currentWidth = myPenWidth;
+    if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) {
+        if ((event->button() == Qt::LeftButton) && (toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::ERASER || toolMode == ScribbleArea::PEN)) {
+            drawLineTo(currentPixel, currentPoint);
+        }
+    }
+       
+    if(event->button() == Qt::LeftButton) {
+        // ======================================================================
+        if(layer->type == Layer::BITMAP) {
+            // ----------------------------------------------------------------------
+            if( toolMode == BUCKET) {
+                BitmapImage* sourceImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+                Layer* targetLayer = layer; // by default
+                int layerNumber = editor->currentLayer; // by default
+                if( editor->currentLayer > 0) {
+                    Layer* layer2 = editor->getCurrentLayer(-1);
+                    if(layer2->type == Layer::BITMAP) {
+                        targetLayer = layer2;
+                        layerNumber = layerNumber - 1;
+                    }
+                }
+                BitmapImage* targetImage = ((LayerBitmap*)targetLayer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+                BitmapImage::floodFill( sourceImage, targetImage, lastPoint.toPoint(), qRgba(0,0,0,0), brush.colour.rgba(), 10*10, true);
+                setModified(layerNumber, editor->currentFrame);
+            }
+            // ----------------------------------------------------------------------
+            if( toolMode == EYEDROPPER) {
+                BitmapImage* targetImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+                QColor pickedColour = targetImage->pixel(lastPoint.x(), lastPoint.y());
+                if(pickedColour.alpha() != 0) editor->setColour( pickedColour );
+            }
+            // ----------------------------------------------------------------------
+            if( toolMode == PENCIL || toolMode == PEN || toolMode == ERASER || toolMode == COLOURING ) {
+                paintBitmapBuffer();
+            }
+        }
+       
+        // ======================================================================
+        if(layer->type == Layer::VECTOR) {
+            // ----------------------------------------------------------------------
+            if( toolMode == BUCKET) {
+                VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+                if(event->modifiers() == Qt::AltModifier) {
+                    vectorImage->removeArea(lastPoint);
+                } else {
+                    floodFill(vectorImage, lastPixel.toPoint(), qRgba(0,0,0,0), qRgb(200,200,200), 100*100);
+                }
+                setModified(editor->currentLayer, editor->currentFrame);
+            }
+            // ----------------------------------------------------------------------
+            if( toolMode == EYEDROPPER) {
+                VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+                int colourNumber = vectorImage->getColourNumber(lastPoint);
+                if( colourNumber != -1) {
+                    editor->selectColour( colourNumber );
+                }
+            }
+            // ----------------------------------------------------------------------
+            if( toolMode == COLOURING) {
+                // Clear the temporary pixel path
+                bufferImg->clear();
+                ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->colour(mousePath, brush.colourNumber);
+                //((LayerImage*)layer)->setModified(editor->currentFrame, true);
+                //update();
+                setModified(editor->currentLayer, editor->currentFrame);
+            }
+            // ----------------------------------------------------------------------
+            if( (toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::PEN) && mousePath.size() > -1 ) {
+                // Clear the temporary pixel path
+                bufferImg->clear();
+                qreal tol = curveSmoothing/qAbs( myView.m11() );
+                BezierCurve curve(mousePath, mousePressure, tol);
+                if(toolMode == PEN) {
+                    curve.setWidth(pen.width);
+                    curve.setFeather(0);
+                    curve.setInvisibility(false);
+                    curve.setVariableWidth(usePressure);
+                    curve.setColourNumber(pen.colourNumber);
+                } else {
+                    curve.setWidth(0);
+                    curve.setFeather(0);
+                    curve.setInvisibility(true);
+                    curve.setVariableWidth(false);
+                    curve.setColourNumber(pencil.colourNumber);
+                }
+                VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+               
+                //curve.setSelected(true);
+                //qDebug() << "this curve has " << curve.getVertexSize() << "vertices";
+               
+                vectorImage->addCurve(curve, qAbs(myView.m11()) );
+               
+                //if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) ((LayerImage*)layer)->setModified(editor->currentFrame, true);
+                //update();
+                setModified(editor->currentLayer, editor->currentFrame);
+            }
+            // ----------------------------------------------------------------------
+            if( toolMode == ScribbleArea::ERASER ) {
+                VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+                // Clear the area containing the last point
+                //vectorImage->removeArea(lastPoint);
+                // Clear the temporary pixel path
+                bufferImg->clear();
+                vectorImage->deleteSelectedPoints();
+                //update();
+                setModified(editor->currentLayer, editor->currentFrame);
+            }
+        }
+    }
+   
+    // ====================== for all kinds of layers =======================
+    // ----------------------------------------------------------------------
+    if ((toolMode == ScribbleArea::EDIT) && (event->button() == Qt::LeftButton)) {
+        if(layer->type == Layer::VECTOR) {
+            VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+            vectorImage->applySelectionTransformation();
+            selectionTransformation.reset();
+            for(int k=0; k<vectorSelection.curve.size(); k++) {
+                int curveNumber = vectorSelection.curve.at(k);
+                vectorImage->curve[curveNumber].smoothCurve();
+            }
+            setModified(editor->currentLayer, editor->currentFrame);
+        }
+    }
+    if ((toolMode == ScribbleArea::MOVE) && (event->button() == Qt::LeftButton)  && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+        offset.setX(0);
+        offset.setY(0);
+        calculateSelectionTransformation();
+        //if(layer->type == Layer::VECTOR) {
+            //    closestCurves = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getCurvesCloseTo(currentPoint, tol/myView.m11());
+            //    closestVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, tol/myView.m11());
+        //}   
+        //if(somethingSelected && layer->type == Layer::VECTOR) {
+            //editor->backup();
+            //((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->applySelectionTransformation();
+        //}
+        //if( (mySelection.width() > 1) || (mySelection.height() > 1) ) {
+            myTransformedSelection = myTempTransformedSelection;
+        //    update();
+        //}
+        //if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) ((LayerImage*)layer)->setModified(editor->currentFrame, true);
+       
+        if(layer->type == Layer::VECTOR) {
+            if(somethingSelected) {
+                //VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+                //-- we should recalculate the intersections, once the curved are moved!
+                //vectorImage->reinsertSelection();
+            }
+        }
+
+        setModified(editor->currentLayer, editor->currentFrame);
+    }
+    // ----------------------------------------------------------------------
+    if( toolMode == ScribbleArea::HAND || (event->button() == Qt::RightButton) ) {
+        bufferImg->clear();
+        if(layer->type == Layer::CAMERA) {
+            LayerCamera* layerCamera = (LayerCamera*)layer;
+            QMatrix view = layerCamera->getViewAtFrame(editor->currentFrame);
+            layerCamera->loadImageAtFrame(editor->currentFrame, view * transMatrix);
+            //Camera* camera = ((LayerCamera*)layer)->getLastCameraAtFrame(editor->currentFrame, 0);
+            //camera->view = camera->view * transMatrix;
+        } else {
+            myView =  myView * transMatrix;
+        }
+        transMatrix.reset();
+        updateAllVectorLayers();
+        //update();
+    }
+    // ----------------------------------------------------------------------
+    if( toolMode == ScribbleArea::SELECT && (event->button() == Qt::LeftButton)  && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+        if(layer->type == Layer::VECTOR) {
+            if(somethingSelected) {
+                editor->getToolSet()->changeMoveButton();
+                moveOn();
+                VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+                setSelection( vectorImage->getSelectionRect(), true );
+                if(mySelection.size() == QSizeF(0,0)) somethingSelected = false;
+            }
+        }
+        updateFrame();
+    }
+    // ----------------------------------------------------------------------
+    //update();
+    tabletInUse = false;
+}
+
+void ScribbleArea::mouseDoubleClickEvent(QMouseEvent *event)
+{
+    if( toolMode == ScribbleArea::HAND || event->button() == Qt::RightButton ) {
+        resetView();
+    } else {
+        if( toolMode == ScribbleArea::POLYLINE && BezierCurve::eLength(lastPixel.toPoint() - event->pos()) < 2.0 ) {
+            endPolyline();
+        } else {
+            mousePressEvent(event);
+        }
+    }
+}
+
+void ScribbleArea::paintBitmapBuffer() {
+    Layer* layer = editor->getCurrentLayer();
+    // ---- checks ------
+    if(layer==NULL) return;
+                // Clear the temporary pixel path
+                BitmapImage* targetImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+                if(targetImage!=NULL) {
+                    QPainter::CompositionMode cm = QPainter::CompositionMode_SourceOver;
+                    switch(toolMode) {
+                        case ERASER:
+                            cm = QPainter::CompositionMode_DestinationOut;
+                            break;
+                        case COLOURING:
+                            if(brush.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
+                            if(followContour) {
+                                // writes on the layer below
+                                if( editor->currentLayer > 0) {
+                                    Layer* layer2 = editor->getCurrentLayer(-1);
+                                    if(layer2->type == Layer::BITMAP) {
+                                        targetImage = ((LayerBitmap*)layer2)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+                                    }
+                                }
+                            }
+                            break;
+                        case PEN:
+                            if(pen.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
+                            break;
+                        case PENCIL:
+                            if(pencil.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
+                            break;
+                        default:
+                            break;
+                    }
+                    targetImage->paste(bufferImg, cm);
+                }
+                QRect rect = myTempView.mapRect(bufferImg->boundaries);
+                // Clear the buffer
+                bufferImg->clear();
+               
+                //setModified(layer, editor->currentFrame);
+                ((LayerImage*)layer)->setModified(editor->currentFrame, true);
+                emit modification();
+                QPixmapCache::remove("frame"+QString::number(editor->currentFrame));
+                readCanvasFromCache = false;
+                updateCanvas(editor->currentFrame, rect.adjusted(-1,-1,1,1) );
+                update(rect);
+}
+
+void ScribbleArea::paintEvent(QPaintEvent* event)
+{
+    //qDebug() << "paint event!" << QDateTime::currentDateTime() << event->rect(); //readCanvasFromCache << mouseInUse << editor->currentFrame;
+    QPainter painter(this);
+   
+    // draws the background (if necessary)
+    if(mouseInUse && toolMode == HAND) {
+            painter.setWorldMatrix(myTempView);
+            painter.setWorldMatrixEnabled(true);
+            painter.setPen(Qt::NoPen);
+            painter.setBrush(backgroundBrush);
+            painter.drawRect(  (myTempView).inverted().mapRect( QRect(-2,-2, width()+3, height()+3) )  ); // this is necessary to have the background move with the view
+    }
+   
+    // process the canvas (or not)
+    if(!mouseInUse && readCanvasFromCache) {
+        // --- we retrieve the canvas from the cache; we create it if it doesn't exist
+        int frameNumber = editor->getLastFrameAtFrame( editor->currentFrame );
+        if(!QPixmapCache::find("frame"+QString::number(frameNumber), canvas)) {
+            updateCanvas(editor->currentFrame, event->rect());
+            QPixmapCache::insert("frame"+QString::number(frameNumber), canvas);
+        }
+    }
+    if(toolMode == MOVE) {
+        Layer* layer = editor->getCurrentLayer();
+        if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setModified(true);
+        updateCanvas(editor->currentFrame, event->rect());
+    }
+    // paints the canvas
+    painter.setWorldMatrixEnabled(true);
+    painter.setWorldMatrix(  centralView.inverted() * transMatrix * centralView  );
+    painter.drawPixmap( QPoint(0,0), canvas );
+   
+    Layer* layer = editor->getCurrentLayer();
+    if(!layer) return;
+   
+    if(!editor->playing) {  // we don't need to display the following when the animation is playing
+        painter.setWorldMatrix(myTempView);
+       
+        if(layer->type == Layer::VECTOR) {
+            VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+           
+            if(toolMode == EDIT || toolMode == HAND) {
+                //bufferImg->clear();
+                painter.save();
+                painter.setWorldMatrixEnabled(false);
+                painter.setRenderHint(QPainter::Antialiasing, false);
+                // ----- paints the edited elements
+                QPen pen2(Qt::black, 0.5, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin);
+                painter.setPen( pen2 );
+                QColor colour;
+                // ------------ vertices of the edited curves
+                colour = QColor(200,200,200);
+                painter.setBrush( colour );
+                for(int k=0; k<vectorSelection.curve.size(); k++) {
+                    int curveNumber = vectorSelection.curve.at(k);
+                    //QPainterPath path = vectorImage->curve[curveNumber].getStrokedPath();
+                    //bufferImg->drawPath( myTempView.map(path), pen2, colour, QPainter::CompositionMode_SourceOver, false);
+                    for(int vertexNumber=-1; vertexNumber<vectorImage->getCurveSize(curveNumber); vertexNumber++) {
+                        QPointF vertexPoint = vectorImage->getVertex(curveNumber, vertexNumber);
+                        QRectF rectangle = QRectF( (myView*transMatrix*centralView).map(vertexPoint)-QPointF(3.0,3.0), QSizeF(7,7) );
+                        if(rect().contains( (myView*transMatrix*centralView).map(vertexPoint).toPoint())) {
+                           
+                            painter.drawRect( rectangle.toRect() );
+                            //bufferImg->drawRect( rectangle.toRect(), pen2, colour, QPainter::CompositionMode_SourceOver, false);
+                        }
+                    }
+                   
+                }
+                // ------------ selected vertices of the edited curves
+                colour = QColor(100,100,255);
+                painter.setBrush( colour );
+                for(int k=0; k<vectorSelection.vertex.size(); k++) {
+                    VertexRef vertexRef = vectorSelection.vertex.at(k);
+                    QPointF vertexPoint = vectorImage->getVertex(vertexRef);
+                    QRectF rectangle0 = QRectF( (myView*transMatrix*centralView).map(vertexPoint)-QPointF(3.0,3.0), QSizeF(7,7) );
+                    painter.drawRect( rectangle0.toRect() );
+                    //bufferImg->drawRect( rectangle0, pen2, colour, QPainter::CompositionMode_SourceOver, false);
+                   
+                    /* --- draws the control points -- maybe editable in a future version (although not recommended)
+                    QPointF c1Point = vectorImage->getC1(vertexRef.nextVertex());
+                    QPointF c2Point = vectorImage->getC2(vertexRef);
+                    QRectF rectangle1 = QRectF( myTempView.map(c1Point)-QPointF(3.0,3.0), QSize(7,7) );
+                    QRectF rectangle2 = QRectF( myTempView.map(c2Point)-QPointF(3.0,3.0), QSize(7,7) );
+                    bufferImg->drawLine( myTempView.map(vertexPoint), myTempView.map(c1Point), colour, QPainter::CompositionMode_SourceOver, antialiasing);
+                    bufferImg->drawLine( myTempView.map(vertexPoint), myTempView.map(c2Point), colour, QPainter::CompositionMode_SourceOver, antialiasing);
+                    bufferImg->drawRect( rectangle0, pen2, colour, QPainter::CompositionMode_SourceOver, false);
+                    bufferImg->drawEllipse( rectangle1, pen2, Qt::white, QPainter::CompositionMode_SourceOver, false);
+                    bufferImg->drawEllipse( rectangle2, pen2, Qt::white, QPainter::CompositionMode_SourceOver, false);*/
+                }
+                // ----- paints the closest vertices
+                colour = QColor(255,0,0);
+                painter.setBrush( colour );
+                if( vectorSelection.curve.size() > 0 ) {
+                    for(int k=0; k<closestVertices.size(); k++) {
+                        VertexRef vertexRef = closestVertices.at(k);
+                        QPointF vertexPoint = vectorImage->getVertex(vertexRef);
+                        //if( vectorImage->isSelected(vertexRef) ) vertexPoint = selectionTransformation.map( vertexPoint );
+                        QRectF rectangle = QRectF( (myView*transMatrix*centralView).map(vertexPoint)-QPointF(3.0,3.0), QSizeF(7,7) );
+                        painter.drawRect( rectangle.toRect() );
+                        //bufferImg->drawRect( rectangle.toRect(), pen2, colour, QPainter::CompositionMode_SourceOver, false);
+                    }
+                }
+                painter.restore();
+            }
+
+            if(toolMode == MOVE) {
+                // ----- paints the closest curves
+                bufferImg->clear();
+                QPen pen2(Qt::black, 0.5, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin);
+                QColor colour = QColor(100,100,255);
+                for(int k=0; k<closestCurves.size(); k++) {
+                    qreal scale = myTempView.det();
+                    BezierCurve myCurve = vectorImage->curve[closestCurves[k]];
+                    if(myCurve.isPartlySelected()) myCurve.transform( selectionTransformation );
+                    QPainterPath path = myCurve.getStrokedPath(1.2/scale, false);
+                    bufferImg->drawPath( (myView*transMatrix*centralView).map(path), pen2, colour, QPainter::CompositionMode_SourceOver, antialiasing);
+                }
+            }
+
+        }
+       
+        // paints the  buffer image
+        if(editor->getCurrentLayer() != NULL) {
+            painter.setOpacity(1.0);
+            if(editor->getCurrentLayer()->type == Layer::BITMAP) painter.setWorldMatrixEnabled(true);
+            if(editor->getCurrentLayer()->type == Layer::VECTOR) painter.setWorldMatrixEnabled(false);
+            bufferImg->paintImage(painter);
+        }
+       
+        // paints the selection outline
+        if( somethingSelected && myTempTransformedSelection.isValid() ) {
+            // outline of the transformed selection
+            painter.setWorldMatrixEnabled(false);
+            painter.setOpacity(1.0);
+            QPolygon tempRect = (myView*transMatrix*centralView).mapToPolygon( myTempTransformedSelection.normalized().toRect() );
+           
+            Layer* layer = editor->getCurrentLayer();
+            if(layer != NULL) {
+                if(layer->type == Layer::BITMAP) {
+                    painter.setBrush(Qt::NoBrush);
+                    painter.setPen(Qt::DashLine);
+                }
+                if(layer->type == Layer::VECTOR) {
+                    painter.setBrush(QColor(0,0,0,20));
+                    painter.setPen(Qt::gray);
+                }
+                painter.drawPolygon( tempRect );
+               
+                if(layer->type != Layer::VECTOR || toolMode != SELECT) {
+                    painter.setPen(Qt::SolidLine);
+                    painter.setBrush(QBrush(Qt::gray));
+                    painter.drawRect( tempRect.point(0).x()-3, tempRect.point(0).y()-3, 6, 6 );
+                    painter.drawRect( tempRect.point(1).x()-3, tempRect.point(1).y()-3, 6, 6 );
+                    painter.drawRect( tempRect.point(2).x()-3, tempRect.point(2).y()-3, 6, 6 );
+                    painter.drawRect( tempRect.point(3).x()-3, tempRect.point(3).y()-3, 6, 6 );
+                }
+            }
+        }
+         
+    }
+    // clips to the frame of the camera
+    if(layer->type == Layer::CAMERA) {
+        QRect rect = ((LayerCamera*)layer)->getViewRect();
+        rect.translate( width()/2, height()/2 );
+        painter.setWorldMatrixEnabled(false);
+        painter.setPen(Qt::NoPen);
+        painter.setBrush(QColor(0,0,0,160));
+        painter.drawRect( QRect(0, 0, width(), (height() - rect.height())/2) );
+        painter.drawRect( QRect(0, rect.bottom(), width(), (height() - rect.height())/2) );
+        painter.drawRect( QRect(0, rect.top(), (width() - rect.width())/2, rect.height()-1) );
+        painter.drawRect( QRect((width() + rect.width())/2, rect.top(), (width() - rect.width())/2, rect.height()-1) );
+        painter.setPen(Qt::black);
+        painter.setBrush(Qt::NoBrush);
+        painter.drawRect(rect);
+    }
+    // outlines the frame of the viewport
+    painter.setWorldMatrixEnabled(false);
+    painter.setPen( QPen(Qt::gray, 2) );
+    painter.setBrush(Qt::NoBrush);
+    painter.drawRect(QRect(0,0, width(), height()));
+    // shadow
+    if(shadows && !editor->playing && (!mouseInUse || toolMode == HAND)) {
+        int radius1 = 12;
+        int radius2 = 8;
+        QLinearGradient shadow = QLinearGradient( 0, 0, 0, radius1);
+        setGaussianGradient(shadow, Qt::black, 0.15, 0.0);
+        painter.setPen(Qt::NoPen);
+        painter.setBrush(shadow);
+        painter.drawRect(QRect(0,0, width(), radius1));
+        shadow.setFinalStop(radius1, 0);
+        painter.setBrush(shadow);
+        painter.drawRect(QRect(0,0, radius1, height()));
+        shadow.setStart(0, height());
+        shadow.setFinalStop(0, height()-radius2);
+        painter.setBrush(shadow);
+        painter.drawRect(QRect(0,height()-radius2, width(), height()));
+        shadow.setStart(width(), 0);
+        shadow.setFinalStop(width()-radius2, 0);
+        painter.setBrush(shadow);
+        painter.drawRect(QRect(width()-radius2,0, width(), height()));
+    }
+    event->accept();
+}
+
+void ScribbleArea::updateCanvas(int frame, QRect rect)
+{   
+    //qDebug() << "paint canvas!" << QDateTime::currentDateTime();
+    // merge the different layers into the ScribbleArea
+    QPainter painter(&canvas);
+    if(myTempView.det() == 1.0) {
+        painter.setRenderHint(QPainter::SmoothPixmapTransform, false);
+    } else {
+        painter.setRenderHint(QPainter::SmoothPixmapTransform, antialiasing);
+    }
+    painter.setClipRect(rect);
+    painter.setClipping(true);
+    setView();
+    painter.setWorldMatrix(myTempView);
+    painter.setWorldMatrixEnabled(true);
+       
+    // background
+    painter.setPen(Qt::NoPen);
+    painter.setBrush(backgroundBrush);
+    painter.drawRect(  myTempView.inverted().mapRect( QRect(-2,-2, width()+3, height()+3) )  ); // this is necessary to have the background move with the view
+   
+    // grid
+    bool drawGrid = false;
+    if(drawGrid) {
+        painter.setOpacity(1.0);
+        painter.setPen(Qt::gray);
+        painter.setBrush(Qt::NoBrush);
+        // What kind of grid do we want?
+        //painter.drawRect(QRect(0,0, mySize.width(), mySize.height()));
+        //painter.drawLine( QPoint(0,mySize.height()/2), QPoint(mySize.width(), mySize.height()/2) );
+        //painter.drawLine( QPoint(mySize.width()/3, 0), QPoint(mySize.width()/3, mySize.height()) );
+        //painter.drawLine( QPoint(mySize.width()*2/3, 0), QPoint(mySize.width()*2/3, mySize.height()) );
+    }
+
+    int tempFrame = frame;
+   
+    Object* object = editor->object;
+    qreal opacity;
+    for(int i=0; i < object->getLayerCount(); i++) {
+        opacity = 1.0;
+        if(i != editor->currentLayer && (showAllLayers == 1)) { opacity = 0.4; }
+        if(editor->getCurrentLayer()->type == Layer::CAMERA) opacity = 1.0;
+        Layer* layer = (object->getLayer(i));
+        if(layer->visible && (showAllLayers>0 || i == editor->currentLayer)) {
+            // paints the bitmap images
+            if(layer->type == Layer::BITMAP) {
+                LayerBitmap* layerBitmap = (LayerBitmap*)layer;
+                BitmapImage* bitmapImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+                if(bitmapImage != NULL) {
+                    painter.setWorldMatrixEnabled(true);
+                   
+                    // straight ahead (onion skin)
+                    BitmapImage* straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+                    tempFrame = frame;                   
+                    if(onionStraightAhead && onion) {
+                        for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+                            tempFrame = editor->getPrevKey(tempFrame);
+                            straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(tempFrame, 0);
+                            if(tempFrame == 1 || tempFrame == layerBitmap->getMaxFrame()) {
+                                frames = onionStraightAheadFrames;
+                                straightAheadImage = NULL;
+                            }
+                            if(straightAheadImage != NULL) {
+                                painter.setOpacity(opacity*onionOpacity);
+                                straightAheadImage->paintImage(painter);
+                            }
+                        }
+                    }                   
+
+                    //painter.drawImage(previousImage->topLeft(), *(previousImage->image) );
+                   
+                    // inbetween frame (onion skin)
+                    BitmapImage* inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+                   
+                    if(onionInbetween && onion) {
+                        painter.setOpacity(opacity*onionOpacity);                       
+                        if(onionPreviousPrevious) {
+                            inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0);
+                            inbetweenImage->paintImage(painter);
+                        }
+                        if(onionPrevious) {
+                            inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(frame), 0);
+                            inbetweenImage->paintImage(painter);
+                        }
+                        if(onionNext) {
+                            inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(frame), 0);
+                            inbetweenImage->paintImage(painter);
+                        }
+                        if(onionNextNext) {
+                            inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0);
+                            inbetweenImage->paintImage(painter);
+                        }
+                    }
+                   
+                    // current frame
+                    painter.setOpacity(opacity);
+                    if(i==editor->currentLayer && somethingSelected && (myTempTransformedSelection != mySelection) ) {
+                        // hole in the original selection -- might support arbitrary shapes in the future
+                        painter.setClipping(true);
+                        QRegion clip = QRegion(mySelection.toRect());
+                        QRegion totalImage = QRegion( myTempView.inverted().mapRect( QRect(-2,-2, width()+3, height()+3) ) );
+                        QRegion ImageWithHole = totalImage-=clip;
+                        painter.setClipRegion(ImageWithHole, Qt::ReplaceClip);
+                        //painter.drawImage(bitmapImage->topLeft(), *(bitmapImage->image) );
+                        bitmapImage->paintImage(painter);
+                        painter.setClipping(false);
+                        // transforms the bitmap selection
+                        bool smoothTransform = false;
+                        if(myTempTransformedSelection.width() != mySelection.width() || myTempTransformedSelection.height() != mySelection.height() ) smoothTransform = true;
+                        BitmapImage selectionClip = bitmapImage->copy(mySelection.toRect());
+                        selectionClip.transform(myTempTransformedSelection, smoothTransform);
+                        selectionClip.paintImage(painter);
+                        //painter.drawImage(selectionClip.topLeft(), *(selectionClip.image));
+                    } else {
+                        //painter.drawImage(bitmapImage->topLeft(), *(bitmapImage->image) );
+                        bitmapImage->paintImage(painter);
+                    }
+                    //painter.setPen(Qt::red);
+                    //painter.setBrush(Qt::NoBrush);
+                    //painter.drawRect(bitmapImage->boundaries);
+                }
+            }
+            // paints the vector images
+            if(layer->type == Layer::VECTOR) {
+                LayerVector* layerVector = (LayerVector*)layer;
+                VectorImage* vectorImage = layerVector->getLastVectorImageAtFrame(frame, 0);
+                if( somethingSelected ) {
+                    // transforms the vector selection
+                    //calculateSelectionTransformation();
+                    vectorImage->setSelectionTransformation(selectionTransformation);
+                    //vectorImage->setTransformedSelection(myTempTransformedSelection);
+                }
+                QImage* image = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                if(image != NULL) {
+                    painter.setWorldMatrixEnabled(false);
+                   
+                    // straight ahead (onion skin)
+                    QImage* straightAheadImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                    tempFrame = frame;                   
+                    if(onionStraightAhead && onion) {
+                        for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+                            tempFrame = editor->getPrevKey(tempFrame);                           
+                            straightAheadImage = layerVector->getLastImageAtFrame(tempFrame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);                       
+                            if(tempFrame == 1 || tempFrame == layerVector->getMaxFrame()) {
+                                frames = onionStraightAheadFrames;
+                                straightAheadImage = NULL;                           
+                            }
+                            if(straightAheadImage != NULL) {
+                                painter.setOpacity(onionOpacity*opacity);
+                                painter.drawImage(QPoint(0, 0), *straightAheadImage);
+                            }
+                        }                   
+                    }
+                   
+                    // inbetween (onion skin)
+                    QImage* inbetweenImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                    if(onionInbetween && onion) {
+                        painter.setOpacity(onionOpacity*opacity);
+                        if(onionPreviousPrevious) {
+                            inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                            painter.drawImage(QPoint(0, 0), *inbetweenImage);
+                        }
+                        if(onionPrevious) {
+                            inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                            painter.drawImage(QPoint(0, 0), *inbetweenImage);
+                        }                                               
+                        if(onionNext) {
+                            inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                            painter.drawImage(QPoint(0, 0), *inbetweenImage);
+                        }
+                        if(onionNextNext) {
+                            inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+                            painter.drawImage(QPoint(0, 0), *inbetweenImage);
+                        }
+                    }
+                   
+                    // current frame
+                    painter.setOpacity(opacity);
+                    painter.drawImage(QPoint(0, 0), *image);
+                }
+            }
+        }
+    }
+    painter.end();
+}
+
+void ScribbleArea::setGaussianGradient(QGradient &gradient, QColor colour, qreal opacity, qreal offset) {
+    int r = colour.red();
+    int g = colour.green();
+    int b = colour.blue();
+    qreal a = colour.alphaF();
+            gradient.setColorAt(0.0, QColor(r, g, b, qRound(a*255*opacity)) );
+            gradient.setColorAt(offset+0.0*(1.0-offset), QColor(r, g, b, qRound(a*255*opacity)) );
+            gradient.setColorAt(offset+0.1*(1.0-offset), QColor(r, g, b, qRound(a*245*opacity)) );
+            gradient.setColorAt(offset+0.2*(1.0-offset), QColor(r, g, b, qRound(a*217*opacity)) );
+            gradient.setColorAt(offset+0.3*(1.0-offset), QColor(r, g, b, qRound(a*178*opacity)) );
+            gradient.setColorAt(offset+0.4*(1.0-offset), QColor(r, g, b, qRound(a*134*opacity)) );
+            gradient.setColorAt(offset+0.5*(1.0-offset), QColor(r, g, b, qRound(a*94*opacity)) );
+            gradient.setColorAt(offset+0.6*(1.0-offset), QColor(r, g, b, qRound(a*60*opacity)) );
+            gradient.setColorAt(offset+0.7*(1.0-offset), QColor(r, g, b, qRound(a*36*opacity)) );
+            gradient.setColorAt(offset+0.8*(1.0-offset), QColor(r, g, b, qRound(a*20*opacity)) );
+            gradient.setColorAt(offset+0.9*(1.0-offset), QColor(r, g, b, qRound(a*10*opacity)) );
+            gradient.setColorAt(offset+1.0*(1.0-offset), QColor(r, g, b, 0) );
+}
+
+void ScribbleArea::drawBrush(QPointF thePoint, qreal brushWidth, qreal offset, QColor fillColour, qreal opacity) {
+    QRadialGradient radialGrad(thePoint, 0.5*brushWidth);
+    setGaussianGradient(radialGrad, fillColour, opacity, offset);
+   
+    //radialGrad.setCenter( thePoint );
+    //radialGrad.setFocalPoint( thePoint );
+               
+    QRectF rectangle(thePoint.x()-0.5*brushWidth, thePoint.y()-0.5*brushWidth, brushWidth, brushWidth);
+   
+    BitmapImage* tempBitmapImage = new BitmapImage(NULL);
+    if(followContour) {
+        tempBitmapImage = new BitmapImage(NULL, rectangle.toRect(), QColor(0,0,0,0));
+        //tempBitmapImage->drawRect( rectangle, Qt::NoPen, QColor(0,0,0,0), QPainter::CompositionMode_Source, antialiasing);
+            Layer* layer = editor->getCurrentLayer();
+            if(layer == NULL) return;
+            int index = ((LayerImage*)layer)->getLastIndexAtFrame(editor->currentFrame);
+            if(index == -1) return;
+            BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+            if(bitmapImage == NULL) { qDebug() << "NULL image pointer!" << editor->currentLayer << editor->currentFrame;  return; }
+        BitmapImage::floodFill(bitmapImage, tempBitmapImage, thePoint.toPoint(), qRgba(255,255,255,0), fillColour.rgb(), 20*20, false);
+        tempBitmapImage->drawRect( rectangle.toRect(), Qt::NoPen, radialGrad, QPainter::CompositionMode_SourceIn, antialiasing);
+    } else {
+        tempBitmapImage = new BitmapImage(NULL);
+        tempBitmapImage->drawRect( rectangle, Qt::NoPen, radialGrad, QPainter::CompositionMode_Source, antialiasing);
+    }
+   
+    bufferImg->paste(tempBitmapImage);
+    delete tempBitmapImage;
+}
+
+void ScribbleArea::drawLineTo(const QPointF &endPixel, const QPointF &endPoint)
+{   
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+   
+    if(layer->type == Layer::BITMAP) {
+        //int index = ((LayerImage*)layer)->getLastIndexAtFrame(editor->currentFrame);
+        //if(index == -1) return;
+        //BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+        //if(bitmapImage == NULL) { qDebug() << "NULL image pointer!" << editor->currentLayer << editor->currentFrame;  return; }
+       
+        if (toolMode == ScribbleArea::ERASER) {
+            QPen pen2 = QPen ( QBrush(QColor(255,255,255,255)), currentWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin );
+            bufferImg->drawLine(lastPoint, endPoint, pen2, QPainter::CompositionMode_SourceOver, antialiasing);
+            int rad = qRound(currentWidth / 2) + 2;
+            update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+        }
+        if(toolMode == ScribbleArea::PENCIL) {
+            QPen pen2 = QPen ( QBrush(currentColour), currentWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin );
+            bufferImg->drawLine(lastPoint, endPoint, pen2, QPainter::CompositionMode_SourceOver, antialiasing);
+            int rad = qRound(currentWidth / 2) + 3;
+            update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+        }
+        if(toolMode == ScribbleArea::PEN) {
+            QPen pen2 = QPen ( QBrush(pen.colour), currentWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin );
+            bufferImg->drawLine(lastPoint, endPoint, pen2, QPainter::CompositionMode_SourceOver, antialiasing);
+            int rad = qRound(currentWidth / 2) + 3;
+            update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+        }
+        if(toolMode == ScribbleArea::COLOURING) {
+            qreal opacity = 1.0;
+            qreal brushWidth = brush.width +  0.5*brush.feather;
+            qreal offset = qMax(0.0,brush.width-0.5*brush.feather)/brushWidth;
+            if(tabletInUse) opacity = tabletPressure;
+            if(usePressure) brushWidth = brushWidth*tabletPressure;
+           
+            qreal distance = 4*QLineF(endPoint, lastBrushPoint).length();
+            qreal brushStep = 0.5*brush.width + 0.5*brush.feather;
+            if(usePressure) brushStep = brushStep*tabletPressure;
+            brushStep = qMax(1.0, brushStep);
+            int steps = qRound( distance)/brushStep ;
+           
+            for(int i=0; i<steps; i++) {
+                QPointF thePoint = lastBrushPoint + (i+1)*(brushStep)*(endPoint -lastBrushPoint)/distance;
+                drawBrush( thePoint, brushWidth, offset, brush.colour, opacity);
+                if(i==steps-1) lastBrushPoint = thePoint;
+            }
+           
+            int rad = qRound(brushWidth / 2) + 3;
+            update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+        }
+    }
+    if(layer->type == Layer::VECTOR) {
+        if (toolMode == ScribbleArea::ERASER) {
+            bufferImg->drawLine(lastPixel, currentPixel, QPen(Qt::white, currentWidth, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+            int rad = qRound(  (currentWidth/2 + 2)*qAbs( myTempView.m11() )  );
+            update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+        }
+        if(toolMode == ScribbleArea::PENCIL) {
+            bufferImg->drawLine(lastPixel, currentPixel, QPen(currentColour, 1, Qt::DotLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+            int rad = qRound(  ( currentWidth/2 + 2)*qAbs( myTempView.m11() )  );
+            update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+        }
+        if(toolMode == ScribbleArea::PEN) {
+            bufferImg->drawLine(lastPixel, currentPixel, QPen(pen.colour, currentWidth*myTempView.m11(), Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+            int rad = qRound(  (currentWidth/2 + 2)* (qAbs(myTempView.m11())+qAbs(myTempView.m22())) );
+            update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+        }
+        if(toolMode == ScribbleArea::COLOURING) {
+            bufferImg->drawLine(lastPixel, currentPixel, QPen(Qt::gray, 1, Qt::DashLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+            int rad = qRound(   (currentWidth/2 + 2)*qAbs( myTempView.m11() )   );
+            update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+        }
+    }
+   
+    //emit modification();
+   
+    lastPixel = endPixel;
+    lastPoint = endPoint;
+}
+
+void ScribbleArea::drawEyedropperPreview(const QColor colour) {
+    QPainter painter( eyedropperCursor );
+    painter.setPen(QPen(Qt::black, 1, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin));
+    painter.setBrush(colour);
+    painter.drawRect( 10, 10, 20, 20);
+    painter.end();
+    setCursor( QCursor(*eyedropperCursor, 5, 5) );
+}
+
+void ScribbleArea::drawPolyline() {
+    if(toolMode == POLYLINE) {
+        if(mousePoints.size()>0) {
+            QPen pen2(pen.colour, pen.width, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin);
+            QPainterPath tempPath = BezierCurve(mousePoints).getSimplePath();
+            tempPath.lineTo(currentPoint);
+            QRect updateRect = myTempView.mapRect(tempPath.boundingRect().toRect()).adjusted(-10,-10,10,10);
+            if(editor->getCurrentLayer()->type == Layer::VECTOR) {
+                tempPath = myTempView.map( tempPath );
+                if(makeInvisible) { pen2.setWidth(0); pen2.setStyle(Qt::DotLine);} else pen2.setWidth(pen.width*myTempView.m11());
+            }
+            bufferImg->clear();
+            bufferImg->drawPath( tempPath, pen2, Qt::NoBrush, QPainter::CompositionMode_SourceOver, antialiasing);
+            update(  updateRect  );
+            //update( QRect(lastPixel.toPoint(), currentPixel.toPoint()).normalized() );
+            //bufferImg->drawRect(tempPath.boundingRect().toRect());
+            //update( QRect(lastPixel.toPoint()-QPoint(10,10), lastPixel.toPoint()+QPoint(10,10)) );
+            //update();
+        }
+    }
+}
+
+void ScribbleArea::endPolyline()
+{
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) {
+        BezierCurve curve = BezierCurve(mousePoints);
+        if(makeInvisible) curve.setWidth(0); else curve.setWidth(pen.width);
+        curve.setColourNumber( pen.colourNumber );
+        curve.setVariableWidth(false);
+        curve.setInvisibility(makeInvisible);
+        //curve.setSelected(true);
+        ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->addCurve(curve, qAbs(myTempView.m11()) );
+    }
+    if(layer->type == Layer::BITMAP) {
+        drawPolyline();
+        BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+        bitmapImage->paste(bufferImg);
+    }
+    bufferImg->clear();
+    while(!mousePoints.isEmpty()) mousePoints.removeAt(0); // empty the mousePoints
+    setModified(editor->currentLayer, editor->currentFrame);
+}
+
+
+void ScribbleArea::resizeEvent(QResizeEvent *event)
+{
+    //resize( size() );
+    QWidget::resizeEvent(event);
+    canvas = QPixmap(size());
+    recentre();
+    updateAllFrames();
+}
+
+void ScribbleArea::recentre() {
+    centralView = QMatrix(1,0,0,1, 0.5*width(), 0.5*height());
+    setView();
+    QPixmapCache::clear();
+    update();
+}
+
+void ScribbleArea::setMyView(QMatrix view) {
+    myView = view;
+}
+
+QMatrix ScribbleArea::getMyView() {
+    return myView;
+}
+
+void ScribbleArea::setView() {
+    setView(getView());
+}
+
+void ScribbleArea::setView(QMatrix view) {
+    for(int i=0; i < editor->object->getLayerCount() ; i++) {
+        Layer* layer = editor->object->getLayer(i);
+        if(layer->type == Layer::VECTOR) {
+            ((LayerVector*)layer)->setView(view * centralView);
+        }
+    }
+    myTempView = view * centralView;
+}
+
+void ScribbleArea::resetView() {
+    editor->resetMirror();
+    myView.reset();
+    myTempView = myView * centralView;
+    recentre();
+}
+
+QMatrix ScribbleArea::getView() {
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return QMatrix(); // error
+    if(layer->type == Layer::CAMERA) {
+        return ((LayerCamera*)layer)->getViewAtFrame(editor->currentFrame);
+        qDebug() << "viewCamera" << ((LayerCamera*)layer)->getViewAtFrame(editor->currentFrame);
+    } else {
+        return myView;
+    }
+}
+
+QRectF ScribbleArea::getViewRect() {
+    QRectF rect =  QRectF( -width()/2, -height()/2, width(), height() );
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return rect;
+    if(layer->type == Layer::CAMERA) {
+        return ((LayerCamera*)layer)->getViewRect();
+    } else {
+        return rect;
+    }
+}
+
+QPointF ScribbleArea::getCentralPoint() {
+    return myTempView.inverted().map( QPoint(width()/2, height()/2) );
+}
+
+void ScribbleArea::calculateSelectionRect() {
+    selectionTransformation.reset();
+    Layer* layer = editor->getCurrentLayer();
+    if(layer==NULL) return;
+    if(layer->type == Layer::VECTOR) {
+        VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+        vectorImage->calculateSelectionRect();
+        setSelection( vectorImage->getSelectionRect(), true );
+    }
+}
+
+void ScribbleArea::calculateSelectionTransformation() {
+    qreal c1x, c1y , c2x, c2y, scaleX, scaleY;
+    c1x = 0.5*(myTempTransformedSelection.left()+myTempTransformedSelection.right());
+    c1y = 0.5*(myTempTransformedSelection.top()+myTempTransformedSelection.bottom());
+    c2x = 0.5*(mySelection.left()+mySelection.right());
+    c2y = 0.5*(mySelection.top()+mySelection.bottom());
+    if(mySelection.width() == 0) { scaleX = 1.0; } else { scaleX = myTempTransformedSelection.width()/mySelection.width(); }
+    if(mySelection.height() == 0) { scaleY = 1.0; } else { scaleY = myTempTransformedSelection.height()/mySelection.height(); }
+    selectionTransformation.reset();
+    selectionTransformation.translate(c1x,c1y);
+    selectionTransformation.scale(scaleX, scaleY);
+    selectionTransformation.translate(-c2x,-c2y);
+    //modification();
+}
+
+void ScribbleArea::paintTransformedSelection() {
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+   
+    if(somethingSelected) {  // there is something selected
+        if(layer->type == Layer::BITMAP && (myTransformedSelection != mySelection) ) {
+            //backup();
+            BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+            if(bitmapImage == NULL) { qDebug() << "NULL image pointer!" << editor->currentLayer << editor->currentFrame;  return; }
+           
+            bool smoothTransform = false;
+            if(myTransformedSelection.width() != mySelection.width() || myTransformedSelection.height() != mySelection.height() ) smoothTransform = true;
+            BitmapImage selectionClip = bitmapImage->copy(mySelection.toRect());
+            selectionClip.transform( myTransformedSelection, smoothTransform );
+            bitmapImage->clear(mySelection.toRect());
+            bitmapImage->paste(&selectionClip);
+        }
+        if(layer->type == Layer::VECTOR) {
+            // vector transformation
+            LayerVector* layerVector = (LayerVector*)layer;
+            VectorImage* vectorImage = layerVector->getLastVectorImageAtFrame(editor->currentFrame, 0);
+            vectorImage->applySelectionTransformation();
+            selectionTransformation.reset();
+        }
+        //deselectAll();
+        //emit modification();
+        setModified(editor->currentLayer, editor->currentFrame);
+    }
+}
+
+void ScribbleArea::setSelection(QRectF rect, bool trueOrFalse) {
+    mySelection = rect;
+    myTransformedSelection = rect;
+    myTempTransformedSelection = rect;
+    somethingSelected = trueOrFalse;
+    displaySelectionProperties();
+}
+
+void ScribbleArea::displaySelectionProperties() {
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) {
+        LayerVector* layerVector = (LayerVector*)layer;
+        VectorImage* vectorImage = layerVector->getLastVectorImageAtFrame(editor->currentFrame, 0);
+        //vectorImage->applySelectionTransformation();
+        if(toolMode == MOVE) {
+            //if(closestCurves.size()>0) {
+            int selectedCurve = vectorImage->getFirstSelectedCurve();
+            if(selectedCurve != -1) {
+                editor->setWidth(vectorImage->curve[selectedCurve].getWidth());
+                editor->setFeather(vectorImage->curve[selectedCurve].getFeather());
+                editor->setOpacity(0);
+                editor->setInvisibility(vectorImage->curve[selectedCurve].isInvisible());
+                editor->setPressure(vectorImage->curve[selectedCurve].getVariableWidth());
+                editor->selectColour(vectorImage->curve[selectedCurve].getColourNumber());
+            }
+           
+            int selectedArea = vectorImage->getFirstSelectedArea();
+            if(selectedArea != -1) {
+                editor->selectColour(vectorImage->area[selectedArea].colourNumber);
+                //editor->setFeather(vectorImage->area[selectedArea].getFeather());
+            }
+        }
+    }
+}
+
+void ScribbleArea::selectAll() {
+    offset.setX(0); offset.setY(0);
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+    if(layer->type == Layer::BITMAP) {
+        setSelection( myTempView.inverted().mapRect( QRect(-2,-2, width()+3, height()+3) ), true ); // TO BE IMPROVED
+    }
+    if(layer->type == Layer::VECTOR) {
+        VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+        vectorImage->selectAll();
+        setSelection( vectorImage->getSelectionRect(), true );
+    }
+    updateFrame();
+}
+
+void ScribbleArea::deselectAll() {
+    offset.setX(0); offset.setY(0);
+    selectionTransformation.reset();
+    mySelection.setRect(10,10,20,20);
+    myTransformedSelection.setRect(10,10,20,20);
+    myTempTransformedSelection.setRect(10,10,20,20);
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) {
+        ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deselectAll();
+        if(toolMode == MOVE) {
+            editor->setWidth(-1);
+            editor->setOpacity(-1);
+            editor->setInvisibility(-1);
+            editor->setPressure(-1);
+        }
+    }
+    somethingSelected = false;
+    bufferImg->clear();
+    vectorSelection.clear();
+    while(!mousePoints.isEmpty()) mousePoints.removeAt(0); // empty the mousePoints
+    updateFrame();
+}
+
+void ScribbleArea::onionChangeSlot1() {
+    onionChangeSlot(1);
+}
+
+void ScribbleArea::onionChangeSlot2() {
+    onionChangeSlot(2);
+}
+
+void ScribbleArea::onionIsOn() {
+    onion = !onion;
+    updateAllFrames();
+    ScribbleArea::setFocus();
+}
+
+void ScribbleArea::onionChangeSlot(int onionIndex) {
+    switch(onionIndex){
+        case 1 :{
+            ScribbleArea::onionStraightAhead = true;
+            ScribbleArea::onionInbetween = false;
+            break;
+        }   
+        case 2 :{
+            ScribbleArea::onionStraightAhead = false;
+            ScribbleArea::onionInbetween = true;
+            break;
+        }
+    }
+    updateAllFrames();
+}
+
+void ScribbleArea::onionOpacityLevel(int opacityInteger) {
+    onionOpacity = (opacityInteger/100);
+    updateAllFrames();
+}
+
+void ScribbleArea::onionStraightAheadLevel(int numberOfFrames) {
+    onionStraightAheadFrames = numberOfFrames;
+    updateAllFrames();
+}
+
+void ScribbleArea::onionPreviousPreviousLevel(int boolean) {
+    if(boolean) onionPreviousPrevious = true;
+    else onionPreviousPrevious = false;
+    updateAllFrames();
+}
+
+void ScribbleArea::onionPreviousLevel(int boolean) {
+    if(boolean) onionPrevious = true;
+    else onionPrevious = false;
+    updateAllFrames();
+}
+
+void ScribbleArea::onionNextLevel(int boolean) {
+    if(boolean) onionNext = true;
+    else onionNext = false;
+    updateAllFrames();
+}
+
+void ScribbleArea::onionNextNextLevel(int boolean) {
+    if(boolean) onionNextNext = true;
+    else onionNextNext = false;
+    updateAllFrames();
+}
+
+void ScribbleArea::floodFill(VectorImage* vectorImage, QPoint point, QRgb targetColour, QRgb replacementColour, int tolerance) {
+    bool invertible;
+    QPointF initialPoint = myTempView.inverted(&invertible).map(QPointF(point));
+    // Step 1: peforms a standard (pixel-based) flood fill, and finds the vertices on the contour of the filled area
+    qreal tol = 8.0/qAbs(myTempView.m11()); // tolerance for finding vertices along the contour of the flood-filled area
+    qreal tol2 = 1.5/qAbs(myTempView.m11()); // tolerance for connecting contour vertices from different curves // should be small as close points of different curves are supposed to coincide
+    QList<QPoint> queue; // queue all the pixels of the filled area (as they are found)
+    QList<QPoint> contourPixels; // list of the pixels near the contour of the filled area
+    int j, k; bool condition;
+    //vectorImage->update(true, showThinLines); // update the vector image with simplified curves (all width=1)
+    QImage* targetImage = new QImage(size(), QImage::Format_ARGB32_Premultiplied);
+    vectorImage->outputImage(targetImage, size(), myTempView, true, showThinLines, 1.0, true, false); // the target image is the vector image with simplified curves (all width=1)
+    //QImage* replaceImage = &bufferImg;
+    QImage* replaceImage = new QImage( size(), QImage::Format_ARGB32_Premultiplied);
+    QList<VertexRef> points = vectorImage->getAllVertices(); // refs of all the points
+    QList<VertexRef> boxPoints; // refs of points inside the bounding box
+    QList<VertexRef> contourPoints; // refs of points near the contour pixels
+    QList<VertexRef> vertices;
+    if(  BitmapImage::rgbDistance(targetImage->pixel(point.x(), point.y()), targetColour) > tolerance ) return;
+    queue.append( point );
+    int boxLeft = point.x();
+    int boxRight = point.x();
+    int boxTop = point.y();
+    int boxBottom = point.y();
+    // ----- flood fill and remember the contour pixels -> contourPixels
+    // ----- from the standard flood fill algorithm
+    // ----- http://en.wikipedia.org/wiki/Flood_fill
+    j = -1; k = 1;
+    for(int i=0; i< queue.size(); i++ ) {
+        point = queue.at(i);
+        if(  replaceImage->pixel(point.x(), point.y()) != replacementColour  && BitmapImage::rgbDistance(targetImage->pixel(point.x(), point.y()), targetColour) < tolerance ) {
+            //image.setPixel( point.x(), point.y(), replacementColour);
+            j = -1; condition =  (point.x() + j > 0);
+            while( replaceImage->pixel(point.x()+j, point.y()) != replacementColour  && BitmapImage::rgbDistance(targetImage->pixel( point.x()+j, point.y() ), targetColour) < tolerance && condition) {
+                j = j - 1;
+                condition =  (point.x() + j > 0);
+            }
+            if(!condition) { floodFillError(1); return; }
+            if( BitmapImage::rgbDistance(targetImage->pixel( point.x()+j, point.y() ), targetColour) >= tolerance ) {  // bumps into the contour
+                contourPixels.append( point+QPoint(j,0) );
+            }
+           
+            k = 1; condition = ( point.x() + k < targetImage->width()-1);
+            while( replaceImage->pixel(point.x()+k, point.y()) != replacementColour  && BitmapImage::rgbDistance(targetImage->pixel( point.x()+k, point.y() ), targetColour) < tolerance && condition) {
+                k = k + 1;
+                condition = ( point.x() + k < targetImage->width()-1);
+            }
+            if(!condition) { floodFillError(1); return; }
+            if( BitmapImage::rgbDistance(targetImage->pixel( point.x()+k, point.y() ), targetColour) >= tolerance ) {  // bumps into the contour
+                contourPixels.append( point + QPoint(k,0) );
+            }
+            if(point.x()+k > boxRight) boxRight = point.x()+k;
+            if(point.x()+j < boxLeft) boxLeft = point.x()+j;
+            for(int x = j+1; x < k; x++) {
+                replaceImage->setPixel( point.x()+x, point.y(), replacementColour);
+                if(point.y() - 1 > 0 && queue.size() < targetImage->height() * targetImage->width() ) {
+                    if( replaceImage->pixel(point.x()+x, point.y()-1) != replacementColour) {
+                        if(BitmapImage::rgbDistance(targetImage->pixel( point.x()+x, point.y() - 1), targetColour) < tolerance) {
+                            queue.append( point + QPoint(x,-1) );
+                            if(point.y()-1< boxBottom) boxBottom = point.y()-1;
+                        }
+                        else { // bumps into the contour
+                            contourPixels.append(point+QPoint(x,-1));
+                        }
+                    }
+                } else { floodFillError(1); return; }
+                if(point.y() + 1 < targetImage->height() && queue.size() < targetImage->height() * targetImage->width() ) {
+                    if( replaceImage->pixel(point.x()+x, point.y()+1) != replacementColour) {
+                        if(BitmapImage::rgbDistance(targetImage->pixel( point.x()+x, point.y() + 1), targetColour) < tolerance) {
+                            queue.append( point + QPoint(x, 1) );
+                            if(point.y()+1> boxTop) boxTop = point.y()+1;
+                        }
+                        else { // bumps into the contour
+                            contourPixels.append(point+QPoint(x,1));
+                        }
+                    }
+                } else { floodFillError(1); return; }
+            }
+        }
+    }
+    // --- finds the bounding box of the filled area, and all the points contained inside (+ 1*tol)  -> boxPoints
+    QPointF mBoxTopRight = myTempView.inverted(&invertible).map(    QPointF(qMax(boxLeft,boxRight)+1*tol, qMax(boxTop,boxBottom)+1*tol)  );
+    QPointF mBoxBottomLeft = myTempView.inverted(&invertible).map( QPointF(qMin(boxLeft,boxRight)-1*tol, qMin(boxTop,boxBottom)-1*tol) );
+    QRectF boundingBox = QRectF( mBoxBottomLeft.x()-1, mBoxBottomLeft.y()-1, qAbs(mBoxBottomLeft.x()-mBoxTopRight.x())+2, qAbs(mBoxBottomLeft.y()-mBoxTopRight.y())+2 );
+    debugRect = QRectF(0,0,0,0);
+    debugRect = boundingBox;
+    for(int l=0; l<points.size(); l++) {
+        QPointF mPoint = vectorImage->getVertex(points.at(l));
+        if(   boundingBox.contains( mPoint )   ) {
+            // -----
+            //vectorImage->setSelected(points.at(l), true);
+            boxPoints.append( points.at(l) );
+        }
+    }
+    // ---- finds the points near the contourPixels -> contourPoints
+    for(int i=0; i< contourPixels.size(); i++ ) {
+        QPointF mPoint = myTempView.inverted(&invertible).map(  QPointF( contourPixels.at(i) )   );
+        vertices = vectorImage->getAndRemoveVerticesCloseTo(mPoint, tol, &boxPoints);
+        //contourPoints << vertices;
+        for(int m=0; m<vertices.size(); m++) {  // for each ?
+            contourPoints.append( vertices.at(m) );
+        }
+    }
+    // ---- points of sharp peaks may be missing in contourPoints ---> we correct for that
+    for(int i=0; i< contourPoints.size(); i++) {
+        VertexRef theNextVertex = contourPoints[i].nextVertex();
+        if( ! contourPoints.contains(theNextVertex) ) { // if the next vertex is not in the list of contour points
+            if( contourPoints.contains( theNextVertex.nextVertex() ) ) { // but the next-next vertex is...
+                contourPoints.append( theNextVertex );
+                //qDebug() << "----- found SHARP point (type 1a) ------";
+            }
+            QList<VertexRef> closePoints = vectorImage->getVerticesCloseTo( theNextVertex, tol2 );
+            for( int j=0; j<closePoints.size(); j++ ) {
+                if( closePoints[j] != theNextVertex ) { // ...or a point connected to the next vertex is
+                    if( contourPoints.contains(closePoints[j].nextVertex()) || contourPoints.contains(closePoints[j].prevVertex()) ) {
+                        contourPoints.append( theNextVertex );
+                        contourPoints.append( closePoints[j] );
+                        //qDebug() << "----- found SHARP point (type 2a) ------";
+                    }
+                }
+            }
+        }
+        VertexRef thePreviousVertex = contourPoints[i].prevVertex();
+        if( ! contourPoints.contains(thePreviousVertex) ) { // if the previous vertex is not in the list of contour points
+            if( contourPoints.contains( thePreviousVertex.prevVertex() ) ) { // but the prev-prev vertex is...
+                contourPoints.append( thePreviousVertex );
+                //qDebug() << "----- found SHARP point (type 1b) ------";
+            }
+            QList<VertexRef> closePoints = vectorImage->getVerticesCloseTo( thePreviousVertex, tol2 );
+            for( int j=0; j<closePoints.size(); j++ ) {
+                if( closePoints[j] != thePreviousVertex ) { // ...or a point connected to the previous vertex is
+                    if( contourPoints.contains(closePoints[j].nextVertex()) || contourPoints.contains(closePoints[j].prevVertex()) ) {
+                        contourPoints.append( thePreviousVertex );
+                        contourPoints.append( closePoints[j] );
+                        //qDebug() << "----- found SHARP point (type 2b) ------";
+                    }
+                }
+            }
+        }
+    }
+   
+    // 1 --- stop here (for debugging purpose)
+    /*qDebug() << "CONTOUR POINTS:";
+    for(int i=0; i < contourPoints.size(); i++) {
+        qDebug() << "(" << contourPoints.at(i).curveNumber << "," << contourPoints.at(i).vertexNumber << ")";
+    }*/
+    // -----
+    vectorImage->setSelected( contourPoints, true);
+    update();
+    //replaceImage->fill(qRgba(0,0,0,0));
+    //QMessageBox::warning(this, tr("My Application"), tr("all the contour points"), QMessageBox::Ok, QMessageBox::Ok);
+    //vectorImage->deselectAll();
+    //return;
+    // 2 --- or continue
+   
+    // Step 2: finds closed paths among the selected vertices: we start from a vertex and build a tree of connected vertices
+    //while(contourPoints.size() > 0) {
+    QList<VertexRef> tree;
+    QList<int> fatherNode; // given the index in tree (of a vertex), return the index (in tree) of its father vertex; this will define the tree structure
+    QList<int> leaves; // list of indices in tree which correspond to end of branches (leaves)
+   
+    // Step 2.1: build tree
+    int rootIndex = -1; bool rootIndexFound = false;
+    while(!rootIndexFound && rootIndex < contourPoints.size()-1) {
+        rootIndex++;
+        if( vectorImage->getVerticesCloseTo( vectorImage->getVertex(contourPoints.at(rootIndex)), tol2, &contourPoints).size() > 1) {
+            // this point is connected!
+            rootIndexFound = true;
+        }
+    }
+    if(!rootIndexFound) { floodFillError(3); return; }
+    tree << contourPoints.at(rootIndex);
+    fatherNode.append(-1);
+    //leaves << 0;
+    contourPoints.removeAt(rootIndex);
+    VertexRef vertex0 = tree.at(0);
+    //qDebug() << "ROOT = " <<     vertex0.curveNumber << "," << vertex0.vertexNumber;
+    j=0;
+    bool success = false;
+    int counter = 0;
+    while(!success && j>-1 && counter<1000) {
+        counter++;
+        //qDebug() << "------";
+        VertexRef vertex  = tree.at(j);
+        //qDebug() << j << "/" << tree.size() << "   " << vertex.curveNumber << "," << vertex.vertexNumber << "->" << fatherNode.at(j);
+        int index1 = contourPoints.indexOf(vertex.nextVertex());
+        if( index1 != -1) {
+            //qDebug() << "next vertex";
+            tree.append(vertex.nextVertex());
+            fatherNode.append(j);
+            contourPoints.removeAt(index1);
+            j = tree.size()-1;
+        } else {
+            int index2 = contourPoints.indexOf(vertex.prevVertex());
+            if( index2 != -1 ) {
+                // qDebug() << "previous vertex";
+                tree.append(vertex.prevVertex());
+                fatherNode.append(j);
+                contourPoints.removeAt(index2);
+                j = tree.size()-1;
+            } else {
+                QList<VertexRef> pointsNearby = vectorImage->getVerticesCloseTo( vectorImage->getVertex(vertex), tol2, &contourPoints);
+                if(pointsNearby.size() > 0) {
+                    //qDebug() << "close vertex";
+                    tree << pointsNearby.at(0);
+                    fatherNode.append(j);
+                    contourPoints.removeAt( contourPoints.indexOf(pointsNearby.at(0)) );
+                    j = tree.size()-1;
+                } else {
+                    qreal dist = vectorImage->getDistance(vertex, vertex0);
+                    //qDebug() << "is it a leave ? " << j << "dist = " << dist << "-" << tol2;
+                    if(  ((vertex.curveNumber == vertex0.curveNumber) && (qAbs(vertex.vertexNumber-vertex0.vertexNumber)==1))  ||  (dist < tol2) ) {
+                        // we found a leaf close to the root of the tree - does the closed path contain the initial point?
+                        QList<VertexRef> closedPath;
+                        int pathIndex = j;
+                        if(dist > 0) closedPath.prepend(vertex0);
+                        closedPath.prepend(tree.at(pathIndex));
+                        while( (pathIndex = fatherNode.at(pathIndex)) != -1) {
+                            closedPath.prepend(tree.at(pathIndex));
+                        }
+                        BezierArea newArea = BezierArea( closedPath, brush.colourNumber );
+                        vectorImage->updateArea(newArea);
+                        if( newArea.path.contains(initialPoint) ) {
+                            vectorImage->addArea( newArea );
+                            //qDebug() << "Yes!";
+                            success = true;
+                        } else {
+                            //qDebug() << "No! almost";
+                            j = fatherNode.at(j);
+                        }
+                    } else {
+                        //qDebug() << "No!";
+                        leaves << j;
+                        j = fatherNode.at(j);
+                    }
+                }
+            }
+        }
+       
+        //
+    }
+   
+    if(!success) { floodFillError(2); return; }
+    //qDebug() << "failure!" << contourPoints.size();
+    replaceImage->fill(qRgba(0,0,0,0));
+    deselectAll();
+   
+    // -- debug --- (display tree)
+    /*for(int indexm=0; indexm < tree.size(); indexm++) {
+        qDebug() << indexm  << ") " << tree.at(indexm).curveNumber << "," << tree.at(indexm).vertexNumber << " -> " << fatherNode.at(indexm);
+        //if(leaves.contains(indexm)) vectorImage->setSelected( tree.at(indexm), true);
+        vectorImage->setSelected( tree.at(indexm), true);
+        update();
+        //sleep( 1 );
+        QMessageBox::warning(this, tr("My Application"), tr("all the tree points"), QMessageBox::Ok, QMessageBox::Ok);
+    }*/
+    delete targetImage;
+    update();
+}
+
+void ScribbleArea::floodFillError(int errorType) {
+    QString message, error;
+    if(errorType == 1) message = "There is a gap in your drawing (or maybe you have zoomed too much).";
+    if(errorType == 2 || errorType == 3) message = "Sorry! This doesn't always work."
+            "Please try again (zoom a bit, click at another location... )<br>"
+            "if it doesn't work, zoom a bit and check that your paths are connected by pressing F1.).";
+   
+    if(errorType == 1) error = "Out of bound.";
+    if(errorType == 2) error = "Could not find a closed path.";
+    if(errorType == 3) error = "Could not find the root index.";
+    QMessageBox::warning(this, tr("Flood fill error"), message+"<br><br>Error: "+error, QMessageBox::Ok, QMessageBox::Ok);
+    bufferImg->clear();
+    deselectAll();
+}
+
+
+void ScribbleArea::switchTool() {
+    if(toolMode == ScribbleArea::MOVE) { paintTransformedSelection(); deselectAll(); }
+    if(toolMode == ScribbleArea::POLYLINE) escape();
+}
+
+void ScribbleArea::updateCursor() {
+    if(toolMode == PENCIL) {
+        if(toolCursors) {
+            QCursor cursor(QPixmap(":icons/pencil2.png"),0,16);
+            setCursor(cursor);
+        } else {
+            setCursor(Qt::CrossCursor);
+        }
+    }
+    if(toolMode == PEN) {
+        if(toolCursors) {
+            QCursor cursor(QPixmap(":icons/pen.png"),7,0);
+            setCursor(cursor);
+        } else {
+            setCursor(Qt::CrossCursor);
+        }
+    }
+    if(toolMode == ERASER) {
+        QPixmap pixmap(eraser.width,eraser.width);
+        pixmap.fill( QColor(255,255,255,0) );
+        QPainter painter(&pixmap);
+        painter.setPen( QColor(0,0,0,190) );
+        painter.setBrush( QColor(255,255,255,100) );
+        painter.drawLine( QPointF(eraser.width/2-2,eraser.width/2), QPointF(eraser.width/2+2,eraser.width/2) );
+        painter.drawLine( QPointF(eraser.width/2,eraser.width/2-2), QPointF(eraser.width/2,eraser.width/2+2) );
+        painter.setRenderHints(QPainter::Antialiasing, true);
+        painter.setPen( QColor(0,0,0,100) );
+        painter.drawEllipse( QRectF(1,1,eraser.width-2,eraser.width-2) );
+        painter.end();
+        setCursor(pixmap); //setCursor(Qt::CrossCursor);
+    }
+    if(toolMode == BUCKET) {
+        if(toolCursors) {
+            QPixmap pixmap(":icons/bucketTool.png");
+            QPainter painter(&pixmap);
+            painter.setPen( brush.colour );
+            painter.drawLine( QPoint(5,16), QPoint(5,18) );
+            painter.end();
+            QCursor cursor(pixmap,4,20);
+            setCursor(cursor);
+        } else {
+            setCursor(Qt::CrossCursor);
+        }
+    }
+    if(toolMode == EYEDROPPER) {
+        if(eyedropperCursor == NULL) {
+            eyedropperCursor = new QPixmap(32,32);
+            eyedropperCursor->fill(Qt::white);
+            QPixmap* mask = new QPixmap(32,32);
+            mask->fill(Qt::color0);
+            QPainter painter(eyedropperCursor);
+            painter.drawLine(5,0,5,10);
+            painter.drawLine(0,5,10,5);
+            painter.end();
+            painter.begin(mask);
+            painter.setBrush(Qt::color1);
+            painter.setPen(Qt::color1);
+            painter.drawLine(5,0,5,10);
+            painter.drawLine(0,5,10,5);
+            painter.drawRect(10,10,20,20);
+            painter.end();
+            eyedropperCursor->setMask(*mask);
+        }
+        setCursor( QCursor(*eyedropperCursor, 5, 5) );
+    }
+    if(toolMode == SELECT) {
+        Layer* layer = editor->getCurrentLayer();
+        if(layer->type == Layer::VECTOR) setCursor(Qt::ArrowCursor);
+        if(layer->type == Layer::BITMAP) setCursor(Qt::CrossCursor);
+    }
+    if(toolMode == MOVE) {
+        setCursor(Qt::ArrowCursor);
+    }
+    if(toolMode == HAND) {
+        QPixmap pixmap(":icons/hand.png");
+        setCursor(pixmap); //setCursor(Qt::PointingHandCursor);
+    }
+    if(toolMode == POLYLINE) {
+        setCursor(Qt::CrossCursor);
+    }
+    if(toolMode == COLOURING) {
+        Layer* layer = editor->getCurrentLayer();
+        if(layer->type == Layer::VECTOR) {
+            setCursor(Qt::CrossCursor);
+        }
+        if(layer->type == Layer::BITMAP) {
+            //qreal width = brush.width*0.66;
+            qreal width = brush.width + 0.5*brush.feather;
+            QPixmap pixmap(width,width);
+            if(!pixmap.isNull()) {
+                pixmap.fill( QColor(255,255,255,0) );
+                QPainter painter(&pixmap);
+                painter.setPen( QColor(0,0,0,190) );
+                painter.setBrush( Qt::NoBrush );
+                painter.drawLine( QPointF(width/2-2,width/2), QPointF(width/2+2,width/2) );
+                painter.drawLine( QPointF(width/2,width/2-2), QPointF(width/2,width/2+2) );
+                painter.setRenderHints(QPainter::Antialiasing, true);
+                painter.setPen( QColor(0,0,0,100) );
+                painter.drawEllipse( QRectF(1+brush.feather/2,1+brush.feather/2,qMax(0.0,brush.width-brush.feather/2-2),qMax(0.0,brush.width-brush.feather/2-2)) );
+                painter.setPen( QColor(0,0,0,50) );
+                painter.drawEllipse( QRectF(1+brush.feather/8,1+brush.feather/8,qMax(0.0,width-brush.feather/4-2),qMax(0.0,width-brush.feather/4-2)) );
+                painter.end();
+            }
+            setCursor(pixmap);
+        }
+    }
+    if(toolMode == EDIT) {
+        QCursor cursor(QPixmap(":icons/smudge.png"),3,16);
+        setCursor(cursor); //setCursor(Qt::ArrowCursor);
+    }
+}
+
+void ScribbleArea::pencilOn() {
+    switchTool();
+    toolMode = ScribbleArea::PENCIL;
+    // --- change properties ---
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) editor->selectColour(pencil.colourNumber);
+    if(layer->type == Layer::BITMAP) editor->setColour(pencil.colour);
+    editor->setWidth(pencil.width);
+    editor->setFeather(pencil.feather);
+    editor->setFeather(-1); // by definition the pencil has no feather
+    editor->setOpacity(pencil.opacity);
+    editor->setPressure(pencil.pressure);
+    editor->setInvisibility(pencil.invisibility);
+    editor->setPreserveAlpha(pencil.preserveAlpha);
+    editor->setFollowContour(-1);
+    editor->setInvisibility(-1); // by definition the pencil is invisible in vector mode
+    // --- change cursor ---
+    updateCursor();
+}
+
+void ScribbleArea::penOn() {
+    switchTool();
+    toolMode = ScribbleArea::PEN;
+    // --- change properties ---
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) editor->selectColour(pen.colourNumber);
+    if(layer->type == Layer::BITMAP) editor->setColour(pen.colour);
+    if(pen.width<0) pen.width = 1.0; editor->setWidth(pen.width);
+    if(pen.feather<0) pen.feather = 0.0; editor->setFeather(pen.feather); editor->setFeather(-1);
+    if(pen.opacity<0) pen.opacity = 1.0; editor->setOpacity(pen.opacity);
+    editor->setPressure(pen.pressure);
+    editor->setInvisibility(pen.invisibility);
+    editor->setPreserveAlpha(pen.preserveAlpha);
+    editor->setFollowContour(-1);
+    editor->setInvisibility(-1); // by definition the pen is visible in vector mode
+    // --- change cursor ---
+    updateCursor();
+}
+
+void ScribbleArea::eraserOn() {
+    switchTool();
+    toolMode = ScribbleArea::ERASER;
+    // --- change properties ---
+    editor->setWidth(eraser.width);
+    editor->setFeather(eraser.feather); editor->setFeather(-1);
+    editor->setOpacity(eraser.opacity);
+    editor->setPressure(eraser.pressure);
+    editor->setPreserveAlpha(0);
+    editor->setPreserveAlpha(-1);
+    editor->setFollowContour(-1);
+    editor->setInvisibility(0);
+    editor->setInvisibility(-1);
+    // --- change cursor ---
+    updateCursor();
+}
+
+void ScribbleArea::selectOn() {
+    switchTool();
+    toolMode = ScribbleArea::SELECT;
+    // --- change properties ---
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+    editor->setWidth(-1);
+    editor->setFeather(-1);
+    editor->setOpacity(-1);
+    editor->setPressure(-1);
+    editor->setInvisibility(-1);
+    editor->setPreserveAlpha(-1);
+    editor->setFollowContour(-1);
+    // --- change cursor ---
+    updateCursor();
+}
+
+void ScribbleArea::moveOn() {
+    toolMode = ScribbleArea::MOVE;
+    // --- change properties ---
+    editor->setWidth(-1);
+    editor->setFeather(-1);
+    editor->setOpacity(-1);
+    editor->setPressure(-1);
+    editor->setInvisibility(-1);
+    editor->setPreserveAlpha(-1);
+    editor->setFollowContour(-1);
+    // --- change cursor ---
+    updateCursor();
+}
+
+void ScribbleArea::handOn() {
+    if(toolMode == ScribbleArea::HAND) resetView();
+    toolMode = ScribbleArea::HAND;
+    // --- change properties ---
+    editor->setWidth(-1);
+    editor->setFeather(-1);
+    editor->setOpacity(-1);
+    editor->setPressure(-1);
+    editor->setInvisibility(-1);
+    editor->setPreserveAlpha(-1);
+    editor->setFollowContour(-1);
+    // --- change cursor ---
+    updateCursor();
+}
+
+void ScribbleArea::polylineOn() {
+    switchTool();
+    toolMode = ScribbleArea::POLYLINE;
+    // --- change properties ---
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) editor->selectColour(pen.colourNumber);
+    if(layer->type == Layer::BITMAP) editor->setColour(pen.colour);
+    editor->setWidth(pen.width);
+    editor->setFeather(pen.feather); editor->setFeather(-1);
+    editor->setOpacity(pen.opacity);
+    editor->setPressure(pen.pressure);
+    editor->setInvisibility(pen.invisibility);
+    editor->setPreserveAlpha(pen.preserveAlpha);
+    editor->setFollowContour(-1);
+    // --- change cursor ---
+    updateCursor();
+}
+
+void ScribbleArea::bucketOn() {
+    switchTool();
+    toolMode = ScribbleArea::BUCKET;
+    // --- change properties ---
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) editor->selectColour(brush.colourNumber);
+    if(layer->type == Layer::BITMAP) editor->setColour(brush.colour);
+    editor->setWidth(-1);
+    editor->setFeather(brush.feather); editor->setFeather(-1);
+    editor->setOpacity(1); // the bucket has full opacity (but one should be able to use it with translucent colours)
+    editor->setOpacity(-1); // disable the button
+    editor->setPressure(0);   
+    editor->setPressure(-1); // disable the button
+    editor->setInvisibility(0);
+    editor->setInvisibility(-1); // disable the button
+    editor->setPreserveAlpha(0);
+    editor->setPreserveAlpha(-1); // disable the button
+    editor->setFollowContour(-1);
+    // --- change cursor ---
+    updateCursor();
+}
+
+void ScribbleArea::eyedropperOn() {
+    switchTool();
+    toolMode = ScribbleArea::EYEDROPPER;
+    // --- change properties ---
+    editor->setWidth(-1);
+    editor->setFeather(-1);
+    editor->setOpacity(-1);
+    editor->setPressure(-1);
+    editor->setInvisibility(0);
+    editor->setInvisibility(-1);
+    editor->setPreserveAlpha(0);
+    editor->setPreserveAlpha(-1);
+    editor->setFollowContour(-1);
+    // --- change cursor ---
+    updateCursor();
+}
+
+void ScribbleArea::colouringOn() {
+    switchTool();
+    toolMode = ScribbleArea::COLOURING;
+    // --- change properties ---
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) editor->selectColour(brush.colourNumber);
+    if(layer->type == Layer::BITMAP) editor->setColour(brush.colour);
+    editor->setWidth(brush.width);
+    editor->setFeather(brush.feather);
+    editor->setOpacity(brush.opacity);
+    editor->setPressure(brush.pressure);
+    editor->setPreserveAlpha(brush.preserveAlpha);
+    editor->setFollowContour(followContour);
+    editor->setInvisibility(0);
+    editor->setInvisibility(-1);
+    // --- change cursor ---
+    updateCursor();
+}
+
+void ScribbleArea::smudgeOn() {
+    switchTool();
+    toolMode = EDIT;
+    // --- change properties ---
+    editor->setWidth(-1);
+    editor->setFeather(-1);
+    editor->setOpacity(-1);
+    editor->setPressure(-1);
+    editor->setInvisibility(0);
+    editor->setInvisibility(-1);
+    editor->setPreserveAlpha(0);
+    editor->setPreserveAlpha(-1);
+    editor->setFollowContour(-1);
+    // --- change cursor ---
+    updateCursor();
+}
+
+
+
+void ScribbleArea::deleteSelection() {
+    if( somethingSelected ) {  // there is something selected
+        editor->backup();
+        Layer* layer = editor->getCurrentLayer();
+        if(layer == NULL) return;
+        closestCurves.clear();
+        if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deleteSelection();
+        if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0)->clear(mySelection);
+        updateAllFrames();
+    }
+}
+
+void ScribbleArea::clearImage() {
+    editor->backup();
+    Layer* layer = editor->getCurrentLayer();
+    if(layer == NULL) return;
+    if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->clear();
+    if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0)->clear();
+    //emit modification();
+    //update();
+    setModified(editor->currentLayer, editor->currentFrame);
+}
+   
+void ScribbleArea::toggleThinLines() {
+    showThinLines = !showThinLines;
+    emit thinLinesChanged(showThinLines);
+    setView(myView);
+    updateAllFrames();
+}
+
+void ScribbleArea::toggleOutlines() {
+    simplified = !simplified;
+    emit outlinesChanged(simplified);
+    setView(myView);
+    updateAllFrames();
+}
+
+void ScribbleArea::toggleMirror() {
+    myView =  myView * QMatrix(-1, 0, 0, 1, 0, 0);
+    myTempView = myView * centralView;
+    setView(myView);
+    updateAllFrames();
+}
+
+void ScribbleArea::toggleShowAllLayers() {
+    showAllLayers++;
+    if(showAllLayers==3) showAllLayers = 0;
+    //emit showAllLayersChanged(showAllLayers);
+    setView(myView);
+    updateAllFrames();
+}
+
diff -rupN pencil_backup/src/interface/scribblearea.h pencil_dev/src/interface/scribblearea.h
--- pencil_backup/src/interface/scribblearea.h    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.h    2009-10-01 19:47:12.000000000 -0500
@@ -106,6 +106,14 @@ signals:
    void modification(int);
    void thinLinesChanged(bool);
    void outlinesChanged(bool);
+
+    void flipPrevious();
+    void flipNext();
+
+    void onionShortCut();
+    void straightAheadShortCut();
+    void inbetweenShortCut();
+
    //void showAllLayersChanged(bool);
   
public slots:
@@ -118,9 +126,20 @@ public slots:
    void selectAll();
    void deselectAll();

-    void onionPrevSlot();
-    void onionNextSlot();
-   
+    void onionIsOn();
+
+    void onionChangeSlot1();
+    void onionChangeSlot2();
+
+    void onionChangeSlot(int);
+
+    void onionOpacityLevel(int);
+    void onionStraightAheadLevel(int);
+    void onionPreviousPreviousLevel(int);
+    void onionPreviousLevel(int);
+    void onionNextLevel(int);
+    void onionNextNextLevel(int);
+
    //void pressureSlot(int);
    //void invisibleSlot(int);
   
@@ -219,7 +238,11 @@ private:
    int gradients;
    qreal curveOpacity;
    qreal curveSmoothing;
-    bool onionPrev, onionNext;
+    bool onion, onionStraightAhead, onionInbetween;
+   
+    float onionOpacity;
+    int onionStraightAheadFrames;
+    bool onionPreviousPrevious, onionPrevious, onionNext, onionNextNext;
   
    Properties pencil;
    Properties pen;
diff -rupN pencil_backup/src/interface/scribblearea.h~ pencil_dev/src/interface/scribblearea.h~
--- pencil_backup/src/interface/scribblearea.h~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.h~    2009-10-01 19:46:18.000000000 -0500
@@ -0,0 +1,298 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#ifndef SCRIBBLEAREA_H
+#define SCRIBBLEAREA_H
+
+#include <QColor>
+#include <QImage>
+#include <QPoint>
+#include <QWidget>
+#include <QGLWidget>
+#include <QFrame>
+#include "vectorimage.h"
+#include "bitmapimage.h"
+#include "colourref.h"
+
+class Editor;
+class Layer;
+
+class Properties
+{
+    public:
+        qreal width;
+        qreal feather;
+        qreal opacity;
+        QColor colour;
+        int colourNumber;
+        bool pressure;
+        bool invisibility;
+        bool preserveAlpha;
+};
+
+class VectorSelection
+{
+    public:
+    QList<VertexRef> vertex;
+    QList<int> curve;
+    //QList<int> area;
+    void clear();
+    void add(int curveNumber);
+    void add(QList<int> curveNumbers);
+    void add(VertexRef point);
+    void add(QList<VertexRef> points);
+};
+
+/*struct Buffer {
+    QList<QPoint> points;
+    QList<QColor> colours;
+};*/
+
+//class ScribbleArea : public QGLWidget
+class ScribbleArea : public QWidget
+{
+    Q_OBJECT
+
+public:
+    ScribbleArea(QWidget *parent = 0, Editor* editor = 0);
+   
+  void next(const int &i);
+   
+    void setColour(const int);
+    void setColour(const QColor);
+    void resetColours();

+    void deleteSelection();
+    void setSelection(QRectF rect, bool);
+    void displaySelectionProperties();
+    QRectF getSelection() { return mySelection; }
+    bool somethingSelected;
+    bool readCanvasFromCache;
+   
+    bool isModified() const { return modified; }
+   
+    static QBrush getBackgroundBrush(QString);
+    //QColor penColour() const { return myPenColour; }
+    //double pencilWidth() const { return myPencilWidth; }
+    //double penWidth() const { return myPenWidth; }
+    //double brushWidth() const { return myBrushWidth; }
+    bool thinLines() const { return showThinLines; }
+    int allLayers() const { return showAllLayers; }
+    QMatrix getView();
+    QRectF getViewRect();
+    QPointF getCentralPoint();
+   
+    void updateFrame();
+    void updateFrame(int frame);
+    void updateAllFrames();
+    void updateAllVectorLayersAtCurrentFrame();
+    void updateAllVectorLayersAt(int frame);
+    void updateAllVectorLayers();
+   
+signals:
+    void modification();
+    void modification(int);
+    void thinLinesChanged(bool);
+    void outlinesChanged(bool);
+
+    void flipPrevious();
+    void flipNext();
+
+    void onionShortCut();
+    void straightAheadShortCut();
+    void inbetweenShortCut();
+
+    //void showAllLayersChanged(bool);
+   
+public slots:
+    void clearImage();
+    void calculateSelectionRect();
+    void calculateSelectionTransformation();
+    void paintTransformedSelection();
+    void setModified(int layerNumber, int frameNumber);
+   
+    void selectAll();
+    void deselectAll();
+
+    void onionIsOn();
+
+    void onionChangeSlot1();
+    void onionChangeSlot2();
+
+    void onionChangeSlot(int);
+
+    void onionOpacityLevel(int);
+    void onionStraightAheadLevel(int);
+    void onionPreviousPreviousLevel(int);
+    void onionPreviousLevel(int);
+    void onionNextLevel(int);
+    void onionNextNextLevel(int);
+
+    //void pressureSlot(int);
+    //void invisibleSlot(int);
+   
+    void pencilOn();
+    void eraserOn();   
+    void selectOn();   
+    void moveOn();
+    void handOn();
+    void resetView();
+    void setMyView(QMatrix view);
+    QMatrix getMyView();
+    void penOn();
+    void polylineOn();
+    void bucketOn();
+    void eyedropperOn();
+    void colouringOn();
+    void smudgeOn();
+   
+    void setWidth(const qreal);
+    void setFeather(const qreal);
+    void setOpacity(const qreal);
+    void setPressure(const bool);
+    void setInvisibility(const bool);
+    void setPreserveAlpha(const bool);
+    void setFollowContour(const bool);
+   
+    void setCurveOpacity(int);
+    void setCurveSmoothing(int);
+    void setHighResPosition(int);
+    void setAntialiasing(int);
+    void setGradients(int);
+    void setBackground(int);
+    void setBackgroundBrush(QString);
+    void setShadows(int);
+    void setToolCursors(int);
+    void setStyle(int);
+    void toggleThinLines();
+    void toggleOutlines();
+    void toggleMirror();
+    void toggleShowAllLayers();
+   
+    void escape();
+    //void undo();
+    //void redo();
+    //void copy();
+    //void paste();
+   
+protected:
+    void tabletEvent(QTabletEvent *event);
+    void mousePressEvent(QMouseEvent *event);
+    void mouseMoveEvent(QMouseEvent *event);
+    void mouseReleaseEvent(QMouseEvent *event);
+    void mouseDoubleClickEvent(QMouseEvent *event);
+    void keyPressEvent(QKeyEvent *event);
+    void keyReleaseEvent(QKeyEvent *event);
+    void paintEvent(QPaintEvent *event);
+    void resizeEvent(QResizeEvent *event);
+    void recentre();
+    void setView();
+    void setView(QMatrix);
+   
+private:
+    void paintBitmapBuffer();
+    void updateCanvas(int frame, QRect rect);
+    void setGaussianGradient(QGradient &gradient, QColor coulour, qreal opacity, qreal offset);
+    void drawBrush(QPointF thePoint, qreal brushWidth, qreal offset, QColor fillColour, qreal opacity);
+    void drawLineTo(const QPointF &endPixel, const QPointF &endPoint);
+    void drawEyedropperPreview(const QColor colour);
+    void drawPolyline();
+    void endPolyline();
+    void updateCursor();
+   
+    void floodFill(VectorImage* vectorImage, QPoint point, QRgb targetColour, QRgb replacementColour, int tolerance);
+    void floodFillError(int errorType);
+   
+    enum myToolModes { PENCIL, ERASER, SELECT, MOVE, EDIT, HAND, SMUDGE, PEN, POLYLINE, BUCKET, EYEDROPPER, COLOURING };
+    enum myMoveModes { MIDDLE, TOPLEFT, TOPRIGHT, BOTTOMLEFT, BOTTOMRIGHT };
+    myToolModes toolMode;
+    myMoveModes moveMode;
+   
+    void switchTool();
+   
+    Editor* editor;
+   
+    int tabletEraserBackupToolMode;
+    bool modified;
+    bool simplified;
+   
+    bool showThinLines;
+    int showAllLayers;
+    bool usePressure, makeInvisible;
+    bool highResPosition;
+    bool antialiasing;
+    bool shadows;
+    bool toolCursors;
+    int gradients;
+    qreal curveOpacity;
+    qreal curveSmoothing;
+    bool onion, onionStraightAhead, onionInbetween;
+   
+    int onionOpacity, onionStraightAheadFrames;
+    bool onionPreviousPrevious, onionPrevious, onionNext, onionNextNext;
+   
+    Properties pencil;
+    Properties pen;
+    Properties brush;
+    Properties eraser;
+   
+    qreal currentWidth;
+    QColor currentColour;
+    /*qreal myPencilWidth, currentPencilWidth;
+    qreal myPenWidth, currentPenWidth;
+    qreal myBrushWidth, currentBrushWidth;*/
+    //QColor myPenColour, myFillColour;
+    //int penColourNumber, fillColourNumber;
+    bool followContour;
+   
+    QBrush backgroundBrush;
+    BitmapImage* bufferImg; // used to pre-draw vector modifications
+    //Buffer buffer; // used to pre-draw bitmap modifications, such as lines, brushes, etc.
+    QPixmap* eyedropperCursor;
+   
+    bool mouseInUse;
+    QList<QPointF> mousePoints; // copy of points clicked using polyline tool
+    QList<QPointF> mousePath; // copy of points drawn using pencil, pen, eraser, etc, tools
+    QList<qreal> mousePressure;
+    QPointF lastPixel, currentPixel;
+    QPointF lastPoint, currentPoint;
+    QPointF lastBrushPoint;
+    //QBrush brush; // the current brush
+   
+    qreal tol;
+    QList<int> closestCurves;
+    QList<VertexRef> closestVertices;
+    QPointF offset;
+   
+    VectorSelection vectorSelection;
+    //bool selectionChanged;
+    QMatrix selectionTransformation;
+    QRectF mySelection, myTransformedSelection, myTempTransformedSelection;
+   
+    bool tabletInUse;
+    qreal tabletPressure;
+    QPointF tabletPosition;
+   
+    QMatrix myView, myTempView, centralView, transMatrix;
+   
+    QPixmap canvas;
+   
+    // debug
+    QRectF debugRect;
+};
+
+#endif
+
+
diff -rupN pencil_backup/src/interface/timeline.cpp pencil_dev/src/interface/timeline.cpp
--- pencil_backup/src/interface/timeline.cpp    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/timeline.cpp    2009-10-01 18:19:28.000000000 -0500
@@ -126,22 +126,28 @@ TimeLine::TimeLine(QWidget *parent, Edit
    // --------- Onion skin buttons ---------
    //QFrame* onionButtons = new QFrame(this);
    QToolBar* onionButtons = new QToolBar(this);
+    QButtonGroup* onionRadio = new QButtonGroup();
    //onionButtons->setFixedWidth(90);
    //QHBoxLayout* onionButtonsLayout = new QHBoxLayout();
        QLabel* onionLabel = new QLabel(tr("Onion skin:"));
        onionLabel->setFont( QFont("Helvetica", 10) );
        onionLabel->setIndent(5);
-        QToolButton* onionPrevButton = new QToolButton(this);
-        onionPrevButton->setIcon(QIcon(":icons/onionPrev.png"));
-        onionPrevButton->setToolTip("Show previous frame");
-        onionPrevButton->setFixedSize(24,24);
-        onionPrevButton->setCheckable(true);
-        onionPrevButton->setChecked(true);
-        QToolButton* onionNextButton = new QToolButton(this);
-        onionNextButton->setIcon(QIcon(":icons/onionNext.png"));
-        onionNextButton->setToolTip("Show next frame");
-        onionNextButton->setFixedSize(24,24);
-        onionNextButton->setCheckable(true);
+        QCheckBox* onionCheck = new QCheckBox(this);
+        onionCheck->setToolTip("Enable or disable onion skin");
+        onionCheck->setCheckable(true);
+        QToolButton* onionStraightAheadButton = new QToolButton(this);
+        onionStraightAheadButton->setIcon(QIcon(":icons/onionStraightAhead.png"));
+        onionStraightAheadButton->setToolTip("Show frames for straight ahead");
+        onionStraightAheadButton->setFixedSize(24,25);
+        onionStraightAheadButton->setCheckable(true);
+        onionStraightAheadButton->setChecked(true);
+        onionStraightAheadButton->setAutoExclusive(true);   
+        QToolButton* onionInbetweenButton = new QToolButton(this);
+        onionInbetweenButton->setIcon(QIcon(":icons/onionInbetween.png"));
+        onionInbetweenButton->setToolTip("Show frames for inbetweening");
+        onionInbetweenButton->setFixedSize(28,25);
+        onionInbetweenButton->setCheckable(true);
+        onionInbetweenButton->setAutoExclusive(true);
        /*onionButtonsLayout->addWidget(onionLabel);
        onionButtonsLayout->addWidget(onionPrevButton);
        onionButtonsLayout->addWidget(onionNextButton);
@@ -151,8 +157,13 @@ TimeLine::TimeLine(QWidget *parent, Edit
    onionButtons->setLayout(onionButtonsLayout);*/
    onionButtons->addSeparator();
    onionButtons->addWidget(onionLabel);
-    onionButtons->addWidget(onionPrevButton);
-    onionButtons->addWidget(onionNextButton);
+    onionButtons->addWidget(onionCheck);
+    onionRadio->addButton(onionStraightAheadButton);
+    onionRadio->addButton(onionInbetweenButton);
+    onionRadio->setId(onionStraightAheadButton, 1);
+    onionRadio->setId(onionInbetweenButton, 2);
+    onionButtons->addWidget(onionStraightAheadButton);
+    onionButtons->addWidget(onionInbetweenButton);   

   
    // --------- Time controls ---------
@@ -217,8 +228,12 @@ TimeLine::TimeLine(QWidget *parent, Edit
    connect(addKeyButton, SIGNAL(clicked()), this, SIGNAL(addKeyClick()));
    connect(removeKeyButton, SIGNAL(clicked()), this, SIGNAL(removeKeyClick()));

-    connect(onionPrevButton, SIGNAL(clicked()), this, SIGNAL(onionPrevClick()));
-    connect(onionNextButton, SIGNAL(clicked()), this, SIGNAL(onionNextClick()));
+    connect(this, SIGNAL(onionKey()), onionCheck, SLOT(click()));
+    connect(this, SIGNAL(straightAheadKey()), onionStraightAheadButton, SLOT(click()));
+    connect(this, SIGNAL(inbetweenKey()), onionInbetweenButton, SLOT(click()));
+
+    connect(onionCheck, SIGNAL(clicked()), this, SIGNAL(onionChecked()));
+    connect(onionRadio, SIGNAL(buttonClicked(int)), this, SIGNAL(onionType(int)));

    connect(timeControls, SIGNAL(playClick()), this, SIGNAL(playClick()));
    connect(timeControls, SIGNAL(loopClick()), this, SIGNAL(loopClick()));
@@ -276,6 +291,20 @@ void TimeLine::updateContent() {
    update();
}

+/*
+void TimeLine::onionKey() {
+    onionclick();
+}
+
+void TimeLine::straightAheadKey() {
+    onionStraightAheadButton->click();
+}
+
+void TimeLine::inbetweenKey() {
+    onionInbetweenButton->click();
+}
+*/
+
/*void TimeLine::mousePressEvent(QMouseEvent *event) {
    //int frameNumber = getFrameNumber(event->pos().x());
    int layerNumber = getLayerNumber(event->pos().y());
diff -rupN pencil_backup/src/interface/timeline.cpp~ pencil_dev/src/interface/timeline.cpp~
--- pencil_backup/src/interface/timeline.cpp~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/timeline.cpp~    2009-10-01 18:16:41.000000000 -0500
@@ -0,0 +1,747 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "timeline.h"
+#include "editor.h"
+#include "toolset.h"
+#include "timecontrols.h"
+
+TimeLine::TimeLine(QWidget *parent, Editor *editor) : QDockWidget(parent, Qt::Tool) // DockPalette("")
+{
+    QWidget* timeLineContent = new QWidget(this);
+
+    list = new TimeLineCells(this, editor, "layers");
+    cells = new TimeLineCells(this, editor, "tracks");
+    connect(list, SIGNAL(mouseMovedY(int)), list, SLOT(setMouseMoveY(int)));
+    connect(list, SIGNAL(mouseMovedY(int)), cells, SLOT(setMouseMoveY(int)));
+
+    numberOfLayers = 0;
+    hScrollBar = new QScrollBar(Qt::Horizontal);
+    vScrollBar = new QScrollBar(Qt::Vertical);
+    vScrollBar->setMinimum(0);
+    vScrollBar->setMaximum(1);
+    vScrollBar->setPageStep(1);
+
+    QWidget* leftWidget = new QWidget();
+    leftWidget->setMinimumWidth(120);
+    QWidget* rightWidget = new QWidget();
+
+    QWidget* leftToolBar = new QWidget();
+    leftToolBar->setFixedHeight(31);
+    QWidget* rightToolBar = new QWidget();
+    rightToolBar->setFixedHeight(31);
+   
+    // --- left widget ---
+    // --------- layer buttons ---------
+    //QFrame* layerButtons = new QFrame(this);
+    QToolBar* layerButtons = new QToolBar(this);
+    //QHBoxLayout* layerButtonLayout = new QHBoxLayout();
+        QLabel* layerLabel = new QLabel(tr("Layers:"));
+        layerLabel->setIndent(5);
+        layerLabel->setFont( QFont("Helvetica", 10) );
+        QToolButton* addLayerButton = new QToolButton(this);
+        addLayerButton->setIcon(QIcon(":icons/add.png"));
+        addLayerButton->setToolTip("Add Layer");
+        addLayerButton->setFixedSize(24,24);
+        QToolButton* removeLayerButton = new QToolButton(this);
+        removeLayerButton->setIcon(QIcon(":icons/remove.png"));
+        removeLayerButton->setToolTip("Remove Layer");
+        removeLayerButton->setFixedSize(24,24);
+        /*layerButtonLayout->addWidget(layerLabel);
+        layerButtonLayout->addWidget(addLayerButton);
+        layerButtonLayout->addWidget(removeLayerButton);
+        layerButtonLayout->setMargin(0);
+        layerButtonLayout->setSpacing(5);
+    layerButtons->setLayout(layerButtonLayout);*/
+    layerButtons->addWidget(layerLabel);
+    layerButtons->addWidget(addLayerButton);
+    layerButtons->addWidget(removeLayerButton);
+
+    QHBoxLayout* leftToolBarLayout = new QHBoxLayout();
+    leftToolBarLayout->setAlignment(Qt::AlignLeft);
+    leftToolBarLayout->setMargin(0);
+    leftToolBarLayout->addWidget(layerButtons);
+    leftToolBar->setLayout(leftToolBarLayout);
+
+    QAction* newBitmapLayerAct = new QAction(QIcon(":icons/layer-bitmap.png"), tr("New Bitmap Layer"), this);
+    QAction* newVectorLayerAct = new QAction(QIcon(":icons/layer-vector.png"), tr("New Vector Layer"), this);
+    QAction* newSoundLayerAct = new QAction(QIcon(":icons/layer-sound.png"), tr("New Sound Layer"), this);
+    QAction* newCameraLayerAct = new QAction(QIcon(":icons/layer-camera.png"), tr("New Camera Layer"), this);
+    QMenu* layerMenu = new QMenu(tr("&Layer"), this);
+    layerMenu->addAction(newBitmapLayerAct);
+    layerMenu->addAction(newVectorLayerAct);
+    layerMenu->addAction(newSoundLayerAct);
+    layerMenu->addAction(newCameraLayerAct);
+    addLayerButton->setMenu(layerMenu);
+    addLayerButton->setPopupMode(QToolButton::InstantPopup);
+
+    QGridLayout *leftLayout = new QGridLayout();
+    leftLayout->addWidget(leftToolBar,0,0);
+    leftLayout->addWidget(list,1,0);
+    leftLayout->setMargin(0);
+    leftLayout->setSpacing(0);
+    leftWidget->setLayout(leftLayout);
+
+    // --- right widget ---
+    // --------- key buttons ---------
+    //QFrame* keyButtons = new QFrame(this);
+    QToolBar* keyButtons = new QToolBar(this);
+    //keyButtons->setFixedWidth(90);
+    //QHBoxLayout* keyButtonsLayout = new QHBoxLayout();
+        QLabel* keyLabel = new QLabel(tr("Keys:"));
+        keyLabel->setFont( QFont("Helvetica", 10) );
+        keyLabel->setIndent(5);
+        QToolButton* addKeyButton = new QToolButton(this);
+        addKeyButton->setIcon(QIcon(":icons/add.png"));
+        addKeyButton->setToolTip("Add Key");
+        addKeyButton->setFixedSize(24,24);
+        QToolButton* removeKeyButton = new QToolButton(this);
+        removeKeyButton->setIcon(QIcon(":icons/remove.png"));
+        removeKeyButton->setToolTip("Remove Key");
+        removeKeyButton->setFixedSize(24,24);
+        /*keyButtonsLayout->addWidget(keyLabel);
+        keyButtonsLayout->addWidget(addKeyButton);
+        keyButtonsLayout->addWidget(removeKeyButton);
+        keyButtonsLayout->setMargin(0);
+        keyButtonsLayout->setSpacing(0);
+        //keyButtonLayout->setSizeConstraint(QLayout::SetMinimumSize);
+    keyButtons->setLayout(keyButtonsLayout);*/
+    keyButtons->addWidget(keyLabel);
+    keyButtons->addWidget(addKeyButton);
+    keyButtons->addWidget(removeKeyButton);
+   
+    // --------- Onion skin buttons ---------
+    //QFrame* onionButtons = new QFrame(this);
+    QToolBar* onionButtons = new QToolBar(this);
+    QButtonGroup* onionRadio = new QButtonGroup();
+    //onionButtons->setFixedWidth(90);
+    //QHBoxLayout* onionButtonsLayout = new QHBoxLayout();
+        QLabel* onionLabel = new QLabel(tr("Onion skin:"));
+        onionLabel->setFont( QFont("Helvetica", 10) );
+        onionLabel->setIndent(5);
+        QCheckBox* onionCheck = new QCheckBox(this);
+        onionCheck->setToolTip("Enable or disable onion skin");
+        onionCheck->setCheckable(true);
+        QToolButton* onionStraightAheadButton = new QToolButton(this);
+        onionStraightAheadButton->setIcon(QIcon(":icons/onionStraightAhead.png"));
+        onionStraightAheadButton->setToolTip("Show frames for straight ahead");
+        onionStraightAheadButton->setFixedSize(24,25);
+        onionStraightAheadButton->setCheckable(true);
+        onionStraightAheadButton->setChecked(true);
+        onionStraightAheadButton->setAutoExclusive(true);   
+        QToolButton* onionInbetweenButton = new QToolButton(this);
+        onionInbetweenButton->setIcon(QIcon(":icons/onionInbetween.png"));
+        onionInbetweenButton->setToolTip("Show frames for inbetweening");
+        onionInbetweenButton->setFixedSize(28,25);
+        onionInbetweenButton->setCheckable(true);
+        onionInbetweenButton->setAutoExclusive(true);
+        /*onionButtonsLayout->addWidget(onionLabel);
+        onionButtonsLayout->addWidget(onionPrevButton);
+        onionButtonsLayout->addWidget(onionNextButton);
+        onionButtonsLayout->setMargin(0);
+        onionButtonsLayout->setSpacing(0);
+        //keyButtonLayout->setSizeConstraint(QLayout::SetMinimumSize);
+    onionButtons->setLayout(onionButtonsLayout);*/
+    onionButtons->addSeparator();
+    onionButtons->addWidget(onionLabel);
+    onionButtons->addWidget(onionCheck);
+    onionRadio->addButton(onionStraightAheadButton);
+    onionRadio->addButton(onionInbetweenButton);
+    onionRadio->setId(onionStraightAheadButton, 1);
+    onionRadio->setId(onionInbetweenButton, 2);
+    onionButtons->addWidget(onionStraightAheadButton);
+    onionButtons->addWidget(onionInbetweenButton);   
+
+   
+    // --------- Time controls ---------
+    TimeControls* timeControls = new TimeControls(this);
+   
+    QHBoxLayout* rightToolBarLayout = new QHBoxLayout();
+    //rightToolBarLayout->setAlignment(Qt::AlignLeft);
+    rightToolBarLayout->addWidget(keyButtons);
+    rightToolBarLayout->addWidget(onionButtons);
+    rightToolBarLayout->addStretch(1);
+    rightToolBarLayout->addWidget(timeControls);
+    rightToolBarLayout->setMargin(0);
+    rightToolBarLayout->setSpacing(0);
+    rightToolBar->setLayout(rightToolBarLayout);
+
+    QGridLayout *rightLayout = new QGridLayout();
+    rightLayout->addWidget(rightToolBar,0,0);
+    rightLayout->addWidget(cells,1,0);
+    rightLayout->setMargin(0);
+    rightLayout->setSpacing(0);
+    rightWidget->setLayout(rightLayout);
+
+    // --- Splitter ---
+    QSplitter *splitter = new QSplitter(parent);
+    splitter->addWidget(leftWidget);
+    splitter->addWidget(rightWidget);
+    splitter->setSizes( QList<int>() << 100 << 600 );
+    //splitter->addWidget(cells);
+
+
+    QGridLayout *lay = new QGridLayout();
+    //lay->addWidget(cells,0,0);
+    //lay->addWidget(toolBar,0,0);
+    lay->addWidget(splitter,0,0);
+    lay->addWidget(vScrollBar,0,1);
+    lay->addWidget(hScrollBar,1,0);
+    //lay->addWidget(vScrollBar,1,1);
+    lay->setMargin(0);
+    lay->setSpacing(0);
+    timeLineContent->setLayout(lay);
+    //timeLineContent->setBackgroundRole(QPalette::Dark);
+    //timeLineContent->setForegroundRole(QPalette::Dark);
+    setWidget(timeLineContent);
+
+    setWindowFlags(Qt::WindowStaysOnTopHint);
+    setWindowTitle("Time Line");
+    //setWindowFlags(Qt::SubWindow);
+    setFloating(true);
+    //setMinimumSize(100, 300);
+    //setGeometry(10,60,100, 300);
+
+    connect(this,SIGNAL(lengthChange(QString)), cells, SLOT(lengthChange(QString)));
+    connect(this,SIGNAL(fontSizeChange(int)), cells, SLOT(fontSizeChange(int)));
+    connect(this,SIGNAL(frameSizeChange(int)), cells, SLOT(frameSizeChange(int)));
+    connect(this,SIGNAL(labelChange(int)), cells, SLOT(labelChange(int)));
+    connect(this,SIGNAL(scrubChange(int)), cells, SLOT(scrubChange(int)));
+
+    connect(hScrollBar,SIGNAL(valueChanged(int)), cells, SLOT(hScrollChange(int)));
+    connect(vScrollBar,SIGNAL(valueChanged(int)), cells, SLOT(vScrollChange(int)));
+    connect(vScrollBar,SIGNAL(valueChanged(int)), list, SLOT(vScrollChange(int)));
+
+    connect(addKeyButton, SIGNAL(clicked()), this, SIGNAL(addKeyClick()));
+    connect(removeKeyButton, SIGNAL(clicked()), this, SIGNAL(removeKeyClick()));
+
+    connect(onionCheck, SIGNAL(clicked()), this, SIGNAL(onionChecked()));
+    connect(onionRadio, SIGNAL(buttonClicked(int)), this, SIGNAL(onionType(int)));
+
+    connect(timeControls, SIGNAL(playClick()), this, SIGNAL(playClick()));
+    connect(timeControls, SIGNAL(loopClick()), this, SIGNAL(loopClick()));
+    connect(timeControls, SIGNAL(soundClick()), this, SIGNAL(soundClick()));
+    connect(timeControls, SIGNAL(fpsClick(int)), this, SIGNAL(fpsClick(int)));
+    //connect(this, SIGNAL(topLevelChanged(bool)), timeControls, SLOT(updateButtons(bool))); // when the windows is docked or made floatable
+
+    connect(newBitmapLayerAct, SIGNAL(triggered()), this, SIGNAL(newBitmapLayer()));
+    connect(newVectorLayerAct, SIGNAL(triggered()), this, SIGNAL(newVectorLayer()));
+    connect(newSoundLayerAct, SIGNAL(triggered()), this, SIGNAL(newSoundLayer()));
+    connect(newCameraLayerAct, SIGNAL(triggered()), this, SIGNAL(newCameraLayer()));
+    connect(removeLayerButton, SIGNAL(clicked()), this, SIGNAL(deleteCurrentLayer()));
+
+    scrubbing = false;
+    //QSettings settings("Pencil","Pencil");
+    //layerHeight = (settings.value("layerHeight").toInt());
+    //if(layerHeight==0) { layerHeight=20; settings.setValue("layerHeight", layerHeight); }
+    //startY = 0;
+    //endY = 0;
+    //startLayerNumber = -1;
+    //offsetY = 15;
+}
+
+
+void TimeLine::resizeEvent(QResizeEvent *event) {
+    //QWidget::resizeEvent(event);
+    updateLayerView();
+    //event->accept();
+}
+
+void TimeLine::updateFrame(int frameNumber) {
+    if(cells) cells->updateFrame(frameNumber);
+}
+
+void TimeLine::updateLayerView() {
+    vScrollBar->setPageStep( (height()-cells->getOffsetY()-hScrollBar->height())/cells->getLayerHeight() -2 );
+    vScrollBar->setMinimum( 0 );
+    vScrollBar->setMaximum( qMax(0, numberOfLayers - vScrollBar->pageStep()) );
+    update();
+    updateContent();
+}
+
+void TimeLine::updateLayerNumber(int numberOfLayers) {
+    this->numberOfLayers = numberOfLayers;
+    updateLayerView();
+}
+
+void TimeLine::updateLength(int frameLength) {
+    hScrollBar->setMaximum( frameLength );
+}
+
+void TimeLine::updateContent() {
+    list->updateContent();
+    cells->updateContent();
+    update();
+}
+
+/*
+void TimeLine::onionKey() {
+    onionclick();
+}
+
+void TimeLine::straightAheadKey() {
+    onionStraightAheadButton->click();
+}
+
+void TimeLine::inbetweenKey() {
+    onionInbetweenButton->click();
+}
+*/
+
+/*void TimeLine::mousePressEvent(QMouseEvent *event) {
+    //int frameNumber = getFrameNumber(event->pos().x());
+    int layerNumber = getLayerNumber(event->pos().y());
+    startY = event->pos().y();
+    startLayerNumber = layerNumber;
+    endY = event->pos().y();
+
+    //if(frameNumber == editor->currentFrame) {
+    //    scrubbing = true;
+    //} else {
+        if( (layerNumber != -1) && layerNumber < editor->object->getLayerCount()) {
+            //editor->object->getLayer(layerNumber)->mousePress(event, frameNumber);
+            editor->setCurrentLayer(layerNumber);
+        //} else {
+            //editor->scrubTo(frameNumber);
+            //scrubbing = true;
+        }
+    //}
+}
+
+void TimeLine::mouseMoveEvent(QMouseEvent *event) {
+    endY = event->pos().y();
+    //int frameNumber = getFrameNumber(event->pos().x());
+    int layerNumber = getLayerNumber(event->pos().y());
+    //if(scrubbing) {
+    //    editor->scrubTo(frameNumber);
+    //} else {
+        //if(layerNumber != -1 && layerNumber < editor->object->getLayerCount()) {
+        //    editor->object->getLayer(layerNumber)->mouseMove(event, frameNumber);
+        //}
+    //}
+    update();
+}
+
+void TimeLine::mouseReleaseEvent(QMouseEvent *event) {
+    endY = startY;
+    //scrubbing = false;
+    //int frameNumber = getFrameNumber(event->pos().x());
+    int layerNumber = getLayerNumber(event->pos().y());
+    //if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+    //    editor->object->getLayer(layerNumber)->mouseRelease(event, frameNumber);
+    //}
+    if(layerNumber != startLayerNumber && startLayerNumber != -1 && layerNumber != -1) {
+        editor->moveLayer(startLayerNumber, layerNumber);
+    }
+    update();
+}
+
+void TimeLine::mouseDoubleClickEvent(QMouseEvent *event) {
+    int layerNumber = getLayerNumber(event->pos().y());
+    if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+        editor->switchVisibilityOfLayer(layerNumber);
+    }
+}*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+TimeLineCells::TimeLineCells(TimeLine *parent, Editor *editor, QString type) : QWidget(parent)
+{
+    this->timeLine = parent;
+    this->editor = editor;
+    this->type = type;
+
+    cache = NULL;
+    QSettings settings("Pencil","Pencil");
+
+    frameLength = settings.value("length").toInt();
+    if (frameLength==0) { frameLength=240; settings.setValue("length", frameLength); }
+
+    shortScrub = settings.value("shortScrub").toBool();
+   
+    fps = editor->fps;
+
+    //playing = false;
+    //scrubbing = false;
+    startY = 0;
+    endY = 0;
+    mouseMoveY = 0;
+    startLayerNumber = -1;
+    offsetX = 0;
+    offsetY = 20;
+    frameOffset = 0;
+    layerOffset = 0;
+
+    frameSize = (settings.value("frameSize").toInt());
+    if (frameSize==0) { frameSize=12; settings.setValue("frameSize", frameSize); }
+
+    fontSize = (settings.value("labelFontSize").toInt());
+    if (fontSize==0) { fontSize=12; settings.setValue("labelFontSize", fontSize); }
+
+    layerHeight = (settings.value("layerHeight").toInt());
+    if(layerHeight==0) { layerHeight=20; settings.setValue("layerHeight", layerHeight); }
+
+    //setMinimumSize(frameLength*frameSize, 3*layerHeight);
+    //setMinimumWidth(500);
+    setMinimumSize(500, 4*layerHeight);
+    setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding) );
+    setAttribute(Qt::WA_OpaquePaintEvent, false);
+}
+
+int TimeLineCells::getFrameNumber(int x) {
+    int frameNumber = frameOffset+1+(x-offsetX)/frameSize;
+    return frameNumber;
+}
+
+int TimeLineCells::getFrameX(int frameNumber) {
+    int x = offsetX + (frameNumber-frameOffset)*frameSize;
+    return x;
+}
+
+int TimeLineCells::getLayerNumber(int y) {
+    int layerNumber = layerOffset + (y-offsetY)/layerHeight;
+    if (y < offsetY) layerNumber = -1;
+    if (layerNumber >= editor->object->getLayerCount()) layerNumber = editor->object->getLayerCount();
+    return layerNumber;
+}
+
+int TimeLineCells::getLayerY(int layerNumber) {
+    return offsetY + (layerNumber-layerOffset)*layerHeight;
+}
+
+void TimeLineCells::updateFrame(int frameNumber) {
+    int x = getFrameX(frameNumber);
+    update(x-frameSize,0,frameSize+1,height());
+}
+
+void TimeLineCells::updateContent() {
+    drawContent();
+    update();
+}
+
+void TimeLineCells::drawContent() {
+    //qDebug() << "draw content" << QDateTime::currentDateTime() << timeLine->scrubbing;
+    if(cache == NULL) { cache = new QPixmap(size()); }
+    if(cache->isNull()) return;
+    QPainter painter( cache );
+    Object* object = editor->object;
+        if(object == NULL) return;
+    Layer* layer = object->getLayer(editor->currentLayer);
+    if(layer == NULL) return;
+
+    // grey background of the view
+    painter.setPen(Qt::NoPen);
+    painter.setBrush(Qt::lightGray);
+    painter.drawRect(QRect(0,0, width(), height()));
+
+    // --- updates the offsetX
+    /*painter.setPen(Qt::black);
+    painter.setFont(QFont("helvetica", getLayerHeight()/2));
+    for(int i=0; i< object->getLayerCount(); i++) {
+        Layer* layeri = object->getLayer(i);
+        if(layeri != NULL) {
+            int rightmost = 20 + painter.boundingRect(QRect(0,0,300,100), Qt::AlignLeft, layeri->name).width() + 5;
+            if( rightmost > offsetX) offsetX = rightmost;
+        }
+    }*/
+
+    // --- draw layers of the current object
+    for(int i=0; i< object->getLayerCount(); i++) {
+        if(i != editor->currentLayer) {
+            Layer* layeri = object->getLayer(i);
+            if(layeri != NULL) {
+                if(type == "tracks") layeri->paintTrack(painter, this, offsetX, getLayerY(i), width()-offsetX, getLayerHeight(), false, frameSize);
+                if(type == "layers") layeri->paintLabel(painter, this, 0, getLayerY(i), width()-1, getLayerHeight(), false, editor->allLayers());
+            }
+        }
+    }
+    //if(timeLine->scrubbing == false && abs(getMouseMoveY()) > 5) {
+    if( abs(getMouseMoveY()) > 5 ) {
+        if(type == "tracks") layer->paintTrack(painter, this, offsetX, getLayerY(editor->currentLayer)+getMouseMoveY(), width()-offsetX, getLayerHeight(), true, frameSize);
+        if(type == "layers") layer->paintLabel(painter, this, 0, getLayerY(editor->currentLayer)+getMouseMoveY(), width()-1, getLayerHeight(), true, editor->allLayers());
+        painter.setPen( Qt::black );
+        painter.drawRect(0, getLayerY( getLayerNumber(endY) ) -1, width(), 2);
+    } else {
+        if(type == "tracks") layer->paintTrack(painter, this, offsetX, getLayerY(editor->currentLayer), width()-offsetX, getLayerHeight(), true, frameSize);
+        if(type == "layers") layer->paintLabel(painter, this, 0, getLayerY(editor->currentLayer), width()-1, getLayerHeight(), true, editor->allLayers());
+    }
+    // --- draw top
+    painter.setPen(Qt::NoPen);
+    painter.setBrush(QColor(220,220,220));
+    painter.drawRect(QRect(0,0, width()-1, offsetY-1));
+    painter.setPen( Qt::gray );
+    painter.drawLine(0,0, width()-1, 0);
+    painter.drawLine(0,offsetY-2, width()-1, offsetY-2);
+    painter.setPen( Qt::lightGray );
+    painter.drawLine(0,offsetY-3, width()-1, offsetY-3);
+    painter.drawLine(0,0, 0, offsetY-3);
+
+    if(type == "layers") {
+        // --- draw circle
+        painter.setPen(Qt::black);
+        if(editor->allLayers() == 0) { painter.setBrush(Qt::NoBrush); }
+        if(editor->allLayers() == 1) { painter.setBrush(Qt::darkGray); }
+        if(editor->allLayers() == 2) { painter.setBrush(Qt::black); }
+        painter.setRenderHint(QPainter::Antialiasing, true);
+        painter.drawEllipse(6, 4, 9, 9);
+        painter.setRenderHint(QPainter::Antialiasing, false);
+        // --- draw right border line
+        //painter.setPen( Qt::lightGray );
+        //painter.drawLine(width()/2-1,0, width()/2-1, height());
+    }
+
+    if(type == "tracks") {
+        // --- draw ticks
+        painter.setPen( QColor(70,70,70,255) );
+        painter.setBrush(Qt::darkGray);
+        painter.setFont(QFont("helvetica", 10));
+        int incr = 0;
+        for(int i=frameOffset; i<frameOffset+(width()-offsetX)/frameSize; i++) {
+            if(i < 10) { incr = 4; } else { incr = 0; }
+            if (i%fps==0) painter.drawLine( getFrameX(i), 1, getFrameX(i), 5 );
+            else if (i%fps==fps/2) painter.drawLine( getFrameX(i), 1, getFrameX(i), 5);
+            else painter.drawLine( getFrameX(i), 1, getFrameX(i), 3);
+            if(i==0 || i%fps==fps-1) painter.drawText(QPoint(getFrameX(i)+incr, 15), QString::number(i+1));
+        }
+        // --- indicates the cached images by a line ---
+        /*painter.setPen( Qt::red );
+        QList<int> frameList = editor->frameList;
+        for(int i=0; i<frameList.size(); i++) {
+            //painter.setBrush( Qt::red );
+            int j = frameList.at(i);
+            if( j > frameOffset ) {
+                painter.drawLine( getFrameX(j-1-frameOffset), 1, getFrameX(j-frameOffset), 1);
+            }
+        }*/
+        // --- draw left border line
+        painter.setPen( Qt::darkGray );
+        painter.drawLine(0,0, 0, height());
+    }
+}
+
+void TimeLineCells::paintEvent(QPaintEvent *event) {
+    Object* object = editor->object;
+    Layer* layer = object->getLayer(editor->currentLayer);
+    if(layer == NULL) return;
+
+    QPainter painter( this );
+    if( (!editor->playing && !timeLine->scrubbing) || cache == NULL) drawContent();
+    if(cache) painter.drawPixmap(QPoint(0,0), *cache);
+
+    if(type == "tracks") {
+        // --- draw the position of the current frame
+        if(editor->currentFrame > frameOffset) {
+            painter.setBrush(QColor(255,0,0,128));
+            painter.setPen(Qt::NoPen);
+            painter.setFont(QFont("helvetica", 10));
+            //painter.setCompositionMode(QPainter::CompositionMode_Source); // this causes the message: QPainter::setCompositionMode: PorterDuff modes not supported on device
+            QRect scrubRect;
+            scrubRect.setTopLeft(QPoint( getFrameX(editor->currentFrame-1), 0));
+            scrubRect.setBottomRight(QPoint( getFrameX(editor->currentFrame), height()));
+            if(shortScrub) scrubRect.setBottomRight(QPoint( getFrameX(editor->currentFrame), 19));
+            painter.drawRect(scrubRect);
+            painter.setPen( QColor(70,70,70,255) );
+            int incr = 0;
+            if(editor->currentFrame < 10) { incr = 4; } else { incr = 0; }
+            painter.drawText(QPoint(getFrameX(editor->currentFrame-1)+incr, 15), QString::number(editor->currentFrame));
+        }
+    }
+    //event->accept();
+}
+
+void TimeLineCells::resizeEvent(QResizeEvent *event) {
+    //QWidget::resizeEvent(event);
+    if(cache) delete cache;
+    cache = new QPixmap(size());
+    updateContent();
+    event->accept();
+}
+
+void TimeLineCells::mousePressEvent(QMouseEvent *event) {
+    int frameNumber = getFrameNumber(event->pos().x());
+    int layerNumber = getLayerNumber(event->pos().y());
+    startY = event->pos().y();
+    startLayerNumber = layerNumber;
+    endY = event->pos().y();
+
+    if(type == "layers") {
+        if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+            if(event->pos().x() < 15) {
+                editor->switchVisibilityOfLayer(layerNumber);
+            } else {
+                editor->setCurrentLayer(layerNumber);
+                update();
+            }
+        }
+        if(layerNumber == -1) {
+            if(event->pos().x() < 15) {
+                editor->toggleShowAllLayers();
+            }
+        }
+    }
+
+    if(type == "tracks") {
+        if(frameNumber == editor->currentFrame && (!shortScrub || (shortScrub && startY < 20)) ) {
+            timeLine->scrubbing = true;
+        } else {
+            if( (layerNumber != -1) && layerNumber < editor->object->getLayerCount()) {
+                editor->object->getLayer(layerNumber)->mousePress(event, frameNumber);
+                //if(event->pos().x() > 15) editor->setCurrentLayer(layerNumber);
+                editor->setCurrentLayer(layerNumber);
+                update();
+            } else {
+                if(frameNumber > 0) {
+                    editor->scrubTo(frameNumber);
+                    timeLine->scrubbing = true;
+                }
+            }
+        }
+    }
+}
+
+
+void TimeLineCells::mouseMoveEvent(QMouseEvent *event) {
+    //if(event->pos().x() < offsetX) endY = event->pos().y();
+    if(type == "layers") {
+        endY = event->pos().y();
+        emit mouseMovedY(endY-startY);
+    }
+    int frameNumber = getFrameNumber(event->pos().x());
+    int layerNumber = getLayerNumber(event->pos().y());
+    if(timeLine->scrubbing && type == "tracks") {
+        editor->scrubTo(frameNumber);
+    } else {
+        if(layerNumber != -1 && layerNumber < editor->object->getLayerCount()) {
+            editor->object->getLayer(layerNumber)->mouseMove(event, frameNumber);
+        }
+    }
+    timeLine->update();
+}
+
+void TimeLineCells::mouseReleaseEvent(QMouseEvent *event) {
+    endY = startY;
+    emit mouseMovedY(0);
+    timeLine->scrubbing = false;
+    int frameNumber = getFrameNumber(event->pos().x());
+    if(frameNumber < 1) frameNumber = -1;
+    int layerNumber = getLayerNumber(event->pos().y());
+    if(type == "tracks" && layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+        editor->object->getLayer(layerNumber)->mouseRelease(event, frameNumber);
+    }
+    //if(event->pos().x() < offsetX && layerNumber != startLayerNumber && startLayerNumber != -1 && layerNumber != -1) {
+    if(type == "layers" && layerNumber != startLayerNumber && startLayerNumber != -1 && layerNumber != -1) {
+        editor->moveLayer(startLayerNumber, layerNumber);
+    }
+    update();
+}
+
+void TimeLineCells::mouseDoubleClickEvent(QMouseEvent *event) {
+    int frameNumber = getFrameNumber(event->pos().x());
+    int layerNumber = getLayerNumber(event->pos().y());
+
+    // -- short scrub --
+    if(event->pos().y() < 20) {
+        if(shortScrub) scrubChange(0); else scrubChange(1);
+    }
+   
+    // -- layer --
+    Layer* layer = editor->object->getLayer( layerNumber );
+    //if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+    if(layer) {
+        if(type == "tracks" && (layerNumber != -1) && (frameNumber > 0) && layerNumber < editor->object->getLayerCount()) {
+            editor->object->getLayer(layerNumber)->mouseDoubleClick(event, frameNumber);
+        }
+        if(type == "layers") {
+            layer->editProperties();
+        }
+    }
+}
+
+// --- changes ---
+
+void TimeLineCells::fontSizeChange(int x) {
+    fontSize=x;
+    QSettings settings("Pencil","Pencil");
+    settings.setValue("labelFontSize", x);
+    updateContent();
+}
+
+void TimeLineCells::frameSizeChange(int x) {
+    //int old;
+    //old=frameSize;
+    frameSize = x;
+    QSettings settings("Pencil","Pencil");
+    settings.setValue("frameSize", x);
+    /*int i;
+    for(i=0;i<frame.size();i++) {
+        frame[i].moveTopLeft(QPoint((frame[i].x()/old)*frameSize,0));
+        frame[i].setWidth(frameSize);
+    }*/
+    updateContent();
+}
+
+void TimeLineCells::scrubChange(int x) {
+    QSettings settings("Pencil","Pencil");
+    if (x==0) { shortScrub=false; settings.setValue("shortScrub","false"); }
+    else { shortScrub=true; settings.setValue("shortScrub","true"); }
+    update();
+}
+
+void TimeLineCells::labelChange(int x) {
+    QSettings settings("Pencil","Pencil");
+    if (x==0) { drawFrameNumber=false; settings.setValue("drawLabel","false"); }
+    else { drawFrameNumber=true; settings.setValue("drawLabel","true"); }
+    updateContent();
+}
+
+void TimeLineCells::lengthChange(QString x) {
+    bool ok;
+    int dec = x.toInt(&ok, 10);
+    frameLength=dec;
+    timeLine->updateLength(frameLength);
+    //setMinimumSize(dec*frameSize,40);
+    //setFixedWidth(dec*frameSize);
+    updateContent();
+    QSettings settings("Pencil","Pencil");
+    settings.setValue("length", dec);
+}
+
+void TimeLineCells::hScrollChange(int x) {
+    frameOffset = x;
+    update();
+}
+
+void TimeLineCells::vScrollChange(int x) {
+    layerOffset = x;
+    update();
+}
+
diff -rupN pencil_backup/src/interface/timeline.h pencil_dev/src/interface/timeline.h
--- pencil_backup/src/interface/timeline.h    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/timeline.h    2009-10-01 18:16:36.000000000 -0500
@@ -113,9 +113,13 @@ signals:
    void loopClick();
    void soundClick();
    void fpsClick(int);
-    void onionPrevClick();
-    void onionNextClick();
-   
+
+    void onionChecked();
+    void onionType(int);
+
+    void onionKey();
+    void straightAheadKey();
+    void inbetweenKey();

public slots:
    void updateFrame(int frameNumber);
@@ -124,6 +128,8 @@ public slots:
    void updateLength(int frameLength);
    void updateContent();

+
+
public:
    TimeLine(QWidget *parent = 0, Editor *editor = 0);
    QScrollBar *hScrollBar, *vScrollBar;
@@ -131,6 +137,11 @@ public:
    //int currentLayer;
    bool scrubbing;

+    QCheckBox* onionCheck;
+    QToolButton* onionStraightAheadButton;
+    QToolButton* onionInbetweenButton;
+
+
protected:
    void resizeEvent(QResizeEvent *event);
    //void mousePressEvent(QMouseEvent *event);
diff -rupN pencil_backup/src/interface/timeline.h~ pencil_dev/src/interface/timeline.h~
--- pencil_backup/src/interface/timeline.h~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/timeline.h~    2009-10-01 18:16:16.000000000 -0500
@@ -0,0 +1,159 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#ifndef TIMELINE_H
+#define TIMELINE_H
+
+#include <QColor>
+#include <QImage>
+#include <QPoint>
+#include <QWidget>
+#include <QDockWidget>
+#include <QScrollBar>
+#include <QSound>
+#include "toolset.h"
+
+class Editor;
+
+class TimeLine;
+
+class TimeLineCells : public QWidget
+{
+    Q_OBJECT
+
+public:
+    TimeLineCells(TimeLine *parent = 0, Editor *editor = 0, QString type = "");
+    //int currentFrame;
+    //int currentLayer;
+    int getFps() { return fps; }
+    int getLayerNumber(int y);
+    int getLayerY(int layerNumber);
+    int getFrameNumber(int x);
+    int getFrameX(int frameNumber);
+    int getMouseMoveY() { return mouseMoveY; }
+    int getOffsetY() { return offsetY; }
+    int getLayerHeight() { return layerHeight; }
+
+signals:
+    void mouseMovedY(int);
+
+public slots:
+    void updateContent();
+    void updateFrame(int frameNumber);
+    void lengthChange(QString);
+    void frameSizeChange(int);
+    void fontSizeChange(int);
+    void scrubChange(int);
+    void labelChange(int);
+    void hScrollChange(int);
+    void vScrollChange(int);
+    void setMouseMoveY(int x) { mouseMoveY = x;}
+
+protected:
+    void drawContent();
+    void paintEvent(QPaintEvent *event);
+    void resizeEvent(QResizeEvent *event);
+    void mousePressEvent(QMouseEvent *event);
+    void mouseMoveEvent(QMouseEvent *event);
+    void mouseReleaseEvent(QMouseEvent *event);
+    void mouseDoubleClickEvent(QMouseEvent *event);
+
+private:
+  TimeLine *timeLine;
+    Editor* editor; // the editor for which this timeLine operates
+
+    QString type;
+    QPixmap* cache;
+    bool drawFrameNumber;
+    bool shortScrub;
+    int frameLength;
+    int frameSize;
+    int fontSize;
+    int fps;
+    bool scrubbing;
+    int layerHeight;
+    int offsetX, offsetY;
+    int startY, endY, startLayerNumber;
+    int mouseMoveY;
+    int frameOffset, layerOffset;
+};
+
+class TimeLine : public QDockWidget //DockPalette
+{
+    Q_OBJECT
+
+signals:
+    void modification();
+    void lengthChange(QString);
+    void frameSizeChange(int);
+    void fontSizeChange(int);
+    void labelChange(int);
+    void scrubChange(int);
+    void addKeyClick();
+    void removeKeyClick();
+    void newBitmapLayer();
+    void newVectorLayer();
+    void newSoundLayer();
+    void newCameraLayer();
+    void deleteCurrentLayer();
+
+    void playClick();
+    void loopClick();
+    void soundClick();
+    void fpsClick(int);
+
+    void onionChecked();
+    void onionType(int);
+
+public slots:
+    void updateFrame(int frameNumber);
+    void updateLayerNumber(int number);
+    void updateLayerView();
+    void updateLength(int frameLength);
+    void updateContent();
+
+    void onionKey();
+    void straightAheadKey();
+    void inbetweenKey();
+
+public:
+    TimeLine(QWidget *parent = 0, Editor *editor = 0);
+    QScrollBar *hScrollBar, *vScrollBar;
+    //int currentFrame;
+    //int currentLayer;
+    bool scrubbing;
+
+    QCheckBox* onionCheck;
+    QToolButton* onionStraightAheadButton;
+    QToolButton* onionInbetweenButton;
+
+
+protected:
+    void resizeEvent(QResizeEvent *event);
+    //void mousePressEvent(QMouseEvent *event);
+    //void mouseMoveEvent(QMouseEvent *event);
+    //void mouseReleaseEvent(QMouseEvent *event);
+    //void mouseDoubleClickEvent(QMouseEvent *event);
+
+private:
+    Editor* editor; // the editor for which this timeLine operates
+    //TimeLineCells* list;
+    TimeLineCells* cells;
+    TimeLineCells* list;
+    int numberOfLayers;
+
+};
+
+#endif
diff -rupN pencil_backup/src/interface/toolset.cpp pencil_dev/src/interface/toolset.cpp
--- pencil_backup/src/interface/toolset.cpp    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/toolset.cpp    2009-09-27 14:50:43.000000000 -0500
@@ -164,6 +164,8 @@ ToolSet::ToolSet() {
    newToolButton(clearButton); //  = new QToolButton(this);
    newToolButton(magnifyButton);
    newToolButton(smudgeButton);
+    newToolButton(onionStraightAheadButton);
+    newToolButton(onionInbetweenButton);

    add = new QToolButton(this);
    rm = new QToolButton(this);
@@ -181,23 +183,25 @@ ToolSet::ToolSet() {
    polylineButton->setWhatsThis("Polyline");
    bucketButton->setWhatsThis("Paint bucket");
    colouringButton->setWhatsThis("Brush");
+
    usePressureBox = new QCheckBox("Size with pressure");
    usePressureBox->setFont( QFont("Helvetica", 10) );
-  usePressureBox->setChecked(true);
+    usePressureBox->setChecked(true);
+
    makeInvisibleBox = new QCheckBox("Invisible");
    makeInvisibleBox->setFont( QFont("Helvetica", 10) );
-  makeInvisibleBox->setChecked(false);
+    makeInvisibleBox->setChecked(false);
+
    preserveAlphaBox = new QCheckBox("Preserve Alpha");
    preserveAlphaBox->setFont( QFont("Helvetica", 10) );
-  preserveAlphaBox->setChecked(false);
+    preserveAlphaBox->setChecked(false);
+
    followContourBox = new QCheckBox("Stop at contours");
    followContourBox->setFont( QFont("Helvetica", 10) );
-  followContourBox->setChecked(false);
-    onionPrevBox = new QCheckBox("Previous");
-    onionNextBox = new QCheckBox("Next");
-    onionPrevBox->setFont( QFont("Helvetica", 10) );
-  onionNextBox->setFont( QFont("Helvetica", 10) );
-    onionPrevBox->setChecked(true);
+    followContourBox->setChecked(false);
+
+    onionStraightAheadButton->setFont( QFont("Helvetica", 10) );
+    onionInbetweenButton->setFont( QFont("Helvetica", 10) );   

    /*sizeSlider = new QDoubleSpinBox(this);
    sizeSlider->setFocusPolicy(Qt::NoFocus);
@@ -244,8 +248,6 @@ ToolSet::ToolSet() {
    framecounter->setToolTip("Frame Counter!");
    framecounter->setFont( QFont("Helvetica", 40, QFont::Bold) );*/

-    onionNextBox->setToolTip("Onion skin next frame");
-    onionPrevBox->setToolTip("Onion skin previous frame");
    sizeSlider->setToolTip("Set Pen Width");
    pencilButton->setIcon(QIcon(":icons/pencil2.png"));
    pencilButton->setToolTip("Sketch");
@@ -375,8 +377,8 @@ ToolSet::ToolSet() {

    onionLay->setMargin(4);
    onionLay->setSpacing(0);
-    onionLay->addWidget(onionPrevBox, 0,0);
-    onionLay->addWidget(onionNextBox, 1,0);
+    onionLay->addWidget(onionStraightAheadButton, 0,0);   
+    onionLay->addWidget(onionInbetweenButton, 1,0);

    timeLay->setMargin(4);
    timeLay->setSpacing(0);
@@ -448,8 +450,8 @@ ToolSet::ToolSet() {
    connect(featherSlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(featherClick(qreal)));
    connect(opacitySlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(opacityClick(qreal)));

-    connect(onionPrevBox, SIGNAL(stateChanged(int)), this, SIGNAL(prevClick()));
-    connect(onionNextBox, SIGNAL(stateChanged(int)), this, SIGNAL(nextClick()));
+    connect(onionStraightAheadButton, SIGNAL(clicked()), this, SIGNAL(onionStraightAheadClick()));
+    connect(onionInbetweenButton, SIGNAL(clicked()), this, SIGNAL(onionInbetweenClick()));

    connect(choseColour, SIGNAL(clicked()), this, SIGNAL(colourClick()));
    connect(clearButton, SIGNAL(clicked()), this, SIGNAL(clearClick()));
diff -rupN pencil_backup/src/interface/toolset.cpp~ pencil_dev/src/interface/toolset.cpp~
--- pencil_backup/src/interface/toolset.cpp~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/toolset.cpp~    2009-09-26 20:56:53.000000000 -0500
@@ -0,0 +1,668 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "toolset.h"
+#include <math.h>
+
+SpinSlider::SpinSlider(QString text, QString type, QString dataType, qreal min, qreal max, QWidget* parent) : QWidget(parent) {
+    value = 1.0;
+    this->type = type;
+    this->dataType = dataType;
+    this->min = min;
+    this->max = max;
+    QLabel* label = new QLabel(text+": ");
+    label->setFont( QFont("Helvetica", 10) );
+    valueLabel = new QLabel("--");
+    valueLabel->setFont( QFont("Helvetica", 10) );
+        //valueLabel->setFixedWidth(30);
+    valueLabel->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+    slider = new QSlider(Qt::Horizontal, this);
+    slider->setMinimum(0);
+    slider->setMaximum(100);
+                //slider->setFixedHeight(16);
+    QGridLayout *lay = new QGridLayout();
+    lay->setMargin(2);
+    lay->setSpacing(2);
+        //lay->setColumnStretch(0,1);
+    lay->addWidget(label,0,0,1,1);
+    lay->addWidget(valueLabel,0,1,1,1);
+    lay->addWidget(slider,1,0,1,2);
+    setLayout(lay);
+        setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed);
+
+    connect(slider, SIGNAL(valueChanged(int)), this, SLOT(changeValue(int)));
+    connect(slider, SIGNAL(sliderReleased()), this, SLOT(sliderReleased()));
+    connect(slider, SIGNAL(sliderMoved(int)), this, SLOT(sliderMoved(int)));
+}
+
+void SpinSlider::changeValue(qreal value) {
+    this->value = value;
+    if(dataType == "integer") {
+        valueLabel->setText( QString::number(qRound(value)) );
+    } else {
+        valueLabel->setText( QLocale::system().toString(value,'f',1) );
+    }
+}
+
+void SpinSlider::changeValue(int value) {
+    qreal value2 = 0.0;
+    if(type=="linear") value2 = min + value*(max-min)/100;
+    if(type=="log") value2 = min*exp( value*log(max/min)/100 );
+    changeValue(value2);
+}
+
+void SpinSlider::setValue(qreal value) {
+    qreal value2 = 0.0;
+    if(type=="linear") value2 = qRound( 100*(value-min)/(max-min) );
+    if(type=="log") value2 = qRound( 100.0*log(value/0.2)/log(1000.0) );
+    slider->setSliderPosition(value2);
+    changeValue(value);
+}
+
+void SpinSlider::sliderReleased() {
+    //qDebug() << "sliderReleased";
+    emit valueChanged(this->value);
+}
+
+void SpinSlider::sliderMoved(int value) {
+    changeValue(value);
+    emit valueChanged(this->value);
+}
+
+// ----------------------------------------------------------------------------------
+
+ToolSet::ToolSet() {
+
+    drawPalette = new QDockWidget(tr("Tools"));
+    optionPalette = new QDockWidget(tr("Options"));
+    displayPalette = new QDockWidget(tr("Display"));
+    keyPalette = new QDockWidget(tr("Keys"));
+    onionPalette = new QDockWidget(tr("Onion skin"));
+    timePalette = new QDockWidget(tr("Controls"));
+
+#ifdef Q_WS_MAC
+    //drawPalette->setTitleBarWidget(new TitleBar(drawPalette));
+#endif
+    //drawPalette->setAutoFillBackground(false);
+    //drawPalette->setAttribute(Qt::WA_NoSystemBackground, true);
+
+    /*QPalette optionPalettePalette(optionPalette->palette());
+    optionPalettePalette.setColor(QPalette::Light, Qt::red);
+    optionPalettePalette.setColor(QPalette::Midlight, Qt::red);
+    optionPalettePalette.setColor(QPalette::Dark, Qt::red);
+    optionPalettePalette.setColor(QPalette::Shadow, Qt::red);
+    optionPalette->setPalette(optionPalettePalette);*/
+
+    //optionPalette->setWindowFlags(Qt::Tool);
+    //optionPalette->setWindowIconText(tr("Coucou"));
+    //optionPalette->setFont( QFont("Helvetica", 14, QFont::Bold) );
+
+    //QGroupBox *drawGroup = new QGroupBox(tr("Draw"));
+    QFrame *drawGroup = new QFrame();
+    QFrame *optionGroup = new QFrame();
+    QFrame *displayGroup = new QFrame();
+    QFrame *keyGroup = new QFrame();
+    QFrame *onionGroup = new QFrame();
+    QFrame * timeGroup = new QFrame();
+
+    //QFrame *line = new QFrame();
+    //line->setFrameStyle(QFrame::HLine | QFrame::Raised);
+
+    //drawGroup->setMaximumHeight( 100 );
+    //optionGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+    //keyGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+    //onionGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+    //timeGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+
+    //optionGroup->setLineWidth(2);
+    //keyGroup->setLineWidth(2);
+    //displayGroup->setLineWidth(2);
+    //onionGroup->setLineWidth(2);
+    //timeGroup->setLineWidth(2);
+
+    drawPalette->setWidget(drawGroup);
+    optionPalette->setWidget(optionGroup);
+    displayPalette->setWidget(displayGroup);
+    keyPalette->setWidget(keyGroup);
+    onionPalette->setWidget(onionGroup);
+    timePalette->setWidget(timeGroup);
+
+    QVBoxLayout *framelay = new QVBoxLayout();
+    QGridLayout *drawLay = new QGridLayout();
+    QGridLayout *optionLay = new QGridLayout();
+    QGridLayout *displayLay = new QGridLayout();
+    QGridLayout *keyLay = new QGridLayout();
+    QGridLayout *onionLay = new QGridLayout();
+    QGridLayout *timeLay = new QGridLayout();
+    QVBoxLayout *butlay = new QVBoxLayout();
+
+    QSettings settings("Pencil","Pencil");
+
+    newToolButton(pencilButton); // = new QToolButton(this);
+    newToolButton(selectButton); //  = new QToolButton(this);
+    newToolButton(moveButton); //  = new QToolButton(this);
+    newToolButton(handButton); //  = new QToolButton(this);
+    newToolButton(penButton); //  = new QToolButton(this);
+    newToolButton(eraserButton); //  = new QToolButton(this);
+    newToolButton(polylineButton); //  = new QToolButton(this);
+    newToolButton(bucketButton); //  = new QToolButton(this);
+    newToolButton(colouringButton); //  = new QToolButton(this);
+    newToolButton(eyedropperButton); //  = new QToolButton(this);
+    newToolButton(clearButton); //  = new QToolButton(this);
+    newToolButton(magnifyButton);
+    newToolButton(smudgeButton);
+    newToolButton(onionStraightAheadButton);
+    newToolButton(onionInbetweenButton);
+
+    add = new QToolButton(this);
+    rm = new QToolButton(this);
+    thinLinesButton = new QToolButton(this);
+    outlinesButton = new QToolButton(this);
+    mirrorButton = new QToolButton(this); //  = new QToolButton(this);
+
+    choseColour = new QToolButton(this);
+    play = new QPushButton(tr("Play"),this);
+
+    play->setFixedWidth(80);
+
+    pencilButton->setWhatsThis("Draw");
+    penButton->setWhatsThis("Pen");
+    polylineButton->setWhatsThis("Polyline");
+    bucketButton->setWhatsThis("Paint bucket");
+    colouringButton->setWhatsThis("Brush");
+
+    usePressureBox = new QCheckBox("Size with pressure");
+    usePressureBox->setFont( QFont("Helvetica", 10) );
+    usePressureBox->setChecked(true);
+
+    makeInvisibleBox = new QCheckBox("Invisible");
+    makeInvisibleBox->setFont( QFont("Helvetica", 10) );
+    makeInvisibleBox->setChecked(false);
+
+    preserveAlphaBox = new QCheckBox("Preserve Alpha");
+    preserveAlphaBox->setFont( QFont("Helvetica", 10) );
+    preserveAlphaBox->setChecked(false);
+
+    followContourBox = new QCheckBox("Stop at contours");
+    followContourBox->setFont( QFont("Helvetica", 10) );
+    followContourBox->setChecked(false);
+
+    onionStraightAheadButton->setFont( QFont("Helvetica", 10) );
+    onionInbetweenButton->setFont( QFont("Helvetica", 10) );   
+
+    /*sizeSlider = new QDoubleSpinBox(this);
+    sizeSlider->setFocusPolicy(Qt::NoFocus);
+    sizeSlider->setFont( QFont("Helvetica", 10) );
+    sizeSlider->setDecimals(1);
+    sizeSlider->setMinimum(0);
+    sizeSlider->setMaximum(200);
+    sizeSlider->setValue(settings.value("width").toInt());
+    sizeSlider->setFixedWidth(50);
+    sizeSlider->setFixedHeight(22);*/
+
+    sizeSlider = new SpinSlider("Size", "log", "real", 0.2, 200.0, this);
+    sizeSlider->setValue(settings.value("pencilWidth").toDouble());
+
+    featherSlider = new SpinSlider("Feather", "log", "real", 0.2, 200.0, this);
+    featherSlider->setValue(settings.value("pencilFeather").toDouble());
+
+    opacitySlider = new SpinSlider("Opacity", "linear", "real", 0.0, 1.0, this);
+    opacitySlider->setValue(settings.value("pencilOpacity").toDouble());
+
+    /*featherSlider = new QSlider(Qt::Horizontal, this);
+    featherSlider->setMinimum(0);
+    featherSlider->setMaximum(100);
+    featherSlider->setFixedHeight(22);*/
+
+    soundBox = new QCheckBox("Sound");
+    soundBox->setFont( QFont("Helvetica", 10) );
+    loopBox = new QCheckBox(tr("Loop"), this);
+    loopBox->setFont( QFont("Helvetica", 10) );
+
+    fpsBox = new QSpinBox(this);
+    //fpsBox->setFixedWidth(50);
+    fpsBox->setFont( QFont("Helvetica", 10) );
+    fpsBox->setFixedHeight(22);
+    fpsBox->setValue(settings.value("fps").toInt());
+    fpsBox->setMinimum(1);
+    fpsBox->setMaximum(50);
+    fpsBox->setToolTip("FPS");
+    fpsBox->setFocusPolicy(Qt::NoFocus);
+
+    /*framecounter = new QLabel;
+    framecounter->setText("1");
+    framecounter->setAlignment(Qt::AlignCenter);
+    framecounter->setToolTip("Frame Counter!");
+    framecounter->setFont( QFont("Helvetica", 40, QFont::Bold) );*/
+
+    sizeSlider->setToolTip("Set Pen Width");
+    pencilButton->setIcon(QIcon(":icons/pencil2.png"));
+    pencilButton->setToolTip("Sketch");
+    penButton->setIcon(QIcon(":icons/pen.png"));
+    penButton->setToolTip("Draw");
+    polylineButton->setIcon(QIcon(":icons/polyline.png"));
+    polylineButton->setToolTip("Polyline");
+    bucketButton->setIcon(QIcon(":icons/bucket.png"));
+    bucketButton->setToolTip("Fill");
+    colouringButton->setIcon(QIcon(":icons/brush.png"));
+    colouringButton->setToolTip("Colouring tool");
+    eyedropperButton->setIcon(QIcon(":icons/eyedropper.png"));
+    eyedropperButton->setToolTip("Pick colour");
+    selectButton->setIcon(QIcon(":icons/select.png"));
+    selectButton->setToolTip("Select");
+    moveButton->setIcon(QIcon(":icons/arrow.png"));
+    moveButton->setToolTip("Select/Move object");
+    handButton->setIcon(QIcon(":icons/hand.png"));
+    handButton->setToolTip("Move/Zoom canvas");
+    magnifyButton->setIcon(QIcon(":icons/magnify.png"));
+    magnifyButton->setToolTip("Magnify canvas");
+    magnifyButton->setEnabled(false);
+    smudgeButton->setIcon(QIcon(":icons/smudge.png"));
+    smudgeButton->setToolTip("Modify curve");
+    smudgeButton->setEnabled(true);
+    eraserButton->setIcon(QIcon(":icons/eraser.png"));
+    eraserButton->setToolTip("Erase");
+    add->setIcon(QIcon(":icons/add.png"));
+    add->setToolTip("Add Frame");
+    rm->setIcon(QIcon(":icons/remove.png"));
+    rm->setToolTip("Remove Frame");
+
+    QPixmap colourSwatch(30,30);
+    colourSwatch.fill(Qt::black);
+    QLabel* colourLabel = new QLabel();
+    colourLabel->setText(tr("Colour:"));
+    colourLabel->setFont( QFont("Helvetica", 10) );
+    choseColour->setIcon(colourSwatch);
+    choseColour->setToolTip("Display Colours");
+
+    thinLinesButton->setIcon(QIcon(":icons/thinlines5.png"));
+    thinLinesButton->setToolTip("Show invisible lines");
+    outlinesButton->setIcon(QIcon(":icons/outlines5.png"));
+    outlinesButton->setToolTip("Show outlines only");
+
+    mirrorButton->setIcon(QIcon(":icons/mirror.png"));
+    mirrorButton->setToolTip("Horizontal flip");
+    clearButton->setIcon(QIcon(":icons/clear.png"));
+    clearButton->setToolTip("Clear");
+    thinLinesButton->setCheckable(true);
+    thinLinesButton->setChecked(false);
+    outlinesButton->setCheckable(true);
+    outlinesButton->setChecked(false);
+    mirrorButton->setCheckable(true);
+    mirrorButton->setChecked(false);
+    pencilButton->setCheckable(true);
+    penButton->setCheckable(true);
+    polylineButton->setCheckable(true);
+    bucketButton->setCheckable(true);
+    colouringButton->setCheckable(true);
+    smudgeButton->setCheckable(true);
+    eyedropperButton->setCheckable(true);
+    selectButton->setCheckable(true);
+    moveButton->setCheckable(true);
+    handButton->setCheckable(true);
+    eraserButton->setCheckable(true);
+    pencilButton->setChecked(true);
+
+    drawLay->setMargin(2);
+    drawLay->setSpacing(0);
+
+    drawLay->addWidget(pencilButton,0,0); drawLay->setAlignment(pencilButton, Qt::AlignRight);
+    drawLay->addWidget(colouringButton,0,1); drawLay->setAlignment(colouringButton, Qt::AlignLeft);
+
+    drawLay->addWidget(penButton,1,0); drawLay->setAlignment(penButton, Qt::AlignRight);
+    drawLay->addWidget(polylineButton,1,1); drawLay->setAlignment(polylineButton, Qt::AlignLeft);
+
+    drawLay->addWidget(eraserButton,2,0); drawLay->setAlignment(eraserButton, Qt::AlignRight);
+    drawLay->addWidget(clearButton,2,1); drawLay->setAlignment(clearButton, Qt::AlignLeft);
+
+    drawLay->addWidget(bucketButton,3,0); drawLay->setAlignment(bucketButton, Qt::AlignRight);
+    drawLay->addWidget(eyedropperButton,3,1); drawLay->setAlignment(eyedropperButton, Qt::AlignLeft);
+
+    drawLay->addWidget(selectButton,4,0); drawLay->setAlignment(selectButton, Qt::AlignRight);
+    drawLay->addWidget(moveButton,4,1); drawLay->setAlignment(moveButton, Qt::AlignLeft);
+
+    drawLay->addWidget(handButton,5,0); drawLay->setAlignment(handButton, Qt::AlignRight);
+    drawLay->addWidget(smudgeButton,5,1); drawLay->setAlignment(smudgeButton, Qt::AlignLeft);
+    //drawLay->addWidget(mirrorButton,5,1); drawLay->setAlignment(mirrorButton, Qt::AlignLeft);
+
+    optionLay->setMargin(8);
+    optionLay->setSpacing(8);
+    optionLay->addWidget(colourLabel,6,0);
+    optionLay->addWidget(choseColour,6,1);
+ //optionLay->addWidget(thinLinesButton,6,2);
+
+    //optionLay->addWidget(sizeSlider,7,0,1,2);
+
+
+    /*QGroupBox* sizeBox = new QGroupBox("Size");
+    QHBoxLayout* sizeBoxLay = new QHBoxLayout();
+    sizeBoxLay->addWidget(sizeSlider2);
+    sizeBoxLay->setMargin(0);
+    sizeBoxLay->setSpacing(0);
+    sizeBox->setLayout(sizeBoxLay);*/
+
+    optionLay->addWidget(sizeSlider,8,0,1,2);
+    optionLay->addWidget(featherSlider,9,0,1,2);
+    //optionLay->addWidget(opacitySlider,10,0,1,2);
+
+    optionLay->addWidget(usePressureBox,11,0,1,2);
+    optionLay->addWidget(preserveAlphaBox,12,0,1,2);
+    optionLay->addWidget(followContourBox,13,0,1,2);
+    optionLay->addWidget(makeInvisibleBox,14,0,1,2);
+        optionLay->setRowStretch(15,1);
+
+    displayLay->setMargin(4);
+    displayLay->setSpacing(0);
+    displayLay->addWidget(mirrorButton,0,0);
+    displayLay->addWidget(thinLinesButton,0,1);
+    displayLay->addWidget(outlinesButton,0,2);
+
+    keyLay->setMargin(4);
+    keyLay->setSpacing(0);
+    keyLay->addWidget(add,0,0);
+    keyLay->addWidget(rm,0,1);
+
+    onionLay->setMargin(4);
+    onionLay->setSpacing(0);
+    onionLay->addWidget(onionStraightAheadButton, 0,0);   
+    onionLay->addWidget(onionInbetweenButton, 1,0);
+
+    timeLay->setMargin(4);
+    timeLay->setSpacing(0);
+    timeLay->addWidget(play,0,0);
+    timeLay->addWidget(fpsBox,1,0);
+    timeLay->addWidget(loopBox,2,0,1,-1);
+    timeLay->addWidget(soundBox,3,0,1,-1);
+
+    drawGroup->setLayout(drawLay);
+    optionGroup->setLayout(optionLay);
+    displayGroup->setLayout(displayLay);
+    keyGroup->setLayout(keyLay);
+    onionGroup->setLayout(onionLay);
+    timeGroup->setLayout(timeLay);
+
+    //keyGroup->setFlat(true);
+    //onionGroup->setFlat(true);
+    //timeGroup->setFlat(true);
+
+    //drawGroup->setMaximumSize( QSize(3*32,6*32+1) );
+    drawGroup->setMaximumHeight(6*32+1);
+   
+    drawPalette->setMaximumHeight(200);
+    //drawPalette->setFeatures(drawPalette->features() | QDockWidget::DockWidgetVerticalTitleBar);
+        //optionPalette->setMaximumHeight(300);
+        //optionGroup->setMaximumHeight(160);
+    displayPalette->setMaximumHeight(60);
+    keyGroup->setMaximumHeight(60);
+    onionGroup->setMaximumHeight(60);
+
+    /*butlay->setMargin(0);
+    butlay->setSpacing(2);
+    butlay->addWidget(drawGroup);
+        butlay->addWidget(optionGroup);
+    butlay->addWidget(keyGroup);
+    butlay->addWidget(onionGroup);
+    butlay->addWidget(timeGroup);
+
+    framelay->addLayout(butlay);
+    //framelay->addWidget(framecounter);
+
+    setLayout(framelay);*/
+
+    connect(add, SIGNAL(clicked()), this, SIGNAL(addClick()));
+    connect(rm, SIGNAL(clicked()), this, SIGNAL(rmClick()));
+
+    connect(pencilButton, SIGNAL(clicked()), this, SIGNAL(pencilClick()));
+    connect(selectButton, SIGNAL(clicked()), this, SIGNAL(selectClick()));
+    connect(moveButton, SIGNAL(clicked()), this, SIGNAL(moveClick()));
+    connect(handButton, SIGNAL(clicked()), this, SIGNAL(handClick()));
+    connect(eraserButton, SIGNAL(clicked()), this, SIGNAL(eraserClick()));
+    connect(penButton, SIGNAL(clicked()), this, SIGNAL(penClick()));
+    connect(polylineButton, SIGNAL(clicked()), this, SIGNAL(polylineClick()));
+    connect(bucketButton, SIGNAL(clicked()), this, SIGNAL(bucketClick()));
+    connect(eyedropperButton, SIGNAL(clicked()), this, SIGNAL(eyedropperClick()));
+    connect(colouringButton, SIGNAL(clicked()), this, SIGNAL(colouringClick()));
+    connect(smudgeButton, SIGNAL(clicked()), this, SIGNAL(smudgeClick()));
+
+    connect(thinLinesButton, SIGNAL(clicked()), this, SIGNAL(thinLinesClick()));
+    connect(outlinesButton, SIGNAL(clicked()), this, SIGNAL(outlinesClick()));
+    //connect(outlinesButton, SIGNAL(pressed()), this, SIGNAL(outlinesPressed()));
+    //connect(outlinesButton, SIGNAL(released()), this, SIGNAL(outlinesReleased()));
+
+    connect(usePressureBox, SIGNAL(clicked(bool)), this, SLOT(pressureClick(bool)));
+    connect(makeInvisibleBox, SIGNAL(clicked(bool)), this, SLOT(invisibleClick(bool)));
+    connect(preserveAlphaBox, SIGNAL(clicked(bool)), this, SLOT(preserveAlphaClick(bool)));
+    connect(followContourBox, SIGNAL(clicked(bool)), this, SLOT(followContourClick(bool)));
+    connect(sizeSlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(widthClick(qreal)));
+    connect(featherSlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(featherClick(qreal)));
+    connect(opacitySlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(opacityClick(qreal)));
+
+    connect(onionStraightAheadButton, SIGNAL(clicked()), this SIGNAL(onionStraightAheadClick()));
+    connect(onionInbetweenButton, SIGNAL(clicked()), this SIGNAL(onionInbetweenClick()));
+
+    connect(choseColour, SIGNAL(clicked()), this, SIGNAL(colourClick()));
+    connect(clearButton, SIGNAL(clicked()), this, SIGNAL(clearClick()));
+    connect(mirrorButton, SIGNAL(clicked()), this, SIGNAL(mirrorClick()));
+
+    connect(play, SIGNAL(clicked()), this, SIGNAL(playClick()));
+    connect(loopBox, SIGNAL(stateChanged(int)), this, SIGNAL(loopClick()));
+    connect(soundBox, SIGNAL(stateChanged(int)), this, SIGNAL(soundClick()));
+
+    connect(fpsBox,SIGNAL(valueChanged(int)), this, SIGNAL(fpsClick(int)));
+
+    connect(pencilButton, SIGNAL(clicked()), this, SLOT(changePencilButton()));
+    connect(selectButton, SIGNAL(clicked()), this, SLOT(changeSelectButton()));
+    connect(moveButton, SIGNAL(clicked()), this, SLOT(changeMoveButton()));
+    connect(handButton, SIGNAL(clicked()), this, SLOT(changeHandButton()));
+    connect(eraserButton, SIGNAL(clicked()), this, SLOT(changeEraserButton()));
+    connect(penButton, SIGNAL(clicked()), this, SLOT(changePenButton()));
+    connect(polylineButton, SIGNAL(clicked()), this, SLOT(changePolylineButton()));
+    connect(bucketButton, SIGNAL(clicked()), this, SLOT(changeBucketButton()));
+    connect(eyedropperButton, SIGNAL(clicked()), this, SLOT(changeEyedropperButton()));
+    connect(colouringButton, SIGNAL(clicked()), this, SLOT(changeColouringButton()));
+    connect(smudgeButton, SIGNAL(clicked()), this, SLOT(changeSmudgeButton()));
+
+    //connect(thinLinesButton, SIGNAL(clicked()), this, SLOT(changeThinLinesButton()));
+}
+
+void ToolSet::newToolButton(QToolButton* &toolButton) {
+    toolButton = new QToolButton(this);
+    toolButton->setAutoRaise(true);
+    toolButton->setIconSize( QSize(24,24) );
+    toolButton->setFixedSize(32,32);
+}
+
+void ToolSet::setCounter(int x) {
+    //framecounter->setText(QString::number(x));
+}
+
+void ToolSet::setWidth(qreal x) {
+    if(x < 0) {
+        sizeSlider->setEnabled(false);
+    } else {
+        sizeSlider->setEnabled(true);
+        sizeSlider->setValue(x);
+    }
+}
+
+void ToolSet::setFeather(qreal x) {
+    if(x < 0) {
+        featherSlider->setEnabled(false);
+    } else {
+        featherSlider->setEnabled(true);
+        featherSlider->setValue(x);
+    }
+}
+
+void ToolSet::setOpacity(qreal x) {
+    if(x < 0) {
+        opacitySlider->setEnabled(false);
+    } else {
+        opacitySlider->setEnabled(true);
+        opacitySlider->setValue(x);
+    }
+}
+
+void ToolSet::setPressure(int x) { // x = -1, 0, 1
+    if(x<0) {
+        usePressureBox->setEnabled(false);
+    } else {
+        usePressureBox->setEnabled(true);
+        usePressureBox->setChecked(x>0);
+    }
+}
+
+void ToolSet::pressureClick(bool x) {
+    int y = 0;
+    if(x) y = 1;
+    emit pressureClick(y);
+}
+
+void ToolSet::setInvisibility(int x) { // x = -1, 0, 1
+    if(x<0) {
+        makeInvisibleBox->setEnabled(false);
+    } else {
+        makeInvisibleBox->setEnabled(true);
+        makeInvisibleBox->setChecked(x>0);
+    }
+}
+
+void ToolSet::invisibleClick(bool x) {
+    int y = 0;
+    if(x) y = 1;
+    emit invisibleClick(y);
+}
+
+void ToolSet::setPreserveAlpha(int x) { // x = -1, 0, 1
+    if(x<0) {
+        preserveAlphaBox->setEnabled(false);
+    } else {
+        preserveAlphaBox->setEnabled(true);
+        preserveAlphaBox->setChecked(x>0);
+    }
+}
+
+void ToolSet::preserveAlphaClick(bool x) {
+    int y = 0;
+    if(x) y = 1;
+    emit preserveAlphaClick(y);
+}
+
+void ToolSet::setFollowContour(int x) { // x = -1, 0, 1
+    if(x<0) {
+        followContourBox->setEnabled(false);
+    } else {
+        followContourBox->setEnabled(true);
+        followContourBox->setChecked(x>0);
+    }
+}
+
+void ToolSet::followContourClick(bool x) {
+    int y = 0;
+    if(x) y = 1;
+    emit followContourClick(y);
+}
+
+void ToolSet::setColour(QColor x) {
+    QPixmap colourSwatch(30,30);
+    colourSwatch.fill(x);
+    choseColour->setIcon(colourSwatch);
+}
+
+void ToolSet::changePencilButton() {
+    deselectAllTools();
+    pencilButton->setChecked(true);
+}
+
+void ToolSet::changeEraserButton() {
+    deselectAllTools();
+    eraserButton->setChecked(true);
+}
+
+void ToolSet::changeSelectButton() {
+    deselectAllTools();
+    selectButton->setChecked(true);
+}
+
+void ToolSet::changeMoveButton() {
+    deselectAllTools();
+    moveButton->setChecked(true);
+}
+
+void ToolSet::changeHandButton() {
+    deselectAllTools();
+    handButton->setChecked(true);
+}
+
+void ToolSet::changePenButton() {
+    deselectAllTools();
+    penButton->setChecked(true);
+}
+
+void ToolSet::changePolylineButton() {
+    deselectAllTools();
+    polylineButton->setChecked(true);
+}
+
+void ToolSet::changeBucketButton() {
+    deselectAllTools();
+    bucketButton->setChecked(true);
+}
+
+void ToolSet::changeEyedropperButton() {
+    deselectAllTools();
+    eyedropperButton->setChecked(true);
+}
+
+void ToolSet::changeColouringButton() {
+    deselectAllTools();
+    colouringButton->setChecked(true);
+}
+
+void ToolSet::changeSmudgeButton() {
+    deselectAllTools();
+    smudgeButton->setChecked(true);
+}
+
+void ToolSet::changeOutlinesButton(bool trueOrFalse) {
+    outlinesButton->setChecked(trueOrFalse);
+}
+
+
+void ToolSet::changeThinLinesButton(bool trueOrFalse) {
+    thinLinesButton->setChecked(trueOrFalse);
+}
+
+
+void ToolSet::resetMirror() {
+    mirrorButton->setChecked(false);
+}
+
+void ToolSet::deselectAllTools() {
+    pencilButton->setChecked(false);
+    eraserButton->setChecked(false);
+    selectButton->setChecked(false);
+    moveButton->setChecked(false);
+    handButton->setChecked(false);
+    penButton->setChecked(false);
+    polylineButton->setChecked(false);
+    bucketButton->setChecked(false);
+    eyedropperButton->setChecked(false);
+    colouringButton->setChecked(false);
+    smudgeButton->setChecked(false);
+}
+
+
diff -rupN pencil_backup/src/interface/toolset.h pencil_dev/src/interface/toolset.h
--- pencil_backup/src/interface/toolset.h    2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/toolset.h    2009-09-27 15:47:04.000000000 -0500
@@ -104,14 +104,16 @@ signals:
    void colouringClick();
    void smudgeClick();
   
+    void onionStraightAheadClick();
+    void onionInbetweenClick();
+
    void lengthClick(QString);
    void fpsClick(int);
    void clearClick();
    void thinLinesClick();
    void outlinesClick();
    void mirrorClick();
-    void prevClick();
-    void nextClick();
+    void onionRadio(int);
    void widthClick(qreal);
    void featherClick(qreal);
    void opacityClick(qreal);
@@ -145,6 +147,9 @@ private:
   
    QToolButton *add;
    QToolButton *rm;
+
+    QToolButton *onionStraightAheadButton;
+    QToolButton *onionInbetweenButton;
   
    QSpinBox *fpsBox;
    //QDoubleSpinBox *sizeSlider;
@@ -160,8 +165,6 @@ private:
    QCheckBox *preserveAlphaBox;
    QCheckBox *followContourBox;
   
-    QCheckBox *onionPrevBox;
-    QCheckBox *onionNextBox;
    QCheckBox *loopBox;
    QCheckBox *soundBox;
    int fps;
diff -rupN pencil_backup/src/interface/toolset.h~ pencil_dev/src/interface/toolset.h~
--- pencil_backup/src/interface/toolset.h~    1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/toolset.h~    2009-09-26 20:49:53.000000000 -0500
@@ -0,0 +1,174 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+*/
+#ifndef TOOLSET_H
+#define TOOLSET_H
+
+#include <QtGui>
+
+class SpinSlider : public QWidget
+{
+    Q_OBJECT
+    public:
+    SpinSlider(QString text, QString type, QString dataType, qreal min, qreal max, QWidget *parent = 0);
+    public slots:
+        void changeValue(qreal);
+        void changeValue(int);
+        void setValue(qreal);
+        void sliderReleased();
+        void sliderMoved(int);
+    signals:
+        void valueChanged(qreal);
+    private:
+        QLabel* valueLabel;
+        QSlider* slider;
+        qreal value, min, max;
+        QString type, dataType;
+};
+
+
+class ToolSet : public QWidget
+{
+    Q_OBJECT
+
+public:
+    ToolSet();
+   
+    QDockWidget *drawPalette;
+    QDockWidget *optionPalette;
+    QDockWidget *displayPalette;
+    QDockWidget *keyPalette;
+    QDockWidget *onionPalette;
+    QDockWidget *timePalette;
+   
+public slots:
+    void setCounter(int);
+    void setWidth(qreal);
+    void setFeather(qreal);
+    void setOpacity(qreal);
+    void setInvisibility(int);
+    void setPressure(int);
+    void setPreserveAlpha(int);
+    void setFollowContour(int);
+    void setColour(QColor);
+    //void playStart();
+    void changePencilButton();
+    void changeEraserButton();
+    void changeSelectButton();
+    void changeMoveButton();
+    void changeHandButton();
+    void changePenButton();
+    void changePolylineButton();
+    void changeBucketButton();
+    void changeEyedropperButton();
+    void changeColouringButton();
+    void changeThinLinesButton(bool);
+    void changeOutlinesButton(bool);
+    void changeSmudgeButton();
+   
+    void resetMirror();
+    void pressureClick(bool);
+    void invisibleClick(bool);
+    void preserveAlphaClick(bool);
+    void followContourClick(bool);
+   
+signals:
+    void rmClick();
+    void playClick();
+    void addClick();
+    void pencilClick();
+    void eraserClick();
+    void selectClick();
+    void moveClick();
+    void handClick();
+    void penClick();
+    void pressureClick(int);
+    void invisibleClick(int);
+    void preserveAlphaClick(int);
+    void followContourClick(int);
+    void polylineClick();
+    void bucketClick();
+    void eyedropperClick();
+    void colouringClick();
+    void smudgeClick();
+   
+    void lengthClick(QString);
+    void fpsClick(int);
+    void clearClick();
+    void thinLinesClick();
+    void outlinesClick();
+    void mirrorClick();
+    void onionRadio(int);
+    void widthClick(qreal);
+    void featherClick(qreal);
+    void opacityClick(qreal);
+    void colourClick();
+    void loopClick();
+    void soundClick();
+   
+private:
+    void newToolButton(QToolButton* &toolButton);
+   
+    QToolButton *choseColour;
+    QPixmap *colourSwatch;
+    QToolButton *pencilButton;
+    QToolButton *selectButton;
+    QToolButton *moveButton;
+    QToolButton *handButton;
+    QToolButton *eraserButton;
+    QToolButton *penButton;
+    QToolButton *polylineButton;
+    QToolButton *bucketButton;
+    QToolButton *colouringButton;
+    QToolButton *eyedropperButton;
+    QToolButton *magnifyButton;
+    QToolButton *smudgeButton;
+   
+    QToolButton *thinLinesButton;
+    QToolButton *outlinesButton;
+   
+    QToolButton *mirrorButton;
+    QToolButton *clearButton;
+   
+    QToolButton *add;
+    QToolButton *rm;
+
+    QToolButton *onionStraightAheadButton;
+    QToolButton *onionInbetweenButton;
+   
+    QSpinBox *fpsBox;
+    //QDoubleSpinBox *sizeSlider;
+    SpinSlider *sizeSlider;
+    SpinSlider *featherSlider;
+    SpinSlider *opacitySlider;
+    //QSlider *featherSlider;
+    QLabel *framecounter;
+    QPushButton *play;
+   
+    QCheckBox *usePressureBox;
+    QCheckBox *makeInvisibleBox;
+    QCheckBox *preserveAlphaBox;
+    QCheckBox *followContourBox;
+   
+    QCheckBox *loopBox;
+    QCheckBox *soundBox;
+    int fps;
+   
+    void deselectAllTools();
+   
+   
+};
+
+#endif
Binary files pencil_backup/timecontrols.o and pencil_dev/timecontrols.o differ
Binary files pencil_backup/timeline.o and pencil_dev/timeline.o differ
Binary files pencil_backup/toolset.o and pencil_dev/toolset.o differ
Binary files pencil_backup/vectorimage.o and pencil_dev/vectorimage.o differ
Binary files pencil_backup/vertexref.o and pencil_dev/vertexref.o differ

Pages