--- qt-x11-free-3.3.8b.orig/debian/libqt3-headers.install
+++ qt-x11-free-3.3.8b/debian/libqt3-headers.install
@@ -0,0 +1,271 @@
+usr/include/qt3/private/*
+usr/include/qt3/qabstractlayout.h
+usr/include/qt3/qaccel.h
+usr/include/qt3/qaccessible.h
+usr/include/qt3/qaction.h
+usr/include/qt3/qapplication.h
+usr/include/qt3/qasciicache.h
+usr/include/qt3/qasciidict.h
+usr/include/qt3/qasyncimageio.h
+usr/include/qt3/qasyncio.h
+usr/include/qt3/qbig5codec.h
+usr/include/qt3/qbitarray.h
+usr/include/qt3/qbitmap.h
+usr/include/qt3/qbrush.h
+usr/include/qt3/qbuffer.h
+usr/include/qt3/qbutton.h
+usr/include/qt3/qbuttongroup.h
+usr/include/qt3/qcache.h
+usr/include/qt3/qcanvas.h
+usr/include/qt3/qcdestyle.h
+usr/include/qt3/qcheckbox.h
+usr/include/qt3/qcleanuphandler.h
+usr/include/qt3/qclipboard.h
+usr/include/qt3/qcolor.h
+usr/include/qt3/qcolordialog.h
+usr/include/qt3/qcombobox.h
+usr/include/qt3/qcommonstyle.h
+usr/include/qt3/qcompactstyle.h
+usr/include/qt3/qconnection.h
+usr/include/qt3/qcstring.h
+usr/include/qt3/qcursor.h
+usr/include/qt3/qdatabrowser.h
+usr/include/qt3/qdatastream.h
+usr/include/qt3/qdatatable.h
+usr/include/qt3/qdataview.h
+usr/include/qt3/qdatetime.h
+usr/include/qt3/qdatetimeedit.h
+usr/include/qt3/qdeepcopy.h
+usr/include/qt3/qdesktopwidget.h
+usr/include/qt3/qdial.h
+usr/include/qt3/qdialog.h
+usr/include/qt3/qdict.h
+usr/include/qt3/qdir.h
+usr/include/qt3/qdns.h
+usr/include/qt3/qdockarea.h
+usr/include/qt3/qdockwindow.h
+usr/include/qt3/qdom.h
+usr/include/qt3/qdragobject.h
+usr/include/qt3/qdrawutil.h
+usr/include/qt3/qdropsite.h
+usr/include/qt3/qeditorfactory.h
+usr/include/qt3/qerrormessage.h
+usr/include/qt3/qeucjpcodec.h
+usr/include/qt3/qeuckrcodec.h
+usr/include/qt3/qevent.h
+usr/include/qt3/qeventloop.h
+usr/include/qt3/qfeatures.h
+usr/include/qt3/qfile.h
+usr/include/qt3/qfiledialog.h
+usr/include/qt3/qfileinfo.h
+usr/include/qt3/qfocusdata.h
+usr/include/qt3/qfont.h
+usr/include/qt3/qfontdatabase.h
+usr/include/qt3/qfontdialog.h
+usr/include/qt3/qfontinfo.h
+usr/include/qt3/qfontmetrics.h
+usr/include/qt3/qframe.h
+usr/include/qt3/qftp.h
+usr/include/qt3/qgarray.h
+usr/include/qt3/qgb18030codec.h
+usr/include/qt3/qgbkcodec.h
+usr/include/qt3/qgcache.h
+usr/include/qt3/qgdict.h
+usr/include/qt3/qgeneric.h
+usr/include/qt3/qgif.h
+usr/include/qt3/qglist.h
+usr/include/qt3/qglobal.h
+usr/include/qt3/qgplugin.h
+usr/include/qt3/qgrid.h
+usr/include/qt3/qgridview.h
+usr/include/qt3/qgroupbox.h
+usr/include/qt3/qguardedptr.h
+usr/include/qt3/qgvector.h
+usr/include/qt3/qhbox.h
+usr/include/qt3/qhbuttongroup.h
+usr/include/qt3/qheader.h
+usr/include/qt3/qhgroupbox.h
+usr/include/qt3/qhostaddress.h
+usr/include/qt3/qhttp.h
+usr/include/qt3/qiconset.h
+usr/include/qt3/qiconview.h
+usr/include/qt3/qimage.h
+usr/include/qt3/qimageformatplugin.h
+usr/include/qt3/qinputdialog.h
+usr/include/qt3/qintcache.h
+usr/include/qt3/qintdict.h
+usr/include/qt3/qinterlacestyle.h
+usr/include/qt3/qiodevice.h
+usr/include/qt3/qjiscodec.h
+usr/include/qt3/qjpegio.h
+usr/include/qt3/qjpunicode.h
+usr/include/qt3/qkeycode.h
+usr/include/qt3/qkeysequence.h
+usr/include/qt3/qlabel.h
+usr/include/qt3/qlayout.h
+usr/include/qt3/qlcdnumber.h
+usr/include/qt3/qlibrary.h
+usr/include/qt3/qlineedit.h
+usr/include/qt3/qlistbox.h
+usr/include/qt3/qlistview.h
+usr/include/qt3/qlocale.h
+usr/include/qt3/qlocalfs.h
+usr/include/qt3/qmainwindow.h
+usr/include/qt3/qmap.h
+usr/include/qt3/qmemarray.h
+usr/include/qt3/qmenubar.h
+usr/include/qt3/qmenudata.h
+usr/include/qt3/qmessagebox.h
+usr/include/qt3/qmetaobject.h
+usr/include/qt3/qmime.h
+usr/include/qt3/qmngio.h
+usr/include/qt3/qmotifstyle.h
+usr/include/qt3/qmotifplusstyle.h
+usr/include/qt3/qmovie.h
+usr/include/qt3/qmultilineedit.h
+usr/include/qt3/qmutex.h
+usr/include/qt3/qnamespace.h
+usr/include/qt3/qnetwork.h
+usr/include/qt3/qnetworkprotocol.h
+usr/include/qt3/qnp.h
+usr/include/qt3/qobject.h
+usr/include/qt3/qobjectcleanuphandler.h
+usr/include/qt3/qobjectdefs.h
+usr/include/qt3/qobjectdict.h
+usr/include/qt3/qobjectlist.h
+usr/include/qt3/qpaintdevice.h
+usr/include/qt3/qpaintdevicedefs.h
+usr/include/qt3/qpaintdevicemetrics.h
+usr/include/qt3/qpainter.h
+usr/include/qt3/qpair.h
+usr/include/qt3/qpalette.h
+usr/include/qt3/qpen.h
+usr/include/qt3/qpicture.h
+usr/include/qt3/qpixmap.h
+usr/include/qt3/qpixmapcache.h
+usr/include/qt3/qplatinumstyle.h
+usr/include/qt3/qpngio.h
+usr/include/qt3/qpoint.h
+usr/include/qt3/qpointarray.h
+usr/include/qt3/qpolygonscanner.h
+usr/include/qt3/qpopupmenu.h
+usr/include/qt3/qprintdialog.h
+usr/include/qt3/qprinter.h
+usr/include/qt3/qprocess.h
+usr/include/qt3/qprogressbar.h
+usr/include/qt3/qprogressdialog.h
+usr/include/qt3/qptrcollection.h
+usr/include/qt3/qptrdict.h
+usr/include/qt3/qptrlist.h
+usr/include/qt3/qptrqueue.h
+usr/include/qt3/qptrstack.h
+usr/include/qt3/qptrvector.h
+usr/include/qt3/qpushbutton.h
+usr/include/qt3/qradiobutton.h
+usr/include/qt3/qrangecontrol.h
+usr/include/qt3/qrect.h
+usr/include/qt3/qregexp.h
+usr/include/qt3/qregion.h
+usr/include/qt3/qrtlcodec.h
+usr/include/qt3/qscrollbar.h
+usr/include/qt3/qscrollview.h
+usr/include/qt3/qsemaphore.h
+usr/include/qt3/qsemimodal.h
+usr/include/qt3/qserversocket.h
+usr/include/qt3/qsession.h
+usr/include/qt3/qsessionmanager.h
+usr/include/qt3/qsettings.h
+usr/include/qt3/qsgistyle.h
+usr/include/qt3/qshared.h
+usr/include/qt3/qsignal.h
+usr/include/qt3/qsignalmapper.h
+usr/include/qt3/qsignalslotimp.h
+usr/include/qt3/qsimplerichtext.h
+usr/include/qt3/qsize.h
+usr/include/qt3/qsizegrip.h
+usr/include/qt3/qsizepolicy.h
+usr/include/qt3/qsjiscodec.h
+usr/include/qt3/qslider.h
+usr/include/qt3/qsocket.h
+usr/include/qt3/qsocketdevice.h
+usr/include/qt3/qsocketnotifier.h
+usr/include/qt3/qsortedlist.h
+usr/include/qt3/qsound.h
+usr/include/qt3/qspinbox.h
+usr/include/qt3/qsplashscreen.h
+usr/include/qt3/qsplitter.h
+usr/include/qt3/qsql.h
+usr/include/qt3/qsqlcursor.h
+usr/include/qt3/qsqldatabase.h
+usr/include/qt3/qsqldriver.h
+usr/include/qt3/qsqldriverplugin.h
+usr/include/qt3/qsqleditorfactory.h
+usr/include/qt3/qsqlerror.h
+usr/include/qt3/qsqlfield.h
+usr/include/qt3/qsqlform.h
+usr/include/qt3/qsqlindex.h
+usr/include/qt3/qsqlpropertymap.h
+usr/include/qt3/qsqlquery.h
+usr/include/qt3/qsqlrecord.h
+usr/include/qt3/qsqlresult.h
+usr/include/qt3/qsqlselectcursor.h
+usr/include/qt3/qstatusbar.h
+usr/include/qt3/qstring.h
+usr/include/qt3/qstringlist.h
+usr/include/qt3/qstrlist.h
+usr/include/qt3/qstrvec.h
+usr/include/qt3/qstyle.h
+usr/include/qt3/qstylefactory.h
+usr/include/qt3/qstyleplugin.h
+usr/include/qt3/qstylesheet.h
+usr/include/qt3/qsyntaxhighlighter.h
+usr/include/qt3/qt.h
+usr/include/qt3/qtabbar.h
+usr/include/qt3/qtabdialog.h
+usr/include/qt3/qtable.h
+usr/include/qt3/qtabwidget.h
+usr/include/qt3/qtextbrowser.h
+usr/include/qt3/qtextcodec.h
+usr/include/qt3/qtextcodecfactory.h
+usr/include/qt3/qtextcodecplugin.h
+usr/include/qt3/qtextedit.h
+usr/include/qt3/qtextstream.h
+usr/include/qt3/qtextview.h
+usr/include/qt3/qthread.h
+usr/include/qt3/qthreadstorage.h
+usr/include/qt3/qtimer.h
+usr/include/qt3/qtl.h
+usr/include/qt3/qtoolbar.h
+usr/include/qt3/qtoolbox.h
+usr/include/qt3/qtoolbutton.h
+usr/include/qt3/qtooltip.h
+usr/include/qt3/qtranslator.h
+usr/include/qt3/qtsciicodec.h
+usr/include/qt3/qurl.h
+usr/include/qt3/qurlinfo.h
+usr/include/qt3/qurloperator.h
+usr/include/qt3/qutfcodec.h
+usr/include/qt3/quuid.h
+usr/include/qt3/qvalidator.h
+usr/include/qt3/qvaluelist.h
+usr/include/qt3/qvaluestack.h
+usr/include/qt3/qvaluevector.h
+usr/include/qt3/qvariant.h
+usr/include/qt3/qvbox.h
+usr/include/qt3/qvbuttongroup.h
+usr/include/qt3/qvfbhdr.h
+usr/include/qt3/qvgroupbox.h
+usr/include/qt3/qwaitcondition.h
+usr/include/qt3/qwhatsthis.h
+usr/include/qt3/qwidget.h
+usr/include/qt3/qwidgetintdict.h
+usr/include/qt3/qwidgetlist.h
+usr/include/qt3/qwidgetplugin.h
+usr/include/qt3/qwidgetstack.h
+usr/include/qt3/qwindowdefs.h
+usr/include/qt3/qwindowsstyle.h
+usr/include/qt3/qwinexport.h
+usr/include/qt3/qwizard.h
+usr/include/qt3/qwmatrix.h
+usr/include/qt3/qworkspace.h
+usr/include/qt3/qxml.h
--- qt-x11-free-3.3.8b.orig/debian/qt3-dev-tools.postinst
+++ qt-x11-free-3.3.8b/debian/qt3-dev-tools.postinst
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+set -e
+
+update-alternatives --install \
+	/usr/bin/moc moc "/usr/bin/moc-qt3" "45" \
+	--slave /usr/share/man/man1/moc.1.gz moc.1.gz \
+	"/usr/share/man/man1/moc-qt3.1.gz"
+
+update-alternatives --install \
+        /usr/bin/uic uic "/usr/bin/uic-qt3" "45" \
+	--slave /usr/share/man/man1/uic.1.gz uic.1.gz \
+	"/usr/share/man/man1/uic-qt3.1.gz"
+
+update-alternatives --install \
+        /usr/bin/lupdate lupdate "/usr/bin/lupdate-qt3" "45" \
+	--slave /usr/share/man/man1/lupdate.1.gz lupdate.1.gz \
+	"/usr/share/man/man1/lupdate-qt3.1.gz"
+		
+update-alternatives --install \
+        /usr/bin/lrelease lrelease "/usr/bin/lrelease-qt3" "45" \
+	--slave /usr/share/man/man1/lrelease.1.gz lrelease.1.gz \
+	"/usr/share/man/man1/lrelease-qt3.1.gz"
+
+update-alternatives --install \
+        /usr/bin/qmake qmake "/usr/bin/qmake-qt3" "45" \
+
+#DEBHELPER#
--- qt-x11-free-3.3.8b.orig/debian/qt3-qtconfig.menu
+++ qt-x11-free-3.3.8b/debian/qt3-qtconfig.menu
@@ -0,0 +1,8 @@
+?package(qt3-qtconfig):\
+        needs="x11"\
+        section="Applications/System/Administration"\
+        title="Qt3 Config"\
+        longtitle="Qt3 Configuration Utility"\
+        hints="Qt3 config tool"\
+        command="/usr/bin/qtconfig-qt3"
+
--- qt-x11-free-3.3.8b.orig/debian/maintain/assistant-qt3.desktop
+++ qt-x11-free-3.3.8b/debian/maintain/assistant-qt3.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=assistant-qt3
+Name=Qt3 Assistant
+Name[de]=Qt3 Assistent
+Comment=Qt3 Helpcenter
+Comment[de]= Qt3 Hilfezentrum
+MimeType=application/x-assistant;
+Icon=assistant
+Terminal=false
+Type=Application
+Categories=Qt;Development;
--- qt-x11-free-3.3.8b.orig/debian/maintain/designer-qt3.desktop
+++ qt-x11-free-3.3.8b/debian/maintain/designer-qt3.desktop
@@ -0,0 +1,77 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=designer-qt3
+Name=Qt3 Designer
+Name[bg]=Qt3 Дизайнер
+Name[br]=Ergrafer Qt3
+Name[ca]=Dissenyador Qt3
+Name[cs]=Qt3 designer
+Name[de]=Qt3-Designer
+Name[eo]=Qt3-Desegnilo
+Name[es]=Diseñador Qt3
+Name[et]=Qt3 disainer
+Name[eu]=Qt3 Diseinatzailea
+Name[gl]=Deseñador de Qt3
+Name[he]=Qt בצעמ
+Name[it]=Designer Qt3
+Name[ja]=Qtデザイナー
+Name[ko]=Qt 디자이너
+Name[lv]=Qt3 Dizainers
+Name[mk]=Qt дизајнер
+Name[no]=Qt3-designer
+Name[oc]=Dessinador Qt3
+Name[pl]=Projektant Qt3
+Name[sk]=Qt3 Dizajnér
+Name[sl]=Snovalnik Qt3
+Name[ta]=Qt À¨¼ôÀ¡Ç÷
+Name[uk]=Дизайнер Qt
+Name[zh_CN.GB2312]=Qt 设计者
+Name[zh_TW.Big5]=Qt 設計器
+Comment=Qt3 interface designer
+Comment[az]=Qt3 axtar üz dizayn proqramı
+Comment[bg]=Qt3 interface дизайнер
+Comment[br]=Ergrafer etrefas Qt3
+Comment[ca]=Dissenyador d'interfícies Qt3
+Comment[cs]=Editor UI pro Qt3
+Comment[da]=Qt3 grænseflade designer
+Comment[de]=Schnittstellen-Designer für Qt3
+Comment[el]=Σχεδιασμός περιβάλλοντων Qt
+Comment[eo]=Qt3-Interfacdesegnilo
+Comment[es]=Diseñador de interfaces de Qt3
+Comment[et]=Qt3 dialoogide redaktor
+Comment[eu]=Qt3 interfaze diseinatzailea
+Comment[fi]=Qt:n käyttöliittymäsuunnittelija
+Comment[fr]=Conception d'interfaces avec Qt3
+Comment[gl]=Editor de interfaces de Qt3
+Comment[he]=Qt-ל םיקשממ בצעמ
+Comment[hu]=Qt3 felülettervező
+Comment[is]=Viðmótshönnunartól fyrir Qt3
+Comment[it]=Editor per le interfaccie Qt3
+Comment[ja]=Qtインターフェースデザイナー
+Comment[ko]=Qt 인터페이스 디자이너
+Comment[lt]=Qt3 sąsajos redaktorius
+Comment[lv]=Qt3 starsejas dizainers
+Comment[mk]=Дизајнер на Qt дијалози
+Comment[nl]=Qt3 interface-ontwerper
+Comment[no]=Qt3-grensesnittdesigner
+Comment[no_NY]=Redigering av Qt3-miljø
+Comment[oc]=Dessinador d'interfacies Qt3
+Comment[pl]=Projektant interfejsu Qt3
+Comment[pt]=Editor de interfaces do Qt3
+Comment[pt_BR]=Designer de interface Qt3
+Comment[ro]=Dezvoltator de interfeţe Qt3
+Comment[ru]=редактор интерфейсов приложений Qt
+Comment[sk]=Qt3 dizajnér rozhrania
+Comment[sl]=Snovalnik vmesnikov za Qt3
+Comment[sr]=Dizajner Qt3 interfejsa
+Comment[sv]=Editor för gränssnitt till Qt3
+Comment[ta]=Qt À¨¼ôÀ¡Ç÷
+Comment[tr]=Qt3 arayüz tasarım programı
+Comment[uk]=Редактор інтерфейсу для Qt
+Comment[zh_CN.GB2312]=Qt 界面设计程序
+Comment[zh_TW.Big5]=Qt 介面編輯器
+MimeType=application/x-designer;
+Icon=designer
+Terminal=false
+Type=Application
+Categories=Qt;Development;
--- qt-x11-free-3.3.8b.orig/debian/maintain/linguist-qt3.desktop
+++ qt-x11-free-3.3.8b/debian/maintain/linguist-qt3.desktop
@@ -0,0 +1,25 @@
+[Desktop Entry]
+Exec=linguist-qt3
+Name=Qt3 Linguist
+Name[de]=Qt3-Linguist
+Name[eo]=Qt3-Lingvisto
+Name[es]=Lingüista Qt3
+Name[ko]=Qt 언어학자
+Name[lv]=Qt3 Lingvists
+Comment=Tool for translating message catalogues of Qt3 based programs
+Comment[da]=Redskab til at oversætte Qt3 baserede programmer
+Comment[de]=Dienstprogramm zur Übersetzung von Programmen, die auf Qt3 basieren
+Comment[eo]=Ilo por tradukado de mesaĝaroj de Qt3-bazitaj programoj
+Comment[es]=Herramienta para la traducción de catálogos de mensajes de programas basados en Qt3
+Comment[he]=Qt תוססובמ תוינכות לש תועדוה יגולטק םוגרתל ילכ
+Comment[hu]=Segédprogram a Qt3-alapú programok üzenetfájljainak lefordításához
+Comment[ko]=Qt를 바탕으로 하는 프로그램에서 쓸 번역된 메세지 목록을 관리하는 도구
+Comment[lv]=Rīks ziņojumu katalogu tulkošanai uz Qt3 bāzētās programmās
+Comment[pt]=Ferramenta para traduzir os catálogos de mensagens de programas do Qt3
+Comment[pt_BR]=Ferramenta para traduzir os catálogos de mensagens de programas do Qt3
+Comment[sv]=Verktyg för att översätta meddelandekataloger från Qt3-baserade program
+MimeType=application/x-linguist;
+Terminal=false
+Icon=linguist
+Type=Application
+Categories=Qt;Development
--- qt-x11-free-3.3.8b.orig/debian/maintain/qt3config.desktop
+++ qt-x11-free-3.3.8b/debian/maintain/qt3config.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=qtconfig-qt3
+Name=Qt3 Configuration
+Name[de]=Qt3 Konfiguration
+Comment=A graphical configuration tool for programs using Qt 3
+Comment[de]=Ein grafisches Konfigurationstool für Qt3-Programme
+MimeType=application/x-qtconfig;
+Terminal=false
+Icon=qtconfig
+Type=Application
+Categories=Qt;Settings;
--- qt-x11-free-3.3.8b.orig/debian/maintain/man/qvfb.1
+++ qt-x11-free-3.3.8b/debian/maintain/man/qvfb.1
@@ -0,0 +1,66 @@
+.TH "qvfb" "1" "3.0.3" "Troll Tech AS, Norway." ""
+.SH "NAME"
+.LP 
+qvfb \- Virtual framebuffer for Qt
+.SH "DESCRIPTION"
+.LP 
+The virtual framebuffer allows Qt/Embedded programs to be
+developed on your desktop machine, without switching
+between consoles and X11. 
+
+Start a Qt/Embedded master application (i.e., construct
+QApplication with QApplication::GuiServer flag or use the
+\-qws command line parameter). You will need to specify to
+the server that you wish to use the virtual framebuffer
+driver, e.g.: 
+
+    widgets \-qws \-display QVFb:0
+    
+You may prefer to set the QWS_DISPLAY environment
+variable to be QVFb:0. 
+
+qvfb supports the following command line options: 
+
+ \-width width: the width of the virtual framebuffer
+  (default: 240). 
+ \-height height: the height of the virtual framebuffer
+  (default: 320). 
+ \-depth depth: the depth of the virtual framebuffer (1, 8
+  or 32; default: 8). 
+ \-nocursor: do not display the X11 cursor in the
+  framebuffer window. 
+ \-qwsdisplay :id the Qt/Embedded display id to provide
+  (default: 0). 
+
+ Virtual Framebuffer Design 
+
+The virtual framebuffer emulates a framebuffer using a
+shared memory region (the virtual frame buffer) and a
+utility to display the framebuffer in a window (qvfb).
+The regions of the display that have changed are updated
+periodically, so you will see discrete snapshots of the
+framebuffer rather than each individual drawing
+operation. For this reason drawing problems such as
+flickering may not be apparent until the program is run
+using a real framebuffer. 
+
+The target refresh rate can be set via the "View|Refresh
+Rate" menu item. This will cause qvfb to check for
+updated regions more quickly. The rate is a target only.
+If little drawing is being done, the framebuffer will not
+show any updates between drawing events. If an
+application is displaying an animation the updates will
+be frequent, and the application and qvfb will compete
+for processor time. 
+
+Mouse and keyboard events are passed to the Qt/Embedded
+master process via named pipes. 
+
+The virtual framebuffer is a development tool only. No
+security issues have been considered in the virtual
+framebuffer design. It should be avoided in a production
+environment; QT_NO_QWS_VFB should always be defined in
+production libraries. 
+.SH "AUTHORS"
+.LP 
+TrollTech <http://www.trolltech.com/>
--- qt-x11-free-3.3.8b.orig/debian/maintain/man/qt20fix.1
+++ qt-x11-free-3.3.8b/debian/maintain/man/qt20fix.1
@@ -0,0 +1,32 @@
+.TH "qt20fix" "1" "3.0.3" "Troll Tech AS, Norway." ""
+.SH "NAME"
+.LP 
+qt20fix \- Helps clean namespace when porting an app from Qt1 to Qt2
+.SH "SYNTAX"
+.LP 
+qt20fix myapp.cpp
+
+.SH "DESCRIPTION"
+.LP 
+Qt 2.x is namespace\-clean, unlike 1.x. Qt now uses very
+few global identifiers. Identifiers like red, blue,
+LeftButton, AlignRight, Key_Up, Key_Down, NoBrush etc.
+are now part of a special class Qt (defined in
+qnamespace.h), which is inherited by most Qt classes.
+Member functions of classes that inherit from QWidget,
+etc. are totally unaffected, but code that is not in
+functions of classes inherited from Qt, you must qualify
+these identifiers like this: Qt::red, Qt::LeftButton,
+Qt::AlignRight, etc. 
+
+The qt/bin/qt20fix script helps to fix the code that
+needs adaption, though most code does not need changing.
+
+Compiling with \-DQT1COMPATIBILITY will help you get going
+with Qt 2.x \- it allows all the old "dirty namespace"
+identifiers from Qt 1.x to continue working. Without it,
+you'll get compile errors that can easily be fixed by
+searching this page for the clean identifiers. 
+.SH "AUTHORS"
+.LP 
+TrollTech <http://www.trolltech.com/>
--- qt-x11-free-3.3.8b.orig/debian/maintain/man/qembed.1
+++ qt-x11-free-3.3.8b/debian/maintain/man/qembed.1
@@ -0,0 +1,32 @@
+.TH "qembed" "1" "3.0.3" "Troll Tech AS, Norway." ""
+.SH "NAME"
+.LP 
+qembed \- Converts arbitrary files into C++ code.
+.SH "DESCRIPTION"
+.LP 
+The QEmbed tool, found in qt/tools/qembed, converts
+arbitrary files into C++ code. This is useful for
+including image files and other resources directly into
+your application rather than loading the data from
+external files. 
+
+QEmbed can also generate uncompressed versions of images
+that can be included directly into your application,
+thus avoiding both the external file and the need to
+parse the image file format. This is useful for small
+images such as icons for which compression is not a
+great gain. 
+
+
+.SH "SYNTAX"
+qembed [ \fIgeneral\-files\fP ] <[ \fI\-\-images image\-files \fP]>
+.br 
+
+general\-files 
+  These files can be any type of file. 
+\-\-images image\-files 
+  These files must be in image formats supported by Qt. 
+
+.SH "AUTHORS"
+.LP 
+TrollTech <http://www.trolltech.com/>
--- qt-x11-free-3.3.8b.orig/debian/maintain/man/msg2qm.1
+++ qt-x11-free-3.3.8b/debian/maintain/man/msg2qm.1
@@ -0,0 +1,26 @@
+.TH "msg2qm" "1" "3.0.3" "Troll Tech AS, Norway." ""
+.SH "NAME"
+.LP 
+msg2qm \- Converts translated .po files to a Qt\-specific binary format.
+.SH "SYNTAX"
+.LP 
+msg2qm myapp_de.po myapp_de.qm
+.SH "DESCRIPTION"
+.LP 
+
+Converts translated .po files to a Qt\-specific binary
+format (".qm" Qt message files). The Qt message files
+are platform and locale independent, containing
+translations in Unicode and various hash tables to
+provide fast look\-up. 
+
+                msg2qm myapp_de.po myapp_de.qm
+                msg2qm myapp_fr.po myapp_fr.qm
+                msg2qm myapp_ja.po myapp_ja.qm
+
+
+In your application, use QTranslator::load() to load
+translation files appropriate for the user's language.
+.SH "AUTHORS"
+.LP 
+TrollTech <http://www.trolltech.com/>
--- qt-x11-free-3.3.8b.orig/debian/maintain/man/designer.1
+++ qt-x11-free-3.3.8b/debian/maintain/man/designer.1
@@ -0,0 +1,54 @@
+.TH "qt-designer" "1" "3.0.3" "Troll Tech AS, Norway." ""
+.SH "NAME"
+.LP 
+qt\-designer \- Visual user interface designer for Qt.
+.SH "DESCRIPTION"
+.LP 
+Qt Designer simplifies the process of designing and
+creating graphical user interfaces (GUI) using the
+award\-winning Qt toolkit. Qt Designer is easy to learn.
+There are tutorials, walkthrough examples and the
+reference documentation accelerating you through the
+learning phase. After that, Qt Designer greatly reduces
+the time and effort needed to develop even the most
+complex dialogs with an easy\-to\-use GUI and an integrated
+help system.
+
+ Qt Designer provides a rich set of features aimed at
+making the creation of dialogs as easy and smooth as
+possible without reducing the power of Qt. It offers all
+the strength of the Qt layout system with a well\-designed
+user interface. This, combined with the Qt Designer's
+undo/redo system makes it simple to try different
+arrangements of the widgets until the result satisfies
+you.
+
+ Using Qt Designer's convenient property editor along
+with the dynamic Qt property system it is easy to set the
+initial state of your widgets. Special editors for some
+widgets (like listboxes, comboboxes, etc.) allow you to
+fill these widgets with content without writing any code.
+Using the object hierarchy view, the parent\-child
+relationship between the widgets of a dialog can be
+understood at a glance.
+
+ Integrating dialogs into a Qt project is straightforward
+thanks to the User Interface Compiler (UIC), which
+generates C++ code from the XML dialog description on the
+fly. The programmer can easily extend the functionality
+of the generated classes by subclassing without touching
+generated code at all or running the risk of loosing
+their changes.
+.SH "FILES"
+.LP 
+\fI/usr/share/qt/tools/designer/*\fP 
+.SH "ENVIRONMENT VARIABLES"
+.LP 
+.TP 
+\fBQTDIR\fP
+Specifies the Qt base directory.  On Debian systems this
+should be set to /usr/share/qt.  The /usr/bin/designer
+wrapper script takes care of this.
+.SH "AUTHORS"
+.LP 
+TrollTech <http://www.trolltech.com/>
--- qt-x11-free-3.3.8b.orig/debian/maintain/man/findtr.1
+++ qt-x11-free-3.3.8b/debian/maintain/man/findtr.1
@@ -0,0 +1,25 @@
+.TH "findtr" "1" "3.0.3" "Troll Tech AS, Norway." ""
+.SH "NAME"
+.LP 
+findtr \- Extracts information about text to be translated
+.SH "SYNTAX"
+.LP 
+findtr *.cpp *.h >myapp.po
+.SH "DESCRIPTION"
+.LP 
+
+Extracts information about text to be translated. It
+recognizes the tr() constructs described above and
+produces a file in ".po" format, a simple text format
+that your translation team will copy and edit. For
+example, the base .po file might be myapp.po and
+translated versions of the file would then be
+myapp_de.po, myapp_fr.po, and myapp_ja.po for
+translations in German, French and Japanese respectively.
+
+  findtr *.cpp *.h >myapp.po
+  copy myapp.po myapp_de.po
+  edit myapp_de.po
+.SH "AUTHORS"
+.LP 
+TrollTech <http://www.trolltech.com/>
--- qt-x11-free-3.3.8b.orig/debian/maintain/man/qtconfig.1
+++ qt-x11-free-3.3.8b/debian/maintain/man/qtconfig.1
@@ -0,0 +1,17 @@
+.TH "qtconfig" "1" "3.0.3" "Troll Tech AS, Norway." ""
+.SH "NAME"
+.LP 
+qtconfig \- Configuration tool for Qt
+.SH "DESCRIPTION"
+.LP 
+QConfig allows for GUI based configuration of Qt and
+ other Qt based sources.
+
+.SH "ENVIRONMENT VARIABLES"
+.LP 
+.TP 
+\fBQTDIR\fP
+Specifies the base Qt dir
+.SH "AUTHORS"
+.LP 
+TrollTech <http://www.trolltech.com/>
--- qt-x11-free-3.3.8b.orig/debian/maintain/man/linguist.1
+++ qt-x11-free-3.3.8b/debian/maintain/man/linguist.1
@@ -0,0 +1,37 @@
+.TH LINGUIST 1 "28 August 2004"
+.SH "NAME"
+linguist \- Translation tool for Qt.
+
+.SH "SYNPOSIS"
+.B linguist
+[
+.I TRANSLATION
+]
+
+.SH "DESCRIPTION"
+.B Qt Linguist
+is a tool for adding translations to Qt applications. It
+introduces the concept of a translation "context" which
+means a group of phrases that appear together on the
+screen e.g. in the same menu or dialog.
+
+The only parameter accepted on the command line is 
+.I TRANSLATION
+wich is the name of the translation file you wish to open.
+
+.SH FILES
+.I ~/.qt/qt_designerrc
+.RS
+Per user configuration file.
+
+.SH SEE ALSO
+.B Qt Linguist
+is too complex to be described completely in the "man" page
+format. If your system is properly configured, you can access
+the full documentation within
+.B Qt Linguist
+under the Help menu.
+
+.SH AUTHOR
+This manual page was written by Jeremy Laine <jeremy.laine@m4x.org>,
+for the Debian GNU/Linux system (but may be used by others).
--- qt-x11-free-3.3.8b.orig/debian/maintain/man/mergetr.1
+++ qt-x11-free-3.3.8b/debian/maintain/man/mergetr.1
@@ -0,0 +1,27 @@
+.TH "mergetr" "1" "3.0.3" "Troll Tech AS, Norway." ""
+.SH "NAME"
+.LP 
+mergetr \- Merge changes in translations
+.SH "SYNTAX"
+.LP 
+mergetr myapp_de.po myapp.po
+
+.SH "DESCRIPTION"
+.LP 
+When the texts in your program change as it is developed,
+a the base .po file can be regenerated using findtr,
+then mergetr can be used to merge the changes into the
+other .po files: 
+
+                mergetr myapp_de.po myapp.po
+                mergetr myapp_fr.po myapp.po
+                mergetr myapp_ja.po myapp.po
+
+
+The translation team then edits the new .po files to
+translate the new or changed texts. When texts change,
+the old text is included in the .po file as a comment to
+guide the new translation (no "fuzzy" matching is done).
+.SH "AUTHORS"
+.LP 
+TrollTech <http://www.trolltech.com/>
--- qt-x11-free-3.3.8b.orig/debian/maintain/man/createcw.1
+++ qt-x11-free-3.3.8b/debian/maintain/man/createcw.1
@@ -0,0 +1,57 @@
+.TH "createcw" "1" "3.0.3" "Troll Tech AS, Norway." ""
+.SH "NAME"
+.LP 
+createcw \- custom widget description creater for Qt Designer
+.SH "SYNTAX"
+.LP 
+createcw <\fIfilename.cw\fP>
+.SH "DESCRIPTION"
+.LP 
+This small application makes it much easier to create
+custom widget descriptions for the Qt Designer. Using
+them you can use custom widgets in the Qt Designer
+including their signals, slots and properties.
+ 
+To do that normally you would have to enter all that
+information in the custom widget dialog in the Qt
+Designer for each widget. But this small tool can create
+for you these description files for your custom widgets
+which you then can simply import into the Qt Designer. So
+you can use your custom widgets without any additional
+work in your forms in the Qt Designer then.
+
+To do that you have to modify the sourcecode (main.cpp) a
+bit and recompile it afterwards. 
+
+STEP1: Include header files of the widgets for which a
+description should be created here. If you have a widget
+which is defined in the file mycustomwidget.h in
+/home/joedeveloper/src, write here 
+
+#include "/home/joedeveloper/src/mycustomwidget.h"
+
+STEP2: Instantiate all widgets for which a description
+should be created here and add them to the list wl. If
+your custom widget is e.g. called MyCustomWidget you
+would write here
+
+ Widget w;
+ w.w = new MyCustomWidget( 0, 0 );
+ w.include = "mycustomwidget.h";
+ w.location = "global";
+ wl.append( w );
+
+After that compile the program, link it with your custom
+widget (library or object file) and run it like this:
+
+ (unix): ./createcw mywidgets.cw
+ (win32): createcw mywidgets.cw
+
+After that you can import this description file into the
+Qt Designer using the Custom\-Widget Dialog (See
+Tools\->Custom\->Edit Custom Widgets... in the Qt Designer)
+and use these custom widget there in your forms.
+
+.SH "AUTHORS"
+.LP 
+Troll Tech <http://www.trolltech.com/>
--- qt-x11-free-3.3.8b.orig/debian/maintain/man/makeqpf.1
+++ qt-x11-free-3.3.8b/debian/maintain/man/makeqpf.1
@@ -0,0 +1,26 @@
+.TH "makeqpf" "1" "3.0.3" "Troll Tech AS, Norway." ""
+.SH "NAME"
+.LP 
+makeqpf \- Create qpf files from TTF and BDF files.
+.SH "DESCRIPTION"
+.LP 
+Qt Prerendered Font (QPF) is a light\-weight non\-scalable
+font format specific to Qt/Embedded.  makeqpf is a tool
+that assists producing QPF files from TTF and BDF files.
+
+
+.SH "SYNTAX"
+qembed [ \fIgeneral\-files\fP ] <[ \fI\-\-images image\-files \fP]>
+.br 
+
+general\-files 
+  These files can be any type of file. 
+\-\-images image\-files 
+  These files must be in image formats supported by Qt. 
+
+.SH "FILES"
+.LP 
+\fI$(QTDIR)/etc/fonts/fontdir\fP 
+.SH "AUTHORS"
+.LP 
+TrollTech <http://www.trolltech.com/>
--- qt-x11-free-3.3.8b.orig/debian/maintain/mkpatch.sh
+++ qt-x11-free-3.3.8b/debian/maintain/mkpatch.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+diff -Nru -x Makefile.cvs -x README.qt-copy -x upgrade_script.qt -x .cvsignore -x CVS -x include -x debian -x doc -x examples  -x 3rdparty -x images -x mkspecs -I '^\*\*\( $\| \$Id\)' -I '^\#\( $\| \$Id\)' qt-x11-free-3.1.1.old/ qt-x11-free-3.1.1/ > qtcopy.diff
--- qt-x11-free-3.3.8b.orig/debian/maintain/build-examples.sh
+++ qt-x11-free-3.3.8b/debian/maintain/build-examples.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+BUILDDIR=$PWD
+export QTDIR=/usr/share/qt3
+
+# first copy over the libqt-mt.so build configuration of .qmake.cache
+cp /usr/share/qt3/.qmake.cache ./.qmake.cache
+
+# Now compile the examples. The themes example
+# won't work since qconfig.h is not really correct with the
+# ifdef's for the QT_NO_xyz_STYLE, so we use make -k to continue
+cd examples; qmake -o Makefile examples.pro; make -k
+
+# Now compile the tutorial.
+cd $BUILDDIR/tutorial; qmake -o Makefile tutorial.pro; make
+
+# Then the designer examples. 
+cd $BUILDDIR/tools/designer/examples
+for a in `find . -type d -maxdepth 1 -mindepth 1`; do
+        cd $a && qmake -o Makefile $a.pro; make; cd ..;
+done
+
+# There is a bigger sql example in book/ with more subdirectories:
+cd book
+for a in `find . -type d -maxdepth 1 -mindepth 1`; do
+        cd $a && qmake -o Makefile $a.pro; make; cd ..;
+done
+
+# Finally, build the linguist tutorials:
+cd $BUILDDIR/tools/linguist/tutorial
+for a in `find . -type d -maxdepth 1 -mindepth 1`; do 
+	cd $a && qmake -o Makefile $a.pro; make; cd ..; 
+done
+
+# Return to the build directory
+cd $BUILDDIR 
--- qt-x11-free-3.3.8b.orig/debian/libqt3-mt-sqlite.install
+++ qt-x11-free-3.3.8b/debian/libqt3-mt-sqlite.install
@@ -0,0 +1 @@
+usr/lib/qt3/plugins/sqldrivers/libqsqlite.so
--- qt-x11-free-3.3.8b.orig/debian/changelog
+++ qt-x11-free-3.3.8b/debian/changelog
@@ -0,0 +1,2376 @@
+qt-x11-free (3:3.3.8b-5~bpo40+1) etch-backports; urgency=low
+
+  * etch backport.
+    - control (Build-Depends): Add "firebird2-dev [i386 amd64 sparc powerpc]"
+      as alternative to firebird2.0-dev.
+    - echo 5 > debian/compat
+
+ -- Robert Millan <rmh@aybabtu.com>  Wed,  9 Apr 2008 19:53:05 +0200
+
+qt-x11-free (3:3.3.8b-5) unstable; urgency=medium
+
+  +++ Changes by Modestas Vainius:
+
+  * The previous implemention of the hack was still incomplete solution for
+    restoration of [fl]?stat64 symbols on libqt-mt.so.3 compiled with -O2
+    against glibc << 2.7. In such a case, [fl]?stat64 were still inlined and
+    not exported. Therefore, the hack implementation was extended to cover the
+    latter case as a well and as result it should be fully compatible with
+    m68k/unstable and backports.
+  * Cleanup README.Debian: remove old information about non-threaded version
+    of Qt3 and substitude contacts of previous maintainers with
+    Debian Qt/KDE Maintainers (debian-qt-kde@lists.debian.org).
+  * Drop 61_fcfontmatch_fontwidth_fix.diff patch. A bit different fix was
+    applied upstream.
+  * Add 61_eastern_asian_languagues.diff to fix font substitution for Eastern
+    Asian languages under other locales (Closes: #468430).
+  * Set urgency to medium because this revision fixes 3.3.8 regressions from
+    3.3.7 and 3.3.8 has already entered testing.
+
+  +++ Changes by Fathi Boudra:
+
+  * Suggest qt3-apps-dev to qt3-examples. Thanks to Matthew Rosewarne.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Mon, 10 Mar 2008 17:10:24 +0200
+
+qt-x11-free (3:3.3.8b-4) unstable; urgency=low
+
+  +++ Changes by Modestas Vainius:
+
+  * Make 01_export_stat64_symbols.diff hack glibc >=2.7 dependant instead of
+    build depending on libc6-dev (>=2.7-1) and its other incarnations. This
+    will restore Qt3 backports friendliness. Thanks to Pierre Habouzit for
+    this idea.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 21 Feb 2008 12:59:07 +0200
+
+qt-x11-free (3:3.3.8b-3) unstable; urgency=low
+
+  * The "Optimized Qt3" release.
+
+  ++ Changes by Modestas Vainius:
+
+  * Add 00_qmake_debian_compliant_release_target.diff patch to make 'qmake'
+    release target debian policy compliant:
+      - Use C(XX)FLAGS=-02 -g
+      - Prevent qmake from striping binaries. Debian has dh_strip for that.
+      - Patch configure script to build qmake itself with 'release'
+        configuration too.
+  * Build Qt3 using "release" build configuration.
+  * Remove 01_stat_extern_inline_hack.diff and use different way of exporting
+    [fl]?stat64 symbols because previous way is ineffective with -O2. Add
+    01_export_stat64_symbols.diff patch for that.
+  * The hack above depends on libc6-dev (>= 2.7-1). Adjust Build-Depends.
+  * Add 73_configure_quilt_compat.diff patch to make ./configure script ignore
+    "project files" under quilt temporary directory (./.pc/). I think that
+    this problem was the cause of FTBFS on alpha & mips since *.pro files
+    under .pc had to be `found` last in order for ./configure to succeed.
+    Probably, this condition was not met on alpha & mips, but it was met on
+    other arches.
+  * Add myself to uploaders.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 21 Feb 2008 01:13:16 +0200
+
+qt-x11-free (3:3.3.8b-2) unstable; urgency=medium
+
+  * Re-add *stat64 symbols to Qt3 using 01_stat_extern_inline_hack patch:
+
+    * the extern inlines from sys/stat.h are just gone, and that's just normal
+      in fact.
+    * /usr/lib/libc.so is a linker script that pulls /lib/libc-2.7.so _and_
+      /usr/lib/libc_nonshared.a.
+    * the latter defines stat64 and friends as weak-symbols and alises to
+      __xstat64 and friends.
+
+    That's how when you link something that uses fstat64 it finds the symbol at
+    link time, letting you the possibility to override it with your own
+    implementation.
+
+    The fact that the extern inlines were used at some point in the past _was_
+    a bug, and let qt3 divert those, which should have not happened in the
+    first place. Sadly, when you link against qt3, it picks those symbols
+    because it will always prefer symbols from a shared lib than from the .a
+    IIRC, or it's due to the link order, anyways, it's not relevant.
+
+    Thanks to Pierre Habouzit and Modestas Vainius. (Closes: #465028)
+
+ -- Fathi Boudra <fabo@debian.org>  Sat, 16 Feb 2008 16:02:03 +0100
+
+qt-x11-free (3:3.3.8b-1) unstable; urgency=low
+
+  * New upstream release:
+    * This version adds the GNU Public License version 3 as a
+      possible choice for licenses to the Open Source releases of Qt 3.
+    * It includes the patch for CVE-2007-3388, a potential vulnerability in
+      QTextEdit, which might cause remote execution when parsing maliciously
+      crafted text from an unknown source.
+
+  * Fix desktop files:
+    * Add semicolon at the end of the MimeType key. Thanks to Pino Toscano.
+    * Remove deprecated MapNotify key.
+  * Bump compat/debhelper to 6.
+  * Add myself in Uploaders field.
+  * Switch to quilt patch system.
+  * Add Homepage, Vcs-Browser and Vcs-Svn fields.
+  * Update copyright file. Add the GNU GPL 3 as a possible choice of licenses.
+    (Closes: #464613)
+  * Update libqt3-mt* links.
+  * Update rules: install upstream changelog changes-3.3.8 and changes-3.3.8b.
+  * Refresh patches. (Closes: #441580)
+  * Remove patches:
+    * 30_qtc_arabic_font_fixes.dpatch
+    * 49_immodule_inputcontext_fix.dpatch
+    * 62_bengali_charfix.dpatch
+    * 64_utf8-parsing-vulnerability.dpatch
+    * 69_CVE-2007-3388.dpatch
+  * Add patches:
+    * lubos lunak xinerama patch. It adds _net_wm_full_placement support.
+    * xinerama dialog placement fix.
+  * Use qt-copy patches original name. Don't use "xx_qtc_patch_name" scheme.
+  * Replace deprecated Source-Version by binary:Version.
+  * Update menu files to latest Debian menu policy.
+  * Install translations files with 644 permissions.
+
+ -- Fathi Boudra <fabo@debian.org>  Fri, 08 Feb 2008 11:01:58 +0100
+
+qt-x11-free (3:3.3.7-9) unstable; urgency=low
+
+  * Trust dpkg-architecture better than uname -m for the build key. Make
+    mappings to not break current binary compability. Add patch 72 for that.
+    Thanks to Bastian Blank for often changing uname -m on his buildds to
+    discover this bug.
+
+ -- Sune Vuorela <debian@pusling.com>  Wed, 26 Sep 2007 21:42:24 +0200
+
+qt-x11-free (3:3.3.7-8) unstable; urgency=low
+
+  * Add patch for utf8 parser decoder overflow. CVE-2007-4137
+    (Closes: #442780). Thanks to Dirk Mueller for the patch and Stefan Fritsch
+    for noticing it.
+
+ -- Sune Vuorela <debian@pusling.com>  Sun, 16 Sep 2007 23:13:32 +0200
+
+qt-x11-free (3:3.3.7-7) unstable; urgency=low
+
+  * Updating Qt3 to build against firebird2. Many thanks to Damyan Ivanov for
+    his work on this!
+    - Build-Depend on firebird2.0-dev instead of firebird1.5-dev.
+    - Add powerpc to firebird-supported architectures.
+    - Add patch 70_bad_typecast_amd64 to fix bad typecast in 
+      src/sql/drivers/ibase/qsql_ibase.cpp causing FTBFS on amd64.
+  * Update uploaders.
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Thu, 23 Aug 2007 08:25:07 +0200
+
+qt-x11-free (3:3.3.7-6) unstable; urgency=low
+
+  * Patch for potential vulnerability in QTextEdit, which might cause remote
+    execution when parsing maliciously crafted text from an unknown source. 
+    CVE-2007-3388
+
+ -- Ana Beatriz Guerrero Lopez <ana@debian.org>  Tue, 31 Jul 2007 13:34:00 +0200
+
+qt-x11-free (3:3.3.7-5) unstable; urgency=low
+
+  +++ Changes by Sune Vuorela:
+
+  * Add fix to qbutton.h with gcc-4.2 and higher. (Closes: #409512)
+  * Add fix to compile with gcc-4.3 (Closes: 417499). Thanks to Martin
+    Michlmayr.
+  * Fix designer and assistant desktop files. Thanks Pino.
+  * Fix FTBFS with newer firebird. Thanks to Firebird maintainers for breaking
+    it. This requires to change -lgds to -lfbclient. (Closes: #427191)
+  * Add sparc to firebird archs. Thanks to Damyan Ivanov.
+  * Add armel support to qt3. Thanks to Riku Voipu and Lennert Beytenhek.
+    (Closes: 408814)
+  * Fix typo in some documentation. (Closes: 410968)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 29 May 2007 13:07:33 +0200
+
+qt-x11-free (3:3.3.7-4) unstable; urgency=high
+
+  * Add patch to fix issue with utf8 parsing.
+  * Urgency high due to security fix.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 29 Mar 2007 23:25:24 +0200
+
+qt-x11-free (3:3.3.7-3) unstable; urgency=low
+
+  +++ Changes by Ana Beatriz Guerrero Lopez:
+
+  * Improved debian/copyright.
+  * Update Uploaders.
+  * Applied patch to avoid qmake segfaulting on GNU/Hurd when no output 
+    file is specified. Thanks to Michael Banck. (Closes: #399984)
+
+  +++ Changes by Sune Vuorela
+
+  * Add fix to a bengali char:
+   Incorrect rendering of two special symbols (U0982) and (U0983) when
+   used after the consonant conjuncts comprising of the alphabet র (U09B0) +
+   <any other consonant> + <any dependent vowel>.
+   (fix mailed from upstream to distributions)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 12 Jan 2007 18:44:53 +0100
+
+qt-x11-free (3:3.3.7-2) unstable; urgency=medium
+
+  +++ Changes by Sune Vuorela:
+
+  * Remove extra 's' in package description of qt3-designer. (Closes: #398883)
+  * Add gdb to qt3-x11-free-dbg - you can't create backtraces without
+
+  +++ Changes by Modestas Vainius:
+
+  * debian/patches/61_fcfontmatch_fontwidth_fix.dpatch
+      Fix font matching with fontconfig. This resolves inconsistency with
+      determining font width (e.g. Dejavu Sans "Condensed" may get selected
+      instead of "Book" for Sans Serif font) for default fonts (Sans Serif,
+      Serif and Monospace). This bug is very important because it makes
+      default KDE fonts look ugly in most cases.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 28 Dec 2006 22:37:21 +0200
+
+qt-x11-free (3:3.3.7-1) unstable; urgency=medium
+
+  * New upstream release. Includes the fix to CVE-2006-4811, an integer
+    overflow that might (in theory) lead to the arbitrary execution of
+    code, particularly for those using KHTML (Konqueror's page rendering
+    engine). Urgency is medium as this is a security problem.
+    (Closes: #394313)
+
+  * Add Hurd build patch, thanks to Cyril Brulebois. (Closes: #394195)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sat, 21 Oct 2006 09:30:32 -0400
+
+qt-x11-free (3:3.3.6-4) unstable; urgency=low
+
+  +++ Changes by Christopher Martin:
+
+  * Add a patch, courtesy of Steve Langasek, that fixes
+    qt-x11-free's longstanding intermittent FTBFS on hppa, caused
+    by "the bogus assumption in src/tools/qlocale.cpp that a
+    char[] can be cast to a double *." (Closes: #342545)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 24 Aug 2006 21:43:12 -0400
+
+qt-x11-free (3:3.3.6-3) unstable; urgency=low
+
+  +++ Changes by Christopher Martin
+
+  * Add a patch (accepted upstream) that fixes the use of some fonts
+    with broken or atypical opentype tables. Some common Arabic fonts
+    are affected.
+
+  * Make READMEs and other docs available with libqt3-mt (not just
+    libqt3-mt-dev). Also include the Immodule README.
+    (Closes: #370742, #370744)
+
+  * Patch the 11_qt_rubberband patch, to fix a crash and a signal bug
+    affecting Kimdaba (and probably others).
+    (Closes: #341982, #352409, #362155)
+
+  * Add a hack to rarely used QFontDatabase code that avoids a crash that
+    was causing KImageMapEditor to fail to start. (Closes: #369795)
+
+  * Add /usr/share/qt3/bin links for linguist, assistant, qtconfig, and
+    designer (qt3-dev-tools' binaries already have this).
+    (Closes: #375888, #375887)
+
+  * Include a /usr/share/qt3/lib symlink for libqt-mt.la. (Closes: #376954)
+
+  * Now that binutils has fixed xgot support, we can drop the mips/mipsel xgot
+    patch and rebuild. (Closes: #374883)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 23 Jul 2006 09:29:55 -0400
+
+qt-x11-free (3:3.3.6-2) unstable; urgency=low
+
+  +++ Changes by Pierre Habouzit:
+
+  * Update debian/control for new kfreebsd-amd64 port. (Closes: #361494)
+
+  +++ Changes by Christopher Martin:
+
+  * Remove obsolete xlibs-static-dev and x-dev build-depends. Also update the
+    Mesa build-depends for the new X.Org 7. (Closes: #363432)
+
+  * Make libqt3-mt recommend OpenGL and related libraries, since they are
+    dlopened if available.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Sun, 23 Apr 2006 14:18:11 -0400
+
+qt-x11-free (3:3.3.6-1) unstable; urgency=low
+
+  * New upstream release.
+
+  +++ Changes by Christopher Martin:
+
+  * New release obsoletes patch #30, #33. Adapted the immodule patches to the
+    new release; please report regressions.
+
+  * Add another small patch for immodule from Dirk Mueller, fixing an
+    inputcontext crash.
+
+  * Build against libsqlite3-dev instead of libsqlite0-dev.
+
+  * Temporarily version our build-depend on libxft-dev, to (>= 2.1.8.2-5.1),
+    ensuring that we build against a package with headers where we need them.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 23 Mar 2006 18:47:53 -0500
+
+qt-x11-free (3:3.3.5-4) unstable; urgency=low
+
+  +++ Changes by Christopher Martin:
+
+  * Change build-depends from libmysqlclient12-dev to libmysqlclient15-dev.
+    (Closes: #350725)
+
+  * Add a patch from Maksim Orlovich (provided by Bart Coppens), that should
+    resolve a crash in KMail when viewing exceedingly large mailboxes.
+    (Closes: #347392)
+
+  * Incorporate the immodule patch (and sundry fixes for that patch). Some of
+    the packaging is borrowed from Ubuntu.
+    (Closes: #347377)
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 23 Feb 2006 18:15:14 -0500
+
+qt-x11-free (3:3.3.5-3) unstable; urgency=low
+
+  +++ Changes by Christopher Martin:
+
+  * Really add InterBase support to amd64. (Closes: #341614)
+
+  * Add a patch for plugin loading when mixing-and-matching apps from
+    different Qt/KDE versions.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu,  1 Dec 2005 14:45:43 -0500
+
+qt-x11-free (3:3.3.5-2) unstable; urgency=low
+
+  +++ Changes by Christopher Martin:
+
+  * Drop qt-copy's gamma patch, now that kdelibs has incorporated a
+    cleaner fix. (Closes: #333542)
+
+  * Fix a new-for-3.3.5 QListView problem that was causing myriad random
+    crashes in KDE apps. (Closes: #338002)
+
+  * Build the InterBase plugin on amd64, now that firebird2 works there.
+
+  * Move all .desktop files from /usr/share/applnk to /usr/share/applications,
+    and ensure that they have Categories set. This cleanup also fixes the Qt3
+    Assistant menu entry, which should now appear next to other Qt3 tools in
+    the menu. (Closes: #335465)
+
+  * Bump DH_COMPAT to 5. No changes required, except that the debugging
+    package is renamed from libqt3-mt-dbg to qt-x11-free-dbg, and contains
+    debugging symbols for all binaries in all qt-x11-free packages.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 29 Nov 2005 08:17:59 -0500
+
+qt-x11-free (3:3.3.5-1) unstable; urgency=low
+
+  * New upstream release. Drop patches merged upstream, and sync those that
+    remain.
+
+  * Add a patch disabling 3.3.5's new use of includehints, since the
+    implementation is still buggy and causing build problems for many
+    programs.
+
+  +++ Changes by Christopher Martin:
+
+  * Move documention from qt3-doc back to qt3-designer and qt3-linguist, since
+    the last upload centralized it all in qt3-doc. The reason for this
+    inadvertent change was a years-old bug (just now noticed and fixed) in
+    debian/rules, wherein portions of it would fail if sh where something
+    other than bash. Add all the appropriate Replaces to cope with these
+    moves. (Closes: #327291)
+
+  * Revert the versioning of our build-depends on libpq-dev, since the fixed
+    package has now built on all architectures.
+
+  * Add a patch from the "Improving KDE" set that tweaks KDE's default GUI,
+    changing some of the selection and highlight effects.
+
+  * Revert the splitting out of the Qt style plugins, as this caused hassles
+    for developers trying to create their own styles, and also problems with
+    PyQt. (Closes: #327360, #328109)
+
+  * Re-enable InterBase support, now that firebird2 has been built with gcc4.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Fri, 16 Sep 2005 11:21:52 -0400
+
+qt-x11-free (3:3.3.4-8) unstable; urgency=low
+
+  +++ Changes by Christopher Martin:
+
+  * Add a patch fixing the generation of PostScript, which was broken due to
+    a flaw in the code that only manifested itself with the GCC 4.0
+    transition. This should fix printing in all Qt and KDE applications, as
+    well as other glitches where nonsensical results were generated.
+    (Closes: #326833, #326990, #327021)
+
+  * No longer build non-threaded libraries. (Closes: #180326)
+    No package in the archive uses them, except a bogus qtdmm
+    build-dependency (#326627).
+
+  * Add a libqt3c102-mt-dbg package. (Closes: #235396, #322868)
+
+  * Make the Qt3 documentation available from /usr/share/doc/qt3-doc, and
+    therefore also usable in dwww and doc-central. (Closes: #185900, #284407,
+    #294630)
+
+  * Apply packaging patches from Brian Nelson to allow Qt3 to co-exist
+    with Qt4 packages. (Closes: #306879)
+
+  * Apply 06_disable_rpath to linux-g++-64/qmake.conf as too.
+
+  * Add the gtkstyle patch, in order to better support Bluecurve.
+    (Closes: #316108)
+
+  * Add more patches from qt-copy:
+    + 29_qtc_fix_rotated_randr: Improve height/width calculations for rotated
+      screens.
+    + 30_qtc_qtoolbar_77047: Fix for the toolbar extension menu.
+    + 33_qtc_qlistbox-crash: Fixes a crash that shows up in KHTML.
+    + 34_qtc_dnd_optimization: Massive DND speedups.
+    + 35_qtc_dnd_active_window_fix: Fixes DND when windows are changing focus.
+    + 36_qtc_dnd-timestamp-fix: Suppresses needless popups when using DND.
+    + 37_qtc_dragobject-dont-prefer-unknown: Fixes DND with some apps, like
+      Mozilla.
+    + 38_qtc_khotkeys_input_84434: Fixes keyboard input action in KHotKeys.
+    + 39_qtc_qpopup_has_mouse, 40_qtc_qpopup_ignore_mousepos: Fixes the mouse
+      movement and position affecting keyboard navigation with popups and
+      menus.
+
+  * Enable tablet support:
+    - pass -tablet to configure.
+    - add libxi-dev to Build-Depends.
+
+  * Build jpeg support into Qt, not as a plugin.
+
+  * Build the Qt styles as plugins. This does not affect the Qt buildkey,
+    so shouldn't affect other packages.
+
+  * Revamp the OpenGL linking patch. This fixes the loading of libXmu, a
+    problem which affected some screensavers. (Closes: #296661)
+
+  * Temporarily bump the libpq-dev build-depends to (>= 8.0.3-15), ensuring
+    that we build against a version where the headers are located as expected.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed,  7 Sep 2005 11:23:55 -0400
+
+qt-x11-free (3:3.3.4-7) unstable; urgency=low
+
+  * The "Mistakes happen; sadly, sometimes they happen all the same day" release.
+
+  +++ Changes by Adeodato Simó:
+
+  * Fix new arm FTBFS: in 08_arm_gcc4.dpatch, patch the original file, not the
+    symlink, since patch makes a copy.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 11 Aug 2005 22:28:17 +0200
+
+qt-x11-free (3:3.3.4-6) unstable; urgency=low
+
+  * The "If debussy had been up..." release.
+
+  +++ Changes by Adeodato Simó:
+
+  * Include in 08_arm_gcc4.dpatch an appropriate cast so that GCC 4.0 does not
+    barf. Patch stolen from SuSE, kudos to Isaac Clerencia for finding it.
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Thu, 11 Aug 2005 14:29:47 +0200
+
+qt-x11-free (3:3.3.4-5) unstable; urgency=low
+
+  +++ Changes by Adeodato Simó:
+
+  * Fix FTBFS on arm due to incomplete compiler version check: teach qglobal.h
+    that GCC versions with major version != 3 exist. [08_arm_gcc4.dpatch]
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Wed, 10 Aug 2005 12:10:01 +0200
+
+qt-x11-free (3:3.3.4-4) unstable; urgency=low
+
+  * The "Three transitions and one maintainer switch" release.
+
+  * Cope with the following ongoing transitions in unstable:
+    - C++ ABI transition.
+    - X.org transition.
+    - PostgreSQL 8.0 transition.
+
+  * Move the package to the Debian Qt/KDE team, as agreed with the
+    maintainer. Thanks to Martin Loschwitz for all his work over the
+    years.
+
+  +++ Changes by Adeodato Simó:
+
+  * Transition to the new C++ ABI. Rename all the library packages as
+    necessary: every libqt3c102-* goes back to libqt3-* now. Changes based
+    on the patch provided by Matthias Klose in Ubuntu Bug 10723.
+
+    + debian/control:
+      - renamed library packages.
+      - add conflicts and replaces against the libqt3c102-* packages, or
+        change the existing libqt3-* ones.
+      - change the existing recommends and suggests on libqt3c102-* to
+        libqt3-*.
+      - adjusted descriptions where appropriate.
+
+    + debian/rules:
+      - s/c102// in various places.
+
+    + debian/*.install, debian/*.links:
+      - renamed as appropriate.
+
+    + debian/patches/31_gcc4_buildkey.dpatch:
+      - new patch picked from the Fedora Qt packages to ensure a stable
+        buildkey accross compiler upgrades now that GCC 4 is the default.
+        Kudos to Christopher Martin for finding about the existence of this
+        patch.
+
+    The above solves trouble for users when using qt3-designer with g++ 4.0,
+    so this upload closes: #317768.
+
+    Also, disabling InterBase support has been necessary in this upload,
+    because nobody has cared to make firebird2 not FTBFS with g++ 4.0. Dropped
+    the libqt3-ibase and libqt3-mt-ibase packages, which can be reintroduced
+    as soon as #317314 gets fixed.
+
+      + debian/control:
+        - don't build-depend on firebird2-dev.
+
+      + debian/rules:
+        - unconditionally use -no-sql-ibase and -Nlibqt3{,-mt}-ibase.
+
+  * Transition to the new X.org packages:
+    + debian/control:
+      - build-depend in libglu1-xorg-dev instead of xlibmesa-glu-dev; make the
+        same change in the dependencies of libqt3-dev and libqt3-mt-dev.
+      - add libxinerama-dev and libxkbfile-dev to build-dependencies; add
+        libxinerama-dev to the dependencies of libqt3-dev and libqt3-mt-dev as
+        well (closes: #319305).
+      - add libxi-dev to the dependencies of libqt3-dev and libqt3-mt-dev. [cm]
+
+  * Transition to the new PostgreSQL 8.0 packaging (closes: #317500):
+    + debian/control: build-depend on libpq-dev instead of postgresql-dev.
+    + debian/rules: invoke pg_config to determine the include directory.
+
+  * Don't modify debian/control at build time, since doing it in the clean
+    target it's a release critical bug now:
+    + debian/rules: don't invoke type-handling to generate debian/control.
+    + debian/control.in: removed.
+    + debian/control:
+      - adjust the list of *-i386 ports to list only the non-dead ones.
+      - don't build depend on type-handling.
+
+  * Overhaul arch detection in debian/rules:
+    - use DEB_HOST_ARCH instead of DEB_BUILD_GNU_CPU to detect arm.
+    - use DEB_HOST_ARCH_CPU instead of DEB_BUILD_GNU_CPU to detect an i386 CPU
+      (needs the new dpkg).
+
+  +++ Changes by Christopher Martin:
+
+  * Add sundry fixes from KDE's qt-copy. (Closes: #303065)
+
+  * Fix qt3-designer's appearance in the KDE menu. (Closes: #290402)
+
+  * Don't use lib64 on amd64. (Closes: #311562)
+
+  * Don't duplicate the information in the qvfb manpage. (Closes: #282217)
+
+    While we're at it, realize that a whole bunch of manpages were suffering
+    the same, and fix them (designer, makeqpf, mergetr, findtr, msg2qm,
+    qtconfig, createcw, qembed, qt20fix). [dato]
+
+  * Add linguist manpage. Thanks to Jeremy Laine. (Closes: #268882)
+
+  * Include createcw source for qt3-designer. (Closes: #305919)
+
+  * Add missing qvfbhdr.h. (Closes: #182366, the qinterlacestyle.h
+    mentioned in this bug report was already included in recent versions.)
+
+  * Many minor changes to improve lintian compliance.
+
+  * Bump Standards-Version to 3.6.2 (no changes required).
+
+ -- Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>  Tue, 26 Jul 2005 19:06:03 +0200
+
+qt-x11-free (3:3.3.4-3) unstable; urgency=medium
+
+  * ML: Remove an utterly ugly symlink for linux-g++ that pointed to my
+        $HOME -- Trolltech strikes again!
+
+ -- Martin Loschwitz <madkiss@debian.org>  Fri, 15 Apr 2005 15:17:00 +0200
+
+qt-x11-free (3:3.3.4-2) unstable; urgency=medium
+
+  * ML: Try adding back the qt{-mt}.pc-files, let's see whether they work
+  * ML: No others changes but re-building to get this into Sarge
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sat, 2 Apr 2005 13:02:00 +0100
+
+qt-x11-free (3:3.3.4-1) experimental; urgency=low
+
+  * ML: New upstream release Qt 3.3.4 packages for Debian (Closes: #292422)
+  * ML: patches/0048-qclipboard_hack_80072.patch: Fix the clipboard stuff 
+        (Closes: #295828)
+  * ML: patches/0061-qscrollview-propagate-horizontal-wheelevent.patch: Fix
+        problems with horizontal scrollview
+  * ML: Took patch from BTS by Andreas Jochens to fix the FTBFS on the amd64
+        architecture (Closes: #288405)
+  * ML: patches/19_security_fixes.dpatch: Removed this patch, incorporated 
+        into upstream now.
+  * ML: patches/20_qlocale_compile_arm.dpatch: Removed, incorporated into
+        upstream as well.
+  * ML: patches/17_fix_qfontdatabase_cpp.dpatch: Disabled for now, seems to 
+        be fixed by upstream according to changelog
+
+ -- Martin Loschwitz <madkiss@debian.org>  Fri, 18 Mar 2005 15:57:00 +0100
+
+qt-x11-free (3:3.3.3-8) unstable; urgency=high
+
+  * ML: debian/control.in: Correct the Build-Depends: line to reflect latest
+        changes for libpng and libmysql (Closes: #284441)
+
+ -- Martin Loschwitz <madkiss@debian.org>  Fri, 14 Jan 2005 12:17:00 +0100
+
+qt-x11-free (3:3.3.3-7) unstable; urgency=high
+
+  * ML: debian/patches/21_fix_mips_mipsel.dpatch: To make it compile, even
+        define => QMAKE_CFLAGS += -Wa,-xgot -- thanks to Thiemo Seufer
+
+ -- Martin Loschwitz <madkiss@debian.org>  Tue, 16 Nov 2004 19:37:00 +0100
+
+qt-x11-free (3:3.3.3-6) unstable; urgency=high
+
+  * ML: Addedd debian/patches/21_fix_mips_mipsel.dpatch to make the beast
+    compile on MIPS/MIPSel again 
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sun, 14 Nov 2004 16:44:00 +0100
+
+qt-x11-free (3:3.3.3-5) unstable; urgency=high
+
+  * ML: Acknowledging NMU by Matthias Klose, thanks. (Closes: #270202)
+  * ML: patches/04_qsql_odbc.dpatch: Fix Compilation of the iodbc stuff,
+    breakage caused by invalid redefinitions of variables (Closes: #278781)
+  * debian/rules: Delete .obj-directories in the clean-Target as requested
+    by Fabio Massimo Di Nitto (thanks for noticing this)
+ 
+ -- Martin Loschwitz <madkiss@debian.org>  Sun, 31 Oct 2004 10:51:00 +0100
+  
+qt-x11-free (3:3.3.3-4.1) unstable; urgency=high
+
+  * NMU, maintainer doesn't show any reaction.
+  * On arm-linux, configure using -DQT_QLOCALE_USES_FCVT. Seems to be a
+    known issue, mentioned in the 3.3.2 release notes, but nowhere in
+    the 3.3.3 sources. Great! Thanks to Paul Brook and Jan Niehusmann for
+    the investigations. Closes: #270202.
+  * Riku Voipio: Added patch: 20_qlocale_compile_arm.dpatch.
+  * debian/patches/00list: add 20_qlocale_compile_arm.dpatch.
+
+ -- Matthias Klose <doko@debian.org>  Sat, 18 Sep 2004 17:01:16 +0200
+
+qt-x11-free (3:3.3.3-4) unstable; urgency=high
+
+  * ML: Applied patch from Marcus Meissner to fix broken XPM DoS not yet 
+        fixed upstream [src/kernel/qimage.cpp, CAN-2004-0692]
+  * ML: Applied patch forwarded by Marcus Meissner to fix broken GIF DoS
+        unfixed upstream [src/kernel/qasyncimageio.cpp, CAN-2004-0693]
+  * ML: urgency=high to get security fixes into sarge as quick as possible
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sun, 22 Aug 2004 11:48:00 +0200
+
+qt-x11-free (3:3.3.3-3) unstable; urgency=high
+
+  * ML:  Exchanged the dangling symlinks in /usr/share/qt3/lib with working
+         symlinks to /usr/lib (thanks to Aurelien Jarno) (Closes: #266284)
+
+ -- Martin Loschwitz <madkiss@debian.org>  Tue, 17 Aug 2004 17:35:00 +0200
+
+qt-x11-free (3:3.3.3-2) unstable; urgency=high
+
+  * ML: Bring back the goddamn qmake binary that silently disappeared (thank 
+        you Trolltech for replacing it with a symlink) (Closes: #265958)
+
+ -- Martin Loschwitz <madkiss@debian.org>  Mon, 16 Aug 2004 00:31:00 +0200
+
+qt-x11-free (3:3.3.3-1) unstable; urgency=high
+
+  * ML: debian/control: Turned libqt3-headers and libqt3-compat-headers into
+        Architecture: any. This should avoid blocking packages from testing
+  * ML: debian/control: Added a patch by Robert Millan to add control.in to 
+        fix breakage with iBase and OSes != Linux (Closes: #265413)
+  * ML: debian/patches/16_fix_opengl_check.dpatch: Make QLibrary search for
+        libGL.so.1, no dependency on libgl-dev packages (Closes: #264928)
+  * ML: debian/patches/17_fix_qfontdatabase_cpp.dpatch: A patch taken from
+        Lars Knoll via kde mailing list; fixes a problem with fond handling
+  * ML: Re-Build against the latest iodbc to get back shlibs of it; previous 
+        version didn't have shlins accidentally (kudos to Adrian Bunk)
+  * ML: New Upstream Version (Qt 3.3.3), urgency is high to push this into
+        sarge as soon as possible (Qt 3.2 is not acceptable)
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sat, 14 Aug 2004 21:05:00 +0200
+
+qt-x11-free (3:3.3.2-5) unstable; urgency=medium
+  
+  * ML: debian/rules: Fixed the debhelper calls, dh tried to install the
+        iBase stuff (Architecture: i386) even on non-i386 architectures.
+  * ML: Enable iBase for all Operating Systems instead of only for Linux
+        on i386 (thanks to Robert Millan again)
+  * ML: Severity is medium to not hold up KDE and tiff transition
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sat, 08 Aug 2004 10:50:00 +0200
+
+qt-x11-free (3:3.3.2-4) unstable; urgency=low
+
+  * ML: iBase seems to be similar to the black helicopters. Once they got
+        you there is no way to get rid of them. Disabled the iBase-Plugin
+        for all arches except x86 - hopefully.
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sat, 07 Aug 2004 22:13:00 +0200
+
+qt-x11-free (3:3.3.2-3) unstable; urgency=low
+  
+  * ML: debian/control: Switch from Firebird1 to Firebird2
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sat, 07 Aug 2004 16:33:00 +0200
+
+qt-x11-free (3:3.3.2-2) unstable; urgency=low
+
+  * ML: Let's have another try, this time with the right target distribution
+
+  (verbatim copy of the 3:3.3.2-1 upload changelog follows)
+
+  * ML: New Upstream (Qt 3.3.2) fixes:
+          - Strange line /usr/lib/libqt-mt.la (Closes: #216063)
+          - The wishlist-bugreport for it can be closed (Closes: #235394)
+  * ML: Fixed the description of the following packages:
+          - libqt3c102-mt-psql (Closes: #209735)
+          - libqt3c102-mt-odbc (Closes: #209932)
+          - qt3-examples (Closes: #210046)
+          - libqt3c102-mt-mysql (Closes: #210097)
+  * ML: Made qt3-assistant depend on qt3-doc (Closes: #256183)
+  * ML: Adopted patches by Robert Millan to make Qt build on Hurd
+          - Added patches/15_unify_declarations_glibc.dpatch
+          - Fixed debian/rules to avoid E2BIG on Hurd
+          Thanks, Robert!
+  * ML: Use libmysqlclient12 instead of libmysqlclient10 (Closes: #188622)
+  * ML: Use the OpenGL-libraries via dlopen (Closes: #257705)
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sat, 07 Aug 2004 13:08:00 +0200
+
+qt-x11-free (3:3.3.2-1) experimental; urgency=low
+
+  * ML: New Upstream (Qt 3.3.2) fixes:
+          - Strange line /usr/lib/libqt-mt.la (Closes: #216063)
+          - The wishlist-bugreport for it can be closed (Closes: #235394)
+  * ML: Fixed the description of the following packages:
+          - libqt3c102-mt-psql (Closes: #209735)
+          - libqt3c102-mt-odbc (Closes: #209932)
+          - qt3-examples (Closes: #210046)
+          - libqt3c102-mt-mysql (Closes: #210097)
+  * ML: Made qt3-assistant depend on qt3-doc (Closes: #256183)
+  * ML: Adopted patches by Robert Millan to make Qt build on Hurd
+          - Added patches/15_unify_declarations_glibc.dpatch
+          - Fixed debian/rules to avoid E2BIG on Hurd
+          Thanks, Robert!
+  * ML: Use libmysqlclient12 instead of libmysqlclient10 (Closes: #188622)
+  * ML: Use the OpenGL-libraries via dlopen (Closes: #257705)
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sat, 07 Aug 2004 09:50:00 +0200
+   
+qt-x11-free (3:3.3.2-0pre2) experimental; urgency=low
+
+  * ML: Added qaccessible.h to the list of headers
+  * ML: Removed unnecessary dependencies again
+  * ML: Added patch to fix KDE menu problem
+  * ML: Build and include the source in upload now
+
+ -- Martin Loschwitz <madkiss@debian.org>  Mon, 14 Jun 2004 21:23:00 +0200
+
+qt-x11-free (3:3.3.2-0pre1) experimental; urgency=low
+
+  * ML: First public version of packages for Qt 3.3
+  * ML: Added packages for ibase and SQLite RDBMSs
+  * ML: Necessary Adaptions from the Qt 3.2 to Qt 3.3 packages
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sat, 12 Jun 2004 21:09:00 +0200
+
+qt-x11-free (3:3.2.3-3) unstable; urgency=low
+
+  * ML: Re-enabled STL support in Qt (Closes: #194475, #242633)
+  * ML: Enabled XRandr support (Closes: #253593)
+  * ML: Fixed FTBFS cursed by XCursor (Closes: #246198)
+  * ML: Split xlibs-dev dependencies (Closes: #253325)
+  * ML: Disabled the Xinerama_pic-hack (XFree 4.3 made it useless)
+
+ -- Martin Loschwitz <madkiss@debian.org>  Thu, 10 Jun 2004 12:07:00 +0200
+
+
+qt-x11-free (3:3.2.3-2) unstable; urgency=low
+
+  * ML: Rebuild to get back PIC-libs
+
+ -- Martin Loschwitz <madkiss@debian.org>  Thu, 22 Jan 2004 15:23:00 +0100
+
+qt-x11-free (3:3.2.3-1) unstable; urgency=low
+
+  * ML: New upstream release (Qt 3.2.3) (Closes: #218464)
+  * ML: Add Replaces: for libqt3-emb (<= 3:3.0.3-1) (Closes: #218290)
+  * ML: Tuned libqt3-i18n package description (Closes: #208904)
+  * ML: Tuned qt3-qtconfig package description (Closes: #209259)
+  * ML: Removed some patches that were merged by upstream (#1, #8, #9, #10)
+  * ML: Don't include any of the .pc files; they're unsupported now
+  * ML: Don't include any of the .la files: they're not working now
+
+ -- Martin Loschwitz <madkiss@debian.org>  Tue, 06 Jan 2004 09:54:00 +0100
+
+qt-x11-free (3:3.2.1-6) unstable; urgency=low
+
+  * ML: Added dependency to libqt3{-mt}-dev for xlibs-pic (Closes: #213855)
+  * ML: Sanify qmake.conf files to have existing paths instead of $(QTDIR)
+  * ML: Sanify qt{-mt}.pc files to have correct values
+  * ML: Bumped Standards-Version to 3.6.1 (No changes)
+  * ML: Added debian/compat
+  * ML: Added patch by Simon Hausmann to fix generation of pkgcof files
+  
+ -- Martin Loschwitz <madkiss@debian.org>  Sun, 05 Oct 2003 11:24:00 +0200
+ 
+qt-x11-free (3:3.2.1-5) unstable; urgency=low
+
+  * ML: Let's build styles into the library, instead of as plugins 
+        (Closes: #197157)
+  * ML: Added build dependency for libaudio-dev to libqt3{-mt}-dev
+        (Closes: #210628, #210994, #212530)
+  * ML: Removed broken patches for mips and mipsel
+        (Closes: #210366)
+  * ML: Added patch by Dirk Mueller to fix kdesktop and other applications
+
+ -- Martin Loschwitz <madkiss@debian.org>  Mon, 29 Sep 2003 19:35:00 +0200
+
+qt-x11-free (3:3.2.1-4) unstable; urgency=low
+
+  * ML: re-add the fontlist fix from previous versions 
+  * ML: Added dependencies for libxft2-dev, libxrender-dev and libxcursor-dev
+        to the -dev packages (Closes: #208421)
+  * ML: Changed description of libqt3-plugins-headers package
+  * ML: Added patch by Lars Knoll to prevent generation of bogus mouse events
+  * RN: move unixmake2.cpp patch (approved by TT)
+  * RN: add qlineedit.cpp patch (approved by TT)
+  * RN: re-add pkg-config files
+ 
+ -- Martin Loschwitz <madkiss@debian.org>  Wed, 3 Sep 2003 18:30:00 +0200
+
+qt-x11-free (3:3.2.1-3) unstable; urgency=low
+
+  * ML: Added patches/01_fix_mips_mipsel.dpatch (hopefully fixes mips[el] build)
+  * ML: Merged the patch added in previous release with the above one
+  * ML: For -1: Pass --sysconfdir and --translationdir options to ./configure
+  * ML: Enable support for Xcursor in debian/rules (on Ralf's request)
+  * RN: Copy qmake.cache file to the appropriate location (/usr/share/qt3/)
+  * RN: Include fix for unixmake2.cpp (libtool and pkgconfig)
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sun, 31 Aug 2003 18:41:00 +0200
+
+qt-x11-free (3:3.2.1-2) unstable; urgency=low
+
+  * ML: Build the qmake tool with -O2 as optimization flag (Closes: #207915)
+  * ML: Call dh_gencontrol with -a in debian/rules (Closes: #207917)
+
+ -- Martin Loschwitz <madkiss@debian.org>  Sat, 30 Aug 2003 21:16:00 +0200
+
+qt-x11-free (3:3.2.1-1) unstable; urgency=low
+
+  * ML: New upstream version (Qt 3.2.1) (Closes: #204650)
+  * ML: Include all icon files for the Qt designer -- hopefully
+
+ -- Martin Loschwitz <madkiss@debian.org>  Fri, 29 Aug 2003 14:59:00 +0200
+
+qt-x11-free (3:3.1.1-9) unstable; urgency=low
+
+  * ML: debian/control: Point out that libqt3-compat-headers might be of
+        importance (with Recommends and addition to package description,
+        Ben, I hope this satisfies you for now) 
+  * ML: debian/rules Fix for-fork with patch from BTS (Closes: #188536)
+
+ -- Martin Loschwitz <madkiss@debian.org>  Tue, 15 Jul 2003 19:45:00 +0200
+
+qt-x11-free (3:3.1.1-8) unstable; urgency=low
+
+  * ML: Apply patch from Kevin Puetz to fix font listing (Closes: #189750)
+  * ML: Don't rely on /usr/share/doc, remove qtrc crap (Closes: #189755)
+  * ML: Give the qt3-things a higher priority than the qt2 ones (Closes: #189755)
+  * ML: debian/qt3-qtconfig.menu: Moved to Settings section (Closes: #183827)
+  * ML: debian/copyright: Mention Qt3.1 instead of Qt2.2 (Closes: #185161)
+  * ML: debian/libqt3-plugins-headers: Added qinterlacestyle.h (Closes: #182259)
+  * ML: Have libqt3-dev and libqt3-mt-dev in the libdevel section
+  * RN: debian/control: Add libxft2-dev as dependency for -dev-packages
+  
+ -- Martin Loschwitz <madkiss@debian.org>  Sat, 10 May 2003 14:55:00 +0200
+ 
+qt-x11-free (3:3.1.1-7) unstable; urgency=low
+
+  * ML: The "Arg, can somebody purge typod please?"-release
+    - debian/control: Fixed corrupt Build-Depends: line
+    - debian/patches: Made the xinerama_pic patch i386-only
+    - debian/control: Removed unnecessary xlibs-pic Depends:
+
+ -- Martin Loschwitz <madkiss@debian.org>  Fri, 07 Feb 2003 15:44:00 +0100
+
+qt-x11-free (3:3.1.1-6) unstable; urgency=low
+
+  * ML: Build with lXinerama_pic (for -fPIC) (Closes: #176071, #175075)
+  * ML: debian/rules: Convert to dpatch package
+  * ML: debian/control: Change Maintainer Address
+  * ML: debian/control: Have fontconfig as Depends:
+  * ML: debian/control: Fix {Build-}Dependencies for GLU libs (Closes: #182184)
+
+ -- Martin Loschwitz <madkiss@debian.org>  Tue, 06 Feb 2003 18:40:00 +0100
+
+qt-x11-free (3:3.1.1-5) unstable; urgency=low
+
+  * ML: Added Build-Dependency for xlibmesa-glu-dev to fix FTBFS
+  * ML: Updated debian/patches/01 to reflect latest qt-copy changes
+  * ML: Removed patch for hppa (was needed to fix FTBFS)
+
+ -- Martin Loschwitz <madkiss@madkiss.org>  Sat, 22 Feb 2003 08:47:00 +0100
+ 
+qt-x11-free (3:3.1.1-4) unstable; urgency=low
+
+  * RN: debian/rules: remove byacc commands
+  * RN: debian/rules: Change back to srcdir = builddir mechanism
+  * RN: debian/patches: Help to remove some unused patches
+  * RN: debian/maintain: Help to get rid of copying qmake.conf files around
+  * RN: debian/rules: Clean up the 'clean' target, make it work again
+  * RN: debian/qt3-doc.links: Fix breakage for man-link
+  * RN: debian/libqt3{mt-dev,dev}: Create plugins symlink
+  * ML: debian/control: Remove xlibmesa-dev dependencies (Closes: #181202)
+  * ML: debian/control: Change libqt3-headers back to arch=all
+  * ML: debian/patches: Added patch to make sure hppa compiles as it should
+  * ML: Create seperate qconfig.h files for non-mt/mt (Conflicts for -dev!)
+
+ -- Martin Loschwitz <madkiss@madkiss.org>  Tue, 18 Feb 2003 19:26:00 +0100
+ 
+qt-x11-free (3:3.1.1-3) unstable; urgency=low
+
+  * RN: debian/libqt3-plugins-headers.install: Removed headers for codecs
+  * RN: debian/rules: Fix paths in .prl-files after build has finished
+  * RN: debian/libqt3-headers.install: Include some more includes files
+  * ML: Ship src/attic as .tar.gz in libqt3-compat-headers (it's obsolete, anyway)
+  * ML: Broke out qt3-examples package (saves place in -doc-package and makes sense)
+  * ML: debian/maintain/qmake*.conf: Applied patch by Brian Nelson (Closes: #180326)
+  * ML: Added debian/maintain/fixqc.sh to fix qmake.cache files during install
+
+ -- Martin Loschwitz <madkiss@madkiss.org>  Wed, 12 Feb 2003 16:31:00 +0100
+ 
+qt-x11-free (3:3.1.1-2pre3v1) unstable; urgency=low
+
+  * New package: libqt3-compat-headers (Thanks to Ralf Nolden again)
+  * debian/patches/01_qtcopy_20030206.dpatch: Updated to qtcopy from 20030206
+  * debian/libqt3-mt-dev.install: Move QGL classes here since QGL only works with mt
+  * debian/rules: Install .prl files to /usr/share/qt3/lib/
+  * debian/rules: Include logo32.png is every html-documentation
+  * debian/libqt3c102-mt.links: Symlinks for libqui
+  * debian/maintain/{qtconfig,assistant}.desktop: Fix section in menu file
+  * debian/rules: Include qmake documentation
+  * debian/rules: remove qwindowsxpstyle.h
+  * debian/rules: Moved README.Debian to -dev-packages (Closes: #179932)
+  * debian/README.Debian: New Version with max 75 chars per line (Closes: #179408)
+  * debian/control: Corrected Suggests: fields (Closes: #179838)
+  * deban/maintain/qtconfig.desktop: New Version, works Ok now (Closes: #179773)
+  * debian/control: libqt3c102-mt now conflicts with libqui1-emb (Closes: #179759)
+  * debian/control: qt3-dev-tools now conflicts with qte3-designer (Closes: #179761)
+  * debian/qt3-dev-tools.links: Make setting of QMAKESPEC unnecessary (Closes: #178296)
+  * debian/qt3-doc.doc-base: Finally, fix doc-base stuff (Closes: #155566)
+  * debian/control: libqt3c102 and -mt don't conflict with libqt (Closes: #179768)
+  * debian/control: Depend on xlibmesa-gl-dev | libgl-dev
+  * debian/control: Added Conflicts: for unofficial libqt3c-packages (Closes: #180078)
+  * debian/rules: Don't provide static libraries any longer (Waiting for policy approval!)
+  * debian/rules: Header-directory now is /usr/include/qt3
+  * debian/rules: build the -non-mt version before the -mt-version
+  * For 3:3.1.1-2: Added Conflicts: for qt3-dev-tools <-> uic (Closes: #179396)
+
+ -- Martin Loschwitz <madkiss@madkiss.org>  Sat, 8 Feb 2003 09:34:00 +0100
+
+qt-x11-free (3:3.1.1-2) unstable; urgency=low
+
+  * debian/qt3-dev-tools.install: Include mkspecs for qmake (Closes: #179410)
+  * debian/rules: Include logo32.png in qt3-docs (Closes: #179437)
+  * debian/control: qt3-dev-tools now has Conflicts: for libqt-dev (moc!)
+  * debian/control: Fix Build-Depends: to be xlibmesa-gl-dev instead of -glu-dev.
+  * debian/*.links: Readded symlinks for /usr/share/qt3/bin/ (Closes: #179411)
+  * debian/rules: Remove undocumented Symlinks (they are deprecated)
+  * -dev-packages should not depend on libqt3-plugins-headers (Closes: #179429)
+  * This was fixed in 3:3.1.1-1 (Closes: #179155)
+  * debian/maintain/qmake*.conf: Fix errors causing FTBFS on hppa/alpha (Closes: #179582)
+  * debian/control: Make libqt3-dev/-mt-dev depend on xlibmesa-gl-dev (Closes: #179573)
+  
+ -- Martin Loschwitz <madkiss@madkiss.org>  Mon, 3 Feb 2003 12:49:00 +0100
+ 
+qt-x11-free (3:3.1.1-1) unstable; urgency=low
+
+  * The packages have been redesigned radically.
+    - New packages: libqt3-headers, libqt3-i18n, libqt3-plugins-headers,
+      qt3-apps-dev, qt3-assistant, qt3-designer, qt3-dev-tools-compat,
+      qt3-dev-tools-embedded, qt3-dev-tools, qt3-linguist, qt3-qtconfig (Closes: #178914)
+    - Please refer to package descriptions for more detailed informations.
+    - As you can see above, QtConfig was moved into its own package. (Closes: #153538)
+    - Also made sure that qt3-designer contains libcppeditor.so (Closes: #155792)
+  * Special Thanks for advising and help with this release goes to Ralf Nolden
+  * debian/control: Make libqt3/libqt3-mt depend on fontconfig (Closes: #174825, #173951)
+  * debian/control: Transist package to g++-3.2 (Closes: #159263, #135813, #178484, #176616)
+  * Package rebuilt, thus some bugs fixed. (Closes: #178698, #174959, #176827)
+  * debian/rules: Provide conv2ui, also qvfb was added back. (Closes: #173932)
+  * Bugs against packages in stable distribution don't make much sense.
+    Additionally, this is not a bug but a feature (Qt2 <-> Qt3 conflict) (Closes: #178660)
+  * Same as above. Additionally, please make sure to use libqt3-mt-dev instead
+    of libqt3-dev (Closes: #168317)
+  * This bug definetely can not happen anymore, since Qt3 takes care of
+    creation of debian/tmp-install (Closes: #163075)
+  * debian/README.Debian: Updated and extended by Ralf Nolden
+  * debian/patches/02_missing_manpages.dpatch: Don't apply against qt-copy
+  * debian/patches/10_qvfb_cpp.dpatch: Fix qvfb to meet our needs
+  * debian/patches/11_designer_fix.dpatch: Fix designer breakage
+  * debian/patches/12_plugins_fix.dpatch: Build all available plugins
+  * debian/patches/13_qtcopy_20030128.dpatch: Include qt-copy 20030128
+  * debian/*: Various other little fixes and cleanups
+  * debian/rules: Moved /usr/share/qt to be /usr/share/qt3
+
+ -- Martin Loschwitz <madkiss@madkiss.org>  Wed, 29 Jan 2003 16:58:00 +0100
+
+qt-x11-free (2:3.1.1+cvs.20021220-1) unstable; urgency=low
+
+  * New Upstream version (Qt 3.1.1, using qt-copy from KDE project)
+  * Special thanks goes to Kevin Puetz for support and work on this release
+  * debian/patches/: Removed patches 05 and 06 and added correct -I's to rules
+  * debian/rules: don't build unthreaded plugins with QT_THREAD_SUPPORT (Closes: #172793)
+  * debian/control: Fix description of libqt3-helper (Closes: #72754)
+  * debian/rules: Moved libqui to libqt3-helper (Closes: #173539, #173537)
+  * debian/libqt3-dev.install: Only include useful bits for qmake
+  * debian/maintain/qmake-hppa.conf: Added -ftemplate-depth-99 (Closes: #173086)
+  * debian/rules: Make sure OpenGL support is enabled on threaded builds
+  * debian/rules: Use new srcdir != builddir technology, large cleanup
+  * debian/rules: Fixed path for html-files (remove the double html)
+  * debian/control: Added Replaces: to libqt3-helper for libqt3 (Closes: #173288)
+  * debian/rules: Removed all those ugly wrapper scripts (bah!)
+  * debian/control: Added build-dependency for Xft2 - thus Xft2 enabled
+
+ -- Martin Loschwitz <madkiss@madkiss.org>  Fri, 20 Dec 2002 17:53:00 +0100
+ 
+qt-x11-free (2:3.1.0+cvs.20021205-1) unstable; urgency=low
+
+  * New Upstream version (Qt 3.1.0, using qt-copy from KDE project) (Closes: #167001)
+  * debian/control: Make libqt3-dev depending on correct packages (Closes: #167475)
+  * debian/rules: Enabled Qt support for cups
+  * debian/overrides/: Added overrides-files for various packages
+  * debian/control: depend on libaudio instead of nas-lib
+  * debian/control: Updated Standards-Version to 3.8.0
+  * debian/rules: Use DH_COMPAT=4
+  * debian/rules: Converted to dh_install
+
+ -- Martin Loschwitz <madkiss@madkiss.org>  Thu, 05 Dec 2002 14:10:00 +0100
+ 
+qt-x11-free (2:3.0.5-4) unstable; urgency=low
+
+  * debian/09_assistant.dpatch: Fix doc-dir-path for Qt-assistant (Closes: #148924)
+  * debian/10_sizet_64bit.dpatch: Fix for 64bit machines (Closes: #159364)
+  * debian/11_qsql_odbc.dpatch: build with libiodbc2-dev
+  * debian/control: Build-Depend on libiodbc2-dev (Closes: #161352, #161353)
+  * qt3-doc _should_ be Recommends (assistant/qt3-tools needs it) (Closes: #149428)
+  * debian/rules: Fixed the 'clean'-target (Closes: #159264)
+  * debian/libqt3-dev.links: Symlink for /usr/share/qt/lib (Closes: #152507, #152509)
+  * debian/control: Updates Standards-Version
+  * debian/control: Tried to solve the dependency hell a bit
+  * debian/control: Removed libqt3 Suggests for anti-aliasing-howto
+  * debian/rules: Re-enabled NAS (Network Audio System)
+  * Must be a local problem (there ARE files in libqt3-dev) (Closes: #159674)
+  * Not a Qt bug; has been fixed probably long time ago (Closes: #154976)
+  
+ -- Martin Loschwitz <madkiss@madkiss.org>  Thu, 15 Oct 2002 09:29:00 +0200
+
+qt-x11-free (2:3.0.5-3) unstable; urgency=low
+
+  * Sometimes our buildds do strange things (Closes: #155258)
+  * debian/rules: added shlibdeps-path for libqt3-mt.
+  * debian/rules: libqt3-mysql, libqt3-odbc and libqt3-psql contain the
+    unthreaded plugins now (Closes: #152022)
+
+ -- Martin Loschwitz <madkiss@madkiss.org>  Thu, 9 Aug 2002 22:18:00 +0200
+     
+qt-x11-free (2:3.0.5-2) unstable; urgency=low
+
+  * debian/control: qt3-dev and qt3-doc are "Priority: extra" now.
+  * debian/rules: Fix alpha and hppa build (Closes: #150917)
+
+ -- Martin Loschwitz <madkiss@madkiss.org>  Thu, 2 Aug 2002 12:43:00 +0200
+
+qt-x11-free (2:3.0.5-1) unstable; urgency=low
+
+  * debian/control: New Maintainer (Closes: #153534)
+  * debian/maintain: fix hppa build (qmake-hppa.conf) (Closes: #150917)
+  * debian/changelog: New upstream version 3.0.5 (Closes: #153266)
+  * debian/rules: We use dpatch now, thanks to Gergely Nagy
+  * Moved wrapper files and configs to debian/maintain/
+  * debian/maintain/assistant.sh: not include content double
+  * configure: Set "QT_INSTALL_PLUGINS" correct
+  * Changed some includes in the SQL-files to make them working
+  * debian/control: Fix some build dependencies
+  * debian/patches: All patches against upstream can be found here now.
+  * debian/control: Depend on libpng3-dev (Closes: #154234).
+
+ -- Martin Loschwitz <madkiss@madkiss.org>  Sat, 27 Jul 2002 13:51:00 +0200
+     
+qt-x11-free (2:3.0.4-2) unstable; urgency=low
+
+  * Fix hppa build hopefully (Closes: #150917)
+  * Build cleanup
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 26 Jun 2002 13:28:00 -0700
+
+qt-x11-free (2:3.0.4-1) unstable; urgency=low
+
+  * New upstream version
+  * Fix qt-designer html access (Closes: #149505)
+  * Build postgresql modules 
+  * This was fixed a while ago.  (Closes: #134637)
+  * Build static libs again.  yuk!  Who the heck uses these anymore? 
+    (Closes: #147084)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 16 Jun 2002 12:25:00 -0700
+
+qt-copy (2:3.0.3-20020329-7) unstable; urgency=low
+
+  * move html files to html subdir...really...I mean it. (Closes: #149076)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 06 Jun 2002 11:31:00 -0700
+
+qt-copy (2:3.0.3-20020329-6) unstable; urgency=low
+
+  * Remove unused doc dirs. (Closes: #148595)
+  * move html files to html subdir 
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 30 May 2002 22:58:00 -0700
+
+qt-copy (2:3.0.3-20020329-5) unstable; urgency=low
+
+  * Fix assistant by providing a wrapper (Closes: #146255)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 08 May 2002 17:21:00 -0700
+
+qt-copy (2:3.0.3-20020329-4) unstable; urgency=low
+
+  * Remove extra .'s from descriptions
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 03 May 2002 23:20:00 -0700
+
+qt-copy (2:3.0.3-20020329-3) unstable; urgency=low
+
+  * Fix priority (Closes: #145193)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 30 Apr 2002 00:27:00 -0700
+
+qt-copy (2:3.0.3-20020329-2) unstable; urgency=low
+
+  * Fix overwrite issue (Closes: #141803, #141639)
+  * Re-add all the additional man pages 
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 23 Apr 2002 00:27:00 -0700
+
+qt-copy (2:3.0.3-20020329-1) unstable; urgency=low
+
+  * Updated qt-copy to fix a few other bugs (Closes: #140462)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 29 Mar 2002 09:08:00 -0700
+
+qt-copy (2:3.0.3-20020314-5) unstable; urgency=low
+
+  * Fix potential crash...thanks Daniel
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 23 Mar 2002 02:30:00 -0700
+
+qt-copy (2:3.0.3-20020314-4) unstable; urgency=low
+
+  * Don't build motif style as a plugin.  It's pretty much the default so
+    let's have that builtin.
+  * Fix plugin pathing...actually this was a bug in the configure script
+    where it wasn't setting the proper items in the qconfig.h file
+    (Closes: #139449)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 22 Mar 2002 10:36:00 -0700
+
+qt-copy (2:3.0.3-20020314-3) unstable; urgency=low
+
+  * Since this is still in incoming..change from a build-conflict to a 
+    versioned depend
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 16 Mar 2002 11:00:00 -0700
+
+qt-copy (2:3.0.3-20020314-2) unstable; urgency=low
+ 
+  * Build-Conflict with libpng2-dev since it provides libpng-dev and we don't
+    want any of those problems.
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 15 Mar 2002 20:00:00 -0700
+
+qt-copy (2:3.0.3-20020314-1) unstable; urgency=low
+
+  * New upstream version.  
+  * Includes updated zlib code
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 14 Mar 2002 12:31:00 -0700
+
+qt-copy (2:3.0.2-20020306-1) unstable; urgency=low
+
+  * New upstream version.  Using qt-copy as it provides a bunch of fixes
+    for 3.0.2. (Closes: #135865)
+  * Fix suggests for libqt3-psql
+  * link to new png.  Need this otherwise we are stuck with using the old
+    png library for quite some time.
+  * Fix cleanup (Closes: #135859)
+  * Include -mt versions of plugins.
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 06 Mar 2002 23:37:00 -0700
+
+qt-copy (2:3.0.0.0-4) unstable; urgency=low
+
+  * Fix qmake.cache inclusion (Closes: #118623)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 07 Nov 2001 11:37:00 -0700
+
+qt-x11-free (2:3.0.0.0-3) unstable; urgency=low
+
+  * wrap uic so QTDIR is set for it...makes plugins happier
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 31 Oct 2001 09:19:00 -0700
+
+qt-x11-free (2:3.0.0.0-2) unstable; urgency=low
+
+  * Enable gl support.  If it get's whacky like qt2 did we'll break it
+    off into it's own package.  But until then we'll just do it this way.
+  * Fix wrapper (Closes: #116734)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 22 Oct 2001 12:55:00 -0700
+
+qt-x11-free (2:3.0.0.0-1) unstable; urgency=low
+
+  * New upstream version
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 15 Oct 2001 11:54:00 -0700
+
+qt-x11-free (2:3.0.0-0beta6-4) unstable; urgency=low
+
+  * Don't compile in xinerama support...lets actually build on all archs
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 09 Oct 2001 16:00:00 -0700
+
+qt-x11-free (2:3.0.0-0beta6-3) unstable; urgency=low
+
+  * Properly include private include files
+  * Provide links from /usr/bin/ qt bins to /usr/share/qt/bin
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 08 Oct 2001 16:00:00 -0700
+
+qt-x11-free (2:3.0.0-0beta6-2) unstable; urgency=low
+
+  * Properly include include files (Closes: #114357)
+  * Pass variables onto designer (Closes: #114271)
+  * Add new variable to qmake.sh (Closes: #113341)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 03 Oct 2001 16:11:00 -0700
+
+qt-x11-free (2:3.0.0-0beta6-1) unstable; urgency=low
+
+  * New upstream beta
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 01 Oct 2001 11:04:00 -0700
+
+qt-x11-free (2:3.0.0-0beta5-2) unstable; urgency=low
+
+  * Fix shlibs (Closes: #113055)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 23 Sep 2001 18:41:00 -0700
+
+qt-x11-free (2:3.0.0-0beta5-1) unstable; urgency=low
+
+  * New upstream beta
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 18 Sep 2001 09:56:00 -0700
+
+qt-x11-free (2:3.0.0-0beta4-2) unstable; urgency=low
+
+  * Provide threaded QT library
+  * Cleanup deps
+  * Set shlibs files
+  * Remove -O2 from alpha build and add -mieee
+  * don't use gcc3 for alpha build anymore
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 08 Sep 2001 09:57:00 -0700
+
+qt-x11-free (2:3.0.0-0beta4-1) unstable; urgency=low
+
+  * New upstream beta
+  * Lintian error cleanup
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 29 Aug 2001 20:52:00 -0700
+
+qt-x11-free (2:3.0.0-0beta3-2) unstable; urgency=low
+ 
+  * Fix path issues for documentation (Closes: #109255)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 19 Aug 2001 00:01:00 -0700
+
+qt-x11-free (2:3.0.0-0beta3-1) unstable; urgency=low
+ 
+  * new upstream beta
+  * Include mkspecs bits for qmake
+  * include qmake wrapper
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 27 Jul 2001 03:36:00 -0700
+
+qt-x11-free (2:3.0.0-0beta2-3) unstable; urgency=low
+ 
+  * drop Optimization down for other archs
+  * *should* fix m68k build (Closes: #104043)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 17 Jul 2001 15:47:00 -0700
+
+qt-x11-free (2:3.0.0-0beta2-2) unstable; urgency=low
+ 
+  * actually include libqxt.so so people can build packages against it
+  * Remove the suggests for anti-aliasing-howto from the plugin packages
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 08 Jul 2001 03:50:00 -0700
+
+qt-x11-free (2:3.0.0-0beta2-1) unstable; urgency=low
+ 
+  * New upstream beta
+  * Ok, now we break out libqxt0
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 05 Jul 2001 12:46:00 -0700
+
+qt-x11-free (3.0.0-0beta1-6) unstable; urgency=low
+ 
+  * Add missing build-depend for flex (Closes: #102978, #102984)
+  * Add conflict with libqxt0 (Closes: #102959)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 01 Jul 2001 08:32:00 -0700
+
+qt-x11-free (3.0.0-0beta1-5) unstable; urgency=low
+ 
+  * ok..I'll get this stuff worked out soon.  Fix gl build bits
+    (Closes: #102849)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 30 Jun 2001 00:27:00 -0700
+
+qt-x11-free (3.0.0-0beta1-4) unstable; urgency=low
+ 
+  * Include qmake in libqt3-dev package
+  * Build database modules and provide seperate packages for them
+  * Build styles and provide them in libqt3 package
+  * Actually install designer plugins...guess that might help.
+  * More build cleanup...properly build all the tools/* modules
+  * Update build-depends
+  * Actually include linguist desktop file
+  * Include interface files as well
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 28 Jun 2001 22:03:00 -0700
+
+qt-x11-free (3.0.0-0beta1-3) unstable; urgency=low
+ 
+  * Fix libqui1 deps (Closes: #100804)
+  * Fix qmake symlink (Closes: #100964)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 18 Jun 2001 19:40:00 -0700
+
+qt-x11-free (3.0.0-0beta1-2) unstable; urgency=low
+ 
+  * Fix dependencies for libqt3-dev...grrr
+  * Fix description for qt3-tools
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 07 Jun 2001 21:00:00 -0700
+
+qt-x11-free (3.0.0-0beta1-1) unstable; urgency=low
+ 
+  * New upstream beta version
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 26 May 2001 11:06:00 -0700
+
+qt-x11 (2:2.3.0-final-5) unstable; urgency=low
+ 
+  * Fix LD PATH problems due to new fakeroot routines (Closes: #98068)
+  * Get rid of gl specific package and just build main package with gl support
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 25 May 2001 00:25:00 -0700
+
+qt-x11 (2:2.3.0-final-4) unstable; urgency=low
+ 
+  * Fix konsole accents (Closes: #96678)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 11 May 2001 10:27:00 -0700
+
+qt-x11 (2:2.3.0-final-3) unstable; urgency=low
+ 
+  * More alpha tweaks (only remove optimization for CXXFLAGS)
+  * Update bulid flags (Closes: #90334)
+  * Updating shlibs to stop problem with people using old libqt2 packages
+  * Several upstream fixes pulled out of the qt-copy CVS tree on KDE's
+    CVS Repository
+  * Build fixes for systems that do not have qt installed on them already
+  * Remove old Xft build hacks since we are using x4.0.3 now
+  * Update build-depends since we now require x4.0.3
+  * Build libqt2-mt with opengl support (Closes: #91989)
+  * Build static libs with opengl support as well
+  * Remove old -dev provides which fixes buildd problems
+  * Get rid of 2.2 dummy packages libqt2.2 and libqt2.2-gl
+  * Update Build-Depends and other Depends that were pointing to provided or
+    pseudo packages.  Have them point to a real package | pseudo package.
+  * Add new kde menu tag to qt-designer
+  * Add new libqxt0 pacakge so that in the future we don't have a confliction
+    with libqt3 and libqt2 since most likely libqxt soname won't change.
+  * Adding in lintian overrides finally
+  * Updating standards version
+  * Remove old hacks in debian/rules
+  * Should fix pure_virtual problems (Closes: #94676)
+  * Apply i18n patches (qclipboard, qstring, xim)
+  * Building with system png again
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 01 May 2001 22:42:00 -0700
+
+qt-x11 (2:2.3.0-final-2) unstable; urgency=low
+ 
+  * test build
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 07 Mar 2001 13:26:00 -0700
+
+qt-x11 (2:2.3.0-final-1) unstable; urgency=low
+ 
+  * New upstream version
+  * Applied xft workaround patch
+  * versioning the depends
+  * Adding in alpha specific build code so that it will build out of the
+    box.
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 07 Mar 2001 13:26:00 -0700
+
+qt-x11 (2:2.3.0-beta1-3) unstable; urgency=low
+ 
+  * Various patches applied from qt-copy branch of kde cvs.  These include
+    several upstream fixes that were done post beta-1 and will be a part of
+    the next release.
+      LANG=he_IL.iso8859-8 will work correctly now.
+      .fontguess file now accepts quoted font names (so you can use font anmes 
+        with white space inside)
+  * Konq's combobox works again
+  * Include xt extension (Closes: #88147)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 01 Mar 2001 09:17:00 -0700
+
+qt-x11 (2:2.3.0-beta1-2) unstable; urgency=low
+ 
+   * Fix grave bug with xft (Closes: #87758)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 26 Feb 2001 23:22:00 -0700
+
+qt-x11 (2:2.3.0-beta1-1) unstable; urgency=low
+ 
+   * New upstream version
+   * Don't clean everything out of bin/ after each stage as some pieces are
+     scripts that don't get built
+   * Fix Depends for libqutil1
+   * Change version for kde-designer replace/conflicts so that one can actually
+     install kde-designer (Closes: #87223)
+   * Change doc package to qt-doc
+   * Let's go back to libqt2 and get away from libqt2.x. Providing migration
+     packages as to not totally hose people up right away.  These will go
+     away prior to freeze.
+   * Build with XFT support - Anti Aliasing
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 23 Feb 2001 06:23:00 -0700
+
+qt-x11 (2:2.2.4-5) unstable; urgency=low
+ 
+   * Fix qt-mt package (Closes: #85132)
+     building of the tools cause the mt library to get hosed somehow
+   * Fix -dev depends for mt-dev
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 17 Feb 2001 00:42:00 -0700
+
+qt-x11 (2:2.2.4-4) unstable; urgency=low
+ 
+   * Break out uic and libqutil.  This allows for developers not to need
+     qt-designer to build packages and also takes care of the fact that
+     libqutil is common.
+   * Changing dev packages to libqt-dev and libqt-mt-dev 
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 15 Feb 2001 02:30:00 -0700
+
+qt-x11 (2:2.2.4-3) unstable; urgency=low
+ 
+   * Fix pathing for qt-designer for #85493
+   * Change qt-designer's Depends on qt2.2-doc to Recommends (Closes: #85486)
+   * Adding in Perl depends properly for libqt2.2-dev
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 10 Feb 2001 17:30:00 -0700
+
+qt-x11 (2:2.2.4-2) unstable; urgency=low
+  
+   * Include findtr (Closes: 85439)
+   * Build against new libmng
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 09 Feb 2001 16:30:00 -0700
+
+qt-x11 (2:2.2.4-1) unstable; urgency=low
+ 
+   * New upstream version
+     On X11, popup menus do not grab the keyboard anymore, but rely on and 
+     enforce the application to have focus. This works around an X11 bug
+     where deadkeys do not work while the keyboard is grabbed.
+     See QT changelog for full list of updates
+   * Installing ui templates so that Designer doesn't complain.
+   * Adding in suggests for tmake
+   * Moving libqutil and uic over to designer package where they belong
+   * Moving away from /usr/lib/qt2 - 
+        /usr/share/qt would have links for include/docs/man
+        it will also store all other pieces such as the ui templates for
+        designer.  
+   * Cleaning up post/pre scripts, docs, etc. libqt2.2 package doesn't need
+     development docs and information...move it into -dev package
+   * Creating createcw and associated libs for use with designer
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 02 Feb 2001 16:30:00 -0700
+
+qt2.2 (2:2.2.3-12) unstable; urgency=low
+ 
+   * Only build designer once, using the shared libraries. This will cut
+     down on build time.
+   * Moving man pages into /usr/share/man tree
+   * Do not duplicate header files for examples and tools.  
+   * Don't copy the tools/ directory tree since we build them already, if
+     someone wants the source to them they can dl the orig.tar.gz
+   * Don't remove the Makefile's during a clean so that we can include them 
+     with the examples and tutorial
+   * Adding in a Debian menu entry for QT Designer
+   * Cleaning up descriptions to show where man pages were (since they were
+     still being referenced in the -dev package
+   * Adding note in README.Debian on how to build the examples and tutorial
+   * Compressing tutorial and examples to save on space by default.  People
+     can then uncompress them if them want to use them.
+   * Cleaning up post/pre scripts
+   * Cleaning up diff
+   * Upstream patch applied for "dead keys" in qpopups - this is part of a
+     fix for Bug 82967.
+   * fix for setNamedColor parsing problem
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 27 Jan 2001 07:25:00 -0700
+
+qt2.2 (2:2.2.3-11) unstable; urgency=low
+ 
+   * Removing libpth-dev from depends
+   * One more upstream crash/bug fix in qasyncimageio
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 24 Jan 2001 18:41:00 -0700
+
+qt2.2 (2:2.2.3-10) unstable; urgency=low
+ 
+   * Fixing libqt2.2-dev dependencies.  Adding libz-dev, xlibs-dev, libpng2-dev,
+     libjpeg62-dev, libmng-dev. (Closes: #83298)
+   * Adding uic information to libqt2.2-dev's description
+   * More crash fixes for graphics manipulation
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 23 Jan 2001 14:13:00 -0700
+
+qt2.2 (2:2.2.3-9) unstable; urgency=low
+ 
+   * Fix a crash problem with qimage
+   * More i18n
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 22 Jan 2001 00:10:00 -0700
+
+qt2.2 (2:2.2.3-8) unstable; urgency=low
+ 
+   * More upstream fixes...moving towards 2.2.4
+     i18n work
+     bug fixes
+   * Removing old i18n patches 
+   * fixing qt-designer section
+   * Build against new version of MNG
+   * Update build-depends
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 20 Jan 2001 01:28:00 -0700
+
+qt2.2 (2:2.2.3-7) unstable; urgency=low
+ 
+   * Moving tools/ includes to /usr/share/doc/qt2.2-doc/tools/includes
+     Apparantly they were causing problems with some apps
+   * Updating build-depends
+   * New upstream fixes
+     printing when your display has a resolution != 75 dpi
+     true type and type1 fonts will now get embedded into the document. This
+     fixes printing in almost all 8bit locales, *if* you are using these
+     fonts.
+     OK button fix
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 17 Jan 2001 16:05:00 -0700
+
+qt2.2 (2:2.2.3-6) unstable; urgency=low
+ 
+   * New i18n patches - submitted upstream finally it seems
+   * Cleanup of build-depends and depends.  
+   * Creating a non-kde designer package
+   * Upstream i18n updates out of future 2.2.4 release.
+   * Fix print dialog problem - thanks to Michael Lachmann <dirk@santafe.edu>
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 15 Jan 2001 15:30:00 -0700
+
+qt2.2 (2:2.2.3-5) unstable; urgency=low
+ 
+   * Cleaning up depends/provides/conflicts
+     We are the only qt package for unstable so lets act like it.
+   * new i18n patch for qpsprinter
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 10 Jan 2001 16:00:00 -0700
+
+qt2.2 (2:2.2.3-4) unstable; urgency=low
+ 
+   * New i18n patches
+   * More build fixes
+    
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 01 Jan 2001 03:31:00 -0700
+
+qt2.2 (2:2.2.3-3) unstable; urgency=low
+ 
+  * Applying Anti-Aliasing patch
+  * Adjusting Build-Depends as we now must have the latest X4
+  * Adding libfreetyp6-dev to Build-Depends
+  * Fixing document links (Closes: #79876)
+  * New i18n patch update for qpsprinter
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 18 Dec 2000 01:13:00 -0700
+
+qt2.2 (2:2.2.3-2) unstable; urgency=low
+ 
+  * More build fixes...arggg...
+  * Applying new i18n patches for 2.2.3 and removing old 2.2.2 hacks
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 14 Dec 2000 16:27:00 -0700
+
+qt2.2 (2:2.2.3-1) unstable; urgency=low
+ 
+  * New upstream version
+  * Cleaning up build process
+  * Removing Mesa specific GL code as before
+  * Including new tools - qconfig, qvfb, makeqpf, and qembed
+  * Applying qscrollview patch from QT via <j.w.greven@student.utwente.nl>
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 13 Dec 2000 14:45:00 -0700
+
+qt2.2 (2:2.2.2-12) unstable; urgency=low
+ 
+  * New ad hoc xim patch - amazing what happens when you have no other choice 
+  * Updating shlibs
+  * More build-depends and depends work
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 11 Dec 2000 09:09:00 -0700
+
+qt2.2 (2:2.2.2-11) unstable; urgency=low
+ 
+  * Removing xim patch since it's been weeks without a fix for the problems
+    it causes
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 09 Dec 2000 06:30:00 -0700
+
+qt2.2 (2:2.2.2-10) unstable; urgency=low
+ 
+  * Friggen dependency loops.
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 07 Dec 2000 01:00:00 -0700
+
+qt2.2 (2:2.2.2-9) unstable; urgency=low
+  
+  * Fixing broken shlibs...arggg
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 02 Dec 2000 23:12:00 -0700
+
+qt2.2 (2:2.2.2-8) unstable; urgency=low
+ 
+  * Creating libqt2.2-gl package.  Recommendations from upstream folks to
+    only compile in GL support as necessary due to stability issues and the
+    fact that we do have users that require GL support in QT has led me to
+    move GL support out of the main QT package.  libqt2.2 conflicts/replaces
+    libqt2.2-gl while libqt2.2-gl replaces libqt2.2.  
+  * Adding in missing build-depends
+  * More build cleanup
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 30 Nov 2000 15:15:00 -0700
+
+qt2.2 (2:2.2.2-7) unstable; urgency=low
+ 
+  * New i18n patches
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 29 Nov 2000 07:52:00 -0700
+
+qt2.2 (2:2.2.2-6) unstable; urgency=low
+ 
+  * New i18n patches 
+  * Adding in a replaces for libqt1g-dev and qt1g-dev
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 25 Nov 2000 03:40:00 -0700
+
+qt2.2 (2:2.2.2-5) unstable; urgency=low
+ 
+  * Removing nas support per popular demand
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 20 Nov 2000 15:45:00 -0700
+
+qt2.2 (2:2.2.2-4) unstable; urgency=low
+ 
+  * Moving threaded version of libqt to libqt2.2-mt to cut down on size of
+    main package and still allow for those who need the threaded version to
+    obtain it.
+  * Fixing up dependencies for xlibs vs xlib6g for ports that do not have 
+    xlibs
+  * Fixing shlibs
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 18 Nov 2000 20:14:00 -0700
+
+qt2.2 (2:2.2.2-4) unstable; urgency=low
+  
+  * Fixing up thread support again
+  * Fixing the last lintian error
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 18 Nov 2000 08:30:00 -0700
+
+qt2.2 (2:2.2.2-3.1) unstable; urgency=low
+ 
+  * Fixing QGLWidget problem (Closes: #77248)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 16 Nov 2000 21:30:00 -0700
+
+qt2.2 (2:2.2.2-3) unstable; urgency=low
+ 
+  * Applying uic patch from upstream
+  * Adding in versioned replace (Closes: #77147)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 16 Nov 2000 07:15:00 -0700
+
+qt2.2 (2:2.2.2-2.1) unstable; urgency=low
+ 
+  * Removing thread support as it still seems unstable
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 16 Nov 2000 07:15:00 -0700
+
+qt2.2 (2:2.2.2-2) unstable; urgency=low
+ 
+  * contains new i18n patches
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 16 Nov 2000 02:00:00 -0700
+
+qt2.2 (2:2.2.2-1) unstable; urgency=low
+ 
+  * New upstream version
+  * Does not contain any i18n patches
+  * compiled with nas sound support
+  * mesa specific GL code removed manually
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 14 Nov 2000 20:00:00 -0700
+
+qt2.2 (2:2.2.1-11) unstable; urgency=low
+ 
+  * Manually removing Mesa specific GL code from qt
+  * New i18n patch
+  * Cleaned up diff file
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 12 Nov 2000 03:00:00 -0700
+
+qt2.2 (2:2.2.1-10) unstable; urgency=low
+ 
+  * New i18n patches (Closes: #75830)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 08 Nov 2000 16:00:00 -0700
+                                                                                
+qt2.2 (2:2.2.1-9.2) unstable; urgency=low
+ 
+  * Fix to /usr/lib/qt2/man link problem (Closes: #75622)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 05 Nov 2000 22:00:00 -0700
+                                                                                
+qt2.2 (2:2.2.1-9.1) unstable; urgency=low
+ 
+  * Build against X4 libs
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 04 Nov 2000 12:00:00 -0700
+                                                                                
+qt2.2 (2:2.2.1-9) unstable; urgency=low
+
+  * More opengl cleanup
+  * Removing i18n patches as they are causing problems in some apps
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 01 Nov 2000 23:00:00 -0700
+
+qt2.2 (2:2.2.1-8) unstable; urgency=low
+ 
+  * Re-adding opengl support until another solution is created
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 23 Oct 2000 16:28:00 -0700
+
+qt2.2 (2:2.2.1-7) unstable; urgency=low
+ 
+  * Round 42..heh...let's try the png fix again
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 18 Oct 2000 23:54:00 -0700
+                                                                                
+qt2.2 (2:2.2.1-6) unstable; urgency=low
+ 
+  * Hopefully fix png image viewing crashing
+  * adding in links for /usr/lib/qt2/man and /usr/lib/qt2/doc
+  * Fixing compression of html files
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 18 Oct 2000 00:15:00 -0700
+                                                                                
+qt2.2 (2:2.2.1-5) unstable; urgency=low
+ 
+  * Minor dependency fix for libqt2.2-dev's perl necessesity
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 14 Oct 2000 01:00:00 -0700
+
+qt2.2 (2:2.2.1-4) unstable; urgency=low
+ 
+  * Ok, I'm not sure what i did but somehow the i18n patches missed getting
+    applied when I updated the source.  Re-Applying them.  (Closes: #74713)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 13 Oct 2000 23:30:00 -0700
+
+qt2.2 (2:2.2.1-3) unstable; urgency=low
+ 
+  * Putting includes for examples into qt2.2-doc package (Closes: #74479)
+  * adding in some build options recommended by upstream that will reduce
+    the amount of memory used by apps linked against qt as well as reduce
+    the size of the resulting library significantly
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 11 Oct 2000 02:30:00 -0700
+                                                                                
+qt2.2 (2:2.2.1-2) unstable; urgency=low
+ 
+  * More build cleanup
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 08 Oct 2000 03:45:00 -0700
+
+qt2.2 (2:2.2.1-1) unstable; urgency=low
+ 
+  * Including new version of upstream source code (they buggered something)
+  * Applying i18n patches for 2.2.1
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 07 Oct 2000 22:00:00 -0700
+                                                                                
+qt2.2 (2:2.2.1-0) unstable; urgency=low
+ 
+  * New upstream version
+  * Building with thread support turned on (Closes: #72994)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 05 Oct 2000 20:00:00 -0700
+                                                                                
+qt2.2 (2:2.2.0-20000906-9) unstable; urgency=low
+
+  * Fixing up some dependencies and build-depends
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 26 Sep 2000 17:30:00 -0700
+
+qt2.2 (2:2.2.0-20000906-8) unstable; urgency=low
+
+  * Appling font patch to fix infinate loop and XFree4 (Closes: #72374)
+  * Fixing /usr/include/qt after removing alternatives
+  * Adding in a conflict for libqt1g-dev
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 24 Sep 2000 22:00:00 -0700
+
+qt2.2 (2:2.2.0-20000906-7) unstable; urgency=low
+ 
+  * Finally adding in a fix for dangling manpage (Closes: #67375)
+  * Getting rid of alternatives since this will be the only qt package
+  * Adding libmng support
+  * Fixing up build-depends
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 23 Sep 2000 00:30:00 -0700
+
+qt2.2 (2:2.2.0-20000906-6) unstable; urgency=low
+ 
+  * More cleanup of build process to better handle mergetr and msg2qm
+  * Should fix problem with mesa linking (Closes: #71829)
+  * Applying m17n patches (Closes: #71820)
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 18 Sep 2000 17:30:00 -0700
+
+qt2.2 (2:2.2.0-20000906-5) unstable; urgency=low
+ 
+  * Fixing problem with missing mergetr and msg2qm
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 12 Sep 2000 09:00:00 -0700
+
+qt2.2 (2:2.2.0-20000906-4) unstable; urgency=low
+
+  * Building against utahglx instead of mesa to get around hardcoded Mesa
+    items
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 10 Sep 2000 19:00:00 -0700
+
+qt2.2 (2:2.2.0-20000906-3) unstable; urgency=low
+
+  * Fixing src -> sub-src problem in rules file (should help alpha build)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sat, 09 Sep 2000 15:15:00 -0700
+
+qt2.2 (2:2.2.0-20000906-2) unstable; urgency=low
+ 
+  * Removing designer build pieces
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 08 Sep 2000 00:15:00 -0700
+
+qt2.2 (2:2.2.0-20000906-1) unstable; urgency=low
+ 
+  * Working out build issues
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 07 Sep 2000 15:00:00 -0700
+
+qt2.2 (2:2.2.0-20000906-0) unstable; urgency=low
+
+  * New upstream stable release 
+  * Includes designer and is under a dual license. QPL and GPL
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 06 Sep 2000 07:45:00 -0700
+
+qt2.2-copy (2:2.2.0-20000821-0.3) unstable; urgency=low
+
+  * Building other tools (mergetr, msg2qm, qconfig)
+  * removing replace/conflict with libqt2.1 
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 05 Sep 2000 18:00:00 -0700
+
+qt2.2-copy (2:2.2.0-20000821-0.2) unstable; urgency=low
+
+  * Fixing library issues when building designer
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Fri, 01 Sep 2000 17:00:00 -0700
+
+qt2.2-copy (2:2.2.0-20000821-0.1) unstable; urgency=low
+ 
+  * Updating version number to be higher than Debian one
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 28 Aug 2000 06:00:00 -0700
+                                                                                
+qt2.2-copy (2:2.2.0-20000821-0) unstable; urgency=low
+
+  * New upstream CVS version
+  * Providing designer 
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 21 Aug 2000 18:00:00 -0700
+
+qt2.2-copy (2:2.2.0-1.copy.1) unstable; urgency=low
+ 
+  * New upstream beta version
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 20 Aug 2000 00:30:00 -0700      
+
+qt2.2-beta1 (2:2.2.0-0.beta1.0) unstable; urgency=low
+
+  * New upstream beta version
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 10 Aug 2000 02:30:00 -0700
+
+qt2.1 (2:2.1.0-1.1) unstable; urgency=low
+ 
+  * Upping the epoch number since the upstream version changes made 2.1.0
+    full release lower than the 2.1.0beta
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 18 May 2000 08:30:00 -0700
+
+qt2.1 (2.1.0-1.1) unstable; urgency=low
+ 
+  * Fixing qt_windows/mac.h include errors
+  * Adding in build depends
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 15 May 2000 02:30:00 -0700
+
+qt2.1 (2.1.0-1) unstable; urgency=low
+
+  * Applying patches for international support issues provided by
+    Oliver Bolzer
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 25 Apr 2000 17:45:00 -0700
+
+qt2.1 (2.1.0-0) unstable; urgency=low
+
+  * New upstream version
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 19 Apr 2000 05:30:00 -0700
+
+qt2.1beta3 (2.1.0beta3-0) unstable; urgency=low
+
+  * New upstream beta version
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 22 Mar 2000 18:00:00 -0700
+
+qt2.1beta2 (2.1.0beta2-1.1) unstable; urgency=low
+ 
+  * Applying qsortedlist.h patch 
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 07 Mar 2000 10:30:00 -0700
+
+qt2.1beta2 (2.1.0beta2-1) unstable; urgency=low
+ 
+  * New upstream beta version
+  * Fixing prerm script
+ 
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 06 Mar 2000 00:30:00 -0700
+                                                                          
+qt2.1 (2.1.0-0.beta1.0) unstable; urgency=medium
+
+  * New upstream beta version 
+  * Taking over maintainership temporarily with permission from Heiko
+  * Fixing alternatives issue (Closes: #56997)
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 28 Feb 2000 18:00:00 -0700
+
+qt2 (2.0.2-0.7) unstable; urgency=medium
+
+  * Taking out old qt1g confliction (Closes: #54414)
+  * Fixing problem with overwriting moc man pages (Closes: #53067)
+  * NMU
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 09 Jan 2000 12:15:23 -0700
+
+qt2 (2.0.2-0.6) unstable; urgency=medium
+
+  * Compressing man pages (Closes: #51336)
+  * Fixing self dependencies issue with resident qt libs
+  * Adding in an alternative for -dev's libqt.so
+  * NMU
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Tue, 30 Nov 1999 23:15:23 -0400
+
+qt2 (2.0.2-0.5) unstable; urgency=medium
+
+  * Adding in a conflict for qt1g..sorry.. (Closes #49507, #49347, #48827)
+  * NMU
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 03 Nov 1999 00:15:23 -0400
+
+qt2 (2.0.2-0.4) unstable; urgency=medium
+
+  * Creating an alternative for /usr/include/qt
+  * NMU
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Wed, 03 Nov 1999 00:15:23 -0400
+
+qt2 (2.0.2-0.3) unstable; urgency=medium
+
+  * Changing pathing for doc-base (Closes: #47583)
+  * Setting sections properly in control file
+  * NMU
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 1 Nov 1999 00:15:23 -0400
+
+qt2 (2.0.2-0.2) unstable; urgency=medium
+
+  * Fixing self dependency (Closes: #48254)
+  * Including msg2qm and mergetr (Closes: #47897)
+  * Creating an alternative for moc between qt1 and qt2 (Closes: #44844)
+  * Linking /usr/lib/qt2/include to /usr/include/qt2
+  * Fixing up post/pre scripts to work with debian policy (doc linking stuff)
+  * NMU
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Mon, 25 Oct 1999 08:15:23 -0400
+
+qt2 (2.0.2-0.1) unstable; urgency=medium
+
+  * New upstream version
+  * Changing package names to meet policy (Closes: 46229)
+  * NMU
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Thu, 07 Oct 1999 08:15:23 -0400
+
+qt2 (2.0.1-0.1) unstable; urgency=medium
+
+  * Rebuild with new gcc (2.95) libs
+  * Changing requirement for -doc from recommends to suggests
+  * Migrating to /usr/share/doc
+  * NMU for the above changes
+
+ -- Ivan E. Moore II <rkrusty@debian.org>  Sun, 12 Sep 1999 14:15:23 -0400
+
+qt2 (2.0.1-0) unstable; urgency=medium
+
+  * bug fix release (new upstream)
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Tue, 20 Jul 1999 09:15:23 +0200
+
+qt2 (2.00-0) unstable; urgency=medium
+
+  * final release
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Mon, 28 Jun 1999 18:08:19 +0200
+
+qt2beta (2.00beta3-19990619-1) unstable; urgency=low
+
+  * new upstream
+  * included below mentioned changes from J.M. Dassen
+  * included extensions: imageio, opengl, xt
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Sat, 19 Jun 1999 13:14:36 +0200
+
+qt2beta (2.0-19990516-2.1) unstable; urgency=low
+
+  * UNRELEASED.
+  * Bumped Standards-Version.
+  * [debian/control] Updated descriptions.
+  * [debian/rules] Strengthened 'clean' to produce better diffs.
+  * [src/Makefile.in] Disabled building of the libraries in "3rdparty" and
+    make use of the Debian libpng and libz packages instead.
+  * [debian/TODO] New.
+  * [debian/shlibs-dbg] Updated.
+  * Added doc-base support.
+  * Fixed a number of lintian complaints:
+    * [debian/control] Section "x11", not "main/x11".
+    * [debian/rules] Install changelogs.
+    * [debian/rules] Correct permission of documentation files.
+    * [debian/rules] Don't install LICENSE.QPL; it's in the copyright file
+      already.
+    * [debian/copyright.in] License is in LICENSE.QPL in the source
+      distribution.
+
+ -- J.H.M. Dassen (Ray) <jdassen@wi.LeidenUniv.nl>  Fri, 21 May 1999 18:59:25 +0200
+
+qt2beta (2.0-19990516-2) unstable; urgency=low
+
+  * skipping the man page steps entirely, since
+    the source doesn't seem to contain manpages, does it?
+  * built on a potato system
+    Thanks to: "Ivan E. Moore II" <rkrusty@tdyc.com>
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Mon, 17 May 1999 13:01:18 -0700
+
+qt2beta (2.0-19990516-1) unstable; urgency=low
+
+  * new checkout.
+  * gif enabled
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Mon, 10 May 1999 15:57:05 +0200
+
+qt2beta (2.0-19990406-1) unstable; urgency=low
+
+  * new checkout.
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Tue,  6 Apr 1999 09:07:14 +0200
+
+qt2beta (2.0-19990316-1) unstable; urgency=low
+
+  * new checkout.
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Tue, 16 Mar 1999 23:35:59 +0100
+
+qt2beta (2.0-19990308-1) unstable; urgency=low
+
+  * new checkout.
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Tue,  9 Mar 1999 00:03:32 +0100
+
+qt2beta (2.0-19990302-1) unstable; urgency=low
+
+  * new upstream beta ... (for coolo@kde.org)
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Tue,  2 Mar 1999 16:08:30 +0100
+
+qt1-snapshot (1.39.19980414-2) unstable; urgency=low
+
+  * insert the correct place (/usr/lib/qt1-snapshot/bin/moc)
+    of moc into the example Makefiles.
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Thu, 16 Apr 1998 17:45:00 +0200
+
+qt1-snapshot (1.39.19980414-1) unstable; urgency=low
+
+  * new upstream
+  * can now coexist with qt1
+  * for further information read  /usr/doc/qt1-snapshot/README.Debian
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Wed, 15 Apr 1998 22:41:36 +0200
+
+qt1 (1.39.19980406-2) unstable; urgency=low
+
+  * added the /usr/lib/qt dir w/ two symlinks
+    -> /usr/include and ->/usr/X11R6/lib
+    to make the QTDIR approach work (now
+    you can set QTDIR=/usr/lib/qt)
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Wed,  8 Apr 1998 11:18:16 +0200
+
+qt1 (1.39.19980406-1) unstable; urgency=low
+
+  * new upstream, used to compile qtscape
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Tue,  7 Apr 1998 11:22:02 +0200
+
+qt1 (1.33-5) frozen; urgency=low
+
+  * correct include and lib dir for the mesa stuff
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Mon,  6 Apr 1998 11:13:40 +0200
+
+qt1 (1.33-4) frozen; urgency=low
+
+  * next try to upload it.  Build with mesa2g-dev
+    instead of the libc5 mesa libs.
+  * /usr/doc/example/qt-doc removed (#16921)
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Sun,  5 Apr 1998 13:58:13 +0200
+
+qt1 (1.33-3) frozen; urgency=low
+
+  * shlibs files now mention the current verion of libqt
+  * include libqgl (#16942, #14410)
+  * include tutorial in qt-doc
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Fri, 27 Mar 1998 13:07:30 +0100
+
+qt1 (1.33-2) frozen; urgency=medium
+
+  * dependency on xlib6 removed (#15905)
+  * include all .html files (#11567)
+  * hopefully lintian proof
+  * used the debhelper tools
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Tue, 24 Mar 1998 23:30:38 +0100
+
+qt1 (1.33-1) unstable; urgency=medium
+
+  * new upstream
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Mon, 23 Mar 1998 20:06:31 +0100
+
+qt1 (1.31-1.3) unstable; urgency=low
+
+  * -1.1 is not processed. maybe a new upload will work ?
+  * non-maintainer release by Andreas Jellinghaus <aj@debian.org>.
+
+ -- Andreas Jellinghaus <aj@debian.org>  Tue, 14 Oct 1997 10:47:14 +0200
+
+qt1 (1.31-1.1) unstable; urgency=low
+
+  * libc6 version.
+  * non-maintainer release by Andreas Jellinghaus <aj@debian.org>.
+
+ -- Andreas Jellinghaus <aj@debian.org>  Tue, 14 Oct 1997 10:47:14 +0200
+
+qt1 (1.31-1) unstable; urgency=medium
+
+  * new upstream release
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Mon, 13 Oct 1997 08:55:58 +0200
+
+qt1 (1.30-1) unstable; urgency=medium
+
+  * new upstream release
+  * changes: examples/tetris/Makefile clean target changed to
+    remove the *.moc file too
+  * src/moc/Makefile touches y.tab.h after cleanup since the
+    original source from troll tech contains it too (but
+    is useless)
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Tue, 30 Sep 1997 22:58:40 +0200
+
+qt1 (1.2.1-1) stable unstable non-free; urgency=medium
+
+  * new upstream release (Bugfix only!)
+
+ -- Heiko Sclittermann <heiko@lotte.sax.de>  Tue, 12 Aug 1997 21:26:13 +0200
+
+qt1 (1.2-5) frozen non-free; urgency=low
+
+  * set the new moc location in the examples and
+    tutorial makefiles.
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Tue, 29 Apr 1997 12:09:03 +0200
+
+qt1 (1.2-4) frozen non-free; urgency=low
+
+  * shlibs file lists version 1.2, since applications compiled
+    agains 1.2 doesn't work with < 1.2
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Fri, 25 Apr 1997 20:04:04 +0200
+
+qt1 (1.2-3) non-free; urgency=low
+
+  * doc no longer depends on the library/binary package,
+    it only suggests it
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Mon, 21 Apr 1997 16:23:49 +0200
+
+qt1 (1.2-2) non-free; urgency=low
+
+  * moc goes to /usr/bin instead of /usr/X11R6/bin
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Thu, 17 Apr 1997 11:49:24 +0200
+
+qt1 (1.2-1) non-free; urgency=medium
+
+  * new upstream version
+  * bug8432 fixed: dependency on xlib6
+  * New include dir is /usr/X11R6/include/qt (according to Xm, XmCxx, ...)
+  * bug8449 fixed: (suggestion) symlink
+        /usr/include/qt -> /usr/X11R6/include/qt  (shouldn't do
+        to much harm)
+  * bug8507/8184 fixed: symlink in example dir
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Fri, 11 Apr 1997 12:46:12 +0200
+
+qt1 (1.1-2) non-free; urgency=low
+
+  * optional instead of extra ....
+  * correctly replace old qt0-doc and old qt0-dev with
+    qt-doc resp. qt-dev
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Fri, 28 Feb 1997 17:08:02 +0100
+
+qt1 (1.1-0) non-free; urgency=medium
+
+  * new upstream release out for about 3 months
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Wed, 12 Feb 1997 09:18:40 +0100
+
+qt1 (1.0-3) contrib; urgency=low
+
+  * should appear in non-free now
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Wed, 11 Dec 1996 19:02:08 +0100
+
+qt1 (1.0-2) frozen unstable; urgency=low
+
+  * nothing new unless distribution code and debian version
+    number -- I hope this will finally place all *deb files
+    in place on master.
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Thu, 5 Dec 1996 09:40:14 +0100
+
+qt1 (1.0-1) unstable; urgency=low
+
+  * new upstream version
+  * dev and doc package are now installed as qt-dev and qt-doc,
+    since only one qt-dev/qt-doc may exist at any time (but
+    qt may exist as qt0 and qt1)
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Fri, 18 Oct 1996 13:32:24 +0200
+
+qt0 (0.99-1) unstable; urgency=low
+
+  * new upstream version
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Mon, 9 Sep 1996 13:22:03 +0200
+
+qt0 (0.98-1) unstable; urgency=low
+
+  * initial release
+
+ -- Heiko Schlittermann <heiko@lotte.sax.de>  Sun, 8 Sep 1996 13:40:31 +0200
--- qt-x11-free-3.3.8b.orig/debian/qt3-doc.links
+++ qt-x11-free-3.3.8b/debian/qt3-doc.links
@@ -0,0 +1,2 @@
+/usr/share/man/man3 /usr/share/qt3/doc/man/man3
+/usr/share/qt3/doc/html /usr/share/doc/qt3-doc/html
--- qt-x11-free-3.3.8b.orig/debian/qt3-doc.doc-base
+++ qt-x11-free-3.3.8b/debian/qt3-doc.doc-base
@@ -0,0 +1,11 @@
+Document: qt3-doc
+Title: Qt Reference Documentation
+Author: Troll Tech
+Abstract: Qt (TM) is a multi-platform C++ GUI toolkit. It is a product of
+ Troll Tech. It is supported on all major variants of Microsoft Windows and
+ Unix/X Windows. 
+Section: Apps/Programming
+
+Format: HTML
+Index: /usr/share/doc/qt3-doc/html/index.html
+Files: /usr/share/doc/qt3-doc/html/*.html
--- qt-x11-free-3.3.8b.orig/debian/qt3-assistant.postinst
+++ qt-x11-free-3.3.8b/debian/qt3-assistant.postinst
@@ -0,0 +1,8 @@
+#!/bin/sh 
+
+set -e
+
+update-alternatives --install \
+	/usr/bin/assistant assistant "/usr/bin/assistant-qt3" "45" \
+
+#DEBHELPER#
--- qt-x11-free-3.3.8b.orig/debian/qt3-linguist.menu
+++ qt-x11-free-3.3.8b/debian/qt3-linguist.menu
@@ -0,0 +1,6 @@
+?package(qt3-linguist):\
+        needs="x11"\
+        section="Applications/Programming"\
+        hints="KDE"\
+        title="Qt3 Linguist"\
+        command="/usr/bin/linguist-qt3"
--- qt-x11-free-3.3.8b.orig/debian/qt3-dev-tools.links
+++ qt-x11-free-3.3.8b/debian/qt3-dev-tools.links
@@ -0,0 +1,7 @@
+/usr/share/qt3/mkspecs/linux-g++ /usr/share/qt3/mkspecs/default
+/usr/bin/qmake-qt3 /usr/share/qt3/bin/qmake
+/usr/bin/lupdate-qt3 /usr/share/qt3/bin/lupdate
+/usr/bin/lrelease-qt3 /usr/share/qt3/bin/lrelease
+/usr/bin/uic-qt3 /usr/share/qt3/bin/uic
+/usr/bin/moc-qt3 /usr/share/qt3/bin/moc
+/usr/bin/qembed /usr/share/qt3/bin/qembed
--- qt-x11-free-3.3.8b.orig/debian/qt3-assistant.install
+++ qt-x11-free-3.3.8b/debian/qt3-assistant.install
@@ -0,0 +1,3 @@
+usr/bin/assistant
+usr/share/qt3/doc/html/assistant*html
+usr/share/qt3/doc/html/assistant*dcf
--- qt-x11-free-3.3.8b.orig/debian/qt3-dev-tools.prerm
+++ qt-x11-free-3.3.8b/debian/qt3-dev-tools.prerm
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+  upgrade) ;;
+  remove|failed-upgrade|deconfigure)
+    update-alternatives --remove moc "/usr/bin/moc-qt3"
+    update-alternatives --remove uic "/usr/bin/uic-qt3"
+    update-alternatives --remove lupdate "/usr/bin/lupdate-qt3"
+    update-alternatives --remove lrelease "/usr/bin/lrelease-qt3"
+    update-alternatives --remove qmake "/usr/bin/qmake-qt3"
+    ;;
+esac
+
+#DEBHELPER#
--- qt-x11-free-3.3.8b.orig/debian/libqt3-mt-dev.links
+++ qt-x11-free-3.3.8b/debian/libqt3-mt-dev.links
@@ -0,0 +1,7 @@
+/usr/lib/libqt-mt.la /usr/share/qt3/lib/libqt-mt.la
+/usr/lib/libqui.prl /usr/share/qt3/lib/libqui.prl
+/usr/lib/libqui.so.1.0.0 /usr/share/qt3/lib/libqui.so
+/usr/lib/libqt-mt.prl /usr/share/qt3/lib/libqt-mt.prl
+/usr/lib/libqt-mt.so.3.3.8 /usr/share/qt3/lib/libqt-mt.so
+/usr/include/qt3 /usr/share/qt3/include
+/usr/lib/qt3/plugins /usr/share/qt3/plugins
--- qt-x11-free-3.3.8b.orig/debian/qt3-dev-tools-compat.install
+++ qt-x11-free-3.3.8b/debian/qt3-dev-tools-compat.install
@@ -0,0 +1,6 @@
+usr/bin/qt20fix
+usr/bin/qtrename140
+usr/bin/qm2ts
+usr/bin/mergetr
+usr/bin/findtr
+usr/bin/msg2qm
--- qt-x11-free-3.3.8b.orig/debian/qt3-linguist.links
+++ qt-x11-free-3.3.8b/debian/qt3-linguist.links
@@ -0,0 +1 @@
+/usr/bin/linguist-qt3 /usr/share/qt3/bin/linguist
--- qt-x11-free-3.3.8b.orig/debian/README.Debian
+++ qt-x11-free-3.3.8b/debian/README.Debian
@@ -0,0 +1,277 @@
+Qt for Debian README
+--------------------
+
+1. Preface
+
+This README is intended to give developers and users exact information
+about how the qt-x11-free package provided by TrollTech AS has been packaged
+for Debian in case you either want to faciliate it for development 
+of applications and libraries or plugins using the Qt class library. With 
+qt-x11-3.1.1, the Debian packages have been massively restructured to get 
+the most out of theoriginal Qt package and spit the contents up into 
+several packages so that they make the most sensefor several groups of 
+users; developers, application users, translators of Qt-based 
+applications and Debian packagers who are packaging applications developed 
+with Qt.2. 
+
+2. General Overview
+
+As Qt is a huge package that contains a complete environment for 
+developers, it needs to be split up into several packages that make it 
+easier for everyone else to handle it and not to require 
+unnecessary disk space for end-users. Additionally, Qt can be configured 
+in several ways - and therefore also used in several ways. Qt development 
+usually requires the environment variable QTDIR. As Debian is placing 
+libraries and header files in a quite specific filesystem order, this 
+usually breaks setting a single environment variable to meet the 
+requirements of packages. Therefore, symlinks are used to set up the system 
+to meet both, the Debian filesystem standard and the QTDIR variable. All of 
+Qt (so the QTDIR path) is available in /usr/share/qt3. If you need to set 
+QTDIR, do export QTDIR=/usr/share/qt3
+
+As far as the common build configuration goes, we note explicitely that the 
+Debian package of Qt will in very rare cases break the compilation (most 
+likely the linking) of applications on Debian which use Qt, in particular 
+utilizing styles in an incorrect way by deriving from one of the styles 
+that ship with Qt. In case you are a Debian packager and encounter 
+problems, contact Debian Qt/KDE Maintainers (debian-qt-kde@lists.debian.org).
+We will tell you why things don't work and what you should communicate on 
+with the programmers of your application that you are packaging. The build 
+configuration generally is intended to provide a Qt version that is as 
+small as possible in terms of the memory size it requires. Therefore, 
+everything inside Qt that can be compiled as plugins has been compiled that 
+way. This includes: 
+
+- imageformats: jpeg and mng - codecs (for languages like arab, japanese 
+  etc provided with Qt) 
+- sql drivers for databases (MySQL, ODBC and PostgreSQL)
+
+The only exception is the imageformat png which has been compiled built-in 
+due to the fact that there is literally no program that uses no icons at 
+all and icons are to be used preferrably in png format. The plugins are all 
+located under /usr/lib/qt3/plugins. This is also the install location you
+should choose as a package maintainer for 
+qt-plugins so the user doesn't have to customize his library path for 
+loading Qt plugins. The only exception is that KDE delivers a set of Qt 
+plugins as well (mainly styles and designer plugins); those are placed in 
+/usr/lib/kde3/plugins. 
+
+QMotif Extension: As this code is only available in commercial environments 
+(and produces a static library libqmotif.a anyway that those commercial 
+applications have to be linked against in addition to Qt), we left out all 
+header files of the libqt3-headers package that are belonging to this 
+QMotif extension.
+
+Oracle Database driver, Sybase & Microsoft SQL Server driver: Those drivers 
+are only available in a commercial version of Qt due to license 
+incompatibilities with the GPL. If you need to faciliate those drivers, 
+please visit http://www.trolltech.com and have a read at 
+http://doc.trolltech.com/3.0/sql-driver.html.
+  
+3. Packages (End-User) 
+
+The Qt built has been split up into several packages that allow for easy 
+installation for all types of users. The End-user usually only requires to 
+have the following packages installed to run an application that links 
+against Qt:
+
+Threaded version:libqt3-mt (the library libqt-mt.so.* and libqui.so.* for 
+loading designer-made user interfaces at runtime).
+
+Optionally depending on the program's requirements:
+
+libqt3-mt-odbc
+libqt3-mt-mysql
+libqt3-mt-psql 
+
+In addition to the libraries, it may make sense to install the program 
+qtconfig to customize the look and behaviorof Qt programs. If you have KDE 
+installed, the KDE control center will take this task automatically in most 
+cases. qtconfig is available in the package qt3-qtconfig.
+
+Also, Qt programs can make use of the online-help tool that ships with Qt, 
+the Qt Assistant. The Assistant can be installed with the package 
+qt3-assistant.
+
+Qt Configuration files
+----------------------
+Qt programs most often use QSettings to store their information in configuration
+files. With Qt 3.2, the new option --sysconfdir has been introduced that allows
+us to use /etc/qt3 as the system-wide location where qt-program specific global
+configuration files can go. If you're a programmer that wants to get familiar with
+that, please look at the examples, documentation and the code in designer or
+assistant as well as qtconfig.
+
+4. Packages (Package maintainers)
+
+In addition to the library, a package maintainer will require an additional 
+set of packages to compile a package that requires Qt. Depending on the 
+version of the qt library, you will require a different set of packages; 
+the most common option should be to make your application link against the 
+multi-threaded version (-mt).Packages necessary for compiling Qt 
+applications from source:
+
+libqt3-mt-dev   (use libqt3-dev for linking against -lqt, this package only 
+                contains the .so files and the header file for libqui.so)
+
+libqt3-headers  (header files for libqt and libqt-mt)
+ 
+qt3-dev-tools  (this package contains the tools uic and moc as well as 
+qmake, required for building Qt applications) 
+
+If, however, you encounter an older program not to compile with this set 
+read the FAQ at the end of this document.
+
+5. Packages (Developers)
+
+In addition to the packages that packagers require, a developer usually 
+will require the Qt API documentationas well as tools like the assistant, 
+linguist or designer. However, you should be fine with installing the API 
+documentation that you can browse with a webbrowser, optionally with the 
+assistant. They are available in /usr/share/doc/qt3-doc/html.
+For a regular development environment, install qt3-designer and qt3-doc.
+
+For faciliating Qt's extended environment to write plugins for the Qt 
+Designer or extend the Designer as well as utilizing the Qt Assistant by 
+calling it from within your program, install qt3-apps-dev, which contains
+the static libraries and header files required for this functionality.
+
+For Embedded Developers, the program qvfb (Qt Virtual Frambuffer) and 
+makeqpf (embedded fonts tool)have been packaged into 
+qt3-dev-tools-embedded. For developers that work on migrating their program 
+from any Qt version prior to Qt 3.x to the Qt 3.x platform you will find 
+additional tools in the qt3-dev-tools-compat.
+
+For using the QTranslator class and where to find the qm-file for qt as 
+well as where to place your translations,see the next section.
+
+If your program doesn't compile with those settings in case you have 
+started your project with Qt 1.x or 2.x, please read the FAQ section at the 
+end of this document.
+
+5. Packages (Translators)
+
+In order to translate a Qt program into any other language, the Qt 3 way to 
+do this is to let the developer create a ts-file containing the strings 
+that the program exposes on the user interface. The tools to create the 
+ts-file and to create the final qm (Q-message binary) file, lupdate and 
+lrelease, are included in qt3-dev-tools.The single translator that only 
+gets provided the ts file and has to return a translated ts file, it 
+is absolutely enough to install qt3-linguist; the package qt3-assistant can 
+be installed to access the online-help for the Qt Linguist itself.
+In case you're converting an application using Qt prior to Qt 3, you may 
+want to uitilize the qt3-dev-tools-compat which include the necessary tools 
+to convert older qm files to the new ts file standard.
+
+Locations of message translations: 
+
+Qt ships with a set of translations for the strings used inside Qt. Those 
+translations will be installed into /usr/share/qt3/translations (qm files 
+only), which equals $QTDIR/translations respectively 
+qInstallPath() + QString( "/translations" ). 
+
+The configure option --translationdir has been set to /usr/share/qt3/translations
+accordingly since it was introduced in Qt 3.2. 
+
+To correctly enable your program to display the translations to the Qt 
+library and to load the translation of the program itself, we currently 
+suggest to either install your translations along with any other data files 
+into/usr/share/<appname>/, translation files into the subdirectory 
+translations (that is /usr/share/<appname>/translations) The code that your 
+application should use to load the Qt translation will have to look like 
+the following:    
+
+int main( int argc, char **argv )
+    {
+        QApplication app( argc, argv );
+
+        // translation file for Qt
+        QTranslator qt( 0 );
+        qt.load( QString( "qt_" ) + QTextCodec::locale(), qInstallPath() + 
+        QString( "/translations" );
+        app.installTranslator( &qt );
+
+        // translation file for application strings
+        QTranslator myapp( 0 );
+        myapp.load( QString( "myapp_" ) + QTextCodec::locale(), "." ); 
+        // use a substitue for $prefix/share/appname/translations here      
+        app.installTranslator( &myapp );
+
+6. Frequently Asked Questions
+
+Using Qt for Debian as a developer or packager 
+----------------------------------------------
+
+Q: I want to compile a source package that utilizes qmake to build the 
+Makefiles. What do I need to do to makeit work ?
+
+A: qmake requires two environment variables to be set, QTDIR and QMAKESPEC. 
+To make it work, do
+export QTDIR=/usr/share/qt3
+export QMAKESPEC=linux-g++
+
+Then run qmake -o Makefile <projectfile>.pro
+
+After that, the Makefile is correctly created to build your application on 
+Debian. As a packager, export thosetwo variables in the rules file before 
+calling qmake.
+
+Q: I have an application that when linking gives me symbol referencing 
+errors to Q*Style. Why does my applicationnot link correctly ?
+
+A: The author of the program is using the styles that ship with Qt directly 
+instead of using the QStylePlugin interface.If you are the author of the 
+program, change your program to use QStylePlugin. If you are a packager, 
+write to theauthor of the program that he is assuming that the styles 
+shipped with Qt are built-in to the library which is not the case on Debian 
+and that he please should fix this and use QStylePlugin.
+
+Q: Where are all the examples and tutorials ? And how do I build them ?
+
+A: Qt ships with examples and tutorials; so does the Linguist and Designer. 
+The tutorials and examples are compressed tarballs which you can unpack with 
+tar -zxvf into your home directory. Change into the qt3-examples directory
+and run the provided ./build-examples script. All Qt examples and tutorials,
+including those for designer and the linguist, will be compiled. You will
+notice however, that those examples that inherit from style classes which
+are not built-in into Qt but configured as a plugin will not compile due
+to the fact that they can't link to the Qt library. 
+
+Q: I'm writing a pure Qt application and I want to ship it with a default 
+configuration file. Where does that global configuration file go if I make 
+use of the QSettings class ? 
+
+A: With qt-3.2.0, Trolltech has introduced a configure option to Qt called
+--sysconfdir which we intentionally set to /etc/qt3 similar to /etc/kde3 for
+KDE programs. Install your application's system wide configuration file
+to /etc/qt3. 
+
+Q: I'm compiling a program and I have a compile error due to a missing 
+include. Why isn't that include not present in the Debian packages anymore 
+? It compiled with older versions of Debian packages of Qt !
+
+A: This may be due to two reasons: either the package still uses the old 
+includes from Qt 1.x or 2.x that got basically renamed by Trolltech due to 
+the naming convention. The filenames are now all following the scheme 
+
+ClassName -> classname.h. 
+
+Therefore, if you are the developer of the affected program, change your 
+sources according to this scheme. Qt ships with two tools, qt20fix and 
+qtrename140, to help developers migrate their API to the Qt 3 version, 
+which can help you in the transition upgrade to Qt 3.
+
+If you are affected by this as a packager, notify upstream to fix those 
+problems and in the meanwhile use libqt3-compat-headers as a build 
+dependency which includes the compatibility headers that just include the 
+right files from the new API again.
+
+Q: I have a question not covered by this FAQ and README file. Who should I 
+turn to ?
+
+A: Please turn to Debian Qt/KDE Maintainers (debian-qt-kde@lists.debian.org) 
+for any questions regarding Qt on Debian.
+
+ -- Ralf Nolden <nolden@kde.org>  Sun, 26 Jan 2003 20:39:19 +0100
+ -- Ralf Nolden <nolden@kde.org>  Mon,  1 Sep 2003 19:24:16 +0200
+ -- Modestas Vainius <modestas@vainius.eu> Fri, 22 Feb 2008 01:40:06 +0200
--- qt-x11-free-3.3.8b.orig/debian/libqt3-mt-ibase.install
+++ qt-x11-free-3.3.8b/debian/libqt3-mt-ibase.install
@@ -0,0 +1 @@
+usr/lib/qt3/plugins/sqldrivers/libqsqlibase.so
--- qt-x11-free-3.3.8b.orig/debian/qt3-qtconfig.install
+++ qt-x11-free-3.3.8b/debian/qt3-qtconfig.install
@@ -0,0 +1 @@
+usr/bin/qtconfig
--- qt-x11-free-3.3.8b.orig/debian/libqt3-mt.links
+++ qt-x11-free-3.3.8b/debian/libqt3-mt.links
@@ -0,0 +1,5 @@
+/usr/lib/libqui.so.1.0.0 /usr/lib/libqui.so.1 
+/usr/lib/libqui.so.1.0.0 /usr/share/qt3/lib/libqui.so.1
+/usr/lib/libqui.so.1.0.0 /usr/share/qt3/lib/libqui.so.1.0
+/usr/lib/libqt-mt.so.3.3.8 /usr/share/qt3/lib/libqt-mt.so.3
+/usr/lib/libqt-mt.so.3.3.8 /usr/share/qt3/lib/libqt-mt.so.3.3
--- qt-x11-free-3.3.8b.orig/debian/libqt3-mt-psql.install
+++ qt-x11-free-3.3.8b/debian/libqt3-mt-psql.install
@@ -0,0 +1 @@
+usr/lib/qt3/plugins/sqldrivers/libqsqlpsql.so
--- qt-x11-free-3.3.8b.orig/debian/control
+++ qt-x11-free-3.3.8b/debian/control
@@ -0,0 +1,282 @@
+Source: qt-x11-free
+Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
+Uploaders: Ana Beatriz Guerrero Lopez <ana@debian.org>, Sune Vuorela <debian@pusling.com>, Fathi Boudra <fabo@debian.org>, Modestas Vainius <modestas@vainius.eu>
+Build-Depends: debhelper (>= 5.0.31), quilt, libxext-dev (>= 4.3.0.dfsg.1-4), libxrandr-dev (>= 4.3.0.dfsg.1-4), libsm-dev (>= 4.3.0.dfsg.1-4), libxmu-dev (>= 4.3.0.dfsg.1-4), libice-dev (>= 4.3.0.dfsg.1-4), libx11-dev (>= 4.3.0.dfsg.1-4), libxt-dev (>= 4.3.0.dfsg.1-4), libxrender-dev, libxcursor-dev, libxinerama-dev, libxi-dev, zlib1g-dev, libjpeg62-dev, libmng-dev (>= 1.0.3), libpng12-dev | libpng12-0-dev, libfontconfig1-dev, libfreetype6-dev, libxft-dev, libiodbc2-dev (>= 3.51.2-4), libmysqlclient15-dev | libmysqlclient-dev, flex, libpq-dev, libaudio-dev, libcupsys2-dev, libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, libsqlite3-dev, firebird2.0-dev [i386 kfreebsd-i386 kfreebsd-amd64 knetbsd-i386 netbsd-i386 amd64 sparc powerpc] | firebird2-dev [i386 amd64 sparc powerpc]
+Section: libs
+Priority: optional
+Standards-Version: 3.7.3
+Homepage: http://trolltech.com
+Vcs-Browser: http://svn.debian.org/wsvn/pkg-kde/trunk/packages/qt-x11-free
+Vcs-Svn: svn://svn.debian.org/pkg-kde/trunk/packages/qt-x11-free
+
+Package: libqt3-mt
+Architecture: any
+Section: libs
+Replaces: qt3-tools (<< 2:3.0.2-20020306-1), libqt3-helper, libqt3, libqt3c102-mt
+Depends: ${shlibs:Depends}, fontconfig
+Recommends: libgl1-mesa-glx | libgl1, libglu1-mesa | libglu1, libxmu6 (>= 4.3.0.dfsg.1-4)
+Conflicts: libqt3c102-mt, libqui1-emb, libqt3c-mt
+Suggests: libqt3-mt-psql, libqt3-mt-mysql, libqt3-mt-odbc
+Description: Qt GUI Library (Threaded runtime version), Version 3
+ This is the Trolltech Qt library, version 3. It's necessary for
+ applications that link against the libqt-mt.so.3, e.g. all KDE3
+ applications.
+
+Package: libqt3-mt-mysql
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Replaces: libqt3-mysql (<= 2:3.1.1+cvs.20021220-1), libqt3c102-mt-mysql
+Conflicts: libqt3c102-mt-mysql, libqt3c-mt-mysql
+Description: MySQL database driver for Qt3 (Threaded)
+ This package contains the threaded MySQL plugin for Qt3. Install it if
+ you intend to use or write Qt programs that are to access a MySQL DB.
+
+Package: libqt3-mt-odbc
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Replaces: libqt3-odbc (<= 2:3.1.1+cvs.20021220-1), libqt3c102-mt-odbc
+Conflicts: libqt3c102-mt-odbc, libqt3c-mt-odbc
+Description: ODBC database driver for Qt3 (Threaded)
+ This package contains the threaded ODBC plugin for Qt3. Install it if
+ you intend to use or write Qt programs that are to access an ODBC DB.
+
+Package: libqt3-mt-psql
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Replaces: libqt3-psql (<= 2:3.1.1+cvs.20021220-1), libqt3c102-mt-psql
+Conflicts: libqt3c102-mt-psql, libqt3c-mt-psql
+Description: PostgreSQL database driver for Qt3 (Threaded)
+ This package contains the threaded PostgreSQL plugin for Qt3.
+ Install it if you intend to use or write Qt programs that are
+ to access a PostgreSQL DB.
+
+Package: libqt3-mt-ibase
+Architecture: i386 kfreebsd-i386 kfreebsd-amd64 knetbsd-i386 netbsd-i386 amd64 sparc powerpc
+Section: libs
+Depends: ${shlibs:Depends}
+Conflicts: libqt3c102-mt-ibase
+Replaces: libqt3c102-mt-ibase
+Description: InterBase/FireBird database driver for Qt3 (Threaded)
+ This package contains the threaded InterBase/FireBird plugin
+ for Qt3. Install it if you intend to use or write Qt programs
+ that are to access an InterBase/FireBird DB.
+
+Package: libqt3-mt-sqlite
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Conflicts: libqt3c102-mt-sqlite
+Replaces: libqt3c102-mt-sqlite
+Description: SQLite database driver for Qt3 (Threaded)
+ This package contains the threaded SQLite plugin for Qt3. Install
+ it if you intend to use or write Qt programs that are to access an
+ SQLite DB.
+
+Package: libqt3-mt-dev
+Architecture: any
+Section: libdevel
+Replaces: libqt-mt-dev, libqt3-dev, libqt3-helper, libqt3-headers (<= 3:3.1.1-3), libqt3-emb (<= 3:3.0.3-1)
+Depends: libxext-dev (>= 4.3.0.dfsg.1-4), libxrandr-dev (>= 4.3.0.dfsg.1-4), libsm-dev (>= 4.3.0.dfsg.1-4), libxmu-dev (>= 4.3.0.dfsg.1-4), libice-dev (>= 4.3.0.dfsg.1-4), libx11-dev (>= 4.3.0.dfsg.1-4), libxt-dev (>= 4.3.0.dfsg.1-4), libxrender-dev, libxcursor-dev, libxinerama-dev, libxi-dev, zlib1g-dev, libjpeg62-dev, libmng-dev (>= 1.0.3), libpng12-dev | libpng12-0-dev, libfontconfig1-dev, libfreetype6-dev, libxft-dev, libaudio-dev, libcupsys2-dev, libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, libc6-dev, libqt3-mt (= ${binary:Version}), libqt3-headers (= ${binary:Version}), qt3-dev-tools (= ${binary:Version})
+Conflicts: libqt-mt-dev, libqt3-emb (<= 3:3.0.3-1), libqt3-dev
+Recommends: libqt3-compat-headers
+Suggests: libqt3-i18n, qt3-doc
+Description: Qt development files (Threaded)
+ Qt is a C++ class library optimized for graphical user interface
+ development. This package contains the libqt-mt.so symlink, necessary
+ for building threaded Qt applications as well as the libqui.so symlink
+ and the necessary header files for libqui.so. (See README.Debian and
+ the Qt Documentation for instructions on libqui.so)
+ .
+ WARNING: If you plan to build some older Qt3 applications, you will
+ most probably have to install the libqt3-compat-headers package. It
+ contains all the headers which are not part of the official Qt3 API
+ anymore but which are still used by some programs. So if you encounter
+ problems with missing header files, please install this package first
+ before you send a bugreport.
+
+Package: libqt3-headers
+Architecture: any
+Section: devel
+Recommends: libqt3-mt-dev
+Replaces: libqt3-mt-dev, libqt3-dev, libqt3-plugins-headers
+Description:  Qt3 header files
+ This package contains all header files for libqt and libqt-mt which come
+ with Qt3. If you want to compile or develop programs which use Qt3, you
+ have to install this package.
+
+Package: libqt3-compat-headers
+Architecture: any
+Section: devel
+Depends: libqt3-headers (= ${binary:Version})
+Recommends: libqt3-mt-dev
+Replaces: libqt3-mt-dev (<= 3:3.1.1-2), libqt3-dev (<= 3:3.1.1-2), libqt3-headers (<= 3:3.1.1-2)
+Description: Qt 1.x and 2.x compatibility includes
+ This package contains header files that are intended for build
+ compatibility for applications that build with Qt3 but still use
+ deprecated includes. It is meant as an intermediate solution and
+ these header files are not part of the official Qt3 API.
+ All sourcecode that is still using the headers of this package is
+ subject to be changed to use the new header files which are in
+ libqt3-headers.
+
+Package: qt3-dev-tools
+Architecture: any
+Section: devel
+Depends: ${shlibs:Depends}
+Recommends: libqt3-mt-dev
+Replaces: qt3-tools, libqt3-dev, libqt3-mt-dev, qt3-doc (<= 3:3.1.1-2)
+Conflicts: libqt-dev (<< 3:2.3.2-10), uic (<= 3:2.3.2-9)
+Description: Qt3 development tools
+ This package contains all tools that are necessary to build programs
+ that are written using Qt3. These are: qmake, uic and moc.
+ For Qt3 development, you most likely want to install this package.
+
+Package: qt3-designer
+Architecture: any
+Section: devel
+Depends: ${shlibs:Depends}
+Recommends: qt3-dev-tools
+Replaces: qt3-tools, libqt3-dev, libqt3-mt-dev, qt3-doc (= 3:3.3.4-8)
+Suggests: qt3-assistant, qt3-doc
+Conflicts: qt-designer (<= 3:2.3.2-9), qt-designer-doc
+Description: Qt3 Designer
+ The Qt Designer is a GUI design program that interactively lets you
+ construct user interfaces for the Qt library. Additionally it lets you
+ create whole project and works together with the database drivers
+ provided by Qt to create applications with easy database access through
+ Qt. The resulting user interface files can then be converted to
+ C++ classes using the uic commandline utility which is usually done
+ automatically for the developer with a project management with qmake
+ or automake.
+
+Package: qt3-apps-dev
+Architecture: any
+Section: devel
+Depends: libqt3-mt-dev
+Replaces: qt3-tools, libqt3-dev, libqt3-mt-dev
+Description: Qt3 Developer applications development files
+ This package is intended for developers who want to develop applications
+ using the additional static libraries that ship with the applications
+ included with Qt; the Qt Designer and the Qt Assistant.
+ It allows integrating additional enhancements into the Qt Designer
+ respectively faciliate the Qt Assistant from within your Qt application
+ to interactively call the Assistant for displaying online help that the
+ developer includes with his application.
+
+Package: qt3-linguist
+Architecture: any
+Section: devel
+Suggests: qt3-assistant
+Depends: ${shlibs:Depends}
+Replaces: qt3-tools, libqt3-dev, libqt3-mt-dev, qt3-doc (= 3:3.3.4-8)
+Description: The Qt3 Linguist
+ This package contains the Qt3 Linguist which provides translators a
+ tool perfect for translating any Qt-based application into other
+ languages and can be used and installed independently of any Qt
+ development files by the translator.
+
+Package: qt3-assistant
+Architecture: any
+Section: x11
+Depends: ${shlibs:Depends}, qt3-doc
+Replaces: qt3-tools, libqt3-dev, libqt3-mt-dev
+Description: The Qt3 assistant application
+ This package contains the Qt3 Assistant, an easy to use frontend for
+ the complete Qt3 documentation and serves as an online help viewer for
+ any Qt program that wants to give the usesr access to online help.
+ Within the Qt tools it is used as the help viewer for the online help
+ for the Qt3 Designer and Linguist as well as qmake and the Qt 3 API
+ documentation.
+ .
+ Developers of Qt Application who want to faciliate the Qt Assistant for online
+ help display should refer to the README.Debian file for libqt3-mt-dev and
+ the package qt3-apps-dev.
+
+Package: qt3-qtconfig
+Architecture: any
+Section: x11
+Depends: ${shlibs:Depends}
+Replaces: qt3-tools, libqt3-dev, libqt3-mt-dev
+Description: The Qt3 Configuration Application
+ The Qt Configuration program allows endusers to configure the look
+ and behavior of any Qt3 application. It is mostly only necessary
+ on systems which don't run KDE because the KDE control center already
+ covers this configuration automatically for the users Qt3 applications
+ according to his desktop settings in KDE. However, if you need to run
+ CJK-fonts or other non-latin scripts, you will most likely want to
+ install this package.
+
+Package: qt3-dev-tools-embedded
+Architecture: any
+Section: devel
+Recommends: libqt3-mt-dev
+Depends: ${shlibs:Depends}
+Replaces: qt3-tools, libqt3-dev, libqt3-mt-dev
+Description: Tools to develop embedded Qt applications
+ This package contains applications only suitable for developing
+ applications with Qt Embedded and/or Qtopia. It provides the QVFB
+ program for simulating an embedded device desktop as well as makeqpf
+ for converting fonts to embedded fonts suitable for being utilized
+ by Qt Embedded applications.
+
+Package: qt3-dev-tools-compat
+Architecture: any
+Section: devel
+Recommends: libqt3-mt-dev
+Depends: ${shlibs:Depends}
+Replaces: qt3-tools, libqt3-dev, libqt3-mt-dev
+Description: Conversion utilities for Qt3 development
+ This package contains some older Qt tools (namely qt20fix qtrename140,
+ qm2ts, mergetr, findtr and msg2qm). These tools are needed only by
+ application developers who need to migrate any Qt application written
+ for Qt 1.x or 2.x over to Qt 3.x. The purpose of the tools are to
+ help fixing the changes with include file renaming as well as migrating
+ the message file format of Qt 2 translation files or any gettext-based
+ translation system to the Qt 3 system.
+
+Package: libqt3-i18n
+Architecture: all
+Section: libs
+Recommends: libqt3-mt
+Description: i18n files for Qt3 library
+ This package contains the internationalization files for the Qt library.
+ Qt applications that are internationalized will need to depend on this package
+ for full internationalization support of the application towards the end user.
+
+Package: qt3-doc
+Architecture: all
+Section: doc
+Priority: extra
+Replaces: qt-doc
+Suggests: libqt3-headers, qt3-assistant | www-browser
+Description: Qt3 API documentation
+ This package contains the complete API documentation for Qt3.
+ Examples to coding are in qt3-examples. The documentation is provided
+ in HTML and manpage format; the HTML version can be viewed in conjunction
+ with the Qt Assistant.
+
+Package: qt3-examples
+Architecture: all
+Section: doc
+Priority: extra
+Depends: libqt3-mt-dev (>= ${binary:Version})
+Suggests: qt3-apps-dev
+Description:  Examples for Qt3
+ These are examples provided with Qt3. They may be especially useful for
+ you if you are learning to program in Qt as they cover quite a lot of
+ things that are possible with Qt3.
+
+Package: qt-x11-free-dbg
+Section: libdevel
+Architecture: any
+Priority: extra
+Depends: libqt3-mt (= ${binary:Version}), gdb
+Conflicts: libqt3-mt-dbg
+Replaces: libqt3-mt-dbg
+Description: debugging symbols for qt-x11-free binaries
+ This package contains the debugging symbols associated with qt-x11-free.
+ They will automatically be used by gdb for debugging Qt-related
+ issues.
--- qt-x11-free-3.3.8b.orig/debian/qt3-linguist.install
+++ qt-x11-free-3.3.8b/debian/qt3-linguist.install
@@ -0,0 +1,4 @@
+usr/bin/linguist
+usr/share/qt3/phrasebooks/*
+usr/share/qt3/doc/html/linguist*html
+usr/share/qt3/doc/html/linguist*dcf
--- qt-x11-free-3.3.8b.orig/debian/libqt3-mt-dev.docs
+++ qt-x11-free-3.3.8b/debian/libqt3-mt-dev.docs
@@ -0,0 +1,4 @@
+README
+README.immodule
+README-QT.TXT
+PLATFORMS
--- qt-x11-free-3.3.8b.orig/debian/qt3-designer.menu
+++ qt-x11-free-3.3.8b/debian/qt3-designer.menu
@@ -0,0 +1,7 @@
+?package(qt3-designer):\
+        needs="x11"\
+        section="Applications/Programming"\
+        hints="KDE"\
+        title="Qt3 Designer"\
+        command="/usr/bin/designer-qt3"
+
--- qt-x11-free-3.3.8b.orig/debian/libqt3-mt.postrm
+++ qt-x11-free-3.3.8b/debian/libqt3-mt.postrm
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+if [ "$1" = "purge" ]; then
+  if [ -d "/usr/share/doc/libqt3-mt/" ]; then
+    rm -rf /usr/share/doc/libqt3-mt/
+  fi
+fi
+
+#DEBHELPER#
--- qt-x11-free-3.3.8b.orig/debian/qt3-apps-dev.install
+++ qt-x11-free-3.3.8b/debian/qt3-apps-dev.install
@@ -0,0 +1,7 @@
+usr/lib/libeditor.prl
+usr/lib/libeditor.a
+usr/lib/libdesignercore.prl
+usr/lib/libdesignercore.a
+usr/lib/libqassistantclient.prl
+usr/lib/libqassistantclient.a
+usr/include/qt3/qassistantclient.h
--- qt-x11-free-3.3.8b.orig/debian/libqt3-mt.docs
+++ qt-x11-free-3.3.8b/debian/libqt3-mt.docs
@@ -0,0 +1,4 @@
+README
+README.immodule
+README-QT.TXT
+PLATFORMS
--- qt-x11-free-3.3.8b.orig/debian/qt3-apps-dev.links
+++ qt-x11-free-3.3.8b/debian/qt3-apps-dev.links
@@ -0,0 +1,8 @@
+/usr/lib/libeditor.prl /usr/share/qt3/lib/libeditor.prl
+/usr/lib/libeditor.a /usr/share/qt3/lib/libeditor.a
+/usr/lib/libdesignercore.prl /usr/share/qt3/lib/libdesignercore.prl
+/usr/lib/libdesignercore.a /usr/share/qt3/lib/libdesignercore.a
+/usr/lib/libqassistantclient.prl /usr/share/qt3/lib/libqassistantclient.prl
+/usr/lib/libqassistantclient.a /usr/share/qt3/lib/libqassistantclient.a
+/usr/include/qt3 /usr/share/qt3/tools/designer/editor
+/usr/include/qt3 /usr/share/qt3/tools/designer/interfaces
--- qt-x11-free-3.3.8b.orig/debian/libqt3-mt-mysql.install
+++ qt-x11-free-3.3.8b/debian/libqt3-mt-mysql.install
@@ -0,0 +1 @@
+usr/lib/qt3/plugins/sqldrivers/libqsqlmysql.so
--- qt-x11-free-3.3.8b.orig/debian/libqt3-i18n.install
+++ qt-x11-free-3.3.8b/debian/libqt3-i18n.install
@@ -0,0 +1,8 @@
+usr/share/qt3/translations/qt_ar.qm
+usr/share/qt3/translations/qt_cs.qm
+usr/share/qt3/translations/qt_de.qm
+usr/share/qt3/translations/qt_es.qm
+usr/share/qt3/translations/qt_fr.qm
+usr/share/qt3/translations/qt_he.qm
+usr/share/qt3/translations/qt_ru.qm
+usr/share/qt3/translations/qt_sk.qm
--- qt-x11-free-3.3.8b.orig/debian/qt3-designer.prerm
+++ qt-x11-free-3.3.8b/debian/qt3-designer.prerm
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+  upgrade) ;;
+  remove|failed-upgrade|deconfigure)
+    update-alternatives --remove designer "/usr/bin/designer-qt3"
+    ;;
+esac
+
+#DEBHELPER#
--- qt-x11-free-3.3.8b.orig/debian/compat
+++ qt-x11-free-3.3.8b/debian/compat
@@ -0,0 +1 @@
+5
--- qt-x11-free-3.3.8b.orig/debian/rules
+++ qt-x11-free-3.3.8b/debian/rules
@@ -0,0 +1,477 @@
+#!/usr/bin/make -f
+
+# build variables
+export QTDIR=$(shell pwd)
+
+# re-set $(LD_LIBRARY_PATH)
+OLD_LD_LIBRARY_PATH := $(LD_LIBRARY_PATH)
+export LD_LIBRARY_PATH=$(QTDIR)/lib:$(OLD_LD_LIBRARY_PATH)
+
+# fix path
+OLD_PATH := $(PATH)
+export PATH=$(QTDIR)/bin:$(OLD_PATH)
+
+DEB_HOST_ARCH		?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+DEB_HOST_ARCH_CPU	?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
+
+ifeq ($(DEB_HOST_ARCH_OS),hurd)
+	PLATFORM_ARG = hurd-g++
+else
+	PLATFORM_ARG = linux-g++
+endif
+
+# quilt stuff
+include /usr/share/quilt/quilt.make
+
+# build variables (directorys)
+DEBIAN = $(shell pwd)/debian
+P_LIBS = $(DEBIAN)/libqt3-mt
+P_DOC = $(DEBIAN)/qt3-doc
+P_APPSDEV = $(DEBIAN)/qt3-apps-dev
+P_HEADERS = $(DEBIAN)/libqt3-headers
+P_QTMTDEV = $(DEBIAN)/libqt3-mt-dev
+
+TMP_INSTALL = $(DEBIAN)/tmp-install
+
+CONFIGURE_OPTS = \
+		-prefix		"/usr"				\
+		-sysconfdir	"/etc/qt3"			\
+		-datadir	"/usr/share/qt3"		\
+		-headerdir	"/usr/include/qt3"		\
+		-docdir		"/usr/share/qt3/doc"		\
+		-plugindir	"/usr/lib/qt3/plugins"		\
+		-translationdir	"/usr/share/qt3/translations"	\
+						\
+		-thread				\
+		-shared				\
+		-fast				\
+		-no-exceptions			\
+		-platform $(PLATFORM_ARG)	\
+						\
+		-nis				\
+		-no-pch				\
+		-cups				\
+		-stl				\
+		-ipv6				\
+						\
+		-sm				\
+		-xshape				\
+		-xinerama			\
+		-xcursor			\
+		-xrandr				\
+		-xrender			\
+		-xft				\
+		-tablet				\
+		-xkb				\
+						\
+		-system-zlib			\
+		-system-libpng			\
+		-system-libmng			\
+		-system-libjpeg			\
+		-system-nas-sound		\
+						\
+		-enable-opengl			\
+		-dlopen-opengl			\
+						\
+		-qt-gif				\
+		-qt-imgfmt-png			\
+		-qt-imgfmt-jpeg			\
+		-plugin-imgfmt-mng		\
+						\
+		-plugin-sql-odbc		\
+		-plugin-sql-psql		\
+		-plugin-sql-mysql		\
+		-plugin-sql-ibase		\
+		-plugin-sql-sqlite		\
+						\
+		-I/usr/include/mysql		\
+		-I/usr/include/freetype2	\
+		-I`pg_config --includedir`	\
+						\
+		-lfontconfig			\
+		-inputmethod			\
+		# End of CONFIGURE_OPTS
+
+interbase_archs := i386 amd64 sparc powerpc
+ifneq ($(DEB_HOST_ARCH_CPU),$(findstring $(DEB_HOST_ARCH_CPU),$(interbase_archs)))
+	CONFIGURE_OPTS += -no-sql-ibase
+	IBASE = -Nlibqt3-mt-ibase
+else
+	IBASE =
+endif
+
+ifeq ($(DEB_HOST_ARCH_OS),hurd)
+	CONFIGURE_OPTS += -no-sql-ibase
+	IBASE = -Nlibqt3-mt-ibase
+endif
+
+ifeq ($(DEB_HOST_ARCH),arm)
+	CONFIGURE_OPTS += -DQT_QLOCALE_USES_FCVT
+endif
+
+build: $(QUILT_STAMPFN) libqt-thread-stamp
+
+	touch build-stamp
+
+libqt-thread-stamp:
+
+	@echo "QTDIR is ${QTDIR}"
+
+	dh_testdir
+
+	echo yes | ./configure $(CONFIGURE_OPTS)
+
+	rm -rf include/qinputcontext.h include/qinputcontextfactory.h include/qinputcontextplugin.h
+	ln -s ../src/kernel/qinputcontext.h include/qinputcontext.h
+	ln -s ../src/inputmethod/qinputcontextfactory.h include/qinputcontextfactory.h
+	ln -s ../src/inputmethod/qinputcontextplugin.h include/qinputcontextplugin.h
+
+	# proceed
+	make sub-src sub-plugins sub-tools
+	make -C src INSTALL_ROOT=$(TMP_INSTALL) install_target
+	make INSTALL_ROOT=$(TMP_INSTALL) install
+	make INSTALL_ROOT=$(TMP_INSTALL) plugins-install
+
+	# archives get accidentally stripped by make install. Copy over unstripped ones for now.
+	cp lib/lib*.a $(TMP_INSTALL)/usr/lib/
+
+	cp bin/qtrename140 $(TMP_INSTALL)/usr/bin/
+	cp bin/qt20fix $(TMP_INSTALL)/usr/bin/
+	cp bin/findtr $(TMP_INSTALL)/usr/bin/
+
+	# build conv2ui
+	cd tools/designer/tools/conv2ui && make
+	cp bin/conv2ui $(TMP_INSTALL)/usr/bin/conv2ui
+
+	# build qvfb
+	cd tools/qvfb/ && make
+	cp tools/qvfb/qvfb $(TMP_INSTALL)/usr/bin/qvfb
+
+	# install qmake.cache file
+	install -d $(P_QTMTDEV)/usr/share/qt3/
+	cat .qmake.cache | sed "s#$(QTDIR)#/usr/share/qt3#g" > $(P_QTMTDEV)/usr/share/qt3/.qmake.cache
+
+	# install qconfig.h for the mt
+	install -m 644 -D include/qconfig.h $(P_QTMTDEV)/usr/include/qt3/qconfig.h
+	install -m 644 -D include/qmodules.h $(P_QTMTDEV)/usr/include/qt3/qmodules.h
+
+	install -m 644 -D include/qinputcontext.h $(P_HEADERS)/usr/include/qt3/qinputcontext.h
+	install -m 644 -D include/qinputcontextfactory.h $(P_HEADERS)/usr/include/qt3/qinputcontextfactory.h
+	install -m 644 -D include/qinputcontextplugin.h $(P_HEADERS)/usr/include/qt3/qinputcontextplugin.h
+
+	touch libqt-thread-stamp
+
+clean: unpatch
+
+	dh_testdir
+
+	-rm -rf debian/patched
+	-rm -rf build-stamp libqt-thread-stamp
+
+	-chmod -R u+w *
+	-chmod a-x doc/html/layout?.png
+
+	if [ -f "src/Makefile" ]; then \
+		make -C src clean; make -C plugins/src distclean; make -C tools distclean; \
+		make -C tools/makeqpf distclean; make -C tools/qconfig distclean; make -C tools/qvfb distclean; \
+		make -C tools/msg2qm distclean; make -C tools/mergetr distclean; make -C tools/qembed distclean; \
+		make -C tools/designer/tools/conv2ui distclean; make -C tools/designer/tools/createcw distclean; \
+		make -C tools/designer/plugins/glade distclean; make -C tools/designer/plugins/qglwidget distclean; \
+		make -C config.tests/unix/largefile distclean; make -C qmake distclean; \
+	fi
+
+	-rm -rf .qmake.cache src/.qmake.internal.cache tools/designer/designer/.qmake.internal.cache qmake/GNUmakefile \
+		config.status bin/moc bin/qmake src/moc/*.o mkspecs/default lib/lib* `pwd`/debian/doc $(TMP_INSTALL) \
+		src/tools/qconfig.cpp include/qconfig.h include/qmodules.h plugins/accessibleqtwidgets.prl \
+		config.tests/unix/ipv6/ipv6test config.tests/unix/ipv6/ipv6test.o config.tests/unix/ptrsize/ptrsizetest.o \
+		config.tests/unix/ptrsize/ptrsizetest config.tests/unix/endian/endiantest.o \
+		config.tests/unix/endian/endiantest lib/qt-mt.pc extensions/nsplugin/examples/trivial/libtrivial.prl \
+		extensions/nsplugin/examples/grapher/libgrapher.prl bin/designer
+
+	rm -f qmake/*o
+	rm -rf include/qinputcontext.h include/qinputcontextfactory.h include/qinputcontextplugin.h
+	rm -f src/.obj/debug-shared-mt/*o plugins/src/inputmethods/imsw-multi/.obj/debug-shared-mt/*o plugins/inputmethods/*so
+	rm -f plugins/src/inputmethods/imsw-none/.obj/debug-shared-mt/*o plugins/src/inputmethods/simple/.obj/debug-shared-mt/*o plugins/src/inputmethods/xim/.obj/debug-shared-mt/*o
+
+	# delete generated Makefiles but save the toplevel Makefile
+	-mv Makefile Makefile.save
+	for a in `find . -name 'Makefile'`; do rm -f "$$a"; done
+	-mv Makefile.save Makefile
+
+	cd examples/ && find . -name '.obj' | xargs rm -rf
+
+	dh_clean
+
+install: build
+
+	dh_testdir
+	dh_testroot
+	
+	dh_clean -i
+	dh_installdirs
+
+	# fix .prl files
+	for a in $(TMP_INSTALL)/usr/lib/*prl; do cat "$$a" | sed \
+	"s#$(QTDIR)#/usr/share/qt3#g" > "$$a".new && mv "$$a".new "$$a"; done
+
+	dh_install $(IBASE) --sourcedir=$(TMP_INSTALL)
+
+	## build qt3-doc package
+	# copy all docs there first
+	install -d $(P_DOC)/usr/share/qt3/doc/html/
+	for a in `cd $(TMP_INSTALL)/usr/share/qt3/doc/html/ && find`; do cp $(TMP_INSTALL)/usr/share/qt3/doc/html/"$$a" $(P_DOC)/usr/share/qt3/doc/html/; done
+	#typo bugfix
+	sed -i -e 's/reveives/receives/' $(P_DOC)/usr/share/qt3/doc/html/qwidget.html
+
+	## build designer package documentation
+	# qt3-designer
+	install -d `pwd`/debian/qt3-designer/usr/share/qt3/doc/html/
+	for a in `cat doc/html/designer*.html doc/html/designer*.dcf | grep png | sed 's/^.*src=\"\([^\"]+\)\".*$$/\1/' | \
+	perl -pe 's#<\?p[^>]+>##' | tee outputfile | perl -ne '/<img [^>]*(src=\"[^"]+\")/; print $$1' | \
+	sed 's/src=//g' | sed 's/"/ /g'`; do cp doc/html/"$$a" `pwd`/debian/qt3-designer/usr/share/qt3/doc/html/ && \
+	rm -rf $(P_DOC)/usr/share/qt3/doc/html/"$$a" || true; done
+	rm -rf outputfile `pwd`/debian/qt3-designer/usr/share/qt3/doc/html/logo32.png
+	rm -rf `pwd`/debian/qt3-doc/usr/share/qt3/doc/html/designer*
+
+	## build linguist package documentation
+	# qt3-linguist
+	install -d `pwd`/debian/qt3-linguist/usr/share/qt3/doc/html/
+	for a in `cat doc/html/linguist*.html doc/html/linguist*.dcf | grep png | sed 's/^.*src=\"\([^\"]+\)\".*$$/\1/' | \
+	perl -pe 's#<\?p[^>]+>##' | tee outputfile | perl -ne '/<img [^>]*(src=\"[^"]+\")/; print $$1' | \
+	sed 's/src=//g' | sed 's/"/ /g'`; do cp doc/html/"$$a" `pwd`/debian/qt3-linguist/usr/share/qt3/doc/html/ && \
+	rm -rf $(P_DOC)/usr/share/qt3/doc/html/"$$a" || true; done
+	rm -rf outputfile `pwd`/debian/qt3-linguist/usr/share/qt3/doc/html/logo32.png
+	rm -rf `pwd`/debian/qt3-doc/usr/share/qt3/doc/html/linguist*
+	
+	## qt3-assistant
+	# remove docs from qt3-doc for qt-assistant
+	rm -rf `pwd`/debian/qt3-doc/usr/share/qt3/doc/html/assistant*
+
+	## all packages
+	# install the overrides files
+	#for a in debian/overrides/*; do install -d debian/`echo "$$a" | sed 's/debian\/overrides\///g'`/usr/share/lintian/overrides; done
+	#for a in debian/overrides/*; do cp "$$a" debian/`echo "$$a" | sed 's/debian\/overrides\///g'`/usr/share/lintian/overrides/`echo "$$a" | sed 's/debian\/overrides\///g'`; done
+
+	chmod 644 debian/qt3-dev-tools/usr/share/qt3/mkspecs/aix-g++-64/qplatformdefs.h
+	chmod 644 debian/qt3-dev-tools/usr/share/qt3/mkspecs/macx-pbuilder/Info.plist.app
+
+binary-indep: build install
+
+	# Build architecture-independent files here.
+	dh_testdir
+	dh_testroot
+	
+	dh_installdocs -i -XREADME.Debian
+	dh_installchangelogs -i changes-3.3.8
+	dh_installchangelogs -i changes-3.3.8b
+								
+	find doc/man -path \*/CVS -prune -o -print | cpio -pmd $(P_DOC)/usr/share/qt3/doc/
+			
+	-rm -f `find $(P_DOC)/usr/share/qt3/doc/ -name "*.o"`
+	find $(P_DOC) -type f -perm +0100 | xargs --no-run-if-empty rm -f
+
+	install -d $(P_DOC)/usr/share/man/man3/
+
+	for i in $(P_DOC)/usr/share/qt3/doc/doc/man/man3/* ; do mv $$i $(P_DOC)/usr/share/man/man3/ ; done
+	
+	-rm -rf $(P_DOC)/usr/share/qt3/doc/doc
+
+	# other i18n files
+	for a in `cd translations/ && find . -name 'qt_*.qm' | sed 's/qt_//' | sed 's/\.qm//' | sed 's/\.\///g'`; do \
+	install -m644 -D `pwd`/translations/qt_"$$a".qm `pwd`/debian/libqt3-i18n/usr/share/qt3/translations/qt_"$$a".qm; done
+
+	# logo32.png
+	cp `pwd`/doc/html/logo32.png `pwd`/debian/qt3-doc/usr/share/qt3/doc/html/
+
+	# remove qmake html docu from qt3-doc
+	rm -rf `pwd`/debian/qt3-doc/usr/share/qt3/doc/html/qmake*
+
+	# create examples package
+	install -d `pwd`/debian/doc/qt3-examples/tools/designer
+	install -d `pwd`/debian/doc/qt3-examples/tools/linguist
+	cp -ax examples `pwd`/debian/doc/qt3-examples
+	cp -ax tutorial `pwd`/debian/doc/qt3-examples
+	cp -ax tools/designer/examples `pwd`/debian/doc/qt3-examples/tools/designer/
+	cp -ax tools/linguist/tutorial `pwd`/debian/doc/qt3-examples/tools/linguist/
+	for a in `cd $(DEBIAN)/doc/qt3-examples/ && find $(DEBIAN)/doc/qt3-examples/ -name 'tt1'`; do rm -f "$$a"; done
+	for a in `cd $(DEBIAN)/doc/qt3-examples/ && find $(DEBIAN)/doc/qt3-examples/ -name 'tt2'`; do rm -f "$$a"; done
+	for a in `cd $(DEBIAN)/doc/qt3-examples/ && find $(DEBIAN)/doc/qt3-examples/ -name 'tt3'`; do rm -f "$$a"; done
+	for a in `cd $(DEBIAN)/doc/qt3-examples/ && find $(DEBIAN)/doc/qt3-examples/ -name '.moc'`; do rm -rf "$$a"; done
+	for a in `cd $(DEBIAN)/doc/qt3-examples/ && find $(DEBIAN)/doc/qt3-examples/ -name '.obj'`; do rm -rf "$$a"; done
+	for a in `cd $(DEBIAN)/doc/qt3-examples/ && find $(DEBIAN)/doc/qt3-examples/ -name 'Makefile'`; do rm -f "$$a"; done
+	install -D `pwd`/debian/maintain/build-examples.sh `pwd`/debian/doc/qt3-examples/build-examples
+	chmod 755 `pwd`/debian/doc/qt3-examples/build-examples
+	cd `pwd`/debian/doc/ && tar cvvfz qt3-examples.tar.gz qt3-examples/
+	install -D `pwd`/debian/doc/qt3-examples.tar.gz `pwd`/debian/qt3-examples/usr/share/doc/qt3-examples/qt3-examples.tar.gz
+
+	# proceed
+	dh_compress -i -Xhtml/
+	dh_link -i
+	
+	dh_fixperms -i
+	dh_installdeb -i
+	
+	dh_perl -i
+	dh_shlibdeps -i
+	
+	# fix shlibdeps madness
+	for a in `find debian/ -name '*.substvars'`; do cat "$$a" | sed 's/, xlibs (>> 4.1.0)//g' > "$$a".new &&  mv "$$a.new" "$$a"; done
+
+	dh_gencontrol -i
+	dh_md5sums -i
+	
+	dh_builddeb -i
+	
+binary-arch: build install
+
+	dh_testdir
+	dh_testroot
+	dh_installdirs -a
+
+	## create qt3-apps-dev-package
+	install -d $(P_APPSDEV)/usr/include/qt3/
+	cp `pwd`/tools/designer/interfaces/*.h $(P_APPSDEV)/usr/include/qt3/
+	cp `pwd`/tools/designer/editor/*.h $(P_APPSDEV)/usr/include/qt3/
+	rm -rf `pwd`/debian/qt3-apps-dev/usr/include/qt3/preferences.ui.h
+	
+	## qvfb package
+	install -m644 -D `pwd`/tools/qvfb/pda.skin `pwd`/debian/qt3-dev-tools-embedded/etc/qt3/qvfb/pda.skin
+	install -m644 -D `pwd`/tools/qvfb/pda_down.png `pwd`/debian/qt3-dev-tools-embedded/usr/share/qvfb/pda_down.png
+	install -m644 -D `pwd`/tools/qvfb/pda_up.png `pwd`/debian/qt3-dev-tools-embedded/usr/share/qvfb/pda_up.png
+	
+	# remove utterly ugle symlink
+	rm -rf `pwd`/debian/qt3-dev-tools//usr/share/qt3/mkspecs/linux-g++/linux-g++
+	
+	# language file for linguist
+	install -d `pwd`/debian/qt3-linguist/usr/share/doc/qt3-linguist/
+	cp translations/qt_untranslated.ts `pwd`/debian/qt3-linguist/usr/share/doc/qt3-linguist/
+	
+	# fix that stupid friggin professional file
+	perl -pi -e 's{\$$\$$QT_SOURCE_TREE}{$(QTDIR)}' src/qt_professional.pri
+	
+	## i18n files for designer, linguist and assistant
+	(cd `pwd`/tools/designer/designer/ && lrelease designer.pro)
+	for a in `cd tools/designer/designer/ && find . -name 'designer_*.qm' | sed 's/designer_//' | sed 's/\.qm//' | sed 's/\.\///g'`; do \
+	install -m644 -D tools/designer/designer/designer_"$$a".qm `pwd`/debian/qt3-designer/usr/share/qt3/translations/designer_"$$a".qm; done
+	rm -rf `pwd`/tools/designer/designer/*.qm
+		
+	(cd `pwd`/tools/assistant/ && lrelease assistant.pro)
+	for a in `cd tools/assistant/ && find . -name 'assistant_*.qm' | sed 's/assistant_//' | sed 's/\.qm//' | sed 's/\.\///g'`; do \
+	install -m644 -D tools/assistant/assistant_"$$a".qm `pwd`/debian/qt3-assistant/usr/share/qt3/translations/assistant_"$$a".qm; done
+	rm -rf `pwd`/tools/assistant/*.qm `pwd`/debian/libqt3-i18n/usr/share/qt3/translations/assistant_de.qm
+
+	(cd `pwd`/tools/linguist/linguist/ && lrelease linguist.pro)
+	for a in `cd tools/linguist/linguist/ && find . -name 'linguist_*.qm' | sed 's/linguist_//' | sed 's/\.qm//' | sed 's/\.\///g'`; do \
+	install -m644 -D tools/linguist/linguist/linguist_"$$a".qm `pwd`/debian/qt3-linguist/usr/share/qt3/translations/linguist_"$$a".qm; done
+	rm -rf `pwd`/tools/linguist/linguist/*.qm
+
+	# desktop lnk files
+	install -m644 -D debian/maintain/designer-qt3.desktop `pwd`/debian/qt3-designer/usr/share/applications/designer-qt3.desktop
+	install -m644 -D debian/maintain/linguist-qt3.desktop `pwd`/debian/qt3-linguist/usr/share/applications/linguist-qt3.desktop
+	
+	install -m644 -D debian/maintain/assistant-qt3.desktop `pwd`/debian/qt3-assistant/usr/share/applications/assistant-qt3.desktop
+	install -m644 -D debian/maintain/qt3config.desktop `pwd`/debian/qt3-qtconfig/usr/share/applications/qt3config.desktop
+	
+	# include logo32 for every program
+	cd `pwd`/debian/qt3-designer/usr/share/qt3/doc/html && for a in `find . -name '*.html'`; \
+	do cat "$$a" | sed 's/logo32/logo32-designer/g' > "$$a".new && mv "$$a".new "$$a"; done
+
+	cd `pwd`/debian/qt3-linguist/usr/share/qt3/doc/html && for a in `find . -name '*.html'`; \
+	do cat "$$a" | sed 's/logo32/logo32-linguist/g' > "$$a".new && mv "$$a".new "$$a"; done
+
+	cd `pwd`/debian/qt3-assistant/usr/share/qt3/doc/html && for a in `find . -name '*.html'`; \
+	do cat "$$a" | sed 's/logo32/logo32-assistant/g' > "$$a".new && mv "$$a".new "$$a"; done
+
+	cd `pwd`/debian/qt3-dev-tools/usr/share/qt3/doc/html && for a in `find . -name '*.html'`; \
+	do cat "$$a" | sed 's/logo32/logo32-qmake/g' > "$$a".new && mv "$$a".new "$$a"; done
+	
+	for a in designer linguist assistant; do install -m644 -D `pwd`/doc/html/logo32.png `pwd`/debian/qt3-"$$a"/usr/share/qt3/doc/html/logo32-"$$a".png; done
+	install -m644 -D `pwd`/doc/html/logo32.png `pwd`/debian/qt3-dev-tools/usr/share/qt3/doc/html/logo32-qmake.png
+	
+	# fix qmake.conf files
+	cd `pwd`/debian/qt3-dev-tools/usr/share/qt3/mkspecs/ && for a in *; do cd "$$a" && cat qmake.conf | sed 's/\$$(QTDIR)\/include/\/usr\/share\/qt3\/include/g' | sed 's/\$$(QTDIR)/\/usr\/share\/qt3/g' | \
+	sed 's/\-I\/usr\/include/&\/qt3/g' >> qmake.conf.new && mv qmake.conf.new qmake.conf && cd ../; done
+
+	# build attic package and copy it to libqt3-ompat-headers
+	cd `pwd`/src/ && tar cvvfz attic.tar.gz attic/
+	install -D `pwd`/src/attic.tar.gz `pwd`/debian/libqt3-compat-headers/usr/share/doc/libqt3-compat-headers/attic.tar.gz
+	rm -rf `pwd`/src/attic.tar.gz
+
+	# rename some binaries to make qt3/4 installations possible
+	mv `pwd`/debian/qt3-designer/usr/bin/designer `pwd`/debian/qt3-designer/usr/bin/designer-qt3
+	mv `pwd`/debian/qt3-dev-tools/usr/bin/uic `pwd`/debian/qt3-dev-tools/usr/bin/uic-qt3
+	mv `pwd`/debian/qt3-dev-tools/usr/bin/moc `pwd`/debian/qt3-dev-tools/usr/bin/moc-qt3
+	mv `pwd`/debian/qt3-dev-tools/usr/bin/lupdate `pwd`/debian/qt3-dev-tools/usr/bin/lupdate-qt3
+	mv `pwd`/debian/qt3-dev-tools/usr/bin/lrelease `pwd`/debian/qt3-dev-tools/usr/bin/lrelease-qt3
+	mv `pwd`/debian/qt3-dev-tools/usr/bin/qmake `pwd`/debian/qt3-dev-tools/usr/bin/qmake-qt3
+	mv `pwd`/debian/qt3-qtconfig/usr/bin/qtconfig `pwd`/debian/qt3-qtconfig/usr/bin/qtconfig-qt3
+	mv `pwd`/debian/qt3-assistant/usr/bin/assistant `pwd`/debian/qt3-assistant/usr/bin/assistant-qt3
+	mv `pwd`/debian/qt3-linguist/usr/bin/linguist `pwd`/debian/qt3-linguist/usr/bin/linguist-qt3
+
+	install -D debian/maintain/man/designer.1 `pwd`/debian/qt3-designer/usr/share/man/man1/designer-qt3.1
+	install -D doc/man/man1/moc.1 `pwd`/debian/qt3-dev-tools/usr/share/man/man1/moc-qt3.1
+	install -D doc/man/man1/uic.1 `pwd`/debian/qt3-dev-tools/usr/share/man/man1/uic-qt3.1
+	install -D doc/man/man1/lrelease.1 `pwd`/debian/qt3-dev-tools/usr/share/man/man1/lrelease-qt3.1
+	install -D doc/man/man1/lupdate.1 `pwd`/debian/qt3-dev-tools/usr/share/man/man1/lupdate-qt3.1
+	install -D debian/maintain/man/qtconfig.1 `pwd`/debian/qt3-qtconfig/usr/share/man/man1/qtconfig-qt3.1
+	install -D debian/maintain/man/linguist.1 `pwd`/debian/qt3-linguist/usr/share/man/man1/linguist-qt3.1
+
+	dh_link -pqt3-designer usr/share/qt3/doc/html usr/share/doc/qt3-designer/html
+	dh_link -pqt3-assistant usr/share/qt3/doc/html usr/share/doc/qt3-assistant/html
+	dh_link -pqt3-linguist usr/share/qt3/doc/html usr/share/doc/qt3-linguist/html
+	dh_link -pqt3-dev-tools usr/share/qt3/doc/html usr/share/doc/qt3-dev-tools/html
+	
+	# install the manpages we have
+	dh_installman -pqt3-designer debian/maintain/man/createcw.1
+	dh_installman -pqt3-dev-tools-compat debian/maintain/man/qt20fix.1 debian/maintain/man/mergetr.1 debian/maintain/man/findtr.1 debian/maintain/man/msg2qm.1
+	dh_installman -pqt3-dev-tools-embedded debian/maintain/man/makeqpf.1 debian/maintain/man/qvfb.1
+	dh_installman -pqt3-dev-tools debian/maintain/man/qembed.1
+
+	# copy README.Debian
+	for a in libqt3-mt-dev libqt3-mt qt3-doc; do install -D `pwd`/debian/README.Debian `pwd`/debian/"$$a"/usr/share/doc/"$$a"/README.Debian; done
+
+	# install the qmake binary
+	rm -rf `pwd`/debian/qt3-dev-tools/usr/bin/qmake
+	install -D `pwd`/qmake/qmake `pwd`/debian/qt3-dev-tools/usr/bin/qmake-qt3
+
+	# Install source for the designer tools, such as createcw.
+	cp -ra tools/designer/tools debian/qt3-designer/usr/share/qt3/tools
+	rm -f debian/qt3-designer/usr/share/qt3/tools/createcw/createcw
+	rm -rf debian/qt3-designer/usr/share/qt3/tools/createcw/.moc
+	rm -rf debian/qt3-designer/usr/share/qt3/tools/createcw/.obj
+	rm -f debian/qt3-designer/usr/share/qt3/tools/createcw/Makefile
+	rm -f debian/qt3-designer/usr/share/qt3/tools/conv2ui/conv2ui
+	rm -rf debian/qt3-designer/usr/share/qt3/tools/conv2ui/.moc
+	rm -rf debian/qt3-designer/usr/share/qt3/tools/conv2ui/.obj
+	rm -f debian/qt3-designer/usr/share/qt3/tools/conv2ui/Makefile
+	
+	# run remaining debhelper scripts
+	dh_installdocs -a $(IBASE) -XREADME.Debian
+	dh_installmenu -a $(IBASE)
+	
+	dh_installchangelogs -a $(IBASE) changes-3.3.8
+	dh_installchangelogs -a $(IBASE) changes-3.3.8b
+
+	dh_link -a $(IBASE)
+	dh_strip -a $(IBASE) --dbg-package=qt-x11-free-dbg
+	dh_compress -a $(IBASE)
+	dh_fixperms -a $(IBASE)
+	
+	# run remaining debhelper scripts
+	dh_makeshlibs -a $(IBASE) -V
+	dh_installdeb -a $(IBASE)
+	dh_perl -a $(IBASE)
+	dh_shlibdeps -a $(IBASE) -l`pwd`/debian/libqt3-mt/usr/lib
+
+	# fix shlibdeps madness
+	for a in `find debian/ -name '*.substvars'`; do cat "$$a" | sed 's/, xlibs (>> 4.1.0)//g' > "$$a".new &&  mv "$$a.new" "$$a"; done
+
+	# fix conffiles file for qt3-dev-tools-embedded
+	echo "/etc/qt3/qvfb/pda.skin" > `pwd`/debian/qt3-dev-tools-embedded/DEBIAN/conffiles
+	
+	dh_gencontrol -a $(IBASE)
+	dh_md5sums -a $(IBASE)
+	dh_builddeb -a $(IBASE)
+
+binary: binary-indep binary-arch
+.PHONY: build binary-indep binary-arch binary install clean patch unpatch
--- qt-x11-free-3.3.8b.orig/debian/qt3-assistant.links
+++ qt-x11-free-3.3.8b/debian/qt3-assistant.links
@@ -0,0 +1 @@
+/usr/bin/assistant-qt3 /usr/share/qt3/bin/assistant
--- qt-x11-free-3.3.8b.orig/debian/qt3-linguist.prerm
+++ qt-x11-free-3.3.8b/debian/qt3-linguist.prerm
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+  upgrade) ;;
+  remove|failed-upgrade|deconfigure)
+    update-alternatives --remove linguist "/usr/bin/linguist-qt3"
+    ;;
+esac
+
+#DEBHELPER#
--- qt-x11-free-3.3.8b.orig/debian/libqt3-mt.install
+++ qt-x11-free-3.3.8b/debian/libqt3-mt.install
@@ -0,0 +1,4 @@
+usr/lib/libqt-mt.so.*
+usr/lib/libqui.so.1.*
+usr/lib/qt3/plugins/imageformats/libqmng.so
+usr/lib/qt3/plugins/inputmethods/*.so
--- qt-x11-free-3.3.8b.orig/debian/qt3-qtconfig.prerm
+++ qt-x11-free-3.3.8b/debian/qt3-qtconfig.prerm
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+  upgrade) ;;
+  remove|failed-upgrade|deconfigure)
+    update-alternatives --remove qtconfig "/usr/bin/qtconfig-qt3"
+    ;;
+esac
+
+#DEBHELPER#
--- qt-x11-free-3.3.8b.orig/debian/patches/09_amd64_lib64.diff
+++ qt-x11-free-3.3.8b/debian/patches/09_amd64_lib64.diff
@@ -0,0 +1,16 @@
+--- a/mkspecs/linux-g++-64/qmake.conf
++++ b/mkspecs/linux-g++-64/qmake.conf
+@@ -43,11 +43,11 @@
+ QMAKE_INCDIR		=
+ QMAKE_LIBDIR		=
+ QMAKE_INCDIR_X11	= /usr/X11R6/include
+-QMAKE_LIBDIR_X11	= /usr/X11R6/lib64
++QMAKE_LIBDIR_X11	= /usr/X11R6/lib
+ QMAKE_INCDIR_QT		= $(QTDIR)/include
+ QMAKE_LIBDIR_QT		= $(QTDIR)/lib
+ QMAKE_INCDIR_OPENGL	= /usr/X11R6/include
+-QMAKE_LIBDIR_OPENGL	= /usr/X11R6/lib64
++QMAKE_LIBDIR_OPENGL	= /usr/X11R6/lib
+ 
+ QMAKE_LINK		= g++
+ QMAKE_LINK_SHLIB	= g++
--- qt-x11-free-3.3.8b.orig/debian/patches/0056-khotkeys_input_84434.diff
+++ qt-x11-free-3.3.8b/debian/patches/0056-khotkeys_input_84434.diff
@@ -0,0 +1,21 @@
+qt-bugs@ issue : 58251
+bugs.kde.org number : 84434
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+Fixes keyboard input action in KHotKeys (see bug #84434).
+
+--- a/src/kernel/qapplication_x11.cpp
++++ b/src/kernel/qapplication_x11.cpp
+@@ -5300,8 +5300,10 @@
+     qt_auto_repeat_data *d = (qt_auto_repeat_data *) arg;
+     if (d->error ||
+         event->xkey.window  != d->window ||
+-        event->xkey.keycode != d->keycode)
++        event->xkey.keycode != d->keycode) {
++        d->error = TRUE;
+         return FALSE;
++    }
+ 
+     if (event->type == XKeyPress) {
+         d->error = (! d->release || event->xkey.time - d->timestamp > 10);
--- qt-x11-free-3.3.8b.orig/debian/patches/0038-dragobject-dont-prefer-unknown.diff
+++ qt-x11-free-3.3.8b/debian/patches/0038-dragobject-dont-prefer-unknown.diff
@@ -0,0 +1,57 @@
+qt-bugs@ issue : 38642
+bugs.kde.org number : 71084
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+Hello,
+
+ start Mozilla, go e.g. to http://kde.org, start KWrite (or basically any Qt 
+app that accepts text drops), select 'Conquer your Desktop!', and try to 
+drag&drop it onto KWrite. The only text pasted should be 'm'.
+
+ I don't know much the related mimetype and encoding stuff, so I'm unsure 
+whose fault this actually is. The text drag is provided as a lot of 
+text/something targets, to list some text/_moz_htmlinfo, text/x-moz-url, 
+text/unicode and similar. The problem is, Kate uses QTextDrag::decode() with 
+no subtype specified, probably with the intention that as Kate is a text 
+editor, it can accept any text pasted. And since the first target provided by 
+mozilla is text/x-moz-url, (which moreover seems to be encoded as 16bit 
+unicode), the text dropped is completely wrong. You can easily see all 
+targets provided by Mozilla with see_mime.patch applied.
+
+ Solution #1: Say that Kate (any pretty much everybody else expecting text) 
+should say "plain" as the subtype. In such case, I suggest you drop the 
+QTextDrag::decode() variant with no subtype specified, and stress more the 
+fact that not specifying a subtype can result in a lot of rubbish. It's 
+simply too tempting to leave the subtype empty and try to accept anything.
+
+ Solution #2: When trying to accept anything, try to get useful data. Which 
+means either sorting the subtypes available somehow, checking only the ones 
+Qt knows.
+
+ To me, #1 seems to be a better choice, or possibly at least something like 
+the attached QTextDrag patch, which simply always tries first "plain" subtype 
+if none is specified. With this patch, Mozilla even works (that's irony, of 
+course, Mozilla still pastes the text/plain text as HTML, but at least now it 
+pastes something where it's easy to point at the offender).
+
+
+--- a/src/kernel/qdragobject.cpp
++++ b/src/kernel/qdragobject.cpp
+@@ -893,6 +893,16 @@
+ {
+     if(!e)
+ 	return FALSE;
++        
++    // when subtype is not specified, try text/plain first, otherwise this may read
++    // things like text/x-moz-url even though better targets are available
++    if( subtype.isNull()) {
++        QCString subtmp = "plain";
++        if( decode( e, str, subtmp )) {
++            subtype = subtmp;
++            return true;
++        }
++    }
+ 
+     if ( e->cacheType == QMimeSource::Text ) {
+ 	str = *e->cache.txt.str;
--- qt-x11-free-3.3.8b.orig/debian/patches/0061-qscrollview-propagate-horizontal-wheelevent.diff
+++ qt-x11-free-3.3.8b/debian/patches/0061-qscrollview-propagate-horizontal-wheelevent.diff
@@ -0,0 +1,18 @@
+qt-bugs@ issue : N64978
+applied: no
+author: Germain Garand <germain@ebooksfrance.org>
+
+In QScrollView, wheel events are forwarded to (viewport|contents)WheelEvent, but
+the horizontal/vertical status of the wheel event is not.
+
+--- a/src/widgets/qscrollview.cpp
++++ b/src/widgets/qscrollview.cpp
+@@ -1868,7 +1868,7 @@
+        the event itself.
+     */
+     QWheelEvent ce( viewportToContents(e->pos()),
+-        e->globalPos(), e->delta(), e->state());
++        e->globalPos(), e->delta(), e->state(), e->orientation());
+     contentsWheelEvent(&ce);
+     if ( ce.isAccepted() )
+         e->accept();
--- qt-x11-free-3.3.8b.orig/debian/patches/0060-qpopup_ignore_mousepos.diff
+++ qt-x11-free-3.3.8b/debian/patches/0060-qpopup_ignore_mousepos.diff
@@ -0,0 +1,59 @@
+qt-bugs@ issue : 49417
+bugs.kde.org number : 74778
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+ Hello,
+ 
+  please consider applying the two attached QPopupMenu patches fixing KDE bugs 
+  #58719 and #74778 (http://bugs.kde.org/show_bug.cgi?id=58719, 
+  http://bugs.kde.org/show_bug.cgi?id=74778), which complain about keyboard 
+  navigation in popup menus being very uncomfortable because of being affected 
+  by mouse position despite mouse not being used at all.
+
+  [... #58719 ... ]
+  
+  - ignoremousepos.patch - (#74778) - use keyboard to open some popup which 
+  doesn't show up at mouse position (e.g. Alt+F3 with KWin or the context menu 
+  key with some file selected in Konqueror). If the mouse is positioned in the 
+  area where the popup shows, the random entry happening to be at the cursor 
+  position becomes highlighted.
+  The patch fixes this by ignoring mouse events that happen at mouse position 
+  which was current when the popup was shown, i.e. all mouse move events that 
+  actually aren't triggered by mouse move are ignored. I first wanted to ignore 
+  only the very first mouse move event (which should be caused by EnterNotify 
+  for the popup) but I realized that Qt's event handling causes the popup to 
+  possibly get more than just one initial move event, caused by LeaveNotify 
+  events for normal widgets being transformed to mouse move events for the 
+  popup, so I have no better idea how to solve this problem.
+   
+--- a/src/widgets/qpopupmenu.cpp
++++ b/src/widgets/qpopupmenu.cpp
+@@ -257,6 +257,7 @@
+     QSize calcSize;
+     QRegion mouseMoveBuffer;
+     uint hasmouse : 1;
++    QPoint ignoremousepos;
+ };
+ 
+ static QPopupMenu* active_popup_menu = 0;
+@@ -1359,6 +1360,7 @@
+     popupActive = -1;
+     if(style().styleHint(QStyle::SH_PopupMenu_SubMenuPopupDelay, this))
+ 	d->mouseMoveBuffer = QRegion();
++    d->ignoremousepos = QCursor::pos();
+ }
+ 
+ /*!
+@@ -1706,6 +1708,11 @@
+ 
+ void QPopupMenu::mouseMoveEvent( QMouseEvent *e )
+ {
++    if( e->globalPos() == d->ignoremousepos ) {
++        return;
++    }
++    d->ignoremousepos = QPoint();
++
+     motion++;
+ 
+     if ( parentMenu && parentMenu->isPopupMenu ) {
--- qt-x11-free-3.3.8b.orig/debian/patches/17_qlistview_crash_iterator.diff
+++ qt-x11-free-3.3.8b/debian/patches/17_qlistview_crash_iterator.diff
@@ -0,0 +1,37 @@
+--- a/src/widgets/qlistview.cpp
++++ b/src/widgets/qlistview.cpp
+@@ -7577,21 +7577,21 @@
+ 
+ QListViewItemIterator &QListViewItemIterator::operator++()
+ {
+-    if ( !curr )
+-	return *this;
++    do {
++        if ( !curr )
++	    return *this;
+ 
+-    QListViewItem *item = curr->firstChild();
+-    if ( !item ) {
+-	while ( (item = curr->nextSibling()) == 0  ) {
+-	    curr = curr->parent();
+-	    if ( curr == 0 )
+-		break;
++	QListViewItem *item = curr->firstChild();
++	if ( !item ) {
++	    while ( (item = curr->nextSibling()) == 0  ) {
++		curr = curr->parent();
++		if ( curr == 0 )
++		    break;
++	    }
+ 	}
+-    }
+-    curr = item;
+-    // if the next one doesn't match the flags we try one more ahead
+-    if ( curr && !matchesFlags( curr ) )
+-	++( *this );
++	curr = item;
++	// if the next one doesn't match the flags we try one more ahead
++    } while  ( curr && !matchesFlags( curr ) );
+     return *this;
+ }
+ 
--- qt-x11-free-3.3.8b.orig/debian/patches/0047-fix-kmenu-width.diff
+++ qt-x11-free-3.3.8b/debian/patches/0047-fix-kmenu-width.diff
@@ -0,0 +1,21 @@
+qt-bugs@ issue: N46882
+bugs.kde.org number: 77545
+applied: no
+author: Stephan Binner <binner@kde.org>
+
+Fix wrong K menu width for the case of enabled side pixmap and a menu title
+(like "Recently Used Applications") being longer than every other entry.
+
+Solution: Respect PanelKMenu::setMaximumSize() as up to Qt 3.2.3
+
+--- a/src/widgets/qpopupmenu.cpp
++++ b/src/widgets/qpopupmenu.cpp
+@@ -2533,7 +2533,7 @@
+     constPolish();
+     QPopupMenu* that = (QPopupMenu*) this;
+     //We do not need a resize here, just the sizeHint..
+-    return that->updateSize(FALSE, FALSE).expandedTo( QApplication::globalStrut() );
++    return that->updateSize(FALSE).expandedTo( QApplication::globalStrut() );
+ }
+ 
+ 
--- qt-x11-free-3.3.8b.orig/debian/patches/0086-revert-qt-khmer-fix.diff
+++ qt-x11-free-3.3.8b/debian/patches/0086-revert-qt-khmer-fix.diff
@@ -0,0 +1,40 @@
+qt-bugs@ issue : 
+bugs.kde.org number : 
+applied: no
+author: Dirk Mueller <mueller@kde.org>
+
+according to bug 345459, this fix for stacking letters from 3.3.8 
+made it only a lot worse. revert.
+
+
+--- a/src/kernel/qfontengine_x11.cpp
++++ b/src/kernel/qfontengine_x11.cpp
+@@ -2675,23 +2675,16 @@
+             // ###### fix the case where we have y advances. How do we handle this in Uniscribe?????
+             if (positions[i].new_advance) {
+                 item->advances[i] = item->flags & QTextEngine::RightToLeft
+-                                    ? -qRound((positions[i].x_advance >> 6)*scale)
++                                    ? -qRound((positions[i].x_advance >> 6)*scale) 
+                                     :  qRound((positions[i].x_advance >> 6)*scale);
+             } else {
+                 item->advances[i] += item->flags & QTextEngine::RightToLeft
+-                                     ? -qRound((positions[i].x_advance >> 6)*scale)
++                                     ? -qRound((positions[i].x_advance >> 6)*scale) 
+                                      :  qRound((positions[i].x_advance >> 6)*scale);
+             }
+-            int back = 0;
+-	  item->offsets[i].x = qRound((positions[i].x_pos >> 6)*scale);
+-	  item->offsets[i].y = qRound((positions[i].y_pos >> 6)*scale);
+-            while (positions[i-back].back) {
+-                back += positions[i - back].back;
+-                item->offsets[i].x += qRound((positions[i - back].x_pos >> 6)*scale);
+-	      item->offsets[i].y += qRound((positions[i - back].y_pos >> 6)*scale);
+-            }
+-	  item->offsets[i].y = -item->offsets[i].y;
+-            back = positions[i].back;
++	    item->offsets[i].x = qRound((positions[i].x_pos >> 6)*scale);
++	    item->offsets[i].y = -qRound((positions[i].y_pos >> 6)*scale);
++            int back = positions[i].back;
+             if (item->flags & QTextEngine::RightToLeft) {
+                 while (back--) {
+                     item->offsets[i].x -= item->advances[i-back];
--- qt-x11-free-3.3.8b.orig/debian/patches/68_use-lfbclient_not-lgds.diff
+++ qt-x11-free-3.3.8b/debian/patches/68_use-lfbclient_not-lgds.diff
@@ -0,0 +1,37 @@
+author: Sune Vuorela <debian@pusling.com>
+
+Use -lfbclient instead of -lgds, as it is not shipped anymore
+
+--- a/configure
++++ b/configure
+@@ -1645,7 +1645,7 @@
+     ODBC_REQ="-lodbc sql.h sqlext.h"
+     TDS_REQ="-lsybdb sybfront.h sybdb.h"
+     DB2_REQ="-ldb2 sqlcli.h sqlcli1.h"
+-    IBASE_REQ="-lgds ibase.h"
++    IBASE_REQ="-lfbclient ibase.h"
+     for _SQLDR in $CFG_SQL_AVAILABLE; do
+ 	case $_SQLDR in
+ 	mysql)
+--- a/plugins/src/sqldrivers/ibase/ibase.pro
++++ b/plugins/src/sqldrivers/ibase/ibase.pro
+@@ -12,7 +12,7 @@
+ 	OBJECTS_DIR = .obj
+ 
+ 	!contains( LIBS, .*gds.* ):!contains( LIBS, .*libfb.* ) {
+-	    LIBS    *= -lgds
++	    LIBS    *= -lfbclient
+ 	}
+ }
+ win32 {
+--- a/src/sql/qt_sql.pri
++++ b/src/sql/qt_sql.pri
+@@ -188,7 +188,7 @@
+                 SOURCES += $$SQL_CPP/drivers/ibase/qsql_ibase.cpp
+                 DEFINES += QT_SQL_IBASE
+                 unix {
+-                        LIBS *= -lgds
++                        LIBS *= -lfbclient
+                 }
+                 win32 {
+ 			!win32-borland:LIBS *= gds32_ms.lib
--- qt-x11-free-3.3.8b.orig/debian/patches/03_qt_fontlist_fix.diff
+++ qt-x11-free-3.3.8b/debian/patches/03_qt_fontlist_fix.diff
@@ -0,0 +1,29 @@
+author: Martin Loschwitz <madkiss@debian.org>
+
+Fix fonts list to show only the fonts we can use
+
+--- a/src/kernel/qfontdatabase_x11.cpp
++++ b/src/kernel/qfontdatabase_x11.cpp
+@@ -721,6 +721,9 @@
+     if ( fontFamily && fontFamily->xlfdLoaded )
+ 	return;
+ 
++#ifdef QT_XFT2
++    if ( !qt_has_xft ) {
++#endif // QT_XFT2
+     int fontCount;
+     // force the X server to give us XLFDs
+     QCString xlfd_pattern = "-*-";
+@@ -822,8 +825,11 @@
+     }
+ 
+     XFreeFontNames( fontList );
+-}
+ 
++#ifdef QT_XFT2
++    }
++#endif // QT_XFT2
++}
+ 
+ #ifndef QT_NO_XFTFREETYPE
+ static int getXftWeight(int xftweight)
--- qt-x11-free-3.3.8b.orig/debian/patches/0001-dnd_optimization.diff
+++ qt-x11-free-3.3.8b/debian/patches/0001-dnd_optimization.diff
@@ -0,0 +1,188 @@
+qt-bugs@ issue : 16115
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+See http://lists.kde.org/?t=104388858900001&r=1&w=2
+
+
+
+--- a/src/kernel/qdnd_x11.cpp
++++ b/src/kernel/qdnd_x11.cpp
+@@ -52,13 +52,15 @@
+ #include "qdragobject.h"
+ #include "qobjectlist.h"
+ #include "qcursor.h"
++#include "qbitmap.h"
++#include "qpainter.h"
+ 
+ #include "qt_x11_p.h"
+ 
+ // conflict resolution
+ 
+-// unused, may be used again later: const int XKeyPress = KeyPress;
+-// unused, may be used again later: const int XKeyRelease = KeyRelease;
++const int XKeyPress = KeyPress;
++const int XKeyRelease = KeyRelease;
+ #undef KeyPress
+ #undef KeyRelease
+ 
+@@ -256,20 +258,47 @@
+ public:
+     QShapedPixmapWidget(int screen = -1) :
+ 	QWidget(QApplication::desktop()->screen( screen ),
+-		0, WStyle_Customize | WStyle_Tool | WStyle_NoBorder | WX11BypassWM )
++		0, WStyle_Customize | WStyle_Tool | WStyle_NoBorder | WX11BypassWM ), oldpmser( 0 ), oldbmser( 0 )
+     {
+     }
+ 
+-    void setPixmap(QPixmap pm)
++    void setPixmap(QPixmap pm, QPoint hot)
+     {
+-	if ( pm.mask() ) {
++	int bmser = pm.mask() ? pm.mask()->serialNumber() : 0;
++	if( oldpmser == pm.serialNumber() && oldbmser == bmser
++	    && oldhot == hot )
++	    return;
++	oldpmser = pm.serialNumber();
++	oldbmser = bmser;
++	oldhot = hot;
++	bool hotspot_in = !(hot.x() < 0 || hot.y() < 0 || hot.x() >= pm.width() || hot.y() >= pm.height());
++// if the pixmap has hotspot in its area, make a "hole" in it at that position
++// this will allow XTranslateCoordinates() to find directly the window below the cursor instead
++// of finding this pixmap, and therefore there won't be needed any (slow) search for the window
++// using findRealWindow()
++	if( hotspot_in ) {
++	    QBitmap mask = pm.mask() ? *pm.mask() : QBitmap( pm.width(), pm.height());
++	    if( !pm.mask())
++		mask.fill( Qt::color1 );
++	    QPainter p( &mask );
++	    p.setPen( Qt::color0 );
++	    p.drawPoint( hot.x(), hot.y());
++	    p.end();
++    	    pm.setMask( mask );
++    	    setMask( mask );
++	} else if ( pm.mask() ) {
+ 	    setMask( *pm.mask() );
+ 	} else {
+ 	    clearMask();
+ 	}
+ 	resize(pm.width(),pm.height());
+ 	setErasePixmap(pm);
++	erase();
+     }
++private:
++    int oldpmser;
++    int oldbmser;
++    QPoint oldhot;
+ };
+ 
+ static QShapedPixmapWidget * qt_xdnd_deco = 0;
+@@ -875,6 +904,45 @@
+ 	move( QCursor::pos() );
+ }
+ 
++static bool qt_xdnd_was_move = false;
++static bool qt_xdnd_found = false;
++// check whole incoming X queue for move events
++// checking whole queue is done by always returning False in the predicate
++// if there's another move event in the queue, and there's not a mouse button
++// or keyboard or ClientMessage event before it, the current move event
++// may be safely discarded
++// this helps avoiding being overloaded by being flooded from many events
++// from the XServer
++static
++Bool qt_xdnd_predicate( Display*, XEvent* ev, XPointer )
++{
++    if( qt_xdnd_found )
++	return False;
++    if( ev->type == MotionNotify )
++    {
++	qt_xdnd_was_move = true;
++	qt_xdnd_found = true;
++    }
++    if( ev->type == ButtonPress || ev->type == ButtonRelease
++	|| ev->type == XKeyPress || ev->type == XKeyRelease
++	|| ev->type == ClientMessage )
++    {
++	qt_xdnd_was_move = false;
++	qt_xdnd_found = true;
++    }
++    return False;
++}
++
++static
++bool qt_xdnd_another_movement()
++{
++    qt_xdnd_was_move = false;
++    qt_xdnd_found = false;
++    XEvent dummy;
++    XCheckIfEvent( qt_xdisplay(), &dummy, qt_xdnd_predicate, NULL );
++    return qt_xdnd_was_move;
++}
++
+ bool QDragManager::eventFilter( QObject * o, QEvent * e)
+ {
+     if ( beingCancelled ) {
+@@ -897,8 +965,10 @@
+ 
+     if ( e->type() == QEvent::MouseMove ) {
+ 	QMouseEvent* me = (QMouseEvent *)e;
+-	updateMode(me->stateAfter());
+-	move( me->globalPos() );
++	if( !qt_xdnd_another_movement()) {
++	    updateMode(me->stateAfter());
++	    move( me->globalPos() );
++	}
+ 	return TRUE;
+     } else if ( e->type() == QEvent::MouseButtonRelease ) {
+ 	qApp->removeEventFilter( this );
+@@ -1139,7 +1209,7 @@
+ 	    qt_xdnd_deco->grabMouse();
+ 	}
+     }
+-    updatePixmap();
++    updatePixmap( globalPos );
+ 
+     if ( qt_xdnd_source_sameanswer.contains( globalPos ) &&
+ 	 qt_xdnd_source_sameanswer.isValid() ) {
+@@ -1732,7 +1802,7 @@
+     // qt_xdnd_source_object persists until we get an xdnd_finish message
+ }
+ 
+-void QDragManager::updatePixmap()
++void QDragManager::updatePixmap( const QPoint& cursorPos )
+ {
+     if ( qt_xdnd_deco ) {
+ 	QPixmap pm;
+@@ -1747,9 +1817,8 @@
+ 		defaultPm = new QPixmap(default_pm);
+ 	    pm = *defaultPm;
+ 	}
+-	qt_xdnd_deco->setPixmap(pm);
+-	qt_xdnd_deco->move(QCursor::pos()-pm_hot);
+-	qt_xdnd_deco->repaint(FALSE);
++	qt_xdnd_deco->setPixmap(pm, pm_hot);
++	qt_xdnd_deco->move(cursorPos-pm_hot);
+ 	    //if ( willDrop ) {
+ 	    qt_xdnd_deco->show();
+ 	    //} else {
+@@ -1758,4 +1827,9 @@
+     }
+ }
+ 
++void QDragManager::updatePixmap()
++{
++    updatePixmap( QCursor::pos());
++}
++
+ #endif // QT_NO_DRAGANDDROP
+--- a/src/kernel/qdragobject.h
++++ b/src/kernel/qdragobject.h
+@@ -248,6 +248,7 @@
+     void move( const QPoint & );
+     void drop();
+     void updatePixmap();
++    void updatePixmap( const QPoint& cursorPos );
+ 
+ private:
+     QDragObject * object;
--- qt-x11-free-3.3.8b.orig/debian/patches/01_export_stat64_symbols.diff
+++ qt-x11-free-3.3.8b/debian/patches/01_export_stat64_symbols.diff
@@ -0,0 +1,85 @@
+--- qt-x11-free-3.3.8b/src/__debian_export_symbols.cpp	2008-02-21 16:23:18.772005855 +0200
++++ qt-x11-free-3.3.8b/src/__debian_export_symbols.cpp	2008-02-22 00:19:32.000000000 +0200
+@@ -0,0 +1,63 @@
++// Use the __NO_INLINE__ hack below to prevent sys/stat.h from
++// exporting __extern_inline definitions of the symbols [fl]?stat64
++// with g++-4.3 or later and glibc6 >= 2.7 or later. This flag has no
++// impact on [fl]?stat(64)? symbol export for glibc6 << 2.7
++//
++#ifndef __NO_INLINE__
++# define __NO_INLINE__
++# define INLINE_ENABLED
++#endif
++
++#include <sys/stat.h>
++
++#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 7)
++
++// We must ensure that [fl]?stat64 are exported in the dynamic symbol
++// table of libqt-mt.so.3 as weak symbols to preserve ABI.
++int stat64 (__const char *__path, struct stat64 *__statbuf) __attribute__((weak));
++int lstat64 (__const char *__path, struct stat64 *__statbuf) __attribute__((weak));
++int fstat64 (int __fd, struct stat64 *__statbuf) __attribute__((weak));
++
++int stat64 (__const char *__path, struct stat64 *__statbuf)
++{
++    return __xstat64 (_STAT_VER, __path, __statbuf);
++}
++
++int lstat64 (__const char *__path, struct stat64 *__statbuf)
++{
++    return __lxstat64 (_STAT_VER, __path, __statbuf);
++}
++
++int fstat64 (int __fd, struct stat64 *__statbuf)
++{
++    return __fxstat64 (_STAT_VER, __fd, __statbuf);
++}
++
++#else
++# ifndef INLINE_ENABLED
++/*
++ * Trigger export of the extern __inline [fl]?stat64 symbols
++ * (defined at <sys/stat.h>) by referencing them in the dummy
++ * hidden function below. It's very important to reference
++ * [fl]?stat64 via their [fl]?stat aliases (because LARGEFILE
++ * is enabled) for these weak symbols to get exported.
++ *
++ * This hack is compatible with libc6-dev << 2.7 headers.
++ *
++ * This source file must be compiled with -fno-inline to have
++ * expected effect.
++ **/
++void __stat_extern_inline_export_hack()
++    __attribute__((visibility("hidden")));
++
++void __stat_extern_inline_export_hack() {
++    struct stat buf;
++    stat("", &buf);
++    lstat("", &buf);
++    fstat(0, &buf);
++}
++# else
++#  error "This file must be compiled with inline disabled for the hack to be effective."
++# endif /* INLINES_ENABLED */
++
++#endif
+--- qt-x11-free-3.3.8b/src/qt.pro	2008-02-21 20:50:46.000000000 +0200
++++ qt-x11-free-3.3.8b/src/qt.pro	2008-02-22 00:20:48.000000000 +0200
+@@ -174,6 +174,16 @@
+    QMAKE_PKGCONFIG_INCDIR = $$headers.path
+ }
+ 
++unix {
++    # Debian - compile __debian_export_symbols.cpp with -fno-inline
++    debian_no_inline.output  = .obj/${QMAKE_FILE_BASE}.o
++    debian_no_inline.commands = $(CXX) -c $(CXXFLAGS) $(INCPATH) -fno-inline ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}
++    debian_no_inline.input = DEBIAN_NO_INLINE
++    QMAKE_EXTRA_UNIX_COMPILERS += debian_no_inline
++
++    DEBIAN_NO_INLINE = __debian_export_symbols.cpp
++}
++
+ wince-* {
+ 	CONFIG -= incremental
+ 	message( ...removing plugin stuff... (not permanent) )
--- qt-x11-free-3.3.8b.orig/debian/patches/66_gcc-4.3_compile-fix.diff
+++ qt-x11-free-3.3.8b/debian/patches/66_gcc-4.3_compile-fix.diff
@@ -0,0 +1,47 @@
+author: Fathi Boudra <fabo@debian.org>
+
+Fixes compilation issues with gcc 4.3
+
+--- a/src/kernel/qapplication_x11.cpp
++++ b/src/kernel/qapplication_x11.cpp
+@@ -116,6 +116,7 @@
+ #include <string.h>
+ #include <ctype.h>
+ #include <locale.h>
++#include <cstdlib>
+ 
+ //#define X_NOT_BROKEN
+ #ifdef X_NOT_BROKEN
+--- a/tools/makeqpf/main.cpp
++++ b/tools/makeqpf/main.cpp
+@@ -47,7 +47,7 @@
+ #include <qmemorymanager_qws.h>
+ #endif
+ 
+-#include <stdlib.h>
++#include <cstdlib>
+ 
+ 
+ class FontViewItem : public QListViewItem {
+--- a/plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp
++++ b/plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp
+@@ -44,7 +44,7 @@
+ #include "qnoneinputcontextplugin.h"
+ #include <qinputcontextfactory.h>
+ #include <qsettings.h>
+-#include <stdlib.h>
++#include <cstdlib>
+ 
+ 
+ QNoneInputContextPlugin::QNoneInputContextPlugin()
+--- a/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp
++++ b/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp
+@@ -49,7 +49,7 @@
+ #include <qsettings.h>
+ #endif
+ 
+-#include <stdlib.h>
++#include <cstdlib>
+ 
+ #define QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX
+ 
--- qt-x11-free-3.3.8b.orig/debian/patches/0005-qpixmap_mitshm.diff
+++ qt-x11-free-3.3.8b/debian/patches/0005-qpixmap_mitshm.diff
@@ -0,0 +1,569 @@
+qt-bugs@ issue : 11790 (part of)
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+NOTE: Needs #define QT_MITSHM in the matching qplatformdefs.h file. This
+    patch does so only for linux-g++ and linux-g++-distcc platforms.
+
+MITSHM extension support for QPixmap<->QImage conversions.
+
+Hello,
+
+ the review and apply the attached patches that improve performance of 
+QImage->QPixmap conversions. They should be applied in order 
+'mitshm','more_local' and 'fast', but they're independent from each other 
+(well, besides merging problems).
+
+ Mitshm patch adds MITSHM extension support for both 
+QPixmap::convertFromImage() and QPixmap::convertToImage(). I've noticed there 
+was some MITSHM support already, turned off by default, but it was used only 
+for QPixmap::xForm() , and it used shared pixmaps (and I'd bet nobody uses 
+it). My patch adds shared ximages support for faster pixmap<->image 
+conversions. Since I don't understand the xForm() code much, and I didn't 
+want to do anything with it, I added three #define's:
+ - QT_MITSHM generally enabling MITSHM support, which should be set in 
+qplatformsdefs.h (or wherever you setup platform specific stuff), it can be 
+enabled at least on Linux
+ - QT_MITSHM_CONVERSIONS - this is for my new code
+ - QT_MITSHM_XFORM - this is for the xForm() code
+ There's one more #define, QT_MITSHM_RMID_IGNORES_REFCOUNT. Glibc 
+documentation of shmctl( ... IPC_RMID ) quite clearly says that the memory 
+segment is freed only after the refcount increased by shmat() and decreased 
+by shmdt() is 0. However, at least according to 
+http://bugs.kde.org/show_bug.cgi?id=27517 , this doesn't happen on other 
+platforms for some strange reason. Such platforms should have this #define if  
+you ever consider supporting MITSHM on them.
+
+ The lower limit for using MITSHM for the image is about 8KiB 
+(width*height*depth > 100*100*32 ). Also, BestOptim in such case doesn't keep 
+the ximage, as the shared ximage is always freed before the function returns 
+(I don't know if it's worth copying it).
+
+ The second patch ('more_local'), in short, does nothing. Besides improving 
+performance by about 10% by making variables more "local", making few of them 
+const, and also making some of them unsigned (this help gcc for some reason).
+
+ The last one, 'fast', moves some if's out of the loops, and handles some most 
+common case specially (15bpp, 16bpp and 32bpp ximage depths). 32bpp case, if 
+the endianess matches, is simply uses memcpy(), for the 15/16bpp depth, 
+variables are replaced directly by matching values, statements are a bit 
+reordered and merged when suitable, and again, in case endianess matches, 
+pixels are written simply as Q_INT16. Most probably it would also help to 
+process two pixels at once and write them as Q_INT32, but I didn't want to 
+complicate the code too much  (later >;)  ).
+
+ The last snippet of 'fast' handles case when xi->bytes_per_line is not equal 
+to width for 8bpp ximage. I'm not actually sure if that can ever happen, but 
+since I've already written it *shrug*.
+
+ The 'more_local' and 'fast' patches change only convertFromImage(), as I 
+don't think convertToImage() is that performance critical (but it's as 
+unoptimized as convertFromImage() was).
+
+ Maybe some numbers. The difference is of course mainly visible with larger 
+pixmaps. The two optimizations alone reduce the time to 50% for 32bpp, to 70% 
+for 16bpp. The MITSHM support, when other patches are already applied too, 
+for 32bpp images saves about 33%. Together, the total time is reduced to 
+about 40% for 32bpp. Imlib probably still beats that, but at least this 
+obsoletes KPixmapIO.
+
+
+--- a/src/kernel/qpixmap_x11.cpp
++++ b/src/kernel/qpixmap_x11.cpp
+@@ -40,7 +40,19 @@
+ 
+ // NOT REVISED
+ 
++#include "qplatformdefs.h"
++
++#if defined(Q_OS_WIN32) && defined(QT_MITSHM)
++#undef QT_MITSHM
++#endif
++
++#ifdef QT_MITSHM
++
++// Use the MIT Shared Memory extension for pixmap<->image conversions
++#define QT_MITSHM_CONVERSIONS
++
+ // Uncomment the next line to enable the MIT Shared Memory extension
++// for QPixmap::xForm()
+ //
+ // WARNING:  This has some problems:
+ //
+@@ -48,14 +60,13 @@
+ //    2. Qt does not handle the ShmCompletion message, so you will
+ //        get strange effects if you xForm() repeatedly.
+ //
+-// #define QT_MITSHM
++// #define QT_MITSHM_XFORM
+ 
+-#if defined(Q_OS_WIN32) && defined(QT_MITSHM)
+-#undef QT_MITSHM
++#else
++#undef QT_MITSHM_CONVERSIONS
++#undef QT_MITSHM_XFORM
+ #endif
+ 
+-#include "qplatformdefs.h"
+-
+ #include "qbitmap.h"
+ #include "qpaintdevicemetrics.h"
+ #include "qimage.h"
+@@ -94,7 +105,7 @@
+   MIT Shared Memory Extension support: makes xForm noticeably (~20%) faster.
+  *****************************************************************************/
+ 
+-#if defined(QT_MITSHM)
++#if defined(QT_MITSHM_XFORM)
+ 
+ static bool	       xshminit = FALSE;
+ static XShmSegmentInfo xshminfo;
+@@ -176,8 +187,100 @@
+ //     return FALSE;
+ // }
+ 
+-#endif // QT_MITSHM
++#endif // QT_MITSHM_XFORM
++
++#ifdef QT_MITSHM_CONVERSIONS
+ 
++static bool qt_mitshm_error = false;
++static int qt_mitshm_errorhandler( Display*, XErrorEvent* )
++{
++    qt_mitshm_error = true;
++    return 0;
++}
++
++static XImage* qt_XShmCreateImage( Display* dpy, Visual* visual, unsigned int depth,
++    int format, int /*offset*/, char* /*data*/, unsigned int width, unsigned int height,
++    int /*bitmap_pad*/, int /*bytes_per_line*/, XShmSegmentInfo* shminfo )
++{
++    if( width * height * depth < 100*100*32 )
++        return NULL;
++    static int shm_inited = -1;
++    if( shm_inited == -1 ) {
++        if( XShmQueryExtension( dpy ))
++            shm_inited = 1;
++        else
++            shm_inited = 0;
++    }
++    if( shm_inited == 0 )
++        return NULL;
++    XImage* xi = XShmCreateImage( dpy, visual, depth, format, NULL, shminfo, width,
++        height );
++    if( xi == NULL )
++        return NULL;
++    shminfo->shmid = shmget( IPC_PRIVATE, xi->bytes_per_line * xi->height,
++        IPC_CREAT|0600);
++    if( shminfo->shmid < 0 ) {
++        XDestroyImage( xi );
++        return NULL;
++    }
++    shminfo->readOnly = False;
++    shminfo->shmaddr = (char*)shmat( shminfo->shmid, 0, 0 );
++    if( shminfo->shmaddr == (char*)-1 ) {
++        XDestroyImage( xi );
++        shmctl( shminfo->shmid, IPC_RMID, 0 );
++        return NULL;
++    }
++    xi->data = shminfo->shmaddr;
++#ifndef QT_MITSHM_RMID_IGNORES_REFCOUNT
++    // mark as deleted to automatically free the memory in case
++    // of a crash (but this doesn't work e.g. on Solaris)
++    shmctl( shminfo->shmid, IPC_RMID, 0 );
++#endif
++    if( shm_inited == 1 ) { // first time
++        XErrorHandler old_h = XSetErrorHandler( qt_mitshm_errorhandler );
++        XShmAttach( dpy, shminfo );
++        shm_inited = 2;
++        XSync( dpy, False );
++        XSetErrorHandler( old_h );
++        if( qt_mitshm_error ) { // oops ... perhaps we are remote?
++            shm_inited = 0;
++            XDestroyImage( xi );
++            shmdt( shminfo->shmaddr );
++#ifdef QT_MITSHM_RMID_IGNORES_REFCOUNT
++            shmctl( shminfo->shmid, IPC_RMID, 0 );
++#endif    
++            return NULL;
++        }
++    } else
++        XShmAttach( dpy, shminfo );
++    return xi;
++}
++
++static void qt_XShmDestroyImage( XImage* xi, XShmSegmentInfo* shminfo )
++{
++    XShmDetach( QPaintDevice::x11AppDisplay(), shminfo );
++    XDestroyImage( xi );
++    shmdt( shminfo->shmaddr );
++#ifdef QT_MITSHM_RMID_IGNORES_REFCOUNT
++    shmctl( shminfo->shmid, IPC_RMID, 0 );
++#endif    
++}
++
++static XImage* qt_XShmGetImage( const QPixmap* pix, int format,
++    XShmSegmentInfo* shminfo )
++{
++    XImage* xi = qt_XShmCreateImage( pix->x11Display(), (Visual*)pix->x11Visual(),
++        pix->depth(), format, 0, 0, pix->width(), pix->height(), 32, 0, shminfo );
++    if( xi == NULL )
++        return NULL;
++    if( XShmGetImage( pix->x11Display(), pix->handle(), xi, 0, 0, AllPlanes ) == False ) {
++        qt_XShmDestroyImage( xi, shminfo );
++        return NULL;
++    }
++    return xi;
++}
++
++#endif // QT_MITSHM_CONVERSIONS
+ 
+ /*****************************************************************************
+   Internal functions
+@@ -630,9 +733,20 @@
+ 	d = 32;					//   > 8  ==> 32
+ 
+     XImage *xi = (XImage *)data->ximage;	// any cached ximage?
+-    if ( !xi )					// fetch data from X server
++#ifdef QT_MITSHM_CONVERSIONS
++    bool mitshm_ximage = false;
++    XShmSegmentInfo shminfo;
++#endif
++    if ( !xi ) {				// fetch data from X server
++#ifdef QT_MITSHM_CONVERSIONS
++        xi = qt_XShmGetImage( this, mono ? XYPixmap : ZPixmap, &shminfo );
++        if( xi ) {
++            mitshm_ximage = true;
++        } else
++#endif
+ 	xi = XGetImage( x11Display(), hd, 0, 0, w, h, AllPlanes,
+ 			mono ? XYPixmap : ZPixmap );
++    }
+     Q_CHECK_PTR( xi );
+     if (!xi)
+         return image; // null image
+@@ -643,15 +757,31 @@
+ 		   QImage::LittleEndian : QImage::BigEndian;
+     }
+     image.create( w, h, d, 0, bitOrder );
+-    if ( image.isNull() )			// could not create image
++    if ( image.isNull() ) {			// could not create image
++#ifdef QT_MITSHM_CONVERSIONS
++        if( mitshm_ximage )
++            qt_XShmDestroyImage( xi, &shminfo );
++        else
++#endif
++        qSafeXDestroyImage( xi );
+ 	return image;
++    }
+ 
+     const QPixmap* msk = mask();
+     const QPixmap *alf = data->alphapm;
+ 
+     QImage alpha;
+     if (alf) {
+-	XImage *axi = XGetImage(x11Display(), alf->hd, 0, 0, w, h, AllPlanes, ZPixmap);
++        XImage* axi;
++#ifdef QT_MITSHM_CONVERSIONS
++        bool mitshm_aximage = false;
++        XShmSegmentInfo ashminfo;
++        axi = qt_XShmGetImage( alf, ZPixmap, &ashminfo );
++        if( axi ) {
++            mitshm_aximage = true;
++        } else
++#endif
++            axi = XGetImage(x11Display(), alf->hd, 0, 0, w, h, AllPlanes, ZPixmap);
+ 
+ 	if (axi) {
+ 	    image.setAlphaBuffer( TRUE );
+@@ -665,6 +795,11 @@
+ 		src += axi->bytes_per_line;
+ 	    }
+ 
++#ifdef QT_MITSHM_CONVERSIONS
++            if( mitshm_aximage )
++                qt_XShmDestroyImage( axi, &ashminfo );
++            else
++#endif
+ 	    qSafeXDestroyImage( axi );
+ 	}
+     } else if (msk) {
+@@ -807,6 +942,12 @@
+ 		  xi->bits_per_pixel );
+ #endif
+ 	image.reset();
++#ifdef QT_MITSHM_CONVERSIONS
++        if( mitshm_ximage )
++            qt_XShmDestroyImage( xi, &shminfo );
++        else
++#endif
++            qSafeXDestroyImage( xi );
+ 	return image;
+     }
+ 
+@@ -912,10 +1053,22 @@
+ 	delete [] carr;
+     }
+     if ( data->optim != BestOptim ) {		// throw away image data
++#ifdef QT_MITSHM_CONVERSIONS
++        if( mitshm_ximage )
++            qt_XShmDestroyImage( xi, &shminfo );
++        else
++#endif
+ 	qSafeXDestroyImage( xi );
+ 	((QPixmap*)this)->data->ximage = 0;
+-    } else					// keep ximage data
++    } else {					// keep ximage data
++#ifdef QT_MITSHM_CONVERSIONS
++        if( mitshm_ximage ) { // copy the XImage?
++            qt_XShmDestroyImage( xi, &shminfo );
++            xi = 0;
++        }
++#endif
+ 	((QPixmap*)this)->data->ximage = xi;
++    }
+ 
+     return image;
+ }
+@@ -1088,6 +1241,11 @@
+     bool    trucol = (visual->c_class == TrueColor || visual->c_class == DirectColor);
+     int	    nbytes = image.numBytes();
+     uchar  *newbits= 0;
++    int newbits_size = 0;
++#ifdef QT_MITSHM_CONVERSIONS
++    bool mitshm_ximage = false;
++    XShmSegmentInfo shminfo;
++#endif
+ 
+     if ( trucol ) {				// truecolor display
+ 	QRgb  pix[256];				// pixel translation table
+@@ -1116,10 +1274,18 @@
+ 	    }
+ 	}
+ 
++#ifdef QT_MITSHM_CONVERSIONS
++	xi = qt_XShmCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0, &shminfo );
++	if( xi != NULL ) {
++	    mitshm_ximage = true;
++	    newbits = (uchar*)xi->data;
++	}
++	else
++#endif
+ 	xi = XCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0 );
+-	Q_CHECK_PTR( xi );
+         if (!xi)
+             return false;
++	if( newbits == NULL )
+ 	newbits = (uchar *)malloc( xi->bytes_per_line*h );
+ 	Q_CHECK_PTR( newbits );
+ 	if ( !newbits )				// no memory
+@@ -1326,6 +1492,7 @@
+ 	}
+ 
+ 	newbits = (uchar *)malloc( nbytes );	// copy image into newbits
++        newbits_size = nbytes;
+ 	Q_CHECK_PTR( newbits );
+ 	if ( !newbits )				// no memory
+ 	    return FALSE;
+@@ -1443,11 +1610,18 @@
+     }
+ 
+     if ( !xi ) {				// X image not created
++#ifdef QT_MITSHM_CONVERSIONS
++        xi = qt_XShmCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0, &shminfo );
++        if( xi != NULL )
++            mitshm_ximage = true;
++        else
++#endif
+ 	xi = XCreateImage( dpy, visual, dd, ZPixmap, 0, 0, w, h, 32, 0 );
+ 	if ( xi->bits_per_pixel == 16 ) {	// convert 8 bpp ==> 16 bpp
+ 	    ushort *p2;
+ 	    int	    p2inc = xi->bytes_per_line/sizeof(ushort);
+ 	    ushort *newerbits = (ushort *)malloc( xi->bytes_per_line * h );
++            newbits_size = xi->bytes_per_line * h;
+ 	    Q_CHECK_PTR( newerbits );
+ 	    if ( !newerbits )				// no memory
+ 		return FALSE;
+@@ -1465,6 +1639,14 @@
+ 		      "(bpp=%d)", xi->bits_per_pixel );
+ #endif
+ 	}
++#ifdef QT_MITSHM_CONVERSIONS
++        if( newbits_size > 0 && mitshm_ximage ) { // need to copy to shared memory
++            memcpy( xi->data, newbits, newbits_size );
++            free( newbits );
++            newbits = (uchar*)xi->data;
++        }
++        else
++#endif
+ 	xi->data = (char *)newbits;
+     }
+ 
+@@ -1498,19 +1680,24 @@
+ 
+     }
+ 
++#ifdef QT_MITSHM_CONVERSIONS
++    if( mitshm_ximage )
++        XShmPutImage( dpy, hd, qt_xget_readonly_gc( x11Screen(), FALSE ),
++                      xi, 0, 0, 0, 0, w, h, False );
++    else
++#endif
+     XPutImage( dpy, hd, qt_xget_readonly_gc( x11Screen(), FALSE  ),
+ 	       xi, 0, 0, 0, 0, w, h );
+ 
+-    if ( data->optim != BestOptim ) {		// throw away image
+-	qSafeXDestroyImage( xi );
+-	data->ximage = 0;
+-    } else {					// keep ximage that we created
+-	data->ximage = xi;
+-    }
+     data->w = w;
+     data->h = h;
+     data->d = dd;
+ 
++    XImage* axi = NULL;
++#ifdef QT_MITSHM_CONVERSIONS
++    bool mitshm_aximage = false;
++    XShmSegmentInfo ashminfo;
++#endif
+     if ( image.hasAlphaBuffer() ) {
+ 	QBitmap m;
+ 	m = image.createAlphaMask( conversion_flags );
+@@ -1546,13 +1733,22 @@
+ 	    data->alphapm->rendhd =
+ 		(HANDLE) XftDrawCreateAlpha( x11Display(), data->alphapm->hd, 8 );
+ 
+-	    XImage *axi = XCreateImage(x11Display(), (Visual *) x11Visual(),
++#ifdef QT_MITSHM_CONVERSIONS
++	    axi = qt_XShmCreateImage( x11Display(), (Visual*)x11Visual(),
++		    8, ZPixmap, 0, 0, w, h, 8, 0, &ashminfo );
++	    if( axi != NULL )
++		mitshm_aximage = true;
++	    else
++#endif
++		axi = XCreateImage(x11Display(), (Visual *) x11Visual(),
+ 				       8, ZPixmap, 0, 0, w, h, 8, 0);
+ 
+ 	    if (axi) {
++		if( axi->data==NULL ) {
+ 		// the data is deleted by qSafeXDestroyImage
+                 axi->data = (char *) malloc(h * axi->bytes_per_line);
+ 		Q_CHECK_PTR( axi->data );
++		}
+                 char *aptr = axi->data;
+ 
+                 if (image.depth() == 32) {
+@@ -1570,14 +1766,48 @@
+                 }
+ 
+                 GC gc = XCreateGC(x11Display(), data->alphapm->hd, 0, 0);
++ #ifdef QT_MITSHM_CONVERSIONS
++		if( mitshm_aximage )
++		    XShmPutImage( dpy, data->alphapm->hd, gc, axi, 0, 0, 0, 0, w, h, False );
++		else
++#endif
+                 XPutImage(dpy, data->alphapm->hd, gc, axi, 0, 0, 0, 0, w, h);
+                 XFreeGC(x11Display(), gc);
+-		qSafeXDestroyImage(axi);
+ 	    }
+ 	}
+ #endif // QT_NO_XFTFREETYPE
+     }
+ 
++#ifdef QT_MITSHM_CONVERSIONS
++    if( mitshm_ximage || mitshm_aximage )
++        XSync( x11Display(), False ); // wait until processed
++#endif
++
++    if ( data->optim != BestOptim ) {       // throw away image
++#ifdef QT_MITSHM_CONVERSIONS
++        if( mitshm_ximage )
++            qt_XShmDestroyImage( xi, &shminfo );
++        else
++#endif
++     qSafeXDestroyImage( xi );
++     data->ximage = 0;
++    } else {      // keep ximage that we created
++#ifdef QT_MITSHM_CONVERSIONS
++        if( mitshm_ximage ) { // copy the XImage?
++            qt_XShmDestroyImage( xi, &shminfo );
++            xi = 0;
++        }
++#endif
++     data->ximage = xi;
++    }
++    if( axi ) {
++#ifdef QT_MITSHM_CONVERSIONS
++        if( mitshm_aximage )
++            qt_XShmDestroyImage( axi, &ashminfo );
++        else
++#endif
++        qSafeXDestroyImage(axi);
++    }
+     return TRUE;
+ }
+ 
+@@ -1740,7 +1970,7 @@
+ 	return pm;
+     }
+ 
+-#if defined(QT_MITSHM)
++#if defined(QT_MITSHM_XFORM)
+     static bool try_once = TRUE;
+     if (try_once) {
+ 	try_once = FALSE;
+@@ -1773,7 +2003,7 @@
+ 	dbpl = ((w*bpp+31)/32)*4;
+     dbytes = dbpl*h;
+ 
+-#if defined(QT_MITSHM)
++#if defined(QT_MITSHM_XFORM)
+     if ( use_mitshm ) {
+ 	dptr = (uchar *)xshmimg->data;
+ 	uchar fillbyte = bpp == 8 ? white.pixel() : 0xff;
+@@ -1789,7 +2019,7 @@
+ 	    memset( dptr, Qt::white.pixel( x11Screen() ), dbytes );
+ 	else
+ 	    memset( dptr, 0xff, dbytes );
+-#if defined(QT_MITSHM)
++#if defined(QT_MITSHM_XFORM)
+     }
+ #endif
+ 
+@@ -1820,7 +2050,7 @@
+     } else {
+ 	xbpl  = (w*bpp)/8;
+ 	p_inc = dbpl - xbpl;
+-#if defined(QT_MITSHM)
++#if defined(QT_MITSHM_XFORM)
+ 	if ( use_mitshm )
+ 	    p_inc = xshmimg->bytes_per_line - xbpl;
+ #endif
+@@ -1857,7 +2087,7 @@
+ 	QPixmap pm( w, h );
+ 	pm.data->uninit = FALSE;
+ 	pm.x11SetScreen( x11Screen() );
+-#if defined(QT_MITSHM)
++#if defined(QT_MITSHM_XFORM)
+ 	if ( use_mitshm ) {
+ 	    XCopyArea( dpy, xshmpm, pm.handle(), gc, 0, 0, w, h, 0, 0 );
+ 	} else {
+@@ -1866,7 +2096,7 @@
+ 			       ZPixmap, 0, (char *)dptr, w, h, 32, 0 );
+ 	    XPutImage( dpy, pm.handle(), gc, xi, 0, 0, 0, 0, w, h);
+ 	    qSafeXDestroyImage( xi );
+-#if defined(QT_MITSHM)
++#if defined(QT_MITSHM_XFORM)
+ 	}
+ #endif
+ 
+--- a/mkspecs/linux-g++/qplatformdefs.h
++++ b/mkspecs/linux-g++/qplatformdefs.h
+@@ -102,5 +102,6 @@
+ #define QT_VSNPRINTF		::vsnprintf
+ #endif
+ 
++#define QT_MITSHM
+ 
+ #endif // QPLATFORMDEFS_H
--- qt-x11-free-3.3.8b.orig/debian/patches/0073-xinerama-aware-qpopup.diff
+++ qt-x11-free-3.3.8b/debian/patches/0073-xinerama-aware-qpopup.diff
@@ -0,0 +1,111 @@
+qt-bugs@ issue : none
+bugs.kde.org number : none
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+Makes QPopupMenu aware of Xinerama (see e.g. https://bugzilla.novell.com/show_bug.cgi?id=216235).
+
+
+--- a/src/widgets/qpopupmenu.cpp
++++ b/src/widgets/qpopupmenu.cpp
+@@ -460,6 +460,15 @@
+     menuContentsChanged();
+ }
+ 
++QRect QPopupMenu::screenRect( const QPoint& pos )
++{
++    int screen_num = QApplication::desktop()->screenNumber( pos );
++#ifdef Q_WS_MAC
++    return QApplication::desktop()->availableGeometry( screen_num );
++#else
++    return QApplication::desktop()->screenGeometry( screen_num );
++#endif
++}
+ /*!
+     Displays the popup menu so that the item number \a indexAtPoint
+     will be at the specified \e global position \a pos. To translate a
+@@ -504,6 +513,15 @@
+     // point.
+ #endif
+ 
++    QRect screen = screenRect( geometry().center());
++    QRect screen2 = screenRect( QApplication::reverseLayout()
++        ? pos+QPoint(width(),0) : pos );
++    // if the widget is not in the screen given by the position, move it
++    // there, so that updateSize() uses the right size of the screen
++    if( screen != screen2 ) {
++        screen = screen2;
++        move( screen.x(), screen.y());
++    }
+     if(d->scroll.scrollable) {
+ 	d->scroll.scrollable = QPopupMenuPrivate::Scroll::ScrollNone;
+ 	d->scroll.topScrollableIndex = d->scroll.scrollableSize = 0;
+@@ -523,18 +541,6 @@
+ 	updateSize(TRUE);
+     }
+ 
+-    int screen_num;
+-    if (QApplication::desktop()->isVirtualDesktop())
+-	screen_num =
+-	    QApplication::desktop()->screenNumber( QApplication::reverseLayout() ?
+-						   pos+QPoint(width(),0) : pos );
+-    else
+-	screen_num = QApplication::desktop()->screenNumber( this );
+-#ifdef Q_WS_MAC
+-    QRect screen = QApplication::desktop()->availableGeometry( screen_num );
+-#else
+-    QRect screen = QApplication::desktop()->screenGeometry( screen_num );
+-#endif
+     int sw = screen.width();			// screen width
+     int sh = screen.height();			// screen height
+     int sx = screen.x();			// screen pos
+@@ -1062,7 +1068,7 @@
+ 				   mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 4 );
+ 	}
+ 
+-	int dh = QApplication::desktop()->height();
++	int dh = screenRect( geometry().center()).height();
+ 	ncols = 1;
+ 
+ 	for ( QMenuItemListIt it2( *mitems ); it2.current(); ++it2 ) {
+@@ -2316,9 +2322,9 @@
+ 	bool right = FALSE;
+ 	if ( ( parentMenu && parentMenu->isPopupMenu &&
+ 	       ((QPopupMenu*)parentMenu)->geometry().x() < geometry().x() ) ||
+-	     p.x() < 0 )
++	     p.x() < screenRect( p ).left())
+ 	    right = TRUE;
+-	if ( right && (ps.width() > QApplication::desktop()->width() - mapToGlobal( r.topRight() ).x() ) )
++	if ( right && (ps.width() > screenRect( p ).right() - mapToGlobal( r.topRight() ).x() ) )
+ 	    right = FALSE;
+ 	if ( right )
+ 	    p.setX( mapToGlobal( r.topRight() ).x() );
+@@ -2329,7 +2335,7 @@
+ 	bool left = FALSE;
+ 	if ( ( parentMenu && parentMenu->isPopupMenu &&
+ 	       ((QPopupMenu*)parentMenu)->geometry().x() > geometry().x() ) ||
+-	     p.x() + ps.width() > QApplication::desktop()->width() )
++	     p.x() + ps.width() > screenRect( p ).right() )
+ 	    left = TRUE;
+ 	if ( left && (ps.width() > mapToGlobal( r.topLeft() ).x() ) )
+ 	    left = FALSE;
+@@ -2337,8 +2343,8 @@
+ 	    p.setX( mapToGlobal( r.topLeft() ).x() - ps.width() );
+     }
+     QRect pr = popup->itemGeometry(popup->count() - 1);
+-    if (p.y() + ps.height() > QApplication::desktop()->height() &&
+-	p.y() - ps.height() + (QCOORD) pr.height() >= 0)
++    if (p.y() + ps.height() > screenRect( p ).bottom() &&
++	p.y() - ps.height() + (QCOORD) pr.height() >= screenRect( p ).top())
+ 	p.setY( p.y() - ps.height() + (QCOORD) pr.height());
+ 
+     if ( style().styleHint(QStyle::SH_PopupMenu_SloppySubMenus, this )) {
+--- a/src/widgets/qpopupmenu.h
++++ b/src/widgets/qpopupmenu.h
+@@ -155,6 +155,7 @@
+ 
+     QSize	updateSize(bool force_recalc=FALSE, bool do_resize=TRUE);
+     void	updateRow( int row );
++    QRect       screenRect(const QPoint& pos);
+ #ifndef QT_NO_ACCEL
+     void	updateAccel( QWidget * );
+     void	enableAccel( bool );
--- qt-x11-free-3.3.8b.orig/debian/patches/60_gnu_hurd_support.diff
+++ qt-x11-free-3.3.8b/debian/patches/60_gnu_hurd_support.diff
@@ -0,0 +1,173 @@
+author: Cyril Brulebois <cyril.brulebois@enst-bretagne.fr>
+
+Add support for GNU/Hurd, by fixing POSIX incompatibilities and
+fixing proper compiler options
+
+--- a/mkspecs/hurd-g++/qmake.conf
++++ b/mkspecs/hurd-g++/qmake.conf
+@@ -15,7 +15,7 @@
+ QMAKE_LEXFLAGS		= 
+ QMAKE_YACC		= yacc
+ QMAKE_YACCFLAGS		= -d
+-QMAKE_CFLAGS		=
++QMAKE_CFLAGS		= -pipe
+ QMAKE_CFLAGS_DEPS	= -M
+ QMAKE_CFLAGS_WARN_ON	= -Wall -W
+ QMAKE_CFLAGS_WARN_OFF	= -w
+@@ -23,6 +23,7 @@
+ QMAKE_CFLAGS_DEBUG	= -g
+ QMAKE_CFLAGS_SHLIB	= -fPIC
+ QMAKE_CFLAGS_YACC	= -Wno-unused -Wno-parentheses
++QMAKE_CFLAGS_THREAD	= -D_REENTRANT
+ 
+ QMAKE_CXX		= g++
+ QMAKE_CXXFLAGS		= $$QMAKE_CFLAGS
+@@ -33,6 +34,7 @@
+ QMAKE_CXXFLAGS_DEBUG	= $$QMAKE_CFLAGS_DEBUG
+ QMAKE_CXXFLAGS_SHLIB	= $$QMAKE_CFLAGS_SHLIB
+ QMAKE_CXXFLAGS_YACC	= $$QMAKE_CFLAGS_YACC
++QMAKE_CXXFLAGS_THREAD	= $$QMAKE_CFLAGS_THREAD
+ 
+ QMAKE_INCDIR		=
+ QMAKE_LIBDIR		=
+@@ -51,14 +53,19 @@
+ QMAKE_LFLAGS_SHLIB	= -shared
+ QMAKE_LFLAGS_PLUGIN	= $$QMAKE_LFLAGS_SHLIB
+ QMAKE_LFLAGS_SONAME	= -Wl,-soname,
++QMAKE_LFLAGS_THREAD	=
+ 
+-QMAKE_LIBS		=
++# The following trick (QMAKE_LIBS{,_THREAD}) is needed at the moment
++QMAKE_LIBS		= -lpthread
+ QMAKE_LIBS_DYNLOAD	= -ldl
+ QMAKE_LIBS_X11		= -lXext -lX11 -lm
++QMAKE_LIBS_X11SM	= -lSM -lICE
++QMAKE_LIBS_NIS		= -lnsl
+ QMAKE_LIBS_QT		= -lqt
+-
++QMAKE_LIBS_QT_THREAD	= -lqt-mt
+ QMAKE_LIBS_OPENGL	= -lGLU -lGL -lXmu
+ QMAKE_LIBS_OPENGL_QT	= -lGL -lXmu
++QMAKE_LIBS_THREAD	= 
+ 
+ QMAKE_MOC		= $(QTDIR)/bin/moc
+ QMAKE_UIC		= $(QTDIR)/bin/uic
+--- a/src/tools/qdir_unix.cpp
++++ b/src/tools/qdir_unix.cpp
+@@ -74,6 +74,20 @@
+ QString QDir::canonicalPath() const
+ {
+     QString r;
++#if defined(__GLIBC__) && !defined(PATH_MAX)
++    char *cur = ::get_current_dir_name();
++    if ( cur ) {
++        char *tmp = canonicalize_file_name( QFile::encodeName( dPath ).data() );
++        if ( tmp ) {
++            r = QFile::decodeName( tmp );
++            free( tmp );
++        }
++        slashify( r );
++    	// always make sure we go back to the current dir
++        ::chdir( cur );
++        free( cur );
++    }
++#else
+     char cur[PATH_MAX+1];
+     if ( ::getcwd( cur, PATH_MAX ) ) {
+ 	char tmp[PATH_MAX+1];
+@@ -86,6 +100,7 @@
+     	// always make sure we go back to the current dir
+ 	::chdir( cur );
+     }
++#endif  /* __GLIBC__ && !PATH_MAX */
+     return r;
+ }
+ 
+@@ -147,9 +162,17 @@
+ 
+     struct stat st;
+     if ( ::stat( ".", &st ) == 0 ) {
++#if defined(__GLIBC__)  && !defined(PATH_MAX)
++        char *currentName = ::get_current_dir_name();
++        if ( currentName ) {
++            result = QFile::decodeName(currentName);
++            free( currentName );
++        }
++#else
+ 	char currentName[PATH_MAX+1];
+ 	if ( ::getcwd( currentName, PATH_MAX ) )
+ 	    result = QFile::decodeName(currentName);
++#endif /* __GLIBC__ && !PATH_MAX */
+ #if defined(QT_DEBUG)
+ 	if ( result.isNull() )
+ 	    qWarning( "QDir::currentDirPath: getcwd() failed" );
+--- a/src/tools/qfileinfo_unix.cpp
++++ b/src/tools/qfileinfo_unix.cpp
+@@ -48,6 +48,9 @@
+ #if !defined(QWS) && defined(Q_OS_MAC)
+ # include <qt_mac.h>
+ #endif
++#if defined(Q_OS_HURD)
++# include <stdlib.h>
++#endif
+ 
+ void QFileInfo::slashify( QString& )
+ {
+@@ -127,16 +130,43 @@
+ 
+ QString QFileInfo::readLink() const
+ {
++    if ( !isSymLink() )
++        return QString();
+ #if defined(Q_OS_UNIX) && !defined(Q_OS_OS2EMX)
++#if defined(__GLIBC__) && !defined(PATH_MAX)
++    int size = 256;
++    char *s = NULL, *s2;
++
++    while (1)
++    {
++        s2 = (char *) realloc (s, size);
++        if (s2 == NULL) {
++            free( s );
++            return QString();
++        }
++        s = s2;
++        int len = readlink ( QFile::encodeName(fn).data(), s, size );
++        if ( len < 0 ) {
++            free( s );
++            return QString();
++        }
++        if ( len < size ) {
++            s[len] = '\0';
++            QString str = QFile::decodeName(s);
++            free(s);
++            return str;
++        }
++        size *= 2;
++    }
++#else
+     char s[PATH_MAX+1];
+-    if ( !isSymLink() )
+-	return QString();
+     int len = readlink( QFile::encodeName(fn).data(), s, PATH_MAX );
+     if ( len >= 0 ) {
+ 	s[len] = '\0';
+ 	return QFile::decodeName(s);
+     }
+-#endif
++#endif /* __GLIBC__ && !PATH_MAX */
++#endif /* Q_OS_UNIX && !Q_OS_OS2EMX */
+ #if !defined(QWS) && defined(Q_OS_MAC)
+     {
+         FSRef fref;
+--- a/src/tools/qglobal.h
++++ b/src/tools/qglobal.h
+@@ -115,6 +115,8 @@
+ #  define Q_OS_ULTRIX
+ #elif defined(sinix)
+ #  define Q_OS_RELIANT
++#elif defined(__GNU__)
++#  define Q_OS_HURD
+ #elif defined(__linux__) || defined(__linux) || defined(__GNU__) || defined(__GLIBC__)
+ #  define Q_OS_LINUX
+ #elif defined(__FreeBSD__) || defined(__DragonFly__)
--- qt-x11-free-3.3.8b.orig/debian/patches/0080-net-wm-sync-request.diff
+++ qt-x11-free-3.3.8b/debian/patches/0080-net-wm-sync-request.diff
@@ -0,0 +1,307 @@
+qt-bugs@ issue : none
+bugs.kde.org number : none
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+Support for _NET_WM_SYNC_REQUEST - allows the WM to find out when the app
+finished one redraw - less flicker during resize and with compositing
+also when opening a window.
+
+--- a/src/kernel/qwidget.h
++++ b/src/kernel/qwidget.h
+@@ -589,6 +589,14 @@
+     void	 destroyInputContext();
+     void	 focusInputContext();
+     void	 checkChildrenDnd();
++
++#ifndef QT_NO_XSYNC
++    void        createSyncCounter();
++    void        destroySyncCounter();
++    void        incrementSyncCounter();
++    void        handleSyncRequest( void* ev );
++#endif
++
+ #elif defined(Q_WS_MAC)
+     uint    own_id : 1, macDropEnabled : 1;
+     EventHandlerRef window_event;
+@@ -965,6 +973,10 @@
+     uint     uspos : 1;				// User defined position
+     uint     ussize : 1;			// User defined size
+     void    *xic;				// XIM Input Context
++#ifndef QT_NO_XSYNC
++    ulong    syncCounter;
++    uint     syncRequestValue[2];
++#endif
+ #endif
+ #if defined(Q_WS_MAC)
+     WindowGroupRef group;
+--- a/src/kernel/qt_x11_p.h
++++ b/src/kernel/qt_x11_p.h
+@@ -177,6 +177,11 @@
+ #endif // QT_NO_XRENDER
+ 
+ 
++#ifndef QT_NO_XSYNC
++#  include <X11/extensions/sync.h>
++#endif // QT_NO_XSYNC
++
++
+ #ifndef QT_NO_XKB
+ #  include <X11/XKBlib.h>
+ #endif // QT_NO_XKB
+--- a/src/kernel/qwidget_x11.cpp
++++ b/src/kernel/qwidget_x11.cpp
+@@ -90,6 +90,12 @@
+ extern Time qt_x_time;
+ extern Time qt_x_user_time;
+ 
++#ifndef QT_NO_XSYNC
++extern Atom qt_net_wm_sync_request_counter;
++extern Atom qt_net_wm_sync_request;
++extern bool qt_use_xsync;
++#endif
++
+ // defined in qfont_x11.cpp
+ extern bool qt_has_xft;
+ 
+@@ -598,11 +604,14 @@
+ 
+ 	XResizeWindow( dpy, id, crect.width(), crect.height() );
+ 	XStoreName( dpy, id, qAppName() );
+-	Atom protocols[4];
++	Atom protocols[5];
+ 	int n = 0;
+ 	protocols[n++] = qt_wm_delete_window;	// support del window protocol
+ 	protocols[n++] = qt_wm_take_focus;	// support take focus window protocol
+ 	protocols[n++] = qt_net_wm_ping;	// support _NET_WM_PING protocol
++#ifndef QT_NO_XSYNC
++	protocols[n++] = qt_net_wm_sync_request;// support the _NET_WM_SYNC_REQUEST protocol
++#endif
+ 	if ( testWFlags( WStyle_ContextHelp ) )
+ 	    protocols[n++] = qt_net_wm_context_help;
+ 	XSetWMProtocols( dpy, id, protocols, n );
+@@ -628,6 +637,14 @@
+ 	XChangeProperty(dpy, id, qt_net_wm_pid, XA_CARDINAL, 32, PropModeReplace,
+ 			(unsigned char *) &curr_pid, 1);
+ 
++#ifndef QT_NO_XSYNC
++        // set _NET_WM_SYNC_COUNTER
++        createSyncCounter();
++        long counterVal = topData()->syncCounter;
++        XChangeProperty( dpy, id, qt_net_wm_sync_request_counter, XA_CARDINAL, 32, PropModeReplace,
++                         (unsigned char*) &counterVal, 1);
++#endif
++
+ 	// when we create a toplevel widget, the frame strut should be dirty
+ 	fstrut_dirty = 1;
+ 
+@@ -723,6 +740,9 @@
+ 	    if ( destroyWindow )
+ 		qt_XDestroyWindow( this, x11Display(), winid );
+ 	}
++#ifndef QT_NO_XSYNC
++        destroySyncCounter();
++#endif
+ 	setWinId( 0 );
+ 
+ 	extern void qPRCleanup( QWidget *widget ); // from qapplication_x11.cpp
+@@ -772,6 +792,10 @@
+         destroyInputContext();
+     }
+ 
++#ifndef QT_NO_XSYNC
++    destroySyncCounter();
++#endif
++
+     if ( isTopLevel() || !parent ) // we are toplevel, or reparenting to toplevel
+         topData()->parentWinId = 0;
+ 
+@@ -2459,6 +2483,11 @@
+ {
+     // created lazily
+     extra->topextra->xic = 0;
++#ifndef QT_NO_XSYNC
++    extra->topextra->syncCounter = 0;
++    extra->topextra->syncRequestValue[0] = 0;
++    extra->topextra->syncRequestValue[1] = 0;
++#endif
+ }
+ 
+ void QWidget::deleteTLSysExtra()
+@@ -2504,6 +2533,51 @@
+     }
+ }
+ 
++
++#ifndef QT_NO_XSYNC
++// create a window's XSyncCounter
++void QWidget::createSyncCounter()
++{
++    if( !qt_use_xsync || !isTopLevel() || topData()->syncCounter )
++        return;
++    XSyncValue zero;
++    XSyncIntToValue( &zero, 0 );
++    topData()->syncCounter = XSyncCreateCounter( x11Display(), zero );
++}
++
++// destroy a window's XSyncCounter
++void QWidget::destroySyncCounter()
++{
++    if( !qt_use_xsync || !extra || !extra->topextra
++        || !extra->topextra->syncCounter )
++        return;
++    XSyncDestroyCounter( x11Display(), extra->topextra->syncCounter );
++    extra->topextra->syncCounter = 0;
++}
++
++// increment a window's XSyncCounter
++void QWidget::incrementSyncCounter()
++{
++    if( qt_use_xsync && topData()->syncCounter &&
++        !(topData()->syncRequestValue[0] == 0 &&
++         topData()->syncRequestValue[1] == 0) ) {
++        XSyncValue val;
++        XSyncIntsToValue( &val, topData()->syncRequestValue[ 0 ], topData()->syncRequestValue[ 1 ] );
++        XSyncSetCounter( x11Display(), topData()->syncCounter, val );
++        topData()->syncRequestValue[0] = topData()->syncRequestValue[1] = 0;
++    }
++}
++
++// handle _NET_WM_SYNC_REQUEST
++void QWidget::handleSyncRequest( void* ev )
++{
++    XEvent* xev = (XEvent*)ev;
++    topData()->syncRequestValue[ 0 ] = xev->xclient.data.l[ 2 ];
++    topData()->syncRequestValue[ 1 ] = xev->xclient.data.l[ 3 ];
++}
++#endif  // QT_NO_XSYNC
++
++
+ /*!
+     \property QWidget::acceptDrops
+     \brief whether drop events are enabled for this widget
+--- a/src/kernel/qapplication_x11.cpp
++++ b/src/kernel/qapplication_x11.cpp
+@@ -288,6 +288,11 @@
+ Window		*qt_net_virtual_root_list	= 0;
+ 
+ 
++// X11 SYNC support
++#ifndef QT_NO_XSYNC
++Atom		qt_net_wm_sync_request_counter	= 0;
++Atom		qt_net_wm_sync_request     	= 0;
++#endif
+ 
+ // client leader window
+ Window qt_x11_wm_client_leader = 0;
+@@ -312,6 +317,13 @@
+ // Display
+ Q_EXPORT bool qt_use_xrender = FALSE;
+ 
++#ifndef QT_NO_XSYNC
++// True if SYNC extension exists on the connected display
++bool qt_use_xsync = FALSE;
++static int xsync_eventbase;
++static int xsync_errorbase;
++#endif
++
+ // modifier masks for alt/meta - detected when the application starts
+ static long qt_alt_mask = 0;
+ static long qt_meta_mask = 0;
+@@ -1941,6 +1953,11 @@
+ 	qt_x11_intern_atom( "UTF8_STRING", &qt_utf8_string );
+         qt_x11_intern_atom( "_SGI_DESKS_MANAGER", &qt_sgi_desks_manager );
+ 
++#ifndef QT_NO_XSYNC
++	qt_x11_intern_atom( "_NET_WM_SYNC_REQUEST_COUNTER", &qt_net_wm_sync_request_counter );
++	qt_x11_intern_atom( "_NET_WM_SYNC_REQUEST", &qt_net_wm_sync_request );
++#endif
++
+ 	qt_xdnd_setup();
+ 	qt_x11_motifdnd_init();
+ 
+@@ -1977,6 +1994,15 @@
+ 	}
+ #endif // QT_NO_XRENDER
+ 
++#ifndef QT_NO_XSYNC
++	// Try to initialize SYNC extension on the connected display
++	int xsync_major, xsync_minor;
++	if ( XSyncQueryExtension( appDpy, &xsync_eventbase, &xsync_errorbase ) && 
++	     XSyncInitialize( appDpy, &xsync_major,  &xsync_minor ) ) {
++	     qt_use_xsync = TRUE;
++	}
++#endif 
++
+ #ifndef QT_NO_XKB
+ 	// If XKB is detected, set the GrabsUseXKBState option so input method
+ 	// compositions continue to work (ie. deadkeys)
+@@ -3144,6 +3170,10 @@
+ 		    XSendEvent( event->xclient.display, event->xclient.window,
+ 				False, SubstructureNotifyMask|SubstructureRedirectMask, event );
+ 		}
++#ifndef QT_NO_XSYNC
++	    } else if (a == qt_net_wm_sync_request ) {
++		    widget->handleSyncRequest( event );
++#endif
+ 	    }
+ 	} else if ( event->xclient.message_type == qt_qt_scrolldone ) {
+ 	    widget->translateScrollDoneEvent(event);
+@@ -5684,6 +5714,21 @@
+     return FALSE;
+ }
+ 
++#if defined(Q_C_CALLBACKS)
++extern "C" {
++#endif
++#ifndef QT_NO_XSYNC
++static Bool qt_net_wm_sync_request_scanner(Display*, XEvent* event, XPointer arg)
++{
++    return (event->type == ClientMessage && event->xclient.window == *(Window*)arg
++        && event->xclient.message_type == qt_wm_protocols
++        && event->xclient.data.l[ 0 ] == qt_net_wm_sync_request );
++}
++#endif
++
++#if defined(Q_C_CALLBACKS)
++}
++#endif
+ 
+ //
+ // ConfigureNotify (window move and resize) event translation
+@@ -5715,6 +5760,7 @@
+         if (! extra || extra->compress_events) {
+             // ConfigureNotify compression for faster opaque resizing
+             XEvent otherEvent;
++            int compressed_configs = 0;
+             while ( XCheckTypedWindowEvent( x11Display(), winId(), ConfigureNotify,
+                                             &otherEvent ) ) {
+                 if ( qt_x11EventFilter( &otherEvent ) )
+@@ -5735,7 +5781,18 @@
+                     newCPos.ry() = otherEvent.xconfigure.y +
+                                    otherEvent.xconfigure.border_width;
+                 }
++                ++compressed_configs;
++            }
++#ifndef QT_NO_XSYNC
++            // _NET_WM_SYNC_REQUEST compression 
++            Window wid = winId();
++            while ( compressed_configs &&
++                    XCheckIfEvent( x11Display(), &otherEvent,
++                    qt_net_wm_sync_request_scanner, (XPointer)&wid ) ) {
++                handleSyncRequest( (void*)&otherEvent );
++                --compressed_configs;
+             }
++#endif
+         }
+ 
+ 	QRect cr ( geometry() );
+@@ -5789,6 +5846,8 @@
+ 	repaint( !testWFlags(WResizeNoErase) || transbg );
+     }
+ 
++    incrementSyncCounter();
++
+     return TRUE;
+ }
+ 
--- qt-x11-free-3.3.8b.orig/debian/patches/0087-use-xrandr-1.2.diff
+++ qt-x11-free-3.3.8b/debian/patches/0087-use-xrandr-1.2.diff
@@ -0,0 +1,107 @@
+qt-bugs@ issue :
+bugs.kde.org number :
+applied: no
+author: Dirk Mueller <mueller@kde.org>
+
+support xrandr 1.2 configurations. same patch like for trunk qt-copy,
+please see there for details.
+
+
+--- a/src/kernel/qdesktopwidget_x11.cpp
++++ b/src/kernel/qdesktopwidget_x11.cpp
+@@ -107,7 +107,7 @@
+ 	    screens[i] = 0;
+ 	}
+ 
+-	delete [] screens;
++	free(screens);
+     }
+ 
+     if ( rects )     delete [] rects;
+@@ -117,6 +117,8 @@
+ void QDesktopWidgetPrivate::init()
+ {
+     // get the screen count
++    int newScreenCount;
++
+ #ifndef QT_NO_XINERAMA
+     XineramaScreenInfo *xinerama_screeninfo = 0;
+     int unused;
+@@ -126,23 +128,26 @@
+ 
+     if (use_xinerama) {
+ 	xinerama_screeninfo =
+-	    XineramaQueryScreens(QPaintDevice::x11AppDisplay(), &screenCount);
++	    XineramaQueryScreens(QPaintDevice::x11AppDisplay(), &newScreenCount);
++
++    if (xinerama_screeninfo)
+ 	defaultScreen = 0;
+     } else
+ #endif // QT_NO_XINERAMA
+     {
+ 	defaultScreen = DefaultScreen(QPaintDevice::x11AppDisplay());
+-	screenCount = ScreenCount(QPaintDevice::x11AppDisplay());
++	newScreenCount = ScreenCount(QPaintDevice::x11AppDisplay());
++        use_xinerama = false;
+     }
+ 
+     delete [] rects;
+-    rects     = new QRect[ screenCount ];
++    rects     = new QRect[ newScreenCount ];
+     delete [] workareas;
+-    workareas = new QRect[ screenCount ];
++    workareas = new QRect[ newScreenCount ];
+ 
+     // get the geometry of each screen
+-    int i, x, y, w, h;
+-    for ( i = 0; i < screenCount; i++ ) {
++    int i, j, x, y, w, h;
++    for ( i = 0, j = 0; i < newScreenCount; i++ ) {
+ 
+ #ifndef QT_NO_XINERAMA
+ 	if (use_xinerama) {
+@@ -159,11 +164,33 @@
+ 		h = HeightOfScreen(ScreenOfDisplay(QPaintDevice::x11AppDisplay(), i));
+ 	    }
+ 
+-	rects[i].setRect(x, y, w, h);
+ 	workareas[i] = QRect();
++	rects[j].setRect(x, y, w, h);
++
++        // overlapping?
++        if (j > 0 && rects[j-1].intersects(rects[j])) {
++            // pick the bigger one, ignore the other
++            if ((rects[j].width()*rects[j].height()) >
++                (rects[j-1].width()*rects[j-1].height()))
++            rects[j-1] = rects[j];
++        }
++        else
++            j++;
++    }
++
++    if (screens) {
++        // leaks QWidget* pointers on purpose, can't delete them as pointer escapes
++        screens = (QWidget**) realloc(screens, j * sizeof(QWidget*));
++        if (j > screenCount)
++            memset(&screens[screenCount], 0, (j-screenCount) * sizeof(QWidget*));
+     }
+ 
++    screenCount = j;
++
+ #ifndef QT_NO_XINERAMA
++    if (use_xinerama && screenCount == 1)
++        use_xinerama = false;
++
+     if (xinerama_screeninfo)
+ 	XFree(xinerama_screeninfo);
+ #endif // QT_NO_XINERAMA
+@@ -216,8 +243,7 @@
+ 	screen = d->defaultScreen;
+ 
+     if ( ! d->screens ) {
+-	d->screens = new QWidget*[ d->screenCount ];
+-	memset( d->screens, 0, d->screenCount * sizeof( QWidget * ) );
++	d->screens = (QWidget**) calloc( d->screenCount, sizeof(QWidget*));
+ 	d->screens[ d->defaultScreen ] = this;
+     }
+ 
--- qt-x11-free-3.3.8b.orig/debian/patches/63_qmake_hurd.diff
+++ qt-x11-free-3.3.8b/debian/patches/63_qmake_hurd.diff
@@ -0,0 +1,15 @@
+author: Michael Banck <mbanck@debian.org>
+
+Fixes the view of some bengali char
+
+--- a/qmake/option.cpp
++++ b/qmake/option.cpp
+@@ -67,7 +67,7 @@
+ //all modes
+ int Option::warn_level = WarnLogic;
+ int Option::debug_level = 0;
+-QFile Option::output;
++QFile Option::output("");
+ QString Option::output_dir;
+ QStringList Option::before_user_vars;
+ QStringList Option::after_user_vars;
--- qt-x11-free-3.3.8b.orig/debian/patches/series
+++ qt-x11-free-3.3.8b/debian/patches/series
@@ -0,0 +1,58 @@
+0001-dnd_optimization.diff
+0002-dnd_active_window_fix.diff
+0005-qpixmap_mitshm.diff
+0007-qpixmap_constants.diff
+0032-fix_rotated_randr.diff
+0038-dragobject-dont-prefer-unknown.diff
+0044-qscrollview-windowactivate-fix.diff
+0047-fix-kmenu-width.diff
+0048-qclipboard_hack_80072.diff
+0056-khotkeys_input_84434.diff
+0059-qpopup_has_mouse.diff
+0060-qpopup_ignore_mousepos.diff
+0061-qscrollview-propagate-horizontal-wheelevent.diff
+0073-xinerama-aware-qpopup.diff
+0079-compositing-types.diff
+0080-net-wm-sync-request.diff
+0083-CVE-2007-4137.diff
+0085-fix-buildkey.diff
+0086-revert-qt-khmer-fix.diff
+0087-use-xrandr-1.2.diff
+00_qmake_debian_compliant_release_target.diff
+01_export_stat64_symbols.diff
+02_various_fixes.diff
+03_qt_fontlist_fix.diff
+04_qsql_odbc.diff
+05_qvfb_cpp.diff
+06_disable_rpath.diff
+08_thread_default.diff
+09_amd64_lib64.diff
+10_arm_gcc4.diff
+11_qt_rubberband.diff
+12_disable_includehints.diff
+13_qt335_qlistview_crash_fix.diff
+15_unify_declarations_glibc.diff
+16_fix_opengl_check.diff
+17_qlistview_crash_iterator.diff
+18_fix_makeqpf_qembed.diff
+19_qfontdatabase_hack.diff
+20_hppa_FTBFS.diff
+22_fix_ftbfs_amd64.diff
+32_gtkstyle.diff
+45_immodule_unified.diff
+46_immodule_keyrelease_fix.diff
+47_immodule_nodebug_fix.diff
+48_immodule_xim_fix.diff
+53_xinerama_dialog_placement_fix.diff
+54_seli_xinerama.diff
+60_gnu_hurd_support.diff
+61_eastern_asian_languagues.diff
+63_qmake_hurd.diff
+65_gcc-4.2_qbuttons.h-fix.diff
+66_gcc-4.3_compile-fix.diff
+68_use-lfbclient_not-lgds.diff
+70_bad_typecast_amd64.diff
+72_dont_trust_uname-m_use_dpkg-arch_instead.diff
+73_configure_quilt_compat.diff
+90_armeabi.diff
+
--- qt-x11-free-3.3.8b.orig/debian/patches/0007-qpixmap_constants.diff
+++ qt-x11-free-3.3.8b/debian/patches/0007-qpixmap_constants.diff
@@ -0,0 +1,384 @@
+qt-bugs@ issue : 11790 (part of)
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+See 0005-qpixmap_mitshm.patch for details.
+
+
+--- a/src/kernel/qpixmap_x11.cpp
++++ b/src/kernel/qpixmap_x11.cpp
+@@ -1292,9 +1292,6 @@
+ 	    return FALSE;
+ 	int    bppc = xi->bits_per_pixel;
+ 
+-	if ( bppc > 8 && xi->byte_order == LSBFirst )
+-	    bppc++;
+-
+ 	bool contig_bits = n_bits(red_mask) == rbits &&
+                            n_bits(green_mask) == gbits &&
+                            n_bits(blue_mask) == bbits;
+@@ -1343,32 +1340,70 @@
+ 	    }
+ 	    init=TRUE;
+ 	}
++        
++        enum { BPP8, 
++               BPP16_8_3_M3, BPP16_7_2_M3, BPP16_MSB, BPP16_LSB,
++               BPP24_MSB, BPP24_LSB,
++               BPP32_16_8_0, BPP32_MSB, BPP32_LSB
++        } mode = BPP8;
+ 
+-	for ( uint y=0; y<h; y++ ) {
+-	    uchar* src = image.scanLine( y );
+-	    uchar* dst = newbits + xi->bytes_per_line*y;
+-	    QRgb* p = (QRgb *)src;
++	if ( bppc > 8 && xi->byte_order == LSBFirst )
++	    bppc++;
+ 
+-#define GET_RGB \
+-		int r = qRed  ( *p ); \
+-		int g = qGreen( *p ); \
+-		int b = qBlue ( *p++ ); \
+-		r = red_shift   > 0 \
+-		    ? r << red_shift   : r >> -red_shift; \
+-		g = green_shift > 0 \
+-		    ? g << green_shift : g >> -green_shift; \
+-		b = blue_shift  > 0 \
+-		    ? b << blue_shift  : b >> -blue_shift;
++        int wordsize;
++        bool bigendian;
++        qSysInfo( &wordsize, &bigendian );
++        bool same_msb_lsb = ( xi->byte_order == MSBFirst ) == ( bigendian );
++        
++        if( bppc == 8 ) // 8 bit
++            mode = BPP8;
++        else if( bppc == 16 || bppc == 17 ) { // 16 bit MSB/LSB
++            if( red_shift == 8 && green_shift == 3 && blue_shift == -3
++                && !d8 && same_msb_lsb )
++                mode = BPP16_8_3_M3;
++            else if( red_shift == 7 && green_shift == 2 && blue_shift == -3
++                && !d8 && same_msb_lsb )
++                mode = BPP16_7_2_M3;
++            else
++                mode = bppc == 17 ? BPP16_LSB : BPP16_MSB;
++        } else if( bppc == 24 || bppc == 25 ) { // 24 bit MSB/LSB
++            mode = bppc == 25 ? BPP24_LSB : BPP24_MSB;
++        } else if( bppc == 32 || bppc == 33 ) { // 32 bit MSB/LSB
++            if( red_shift == 16 && green_shift == 8 && blue_shift == 0
++                && !d8 && same_msb_lsb )
++                mode = BPP32_16_8_0;
++            else
++                mode = bppc == 33 ? BPP32_LSB : BPP32_MSB;
++        } else
++	    qFatal("Logic error 3");
+ 
+ #define GET_PIXEL \
+                 int pixel; \
+ 		if ( d8 ) pixel = pix[*src++]; \
+ 		else { \
+-		    GET_RGB \
+-		    pixel = (b & blue_mask)|(g & green_mask) | (r & red_mask) \
++		    int r = qRed  ( *p ); \
++		    int g = qGreen( *p ); \
++		    int b = qBlue ( *p++ ); \
++		    r = red_shift   > 0 \
++		        ? r << red_shift   : r >> -red_shift; \
++		    g = green_shift > 0 \
++		        ? g << green_shift : g >> -green_shift; \
++		    b = blue_shift  > 0 \
++		        ? b << blue_shift  : b >> -blue_shift; \
++		    pixel = (r & red_mask)|(g & green_mask) | (b & blue_mask) \
+ 			    | ~(blue_mask | green_mask | red_mask); \
+ 		}
+ 
++// optimized case - no d8 case, shift only once instead of twice, mask only once instead of twice,
++// use direct values instead of variables, and use only one statement
++// (*p >> 16), (*p >> 8 ) and (*p) are qRed(),qGreen() and qBlue() without masking
++// shifts have to be passed including the shift operator (e.g. '>>3'), because of the direction
++#define GET_PIXEL_OPT(red_shift,green_shift,blue_shift,red_mask,green_mask,blue_mask) \
++                int pixel = ((( *p >> 16 ) red_shift ) & red_mask ) \
++                    | ((( *p >> 8 ) green_shift ) & green_mask ) \
++                    | ((( *p ) blue_shift ) & blue_mask ); \
++                ++p;
++
+ #define GET_PIXEL_DITHER_TC \
+ 		int r = qRed  ( *p ); \
+ 		int g = qGreen( *p ); \
+@@ -1389,91 +1424,177 @@
+ 		    ? g << green_shift : g >> -green_shift; \
+ 		b = blue_shift  > 0 \
+ 		    ? b << blue_shift  : b >> -blue_shift; \
+-		int pixel = (b & blue_mask)|(g & green_mask) | (r & red_mask);
++		int pixel = (r & red_mask)|(g & green_mask) | (b & blue_mask);
+ 
+-	    if ( dither_tc ) {
+-		uint x;
+-		switch ( bppc ) {
+-		case 16:			// 16 bit MSB
+-		    for ( x=0; x<w; x++ ) {
+-			GET_PIXEL_DITHER_TC
+-			*dst++ = (pixel >> 8);
+-			*dst++ = pixel;
+-		    }
++// again, optimized case
++// can't be optimized that much :(
++#define GET_PIXEL_DITHER_TC_OPT(red_shift,green_shift,blue_shift,red_mask,green_mask,blue_mask, \
++                                rbits,gbits,bbits) \
++		const int thres = D[x%16][y%16]; \
++		int r = qRed  ( *p ); \
++		if ( r <= (255-(1<<(8-rbits))) && ((r<<rbits) & 255) \
++			> thres) \
++		    r += (1<<(8-rbits)); \
++		int g = qGreen( *p ); \
++		if ( g <= (255-(1<<(8-gbits))) && ((g<<gbits) & 255) \
++			> thres) \
++		    g += (1<<(8-gbits)); \
++		int b = qBlue ( *p++ ); \
++		if ( b <= (255-(1<<(8-bbits))) && ((b<<bbits) & 255) \
++			> thres) \
++		    b += (1<<(8-bbits)); \
++                int pixel = (( r red_shift ) & red_mask ) \
++                    | (( g green_shift ) & green_mask ) \
++                    | (( b blue_shift ) & blue_mask );
++
++#define CYCLE(body) \
++	for ( uint y=0; y<h; y++ ) { \
++	    uchar* src = image.scanLine( y ); \
++	    uchar* dst = newbits + xi->bytes_per_line*y; \
++	    QRgb* p = (QRgb *)src; \
++            body \
++        }
++
++        if ( dither_tc ) {
++	    switch ( mode ) {
++                case BPP16_8_3_M3:
++                    CYCLE(
++                        Q_INT16* dst16 = (Q_INT16*)dst;
++		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL_DITHER_TC_OPT(<<8,<<3,>>3,0xf800,0x7e0,0x1f,5,6,5)
++                            *dst16++ = pixel;
++		        }
++                    )
+ 		    break;
+-		case 17:			// 16 bit LSB
+-		    for ( x=0; x<w; x++ ) {
+-			GET_PIXEL_DITHER_TC
+-			*dst++ = pixel;
+-			*dst++ = pixel >> 8;
+-		    }
++                case BPP16_7_2_M3:
++                    CYCLE(
++                        Q_INT16* dst16 = (Q_INT16*)dst;
++		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL_DITHER_TC_OPT(<<7,<<2,>>3,0x7c00,0x3e0,0x1f,5,5,5)
++                            *dst16++ = pixel;
++		        }
++                    )
++		    break;
++		case BPP16_MSB:			// 16 bit MSB
++                    CYCLE(
++		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL_DITHER_TC
++			    *dst++ = (pixel >> 8);
++			    *dst++ = pixel;
++		        }
++                    )
++		    break;
++		case BPP16_LSB:			// 16 bit LSB
++                    CYCLE(
++    		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL_DITHER_TC
++			    *dst++ = pixel;
++			    *dst++ = pixel >> 8;
++		        }
++                    )
+ 		    break;
+ 		default:
+ 		    qFatal("Logic error");
+ 		}
+-	    } else {
+-		uint x;
+-		switch ( bppc ) {
+-		case 8:			// 8 bit
+-		    for ( x=0; x<w; x++ ) {
+-			int pixel = pix[*src++];
+-			*dst++ = pixel;
+-		    }
++	} else {
++	    switch ( mode ) {
++		case BPP8:			// 8 bit
++                    CYCLE(
++                    Q_UNUSED(p);
++		        for ( uint x=0; x<w; x++ ) {
++			    int pixel = pix[*src++];
++			    *dst++ = pixel;
++		        }
++                    )
+ 		    break;
+-		case 16:			// 16 bit MSB
+-		    for ( x=0; x<w; x++ ) {
+-			GET_PIXEL
+-			*dst++ = (pixel >> 8);
+-			*dst++ = pixel;
+-		    }
++                case BPP16_8_3_M3:
++                    CYCLE(
++                        Q_INT16* dst16 = (Q_INT16*)dst;
++		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL_OPT(<<8,<<3,>>3,0xf800,0x7e0,0x1f)
++                            *dst16++ = pixel;
++		        }
++                    )
+ 		    break;
+-		case 17:			// 16 bit LSB
+-		    for ( x=0; x<w; x++ ) {
+-			GET_PIXEL
+-			*dst++ = pixel;
+-			*dst++ = pixel >> 8;
+-		    }
++                case BPP16_7_2_M3:
++                    CYCLE(
++                        Q_INT16* dst16 = (Q_INT16*)dst;
++		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL_OPT(<<7,<<2,>>3,0x7c00,0x3e0,0x1f)
++                            *dst16++ = pixel;
++		        }
++                    )
+ 		    break;
+-		case 24:			// 24 bit MSB
+-		    for ( x=0; x<w; x++ ) {
+-			GET_PIXEL
+-			*dst++ = pixel >> 16;
+-			*dst++ = pixel >> 8;
+-			*dst++ = pixel;
+-		    }
++		case BPP16_MSB:			// 16 bit MSB
++                    CYCLE(
++		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL
++			    *dst++ = (pixel >> 8);
++			    *dst++ = pixel;
++		        }
++                    )
+ 		    break;
+-		case 25:			// 24 bit LSB
+-		    for ( x=0; x<w; x++ ) {
+-			GET_PIXEL
+-			*dst++ = pixel;
+-			*dst++ = pixel >> 8;
+-			*dst++ = pixel >> 16;
+-		    }
++		case BPP16_LSB:			// 16 bit LSB
++                    CYCLE(
++		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL
++			    *dst++ = pixel;
++			    *dst++ = pixel >> 8;
++		        }
++                    )
+ 		    break;
+-		case 32:			// 32 bit MSB
+-		    for ( x=0; x<w; x++ ) {
+-			GET_PIXEL
+-			*dst++ = pixel >> 24;
+-			*dst++ = pixel >> 16;
+-			*dst++ = pixel >> 8;
+-			*dst++ = pixel;
+-		    }
++		case BPP24_MSB:			// 24 bit MSB
++                    CYCLE(
++		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL
++			    *dst++ = pixel >> 16;
++			    *dst++ = pixel >> 8;
++			    *dst++ = pixel;
++		        }
++                    )
+ 		    break;
+-		case 33:			// 32 bit LSB
+-		    for ( x=0; x<w; x++ ) {
+-			GET_PIXEL
+-			*dst++ = pixel;
+-			*dst++ = pixel >> 8;
+-			*dst++ = pixel >> 16;
+-			*dst++ = pixel >> 24;
+-		    }
++		case BPP24_LSB:			// 24 bit LSB
++                    CYCLE(
++		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL
++			    *dst++ = pixel;
++			    *dst++ = pixel >> 8;
++			    *dst++ = pixel >> 16;
++		        }
++                    )
+ 		    break;
+-		default:
+-		    qFatal("Logic error 2");
+-		}
+-	    }
+-	}
+-	xi->data = (char *)newbits;
++                case BPP32_16_8_0:
++                    CYCLE(
++                        memcpy( dst, p, w * 4 );
++                    )
++                    break;
++		case BPP32_MSB:			// 32 bit MSB
++                    CYCLE(
++		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL
++			    *dst++ = pixel >> 24;
++			    *dst++ = pixel >> 16;
++			    *dst++ = pixel >> 8;
++			    *dst++ = pixel;
++		        }
++                    )
++		    break;
++		case BPP32_LSB:			// 32 bit LSB
++                    CYCLE(
++		        for ( uint x=0; x<w; x++ ) {
++			    GET_PIXEL
++			    *dst++ = pixel;
++			    *dst++ = pixel >> 8;
++			    *dst++ = pixel >> 16;
++			    *dst++ = pixel >> 24;
++		        }
++                    )
++  		    break;
++  		default:
++  		    qFatal("Logic error 2");
++  	    }
++  	}
++  	xi->data = (char *)newbits;
+     }
+ 
+     if ( d == 8 && !trucol ) {			// 8 bit pixmap
+@@ -1753,15 +1874,24 @@
+ 
+                 if (image.depth() == 32) {
+                     const int *iptr = (const int *) image.bits();
+-                    int max = w * h;
+-                    while (max--)
+-                        *aptr++ = *iptr++ >> 24; // squirt
++                    if( axi->bytes_per_line == (int)w ) {
++                        int max = w * h;
++                        while (max--)
++                            *aptr++ = *iptr++ >> 24; // squirt
++                    } else {
++                        for (uint i = 0; i < h; ++i ) {
++                            for (uint j = 0; j < w; ++j )
++                                *aptr++ = *iptr++ >> 24; // squirt
++                            aptr += ( axi->bytes_per_line - w );
++                        }
++                    }
+                 } else if (image.depth() == 8) {
+                     const QRgb * const rgb = image.colorTable();
+                     for (uint y = 0; y < h; ++y) {
+                         const uchar *iptr = image.scanLine(y);
+                         for (uint x = 0; x < w; ++x)
+                             *aptr++ = qAlpha(rgb[*iptr++]);
++                        aptr += ( axi->bytes_per_line - w );
+                     }
+                 }
+ 
--- qt-x11-free-3.3.8b.orig/debian/patches/53_xinerama_dialog_placement_fix.diff
+++ qt-x11-free-3.3.8b/debian/patches/53_xinerama_dialog_placement_fix.diff
@@ -0,0 +1,13 @@
+--- a/src/dialogs/qdialog.cpp
++++ b/src/dialogs/qdialog.cpp
+@@ -799,7 +799,9 @@
+ 	w = w->topLevelWidget();
+     QRect desk;
+     if ( w ) {
+-	scrn = QApplication::desktop()->screenNumber( w );
++	// Use mapToGlobal rather than geometry() in case w might
++	// be embedded in another application
++	scrn = QApplication::desktop()->screenNumber( w->mapToGlobal( QPoint(0,0) ) );
+     } else if ( QApplication::desktop()->isVirtualDesktop() ) {
+ 	scrn = QApplication::desktop()->screenNumber( QCursor::pos() );
+     } else {
--- qt-x11-free-3.3.8b.orig/debian/patches/18_fix_makeqpf_qembed.diff
+++ qt-x11-free-3.3.8b/debian/patches/18_fix_makeqpf_qembed.diff
@@ -0,0 +1,24 @@
+author: Martin Loschwitz <madkiss@madkiss.org>
+
+Fix makeqpf by make it not use stuff defined in Qt embedded
+
+--- a/tools/makeqpf/main.cpp
++++ b/tools/makeqpf/main.cpp
+@@ -137,8 +137,6 @@
+     }
+ };
+ 
+-extern QString qws_topdir();
+-
+ class MakeQPF : public QMainWindow
+ {
+     Q_OBJECT
+@@ -152,7 +150,7 @@
+ 	view->addColumn("Weight");
+ 	view->addColumn("Style");
+ 	setCentralWidget(view);
+-	QString fontdir = qws_topdir() + "/lib/fonts";
++	QString fontdir = QString(getenv("QTDIR")) + "/lib/fonts";
+ 	readFontDir(fontdir);
+ 
+ 	connect(view,SIGNAL(selectionChanged(QListViewItem*)),
--- qt-x11-free-3.3.8b.orig/debian/patches/05_qvfb_cpp.diff
+++ qt-x11-free-3.3.8b/debian/patches/05_qvfb_cpp.diff
@@ -0,0 +1,19 @@
+--- a/tools/qvfb/pda.skin
++++ b/tools/qvfb/pda.skin
+@@ -1,4 +1,4 @@
+-pda_up.png pda_down.png
++/usr/share/qvfb/pda_up.png /usr/share/qvfb/pda_down.png
+ 57 81
+ 240 320
+ 0.5
+--- a/tools/qvfb/qvfb.cpp
++++ b/tools/qvfb/qvfb.cpp
+@@ -94,7 +94,7 @@
+ 	bool vis = isVisible();
+ 	if ( vis ) hide();
+ 	menuBar()->hide();
+-	Skin *skin = new Skin( this, skin_name, w, h );
++	Skin *skin = new Skin( this, QString::fromLatin1( "/etc/qt3/qvfb/" ) + skin_name, w, h );
+ 	view = new QVFbView( display_id, w, h, d, skin );
+ 	skin->setView( view );
+ 	view->setMargin( 0 );
--- qt-x11-free-3.3.8b.orig/debian/patches/47_immodule_nodebug_fix.diff
+++ qt-x11-free-3.3.8b/debian/patches/47_immodule_nodebug_fix.diff
@@ -0,0 +1,83 @@
+--- a/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp
++++ b/plugins/src/inputmethods/simple/qsimpleinputcontext.cpp
+@@ -141,7 +141,7 @@
+         // only one character. See description of
+         // QInputContext::filterEvent() about key compression.
+         val = text[0].unicode();
+-        qDebug( "str = %s", (const char*)keyevent->text().local8Bit() );
++       // qDebug( "str = %s", (const char*)keyevent->text().local8Bit() );
+     }
+ 
+     // Store value
+@@ -165,14 +165,14 @@
+ 
+ void QSimpleInputContext::setFocus()
+ {
+-    qDebug( "QSimpleInputContext: %p->setFocus(), focusWidget()=%p",
+-            this, focusWidget() );
++    //qDebug( "QSimpleInputContext: %p->setFocus(), focusWidget()=%p",
++            //this, focusWidget() );
+ }
+ 
+ void QSimpleInputContext::unsetFocus()
+ {
+-    qDebug( "QSimpleInputContext: %p->unsetFocus(), focusWidget()=%p",
+-            this, focusWidget() );
++    //qDebug( "QSimpleInputContext: %p->unsetFocus(), focusWidget()=%p",
++            //this, focusWidget() );
+     reset();
+ }
+ 
+@@ -189,8 +189,8 @@
+     case QEvent::MouseButtonRelease:
+     case QEvent::MouseButtonDblClick:
+     case QEvent::MouseMove:
+-        qDebug( "QSimpleInputContext::mouseHandler: "
+-                "x=%d, type=%d, button=%d, state=%d", x, type, button, state );
++       // qDebug( "QSimpleInputContext::mouseHandler: "
++               // "x=%d, type=%d, button=%d, state=%d", x, type, button, state );
+         break;
+     default:
+         break;
+@@ -241,7 +241,7 @@
+ 
+     // no entries were found
+     if ( p == composeTable->data + composeTable->size ) {
+-        qDebug( "no match" );
++       // qDebug( "no match" );
+         clearComposeBuffer();
+         return FALSE;
+     }
+@@ -251,18 +251,18 @@
+ 
+         // check if partial match
+         if ( composeBuffer[i] == 0 && p->keys[i] ) {
+-            qDebug("partial match");
++            // qDebug("partial match");
+             return TRUE;
+         }
+ 
+         if ( composeBuffer[i] != p->keys[i] ) {
+-            qDebug("different entry");
++          // qDebug("different entry");
+             clearComposeBuffer();
+             return i!=0;
+         }
+     }
+ 
+-    qDebug("match exactly");
++   // qDebug("match exactly");
+ 
+     // match exactly
+     commitChar( p->value );
+--- a/plugins/src/inputmethods/xim/qximinputcontext_x11.cpp
++++ b/plugins/src/inputmethods/xim/qximinputcontext_x11.cpp
+@@ -361,7 +361,7 @@
+     }
+ 
+     if (! widget->isTopLevel()) {
+-	qWarning("QInputContext: cannot create input context for non-toplevel widgets");
++       // qWarning("QInputContext: cannot create input context for non-toplevel widgets");
+ 	return;
+     }
+ 
--- qt-x11-free-3.3.8b.orig/debian/patches/0079-compositing-types.diff
+++ qt-x11-free-3.3.8b/debian/patches/0079-compositing-types.diff
@@ -0,0 +1,413 @@
+qt-bugs@ issue : none
+bugs.kde.org number : none
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+This patch adds support for window types used for compositing (popup menu, dropdown menu,
+tooltip, combobox, dnd).
+
+--- a/src/kernel/qdnd_x11.cpp
++++ b/src/kernel/qdnd_x11.cpp
+@@ -264,6 +264,7 @@
+ 	QWidget(QApplication::desktop()->screen( screen ),
+ 		0, WStyle_Customize | WStyle_Tool | WStyle_NoBorder | WX11BypassWM ), oldpmser( 0 ), oldbmser( 0 )
+     {
++    x11SetWindowType( X11WindowTypeDND );
+     }
+ 
+     void setPixmap(QPixmap pm, QPoint hot)
+@@ -1224,6 +1225,7 @@
+ 	// recreate the pixmap on the new screen...
+ 	delete qt_xdnd_deco;
+ 	qt_xdnd_deco = new QShapedPixmapWidget( screen );
++        qt_xdnd_deco->x11SetWindowTransient( dragSource->topLevelWidget());
+ 	if (!QWidget::mouseGrabber()) {
+ 	    updatePixmap();
+ 	    qt_xdnd_deco->grabMouse();
+@@ -1777,6 +1779,7 @@
+ 
+     dragSource = (QWidget *)(object->parent());
+ 
++    qt_xdnd_deco->x11SetWindowTransient( dragSource->topLevelWidget());
+     qApp->installEventFilter( this );
+     qt_xdnd_source_current_time = qt_x_time;
+     XSetSelectionOwner( QPaintDevice::x11AppDisplay(), qt_xdnd_selection,
+--- a/src/kernel/qapplication_x11.cpp
++++ b/src/kernel/qapplication_x11.cpp
+@@ -270,6 +270,11 @@
+ Atom		qt_net_wm_window_type_utility	= 0;
+ Atom            qt_net_wm_window_type_splash    = 0;
+ Atom            qt_net_wm_window_type_override	= 0;	// KDE extension
++Atom            qt_net_wm_window_type_dropdown_menu = 0;
++Atom            qt_net_wm_window_type_popup_menu    = 0;
++Atom            qt_net_wm_window_type_tooltip   = 0;
++Atom            qt_net_wm_window_type_combo     = 0;
++Atom            qt_net_wm_window_type_dnd       = 0;
+ Atom		qt_net_wm_frame_strut		= 0;	// KDE extension
+ Atom		qt_net_wm_state_stays_on_top	= 0;	// KDE extension
+ Atom		qt_net_wm_pid		= 0;
+@@ -1920,6 +1925,11 @@
+ 	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_UTILITY", &qt_net_wm_window_type_utility );
+ 	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_SPLASH", &qt_net_wm_window_type_splash );
+ 	qt_x11_intern_atom( "_KDE_NET_WM_WINDOW_TYPE_OVERRIDE", &qt_net_wm_window_type_override );
++	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", &qt_net_wm_window_type_dropdown_menu );
++	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_POPUP_MENU", &qt_net_wm_window_type_popup_menu );
++	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_TOOLTIP", &qt_net_wm_window_type_tooltip );
++	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_COMBO", &qt_net_wm_window_type_combo );
++	qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_DND", &qt_net_wm_window_type_dnd );
+ 	qt_x11_intern_atom( "_KDE_NET_WM_FRAME_STRUT", &qt_net_wm_frame_strut );
+ 	qt_x11_intern_atom( "_NET_WM_STATE_STAYS_ON_TOP",
+ 			    &qt_net_wm_state_stays_on_top );
+--- a/src/kernel/qwidget_x11.cpp
++++ b/src/kernel/qwidget_x11.cpp
+@@ -128,6 +128,11 @@
+ extern Atom qt_net_wm_window_type_utility;
+ extern Atom qt_net_wm_window_type_splash;
+ extern Atom qt_net_wm_window_type_override;
++extern Atom qt_net_wm_window_type_dropdown_menu;
++extern Atom qt_net_wm_window_type_popup_menu;
++extern Atom qt_net_wm_window_type_combo;
++extern Atom qt_net_wm_window_type_dnd;
++extern Atom qt_net_wm_window_type_tooltip;
+ extern Atom qt_net_wm_pid;
+ extern Atom qt_net_wm_user_time;
+ extern Atom qt_enlightenment_desktop;
+@@ -451,10 +456,6 @@
+ 					 x11Colormap() );
+ #endif // QT_NO_XFTFREETYPE
+ 
+-    // NET window types
+-    long net_wintypes[7] = { 0, 0, 0, 0, 0, 0, 0 };
+-    int curr_wintype = 0;
+-
+     // NET window states
+     long net_winstates[6] = { 0, 0, 0, 0, 0, 0 };
+     int curr_winstate = 0;
+@@ -476,7 +477,6 @@
+ 	if ( testWFlags(WStyle_Splash) ) {
+             if (qt_net_supports(qt_net_wm_window_type_splash)) {
+                 clearWFlags( WX11BypassWM );
+-                net_wintypes[curr_wintype++] = qt_net_wm_window_type_splash;
+ 	    } else {
+ 		setWFlags( WX11BypassWM | WStyle_Tool | WStyle_NoBorder );
+ 	    }
+@@ -485,27 +485,22 @@
+ 	    mwmhints.decorations = 0L;
+ 	    mwmhints.flags |= (1L << 1); // MWM_HINTS_DECORATIONS
+ 
+-	    if ( testWFlags( WStyle_NoBorder ) ) {
+-		// override netwm type - quick and easy for KDE noborder
+-		net_wintypes[curr_wintype++] = qt_net_wm_window_type_override;
+-	    } else {
+-		if ( testWFlags( WStyle_NormalBorder | WStyle_DialogBorder ) ) {
+-		    mwmhints.decorations |= (1L << 1); // MWM_DECOR_BORDER
+-		    mwmhints.decorations |= (1L << 2); //  MWM_DECOR_RESIZEH
+-		}
++	    if ( testWFlags( WStyle_NormalBorder | WStyle_DialogBorder ) ) {
++		mwmhints.decorations |= (1L << 1); // MWM_DECOR_BORDER
++		mwmhints.decorations |= (1L << 2); //  MWM_DECOR_RESIZEH
++	    }
+ 
+-		if ( testWFlags( WStyle_Title ) )
+-		    mwmhints.decorations |= (1L << 3); // MWM_DECOR_TITLE
++	    if ( testWFlags( WStyle_Title ) )
++		mwmhints.decorations |= (1L << 3); // MWM_DECOR_TITLE
+ 
+-		if ( testWFlags( WStyle_SysMenu ) )
+-		    mwmhints.decorations |= (1L << 4); // MWM_DECOR_MENU
++	    if ( testWFlags( WStyle_SysMenu ) )
++		mwmhints.decorations |= (1L << 4); // MWM_DECOR_MENU
+ 
+-		if ( testWFlags( WStyle_Minimize ) )
+-		    mwmhints.decorations |= (1L << 5); // MWM_DECOR_MINIMIZE
++	    if ( testWFlags( WStyle_Minimize ) )
++		mwmhints.decorations |= (1L << 5); // MWM_DECOR_MINIMIZE
+ 
+-		if ( testWFlags( WStyle_Maximize ) )
+-		    mwmhints.decorations |= (1L << 6); // MWM_DECOR_MAXIMIZE
+-	    }
++	    if ( testWFlags( WStyle_Maximize ) )
++		mwmhints.decorations |= (1L << 6); // MWM_DECOR_MAXIMIZE
+ 
+ 	    if (testWFlags(WStyle_Tool)) {
+ 		wsa.save_under = True;
+@@ -525,23 +520,6 @@
+ 	    }
+ 	}
+ 
+-	// ### need a better way to do this
+-	if (inherits("QPopupMenu")) {
+-	    // menu netwm type
+-	    net_wintypes[curr_wintype++] = qt_net_wm_window_type_menu;
+-	} else if (inherits("QToolBar")) {
+-	    // toolbar netwm type
+-	    net_wintypes[curr_wintype++] = qt_net_wm_window_type_toolbar;
+-	} else if (testWFlags(WStyle_Customize) && testWFlags(WStyle_Tool)) {
+-	    // utility netwm type
+-	    net_wintypes[curr_wintype++] = qt_net_wm_window_type_utility;
+-	}
+-
+-	if (dialog) // dialog netwm type
+-            net_wintypes[curr_wintype++] = qt_net_wm_window_type_dialog;
+-	// normal netwm type - default
+-	net_wintypes[curr_wintype++] = qt_net_wm_window_type_normal;
+-
+ 	// stays on top
+ 	if (testWFlags(WStyle_StaysOnTop)) {
+ 	    net_winstates[curr_winstate++] = qt_net_wm_state_above;
+@@ -576,6 +554,7 @@
+ 	wsa.save_under = True;
+ 	XChangeWindowAttributes( dpy, id, CWOverrideRedirect | CWSaveUnder,
+ 				 &wsa );
++	x11SetWindowType();
+     } else if ( topLevel && !desktop ) {	// top-level widget
+ 	QWidget *p = parentWidget();	// real parent
+ 	if (p)
+@@ -635,12 +614,7 @@
+         else
+             XDeleteProperty(dpy, id, qt_xa_motif_wm_hints);
+ 
+-	// set _NET_WM_WINDOW_TYPE
+-	if (curr_wintype > 0)
+-	    XChangeProperty(dpy, id, qt_net_wm_window_type, XA_ATOM, 32, PropModeReplace,
+-			    (unsigned char *) net_wintypes, curr_wintype);
+-        else
+-            XDeleteProperty(dpy, id, qt_net_wm_window_type);
++	x11SetWindowType();
+ 
+ 	// set _NET_WM_WINDOW_STATE
+ 	if (curr_winstate > 0)
+@@ -899,6 +873,64 @@
+ 	setMouseTracking(mouse_tracking);
+ }
+ 
++// Sets the EWMH (netwm) window type. Needed as a separate function
++// because create() may be too soon in some cases.
++void QWidget::x11SetWindowType( X11WindowType type )
++{
++    // NET window types
++    long net_wintypes[7] = { 0, 0, 0, 0, 0, 0, 0 };
++    int curr_wintype = 0;
++    if( testWFlags(WType_Desktop))
++        return;
++    if( type == X11WindowTypeSelect ) {
++        if ( testWFlags(WStyle_Splash)) {
++            if (qt_net_supports(qt_net_wm_window_type_splash)) {
++                net_wintypes[curr_wintype++] = qt_net_wm_window_type_splash;
++            }
++        } else if (inherits("QToolBar")) {
++	    // toolbar netwm type
++	    net_wintypes[curr_wintype++] = qt_net_wm_window_type_toolbar;
++        } else if (testWFlags(WStyle_Customize) && testWFlags(WStyle_Tool)) {
++	    // utility netwm type
++	    net_wintypes[curr_wintype++] = qt_net_wm_window_type_utility;
++        } else if (testWFlags(WType_Dialog)) {
++            // dialog netwm type
++            net_wintypes[curr_wintype++] = qt_net_wm_window_type_dialog;
++        }
++    } else if( type == X11WindowTypeCombo ) {
++        // combo netwm type
++	net_wintypes[curr_wintype++] = qt_net_wm_window_type_combo;
++    } else if( type == X11WindowTypeDND ) {
++        // dnd netwm type
++    	net_wintypes[curr_wintype++] = qt_net_wm_window_type_dnd;
++    } else if( type == X11WindowTypeDropdown ) {
++        // dropdown netwm type
++    	net_wintypes[curr_wintype++] = qt_net_wm_window_type_dropdown_menu;
++    } else if( type == X11WindowTypePopup ) {
++        // popup netwm type
++    	net_wintypes[curr_wintype++] = qt_net_wm_window_type_popup_menu;
++    } else if( type == X11WindowTypeMenu ) {
++        // menu netwm type
++	net_wintypes[curr_wintype++] = qt_net_wm_window_type_menu;
++    } else if( type == X11WindowTypeTooltip ) {
++        // tooltip netwm type
++    	net_wintypes[curr_wintype++] = qt_net_wm_window_type_tooltip;
++    }
++
++    // normal netwm type - default
++    net_wintypes[curr_wintype++] = qt_net_wm_window_type_normal;
++    // set _NET_WM_WINDOW_TYPE
++    if (curr_wintype > 0)
++        XChangeProperty(x11Display(), winId(), qt_net_wm_window_type, XA_ATOM, 32, PropModeReplace,
++			(unsigned char *) net_wintypes, curr_wintype);
++    else
++        XDeleteProperty(x11Display(), winId(), qt_net_wm_window_type);
++}
++
++void QWidget::x11SetWindowTransient( QWidget* parent )
++{
++    XSetTransientForHint( x11Display(), winId(), parent->winId());
++}
+ 
+ /*!
+     Translates the widget coordinate \a pos to global screen
+--- a/src/kernel/qwidget.h
++++ b/src/kernel/qwidget.h
+@@ -467,7 +467,19 @@
+     CGContextRef macCGContext(bool clipped=TRUE) const;
+ #endif
+ #endif
+-
++#if defined(Q_WS_X11)
++    enum X11WindowType {
++        X11WindowTypeSelect,
++        X11WindowTypeCombo,
++        X11WindowTypeDND,
++        X11WindowTypeTooltip,
++        X11WindowTypeMenu, // torn-off
++        X11WindowTypeDropdown,
++        X11WindowTypePopup
++    };
++    void x11SetWindowType( X11WindowType type = X11WindowTypeSelect );
++    void x11SetWindowTransient( QWidget* parent );
++#endif
+     void setWindowOpacity(double level);
+     double windowOpacity() const;
+ 
+--- a/src/dialogs/qdialog.cpp
++++ b/src/dialogs/qdialog.cpp
+@@ -708,7 +708,7 @@
+ 	&& qApp->mainWidget() && qApp->mainWidget()->isVisible()
+ 	&& !qApp->mainWidget()->isMinimized()) {
+ 	// make sure the transient for hint is set properly for modal dialogs
+-        XSetTransientForHint( x11Display(), winId(), qApp->mainWidget()->winId() );
++        x11SetWindowTransient( qApp->mainWidget());
+     }
+ #endif // Q_WS_X11
+ 
+--- a/src/widgets/qtooltip.cpp
++++ b/src/widgets/qtooltip.cpp
+@@ -75,6 +75,7 @@
+ 	polish();
+ 	setText(text);
+ 	adjustSize();
++        x11SetWindowType( X11WindowTypeTooltip );
+     }
+     void setWidth( int w ) { resize( sizeForWidth( w ) ); }
+ };
+@@ -531,6 +532,10 @@
+     if (!widget)
+ 	return;
+ 
++#ifdef Q_WS_X11
++    label->x11SetWindowTransient( widget->topLevelWidget());
++#endif
++
+ #ifdef Q_WS_MAC
+     QRect screen = QApplication::desktop()->availableGeometry( scr );
+ #else
+--- a/src/widgets/qcombobox.cpp
++++ b/src/widgets/qcombobox.cpp
+@@ -392,12 +392,8 @@
+     inline QListBox * listBox() { return lBox; }
+     inline QComboBoxPopup * popup() { return pop; }
+     void updateLinedGeometry();
+-
+-    void setListBox( QListBox *l ) { lBox = l ; usingLBox = TRUE;
+-				l->setMouseTracking( TRUE );}
+-
+-    void setPopupMenu( QComboBoxPopup * pm, bool isPopup=TRUE )
+-	{ pop = pm; if(isPopup) usingLBox = FALSE; }
++    void setListBox( QListBox *l );
++    void setPopupMenu( QComboBoxPopup * pm, bool isPopup=TRUE );
+ 
+     int		current;
+     int		maxCount;
+@@ -443,6 +439,30 @@
+ 	ed->setGeometry( r );
+ }
+ 
++void QComboBoxData::setListBox( QListBox *l )
++{
++    lBox = l;
++    usingLBox = TRUE;
++    l->setMouseTracking( TRUE );
++#ifdef Q_WS_X11
++    l->x11SetWindowType( QWidget::X11WindowTypeCombo );
++    l->x11SetWindowTransient( combo->topLevelWidget());
++#endif
++}
++
++void QComboBoxData::setPopupMenu( QComboBoxPopup * pm, bool isPopup )
++{
++    pop = pm;
++    if(isPopup)
++        usingLBox = FALSE;
++#ifdef Q_WS_X11
++    if( pm ) {
++        pm->x11SetWindowType( QWidget::X11WindowTypeCombo );
++        pm->x11SetWindowTransient( combo->topLevelWidget());
++    }
++#endif
++}
++
+ static inline bool checkInsertIndex( const char *method, const char * name,
+ 				     int count, int *index)
+ {
+--- a/src/widgets/qpopupmenu.cpp
++++ b/src/widgets/qpopupmenu.cpp
+@@ -301,6 +301,9 @@
+     connectModalRecursionSafety = 0;
+ 
+     setFocusPolicy( StrongFocus );
++#ifdef Q_WS_X11
++    x11SetWindowType( X11WindowTypePopup );
++#endif
+ }
+ 
+ /*!
+@@ -564,6 +567,29 @@
+ 	if ( y < sy )
+ 	    y = sy;
+     }
++#ifdef Q_WS_X11
++#ifndef QT_NO_MENUBAR
++    QMenuData *top = this;		// find top level
++    while ( top->parentMenu )
++	top = top->parentMenu;
++    if( top->isMenuBar )
++        x11SetWindowType( X11WindowTypeDropdown );
++    if( parentMenu && parentMenu->isMenuBar )
++        x11SetWindowTransient( static_cast< QMenuBar* >( parentMenu )->topLevelWidget());
++#endif
++    if( parentMenu && !parentMenu->isMenuBar )
++        x11SetWindowTransient( static_cast< QPopupMenu* >( parentMenu ));
++    if( !parentMenu ) {
++        // hackish ... try to find the main window related to this popup
++        QWidget* parent = parentWidget() ? parentWidget()->topLevelWidget() : NULL;
++        if( parent == NULL )
++            parent = QApplication::widgetAt( pos );
++        if( parent == NULL )
++            parent = qApp->activeWindow();
++        if( parent != NULL )
++            x11SetWindowTransient( parent );
++    }
++#endif
+ 
+     if ( x+w > sx+sw )				// the complete widget must
+ 	x = sx+sw - w;				//   be visible
+@@ -1393,6 +1419,13 @@
+ #if defined(QT_ACCESSIBILITY_SUPPORT)
+     QAccessible::updateAccessibility( this, 0, QAccessible::PopupMenuEnd );
+ #endif
++#ifndef QT_NO_MENUBAR
++    QMenuData *top = this;		// find top level
++    while ( top->parentMenu )
++	top = top->parentMenu;
++    if( top->isMenuBar )
++        x11SetWindowType( X11WindowTypePopup ); // reset
++#endif
+     parentMenu = 0;
+     hidePopups();
+     QWidget::hide();
+@@ -2716,6 +2749,9 @@
+ 		     geometry().topLeft(), FALSE );
+ 	p->mitems->setAutoDelete( FALSE );
+ 	p->tornOff = TRUE;
++#ifdef Q_WS_X11
++        p->x11SetWindowType( X11WindowTypeMenu );
++#endif
+ 	for ( QMenuItemListIt it( *mitems ); it.current(); ++it ) {
+ 	    if ( it.current()->id() != QMenuData::d->aInt && !it.current()->widget() )
+ 		p->mitems->append( it.current() );
--- qt-x11-free-3.3.8b.orig/debian/patches/02_various_fixes.diff
+++ qt-x11-free-3.3.8b/debian/patches/02_various_fixes.diff
@@ -0,0 +1,92 @@
+author: Martin Loschwitz <madkiss@madkiss.org>
+
+Fixes various smaller mistakes
+
+--- a/tools/designer/integration/designer.el
++++ b/tools/designer/integration/designer.el
+@@ -1,9 +1,9 @@
+-(defvar designer-exec (concat (getenv "QTDIR") "/bin/designer"))
++(defvar designer-exec "/usr/bin/designer")
+ 
+ (defun designer-open-ui-file ()
+   (interactive)
+   (defvar procname "designer")
+-  (start-process procname nil designer-exec "-style" "windows" "-client" buffer-file-name)
++  (start-process procname nil designer-exec "-client" buffer-file-name)
+ )
+ 
+ (defun designer-create-ui-file (&optional arg)
+--- a/tools/tools.pro
++++ b/tools/tools.pro
+@@ -6,7 +6,12 @@
+ 		      designer \
+ 		      assistant \
+ 		      linguist
+-    unix:SUBDIRS	+= qtconfig
++    unix:SUBDIRS	+= qtconfig \
++			mergetr \
++			qconfig \
++			makeqpf \
++			msg2qm \
++			qembed
+ }
+ 
+ CONFIG+=ordered
+--- a/tools/designer/designer.pro
++++ b/tools/designer/designer.pro
+@@ -5,7 +5,9 @@
+ SUBDIRS	=  uic \
+ 	   uilib \
+ 	   designer \
+-	   app
++	   app \
++	   tools/createcw \
++	   tools/conv2ui
+ 
+ dll:SUBDIRS *=  editor plugins
+ shared:SUBDIRS *=  editor plugins
+--- a/tools/designer/tools/createcw/createcw.pro
++++ b/tools/designer/tools/createcw/createcw.pro
+@@ -3,3 +3,6 @@
+ HEADERS		=
+ SOURCES		= main.cpp
+ TARGET		= createcw
++
++target.path = $$bins.path
++INSTALLS += target
+--- a/tools/makeqpf/makeqpf.pro
++++ b/tools/makeqpf/makeqpf.pro
+@@ -5,3 +5,6 @@
+ INTERFACES	=
+ TARGET		= makeqpf
+ REQUIRES=full-config nocrosscompiler
++
++target.path = $$bins.path
++INSTALLS += target
+--- a/tools/mergetr/mergetr.pro
++++ b/tools/mergetr/mergetr.pro
+@@ -4,3 +4,6 @@
+ SOURCES		= mergetr.cpp
+ TARGET		= mergetr
+ REQUIRES=full-config nocrosscompiler
++
++target.path = $$bins.path
++INSTALLS += target
+--- a/tools/msg2qm/msg2qm.pro
++++ b/tools/msg2qm/msg2qm.pro
+@@ -5,3 +5,6 @@
+ SOURCES		= msg2qm.cpp
+ TARGET		= msg2qm
+ REQUIRES=full-config nocrosscompiler
++
++target.path = $$bins.path
++INSTALLS += target
+--- a/tools/qembed/qembed.pro
++++ b/tools/qembed/qembed.pro
+@@ -2,3 +2,6 @@
+ SOURCES = qembed.cpp
+ TARGET  = qembed
+ REQUIRES=full-config nocrosscompiler
++
++target.path = $$bins.path
++INSTALLS += target
--- qt-x11-free-3.3.8b.orig/debian/patches/08_thread_default.diff
+++ qt-x11-free-3.3.8b/debian/patches/08_thread_default.diff
@@ -0,0 +1,11 @@
+--- a/mkspecs/linux-g++/qmake.conf
++++ b/mkspecs/linux-g++/qmake.conf
+@@ -5,7 +5,7 @@
+ 
+ MAKEFILE_GENERATOR	= UNIX
+ TEMPLATE		= app
+-CONFIG			+= qt warn_on release incremental link_prl
++CONFIG			+= qt warn_on release incremental link_prl thread
+ QMAKE_INCREMENTAL_STYLE = sublib
+ 
+ QMAKE_CC		= gcc
--- qt-x11-free-3.3.8b.orig/debian/patches/0032-fix_rotated_randr.diff
+++ qt-x11-free-3.3.8b/debian/patches/0032-fix_rotated_randr.diff
@@ -0,0 +1,21 @@
+qt-bugs@ issue : N34454
+bugs.kde.org number : 67101, 101516
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+This patch replaces the old #0032 patch.
+The real problem is https://bugs.freedesktop.org/show_bug.cgi?id=2965 ,
+so this patch is actually just a workaround.
+
+--- a/src/kernel/qapplication_x11.cpp
++++ b/src/kernel/qapplication_x11.cpp
+@@ -3407,7 +3407,8 @@
+ #endif
+ 
+ #ifndef QT_NO_XRANDR
+-    if (event->type == xrandr_eventbase + RRScreenChangeNotify) {
++    if (event->type == xrandr_eventbase + RRScreenChangeNotify
++	|| ( event->type == ConfigureNotify && event->xconfigure.window == QPaintDevice::x11AppRootWindow())) {
+ 	// update Xlib internals with the latest screen configuration
+ 	XRRUpdateConfiguration(event);
+ 
--- qt-x11-free-3.3.8b.orig/debian/patches/32_gtkstyle.diff
+++ qt-x11-free-3.3.8b/debian/patches/32_gtkstyle.diff
@@ -0,0 +1,114 @@
+--- a/src/widgets/qmenubar.cpp
++++ b/src/widgets/qmenubar.cpp
+@@ -231,6 +231,10 @@
+ static const int motifItemHMargin	= 5;	// menu item hor text margin
+ static const int motifItemVMargin	= 4;	// menu item ver text margin
+ 
++// The others are 0
++static const int gtkItemHMargin = 8;
++static const int gtkItemVMargin = 8;
++
+ /*
+ 
+ +-----------------------------
+@@ -295,7 +299,14 @@
+     setFrameStyle( QFrame::MenuBarPanel | QFrame::Raised );
+ 
+     QFontMetrics fm = fontMetrics();
+-    int h = 2*motifBarVMargin + fm.height() + motifItemVMargin + 2*frameWidth() + 2*motifItemFrame;
++
++    int h;
++    int gs = style().styleHint(QStyle::SH_GUIStyle);
++    if (gs == GtkStyle) {
++        h = fm.height() + gtkItemVMargin;
++    } else {
++        h = 2*motifBarVMargin + fm.height() + motifItemVMargin + 2*frameWidth() + 2*motifItemFrame;
++    }
+ 
+     setGeometry( 0, 0, width(), h );
+ 
+@@ -949,12 +960,19 @@
+ 	    h = QMAX( mi->pixmap()->height() + 4, QApplication::globalStrut().height() );
+ 	} else if ( !mi->text().isNull() ) {	// text item
+ 	    QString s = mi->text();
+-	    w = fm.boundingRect( s ).width()
+-		+ 2*motifItemHMargin;
++        if ( gs == GtkStyle ) {
++            w = fm.boundingRect( s ).width() + 2*gtkItemHMargin;
++        } else {
++	        w = fm.boundingRect( s ).width() + 2*motifItemHMargin;
++        }
+ 	    w -= s.contains('&')*fm.width('&');
+ 	    w += s.contains("&&")*fm.width('&');
+ 	    w = QMAX( w, QApplication::globalStrut().width() );
+-	    h = QMAX( fm.height() + motifItemVMargin, QApplication::globalStrut().height() );
++        if (gs == GtkStyle ) {
++            h = QMAX( fm.height() + gtkItemVMargin, QApplication::globalStrut().height() );
++        } else {
++	        h = QMAX( fm.height() + motifItemVMargin, QApplication::globalStrut().height() );
++        }
+ 	} else if ( mi->isSeparator() ) {	// separator item
+ 	    if ( style().styleHint(QStyle::SH_GUIStyle) == MotifStyle )
+ 		separator = i; //### only motif?
+--- a/src/widgets/qpopupmenu.cpp
++++ b/src/widgets/qpopupmenu.cpp
+@@ -68,6 +68,8 @@
+ static const int motifArrowHMargin	= 6;	// arrow horizontal margin
+ static const int motifArrowVMargin	= 2;	// arrow vertical margin
+ 
++static const int gtkArrowHMargin	= 0;	// arrow horizontal margin
++static const int gtkArrowVMargin	= 0;	// arrow vertical margin
+ 
+ /*
+ 
+@@ -2348,8 +2350,18 @@
+     QRect r( itemGeometry( actItem ) );
+     QPoint p;
+     QSize ps = popup->sizeHint();
++    // GUI Style
++    int gs = style().styleHint(QStyle::SH_GUIStyle);
++    int arrowHMargin, arrowVMargin;
++    if (gs == GtkStyle) {
++        arrowHMargin = gtkArrowHMargin;
++        arrowVMargin = gtkArrowVMargin;
++    } else {
++        arrowHMargin = motifArrowHMargin;
++        arrowVMargin = motifArrowVMargin;
++    }
+     if( QApplication::reverseLayout() ) {
+-	p = QPoint( r.left() + motifArrowHMargin - ps.width(), r.top() + motifArrowVMargin );
++	p = QPoint( r.left() + arrowHMargin - ps.width(), r.top() + arrowVMargin );
+ 	p = mapToGlobal( p );
+ 
+ 	bool right = FALSE;
+@@ -2362,7 +2374,7 @@
+ 	if ( right )
+ 	    p.setX( mapToGlobal( r.topRight() ).x() );
+     } else {
+-	p = QPoint( r.right() - motifArrowHMargin, r.top() + motifArrowVMargin );
++	p = QPoint( r.right() - arrowHMargin, r.top() + arrowVMargin );
+ 	p = mapToGlobal( p );
+ 
+ 	bool left = FALSE;
+--- a/src/kernel/qnamespace.h
++++ b/src/kernel/qnamespace.h
+@@ -297,7 +297,8 @@
+ #ifdef QT_NO_COMPAT
+     enum GUIStyle {
+ 	WindowsStyle = 1,     // ### Qt 4.0: either remove the obsolete enums or clean up compat vs.
+-	MotifStyle = 4        // ### QT_NO_COMPAT by reordering or combination into one enum.
++	MotifStyle = 4,       // ### QT_NO_COMPAT by reordering or combination into one enum.
++    GtkStyle = 6          // Gtk compability mode
+     };
+ #else
+     enum GUIStyle {
+@@ -305,7 +306,8 @@
+ 	WindowsStyle,
+ 	Win3Style, // OBSOLETE
+ 	PMStyle, // OBSOLETE
+-	MotifStyle
++	MotifStyle,
++    GtkStyle = 6          // Gtk compability mode
+     };
+ #endif
+ 
--- qt-x11-free-3.3.8b.orig/debian/patches/16_fix_opengl_check.diff
+++ qt-x11-free-3.3.8b/debian/patches/16_fix_opengl_check.diff
@@ -0,0 +1,30 @@
+--- a/src/opengl/qgl_x11.cpp
++++ b/src/opengl/qgl_x11.cpp
+@@ -128,7 +128,7 @@
+     if (gl_syms_resolved)
+ 	return TRUE;
+ 
+-    QLibrary gl("GL");
++    QLibrary gl("GL.so.1");
+     gl.setAutoUnload(FALSE);
+ 
+     qt_glCallLists = (_glCallLists) gl.resolve("glCallLists");
+@@ -286,7 +286,7 @@
+ 	typedef Status (*_XmuLookupStandardColormap)( Display *dpy, int screen, VisualID visualid, unsigned int depth,
+ 						      Atom property, Bool replace, Bool retain );
+ 	_XmuLookupStandardColormap qt_XmuLookupStandardColormap;
+-	qt_XmuLookupStandardColormap = (_XmuLookupStandardColormap) QLibrary::resolve("Xmu", "XmuLookupStandardColormap");
++	qt_XmuLookupStandardColormap = (_XmuLookupStandardColormap) QLibrary::resolve("Xmu.so.6", "XmuLookupStandardColormap");
+ 	if (!qt_XmuLookupStandardColormap)
+ 	    qFatal("Unable to resolve Xmu symbols - please check your Xmu library installation.");
+ #define XmuLookupStandardColormap qt_XmuLookupStandardColormap
+--- a/src/tools/qlibrary.cpp
++++ b/src/tools/qlibrary.cpp
+@@ -429,6 +429,7 @@
+ 	    } else {
+ 		tmpfilename = QString( "lib%1" ).arg( filename );
+ 	    }
++	    if ( !filename.contains(".so") )
+ 	    tmpfilename += filter;
+ 	    if(QFile::exists(tmpfilename) || it == filters.end()) {
+ 		filename = tmpfilename;
--- qt-x11-free-3.3.8b.orig/debian/patches/0002-dnd_active_window_fix.diff
+++ qt-x11-free-3.3.8b/debian/patches/0002-dnd_active_window_fix.diff
@@ -0,0 +1,189 @@
+qt-bugs@ issue : 25122
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+ Hello,
+ 
+ for example: Open Konqueror window, showing some files. Start dragging one 
+ desktop icon. If you press/release Ctrl, there'll be a '+' attached to the 
+ icon, showing the DND operation. Now, while still doing DND, make the 
+ Konqueror window active (Alt+Tab with KDE-3.1.2+, hover over its taskbar 
+ entry, Ctrl+Fn to switch to a different virtual desktop, etc.). As soon as 
+ the app performing DND is not the active application, and the mouse is not 
+ moving, pressing/releasing Ctrl doesn't do anything, the state only updates 
+ when the mouse is moved.
+ 
+ This is caused by the fact that Qt has only pointer grab when doing DND, but 
+ doesn't have keyboard grab. I actually consider this a good thing, because 
+ the only keys important for DND are modifiers, and they come together with 
+ pointer events, and not having keyboard grab allows using keyboard shortcuts 
+ like Alt+Tab while DND. However, when the mouse is not moved, and only a 
+ modifier key is pressed/released, the app won't get any mouse event, and 
+ won't also get the keyboard event.
+
+ The attached patch changes Qt to explicitly check the modifiers state using 
+ XQueryPointer() if there's wasn't recently any mouse/keyboard event, which 
+ ensures the state is updated even in the situation described above.
+
+--- a/src/kernel/qapplication_x11.cpp
++++ b/src/kernel/qapplication_x11.cpp
+@@ -3975,7 +3975,7 @@
+ // Keyboard event translation
+ //
+ 
+-static int translateButtonState( int s )
++int qt_x11_translateButtonState( int s )
+ {
+     int bst = 0;
+     if ( s & Button1Mask )
+@@ -4041,7 +4041,7 @@
+ 	pos.ry() = lastMotion.y;
+ 	globalPos.rx() = lastMotion.x_root;
+ 	globalPos.ry() = lastMotion.y_root;
+-	state = translateButtonState( lastMotion.state );
++	state = qt_x11_translateButtonState( lastMotion.state );
+ 	if ( qt_button_down && (state & (LeftButton |
+ 					 MidButton |
+ 					 RightButton ) ) == 0 )
+@@ -4065,7 +4065,7 @@
+ 	pos.ry() = xevent->xcrossing.y;
+ 	globalPos.rx() = xevent->xcrossing.x_root;
+ 	globalPos.ry() = xevent->xcrossing.y_root;
+-	state = translateButtonState( xevent->xcrossing.state );
++	state = qt_x11_translateButtonState( xevent->xcrossing.state );
+ 	if ( qt_button_down && (state & (LeftButton |
+ 					 MidButton |
+ 					 RightButton ) ) == 0 )
+@@ -4077,7 +4077,7 @@
+ 	pos.ry() = event->xbutton.y;
+ 	globalPos.rx() = event->xbutton.x_root;
+ 	globalPos.ry() = event->xbutton.y_root;
+-	state = translateButtonState( event->xbutton.state );
++	state = qt_x11_translateButtonState( event->xbutton.state );
+ 	switch ( event->xbutton.button ) {
+ 	case Button1: button = LeftButton; break;
+ 	case Button2: button = MidButton; break;
+@@ -5023,7 +5023,7 @@
+     XKeyEvent xkeyevent = event->xkey;
+ 
+     // save the modifier state, we will use the keystate uint later by passing
+-    // it to translateButtonState
++    // it to qt_x11_translateButtonState
+     uint keystate = event->xkey.state;
+     // remove the modifiers where mode_switch exists... HPUX machines seem
+     // to have alt *AND* mode_switch both in Mod1Mask, which causes
+@@ -5137,7 +5137,7 @@
+     }
+ #endif // !QT_NO_XIM
+ 
+-    state = translateButtonState( keystate );
++    state = qt_x11_translateButtonState( keystate );
+ 
+     static int directionKeyEvent = 0;
+     if ( qt_use_rtl_extensions && type == QEvent::KeyRelease ) {
+--- a/src/kernel/qdnd_x11.cpp
++++ b/src/kernel/qdnd_x11.cpp
+@@ -118,6 +118,8 @@
+ Atom qt_xdnd_type_list;
+ const int qt_xdnd_version = 4;
+ 
++extern int qt_x11_translateButtonState( int s );
++
+ // Actions
+ //
+ // The Xdnd spec allows for user-defined actions. This could be implemented
+@@ -203,6 +205,8 @@
+ static int qt_xdnd_current_screen = -1;
+ // state of dragging... true if dragging, false if not
+ bool qt_xdnd_dragging = FALSE;
++// need to check state of keyboard modifiers
++static bool need_modifiers_check = FALSE;
+ 
+ // dict of payload data, sorted by type atom
+ static QIntDict<QByteArray> * qt_xdnd_target_data = 0;
+@@ -900,8 +904,20 @@
+ 
+ void QDragManager::timerEvent( QTimerEvent* e )
+ {
+-    if ( e->timerId() == heartbeat && qt_xdnd_source_sameanswer.isNull() )
+-	move( QCursor::pos() );
++    if ( e->timerId() == heartbeat ) {
++        if( need_modifiers_check ) {
++            Window root, child;
++            int root_x, root_y, win_x, win_y;
++            unsigned int mask;
++            XQueryPointer( qt_xdisplay(), qt_xrootwin( qt_xdnd_current_screen ),
++                &root, &child, &root_x, &root_y, &win_x, &win_y, &mask );
++            if( updateMode( (ButtonState)qt_x11_translateButtonState( mask )))
++                qt_xdnd_source_sameanswer = QRect(); // force move
++        }
++        need_modifiers_check = TRUE;
++        if( qt_xdnd_source_sameanswer.isNull() )
++	    move( QCursor::pos() );
++    }
+ }
+ 
+ static bool qt_xdnd_was_move = false;
+@@ -969,6 +985,7 @@
+ 	    updateMode(me->stateAfter());
+ 	    move( me->globalPos() );
+ 	}
++        need_modifiers_check = FALSE;
+ 	return TRUE;
+     } else if ( e->type() == QEvent::MouseButtonRelease ) {
+ 	qApp->removeEventFilter( this );
+@@ -1007,9 +1024,11 @@
+ 	    beingCancelled = FALSE;
+ 	    qApp->exit_loop();
+ 	} else {
+-	    updateMode(ke->stateAfter());
+-	    qt_xdnd_source_sameanswer = QRect(); // force move
+-	    move( QCursor::pos() );
++	    if( updateMode(ke->stateAfter())) {
++	        qt_xdnd_source_sameanswer = QRect(); // force move
++	        move( QCursor::pos() );
++            }
++            need_modifiers_check = FALSE;
+ 	}
+ 	return TRUE; // Eat all key events
+     }
+@@ -1036,10 +1055,10 @@
+ 
+ 
+ static Qt::ButtonState oldstate;
+-void QDragManager::updateMode( ButtonState newstate )
++bool QDragManager::updateMode( ButtonState newstate )
+ {
+     if ( newstate == oldstate )
+-	return;
++	return false;
+     const int both = ShiftButton|ControlButton;
+     if ( (newstate & both) == both ) {
+ 	global_requested_action = QDropEvent::Link;
+@@ -1063,6 +1082,7 @@
+ 	}
+     }
+     oldstate = newstate;
++    return true;
+ }
+ 
+ 
+@@ -1769,6 +1789,7 @@
+     qt_xdnd_source_sameanswer = QRect();
+     move(QCursor::pos());
+     heartbeat = startTimer(200);
++    need_modifiers_check = FALSE;
+ 
+ #ifndef QT_NO_CURSOR
+     qApp->setOverrideCursor( arrowCursor );
+--- a/src/kernel/qdragobject.h
++++ b/src/kernel/qdragobject.h
+@@ -252,7 +252,7 @@
+ 
+ private:
+     QDragObject * object;
+-    void updateMode( ButtonState newstate );
++    bool updateMode( ButtonState newstate );
+     void updateCursor();
+ #if defined(Q_WS_X11)
+     void createCursors();
--- qt-x11-free-3.3.8b.orig/debian/patches/15_unify_declarations_glibc.diff
+++ qt-x11-free-3.3.8b/debian/patches/15_unify_declarations_glibc.diff
@@ -0,0 +1,74 @@
+Robert Millan <rmh@debian.org>
+
+unify declarations for Glibc-based systems in upstream files
+
+--- a/configure
++++ b/configure
+@@ -1324,7 +1324,7 @@
+ 	    XPLATFORM="qws/solaris-$CFG_EMBEDDED-g++"
+ 	fi
+ 	;;
+-    Linux:*)
++    Linux:*|GNU:*|GNU/*:*)
+ 	if [ -z "$PLATFORM" ]; then
+ 	    case "$UNAME_MACHINE" in
+ 	    *86)
+@@ -1379,9 +1379,6 @@
+      QNX:*)
+ 	PLATFORM=qnx-g++
+ 	;;
+-     GNU:*)
+-	PLATFORM=hurd-g++
+-	;;
+      dgux:*)
+ 	PLATFORM=dgux-g++
+ 	;;
+@@ -1428,7 +1425,7 @@
+ 	    - Also available for Tru64: tru64-g++
+ 	"
+ 	;;
+-     Linux:*)
++     Linux:*|GNU:*|GNU/*:*)
+ 	PLATFORM=linux-g++
+ 	PLATFORM_NOTES="
+ 	    - Also available for Linux: linux-kcc linux-icc linux-cxx
+--- a/doc/html/qglobal-h.html
++++ b/doc/html/qglobal-h.html
+@@ -151,7 +151,7 @@
+ #  define Q_OS_ULTRIX
+ #elif defined(sinix)
+ #  define Q_OS_RELIANT
+-#elif defined(__linux__) || defined(__linux)
++#elif defined(__linux__) || defined(__linux) || defined(__GNU__) || defined(__GLIBC__)
+ #  define Q_OS_LINUX
+ #elif defined(__FreeBSD__) || defined(__DragonFly__)
+ #  define Q_OS_FREEBSD
+@@ -173,8 +173,6 @@
+ #  define Q_OS_AIX
+ #elif defined(__Lynx__)
+ #  define Q_OS_LYNX
+-#elif defined(__GNU_HURD__)
+-#  define Q_OS_HURD
+ #elif defined(__DGUX__)
+ #  define Q_OS_DGUX
+ #elif defined(__QNXNTO__)
+--- a/src/tools/qglobal.h
++++ b/src/tools/qglobal.h
+@@ -115,7 +115,7 @@
+ #  define Q_OS_ULTRIX
+ #elif defined(sinix)
+ #  define Q_OS_RELIANT
+-#elif defined(__linux__) || defined(__linux)
++#elif defined(__linux__) || defined(__linux) || defined(__GNU__) || defined(__GLIBC__)
+ #  define Q_OS_LINUX
+ #elif defined(__FreeBSD__) || defined(__DragonFly__)
+ #  define Q_OS_FREEBSD
+@@ -137,8 +137,6 @@
+ #  define Q_OS_AIX
+ #elif defined(__Lynx__)
+ #  define Q_OS_LYNX
+-#elif defined(__GNU_HURD__)
+-#  define Q_OS_HURD
+ #elif defined(__DGUX__)
+ #  define Q_OS_DGUX
+ #elif defined(__QNXNTO__)
--- qt-x11-free-3.3.8b.orig/debian/patches/65_gcc-4.2_qbuttons.h-fix.diff
+++ qt-x11-free-3.3.8b/debian/patches/65_gcc-4.2_qbuttons.h-fix.diff
@@ -0,0 +1,24 @@
+author: Sune Vuorela <debian@pusling.com>
+
+fixes compilation issues of programs using qbuttons.h with gcc4.2
+
+--- a/src/widgets/qbutton.h
++++ b/src/widgets/qbutton.h
+@@ -183,7 +183,7 @@
+ 
+ inline bool QButton::isToggleButton() const
+ {
+-    return toggleTyp != SingleShot;
++    return ToggleType(toggleTyp) != SingleShot;
+ }
+ 
+ inline  bool QButton::isDown() const
+@@ -193,7 +193,7 @@
+ 
+ inline bool QButton::isOn() const
+ {
+-    return stat != Off;
++    return ToggleState(stat) != Off;
+ }
+ 
+ #ifndef QT_NO_COMPAT
--- qt-x11-free-3.3.8b.orig/debian/patches/0059-qpopup_has_mouse.diff
+++ qt-x11-free-3.3.8b/debian/patches/0059-qpopup_has_mouse.diff
@@ -0,0 +1,68 @@
+qt-bugs@ issue : 49417
+bugs.kde.org number : 58719
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+Hello,
+
+ please consider applying the two attached QPopupMenu patches fixing KDE bugs 
+ #58719 and #74778 (http://bugs.kde.org/show_bug.cgi?id=58719, 
+ http://bugs.kde.org/show_bug.cgi?id=74778), which complain about keyboard 
+ navigation in popup menus being very uncomfortable because of being affected 
+ by mouse position despite mouse not being used at all.
+ 
+ - hasmouse.patch - (#58719) - use keyboard to open and navigate in any popup 
+ menu and "accidentally" hit your mouse. Depending on the mouse cursor 
+ position either no popup entry is selected or the random popup entry 
+ happening to be at the cursor position becomes highlighted. The patch 
+ basically copies the 'hasmouse' code from QMenuBar which prevents the mouse 
+ having any effect on the popup if it's outside the popup geometry.
+
+ [ ... #74778 ... ] 
+ 
+--- a/src/widgets/qpopupmenu.cpp
++++ b/src/widgets/qpopupmenu.cpp
+@@ -256,6 +256,7 @@
+     } scroll;
+     QSize calcSize;
+     QRegion mouseMoveBuffer;
++    uint hasmouse : 1;
+ };
+ 
+ static QPopupMenu* active_popup_menu = 0;
+@@ -275,6 +276,7 @@
+     d->scroll.scrollableSize = d->scroll.topScrollableIndex = 0;
+     d->scroll.scrollable = QPopupMenuPrivate::Scroll::ScrollNone;
+     d->scroll.scrolltimer = 0;
++    d->hasmouse = 0;
+     isPopupMenu	  = TRUE;
+ #ifndef QT_NO_ACCEL
+     autoaccel	  = 0;
+@@ -1744,6 +1746,11 @@
+ 
+     int	 item = itemAtPos( e->pos() );
+     if ( item == -1 ) {				// no valid item
++        if( !d->hasmouse ) {
++            tryMenuBar( e );
++            return;
++        }
++        d->hasmouse = 0;
+ 	int lastActItem = actItem;
+ 	actItem = -1;
+ 	if ( lastActItem >= 0 )
+@@ -1755,6 +1762,7 @@
+ 	}
+     } else {					// mouse on valid item
+ 	// but did not register mouse press
++        d->hasmouse = 1;
+ 	if ( (e->state() & Qt::MouseButtonMask) && !mouseBtDn )
+ 	    mouseBtDn = TRUE; // so mouseReleaseEvent will pop down
+ 
+@@ -2163,6 +2171,7 @@
+ */
+ void QPopupMenu::leaveEvent( QEvent * )
+ {
++    d->hasmouse = 0;
+     if ( testWFlags( WStyle_Tool ) && style().styleHint(QStyle::SH_PopupMenu_MouseTracking, this) ) {
+ 	int lastActItem = actItem;
+ 	actItem = -1;
--- qt-x11-free-3.3.8b.orig/debian/patches/73_configure_quilt_compat.diff
+++ qt-x11-free-3.3.8b/debian/patches/73_configure_quilt_compat.diff
@@ -0,0 +1,11 @@
+--- qt-x11-free-3.3.8b/configure	2008-02-20 23:34:39.000000000 +0200
++++ qt-x11-free-3.3.8b/configure	2008-02-20 23:35:12.000000000 +0200
+@@ -3634,7 +3634,7 @@
+ 
+ echo "Finding project files. Please wait..."
+ if [ -z "$QMAKE_PROJECTS" ]; then
+-    QMAKE_PROJECTS=`find $relpath/. -name '*.pro' -print | sed 's-/\./-/-'`
++    QMAKE_PROJECTS=`find $relpath/. -name '.pc' -prune -o -name '*.pro' -print | sed 's-/\./-/-'`
+ else
+     QT_PROJECTS=
+     for a in `echo $QMAKE_PROJECTS`; do
--- qt-x11-free-3.3.8b.orig/debian/patches/19_qfontdatabase_hack.diff
+++ qt-x11-free-3.3.8b/debian/patches/19_qfontdatabase_hack.diff
@@ -0,0 +1,13 @@
+--- a/src/kernel/qfontdatabase.cpp
++++ b/src/kernel/qfontdatabase.cpp
+@@ -689,6 +689,10 @@
+     }
+ 
+     FM_DEBUG( "          best style has distance 0x%x", dist );
++    if (!foundry->count) {
++        QtFontStyle *temp = NULL;
++        return temp;
++    }
+     return foundry->styles[best];
+ }
+ 
--- qt-x11-free-3.3.8b.orig/debian/patches/46_immodule_keyrelease_fix.diff
+++ qt-x11-free-3.3.8b/debian/patches/46_immodule_keyrelease_fix.diff
@@ -0,0 +1,17 @@
+--- a/src/kernel/qapplication_x11.cpp
++++ b/src/kernel/qapplication_x11.cpp
+@@ -5264,11 +5264,12 @@
+     } else {
+ 	key = (int)(long)keyDict->find( keycode );
+ 	if ( key )
+-	    if( !willRepeat ) // Take out key of dictionary only if this call.
++	    if( !willRepeat && statefulTranslation ) // Take out key of dictionary only if this call.
+ 		keyDict->take( keycode );
+ 	long s = (long)textDict->find( keycode );
+ 	if ( s ) {
+-	    textDict->take( keycode );
++	     if( statefulTranslation )
++		textDict->take( keycode );
+ 	    ascii = (char)(s-256);
+ 	}
+     }
--- qt-x11-free-3.3.8b.orig/debian/patches/70_bad_typecast_amd64.diff
+++ qt-x11-free-3.3.8b/debian/patches/70_bad_typecast_amd64.diff
@@ -0,0 +1,14 @@
+author: Damyan Ivanov <dmn@debian.org>
+
+@DPATCH@
+--- a/src/sql/drivers/ibase/qsql_ibase.cpp
++++ b/src/sql/drivers/ibase/qsql_ibase.cpp
+@@ -767,7 +767,7 @@
+     : QSqlDriver(parent, name ? name : QIBASE_DRIVER_NAME)
+ {
+     d = new QIBaseDriverPrivate(this);
+-    d->ibase = (isc_db_handle)connection;
++    d->ibase = (isc_db_handle)(long int)connection;
+     setOpen(TRUE);
+     setOpenError(FALSE);
+ }
--- qt-x11-free-3.3.8b.orig/debian/patches/61_eastern_asian_languagues.diff
+++ qt-x11-free-3.3.8b/debian/patches/61_eastern_asian_languagues.diff
@@ -0,0 +1,39 @@
+--- qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp	2008-01-15 21:09:13.000000000 +0200
++++ qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp	2008-03-10 11:34:22.000000000 +0200
+@@ -966,20 +966,22 @@
+ 
+ #ifdef Q_WS_X11
+     if (script == QFont::Han) {
+-	// modify script according to locale
+-	static QFont::Script defaultHan = QFont::UnknownScript;
+-	if (defaultHan == QFont::UnknownScript) {
+-	    QCString locale = setlocale(LC_ALL, NULL);
+-	    if (locale.contains("ko"))
+-		defaultHan = QFont::Han_Korean;
+-	    else if (locale.contains("zh_TW") || locale.contains("zh_HK"))
+-		defaultHan = QFont::Han_TraditionalChinese;
+-	    else if (locale.contains("zh"))
+-		defaultHan = QFont::Han_SimplifiedChinese;
+-	    else
+-		defaultHan = QFont::Han_Japanese;
+-	}
+-	script = defaultHan;
++        // modify script according to locale
++        static QFont::Script defaultHan;
++        QCString locale = setlocale(LC_ALL, NULL);
++
++        if (locale.contains("ko"))
++            defaultHan = QFont::Han_Korean;
++        else if (locale.contains("zh_TW") || locale.contains("zh_HK"))
++            defaultHan = QFont::Han_TraditionalChinese;
++        else if (locale.contains("zh"))
++            defaultHan = QFont::Han_SimplifiedChinese;
++        else if (locale.contains("ja"))
++            defaultHan = QFont::Han_Japanese;
++        else
++            defaultHan = QFont::Han; // don't change
++
++        script = defaultHan;
+     }
+ #endif
+ 
--- qt-x11-free-3.3.8b.orig/debian/patches/10_arm_gcc4.diff
+++ qt-x11-free-3.3.8b/debian/patches/10_arm_gcc4.diff
@@ -0,0 +1,22 @@
+--- a/src/tools/qglobal.h
++++ b/src/tools/qglobal.h
+@@ -320,7 +320,7 @@
+    supposedly know what you are doing.) */
+ #  if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
+ #    define Q_PACKED __attribute__ ((packed))
+-#    if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
++#    if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3
+ #      define Q_NO_PACKED_REFERENCE
+ #    endif
+ #  endif
+--- a/src/tools/qstring.h
++++ b/src/tools/qstring.h
+@@ -197,7 +197,7 @@
+     char latin1() const { return ucs > 0xff ? 0 : (char) ucs; }
+     ushort unicode() const { return ucs; }
+ #ifdef Q_NO_PACKED_REFERENCE
+-    ushort &unicode() { return *(&ucs); }
++    ushort &unicode() { return *((ushort*)&ucs); }
+ #else
+     ushort &unicode() { return ucs; }
+ #endif
--- qt-x11-free-3.3.8b.orig/debian/patches/45_immodule_unified.diff
+++ qt-x11-free-3.3.8b/debian/patches/45_immodule_unified.diff
@@ -0,0 +1,16172 @@
+--- /dev/null
++++ b/ChangeLog.immodule
+@@ -0,0 +1,2027 @@
++2004-09-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* changes.immodule
++	  - Describe a bugfix
++	
++2004-09-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/inputmethod/qinputcontextinterface_p.h
++	  - Update UUID of QInputContextFactory in accordance with API change
++	    of QInputContext to avoid loading old invalid plugins
++	
++2004-09-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* README.immodule
++	  - Add 'About this release' section
++	  - Update version information
++	  - Update to follow the change of configure options
++	  - Modify some English expressions
++	
++	* changes.immodule
++	  - Move release information to README.immodule
++	  - Add differences from previous release
++	  - Add description about incremental change indication
++	
++	* ChangeLog.immodule
++	  - Update
++	
++2004-09-09  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qapplication.cpp
++	  - (removePostedEvents):
++	    * Fix infinite loop condition
++	    * delete receiver->postedEvents if the list has been empty
++	
++2004-09-09  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit backports some code fragments from Qt4 branch to make
++	  input method plugins source compatible with Qt4.
++	
++	* src/kernel/qinputcontext.cpp
++	  - (QInputContext): Add 'parent' arg
++	
++	* src/kernel/qinputcontext.h
++	  - Exclude qptrlist.h when compile with Qt4
++	  - (struct QInputContextMenu): Exclude member variables when compile
++	    with Qt4
++	  - (QInputContext): Add 'parent' arg
++	  - (addActionsTo): New function for Qt4
++	
++2004-09-08  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit renames input method module from 'input' to 'inputmehod'
++	  because the name 'input' is too generic to indicate its function
++	
++	* configure
++	  - Replace configuration options '-im' and '-im-ext' with
++	    '-inputmethod' and '-inputmethod-ext' to be consistent with the
++	    name of input method module subdirectory 'inputmethod'
++	  - Rename the module name 'input' with 'inputmethod'
++	
++	* src/qt.pro
++	  - Rename the module name 'input' with 'inputmethod'
++	  - Rename some variable names inaccordance with the renaming of the
++	    module
++	  - Replace 'qt_input.pri' with 'qt_inputmethod.pri' in accordance
++	    with the renaming of the file
++	
++	* src/inputmethod/qt_input.pri
++	  - Rename to qt_inputmethod.pri
++	* src/inputmethod/qt_input.pri
++	  - Renamed from qt_input.pri
++	  - Replace module names
++	  - Rename some variable names inaccordance with the renaming of the
++	    module
++	
++2004-09-08  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* Rename input module subdirectory from "input" to "inputmethod"
++	
++2004-09-08  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit contains following issues
++	  - An API change. Return type of QInputContext::identifierName and
++	    QInputContext::language has been changed from QCString which is
++	    deprecated in Qt4 to QString to make plugins source compatible
++	    with Qt4.
++	  - Other backports from Qt4 branch
++	  - Fix event receiving order inversion between QKeyEvent and
++	    QIMEvent. The code is implemented based on Cougar's and
++	    Kazuki's. Thank you the efforts. See following discussion for
++	    further information.
++	    http://freedesktop.org/pipermail/immodule-qt/2004-September/000447.html
++	    http://freedesktop.org/pipermail/immodule-qt/2004-September/000497.html
++	
++	* src/kernel/qinputcontext.h
++	  - (identifierName, language): Change return type from QCString to QString
++	  - (addMenusTo): Make Qt3 specific
++	* src/kernel/qinputcontext.cpp
++	  - (identifierName):
++	    * Change return type from QCString to QString
++	    * Modify the function description comment
++	  - (language): Change return type from QCString to QString
++	
++	* src/kernel/qwidget.cpp
++	  - (clearFocus): Enclose immodule specific code by #if
++	    defined(Q_WS_X11)
++	
++	* src/kernel/qapplication.h
++	  - Add 'class QIMEvent' declaration
++	  - (removePostedEvents): New overriding function
++	* src/kernel/qapplication_x11.cpp
++	  - Remove redundant 'class QInputContext' declaration
++	  - (postIMEvent): Fix the event receiving order inversion problem
++	  - (x11_apply_settings): Replace QString::find() which is deprecated
++	    in Qt4 with QString::startsWith()
++	  - (postEvent): Fix invalid QIMEvent compression that ignores IMStart
++	    boundary
++	  - (removePostedEvents): Original version of the function. Replace
++	    the implementation with 2-args version. The behavior is not
++	    changed
++	  - (removePostedEvents): New overriding function. This function only
++	    removes events that has specified event type. The implementation
++	    is copied from original version of the function and modified to
++	    accept event_type. This function is required by postIMEvent()
++	  - (setActiveWindow): Enclose immodule specific code by #if
++	    defined(Q_WS_X11)
++	
++	* src/input/qinputcontextinterface_p.h
++	  - Modify a coding style to follow Trolltech's one for Qt3
++	
++	* src/input/qinputcontextplugin.h
++	  - Fix typos in comment
++	* src/input/qinputcontextplugin.cpp
++	  - (keys, QInputContextPlugin, ~QInputContextPlugin): Modify the
++	    function description comment
++	
++	* src/input/qinputcontextfactory.h
++	  - Remove #include "qinputcontext.h" to reduce compilation dependency
++	  - Add 'class QWidget' declaration
++	  - Remove inappropriate #ifndef QT_NO_STRINGLIST. QStringList is now
++	    required feature for immodule. See also changes of qfeatures.h
++	* src/input/qinputcontextfactory.cpp
++	  - Add #include "qinputcontext.h"
++	  - Remove unnecessary #include "qpopupmenu.h"
++	  - Remove inappropriate #ifndef QT_NO_STRINGLIST. QStringList is now
++	    required feature for immodule. See also changes of qfeatures.h
++	
++	* src/tools/qfeatures.h
++	  - Define QT_NO_IM if QT_NO_STRINGLIST is defined
++	  - Define QT_NO_IM_EXTENSIONS if QT_NO_IM or QT_NO_STRINGLIST is
++	    defined
++	
++	* plugins/src/inputmethods/inputmethods.pro
++	  - Rename conditional configuration symbol from "im" to "inputmethod"
++	    inaccordance with chanege of configure script
++	
++	* plugins/src/inputmethods/simple/qsimpleinputcontext.h
++	* plugins/src/inputmethods/simple/qsimpleinputcontext.cpp
++	* plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h
++	  - (identifierName, language): Change return type from QCString to
++	    QString
++	
++	* plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp
++	  - (identifierName, language): Change return type from QCString to
++	    QString
++	  - (createImSelPopup): Replace QString::find() which is deprecated in
++	    Qt4 with QString::startsWith()
++	
++	* plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp
++	  - (create): Replace QString::find() which is deprecated in Qt4 with
++	    QString::startsWith()
++	
++	* plugins/src/inputmethods/xim/qximinputcontext.h
++	  - (language): Change return type from QCString to QString
++	  - (identifierName):
++	    * Change return type from QCString to QString
++	    * Move inline implementation to qximinputcontext_x11.cpp
++	* plugins/src/inputmethods/xim/qximinputcontext_x11.cpp
++	  - (language): Change return type from QCString to QString
++	  - (identifierName):
++	    * Change return type from QCString to QString
++	    * Move implementation from qximinputcontext.h
++	  - (language): Replace QString::find() which is deprecated in Qt4 with
++	    QString::startsWith()
++	
++2004-08-19  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/input/qinputcontextfactory.cpp
++	  - (keys): Modify the function description comment
++	
++2004-08-18  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/input/qinputcontextfactory.cpp
++	  - (create_manager): Fix plugin directory from "/input" to "/inputmethods"
++	
++2004-08-18  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (KeyTbl): Add translations for Japanese and Korean alias keys
++	
++2004-08-18  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit disables default IM configuration feature using qtrc and
++	  qtconfig in BC mode. See following discussion for further
++	  information.
++	  http://freedesktop.org/pipermail/immodule-qt/2004-August/000416.html
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (x11_apply_settings): 
++	    * Move immodule handling into #ifndef QT_NO_IM rather than QT_NO_XIM
++	    * Move qtrc handling into #ifndef QT_NO_IM_EXTENSIONS
++	
++	* src/inputmethods/imsw-multi/qmultiinputcontext.cpp
++	  - (QMultiInputContext): Move qtrc handling into #ifndef
++	    QT_NO_IM_EXTENSIONS
++	
++	* tools/qtconfig/mainwindow.cpp
++	  - (MainWindow): Move qtrc handling into #ifndef QT_NO_IM_EXTENSIONS
++	
++	* src/kernel/qt_x11.pri
++	  - Remove unnecessary configuration
++	
++2004-08-18  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	Merge differences between qt-x11-free-3.3.2 and qt-x11-free-3.3.3
++	
++2004-08-18  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* plugins/src/inputmethods/imsw-multi/imsw-multi.pro
++	* plugins/src/inputmethods/simple/simple.pro
++	* plugins/src/inputmethods/imsw-none/imsw-none.pro
++	* plugins/src/inputmethods/xim/xim.pro
++	  - Remove inappropriate 'thread' from CONFIG. Thanks to Takumi
++	    Asaki for reporting
++	
++2004-08-18  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* tools/qtconfig/mainwindow.cpp
++	  - (MainWindow): Modify a comment
++	  - (fileSave): Fix inappropriate /qt/DefaultInputMethodSwitcher
++	    overwriting. Thanks Takumi Asaki for the reporting
++	
++2004-08-17  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* plugins/src/inputmethods/imsw-multi/imsw-multi.pro
++	* plugins/src/inputmethods/simple/simple.pro
++	* plugins/src/inputmethods/imsw-none/imsw-none.pro
++	* plugins/src/inputmethods/xim/xim.pro
++	  - Change plugin directory from $QTDIR/plugins/input/ to
++	    $QTDIR/plugins/inputmethods/
++	* changes.immodule
++	  - Add a description for the change of plugin directory
++	
++2004-08-17  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qnamespace.h
++	  - (Qt::Key) Add a comment about Korean-specific keyboard
++	    support based on the information from Choe Hwanjin. Thanks
++	    for the information. See following discussion for further
++	    information
++	    http://freedesktop.org/pipermail/immodule-qt/2004-August/000402.html
++	  - (Qt::Key) Comment out some Korean-specific keys that has an
++	    equivalent generic key
++	
++2004-08-14  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This is preparation for qt-x11-immodule-unified-qt3.3.2-20040814
++	
++	* ChangeLog.immodule
++	  - Update
++	
++2004-08-14  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* changes.immodule
++	  - Add and modify some descriptions
++	
++	* configure
++	  - Rewrite some codes to avoid patch rejection against Qt
++	    3.3.3. Logically equivalent.
++	* src/widgets/qtextedit.cpp
++	  - Rewrite some codes to avoid patch rejection against Qt
++	    3.3.3. Logically equivalent.
++	* src/widgets/qlineedit.cpp
++	  - Rewrite some codes to avoid patch rejection against Qt
++	    3.3.3. Logically equivalent.
++	
++2004-08-13  LiuCougar  <liucougar@gmail.com>
++	
++	cleanup: get rid of some warnings
++2004-08-12  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* changes.immodule
++	  - New file. This file has been written for both users and
++	    developers to inform important changes
++	
++2004-08-12  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This is preparation for qt-x11-immodule-unified-qt3.3.2-20040812
++	
++	* ChangeLog.immodule
++	  - Update
++	
++2004-08-12  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qwidget_x11.cpp
++	  - (changeInputContext, createInputContext): Fix qic location
++	  - (destroyInputContext): Add safety check
++	
++2004-08-12  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* configure
++	  - Fix incomplete qconfig configuratoin about QT_NO_IM and
++	    QT_NO_IM_EXTENSIONS
++	
++	* src/kernel/qwidget_x11.cpp
++	  - (changeInputContext, createInputContext, destroyInputContext): Fix
++	    invalid pointer reference
++	
++2004-08-12  LiuCougar  <liucougar@gmail.com>
++	
++	fixed a compile issue in my gentoo box (gcc 3.3.3, glibc 2.3.3
++2004-08-12  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* configure
++	  - Fix option consistency handling between '-im' and '-im-ext'
++	
++	* README.immodule
++	  - Fix a typo
++	
++2004-08-11  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* README.immodule
++	  - Modify a little
++	
++2004-08-11  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* README.immodule
++	  - New file. Some explanation has been described
++	
++	* ChangeLog.immodule
++	  - New file
++	
++2004-08-11  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* plugins/src/inputmethods/xim/qximinputcontext_x11.cpp
++	  - (language): Remove QLocale dependency to be compiled on Qt 3.2.x
++	    or earlier
++	
++2004-08-11  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit merges 'Binary Compatible branch' into the trunk to
++	  reduce maintenance cost. Now binary compatibility is
++	  configurable. Binary incompatible features are surrounded by
++	  #ifndef QT_NO_IM_EXTENSIONS
++	
++	* configure
++	  - Add '-im' option to enable immodule feature (default yes).
++	  - Add '-im-ext' option to enable more immodule extensions (default
++	    no). Specify this option 'no' to keep binary compatibility with
++	    standard Qt3
++	
++	* src/kernel/qt_x11.pri
++	  - Add conditional QT_NO_IM and QT_NO_IM_EXTENSIONS definition in
++	    accordance with '-im' and '-im-ext' options
++	
++	* src/kernel/qwidget.h
++	  - (icHolderWidget): New function for QT_NO_IM_EXTENSIONS
++	  - (ic): Add #ifndef QT_NO_IM_EXTENSIONS for binary incompatible
++	    variable
++	  - (xic): Add #ifdef QT_NO_IM_EXTENSIONS for binary compatible
++	    variable
++	* src/kernel/qwidget_x11.cpp
++	  - (create): Add #ifndef QT_NO_IM_EXTENSIONS
++	  - (destroy): Make some codes QT_NO_IM_EXTENSIONS independent
++	  - (createTLSysExtra): Add a code fragment for QT_NO_IM_EXTENSIONS
++	  - (deleteTLSysExtra): Modify a comment
++	  - (getInputContext, changeInputContext, createInputContext,
++	    destroyInputContext): Merge code fragments for QT_NO_IM_EXTENSIONS
++	  - (deleteExtra): Merge a comment for QT_NO_IM_EXTENSIONS
++	
++	* src/kernel/qapplication.h
++	  - (locateICHolderWidget, icHolderWidgets, create_xim, close_xim):
++	    New functions for QT_NO_IM_EXTENSIONS
++	* src/kernel/qapplication_x11.cpp
++	  - (create_im, close_im): Add #ifndef QT_NO_IM_EXTENSIONS
++	  - (create_xim, close_xim): Merge functions for QT_NO_IM_EXTENSIONS
++	  - (qt_init_internal, qt_cleanup): Merge code fragments for
++	    QT_NO_IM_EXTENSIONS
++	
++	* plugins/src/inputmethods/inputmethods.pro
++	  - Make plugin compilations configurable with '-im' option
++	
++2004-08-11  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* plugins/src/inputmethods/xim/qximinputcontext.h
++	  - Replace QXIMINPUTCONTEXT_P_H with QXIMINPUTCONTEXT_H
++	
++	* src/widgets/qlineedit.cpp
++	  - (QLineEditPrivate::updateMicroFocusHint): Modify the comment a
++	    little
++	
++2004-08-11  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit is participating with recent 'keyword static of C++'
++	  discussion.  See
++	  http://freedesktop.org/pipermail/immodule-qt/2004-August/000344.html
++	  for further information
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (QETWidget::translateKeyEventInternal): Prevent interwidget key
++	    state transition about RTL extensions. This code had been written
++	    by Daisuke Kameda in qt-x11-immodule-all-qt3.3.1-20040316.diff
++	
++	* src/widgets/qlineedit.cpp
++	  - (QLineEditPrivate::updateMicroFocusHint): Add a comment that
++	    explains that old rect variable is intentionally static
++	
++2004-08-11  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit turns the argument of QInputContext::filterEvent() into
++	  const. See
++	  http://freedesktop.org/pipermail/immodule-qt/2004-August/000335.html
++	  for further information
++	
++	* src/kernel/qinputcontext.h
++	  - (filterEvent): Follow the API change
++	* src/kernel/qinputcontext.cpp
++	  - (filterEvent): Follow the API change
++	
++	* plugins/src/inputmethods/simple/qsimpleinputcontext.h
++	  - (filterEvent): Follow the API change
++	* plugins/src/inputmethods/simple/qsimpleinputcontext.cpp
++	  - (filterEvent): Follow the API change
++	* plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h
++	  - (filterEvent): Follow the API change
++	* plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp
++	  - (filterEvent): Follow the API change
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* plugins/src/inputmethods/simple/xcompose2q.rb
++	  - Update to accept Compose flie of X.org's X11R6.7.0
++	  - Accept 'XCOMM' as comment sign to accept raw source file
++	  - Accept both " " and "\"" as valid RHS
++	* plugins/src/inputmethods/simple/composetable.cpp
++	  - Update Compose table from XFree86 4.3.0 to X.org's X11R6.7.0
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit replaces the invalid header words 'This file is
++	  part of the kernel module' of following files with 'This file
++	  is part of the input method module'
++	
++	* plugins/src/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp
++	* plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp
++	* plugins/src/inputmethods/imsw-multi/qmultiinputcontextplugin.h
++	* plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h
++	* plugins/src/inputmethods/simple/qsimpleinputcontextplugin.cpp
++	* plugins/src/inputmethods/simple/qsimpleinputcontext.cpp
++	* plugins/src/inputmethods/simple/qsimpleinputcontextplugin.h
++	* plugins/src/inputmethods/simple/qsimpleinputcontext.h
++	* plugins/src/inputmethods/simple/composetable.cpp
++	* plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp
++	* plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.h
++	* plugins/src/inputmethods/xim/qximinputcontextplugin.cpp
++	* plugins/src/inputmethods/xim/qximinputcontextplugin.h
++	* plugins/src/inputmethods/xim/qximinputcontext.h
++	* plugins/src/inputmethods/xim/qximinputcontext_x11.cpp
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* plugins/src/inputmethods/simple/xcompose2q.rb
++	  - Fix broken translation entries for most ASCII characters
++	* plugins/src/inputmethods/simple/composetable.cpp
++	  - Translate again with fixed xcompose2q.rb. This fixes many
++	    translation entries involving ascii character such as
++	    "<Multi_key> <space> <minus>"
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* plugins/src/inputmethods/simple/xcompose2q.rb
++	  - New file. This script is used for translating X's Compose
++	    table into QSimpleInputContext's table
++	  - Some bugs included
++	  - Although I had released previous versions of this script
++	    under GPL, I have released this version under another
++	    license. See header
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* plugins/src/inputmethods/simple/qsimpleinputcontext.h
++	  - Follow Trolltech's coding style for Qt3
++	  - Remove unnecessary headers
++	  - (UNITIZE): Moved from qsimpleinputcontext.cpp. QT_ prefix is not
++	    required since a macro does not pollute symbol space
++	  - (struct _ComposeTableElement): Rename to QComposeTableElement
++	  - (struct QComposeTableElement): Renamed from _ComposeTableElement
++	  - (struct _ComposeTable): Rename to QComposeTable
++	  - (struct QComposeTable): Renamed from _ComposeTable
++	  - (isPreeditRelocationEnabled): Remove unnecessary overloading
++	    function
++	  - (isPreeditPreservationEnabled): Remove unnecessary function
++	  - (checkComposeTable): Follow the renaming of the types of args
++	  - (defaultComposeTable): New static member variable
++	
++	* plugins/src/inputmethods/simple/qsimpleinputcontext.cpp
++	  - Separate composing table definition to composetable.cpp
++	  - Remove unnecessary headers
++	  - Replace 'true' and 'false' with 'TRUE' and 'FALSE' to follow
++	    Trolltech's coding style for Qt3
++	  - Replace _ComposeTableElement with QComposeTableElement to follow
++	    the renaming
++	  - Replace ComposeTable with QComposeTable to follow the renaming
++	  - (UNITIZE): Move to qsimpleinputcontext.h
++	  - (defaultTable): Move to composetable.cpp
++	  - (qtComposeTable): Move to composetable.cpp as defaultComposeTable
++	  - (filterEvent):
++	    * Clean up
++	    * Add a comment about key compression
++	    * replace qtComposeTable with defaultComposeTable to follow the
++	      renaming
++	  - (unsetFocus): Remove unnecessary isPreeditPreservationEnabled()
++	    check
++	  - (identifierName): Remove 'FIXME' comment
++	  - (isPreeditRelocationEnabled): Remove unnecessary overloading
++	    function
++	  - (isPreeditPreservationEnabled): Remove unnecessary function
++	
++	* plugins/src/inputmethods/simple/composetable.cpp
++	  - New file. This file has been separated from
++	    qsimpleinputcontext.cpp to achieve following issues
++	    * increase table maintenance ability
++	    * ease editing code part of QSimpleInputContext
++	    * ease development log tracking
++	    * ease copyright tracking
++	    * enclose UTF-8 comments into this file only
++	  - Add original header from Compose file of XFree86 4.3.0
++	  - (defaultTable) Moved from qsimpleinputcontext.cpp
++	  - (defaultComposeTable): New variable definition
++	
++	* plugins/src/inputmethods/simple/simple.pro
++	  - Add composetable.cpp to SOURCES
++	
++	* plugins/src/inputmethods/simple/qsimpleinputcontextplugin.cpp
++	  - (displayName, description): Modify the descriptions appropriately
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* plugins/src/inputmethods/xim/qximinputcontext_x11.cpp
++	  - Replace #include "qximinputcontext_p.h" with
++	    "qximinputcontext.h". XIM plugin is now working properly
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit changes the XIM input method into plugin. A little
++	  modification is still required to work. See next commit information
++	
++	* src/input/qinputcontextfactory.cpp
++	  - Remove XIM dependency
++	  - (create, keys): Remove XIM dependent codes
++	
++	* src/input/qt_input.pri
++	  - Remove QXIMInputContext entries
++	* src/input/qximinputcontext_p.h
++	  - Moved to plugins/src/inputmethods/xim/qximinputcontext.h
++	* src/input/qximinputcontext_x11.cpp
++	  - Moved to plugins/src/inputmethods/xim/qximinputcontext_x11.cpp
++	
++	* plugins/src/inputmethods/inputmethods.pro
++	  - Add xim to SUBDIRS
++	* plugins/src/inputmethods/xim
++	  - New directory
++	* plugins/src/inputmethods/xim/xim.pro
++	  - New file
++	* plugins/src/inputmethods/xim/qximinputcontextplugin.h
++	  - New file
++	  - (class QXIMInputContextPlugin): New class
++	  - (QXIMInputContextPlugin, ~QXIMInputContextPlugin, keys, create,
++	    languages, displayName, description): New function
++	* plugins/src/inputmethods/xim/qximinputcontextplugin.cpp
++	  - New file
++	* plugins/src/inputmethods/xim/qximinputcontext.h
++	  - Moved from src/input/qximinputcontext_p.h. No code changes have
++	    been applied. A little modification is required to work. See next
++	    commit information
++	* plugins/src/inputmethods/xim/qximinputcontext_x11.cpp
++	  - Moved from src/input/qximinputcontext_x11.cpp. No code changes have
++	    been applied
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/input/qximinputcontext_p.h
++	  - (QXIMInputContext): Remove the arg 'widget' to conform to standard
++	    QInputContext API
++	* src/input/qximinputcontext_x11.cpp
++	  - (QXIMInputContext): Remove the arg 'widget' to conform to standard
++	    QInputContext API
++	  - (setHolderWidget): Add QInputContext::setHolderWidget() to fix
++	    inproper overriding
++	* src/input/qinputcontextfactory.cpp
++	  - (create): Remove the arg from QXIMInputContext()
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/input/qximinputcontext_p.h
++	  - (setHolderWidget): New override function
++	* src/input/qximinputcontext_x11.cpp
++	  - (QXIMInputContext): Split most part of the initialization code
++	    into setHolderWidget() to allow null widget. This is required to
++	    make imsw-none working properly
++	  - (setHolderWidget): New function
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (x11_apply_settings): Restrict defaultIM to be an IM-switcher. An
++	    IM-switcher has a 'imsw-' prefix
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit adds imsw-none IM-switcher plugin according to
++	  following discussion with Takumi Asaki. Thanks for the opinion.
++	  http://freedesktop.org/pipermail/immodule-qt/2004-August/000320.html
++	
++	* plugins/src/inputmethods/inputmethods.pro
++	  - Add imsw-none to SUBDIRS
++	* plugins/src/inputmethods/imsw-none/imsw-none.pro
++	  - New file
++	* plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.h
++	  - New file
++	  - (class QNoneInputContextPlugin): New class
++	* plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp
++	  - New file
++	  - (QNoneInputContextPlugin, ~QNoneInputContextPlugin, keys,
++	    languages, displayName, description): New function
++	  - (create): New function. Read key from QT_IM_MODULE or
++	    /qt/DefaultInputMethod of qtrc and creates input context with the
++	    key
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* Rename input method plugin names to accord with other plugin names
++	
++	* plugins/src/inputmethods/imsw-multi/imsw-multi.pro
++	  - Rename plugin name to qimsw-multi from qmultiinputcontextplugin
++	* plugins/src/inputmethods/simple/simple.pro
++	  - Rename plugin name to qsimple from qsimpleinputcontextplugin
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* plugins/src/inputmethods/imsw-multi/multi.pro
++	  - Move to imsw-multi.pro
++	* plugins/src/inputmethods/imsw-multi/imsw-multi.pro
++	  - Move from multi.pro
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* plugins/src/inputmethods/multi
++	  - Move to imsw-multi
++	* plugins/src/inputmethods/imsw-multi
++	  - Move from multi
++	* plugins/src/inputmethods/inputmethods.pro
++	  - Replace 'multi' with 'imsw-multi' in SUBDIRS
++	
++2004-08-10  Kazuki Ohta  <mover@hct.zaq.ne.jp>
++	
++	* plugins/src/inputmethods/simple/qsimpleinputcontext.cpp
++	  - add full dead/multi key entries
++	  - fix some bugs
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit changes pluggable popup menu API in accordance with
++	  following discussion with Lars Knoll. Thanks for the advice.
++	  http://freedesktop.org/pipermail/immodule-qt/2004-August/000300.html
++	
++	* src/kernel/qinputcontext.cpp
++	  - (actions): New function
++	  - (exportMenusInto): Remove to rename to addMenusTo()
++	  - (addMenusTo):
++	    * New function. Renamed from exportMenusInto()
++	    * Follow introduction of enum QInputContextMenu::Action
++	    * Add an explanation for this utility function to the function
++	      description
++	
++	* src/kernel/qinputcontext.h
++	  - (QInputContextMenu::Action): New enum
++	  - (menus): Restrict to use with Qt3 only
++	  - (qt4menus): Remove to replace with actions()
++	  - (actions): New function for Qt4
++	
++	* src/widgets/qtextedit.cpp
++	  - (createPopupMenu): Replace exportMenusInto() with addMenusTo()
++	* src/widgets/qlineedit.cpp
++	  - (createPopupMenu): Replace exportMenusInto() with addMenusTo()
++	
++2004-08-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit changes the two input methods into plugin
++	
++	* src/input/qt_input.pri
++	  - Remove QSimpleInputContext and QMultiInputContext entries
++	* src/input/qmultiinputcontext.h
++	  - Moved to plugins/src/inputmethods/multi/qmultiinputcontext.h
++	* src/input/qmultiinputcontext.cpp
++	  - Moved to plugins/src/inputmethods/multi/qmultiinputcontext.cpp
++	* src/input/qsimpleinputcontext.h
++	  - Moved to plugins/src/inputmethods/simple/qsimpleinputcontext.h
++	* src/input/qsimpleinputcontext.cpp
++	  - Moved to plugins/src/inputmethods/simple/qsimpleinputcontext.cpp
++	
++	* plugins/src/src.pro
++	  - Add 'inputmethods' to SUBDIRS. The directory name 'inputmethods'
++	    is intended to be compatible with Qt/Embedded. Install directory
++	    name is still kept as 'input' for backward compatibility
++	* plugins/src/inputmethods/inputmethods.pro
++	  - New file
++	
++	* plugins/src/inputmethods/multi/multi.pro
++	  - New file
++	* plugins/src/inputmethods/multi/qmultiinputcontextplugin.h
++	  - New file
++	* plugins/src/inputmethods/multi/qmultiinputcontextplugin.cpp
++	  - New file
++	* plugins/src/inputmethods/multi/qmultiinputcontext.h
++	  - Moved from src/input/qmultiinputcontext.h. No code changes have
++	    been applied
++	* plugins/src/inputmethods/multi/qmultiinputcontext.cpp
++	  - Moved from src/input/qmultiinputcontext.cpp. No code changes have
++	    been applied
++	
++	* plugins/src/inputmethods/simple/simple.pro
++	  - New file
++	* plugins/src/inputmethods/simple/qsimpleinputcontextplugin.h
++	  - New file
++	* plugins/src/inputmethods/simple/qsimpleinputcontextplugin.cpp
++	  - New file
++	* plugins/src/inputmethods/simple/qsimpleinputcontext.h
++	  - Moved from src/input/qsimpleinputcontext.h. No code changes have
++	    been applied
++	* plugins/src/inputmethods/simple/qsimpleinputcontext.cpp
++	  - Moved from src/input/qsimpleinputcontext.cpp. No code changes have
++	    been applied
++	
++	* src/input/qinputcontextfactory.cpp
++	  - (create): Remove dedicated instantiation handling for
++	    QSimpleInputContext and QMultiInputContext
++	
++	* tools/qtconfig/mainwindow.h
++	  - (inputMethodIdentifiers): New member variable
++	* tools/qtconfig/mainwindow.cpp
++	  - (MainWindow):
++	    * Replace identifier name of input methods with displaynames
++	    * Add filtering out process for IM-switchers that has "imsw-"
++	      prefix
++	    * Disable sorting for input method names
++	    * Modify some comments
++	    * Simplify setCurrentItem() handling for inputMethodCombo widget
++	    * Add recorded input method name to the display name of unknown
++	      input method
++	    * Save recorded input method name even if unknown input method
++	  - (fileSave):
++	    * Save /qt/DefaultInputMethodSwitcher with default value
++	      "imsw-multi"
++	    * Save identifier name of the input method rather than display name
++	
++	* src/kernel/qinputcontext.cpp
++	  - (class QInputContext): Update the class description comment
++	
++	* src/input/qinputcontextplugin.cpp
++	  - (class QInputContextPlugin): Update the class description comment
++	  - (keys): Update the function description comment
++	  - (languages, displayName, description): Add the function
++	    description comment
++	
++	
++2004-08-05  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit adds generic pluggable popup menu feature. See
++	  http://freedesktop.org/pipermail/immodule-qt/2004-August/000266.html
++	  for further information. The implementation may be altered in
++	  accordance with discussion in the list.
++	
++	* src/kernel/qinputcontext.h
++	  - (struct QInputContextMenu): New struct
++	  - (qt4menus): New function. Just a placeholder for now
++	  - (menus): New function
++	  - (exportMenusInto): New function
++	* src/kernel/qinputcontext.cpp
++	  - (class QInputContext): Add 'Text widget implementor's guide'
++	    section to the class description comment
++	  - (menus): New function
++	  - (exportMenusInto): New function
++	
++	* src/input/qmultiinputcontext.h
++	  - (qt4menus): New function. Just a placeholder for now
++	  - (menus): New function
++	* src/input/qmultiinputcontext.cpp
++	  - (menus):
++	    * New function to follow new API. The function merges slave menus
++	      and QMultiInputContext's own 'Select Input Method' menu
++	    * The functionality is ported from QLineEdit::createPopupMenu()
++	    * An accelerator has been added as 'Select Input &Method'
++	
++	* src/widgets/qtextedit.cpp
++	  - Remove QMultiInputContext dependency
++	  - (createPopupMenu): Replace QMultiInputContext dependent submenu
++	    handling with the pluggable popup menu
++	* src/widgets/qlineedit.cpp
++	  - Remove QMultiInputContext dependency
++	  - (createPopupMenu): Replace QMultiInputContext dependent submenu
++	    handling with the pluggable popup menu
++	
++	* src/kernel/qwidget.h
++	  - Remove #include "qinputcontext.h" to reduce compile time when we
++	    hacked qinputcontext.h
++	
++2004-08-04  Kazuki Ohta  <mover@hct.zaq.ne.jp>
++	
++	* src/input/qmultiinputcontext.cpp
++	  - use QInputContextFactory::description and set whatsthis help
++	
++2004-08-03  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit adds QInputContextFactory::description() feature
++	
++	* src/input/qinputcontextinterface_p.h
++	  - Update the UUID because the interface has been changed
++	  - (description): New function
++	
++	* src/input/qinputcontextplugin.h
++	  - (description): New function
++	
++	* src/input/qinputcontextfactory.h
++	  - (description): New function
++	  - (QInputContextPluginPrivate::description): New function
++	* src/input/qinputcontextfactory.cpp
++	  - (description): New function
++	  - (displayName): Replace fallback value with empty string instead of
++	    null
++	
++2004-08-03  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit alters the configuration convention about
++	  IM-switcher. See
++	  http://freedesktop.org/pipermail/immodule-qt/2004-August/000232.html
++	  for further information. The implementation may be altered in
++	  accordance with discussion in the list.
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (defaultIM): Replace "xim" with "imsw-multi"
++	  - (x11_apply_settings):
++	    * Replace the environment variable name QT_IM_MODULE with
++	      QT_IM_SWITCHER
++	    * Replace the qtrc variable name /qt/DefaultInputMethod with
++	      /qt/DefaultInputMethodSwitcher
++	    * Replace "xim" with "imsw-multi" for default plugin
++	
++	* src/input/qmultiinputcontext.h
++	  - (lastCreatedIMKey): Remove to rename to currentIMKey
++	  - (currentIMKey): New member variable. Renamed from lastCreatedIMKey
++	    because the semantics of the variable has been changed by
++	    introduction of QT_IM_SWITCHER
++	
++	* src/input/qmultiinputcontext.cpp
++	  - Replace lastCreatedIMKey with currentIMKey
++	  - (QMultiInputContext): Add default input method specification
++	    feature using QT_IM_MODULE and /qt/DefaultInputMethod
++	  - (createImSelPopup):
++	    * Add IM-switcher plugin elimination feature using "imsw-" prefix
++	    * Add dispName.isNull() checking
++	    * Apply some rewriting without altering logic for human readability
++	
++	* src/input/qinputcontextfactory.cpp
++	  - (create): Replace the identifier name "multi" with "imsw-multi"
++	
++2004-08-03  Kazuki Ohta  <mover@hct.zaq.ne.jp>
++	
++	* This commit implements table searching suite
++	
++	- QKeyEvent::text() is restricted to only one character,
++	  so qsimpleic use QChar::unicode() value in case keys are
++	  pressed otherwise composing keys are pressed.
++	
++	- Composing Table is temporally deleted for testing.
++	  Need to prepare proper entries.
++	  Now qsimpleic can deal with capital letter more cleaner way
++	
++	* Next, I introduce X's composing parser to qsimpleic
++	
++2004-08-02  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (x11_apply_settings): Merge the comment about defaultIM
++	    overwritten by r52 from r45
++	
++2004-07-31  LiuCougar  <liucougar@gmail.com>
++	
++	new environment variable QT_IM_MODULE to overwrite the default inputmethod plugin
++2004-07-31  LiuCougar  <liucougar@gmail.com>
++	
++	"deleteLater" is safer then "delete" QObject directly
++2004-07-30  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qnamespace.h
++	  - (Qt::Key):
++	    * Replace dead key values with new one to avoid keycode conflict
++	    * Add a comment about the latin 1 keycodes
++	    * Add some comments about the offset for keycode from X keycode
++	* src/kernel/qevent.cpp
++	  - (key): Add a comment about latin 1 keycodes to the function
++	    description.
++	
++	* src/kernel/qapplication_x11.cpp
++	  - Define define XK_XKB_KEYS to include dead key definitions from
++	    keysymdef.h
++	   - Remove XK_dead_ keys definition
++	
++2004-07-29  Kazuki Ohta  <mover@hct.zaq.ne.jp>
++	
++	* Change to use displayName() in IM-Switch Popupmenu
++	
++	* src/input/qmultiinputcontext.h
++	  - (keyDict): new variable
++	* src/input/qmultiinputcontext.cpp
++	  - (createImSelPopup): use displanName() on popup and store key in keyDict
++	  - (changeInputMethodWithMenuId): find key from using keyDict
++	
++	* Problem *
++	  - if key=="XIM", displayName(key) is QString::null
++	* Wish *
++	  - add "virtual QString description( const QString &key ) = 0;" for showing the description of IM on PopupMenu as a whatsthis help
++	
++2004-07-28  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/input/qinputcontextinterface_p.h
++	  - Update the UUID because the interface has been changed
++	  - (languages): New function
++	  - (displayName): New function
++	
++	* src/input/qinputcontextplugin.h
++	  - (languages): New function
++	  - (displayName): New function
++	* src/input/qinputcontextplugin.cpp
++	  - (QInputContextPluginPrivate::languages): New function
++	  - (QInputContextPluginPrivate::displayName): New function
++	
++	* src/input/qinputcontextfactory.h
++	  - (languages): New function
++	  - (displayName): New function
++	* src/input/qinputcontextfactory.cpp
++	  - (languages): New function
++	  - (displayName): New function
++	
++2004-07-27  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qinputcontext.h
++	  - (deletionRequested): New signal. Added for fatal error handling
++	* src/kernel/qinputcontext.cpp
++	  - (deletionRequested): Add the function description comment
++	* src/kernel/qwidget.h
++	  - (destroyInputContext): Change ordinary function to slot to receive
++	    the signal QInputContext::deletionRequested()
++	* src/kernel/qwidget_x11.cpp
++	  - (changeInputContext, createInputContext):
++	    * Connect deletionRequested() signal of qic to destroyInputContext()
++	    * Follow renaming of QApplication::imEventReceived() to postIMEvent()
++	  - (destroyInputContext): Modify the function description comment
++	
++	* src/input/qximinputcontext_p.h
++	  - (close): New function
++	* src/input/qximinputcontext_x11.cpp
++	  - (close_xim):
++	    * Remove invalid QApplication::close_im() invocation
++	    * Add proper finalization using deletionRequested() signal
++	  - (close): New function
++	
++	* src/kernel/qapplication.h
++	  - (imEventReceived): Remove this inappropriate name to rename to
++	    postIMEvent()
++	  - (postIMEvent): New slot. Renamed from imEventReceived()
++	* src/kernel/qapplication_x11.cpp
++	  - (imEventReceived): Remove this inappropriate name to rename to
++	    postIMEvent()
++	  - (postIMEvent): New slot. Renamed from imEventReceived()
++	  - (close_im): Remove unused commented out code. The code had already
++	    been moved to qximinputcontext.cpp
++	
++	* src/input/qmultiinputcontext.h
++	  - (destroyInputContext): New slot
++	  - (imEventReceived): Remove this inappropriate name to rename to
++	    postIMEvent()
++	  - (postIMEvent): New slot. Renamed from imEventReceived()
++	* src/input/qmultiinputcontext.cpp
++	  - (QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX): New macro. Defined as default
++	  - (filterEvent): Insert #ifdef QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX
++	  - (destroyInputContext): New slot. Processes deletionRequested from slave
++	  - (imEventReceived): Remove this inappropriate name to rename to
++	    postIMEvent()
++	  - (postIMEvent): New slot. Renamed from imEventReceived()
++	  - (slave):
++	    * Add proper instanciation code for popup menu mode
++	    * Insert #ifdef QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX
++	  - (changeInputMethod(int)):
++	    * Add error handling for no available input methods
++	    * Insert #ifdef QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX
++	  - (changeInputMethod(QString)):
++	    * Add error handling for no available input methods
++	    * Add default selection for null key
++	    * Connect deletionRequested() signal
++	    * Fix debug message
++	* src/widgets/qtextedit.cpp
++	  - (createPopupMenu):
++	    * Add NULL check for input context
++	    * Replace the label "SelectInputMethod" with "Select Input Method"
++	* src/widgets/qlineedit.cpp
++	  - (createPopupMenu):
++	    * Add NULL check for input context
++	    * Replace the label "SelectInputMethod" with "Select Input Method"
++	
++2004-07-27  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qwidget_x11.cpp
++	  - (changeInputContext):
++	    * Remove unnecessary createInputContext()
++	    * Reorder the code fragments to reduce temporal memory consumption
++	
++2004-07-27  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit is a comment and variable name update. No actual code is
++	  modified.
++	
++	* src/kernel/qinputcontext.cpp
++	  - (class QInputContext): Modify the class description comment
++	  - (filterEvent): Mark the argument as /* const */ to make it const
++	    in future
++	  - (reset): Add a requirement to the function description comment for
++	    reimplementation
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (locateICHolderWidget, icHolderWidgets, changeAllInputContext):
++	    Modify the function description comment
++	
++	* src/kernel/qwidget_x11.cpp
++	  - (changeInputContext):
++	    * Rename 'name' with 'identifierName' to eliminate the ambiguity
++	    * Modify the function description comment
++	    * Modify a comment
++	    * Follow Trolltech's coding style
++	  - (createInputContext):
++	    * Modify the function description comment
++	    * Modify a comment
++	  - (resetInputContext): Modify the function description comment
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (defaultIM): Modify the comment
++	  - (changeAllInputContext):
++	    * Rename 'name' with 'identifierName' to eliminate the ambiguity
++	    * Follow Trolltech's coding style
++	  - (defaultInputMethod): Modify the function description comment
++	  - (x11_apply_settings): Modify a comment
++	
++	* src/input/qinputcontextplugin.cpp
++	  - (class QInputContextPlugin): Modify the class description comment
++	  - (create): Modify the function description comment
++	
++	* src/input/qinputcontextfactory.cpp
++	  - (create): Modify the function description comment
++	
++2004-07-24  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qinputcontext.cpp
++	  - Add #if defined(Q_WS_X11) around X11 platform specific
++	    functions. these functions cannot be moved to
++	    qinputcontext_x11.cpp at now since the QInputContextPrivate is
++	    defined in qinputcontext.cpp. This will be fixed in porting to
++	    Qt4.
++	  - (filterEvent): Add the function description comment according
++	    with the Simplified API (filtering precedence, key compression)
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (locateICHolderWidget, icHolderWidgets, changeAllInputContext):
++	    Modify the function description comment
++	
++2004-07-24  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit is a comment update. No code is modified.
++	
++	* src/kernel/qinputcontext.cpp
++	  - (class QInputContext): Add the class description comment according
++	    with the Simplified API (preedit relocation is done, not entirely
++	    completed yet)
++	
++2004-07-24  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit contains the fixes in response to Lars Knoll's
++	  advice. Thanks for the advice.
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (x11_apply_settings): Remove trUtf8() from "xim" to specify the
++	    default input method
++	
++	* src/kernel/qapplication_x11.cpp, src/input/qximinputcontext_x11.cpp
++	  - (ximServer, xim_preferred_style, composingKeycode, input_mapper):
++	    Add qt_ prefix to avoid symbol space pollution
++	  - (qt_ximServer, qt_xim_preferred_style, qt_ximComposingKeycode,
++	    qt_input_mapper): Renamed from above one
++	
++2004-07-24  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit is a comment update. No code is modified.
++	
++	* src/kernel/qinputcontext.cpp
++	  - (class QInputContext): Modify several expressions
++	
++2004-07-23  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit is a comment update. No code is modified.
++	
++	* src/kernel/qinputcontext.cpp
++	  - (class QInputContext): Add the class description comment according
++	    with the Simplified API (preedit preservation is done, not
++	    entirely completed yet)
++	  - (QInputContext, focusWidget, setFocusWidget, isComposing,
++	    setFocus, unsetFocus): Modify a typo in the function description
++	    comment
++	
++2004-07-23  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/input/qsimpleinputcontext.cpp
++	  - Modify the file header description
++	* src/input/qmultiinputcontext.cpp
++	  - Modify the file header description
++	* src/input/qsimpleinputcontext.h
++	  - Modify the file header description
++	* src/input/qmultiinputcontext.h
++	  - Modify the file header description
++	
++2004-07-23  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/input/qsimpleinputcontext.h
++	  - Add a copyright and license header
++	
++	* src/input/qsimpleinputcontext.cpp
++	  - Add a copyright and license header
++	
++2004-07-23  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit is a comment update. No code is modified.
++	
++	* src/kernel/qinputcontext.cpp
++	  - (class QInputContext): Add the class description comment according
++	    with the Simplified API (not completed yet)
++	  - (QInputContext): Modify a expression in the function description
++	    comment
++	  - (sendIMEventInternal, font): Modify a typo in the function
++	    description comment
++	
++2004-07-23  Kazuki Ohta  <mover@hct.zaq.ne.jp>
++	
++	* src/input/qsimpleinputcontext.cpp
++	  - OOps. fix typo.
++	
++2004-07-23  Kazuki Ohta  <mover@hct.zaq.ne.jp>
++	
++	* src/input/qsimpleinputcontext.cpp
++	  - follow Qt coding rule
++	  - more valid capitalize case 
++	
++2004-07-23  Kazuki Ohta  <mover@hct.zaq.ne.jp>
++	
++	* src/input/qinputcontextfactory.cpp
++	  - enable QSimpleInputContext by specifying in qtrc "DefaultInputMethod=simple"
++	
++2004-07-23  Kazuki Ohta  <mover@hct.zaq.ne.jp>
++	
++	* This commit add simple table based InputContext for dead/multi key support
++	
++	* src/input/qsimpleinputcontext.h, src/input/qsimpleinputcontext.cpp
++	  - simple table based InputContext
++	
++2004-07-22  Kazuki Ohta  <mover@hct.zaq.ne.jp>
++	
++	* kernel/qapplication_x11.cpp, kernel/qnamespace.h
++	  - add dead key entries
++	
++2004-07-22  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit is a comment update. No code is modified.
++	
++	* src/kernel/qinputcontext.cpp
++	  - (holderWidget, setHolderWidget, focusWidget, setFocusWidget,
++	    releaseComposingWidget, isPreeditRelocationEnabled, isComposing,
++	    sendIMEventInternal, sendIMEvent): Add the function description comment
++	    according with the Simplified API
++	  - (QInputContext, setFocus, unsetFocus): Update the function
++	    description comment according with the Simplified API
++	  - (~QInputContext, imEventGenerated): Add the function description
++	    comment
++	  - (reset, identifierName, language, filterEvent): Update the
++	    function description comment
++	  - (setMicroFocus, mouseHandler, reset, identifierName, language):
++	    Modify a expression in the function description comment
++	
++	* src/kernel/qwidget_x11.cpp
++	  - (icHolderWidget, resetInputContext, focusInputContext,
++	    unfocusInputContext, sendMouseEventToInputContext): Update the
++	    function description comment
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (imEventReceived): Update the function description comment
++	
++2004-07-21  Kazuki Ohta  <mover@hct.zaq.ne.jp>
++	
++	* src/input/qmultiinputcontext.h
++	  - (createImSelPopup): new function
++	  - (changeInputMethodWithMenuId): new slot
++	  - (changeInputMethod(QString)): new function
++	  - (popup): new variable
++	  - (lastCreatedIMKey): new variable
++	
++	* src/input/qmultiinputcontext.cpp
++	  - add #ifndef QT_NO_IM
++	  - (createImSelPopup): create QPopupMenu object which can switch IM.
++	    Currently selected IM is marked as checked.
++	
++	* src/input/qinputcontextfactory.h
++	  - remove "class QPopupMenu"
++	
++	* src/widget/qtextedit.cpp
++	  - add im-switch popup to the menu which is shown when widget is right-clicked.
++	
++	* src/widget/qlineedit.cpp
++	  - add im-switch popup to the menu which is shown when widget is right-clicked.
++	
++2004-07-21  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qinputcontext.cpp
++	  - (filterEvent, setMicroFocus, mouseHandler): Update the function
++	    description comment according with the Simplified API
++	  - (reset, identifierName, language): Update the function description
++	    comment
++	
++2004-07-20  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/input/qmultiinputcontext.cpp
++	  - (changeInputMethod): Fix invalid imIndex circulation. Thanks
++	    to Kazuki for reporting
++	
++2004-07-20  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit enables a flexible signal connection
++	  configuration. Default behavior is based on Cougar's
++	  suggestion. Thanks.
++	
++	* src/input/qmultiinputcontext.h
++	  - (beIndirectlyConnected): New instance variable
++	
++	* src/input/qmultiinputcontext.cpp
++	  - (QMultiInputContext): Add beIndirectlyConnected to initializer list
++	  - (imEventReceived): Add a function description comment
++	  - (changeInputMethod): Connect imEventGenerated signal of slave
++	    according with beIndirectlyConnected. The default behavior is
++	    changed as directly connected to imEventGenerated signal of this
++	
++2004-07-20  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qwidget_x11.cpp
++	  - (setMicroFocusHint): Update the comment about XIM handling
++	  - (focusInputContextunfocusInputContext,
++	    sendMouseEventToInputContext): Add the function description comment
++	
++	* src/kernel/qinputcontext_x11.cpp
++	  - (x11FilterEvent): Update the function description comment
++	    according with the Simplified API
++	
++2004-07-20  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/input/qmultiinputcontext.cpp
++	  - (changeInputMethod): Fix the conversion to const char * from
++	    identifierName()
++	
++2004-07-20  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/input/qximinputcontext_p.h
++	  - (identifierName): Replace the result "XIM" with "xim" to be
++	    consistent with corresponding immodule of GTK+
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (defaultIM, x11_apply_settings): Replace "XIM" with "xim"
++	
++	* src/input/qinputcontextfactory.cpp
++	  - (create, keys): Replace "XIM" with "xim"
++	
++	* tools/qtconfig/mainwindow.cpp
++	  - (MainWindow): Replace "XIM" with "xim"
++	
++2004-07-20  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit enables QInputContext proxying, and provide an
++	  experimental immodule-switcher QMultiInputContext as its
++	  examples. The changes is following.
++	
++	  1. Use signal to deliver QIMEvent instead of explicit
++	     postEvent(). This enables QIMEvent proxying and better platform
++	     abstraction. Corresponding slot is created as
++	     QApplication::imEventReceived().
++	
++	  2. Move some methods of QInputContext to public from protected or
++	     private. This enables that proxy-IM can access slave methods.
++	
++	  3. Make some methods of QInputContext virtual. This enables
++	     overriding the methods as proxy
++	
++	  4. Rename QInputContext::name() to identifierName() to avoid
++	     conflicting with QObject::name()
++	
++	  This patch does not break binary compatibility from vanilla Qt3.
++	  But it costs immodule developer small modification.
++	
++	* src/kernel/qinputcontext.h
++	  - (class QInputContext): Inherit QObject and add Q_OBJECT macro
++	  - (name): Remove to rename to identifierName() to avoid conflicting
++	    with QObject::name()
++	  - (identifierName): New function. Renamed from name()
++	  - (isComposing, isPreeditRelocationEnabled): Move to public from
++	    protected to allow proxying
++	  - (setFocusWidget,setHolderWidget, releaseComposingWidget): Move to
++	    public from private to allow proxying
++	  - (focusWidget, holderWidget):
++	    * Make public from protected
++	    * Make virtual to allow overriding the method as proxy
++	  - (imEventGenerated): New signal
++	
++	* src/kernel/qinputcontext.cpp
++	  - (QInputContext): Add QObject() to initializer list
++	  - (sendIMEventInternal): Replace QApplication::postEvent with signal
++	    emitting according to the change
++	  - (name): Remove to rename to identifierName() to avoid conflicting
++	    with QObject::name()
++	  - (identifierName):
++	    * New function. Renamed from name()
++	    * Return type has changed to QCString from QString to avoid using
++	      of i18n string and confusing this with display name for endusers
++	
++	* src/kernel/qwidget_x11.cpp
++	  - (changeInputContext): Add QObject::connect() to follow the change
++	    of IMEvent flow
++	  - (createInputContext): Add QObject::connect() to follow the change
++	    of IMEvent flow
++	
++	* src/kernel/qapplication.h
++	  - (imEventReceived): New slot
++	* src/kernel/qapplication_x11.cpp
++	  - (imEventReceived): New slot to relay QIMEvent to event queue using
++	    postEvent()
++	
++	* src/input/qmultiinputcontext.h
++	  - New file. Copyright and licensing information is temporarily
++	    adapted to our cirmumstances
++	  - (QMultiInputContext): New class
++	  - (QMultiInputContext): New function
++	  - (~QMultiInputContext): New function
++	  - (identifierName): New function
++	  - (language): New function
++	  - (x11FilterEvent): New function. Added based on Cougar's
++	    advice. Thanks
++	  - (filterEvent): New function
++	  - (reset): New function
++	  - (setFocus): New function
++	  - (unsetFocus): New function
++	  - (setMicroFocus): New function
++	  - (mouseHandler): New function
++	  - (font): New function
++	  - (isComposing): New function
++	  - (isPreeditRelocationEnabled): New function
++	  - (focusWidget): New function
++	  - (holderWidget): New function
++	  - (setFocusWidget): New function
++	  - (setHolderWidget): New function
++	  - (releaseComposingWidget): New function
++	  - (slave): New function
++	  - (slave): New function (const QInputContext *slave() const)
++	  - (changeInputMethod): New function
++	  - (imEventReceived): New slot
++	* src/input/qmultiinputcontext.cpp
++	  - New file. Copyright and licensing information is temporarily
++	    adapted to our cirmumstances
++	  - (QMultiInputContext): New function
++	  - (~QMultiInputContext): New function
++	  - (identifierName): New function
++	  - (language): New function
++	  - (x11FilterEvent): New function. Added based on Cougar's
++	    advice. Thanks
++	  - (filterEvent): New function. Filters Control+Alt+Key_Down and
++	    Control+Alt+Key_Up as IM selection keys as temporary
++	    implementation. We should show popup menu
++	  - (reset): New function
++	  - (setFocus): New function
++	  - (unsetFocus): New function
++	  - (setMicroFocus): New function
++	  - (mouseHandler): New function
++	  - (font): New function
++	  - (isComposing): New function
++	  - (isPreeditRelocationEnabled): New function
++	  - (focusWidget): New function
++	  - (holderWidget): New function
++	  - (setFocusWidget): New function
++	  - (setHolderWidget): New function
++	  - (releaseComposingWidget): New function
++	  - (slave): New function
++	  - (slave): New function (const QInputContext *slave() const)
++	  - (changeInputMethod): New function
++	  - (imEventReceived): New slot
++	* src/input/qinputcontextfactory.cpp
++	  - (create): Add QMultiInputContext instanciation. Use the name
++	    "multi" to specify it
++	* src/input/qinputcontextfactory.h
++	  - Add #include "qinputcontext.h" to avoid compilation error
++	
++	* src/input/qximinputcontext_p.h
++	  - (class QXIMInputContext): Add Q_OBJECT macro to follow the API change
++	  - (name): Remove to follow the API change
++	  - (identifierName):
++	    * New function. Renamed from name()
++	    * Return type has changed to QCString from QString to follow the
++	      API change
++	  - (isPreeditRelocationEnabled): Move to public from protected to
++	    follow the API change
++	  - (isComposing): Remove unnecessary access permission breaker
++	    because QInputContext::isComposing() have made public
++	* src/input/qximinputcontext_x11.cpp
++	  - (isComposing): Remove unnecessary access permission breaker
++	    because QInputContext::isComposing() have made public
++	
++	* src/input/qt_input.pri
++	  - Add qmultiinputcontext.h and multiinputcontext.cpp
++	
++2004-07-18  LiuCougar  <liucougar@gmail.com>
++	
++	use virtual insert version to make subclasses work as expected (merged from bc-branch r19)
++2004-07-16  Kazuki Ohta  <mover@hct.zaq.ne.jp>
++	
++	* src/input/qinputcontextfactory.h: not the definition of QInputContextPlugin
++	
++2004-07-13  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qapplication_x11.cpp
++	  - (x11ProcessEvent): Add comment for key event filtering considerations
++	  - (QETWidget::translateKeyEvent): Add comment for key compression
++	    considerations
++	
++2004-07-11  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* src/kernel/qwidget.h
++	  - (sendMouseEventToInputContext): Move into #if defined(Q_WS_X11)
++	    because it is not implemented in other platforms
++	
++2004-07-11  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* This commit fixes a mismerge with my Simplified API patches
++	
++	* src/kernel/qwidget_x11.cpp
++	  - (destroyInputContext): Replace the code with original Simplified
++	    API patch. See the comment to recognize the original intention
++	  - (focusInputContext): Fix a condition to call qic->setFocus() as
++	    originally written. See added comment to recognize the original
++	    intention
++	
++	* src/kernel/qwidget.h
++	  - (changeInputContext): Move into #if defined(Q_WS_X11) as
++	    originally written because it is not implemented in other
++	    platforms
++	
++	* src/input/qximinputcontext_p.h
++	  - (mouseHandler): Fix a typo as originally written
++	
++	* src/input/qximinputcontext_x11.cpp
++	  - Fix a comment location to express original intention
++	
++2004-07-08  LiuCougar  <liucougar@gmail.com>
++	
++	replace sendEvent with postEvent in qinputcontext to improve the process performance of IMCompose events
++2004-07-08  YamaKen  <yamaken@bp.iij4u.or.jp>
++	
++	* Insert the comment 'UPDATED COMMENT REQUIRED' into some places for future
++	  modifications
++	* Modify some comments
++	* Replace 'InputMethod' in some comments with 'input method'
++	* Replace 'InputContext' in some comments with 'input context'
++	
++	* src/kernel/qinputcontext.h
++	  - Move description of QInputContext to qinputcontext.cpp
++	* src/kernel/qinputcontext.cpp
++	  - Move description of QInputContext from qinputcontext.h
++	
++2004-07-07  Daisuke Kameda  <kaminmat@cc.rim.or.jp>
++	
++	Adding the function which realize mapping arbitrary input context and widget:
++	QApplication::locateICHolderWidget()
++	QApplication::icHolderWidgets()
++	QWidget::icHolderWidget()
++	QWidget::getInputContext()
++	
++	Adding the function which changes input method:
++	QApplication::changeAllInputContext()
++	QWidget::changeInputContext()
++	QApplication::defaultInputMethod()
++	
++	change QApplication::create_xim() to QApplication::create_im()
++	change QApplication::close_xim() to QApplication::close_im()
++	
++	
++2004-07-06  Daisuke Kameda  <kaminmat@cc.rim.or.jp>
++	
++	"QLineEdit should only setMicroFocus if the cursorRect has changed" by cougar
++	
++2004-07-06  Daisuke Kameda  <kaminmat@cc.rim.or.jp>
++	
++	Re-Creating immodule for Qt/X11 trunk
++
++2004-06-22  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/kernel/qinputcontext.h
++	  - (sendIMEvent): Private version of sendIMEvent(). Remove to
++	    rename to sendIMEventInternal
++	  - (sendIMEventInternal): Rename from sendIMEvent and accept
++	    discrete variables rather than QEvent *e to be adaptable
++	    to Qt/Embedded
++	* src/kernel/qinputcontext.cpp
++	  - (sendIMEvent): Protected version of sendIMEvent(). Move
++	    QEvent construction to sendIMEventInternal()
++	  - (sendIMEvent): Private version of sendIMEvent(). Remove to
++	    rename to sendIMEventInternal
++	  - (sendIMEventInternal):
++	    * Rename from sendIMEvent
++	    * accept discrete variables rather than QEvent *e to be
++	      adaptable to Qt/Embedded
++	    * Add placeholder for Qt/Embedded
++	  - (setFocusWidget): Follow specification change of sendIMEvent()
++
++2004-06-20  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/kernel/qevent.h
++	  - (class QIMError): Remove to rename to QIMErrorEvent
++	  - (class QIMErrorEvent): Rename from QIMError
++	  - (QIMErrorEvent::isDeleteIC): Remove to rename to isDeletionRequest
++	  - (QIMErrorEvent::isDeletionRequest): Rename from isDelete
++
++	* src/kernel/qwidget.h
++	  - (imErrorEvent): Follow renaming of QIMError
++	* src/kernel/qwidget.cpp
++	  - (imErrorEvent): Follow renaming of QIMError and
++	    QIMError::isDeleteIC()
++	  - (event): Follow renaming of QIMError
++
++	* src/kernel/qinputcontext.h
++	  - (ownerWidget): Remove to rename to holderWidget
++	  - (holderWidget): Rename from ownerWidget
++	  - (setOwnerWidget): Remove to rename to setHolderWidget
++	  - (setHolderWidget): Rename from setOwnerWidget
++	  - (releaseComposingWidget): New function.
++	* src/kernel/qinputcontext.cpp
++	  - (class QInputContextPrivate): Rename ownerWidget to holderWidget
++	  - (ownerWidget): Remove to rename to holderWidget
++	  - (holderWidget): Rename from ownerWidget
++	  - (setOwnerWidget): Remove to rename to setHolderWidget
++	  - (setHolderWidget): Rename from setOwnerWidget
++	  - (sendIMError): Follow renaming of QIMError and
++	    QIMError::isDeleteIC()
++	  - (releaseComposingWidget): New function.
++
++	* src/input/qinputcontextfactory.cpp
++	  - (create): Follow renaming of QInputContext::setOwnerWidget()
++
++	* src/kernel/qwidget_x11.cpp
++	  - (destroy): Add qic->releaseComposingWidget() to reset
++	    preserved composing information involving this widget
++
++2004-06-15  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/kernel/qwidget_x11.cpp
++	  - (setMicroFocusHint): Replace relative coordinate with
++	    global one for qic->setMicroFocus(). This is required to
++	    share particular IM plugin code with Qt/Embedded
++
++	* src/widgets/qlineedit.cpp
++	  - (sendMouseEventToInputContext): Add button event sending
++	    when clicking on out of preedit
++
++	* src/widgets/qtextedit.cpp
++	  - (sendMouseEventToInputContext): Add button event sending
++	    when clicking on out of preedit
++
++	* src/input/qximinputcontext_p.h
++	  - (isComposing): New function
++	  - (composing, cpos, sellen): Remove to follow API change
++	  - (isPreeditRelocationEnabled): New overriding function to
++	    follow API change
++	  - (isPreeditPreservationEnabled): New function
++
++	* src/input/qximinputcontext_x11.cpp
++	  - (xic_start_callback, xic_draw_callback, xic_done_callback,
++	    x11FilterEvent, reset): Replace qic->composing with
++	    qic->isComposing() to use automatic compose state tracking
++	    of QInputContext
++	  - (QXIMInputContext): Remove composing, cpos, sellen from
++	    initializer list
++	  - (sendIMEvent): Remove remembering of cpos, sellen
++	  - (reset): Replace IMEnd event sending with
++	    QInputContext::reset()
++	  - (resetClientState): Remove cpos, sellen, composing
++	  - (isComposing): Exported interface for xic callbacks to
++	    access protected QInputContext::isComposing()
++	  - (setMicroFocus): Follow API change that replaces relative
++	    coordinate with global one
++	  - (mouseHandler): Add approprate reset on clicking
++	  - (setFocus, unsetFocus): Remove preedit preservation and
++	    relocation to follow API change. They are moved to
++	    QInputContext as generarization
++	  - (isPreeditRelocationEnabled): New function to follow API
++	    change.
++	  - (isPreeditPreservationEnabled): New function. This
++	    indicates that whether preedit state should be preserved
++	    or not when focusing out the widget
++
++2004-06-14  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/kernel/qinputcontext.h
++	  - (setFocus): Remove hasPreservedPreedit arg
++	  - (unsetFocus): Remove preservePreedit arg
++	  - (isPreeditRelocationEnabled): New function
++	  - (isComposing): New function
++
++	* src/kernel/qinputcontext.cpp
++	  - (class QInputContextPrivate): Reorganize variables for
++	    preedit relocation
++	  - (QInputContextPrivate::resetComposingState): New function
++	  - (QInputContextPrivate::updateComposingState): New function
++	  - (setFocusWidget): Add preedit relocation support. Preedit
++	    state is relocated to another text widget when the shared
++	    context has focused on the another text widget. This
++	    feature is mainly used by Japanese input methods
++	  - (isPreeditRelocationEnabled): New function. Preedit
++	    relocation is enabled only if this function returned TRUE.
++	  - (isComposing): New function. Returns current composing
++	    state as result of automatic compose state tracking
++	    through sendIMEvent(). The function is for used by
++	    subclass of QInputContext to know preedit state of the
++	    widget. Although QWidget and QInputContextFactory can
++	    access to the function as friend, they must not use the
++	    function to know composing state of contexts. Keep less
++	    relationship to simplify input method development
++	  - (sendIMEvent): New 1-arg overloaded function. The function
++	    encupsulates platform-dependent IMEvent sending. Only
++	    Q_WS_X11 is supported for now. Q_WS_QWS should be supported
++	  - (sendIMEvent):
++	    * 4-args version of the overloaded function
++	    * Isolate platform-dependent event sending process to
++	      separated function
++	    * Add preedit relocation support
++	    * Add compose state tracking support
++	  - (unsetFocus): Add reset() for simple ephemeral input
++	    contexts
++	  - (mouseHandler): Add reset() when clicking for simple
++	    ephemeral input contexts
++	  - (reset): Add preedit finalization code. Overriding
++	    function should call this function to ensure proper
++	    preedit state
++
++2004-06-11  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/kernel/qlineedit.cpp
++	  - (QLineEditPrivate::xToPosInternal, QLineEditPrivate::xToPos):
++	    Fix loose placement to tail when clicking beyond the string
++
++2004-06-10  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/kernel/qinputcontext.h
++	  - Remove several pointers to QWidget to share concrete IM
++	    implementation code with Qt/Embedded. The IM model of
++	    Qt/Embedded requires that widgets and input contexts are
++	    existing in another process
++	  - (QInputContext): Remove the QWidget * arg
++	  - (focusWidget, ownerWidget):
++	    * Move to protected and unrecommended
++	    * Move the inline function definition to qinputcontext.cpp
++	  - (filterEvent): Remove unnecessary keywidget
++	  - (setFocus):
++	    * Remove newFocusWidget arg
++	    * Add hasPreservedPreedit arg
++	  - (unsetFocus): Add preservePreedit arg
++	  - (sendIMError): New function to hide ownerWidget from
++	    derived QInputContext
++	  - (composingWidget, setComposingWidget): New function to support
++	    preedit relocation of shared context on focus transition
++	  - (setFocusWidget, setOwnerWidget): New function to
++	    implement internal functionality on Qt/X11 platform
++	  - (d): New variable to hide ABI change
++	  - (QInputContext, operator=): New function to disable copy
++	    constructor and operator=
++
++	* src/kernel/qinputcontext.cpp
++	  - (class QInputContextPrivate): New class to hide ABI change
++	  - (QInputContext):
++	    * Follow API change
++	    * Follow introducing QInputContextPrivate
++	  - (~QInputContext): Follow introducing QInputContextPrivate
++	  - (ownerWidget):
++	    * Move from qinputcontext.h
++	    * Follow introducing QInputContextPrivate
++	  - (setOwnerWidget): New function to complement removal of
++	    the arg of QInputContext constructor
++	  - (composingWidget, setComposingWidget): New function. These
++	    functions are participating with preedit relocation of shared
++	    context on focus transition
++	  - (focusWidget):
++	    * Move from qinputcontext.h
++	    * Follow introducing QInputContextPrivate
++	    * Follow introducing composingWidget
++	  - (setFocusWidget): New function to complement removal of
++	    the QWidget * arg of setFocus()
++	  - (filterEvent): Follow API change of removal of keywidget
++	  - (sendIMEvent): Add #ifdef to isolate Qt/X11 dependent code
++	  - (sendIMError): New function to hide ownerWidget() from
++	    derived QInputContext. This is required to share particular
++	    IM plugin code with Qt/Embedded
++	  - (setFocus, unsetFocus): Follow API change
++
++	* src/input/qinputcontextfactory.cpp
++	  - (create): Add ownerWidget initialization for new context
++
++	* src/kernel/qwidget.cpp
++	  - (setFocus): Remove unnecessary shared input context
++	    checking
++
++	* src/kernel/qwidget_x11.cpp
++	  - (setActiveWindow): Replace duplicated code with
++	    focusInputContext()
++	  - (getInputContext): Return input context only if
++	    isInputMethodEnabled() widget, otherwise returns 0. This
++	    is required for proper focus transition handling
++	  - (unfocusInputContext): Follow API change of
++	    QInputContext::unsetFocus()
++
++	* src/kernel/qapplication.cpp
++	  - (setActiveWindow): Follow change of QWidget::unfocusInputContext()
++
++	* src/kernel/qapplication_x11.cpp
++	  - (x11ProcessEvent): Follow API change of
++	    QInputContext::filterEvent()
++
++	* src/input/qximinputcontext_p.h
++	  - (setFocus, unsetFocus): Follow API Change
++	  - (hasFocus): New function
++	  - (close): New function
++
++	* src/input/qximinputcontext.cpp
++	  - Remove unrecommended focusWidget() and ownerWidget()
++	  - (ximWidgetList): Remove to replace with ximContextList
++	  - (ximContextList): New variable
++	  - (xic_draw_callback): Replace focusWidget() with hasFocus()
++	    to follow API Change
++	  - (QXIMInputContext):
++	    * Follow API change
++	    * Follow replacing to ximContextList
++	  - (~QXIMInputContext):
++	    * Follow replacing to ximContextList
++	    * Remove unnecessary QInputContext::unsetFocus()
++	  - (close_xim):
++	    * Follow replacing to ximContextList
++	    * Follow API change 
++	  - (close, hasFocus): New function. Exported interface for
++	    xic_draw_callback to access protected features
++	  - (setFocus, unsetFocus): Follow API change
++
++2004-06-09  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/kernel/qwidget.cpp
++
++	  - (hide): Remove unfocusInputContext(). This caused
++	    excessive invalid QInputContext::unsetFocus().
++	    QWidget::deactivateWidgetCleanup() handles
++	    unfocusInputContext() appropriately via
++	    qApp->setActiveWindow( 0 ).
++
++2004-06-08  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/kernel/qrichtext_p.h
++	  - (QTextCursor::place): New 5-args overloaded function
++	  - (QTextCursor::place): 3-args version of the function is
++	    reimplemented as inline function using new 5-args one.
++	* src/kernel/qrichtext.cpp
++	  - (QTextCursor::place): Remove 3-args version of the function
++	  - (QTextCursor::place): New 5-args overloaded function. This
++	    is copied from 3-args one and added new args loosePlacing
++	    and matchBetweenCharacters
++
++	* src/widgets/qtextedit.cpp
++	  - (sendMouseEventToInputContext): Send mouse event when only
++	    mouse cursor is placed within preedit area. This is
++	    accomplished by new 5-args QTextCursor::place()
++	  - (contentsContextMenuEvent): Disable context menu when in
++	    IM composing state
++	  - (drawContents): Add updateMicroFocusHint() to follow
++	    dragging of active window by the showed candidate window
++	  - (contentsMouseMoveEvent): Fix cursor vanishing on IM
++	    composing state
++
++	* src/kernel/qlineedit.cpp
++	  - (sendMouseEventToInputContext): Exclude character at
++	    preedit[preeditLength] from being handled as preedit
++	  - (contextMenuEvent): Disable context menu when in IM
++	    composing state
++	  - (focusInEvent): Fix invalid MicroFocusHint position which
++	    caused that candidate window is always showed at end of
++	    the preedit when active window is show() back
++
++2004-06-07  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/kernel/qwidget_x11.cpp
++	  - (reparentSys): Fix an invalid assumption about input
++	    context location involving destroyInputContext()
++	  - (deleteTLSysExtra): Remove destroyInputContext() because
++	    the input context is not a extra data and should be
++	    destroyed in QWidget::destroy()
++	  - (destroyInputContext): Remove icHolderWidget() because
++	    this function is called to destroy the input context that
++	    belongs to the widget itself
++	  - (destroy): Replace 'this->ic' with 'ic'
++	  - (create): Replace 'this->ic' with 'ic'
++
++	* src/kernel/qwidget.cpp
++	  - (hide): Add unfocusInputContext()
++
++	* src/kernel/qapplication.cpp
++	  - (setActiveWindow): Add unfocusInputContext()
++
++	* src/kernel/qlineedit.cpp
++	  - (QLineEditPrivate::xToPosInternal): New function. Copied
++	      from xToPos and Remove the safety limiter.
++	  - (QLineEditPrivate::xToPos): Reimprement using xToPosInternal
++	  - (sendMouseEventToInputContext):
++	    * Fix position boundary as matching with character
++	      boundary rather than center of character
++	    * Send mouse event when only mouse cursor is placed within
++	      preedit area. This is accomplished by replacing xToPos()
++	      with xToPosInternal()
++
++2004-06-04  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/kernel/qinputcontext.h
++	  - (font): New function. Returns the font of focusWidget()
++	* src/kernel/qinputcontext.cpp
++	  - (font): New function
++
++	* src/kernel/qwidget_x11.cpp
++	  - (setActiveWindow, focusInputContext): Avoid calling
++	     qic->setFocus() if the target is identical widget
++	  - (setMicroFocusHint, setActiveWindow, createInputContext,
++	     destroyInputContext, resetInputContext,
++	     focusInputContext): Remove obsolete comment around qic
++	     retrieving
++
++	* src/input/qximinputcontext_x11.cpp
++	  - (language): Return Chinese languages appropriately (such
++	     as "zh_CN")
++
++2004-06-03  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/kernel/qinputcontext.h
++	- (getOwnerWidget): Remove to rename to ownerWidget
++	- (ownerWidget): New function. Rename from getOwnerWidget to
++	  be consistent with the name focusWidget
++	- (focusWidget): New function. Add to make IM-related
++	  communication with focusWidget easy. The name is imported
++	  from QApplication::focusWidget to be supposed same role
++	- (language): Change return type to QCString from const char *
++	- (filterEvent): Change args. Passes QEvent *event rather than
++	  preexpanded key event values. This is intended to pass other
++	  IM-related events in future. The IM-related events are
++	  supposed as QWheelEvent, QTabletEvent and so on
++	- (setFocusHint): Remove to be appropriate name
++	- (setMicroFocus):
++	  * Rename from setFocusHint to be appropriate name. This
++	    function instructs 'MicroFocus' rect within a widget that
++	    is different to normal focus for widgets, so the name
++	    'setFocus' is invalid. And 'Hint' is a concept for the
++	    manager of this class and loses the meaning when passed to
++	    this class. The passed values are not a hint but have
++	    well-defined actual effect, so the name 'Hint' is
++	    invalid. Finally, Qt/Embedded 2.3.7 has a samely named
++	    method in QWSInputMethod
++	  * Remove the arg 'widget' to consistent with the new
++	    focusWidget() method
++	- (mouseHandler): New function. The method interface is
++	  imported from QWSInputMethod::mouseHandler() of Qt/Embedded
++	  2.3.7 and extended for desktop system
++	- (sendIMEvent): New function. Conventional function to send
++	  QIMEvent to appropriate widget using focusWidget(). IM
++	  developers can send IMEvents without tracking focuswidget by
++	  themself
++	- (ownerWidget): Remove to Rename to _ownerWidget
++	- (_ownerWidget): New variable. Renamed from ownerWidget to
++	  avoid name conflict with ownerWidget()
++	- (_focusWidget): New variable.
++	* src/kernel/qinputcontext.cpp
++	  - (QInputContext): Follow API change
++	  - (~QInputContext): Clean up
++	  - (filterEvent): Follow API change
++	  - (sendIMEvent): New function.
++	  - (setFocusHint): Remove to follow new API
++	  - (setMicroFocus): copied from setFocusHint and reimplement to
++	    follow new API
++	  - (mouseHandler): New function
++	  - (language): Follow API change
++
++	* src/kernel/qwidget.h
++	  - (sendMouseEventToInputContext): New function
++	  - (unfocusInputContext): New function
++
++	* src/kernel/qwidget.cpp
++	  - (setFocus): Invoke unfocusInputContext() with previous
++	    focus widget to delegate reset responsibility to input
++	    context instead of resetInputContext() directly. See also
++	    comment for further information
++	  - (clearFocus): Add unfocusInputContext();
++	  - (event): Delegate reset responsibility to input context
++	    instead of resetInputContext() directly. See also comment
++	    for further information
++
++	* src/kernel/qwidget_x11.cpp
++	  - (setMicroFocusHint): Modify to follow API change
++	  - (setActiveWindow): Modify to follow API change
++	  - (focusInputContext): Modify to follow API change
++	  - (unfocusInputContext): New function
++	  - (sendMouseEventToInputContext): New function
++
++	* src/kernel/qapplication_x11.cpp
++	  - (class QETWidget): Change translateKeyEventInternal definition
++	  - (x11ProcessEvent): Change QInputContext::filterEvent()
++	    invocation to follow API change
++	  - (translateKeyEventInternal):
++	    * Add new arg statefulTranslation to enable duplicate call
++	    within single event loop. This is required to support both
++	    QInputContext::filterEvent() and RTL extensions
++	    * Restore accidencially omitted qt_mode_switch_remove_mask
++	    handling
++
++	* src/input/qximinputcontext_p.h
++	  - (class QXIMInputContext): Follow API change of QInputContext
++	  - (language): Change return type to follow new API
++	  - (setFocus): Change arg to follow new API
++	  - (setFocusHint): Remove to follow new API
++	  - (setMicroFocus): New method to follow new API
++	  - (mouseHandler): New method to follow new API
++	  - (sendIMEvent): New method (reimp)
++	  - (focusWidget): Remove to follow new API
++	  - (cpos): New variable
++	  - (sellen): New variable
++	* src/input/qximinputcontext_x11.cpp
++	  - (qt_compose_emptied): Remove as result of optimization. It
++	    has become unnecessary now
++	  - (xic_start_callback): Add IMStart event sending as
++	    result of optimization
++	  - (xic_draw_callback): Optimize state management for IMEvent
++	    sending, and simplify using sendIMEvent()
++	  - (xic_done_callback): Simplify using sendIMEvent()
++	  - (QXIMInputContext):
++	    * Follow class definition change
++	    * Follow API change
++	  - (~QXIMInputContext): Modify to follow API change
++	  - (x11FilterEvent): Optimize state management for IMEvent
++	    sending, and simplify using sendIMEvent()
++	  - (sendIMEvent): New function. Implement to remember last
++	    IMEvent information
++	  - (reset): Simplify using sendIMEvent()
++	  - (resetClientState): Follow class definition change
++	  - (setFocusHint): Remove to follow new API
++	  - (setMicroFocus): copied from setFocusHint and modified to
++	    follow new API
++	  - (mouseHandler): New function. Implemented to reset the
++	    context on MouseButtonPress except for Japanese IM. See
++	    also comment for further information
++	  - (setFocus): Reimplement to follow new API. Automatically
++	    handles appropriate IMEvent sending on focus transition
++	  - (unsetFocus): Reimplement to follow new API. Implemented to
++	    reset the context on FocusOut except for Japanese IM. See
++	    also comment for further information
++
++	* src/widgets/qlineedit.h
++	  - (sendMouseEventToInputContext): New function
++	* src/widgets/qlineedit.cpp
++	  - (QLineEditPrivate::composeMode): New function
++	  - (QLineEditPrivate::hasIMSelection): New function
++	  - (QLineEditPrivate::preeditLength): New function
++	  - (QLineEditPrivate::imSelectionLength): New function
++	  - (mousePressEvent, mouseMoveEvent, mouseReleaseEvent,
++	     mouseDoubleClickEvent): Support QInputContext::mouseHandler()
++	  - (sendMouseEventToInputContext): New function. Retrieve the
++	    position and call QWidget::sendMouseEventToInputContext()
++	  - (drawContents): Follow API change
++
++	* src/widgets/qtextedit.h
++	  - (sendMouseEventToInputContext): New function
++	* src/widgets/qtextedit.cpp
++	  - (QTextEditPrivate::composeMode): New function
++	  - (sendMouseEventToInputContext): New function. Retrieve the
++	    position and call QWidget::sendMouseEventToInputContext()
++	  - (imComposeEvent, imEndEvent): Clean up with composeMode()
++	  - (contentsMousePressEvent, contentsMouseMoveEvent,
++	     contentsMouseReleaseEvent, contentsMouseDoubleClickEvent):
++	    Support QInputContext::mouseHandler()
++
++2004-06-01  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* src/input/qximinputcontext_x11.cpp (x11FilterEvent): Fix
++	  commit problem except for on-the-spot style
++
++2004-05-31  YamaKen  <yamaken@bp.iij4u.or.jp>
++
++	* First 'Simplified API' patch. A lot of changes to be described
++
++2004-03-16  Daisuke Kameda  <kaminmat@cc.rim.or.jp>
++
++	* A lot of changes to be described before this date. Almost
++	  of code are written by Daisuke Kameda
+--- /dev/null
++++ b/changes.immodule
+@@ -0,0 +1,248 @@
++This file describes significant change from
++qt-x11-immodule-bc-qt3.3.2-20040623.
++
++Differences from previous release
++(qt-x11-immodule-unified-qt3.3.3-20040819) are itemized with '+'
++sign. Search it to track incremental change.
++
++****************************************************************************
++*                           For users                                      *
++****************************************************************************
++
++General
++-------
++
+++ A strange character inversion problem on some input methods has been
++  fixed
++
++
++Input methods
++-------------
++
++- Added "simple" input method which provides dead/multi key composing
++  for latin languages
++
++
++User Interface
++--------------
++
++- Added input method selection menu in the context menu of text
++  widgets
++
++
++Configuration
++-------------
++
+++ default IM configuration feature of qtconfig has been disabled in BC
++  mode. This is a political change to avoid the confusion about input
++  method configuration in accordance with GTK+ environment.
++
++  See following discussion for further information.
++
++  http://freedesktop.org/pipermail/immodule-qt/2004-August/000416.html
++
++- Added new environment variables QT_IM_SWITCHER and QT_IM_MODULE to
++  set user's favorite input method as default. See README.immodule for
++  examples.
++
++
++Build & Install
++---------------
++
+++ configure options have been changed for internal reasons. See 'How
++  to install' section of README.immodule
++
++- This version of immodule requires corresponding version of each
++  input method plugins (i.e. update your additional input method
++  plugins)
++
++- Plugin directory has been changed from $QTDIR/plugins/input/ to
++  $QTDIR/plugins/inputmethods/. Delete old directory.
++
++- Some codes have been changed to allow compiling against Qt 3.2.x or
++  earlier.
++
++
++****************************************************************************
++*                          For develpers                                   *
++****************************************************************************
++
++Documents
++---------
++
++- Almost description of QInputContext and QInputContextPlugin has been
++  filled. Feel free to ask obscure things at our mailinglist.
++
++
++New features
++------------
++
++- Pluggable input method switcher
++
++  Now we can write input method switcher as an ordinary input method
++  plugin. The two plugins 'imsw-multi' and 'imsw-none' are provided as
++  default. But the architecture needs more discussion about whether
++  the design is right or not. Join the discussion.
++
++- Pluggable popup menu
++
++  Any input method can provide its own popup menu. See
++  http://freedesktop.org/pipermail/immodule-qt/2004-August/000266.html
++  for further information.
++
++- QInputContext proxying
++
++  Some methods of QInputContext have been changed to enable
++  QInputContext proxying. This feature is required to implement
++  pluggable input method switcher.
++
++
++General
++-------
++
+++ QInputContext has been source compatible with Qt4 version. Basic
++  input method plugin can be source compatible without #ifdef. Only
++  pluggable popup menu requires #ifdef'ed different code. In addition,
++  be careful about use of classes that is deprecated in Qt4.
++
++- Our two development tree for Qt3 'Binary Compatible' and 'ALL' have
++  been merged into this unified source tree. The source tree is called
++  'Unified' patch.
++
++- 'dead keys' for latin languages have been added into Qt::Key
++
++- Added plugins/src/inputmethods directory to build input method
++  plugins within the Qt source tree. The directory name 'inputmethods'
++  is intended to be compatible with Qt/Embedded. Install directory
++  name is still kept as 'input' for backward compatibility
++
++- Changed XIM input method to a plugin instead of directly link into
++  libqt
++
++- Plugin directory has been changed from $QTDIR/plugins/input/ to
++  $QTDIR/plugins/inputmethods/. Replace install directory with new
++  one.
++
++- Fixed some bugs in previous qt-x11-immodule-bc-qt3.3.2-20040623. See
++  following log for more detail.
++
++  * src/kernel/qwidget_x11.cpp
++    - (destroyInputContext): Replace the code with original Simplified
++      API patch. See the comment to recognize the original intention
++    - (focusInputContext): Fix a condition to call qic->setFocus() as
++      originally written. See added comment to recognize the original
++      intention
++
++- QLocale dependency has been removed to be compiled on Qt 3.2.x or
++  earlier
++
++- Many internal improvements and cleanups
++
++
++API Changes in qt-x11-immodule-unified-qt3.3.3-20040910
++-------------------------------------------------------
+++ QInputContext
++
++  * QInputContext()
++
++    Added 'parent' arg to be compatible with Qt4. Since the arg
++    defaults to 0, no modification of plugins are required.
++
++  * language()
++  * identifierName()
++
++    Return type of these two methods have been changed from QCString
++    which is deprecated in Qt4 to QString to make plugins source
++    compatible with Qt4.
++
++  * addActionsTo()
++
++    New method for Qt4 text widget developer
++
++
++API Changes in qt-x11-immodule-unified-qt3.3.3-20040812
++-------------------------------------------------------
++
++- QInputContext proxying
++
++  QInputContext have been changed as follows to enable QInputContext
++  proxying.
++
++  1. Use signal to deliver QIMEvent instead of explicit
++     postEvent(). This enables QIMEvent proxying and better platform
++     abstraction. Corresponding slot is created as
++     QApplication::imEventReceived().
++
++  2. Move some methods of QInputContext to public from protected or
++     private. This enables that proxy-IM can access slave methods.
++
++  3. Make some methods of QInputContext virtual. This enables
++     overriding the methods as proxy
++
++  4. Rename QInputContext::name() to identifierName() to avoid
++     conflicting with QObject::name()
++
++
++- QInputContext
++
++  * language()
++
++    New method to indicate current language
++
++  * menus()
++
++    New method for the pluggable popup menu feature
++
++  * addMenusTo()
++
++    New method for text widget developer
++
++  * deletionRequested()
++
++    New signal to request deletion of this instance. This is added for
++    fatal error handling
++
++  * identifierName()
++
++    This replaces name() of previous API to avoid conflicting with
++    QObject::name(), and to distinguish the role from displayName()
++
++  * filterEvent()
++
++    Turn the argument into const. See
++    http://freedesktop.org/pipermail/immodule-qt/2004-August/000335.html
++    for further information
++
++  * isComposing
++  * isPreeditRelocationEnabled
++
++    Move to public from protected to allow proxying
++
++  * setFocusWidget
++  * setHolderWidget
++  * releaseComposingWidget
++
++    Move to public from private to allow proxying
++
++  * focusWidget
++  * holderWidget
++
++    - Make public from protected to allow proxying
++    - Make virtual to allow overriding the method as proxy
++
++- QInputContextPlugin
++
++  * languages()
++
++    New method which returns what languages are supported by the
++    QInputContext instance
++
++  * displayName()
++
++    New method which returns a user friendly i18n-ized name of the
++    QInputContext instance
++
++  * description()
++
++    New method which returns a i18n-ized brief description of the
++    QInputContext instance
+--- a/configure
++++ b/configure
+@@ -222,7 +222,7 @@
+ fi
+ 
+ # licensed modules depend on type of commercial license
+-MODULES="styles tools kernel widgets dialogs iconview workspace"
++MODULES="styles tools kernel widgets dialogs iconview workspace inputmethod"
+ [ "$PLATFORM_QWS" = "yes" ] && [ "$Products" = "qt-professional" ] && MODULES="$MODULES network"
+ [ "$Products" != "qt-professional" ] && MODULES="$MODULES network canvas table xml opengl sql"
+ CFG_MODULES_AVAILABLE=$MODULES
+@@ -269,6 +269,9 @@
+ CFG_SQL_AUTODETECTED=
+ CFG_GFX_AVAILABLE=
+ CFG_STYLE_AVAILABLE=
++#Keep this position for CFG_IM* to avoid patch rejection
++CFG_IM=yes
++CFG_IM_EXT=no
+ CFG_TABLET=auto
+ CFG_XKB=auto
+ CFG_NIS=auto
+@@ -400,6 +403,12 @@
+ 	VAR=fatal_error
+ 	VAL=no
+ 	;;
++    #Qt style yes options for immodule
++    #Keep this place to avoid patch rejection
++    -inputmethod|-inputmethod-ext)
++	VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
++	VAL=yes
++	;;
+     -embedded)
+ 	VAR=embedded
+ 	# this option may or may not be followed by an argument
+@@ -1019,6 +1028,20 @@
+     dlopen-opengl)
+ 	CFG_DLOPEN_OPENGL="$VAL"
+ 	;;
++    inputmethod)
++	if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
++	    CFG_IM="$VAL"
++	else
++	    UNKNOWN_OPT=yes
++	fi
++	;;
++    inputmethod-ext)
++	if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
++	    CFG_IM_EXT="$VAL"
++	else
++	    UNKNOWN_OPT=yes
++	fi
++	;;
+     *)
+ 	UNKNOWN_OPT=yes
+ 	;;
+@@ -1895,6 +1918,13 @@
+     CFG_GFX_AVAILABLE=`echo $CFG_GFX_AVAILABLE`
+ fi
+ 
++# immodule extensions
++if [ "$CFG_IM" = "no" ]; then
++    CFG_IM_EXT=no
++fi
++if [ "$CFG_IM_EXT" = "yes" ]; then
++    CFG_IM=yes
++fi
+ 
+ #-------------------------------------------------------------------------------
+ # help - interactive parts of the script _after_ this section please
+@@ -2202,6 +2232,20 @@
+         XKY="*"
+         XKN=" "
+     fi
++    if [ "$CFG_IM" = "no" ]; then
++        IMY=" "
++        IMN="*"
++    else
++        IMY="*"
++        IMN=" "
++    fi
++    if [ "$CFG_IM_EXT" = "no" ]; then
++        IXY=" "
++        IXN="*"
++    else
++        IXY="*"
++        IXN=" "
++    fi
+     cat << EOF
+ 
+ Qt/X11 only:
+@@ -2250,6 +2294,14 @@
+     -dlopen-opengl ..... Qt uses dlopen(3) to resolve OpenGL functions
+ 			 (instead of linking with OpenGL libraries directly).
+ 
++ $IMN  -no-inputmethod .... Do not compile immodule (extensible input method)
++			 support.
++ $IMY  -inputmethod ....... Compile immodule support.
++
++ $IXN  -no-inputmethod-ext  Do not compile more immodule extensions support.
++ $IXY  -inputmethod-ext ... Compile more immodule extensions support.
++			 (breaks ABI with standard Qt3).
++
+ EOF
+ fi
+ 
+@@ -2983,6 +3035,16 @@
+     if [ "$CFG_XKB" = "yes" ]; then
+         QMAKE_CONFIG="$QMAKE_CONFIG xkb"
+     fi
++    if [ "$CFG_IM" = "yes" ]; then
++        QMAKE_CONFIG="$QMAKE_CONFIG inputmethod"
++    elif [ "$CFG_IM" = "no" ]; then
++	QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IM"
++    fi
++    if [ "$CFG_IM_EXT" = "yes" ]; then
++        QMAKE_CONFIG="$QMAKE_CONFIG inputmethod-ext"
++    elif [ "$CFG_IM_EXT" = "no" ]; then
++	QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IM_EXTENSIONS"
++    fi
+ elif [ "$PLATFORM_MAC" = "yes" ]; then
+     if [ "$CFG_TABLET" = "yes" ]; then
+ 	QMAKE_CONFIG="$QMAKE_CONFIG tablet"
+@@ -3107,7 +3169,7 @@
+ #     minimal-config small-config medium-config large-config full-config
+ #
+ #   Modules:
+-#     styles tools kernel widgets dialogs iconview workspace
++#     styles tools kernel widgets dialogs iconview workspace inputmethod
+ #
+ #   Enterprise/Open Source edition modules:
+ #     network canvas table xml opengl sql
+@@ -3115,6 +3177,8 @@
+ #   Options:
+ #     stl
+ #
++#     X11     : inputmethod-ext
++#
+ # Things that do not affect the Qt API/ABI:
+ #     system-jpeg no-jpeg jpeg
+ #     system-mng no-mng mng
+@@ -3136,10 +3200,10 @@
+ #     tablet
+ #     ipv6
+ #
+-#     X11     : xftnameunparse x11sm xinerama xcursor xrandr xrender xftfreetype xkb
++#     X11     : xftnameunparse x11sm xinerama xcursor xrandr xrender xftfreetype xkb inputmethod
+ #     Embedded: embedded ft
+ #
+-ALL_OPTIONS="styles tools kernel widgets dialogs iconview workspace network canvas table xml opengl sql stl"
++ALL_OPTIONS="styles tools kernel widgets dialogs iconview workspace inputmethod network canvas table xml opengl sql stl"
+ BUILD_CONFIG=
+ BUILD_OPTIONS=
+ 
+@@ -3153,7 +3217,7 @@
+ 	BUILD_CONFIG="$config_option"
+ 	;;
+ 
+-    styles|tools|kernel|widgets|dialogs|iconview|workspace|network|canvas|table|xml|opengl|sql|stl)
++    styles|tools|kernel|widgets|dialogs|iconview|workspace|inputmethod|network|canvas|table|xml|opengl|sql|stl)
+ 	# these config options affect the Qt API/ABI. they should influence
+ 	# the generation of the buildkey, so we don't skip them
+    	SKIP="no"
+@@ -3500,6 +3564,8 @@
+     echo "XRender support ..... $CFG_XRENDER"
+     echo "Xft support ......... $CFG_FREETYPE"
+     echo "XKB Support ......... $CFG_XKB"
++    echo "immodule support .... $CFG_IM"
++    echo "immodule ext support  $CFG_IM_EXT"
+ elif [ "$PLATFORM_MAC" = "yes" ]; then
+     echo "Accessibility ....... $CFG_ACCESSIBILITY"
+     echo "Tablet support ...... $CFG_TABLET"
+--- /dev/null
++++ b/make-symlinks.sh
+@@ -0,0 +1,12 @@
++#!/bin/sh
++cd include
++rm -f q*.h
++ln -s ../src/*/q*.h .
++ln -s ../extensions/*/src/q*.h .
++ln -s ../tools/assistant/lib/qassistantclient.h .
++ln -s ../tools/designer/uilib/qwidgetfactory.h .
++rm -f q*_p.h
++cd private
++rm -f q*_p.h
++ln -s ../../src/*/q*_p.h .
++
+--- /dev/null
++++ b/plugins/src/inputmethods/imsw-multi/imsw-multi.pro
+@@ -0,0 +1,14 @@
++TEMPLATE = lib
++TARGET   = qimsw-multi
++DESTDIR  = ../../../inputmethods
++
++INCLUDEPATH += .
++CONFIG      += qt warn_on debug plugin
++target.path += $$plugins.path/inputmethods
++INSTALLS    += target
++
++# Input
++HEADERS += qmultiinputcontext.h \
++           qmultiinputcontextplugin.h
++SOURCES += qmultiinputcontext.cpp \
++           qmultiinputcontextplugin.cpp
+--- /dev/null
++++ b/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.cpp
+@@ -0,0 +1,379 @@
++/****************************************************************************
++** $Id$
++**
++** Implementation of QMultiInputContext class
++**
++** Copyright (C) 2004 immodule for Qt Project.  All rights reserved.
++**
++** This file is written to contribute to Trolltech AS under their own
++** licence. You may use this file under your Qt license. Following
++** description is copied from their original file headers. Contact
++** immodule-qt@freedesktop.org if any conditions of this licensing are
++** not clear to you.
++**
++**
++** This file is part of the input method module of the Qt GUI Toolkit.
++**
++** This file may be distributed under the terms of the Q Public License
++** as defined by Trolltech AS of Norway and appearing in the file
++** LICENSE.QPL included in the packaging of this file.
++**
++** This file may be distributed and/or modified under the terms of the
++** GNU General Public License version 2 as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL included in the
++** packaging of this file.
++**
++** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
++** licenses may use this file in accordance with the Qt Commercial License
++** Agreement provided with the Software.
++**
++** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
++** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++**
++** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
++**   information about Qt Commercial License Agreements.
++** See http://www.trolltech.com/qpl/ for QPL licensing information.
++** See http://www.trolltech.com/gpl/ for GPL licensing information.
++**
++** Contact info@trolltech.com if any conditions of this licensing are
++** not clear to you.
++**
++**********************************************************************/
++
++#ifndef QT_NO_IM
++#include "qmultiinputcontext.h"
++#include <qinputcontextfactory.h>
++#include <qstringlist.h>
++#include <qpopupmenu.h>
++#ifndef QT_NO_IM_EXTENSIONS
++#include <qsettings.h>
++#endif
++
++#include <stdlib.h>
++
++#define QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX
++
++QMultiInputContext::QMultiInputContext()
++    : QInputContext(), _slave( 0 ), imIndex( 0 ), cachedFocus( FALSE ),
++      cachedFocusWidget( 0 ), cachedHolderWidget( 0 ),
++      beIndirectlyConnected( FALSE ), popup( NULL ), currentIMKey( QString::null )
++{
++    keyDict.setAutoDelete( true );
++    keyDict.clear();
++
++    if ( getenv( "QT_IM_MODULE" ) ) {
++        currentIMKey = getenv( "QT_IM_MODULE" );
++    } else {
++#ifndef QT_NO_IM_EXTENSIONS
++	QSettings settings;
++        currentIMKey = settings.readEntry( "/qt/DefaultInputMethod", "xim" );
++#else
++	currentIMKey = "xim";
++#endif
++    }
++}
++
++QMultiInputContext::~QMultiInputContext()
++{
++    keyDict.clear();
++}
++
++
++QString QMultiInputContext::identifierName()
++{
++    return ( slave() ) ? slave()->identifierName() : "";
++}
++
++QString QMultiInputContext::language()
++{
++    return ( slave() ) ? slave()->language() : "";
++}
++
++
++#if defined(Q_WS_X11)
++bool QMultiInputContext::x11FilterEvent( QWidget *keywidget, XEvent *event )
++{
++    return ( slave() ) ? slave()->x11FilterEvent( keywidget, event ) : FALSE;
++}
++#endif // Q_WS_X11
++
++
++bool QMultiInputContext::filterEvent( const QEvent *event )
++{
++#if !defined(QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX)
++    if ( event->type() == QEvent::KeyPress ) {
++	QKeyEvent *keyevent = (QKeyEvent *)event;
++
++	// filter selection key
++	// Control+Alt+Key_Down: change to next input method
++	// Control+Alt+Key_Up:   change to previous input method
++	if ( ( keyevent->state() & Qt::ControlButton ) &&
++	     ( keyevent->state() & Qt::AltButton ) ) {
++	    if ( keyevent->key() == Qt::Key_Up ) {
++		changeInputMethod( --imIndex );
++		return TRUE;
++	    } else if ( keyevent->key() == Qt::Key_Down ) {
++		changeInputMethod( ++imIndex );
++		return TRUE;
++	    }
++	}
++    }
++#endif
++
++    return ( slave() ) ? slave()->filterEvent( event ) : FALSE;
++}
++
++void QMultiInputContext::reset()
++{
++    if ( slave() )
++	slave()->reset();
++}
++
++
++void QMultiInputContext::setFocus()
++{
++    cachedFocus = TRUE;
++    if ( slave() )
++	slave()->setFocus();
++}
++
++void QMultiInputContext::unsetFocus()
++{
++    cachedFocus = FALSE;
++    if ( slave() )
++	slave()->unsetFocus();
++}
++
++void QMultiInputContext::setMicroFocus( int x, int y, int w, int h, QFont *f )
++{
++    if ( slave() )
++	slave()->setMicroFocus( x, y, w, h, f );
++}
++
++void QMultiInputContext::mouseHandler( int x, QEvent::Type type,
++				       Qt::ButtonState button,
++				       Qt::ButtonState state )
++{
++    if ( slave() )
++	slave()->mouseHandler( x, type, button, state );
++}
++
++QFont QMultiInputContext::font() const
++{
++    return ( slave() ) ? slave()->font() : QInputContext::font();
++}
++
++void QMultiInputContext::destroyInputContext()
++{
++    if ( _slave ) {
++	// _slave->reset() may not properly work in the case, so we
++	// manually resets the composing state of text widget
++	if ( _slave->focusWidget() ) {
++	    QIMEvent *terminator = new QIMEvent( QEvent::IMEnd, QString::null, -1 );
++	    emit imEventGenerated( _slave->focusWidget(), terminator );
++	}
++	_slave->deleteLater();
++	_slave = 0;
++    }
++}
++
++
++/*!
++    This function is a placeholder for future experiment or extension
++    such as commit string snooping. set beIndirectlyConnected = TRUE
++    to activate this virtual function.
++*/
++void QMultiInputContext::postIMEvent( QObject *receiver, QIMEvent *event )
++{
++    emit imEventGenerated( receiver, event );
++}
++
++
++#if defined(Q_WS_X11)
++QWidget *QMultiInputContext::focusWidget() const
++{
++    return ( slave() ) ? slave()->focusWidget() : 0;
++}
++
++QWidget *QMultiInputContext::holderWidget() const
++{
++    return ( slave() ) ? slave()->holderWidget() : 0;
++}
++
++
++void QMultiInputContext::setFocusWidget( QWidget *w )
++{
++    cachedFocusWidget = w;
++    if ( slave() )
++	slave()->setFocusWidget( w );
++}
++
++void QMultiInputContext::setHolderWidget( QWidget *w )
++{
++    cachedHolderWidget = w;
++    if ( slave() )
++	slave()->setHolderWidget( w );
++}
++
++void QMultiInputContext::releaseComposingWidget( QWidget *w )
++{
++    if ( slave() )
++	slave()->releaseComposingWidget( w );
++}
++
++#endif
++
++bool QMultiInputContext::isComposing() const
++{
++    return ( slave() ) ? slave()->isComposing() : FALSE;
++}
++
++bool QMultiInputContext::isPreeditRelocationEnabled()
++{
++    return ( slave() ) ? slave()->isPreeditRelocationEnabled() : FALSE;
++}
++
++QInputContext *QMultiInputContext::slave()
++{
++    if ( ! _slave ) {
++#if !defined(QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX)
++	changeInputMethod( imIndex );
++#else
++	changeInputMethod( currentIMKey );
++#endif
++    }
++
++    return _slave;
++}
++
++const QInputContext *QMultiInputContext::slave() const
++{
++    return _slave;
++}
++
++void QMultiInputContext::changeInputMethod( int newIndex )
++{
++#if !defined(QT_NO_IM_QMULTIINPUTCONTEXT_IMINDEX)
++    QStringList keys = QInputContextFactory::keys();
++    if ( keys.size() == 0 )
++	return;
++
++    if ( newIndex >= (int)keys.size() ) {
++	imIndex = 0;
++    } else if ( newIndex < 0 ) {
++	imIndex = keys.size() - 1;
++    } else {
++	imIndex = newIndex;
++    }
++
++    changeInputMethod( keys[imIndex] );
++#endif
++}
++
++void QMultiInputContext::changeInputMethod( QString key )
++{
++    QStringList keys = QInputContextFactory::keys();
++    if ( keys.size() == 0 )
++	return;
++
++    if ( key.isEmpty() )
++	key = keys[0];
++
++    if ( _slave ) {
++	_slave->reset();
++	delete _slave;
++    }
++
++    _slave = QInputContextFactory::create( key, cachedHolderWidget );
++    if ( _slave ) {
++	insertChild( _slave );
++
++	const char *method;
++	if ( beIndirectlyConnected ) {
++	    method = SLOT(imEventReceived(QObject *,QIMEvent *));
++	} else {
++	    method = SIGNAL(imEventGenerated(QObject *,QIMEvent *));
++	}
++	connect( _slave, SIGNAL(imEventGenerated(QObject *,QIMEvent *)),
++		 this, method );
++	connect( _slave, SIGNAL(deletionRequested()),
++		 this, SLOT(destroyInputContext()) );
++
++	if ( cachedFocus ) {
++	    _slave->setFocus();
++	    _slave->setFocusWidget( cachedFocusWidget );
++	}
++
++        currentIMKey = key;
++
++	//qDebug( "QMultiInputContext::changeInputMethod(): index=%d, slave=%s",
++	//	imIndex, (const char *)_slave->identifierName() );
++    }
++}
++
++QPtrList<QInputContextMenu> *QMultiInputContext::menus()
++{
++    QInputContextMenu *imSelMenu = new QInputContextMenu;
++    imSelMenu->title = tr( "Select Input &Method" );
++    imSelMenu->popup = createImSelPopup();
++
++    QPtrList<QInputContextMenu> *result = new QPtrList<QInputContextMenu>;
++    result->append( imSelMenu );
++
++    QPtrList<QInputContextMenu> *slaveMenus = ( slave() ) ? slave()->menus() : 0;
++    if ( slaveMenus ) {
++	for ( QPtrList<QInputContextMenu>::Iterator it = slaveMenus->begin();
++	      it != slaveMenus->end();
++	      ++it ) {
++	    QInputContextMenu *slaveMenu = *it;
++	    result->append( slaveMenu );
++	}
++	delete slaveMenus;
++    }
++
++    return result;
++}
++
++QPopupMenu *QMultiInputContext::createImSelPopup()
++{
++    if ( popup )
++        delete popup;
++
++    popup = new QPopupMenu();
++    keyDict.clear();
++
++    QStringList keys = QInputContextFactory::keys();
++    for ( uint i=0; i < keys.size(); i++ ) {
++	QString idName = keys[i];
++	bool isIMSwitcher = idName.startsWith( "imsw-" );
++
++	if ( ! isIMSwitcher ) {
++	    QString dispName = QInputContextFactory::displayName( idName );
++	    if ( dispName.isEmpty() )
++		dispName = idName;
++
++	    int id = popup->insertItem( dispName );
++	    keyDict.insert( (long)id, new QString( idName ) );
++
++	    if ( idName == currentIMKey )
++		popup->setItemChecked( id, true );
++
++            QString descriptionStr = QInputContextFactory::description( idName );
++            if ( ! descriptionStr.isEmpty() )
++                popup->setWhatsThis( id, descriptionStr );
++	}
++    }
++
++    QObject::connect( popup, SIGNAL(activated(int)),
++                      this, SLOT(changeInputMethodWithMenuId(int)) );
++
++    return popup;
++}
++
++void QMultiInputContext::changeInputMethodWithMenuId( int menuid )
++{
++    QString *key = keyDict.find( (long)menuid );
++    changeInputMethod( (*key) );
++}
++
++#endif
+--- /dev/null
++++ b/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h
+@@ -0,0 +1,124 @@
++/****************************************************************************
++** $Id$
++**
++** Definition of QMultiInputContext class
++**
++** Copyright (C) 2004 immodule for Qt Project.  All rights reserved.
++**
++** This file is written to contribute to Trolltech AS under their own
++** licence. You may use this file under your Qt license. Following
++** description is copied from their original file headers. Contact
++** immodule-qt@freedesktop.org if any conditions of this licensing are
++** not clear to you.
++**
++**
++** This file is part of the input method module of the Qt GUI Toolkit.
++**
++** This file may be distributed under the terms of the Q Public License
++** as defined by Trolltech AS of Norway and appearing in the file
++** LICENSE.QPL included in the packaging of this file.
++**
++** This file may be distributed and/or modified under the terms of the
++** GNU General Public License version 2 as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL included in the
++** packaging of this file.
++**
++** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
++** licenses may use this file in accordance with the Qt Commercial License
++** Agreement provided with the Software.
++**
++** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
++** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++**
++** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
++**   information about Qt Commercial License Agreements.
++** See http://www.trolltech.com/qpl/ for QPL licensing information.
++** See http://www.trolltech.com/gpl/ for GPL licensing information.
++**
++** Contact info@trolltech.com if any conditions of this licensing are
++** not clear to you.
++**
++**********************************************************************/
++
++#ifndef QMULTIINPUTCONTEXT_H
++#define QMULTIINPUTCONTEXT_H
++
++#ifndef QT_NO_IM
++
++#include <qnamespace.h>
++#include <qwidget.h>
++#include <qinputcontext.h>
++#include <qguardedptr.h>
++#include <qintdict.h>
++
++class QPopupMenu;
++
++class QMultiInputContext : public QInputContext
++{
++    Q_OBJECT
++public:
++    QMultiInputContext();
++    ~QMultiInputContext();
++
++    QString identifierName();
++    QString language();
++
++#if defined(Q_WS_X11)
++    bool x11FilterEvent( QWidget *keywidget, XEvent *event );
++#endif // Q_WS_X11
++    bool filterEvent( const QEvent *event );
++    void reset();
++
++    void setFocus();
++    void unsetFocus();
++    void setMicroFocus( int x, int y, int w, int h, QFont *f = 0 );
++    void mouseHandler( int x, QEvent::Type type,
++		       Qt::ButtonState button, Qt::ButtonState state );
++    QFont font() const;
++    bool isComposing() const;
++    bool isPreeditRelocationEnabled();
++    
++#if (QT_VERSION-0 >= 0x040000)
++    QPtrList<QMenu> *qt4menus();
++#endif
++    QPtrList<QInputContextMenu> *menus();
++    QPopupMenu *createImSelPopup();    
++
++#if defined(Q_WS_X11)
++    QWidget *focusWidget() const;
++    QWidget *holderWidget() const;
++
++    void setFocusWidget( QWidget *w );
++    void setHolderWidget( QWidget *w );
++    void releaseComposingWidget( QWidget *w );
++#endif
++
++public slots:
++    virtual void destroyInputContext();
++    virtual void postIMEvent( QObject *receiver, QIMEvent *event );
++
++protected slots:
++    void changeInputMethodWithMenuId( int menuid );
++
++protected:
++    QInputContext *slave();
++    const QInputContext *slave() const;
++    
++    void changeInputMethod( int newIndex );
++    void changeInputMethod( QString name );
++
++    QInputContext *_slave;
++    int imIndex;
++    bool cachedFocus;
++    QWidget *cachedFocusWidget;
++    QWidget *cachedHolderWidget;
++    bool beIndirectlyConnected;
++
++    QIntDict<QString> keyDict;
++    QGuardedPtr<QPopupMenu> popup;
++    QString currentIMKey;
++};
++
++#endif //Q_NO_IM
++
++#endif // QMULTIINPUTCONTEXT_H
+--- /dev/null
++++ b/plugins/src/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp
+@@ -0,0 +1,88 @@
++/****************************************************************************
++** $Id$
++**
++** Implementation of QMultiInputContextPlugin class
++**
++** Copyright (C) 2004 immodule for Qt Project.  All rights reserved.
++**
++** This file is written to contribute to Trolltech AS under their own
++** licence. You may use this file under your Qt license. Following
++** description is copied from their original file headers. Contact
++** immodule-qt@freedesktop.org if any conditions of this licensing are
++** not clear to you.
++**
++**
++** This file is part of the input method module of the Qt GUI Toolkit.
++**
++** This file may be distributed under the terms of the Q Public License
++** as defined by Trolltech AS of Norway and appearing in the file
++** LICENSE.QPL included in the packaging of this file.
++**
++** This file may be distributed and/or modified under the terms of the
++** GNU General Public License version 2 as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL included in the
++** packaging of this file.
++**
++** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
++** licenses may use this file in accordance with the Qt Commercial License
++** Agreement provided with the Software.
++**
++** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
++** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++**
++** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
++**   information about Qt Commercial License Agreements.
++** See http://www.trolltech.com/qpl/ for QPL licensing information.
++** See http://www.trolltech.com/gpl/ for GPL licensing information.
++**
++** Contact info@trolltech.com if any conditions of this licensing are
++** not clear to you.
++**
++**********************************************************************/
++
++#ifndef QT_NO_IM
++#include "qmultiinputcontext.h"
++#include "qmultiinputcontextplugin.h"
++#include <qinputcontextplugin.h>
++#include <qstringlist.h>
++
++
++QMultiInputContextPlugin::QMultiInputContextPlugin()
++{
++}
++
++QMultiInputContextPlugin::~QMultiInputContextPlugin()
++{
++}
++
++QStringList QMultiInputContextPlugin::keys() const
++{
++    // input method switcher should named with "imsw-" prefix to
++    // prevent to be listed in ordinary input method list.
++    return QStringList( "imsw-multi" );
++}
++
++QInputContext *QMultiInputContextPlugin::create( const QString &key )
++{
++    return new QMultiInputContext;
++}
++
++QStringList QMultiInputContextPlugin::languages( const QString &key )
++{
++    return QStringList( "" );
++}
++
++QString QMultiInputContextPlugin::displayName( const QString &key )
++{
++    return tr( "Multiple Input Method Switcher" );
++}
++
++QString QMultiInputContextPlugin::description( const QString &key )
++{
++    return tr( "Multiple input method switcher that uses the context menu of the text widgets" );
++}
++
++
++Q_EXPORT_PLUGIN( QMultiInputContextPlugin )
++
++#endif
+--- /dev/null
++++ b/plugins/src/inputmethods/imsw-multi/qmultiinputcontextplugin.h
+@@ -0,0 +1,63 @@
++/****************************************************************************
++** $Id$
++**
++** Definition of QMultiInputContextPlugin class
++**
++** Copyright (C) 2004 immodule for Qt Project.  All rights reserved.
++**
++** This file is written to contribute to Trolltech AS under their own
++** licence. You may use this file under your Qt license. Following
++** description is copied from their original file headers. Contact
++** immodule-qt@freedesktop.org if any conditions of this licensing are
++** not clear to you.
++**
++**
++** This file is part of the input method module of the Qt GUI Toolkit.
++**
++** This file may be distributed under the terms of the Q Public License
++** as defined by Trolltech AS of Norway and appearing in the file
++** LICENSE.QPL included in the packaging of this file.
++**
++** This file may be distributed and/or modified under the terms of the
++** GNU General Public License version 2 as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL included in the
++** packaging of this file.
++**
++** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
++** licenses may use this file in accordance with the Qt Commercial License
++** Agreement provided with the Software.
++**
++** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
++** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++**
++** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
++**   information about Qt Commercial License Agreements.
++** See http://www.trolltech.com/qpl/ for QPL licensing information.
++** See http://www.trolltech.com/gpl/ for GPL licensing information.
++**
++** Contact info@trolltech.com if any conditions of this licensing are
++** not clear to you.
++**
++**********************************************************************/
++
++#ifndef QT_NO_IM
++#include "qmultiinputcontext.h"
++#include <qinputcontextplugin.h>
++#include <qstringlist.h>
++
++
++class QMultiInputContextPlugin : public QInputContextPlugin
++{
++    Q_OBJECT
++public:
++    QMultiInputContextPlugin();
++    ~QMultiInputContextPlugin();
++
++    QStringList keys() const;
++    QInputContext *create( const QString &key );
++    QStringList languages( const QString &key );
++    QString displayName( const QString &key );
++    QString description( const QString &key );
++};
++
++#endif
+--- /dev/null
++++ b/plugins/src/inputmethods/imsw-none/imsw-none.pro
+@@ -0,0 +1,12 @@
++TEMPLATE = lib
++TARGET   = qimsw-none
++DESTDIR  = ../../../inputmethods
++
++INCLUDEPATH += .
++CONFIG      += qt warn_on debug plugin
++target.path += $$plugins.path/inputmethods
++INSTALLS    += target
++
++# Input
++HEADERS += qnoneinputcontextplugin.h
++SOURCES += qnoneinputcontextplugin.cpp
+--- /dev/null
++++ b/plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.cpp
+@@ -0,0 +1,101 @@
++/****************************************************************************
++** $Id$
++**
++** Implementation of QNoneInputContextPlugin class
++**
++** Copyright (C) 2004 immodule for Qt Project.  All rights reserved.
++**
++** This file is written to contribute to Trolltech AS under their own
++** licence. You may use this file under your Qt license. Following
++** description is copied from their original file headers. Contact
++** immodule-qt@freedesktop.org if any conditions of this licensing are
++** not clear to you.
++**
++**
++** This file is part of the input method module of the Qt GUI Toolkit.
++**
++** This file may be distributed under the terms of the Q Public License
++** as defined by Trolltech AS of Norway and appearing in the file
++** LICENSE.QPL included in the packaging of this file.
++**
++** This file may be distributed and/or modified under the terms of the
++** GNU General Public License version 2 as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL included in the
++** packaging of this file.
++**
++** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
++** licenses may use this file in accordance with the Qt Commercial License
++** Agreement provided with the Software.
++**
++** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
++** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++**
++** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
++**   information about Qt Commercial License Agreements.
++** See http://www.trolltech.com/qpl/ for QPL licensing information.
++** See http://www.trolltech.com/gpl/ for GPL licensing information.
++**
++** Contact info@trolltech.com if any conditions of this licensing are
++** not clear to you.
++**
++**********************************************************************/
++
++#ifndef QT_NO_IM
++#include "qnoneinputcontextplugin.h"
++#include <qinputcontextfactory.h>
++#include <qsettings.h>
++#include <stdlib.h>
++
++
++QNoneInputContextPlugin::QNoneInputContextPlugin()
++{
++}
++
++QNoneInputContextPlugin::~QNoneInputContextPlugin()
++{
++}
++
++QStringList QNoneInputContextPlugin::keys() const
++{
++    // input method switcher should named with "imsw-" prefix to
++    // prevent to be listed in ordinary input method list.
++    return QStringList( "imsw-none" );
++}
++
++QInputContext *QNoneInputContextPlugin::create( const QString &key )
++{
++    QString actuallySpecifiedKey;
++
++    bool isIMSwitcher = key.startsWith( "imsw-" );
++    if ( ! isIMSwitcher )
++	return 0;
++
++    if ( getenv( "QT_IM_MODULE" ) ) {
++        actuallySpecifiedKey = getenv( "QT_IM_MODULE" );
++    } else {
++	QSettings settings;
++        actuallySpecifiedKey = settings.readEntry( "/qt/DefaultInputMethod", "xim" );
++    }
++
++    return QInputContextFactory::create( actuallySpecifiedKey, 0 );
++}
++
++QStringList QNoneInputContextPlugin::languages( const QString &key )
++{
++    return QStringList( "" );
++}
++
++QString QNoneInputContextPlugin::displayName( const QString &key )
++{
++    return tr( "Dummy Input Method Switcher" );
++}
++
++QString QNoneInputContextPlugin::description( const QString &key )
++{
++    return tr( "Dummy input method switcher that uses the context menu of the text widgets" );
++}
++
++
++Q_EXPORT_PLUGIN( QNoneInputContextPlugin )
++
++#endif
+--- /dev/null
++++ b/plugins/src/inputmethods/imsw-none/qnoneinputcontextplugin.h
+@@ -0,0 +1,62 @@
++/****************************************************************************
++** $Id$
++**
++** Definition of QNoneInputContextPlugin class
++**
++** Copyright (C) 2004 immodule for Qt Project.  All rights reserved.
++**
++** This file is written to contribute to Trolltech AS under their own
++** licence. You may use this file under your Qt license. Following
++** description is copied from their original file headers. Contact
++** immodule-qt@freedesktop.org if any conditions of this licensing are
++** not clear to you.
++**
++**
++** This file is part of the input method module of the Qt GUI Toolkit.
++**
++** This file may be distributed under the terms of the Q Public License
++** as defined by Trolltech AS of Norway and appearing in the file
++** LICENSE.QPL included in the packaging of this file.
++**
++** This file may be distributed and/or modified under the terms of the
++** GNU General Public License version 2 as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL included in the
++** packaging of this file.
++**
++** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
++** licenses may use this file in accordance with the Qt Commercial License
++** Agreement provided with the Software.
++**
++** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
++** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++**
++** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
++**   information about Qt Commercial License Agreements.
++** See http://www.trolltech.com/qpl/ for QPL licensing information.
++** See http://www.trolltech.com/gpl/ for GPL licensing information.
++**
++** Contact info@trolltech.com if any conditions of this licensing are
++** not clear to you.
++**
++**********************************************************************/
++
++#ifndef QT_NO_IM
++#include <qinputcontextplugin.h>
++#include <qstringlist.h>
++
++
++class QNoneInputContextPlugin : public QInputContextPlugin
++{
++    Q_OBJECT
++public:
++    QNoneInputContextPlugin();
++    ~QNoneInputContextPlugin();
++
++    QStringList keys() const;
++    QInputContext *create( const QString &key );
++    QStringList languages( const QString &key );
++    QString displayName( const QString &key );
++    QString description( const QString &key );
++};
++
++#endif
+--- /dev/null
++++ b/plugins/src/inputmethods/inputmethods.pro
+@@ -0,0 +1,11 @@
++TEMPLATE = subdirs
++
++unix {
++	!embedded:!mac:CONFIG	   += x11
++}
++# XIM should be enabled only for X11 platform, but following
++# configuration is not working properly yet
++#im:x11:SUBDIRS += xim
++
++inputmethod:SUBDIRS += imsw-none imsw-multi simple
++inputmethod:SUBDIRS += xim
+--- /dev/null
++++ b/plugins/src/inputmethods/simple/composetable.cpp
+@@ -0,0 +1,5605 @@
++/****************************************************************************
++** $Id$
++**
++** Compose table for QSimpleInputContext class
++**
++** Copyright (C) 2004 immodule for Qt Project.  All rights reserved.
++**
++** This file is written to contribute to Trolltech AS under their own
++** licence. You may use this file under your Qt license. Following
++** description is copied from their original file headers. Contact
++** immodule-qt@freedesktop.org if any conditions of this licensing are
++** not clear to you.
++**
++**
++** This file is part of the input method module of the Qt GUI Toolkit.
++**
++** This file may be distributed under the terms of the Q Public License
++** as defined by Trolltech AS of Norway and appearing in the file
++** LICENSE.QPL included in the packaging of this file.
++**
++** This file may be distributed and/or modified under the terms of the
++** GNU General Public License version 2 as published by the Free Software
++** Foundation and appearing in the file LICENSE.GPL included in the
++** packaging of this file.
++**
++** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
++** licenses may use this file in accordance with the Qt Commercial License
++** Agreement provided with the Software.
++**
++** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
++** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++**
++** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
++**   information about Qt Commercial License Agreements.
++** See http://www.trolltech.com/qpl/ for QPL licensing information.
++** See http://www.trolltech.com/gpl/ for GPL licensing information.
++**
++** Contact info@trolltech.com if any conditions of this licensing are
++** not clear to you.
++**
++**********************************************************************/
++
++// The compose table included in file is converted from a Compose file
++// of X.org's X11R6.7.0. Original header is follows
++
++// UTF-8 (Unicode) compose sequence
++// David.Monniaux@ens.fr
++//
++// $XFree86: xc/nls/Compose/en_US.UTF-8,v 1.11 2004/01/06 13:14:04 pascal Exp $
++
++
++#include "qsimpleinputcontext.h"
++
++#include <qnamespace.h>
++
++static const QComposeTableElement defaultTable[] = {
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1edc }, // U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1edd }, // U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1ede }, // U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1edf }, // U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1ee3 }, // U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1ee1 }, // U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1ee2 }, // U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1ef1 }, // U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1ef0 }, // U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1eef }, // U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1eee }, // U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1eed }, // U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1eec }, // U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1eeb }, // U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1eea }, // U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {0x0000, 0x0000, 0, 0, 0, 0}, 0x1ee0 }, // U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
++// /* broken */    { {0x0000, 0x0000, 0x004f, 0, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, 0x0000, 0x0055, 0, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, 0x0000, 0x006f, 0, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, 0x0000, 0x0075, 0, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, 0x0041, 0, 0, 0, 0}, 0x00c1 }, // U00C1 # LATIN CAPITAL LETTER A WITH ACUTE
++// /* broken */    { {0x0000, 0x0041, 0, 0, 0, 0}, 0x00c0 }, // U00C0 # LATIN CAPITAL LETTER A WITH GRAVE
++// /* broken */    { {0x0000, 0x0041, 0, 0, 0, 0}, 0x00c3 }, // U00C3 # LATIN CAPITAL LETTER A WITH TILDE
++// /* broken */    { {0x0000, 0x0041, 0, 0, 0, 0}, 0x1ea2 }, // U1EA2 # LATIN CAPITAL LETTER A WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x0041, 0, 0, 0, 0}, 0x1ea0 }, // U1EA0 # LATIN CAPITAL LETTER A WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0042, 0, 0, 0, 0}, 0x1e04 }, // U1E04 # LATIN CAPITAL LETTER B WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0043, 0, 0, 0, 0}, 0x0106 }, // U0106 # LATIN CAPITAL LETTER C WITH ACUTE
++// /* broken */    { {0x0000, 0x0044, 0, 0, 0, 0}, 0x1e0c }, // U1E0C # LATIN CAPITAL LETTER D WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0045, 0, 0, 0, 0}, 0x1ebc }, // U1EBC # LATIN CAPITAL LETTER E WITH TILDE
++// /* broken */    { {0x0000, 0x0045, 0, 0, 0, 0}, 0x1eb8 }, // U1EB8 # LATIN CAPITAL LETTER E WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0045, 0, 0, 0, 0}, 0x00c9 }, // U00C9 # LATIN CAPITAL LETTER E WITH ACUTE
++// /* broken */    { {0x0000, 0x0045, 0, 0, 0, 0}, 0x00c8 }, // U00C8 # LATIN CAPITAL LETTER E WITH GRAVE
++// /* broken */    { {0x0000, 0x0045, 0, 0, 0, 0}, 0x1eba }, // U1EBA # LATIN CAPITAL LETTER E WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x0047, 0, 0, 0, 0}, 0x01f4 }, // U01F4 # LATIN CAPITAL LETTER G WITH ACUTE
++// /* broken */    { {0x0000, 0x0048, 0, 0, 0, 0}, 0x1e24 }, // U1E24 # LATIN CAPITAL LETTER H WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0049, 0, 0, 0, 0}, 0x00cd }, // U00CD # LATIN CAPITAL LETTER I WITH ACUTE
++// /* broken */    { {0x0000, 0x0049, 0, 0, 0, 0}, 0x00cc }, // U00CC # LATIN CAPITAL LETTER I WITH GRAVE
++// /* broken */    { {0x0000, 0x0049, 0, 0, 0, 0}, 0x1ec8 }, // U1EC8 # LATIN CAPITAL LETTER I WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x0049, 0, 0, 0, 0}, 0x0128 }, // U0128 # LATIN CAPITAL LETTER I WITH TILDE
++// /* broken */    { {0x0000, 0x0049, 0, 0, 0, 0}, 0x1eca }, // U1ECA # LATIN CAPITAL LETTER I WITH DOT BELOW
++// /* broken */    { {0x0000, 0x004b, 0, 0, 0, 0}, 0x1e30 }, // U1E30 # LATIN CAPITAL LETTER K WITH ACUTE
++// /* broken */    { {0x0000, 0x004b, 0, 0, 0, 0}, 0x1e32 }, // U1E32 # LATIN CAPITAL LETTER K WITH DOT BELOW
++// /* broken */    { {0x0000, 0x004c, 0, 0, 0, 0}, 0x0139 }, // U0139 # LATIN CAPITAL LETTER L WITH ACUTE
++// /* broken */    { {0x0000, 0x004c, 0, 0, 0, 0}, 0x1e36 }, // U1E36 # LATIN CAPITAL LETTER L WITH DOT BELOW
++// /* broken */    { {0x0000, 0x004d, 0, 0, 0, 0}, 0x1e42 }, // U1E42 # LATIN CAPITAL LETTER M WITH DOT BELOW
++// /* broken */    { {0x0000, 0x004d, 0, 0, 0, 0}, 0x1e3e }, // U1E3E # LATIN CAPITAL LETTER M WITH ACUTE
++// /* broken */    { {0x0000, 0x004e, 0, 0, 0, 0}, 0x1e46 }, // U1E46 # LATIN CAPITAL LETTER N WITH DOT BELOW
++// /* broken */    { {0x0000, 0x004e, 0, 0, 0, 0}, 0x0143 }, // U0143 # LATIN CAPITAL LETTER N WITH ACUTE
++// /* broken */    { {0x0000, 0x004e, 0, 0, 0, 0}, 0x01f8 }, // U01F8 # LATIN CAPITAL LETTER N WITH GRAVE
++// /* broken */    { {0x0000, 0x004e, 0, 0, 0, 0}, 0x00d1 }, // U00D1 # LATIN CAPITAL LETTER N WITH TILDE
++// /* broken */    { {0x0000, 0x004f, 0, 0, 0, 0}, 0x00d5 }, // U00D5 # LATIN CAPITAL LETTER O WITH TILDE
++// /* broken */    { {0x0000, 0x004f, 0, 0, 0, 0}, 0x00d3 }, // U00D3 # LATIN CAPITAL LETTER O WITH ACUTE
++// /* broken */    { {0x0000, 0x004f, 0, 0, 0, 0}, 0x1ecc }, // U1ECC # LATIN CAPITAL LETTER O WITH DOT BELOW
++// /* broken */    { {0x0000, 0x004f, 0, 0, 0, 0}, 0x00d2 }, // U00D2 # LATIN CAPITAL LETTER O WITH GRAVE
++// /* broken */    { {0x0000, 0x004f, 0, 0, 0, 0}, 0x1ece }, // U1ECE # LATIN CAPITAL LETTER O WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x0050, 0, 0, 0, 0}, 0x1e54 }, // U1E54 # LATIN CAPITAL LETTER P WITH ACUTE
++// /* broken */    { {0x0000, 0x0052, 0, 0, 0, 0}, 0x1e5a }, // U1E5A # LATIN CAPITAL LETTER R WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0052, 0, 0, 0, 0}, 0x0154 }, // U0154 # LATIN CAPITAL LETTER R WITH ACUTE
++// /* broken */    { {0x0000, 0x0053, 0, 0, 0, 0}, 0x015a }, // U015A # LATIN CAPITAL LETTER S WITH ACUTE
++// /* broken */    { {0x0000, 0x0053, 0, 0, 0, 0}, 0x1e62 }, // U1E62 # LATIN CAPITAL LETTER S WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0054, 0, 0, 0, 0}, 0x1e6c }, // U1E6C # LATIN CAPITAL LETTER T WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0055, 0, 0, 0, 0}, 0x00da }, // U00DA # LATIN CAPITAL LETTER U WITH ACUTE
++// /* broken */    { {0x0000, 0x0055, 0, 0, 0, 0}, 0x00d9 }, // U00D9 # LATIN CAPITAL LETTER U WITH GRAVE
++// /* broken */    { {0x0000, 0x0055, 0, 0, 0, 0}, 0x0168 }, // U0168 # LATIN CAPITAL LETTER U WITH TILDE
++// /* broken */    { {0x0000, 0x0055, 0, 0, 0, 0}, 0x1ee4 }, // U1EE4 # LATIN CAPITAL LETTER U WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0055, 0, 0, 0, 0}, 0x1ee6 }, // U1EE6 # LATIN CAPITAL LETTER U WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x0056, 0, 0, 0, 0}, 0x1e7e }, // U1E7E # LATIN CAPITAL LETTER V WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0056, 0, 0, 0, 0}, 0x1e7c }, // U1E7C # LATIN CAPITAL LETTER V WITH TILDE
++// /* broken */    { {0x0000, 0x0057, 0, 0, 0, 0}, 0x1e82 }, // U1E82 # LATIN CAPITAL LETTER W WITH ACUTE
++// /* broken */    { {0x0000, 0x0057, 0, 0, 0, 0}, 0x1e88 }, // U1E88 # LATIN CAPITAL LETTER W WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0057, 0, 0, 0, 0}, 0x1e80 }, // U1E80 # LATIN CAPITAL LETTER W WITH GRAVE
++// /* broken */    { {0x0000, 0x0059, 0, 0, 0, 0}, 0x1ef8 }, // U1EF8 # LATIN CAPITAL LETTER Y WITH TILDE
++// /* broken */    { {0x0000, 0x0059, 0, 0, 0, 0}, 0x1ef2 }, // U1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
++// /* broken */    { {0x0000, 0x0059, 0, 0, 0, 0}, 0x00dd }, // U00DD # LATIN CAPITAL LETTER Y WITH ACUTE
++// /* broken */    { {0x0000, 0x0059, 0, 0, 0, 0}, 0x1ef6 }, // U1EF6 # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x0059, 0, 0, 0, 0}, 0x1ef4 }, // U1EF4 # LATIN CAPITAL LETTER Y WITH DOT BELOW
++// /* broken */    { {0x0000, 0x005a, 0, 0, 0, 0}, 0x0179 }, // U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
++// /* broken */    { {0x0000, 0x005a, 0, 0, 0, 0}, 0x1e92 }, // U1E92 # LATIN CAPITAL LETTER Z WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0061, 0, 0, 0, 0}, 0x1ea1 }, // U1EA1 # LATIN SMALL LETTER A WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0061, 0, 0, 0, 0}, 0x1ea3 }, // U1EA3 # LATIN SMALL LETTER A WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x0061, 0, 0, 0, 0}, 0x00e0 }, // U00E0 # LATIN SMALL LETTER A WITH GRAVE
++// /* broken */    { {0x0000, 0x0061, 0, 0, 0, 0}, 0x00e3 }, // U00E3 # LATIN SMALL LETTER A WITH TILDE
++// /* broken */    { {0x0000, 0x0061, 0, 0, 0, 0}, 0x00e1 }, // U00E1 # LATIN SMALL LETTER A WITH ACUTE
++// /* broken */    { {0x0000, 0x0062, 0, 0, 0, 0}, 0x1e05 }, // U1E05 # LATIN SMALL LETTER B WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0063, 0, 0, 0, 0}, 0x0107 }, // U0107 # LATIN SMALL LETTER C WITH ACUTE
++// /* broken */    { {0x0000, 0x0064, 0, 0, 0, 0}, 0x1e0d }, // U1E0D # LATIN SMALL LETTER D WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0065, 0, 0, 0, 0}, 0x00e8 }, // U00E8 # LATIN SMALL LETTER E WITH GRAVE
++// /* broken */    { {0x0000, 0x0065, 0, 0, 0, 0}, 0x1ebb }, // U1EBB # LATIN SMALL LETTER E WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x0065, 0, 0, 0, 0}, 0x1eb9 }, // U1EB9 # LATIN SMALL LETTER E WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0065, 0, 0, 0, 0}, 0x00e9 }, // U00E9 # LATIN SMALL LETTER E WITH ACUTE
++// /* broken */    { {0x0000, 0x0065, 0, 0, 0, 0}, 0x1ebd }, // U1EBD # LATIN SMALL LETTER E WITH TILDE
++// /* broken */    { {0x0000, 0x0067, 0, 0, 0, 0}, 0x01f5 }, // U01F5 # LATIN SMALL LETTER G WITH ACUTE
++// /* broken */    { {0x0000, 0x0068, 0, 0, 0, 0}, 0x1e25 }, // U1E25 # LATIN SMALL LETTER H WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0069, 0, 0, 0, 0}, 0x00ec }, // U00EC # LATIN SMALL LETTER I WITH GRAVE
++// /* broken */    { {0x0000, 0x0069, 0, 0, 0, 0}, 0x0129 }, // U0129 # LATIN SMALL LETTER I WITH TILDE
++// /* broken */    { {0x0000, 0x0069, 0, 0, 0, 0}, 0x1ecb }, // U1ECB # LATIN SMALL LETTER I WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0069, 0, 0, 0, 0}, 0x00ed }, // U00ED # LATIN SMALL LETTER I WITH ACUTE
++// /* broken */    { {0x0000, 0x0069, 0, 0, 0, 0}, 0x1ec9 }, // U1EC9 # LATIN SMALL LETTER I WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x006b, 0, 0, 0, 0}, 0x1e33 }, // U1E33 # LATIN SMALL LETTER K WITH DOT BELOW
++// /* broken */    { {0x0000, 0x006b, 0, 0, 0, 0}, 0x1e31 }, // U1E31 # LATIN SMALL LETTER K WITH ACUTE
++// /* broken */    { {0x0000, 0x006c, 0, 0, 0, 0}, 0x1e37 }, // U1E37 # LATIN SMALL LETTER L WITH DOT BELOW
++// /* broken */    { {0x0000, 0x006c, 0, 0, 0, 0}, 0x013a }, // U013A # LATIN SMALL LETTER L WITH ACUTE
++// /* broken */    { {0x0000, 0x006d, 0, 0, 0, 0}, 0x1e43 }, // U1E43 # LATIN SMALL LETTER M WITH DOT BELOW
++// /* broken */    { {0x0000, 0x006d, 0, 0, 0, 0}, 0x1e3f }, // U1E3F # LATIN SMALL LETTER M WITH ACUTE
++// /* broken */    { {0x0000, 0x006e, 0, 0, 0, 0}, 0x00f1 }, // U00F1 # LATIN SMALL LETTER N WITH TILDE
++// /* broken */    { {0x0000, 0x006e, 0, 0, 0, 0}, 0x0144 }, // U0144 # LATIN SMALL LETTER N WITH ACUTE
++// /* broken */    { {0x0000, 0x006e, 0, 0, 0, 0}, 0x01f9 }, // U01F9 # LATIN SMALL LETTER N WITH GRAVE
++// /* broken */    { {0x0000, 0x006e, 0, 0, 0, 0}, 0x1e47 }, // U1E47 # LATIN SMALL LETTER N WITH DOT BELOW
++// /* broken */    { {0x0000, 0x006f, 0, 0, 0, 0}, 0x00f5 }, // U00F5 # LATIN SMALL LETTER O WITH TILDE
++// /* broken */    { {0x0000, 0x006f, 0, 0, 0, 0}, 0x00f2 }, // U00F2 # LATIN SMALL LETTER O WITH GRAVE
++// /* broken */    { {0x0000, 0x006f, 0, 0, 0, 0}, 0x1ecf }, // U1ECF # LATIN SMALL LETTER O WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x006f, 0, 0, 0, 0}, 0x00f3 }, // U00F3 # LATIN SMALL LETTER O WITH ACUTE
++// /* broken */    { {0x0000, 0x006f, 0, 0, 0, 0}, 0x1ecd }, // U1ECD # LATIN SMALL LETTER O WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0070, 0, 0, 0, 0}, 0x1e55 }, // U1E55 # LATIN SMALL LETTER P WITH ACUTE
++// /* broken */    { {0x0000, 0x0072, 0, 0, 0, 0}, 0x0155 }, // U0155 # LATIN SMALL LETTER R WITH ACUTE
++// /* broken */    { {0x0000, 0x0072, 0, 0, 0, 0}, 0x1e5b }, // U1E5B # LATIN SMALL LETTER R WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0073, 0, 0, 0, 0}, 0x1e63 }, // U1E63 # LATIN SMALL LETTER S WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0073, 0, 0, 0, 0}, 0x015b }, // U015B # LATIN SMALL LETTER S WITH ACUTE
++// /* broken */    { {0x0000, 0x0074, 0, 0, 0, 0}, 0x1e6d }, // U1E6D # LATIN SMALL LETTER T WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0075, 0, 0, 0, 0}, 0x0169 }, // U0169 # LATIN SMALL LETTER U WITH TILDE
++// /* broken */    { {0x0000, 0x0075, 0, 0, 0, 0}, 0x1ee7 }, // U1EE7 # LATIN SMALL LETTER U WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x0075, 0, 0, 0, 0}, 0x00f9 }, // U00F9 # LATIN SMALL LETTER U WITH GRAVE
++// /* broken */    { {0x0000, 0x0075, 0, 0, 0, 0}, 0x00fa }, // U00FA # LATIN SMALL LETTER U WITH ACUTE
++// /* broken */    { {0x0000, 0x0075, 0, 0, 0, 0}, 0x1ee5 }, // U1EE5 # LATIN SMALL LETTER U WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0076, 0, 0, 0, 0}, 0x1e7d }, // U1E7D # LATIN SMALL LETTER V WITH TILDE
++// /* broken */    { {0x0000, 0x0076, 0, 0, 0, 0}, 0x1e7f }, // U1E7F # LATIN SMALL LETTER V WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0077, 0, 0, 0, 0}, 0x1e81 }, // U1E81 # LATIN SMALL LETTER W WITH GRAVE
++// /* broken */    { {0x0000, 0x0077, 0, 0, 0, 0}, 0x1e83 }, // U1E83 # LATIN SMALL LETTER W WITH ACUTE
++// /* broken */    { {0x0000, 0x0077, 0, 0, 0, 0}, 0x1e89 }, // U1E89 # LATIN SMALL LETTER W WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0079, 0, 0, 0, 0}, 0x1ef5 }, // U1EF5 # LATIN SMALL LETTER Y WITH DOT BELOW
++// /* broken */    { {0x0000, 0x0079, 0, 0, 0, 0}, 0x1ef9 }, // U1EF9 # LATIN SMALL LETTER Y WITH TILDE
++// /* broken */    { {0x0000, 0x0079, 0, 0, 0, 0}, 0x1ef7 }, // U1EF7 # LATIN SMALL LETTER Y WITH HOOK ABOVE
++// /* broken */    { {0x0000, 0x0079, 0, 0, 0, 0}, 0x1ef3 }, // U1EF3 # LATIN SMALL LETTER Y WITH GRAVE
++// /* broken */    { {0x0000, 0x0079, 0, 0, 0, 0}, 0x00fd }, // U00FD # LATIN SMALL LETTER Y WITH ACUTE
++// /* broken */    { {0x0000, 0x007a, 0, 0, 0, 0}, 0x1e93 }, // U1E93 # LATIN SMALL LETTER Z WITH DOT BELOW
++// /* broken */    { {0x0000, 0x007a, 0, 0, 0, 0}, 0x017a }, // U017A # LATIN SMALL LETTER Z WITH ACUTE
++// /* broken */    { {0x0000, 0x00c2, 0, 0, 0, 0}, 0x1ea6 }, // U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, 0x00c2, 0, 0, 0, 0}, 0x1ea8 }, // U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x00c2, 0, 0, 0, 0}, 0x1eaa }, // U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, 0x00c2, 0, 0, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, 0x00c5, 0, 0, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++// /* broken */    { {0x0000, 0x00c6, 0, 0, 0, 0}, 0x01fc }, // U01FC # LATIN CAPITAL LETTER AE WITH ACUTE
++// /* broken */    { {0x0000, 0x00c7, 0, 0, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++// /* broken */    { {0x0000, 0x00ca, 0, 0, 0, 0}, 0x1ec0 }, // U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, 0x00ca, 0, 0, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, 0x00ca, 0, 0, 0, 0}, 0x1ec2 }, // U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x00ca, 0, 0, 0, 0}, 0x1ec4 }, // U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, 0x00cf, 0, 0, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, 0x00d4, 0, 0, 0, 0}, 0x1ed4 }, // U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x00d4, 0, 0, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, 0x00d4, 0, 0, 0, 0}, 0x1ed2 }, // U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, 0x00d4, 0, 0, 0, 0}, 0x1ed6 }, // U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, 0x00d5, 0, 0, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, 0x00d8, 0, 0, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++// /* broken */    { {0x0000, 0x00dc, 0, 0, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, 0x00dc, 0, 0, 0, 0}, 0x01db }, // U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
++// /* broken */    { {0x0000, 0x00e2, 0, 0, 0, 0}, 0x1eab }, // U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, 0x00e2, 0, 0, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, 0x00e2, 0, 0, 0, 0}, 0x1ea9 }, // U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x00e2, 0, 0, 0, 0}, 0x1ea7 }, // U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, 0x00e5, 0, 0, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++// /* broken */    { {0x0000, 0x00e6, 0, 0, 0, 0}, 0x01fd }, // U01FD # LATIN SMALL LETTER AE WITH ACUTE
++// /* broken */    { {0x0000, 0x00e7, 0, 0, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++// /* broken */    { {0x0000, 0x00ea, 0, 0, 0, 0}, 0x1ec5 }, // U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, 0x00ea, 0, 0, 0, 0}, 0x1ec1 }, // U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, 0x00ea, 0, 0, 0, 0}, 0x1ec3 }, // U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x00ea, 0, 0, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, 0x00ef, 0, 0, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, 0x00f4, 0, 0, 0, 0}, 0x1ed3 }, // U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, 0x00f4, 0, 0, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, 0x00f4, 0, 0, 0, 0}, 0x1ed5 }, // U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x00f4, 0, 0, 0, 0}, 0x1ed7 }, // U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, 0x00f5, 0, 0, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, 0x00f8, 0, 0, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++// /* broken */    { {0x0000, 0x00fc, 0, 0, 0, 0}, 0x01dc }, // U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
++// /* broken */    { {0x0000, 0x00fc, 0, 0, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, 0x0102, 0, 0, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++// /* broken */    { {0x0000, 0x0102, 0, 0, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++// /* broken */    { {0x0000, 0x0102, 0, 0, 0, 0}, 0x1eb2 }, // U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x0102, 0, 0, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++// /* broken */    { {0x0000, 0x0103, 0, 0, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++// /* broken */    { {0x0000, 0x0103, 0, 0, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++// /* broken */    { {0x0000, 0x0103, 0, 0, 0, 0}, 0x1eb3 }, // U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
++// /* broken */    { {0x0000, 0x0103, 0, 0, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++// /* broken */    { {0x0000, 0x0112, 0, 0, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, 0x0112, 0, 0, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, 0x0113, 0, 0, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, 0x0113, 0, 0, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, 0x014c, 0, 0, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, 0x014c, 0, 0, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, 0x014d, 0, 0, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, 0x014d, 0, 0, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, 0x0168, 0, 0, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, 0x0169, 0, 0, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, 0x0313, 0x0391, 0, 0, 0}, 0x1f0a }, // U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x0391, 0, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x0395, 0, 0, 0}, 0x1f1a }, // U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x0395, 0, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x0397, 0, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x0397, 0, 0, 0}, 0x1f2a }, // U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x0399, 0, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x0399, 0, 0, 0}, 0x1f3a }, // U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x039f, 0, 0, 0}, 0x1f4a }, // U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x039f, 0, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x03a9, 0, 0, 0}, 0x1f6a }, // U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x03a9, 0, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x03b1, 0, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x03b1, 0, 0, 0}, 0x1f02 }, // U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x03b5, 0, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x03b5, 0, 0, 0}, 0x1f12 }, // U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x03b7, 0, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x03b7, 0, 0, 0}, 0x1f22 }, // U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x03b9, 0, 0, 0}, 0x1f32 }, // U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x03b9, 0, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x03bf, 0, 0, 0}, 0x1f42 }, // U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x03bf, 0, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x03c5, 0, 0, 0}, 0x1f52 }, // U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x03c5, 0, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0313, 0x03c9, 0, 0, 0}, 0x1f62 }, // U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x0313, 0x03c9, 0, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x0391, 0, 0, 0}, 0x1f0b }, // U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x0391, 0, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x0395, 0, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x0395, 0, 0, 0}, 0x1f1b }, // U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x0397, 0, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x0397, 0, 0, 0}, 0x1f2b }, // U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x0399, 0, 0, 0}, 0x1f3b }, // U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x0399, 0, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x039f, 0, 0, 0}, 0x1f4b }, // U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x039f, 0, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x03a5, 0, 0, 0}, 0x1f5b }, // U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x03a5, 0, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x03a9, 0, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x03a9, 0, 0, 0}, 0x1f6b }, // U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x03b1, 0, 0, 0}, 0x1f03 }, // U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x03b1, 0, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x03b5, 0, 0, 0}, 0x1f13 }, // U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x03b5, 0, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x03b7, 0, 0, 0}, 0x1f23 }, // U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x03b7, 0, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x03b9, 0, 0, 0}, 0x1f33 }, // U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x03b9, 0, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x03bf, 0, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x03bf, 0, 0, 0}, 0x1f43 }, // U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x03c5, 0, 0, 0}, 0x1f53 }, // U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x03c5, 0, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0314, 0x03c9, 0, 0, 0}, 0x1f63 }, // U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x0314, 0x03c9, 0, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x0391, 0, 0, 0, 0}, 0x0386 }, // U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
++// /* broken */    { {0x0000, 0x0391, 0, 0, 0, 0}, 0x1fba }, // U1FBA # GREEK CAPITAL LETTER ALPHA WITH VARIA
++// /* broken */    { {0x0000, 0x0395, 0, 0, 0, 0}, 0x0388 }, // U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
++// /* broken */    { {0x0000, 0x0395, 0, 0, 0, 0}, 0x1fc8 }, // U1FC8 # GREEK CAPITAL LETTER EPSILON WITH VARIA
++// /* broken */    { {0x0000, 0x0397, 0, 0, 0, 0}, 0x1fca }, // U1FCA # GREEK CAPITAL LETTER ETA WITH VARIA
++// /* broken */    { {0x0000, 0x0397, 0, 0, 0, 0}, 0x0389 }, // U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
++// /* broken */    { {0x0000, 0x0399, 0, 0, 0, 0}, 0x038a }, // U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
++// /* broken */    { {0x0000, 0x0399, 0, 0, 0, 0}, 0x1fda }, // U1FDA # GREEK CAPITAL LETTER IOTA WITH VARIA
++// /* broken */    { {0x0000, 0x039f, 0, 0, 0, 0}, 0x038c }, // U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
++// /* broken */    { {0x0000, 0x039f, 0, 0, 0, 0}, 0x1ff8 }, // U1FF8 # GREEK CAPITAL LETTER OMICRON WITH VARIA
++// /* broken */    { {0x0000, 0x03a5, 0, 0, 0, 0}, 0x038e }, // U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
++// /* broken */    { {0x0000, 0x03a5, 0, 0, 0, 0}, 0x1fea }, // U1FEA # GREEK CAPITAL LETTER UPSILON WITH VARIA
++// /* broken */    { {0x0000, 0x03a9, 0, 0, 0, 0}, 0x038f }, // U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
++// /* broken */    { {0x0000, 0x03a9, 0, 0, 0, 0}, 0x1ffa }, // U1FFA # GREEK CAPITAL LETTER OMEGA WITH VARIA
++// /* broken */    { {0x0000, 0x03b1, 0, 0, 0, 0}, 0x03ac }, // U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
++// /* broken */    { {0x0000, 0x03b1, 0, 0, 0, 0}, 0x1f70 }, // U1F70 # GREEK SMALL LETTER ALPHA WITH VARIA
++// /* broken */    { {0x0000, 0x03b5, 0, 0, 0, 0}, 0x03ad }, // U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
++// /* broken */    { {0x0000, 0x03b5, 0, 0, 0, 0}, 0x1f72 }, // U1F72 # GREEK SMALL LETTER EPSILON WITH VARIA
++// /* broken */    { {0x0000, 0x03b7, 0, 0, 0, 0}, 0x03ae }, // U03AE # GREEK SMALL LETTER ETA WITH TONOS
++// /* broken */    { {0x0000, 0x03b7, 0, 0, 0, 0}, 0x1f74 }, // U1F74 # GREEK SMALL LETTER ETA WITH VARIA
++// /* broken */    { {0x0000, 0x03b9, 0, 0, 0, 0}, 0x03af }, // U03AF # GREEK SMALL LETTER IOTA WITH TONOS
++// /* broken */    { {0x0000, 0x03b9, 0, 0, 0, 0}, 0x1f76 }, // U1F76 # GREEK SMALL LETTER IOTA WITH VARIA
++// /* broken */    { {0x0000, 0x03bf, 0, 0, 0, 0}, 0x03cc }, // U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
++// /* broken */    { {0x0000, 0x03bf, 0, 0, 0, 0}, 0x1f78 }, // U1F78 # GREEK SMALL LETTER OMICRON WITH VARIA
++// /* broken */    { {0x0000, 0x03c5, 0, 0, 0, 0}, 0x03cd }, // U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
++// /* broken */    { {0x0000, 0x03c5, 0, 0, 0, 0}, 0x1f7a }, // U1F7A # GREEK SMALL LETTER UPSILON WITH VARIA
++// /* broken */    { {0x0000, 0x03c9, 0, 0, 0, 0}, 0x03ce }, // U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
++// /* broken */    { {0x0000, 0x03c9, 0, 0, 0, 0}, 0x1f7c }, // U1F7C # GREEK SMALL LETTER OMEGA WITH VARIA
++// /* broken */    { {0x0000, 0x03ca, 0, 0, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++// /* broken */    { {0x0000, 0x03ca, 0, 0, 0, 0}, 0x1fd2 }, // U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
++// /* broken */    { {0x0000, 0x03cb, 0, 0, 0, 0}, 0x1fe2 }, // U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
++// /* broken */    { {0x0000, 0x03cb, 0, 0, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++// /* broken */    { {0x0000, 0x0413, 0, 0, 0, 0}, 0x0403 }, // U0403 # CYRILLIC CAPITAL LETTER GJE
++// /* broken */    { {0x0000, 0x0415, 0, 0, 0, 0}, 0x0400 }, // U0400 # CYRILLIC CAPITAL LETTER IE WITH GRAVE
++// /* broken */    { {0x0000, 0x0418, 0, 0, 0, 0}, 0x040d }, // U040D # CYRILLIC CAPITAL LETTER I WITH GRAVE
++// /* broken */    { {0x0000, 0x041a, 0, 0, 0, 0}, 0x040c }, // U040C # CYRILLIC CAPITAL LETTER KJE
++// /* broken */    { {0x0000, 0x0433, 0, 0, 0, 0}, 0x0453 }, // U0453 # CYRILLIC SMALL LETTER GJE
++// /* broken */    { {0x0000, 0x0435, 0, 0, 0, 0}, 0x0450 }, // U0450 # CYRILLIC SMALL LETTER IE WITH GRAVE
++// /* broken */    { {0x0000, 0x0438, 0, 0, 0, 0}, 0x045d }, // U045D # CYRILLIC SMALL LETTER I WITH GRAVE
++// /* broken */    { {0x0000, 0x043a, 0, 0, 0, 0}, 0x045c }, // U045C # CYRILLIC SMALL LETTER KJE
++// /* broken */    { {0x0000, 0x1f00, 0, 0, 0, 0}, 0x1f02 }, // U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f00, 0, 0, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f01, 0, 0, 0, 0}, 0x1f03 }, // U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f01, 0, 0, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f08, 0, 0, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f08, 0, 0, 0, 0}, 0x1f0a }, // U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f09, 0, 0, 0, 0}, 0x1f0b }, // U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f09, 0, 0, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f10, 0, 0, 0, 0}, 0x1f12 }, // U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f10, 0, 0, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f11, 0, 0, 0, 0}, 0x1f13 }, // U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f11, 0, 0, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f18, 0, 0, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f18, 0, 0, 0, 0}, 0x1f1a }, // U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f19, 0, 0, 0, 0}, 0x1f1b }, // U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f19, 0, 0, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f20, 0, 0, 0, 0}, 0x1f22 }, // U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f20, 0, 0, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f21, 0, 0, 0, 0}, 0x1f23 }, // U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f21, 0, 0, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f28, 0, 0, 0, 0}, 0x1f2a }, // U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f28, 0, 0, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f29, 0, 0, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f29, 0, 0, 0, 0}, 0x1f2b }, // U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f30, 0, 0, 0, 0}, 0x1f32 }, // U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f30, 0, 0, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f31, 0, 0, 0, 0}, 0x1f33 }, // U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f31, 0, 0, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f38, 0, 0, 0, 0}, 0x1f3a }, // U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f38, 0, 0, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f39, 0, 0, 0, 0}, 0x1f3b }, // U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f39, 0, 0, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f40, 0, 0, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f40, 0, 0, 0, 0}, 0x1f42 }, // U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f41, 0, 0, 0, 0}, 0x1f43 }, // U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f41, 0, 0, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f48, 0, 0, 0, 0}, 0x1f4a }, // U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f48, 0, 0, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f49, 0, 0, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f49, 0, 0, 0, 0}, 0x1f4b }, // U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f50, 0, 0, 0, 0}, 0x1f52 }, // U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f50, 0, 0, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f51, 0, 0, 0, 0}, 0x1f53 }, // U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f51, 0, 0, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f59, 0, 0, 0, 0}, 0x1f5b }, // U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f59, 0, 0, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f60, 0, 0, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f60, 0, 0, 0, 0}, 0x1f62 }, // U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f61, 0, 0, 0, 0}, 0x1f63 }, // U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f61, 0, 0, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, 0x1f68, 0, 0, 0, 0}, 0x1f6a }, // U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, 0x1f68, 0, 0, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, 0x1f69, 0, 0, 0, 0}, 0x1f6b }, // U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, 0x1f69, 0, 0, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0000, 0x004f, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0000, 0x006f, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0049, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0055, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0055, 0, 0}, 0x01db }, // U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0069, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0075, 0, 0}, 0x01dc }, // U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0075, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03b9, 0, 0}, 0x1fd2 }, // U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03b9, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03c5, 0, 0}, 0x1fe2 }, // U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03c5, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0391, 0, 0}, 0x1f0b }, // U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0391, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0395, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0395, 0, 0}, 0x1f1b }, // U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0397, 0, 0}, 0x1f2b }, // U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0397, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0399, 0, 0}, 0x1f3b }, // U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0399, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x039f, 0, 0}, 0x1f4b }, // U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x039f, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a5, 0, 0}, 0x1f5b }, // U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a5, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a9, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a9, 0, 0}, 0x1f6b }, // U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b1, 0, 0}, 0x1f03 }, // U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b1, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b5, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b5, 0, 0}, 0x1f13 }, // U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b7, 0, 0}, 0x1f23 }, // U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b7, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b9, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b9, 0, 0}, 0x1f33 }, // U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03bf, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03bf, 0, 0}, 0x1f43 }, // U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c5, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c5, 0, 0}, 0x1f53 }, // U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c9, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c9, 0, 0}, 0x1f63 }, // U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0391, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0391, 0, 0}, 0x1f0a }, // U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0395, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0395, 0, 0}, 0x1f1a }, // U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0397, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0397, 0, 0}, 0x1f2a }, // U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0399, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0399, 0, 0}, 0x1f3a }, // U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x039f, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x039f, 0, 0}, 0x1f4a }, // U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03a9, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03a9, 0, 0}, 0x1f6a }, // U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b1, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b1, 0, 0}, 0x1f02 }, // U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b5, 0, 0}, 0x1f12 }, // U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b5, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b7, 0, 0}, 0x1f22 }, // U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b7, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b9, 0, 0}, 0x1f32 }, // U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b9, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03bf, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03bf, 0, 0}, 0x1f42 }, // U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c5, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c5, 0, 0}, 0x1f52 }, // U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c9, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c9, 0, 0}, 0x1f62 }, // U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x004f, 0, 0}, 0x1ee0 }, // U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x004f, 0, 0}, 0x1ede }, // U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x004f, 0, 0}, 0x1ee2 }, // U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x004f, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x004f, 0, 0}, 0x1edc }, // U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0055, 0, 0}, 0x1eea }, // U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0055, 0, 0}, 0x1ef0 }, // U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0055, 0, 0}, 0x1eee }, // U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0055, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0055, 0, 0}, 0x1eec }, // U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x006f, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x006f, 0, 0}, 0x1ee1 }, // U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x006f, 0, 0}, 0x1edf }, // U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x006f, 0, 0}, 0x1ee3 }, // U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x006f, 0, 0}, 0x1edd }, // U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0075, 0, 0}, 0x1eeb }, // U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0075, 0, 0}, 0x1ef1 }, // U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0075, 0, 0}, 0x1eed }, // U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0075, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0075, 0, 0}, 0x1eef }, // U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0043, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0063, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002f, 0x004f, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x002f, 0x006f, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0041, 0, 0}, 0x1eb2 }, // U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0041, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0041, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0041, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0061, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0061, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0061, 0, 0}, 0x1eb3 }, // U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0061, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0041, 0, 0}, 0x1ea8 }, // U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0041, 0, 0}, 0x1ea6 }, // U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0041, 0, 0}, 0x1eaa }, // U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0041, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0045, 0, 0}, 0x1ec4 }, // U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0045, 0, 0}, 0x1ec2 }, // U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0045, 0, 0}, 0x1ec0 }, // U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0045, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x004f, 0, 0}, 0x1ed6 }, // U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x004f, 0, 0}, 0x1ed4 }, // U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x004f, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x004f, 0, 0}, 0x1ed2 }, // U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0061, 0, 0}, 0x1ea9 }, // U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0061, 0, 0}, 0x1ea7 }, // U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0061, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0061, 0, 0}, 0x1eab }, // U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0065, 0, 0}, 0x1ec5 }, // U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0065, 0, 0}, 0x1ec1 }, // U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0065, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0065, 0, 0}, 0x1ec3 }, // U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x006f, 0, 0}, 0x1ed7 }, // U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x006f, 0, 0}, 0x1ed5 }, // U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x006f, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005e, 0x006f, 0, 0}, 0x1ed3 }, // U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0045, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0045, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005f, 0x004f, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005f, 0x004f, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0065, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0065, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006f, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006f, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0041, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0041, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0041, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0041, 0, 0}, 0x1eb2 }, // U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0061, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0061, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0061, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0061, 0, 0}, 0x1eb3 }, // U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0041, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0061, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x007e, 0x004f, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0055, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x007e, 0x006f, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0075, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0045, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0045, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x00af, 0x004f, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x00af, 0x004f, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0065, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0065, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x00af, 0x006f, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Multi_key), 0x00af, 0x006f, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0, 0}, 0x1eaa }, // U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0, 0}, 0x1ea6 }, // U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0, 0}, 0x1ea8 }, // U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0, 0}, 0x1ec4 }, // U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0, 0}, 0x1ec0 }, // U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0, 0}, 0x1ec2 }, // U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0, 0}, 0x1ed2 }, // U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0, 0}, 0x1ed4 }, // U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0, 0}, 0x1ed6 }, // U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0, 0}, 0x1eab }, // U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0, 0}, 0x1ea9 }, // U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0, 0}, 0x1ea7 }, // U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0, 0}, 0x1ec3 }, // U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0, 0}, 0x1ec1 }, // U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0, 0}, 0x1ec5 }, // U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0, 0}, 0x1ed3 }, // U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0, 0}, 0x1ed7 }, // U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0, 0}, 0x1ed5 }, // U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Tilde), 0x004f, 0, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Tilde), 0x0055, 0, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Tilde), 0x006f, 0, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Tilde), 0x0075, 0, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Macron), 0x0045, 0, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Macron), 0x0045, 0, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Macron), 0x004f, 0, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Macron), 0x004f, 0, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Macron), 0x0065, 0, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Macron), 0x0065, 0, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Macron), 0x006f, 0, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Macron), 0x006f, 0, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0, 0}, 0x1eb2 }, // U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0, 0}, 0x1eb3 }, // U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0049, 0, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0, 0}, 0x01db }, // U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0069, 0, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0075, 0, 0, 0}, 0x01dc }, // U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0075, 0, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03b9, 0, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03b9, 0, 0, 0}, 0x1fd2 }, // U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03c5, 0, 0, 0}, 0x1fe2 }, // U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03c5, 0, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Abovering), 0x0041, 0, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Abovering), 0x0061, 0, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Cedilla), 0x0043, 0, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Cedilla), 0x0063, 0, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0, 0}, 0x1ede }, // U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0, 0}, 0x1ee2 }, // U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0, 0}, 0x1edc }, // U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0, 0}, 0x1ee0 }, // U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0, 0}, 0x1eea }, // U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0, 0}, 0x1ef0 }, // U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0, 0}, 0x1eec }, // U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0, 0}, 0x1eee }, // U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0, 0}, 0x1edf }, // U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0, 0}, 0x1ee3 }, // U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0, 0}, 0x1edd }, // U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0, 0}, 0x1ee1 }, // U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0, 0}, 0x1eed }, // U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0, 0}, 0x1eef }, // U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0, 0}, 0x1ef1 }, // U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0, 0}, 0x1eeb }, // U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
++// /* broken */    { {0x0000, UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++    { {0x030f, 0x0041, 0, 0, 0, 0}, 0x0200 }, // U0200 # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
++    { {0x030f, 0x0045, 0, 0, 0, 0}, 0x0204 }, // U0204 # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
++    { {0x030f, 0x0049, 0, 0, 0, 0}, 0x0208 }, // U0208 # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
++    { {0x030f, 0x004f, 0, 0, 0, 0}, 0x020c }, // U020C # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
++    { {0x030f, 0x0052, 0, 0, 0, 0}, 0x0210 }, // U0210 # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
++    { {0x030f, 0x0055, 0, 0, 0, 0}, 0x0214 }, // U0214 # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
++    { {0x030f, 0x0061, 0, 0, 0, 0}, 0x0201 }, // U0201 # LATIN SMALL LETTER A WITH DOUBLE GRAVE
++    { {0x030f, 0x0065, 0, 0, 0, 0}, 0x0205 }, // U0205 # LATIN SMALL LETTER E WITH DOUBLE GRAVE
++    { {0x030f, 0x0069, 0, 0, 0, 0}, 0x0209 }, // U0209 # LATIN SMALL LETTER I WITH DOUBLE GRAVE
++    { {0x030f, 0x006f, 0, 0, 0, 0}, 0x020d }, // U020D # LATIN SMALL LETTER O WITH DOUBLE GRAVE
++    { {0x030f, 0x0072, 0, 0, 0, 0}, 0x0211 }, // U0211 # LATIN SMALL LETTER R WITH DOUBLE GRAVE
++    { {0x030f, 0x0075, 0, 0, 0, 0}, 0x0215 }, // U0215 # LATIN SMALL LETTER U WITH DOUBLE GRAVE
++    { {0x030f, 0x0474, 0, 0, 0, 0}, 0x0476 }, // U0476 # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
++    { {0x030f, 0x0475, 0, 0, 0, 0}, 0x0477 }, // U0477 # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
++    { {0x0311, 0x0041, 0, 0, 0, 0}, 0x0202 }, // U0202 # LATIN CAPITAL LETTER A WITH INVERTED BREVE
++    { {0x0311, 0x0045, 0, 0, 0, 0}, 0x0206 }, // U0206 # LATIN CAPITAL LETTER E WITH INVERTED BREVE
++    { {0x0311, 0x0049, 0, 0, 0, 0}, 0x020a }, // U020A # LATIN CAPITAL LETTER I WITH INVERTED BREVE
++    { {0x0311, 0x004f, 0, 0, 0, 0}, 0x020e }, // U020E # LATIN CAPITAL LETTER O WITH INVERTED BREVE
++    { {0x0311, 0x0052, 0, 0, 0, 0}, 0x0212 }, // U0212 # LATIN CAPITAL LETTER R WITH INVERTED BREVE
++    { {0x0311, 0x0055, 0, 0, 0, 0}, 0x0216 }, // U0216 # LATIN CAPITAL LETTER U WITH INVERTED BREVE
++    { {0x0311, 0x0061, 0, 0, 0, 0}, 0x0203 }, // U0203 # LATIN SMALL LETTER A WITH INVERTED BREVE
++    { {0x0311, 0x0065, 0, 0, 0, 0}, 0x0207 }, // U0207 # LATIN SMALL LETTER E WITH INVERTED BREVE
++    { {0x0311, 0x0069, 0, 0, 0, 0}, 0x020b }, // U020B # LATIN SMALL LETTER I WITH INVERTED BREVE
++    { {0x0311, 0x006f, 0, 0, 0, 0}, 0x020f }, // U020F # LATIN SMALL LETTER O WITH INVERTED BREVE
++    { {0x0311, 0x0072, 0, 0, 0, 0}, 0x0213 }, // U0213 # LATIN SMALL LETTER R WITH INVERTED BREVE
++    { {0x0311, 0x0075, 0, 0, 0, 0}, 0x0217 }, // U0217 # LATIN SMALL LETTER U WITH INVERTED BREVE
++    { {0x0313, 0x0391, 0, 0, 0, 0}, 0x1f08 }, // U1F08 # GREEK CAPITAL LETTER ALPHA WITH PSILI
++    { {0x0313, 0x0395, 0, 0, 0, 0}, 0x1f18 }, // U1F18 # GREEK CAPITAL LETTER EPSILON WITH PSILI
++    { {0x0313, 0x0397, 0, 0, 0, 0}, 0x1f28 }, // U1F28 # GREEK CAPITAL LETTER ETA WITH PSILI
++    { {0x0313, 0x0399, 0, 0, 0, 0}, 0x1f38 }, // U1F38 # GREEK CAPITAL LETTER IOTA WITH PSILI
++    { {0x0313, 0x039f, 0, 0, 0, 0}, 0x1f48 }, // U1F48 # GREEK CAPITAL LETTER OMICRON WITH PSILI
++    { {0x0313, 0x03a9, 0, 0, 0, 0}, 0x1f68 }, // U1F68 # GREEK CAPITAL LETTER OMEGA WITH PSILI
++    { {0x0313, 0x03b1, 0, 0, 0, 0}, 0x1f00 }, // U1F00 # GREEK SMALL LETTER ALPHA WITH PSILI
++    { {0x0313, 0x03b5, 0, 0, 0, 0}, 0x1f10 }, // U1F10 # GREEK SMALL LETTER EPSILON WITH PSILI
++    { {0x0313, 0x03b7, 0, 0, 0, 0}, 0x1f20 }, // U1F20 # GREEK SMALL LETTER ETA WITH PSILI
++    { {0x0313, 0x03b9, 0, 0, 0, 0}, 0x1f30 }, // U1F30 # GREEK SMALL LETTER IOTA WITH PSILI
++    { {0x0313, 0x03bf, 0, 0, 0, 0}, 0x1f40 }, // U1F40 # GREEK SMALL LETTER OMICRON WITH PSILI
++    { {0x0313, 0x03c1, 0, 0, 0, 0}, 0x1fe4 }, // U1FE4 # GREEK SMALL LETTER RHO WITH PSILI
++    { {0x0313, 0x03c5, 0, 0, 0, 0}, 0x1f50 }, // U1F50 # GREEK SMALL LETTER UPSILON WITH PSILI
++    { {0x0313, 0x03c9, 0, 0, 0, 0}, 0x1f60 }, // U1F60 # GREEK SMALL LETTER OMEGA WITH PSILI
++    { {0x0314, 0x0391, 0, 0, 0, 0}, 0x1f09 }, // U1F09 # GREEK CAPITAL LETTER ALPHA WITH DASIA
++    { {0x0314, 0x0395, 0, 0, 0, 0}, 0x1f19 }, // U1F19 # GREEK CAPITAL LETTER EPSILON WITH DASIA
++    { {0x0314, 0x0397, 0, 0, 0, 0}, 0x1f29 }, // U1F29 # GREEK CAPITAL LETTER ETA WITH DASIA
++    { {0x0314, 0x0399, 0, 0, 0, 0}, 0x1f39 }, // U1F39 # GREEK CAPITAL LETTER IOTA WITH DASIA
++    { {0x0314, 0x039f, 0, 0, 0, 0}, 0x1f49 }, // U1F49 # GREEK CAPITAL LETTER OMICRON WITH DASIA
++    { {0x0314, 0x03a1, 0, 0, 0, 0}, 0x1fec }, // U1FEC # GREEK CAPITAL LETTER RHO WITH DASIA
++    { {0x0314, 0x03a5, 0, 0, 0, 0}, 0x1f59 }, // U1F59 # GREEK CAPITAL LETTER UPSILON WITH DASIA
++    { {0x0314, 0x03a9, 0, 0, 0, 0}, 0x1f69 }, // U1F69 # GREEK CAPITAL LETTER OMEGA WITH DASIA
++    { {0x0314, 0x03b1, 0, 0, 0, 0}, 0x1f01 }, // U1F01 # GREEK SMALL LETTER ALPHA WITH DASIA
++    { {0x0314, 0x03b5, 0, 0, 0, 0}, 0x1f11 }, // U1F11 # GREEK SMALL LETTER EPSILON WITH DASIA
++    { {0x0314, 0x03b7, 0, 0, 0, 0}, 0x1f21 }, // U1F21 # GREEK SMALL LETTER ETA WITH DASIA
++    { {0x0314, 0x03b9, 0, 0, 0, 0}, 0x1f31 }, // U1F31 # GREEK SMALL LETTER IOTA WITH DASIA
++    { {0x0314, 0x03bf, 0, 0, 0, 0}, 0x1f41 }, // U1F41 # GREEK SMALL LETTER OMICRON WITH DASIA
++    { {0x0314, 0x03c1, 0, 0, 0, 0}, 0x1fe5 }, // U1FE5 # GREEK SMALL LETTER RHO WITH DASIA
++    { {0x0314, 0x03c5, 0, 0, 0, 0}, 0x1f51 }, // U1F51 # GREEK SMALL LETTER UPSILON WITH DASIA
++    { {0x0314, 0x03c9, 0, 0, 0, 0}, 0x1f61 }, // U1F61 # GREEK SMALL LETTER OMEGA WITH DASIA
++    { {0x0324, 0x0055, 0, 0, 0, 0}, 0x1e72 }, // U1E72 # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
++    { {0x0324, 0x0075, 0, 0, 0, 0}, 0x1e73 }, // U1E73 # LATIN SMALL LETTER U WITH DIAERESIS BELOW
++    { {0x0325, 0x0041, 0, 0, 0, 0}, 0x1e00 }, // U1E00 # LATIN CAPITAL LETTER A WITH RING BELOW
++    { {0x0325, 0x0061, 0, 0, 0, 0}, 0x1e01 }, // U1E01 # LATIN SMALL LETTER A WITH RING BELOW
++    { {0x0326, 0x0053, 0, 0, 0, 0}, 0x0218 }, // U0218 # LATIN CAPITAL LETTER S WITH COMMA BELOW
++    { {0x0326, 0x0054, 0, 0, 0, 0}, 0x021a }, // U021A # LATIN CAPITAL LETTER T WITH COMMA BELOW
++    { {0x0326, 0x0073, 0, 0, 0, 0}, 0x0219 }, // U0219 # LATIN SMALL LETTER S WITH COMMA BELOW
++    { {0x0326, 0x0074, 0, 0, 0, 0}, 0x021b }, // U021B # LATIN SMALL LETTER T WITH COMMA BELOW
++    { {0x032d, 0x0044, 0, 0, 0, 0}, 0x1e12 }, // U1E12 # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
++    { {0x032d, 0x0045, 0, 0, 0, 0}, 0x1e18 }, // U1E18 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
++    { {0x032d, 0x004c, 0, 0, 0, 0}, 0x1e3c }, // U1E3C # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
++    { {0x032d, 0x004e, 0, 0, 0, 0}, 0x1e4a }, // U1E4A # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
++    { {0x032d, 0x0054, 0, 0, 0, 0}, 0x1e70 }, // U1E70 # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
++    { {0x032d, 0x0055, 0, 0, 0, 0}, 0x1e76 }, // U1E76 # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
++    { {0x032d, 0x0064, 0, 0, 0, 0}, 0x1e13 }, // U1E13 # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
++    { {0x032d, 0x0065, 0, 0, 0, 0}, 0x1e19 }, // U1E19 # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
++    { {0x032d, 0x006c, 0, 0, 0, 0}, 0x1e3d }, // U1E3D # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
++    { {0x032d, 0x006e, 0, 0, 0, 0}, 0x1e4b }, // U1E4B # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
++    { {0x032d, 0x0074, 0, 0, 0, 0}, 0x1e71 }, // U1E71 # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
++    { {0x032d, 0x0075, 0, 0, 0, 0}, 0x1e77 }, // U1E77 # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
++    { {0x032e, 0x0048, 0, 0, 0, 0}, 0x1e2a }, // U1E2A # LATIN CAPITAL LETTER H WITH BREVE BELOW
++    { {0x032e, 0x0068, 0, 0, 0, 0}, 0x1e2b }, // U1E2B # LATIN SMALL LETTER H WITH BREVE BELOW
++    { {0x0330, 0x0045, 0, 0, 0, 0}, 0x1e1a }, // U1E1A # LATIN CAPITAL LETTER E WITH TILDE BELOW
++    { {0x0330, 0x0049, 0, 0, 0, 0}, 0x1e2c }, // U1E2C # LATIN CAPITAL LETTER I WITH TILDE BELOW
++    { {0x0330, 0x0055, 0, 0, 0, 0}, 0x1e74 }, // U1E74 # LATIN CAPITAL LETTER U WITH TILDE BELOW
++    { {0x0330, 0x0065, 0, 0, 0, 0}, 0x1e1b }, // U1E1B # LATIN SMALL LETTER E WITH TILDE BELOW
++    { {0x0330, 0x0069, 0, 0, 0, 0}, 0x1e2d }, // U1E2D # LATIN SMALL LETTER I WITH TILDE BELOW
++    { {0x0330, 0x0075, 0, 0, 0, 0}, 0x1e75 }, // U1E75 # LATIN SMALL LETTER U WITH TILDE BELOW
++    { {0x0331, 0x0042, 0, 0, 0, 0}, 0x1e06 }, // U1E06 # LATIN CAPITAL LETTER B WITH LINE BELOW
++    { {0x0331, 0x0044, 0, 0, 0, 0}, 0x1e0e }, // U1E0E # LATIN CAPITAL LETTER D WITH LINE BELOW
++    { {0x0331, 0x004b, 0, 0, 0, 0}, 0x1e34 }, // U1E34 # LATIN CAPITAL LETTER K WITH LINE BELOW
++    { {0x0331, 0x004c, 0, 0, 0, 0}, 0x1e3a }, // U1E3A # LATIN CAPITAL LETTER L WITH LINE BELOW
++    { {0x0331, 0x004e, 0, 0, 0, 0}, 0x1e48 }, // U1E48 # LATIN CAPITAL LETTER N WITH LINE BELOW
++    { {0x0331, 0x0052, 0, 0, 0, 0}, 0x1e5e }, // U1E5E # LATIN CAPITAL LETTER R WITH LINE BELOW
++    { {0x0331, 0x0054, 0, 0, 0, 0}, 0x1e6e }, // U1E6E # LATIN CAPITAL LETTER T WITH LINE BELOW
++    { {0x0331, 0x005a, 0, 0, 0, 0}, 0x1e94 }, // U1E94 # LATIN CAPITAL LETTER Z WITH LINE BELOW
++    { {0x0331, 0x0062, 0, 0, 0, 0}, 0x1e07 }, // U1E07 # LATIN SMALL LETTER B WITH LINE BELOW
++    { {0x0331, 0x0064, 0, 0, 0, 0}, 0x1e0f }, // U1E0F # LATIN SMALL LETTER D WITH LINE BELOW
++    { {0x0331, 0x0068, 0, 0, 0, 0}, 0x1e96 }, // U1E96 # LATIN SMALL LETTER H WITH LINE BELOW
++    { {0x0331, 0x006b, 0, 0, 0, 0}, 0x1e35 }, // U1E35 # LATIN SMALL LETTER K WITH LINE BELOW
++    { {0x0331, 0x006c, 0, 0, 0, 0}, 0x1e3b }, // U1E3B # LATIN SMALL LETTER L WITH LINE BELOW
++    { {0x0331, 0x006e, 0, 0, 0, 0}, 0x1e49 }, // U1E49 # LATIN SMALL LETTER N WITH LINE BELOW
++    { {0x0331, 0x0072, 0, 0, 0, 0}, 0x1e5f }, // U1E5F # LATIN SMALL LETTER R WITH LINE BELOW
++    { {0x0331, 0x0074, 0, 0, 0, 0}, 0x1e6f }, // U1E6F # LATIN SMALL LETTER T WITH LINE BELOW
++    { {0x0331, 0x007a, 0, 0, 0, 0}, 0x1e95 }, // U1E95 # LATIN SMALL LETTER Z WITH LINE BELOW
++    { {0x0342, 0x0313, 0x0391, 0, 0, 0}, 0x1f0e }, // U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x0313, 0x0397, 0, 0, 0}, 0x1f2e }, // U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x0313, 0x0399, 0, 0, 0}, 0x1f3e }, // U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x0313, 0x03a9, 0, 0, 0}, 0x1f6e }, // U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x0313, 0x03b1, 0, 0, 0}, 0x1f06 }, // U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x0313, 0x03b7, 0, 0, 0}, 0x1f26 }, // U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x0313, 0x03b9, 0, 0, 0}, 0x1f36 }, // U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x0313, 0x03c5, 0, 0, 0}, 0x1f56 }, // U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x0313, 0x03c9, 0, 0, 0}, 0x1f66 }, // U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x0314, 0x0391, 0, 0, 0}, 0x1f0f }, // U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x0314, 0x0397, 0, 0, 0}, 0x1f2f }, // U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x0314, 0x0399, 0, 0, 0}, 0x1f3f }, // U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x0314, 0x03a5, 0, 0, 0}, 0x1f5f }, // U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x0314, 0x03a9, 0, 0, 0}, 0x1f6f }, // U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x0314, 0x03b1, 0, 0, 0}, 0x1f07 }, // U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x0314, 0x03b7, 0, 0, 0}, 0x1f27 }, // U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x0314, 0x03b9, 0, 0, 0}, 0x1f37 }, // U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x0314, 0x03c5, 0, 0, 0}, 0x1f57 }, // U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x0314, 0x03c9, 0, 0, 0}, 0x1f67 }, // U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x03b1, 0, 0, 0, 0}, 0x1fb6 }, // U1FB6 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
++    { {0x0342, 0x03b7, 0, 0, 0, 0}, 0x1fc6 }, // U1FC6 # GREEK SMALL LETTER ETA WITH PERISPOMENI
++    { {0x0342, 0x03b9, 0, 0, 0, 0}, 0x1fd6 }, // U1FD6 # GREEK SMALL LETTER IOTA WITH PERISPOMENI
++    { {0x0342, 0x03c5, 0, 0, 0, 0}, 0x1fe6 }, // U1FE6 # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
++    { {0x0342, 0x03c9, 0, 0, 0, 0}, 0x1ff6 }, // U1FF6 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
++    { {0x0342, 0x03ca, 0, 0, 0, 0}, 0x1fd7 }, // U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
++    { {0x0342, 0x03cb, 0, 0, 0, 0}, 0x1fe7 }, // U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
++    { {0x0342, 0x1f00, 0, 0, 0, 0}, 0x1f06 }, // U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x1f01, 0, 0, 0, 0}, 0x1f07 }, // U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x1f08, 0, 0, 0, 0}, 0x1f0e }, // U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x1f09, 0, 0, 0, 0}, 0x1f0f }, // U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x1f20, 0, 0, 0, 0}, 0x1f26 }, // U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x1f21, 0, 0, 0, 0}, 0x1f27 }, // U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x1f28, 0, 0, 0, 0}, 0x1f2e }, // U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x1f29, 0, 0, 0, 0}, 0x1f2f }, // U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x1f30, 0, 0, 0, 0}, 0x1f36 }, // U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x1f31, 0, 0, 0, 0}, 0x1f37 }, // U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x1f38, 0, 0, 0, 0}, 0x1f3e }, // U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x1f39, 0, 0, 0, 0}, 0x1f3f }, // U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x1f50, 0, 0, 0, 0}, 0x1f56 }, // U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x1f51, 0, 0, 0, 0}, 0x1f57 }, // U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x1f59, 0, 0, 0, 0}, 0x1f5f }, // U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x1f60, 0, 0, 0, 0}, 0x1f66 }, // U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x1f61, 0, 0, 0, 0}, 0x1f67 }, // U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {0x0342, 0x1f68, 0, 0, 0, 0}, 0x1f6e }, // U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {0x0342, 0x1f69, 0, 0, 0, 0}, 0x1f6f }, // U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03b9, 0, 0}, 0x1fd7 }, // U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03c5, 0, 0}, 0x1fe7 }, // U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0391, 0, 0}, 0x1f0f }, // U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0397, 0, 0}, 0x1f2f }, // U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0399, 0, 0}, 0x1f3f }, // U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a5, 0, 0}, 0x1f5f }, // U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a9, 0, 0}, 0x1f6f }, // U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b1, 0, 0}, 0x1f07 }, // U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b7, 0, 0}, 0x1f27 }, // U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b9, 0, 0}, 0x1f37 }, // U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c5, 0, 0}, 0x1f57 }, // U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c9, 0, 0}, 0x1f67 }, // U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0391, 0, 0}, 0x1f0e }, // U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0397, 0, 0}, 0x1f2e }, // U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0399, 0, 0}, 0x1f3e }, // U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03a9, 0, 0}, 0x1f6e }, // U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b1, 0, 0}, 0x1f06 }, // U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b7, 0, 0}, 0x1f26 }, // U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b9, 0, 0}, 0x1f36 }, // U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c5, 0, 0}, 0x1f56 }, // U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c9, 0, 0}, 0x1f66 }, // U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03b9, 0, 0, 0}, 0x1fd7 }, // U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
++    { {0x0342, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03c5, 0, 0, 0}, 0x1fe7 }, // U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0044, 0, 0, 0}, 0x0110 }, // U0110 # LATIN CAPITAL LETTER D WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0047, 0, 0, 0}, 0x01e4 }, // U01E4 # LATIN CAPITAL LETTER G WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0048, 0, 0, 0}, 0x0126 }, // U0126 # LATIN CAPITAL LETTER H WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0049, 0, 0, 0}, 0x0197 }, // U0197 # LATIN CAPITAL LETTER I WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x004c, 0, 0, 0}, 0x0141 }, // U0141 # LATIN CAPITAL LETTER L WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x004f, 0, 0, 0}, 0x00d8 }, // U00D8 # LATIN CAPITAL LETTER O WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0054, 0, 0, 0}, 0x0166 }, // U0166 # LATIN CAPITAL LETTER T WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x005a, 0, 0, 0}, 0x01b5 }, // U01B5 # LATIN CAPITAL LETTER Z WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0062, 0, 0, 0}, 0x0180 }, // U0180 # LATIN SMALL LETTER B WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0064, 0, 0, 0}, 0x0111 }, // U0111 # LATIN SMALL LETTER D WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0067, 0, 0, 0}, 0x01e5 }, // U01E5 # LATIN SMALL LETTER G WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0068, 0, 0, 0}, 0x0127 }, // U0127 # LATIN SMALL LETTER H WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0069, 0, 0, 0}, 0x0268 }, // U0268 # LATIN SMALL LETTER I WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x006c, 0, 0, 0}, 0x0142 }, // U0142 # LATIN SMALL LETTER L WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x006f, 0, 0, 0}, 0x00f8 }, // U00F8 # LATIN SMALL LETTER O WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0074, 0, 0, 0}, 0x0167 }, // U0167 # LATIN SMALL LETTER T WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x007a, 0, 0, 0}, 0x01b6 }, // U01B6 # LATIN SMALL LETTER Z WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0294, 0, 0, 0}, 0x02a1 }, // U02A1 # LATIN LETTER GLOTTAL STOP WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0338, 0, 0, 0}, 0x2260 }, // U2260 # NOT EQUAL TO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0413, 0, 0, 0}, 0x0492 }, // U0492 # CYRILLIC CAPITAL LETTER GHE WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x041a, 0, 0, 0}, 0x049e }, // U049E # CYRILLIC CAPITAL LETTER KA WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x0433, 0, 0, 0}, 0x0493 }, // U0493 # CYRILLIC SMALL LETTER GHE WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x043a, 0, 0, 0}, 0x049f }, // U049F # CYRILLIC SMALL LETTER KA WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x04ae, 0, 0, 0}, 0x04b0 }, // U04B0 # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x04af, 0, 0, 0}, 0x04b1 }, // U04B1 # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x2190, 0, 0, 0}, 0x219a }, // U219A # LEFTWARDS ARROW WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x2192, 0, 0, 0}, 0x219b }, // U219B # RIGHTWARDS ARROW WITH STROKE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0000, 0x2194, 0, 0, 0}, 0x21ae }, // U21AE # LEFT RIGHT ARROW WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0020, 0x0020, 0, 0, 0}, 0x00a0 }, // nobreakspace # NO-BREAK SPACE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0020, 0x0027, 0, 0, 0}, 0x0027 }, // apostrophe
++    { {UNITIZE(Qt::Key_Multi_key), 0x0020, 0x002c, 0, 0, 0}, 0x00b8 }, // cedilla
++    { {UNITIZE(Qt::Key_Multi_key), 0x0020, 0x002d, 0, 0, 0}, 0x007e }, // asciitilde
++    { {UNITIZE(Qt::Key_Multi_key), 0x0020, 0x002e, 0, 0, 0}, 0x2008 }, // U2008 # PUNCTUATION SPACE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0020, 0x003e, 0, 0, 0}, 0x005e }, // asciicircum
++    { {UNITIZE(Qt::Key_Multi_key), 0x0020, 0x005e, 0, 0, 0}, 0x005e }, // asciicircum
++    { {UNITIZE(Qt::Key_Multi_key), 0x0020, 0x0060, 0, 0, 0}, 0x0060 }, // grave
++    { {UNITIZE(Qt::Key_Multi_key), 0x0020, 0x007e, 0, 0, 0}, 0x007e }, // asciitilde
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0000, 0, 0, 0}, 0x1ef0 }, // U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0000, 0, 0, 0}, 0x1ee3 }, // U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0000, 0, 0, 0}, 0x1ee2 }, // U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0000, 0, 0, 0}, 0x1ef1 }, // U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0021, 0, 0, 0}, 0x00a1 }, // exclamdown
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x002b, 0x004f, 0, 0}, 0x1ee2 }, // U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x002b, 0x0055, 0, 0}, 0x1ef0 }, // U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x002b, 0x006f, 0, 0}, 0x1ee3 }, // U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x002b, 0x0075, 0, 0}, 0x1ef1 }, // U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0041, 0, 0, 0}, 0x1ea0 }, // U1EA0 # LATIN CAPITAL LETTER A WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0042, 0, 0, 0}, 0x1e04 }, // U1E04 # LATIN CAPITAL LETTER B WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0044, 0, 0, 0}, 0x1e0c }, // U1E0C # LATIN CAPITAL LETTER D WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0045, 0, 0, 0}, 0x1eb8 }, // U1EB8 # LATIN CAPITAL LETTER E WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0048, 0, 0, 0}, 0x1e24 }, // U1E24 # LATIN CAPITAL LETTER H WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0049, 0, 0, 0}, 0x1eca }, // U1ECA # LATIN CAPITAL LETTER I WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x004b, 0, 0, 0}, 0x1e32 }, // U1E32 # LATIN CAPITAL LETTER K WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x004c, 0, 0, 0}, 0x1e36 }, // U1E36 # LATIN CAPITAL LETTER L WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x004d, 0, 0, 0}, 0x1e42 }, // U1E42 # LATIN CAPITAL LETTER M WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x004e, 0, 0, 0}, 0x1e46 }, // U1E46 # LATIN CAPITAL LETTER N WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x004f, 0, 0, 0}, 0x1ecc }, // U1ECC # LATIN CAPITAL LETTER O WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0052, 0, 0, 0}, 0x1e5a }, // U1E5A # LATIN CAPITAL LETTER R WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0053, 0, 0, 0}, 0x1e62 }, // U1E62 # LATIN CAPITAL LETTER S WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0054, 0, 0, 0}, 0x1e6c }, // U1E6C # LATIN CAPITAL LETTER T WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0055, 0, 0, 0}, 0x1ee4 }, // U1EE4 # LATIN CAPITAL LETTER U WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0056, 0, 0, 0}, 0x1e7e }, // U1E7E # LATIN CAPITAL LETTER V WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0057, 0, 0, 0}, 0x1e88 }, // U1E88 # LATIN CAPITAL LETTER W WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0059, 0, 0, 0}, 0x1ef4 }, // U1EF4 # LATIN CAPITAL LETTER Y WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x005a, 0, 0, 0}, 0x1e92 }, // U1E92 # LATIN CAPITAL LETTER Z WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x005e, 0, 0, 0}, 0x00a6 }, // brokenbar
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0061, 0, 0, 0}, 0x1ea1 }, // U1EA1 # LATIN SMALL LETTER A WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0062, 0, 0, 0}, 0x1e05 }, // U1E05 # LATIN SMALL LETTER B WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0064, 0, 0, 0}, 0x1e0d }, // U1E0D # LATIN SMALL LETTER D WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0065, 0, 0, 0}, 0x1eb9 }, // U1EB9 # LATIN SMALL LETTER E WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0068, 0, 0, 0}, 0x1e25 }, // U1E25 # LATIN SMALL LETTER H WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0069, 0, 0, 0}, 0x1ecb }, // U1ECB # LATIN SMALL LETTER I WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x006b, 0, 0, 0}, 0x1e33 }, // U1E33 # LATIN SMALL LETTER K WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x006c, 0, 0, 0}, 0x1e37 }, // U1E37 # LATIN SMALL LETTER L WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x006d, 0, 0, 0}, 0x1e43 }, // U1E43 # LATIN SMALL LETTER M WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x006e, 0, 0, 0}, 0x1e47 }, // U1E47 # LATIN SMALL LETTER N WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x006f, 0, 0, 0}, 0x1ecd }, // U1ECD # LATIN SMALL LETTER O WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0072, 0, 0, 0}, 0x1e5b }, // U1E5B # LATIN SMALL LETTER R WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0073, 0, 0, 0}, 0x1e63 }, // U1E63 # LATIN SMALL LETTER S WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0074, 0, 0, 0}, 0x1e6d }, // U1E6D # LATIN SMALL LETTER T WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0075, 0, 0, 0}, 0x1ee5 }, // U1EE5 # LATIN SMALL LETTER U WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0076, 0, 0, 0}, 0x1e7f }, // U1E7F # LATIN SMALL LETTER V WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0077, 0, 0, 0}, 0x1e89 }, // U1E89 # LATIN SMALL LETTER W WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0079, 0, 0, 0}, 0x1ef5 }, // U1EF5 # LATIN SMALL LETTER Y WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, 0x007a, 0, 0, 0}, 0x1e93 }, // U1E93 # LATIN SMALL LETTER Z WITH DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0}, 0x1ee2 }, // U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0}, 0x1ef0 }, // U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0}, 0x1ee3 }, // U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0021, UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0}, 0x1ef1 }, // U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0000, 0, 0, 0}, 0x0344 }, // U0344 # COMBINING GREEK DIALYTIKA TONOS
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0000, 0x004f, 0, 0}, 0x1e4e }, // U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0000, 0x006f, 0, 0}, 0x1e4f }, // U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0027, 0, 0, 0}, 0x0344 }, // U0344 # COMBINING GREEK DIALYTIKA TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x002c, 0, 0, 0}, 0x201e }, // U201e # DOUBLE LOW-9 QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x002f, 0, 0, 0}, 0x301e }, // U301e # DOUBLE PRIME QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x003c, 0, 0, 0}, 0x201c }, // U201c # LEFT DOUBLE QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x003e, 0, 0, 0}, 0x201d }, // U201d # RIGHT DOUBLE QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0041, 0, 0, 0}, 0x00c4 }, // U00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0045, 0, 0, 0}, 0x00cb }, // U00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0048, 0, 0, 0}, 0x1e26 }, // U1E26 # LATIN CAPITAL LETTER H WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0049, 0, 0, 0}, 0x00cf }, // U00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x004f, 0, 0, 0}, 0x00d6 }, // U00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0055, 0, 0, 0}, 0x00dc }, // U00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0057, 0, 0, 0}, 0x1e84 }, // U1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0058, 0, 0, 0}, 0x1e8c }, // U1E8C # LATIN CAPITAL LETTER X WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0059, 0, 0, 0}, 0x0178 }, // U0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x005c, 0, 0, 0}, 0x301d }, // U301d # REVERSED DOUBLE PRIME QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x005f, 0x0055, 0, 0}, 0x1e7a }, // U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x005f, 0x0075, 0, 0}, 0x1e7b }, // U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0061, 0, 0, 0}, 0x00e4 }, // U00E4 # LATIN SMALL LETTER A WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0065, 0, 0, 0}, 0x00eb }, // U00EB # LATIN SMALL LETTER E WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0068, 0, 0, 0}, 0x1e27 }, // U1E27 # LATIN SMALL LETTER H WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0069, 0, 0, 0}, 0x00ef }, // U00EF # LATIN SMALL LETTER I WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x006f, 0, 0, 0}, 0x00f6 }, // U00F6 # LATIN SMALL LETTER O WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0074, 0, 0, 0}, 0x1e97 }, // U1E97 # LATIN SMALL LETTER T WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0075, 0, 0, 0}, 0x00fc }, // U00FC # LATIN SMALL LETTER U WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0077, 0, 0, 0}, 0x1e85 }, // U1E85 # LATIN SMALL LETTER W WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0078, 0, 0, 0}, 0x1e8d }, // U1E8D # LATIN SMALL LETTER X WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0079, 0, 0, 0}, 0x00ff }, // U00FF # LATIN SMALL LETTER Y WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x007e, 0x004f, 0, 0}, 0x1e4e }, // U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x007e, 0x006f, 0, 0}, 0x1e4f }, // U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x00af, 0x0055, 0, 0}, 0x1e7a }, // U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x00af, 0x0075, 0, 0}, 0x1e7b }, // U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x00b4, 0, 0, 0}, 0x0344 }, // U0344 # COMBINING GREEK DIALYTIKA TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x00d5, 0, 0, 0}, 0x1e4e }, // U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x00f5, 0, 0, 0}, 0x1e4f }, // U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x016a, 0, 0, 0}, 0x1e7a }, // U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x016b, 0, 0, 0}, 0x1e7b }, // U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0399, 0, 0, 0}, 0x03aa }, // U03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03a5, 0, 0, 0}, 0x03ab }, // U03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03b9, 0, 0, 0}, 0x03ca }, // U03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03c5, 0, 0, 0}, 0x03cb }, // U03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03d2, 0, 0, 0}, 0x03d4 }, // U03D4 # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0406, 0, 0, 0}, 0x0407 }, // U0407 # CYRILLIC CAPITAL LETTER YI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0410, 0, 0, 0}, 0x04d2 }, // U04D2 # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0415, 0, 0, 0}, 0x0401 }, // U0401 # CYRILLIC CAPITAL LETTER IO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0416, 0, 0, 0}, 0x04dc }, // U04DC # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0417, 0, 0, 0}, 0x04de }, // U04DE # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0418, 0, 0, 0}, 0x04e4 }, // U04E4 # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x041e, 0, 0, 0}, 0x04e6 }, // U04E6 # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0423, 0, 0, 0}, 0x04f0 }, // U04F0 # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0427, 0, 0, 0}, 0x04f4 }, // U04F4 # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x042b, 0, 0, 0}, 0x04f8 }, // U04F8 # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x042d, 0, 0, 0}, 0x04ec }, // U04EC # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0430, 0, 0, 0}, 0x04d3 }, // U04D3 # CYRILLIC SMALL LETTER A WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0435, 0, 0, 0}, 0x0451 }, // U0451 # CYRILLIC SMALL LETTER IO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0436, 0, 0, 0}, 0x04dd }, // U04DD # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0437, 0, 0, 0}, 0x04df }, // U04DF # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0438, 0, 0, 0}, 0x04e5 }, // U04E5 # CYRILLIC SMALL LETTER I WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x043e, 0, 0, 0}, 0x04e7 }, // U04E7 # CYRILLIC SMALL LETTER O WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0443, 0, 0, 0}, 0x04f1 }, // U04F1 # CYRILLIC SMALL LETTER U WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0447, 0, 0, 0}, 0x04f5 }, // U04F5 # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x044b, 0, 0, 0}, 0x04f9 }, // U04F9 # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x044d, 0, 0, 0}, 0x04ed }, // U04ED # CYRILLIC SMALL LETTER E WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0456, 0, 0, 0}, 0x0457 }, // U0457 # CYRILLIC SMALL LETTER YI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x04d8, 0, 0, 0}, 0x04da }, // U04DA # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x04d9, 0, 0, 0}, 0x04db }, // U04DB # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x04e8, 0, 0, 0}, 0x04ea }, // U04EA # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, 0x04e9, 0, 0, 0}, 0x04eb }, // U04EB # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, UNITIZE(Qt::Key_Dead_Acute), 0, 0, 0}, 0x0344 }, // U0344 # COMBINING GREEK DIALYTIKA TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, UNITIZE(Qt::Key_Dead_Tilde), 0x004f, 0, 0}, 0x1e4e }, // U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, UNITIZE(Qt::Key_Dead_Tilde), 0x006f, 0, 0}, 0x1e4f }, // U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, UNITIZE(Qt::Key_Dead_Macron), 0x0055, 0, 0}, 0x1e7a }, // U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0022, UNITIZE(Qt::Key_Dead_Macron), 0x0075, 0, 0}, 0x1e7b }, // U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0023, 0x0023, 0, 0, 0}, 0x266f }, // U266f # MUSIC SHARP SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0023, 0x0062, 0, 0, 0}, 0x266d }, // U266d # MUSIC FLAT SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0023, 0x0066, 0, 0, 0}, 0x266e }, // U266e # MUSIC NATURAL SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0025, 0x006f, 0, 0, 0}, 0x2030 }, // U2030 # PER MILLE SIGN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0000, 0, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0000, 0, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0000, 0, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0000, 0, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0000, 0x004f, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0000, 0x004f, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0000, 0x0055, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0000, 0x006f, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0000, 0x006f, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0000, 0x0075, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0020, 0, 0, 0}, 0x0027 }, // apostrophe
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0022, 0x0049, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0022, 0x0055, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0022, 0x0069, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0022, 0x0075, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0022, 0x03b9, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0022, 0x03c5, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x0391, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x0395, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x0397, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x0399, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x039f, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x03a5, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x03a9, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x03b1, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x03b5, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x03b7, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x03b9, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x03bf, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x03c5, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0028, 0x03c9, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x0391, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x0395, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x0397, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x0399, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x039f, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x03a9, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x03b1, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x03b5, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x03b7, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x03b9, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x03bf, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x03c5, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0029, 0x03c9, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x002b, 0x004f, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x002b, 0x0055, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x002b, 0x006f, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x002b, 0x0075, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x002c, 0, 0, 0}, 0x201a }, // U201a # SINGLE LOW-9 QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x002c, 0x0043, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x002c, 0x0063, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x002f, 0x004f, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x002f, 0x006f, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x003c, 0, 0, 0}, 0x2018 }, // U2018 # LEFT SINGLE QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x003e, 0, 0, 0}, 0x2019 }, // U2019 # RIGHT SINGLE QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0041, 0, 0, 0}, 0x00c1 }, // U00C1 # LATIN CAPITAL LETTER A WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0043, 0, 0, 0}, 0x0106 }, // U0106 # LATIN CAPITAL LETTER C WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0045, 0, 0, 0}, 0x00c9 }, // U00C9 # LATIN CAPITAL LETTER E WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0047, 0, 0, 0}, 0x01f4 }, // U01F4 # LATIN CAPITAL LETTER G WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0049, 0, 0, 0}, 0x00cd }, // U00CD # LATIN CAPITAL LETTER I WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x004b, 0, 0, 0}, 0x1e30 }, // U1E30 # LATIN CAPITAL LETTER K WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x004c, 0, 0, 0}, 0x0139 }, // U0139 # LATIN CAPITAL LETTER L WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x004d, 0, 0, 0}, 0x1e3e }, // U1E3E # LATIN CAPITAL LETTER M WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x004e, 0, 0, 0}, 0x0143 }, // U0143 # LATIN CAPITAL LETTER N WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x004f, 0, 0, 0}, 0x00d3 }, // U00D3 # LATIN CAPITAL LETTER O WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0050, 0, 0, 0}, 0x1e54 }, // U1E54 # LATIN CAPITAL LETTER P WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0052, 0, 0, 0}, 0x0154 }, // U0154 # LATIN CAPITAL LETTER R WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0053, 0, 0, 0}, 0x015a }, // U015A # LATIN CAPITAL LETTER S WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0055, 0, 0, 0}, 0x00da }, // U00DA # LATIN CAPITAL LETTER U WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0055, 0x0041, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0055, 0x0061, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0057, 0, 0, 0}, 0x1e82 }, // U1E82 # LATIN CAPITAL LETTER W WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0059, 0, 0, 0}, 0x00dd }, // U00DD # LATIN CAPITAL LETTER Y WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x005a, 0, 0, 0}, 0x0179 }, // U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x005e, 0x0041, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x005e, 0x0045, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x005e, 0x004f, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x005e, 0x0061, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x005e, 0x0065, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x005e, 0x006f, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x005f, 0x0045, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x005f, 0x004f, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x005f, 0x0065, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x005f, 0x006f, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0061, 0, 0, 0}, 0x00e1 }, // U00E1 # LATIN SMALL LETTER A WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0062, 0x0041, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0062, 0x0061, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0063, 0, 0, 0}, 0x0107 }, // U0107 # LATIN SMALL LETTER C WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0065, 0, 0, 0}, 0x00e9 }, // U00E9 # LATIN SMALL LETTER E WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0067, 0, 0, 0}, 0x01f5 }, // U01F5 # LATIN SMALL LETTER G WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0069, 0, 0, 0}, 0x00ed }, // U00ED # LATIN SMALL LETTER I WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x006b, 0, 0, 0}, 0x1e31 }, // U1E31 # LATIN SMALL LETTER K WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x006c, 0, 0, 0}, 0x013a }, // U013A # LATIN SMALL LETTER L WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x006d, 0, 0, 0}, 0x1e3f }, // U1E3F # LATIN SMALL LETTER M WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x006e, 0, 0, 0}, 0x0144 }, // U0144 # LATIN SMALL LETTER N WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x006f, 0, 0, 0}, 0x00f3 }, // U00F3 # LATIN SMALL LETTER O WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0070, 0, 0, 0}, 0x1e55 }, // U1E55 # LATIN SMALL LETTER P WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0072, 0, 0, 0}, 0x0155 }, // U0155 # LATIN SMALL LETTER R WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0073, 0, 0, 0}, 0x015b }, // U015B # LATIN SMALL LETTER S WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0075, 0, 0, 0}, 0x00fa }, // U00FA # LATIN SMALL LETTER U WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0077, 0, 0, 0}, 0x1e83 }, // U1E83 # LATIN SMALL LETTER W WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0079, 0, 0, 0}, 0x00fd }, // U00FD # LATIN SMALL LETTER Y WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x007a, 0, 0, 0}, 0x017a }, // U017A # LATIN SMALL LETTER Z WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x007e, 0x004f, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x007e, 0x0055, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x007e, 0x006f, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x007e, 0x0075, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00af, 0x0045, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00af, 0x004f, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00af, 0x0065, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00af, 0x006f, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00c2, 0, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00c5, 0, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00c6, 0, 0, 0}, 0x01fc }, // U01FC # LATIN CAPITAL LETTER AE WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00c7, 0, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00ca, 0, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00cf, 0, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00d4, 0, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00d5, 0, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00d8, 0, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00dc, 0, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00e2, 0, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00e5, 0, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00e6, 0, 0, 0}, 0x01fd }, // U01FD # LATIN SMALL LETTER AE WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00e7, 0, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00ea, 0, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00ef, 0, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00f4, 0, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00f5, 0, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00f8, 0, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x00fc, 0, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0102, 0, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0103, 0, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0112, 0, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0113, 0, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x014c, 0, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x014d, 0, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0168, 0, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0169, 0, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x0391, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x0395, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x0397, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x0399, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x039f, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x03a9, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x03b1, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x03b5, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x03b7, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x03b9, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x03bf, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x03c5, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0313, 0x03c9, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x0391, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x0395, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x0397, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x0399, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x039f, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x03a5, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x03a9, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x03b1, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x03b5, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x03b7, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x03b9, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x03bf, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x03c5, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0314, 0x03c9, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0391, 0, 0, 0}, 0x0386 }, // U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0395, 0, 0, 0}, 0x0388 }, // U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0397, 0, 0, 0}, 0x0389 }, // U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0399, 0, 0, 0}, 0x038a }, // U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x039f, 0, 0, 0}, 0x038c }, // U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03a5, 0, 0, 0}, 0x038e }, // U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03a9, 0, 0, 0}, 0x038f }, // U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03b1, 0, 0, 0}, 0x03ac }, // U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03b5, 0, 0, 0}, 0x03ad }, // U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03b7, 0, 0, 0}, 0x03ae }, // U03AE # GREEK SMALL LETTER ETA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03b9, 0, 0, 0}, 0x03af }, // U03AF # GREEK SMALL LETTER IOTA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03bf, 0, 0, 0}, 0x03cc }, // U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03c5, 0, 0, 0}, 0x03cd }, // U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03c9, 0, 0, 0}, 0x03ce }, // U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03ca, 0, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03cb, 0, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x03d2, 0, 0, 0}, 0x03d3 }, // U03D3 # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0413, 0, 0, 0}, 0x0403 }, // U0403 # CYRILLIC CAPITAL LETTER GJE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x041a, 0, 0, 0}, 0x040c }, // U040C # CYRILLIC CAPITAL LETTER KJE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0433, 0, 0, 0}, 0x0453 }, // U0453 # CYRILLIC SMALL LETTER GJE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x043a, 0, 0, 0}, 0x045c }, // U045C # CYRILLIC SMALL LETTER KJE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f00, 0, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f01, 0, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f08, 0, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f09, 0, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f10, 0, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f11, 0, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f18, 0, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f19, 0, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f20, 0, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f21, 0, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f28, 0, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f29, 0, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f30, 0, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f31, 0, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f38, 0, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f39, 0, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f40, 0, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f41, 0, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f48, 0, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f49, 0, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f50, 0, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f51, 0, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f59, 0, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f60, 0, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f61, 0, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f68, 0, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, 0x1f69, 0, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Tilde), 0x004f, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Tilde), 0x0055, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Tilde), 0x006f, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Tilde), 0x0075, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Macron), 0x0045, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Macron), 0x004f, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Macron), 0x0065, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Macron), 0x006f, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0049, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0069, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0075, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03b9, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03c5, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Abovering), 0x0041, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Abovering), 0x0061, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Cedilla), 0x0043, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Cedilla), 0x0063, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0027, UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x246b }, // U246B # CIRCLED NUMBER TWELVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32b7 }, // U32B7 # CIRCLED NUMBER FORTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3253 }, // U3253 # CIRCLED NUMBER TWENTY THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3252 }, // U3252 # CIRCLED NUMBER TWENTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3253 }, // U3253 # CIRCLED NUMBER TWENTY THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x2473 }, // U2473 # CIRCLED NUMBER TWENTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32b2 }, // U32B2 # CIRCLED NUMBER THIRTY SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32b7 }, // U32B7 # CIRCLED NUMBER FORTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3252 }, // U3252 # CIRCLED NUMBER TWENTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x246d }, // U246D # CIRCLED NUMBER FOURTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32be }, // U32BE # CIRCLED NUMBER FORTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3254 }, // U3254 # CIRCLED NUMBER TWENTY FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x2470 }, // U2470 # CIRCLED NUMBER SEVENTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3252 }, // U3252 # CIRCLED NUMBER TWENTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32bc }, // U32BC # CIRCLED NUMBER FORTY SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3254 }, // U3254 # CIRCLED NUMBER TWENTY FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x246f }, // U246F # CIRCLED NUMBER SIXTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3252 }, // U3252 # CIRCLED NUMBER TWENTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32bb }, // U32BB # CIRCLED NUMBER FORTY SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32b3 }, // U32B3 # CIRCLED NUMBER THIRTY EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32b6 }, // U32B6 # CIRCLED NUMBER FORTY ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x2469 }, // U2469 # CIRCLED NUMBER TEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3255 }, // U3255 # CIRCLED NUMBER TWENTY FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3251 }, // U3251 # CIRCLED NUMBER TWENTY ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3257 }, // U3257 # CIRCLED NUMBER TWENTY SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3255 }, // U3255 # CIRCLED NUMBER TWENTY FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x325f }, // U325F # CIRCLED NUMBER THIRTY FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x325e }, // U325E # CIRCLED NUMBER THIRTY FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3251 }, // U3251 # CIRCLED NUMBER TWENTY ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32b8 }, // U32B8 # CIRCLED NUMBER FORTY THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32b1 }, // U32B1 # CIRCLED NUMBER THIRTY SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x325d }, // U325D # CIRCLED NUMBER THIRTY THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x2471 }, // U2471 # CIRCLED NUMBER EIGHTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x325c }, // U325C # CIRCLED NUMBER THIRTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3256 }, // U3256 # CIRCLED NUMBER TWENTY SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x325c }, // U325C # CIRCLED NUMBER THIRTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3256 }, // U3256 # CIRCLED NUMBER TWENTY SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x325b }, // U325B # CIRCLED NUMBER THIRTY ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x2473 }, // U2473 # CIRCLED NUMBER TWENTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x2472 }, // U2472 # CIRCLED NUMBER NINETEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x246c }, // U246C # CIRCLED NUMBER THIRTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32b9 }, // U32B9 # CIRCLED NUMBER FORTY FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32ba }, // U32BA # CIRCLED NUMBER FORTY FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x325a }, // U325A # CIRCLED NUMBER THIRTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32b5 }, // U32B5 # CIRCLED NUMBER FORTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3257 }, // U3257 # CIRCLED NUMBER TWENTY SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3259 }, // U3259 # CIRCLED NUMBER TWENTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3259 }, // U3259 # CIRCLED NUMBER TWENTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32b4 }, // U32B4 # CIRCLED NUMBER THIRTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3258 }, // U3258 # CIRCLED NUMBER TWENTY EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x3258 }, // U3258 # CIRCLED NUMBER TWENTY EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x246b }, // U246B # CIRCLED NUMBER TWELVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x246a }, // U246A # CIRCLED NUMBER ELEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x246e }, // U246E # CIRCLED NUMBER FIFTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32bd }, // U32BD # CIRCLED NUMBER FORTY EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0000, 0x0029, 0}, 0x32bf }, // U32BF # CIRCLED NUMBER FIFTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0029, 0, 0}, 0x2461 }, // U2461 # CIRCLED DIGIT TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0029, 0, 0}, 0x2461 }, // U2461 # CIRCLED DIGIT TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0029, 0, 0}, 0x2462 }, // U2462 # CIRCLED DIGIT THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0029, 0, 0}, 0x2468 }, // U2468 # CIRCLED DIGIT NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0029, 0, 0}, 0x2463 }, // U2463 # CIRCLED DIGIT FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0029, 0, 0}, 0x2460 }, // U2460 # CIRCLED DIGIT ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0029, 0, 0}, 0x2467 }, // U2467 # CIRCLED DIGIT EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0029, 0, 0}, 0x24ea }, // U24EA # CIRCLED DIGIT ZERO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0029, 0, 0}, 0x2466 }, // U2466 # CIRCLED DIGIT SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0029, 0, 0}, 0x2465 }, // U2465 # CIRCLED DIGIT SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0029, 0, 0}, 0x2464 }, // U2464 # CIRCLED DIGIT FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0030, 0x0029, 0}, 0x32b5 }, // U32B5 # CIRCLED NUMBER FORTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0030, 0x0029, 0}, 0x2473 }, // U2473 # CIRCLED NUMBER TWENTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0030, 0x0029, 0}, 0x2469 }, // U2469 # CIRCLED NUMBER TEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0030, 0x0029, 0}, 0x32bf }, // U32BF # CIRCLED NUMBER FIFTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0030, 0x0029, 0}, 0x325a }, // U325A # CIRCLED NUMBER THIRTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0030, 0x0029, 0}, 0x2473 }, // U2473 # CIRCLED NUMBER TWENTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0031, 0x0029, 0}, 0x32b6 }, // U32B6 # CIRCLED NUMBER FORTY ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0031, 0x0029, 0}, 0x246a }, // U246A # CIRCLED NUMBER ELEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0031, 0x0029, 0}, 0x3251 }, // U3251 # CIRCLED NUMBER TWENTY ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0031, 0x0029, 0}, 0x325b }, // U325B # CIRCLED NUMBER THIRTY ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0031, 0x0029, 0}, 0x3251 }, // U3251 # CIRCLED NUMBER TWENTY ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0032, 0x0029, 0}, 0x3252 }, // U3252 # CIRCLED NUMBER TWENTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0032, 0x0029, 0}, 0x32b7 }, // U32B7 # CIRCLED NUMBER FORTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0032, 0x0029, 0}, 0x246b }, // U246B # CIRCLED NUMBER TWELVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0032, 0x0029, 0}, 0x325c }, // U325C # CIRCLED NUMBER THIRTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0032, 0x0029, 0}, 0x3252 }, // U3252 # CIRCLED NUMBER TWENTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0033, 0x0029, 0}, 0x246c }, // U246C # CIRCLED NUMBER THIRTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0033, 0x0029, 0}, 0x3253 }, // U3253 # CIRCLED NUMBER TWENTY THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0033, 0x0029, 0}, 0x325d }, // U325D # CIRCLED NUMBER THIRTY THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0033, 0x0029, 0}, 0x32b8 }, // U32B8 # CIRCLED NUMBER FORTY THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0033, 0x0029, 0}, 0x3253 }, // U3253 # CIRCLED NUMBER TWENTY THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0034, 0x0029, 0}, 0x246d }, // U246D # CIRCLED NUMBER FOURTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0034, 0x0029, 0}, 0x3254 }, // U3254 # CIRCLED NUMBER TWENTY FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0034, 0x0029, 0}, 0x32b9 }, // U32B9 # CIRCLED NUMBER FORTY FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0034, 0x0029, 0}, 0x3254 }, // U3254 # CIRCLED NUMBER TWENTY FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0034, 0x0029, 0}, 0x325e }, // U325E # CIRCLED NUMBER THIRTY FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0035, 0x0029, 0}, 0x3255 }, // U3255 # CIRCLED NUMBER TWENTY FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0035, 0x0029, 0}, 0x325f }, // U325F # CIRCLED NUMBER THIRTY FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0035, 0x0029, 0}, 0x32ba }, // U32BA # CIRCLED NUMBER FORTY FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0035, 0x0029, 0}, 0x3255 }, // U3255 # CIRCLED NUMBER TWENTY FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0035, 0x0029, 0}, 0x246e }, // U246E # CIRCLED NUMBER FIFTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0036, 0x0029, 0}, 0x3256 }, // U3256 # CIRCLED NUMBER TWENTY SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0036, 0x0029, 0}, 0x32bb }, // U32BB # CIRCLED NUMBER FORTY SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0036, 0x0029, 0}, 0x32b1 }, // U32B1 # CIRCLED NUMBER THIRTY SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0036, 0x0029, 0}, 0x246f }, // U246F # CIRCLED NUMBER SIXTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0036, 0x0029, 0}, 0x3256 }, // U3256 # CIRCLED NUMBER TWENTY SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0037, 0x0029, 0}, 0x32bc }, // U32BC # CIRCLED NUMBER FORTY SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0037, 0x0029, 0}, 0x3257 }, // U3257 # CIRCLED NUMBER TWENTY SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0037, 0x0029, 0}, 0x32b2 }, // U32B2 # CIRCLED NUMBER THIRTY SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0037, 0x0029, 0}, 0x2470 }, // U2470 # CIRCLED NUMBER SEVENTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0037, 0x0029, 0}, 0x3257 }, // U3257 # CIRCLED NUMBER TWENTY SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0038, 0x0029, 0}, 0x2471 }, // U2471 # CIRCLED NUMBER EIGHTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0038, 0x0029, 0}, 0x32b3 }, // U32B3 # CIRCLED NUMBER THIRTY EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0038, 0x0029, 0}, 0x32bd }, // U32BD # CIRCLED NUMBER FORTY EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0038, 0x0029, 0}, 0x3258 }, // U3258 # CIRCLED NUMBER TWENTY EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0038, 0x0029, 0}, 0x3258 }, // U3258 # CIRCLED NUMBER TWENTY EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0039, 0x0029, 0}, 0x32b4 }, // U32B4 # CIRCLED NUMBER THIRTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0039, 0x0029, 0}, 0x3259 }, // U3259 # CIRCLED NUMBER TWENTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0039, 0x0029, 0}, 0x32be }, // U32BE # CIRCLED NUMBER FORTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0039, 0x0029, 0}, 0x3259 }, // U3259 # CIRCLED NUMBER TWENTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0000, 0x0039, 0x0029, 0}, 0x2472 }, // U2472 # CIRCLED NUMBER NINETEEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0028, 0, 0, 0}, 0x005b }, // bracketleft
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x002d, 0, 0, 0}, 0x007b }, // braceleft
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0030, 0x0029, 0, 0}, 0x24ea }, // U24EA # CIRCLED DIGIT ZERO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0000, 0x0029, 0}, 0x2472 }, // U2472 # CIRCLED NUMBER NINETEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0000, 0x0029, 0}, 0x246e }, // U246E # CIRCLED NUMBER FIFTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0000, 0x0029, 0}, 0x2469 }, // U2469 # CIRCLED NUMBER TEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0000, 0x0029, 0}, 0x246c }, // U246C # CIRCLED NUMBER THIRTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0000, 0x0029, 0}, 0x246b }, // U246B # CIRCLED NUMBER TWELVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0000, 0x0029, 0}, 0x2470 }, // U2470 # CIRCLED NUMBER SEVENTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0000, 0x0029, 0}, 0x246a }, // U246A # CIRCLED NUMBER ELEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0000, 0x0029, 0}, 0x246d }, // U246D # CIRCLED NUMBER FOURTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0000, 0x0029, 0}, 0x2471 }, // U2471 # CIRCLED NUMBER EIGHTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0000, 0x0029, 0}, 0x246f }, // U246F # CIRCLED NUMBER SIXTEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0000, 0x0029, 0}, 0x246b }, // U246B # CIRCLED NUMBER TWELVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0029, 0, 0}, 0x2460 }, // U2460 # CIRCLED DIGIT ONE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0030, 0x0029, 0}, 0x2469 }, // U2469 # CIRCLED NUMBER TEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0031, 0x0029, 0}, 0x246a }, // U246A # CIRCLED NUMBER ELEVEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0032, 0x0029, 0}, 0x246b }, // U246B # CIRCLED NUMBER TWELVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0033, 0x0029, 0}, 0x246c }, // U246C # CIRCLED NUMBER THIRTEEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0034, 0x0029, 0}, 0x246d }, // U246D # CIRCLED NUMBER FOURTEEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0035, 0x0029, 0}, 0x246e }, // U246E # CIRCLED NUMBER FIFTEEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0036, 0x0029, 0}, 0x246f }, // U246F # CIRCLED NUMBER SIXTEEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0037, 0x0029, 0}, 0x2470 }, // U2470 # CIRCLED NUMBER SEVENTEEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0038, 0x0029, 0}, 0x2471 }, // U2471 # CIRCLED NUMBER EIGHTEEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0031, 0x0039, 0x0029, 0}, 0x2472 }, // U2472 # CIRCLED NUMBER NINETEEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0000, 0x0029, 0}, 0x2473 }, // U2473 # CIRCLED NUMBER TWENTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0000, 0x0029, 0}, 0x3257 }, // U3257 # CIRCLED NUMBER TWENTY SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0000, 0x0029, 0}, 0x3259 }, // U3259 # CIRCLED NUMBER TWENTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0000, 0x0029, 0}, 0x3258 }, // U3258 # CIRCLED NUMBER TWENTY EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0000, 0x0029, 0}, 0x3253 }, // U3253 # CIRCLED NUMBER TWENTY THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0000, 0x0029, 0}, 0x3255 }, // U3255 # CIRCLED NUMBER TWENTY FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0000, 0x0029, 0}, 0x3252 }, // U3252 # CIRCLED NUMBER TWENTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0000, 0x0029, 0}, 0x3256 }, // U3256 # CIRCLED NUMBER TWENTY SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0000, 0x0029, 0}, 0x3251 }, // U3251 # CIRCLED NUMBER TWENTY ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0000, 0x0029, 0}, 0x3252 }, // U3252 # CIRCLED NUMBER TWENTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0000, 0x0029, 0}, 0x3254 }, // U3254 # CIRCLED NUMBER TWENTY FOUR
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0029, 0, 0}, 0x2461 }, // U2461 # CIRCLED DIGIT TWO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0030, 0x0029, 0}, 0x2473 }, // U2473 # CIRCLED NUMBER TWENTY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0031, 0x0029, 0}, 0x3251 }, // U3251 # CIRCLED NUMBER TWENTY ONE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0032, 0x0029, 0}, 0x3252 }, // U3252 # CIRCLED NUMBER TWENTY TWO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0033, 0x0029, 0}, 0x3253 }, // U3253 # CIRCLED NUMBER TWENTY THREE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0034, 0x0029, 0}, 0x3254 }, // U3254 # CIRCLED NUMBER TWENTY FOUR
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0035, 0x0029, 0}, 0x3255 }, // U3255 # CIRCLED NUMBER TWENTY FIVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0036, 0x0029, 0}, 0x3256 }, // U3256 # CIRCLED NUMBER TWENTY SIX
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0037, 0x0029, 0}, 0x3257 }, // U3257 # CIRCLED NUMBER TWENTY SEVEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0038, 0x0029, 0}, 0x3258 }, // U3258 # CIRCLED NUMBER TWENTY EIGHT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0032, 0x0039, 0x0029, 0}, 0x3259 }, // U3259 # CIRCLED NUMBER TWENTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0000, 0x0029, 0}, 0x32b4 }, // U32B4 # CIRCLED NUMBER THIRTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0000, 0x0029, 0}, 0x325a }, // U325A # CIRCLED NUMBER THIRTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0000, 0x0029, 0}, 0x325b }, // U325B # CIRCLED NUMBER THIRTY ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0000, 0x0029, 0}, 0x32b3 }, // U32B3 # CIRCLED NUMBER THIRTY EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0000, 0x0029, 0}, 0x32b2 }, // U32B2 # CIRCLED NUMBER THIRTY SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0000, 0x0029, 0}, 0x325c }, // U325C # CIRCLED NUMBER THIRTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0000, 0x0029, 0}, 0x325c }, // U325C # CIRCLED NUMBER THIRTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0000, 0x0029, 0}, 0x325f }, // U325F # CIRCLED NUMBER THIRTY FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0000, 0x0029, 0}, 0x325e }, // U325E # CIRCLED NUMBER THIRTY FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0000, 0x0029, 0}, 0x32b1 }, // U32B1 # CIRCLED NUMBER THIRTY SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0000, 0x0029, 0}, 0x325d }, // U325D # CIRCLED NUMBER THIRTY THREE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0029, 0, 0}, 0x2462 }, // U2462 # CIRCLED DIGIT THREE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0030, 0x0029, 0}, 0x325a }, // U325A # CIRCLED NUMBER THIRTY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0031, 0x0029, 0}, 0x325b }, // U325B # CIRCLED NUMBER THIRTY ONE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0032, 0x0029, 0}, 0x325c }, // U325C # CIRCLED NUMBER THIRTY TWO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0033, 0x0029, 0}, 0x325d }, // U325D # CIRCLED NUMBER THIRTY THREE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0034, 0x0029, 0}, 0x325e }, // U325E # CIRCLED NUMBER THIRTY FOUR
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0035, 0x0029, 0}, 0x325f }, // U325F # CIRCLED NUMBER THIRTY FIVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0036, 0x0029, 0}, 0x32b1 }, // U32B1 # CIRCLED NUMBER THIRTY SIX
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0037, 0x0029, 0}, 0x32b2 }, // U32B2 # CIRCLED NUMBER THIRTY SEVEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0038, 0x0029, 0}, 0x32b3 }, // U32B3 # CIRCLED NUMBER THIRTY EIGHT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0033, 0x0039, 0x0029, 0}, 0x32b4 }, // U32B4 # CIRCLED NUMBER THIRTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0000, 0x0029, 0}, 0x32b7 }, // U32B7 # CIRCLED NUMBER FORTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0000, 0x0029, 0}, 0x32b5 }, // U32B5 # CIRCLED NUMBER FORTY
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0000, 0x0029, 0}, 0x32b6 }, // U32B6 # CIRCLED NUMBER FORTY ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0000, 0x0029, 0}, 0x32bc }, // U32BC # CIRCLED NUMBER FORTY SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0000, 0x0029, 0}, 0x32b7 }, // U32B7 # CIRCLED NUMBER FORTY TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0000, 0x0029, 0}, 0x32b9 }, // U32B9 # CIRCLED NUMBER FORTY FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0000, 0x0029, 0}, 0x32b8 }, // U32B8 # CIRCLED NUMBER FORTY THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0000, 0x0029, 0}, 0x32bb }, // U32BB # CIRCLED NUMBER FORTY SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0000, 0x0029, 0}, 0x32be }, // U32BE # CIRCLED NUMBER FORTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0000, 0x0029, 0}, 0x32ba }, // U32BA # CIRCLED NUMBER FORTY FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0000, 0x0029, 0}, 0x32bd }, // U32BD # CIRCLED NUMBER FORTY EIGHT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0029, 0, 0}, 0x2463 }, // U2463 # CIRCLED DIGIT FOUR
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0030, 0x0029, 0}, 0x32b5 }, // U32B5 # CIRCLED NUMBER FORTY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0031, 0x0029, 0}, 0x32b6 }, // U32B6 # CIRCLED NUMBER FORTY ONE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0032, 0x0029, 0}, 0x32b7 }, // U32B7 # CIRCLED NUMBER FORTY TWO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0033, 0x0029, 0}, 0x32b8 }, // U32B8 # CIRCLED NUMBER FORTY THREE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0034, 0x0029, 0}, 0x32b9 }, // U32B9 # CIRCLED NUMBER FORTY FOUR
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0035, 0x0029, 0}, 0x32ba }, // U32BA # CIRCLED NUMBER FORTY FIVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0036, 0x0029, 0}, 0x32bb }, // U32BB # CIRCLED NUMBER FORTY SIX
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0037, 0x0029, 0}, 0x32bc }, // U32BC # CIRCLED NUMBER FORTY SEVEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0038, 0x0029, 0}, 0x32bd }, // U32BD # CIRCLED NUMBER FORTY EIGHT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0034, 0x0039, 0x0029, 0}, 0x32be }, // U32BE # CIRCLED NUMBER FORTY NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0035, 0x0000, 0x0029, 0}, 0x32bf }, // U32BF # CIRCLED NUMBER FIFTY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0035, 0x0029, 0, 0}, 0x2464 }, // U2464 # CIRCLED DIGIT FIVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0035, 0x0030, 0x0029, 0}, 0x32bf }, // U32BF # CIRCLED NUMBER FIFTY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0036, 0x0029, 0, 0}, 0x2465 }, // U2465 # CIRCLED DIGIT SIX
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0037, 0x0029, 0, 0}, 0x2466 }, // U2466 # CIRCLED DIGIT SEVEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0038, 0x0029, 0, 0}, 0x2467 }, // U2467 # CIRCLED DIGIT EIGHT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0039, 0x0029, 0, 0}, 0x2468 }, // U2468 # CIRCLED DIGIT NINE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0041, 0x0029, 0, 0}, 0x24b6 }, // U24B6 # CIRCLED LATIN CAPITAL LETTER A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0042, 0x0029, 0, 0}, 0x24b7 }, // U24B7 # CIRCLED LATIN CAPITAL LETTER B
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0043, 0x0029, 0, 0}, 0x24b8 }, // U24B8 # CIRCLED LATIN CAPITAL LETTER C
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0044, 0x0029, 0, 0}, 0x24b9 }, // U24B9 # CIRCLED LATIN CAPITAL LETTER D
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0045, 0x0029, 0, 0}, 0x24ba }, // U24BA # CIRCLED LATIN CAPITAL LETTER E
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0046, 0x0029, 0, 0}, 0x24bb }, // U24BB # CIRCLED LATIN CAPITAL LETTER F
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0047, 0x0029, 0, 0}, 0x24bc }, // U24BC # CIRCLED LATIN CAPITAL LETTER G
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0048, 0x0029, 0, 0}, 0x24bd }, // U24BD # CIRCLED LATIN CAPITAL LETTER H
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0049, 0x0029, 0, 0}, 0x24be }, // U24BE # CIRCLED LATIN CAPITAL LETTER I
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x004a, 0x0029, 0, 0}, 0x24bf }, // U24BF # CIRCLED LATIN CAPITAL LETTER J
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x004b, 0x0029, 0, 0}, 0x24c0 }, // U24C0 # CIRCLED LATIN CAPITAL LETTER K
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x004c, 0x0029, 0, 0}, 0x24c1 }, // U24C1 # CIRCLED LATIN CAPITAL LETTER L
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x004d, 0x0029, 0, 0}, 0x24c2 }, // U24C2 # CIRCLED LATIN CAPITAL LETTER M
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x004e, 0x0029, 0, 0}, 0x24c3 }, // U24C3 # CIRCLED LATIN CAPITAL LETTER N
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x004f, 0x0029, 0, 0}, 0x24c4 }, // U24C4 # CIRCLED LATIN CAPITAL LETTER O
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0050, 0x0029, 0, 0}, 0x24c5 }, // U24C5 # CIRCLED LATIN CAPITAL LETTER P
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0051, 0x0029, 0, 0}, 0x24c6 }, // U24C6 # CIRCLED LATIN CAPITAL LETTER Q
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0052, 0x0029, 0, 0}, 0x24c7 }, // U24C7 # CIRCLED LATIN CAPITAL LETTER R
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0053, 0x0029, 0, 0}, 0x24c8 }, // U24C8 # CIRCLED LATIN CAPITAL LETTER S
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0054, 0x0029, 0, 0}, 0x24c9 }, // U24C9 # CIRCLED LATIN CAPITAL LETTER T
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0055, 0x0029, 0, 0}, 0x24ca }, // U24CA # CIRCLED LATIN CAPITAL LETTER U
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0056, 0x0029, 0, 0}, 0x24cb }, // U24CB # CIRCLED LATIN CAPITAL LETTER V
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0057, 0x0029, 0, 0}, 0x24cc }, // U24CC # CIRCLED LATIN CAPITAL LETTER W
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0058, 0x0029, 0, 0}, 0x24cd }, // U24CD # CIRCLED LATIN CAPITAL LETTER X
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0059, 0x0029, 0, 0}, 0x24ce }, // U24CE # CIRCLED LATIN CAPITAL LETTER Y
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x005a, 0x0029, 0, 0}, 0x24cf }, // U24CF # CIRCLED LATIN CAPITAL LETTER Z
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0061, 0x0029, 0, 0}, 0x24d0 }, // U24D0 # CIRCLED LATIN SMALL LETTER A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0062, 0x0029, 0, 0}, 0x24d1 }, // U24D1 # CIRCLED LATIN SMALL LETTER B
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0063, 0x0029, 0, 0}, 0x24d2 }, // U24D2 # CIRCLED LATIN SMALL LETTER C
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0064, 0x0029, 0, 0}, 0x24d3 }, // U24D3 # CIRCLED LATIN SMALL LETTER D
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0065, 0x0029, 0, 0}, 0x24d4 }, // U24D4 # CIRCLED LATIN SMALL LETTER E
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0066, 0x0029, 0, 0}, 0x24d5 }, // U24D5 # CIRCLED LATIN SMALL LETTER F
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0067, 0x0029, 0, 0}, 0x24d6 }, // U24D6 # CIRCLED LATIN SMALL LETTER G
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0068, 0x0029, 0, 0}, 0x24d7 }, // U24D7 # CIRCLED LATIN SMALL LETTER H
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0069, 0x0029, 0, 0}, 0x24d8 }, // U24D8 # CIRCLED LATIN SMALL LETTER I
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x006a, 0x0029, 0, 0}, 0x24d9 }, // U24D9 # CIRCLED LATIN SMALL LETTER J
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x006b, 0x0029, 0, 0}, 0x24da }, // U24DA # CIRCLED LATIN SMALL LETTER K
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x006c, 0x0029, 0, 0}, 0x24db }, // U24DB # CIRCLED LATIN SMALL LETTER L
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x006d, 0x0029, 0, 0}, 0x24dc }, // U24DC # CIRCLED LATIN SMALL LETTER M
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x006e, 0x0029, 0, 0}, 0x24dd }, // U24DD # CIRCLED LATIN SMALL LETTER N
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x006f, 0x0029, 0, 0}, 0x24de }, // U24DE # CIRCLED LATIN SMALL LETTER O
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0070, 0x0029, 0, 0}, 0x24df }, // U24DF # CIRCLED LATIN SMALL LETTER P
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0071, 0x0029, 0, 0}, 0x24e0 }, // U24E0 # CIRCLED LATIN SMALL LETTER Q
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0072, 0x0029, 0, 0}, 0x24e1 }, // U24E1 # CIRCLED LATIN SMALL LETTER R
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0073, 0x0029, 0, 0}, 0x24e2 }, // U24E2 # CIRCLED LATIN SMALL LETTER S
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0074, 0x0029, 0, 0}, 0x24e3 }, // U24E3 # CIRCLED LATIN SMALL LETTER T
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0075, 0x0029, 0, 0}, 0x24e4 }, // U24E4 # CIRCLED LATIN SMALL LETTER U
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0076, 0x0029, 0, 0}, 0x24e5 }, // U24E5 # CIRCLED LATIN SMALL LETTER V
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0077, 0x0029, 0, 0}, 0x24e6 }, // U24E6 # CIRCLED LATIN SMALL LETTER W
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0078, 0x0029, 0, 0}, 0x24e7 }, // U24E7 # CIRCLED LATIN SMALL LETTER X
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0079, 0x0029, 0, 0}, 0x24e8 }, // U24E8 # CIRCLED LATIN SMALL LETTER Y
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x007a, 0x0029, 0, 0}, 0x24e9 }, // U24E9 # CIRCLED LATIN SMALL LETTER Z
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0391, 0, 0, 0}, 0x1f09 }, // U1F09 # GREEK CAPITAL LETTER ALPHA WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0395, 0, 0, 0}, 0x1f19 }, // U1F19 # GREEK CAPITAL LETTER EPSILON WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0397, 0, 0, 0}, 0x1f29 }, // U1F29 # GREEK CAPITAL LETTER ETA WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0399, 0, 0, 0}, 0x1f39 }, // U1F39 # GREEK CAPITAL LETTER IOTA WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x039f, 0, 0, 0}, 0x1f49 }, // U1F49 # GREEK CAPITAL LETTER OMICRON WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a1, 0, 0, 0}, 0x1fec }, // U1FEC # GREEK CAPITAL LETTER RHO WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a5, 0, 0, 0}, 0x1f59 }, // U1F59 # GREEK CAPITAL LETTER UPSILON WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a9, 0, 0, 0}, 0x1f69 }, // U1F69 # GREEK CAPITAL LETTER OMEGA WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b1, 0, 0, 0}, 0x1f01 }, // U1F01 # GREEK SMALL LETTER ALPHA WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b5, 0, 0, 0}, 0x1f11 }, // U1F11 # GREEK SMALL LETTER EPSILON WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b7, 0, 0, 0}, 0x1f21 }, // U1F21 # GREEK SMALL LETTER ETA WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b9, 0, 0, 0}, 0x1f31 }, // U1F31 # GREEK SMALL LETTER IOTA WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03bf, 0, 0, 0}, 0x1f41 }, // U1F41 # GREEK SMALL LETTER OMICRON WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c1, 0, 0, 0}, 0x1fe5 }, // U1FE5 # GREEK SMALL LETTER RHO WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c5, 0, 0, 0}, 0x1f51 }, // U1F51 # GREEK SMALL LETTER UPSILON WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c9, 0, 0, 0}, 0x1f61 }, // U1F61 # GREEK SMALL LETTER OMEGA WITH DASIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1100, 0x0029, 0, 0}, 0x3260 }, // U3260 # CIRCLED HANGUL KIYEOK
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1100, 0x1161, 0x0029, 0}, 0x326e }, // U326E # CIRCLED HANGUL KIYEOK A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1102, 0x0029, 0, 0}, 0x3261 }, // U3261 # CIRCLED HANGUL NIEUN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1102, 0x1161, 0x0029, 0}, 0x326f }, // U326F # CIRCLED HANGUL NIEUN A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1103, 0x0029, 0, 0}, 0x3262 }, // U3262 # CIRCLED HANGUL TIKEUT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1103, 0x1161, 0x0029, 0}, 0x3270 }, // U3270 # CIRCLED HANGUL TIKEUT A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1105, 0x0029, 0, 0}, 0x3263 }, // U3263 # CIRCLED HANGUL RIEUL
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1105, 0x1161, 0x0029, 0}, 0x3271 }, // U3271 # CIRCLED HANGUL RIEUL A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1106, 0x0029, 0, 0}, 0x3264 }, // U3264 # CIRCLED HANGUL MIEUM
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1106, 0x1161, 0x0029, 0}, 0x3272 }, // U3272 # CIRCLED HANGUL MIEUM A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1107, 0x0029, 0, 0}, 0x3265 }, // U3265 # CIRCLED HANGUL PIEUP
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1107, 0x1161, 0x0029, 0}, 0x3273 }, // U3273 # CIRCLED HANGUL PIEUP A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1109, 0x0029, 0, 0}, 0x3266 }, // U3266 # CIRCLED HANGUL SIOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1109, 0x1161, 0x0029, 0}, 0x3274 }, // U3274 # CIRCLED HANGUL SIOS A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x110b, 0x0029, 0, 0}, 0x3267 }, // U3267 # CIRCLED HANGUL IEUNG
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x110b, 0x1161, 0x0029, 0}, 0x3275 }, // U3275 # CIRCLED HANGUL IEUNG A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x110c, 0x0029, 0, 0}, 0x3268 }, // U3268 # CIRCLED HANGUL CIEUC
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x110c, 0x1161, 0x0029, 0}, 0x3276 }, // U3276 # CIRCLED HANGUL CIEUC A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x110e, 0x0029, 0, 0}, 0x3269 }, // U3269 # CIRCLED HANGUL CHIEUCH
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x110e, 0x1161, 0x0029, 0}, 0x3277 }, // U3277 # CIRCLED HANGUL CHIEUCH A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x110f, 0x0029, 0, 0}, 0x326a }, // U326A # CIRCLED HANGUL KHIEUKH
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x110f, 0x1161, 0x0029, 0}, 0x3278 }, // U3278 # CIRCLED HANGUL KHIEUKH A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1110, 0x0029, 0, 0}, 0x326b }, // U326B # CIRCLED HANGUL THIEUTH
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1110, 0x1161, 0x0029, 0}, 0x3279 }, // U3279 # CIRCLED HANGUL THIEUTH A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1111, 0x0029, 0, 0}, 0x326c }, // U326C # CIRCLED HANGUL PHIEUPH
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1111, 0x1161, 0x0029, 0}, 0x327a }, // U327A # CIRCLED HANGUL PHIEUPH A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1112, 0x0029, 0, 0}, 0x326d }, // U326D # CIRCLED HANGUL HIEUH
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x1112, 0x1161, 0x0029, 0}, 0x327b }, // U327B # CIRCLED HANGUL HIEUH A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30a2, 0x0029, 0, 0}, 0x32d0 }, // U32D0 # CIRCLED KATAKANA A
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30a4, 0x0029, 0, 0}, 0x32d1 }, // U32D1 # CIRCLED KATAKANA I
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30a6, 0x0029, 0, 0}, 0x32d2 }, // U32D2 # CIRCLED KATAKANA U
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30a8, 0x0029, 0, 0}, 0x32d3 }, // U32D3 # CIRCLED KATAKANA E
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30aa, 0x0029, 0, 0}, 0x32d4 }, // U32D4 # CIRCLED KATAKANA O
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30ab, 0x0029, 0, 0}, 0x32d5 }, // U32D5 # CIRCLED KATAKANA KA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30ad, 0x0029, 0, 0}, 0x32d6 }, // U32D6 # CIRCLED KATAKANA KI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30af, 0x0029, 0, 0}, 0x32d7 }, // U32D7 # CIRCLED KATAKANA KU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30b1, 0x0029, 0, 0}, 0x32d8 }, // U32D8 # CIRCLED KATAKANA KE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30b3, 0x0029, 0, 0}, 0x32d9 }, // U32D9 # CIRCLED KATAKANA KO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30b5, 0x0029, 0, 0}, 0x32da }, // U32DA # CIRCLED KATAKANA SA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30b7, 0x0029, 0, 0}, 0x32db }, // U32DB # CIRCLED KATAKANA SI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30b9, 0x0029, 0, 0}, 0x32dc }, // U32DC # CIRCLED KATAKANA SU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30bb, 0x0029, 0, 0}, 0x32dd }, // U32DD # CIRCLED KATAKANA SE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30bd, 0x0029, 0, 0}, 0x32de }, // U32DE # CIRCLED KATAKANA SO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30bf, 0x0029, 0, 0}, 0x32df }, // U32DF # CIRCLED KATAKANA TA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30c1, 0x0029, 0, 0}, 0x32e0 }, // U32E0 # CIRCLED KATAKANA TI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30c4, 0x0029, 0, 0}, 0x32e1 }, // U32E1 # CIRCLED KATAKANA TU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30c6, 0x0029, 0, 0}, 0x32e2 }, // U32E2 # CIRCLED KATAKANA TE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30c8, 0x0029, 0, 0}, 0x32e3 }, // U32E3 # CIRCLED KATAKANA TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30ca, 0x0029, 0, 0}, 0x32e4 }, // U32E4 # CIRCLED KATAKANA NA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30cb, 0x0029, 0, 0}, 0x32e5 }, // U32E5 # CIRCLED KATAKANA NI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30cc, 0x0029, 0, 0}, 0x32e6 }, // U32E6 # CIRCLED KATAKANA NU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30cd, 0x0029, 0, 0}, 0x32e7 }, // U32E7 # CIRCLED KATAKANA NE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30ce, 0x0029, 0, 0}, 0x32e8 }, // U32E8 # CIRCLED KATAKANA NO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30cf, 0x0029, 0, 0}, 0x32e9 }, // U32E9 # CIRCLED KATAKANA HA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30d2, 0x0029, 0, 0}, 0x32ea }, // U32EA # CIRCLED KATAKANA HI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30d5, 0x0029, 0, 0}, 0x32eb }, // U32EB # CIRCLED KATAKANA HU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30d8, 0x0029, 0, 0}, 0x32ec }, // U32EC # CIRCLED KATAKANA HE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30db, 0x0029, 0, 0}, 0x32ed }, // U32ED # CIRCLED KATAKANA HO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30de, 0x0029, 0, 0}, 0x32ee }, // U32EE # CIRCLED KATAKANA MA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30df, 0x0029, 0, 0}, 0x32ef }, // U32EF # CIRCLED KATAKANA MI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30e0, 0x0029, 0, 0}, 0x32f0 }, // U32F0 # CIRCLED KATAKANA MU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30e1, 0x0029, 0, 0}, 0x32f1 }, // U32F1 # CIRCLED KATAKANA ME
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30e2, 0x0029, 0, 0}, 0x32f2 }, // U32F2 # CIRCLED KATAKANA MO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30e4, 0x0029, 0, 0}, 0x32f3 }, // U32F3 # CIRCLED KATAKANA YA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30e6, 0x0029, 0, 0}, 0x32f4 }, // U32F4 # CIRCLED KATAKANA YU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30e8, 0x0029, 0, 0}, 0x32f5 }, // U32F5 # CIRCLED KATAKANA YO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30e9, 0x0029, 0, 0}, 0x32f6 }, // U32F6 # CIRCLED KATAKANA RA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30ea, 0x0029, 0, 0}, 0x32f7 }, // U32F7 # CIRCLED KATAKANA RI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30eb, 0x0029, 0, 0}, 0x32f8 }, // U32F8 # CIRCLED KATAKANA RU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30ec, 0x0029, 0, 0}, 0x32f9 }, // U32F9 # CIRCLED KATAKANA RE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30ed, 0x0029, 0, 0}, 0x32fa }, // U32FA # CIRCLED KATAKANA RO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30ef, 0x0029, 0, 0}, 0x32fb }, // U32FB # CIRCLED KATAKANA WA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30f0, 0x0029, 0, 0}, 0x32fc }, // U32FC # CIRCLED KATAKANA WI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30f1, 0x0029, 0, 0}, 0x32fd }, // U32FD # CIRCLED KATAKANA WE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x30f2, 0x0029, 0, 0}, 0x32fe }, // U32FE # CIRCLED KATAKANA WO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x4e00, 0x0029, 0, 0}, 0x3280 }, // U3280 # CIRCLED IDEOGRAPH ONE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x4e03, 0x0029, 0, 0}, 0x3286 }, // U3286 # CIRCLED IDEOGRAPH SEVEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x4e09, 0x0029, 0, 0}, 0x3282 }, // U3282 # CIRCLED IDEOGRAPH THREE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x4e0a, 0x0029, 0, 0}, 0x32a4 }, // U32A4 # CIRCLED IDEOGRAPH HIGH
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x4e0b, 0x0029, 0, 0}, 0x32a6 }, // U32A6 # CIRCLED IDEOGRAPH LOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x4e2d, 0x0029, 0, 0}, 0x32a5 }, // U32A5 # CIRCLED IDEOGRAPH CENTRE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x4e5d, 0x0029, 0, 0}, 0x3288 }, // U3288 # CIRCLED IDEOGRAPH NINE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x4e8c, 0x0029, 0, 0}, 0x3281 }, // U3281 # CIRCLED IDEOGRAPH TWO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x4e94, 0x0029, 0, 0}, 0x3284 }, // U3284 # CIRCLED IDEOGRAPH FIVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x4f01, 0x0029, 0, 0}, 0x32ad }, // U32AD # CIRCLED IDEOGRAPH ENTERPRISE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x4f11, 0x0029, 0, 0}, 0x32a1 }, // U32A1 # CIRCLED IDEOGRAPH REST
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x512a, 0x0029, 0, 0}, 0x329d }, // U329D # CIRCLED IDEOGRAPH EXCELLENT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x516b, 0x0029, 0, 0}, 0x3287 }, // U3287 # CIRCLED IDEOGRAPH EIGHT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x516d, 0x0029, 0, 0}, 0x3285 }, // U3285 # CIRCLED IDEOGRAPH SIX
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x5199, 0x0029, 0, 0}, 0x32a2 }, // U32A2 # CIRCLED IDEOGRAPH COPY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x52b4, 0x0029, 0, 0}, 0x3298 }, // U3298 # CIRCLED IDEOGRAPH LABOR
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x533b, 0x0029, 0, 0}, 0x32a9 }, // U32A9 # CIRCLED IDEOGRAPH MEDICINE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x5341, 0x0029, 0, 0}, 0x3289 }, // U3289 # CIRCLED IDEOGRAPH TEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x5354, 0x0029, 0, 0}, 0x32af }, // U32AF # CIRCLED IDEOGRAPH ALLIANCE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x5370, 0x0029, 0, 0}, 0x329e }, // U329E # CIRCLED IDEOGRAPH PRINT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x53f3, 0x0029, 0, 0}, 0x32a8 }, // U32A8 # CIRCLED IDEOGRAPH RIGHT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x540d, 0x0029, 0, 0}, 0x3294 }, // U3294 # CIRCLED IDEOGRAPH NAME
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x56db, 0x0029, 0, 0}, 0x3283 }, // U3283 # CIRCLED IDEOGRAPH FOUR
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x571f, 0x0029, 0, 0}, 0x328f }, // U328F # CIRCLED IDEOGRAPH EARTH
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x591c, 0x0029, 0, 0}, 0x32b0 }, // U32B0 # CIRCLED IDEOGRAPH NIGHT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x5973, 0x0029, 0, 0}, 0x329b }, // U329B # CIRCLED IDEOGRAPH FEMALE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x5b66, 0x0029, 0, 0}, 0x32ab }, // U32AB # CIRCLED IDEOGRAPH STUDY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x5b97, 0x0029, 0, 0}, 0x32aa }, // U32AA # CIRCLED IDEOGRAPH RELIGION
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x5de6, 0x0029, 0, 0}, 0x32a7 }, // U32A7 # CIRCLED IDEOGRAPH LEFT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x65e5, 0x0029, 0, 0}, 0x3290 }, // U3290 # CIRCLED IDEOGRAPH SUN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x6708, 0x0029, 0, 0}, 0x328a }, // U328A # CIRCLED IDEOGRAPH MOON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x6709, 0x0029, 0, 0}, 0x3292 }, // U3292 # CIRCLED IDEOGRAPH HAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x6728, 0x0029, 0, 0}, 0x328d }, // U328D # CIRCLED IDEOGRAPH WOOD
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x682a, 0x0029, 0, 0}, 0x3291 }, // U3291 # CIRCLED IDEOGRAPH STOCK
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x6b63, 0x0029, 0, 0}, 0x32a3 }, // U32A3 # CIRCLED IDEOGRAPH CORRECT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x6c34, 0x0029, 0, 0}, 0x328c }, // U328C # CIRCLED IDEOGRAPH WATER
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x6ce8, 0x0029, 0, 0}, 0x329f }, // U329F # CIRCLED IDEOGRAPH ATTENTION
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x706b, 0x0029, 0, 0}, 0x328b }, // U328B # CIRCLED IDEOGRAPH FIRE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x7279, 0x0029, 0, 0}, 0x3295 }, // U3295 # CIRCLED IDEOGRAPH SPECIAL
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x7537, 0x0029, 0, 0}, 0x329a }, // U329A # CIRCLED IDEOGRAPH MALE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x76e3, 0x0029, 0, 0}, 0x32ac }, // U32AC # CIRCLED IDEOGRAPH SUPERVISE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x793e, 0x0029, 0, 0}, 0x3293 }, // U3293 # CIRCLED IDEOGRAPH SOCIETY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x795d, 0x0029, 0, 0}, 0x3297 }, // U3297 # CIRCLED IDEOGRAPH CONGRATULATION
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x79d8, 0x0029, 0, 0}, 0x3299 }, // U3299 # CIRCLED IDEOGRAPH SECRET
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x8ca1, 0x0029, 0, 0}, 0x3296 }, // U3296 # CIRCLED IDEOGRAPH FINANCIAL
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x8cc7, 0x0029, 0, 0}, 0x32ae }, // U32AE # CIRCLED IDEOGRAPH RESOURCE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x9069, 0x0029, 0, 0}, 0x329c }, // U329C # CIRCLED IDEOGRAPH SUITABLE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x91d1, 0x0029, 0, 0}, 0x328e }, // U328E # CIRCLED IDEOGRAPH METAL
++    { {UNITIZE(Qt::Key_Multi_key), 0x0028, 0x9805, 0x0029, 0, 0}, 0x32a0 }, // U32A0 # CIRCLED IDEOGRAPH ITEM
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0029, 0, 0, 0}, 0x005d }, // bracketright
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x002d, 0, 0, 0}, 0x007d }, // braceright
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0391, 0, 0, 0}, 0x1f08 }, // U1F08 # GREEK CAPITAL LETTER ALPHA WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0395, 0, 0, 0}, 0x1f18 }, // U1F18 # GREEK CAPITAL LETTER EPSILON WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0397, 0, 0, 0}, 0x1f28 }, // U1F28 # GREEK CAPITAL LETTER ETA WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0399, 0, 0, 0}, 0x1f38 }, // U1F38 # GREEK CAPITAL LETTER IOTA WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x039f, 0, 0, 0}, 0x1f48 }, // U1F48 # GREEK CAPITAL LETTER OMICRON WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03a9, 0, 0, 0}, 0x1f68 }, // U1F68 # GREEK CAPITAL LETTER OMEGA WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b1, 0, 0, 0}, 0x1f00 }, // U1F00 # GREEK SMALL LETTER ALPHA WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b5, 0, 0, 0}, 0x1f10 }, // U1F10 # GREEK SMALL LETTER EPSILON WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b7, 0, 0, 0}, 0x1f20 }, // U1F20 # GREEK SMALL LETTER ETA WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b9, 0, 0, 0}, 0x1f30 }, // U1F30 # GREEK SMALL LETTER IOTA WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03bf, 0, 0, 0}, 0x1f40 }, // U1F40 # GREEK SMALL LETTER OMICRON WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c1, 0, 0, 0}, 0x1fe4 }, // U1FE4 # GREEK SMALL LETTER RHO WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c5, 0, 0, 0}, 0x1f50 }, // U1F50 # GREEK SMALL LETTER UPSILON WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c9, 0, 0, 0}, 0x1f60 }, // U1F60 # GREEK SMALL LETTER OMEGA WITH PSILI
++    { {UNITIZE(Qt::Key_Multi_key), 0x002b, 0x002b, 0, 0, 0}, 0x0023 }, // numbersign
++    { {UNITIZE(Qt::Key_Multi_key), 0x002b, 0x002d, 0, 0, 0}, 0x00b1 }, // plusminus
++    { {UNITIZE(Qt::Key_Multi_key), 0x002b, 0x004f, 0, 0, 0}, 0x01a0 }, // U01A0 # LATIN CAPITAL LETTER O WITH HORN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0055, 0, 0, 0}, 0x01af }, // U01AF # LATIN CAPITAL LETTER U WITH HORN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002b, 0x006f, 0, 0, 0}, 0x01a1 }, // U01A1 # LATIN SMALL LETTER O WITH HORN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0075, 0, 0, 0}, 0x01b0 }, // U01B0 # LATIN SMALL LETTER U WITH HORN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0020, 0, 0, 0}, 0x00b8 }, // cedilla
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0022, 0, 0, 0}, 0x201e }, // U201e # DOUBLE LOW-9 QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0027, 0, 0, 0}, 0x201a }, // U201a # SINGLE LOW-9 QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x002d, 0, 0, 0}, 0x00ac }, // U00AC # NOT SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0043, 0, 0, 0}, 0x00c7 }, // U00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0044, 0, 0, 0}, 0x1e10 }, // U1E10 # LATIN CAPITAL LETTER D WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0045, 0, 0, 0}, 0x0228 }, // U0228 # LATIN CAPITAL LETTER E WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0047, 0, 0, 0}, 0x0122 }, // U0122 # LATIN CAPITAL LETTER G WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0048, 0, 0, 0}, 0x1e28 }, // U1E28 # LATIN CAPITAL LETTER H WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x004b, 0, 0, 0}, 0x0136 }, // U0136 # LATIN CAPITAL LETTER K WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x004c, 0, 0, 0}, 0x013b }, // U013B # LATIN CAPITAL LETTER L WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x004e, 0, 0, 0}, 0x0145 }, // U0145 # LATIN CAPITAL LETTER N WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0052, 0, 0, 0}, 0x0156 }, // U0156 # LATIN CAPITAL LETTER R WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0053, 0, 0, 0}, 0x015e }, // U015E # LATIN CAPITAL LETTER S WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0054, 0, 0, 0}, 0x0162 }, // U0162 # LATIN CAPITAL LETTER T WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0063, 0, 0, 0}, 0x00e7 }, // U00E7 # LATIN SMALL LETTER C WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0064, 0, 0, 0}, 0x1e11 }, // U1E11 # LATIN SMALL LETTER D WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0065, 0, 0, 0}, 0x0229 }, // U0229 # LATIN SMALL LETTER E WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0067, 0, 0, 0}, 0x0123 }, // U0123 # LATIN SMALL LETTER G WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0068, 0, 0, 0}, 0x1e29 }, // U1E29 # LATIN SMALL LETTER H WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x006b, 0, 0, 0}, 0x0137 }, // U0137 # LATIN SMALL LETTER K WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x006c, 0, 0, 0}, 0x013c }, // U013C # LATIN SMALL LETTER L WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x006e, 0, 0, 0}, 0x0146 }, // U0146 # LATIN SMALL LETTER N WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0072, 0, 0, 0}, 0x0157 }, // U0157 # LATIN SMALL LETTER R WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0073, 0, 0, 0}, 0x015f }, // U015F # LATIN SMALL LETTER S WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0074, 0, 0, 0}, 0x0163 }, // U0163 # LATIN SMALL LETTER T WITH CEDILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x002d, 0x0020, 0, 0, 0}, 0x007e }, // asciitilde
++    { {UNITIZE(Qt::Key_Multi_key), 0x002d, 0x0028, 0, 0, 0}, 0x007b }, // braceleft
++    { {UNITIZE(Qt::Key_Multi_key), 0x002d, 0x0029, 0, 0, 0}, 0x007d }, // braceright
++    { {UNITIZE(Qt::Key_Multi_key), 0x002d, 0x002c, 0, 0, 0}, 0x00ac }, // U00AC # NOT SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002d, 0x002d, 0x002d, 0, 0}, 0x2014 }, // U2014 # EM DASH
++    { {UNITIZE(Qt::Key_Multi_key), 0x002d, 0x002d, 0x002e, 0, 0}, 0x2013 }, // U2013 # EN DASH
++    { {UNITIZE(Qt::Key_Multi_key), 0x002d, 0x003a, 0, 0, 0}, 0x00f7 }, // U00F7 # DIVISION SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002d, 0x0044, 0, 0, 0}, 0x0110 }, // Dstroke
++    { {UNITIZE(Qt::Key_Multi_key), 0x002d, 0x004c, 0, 0, 0}, 0x00a3 }, // U00a3 # POUND SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002d, 0x0064, 0, 0, 0}, 0x0111 }, // dstroke
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0000, 0x0053, 0, 0}, 0x1e68 }, // U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0000, 0x0053, 0, 0}, 0x1e64 }, // U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0000, 0x0073, 0, 0}, 0x1e69 }, // U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0000, 0x0073, 0, 0}, 0x1e65 }, // U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0021, 0x0053, 0, 0}, 0x1e68 }, // U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0021, 0x0073, 0, 0}, 0x1e69 }, // U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0027, 0x0053, 0, 0}, 0x1e64 }, // U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0027, 0x0073, 0, 0}, 0x1e65 }, // U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x002e, 0, 0, 0}, 0x00b7 }, // U00B7
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x003c, 0, 0, 0}, 0x2039 }, // U2039
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x003e, 0, 0, 0}, 0x203a }, // U203a
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0041, 0, 0, 0}, 0x0226 }, // U0226 # LATIN CAPITAL LETTER A WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0042, 0, 0, 0}, 0x1e02 }, // U1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0043, 0, 0, 0}, 0x010a }, // U010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0044, 0, 0, 0}, 0x1e0a }, // U1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0045, 0, 0, 0}, 0x0116 }, // U0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0046, 0, 0, 0}, 0x1e1e }, // U1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0047, 0, 0, 0}, 0x0120 }, // U0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0048, 0, 0, 0}, 0x1e22 }, // U1E22 # LATIN CAPITAL LETTER H WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0049, 0, 0, 0}, 0x0130 }, // U0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x004d, 0, 0, 0}, 0x1e40 }, // U1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x004e, 0, 0, 0}, 0x1e44 }, // U1E44 # LATIN CAPITAL LETTER N WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x004f, 0, 0, 0}, 0x022e }, // U022E # LATIN CAPITAL LETTER O WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0050, 0, 0, 0}, 0x1e56 }, // U1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0052, 0, 0, 0}, 0x1e58 }, // U1E58 # LATIN CAPITAL LETTER R WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0053, 0, 0, 0}, 0x1e60 }, // U1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0054, 0, 0, 0}, 0x1e6a }, // U1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0057, 0, 0, 0}, 0x1e86 }, // U1E86 # LATIN CAPITAL LETTER W WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0058, 0, 0, 0}, 0x1e8a }, // U1E8A # LATIN CAPITAL LETTER X WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0059, 0, 0, 0}, 0x1e8e }, // U1E8E # LATIN CAPITAL LETTER Y WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x005a, 0, 0, 0}, 0x017b }, // U017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0061, 0, 0, 0}, 0x0227 }, // U0227 # LATIN SMALL LETTER A WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0062, 0, 0, 0}, 0x1e03 }, // U1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0063, 0, 0, 0}, 0x010b }, // U010B # LATIN SMALL LETTER C WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0063, 0x0053, 0, 0}, 0x1e66 }, // U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0063, 0x0073, 0, 0}, 0x1e67 }, // U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0064, 0, 0, 0}, 0x1e0b }, // U1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0065, 0, 0, 0}, 0x0117 }, // U0117 # LATIN SMALL LETTER E WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0066, 0, 0, 0}, 0x1e1f }, // U1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0067, 0, 0, 0}, 0x0121 }, // U0121 # LATIN SMALL LETTER G WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0068, 0, 0, 0}, 0x1e23 }, // U1E23 # LATIN SMALL LETTER H WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x006d, 0, 0, 0}, 0x1e41 }, // U1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x006e, 0, 0, 0}, 0x1e45 }, // U1E45 # LATIN SMALL LETTER N WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x006f, 0, 0, 0}, 0x022f }, // U022F # LATIN SMALL LETTER O WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0070, 0, 0, 0}, 0x1e57 }, // U1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0072, 0, 0, 0}, 0x1e59 }, // U1E59 # LATIN SMALL LETTER R WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0073, 0, 0, 0}, 0x1e61 }, // U1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0074, 0, 0, 0}, 0x1e6b }, // U1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0077, 0, 0, 0}, 0x1e87 }, // U1E87 # LATIN SMALL LETTER W WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0078, 0, 0, 0}, 0x1e8b }, // U1E8B # LATIN SMALL LETTER X WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0079, 0, 0, 0}, 0x1e8f }, // U1E8F # LATIN SMALL LETTER Y WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x007a, 0, 0, 0}, 0x017c }, // U017C # LATIN SMALL LETTER Z WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x00b4, 0x0053, 0, 0}, 0x1e64 }, // U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x00b4, 0x0073, 0, 0}, 0x1e65 }, // U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x015a, 0, 0, 0}, 0x1e64 }, // U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x015b, 0, 0, 0}, 0x1e65 }, // U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0160, 0, 0, 0}, 0x1e66 }, // U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0161, 0, 0, 0}, 0x1e67 }, // U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x017f, 0, 0, 0}, 0x1e9b }, // U1E9B # LATIN SMALL LETTER LONG S WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x1e62, 0, 0, 0}, 0x1e68 }, // U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, 0x1e63, 0, 0, 0}, 0x1e69 }, // U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, UNITIZE(Qt::Key_Dead_Acute), 0x0053, 0, 0}, 0x1e64 }, // U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, UNITIZE(Qt::Key_Dead_Acute), 0x0073, 0, 0}, 0x1e65 }, // U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, UNITIZE(Qt::Key_Dead_Caron), 0x0053, 0, 0}, 0x1e66 }, // U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, UNITIZE(Qt::Key_Dead_Caron), 0x0073, 0, 0}, 0x1e67 }, // U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, UNITIZE(Qt::Key_Dead_Belowdot), 0x0053, 0, 0}, 0x1e68 }, // U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002e, UNITIZE(Qt::Key_Dead_Belowdot), 0x0073, 0, 0}, 0x1e69 }, // U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x002f, 0, 0, 0}, 0x005c }, // backslash
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x003c, 0, 0, 0}, 0x005c }, // backslash
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0043, 0, 0, 0}, 0x20a1 }, // U20a1 # COLON SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0043, 0, 0, 0}, 0x00a2 }, // U00A2 # CENT SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0044, 0, 0, 0}, 0x0110 }, // U0110 # LATIN CAPITAL LETTER D WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0047, 0, 0, 0}, 0x01e4 }, // U01E4 # LATIN CAPITAL LETTER G WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0048, 0, 0, 0}, 0x0126 }, // U0126 # LATIN CAPITAL LETTER H WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0049, 0, 0, 0}, 0x0197 }, // U0197 # LATIN CAPITAL LETTER I WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x004c, 0, 0, 0}, 0x0141 }, // U0141 # LATIN CAPITAL LETTER L WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x004f, 0, 0, 0}, 0x00d8 }, // U00D8 # LATIN CAPITAL LETTER O WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0054, 0, 0, 0}, 0x0166 }, // U0166 # LATIN CAPITAL LETTER T WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x005a, 0, 0, 0}, 0x01b5 }, // U01B5 # LATIN CAPITAL LETTER Z WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x005e, 0, 0, 0}, 0x007c }, // bar
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0062, 0, 0, 0}, 0x0180 }, // U0180 # LATIN SMALL LETTER B WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0063, 0, 0, 0}, 0x00a2 }, // U00A2 # CENT SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0064, 0, 0, 0}, 0x0111 }, // U0111 # LATIN SMALL LETTER D WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0067, 0, 0, 0}, 0x01e5 }, // U01E5 # LATIN SMALL LETTER G WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0068, 0, 0, 0}, 0x0127 }, // U0127 # LATIN SMALL LETTER H WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0069, 0, 0, 0}, 0x0268 }, // U0268 # LATIN SMALL LETTER I WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x006c, 0, 0, 0}, 0x0142 }, // U0142 # LATIN SMALL LETTER L WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x006d, 0, 0, 0}, 0x20a5 }, // U20a5 # MILL SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x006f, 0, 0, 0}, 0x00f8 }, // U00F8 # LATIN SMALL LETTER O WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0074, 0, 0, 0}, 0x0167 }, // U0167 # LATIN SMALL LETTER T WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x007a, 0, 0, 0}, 0x01b6 }, // U01B6 # LATIN SMALL LETTER Z WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0294, 0, 0, 0}, 0x02a1 }, // U02A1 # LATIN LETTER GLOTTAL STOP WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0413, 0, 0, 0}, 0x0492 }, // U0492 # CYRILLIC CAPITAL LETTER GHE WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x041a, 0, 0, 0}, 0x049e }, // U049E # CYRILLIC CAPITAL LETTER KA WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x0433, 0, 0, 0}, 0x0493 }, // U0493 # CYRILLIC SMALL LETTER GHE WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x043a, 0, 0, 0}, 0x049f }, // U049F # CYRILLIC SMALL LETTER KA WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x04ae, 0, 0, 0}, 0x04b0 }, // U04B0 # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x04af, 0, 0, 0}, 0x04b1 }, // U04B1 # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x2190, 0, 0, 0}, 0x219a }, // U219A # LEFTWARDS ARROW WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x2192, 0, 0, 0}, 0x219b }, // U219B # RIGHTWARDS ARROW WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x002f, 0x2194, 0, 0, 0}, 0x21ae }, // U21AE # LEFT RIGHT ARROW WITH STROKE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0031, 0x0032, 0, 0, 0}, 0x00bd }, // U00BD # VULGAR FRACTION ONE HALF
++    { {UNITIZE(Qt::Key_Multi_key), 0x0031, 0x0034, 0, 0, 0}, 0x00bc }, // U00BC # VULGAR FRACTION ONE QUARTER
++    { {UNITIZE(Qt::Key_Multi_key), 0x0033, 0x0034, 0, 0, 0}, 0x00be }, // U00BE # VULGAR FRACTION THREE QUARTERS
++    { {UNITIZE(Qt::Key_Multi_key), 0x003a, 0x002d, 0, 0, 0}, 0x00f7 }, // U00F7 # DIVISION SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x003b, 0x0041, 0, 0, 0}, 0x0104 }, // U0104 # LATIN CAPITAL LETTER A WITH OGONEK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003b, 0x0045, 0, 0, 0}, 0x0118 }, // U0118 # LATIN CAPITAL LETTER E WITH OGONEK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003b, 0x0049, 0, 0, 0}, 0x012e }, // U012E # LATIN CAPITAL LETTER I WITH OGONEK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003b, 0x004f, 0, 0, 0}, 0x01ea }, // U01EA # LATIN CAPITAL LETTER O WITH OGONEK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003b, 0x0055, 0, 0, 0}, 0x0172 }, // U0172 # LATIN CAPITAL LETTER U WITH OGONEK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003b, 0x0061, 0, 0, 0}, 0x0105 }, // U0105 # LATIN SMALL LETTER A WITH OGONEK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003b, 0x0065, 0, 0, 0}, 0x0119 }, // U0119 # LATIN SMALL LETTER E WITH OGONEK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003b, 0x0069, 0, 0, 0}, 0x012f }, // U012F # LATIN SMALL LETTER I WITH OGONEK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003b, 0x006f, 0, 0, 0}, 0x01eb }, // U01EB # LATIN SMALL LETTER O WITH OGONEK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003b, 0x0075, 0, 0, 0}, 0x0173 }, // U0173 # LATIN SMALL LETTER U WITH OGONEK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003c, 0x0022, 0, 0, 0}, 0x201c }, // U201c # LEFT DOUBLE QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003c, 0x0027, 0, 0, 0}, 0x2018 }, // U2018 # LEFT SINGLE QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003c, 0x002f, 0, 0, 0}, 0x005c }, // backslash
++    { {UNITIZE(Qt::Key_Multi_key), 0x003c, 0x003c, 0, 0, 0}, 0x00ab }, // guillemotleft # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003c, 0x0338, 0, 0, 0}, 0x226e }, // U226E # NOT LESS-THAN
++    { {UNITIZE(Qt::Key_Multi_key), 0x003c, 0x0338, 0, 0, 0}, 0x226e }, // U226E # NOT LESS-THAN
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x0043, 0, 0, 0}, 0x20ac }, // EuroSign # EURO SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x0045, 0, 0, 0}, 0x20ac }, // EuroSign # EURO SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x004c, 0, 0, 0}, 0x20a4 }, // U20a4 # LIRA SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x004e, 0, 0, 0}, 0x20a6 }, // U20a6 # NAIRA SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x004f, 0, 0, 0}, 0x0150 }, // U0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x0055, 0, 0, 0}, 0x0170 }, // U0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x0057, 0, 0, 0}, 0x20a9 }, // U20a9 # WON SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x0059, 0, 0, 0}, 0x00a5 }, // yen
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x006f, 0, 0, 0}, 0x0151 }, // U0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x0075, 0, 0, 0}, 0x0171 }, // U0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x0338, 0, 0, 0}, 0x2260 }, // U2260 # NOT EQUAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x0423, 0, 0, 0}, 0x04f2 }, // U04F2 # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003d, 0x0443, 0, 0, 0}, 0x04f3 }, // U04F3 # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003e, 0x0020, 0, 0, 0}, 0x005e }, // asciicircum
++    { {UNITIZE(Qt::Key_Multi_key), 0x003e, 0x0022, 0, 0, 0}, 0x201d }, // U201d # RIGHT DOUBLE QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003e, 0x0027, 0, 0, 0}, 0x2019 }, // U2019 # RIGHT SINGLE QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003e, 0x003e, 0, 0, 0}, 0x00bb }, // guillemotright # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x003e, 0x0338, 0, 0, 0}, 0x226f }, // U226F # NOT GREATER-THAN
++    { {UNITIZE(Qt::Key_Multi_key), 0x003e, 0x0338, 0, 0, 0}, 0x226f }, // U226F # NOT GREATER-THAN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0000, 0, 0, 0}, 0x1eed }, // U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0000, 0, 0, 0}, 0x1eec }, // U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0000, 0, 0, 0}, 0x1edf }, // U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0000, 0, 0, 0}, 0x1ede }, // U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x002b, 0x004f, 0, 0}, 0x1ede }, // U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x002b, 0x0055, 0, 0}, 0x1eec }, // U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x002b, 0x006f, 0, 0}, 0x1edf }, // U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x002b, 0x0075, 0, 0}, 0x1eed }, // U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x003f, 0, 0, 0}, 0x00bf }, // questiondown
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0041, 0, 0, 0}, 0x1ea2 }, // U1EA2 # LATIN CAPITAL LETTER A WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0045, 0, 0, 0}, 0x1eba }, // U1EBA # LATIN CAPITAL LETTER E WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0049, 0, 0, 0}, 0x1ec8 }, // U1EC8 # LATIN CAPITAL LETTER I WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x004f, 0, 0, 0}, 0x1ece }, // U1ECE # LATIN CAPITAL LETTER O WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0055, 0, 0, 0}, 0x1ee6 }, // U1EE6 # LATIN CAPITAL LETTER U WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0055, 0x0041, 0, 0}, 0x1eb2 }, // U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0055, 0x0061, 0, 0}, 0x1eb3 }, // U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0059, 0, 0, 0}, 0x1ef6 }, // U1EF6 # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x005e, 0x0041, 0, 0}, 0x1ea8 }, // U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x005e, 0x0045, 0, 0}, 0x1ec2 }, // U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x005e, 0x004f, 0, 0}, 0x1ed4 }, // U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x005e, 0x0061, 0, 0}, 0x1ea9 }, // U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x005e, 0x0065, 0, 0}, 0x1ec3 }, // U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x005e, 0x006f, 0, 0}, 0x1ed5 }, // U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0061, 0, 0, 0}, 0x1ea3 }, // U1EA3 # LATIN SMALL LETTER A WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0062, 0x0041, 0, 0}, 0x1eb2 }, // U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0062, 0x0061, 0, 0}, 0x1eb3 }, // U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0065, 0, 0, 0}, 0x1ebb }, // U1EBB # LATIN SMALL LETTER E WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0069, 0, 0, 0}, 0x1ec9 }, // U1EC9 # LATIN SMALL LETTER I WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x006f, 0, 0, 0}, 0x1ecf }, // U1ECF # LATIN SMALL LETTER O WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0075, 0, 0, 0}, 0x1ee7 }, // U1EE7 # LATIN SMALL LETTER U WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0079, 0, 0, 0}, 0x1ef7 }, // U1EF7 # LATIN SMALL LETTER Y WITH HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x00c2, 0, 0, 0}, 0x1ea8 }, // U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x00ca, 0, 0, 0}, 0x1ec2 }, // U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x00d4, 0, 0, 0}, 0x1ed4 }, // U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x00e2, 0, 0, 0}, 0x1ea9 }, // U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x00ea, 0, 0, 0}, 0x1ec3 }, // U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x00f4, 0, 0, 0}, 0x1ed5 }, // U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0102, 0, 0, 0}, 0x1eb2 }, // U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, 0x0103, 0, 0, 0}, 0x1eb3 }, // U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0}, 0x1ea8 }, // U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0}, 0x1ec2 }, // U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0}, 0x1ed4 }, // U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0}, 0x1ea9 }, // U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0}, 0x1ec3 }, // U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0}, 0x1ed5 }, // U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0}, 0x1eb2 }, // U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0}, 0x1eb3 }, // U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0}, 0x1ede }, // U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0}, 0x1eec }, // U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0}, 0x1edf }, // U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x003f, UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0}, 0x1eed }, // U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0041, 0x0045, 0, 0, 0}, 0x00c6 }, // AE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0041, 0x0054, 0, 0, 0}, 0x0040 }, // at
++    { {UNITIZE(Qt::Key_Multi_key), 0x0043, 0x002f, 0, 0, 0}, 0x20a1 }, // U20a1 # COLON SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0043, 0x002f, 0, 0, 0}, 0x00a2 }, // U00A2 # CENT SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0043, 0x003d, 0, 0, 0}, 0x20ac }, // EuroSign # EURO SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0043, 0x0045, 0, 0, 0}, 0x20a0 }, // U20a0 # EURO-CURRENCY SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0043, 0x0072, 0, 0, 0}, 0x20a2 }, // U20a2 # CRUZEIRO SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0043, 0x007c, 0, 0, 0}, 0x00a2 }, // U00A2 # CENT SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0044, 0x0048, 0, 0, 0}, 0x00d0 }, // U00D0 # LATIN CAPITAL LETTER ETH
++    { {UNITIZE(Qt::Key_Multi_key), 0x0045, 0x003d, 0, 0, 0}, 0x20ac }, // EuroSign # EURO SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0046, 0x0072, 0, 0, 0}, 0x20a3 }, // U20a3 # FRENCH FRANC SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x004c, 0x002d, 0, 0, 0}, 0x00a3 }, // U00a3 # POUND SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x004c, 0x003d, 0, 0, 0}, 0x20a4 }, // U20a4 # LIRA SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x004c, 0x0056, 0, 0, 0}, 0x007c }, // bar
++    { {UNITIZE(Qt::Key_Multi_key), 0x004e, 0x003d, 0, 0, 0}, 0x20a6 }, // U20a6 # NAIRA SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x004e, 0x0047, 0, 0, 0}, 0x014a }, // U014A # LATIN CAPITAL LETTER ENG
++    { {UNITIZE(Qt::Key_Multi_key), 0x004f, 0x0043, 0, 0, 0}, 0x00a9 }, // copyright
++    { {UNITIZE(Qt::Key_Multi_key), 0x004f, 0x0045, 0, 0, 0}, 0x0152 }, // OE
++    { {UNITIZE(Qt::Key_Multi_key), 0x004f, 0x0052, 0, 0, 0}, 0x00ae }, // registered
++    { {UNITIZE(Qt::Key_Multi_key), 0x004f, 0x0063, 0, 0, 0}, 0x00a9 }, // copyright
++    { {UNITIZE(Qt::Key_Multi_key), 0x004f, 0x0072, 0, 0, 0}, 0x00ae }, // registered
++    { {UNITIZE(Qt::Key_Multi_key), 0x0050, 0x0021, 0, 0, 0}, 0x00b6 }, // paragraph
++    { {UNITIZE(Qt::Key_Multi_key), 0x0050, 0x0050, 0, 0, 0}, 0x00b6 }, // paragraph # PILCROW SIGN (PARAGRAPH SIGN)
++    { {UNITIZE(Qt::Key_Multi_key), 0x0050, 0x0074, 0, 0, 0}, 0x20a7 }, // U20a7 # PESETA SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0052, 0x0073, 0, 0, 0}, 0x20a8 }, // U20a8 # RUPEE SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0054, 0x0048, 0, 0, 0}, 0x00de }, // U00DE # LATIN CAPITAL LETTER THORN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0000, 0x0041, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0000, 0x0061, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0021, 0x0041, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0021, 0x0061, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x002c, 0x0045, 0, 0}, 0x1e1c }, // U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x002c, 0x0065, 0, 0}, 0x1e1d }, // U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0041, 0, 0, 0}, 0x0102 }, // U0102 # LATIN CAPITAL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0045, 0, 0, 0}, 0x0114 }, // U0114 # LATIN CAPITAL LETTER E WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0047, 0, 0, 0}, 0x011e }, // U011E # LATIN CAPITAL LETTER G WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0049, 0, 0, 0}, 0x012c }, // U012C # LATIN CAPITAL LETTER I WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x004f, 0, 0, 0}, 0x014e }, // U014E # LATIN CAPITAL LETTER O WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0055, 0, 0, 0}, 0x016c }, // U016C # LATIN CAPITAL LETTER U WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0061, 0, 0, 0}, 0x0103 }, // U0103 # LATIN SMALL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0065, 0, 0, 0}, 0x0115 }, // U0115 # LATIN SMALL LETTER E WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0067, 0, 0, 0}, 0x011f }, // U011F # LATIN SMALL LETTER G WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0069, 0, 0, 0}, 0x012d }, // U012D # LATIN SMALL LETTER I WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x006f, 0, 0, 0}, 0x014f }, // U014F # LATIN SMALL LETTER O WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0075, 0, 0, 0}, 0x016d }, // U016D # LATIN SMALL LETTER U WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0228, 0, 0, 0}, 0x1e1c }, // U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0229, 0, 0, 0}, 0x1e1d }, // U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0391, 0, 0, 0}, 0x1fb8 }, // U1FB8 # GREEK CAPITAL LETTER ALPHA WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0399, 0, 0, 0}, 0x1fd8 }, // U1FD8 # GREEK CAPITAL LETTER IOTA WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x03a5, 0, 0, 0}, 0x1fe8 }, // U1FE8 # GREEK CAPITAL LETTER UPSILON WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x03b1, 0, 0, 0}, 0x1fb0 }, // U1FB0 # GREEK SMALL LETTER ALPHA WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x03b9, 0, 0, 0}, 0x1fd0 }, // U1FD0 # GREEK SMALL LETTER IOTA WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x03c5, 0, 0, 0}, 0x1fe0 }, // U1FE0 # GREEK SMALL LETTER UPSILON WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0410, 0, 0, 0}, 0x04d0 }, // U04D0 # CYRILLIC CAPITAL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0415, 0, 0, 0}, 0x04d6 }, // U04D6 # CYRILLIC CAPITAL LETTER IE WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0416, 0, 0, 0}, 0x04c1 }, // U04C1 # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0418, 0, 0, 0}, 0x0419 }, // U0419 # CYRILLIC CAPITAL LETTER SHORT I
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0423, 0, 0, 0}, 0x040e }, // U040E # CYRILLIC CAPITAL LETTER SHORT U
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0430, 0, 0, 0}, 0x04d1 }, // U04D1 # CYRILLIC SMALL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0435, 0, 0, 0}, 0x04d7 }, // U04D7 # CYRILLIC SMALL LETTER IE WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0436, 0, 0, 0}, 0x04c2 }, // U04C2 # CYRILLIC SMALL LETTER ZHE WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0438, 0, 0, 0}, 0x0439 }, // U0439 # CYRILLIC SMALL LETTER SHORT I
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0443, 0, 0, 0}, 0x045e }, // U045E # CYRILLIC SMALL LETTER SHORT U
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x1ea0, 0, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, 0x1ea1, 0, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, UNITIZE(Qt::Key_Dead_Cedilla), 0x0045, 0, 0}, 0x1e1c }, // U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, UNITIZE(Qt::Key_Dead_Cedilla), 0x0065, 0, 0}, 0x1e1d }, // U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, UNITIZE(Qt::Key_Dead_Belowdot), 0x0041, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0055, UNITIZE(Qt::Key_Dead_Belowdot), 0x0061, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0056, 0x004c, 0, 0, 0}, 0x007c }, // bar
++    { {UNITIZE(Qt::Key_Multi_key), 0x0057, 0x003d, 0, 0, 0}, 0x20a9 }, // U20a9 # WON SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0059, 0x003d, 0, 0, 0}, 0x00a5 }, // yen
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x00b2 }, // U00B2 # SUPERSCRIPT TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x2076 }, // U2076 # SUPERSCRIPT SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x2070 }, // U2070 # SUPERSCRIPT ZERO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x00b9 }, // U00B9 # SUPERSCRIPT ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x2078 }, // U2078 # SUPERSCRIPT EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x2074 }, // U2074 # SUPERSCRIPT FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x00b3 }, // U00B3 # SUPERSCRIPT THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x2077 }, // U2077 # SUPERSCRIPT SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x207c }, // U207C # SUPERSCRIPT EQUALS SIGN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x207a }, // U207A # SUPERSCRIPT PLUS SIGN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x00b2 }, // U00B2 # SUPERSCRIPT TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x2079 }, // U2079 # SUPERSCRIPT NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0, 0, 0}, 0x2075 }, // U2075 # SUPERSCRIPT FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0x0041, 0, 0}, 0x1eac }, // U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0x0045, 0, 0}, 0x1ec6 }, // U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0x004f, 0, 0}, 0x1ed8 }, // U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0x0061, 0, 0}, 0x1ead }, // U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0x0065, 0, 0}, 0x1ec7 }, // U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0000, 0x006f, 0, 0}, 0x1ed9 }, // U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0020, 0, 0, 0}, 0x005e }, // asciicircum
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0021, 0x0041, 0, 0}, 0x1eac }, // U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0021, 0x0045, 0, 0}, 0x1ec6 }, // U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0021, 0x004f, 0, 0}, 0x1ed8 }, // U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0021, 0x0061, 0, 0}, 0x1ead }, // U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0021, 0x0065, 0, 0}, 0x1ec7 }, // U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0021, 0x006f, 0, 0}, 0x1ed9 }, // U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0028, 0, 0, 0}, 0x207d }, // U207D # SUPERSCRIPT LEFT PARENTHESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0029, 0, 0, 0}, 0x207e }, // U207E # SUPERSCRIPT RIGHT PARENTHESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x002b, 0, 0, 0}, 0x207a }, // U207A # SUPERSCRIPT PLUS SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x002f, 0, 0, 0}, 0x007c }, // bar
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0030, 0, 0, 0}, 0x2070 }, // U2070 # SUPERSCRIPT ZERO
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0031, 0, 0, 0}, 0x00b9 }, // U00B9 # SUPERSCRIPT ONE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0032, 0, 0, 0}, 0x00b2 }, // U00B2 # SUPERSCRIPT TWO
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0033, 0, 0, 0}, 0x00b3 }, // U00B3 # SUPERSCRIPT THREE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0034, 0, 0, 0}, 0x2074 }, // U2074 # SUPERSCRIPT FOUR
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0035, 0, 0, 0}, 0x2075 }, // U2075 # SUPERSCRIPT FIVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0036, 0, 0, 0}, 0x2076 }, // U2076 # SUPERSCRIPT SIX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0037, 0, 0, 0}, 0x2077 }, // U2077 # SUPERSCRIPT SEVEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0038, 0, 0, 0}, 0x2078 }, // U2078 # SUPERSCRIPT EIGHT
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0039, 0, 0, 0}, 0x2079 }, // U2079 # SUPERSCRIPT NINE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x003d, 0, 0, 0}, 0x207c }, // U207C # SUPERSCRIPT EQUALS SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0041, 0, 0, 0}, 0x00c2 }, // U00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0043, 0, 0, 0}, 0x0108 }, // U0108 # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0045, 0, 0, 0}, 0x00ca }, // U00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0047, 0, 0, 0}, 0x011c }, // U011C # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0048, 0, 0, 0}, 0x0124 }, // U0124 # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0049, 0, 0, 0}, 0x00ce }, // U00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x004a, 0, 0, 0}, 0x0134 }, // U0134 # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x004f, 0, 0, 0}, 0x00d4 }, // U00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0053, 0, 0, 0}, 0x015c }, // U015C # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0053, 0x004d, 0, 0}, 0x2120 }, // U2120 # SERVICE MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0054, 0x004d, 0, 0}, 0x2122 }, // U2122 # TRADE MARK SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0055, 0, 0, 0}, 0x00db }, // U00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0057, 0, 0, 0}, 0x0174 }, // U0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0059, 0, 0, 0}, 0x0176 }, // U0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005a, 0, 0, 0}, 0x1e90 }, // U1E90 # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0061, 0, 0}, 0x00aa }, // U00AA # FEMININE ORDINAL INDICATOR
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0061, 0, 0}, 0x00aa }, // U00AA # FEMININE ORDINAL INDICATOR
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0068, 0, 0}, 0x02b0 }, // U02B0 # MODIFIER LETTER SMALL H
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0068, 0, 0}, 0x02b0 }, // U02B0 # MODIFIER LETTER SMALL H
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0069, 0, 0}, 0x2071 }, // U2071 # SUPERSCRIPT LATIN SMALL LETTER I
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0069, 0, 0}, 0x2071 }, // U2071 # SUPERSCRIPT LATIN SMALL LETTER I
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x006a, 0, 0}, 0x02b2 }, // U02B2 # MODIFIER LETTER SMALL J
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x006a, 0, 0}, 0x02b2 }, // U02B2 # MODIFIER LETTER SMALL J
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x006c, 0, 0}, 0x02e1 }, // U02E1 # MODIFIER LETTER SMALL L
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x006c, 0, 0}, 0x02e1 }, // U02E1 # MODIFIER LETTER SMALL L
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x006e, 0, 0}, 0x207f }, // U207F # SUPERSCRIPT LATIN SMALL LETTER N
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x006e, 0, 0}, 0x207f }, // U207F # SUPERSCRIPT LATIN SMALL LETTER N
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x006f, 0, 0}, 0x00ba }, // U00BA # MASCULINE ORDINAL INDICATOR
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x006f, 0, 0}, 0x00ba }, // U00BA # MASCULINE ORDINAL INDICATOR
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0072, 0, 0}, 0x02b3 }, // U02B3 # MODIFIER LETTER SMALL R
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0072, 0, 0}, 0x02b3 }, // U02B3 # MODIFIER LETTER SMALL R
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0073, 0, 0}, 0x02e2 }, // U02E2 # MODIFIER LETTER SMALL S
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0073, 0, 0}, 0x02e2 }, // U02E2 # MODIFIER LETTER SMALL S
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0077, 0, 0}, 0x02b7 }, // U02B7 # MODIFIER LETTER SMALL W
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0077, 0, 0}, 0x02b7 }, // U02B7 # MODIFIER LETTER SMALL W
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0078, 0, 0}, 0x02e3 }, // U02E3 # MODIFIER LETTER SMALL X
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0078, 0, 0}, 0x02e3 }, // U02E3 # MODIFIER LETTER SMALL X
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0079, 0, 0}, 0x02b8 }, // U02B8 # MODIFIER LETTER SMALL Y
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0079, 0, 0}, 0x02b8 }, // U02B8 # MODIFIER LETTER SMALL Y
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0263, 0, 0}, 0x02e0 }, // U02E0 # MODIFIER LETTER SMALL GAMMA
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0263, 0, 0}, 0x02e0 }, // U02E0 # MODIFIER LETTER SMALL GAMMA
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0266, 0, 0}, 0x02b1 }, // U02B1 # MODIFIER LETTER SMALL H WITH HOOK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0266, 0, 0}, 0x02b1 }, // U02B1 # MODIFIER LETTER SMALL H WITH HOOK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0279, 0, 0}, 0x02b4 }, // U02B4 # MODIFIER LETTER SMALL TURNED R
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0279, 0, 0}, 0x02b4 }, // U02B4 # MODIFIER LETTER SMALL TURNED R
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x027b, 0, 0}, 0x02b5 }, // U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x027b, 0, 0}, 0x02b5 }, // U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0281, 0, 0}, 0x02b6 }, // U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0281, 0, 0}, 0x02b6 }, // U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0295, 0, 0}, 0x02e4 }, // U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x005f, 0x0295, 0, 0}, 0x02e4 }, // U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0061, 0, 0, 0}, 0x00e2 }, // U00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0063, 0, 0, 0}, 0x0109 }, // U0109 # LATIN SMALL LETTER C WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0065, 0, 0, 0}, 0x00ea }, // U00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0067, 0, 0, 0}, 0x011d }, // U011D # LATIN SMALL LETTER G WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0068, 0, 0, 0}, 0x0125 }, // U0125 # LATIN SMALL LETTER H WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0069, 0, 0, 0}, 0x00ee }, // U00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x006a, 0, 0, 0}, 0x0135 }, // U0135 # LATIN SMALL LETTER J WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x006f, 0, 0, 0}, 0x00f4 }, // U00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0073, 0, 0, 0}, 0x015d }, // U015D # LATIN SMALL LETTER S WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0075, 0, 0, 0}, 0x00fb }, // U00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0077, 0, 0, 0}, 0x0175 }, // U0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0079, 0, 0, 0}, 0x0177 }, // U0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x007a, 0, 0, 0}, 0x1e91 }, // U1E91 # LATIN SMALL LETTER Z WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x1ea0, 0, 0, 0}, 0x1eac }, // U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x1ea1, 0, 0, 0}, 0x1ead }, // U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x1eb8, 0, 0, 0}, 0x1ec6 }, // U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x1eb9, 0, 0, 0}, 0x1ec7 }, // U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x1ecc, 0, 0, 0}, 0x1ed8 }, // U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x1ecd, 0, 0, 0}, 0x1ed9 }, // U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x2212, 0, 0, 0}, 0x207b }, // U207B # SUPERSCRIPT MINUS
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x4e00, 0, 0, 0}, 0x3192 }, // U3192 # IDEOGRAPHIC ANNOTATION ONE MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x4e01, 0, 0, 0}, 0x319c }, // U319C # IDEOGRAPHIC ANNOTATION FOURTH MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x4e09, 0, 0, 0}, 0x3194 }, // U3194 # IDEOGRAPHIC ANNOTATION THREE MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x4e0a, 0, 0, 0}, 0x3196 }, // U3196 # IDEOGRAPHIC ANNOTATION TOP MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x4e0b, 0, 0, 0}, 0x3198 }, // U3198 # IDEOGRAPHIC ANNOTATION BOTTOM MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x4e19, 0, 0, 0}, 0x319b }, // U319B # IDEOGRAPHIC ANNOTATION THIRD MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x4e2d, 0, 0, 0}, 0x3197 }, // U3197 # IDEOGRAPHIC ANNOTATION MIDDLE MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x4e59, 0, 0, 0}, 0x319a }, // U319A # IDEOGRAPHIC ANNOTATION SECOND MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x4e8c, 0, 0, 0}, 0x3193 }, // U3193 # IDEOGRAPHIC ANNOTATION TWO MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x4eba, 0, 0, 0}, 0x319f }, // U319F # IDEOGRAPHIC ANNOTATION MAN MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x56db, 0, 0, 0}, 0x3195 }, // U3195 # IDEOGRAPHIC ANNOTATION FOUR MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x5730, 0, 0, 0}, 0x319e }, // U319E # IDEOGRAPHIC ANNOTATION EARTH MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x5929, 0, 0, 0}, 0x319d }, // U319D # IDEOGRAPHIC ANNOTATION HEAVEN MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, 0x7532, 0, 0, 0}, 0x3199 }, // U3199 # IDEOGRAPHIC ANNOTATION FIRST MARK
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, UNITIZE(Qt::Key_Dead_Belowdot), 0x0041, 0, 0}, 0x1eac }, // U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, UNITIZE(Qt::Key_Dead_Belowdot), 0x0045, 0, 0}, 0x1ec6 }, // U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, UNITIZE(Qt::Key_Dead_Belowdot), 0x004f, 0, 0}, 0x1ed8 }, // U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, UNITIZE(Qt::Key_Dead_Belowdot), 0x0061, 0, 0}, 0x1ead }, // U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, UNITIZE(Qt::Key_Dead_Belowdot), 0x0065, 0, 0}, 0x1ec7 }, // U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x005e, UNITIZE(Qt::Key_Dead_Belowdot), 0x006f, 0, 0}, 0x1ed9 }, // U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2085 }, // U2085 # SUBSCRIPT FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2087 }, // U2087 # SUBSCRIPT SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2082 }, // U2082 # SUBSCRIPT TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2085 }, // U2085 # SUBSCRIPT FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2084 }, // U2084 # SUBSCRIPT FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2084 }, // U2084 # SUBSCRIPT FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2086 }, // U2086 # SUBSCRIPT SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2081 }, // U2081 # SUBSCRIPT ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x208a }, // U208A # SUBSCRIPT PLUS SIGN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2088 }, // U2088 # SUBSCRIPT EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2087 }, // U2087 # SUBSCRIPT SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x208a }, // U208A # SUBSCRIPT PLUS SIGN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2080 }, // U2080 # SUBSCRIPT ZERO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2083 }, // U2083 # SUBSCRIPT THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2082 }, // U2082 # SUBSCRIPT TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2083 }, // U2083 # SUBSCRIPT THREE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2086 }, // U2086 # SUBSCRIPT SIX
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2088 }, // U2088 # SUBSCRIPT EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2089 }, // U2089 # SUBSCRIPT NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2089 }, // U2089 # SUBSCRIPT NINE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2080 }, // U2080 # SUBSCRIPT ZERO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2082 }, // U2082 # SUBSCRIPT TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2081 }, // U2081 # SUBSCRIPT ONE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x2082 }, // U2082 # SUBSCRIPT TWO
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x208c }, // U208C # SUBSCRIPT EQUALS SIGN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0, 0, 0}, 0x208c }, // U208C # SUBSCRIPT EQUALS SIGN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0x004c, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0x004f, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0x0052, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0x006c, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0x006f, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0000, 0x0072, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0021, 0x004c, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0021, 0x0052, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0021, 0x006c, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0021, 0x0072, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0022, 0x0041, 0, 0}, 0x01de }, // U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0022, 0x004f, 0, 0}, 0x022a }, // U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0022, 0x0055, 0, 0}, 0x01d5 }, // U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0022, 0x0061, 0, 0}, 0x01df }, // U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0022, 0x006f, 0, 0}, 0x022b }, // U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0022, 0x0075, 0, 0}, 0x01d6 }, // U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0028, 0, 0, 0}, 0x208d }, // U208D # SUBSCRIPT LEFT PARENTHESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0028, 0, 0, 0}, 0x208d }, // U208D # SUBSCRIPT LEFT PARENTHESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0029, 0, 0, 0}, 0x208e }, // U208E # SUBSCRIPT RIGHT PARENTHESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0029, 0, 0, 0}, 0x208e }, // U208E # SUBSCRIPT RIGHT PARENTHESIS
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x002b, 0, 0, 0}, 0x208a }, // U208A # SUBSCRIPT PLUS SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x002b, 0, 0, 0}, 0x208a }, // U208A # SUBSCRIPT PLUS SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x002e, 0x0041, 0, 0}, 0x01e0 }, // U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x002e, 0x004f, 0, 0}, 0x0230 }, // U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x002e, 0x0061, 0, 0}, 0x01e1 }, // U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x002e, 0x006f, 0, 0}, 0x0231 }, // U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0030, 0, 0, 0}, 0x2080 }, // U2080 # SUBSCRIPT ZERO
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0030, 0, 0, 0}, 0x2080 }, // U2080 # SUBSCRIPT ZERO
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0031, 0, 0, 0}, 0x2081 }, // U2081 # SUBSCRIPT ONE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0031, 0, 0, 0}, 0x2081 }, // U2081 # SUBSCRIPT ONE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0032, 0, 0, 0}, 0x2082 }, // U2082 # SUBSCRIPT TWO
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0032, 0, 0, 0}, 0x2082 }, // U2082 # SUBSCRIPT TWO
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0033, 0, 0, 0}, 0x2083 }, // U2083 # SUBSCRIPT THREE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0033, 0, 0, 0}, 0x2083 }, // U2083 # SUBSCRIPT THREE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0034, 0, 0, 0}, 0x2084 }, // U2084 # SUBSCRIPT FOUR
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0034, 0, 0, 0}, 0x2084 }, // U2084 # SUBSCRIPT FOUR
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0035, 0, 0, 0}, 0x2085 }, // U2085 # SUBSCRIPT FIVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0035, 0, 0, 0}, 0x2085 }, // U2085 # SUBSCRIPT FIVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0036, 0, 0, 0}, 0x2086 }, // U2086 # SUBSCRIPT SIX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0036, 0, 0, 0}, 0x2086 }, // U2086 # SUBSCRIPT SIX
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0037, 0, 0, 0}, 0x2087 }, // U2087 # SUBSCRIPT SEVEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0037, 0, 0, 0}, 0x2087 }, // U2087 # SUBSCRIPT SEVEN
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0038, 0, 0, 0}, 0x2088 }, // U2088 # SUBSCRIPT EIGHT
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0038, 0, 0, 0}, 0x2088 }, // U2088 # SUBSCRIPT EIGHT
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0039, 0, 0, 0}, 0x2089 }, // U2089 # SUBSCRIPT NINE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0039, 0, 0, 0}, 0x2089 }, // U2089 # SUBSCRIPT NINE
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x003b, 0x004f, 0, 0}, 0x01ec }, // U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x003b, 0x006f, 0, 0}, 0x01ed }, // U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x003d, 0, 0, 0}, 0x208c }, // U208C # SUBSCRIPT EQUALS SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x003d, 0, 0, 0}, 0x208c }, // U208C # SUBSCRIPT EQUALS SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0041, 0, 0, 0}, 0x0100 }, // U0100 # LATIN CAPITAL LETTER A WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0045, 0, 0, 0}, 0x0112 }, // U0112 # LATIN CAPITAL LETTER E WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0047, 0, 0, 0}, 0x1e20 }, // U1E20 # LATIN CAPITAL LETTER G WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0049, 0, 0, 0}, 0x012a }, // U012A # LATIN CAPITAL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x004f, 0, 0, 0}, 0x014c }, // U014C # LATIN CAPITAL LETTER O WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0055, 0, 0, 0}, 0x016a }, // U016A # LATIN CAPITAL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0059, 0, 0, 0}, 0x0232 }, // U0232 # LATIN CAPITAL LETTER Y WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0061, 0, 0, 0}, 0x0101 }, // U0101 # LATIN SMALL LETTER A WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0065, 0, 0, 0}, 0x0113 }, // U0113 # LATIN SMALL LETTER E WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0067, 0, 0, 0}, 0x1e21 }, // U1E21 # LATIN SMALL LETTER G WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0069, 0, 0, 0}, 0x012b }, // U012B # LATIN SMALL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006f, 0, 0, 0}, 0x014d }, // U014D # LATIN SMALL LETTER O WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0075, 0, 0, 0}, 0x016b }, // U016B # LATIN SMALL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0079, 0, 0, 0}, 0x0233 }, // U0233 # LATIN SMALL LETTER Y WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x007e, 0x004f, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x007e, 0x006f, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x00c4, 0, 0, 0}, 0x01de }, // U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x00c6, 0, 0, 0}, 0x01e2 }, // U01E2 # LATIN CAPITAL LETTER AE WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x00d5, 0, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x00d6, 0, 0, 0}, 0x022a }, // U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x00dc, 0, 0, 0}, 0x01d5 }, // U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x00e4, 0, 0, 0}, 0x01df }, // U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x00e6, 0, 0, 0}, 0x01e3 }, // U01E3 # LATIN SMALL LETTER AE WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x00f5, 0, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x00f6, 0, 0, 0}, 0x022b }, // U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x00fc, 0, 0, 0}, 0x01d6 }, // U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x01ea, 0, 0, 0}, 0x01ec }, // U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x01eb, 0, 0, 0}, 0x01ed }, // U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0226, 0, 0, 0}, 0x01e0 }, // U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0227, 0, 0, 0}, 0x01e1 }, // U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x022e, 0, 0, 0}, 0x0230 }, // U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x022f, 0, 0, 0}, 0x0231 }, // U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0391, 0, 0, 0}, 0x1fb9 }, // U1FB9 # GREEK CAPITAL LETTER ALPHA WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0399, 0, 0, 0}, 0x1fd9 }, // U1FD9 # GREEK CAPITAL LETTER IOTA WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x03a5, 0, 0, 0}, 0x1fe9 }, // U1FE9 # GREEK CAPITAL LETTER UPSILON WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x03b1, 0, 0, 0}, 0x1fb1 }, // U1FB1 # GREEK SMALL LETTER ALPHA WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x03b9, 0, 0, 0}, 0x1fd1 }, // U1FD1 # GREEK SMALL LETTER IOTA WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x03c5, 0, 0, 0}, 0x1fe1 }, // U1FE1 # GREEK SMALL LETTER UPSILON WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0418, 0, 0, 0}, 0x04e2 }, // U04E2 # CYRILLIC CAPITAL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0423, 0, 0, 0}, 0x04ee }, // U04EE # CYRILLIC CAPITAL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0438, 0, 0, 0}, 0x04e3 }, // U04E3 # CYRILLIC SMALL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0443, 0, 0, 0}, 0x04ef }, // U04EF # CYRILLIC SMALL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x1e36, 0, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x1e37, 0, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x1e5a, 0, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x1e5b, 0, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x2212, 0, 0, 0}, 0x208b }, // U208B # SUBSCRIPT MINUS
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, 0x2212, 0, 0, 0}, 0x208b }, // U208B # SUBSCRIPT MINUS
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Tilde), 0x004f, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Tilde), 0x006f, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Abovedot), 0x0041, 0, 0}, 0x01e0 }, // U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Abovedot), 0x004f, 0, 0}, 0x0230 }, // U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Abovedot), 0x0061, 0, 0}, 0x01e1 }, // U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Abovedot), 0x006f, 0, 0}, 0x0231 }, // U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0041, 0, 0}, 0x01de }, // U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Diaeresis), 0x004f, 0, 0}, 0x022a }, // U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0}, 0x01d5 }, // U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0061, 0, 0}, 0x01df }, // U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Diaeresis), 0x006f, 0, 0}, 0x022b }, // U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0075, 0, 0}, 0x01d6 }, // U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Ogonek), 0x004f, 0, 0}, 0x01ec }, // U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Ogonek), 0x006f, 0, 0}, 0x01ed }, // U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Belowdot), 0x004c, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Belowdot), 0x0052, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Belowdot), 0x006c, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x005f, UNITIZE(Qt::Key_Dead_Belowdot), 0x0072, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0000, 0, 0, 0}, 0x1edd }, // U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0000, 0, 0, 0}, 0x1eea }, // U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0000, 0, 0, 0}, 0x1edc }, // U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0000, 0, 0, 0}, 0x1eeb }, // U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0020, 0, 0, 0}, 0x0060 }, // grave
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0022, 0x0055, 0, 0}, 0x01db }, // U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0022, 0x0075, 0, 0}, 0x01dc }, // U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0022, 0x03b9, 0, 0}, 0x1fd2 }, // U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0022, 0x03c5, 0, 0}, 0x1fe2 }, // U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x0391, 0, 0}, 0x1f0b }, // U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x0395, 0, 0}, 0x1f1b }, // U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x0397, 0, 0}, 0x1f2b }, // U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x0399, 0, 0}, 0x1f3b }, // U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x039f, 0, 0}, 0x1f4b }, // U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x03a5, 0, 0}, 0x1f5b }, // U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x03a9, 0, 0}, 0x1f6b }, // U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x03b1, 0, 0}, 0x1f03 }, // U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x03b5, 0, 0}, 0x1f13 }, // U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x03b7, 0, 0}, 0x1f23 }, // U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x03b9, 0, 0}, 0x1f33 }, // U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x03bf, 0, 0}, 0x1f43 }, // U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x03c5, 0, 0}, 0x1f53 }, // U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0028, 0x03c9, 0, 0}, 0x1f63 }, // U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x0391, 0, 0}, 0x1f0a }, // U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x0395, 0, 0}, 0x1f1a }, // U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x0397, 0, 0}, 0x1f2a }, // U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x0399, 0, 0}, 0x1f3a }, // U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x039f, 0, 0}, 0x1f4a }, // U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x03a9, 0, 0}, 0x1f6a }, // U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x03b1, 0, 0}, 0x1f02 }, // U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x03b5, 0, 0}, 0x1f12 }, // U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x03b7, 0, 0}, 0x1f22 }, // U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x03b9, 0, 0}, 0x1f32 }, // U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x03bf, 0, 0}, 0x1f42 }, // U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x03c5, 0, 0}, 0x1f52 }, // U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0029, 0x03c9, 0, 0}, 0x1f62 }, // U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x002b, 0x004f, 0, 0}, 0x1edc }, // U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x002b, 0x0055, 0, 0}, 0x1eea }, // U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x002b, 0x006f, 0, 0}, 0x1edd }, // U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x002b, 0x0075, 0, 0}, 0x1eeb }, // U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0041, 0, 0, 0}, 0x00c0 }, // U00C0 # LATIN CAPITAL LETTER A WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0045, 0, 0, 0}, 0x00c8 }, // U00C8 # LATIN CAPITAL LETTER E WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0049, 0, 0, 0}, 0x00cc }, // U00CC # LATIN CAPITAL LETTER I WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x004e, 0, 0, 0}, 0x01f8 }, // U01F8 # LATIN CAPITAL LETTER N WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x004f, 0, 0, 0}, 0x00d2 }, // U00D2 # LATIN CAPITAL LETTER O WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0055, 0, 0, 0}, 0x00d9 }, // U00D9 # LATIN CAPITAL LETTER U WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0055, 0x0041, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0055, 0x0061, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0057, 0, 0, 0}, 0x1e80 }, // U1E80 # LATIN CAPITAL LETTER W WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0059, 0, 0, 0}, 0x1ef2 }, // U1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x005e, 0x0041, 0, 0}, 0x1ea6 }, // U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x005e, 0x0045, 0, 0}, 0x1ec0 }, // U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x005e, 0x004f, 0, 0}, 0x1ed2 }, // U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x005e, 0x0061, 0, 0}, 0x1ea7 }, // U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x005e, 0x0065, 0, 0}, 0x1ec1 }, // U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x005e, 0x006f, 0, 0}, 0x1ed3 }, // U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x005f, 0x0045, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x005f, 0x004f, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x005f, 0x0065, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x005f, 0x006f, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0061, 0, 0, 0}, 0x00e0 }, // U00E0 # LATIN SMALL LETTER A WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0062, 0x0041, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0062, 0x0061, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0065, 0, 0, 0}, 0x00e8 }, // U00E8 # LATIN SMALL LETTER E WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0069, 0, 0, 0}, 0x00ec }, // U00EC # LATIN SMALL LETTER I WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x006e, 0, 0, 0}, 0x01f9 }, // U01F9 # LATIN SMALL LETTER N WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x006f, 0, 0, 0}, 0x00f2 }, // U00F2 # LATIN SMALL LETTER O WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0075, 0, 0, 0}, 0x00f9 }, // U00F9 # LATIN SMALL LETTER U WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0077, 0, 0, 0}, 0x1e81 }, // U1E81 # LATIN SMALL LETTER W WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0079, 0, 0, 0}, 0x1ef3 }, // U1EF3 # LATIN SMALL LETTER Y WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00af, 0x0045, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00af, 0x004f, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00af, 0x0065, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00af, 0x006f, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00c2, 0, 0, 0}, 0x1ea6 }, // U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00ca, 0, 0, 0}, 0x1ec0 }, // U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00d4, 0, 0, 0}, 0x1ed2 }, // U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00dc, 0, 0, 0}, 0x01db }, // U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00e2, 0, 0, 0}, 0x1ea7 }, // U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00ea, 0, 0, 0}, 0x1ec1 }, // U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00f4, 0, 0, 0}, 0x1ed3 }, // U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x00fc, 0, 0, 0}, 0x01dc }, // U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0102, 0, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0103, 0, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0112, 0, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0113, 0, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x014c, 0, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x014d, 0, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x0391, 0, 0}, 0x1f0a }, // U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x0395, 0, 0}, 0x1f1a }, // U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x0397, 0, 0}, 0x1f2a }, // U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x0399, 0, 0}, 0x1f3a }, // U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x039f, 0, 0}, 0x1f4a }, // U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x03a9, 0, 0}, 0x1f6a }, // U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x03b1, 0, 0}, 0x1f02 }, // U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x03b5, 0, 0}, 0x1f12 }, // U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x03b7, 0, 0}, 0x1f22 }, // U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x03b9, 0, 0}, 0x1f32 }, // U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x03bf, 0, 0}, 0x1f42 }, // U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x03c5, 0, 0}, 0x1f52 }, // U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0313, 0x03c9, 0, 0}, 0x1f62 }, // U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x0391, 0, 0}, 0x1f0b }, // U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x0395, 0, 0}, 0x1f1b }, // U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x0397, 0, 0}, 0x1f2b }, // U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x0399, 0, 0}, 0x1f3b }, // U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x039f, 0, 0}, 0x1f4b }, // U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x03a5, 0, 0}, 0x1f5b }, // U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x03a9, 0, 0}, 0x1f6b }, // U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x03b1, 0, 0}, 0x1f03 }, // U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x03b5, 0, 0}, 0x1f13 }, // U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x03b7, 0, 0}, 0x1f23 }, // U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x03b9, 0, 0}, 0x1f33 }, // U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x03bf, 0, 0}, 0x1f43 }, // U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x03c5, 0, 0}, 0x1f53 }, // U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0314, 0x03c9, 0, 0}, 0x1f63 }, // U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0391, 0, 0, 0}, 0x1fba }, // U1FBA # GREEK CAPITAL LETTER ALPHA WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0395, 0, 0, 0}, 0x1fc8 }, // U1FC8 # GREEK CAPITAL LETTER EPSILON WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0397, 0, 0, 0}, 0x1fca }, // U1FCA # GREEK CAPITAL LETTER ETA WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0399, 0, 0, 0}, 0x1fda }, // U1FDA # GREEK CAPITAL LETTER IOTA WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x039f, 0, 0, 0}, 0x1ff8 }, // U1FF8 # GREEK CAPITAL LETTER OMICRON WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x03a5, 0, 0, 0}, 0x1fea }, // U1FEA # GREEK CAPITAL LETTER UPSILON WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x03a9, 0, 0, 0}, 0x1ffa }, // U1FFA # GREEK CAPITAL LETTER OMEGA WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x03b1, 0, 0, 0}, 0x1f70 }, // U1F70 # GREEK SMALL LETTER ALPHA WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x03b5, 0, 0, 0}, 0x1f72 }, // U1F72 # GREEK SMALL LETTER EPSILON WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x03b7, 0, 0, 0}, 0x1f74 }, // U1F74 # GREEK SMALL LETTER ETA WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x03b9, 0, 0, 0}, 0x1f76 }, // U1F76 # GREEK SMALL LETTER IOTA WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x03bf, 0, 0, 0}, 0x1f78 }, // U1F78 # GREEK SMALL LETTER OMICRON WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x03c5, 0, 0, 0}, 0x1f7a }, // U1F7A # GREEK SMALL LETTER UPSILON WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x03c9, 0, 0, 0}, 0x1f7c }, // U1F7C # GREEK SMALL LETTER OMEGA WITH VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x03ca, 0, 0, 0}, 0x1fd2 }, // U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x03cb, 0, 0, 0}, 0x1fe2 }, // U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0415, 0, 0, 0}, 0x0400 }, // U0400 # CYRILLIC CAPITAL LETTER IE WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0418, 0, 0, 0}, 0x040d }, // U040D # CYRILLIC CAPITAL LETTER I WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0435, 0, 0, 0}, 0x0450 }, // U0450 # CYRILLIC SMALL LETTER IE WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x0438, 0, 0, 0}, 0x045d }, // U045D # CYRILLIC SMALL LETTER I WITH GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f00, 0, 0, 0}, 0x1f02 }, // U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f01, 0, 0, 0}, 0x1f03 }, // U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f08, 0, 0, 0}, 0x1f0a }, // U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f09, 0, 0, 0}, 0x1f0b }, // U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f10, 0, 0, 0}, 0x1f12 }, // U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f11, 0, 0, 0}, 0x1f13 }, // U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f18, 0, 0, 0}, 0x1f1a }, // U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f19, 0, 0, 0}, 0x1f1b }, // U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f20, 0, 0, 0}, 0x1f22 }, // U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f21, 0, 0, 0}, 0x1f23 }, // U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f28, 0, 0, 0}, 0x1f2a }, // U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f29, 0, 0, 0}, 0x1f2b }, // U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f30, 0, 0, 0}, 0x1f32 }, // U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f31, 0, 0, 0}, 0x1f33 }, // U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f38, 0, 0, 0}, 0x1f3a }, // U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f39, 0, 0, 0}, 0x1f3b }, // U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f40, 0, 0, 0}, 0x1f42 }, // U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f41, 0, 0, 0}, 0x1f43 }, // U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f48, 0, 0, 0}, 0x1f4a }, // U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f49, 0, 0, 0}, 0x1f4b }, // U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f50, 0, 0, 0}, 0x1f52 }, // U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f51, 0, 0, 0}, 0x1f53 }, // U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f59, 0, 0, 0}, 0x1f5b }, // U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f60, 0, 0, 0}, 0x1f62 }, // U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f61, 0, 0, 0}, 0x1f63 }, // U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f68, 0, 0, 0}, 0x1f6a }, // U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, 0x1f69, 0, 0, 0}, 0x1f6b }, // U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0}, 0x1ea6 }, // U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0}, 0x1ec0 }, // U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0}, 0x1ed2 }, // U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0}, 0x1ea7 }, // U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0}, 0x1ec1 }, // U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0}, 0x1ed3 }, // U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Macron), 0x0045, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Macron), 0x004f, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Macron), 0x0065, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Macron), 0x006f, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0}, 0x01db }, // U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0075, 0, 0}, 0x01dc }, // U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03b9, 0, 0}, 0x1fd2 }, // U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03c5, 0, 0}, 0x1fe2 }, // U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0}, 0x1edc }, // U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0}, 0x1eea }, // U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0}, 0x1edd }, // U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0060, UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0}, 0x1eeb }, // U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0061, 0x0065, 0, 0, 0}, 0x00e6 }, // ae
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0000, 0x0041, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0000, 0x0061, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0021, 0x0041, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0021, 0x0061, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x002c, 0x0045, 0, 0}, 0x1e1c }, // U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x002c, 0x0065, 0, 0}, 0x1e1d }, // U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0041, 0, 0, 0}, 0x0102 }, // U0102 # LATIN CAPITAL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0045, 0, 0, 0}, 0x0114 }, // U0114 # LATIN CAPITAL LETTER E WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0047, 0, 0, 0}, 0x011e }, // U011E # LATIN CAPITAL LETTER G WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0049, 0, 0, 0}, 0x012c }, // U012C # LATIN CAPITAL LETTER I WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x004f, 0, 0, 0}, 0x014e }, // U014E # LATIN CAPITAL LETTER O WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0055, 0, 0, 0}, 0x016c }, // U016C # LATIN CAPITAL LETTER U WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0061, 0, 0, 0}, 0x0103 }, // U0103 # LATIN SMALL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0065, 0, 0, 0}, 0x0115 }, // U0115 # LATIN SMALL LETTER E WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0067, 0, 0, 0}, 0x011f }, // U011F # LATIN SMALL LETTER G WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0069, 0, 0, 0}, 0x012d }, // U012D # LATIN SMALL LETTER I WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x006f, 0, 0, 0}, 0x014f }, // U014F # LATIN SMALL LETTER O WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0075, 0, 0, 0}, 0x016d }, // U016D # LATIN SMALL LETTER U WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0228, 0, 0, 0}, 0x1e1c }, // U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0229, 0, 0, 0}, 0x1e1d }, // U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0391, 0, 0, 0}, 0x1fb8 }, // U1FB8 # GREEK CAPITAL LETTER ALPHA WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0399, 0, 0, 0}, 0x1fd8 }, // U1FD8 # GREEK CAPITAL LETTER IOTA WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x03a5, 0, 0, 0}, 0x1fe8 }, // U1FE8 # GREEK CAPITAL LETTER UPSILON WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x03b1, 0, 0, 0}, 0x1fb0 }, // U1FB0 # GREEK SMALL LETTER ALPHA WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x03b9, 0, 0, 0}, 0x1fd0 }, // U1FD0 # GREEK SMALL LETTER IOTA WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x03c5, 0, 0, 0}, 0x1fe0 }, // U1FE0 # GREEK SMALL LETTER UPSILON WITH VRACHY
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0410, 0, 0, 0}, 0x04d0 }, // U04D0 # CYRILLIC CAPITAL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0415, 0, 0, 0}, 0x04d6 }, // U04D6 # CYRILLIC CAPITAL LETTER IE WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0416, 0, 0, 0}, 0x04c1 }, // U04C1 # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0418, 0, 0, 0}, 0x0419 }, // U0419 # CYRILLIC CAPITAL LETTER SHORT I
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0423, 0, 0, 0}, 0x040e }, // U040E # CYRILLIC CAPITAL LETTER SHORT U
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0430, 0, 0, 0}, 0x04d1 }, // U04D1 # CYRILLIC SMALL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0435, 0, 0, 0}, 0x04d7 }, // U04D7 # CYRILLIC SMALL LETTER IE WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0436, 0, 0, 0}, 0x04c2 }, // U04C2 # CYRILLIC SMALL LETTER ZHE WITH BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0438, 0, 0, 0}, 0x0439 }, // U0439 # CYRILLIC SMALL LETTER SHORT I
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0443, 0, 0, 0}, 0x045e }, // U045E # CYRILLIC SMALL LETTER SHORT U
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x1ea0, 0, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, 0x1ea1, 0, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, UNITIZE(Qt::Key_Dead_Cedilla), 0x0045, 0, 0}, 0x1e1c }, // U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, UNITIZE(Qt::Key_Dead_Cedilla), 0x0065, 0, 0}, 0x1e1d }, // U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, UNITIZE(Qt::Key_Dead_Belowdot), 0x0041, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0062, UNITIZE(Qt::Key_Dead_Belowdot), 0x0061, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0022, 0x0055, 0, 0}, 0x01d9 }, // U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0022, 0x0075, 0, 0}, 0x01da }, // U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x002f, 0, 0, 0}, 0x00a2 }, // U00A2 # CENT SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0041, 0, 0, 0}, 0x01cd }, // U01CD # LATIN CAPITAL LETTER A WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0043, 0, 0, 0}, 0x010c }, // U010C # LATIN CAPITAL LETTER C WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0044, 0, 0, 0}, 0x010e }, // U010E # LATIN CAPITAL LETTER D WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0045, 0, 0, 0}, 0x011a }, // U011A # LATIN CAPITAL LETTER E WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0047, 0, 0, 0}, 0x01e6 }, // U01E6 # LATIN CAPITAL LETTER G WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0048, 0, 0, 0}, 0x021e }, // U021E # LATIN CAPITAL LETTER H WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0049, 0, 0, 0}, 0x01cf }, // U01CF # LATIN CAPITAL LETTER I WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x004b, 0, 0, 0}, 0x01e8 }, // U01E8 # LATIN CAPITAL LETTER K WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x004c, 0, 0, 0}, 0x013d }, // U013D # LATIN CAPITAL LETTER L WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x004e, 0, 0, 0}, 0x0147 }, // U0147 # LATIN CAPITAL LETTER N WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x004f, 0, 0, 0}, 0x01d1 }, // U01D1 # LATIN CAPITAL LETTER O WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0052, 0, 0, 0}, 0x0158 }, // U0158 # LATIN CAPITAL LETTER R WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0053, 0, 0, 0}, 0x0160 }, // U0160 # LATIN CAPITAL LETTER S WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0054, 0, 0, 0}, 0x0164 }, // U0164 # LATIN CAPITAL LETTER T WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0055, 0, 0, 0}, 0x01d3 }, // U01D3 # LATIN CAPITAL LETTER U WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x005a, 0, 0, 0}, 0x017d }, // U017D # LATIN CAPITAL LETTER Z WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0061, 0, 0, 0}, 0x01ce }, // U01CE # LATIN SMALL LETTER A WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0063, 0, 0, 0}, 0x010d }, // U010D # LATIN SMALL LETTER C WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0064, 0, 0, 0}, 0x010f }, // U010F # LATIN SMALL LETTER D WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0065, 0, 0, 0}, 0x011b }, // U011B # LATIN SMALL LETTER E WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0067, 0, 0, 0}, 0x01e7 }, // U01E7 # LATIN SMALL LETTER G WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0068, 0, 0, 0}, 0x021f }, // U021F # LATIN SMALL LETTER H WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0069, 0, 0, 0}, 0x01d0 }, // U01D0 # LATIN SMALL LETTER I WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x006a, 0, 0, 0}, 0x01f0 }, // U01F0 # LATIN SMALL LETTER J WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x006b, 0, 0, 0}, 0x01e9 }, // U01E9 # LATIN SMALL LETTER K WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x006c, 0, 0, 0}, 0x013e }, // U013E # LATIN SMALL LETTER L WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x006e, 0, 0, 0}, 0x0148 }, // U0148 # LATIN SMALL LETTER N WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x006f, 0, 0, 0}, 0x01d2 }, // U01D2 # LATIN SMALL LETTER O WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0072, 0, 0, 0}, 0x0159 }, // U0159 # LATIN SMALL LETTER R WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0073, 0, 0, 0}, 0x0161 }, // U0161 # LATIN SMALL LETTER S WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0074, 0, 0, 0}, 0x0165 }, // U0165 # LATIN SMALL LETTER T WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0075, 0, 0, 0}, 0x01d4 }, // U01D4 # LATIN SMALL LETTER U WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x007a, 0, 0, 0}, 0x017e }, // U017E # LATIN SMALL LETTER Z WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x007c, 0, 0, 0}, 0x00a2 }, // U00A2 # CENT SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x00dc, 0, 0, 0}, 0x01d9 }, // U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x00fc, 0, 0, 0}, 0x01da }, // U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x01b7, 0, 0, 0}, 0x01ee }, // U01EE # LATIN CAPITAL LETTER EZH WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0292, 0, 0, 0}, 0x01ef }, // U01EF # LATIN SMALL LETTER EZH WITH CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0}, 0x01d9 }, // U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0063, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0075, 0, 0}, 0x01da }, // U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
++    { {UNITIZE(Qt::Key_Multi_key), 0x0064, 0x002d, 0, 0, 0}, 0x20ab }, // U20ab # DONG SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0064, 0x0068, 0, 0, 0}, 0x00f0 }, // U00F0 # LATIN SMALL LETTER ETH
++    { {UNITIZE(Qt::Key_Multi_key), 0x0065, 0x0065, 0, 0, 0}, 0x0259 }, // U0259 # LATIN SMALL LETTER SCHWA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0066, 0x0053, 0, 0, 0}, 0x017f }, // U017f # LONG S
++    { {UNITIZE(Qt::Key_Multi_key), 0x0066, 0x0073, 0, 0, 0}, 0x017f }, // U017f # LONG S
++    { {UNITIZE(Qt::Key_Multi_key), 0x0069, 0x002e, 0, 0, 0}, 0x0131 }, // U0131 # LATIN SMALL LETTER DOTLESS I
++    { {UNITIZE(Qt::Key_Multi_key), 0x006b, 0x006b, 0, 0, 0}, 0x0138 }, // U0138 # LATIN SMALL LETTER KRA
++    { {UNITIZE(Qt::Key_Multi_key), 0x006c, 0x0076, 0, 0, 0}, 0x007c }, // bar
++    { {UNITIZE(Qt::Key_Multi_key), 0x006d, 0x002f, 0, 0, 0}, 0x20a5 }, // U20a5 # MILL SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x006d, 0x0075, 0, 0, 0}, 0x00b5 }, // U00B5 # MICRO SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x006e, 0x0067, 0, 0, 0}, 0x014b }, // U014B # LATIN SMALL LETTER ENG
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0027, 0x0041, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0027, 0x0061, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0041, 0, 0, 0}, 0x00c5 }, // U00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0043, 0, 0, 0}, 0x00a9 }, // copyright
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0052, 0, 0, 0}, 0x00ae }, // registered
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0055, 0, 0, 0}, 0x016e }, // U016E # LATIN CAPITAL LETTER U WITH RING ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0061, 0, 0, 0}, 0x00e5 }, // U00E5 # LATIN SMALL LETTER A WITH RING ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0063, 0, 0, 0}, 0x00a9 }, // copyright
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0065, 0, 0, 0}, 0x0153 }, // oe
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x006f, 0, 0, 0}, 0x00b0 }, // degree # ^0 already taken
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0072, 0, 0, 0}, 0x00ae }, // registered
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0073, 0, 0, 0}, 0x00a7 }, // section # SECTION SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0075, 0, 0, 0}, 0x016f }, // U016F # LATIN SMALL LETTER U WITH RING ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0077, 0, 0, 0}, 0x1e98 }, // U1E98 # LATIN SMALL LETTER W WITH RING ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0078, 0, 0, 0}, 0x00a4 }, // currency
++    { {UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0079, 0, 0, 0}, 0x1e99 }, // U1E99 # LATIN SMALL LETTER Y WITH RING ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0070, 0x0021, 0, 0, 0}, 0x00b6 }, // paragraph
++    { {UNITIZE(Qt::Key_Multi_key), 0x0073, 0x006f, 0, 0, 0}, 0x00a7 }, // section # SECTION SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0073, 0x0073, 0, 0, 0}, 0x00df }, // ssharp
++    { {UNITIZE(Qt::Key_Multi_key), 0x0074, 0x0068, 0, 0, 0}, 0x00fe }, // U00FE # LATIN SMALL LETTER THORN
++    { {UNITIZE(Qt::Key_Multi_key), 0x0076, 0x006c, 0, 0, 0}, 0x007c }, // bar
++    { {UNITIZE(Qt::Key_Multi_key), 0x0078, 0x006f, 0, 0, 0}, 0x00a4 }, // currency
++    { {UNITIZE(Qt::Key_Multi_key), 0x0078, 0x0078, 0, 0, 0}, 0x00d7 }, // U00D7 # MULTIPLICATION SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x007c, 0x0043, 0, 0, 0}, 0x00a2 }, // U00A2 # CENT SIGN
++    { {UNITIZE(Qt::Key_Multi_key), 0x007c, 0x0063, 0, 0, 0}, 0x00a2 }, // U00A2 # CENT SIGN
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0000, 0, 0, 0}, 0x1eee }, // U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0000, 0, 0, 0}, 0x1ee1 }, // U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0000, 0, 0, 0}, 0x1eef }, // U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0000, 0, 0, 0}, 0x1ee0 }, // U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0020, 0, 0, 0}, 0x007e }, // asciitilde
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0022, 0x03b9, 0, 0}, 0x1fd7 }, // U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0022, 0x03c5, 0, 0}, 0x1fe7 }, // U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0028, 0x0391, 0, 0}, 0x1f0f }, // U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0028, 0x0397, 0, 0}, 0x1f2f }, // U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0028, 0x0399, 0, 0}, 0x1f3f }, // U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0028, 0x03a5, 0, 0}, 0x1f5f }, // U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0028, 0x03a9, 0, 0}, 0x1f6f }, // U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0028, 0x03b1, 0, 0}, 0x1f07 }, // U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0028, 0x03b7, 0, 0}, 0x1f27 }, // U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0028, 0x03b9, 0, 0}, 0x1f37 }, // U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0028, 0x03c5, 0, 0}, 0x1f57 }, // U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0028, 0x03c9, 0, 0}, 0x1f67 }, // U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0029, 0x0391, 0, 0}, 0x1f0e }, // U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0029, 0x0397, 0, 0}, 0x1f2e }, // U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0029, 0x0399, 0, 0}, 0x1f3e }, // U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0029, 0x03a9, 0, 0}, 0x1f6e }, // U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0029, 0x03b1, 0, 0}, 0x1f06 }, // U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0029, 0x03b7, 0, 0}, 0x1f26 }, // U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0029, 0x03b9, 0, 0}, 0x1f36 }, // U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0029, 0x03c5, 0, 0}, 0x1f56 }, // U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0029, 0x03c9, 0, 0}, 0x1f66 }, // U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x002b, 0x004f, 0, 0}, 0x1ee0 }, // U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x002b, 0x0055, 0, 0}, 0x1eee }, // U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x002b, 0x006f, 0, 0}, 0x1ee1 }, // U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x002b, 0x0075, 0, 0}, 0x1eef }, // U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0041, 0, 0, 0}, 0x00c3 }, // U00C3 # LATIN CAPITAL LETTER A WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0045, 0, 0, 0}, 0x1ebc }, // U1EBC # LATIN CAPITAL LETTER E WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0049, 0, 0, 0}, 0x0128 }, // U0128 # LATIN CAPITAL LETTER I WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x004e, 0, 0, 0}, 0x00d1 }, // U00D1 # LATIN CAPITAL LETTER N WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x004f, 0, 0, 0}, 0x00d5 }, // U00D5 # LATIN CAPITAL LETTER O WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0055, 0, 0, 0}, 0x0168 }, // U0168 # LATIN CAPITAL LETTER U WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0055, 0x0041, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0055, 0x0061, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0056, 0, 0, 0}, 0x1e7c }, // U1E7C # LATIN CAPITAL LETTER V WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0059, 0, 0, 0}, 0x1ef8 }, // U1EF8 # LATIN CAPITAL LETTER Y WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x005e, 0x0041, 0, 0}, 0x1eaa }, // U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x005e, 0x0045, 0, 0}, 0x1ec4 }, // U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x005e, 0x004f, 0, 0}, 0x1ed6 }, // U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x005e, 0x0061, 0, 0}, 0x1eab }, // U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x005e, 0x0065, 0, 0}, 0x1ec5 }, // U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x005e, 0x006f, 0, 0}, 0x1ed7 }, // U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0061, 0, 0, 0}, 0x00e3 }, // U00E3 # LATIN SMALL LETTER A WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0062, 0x0041, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0062, 0x0061, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0065, 0, 0, 0}, 0x1ebd }, // U1EBD # LATIN SMALL LETTER E WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0069, 0, 0, 0}, 0x0129 }, // U0129 # LATIN SMALL LETTER I WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x006e, 0, 0, 0}, 0x00f1 }, // U00F1 # LATIN SMALL LETTER N WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x006f, 0, 0, 0}, 0x00f5 }, // U00F5 # LATIN SMALL LETTER O WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0075, 0, 0, 0}, 0x0169 }, // U0169 # LATIN SMALL LETTER U WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0076, 0, 0, 0}, 0x1e7d }, // U1E7D # LATIN SMALL LETTER V WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0079, 0, 0, 0}, 0x1ef9 }, // U1EF9 # LATIN SMALL LETTER Y WITH TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x00c2, 0, 0, 0}, 0x1eaa }, // U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x00ca, 0, 0, 0}, 0x1ec4 }, // U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x00d4, 0, 0, 0}, 0x1ed6 }, // U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x00e2, 0, 0, 0}, 0x1eab }, // U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x00ea, 0, 0, 0}, 0x1ec5 }, // U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x00f4, 0, 0, 0}, 0x1ed7 }, // U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0102, 0, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0103, 0, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0313, 0x0391, 0, 0}, 0x1f0e }, // U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0313, 0x0397, 0, 0}, 0x1f2e }, // U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0313, 0x0399, 0, 0}, 0x1f3e }, // U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0313, 0x03a9, 0, 0}, 0x1f6e }, // U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0313, 0x03b1, 0, 0}, 0x1f06 }, // U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0313, 0x03b7, 0, 0}, 0x1f26 }, // U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0313, 0x03b9, 0, 0}, 0x1f36 }, // U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0313, 0x03c5, 0, 0}, 0x1f56 }, // U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0313, 0x03c9, 0, 0}, 0x1f66 }, // U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0314, 0x0391, 0, 0}, 0x1f0f }, // U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0314, 0x0397, 0, 0}, 0x1f2f }, // U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0314, 0x0399, 0, 0}, 0x1f3f }, // U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0314, 0x03a5, 0, 0}, 0x1f5f }, // U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0314, 0x03a9, 0, 0}, 0x1f6f }, // U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0314, 0x03b1, 0, 0}, 0x1f07 }, // U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0314, 0x03b7, 0, 0}, 0x1f27 }, // U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0314, 0x03b9, 0, 0}, 0x1f37 }, // U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0314, 0x03c5, 0, 0}, 0x1f57 }, // U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0314, 0x03c9, 0, 0}, 0x1f67 }, // U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x03b1, 0, 0, 0}, 0x1fb6 }, // U1FB6 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x03b7, 0, 0, 0}, 0x1fc6 }, // U1FC6 # GREEK SMALL LETTER ETA WITH PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x03b9, 0, 0, 0}, 0x1fd6 }, // U1FD6 # GREEK SMALL LETTER IOTA WITH PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x03c5, 0, 0, 0}, 0x1fe6 }, // U1FE6 # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x03c9, 0, 0, 0}, 0x1ff6 }, // U1FF6 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x03ca, 0, 0, 0}, 0x1fd7 }, // U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x03cb, 0, 0, 0}, 0x1fe7 }, // U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f00, 0, 0, 0}, 0x1f06 }, // U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f01, 0, 0, 0}, 0x1f07 }, // U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f08, 0, 0, 0}, 0x1f0e }, // U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f09, 0, 0, 0}, 0x1f0f }, // U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f20, 0, 0, 0}, 0x1f26 }, // U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f21, 0, 0, 0}, 0x1f27 }, // U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f28, 0, 0, 0}, 0x1f2e }, // U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f29, 0, 0, 0}, 0x1f2f }, // U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f30, 0, 0, 0}, 0x1f36 }, // U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f31, 0, 0, 0}, 0x1f37 }, // U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f38, 0, 0, 0}, 0x1f3e }, // U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f39, 0, 0, 0}, 0x1f3f }, // U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f50, 0, 0, 0}, 0x1f56 }, // U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f51, 0, 0, 0}, 0x1f57 }, // U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f59, 0, 0, 0}, 0x1f5f }, // U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f60, 0, 0, 0}, 0x1f66 }, // U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f61, 0, 0, 0}, 0x1f67 }, // U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f68, 0, 0, 0}, 0x1f6e }, // U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, 0x1f69, 0, 0, 0}, 0x1f6f }, // U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0}, 0x1eaa }, // U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0}, 0x1ec4 }, // U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0}, 0x1ed6 }, // U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0}, 0x1eab }, // U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0}, 0x1ec5 }, // U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0}, 0x1ed7 }, // U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03b9, 0, 0}, 0x1fd7 }, // U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03c5, 0, 0}, 0x1fe7 }, // U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0}, 0x1ee0 }, // U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0}, 0x1eee }, // U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0}, 0x1ee1 }, // U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x007e, UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0}, 0x1eef }, // U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00a8, 0x0000, 0, 0, 0}, 0x0385 }, // U0385 # GREEK DIALYTIKA TONOS
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00a8, 0x0000, 0, 0, 0}, 0x1fed }, // U1FED # GREEK DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00a8, 0x0027, 0, 0, 0}, 0x0385 }, // U0385 # GREEK DIALYTIKA TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00a8, 0x0060, 0, 0, 0}, 0x1fed }, // U1FED # GREEK DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00a8, 0x007e, 0, 0, 0}, 0x1fc1 }, // U1FC1 # GREEK DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x00a8, 0x00b4, 0, 0, 0}, 0x0385 }, // U0385 # GREEK DIALYTIKA TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00a8, 0x0342, 0, 0, 0}, 0x1fc1 }, // U1FC1 # GREEK DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x00a8, UNITIZE(Qt::Key_Dead_Grave), 0, 0, 0}, 0x1fed }, // U1FED # GREEK DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00a8, UNITIZE(Qt::Key_Dead_Acute), 0, 0, 0}, 0x0385 }, // U0385 # GREEK DIALYTIKA TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00a8, UNITIZE(Qt::Key_Dead_Tilde), 0, 0, 0}, 0x1fc1 }, // U1FC1 # GREEK DIALYTIKA AND PERISPOMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0000, 0x004c, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0000, 0x004f, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0000, 0x0052, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0000, 0x006c, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0000, 0x006f, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0000, 0x0072, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0021, 0x004c, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0021, 0x0052, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0021, 0x006c, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0021, 0x0072, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0022, 0x0041, 0, 0}, 0x01de }, // U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0022, 0x004f, 0, 0}, 0x022a }, // U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0022, 0x0055, 0, 0}, 0x01d5 }, // U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0022, 0x0061, 0, 0}, 0x01df }, // U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0022, 0x006f, 0, 0}, 0x022b }, // U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0022, 0x0075, 0, 0}, 0x01d6 }, // U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x002e, 0x0041, 0, 0}, 0x01e0 }, // U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x002e, 0x004f, 0, 0}, 0x0230 }, // U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x002e, 0x0061, 0, 0}, 0x01e1 }, // U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x002e, 0x006f, 0, 0}, 0x0231 }, // U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x003b, 0x004f, 0, 0}, 0x01ec }, // U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x003b, 0x006f, 0, 0}, 0x01ed }, // U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0041, 0, 0, 0}, 0x0100 }, // U0100 # LATIN CAPITAL LETTER A WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0045, 0, 0, 0}, 0x0112 }, // U0112 # LATIN CAPITAL LETTER E WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0047, 0, 0, 0}, 0x1e20 }, // U1E20 # LATIN CAPITAL LETTER G WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0049, 0, 0, 0}, 0x012a }, // U012A # LATIN CAPITAL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x004f, 0, 0, 0}, 0x014c }, // U014C # LATIN CAPITAL LETTER O WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0055, 0, 0, 0}, 0x016a }, // U016A # LATIN CAPITAL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0059, 0, 0, 0}, 0x0232 }, // U0232 # LATIN CAPITAL LETTER Y WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0061, 0, 0, 0}, 0x0101 }, // U0101 # LATIN SMALL LETTER A WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0065, 0, 0, 0}, 0x0113 }, // U0113 # LATIN SMALL LETTER E WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0067, 0, 0, 0}, 0x1e21 }, // U1E21 # LATIN SMALL LETTER G WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0069, 0, 0, 0}, 0x012b }, // U012B # LATIN SMALL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x006f, 0, 0, 0}, 0x014d }, // U014D # LATIN SMALL LETTER O WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0075, 0, 0, 0}, 0x016b }, // U016B # LATIN SMALL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0079, 0, 0, 0}, 0x0233 }, // U0233 # LATIN SMALL LETTER Y WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x007e, 0x004f, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x007e, 0x006f, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x00c4, 0, 0, 0}, 0x01de }, // U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x00c6, 0, 0, 0}, 0x01e2 }, // U01E2 # LATIN CAPITAL LETTER AE WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x00d5, 0, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x00d6, 0, 0, 0}, 0x022a }, // U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x00dc, 0, 0, 0}, 0x01d5 }, // U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x00e4, 0, 0, 0}, 0x01df }, // U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x00e6, 0, 0, 0}, 0x01e3 }, // U01E3 # LATIN SMALL LETTER AE WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x00f5, 0, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x00f6, 0, 0, 0}, 0x022b }, // U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x00fc, 0, 0, 0}, 0x01d6 }, // U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x01ea, 0, 0, 0}, 0x01ec }, // U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x01eb, 0, 0, 0}, 0x01ed }, // U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0226, 0, 0, 0}, 0x01e0 }, // U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0227, 0, 0, 0}, 0x01e1 }, // U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x022e, 0, 0, 0}, 0x0230 }, // U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x022f, 0, 0, 0}, 0x0231 }, // U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0391, 0, 0, 0}, 0x1fb9 }, // U1FB9 # GREEK CAPITAL LETTER ALPHA WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0399, 0, 0, 0}, 0x1fd9 }, // U1FD9 # GREEK CAPITAL LETTER IOTA WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x03a5, 0, 0, 0}, 0x1fe9 }, // U1FE9 # GREEK CAPITAL LETTER UPSILON WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x03b1, 0, 0, 0}, 0x1fb1 }, // U1FB1 # GREEK SMALL LETTER ALPHA WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x03b9, 0, 0, 0}, 0x1fd1 }, // U1FD1 # GREEK SMALL LETTER IOTA WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x03c5, 0, 0, 0}, 0x1fe1 }, // U1FE1 # GREEK SMALL LETTER UPSILON WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0418, 0, 0, 0}, 0x04e2 }, // U04E2 # CYRILLIC CAPITAL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0423, 0, 0, 0}, 0x04ee }, // U04EE # CYRILLIC CAPITAL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0438, 0, 0, 0}, 0x04e3 }, // U04E3 # CYRILLIC SMALL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0443, 0, 0, 0}, 0x04ef }, // U04EF # CYRILLIC SMALL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x1e36, 0, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x1e37, 0, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x1e5a, 0, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, 0x1e5b, 0, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Tilde), 0x004f, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Tilde), 0x006f, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Abovedot), 0x0041, 0, 0}, 0x01e0 }, // U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Abovedot), 0x004f, 0, 0}, 0x0230 }, // U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Abovedot), 0x0061, 0, 0}, 0x01e1 }, // U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Abovedot), 0x006f, 0, 0}, 0x0231 }, // U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0041, 0, 0}, 0x01de }, // U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Diaeresis), 0x004f, 0, 0}, 0x022a }, // U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0}, 0x01d5 }, // U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0061, 0, 0}, 0x01df }, // U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Diaeresis), 0x006f, 0, 0}, 0x022b }, // U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0075, 0, 0}, 0x01d6 }, // U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Ogonek), 0x004f, 0, 0}, 0x01ec }, // U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Ogonek), 0x006f, 0, 0}, 0x01ed }, // U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Belowdot), 0x004c, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Belowdot), 0x0052, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Belowdot), 0x006c, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Multi_key), 0x00af, UNITIZE(Qt::Key_Dead_Belowdot), 0x0072, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0000, 0, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0000, 0, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0000, 0, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0000, 0, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0000, 0x004f, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0000, 0x004f, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0000, 0x0055, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0000, 0x006f, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0000, 0x006f, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0000, 0x0075, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0022, 0x0049, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0022, 0x0055, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0022, 0x0069, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0022, 0x0075, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0022, 0x03b9, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0022, 0x03c5, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x0391, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x0395, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x0397, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x0399, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x039f, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x03a5, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x03a9, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x03b1, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x03b5, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x03b7, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x03b9, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x03bf, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x03c5, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0028, 0x03c9, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x0391, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x0395, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x0397, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x0399, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x039f, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x03a9, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x03b1, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x03b5, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x03b7, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x03b9, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x03bf, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x03c5, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0029, 0x03c9, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x002b, 0x004f, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x002b, 0x0055, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x002b, 0x006f, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x002b, 0x0075, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x002c, 0x0043, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x002c, 0x0063, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x002f, 0x004f, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x002f, 0x006f, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0041, 0, 0, 0}, 0x00c1 }, // U00C1 # LATIN CAPITAL LETTER A WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0043, 0, 0, 0}, 0x0106 }, // U0106 # LATIN CAPITAL LETTER C WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0045, 0, 0, 0}, 0x00c9 }, // U00C9 # LATIN CAPITAL LETTER E WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0047, 0, 0, 0}, 0x01f4 }, // U01F4 # LATIN CAPITAL LETTER G WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0049, 0, 0, 0}, 0x00cd }, // U00CD # LATIN CAPITAL LETTER I WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x004b, 0, 0, 0}, 0x1e30 }, // U1E30 # LATIN CAPITAL LETTER K WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x004c, 0, 0, 0}, 0x0139 }, // U0139 # LATIN CAPITAL LETTER L WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x004d, 0, 0, 0}, 0x1e3e }, // U1E3E # LATIN CAPITAL LETTER M WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x004e, 0, 0, 0}, 0x0143 }, // U0143 # LATIN CAPITAL LETTER N WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x004f, 0, 0, 0}, 0x00d3 }, // U00D3 # LATIN CAPITAL LETTER O WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0050, 0, 0, 0}, 0x1e54 }, // U1E54 # LATIN CAPITAL LETTER P WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0052, 0, 0, 0}, 0x0154 }, // U0154 # LATIN CAPITAL LETTER R WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0053, 0, 0, 0}, 0x015a }, // U015A # LATIN CAPITAL LETTER S WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0055, 0, 0, 0}, 0x00da }, // U00DA # LATIN CAPITAL LETTER U WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0055, 0x0041, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0055, 0x0061, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0057, 0, 0, 0}, 0x1e82 }, // U1E82 # LATIN CAPITAL LETTER W WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0059, 0, 0, 0}, 0x00dd }, // U00DD # LATIN CAPITAL LETTER Y WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x005a, 0, 0, 0}, 0x0179 }, // U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x005e, 0x0041, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x005e, 0x0045, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x005e, 0x004f, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x005e, 0x0061, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x005e, 0x0065, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x005e, 0x006f, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x005f, 0x0045, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x005f, 0x004f, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x005f, 0x0065, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x005f, 0x006f, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0061, 0, 0, 0}, 0x00e1 }, // U00E1 # LATIN SMALL LETTER A WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0062, 0x0041, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0062, 0x0061, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0063, 0, 0, 0}, 0x0107 }, // U0107 # LATIN SMALL LETTER C WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0065, 0, 0, 0}, 0x00e9 }, // U00E9 # LATIN SMALL LETTER E WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0067, 0, 0, 0}, 0x01f5 }, // U01F5 # LATIN SMALL LETTER G WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0069, 0, 0, 0}, 0x00ed }, // U00ED # LATIN SMALL LETTER I WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x006b, 0, 0, 0}, 0x1e31 }, // U1E31 # LATIN SMALL LETTER K WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x006c, 0, 0, 0}, 0x013a }, // U013A # LATIN SMALL LETTER L WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x006d, 0, 0, 0}, 0x1e3f }, // U1E3F # LATIN SMALL LETTER M WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x006e, 0, 0, 0}, 0x0144 }, // U0144 # LATIN SMALL LETTER N WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x006f, 0, 0, 0}, 0x00f3 }, // U00F3 # LATIN SMALL LETTER O WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x006f, 0x0041, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x006f, 0x0061, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0070, 0, 0, 0}, 0x1e55 }, // U1E55 # LATIN SMALL LETTER P WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0072, 0, 0, 0}, 0x0155 }, // U0155 # LATIN SMALL LETTER R WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0073, 0, 0, 0}, 0x015b }, // U015B # LATIN SMALL LETTER S WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0075, 0, 0, 0}, 0x00fa }, // U00FA # LATIN SMALL LETTER U WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0077, 0, 0, 0}, 0x1e83 }, // U1E83 # LATIN SMALL LETTER W WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0079, 0, 0, 0}, 0x00fd }, // U00FD # LATIN SMALL LETTER Y WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x007a, 0, 0, 0}, 0x017a }, // U017A # LATIN SMALL LETTER Z WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x007e, 0x004f, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x007e, 0x0055, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x007e, 0x006f, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x007e, 0x0075, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00af, 0x0045, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00af, 0x004f, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00af, 0x0065, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00af, 0x006f, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00c2, 0, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00c5, 0, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00c6, 0, 0, 0}, 0x01fc }, // U01FC # LATIN CAPITAL LETTER AE WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00c7, 0, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00ca, 0, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00cf, 0, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00d4, 0, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00d5, 0, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00d8, 0, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00dc, 0, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00e2, 0, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00e5, 0, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00e6, 0, 0, 0}, 0x01fd }, // U01FD # LATIN SMALL LETTER AE WITH ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00e7, 0, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00ea, 0, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00ef, 0, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00f4, 0, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00f5, 0, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00f8, 0, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x00fc, 0, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0102, 0, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0103, 0, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0112, 0, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0113, 0, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x014c, 0, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x014d, 0, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0168, 0, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0169, 0, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x0391, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x0395, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x0397, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x0399, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x039f, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x03a9, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x03b1, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x03b5, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x03b7, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x03b9, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x03bf, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x03c5, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0313, 0x03c9, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x0391, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x0395, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x0397, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x0399, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x039f, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x03a5, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x03a9, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x03b1, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x03b5, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x03b7, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x03b9, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x03bf, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x03c5, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0314, 0x03c9, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0391, 0, 0, 0}, 0x0386 }, // U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0395, 0, 0, 0}, 0x0388 }, // U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0397, 0, 0, 0}, 0x0389 }, // U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0399, 0, 0, 0}, 0x038a }, // U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x039f, 0, 0, 0}, 0x038c }, // U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03a5, 0, 0, 0}, 0x038e }, // U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03a9, 0, 0, 0}, 0x038f }, // U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03b1, 0, 0, 0}, 0x03ac }, // U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03b5, 0, 0, 0}, 0x03ad }, // U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03b7, 0, 0, 0}, 0x03ae }, // U03AE # GREEK SMALL LETTER ETA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03b9, 0, 0, 0}, 0x03af }, // U03AF # GREEK SMALL LETTER IOTA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03bf, 0, 0, 0}, 0x03cc }, // U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03c5, 0, 0, 0}, 0x03cd }, // U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03c9, 0, 0, 0}, 0x03ce }, // U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03ca, 0, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03cb, 0, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x03d2, 0, 0, 0}, 0x03d3 }, // U03D3 # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0413, 0, 0, 0}, 0x0403 }, // U0403 # CYRILLIC CAPITAL LETTER GJE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x041a, 0, 0, 0}, 0x040c }, // U040C # CYRILLIC CAPITAL LETTER KJE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0433, 0, 0, 0}, 0x0453 }, // U0453 # CYRILLIC SMALL LETTER GJE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x043a, 0, 0, 0}, 0x045c }, // U045C # CYRILLIC SMALL LETTER KJE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f00, 0, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f01, 0, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f08, 0, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f09, 0, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f10, 0, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f11, 0, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f18, 0, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f19, 0, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f20, 0, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f21, 0, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f28, 0, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f29, 0, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f30, 0, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f31, 0, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f38, 0, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f39, 0, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f40, 0, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f41, 0, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f48, 0, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f49, 0, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f50, 0, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f51, 0, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f59, 0, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f60, 0, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f61, 0, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f68, 0, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x1f69, 0, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Tilde), 0x004f, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Tilde), 0x0055, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Tilde), 0x006f, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Tilde), 0x0075, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Macron), 0x0045, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Macron), 0x004f, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Macron), 0x0065, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Macron), 0x006f, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0049, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0069, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Diaeresis), 0x0075, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03b9, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Diaeresis), 0x03c5, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Abovering), 0x0041, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Abovering), 0x0061, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Cedilla), 0x0043, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Cedilla), 0x0063, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Multi_key), 0x00b4, UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x0391, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x0391, 0}, 0x1f8b }, // U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x0397, 0}, 0x1f9b }, // U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x0397, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x03a9, 0}, 0x1fab }, // U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x03a9, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x03b1, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x03b1, 0}, 0x1f83 }, // U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x03b7, 0}, 0x1f93 }, // U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x03b7, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x03c9, 0}, 0x1fa3 }, // U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0028, 0x03c9, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x0391, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x0391, 0}, 0x1f8a }, // U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x0397, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x0397, 0}, 0x1f9a }, // U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x03a9, 0}, 0x1faa }, // U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x03a9, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x03b1, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x03b1, 0}, 0x1f82 }, // U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x03b7, 0}, 0x1f92 }, // U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x03b7, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x03c9, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0029, 0x03c9, 0}, 0x1fa2 }, // U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x0391, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x0391, 0}, 0x1f8a }, // U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x0397, 0}, 0x1f9a }, // U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x0397, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x03a9, 0}, 0x1faa }, // U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x03a9, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x03b1, 0}, 0x1f82 }, // U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x03b1, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x03b7, 0}, 0x1f92 }, // U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x03b7, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x03c9, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0313, 0x03c9, 0}, 0x1fa2 }, // U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x0391, 0}, 0x1f8b }, // U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x0391, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x0397, 0}, 0x1f9b }, // U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x0397, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x03a9, 0}, 0x1fab }, // U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x03a9, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x03b1, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x03b1, 0}, 0x1f83 }, // U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x03b7, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x03b7, 0}, 0x1f93 }, // U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x03c9, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x0314, 0x03c9, 0}, 0x1fa3 }, // U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x03b1, 0, 0}, 0x1fb4 }, // U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x03b1, 0, 0}, 0x1fb2 }, // U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x03b7, 0, 0}, 0x1fc4 }, // U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x03b7, 0, 0}, 0x1fc2 }, // U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x03c9, 0, 0}, 0x1ff4 }, // U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x03c9, 0, 0}, 0x1ff2 }, // U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f00, 0, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f00, 0, 0}, 0x1f82 }, // U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f01, 0, 0}, 0x1f83 }, // U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f01, 0, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f08, 0, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f08, 0, 0}, 0x1f8a }, // U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f09, 0, 0}, 0x1f8b }, // U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f09, 0, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f20, 0, 0}, 0x1f92 }, // U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f20, 0, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f21, 0, 0}, 0x1f93 }, // U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f21, 0, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f28, 0, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f28, 0, 0}, 0x1f9a }, // U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f29, 0, 0}, 0x1f9b }, // U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f29, 0, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f60, 0, 0}, 0x1fa2 }, // U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f60, 0, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f61, 0, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f61, 0, 0}, 0x1fa3 }, // U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f68, 0, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f68, 0, 0}, 0x1faa }, // U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f69, 0, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0000, 0x1f69, 0, 0}, 0x1fab }, // U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0028, 0x0391, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0028, 0x0397, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0028, 0x03a9, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0028, 0x03b1, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0028, 0x03b7, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0028, 0x03c9, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0029, 0x0391, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0029, 0x0397, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0029, 0x03a9, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0029, 0x03b1, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0029, 0x03b7, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0029, 0x03c9, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0313, 0x0391, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0313, 0x0397, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0313, 0x03a9, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0313, 0x03b1, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0313, 0x03b7, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0313, 0x03c9, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0314, 0x0391, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0314, 0x0397, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0314, 0x03a9, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0314, 0x03b1, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0314, 0x03b7, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x0314, 0x03c9, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x03b1, 0, 0}, 0x1fb4 }, // U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x03b7, 0, 0}, 0x1fc4 }, // U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x03c9, 0, 0}, 0x1ff4 }, // U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f00, 0, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f01, 0, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f08, 0, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f09, 0, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f20, 0, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f21, 0, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f28, 0, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f29, 0, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f60, 0, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f61, 0, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f68, 0, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0027, 0x1f69, 0, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0028, 0x0391, 0, 0}, 0x1f89 }, // U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0028, 0x0397, 0, 0}, 0x1f99 }, // U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0028, 0x03a9, 0, 0}, 0x1fa9 }, // U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0028, 0x03b1, 0, 0}, 0x1f81 }, // U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0028, 0x03b7, 0, 0}, 0x1f91 }, // U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0028, 0x03c9, 0, 0}, 0x1fa1 }, // U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0029, 0x0391, 0, 0}, 0x1f88 }, // U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0029, 0x0397, 0, 0}, 0x1f98 }, // U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0029, 0x03a9, 0, 0}, 0x1fa8 }, // U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0029, 0x03b1, 0, 0}, 0x1f80 }, // U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0029, 0x03b7, 0, 0}, 0x1f90 }, // U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0029, 0x03c9, 0, 0}, 0x1fa0 }, // U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0028, 0x0391, 0}, 0x1f8b }, // U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0028, 0x0397, 0}, 0x1f9b }, // U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0028, 0x03a9, 0}, 0x1fab }, // U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0028, 0x03b1, 0}, 0x1f83 }, // U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0028, 0x03b7, 0}, 0x1f93 }, // U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0028, 0x03c9, 0}, 0x1fa3 }, // U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0029, 0x0391, 0}, 0x1f8a }, // U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0029, 0x0397, 0}, 0x1f9a }, // U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0029, 0x03a9, 0}, 0x1faa }, // U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0029, 0x03b1, 0}, 0x1f82 }, // U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0029, 0x03b7, 0}, 0x1f92 }, // U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0029, 0x03c9, 0}, 0x1fa2 }, // U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0313, 0x0391, 0}, 0x1f8a }, // U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0313, 0x0397, 0}, 0x1f9a }, // U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0313, 0x03a9, 0}, 0x1faa }, // U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0313, 0x03b1, 0}, 0x1f82 }, // U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0313, 0x03b7, 0}, 0x1f92 }, // U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0313, 0x03c9, 0}, 0x1fa2 }, // U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0314, 0x0391, 0}, 0x1f8b }, // U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0314, 0x0397, 0}, 0x1f9b }, // U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0314, 0x03a9, 0}, 0x1fab }, // U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0314, 0x03b1, 0}, 0x1f83 }, // U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0314, 0x03b7, 0}, 0x1f93 }, // U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x0314, 0x03c9, 0}, 0x1fa3 }, // U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x03b1, 0, 0}, 0x1fb2 }, // U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x03b7, 0, 0}, 0x1fc2 }, // U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x03c9, 0, 0}, 0x1ff2 }, // U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f00, 0, 0}, 0x1f82 }, // U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f01, 0, 0}, 0x1f83 }, // U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f08, 0, 0}, 0x1f8a }, // U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f09, 0, 0}, 0x1f8b }, // U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f20, 0, 0}, 0x1f92 }, // U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f21, 0, 0}, 0x1f93 }, // U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f28, 0, 0}, 0x1f9a }, // U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f29, 0, 0}, 0x1f9b }, // U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f60, 0, 0}, 0x1fa2 }, // U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f61, 0, 0}, 0x1fa3 }, // U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f68, 0, 0}, 0x1faa }, // U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0060, 0x1f69, 0, 0}, 0x1fab }, // U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0028, 0x0391, 0}, 0x1f8f }, // U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0028, 0x0397, 0}, 0x1f9f }, // U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0028, 0x03a9, 0}, 0x1faf }, // U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0028, 0x03b1, 0}, 0x1f87 }, // U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0028, 0x03b7, 0}, 0x1f97 }, // U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0028, 0x03c9, 0}, 0x1fa7 }, // U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0029, 0x0391, 0}, 0x1f8e }, // U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0029, 0x0397, 0}, 0x1f9e }, // U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0029, 0x03a9, 0}, 0x1fae }, // U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0029, 0x03b1, 0}, 0x1f86 }, // U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0029, 0x03b7, 0}, 0x1f96 }, // U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0029, 0x03c9, 0}, 0x1fa6 }, // U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0313, 0x0391, 0}, 0x1f8e }, // U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0313, 0x0397, 0}, 0x1f9e }, // U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0313, 0x03a9, 0}, 0x1fae }, // U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0313, 0x03b1, 0}, 0x1f86 }, // U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0313, 0x03b7, 0}, 0x1f96 }, // U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0313, 0x03c9, 0}, 0x1fa6 }, // U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0314, 0x0391, 0}, 0x1f8f }, // U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0314, 0x0397, 0}, 0x1f9f }, // U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0314, 0x03a9, 0}, 0x1faf }, // U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0314, 0x03b1, 0}, 0x1f87 }, // U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0314, 0x03b7, 0}, 0x1f97 }, // U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x0314, 0x03c9, 0}, 0x1fa7 }, // U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x03b1, 0, 0}, 0x1fb7 }, // U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x03b7, 0, 0}, 0x1fc7 }, // U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x03c9, 0, 0}, 0x1ff7 }, // U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f00, 0, 0}, 0x1f86 }, // U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f01, 0, 0}, 0x1f87 }, // U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f08, 0, 0}, 0x1f8e }, // U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f09, 0, 0}, 0x1f8f }, // U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f20, 0, 0}, 0x1f96 }, // U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f21, 0, 0}, 0x1f97 }, // U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f28, 0, 0}, 0x1f9e }, // U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f29, 0, 0}, 0x1f9f }, // U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f60, 0, 0}, 0x1fa6 }, // U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f61, 0, 0}, 0x1fa7 }, // U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f68, 0, 0}, 0x1fae }, // U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x007e, 0x1f69, 0, 0}, 0x1faf }, // U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0028, 0x0391, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0028, 0x0397, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0028, 0x03a9, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0028, 0x03b1, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0028, 0x03b7, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0028, 0x03c9, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0029, 0x0391, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0029, 0x0397, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0029, 0x03a9, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0029, 0x03b1, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0029, 0x03b7, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0029, 0x03c9, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0313, 0x0391, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0313, 0x0397, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0313, 0x03a9, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0313, 0x03b1, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0313, 0x03b7, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0313, 0x03c9, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0314, 0x0391, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0314, 0x0397, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0314, 0x03a9, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0314, 0x03b1, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0314, 0x03b7, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x0314, 0x03c9, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x03b1, 0, 0}, 0x1fb4 }, // U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x03b7, 0, 0}, 0x1fc4 }, // U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x03c9, 0, 0}, 0x1ff4 }, // U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f00, 0, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f01, 0, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f08, 0, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f09, 0, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f20, 0, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f21, 0, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f28, 0, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f29, 0, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f60, 0, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f61, 0, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f68, 0, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x00b4, 0x1f69, 0, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0313, 0x0391, 0, 0}, 0x1f88 }, // U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0313, 0x0397, 0, 0}, 0x1f98 }, // U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0313, 0x03a9, 0, 0}, 0x1fa8 }, // U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0313, 0x03b1, 0, 0}, 0x1f80 }, // U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0313, 0x03b7, 0, 0}, 0x1f90 }, // U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0313, 0x03c9, 0, 0}, 0x1fa0 }, // U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0314, 0x0391, 0, 0}, 0x1f89 }, // U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0314, 0x0397, 0, 0}, 0x1f99 }, // U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0314, 0x03a9, 0, 0}, 0x1fa9 }, // U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0314, 0x03b1, 0, 0}, 0x1f81 }, // U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0314, 0x03b7, 0, 0}, 0x1f91 }, // U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0314, 0x03c9, 0, 0}, 0x1fa1 }, // U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0028, 0x0391, 0}, 0x1f8f }, // U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0028, 0x0397, 0}, 0x1f9f }, // U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0028, 0x03a9, 0}, 0x1faf }, // U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0028, 0x03b1, 0}, 0x1f87 }, // U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0028, 0x03b7, 0}, 0x1f97 }, // U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0028, 0x03c9, 0}, 0x1fa7 }, // U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0029, 0x0391, 0}, 0x1f8e }, // U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0029, 0x0397, 0}, 0x1f9e }, // U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0029, 0x03a9, 0}, 0x1fae }, // U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0029, 0x03b1, 0}, 0x1f86 }, // U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0029, 0x03b7, 0}, 0x1f96 }, // U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0029, 0x03c9, 0}, 0x1fa6 }, // U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0313, 0x0391, 0}, 0x1f8e }, // U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0313, 0x0397, 0}, 0x1f9e }, // U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0313, 0x03a9, 0}, 0x1fae }, // U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0313, 0x03b1, 0}, 0x1f86 }, // U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0313, 0x03b7, 0}, 0x1f96 }, // U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0313, 0x03c9, 0}, 0x1fa6 }, // U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0314, 0x0391, 0}, 0x1f8f }, // U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0314, 0x0397, 0}, 0x1f9f }, // U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0314, 0x03a9, 0}, 0x1faf }, // U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0314, 0x03b1, 0}, 0x1f87 }, // U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0314, 0x03b7, 0}, 0x1f97 }, // U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x0314, 0x03c9, 0}, 0x1fa7 }, // U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x03b1, 0, 0}, 0x1fb7 }, // U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x03b7, 0, 0}, 0x1fc7 }, // U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x03c9, 0, 0}, 0x1ff7 }, // U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f00, 0, 0}, 0x1f86 }, // U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f01, 0, 0}, 0x1f87 }, // U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f08, 0, 0}, 0x1f8e }, // U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f09, 0, 0}, 0x1f8f }, // U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f20, 0, 0}, 0x1f96 }, // U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f21, 0, 0}, 0x1f97 }, // U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f28, 0, 0}, 0x1f9e }, // U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f29, 0, 0}, 0x1f9f }, // U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f60, 0, 0}, 0x1fa6 }, // U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f61, 0, 0}, 0x1fa7 }, // U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f68, 0, 0}, 0x1fae }, // U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0342, 0x1f69, 0, 0}, 0x1faf }, // U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0391, 0, 0, 0}, 0x1fbc }, // U1FBC # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x0397, 0, 0, 0}, 0x1fcc }, // U1FCC # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x03a9, 0, 0, 0}, 0x1ffc }, // U1FFC # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x03ac, 0, 0, 0}, 0x1fb4 }, // U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x03ae, 0, 0, 0}, 0x1fc4 }, // U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x03b1, 0, 0, 0}, 0x1fb3 }, // U1FB3 # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x03b7, 0, 0, 0}, 0x1fc3 }, // U1FC3 # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x03c9, 0, 0, 0}, 0x1ff3 }, // U1FF3 # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x03ce, 0, 0, 0}, 0x1ff4 }, // U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f00, 0, 0, 0}, 0x1f80 }, // U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f01, 0, 0, 0}, 0x1f81 }, // U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f02, 0, 0, 0}, 0x1f82 }, // U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f03, 0, 0, 0}, 0x1f83 }, // U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f04, 0, 0, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f05, 0, 0, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f06, 0, 0, 0}, 0x1f86 }, // U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f07, 0, 0, 0}, 0x1f87 }, // U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f08, 0, 0, 0}, 0x1f88 }, // U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f09, 0, 0, 0}, 0x1f89 }, // U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f0a, 0, 0, 0}, 0x1f8a }, // U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f0b, 0, 0, 0}, 0x1f8b }, // U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f0c, 0, 0, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f0d, 0, 0, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f0e, 0, 0, 0}, 0x1f8e }, // U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f0f, 0, 0, 0}, 0x1f8f }, // U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f20, 0, 0, 0}, 0x1f90 }, // U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f21, 0, 0, 0}, 0x1f91 }, // U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f22, 0, 0, 0}, 0x1f92 }, // U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f23, 0, 0, 0}, 0x1f93 }, // U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f24, 0, 0, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f25, 0, 0, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f26, 0, 0, 0}, 0x1f96 }, // U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f27, 0, 0, 0}, 0x1f97 }, // U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f28, 0, 0, 0}, 0x1f98 }, // U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f29, 0, 0, 0}, 0x1f99 }, // U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f2a, 0, 0, 0}, 0x1f9a }, // U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f2b, 0, 0, 0}, 0x1f9b }, // U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f2c, 0, 0, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f2d, 0, 0, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f2e, 0, 0, 0}, 0x1f9e }, // U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f2f, 0, 0, 0}, 0x1f9f }, // U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f60, 0, 0, 0}, 0x1fa0 }, // U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f61, 0, 0, 0}, 0x1fa1 }, // U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f62, 0, 0, 0}, 0x1fa2 }, // U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f63, 0, 0, 0}, 0x1fa3 }, // U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f64, 0, 0, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f65, 0, 0, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f66, 0, 0, 0}, 0x1fa6 }, // U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f67, 0, 0, 0}, 0x1fa7 }, // U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f68, 0, 0, 0}, 0x1fa8 }, // U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f69, 0, 0, 0}, 0x1fa9 }, // U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f6a, 0, 0, 0}, 0x1faa }, // U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f6b, 0, 0, 0}, 0x1fab }, // U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f6c, 0, 0, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f6d, 0, 0, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f6e, 0, 0, 0}, 0x1fae }, // U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f6f, 0, 0, 0}, 0x1faf }, // U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f70, 0, 0, 0}, 0x1fb2 }, // U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f74, 0, 0, 0}, 0x1fc2 }, // U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1f7c, 0, 0, 0}, 0x1ff2 }, // U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1fb6, 0, 0, 0}, 0x1fb7 }, // U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1fc6, 0, 0, 0}, 0x1fc7 }, // U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, 0x1ff6, 0, 0, 0}, 0x1ff7 }, // U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0028, 0x0391, 0}, 0x1f8b }, // U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0028, 0x0397, 0}, 0x1f9b }, // U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0028, 0x03a9, 0}, 0x1fab }, // U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0028, 0x03b1, 0}, 0x1f83 }, // U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0028, 0x03b7, 0}, 0x1f93 }, // U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0028, 0x03c9, 0}, 0x1fa3 }, // U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0029, 0x0391, 0}, 0x1f8a }, // U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0029, 0x0397, 0}, 0x1f9a }, // U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0029, 0x03a9, 0}, 0x1faa }, // U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0029, 0x03b1, 0}, 0x1f82 }, // U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0029, 0x03b7, 0}, 0x1f92 }, // U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0029, 0x03c9, 0}, 0x1fa2 }, // U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x0391, 0}, 0x1f8a }, // U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x0397, 0}, 0x1f9a }, // U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03a9, 0}, 0x1faa }, // U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03b1, 0}, 0x1f82 }, // U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03b7, 0}, 0x1f92 }, // U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03c9, 0}, 0x1fa2 }, // U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x0391, 0}, 0x1f8b }, // U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x0397, 0}, 0x1f9b }, // U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03a9, 0}, 0x1fab }, // U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03b1, 0}, 0x1f83 }, // U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03b7, 0}, 0x1f93 }, // U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03c9, 0}, 0x1fa3 }, // U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x03b1, 0, 0}, 0x1fb2 }, // U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x03b7, 0, 0}, 0x1fc2 }, // U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x03c9, 0, 0}, 0x1ff2 }, // U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f00, 0, 0}, 0x1f82 }, // U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f01, 0, 0}, 0x1f83 }, // U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f08, 0, 0}, 0x1f8a }, // U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f09, 0, 0}, 0x1f8b }, // U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f20, 0, 0}, 0x1f92 }, // U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f21, 0, 0}, 0x1f93 }, // U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f28, 0, 0}, 0x1f9a }, // U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f29, 0, 0}, 0x1f9b }, // U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f60, 0, 0}, 0x1fa2 }, // U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f61, 0, 0}, 0x1fa3 }, // U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f68, 0, 0}, 0x1faa }, // U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Grave), 0x1f69, 0, 0}, 0x1fab }, // U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0028, 0x0391, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0028, 0x0397, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0028, 0x03a9, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0028, 0x03b1, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0028, 0x03b7, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0028, 0x03c9, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0029, 0x0391, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0029, 0x0397, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0029, 0x03a9, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0029, 0x03b1, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0029, 0x03b7, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0029, 0x03c9, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x0391, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x0397, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03a9, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03b1, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03b7, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03c9, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x0391, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x0397, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03a9, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03b1, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03b7, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03c9, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x03b1, 0, 0}, 0x1fb4 }, // U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x03b7, 0, 0}, 0x1fc4 }, // U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x03c9, 0, 0}, 0x1ff4 }, // U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f00, 0, 0}, 0x1f84 }, // U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f01, 0, 0}, 0x1f85 }, // U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f08, 0, 0}, 0x1f8c }, // U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f09, 0, 0}, 0x1f8d }, // U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f20, 0, 0}, 0x1f94 }, // U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f21, 0, 0}, 0x1f95 }, // U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f28, 0, 0}, 0x1f9c }, // U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f29, 0, 0}, 0x1f9d }, // U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f60, 0, 0}, 0x1fa4 }, // U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f61, 0, 0}, 0x1fa5 }, // U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f68, 0, 0}, 0x1fac }, // U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Acute), 0x1f69, 0, 0}, 0x1fad }, // U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0028, 0x0391, 0}, 0x1f8f }, // U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0028, 0x0397, 0}, 0x1f9f }, // U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0028, 0x03a9, 0}, 0x1faf }, // U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0028, 0x03b1, 0}, 0x1f87 }, // U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0028, 0x03b7, 0}, 0x1f97 }, // U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0028, 0x03c9, 0}, 0x1fa7 }, // U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0029, 0x0391, 0}, 0x1f8e }, // U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0029, 0x0397, 0}, 0x1f9e }, // U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0029, 0x03a9, 0}, 0x1fae }, // U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0029, 0x03b1, 0}, 0x1f86 }, // U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0029, 0x03b7, 0}, 0x1f96 }, // U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0029, 0x03c9, 0}, 0x1fa6 }, // U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x0391, 0}, 0x1f8e }, // U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x0397, 0}, 0x1f9e }, // U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x03a9, 0}, 0x1fae }, // U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x03b1, 0}, 0x1f86 }, // U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x03b7, 0}, 0x1f96 }, // U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x03c9, 0}, 0x1fa6 }, // U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x0391, 0}, 0x1f8f }, // U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x0397, 0}, 0x1f9f }, // U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x03a9, 0}, 0x1faf }, // U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x03b1, 0}, 0x1f87 }, // U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x03b7, 0}, 0x1f97 }, // U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x03c9, 0}, 0x1fa7 }, // U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x03b1, 0, 0}, 0x1fb7 }, // U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x03b7, 0, 0}, 0x1fc7 }, // U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x03c9, 0, 0}, 0x1ff7 }, // U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f00, 0, 0}, 0x1f86 }, // U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f01, 0, 0}, 0x1f87 }, // U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f08, 0, 0}, 0x1f8e }, // U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f09, 0, 0}, 0x1f8f }, // U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f20, 0, 0}, 0x1f96 }, // U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f21, 0, 0}, 0x1f97 }, // U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f28, 0, 0}, 0x1f9e }, // U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f29, 0, 0}, 0x1f9f }, // U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f60, 0, 0}, 0x1fa6 }, // U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f61, 0, 0}, 0x1fa7 }, // U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f68, 0, 0}, 0x1fae }, // U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x03b9, UNITIZE(Qt::Key_Dead_Tilde), 0x1f69, 0, 0}, 0x1faf }, // U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x05b4, 0x05d9, 0, 0, 0}, 0xfb1d }, // UFB1D # HEBREW LETTER YOD WITH HIRIQ
++    { {UNITIZE(Qt::Key_Multi_key), 0x05b7, 0x05d0, 0, 0, 0}, 0xfb2e }, // UFB2E # HEBREW LETTER ALEF WITH PATAH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05b7, 0x05f2, 0, 0, 0}, 0xfb1f }, // UFB1F # HEBREW LIGATURE YIDDISH YOD YOD PATAH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05b8, 0x05d0, 0, 0, 0}, 0xfb2f }, // UFB2F # HEBREW LETTER ALEF WITH QAMATS
++    { {UNITIZE(Qt::Key_Multi_key), 0x05b9, 0x05d5, 0, 0, 0}, 0xfb4b }, // UFB4B # HEBREW LETTER VAV WITH HOLAM
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d0, 0, 0, 0}, 0xfb30 }, // UFB30 # HEBREW LETTER ALEF WITH MAPIQ
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d1, 0, 0, 0}, 0xfb31 }, // UFB31 # HEBREW LETTER BET WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d1, 0, 0, 0}, 0xfb31 }, // UFB31 # HEBREW LETTER BET WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d2, 0, 0, 0}, 0xfb32 }, // UFB32 # HEBREW LETTER GIMEL WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d2, 0, 0, 0}, 0xfb32 }, // UFB32 # HEBREW LETTER GIMEL WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d3, 0, 0, 0}, 0xfb33 }, // UFB33 # HEBREW LETTER DALET WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d3, 0, 0, 0}, 0xfb33 }, // UFB33 # HEBREW LETTER DALET WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d4, 0, 0, 0}, 0xfb34 }, // UFB34 # HEBREW LETTER HE WITH MAPIQ
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d5, 0, 0, 0}, 0xfb35 }, // UFB35 # HEBREW LETTER VAV WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d6, 0, 0, 0}, 0xfb36 }, // UFB36 # HEBREW LETTER ZAYIN WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d6, 0, 0, 0}, 0xfb36 }, // UFB36 # HEBREW LETTER ZAYIN WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d8, 0, 0, 0}, 0xfb38 }, // UFB38 # HEBREW LETTER TET WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d8, 0, 0, 0}, 0xfb38 }, // UFB38 # HEBREW LETTER TET WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05d9, 0, 0, 0}, 0xfb39 }, // UFB39 # HEBREW LETTER YOD WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05da, 0, 0, 0}, 0xfb3a }, // UFB3A # HEBREW LETTER FINAL KAF WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05db, 0, 0, 0}, 0xfb3b }, // UFB3B # HEBREW LETTER KAF WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05dc, 0, 0, 0}, 0xfb3c }, // UFB3C # HEBREW LETTER LAMED WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05de, 0, 0, 0}, 0xfb3e }, // UFB3E # HEBREW LETTER MEM WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05e0, 0, 0, 0}, 0xfb40 }, // UFB40 # HEBREW LETTER NUN WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05e1, 0, 0, 0}, 0xfb41 }, // UFB41 # HEBREW LETTER SAMEKH WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05e1, 0, 0, 0}, 0xfb41 }, // UFB41 # HEBREW LETTER SAMEKH WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05e3, 0, 0, 0}, 0xfb43 }, // UFB43 # HEBREW LETTER FINAL PE WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05e4, 0, 0, 0}, 0xfb44 }, // UFB44 # HEBREW LETTER PE WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05e6, 0, 0, 0}, 0xfb46 }, // UFB46 # HEBREW LETTER TSADI WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05e6, 0, 0, 0}, 0xfb46 }, // UFB46 # HEBREW LETTER TSADI WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05e7, 0, 0, 0}, 0xfb47 }, // UFB47 # HEBREW LETTER QOF WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05e7, 0, 0, 0}, 0xfb47 }, // UFB47 # HEBREW LETTER QOF WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05e8, 0, 0, 0}, 0xfb48 }, // UFB48 # HEBREW LETTER RESH WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05e9, 0, 0, 0}, 0xfb49 }, // UFB49 # HEBREW LETTER SHIN WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05ea, 0, 0, 0}, 0xfb4a }, // UFB4A # HEBREW LETTER TAV WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bc, 0x05ea, 0, 0, 0}, 0xfb4a }, // UFB4A # HEBREW LETTER TAV WITH DAGESH
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bf, 0x05d1, 0, 0, 0}, 0xfb4c }, // UFB4C # HEBREW LETTER BET WITH RAFE
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bf, 0x05d1, 0, 0, 0}, 0xfb4c }, // UFB4C # HEBREW LETTER BET WITH RAFE
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bf, 0x05db, 0, 0, 0}, 0xfb4d }, // UFB4D # HEBREW LETTER KAF WITH RAFE
++    { {UNITIZE(Qt::Key_Multi_key), 0x05bf, 0x05e4, 0, 0, 0}, 0xfb4e }, // UFB4E # HEBREW LETTER PE WITH RAFE
++    { {UNITIZE(Qt::Key_Multi_key), 0x05c1, 0x05bc, 0x05e9, 0, 0}, 0xfb2c }, // UFB2C # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
++    { {UNITIZE(Qt::Key_Multi_key), 0x05c1, 0x05e9, 0, 0, 0}, 0xfb2a }, // UFB2A # HEBREW LETTER SHIN WITH SHIN DOT
++    { {UNITIZE(Qt::Key_Multi_key), 0x05c1, 0xfb49, 0, 0, 0}, 0xfb2c }, // UFB2C # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
++    { {UNITIZE(Qt::Key_Multi_key), 0x05c2, 0x05bc, 0x05e9, 0, 0}, 0xfb2d }, // UFB2D # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
++    { {UNITIZE(Qt::Key_Multi_key), 0x05c2, 0x05e9, 0, 0, 0}, 0xfb2b }, // UFB2B # HEBREW LETTER SHIN WITH SIN DOT
++    { {UNITIZE(Qt::Key_Multi_key), 0x05c2, 0xfb49, 0, 0, 0}, 0xfb2d }, // UFB2D # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
++    { {UNITIZE(Qt::Key_Multi_key), 0x0653, 0x0627, 0, 0, 0}, 0x0622 }, // U0622 # ARABIC LETTER ALEF WITH MADDA ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0654, 0x0627, 0, 0, 0}, 0x0623 }, // U0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0654, 0x0648, 0, 0, 0}, 0x0624 }, // U0624 # ARABIC LETTER WAW WITH HAMZA ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0654, 0x064a, 0, 0, 0}, 0x0626 }, // U0626 # ARABIC LETTER YEH WITH HAMZA ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0654, 0x06c1, 0, 0, 0}, 0x06c2 }, // U06C2 # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0654, 0x06d2, 0, 0, 0}, 0x06d3 }, // U06D3 # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0654, 0x06d5, 0, 0, 0}, 0x06c0 }, // U06C0 # ARABIC LETTER HEH WITH YEH ABOVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0655, 0x0627, 0, 0, 0}, 0x0625 }, // U0625 # ARABIC LETTER ALEF WITH HAMZA BELOW
++    { {UNITIZE(Qt::Key_Multi_key), 0x093c, 0x0915, 0, 0, 0}, 0x0958 }, // U0958 # DEVANAGARI LETTER QA
++    { {UNITIZE(Qt::Key_Multi_key), 0x093c, 0x0916, 0, 0, 0}, 0x0959 }, // U0959 # DEVANAGARI LETTER KHHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x093c, 0x0917, 0, 0, 0}, 0x095a }, // U095A # DEVANAGARI LETTER GHHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x093c, 0x091c, 0, 0, 0}, 0x095b }, // U095B # DEVANAGARI LETTER ZA
++    { {UNITIZE(Qt::Key_Multi_key), 0x093c, 0x0921, 0, 0, 0}, 0x095c }, // U095C # DEVANAGARI LETTER DDDHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x093c, 0x0922, 0, 0, 0}, 0x095d }, // U095D # DEVANAGARI LETTER RHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x093c, 0x0928, 0, 0, 0}, 0x0929 }, // U0929 # DEVANAGARI LETTER NNNA
++    { {UNITIZE(Qt::Key_Multi_key), 0x093c, 0x092b, 0, 0, 0}, 0x095e }, // U095E # DEVANAGARI LETTER FA
++    { {UNITIZE(Qt::Key_Multi_key), 0x093c, 0x092f, 0, 0, 0}, 0x095f }, // U095F # DEVANAGARI LETTER YYA
++    { {UNITIZE(Qt::Key_Multi_key), 0x093c, 0x0930, 0, 0, 0}, 0x0931 }, // U0931 # DEVANAGARI LETTER RRA
++    { {UNITIZE(Qt::Key_Multi_key), 0x093c, 0x0933, 0, 0, 0}, 0x0934 }, // U0934 # DEVANAGARI LETTER LLLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x09bc, 0x09a1, 0, 0, 0}, 0x09dc }, // U09DC # BENGALI LETTER RRA
++    { {UNITIZE(Qt::Key_Multi_key), 0x09bc, 0x09a2, 0, 0, 0}, 0x09dd }, // U09DD # BENGALI LETTER RHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x09bc, 0x09af, 0, 0, 0}, 0x09df }, // U09DF # BENGALI LETTER YYA
++    { {UNITIZE(Qt::Key_Multi_key), 0x09c7, 0x09be, 0, 0, 0}, 0x09cb }, // U09CB # BENGALI VOWEL SIGN O
++    { {UNITIZE(Qt::Key_Multi_key), 0x09c7, 0x09d7, 0, 0, 0}, 0x09cc }, // U09CC # BENGALI VOWEL SIGN AU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0a3c, 0x0a16, 0, 0, 0}, 0x0a59 }, // U0A59 # GURMUKHI LETTER KHHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0a3c, 0x0a17, 0, 0, 0}, 0x0a5a }, // U0A5A # GURMUKHI LETTER GHHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0a3c, 0x0a1c, 0, 0, 0}, 0x0a5b }, // U0A5B # GURMUKHI LETTER ZA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0a3c, 0x0a2b, 0, 0, 0}, 0x0a5e }, // U0A5E # GURMUKHI LETTER FA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0a3c, 0x0a32, 0, 0, 0}, 0x0a33 }, // U0A33 # GURMUKHI LETTER LLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0a3c, 0x0a38, 0, 0, 0}, 0x0a36 }, // U0A36 # GURMUKHI LETTER SHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0b3c, 0x0b21, 0, 0, 0}, 0x0b5c }, // U0B5C # ORIYA LETTER RRA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0b3c, 0x0b22, 0, 0, 0}, 0x0b5d }, // U0B5D # ORIYA LETTER RHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0b47, 0x0b3e, 0, 0, 0}, 0x0b4b }, // U0B4B # ORIYA VOWEL SIGN O
++    { {UNITIZE(Qt::Key_Multi_key), 0x0b47, 0x0b56, 0, 0, 0}, 0x0b48 }, // U0B48 # ORIYA VOWEL SIGN AI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0b47, 0x0b57, 0, 0, 0}, 0x0b4c }, // U0B4C # ORIYA VOWEL SIGN AU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0bc6, 0x0bbe, 0, 0, 0}, 0x0bca }, // U0BCA # TAMIL VOWEL SIGN O
++    { {UNITIZE(Qt::Key_Multi_key), 0x0bc6, 0x0bd7, 0, 0, 0}, 0x0bcc }, // U0BCC # TAMIL VOWEL SIGN AU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0bc7, 0x0bbe, 0, 0, 0}, 0x0bcb }, // U0BCB # TAMIL VOWEL SIGN OO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0bd7, 0x0b92, 0, 0, 0}, 0x0b94 }, // U0B94 # TAMIL LETTER AU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0c46, 0x0c56, 0, 0, 0}, 0x0c48 }, // U0C48 # TELUGU VOWEL SIGN AI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0cbf, 0x0cd5, 0, 0, 0}, 0x0cc0 }, // U0CC0 # KANNADA VOWEL SIGN II
++    { {UNITIZE(Qt::Key_Multi_key), 0x0cc6, 0x0cc2, 0, 0, 0}, 0x0cca }, // U0CCA # KANNADA VOWEL SIGN O
++    { {UNITIZE(Qt::Key_Multi_key), 0x0cc6, 0x0cc2, 0x0cd5, 0, 0}, 0x0ccb }, // U0CCB # KANNADA VOWEL SIGN OO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0cc6, 0x0cd5, 0, 0, 0}, 0x0cc7 }, // U0CC7 # KANNADA VOWEL SIGN EE
++    { {UNITIZE(Qt::Key_Multi_key), 0x0cc6, 0x0cd6, 0, 0, 0}, 0x0cc8 }, // U0CC8 # KANNADA VOWEL SIGN AI
++    { {UNITIZE(Qt::Key_Multi_key), 0x0cca, 0x0cd5, 0, 0, 0}, 0x0ccb }, // U0CCB # KANNADA VOWEL SIGN OO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0d46, 0x0d3e, 0, 0, 0}, 0x0d4a }, // U0D4A # MALAYALAM VOWEL SIGN O
++    { {UNITIZE(Qt::Key_Multi_key), 0x0d46, 0x0d57, 0, 0, 0}, 0x0d4c }, // U0D4C # MALAYALAM VOWEL SIGN AU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0d47, 0x0d3e, 0, 0, 0}, 0x0d4b }, // U0D4B # MALAYALAM VOWEL SIGN OO
++    { {UNITIZE(Qt::Key_Multi_key), 0x0dd9, 0x0dca, 0, 0, 0}, 0x0dda }, // U0DDA # SINHALA VOWEL SIGN DIGA KOMBUVA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0dd9, 0x0dcf, 0, 0, 0}, 0x0ddc }, // U0DDC # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0dd9, 0x0dcf, 0x0dca, 0, 0}, 0x0ddd }, // U0DDD # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0dd9, 0x0ddf, 0, 0, 0}, 0x0dde }, // U0DDE # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0ddc, 0x0dca, 0, 0, 0}, 0x0ddd }, // U0DDD # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0f71, 0x0f72, 0, 0, 0}, 0x0f73 }, // U0F73 # TIBETAN VOWEL SIGN II
++    { {UNITIZE(Qt::Key_Multi_key), 0x0f71, 0x0f74, 0, 0, 0}, 0x0f75 }, // U0F75 # TIBETAN VOWEL SIGN UU
++    { {UNITIZE(Qt::Key_Multi_key), 0x0f71, 0x0f80, 0, 0, 0}, 0x0f81 }, // U0F81 # TIBETAN VOWEL SIGN REVERSED II
++    { {UNITIZE(Qt::Key_Multi_key), 0x0f90, 0x0fb5, 0, 0, 0}, 0x0fb9 }, // U0FB9 # TIBETAN SUBJOINED LETTER KSSA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0f92, 0x0fb7, 0, 0, 0}, 0x0f93 }, // U0F93 # TIBETAN SUBJOINED LETTER GHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0f9c, 0x0fb7, 0, 0, 0}, 0x0f9d }, // U0F9D # TIBETAN SUBJOINED LETTER DDHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0fa1, 0x0fb7, 0, 0, 0}, 0x0fa2 }, // U0FA2 # TIBETAN SUBJOINED LETTER DHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0fa6, 0x0fb7, 0, 0, 0}, 0x0fa7 }, // U0FA7 # TIBETAN SUBJOINED LETTER BHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0fab, 0x0fb7, 0, 0, 0}, 0x0fac }, // U0FAC # TIBETAN SUBJOINED LETTER DZHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0fb2, 0x0f80, 0, 0, 0}, 0x0f76 }, // U0F76 # TIBETAN VOWEL SIGN VOCALIC R
++    { {UNITIZE(Qt::Key_Multi_key), 0x0fb3, 0x0f80, 0, 0, 0}, 0x0f78 }, // U0F78 # TIBETAN VOWEL SIGN VOCALIC L
++    { {UNITIZE(Qt::Key_Multi_key), 0x0fb5, 0x0f40, 0, 0, 0}, 0x0f69 }, // U0F69 # TIBETAN LETTER KSSA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0fb7, 0x0f42, 0, 0, 0}, 0x0f43 }, // U0F43 # TIBETAN LETTER GHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0fb7, 0x0f4c, 0, 0, 0}, 0x0f4d }, // U0F4D # TIBETAN LETTER DDHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0fb7, 0x0f51, 0, 0, 0}, 0x0f52 }, // U0F52 # TIBETAN LETTER DHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0fb7, 0x0f56, 0, 0, 0}, 0x0f57 }, // U0F57 # TIBETAN LETTER BHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x0fb7, 0x0f5b, 0, 0, 0}, 0x0f5c }, // U0F5C # TIBETAN LETTER DZHA
++    { {UNITIZE(Qt::Key_Multi_key), 0x102e, 0x1025, 0, 0, 0}, 0x1026 }, // U1026 # MYANMAR LETTER UU
++    { {UNITIZE(Qt::Key_Multi_key), 0x1100, 0x1100, 0, 0, 0}, 0x1101 }, // U1101	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1102, 0x1100, 0, 0, 0}, 0x1113 }, // U1113	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1102, 0x1102, 0, 0, 0}, 0x1114 }, // U1114	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1102, 0x1103, 0, 0, 0}, 0x1115 }, // U1115	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1102, 0x1107, 0, 0, 0}, 0x1116 }, // U1116	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1103, 0x1100, 0, 0, 0}, 0x1117 }, // U1117	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1103, 0x1103, 0, 0, 0}, 0x1104 }, // U1104	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1105, 0x1102, 0, 0, 0}, 0x1118 }, // U1118	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1105, 0x1105, 0, 0, 0}, 0x1119 }, // U1119	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1105, 0x110b, 0, 0, 0}, 0x111b }, // U111b	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1105, 0x1112, 0, 0, 0}, 0x111a }, // U111a	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1106, 0x1107, 0, 0, 0}, 0x111c }, // U111c	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1106, 0x110b, 0, 0, 0}, 0x111d }, // U111d	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1100, 0, 0, 0}, 0x111e }, // U111e	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1102, 0, 0, 0}, 0x111f }, // U111f	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1103, 0, 0, 0}, 0x1120 }, // U1120	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1107, 0, 0, 0}, 0x1108 }, // U1108	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1107, 0x110b, 0, 0}, 0x112c }, // U112c	 # �� �� ��  = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1109, 0, 0, 0}, 0x1121 }, // U1121	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1109, 0x1100, 0, 0}, 0x1122 }, // U1122	 # �� �� ��  = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1109, 0x1103, 0, 0}, 0x1123 }, // U1123	 # �� �� ��  = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1109, 0x1107, 0, 0}, 0x1124 }, // U1124	 # �� �� ��  = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1109, 0x1109, 0, 0}, 0x1125 }, // U1125	 # �� �� ��  = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1109, 0x110c, 0, 0}, 0x1126 }, // U1126	 # �� �� ��  = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x110a, 0, 0, 0}, 0x1125 }, // U1125	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x110b, 0, 0, 0}, 0x112b }, // U112b	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x110c, 0, 0, 0}, 0x1127 }, // U1127	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x110e, 0, 0, 0}, 0x1128 }, // U1128	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1110, 0, 0, 0}, 0x1129 }, // U1129	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1111, 0, 0, 0}, 0x112a }, // U112a	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x112b, 0, 0, 0}, 0x112c }, // U112c	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x112d, 0, 0, 0}, 0x1122 }, // U1122	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x112f, 0, 0, 0}, 0x1123 }, // U1123	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1132, 0, 0, 0}, 0x1124 }, // U1124	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1107, 0x1136, 0, 0, 0}, 0x1126 }, // U1126	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1108, 0x110b, 0, 0, 0}, 0x112c }, // U112c	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1100, 0, 0, 0}, 0x112d }, // U112d	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1102, 0, 0, 0}, 0x112e }, // U112e	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1103, 0, 0, 0}, 0x112f }, // U112f	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1105, 0, 0, 0}, 0x1130 }, // U1130	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1106, 0, 0, 0}, 0x1131 }, // U1131	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1107, 0, 0, 0}, 0x1132 }, // U1132	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1107, 0x1100, 0, 0}, 0x1133 }, // U1133	 # �� �� ��  = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1109, 0, 0, 0}, 0x110a }, // U110a	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1109, 0x1109, 0, 0}, 0x1134 }, // U1134	 # �� �� ��  = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x110a, 0, 0, 0}, 0x1134 }, // U1134	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x110b, 0, 0, 0}, 0x1135 }, // U1135	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x110c, 0, 0, 0}, 0x1136 }, // U1136	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x110e, 0, 0, 0}, 0x1137 }, // U1137	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x110f, 0, 0, 0}, 0x1138 }, // U1138	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1110, 0, 0, 0}, 0x1139 }, // U1139	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1111, 0, 0, 0}, 0x113a }, // U113a	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x1112, 0, 0, 0}, 0x113b }, // U113b	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1109, 0x111e, 0, 0, 0}, 0x1133 }, // U1133	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110a, 0x1109, 0, 0, 0}, 0x1134 }, // U1134	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110b, 0x1100, 0, 0, 0}, 0x1141 }, // U1141	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110b, 0x1103, 0, 0, 0}, 0x1142 }, // U1142	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110b, 0x1106, 0, 0, 0}, 0x1143 }, // U1143	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110b, 0x1107, 0, 0, 0}, 0x1144 }, // U1144	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110b, 0x1109, 0, 0, 0}, 0x1145 }, // U1145	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110b, 0x110b, 0, 0, 0}, 0x1147 }, // U1147	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110b, 0x110c, 0, 0, 0}, 0x1148 }, // U1148	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110b, 0x110e, 0, 0, 0}, 0x1149 }, // U1149	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110b, 0x1110, 0, 0, 0}, 0x114a }, // U114a	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110b, 0x1111, 0, 0, 0}, 0x114b }, // U114b	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110b, 0x1140, 0, 0, 0}, 0x1146 }, // U1146	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110c, 0x110b, 0, 0, 0}, 0x114d }, // U114d	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110c, 0x110c, 0, 0, 0}, 0x110d }, // U110d	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110e, 0x110f, 0, 0, 0}, 0x1152 }, // U1152	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x110e, 0x1112, 0, 0, 0}, 0x1153 }, // U1153	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1111, 0x1107, 0, 0, 0}, 0x1156 }, // U1156	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1111, 0x110b, 0, 0, 0}, 0x1157 }, // U1157	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1112, 0x1112, 0, 0, 0}, 0x1158 }, // U1158	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1121, 0x1100, 0, 0, 0}, 0x1122 }, // U1122	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1121, 0x1103, 0, 0, 0}, 0x1123 }, // U1123	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1121, 0x1107, 0, 0, 0}, 0x1124 }, // U1124	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1121, 0x1109, 0, 0, 0}, 0x1125 }, // U1125	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1121, 0x110c, 0, 0, 0}, 0x1126 }, // U1126	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1132, 0x1100, 0, 0, 0}, 0x1133 }, // U1133	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x113c, 0x113c, 0, 0, 0}, 0x113d }, // U113d	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x113e, 0x113e, 0, 0, 0}, 0x113f }, // U113f	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x114e, 0x114e, 0, 0, 0}, 0x114f }, // U114f	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1150, 0x1150, 0, 0, 0}, 0x1151 }, // U1151	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1161, 0x1169, 0, 0, 0}, 0x1176 }, // U1176	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1161, 0x116e, 0, 0, 0}, 0x1177 }, // U1177	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1161, 0x1175, 0, 0, 0}, 0x1162 }, // U1162	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1163, 0x1169, 0, 0, 0}, 0x1178 }, // U1178	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1163, 0x116d, 0, 0, 0}, 0x1179 }, // U1179	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1163, 0x1175, 0, 0, 0}, 0x1164 }, // U1164	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1165, 0x1169, 0, 0, 0}, 0x117a }, // U117a	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1165, 0x116e, 0, 0, 0}, 0x117b }, // U117b	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1165, 0x1173, 0, 0, 0}, 0x117c }, // U117c	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1165, 0x1175, 0, 0, 0}, 0x1166 }, // U1166	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1167, 0x1169, 0, 0, 0}, 0x117d }, // U117d	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1167, 0x116e, 0, 0, 0}, 0x117e }, // U117e	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1167, 0x1175, 0, 0, 0}, 0x1168 }, // U1168	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1169, 0x1161, 0, 0, 0}, 0x116a }, // U116a	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1169, 0x1161, 0x1175, 0, 0}, 0x116b }, // U116b	 # �� �� ��  = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1169, 0x1162, 0, 0, 0}, 0x116b }, // U116b	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1169, 0x1165, 0, 0, 0}, 0x117f }, // U117f	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1169, 0x1166, 0, 0, 0}, 0x1180 }, // U1180	 # �� ��   = ߠ
++    { {UNITIZE(Qt::Key_Multi_key), 0x1169, 0x1168, 0, 0, 0}, 0x1181 }, // U1181	 # �� ��   = ߡ
++    { {UNITIZE(Qt::Key_Multi_key), 0x1169, 0x1169, 0, 0, 0}, 0x1182 }, // U1182	 # �� ��   = ߢ
++    { {UNITIZE(Qt::Key_Multi_key), 0x1169, 0x116e, 0, 0, 0}, 0x1183 }, // U1183	 # �� ��   = ߣ
++    { {UNITIZE(Qt::Key_Multi_key), 0x1169, 0x1175, 0, 0, 0}, 0x116c }, // U116c	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x116a, 0x1175, 0, 0, 0}, 0x116b }, // U116b	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x116d, 0x1163, 0, 0, 0}, 0x1184 }, // U1184	 # �� ��   = ߤ
++    { {UNITIZE(Qt::Key_Multi_key), 0x116d, 0x1164, 0, 0, 0}, 0x1185 }, // U1185	 # �� ��   = ߥ
++    { {UNITIZE(Qt::Key_Multi_key), 0x116d, 0x1167, 0, 0, 0}, 0x1186 }, // U1186	 # �� ��   = ߦ
++    { {UNITIZE(Qt::Key_Multi_key), 0x116d, 0x1169, 0, 0, 0}, 0x1187 }, // U1187	 # �� ��   = ߧ
++    { {UNITIZE(Qt::Key_Multi_key), 0x116d, 0x1175, 0, 0, 0}, 0x1188 }, // U1188	 # �� ��   = ߨ
++    { {UNITIZE(Qt::Key_Multi_key), 0x116e, 0x1161, 0, 0, 0}, 0x1189 }, // U1189	 # �� ��   = ߩ
++    { {UNITIZE(Qt::Key_Multi_key), 0x116e, 0x1162, 0, 0, 0}, 0x118a }, // U118a	 # �� ��   = ߪ
++    { {UNITIZE(Qt::Key_Multi_key), 0x116e, 0x1165, 0, 0, 0}, 0x116f }, // U116f	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x116e, 0x1165, 0x1173, 0, 0}, 0x118b }, // U118b	 # �� �� ��  = ߫
++    { {UNITIZE(Qt::Key_Multi_key), 0x116e, 0x1165, 0x1175, 0, 0}, 0x1170 }, // U1170	 # �� �� ��  = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x116e, 0x1166, 0, 0, 0}, 0x1170 }, // U1170	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x116e, 0x1168, 0, 0, 0}, 0x118c }, // U118c	 # �� ��   = ߬
++    { {UNITIZE(Qt::Key_Multi_key), 0x116e, 0x116e, 0, 0, 0}, 0x118d }, // U118d	 # �� ��   = ߭
++    { {UNITIZE(Qt::Key_Multi_key), 0x116e, 0x1175, 0, 0, 0}, 0x1171 }, // U1171	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x116e, 0x117c, 0, 0, 0}, 0x118b }, // U118b	 # �� ��   = ߫
++    { {UNITIZE(Qt::Key_Multi_key), 0x116f, 0x1173, 0, 0, 0}, 0x118b }, // U118b	 # �� ��   = ߫
++    { {UNITIZE(Qt::Key_Multi_key), 0x116f, 0x1175, 0, 0, 0}, 0x1170 }, // U1170	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1172, 0x1161, 0, 0, 0}, 0x118e }, // U118e	 # �� ��   = ߮
++    { {UNITIZE(Qt::Key_Multi_key), 0x1172, 0x1165, 0, 0, 0}, 0x118f }, // U118f	 # �� ��   = ߯
++    { {UNITIZE(Qt::Key_Multi_key), 0x1172, 0x1166, 0, 0, 0}, 0x1190 }, // U1190	 # �� ��   = ߰
++    { {UNITIZE(Qt::Key_Multi_key), 0x1172, 0x1167, 0, 0, 0}, 0x1191 }, // U1191	 # �� ��   = ߱
++    { {UNITIZE(Qt::Key_Multi_key), 0x1172, 0x1168, 0, 0, 0}, 0x1192 }, // U1192	 # �� ��   = ߲
++    { {UNITIZE(Qt::Key_Multi_key), 0x1172, 0x116e, 0, 0, 0}, 0x1193 }, // U1193	 # �� ��   = ߳
++    { {UNITIZE(Qt::Key_Multi_key), 0x1172, 0x1175, 0, 0, 0}, 0x1194 }, // U1194	 # �� ��   = ߴ
++    { {UNITIZE(Qt::Key_Multi_key), 0x1173, 0x116e, 0, 0, 0}, 0x1195 }, // U1195	 # �� ��   = ߵ
++    { {UNITIZE(Qt::Key_Multi_key), 0x1173, 0x1173, 0, 0, 0}, 0x1196 }, // U1196	 # �� ��   = ߶
++    { {UNITIZE(Qt::Key_Multi_key), 0x1173, 0x1175, 0, 0, 0}, 0x1174 }, // U1174	 # �� ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x1174, 0x116e, 0, 0, 0}, 0x1197 }, // U1197	 # �� ��   = ߷
++    { {UNITIZE(Qt::Key_Multi_key), 0x1175, 0x1161, 0, 0, 0}, 0x1198 }, // U1198	 # �� ��   = ߸
++    { {UNITIZE(Qt::Key_Multi_key), 0x1175, 0x1163, 0, 0, 0}, 0x1199 }, // U1199	 # �� ��   = ߹
++    { {UNITIZE(Qt::Key_Multi_key), 0x1175, 0x1169, 0, 0, 0}, 0x119a }, // U119a	 # �� ��   = ߺ
++    { {UNITIZE(Qt::Key_Multi_key), 0x1175, 0x116e, 0, 0, 0}, 0x119b }, // U119b	 # �� ��   = ߻
++    { {UNITIZE(Qt::Key_Multi_key), 0x1175, 0x1173, 0, 0, 0}, 0x119c }, // U119c	 # �� ��   = ߼
++    { {UNITIZE(Qt::Key_Multi_key), 0x1175, 0x119e, 0, 0, 0}, 0x119d }, // U119d	 # �� ߾   = ߽
++    { {UNITIZE(Qt::Key_Multi_key), 0x119e, 0x1165, 0, 0, 0}, 0x119f }, // U119f	 # ߾ ��   = ߿
++    { {UNITIZE(Qt::Key_Multi_key), 0x119e, 0x116e, 0, 0, 0}, 0x11a0 }, // U11a0	 # ߾ ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x119e, 0x1175, 0, 0, 0}, 0x11a1 }, // U11a1	 # ߾ ��   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x119e, 0x119e, 0, 0, 0}, 0x11a2 }, // U11a2	 # ߾ ߾   = ��
++    { {UNITIZE(Qt::Key_Multi_key), 0x11a8, 0x11a8, 0, 0, 0}, 0x11a9 }, // U11a9	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11a8, 0x11af, 0, 0, 0}, 0x11c3 }, // U11c3	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11a8, 0x11ba, 0, 0, 0}, 0x11aa }, // U11aa	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11a8, 0x11ba, 0x11a8, 0, 0}, 0x11c4 }, // U11c4	 # ��� ��� ���  = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11a8, 0x11e7, 0, 0, 0}, 0x11c4 }, // U11c4	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11aa, 0x11a8, 0, 0, 0}, 0x11c4 }, // U11c4	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ab, 0x11a8, 0, 0, 0}, 0x11c5 }, // U11c5	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ab, 0x11ae, 0, 0, 0}, 0x11c6 }, // U11c6	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ab, 0x11ba, 0, 0, 0}, 0x11c7 }, // U11c7	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ab, 0x11bd, 0, 0, 0}, 0x11ac }, // U11ac	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ab, 0x11c0, 0, 0, 0}, 0x11c9 }, // U11c9	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ab, 0x11c2, 0, 0, 0}, 0x11ad }, // U11ad	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ab, 0x11eb, 0, 0, 0}, 0x11c8 }, // U11c8	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ae, 0x11a8, 0, 0, 0}, 0x11ca }, // U11ca	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ae, 0x11af, 0, 0, 0}, 0x11cb }, // U11cb	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11a8, 0, 0, 0}, 0x11b0 }, // U11b0	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11a8, 0x11ba, 0, 0}, 0x11cc }, // U11cc	 # ��� ��� ���  = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11aa, 0, 0, 0}, 0x11cc }, // U11cc	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11ab, 0, 0, 0}, 0x11cd }, // U11cd	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11ae, 0, 0, 0}, 0x11ce }, // U11ce	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11ae, 0x11c2, 0, 0}, 0x11cf }, // U11cf	 # ��� ��� ���  = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11af, 0, 0, 0}, 0x11d0 }, // U11d0	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11b7, 0, 0, 0}, 0x11b1 }, // U11b1	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11b7, 0x11a8, 0, 0}, 0x11d1 }, // U11d1	 # ��� ��� ���  = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11b7, 0x11ba, 0, 0}, 0x11d2 }, // U11d2	 # ��� ��� ���  = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11b8, 0, 0, 0}, 0x11b2 }, // U11b2	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11b8, 0x11ba, 0, 0}, 0x11d3 }, // U11d3	 # ��� ��� ���  = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11b8, 0x11bc, 0, 0}, 0x11d5 }, // U11d5	 # ��� ��� ���  = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11b8, 0x11c2, 0, 0}, 0x11d4 }, // U11d4	 # ��� ��� ���  = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11b9, 0, 0, 0}, 0x11d3 }, // U11d3	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11ba, 0, 0, 0}, 0x11b3 }, // U11b3	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11ba, 0x11ba, 0, 0}, 0x11d6 }, // U11d6	 # ��� ��� ���  = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11bb, 0, 0, 0}, 0x11d6 }, // U11d6	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11bf, 0, 0, 0}, 0x11d8 }, // U11d8	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11c0, 0, 0, 0}, 0x11b4 }, // U11b4	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11c1, 0, 0, 0}, 0x11b5 }, // U11b5	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11c2, 0, 0, 0}, 0x11b6 }, // U11b6	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11da, 0, 0, 0}, 0x11d1 }, // U11d1	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11dd, 0, 0, 0}, 0x11d2 }, // U11d2	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11e5, 0, 0, 0}, 0x11d4 }, // U11d4	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11e6, 0, 0, 0}, 0x11d5 }, // U11d5	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11eb, 0, 0, 0}, 0x11d7 }, // U11d7	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11af, 0x11f9, 0, 0, 0}, 0x11d9 }, // U11d9	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b0, 0x11ba, 0, 0, 0}, 0x11cc }, // U11cc	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b1, 0x11a8, 0, 0, 0}, 0x11d1 }, // U11d1	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b1, 0x11ba, 0, 0, 0}, 0x11d2 }, // U11d2	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b2, 0x11ba, 0, 0, 0}, 0x11d3 }, // U11d3	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b2, 0x11bc, 0, 0, 0}, 0x11d5 }, // U11d5	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b2, 0x11c2, 0, 0, 0}, 0x11d4 }, // U11d4	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b3, 0x11ba, 0, 0, 0}, 0x11d6 }, // U11d6	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b7, 0x11a8, 0, 0, 0}, 0x11da }, // U11da	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b7, 0x11af, 0, 0, 0}, 0x11db }, // U11db	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b7, 0x11b8, 0, 0, 0}, 0x11dc }, // U11dc	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b7, 0x11ba, 0, 0, 0}, 0x11dd }, // U11dd	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b7, 0x11ba, 0x11ba, 0, 0}, 0x11de }, // U11de	 # ��� ��� ���  = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b7, 0x11bb, 0, 0, 0}, 0x11de }, // U11de	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b7, 0x11bc, 0, 0, 0}, 0x11e2 }, // U11e2	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b7, 0x11be, 0, 0, 0}, 0x11e0 }, // U11e0	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b7, 0x11c2, 0, 0, 0}, 0x11e1 }, // U11e1	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b7, 0x11eb, 0, 0, 0}, 0x11df }, // U11df	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b8, 0x11af, 0, 0, 0}, 0x11e3 }, // U11e3	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b8, 0x11ba, 0, 0, 0}, 0x11b9 }, // U11b9	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b8, 0x11bc, 0, 0, 0}, 0x11e6 }, // U11e6	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b8, 0x11c1, 0, 0, 0}, 0x11e4 }, // U11e4	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11b8, 0x11c2, 0, 0, 0}, 0x11e5 }, // U11e5	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ba, 0x11a8, 0, 0, 0}, 0x11e7 }, // U11e7	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ba, 0x11ae, 0, 0, 0}, 0x11e8 }, // U11e8	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ba, 0x11af, 0, 0, 0}, 0x11e9 }, // U11e9	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ba, 0x11b8, 0, 0, 0}, 0x11ea }, // U11ea	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ba, 0x11ba, 0, 0, 0}, 0x11bb }, // U11bb	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11bc, 0x11a8, 0, 0, 0}, 0x11ec }, // U11ec	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11bc, 0x11a8, 0x11a8, 0, 0}, 0x11ed }, // U11ed	 # ��� ��� ���  = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11bc, 0x11a9, 0, 0, 0}, 0x11ed }, // U11ed	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11bc, 0x11bc, 0, 0, 0}, 0x11ee }, // U11ee	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11bc, 0x11bf, 0, 0, 0}, 0x11ef }, // U11ef	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11c1, 0x11b8, 0, 0, 0}, 0x11f3 }, // U11f3	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11c1, 0x11bc, 0, 0, 0}, 0x11f4 }, // U11f4	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11c2, 0x11ab, 0, 0, 0}, 0x11f5 }, // U11f5	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11c2, 0x11af, 0, 0, 0}, 0x11f6 }, // U11f6	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11c2, 0x11b7, 0, 0, 0}, 0x11f7 }, // U11f7	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11c2, 0x11b8, 0, 0, 0}, 0x11f8 }, // U11f8	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ce, 0x11c2, 0, 0, 0}, 0x11cf }, // U11cf	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11dd, 0x11ba, 0, 0, 0}, 0x11de }, // U11de	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11ec, 0x11a8, 0, 0, 0}, 0x11ed }, // U11ed	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11f0, 0x11ba, 0, 0, 0}, 0x11f1 }, // U11f1	 # ��� ���   = ���
++    { {UNITIZE(Qt::Key_Multi_key), 0x11f0, 0x11eb, 0, 0, 0}, 0x11f2 }, // U11f2	 # ��� ���   = ���
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d157, 0x1d165, 0, 0, 0}, 0xd15e }, // U1D15E # MUSICAL SYMBOL HALF NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d158, 0x1d165, 0, 0, 0}, 0xd15f }, // U1D15F # MUSICAL SYMBOL QUARTER NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d158, 0x1d165, 0x1d16e, 0, 0}, 0xd160 }, // U1D160 # MUSICAL SYMBOL EIGHTH NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d158, 0x1d165, 0x1d16f, 0, 0}, 0xd161 }, // U1D161 # MUSICAL SYMBOL SIXTEENTH NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d158, 0x1d165, 0x1d170, 0, 0}, 0xd162 }, // U1D162 # MUSICAL SYMBOL THIRTY-SECOND NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d158, 0x1d165, 0x1d171, 0, 0}, 0xd163 }, // U1D163 # MUSICAL SYMBOL SIXTY-FOURTH NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d158, 0x1d165, 0x1d172, 0, 0}, 0xd164 }, // U1D164 # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d15f, 0x1d16e, 0, 0, 0}, 0xd160 }, // U1D160 # MUSICAL SYMBOL EIGHTH NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d15f, 0x1d16f, 0, 0, 0}, 0xd161 }, // U1D161 # MUSICAL SYMBOL SIXTEENTH NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d15f, 0x1d170, 0, 0, 0}, 0xd162 }, // U1D162 # MUSICAL SYMBOL THIRTY-SECOND NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d15f, 0x1d171, 0, 0, 0}, 0xd163 }, // U1D163 # MUSICAL SYMBOL SIXTY-FOURTH NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d15f, 0x1d172, 0, 0, 0}, 0xd164 }, // U1D164 # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d1b9, 0x1d165, 0, 0, 0}, 0xd1bb }, // U1D1BB # MUSICAL SYMBOL MINIMA
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d1b9, 0x1d165, 0x1d16e, 0, 0}, 0xd1bd }, // U1D1BD # MUSICAL SYMBOL SEMIMINIMA WHITE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d1b9, 0x1d165, 0x1d16f, 0, 0}, 0xd1bf }, // U1D1BF # MUSICAL SYMBOL FUSA WHITE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d1ba, 0x1d165, 0, 0, 0}, 0xd1bc }, // U1D1BC # MUSICAL SYMBOL MINIMA BLACK
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d1ba, 0x1d165, 0x1d16e, 0, 0}, 0xd1be }, // U1D1BE # MUSICAL SYMBOL SEMIMINIMA BLACK
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d1ba, 0x1d165, 0x1d16f, 0, 0}, 0xd1c0 }, // U1D1C0 # MUSICAL SYMBOL FUSA BLACK
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d1bb, 0x1d16e, 0, 0, 0}, 0xd1bd }, // U1D1BD # MUSICAL SYMBOL SEMIMINIMA WHITE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d1bb, 0x1d16f, 0, 0, 0}, 0xd1bf }, // U1D1BF # MUSICAL SYMBOL FUSA WHITE
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d1bc, 0x1d16e, 0, 0, 0}, 0xd1be }, // U1D1BE # MUSICAL SYMBOL SEMIMINIMA BLACK
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1d1bc, 0x1d16f, 0, 0, 0}, 0xd1c0 }, // U1D1C0 # MUSICAL SYMBOL FUSA BLACK
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1fbf, 0x0000, 0, 0, 0}, 0x1fcd }, // U1FCD # GREEK PSILI AND VARIA
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1fbf, 0x0000, 0, 0, 0}, 0x1fce }, // U1FCE # GREEK PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1fbf, 0x0027, 0, 0, 0}, 0x1fce }, // U1FCE # GREEK PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1fbf, 0x0060, 0, 0, 0}, 0x1fcd }, // U1FCD # GREEK PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1fbf, 0x007e, 0, 0, 0}, 0x1fcf }, // U1FCF # GREEK PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x1fbf, 0x00b4, 0, 0, 0}, 0x1fce }, // U1FCE # GREEK PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1fbf, 0x0342, 0, 0, 0}, 0x1fcf }, // U1FCF # GREEK PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x1fbf, UNITIZE(Qt::Key_Dead_Grave), 0, 0, 0}, 0x1fcd }, // U1FCD # GREEK PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1fbf, UNITIZE(Qt::Key_Dead_Acute), 0, 0, 0}, 0x1fce }, // U1FCE # GREEK PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1fbf, UNITIZE(Qt::Key_Dead_Tilde), 0, 0, 0}, 0x1fcf }, // U1FCF # GREEK PSILI AND PERISPOMENI
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1ffe, 0x0000, 0, 0, 0}, 0x1fdd }, // U1FDD # GREEK DASIA AND VARIA
++// /* broken */    { {UNITIZE(Qt::Key_Multi_key), 0x1ffe, 0x0000, 0, 0, 0}, 0x1fde }, // U1FDE # GREEK DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1ffe, 0x0027, 0, 0, 0}, 0x1fde }, // U1FDE # GREEK DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1ffe, 0x0060, 0, 0, 0}, 0x1fdd }, // U1FDD # GREEK DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1ffe, 0x007e, 0, 0, 0}, 0x1fdf }, // U1FDF # GREEK DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x1ffe, 0x00b4, 0, 0, 0}, 0x1fde }, // U1FDE # GREEK DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1ffe, 0x0342, 0, 0, 0}, 0x1fdf }, // U1FDF # GREEK DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x1ffe, UNITIZE(Qt::Key_Dead_Grave), 0, 0, 0}, 0x1fdd }, // U1FDD # GREEK DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1ffe, UNITIZE(Qt::Key_Dead_Acute), 0, 0, 0}, 0x1fde }, // U1FDE # GREEK DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Multi_key), 0x1ffe, UNITIZE(Qt::Key_Dead_Tilde), 0, 0, 0}, 0x1fdf }, // U1FDF # GREEK DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Multi_key), 0x2203, 0x0338, 0, 0, 0}, 0x2204 }, // U2204 # THERE DOES NOT EXIST
++    { {UNITIZE(Qt::Key_Multi_key), 0x2208, 0x0338, 0, 0, 0}, 0x2209 }, // U2209 # NOT AN ELEMENT OF
++    { {UNITIZE(Qt::Key_Multi_key), 0x220b, 0x0338, 0, 0, 0}, 0x220c }, // U220C # DOES NOT CONTAIN AS MEMBER
++    { {UNITIZE(Qt::Key_Multi_key), 0x2223, 0x0338, 0, 0, 0}, 0x2224 }, // U2224 # DOES NOT DIVIDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x2225, 0x0338, 0, 0, 0}, 0x2226 }, // U2226 # NOT PARALLEL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x223c, 0x0338, 0, 0, 0}, 0x2241 }, // U2241 # NOT TILDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x223c, 0x0338, 0, 0, 0}, 0x2247 }, // U2247 # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x2243, 0x0338, 0, 0, 0}, 0x2244 }, // U2244 # NOT ASYMPTOTICALLY EQUAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x2248, 0x0338, 0, 0, 0}, 0x2249 }, // U2249 # NOT ALMOST EQUAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x224d, 0x0338, 0, 0, 0}, 0x226d }, // U226D # NOT EQUIVALENT TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x2261, 0x0338, 0, 0, 0}, 0x2262 }, // U2262 # NOT IDENTICAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x2264, 0x0338, 0, 0, 0}, 0x2270 }, // U2270 # NEITHER LESS-THAN NOR EQUAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x2265, 0x0338, 0, 0, 0}, 0x2271 }, // U2271 # NEITHER GREATER-THAN NOR EQUAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x2272, 0x0338, 0, 0, 0}, 0x2274 }, // U2274 # NEITHER LESS-THAN NOR EQUIVALENT TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x2273, 0x0338, 0, 0, 0}, 0x2275 }, // U2275 # NEITHER GREATER-THAN NOR EQUIVALENT TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x2276, 0x0338, 0, 0, 0}, 0x2278 }, // U2278 # NEITHER LESS-THAN NOR GREATER-THAN
++    { {UNITIZE(Qt::Key_Multi_key), 0x2277, 0x0338, 0, 0, 0}, 0x2279 }, // U2279 # NEITHER GREATER-THAN NOR LESS-THAN
++    { {UNITIZE(Qt::Key_Multi_key), 0x227a, 0x0338, 0, 0, 0}, 0x2280 }, // U2280 # DOES NOT PRECEDE
++    { {UNITIZE(Qt::Key_Multi_key), 0x227b, 0x0338, 0, 0, 0}, 0x2281 }, // U2281 # DOES NOT SUCCEED
++    { {UNITIZE(Qt::Key_Multi_key), 0x227c, 0x0338, 0, 0, 0}, 0x22e0 }, // U22E0 # DOES NOT PRECEDE OR EQUAL
++    { {UNITIZE(Qt::Key_Multi_key), 0x227d, 0x0338, 0, 0, 0}, 0x22e1 }, // U22E1 # DOES NOT SUCCEED OR EQUAL
++    { {UNITIZE(Qt::Key_Multi_key), 0x2282, 0x0338, 0, 0, 0}, 0x2284 }, // U2284 # NOT A SUBSET OF
++    { {UNITIZE(Qt::Key_Multi_key), 0x2282, 0x0338, 0, 0, 0}, 0x2284 }, // U2284 # NOT A SUBSET OF
++    { {UNITIZE(Qt::Key_Multi_key), 0x2283, 0x0338, 0, 0, 0}, 0x2285 }, // U2285 # NOT A SUPERSET OF
++    { {UNITIZE(Qt::Key_Multi_key), 0x2283, 0x0338, 0, 0, 0}, 0x2285 }, // U2285 # NOT A SUPERSET OF
++    { {UNITIZE(Qt::Key_Multi_key), 0x2286, 0x0338, 0, 0, 0}, 0x2288 }, // U2288 # NEITHER A SUBSET OF NOR EQUAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x2287, 0x0338, 0, 0, 0}, 0x2289 }, // U2289 # NEITHER A SUPERSET OF NOR EQUAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x2291, 0x0338, 0, 0, 0}, 0x22e2 }, // U22E2 # NOT SQUARE IMAGE OF OR EQUAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x2292, 0x0338, 0, 0, 0}, 0x22e3 }, // U22E3 # NOT SQUARE ORIGINAL OF OR EQUAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x22a3, 0x0338, 0, 0, 0}, 0x22ac }, // U22AC # DOES NOT PROVE
++    { {UNITIZE(Qt::Key_Multi_key), 0x22a8, 0x0338, 0, 0, 0}, 0x22ad }, // U22AD # NOT TRUE
++    { {UNITIZE(Qt::Key_Multi_key), 0x22a9, 0x0338, 0, 0, 0}, 0x22ae }, // U22AE # DOES NOT FORCE
++    { {UNITIZE(Qt::Key_Multi_key), 0x22ab, 0x0338, 0, 0, 0}, 0x22af }, // U22AF # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
++    { {UNITIZE(Qt::Key_Multi_key), 0x22b2, 0x0338, 0, 0, 0}, 0x22ea }, // U22EA # NOT NORMAL SUBGROUP OF
++    { {UNITIZE(Qt::Key_Multi_key), 0x22b3, 0x0338, 0, 0, 0}, 0x22eb }, // U22EB # DOES NOT CONTAIN AS NORMAL SUBGROUP
++    { {UNITIZE(Qt::Key_Multi_key), 0x22b4, 0x0338, 0, 0, 0}, 0x22ec }, // U22EC # NOT NORMAL SUBGROUP OF OR EQUAL TO
++    { {UNITIZE(Qt::Key_Multi_key), 0x22b5, 0x0338, 0, 0, 0}, 0x22ed }, // U22ED # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
++    { {UNITIZE(Qt::Key_Multi_key), 0x2add, 0x0338, 0, 0, 0}, 0x2adc }, // U2ADC # FORKING
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Grave), 0x0000, 0, 0, 0, 0}, 0x1eeb }, // U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Grave), 0x0000, 0, 0, 0, 0}, 0x1edd }, // U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Grave), 0x0000, 0, 0, 0, 0}, 0x1edc }, // U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Grave), 0x0000, 0, 0, 0, 0}, 0x1eea }, // U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0020, 0, 0, 0, 0}, 0x0060 }, // grave
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0041, 0, 0, 0, 0}, 0x00c0 }, // U00C0 # LATIN CAPITAL LETTER A WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0045, 0, 0, 0, 0}, 0x00c8 }, // U00C8 # LATIN CAPITAL LETTER E WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0049, 0, 0, 0, 0}, 0x00cc }, // U00CC # LATIN CAPITAL LETTER I WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x004e, 0, 0, 0, 0}, 0x01f8 }, // U01F8 # LATIN CAPITAL LETTER N WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x004f, 0, 0, 0, 0}, 0x00d2 }, // U00D2 # LATIN CAPITAL LETTER O WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0055, 0, 0, 0, 0}, 0x00d9 }, // U00D9 # LATIN CAPITAL LETTER U WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0057, 0, 0, 0, 0}, 0x1e80 }, // U1E80 # LATIN CAPITAL LETTER W WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0059, 0, 0, 0, 0}, 0x1ef2 }, // U1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0061, 0, 0, 0, 0}, 0x00e0 }, // U00E0 # LATIN SMALL LETTER A WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0065, 0, 0, 0, 0}, 0x00e8 }, // U00E8 # LATIN SMALL LETTER E WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0069, 0, 0, 0, 0}, 0x00ec }, // U00EC # LATIN SMALL LETTER I WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x006e, 0, 0, 0, 0}, 0x01f9 }, // U01F9 # LATIN SMALL LETTER N WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x006f, 0, 0, 0, 0}, 0x00f2 }, // U00F2 # LATIN SMALL LETTER O WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0075, 0, 0, 0, 0}, 0x00f9 }, // U00F9 # LATIN SMALL LETTER U WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0077, 0, 0, 0, 0}, 0x1e81 }, // U1E81 # LATIN SMALL LETTER W WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0079, 0, 0, 0, 0}, 0x1ef3 }, // U1EF3 # LATIN SMALL LETTER Y WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x00c2, 0, 0, 0, 0}, 0x1ea6 }, // U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x00ca, 0, 0, 0, 0}, 0x1ec0 }, // U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x00d4, 0, 0, 0, 0}, 0x1ed2 }, // U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x00dc, 0, 0, 0, 0}, 0x01db }, // U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x00e2, 0, 0, 0, 0}, 0x1ea7 }, // U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x00ea, 0, 0, 0, 0}, 0x1ec1 }, // U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x00f4, 0, 0, 0, 0}, 0x1ed3 }, // U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x00fc, 0, 0, 0, 0}, 0x01dc }, // U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0102, 0, 0, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0103, 0, 0, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0112, 0, 0, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0113, 0, 0, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x014c, 0, 0, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x014d, 0, 0, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x01A0, 0, 0, 0, 0}, 0x1edc }, // U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x01A1, 0, 0, 0, 0}, 0x1edd }, // U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x01AF, 0, 0, 0, 0}, 0x1eea }, // U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x01B0, 0, 0, 0, 0}, 0x1eeb }, // U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x0391, 0, 0, 0}, 0x1f0a }, // U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x0395, 0, 0, 0}, 0x1f1a }, // U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x0397, 0, 0, 0}, 0x1f2a }, // U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x0399, 0, 0, 0}, 0x1f3a }, // U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x039f, 0, 0, 0}, 0x1f4a }, // U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03a9, 0, 0, 0}, 0x1f6a }, // U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03b1, 0, 0, 0}, 0x1f02 }, // U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03b5, 0, 0, 0}, 0x1f12 }, // U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03b7, 0, 0, 0}, 0x1f22 }, // U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03b9, 0, 0, 0}, 0x1f32 }, // U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03bf, 0, 0, 0}, 0x1f42 }, // U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03c5, 0, 0, 0}, 0x1f52 }, // U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0313, 0x03c9, 0, 0, 0}, 0x1f62 }, // U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x0391, 0, 0, 0}, 0x1f0b }, // U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x0395, 0, 0, 0}, 0x1f1b }, // U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x0397, 0, 0, 0}, 0x1f2b }, // U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x0399, 0, 0, 0}, 0x1f3b }, // U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x039f, 0, 0, 0}, 0x1f4b }, // U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03a5, 0, 0, 0}, 0x1f5b }, // U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03a9, 0, 0, 0}, 0x1f6b }, // U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03b1, 0, 0, 0}, 0x1f03 }, // U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03b5, 0, 0, 0}, 0x1f13 }, // U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03b7, 0, 0, 0}, 0x1f23 }, // U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03b9, 0, 0, 0}, 0x1f33 }, // U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03bf, 0, 0, 0}, 0x1f43 }, // U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03c5, 0, 0, 0}, 0x1f53 }, // U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0314, 0x03c9, 0, 0, 0}, 0x1f63 }, // U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0391, 0, 0, 0, 0}, 0x1fba }, // U1FBA # GREEK CAPITAL LETTER ALPHA WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0395, 0, 0, 0, 0}, 0x1fc8 }, // U1FC8 # GREEK CAPITAL LETTER EPSILON WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0397, 0, 0, 0, 0}, 0x1fca }, // U1FCA # GREEK CAPITAL LETTER ETA WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0399, 0, 0, 0, 0}, 0x1fda }, // U1FDA # GREEK CAPITAL LETTER IOTA WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x039f, 0, 0, 0, 0}, 0x1ff8 }, // U1FF8 # GREEK CAPITAL LETTER OMICRON WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x03a5, 0, 0, 0, 0}, 0x1fea }, // U1FEA # GREEK CAPITAL LETTER UPSILON WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x03a9, 0, 0, 0, 0}, 0x1ffa }, // U1FFA # GREEK CAPITAL LETTER OMEGA WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x03b1, 0, 0, 0, 0}, 0x1f70 }, // U1F70 # GREEK SMALL LETTER ALPHA WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x03b5, 0, 0, 0, 0}, 0x1f72 }, // U1F72 # GREEK SMALL LETTER EPSILON WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x03b7, 0, 0, 0, 0}, 0x1f74 }, // U1F74 # GREEK SMALL LETTER ETA WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x03b9, 0, 0, 0, 0}, 0x1f76 }, // U1F76 # GREEK SMALL LETTER IOTA WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x03bf, 0, 0, 0, 0}, 0x1f78 }, // U1F78 # GREEK SMALL LETTER OMICRON WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x03c5, 0, 0, 0, 0}, 0x1f7a }, // U1F7A # GREEK SMALL LETTER UPSILON WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x03c9, 0, 0, 0, 0}, 0x1f7c }, // U1F7C # GREEK SMALL LETTER OMEGA WITH VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x03ca, 0, 0, 0, 0}, 0x1fd2 }, // U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x03cb, 0, 0, 0, 0}, 0x1fe2 }, // U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0415, 0, 0, 0, 0}, 0x0400 }, // U0400 # CYRILLIC CAPITAL LETTER IE WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0418, 0, 0, 0, 0}, 0x040d }, // U040D # CYRILLIC CAPITAL LETTER I WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0435, 0, 0, 0, 0}, 0x0450 }, // U0450 # CYRILLIC SMALL LETTER IE WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x0438, 0, 0, 0, 0}, 0x045d }, // U045D # CYRILLIC SMALL LETTER I WITH GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f00, 0, 0, 0, 0}, 0x1f02 }, // U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f01, 0, 0, 0, 0}, 0x1f03 }, // U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f08, 0, 0, 0, 0}, 0x1f0a }, // U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f09, 0, 0, 0, 0}, 0x1f0b }, // U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f10, 0, 0, 0, 0}, 0x1f12 }, // U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f11, 0, 0, 0, 0}, 0x1f13 }, // U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f18, 0, 0, 0, 0}, 0x1f1a }, // U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f19, 0, 0, 0, 0}, 0x1f1b }, // U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f20, 0, 0, 0, 0}, 0x1f22 }, // U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f21, 0, 0, 0, 0}, 0x1f23 }, // U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f28, 0, 0, 0, 0}, 0x1f2a }, // U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f29, 0, 0, 0, 0}, 0x1f2b }, // U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f30, 0, 0, 0, 0}, 0x1f32 }, // U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f31, 0, 0, 0, 0}, 0x1f33 }, // U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f38, 0, 0, 0, 0}, 0x1f3a }, // U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f39, 0, 0, 0, 0}, 0x1f3b }, // U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f40, 0, 0, 0, 0}, 0x1f42 }, // U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f41, 0, 0, 0, 0}, 0x1f43 }, // U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f48, 0, 0, 0, 0}, 0x1f4a }, // U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f49, 0, 0, 0, 0}, 0x1f4b }, // U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f50, 0, 0, 0, 0}, 0x1f52 }, // U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f51, 0, 0, 0, 0}, 0x1f53 }, // U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f59, 0, 0, 0, 0}, 0x1f5b }, // U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f60, 0, 0, 0, 0}, 0x1f62 }, // U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f61, 0, 0, 0, 0}, 0x1f63 }, // U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f68, 0, 0, 0, 0}, 0x1f6a }, // U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), 0x1f69, 0, 0, 0, 0}, 0x1f6b }, // U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0055, 0, 0}, 0x01db }, // U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0075, 0, 0}, 0x01dc }, // U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03b9, 0, 0}, 0x1fd2 }, // U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03c5, 0, 0}, 0x1fe2 }, // U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0391, 0, 0}, 0x1f0b }, // U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0395, 0, 0}, 0x1f1b }, // U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0397, 0, 0}, 0x1f2b }, // U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0399, 0, 0}, 0x1f3b }, // U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x039f, 0, 0}, 0x1f4b }, // U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a5, 0, 0}, 0x1f5b }, // U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a9, 0, 0}, 0x1f6b }, // U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b1, 0, 0}, 0x1f03 }, // U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b5, 0, 0}, 0x1f13 }, // U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b7, 0, 0}, 0x1f23 }, // U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b9, 0, 0}, 0x1f33 }, // U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03bf, 0, 0}, 0x1f43 }, // U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c5, 0, 0}, 0x1f53 }, // U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c9, 0, 0}, 0x1f63 }, // U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0391, 0, 0}, 0x1f0a }, // U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0395, 0, 0}, 0x1f1a }, // U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0397, 0, 0}, 0x1f2a }, // U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0399, 0, 0}, 0x1f3a }, // U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x039f, 0, 0}, 0x1f4a }, // U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03a9, 0, 0}, 0x1f6a }, // U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b1, 0, 0}, 0x1f02 }, // U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b5, 0, 0}, 0x1f12 }, // U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b7, 0, 0}, 0x1f22 }, // U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b9, 0, 0}, 0x1f32 }, // U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03bf, 0, 0}, 0x1f42 }, // U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c5, 0, 0}, 0x1f52 }, // U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c9, 0, 0}, 0x1f62 }, // U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x004f, 0, 0}, 0x1edc }, // U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0055, 0, 0}, 0x1eea }, // U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x006f, 0, 0}, 0x1edd }, // U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0075, 0, 0}, 0x1eeb }, // U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0041, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0061, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0041, 0, 0}, 0x1ea6 }, // U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0045, 0, 0}, 0x1ec0 }, // U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x004f, 0, 0}, 0x1ed2 }, // U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0061, 0, 0}, 0x1ea7 }, // U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0065, 0, 0}, 0x1ec1 }, // U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x006f, 0, 0}, 0x1ed3 }, // U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0045, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x004f, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0065, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006f, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0041, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0061, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0045, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x00af, 0x004f, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0065, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Multi_key), 0x00af, 0x006f, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Grave), 0, 0, 0, 0}, 0x0060 }, // grave
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0, 0}, 0x1ea6 }, // U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0, 0}, 0x1ec0 }, // U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0, 0}, 0x1ed2 }, // U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0, 0}, 0x1ea7 }, // U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0, 0}, 0x1ec1 }, // U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0, 0}, 0x1ed3 }, // U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Macron), 0x0045, 0, 0, 0}, 0x1e14 }, // U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Macron), 0x004f, 0, 0, 0}, 0x1e50 }, // U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Macron), 0x0065, 0, 0, 0}, 0x1e15 }, // U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Macron), 0x006f, 0, 0, 0}, 0x1e51 }, // U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0, 0}, 0x1eb0 }, // U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0, 0}, 0x1eb1 }, // U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0, 0}, 0x01db }, // U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Diaeresis), 0x0075, 0, 0, 0}, 0x01dc }, // U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Diaeresis), 0x03b9, 0, 0, 0}, 0x1fd2 }, // U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Diaeresis), 0x03c5, 0, 0, 0}, 0x1fe2 }, // U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0, 0}, 0x1edc }, // U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0, 0}, 0x1eea }, // U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0, 0}, 0x1edd }, // U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
++    { {UNITIZE(Qt::Key_Dead_Grave), UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0, 0}, 0x1eeb }, // U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Acute), 0x0000, 0, 0, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Acute), 0x0000, 0, 0, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Acute), 0x0000, 0, 0, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Acute), 0x0000, 0, 0, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Acute), 0x0000, 0x004f, 0, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Acute), 0x0000, 0x0055, 0, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Acute), 0x0000, 0x006f, 0, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Acute), 0x0000, 0x0075, 0, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0020, 0, 0, 0, 0}, 0x0027 }, // apostrophe
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0041, 0, 0, 0, 0}, 0x00c1 }, // U00C1 # LATIN CAPITAL LETTER A WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0043, 0, 0, 0, 0}, 0x0106 }, // U0106 # LATIN CAPITAL LETTER C WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0045, 0, 0, 0, 0}, 0x00c9 }, // U00C9 # LATIN CAPITAL LETTER E WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0047, 0, 0, 0, 0}, 0x01f4 }, // U01F4 # LATIN CAPITAL LETTER G WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0049, 0, 0, 0, 0}, 0x00cd }, // U00CD # LATIN CAPITAL LETTER I WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x004b, 0, 0, 0, 0}, 0x1e30 }, // U1E30 # LATIN CAPITAL LETTER K WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x004c, 0, 0, 0, 0}, 0x0139 }, // U0139 # LATIN CAPITAL LETTER L WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x004d, 0, 0, 0, 0}, 0x1e3e }, // U1E3E # LATIN CAPITAL LETTER M WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x004e, 0, 0, 0, 0}, 0x0143 }, // U0143 # LATIN CAPITAL LETTER N WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x004f, 0, 0, 0, 0}, 0x00d3 }, // U00D3 # LATIN CAPITAL LETTER O WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0050, 0, 0, 0, 0}, 0x1e54 }, // U1E54 # LATIN CAPITAL LETTER P WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0052, 0, 0, 0, 0}, 0x0154 }, // U0154 # LATIN CAPITAL LETTER R WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0053, 0, 0, 0, 0}, 0x015a }, // U015A # LATIN CAPITAL LETTER S WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0055, 0, 0, 0, 0}, 0x00da }, // U00DA # LATIN CAPITAL LETTER U WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0057, 0, 0, 0, 0}, 0x1e82 }, // U1E82 # LATIN CAPITAL LETTER W WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0059, 0, 0, 0, 0}, 0x00dd }, // U00DD # LATIN CAPITAL LETTER Y WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x005a, 0, 0, 0, 0}, 0x0179 }, // U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0061, 0, 0, 0, 0}, 0x00e1 }, // U00E1 # LATIN SMALL LETTER A WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0063, 0, 0, 0, 0}, 0x0107 }, // U0107 # LATIN SMALL LETTER C WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0065, 0, 0, 0, 0}, 0x00e9 }, // U00E9 # LATIN SMALL LETTER E WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0067, 0, 0, 0, 0}, 0x01f5 }, // U01F5 # LATIN SMALL LETTER G WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0069, 0, 0, 0, 0}, 0x00ed }, // U00ED # LATIN SMALL LETTER I WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x006b, 0, 0, 0, 0}, 0x1e31 }, // U1E31 # LATIN SMALL LETTER K WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x006c, 0, 0, 0, 0}, 0x013a }, // U013A # LATIN SMALL LETTER L WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x006d, 0, 0, 0, 0}, 0x1e3f }, // U1E3F # LATIN SMALL LETTER M WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x006e, 0, 0, 0, 0}, 0x0144 }, // U0144 # LATIN SMALL LETTER N WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x006f, 0, 0, 0, 0}, 0x00f3 }, // U00F3 # LATIN SMALL LETTER O WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0070, 0, 0, 0, 0}, 0x1e55 }, // U1E55 # LATIN SMALL LETTER P WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0072, 0, 0, 0, 0}, 0x0155 }, // U0155 # LATIN SMALL LETTER R WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0073, 0, 0, 0, 0}, 0x015b }, // U015B # LATIN SMALL LETTER S WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0075, 0, 0, 0, 0}, 0x00fa }, // U00FA # LATIN SMALL LETTER U WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0077, 0, 0, 0, 0}, 0x1e83 }, // U1E83 # LATIN SMALL LETTER W WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0079, 0, 0, 0, 0}, 0x00fd }, // U00FD # LATIN SMALL LETTER Y WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x007a, 0, 0, 0, 0}, 0x017a }, // U017A # LATIN SMALL LETTER Z WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00c2, 0, 0, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00c5, 0, 0, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00c6, 0, 0, 0, 0}, 0x01fc }, // U01FC # LATIN CAPITAL LETTER AE WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00c7, 0, 0, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00ca, 0, 0, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00cf, 0, 0, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00d4, 0, 0, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00d5, 0, 0, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00d8, 0, 0, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00dc, 0, 0, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00e2, 0, 0, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00e5, 0, 0, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00e6, 0, 0, 0, 0}, 0x01fd }, // U01FD # LATIN SMALL LETTER AE WITH ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00e7, 0, 0, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00ea, 0, 0, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00ef, 0, 0, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00f4, 0, 0, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00f5, 0, 0, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00f8, 0, 0, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x00fc, 0, 0, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0102, 0, 0, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0103, 0, 0, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0112, 0, 0, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0113, 0, 0, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x014c, 0, 0, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x014d, 0, 0, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0168, 0, 0, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0169, 0, 0, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x01A0, 0, 0, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x01A1, 0, 0, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x01AF, 0, 0, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x01B0, 0, 0, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x0391, 0, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x0395, 0, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x0397, 0, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x0399, 0, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x039f, 0, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03a9, 0, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03b1, 0, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03b5, 0, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03b7, 0, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03b9, 0, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03bf, 0, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03c5, 0, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0313, 0x03c9, 0, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x0391, 0, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x0395, 0, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x0397, 0, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x0399, 0, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x039f, 0, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03a5, 0, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03a9, 0, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03b1, 0, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03b5, 0, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03b7, 0, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03b9, 0, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03bf, 0, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03c5, 0, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0314, 0x03c9, 0, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0391, 0, 0, 0, 0}, 0x0386 }, // U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0395, 0, 0, 0, 0}, 0x0388 }, // U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0397, 0, 0, 0, 0}, 0x0389 }, // U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0399, 0, 0, 0, 0}, 0x038a }, // U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x039f, 0, 0, 0, 0}, 0x038c }, // U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x03a5, 0, 0, 0, 0}, 0x038e }, // U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x03a9, 0, 0, 0, 0}, 0x038f }, // U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x03b1, 0, 0, 0, 0}, 0x03ac }, // U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x03b5, 0, 0, 0, 0}, 0x03ad }, // U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x03b7, 0, 0, 0, 0}, 0x03ae }, // U03AE # GREEK SMALL LETTER ETA WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x03b9, 0, 0, 0, 0}, 0x03af }, // U03AF # GREEK SMALL LETTER IOTA WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x03bf, 0, 0, 0, 0}, 0x03cc }, // U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x03c5, 0, 0, 0, 0}, 0x03cd }, // U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x03c9, 0, 0, 0, 0}, 0x03ce }, // U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x03ca, 0, 0, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x03cb, 0, 0, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0413, 0, 0, 0, 0}, 0x0403 }, // U0403 # CYRILLIC CAPITAL LETTER GJE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x041a, 0, 0, 0, 0}, 0x040c }, // U040C # CYRILLIC CAPITAL LETTER KJE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x0433, 0, 0, 0, 0}, 0x0453 }, // U0453 # CYRILLIC SMALL LETTER GJE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x043a, 0, 0, 0, 0}, 0x045c }, // U045C # CYRILLIC SMALL LETTER KJE
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f00, 0, 0, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f01, 0, 0, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f08, 0, 0, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f09, 0, 0, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f10, 0, 0, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f11, 0, 0, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f18, 0, 0, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f19, 0, 0, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f20, 0, 0, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f21, 0, 0, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f28, 0, 0, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f29, 0, 0, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f30, 0, 0, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f31, 0, 0, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f38, 0, 0, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f39, 0, 0, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f40, 0, 0, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f41, 0, 0, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f48, 0, 0, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f49, 0, 0, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f50, 0, 0, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f51, 0, 0, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f59, 0, 0, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f60, 0, 0, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f61, 0, 0, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f68, 0, 0, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), 0x1f69, 0, 0, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0000, 0x004f, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0000, 0x006f, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0049, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0055, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0069, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0075, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03b9, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03c5, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0391, 0, 0}, 0x1f0d }, // U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0395, 0, 0}, 0x1f1d }, // U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0397, 0, 0}, 0x1f2d }, // U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0399, 0, 0}, 0x1f3d }, // U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x039f, 0, 0}, 0x1f4d }, // U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a5, 0, 0}, 0x1f5d }, // U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a9, 0, 0}, 0x1f6d }, // U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b1, 0, 0}, 0x1f05 }, // U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b5, 0, 0}, 0x1f15 }, // U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b7, 0, 0}, 0x1f25 }, // U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b9, 0, 0}, 0x1f35 }, // U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03bf, 0, 0}, 0x1f45 }, // U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c5, 0, 0}, 0x1f55 }, // U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c9, 0, 0}, 0x1f65 }, // U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0391, 0, 0}, 0x1f0c }, // U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0395, 0, 0}, 0x1f1c }, // U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0397, 0, 0}, 0x1f2c }, // U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0399, 0, 0}, 0x1f3c }, // U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x039f, 0, 0}, 0x1f4c }, // U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03a9, 0, 0}, 0x1f6c }, // U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b1, 0, 0}, 0x1f04 }, // U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b5, 0, 0}, 0x1f14 }, // U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b7, 0, 0}, 0x1f24 }, // U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b9, 0, 0}, 0x1f34 }, // U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03bf, 0, 0}, 0x1f44 }, // U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c5, 0, 0}, 0x1f54 }, // U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c9, 0, 0}, 0x1f64 }, // U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x004f, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0055, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x006f, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0075, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0043, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0063, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x002f, 0x004f, 0, 0}, 0x01fe }, // U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x002f, 0x006f, 0, 0}, 0x01ff }, // U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0041, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0061, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0041, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0045, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x004f, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0061, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0065, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x006f, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0045, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x004f, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0065, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006f, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0041, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0061, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0041, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x006f, 0x0061, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x007e, 0x004f, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0055, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x007e, 0x006f, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x007e, 0x0075, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0045, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x00af, 0x004f, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x00af, 0x0065, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Multi_key), 0x00af, 0x006f, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Acute), 0, 0, 0, 0}, 0x00b4 }, // acute
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0, 0}, 0x1ea4 }, // U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0, 0}, 0x1ebe }, // U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0, 0}, 0x1ed0 }, // U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0, 0}, 0x1ea5 }, // U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0, 0}, 0x1ebf }, // U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0, 0}, 0x1ed1 }, // U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Tilde), 0x004f, 0, 0, 0}, 0x1e4c }, // U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Tilde), 0x0055, 0, 0, 0}, 0x1e78 }, // U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Tilde), 0x006f, 0, 0, 0}, 0x1e4d }, // U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Tilde), 0x0075, 0, 0, 0}, 0x1e79 }, // U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Macron), 0x0045, 0, 0, 0}, 0x1e16 }, // U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Macron), 0x004f, 0, 0, 0}, 0x1e52 }, // U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Macron), 0x0065, 0, 0, 0}, 0x1e17 }, // U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Macron), 0x006f, 0, 0, 0}, 0x1e53 }, // U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0, 0}, 0x1eae }, // U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0, 0}, 0x1eaf }, // U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Diaeresis), 0x0049, 0, 0, 0}, 0x1e2e }, // U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0, 0}, 0x01d7 }, // U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Diaeresis), 0x0069, 0, 0, 0}, 0x1e2f }, // U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Diaeresis), 0x0075, 0, 0, 0}, 0x01d8 }, // U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Diaeresis), 0x03b9, 0, 0, 0}, 0x0390 }, // U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Diaeresis), 0x03c5, 0, 0, 0}, 0x03b0 }, // U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Abovering), 0x0041, 0, 0, 0}, 0x01fa }, // U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Abovering), 0x0061, 0, 0, 0}, 0x01fb }, // U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Cedilla), 0x0043, 0, 0, 0}, 0x1e08 }, // U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Cedilla), 0x0063, 0, 0, 0}, 0x1e09 }, // U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0, 0}, 0x1eda }, // U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0, 0}, 0x1ee8 }, // U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0, 0}, 0x1edb }, // U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
++    { {UNITIZE(Qt::Key_Dead_Acute), UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0, 0}, 0x1ee9 }, // U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x207a }, // U207A # SUPERSCRIPT PLUS SIGN
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x207c }, // U207C # SUPERSCRIPT EQUALS SIGN
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x00b2 }, // U00B2 # SUPERSCRIPT TWO
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x2079 }, // U2079 # SUPERSCRIPT NINE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x00b3 }, // U00B3 # SUPERSCRIPT THREE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x00b9 }, // U00B9 # SUPERSCRIPT ONE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x2070 }, // U2070 # SUPERSCRIPT ZERO
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x2078 }, // U2078 # SUPERSCRIPT EIGHT
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x2074 }, // U2074 # SUPERSCRIPT FOUR
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x2075 }, // U2075 # SUPERSCRIPT FIVE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x2077 }, // U2077 # SUPERSCRIPT SEVEN
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x00b2 }, // U00B2 # SUPERSCRIPT TWO
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0, 0, 0, 0}, 0x2076 }, // U2076 # SUPERSCRIPT SIX
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0x0041, 0, 0, 0}, 0x1eac }, // U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0x0045, 0, 0, 0}, 0x1ec6 }, // U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0x004f, 0, 0, 0}, 0x1ed8 }, // U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0x0061, 0, 0, 0}, 0x1ead }, // U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0x0065, 0, 0, 0}, 0x1ec7 }, // U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0000, 0x006f, 0, 0, 0}, 0x1ed9 }, // U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0020, 0, 0, 0, 0}, 0x005e }, // asciicircum
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0028, 0, 0, 0, 0}, 0x207d }, // U207D # SUPERSCRIPT LEFT PARENTHESIS
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0029, 0, 0, 0, 0}, 0x207e }, // U207E # SUPERSCRIPT RIGHT PARENTHESIS
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x002b, 0, 0, 0, 0}, 0x207a }, // U207A # SUPERSCRIPT PLUS SIGN
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0030, 0, 0, 0, 0}, 0x2070 }, // U2070 # SUPERSCRIPT ZERO
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0031, 0, 0, 0, 0}, 0x00b9 }, // U00B9 # SUPERSCRIPT ONE
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0032, 0, 0, 0, 0}, 0x00b2 }, // U00B2 # SUPERSCRIPT TWO
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0033, 0, 0, 0, 0}, 0x00b3 }, // U00B3 # SUPERSCRIPT THREE
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0034, 0, 0, 0, 0}, 0x2074 }, // U2074 # SUPERSCRIPT FOUR
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0035, 0, 0, 0, 0}, 0x2075 }, // U2075 # SUPERSCRIPT FIVE
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0036, 0, 0, 0, 0}, 0x2076 }, // U2076 # SUPERSCRIPT SIX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0037, 0, 0, 0, 0}, 0x2077 }, // U2077 # SUPERSCRIPT SEVEN
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0038, 0, 0, 0, 0}, 0x2078 }, // U2078 # SUPERSCRIPT EIGHT
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0039, 0, 0, 0, 0}, 0x2079 }, // U2079 # SUPERSCRIPT NINE
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x003d, 0, 0, 0, 0}, 0x207c }, // U207C # SUPERSCRIPT EQUALS SIGN
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0, 0, 0}, 0x00c2 }, // U00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0043, 0, 0, 0, 0}, 0x0108 }, // U0108 # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0, 0, 0}, 0x00ca }, // U00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0047, 0, 0, 0, 0}, 0x011c }, // U011C # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0048, 0, 0, 0, 0}, 0x0124 }, // U0124 # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0049, 0, 0, 0, 0}, 0x00ce }, // U00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x004a, 0, 0, 0, 0}, 0x0134 }, // U0134 # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0, 0, 0}, 0x00d4 }, // U00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0053, 0, 0, 0, 0}, 0x015c }, // U015C # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0055, 0, 0, 0, 0}, 0x00db }, // U00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0057, 0, 0, 0, 0}, 0x0174 }, // U0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0059, 0, 0, 0, 0}, 0x0176 }, // U0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x005a, 0, 0, 0, 0}, 0x1e90 }, // U1E90 # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0, 0, 0}, 0x00e2 }, // U00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0063, 0, 0, 0, 0}, 0x0109 }, // U0109 # LATIN SMALL LETTER C WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0, 0, 0}, 0x00ea }, // U00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0067, 0, 0, 0, 0}, 0x011d }, // U011D # LATIN SMALL LETTER G WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0068, 0, 0, 0, 0}, 0x0125 }, // U0125 # LATIN SMALL LETTER H WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0069, 0, 0, 0, 0}, 0x00ee }, // U00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x006a, 0, 0, 0, 0}, 0x0135 }, // U0135 # LATIN SMALL LETTER J WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0, 0, 0}, 0x00f4 }, // U00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0073, 0, 0, 0, 0}, 0x015d }, // U015D # LATIN SMALL LETTER S WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0075, 0, 0, 0, 0}, 0x00fb }, // U00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0077, 0, 0, 0, 0}, 0x0175 }, // U0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x0079, 0, 0, 0, 0}, 0x0177 }, // U0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x007a, 0, 0, 0, 0}, 0x1e91 }, // U1E91 # LATIN SMALL LETTER Z WITH CIRCUMFLEX
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x1ea0, 0, 0, 0, 0}, 0x1eac }, // U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x1ea1, 0, 0, 0, 0}, 0x1ead }, // U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x1eb8, 0, 0, 0, 0}, 0x1ec6 }, // U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x1eb9, 0, 0, 0, 0}, 0x1ec7 }, // U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x1ecc, 0, 0, 0, 0}, 0x1ed8 }, // U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x1ecd, 0, 0, 0, 0}, 0x1ed9 }, // U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x2212, 0, 0, 0, 0}, 0x207b }, // U207B # SUPERSCRIPT MINUS
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x4e00, 0, 0, 0, 0}, 0x3192 }, // U3192 # IDEOGRAPHIC ANNOTATION ONE MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x4e01, 0, 0, 0, 0}, 0x319c }, // U319C # IDEOGRAPHIC ANNOTATION FOURTH MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x4e09, 0, 0, 0, 0}, 0x3194 }, // U3194 # IDEOGRAPHIC ANNOTATION THREE MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x4e0a, 0, 0, 0, 0}, 0x3196 }, // U3196 # IDEOGRAPHIC ANNOTATION TOP MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x4e0b, 0, 0, 0, 0}, 0x3198 }, // U3198 # IDEOGRAPHIC ANNOTATION BOTTOM MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x4e19, 0, 0, 0, 0}, 0x319b }, // U319B # IDEOGRAPHIC ANNOTATION THIRD MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x4e2d, 0, 0, 0, 0}, 0x3197 }, // U3197 # IDEOGRAPHIC ANNOTATION MIDDLE MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x4e59, 0, 0, 0, 0}, 0x319a }, // U319A # IDEOGRAPHIC ANNOTATION SECOND MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x4e8c, 0, 0, 0, 0}, 0x3193 }, // U3193 # IDEOGRAPHIC ANNOTATION TWO MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x4eba, 0, 0, 0, 0}, 0x319f }, // U319F # IDEOGRAPHIC ANNOTATION MAN MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x56db, 0, 0, 0, 0}, 0x3195 }, // U3195 # IDEOGRAPHIC ANNOTATION FOUR MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x5730, 0, 0, 0, 0}, 0x319e }, // U319E # IDEOGRAPHIC ANNOTATION EARTH MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x5929, 0, 0, 0, 0}, 0x319d }, // U319D # IDEOGRAPHIC ANNOTATION HEAVEN MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), 0x7532, 0, 0, 0, 0}, 0x3199 }, // U3199 # IDEOGRAPHIC ANNOTATION FIRST MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0041, 0, 0}, 0x1eac }, // U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0045, 0, 0}, 0x1ec6 }, // U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x004f, 0, 0}, 0x1ed8 }, // U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0061, 0, 0}, 0x1ead }, // U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0065, 0, 0}, 0x1ec7 }, // U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x006f, 0, 0}, 0x1ed9 }, // U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x0053, 0x004d, 0, 0}, 0x2120 }, // U2120 # SERVICE MARK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x0054, 0x004d, 0, 0}, 0x2122 }, // U2122 # TRADE MARK SIGN
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0061, 0, 0}, 0x00aa }, // U00AA # FEMININE ORDINAL INDICATOR
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0061, 0, 0}, 0x00aa }, // U00AA # FEMININE ORDINAL INDICATOR
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0068, 0, 0}, 0x02b0 }, // U02B0 # MODIFIER LETTER SMALL H
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0068, 0, 0}, 0x02b0 }, // U02B0 # MODIFIER LETTER SMALL H
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0069, 0, 0}, 0x2071 }, // U2071 # SUPERSCRIPT LATIN SMALL LETTER I
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0069, 0, 0}, 0x2071 }, // U2071 # SUPERSCRIPT LATIN SMALL LETTER I
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006a, 0, 0}, 0x02b2 }, // U02B2 # MODIFIER LETTER SMALL J
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006a, 0, 0}, 0x02b2 }, // U02B2 # MODIFIER LETTER SMALL J
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006c, 0, 0}, 0x02e1 }, // U02E1 # MODIFIER LETTER SMALL L
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006c, 0, 0}, 0x02e1 }, // U02E1 # MODIFIER LETTER SMALL L
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006e, 0, 0}, 0x207f }, // U207F # SUPERSCRIPT LATIN SMALL LETTER N
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006e, 0, 0}, 0x207f }, // U207F # SUPERSCRIPT LATIN SMALL LETTER N
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006f, 0, 0}, 0x00ba }, // U00BA # MASCULINE ORDINAL INDICATOR
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x006f, 0, 0}, 0x00ba }, // U00BA # MASCULINE ORDINAL INDICATOR
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0072, 0, 0}, 0x02b3 }, // U02B3 # MODIFIER LETTER SMALL R
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0072, 0, 0}, 0x02b3 }, // U02B3 # MODIFIER LETTER SMALL R
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0073, 0, 0}, 0x02e2 }, // U02E2 # MODIFIER LETTER SMALL S
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0073, 0, 0}, 0x02e2 }, // U02E2 # MODIFIER LETTER SMALL S
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0077, 0, 0}, 0x02b7 }, // U02B7 # MODIFIER LETTER SMALL W
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0077, 0, 0}, 0x02b7 }, // U02B7 # MODIFIER LETTER SMALL W
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0078, 0, 0}, 0x02e3 }, // U02E3 # MODIFIER LETTER SMALL X
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0078, 0, 0}, 0x02e3 }, // U02E3 # MODIFIER LETTER SMALL X
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0079, 0, 0}, 0x02b8 }, // U02B8 # MODIFIER LETTER SMALL Y
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0079, 0, 0}, 0x02b8 }, // U02B8 # MODIFIER LETTER SMALL Y
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0263, 0, 0}, 0x02e0 }, // U02E0 # MODIFIER LETTER SMALL GAMMA
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0263, 0, 0}, 0x02e0 }, // U02E0 # MODIFIER LETTER SMALL GAMMA
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0266, 0, 0}, 0x02b1 }, // U02B1 # MODIFIER LETTER SMALL H WITH HOOK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0266, 0, 0}, 0x02b1 }, // U02B1 # MODIFIER LETTER SMALL H WITH HOOK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0279, 0, 0}, 0x02b4 }, // U02B4 # MODIFIER LETTER SMALL TURNED R
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0279, 0, 0}, 0x02b4 }, // U02B4 # MODIFIER LETTER SMALL TURNED R
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x027b, 0, 0}, 0x02b5 }, // U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x027b, 0, 0}, 0x02b5 }, // U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0281, 0, 0}, 0x02b6 }, // U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0281, 0, 0}, 0x02b6 }, // U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0295, 0, 0}, 0x02e4 }, // U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Multi_key), 0x005f, 0x0295, 0, 0}, 0x02e4 }, // U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Dead_Circumflex), 0, 0, 0, 0}, 0x005e }, // asciicircum
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Dead_Belowdot), 0x0041, 0, 0, 0}, 0x1eac }, // U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Dead_Belowdot), 0x0045, 0, 0, 0}, 0x1ec6 }, // U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Dead_Belowdot), 0x004f, 0, 0, 0}, 0x1ed8 }, // U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Dead_Belowdot), 0x0061, 0, 0, 0}, 0x1ead }, // U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Dead_Belowdot), 0x0065, 0, 0, 0}, 0x1ec7 }, // U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Circumflex), UNITIZE(Qt::Key_Dead_Belowdot), 0x006f, 0, 0, 0}, 0x1ed9 }, // U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0000, 0, 0, 0, 0}, 0x1ee0 }, // U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0000, 0, 0, 0, 0}, 0x1eee }, // U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0000, 0, 0, 0, 0}, 0x1eef }, // U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0000, 0, 0, 0, 0}, 0x1ee1 }, // U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0020, 0, 0, 0, 0}, 0x007e }, // asciitilde
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0041, 0, 0, 0, 0}, 0x00c3 }, // U00C3 # LATIN CAPITAL LETTER A WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0045, 0, 0, 0, 0}, 0x1ebc }, // U1EBC # LATIN CAPITAL LETTER E WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0049, 0, 0, 0, 0}, 0x0128 }, // U0128 # LATIN CAPITAL LETTER I WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x004e, 0, 0, 0, 0}, 0x00d1 }, // U00D1 # LATIN CAPITAL LETTER N WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x004f, 0, 0, 0, 0}, 0x00d5 }, // U00D5 # LATIN CAPITAL LETTER O WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0055, 0, 0, 0, 0}, 0x0168 }, // U0168 # LATIN CAPITAL LETTER U WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0056, 0, 0, 0, 0}, 0x1e7c }, // U1E7C # LATIN CAPITAL LETTER V WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0059, 0, 0, 0, 0}, 0x1ef8 }, // U1EF8 # LATIN CAPITAL LETTER Y WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0061, 0, 0, 0, 0}, 0x00e3 }, // U00E3 # LATIN SMALL LETTER A WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0065, 0, 0, 0, 0}, 0x1ebd }, // U1EBD # LATIN SMALL LETTER E WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0069, 0, 0, 0, 0}, 0x0129 }, // U0129 # LATIN SMALL LETTER I WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x006e, 0, 0, 0, 0}, 0x00f1 }, // U00F1 # LATIN SMALL LETTER N WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x006f, 0, 0, 0, 0}, 0x00f5 }, // U00F5 # LATIN SMALL LETTER O WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0075, 0, 0, 0, 0}, 0x0169 }, // U0169 # LATIN SMALL LETTER U WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0076, 0, 0, 0, 0}, 0x1e7d }, // U1E7D # LATIN SMALL LETTER V WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0079, 0, 0, 0, 0}, 0x1ef9 }, // U1EF9 # LATIN SMALL LETTER Y WITH TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x00c2, 0, 0, 0, 0}, 0x1eaa }, // U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x00ca, 0, 0, 0, 0}, 0x1ec4 }, // U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x00d4, 0, 0, 0, 0}, 0x1ed6 }, // U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x00e2, 0, 0, 0, 0}, 0x1eab }, // U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x00ea, 0, 0, 0, 0}, 0x1ec5 }, // U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x00f4, 0, 0, 0, 0}, 0x1ed7 }, // U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0102, 0, 0, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0103, 0, 0, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x01A0, 0, 0, 0, 0}, 0x1ee0 }, // U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x01A1, 0, 0, 0, 0}, 0x1ee1 }, // U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x01AF, 0, 0, 0, 0}, 0x1eee }, // U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x01B0, 0, 0, 0, 0}, 0x1eef }, // U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x0391, 0, 0, 0}, 0x1f0e }, // U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x0397, 0, 0, 0}, 0x1f2e }, // U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x0399, 0, 0, 0}, 0x1f3e }, // U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x03a9, 0, 0, 0}, 0x1f6e }, // U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x03b1, 0, 0, 0}, 0x1f06 }, // U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x03b7, 0, 0, 0}, 0x1f26 }, // U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x03b9, 0, 0, 0}, 0x1f36 }, // U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x03c5, 0, 0, 0}, 0x1f56 }, // U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0313, 0x03c9, 0, 0, 0}, 0x1f66 }, // U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x0391, 0, 0, 0}, 0x1f0f }, // U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x0397, 0, 0, 0}, 0x1f2f }, // U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x0399, 0, 0, 0}, 0x1f3f }, // U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x03a5, 0, 0, 0}, 0x1f5f }, // U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x03a9, 0, 0, 0}, 0x1f6f }, // U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x03b1, 0, 0, 0}, 0x1f07 }, // U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x03b7, 0, 0, 0}, 0x1f27 }, // U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x03b9, 0, 0, 0}, 0x1f37 }, // U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x03c5, 0, 0, 0}, 0x1f57 }, // U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x0314, 0x03c9, 0, 0, 0}, 0x1f67 }, // U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x03b1, 0, 0, 0, 0}, 0x1fb6 }, // U1FB6 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x03b7, 0, 0, 0, 0}, 0x1fc6 }, // U1FC6 # GREEK SMALL LETTER ETA WITH PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x03b9, 0, 0, 0, 0}, 0x1fd6 }, // U1FD6 # GREEK SMALL LETTER IOTA WITH PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x03c5, 0, 0, 0, 0}, 0x1fe6 }, // U1FE6 # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x03c9, 0, 0, 0, 0}, 0x1ff6 }, // U1FF6 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x03ca, 0, 0, 0, 0}, 0x1fd7 }, // U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x03cb, 0, 0, 0, 0}, 0x1fe7 }, // U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f00, 0, 0, 0, 0}, 0x1f06 }, // U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f01, 0, 0, 0, 0}, 0x1f07 }, // U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f08, 0, 0, 0, 0}, 0x1f0e }, // U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f09, 0, 0, 0, 0}, 0x1f0f }, // U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f20, 0, 0, 0, 0}, 0x1f26 }, // U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f21, 0, 0, 0, 0}, 0x1f27 }, // U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f28, 0, 0, 0, 0}, 0x1f2e }, // U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f29, 0, 0, 0, 0}, 0x1f2f }, // U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f30, 0, 0, 0, 0}, 0x1f36 }, // U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f31, 0, 0, 0, 0}, 0x1f37 }, // U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f38, 0, 0, 0, 0}, 0x1f3e }, // U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f39, 0, 0, 0, 0}, 0x1f3f }, // U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f50, 0, 0, 0, 0}, 0x1f56 }, // U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f51, 0, 0, 0, 0}, 0x1f57 }, // U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f59, 0, 0, 0, 0}, 0x1f5f }, // U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f60, 0, 0, 0, 0}, 0x1f66 }, // U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f61, 0, 0, 0, 0}, 0x1f67 }, // U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f68, 0, 0, 0, 0}, 0x1f6e }, // U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), 0x1f69, 0, 0, 0, 0}, 0x1f6f }, // U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03b9, 0, 0}, 0x1fd7 }, // U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x03c5, 0, 0}, 0x1fe7 }, // U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0391, 0, 0}, 0x1f0f }, // U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0397, 0, 0}, 0x1f2f }, // U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x0399, 0, 0}, 0x1f3f }, // U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a5, 0, 0}, 0x1f5f }, // U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03a9, 0, 0}, 0x1f6f }, // U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b1, 0, 0}, 0x1f07 }, // U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b7, 0, 0}, 0x1f27 }, // U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03b9, 0, 0}, 0x1f37 }, // U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c5, 0, 0}, 0x1f57 }, // U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0028, 0x03c9, 0, 0}, 0x1f67 }, // U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0391, 0, 0}, 0x1f0e }, // U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0397, 0, 0}, 0x1f2e }, // U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x0399, 0, 0}, 0x1f3e }, // U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03a9, 0, 0}, 0x1f6e }, // U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b1, 0, 0}, 0x1f06 }, // U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b7, 0, 0}, 0x1f26 }, // U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03b9, 0, 0}, 0x1f36 }, // U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c5, 0, 0}, 0x1f56 }, // U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0029, 0x03c9, 0, 0}, 0x1f66 }, // U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x004f, 0, 0}, 0x1ee0 }, // U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0055, 0, 0}, 0x1eee }, // U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x006f, 0, 0}, 0x1ee1 }, // U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x002b, 0x0075, 0, 0}, 0x1eef }, // U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0041, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0055, 0x0061, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0041, 0, 0}, 0x1eaa }, // U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0045, 0, 0}, 0x1ec4 }, // U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x004f, 0, 0}, 0x1ed6 }, // U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0061, 0, 0}, 0x1eab }, // U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x0065, 0, 0}, 0x1ec5 }, // U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x005e, 0x006f, 0, 0}, 0x1ed7 }, // U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0041, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Multi_key), 0x0062, 0x0061, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Circumflex), 0x0041, 0, 0, 0}, 0x1eaa }, // U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Circumflex), 0x0045, 0, 0, 0}, 0x1ec4 }, // U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Circumflex), 0x004f, 0, 0, 0}, 0x1ed6 }, // U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Circumflex), 0x0061, 0, 0, 0}, 0x1eab }, // U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Circumflex), 0x0065, 0, 0, 0}, 0x1ec5 }, // U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Circumflex), 0x006f, 0, 0, 0}, 0x1ed7 }, // U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Tilde), 0, 0, 0, 0}, 0x007e }, // asciitilde
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0, 0}, 0x1eb4 }, // U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0, 0}, 0x1eb5 }, // U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Diaeresis), 0x03b9, 0, 0, 0}, 0x1fd7 }, // U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Diaeresis), 0x03c5, 0, 0, 0}, 0x1fe7 }, // U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Horn), 0x004f, 0, 0, 0}, 0x1ee0 }, // U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Horn), 0x0055, 0, 0, 0}, 0x1eee }, // U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Horn), 0x006f, 0, 0, 0}, 0x1ee1 }, // U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
++    { {UNITIZE(Qt::Key_Dead_Tilde), UNITIZE(Qt::Key_Dead_Horn), 0x0075, 0, 0, 0}, 0x1eef }, // U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Macron), 0x0000, 0x004c, 0, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Macron), 0x0000, 0x004f, 0, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Macron), 0x0000, 0x0052, 0, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Macron), 0x0000, 0x006c, 0, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Macron), 0x0000, 0x006f, 0, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Macron), 0x0000, 0x0072, 0, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0020, 0, 0, 0, 0}, 0x00af }, // macron
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0041, 0, 0, 0, 0}, 0x0100 }, // U0100 # LATIN CAPITAL LETTER A WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0045, 0, 0, 0, 0}, 0x0112 }, // U0112 # LATIN CAPITAL LETTER E WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0047, 0, 0, 0, 0}, 0x1e20 }, // U1E20 # LATIN CAPITAL LETTER G WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0049, 0, 0, 0, 0}, 0x012a }, // U012A # LATIN CAPITAL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x004f, 0, 0, 0, 0}, 0x014c }, // U014C # LATIN CAPITAL LETTER O WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0055, 0, 0, 0, 0}, 0x016a }, // U016A # LATIN CAPITAL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0059, 0, 0, 0, 0}, 0x0232 }, // U0232 # LATIN CAPITAL LETTER Y WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0061, 0, 0, 0, 0}, 0x0101 }, // U0101 # LATIN SMALL LETTER A WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0065, 0, 0, 0, 0}, 0x0113 }, // U0113 # LATIN SMALL LETTER E WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0067, 0, 0, 0, 0}, 0x1e21 }, // U1E21 # LATIN SMALL LETTER G WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0069, 0, 0, 0, 0}, 0x012b }, // U012B # LATIN SMALL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x006f, 0, 0, 0, 0}, 0x014d }, // U014D # LATIN SMALL LETTER O WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0075, 0, 0, 0, 0}, 0x016b }, // U016B # LATIN SMALL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0079, 0, 0, 0, 0}, 0x0233 }, // U0233 # LATIN SMALL LETTER Y WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x00c4, 0, 0, 0, 0}, 0x01de }, // U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x00c6, 0, 0, 0, 0}, 0x01e2 }, // U01E2 # LATIN CAPITAL LETTER AE WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x00d5, 0, 0, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x00d6, 0, 0, 0, 0}, 0x022a }, // U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x00dc, 0, 0, 0, 0}, 0x01d5 }, // U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x00e4, 0, 0, 0, 0}, 0x01df }, // U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x00e6, 0, 0, 0, 0}, 0x01e3 }, // U01E3 # LATIN SMALL LETTER AE WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x00f5, 0, 0, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x00f6, 0, 0, 0, 0}, 0x022b }, // U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x00fc, 0, 0, 0, 0}, 0x01d6 }, // U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x01ea, 0, 0, 0, 0}, 0x01ec }, // U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x01eb, 0, 0, 0, 0}, 0x01ed }, // U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0226, 0, 0, 0, 0}, 0x01e0 }, // U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0227, 0, 0, 0, 0}, 0x01e1 }, // U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x022e, 0, 0, 0, 0}, 0x0230 }, // U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x022f, 0, 0, 0, 0}, 0x0231 }, // U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0391, 0, 0, 0, 0}, 0x1fb9 }, // U1FB9 # GREEK CAPITAL LETTER ALPHA WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0399, 0, 0, 0, 0}, 0x1fd9 }, // U1FD9 # GREEK CAPITAL LETTER IOTA WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x03a5, 0, 0, 0, 0}, 0x1fe9 }, // U1FE9 # GREEK CAPITAL LETTER UPSILON WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x03b1, 0, 0, 0, 0}, 0x1fb1 }, // U1FB1 # GREEK SMALL LETTER ALPHA WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x03b9, 0, 0, 0, 0}, 0x1fd1 }, // U1FD1 # GREEK SMALL LETTER IOTA WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x03c5, 0, 0, 0, 0}, 0x1fe1 }, // U1FE1 # GREEK SMALL LETTER UPSILON WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0418, 0, 0, 0, 0}, 0x04e2 }, // U04E2 # CYRILLIC CAPITAL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0423, 0, 0, 0, 0}, 0x04ee }, // U04EE # CYRILLIC CAPITAL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0438, 0, 0, 0, 0}, 0x04e3 }, // U04E3 # CYRILLIC SMALL LETTER I WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x0443, 0, 0, 0, 0}, 0x04ef }, // U04EF # CYRILLIC SMALL LETTER U WITH MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x1e36, 0, 0, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x1e37, 0, 0, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x1e5a, 0, 0, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), 0x1e5b, 0, 0, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x004c, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0052, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x006c, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0072, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0041, 0, 0}, 0x01de }, // U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x004f, 0, 0}, 0x022a }, // U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0055, 0, 0}, 0x01d5 }, // U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0061, 0, 0}, 0x01df }, // U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x006f, 0, 0}, 0x022b }, // U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x0022, 0x0075, 0, 0}, 0x01d6 }, // U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0041, 0, 0}, 0x01e0 }, // U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x002e, 0x004f, 0, 0}, 0x0230 }, // U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x002e, 0x0061, 0, 0}, 0x01e1 }, // U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x002e, 0x006f, 0, 0}, 0x0231 }, // U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x003b, 0x004f, 0, 0}, 0x01ec }, // U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x003b, 0x006f, 0, 0}, 0x01ed }, // U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x007e, 0x004f, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Multi_key), 0x007e, 0x006f, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Tilde), 0x004f, 0, 0, 0}, 0x022c }, // U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Tilde), 0x006f, 0, 0, 0}, 0x022d }, // U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Macron), 0, 0, 0, 0}, 0x00af }, // macron
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Abovedot), 0x0041, 0, 0, 0}, 0x01e0 }, // U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Abovedot), 0x004f, 0, 0, 0}, 0x0230 }, // U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Abovedot), 0x0061, 0, 0, 0}, 0x01e1 }, // U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Abovedot), 0x006f, 0, 0, 0}, 0x0231 }, // U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Diaeresis), 0x0041, 0, 0, 0}, 0x01de }, // U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Diaeresis), 0x004f, 0, 0, 0}, 0x022a }, // U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0, 0}, 0x01d5 }, // U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Diaeresis), 0x0061, 0, 0, 0}, 0x01df }, // U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Diaeresis), 0x006f, 0, 0, 0}, 0x022b }, // U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Diaeresis), 0x0075, 0, 0, 0}, 0x01d6 }, // U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Ogonek), 0x004f, 0, 0, 0}, 0x01ec }, // U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Ogonek), 0x006f, 0, 0, 0}, 0x01ed }, // U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Belowdot), 0x004c, 0, 0, 0}, 0x1e38 }, // U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Belowdot), 0x0052, 0, 0, 0}, 0x1e5c }, // U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Belowdot), 0x006c, 0, 0, 0}, 0x1e39 }, // U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
++    { {UNITIZE(Qt::Key_Dead_Macron), UNITIZE(Qt::Key_Dead_Belowdot), 0x0072, 0, 0, 0}, 0x1e5d }, // U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Breve), 0x0000, 0x0041, 0, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Breve), 0x0000, 0x0061, 0, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0020, 0, 0, 0, 0}, 0x02d8 }, // breve
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0041, 0, 0, 0, 0}, 0x0102 }, // U0102 # LATIN CAPITAL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0045, 0, 0, 0, 0}, 0x0114 }, // U0114 # LATIN CAPITAL LETTER E WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0047, 0, 0, 0, 0}, 0x011e }, // U011E # LATIN CAPITAL LETTER G WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0049, 0, 0, 0, 0}, 0x012c }, // U012C # LATIN CAPITAL LETTER I WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x004f, 0, 0, 0, 0}, 0x014e }, // U014E # LATIN CAPITAL LETTER O WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0055, 0, 0, 0, 0}, 0x016c }, // U016C # LATIN CAPITAL LETTER U WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0061, 0, 0, 0, 0}, 0x0103 }, // U0103 # LATIN SMALL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0065, 0, 0, 0, 0}, 0x0115 }, // U0115 # LATIN SMALL LETTER E WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0067, 0, 0, 0, 0}, 0x011f }, // U011F # LATIN SMALL LETTER G WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0069, 0, 0, 0, 0}, 0x012d }, // U012D # LATIN SMALL LETTER I WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x006f, 0, 0, 0, 0}, 0x014f }, // U014F # LATIN SMALL LETTER O WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0075, 0, 0, 0, 0}, 0x016d }, // U016D # LATIN SMALL LETTER U WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0228, 0, 0, 0, 0}, 0x1e1c }, // U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0229, 0, 0, 0, 0}, 0x1e1d }, // U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0391, 0, 0, 0, 0}, 0x1fb8 }, // U1FB8 # GREEK CAPITAL LETTER ALPHA WITH VRACHY
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0399, 0, 0, 0, 0}, 0x1fd8 }, // U1FD8 # GREEK CAPITAL LETTER IOTA WITH VRACHY
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x03a5, 0, 0, 0, 0}, 0x1fe8 }, // U1FE8 # GREEK CAPITAL LETTER UPSILON WITH VRACHY
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x03b1, 0, 0, 0, 0}, 0x1fb0 }, // U1FB0 # GREEK SMALL LETTER ALPHA WITH VRACHY
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x03b9, 0, 0, 0, 0}, 0x1fd0 }, // U1FD0 # GREEK SMALL LETTER IOTA WITH VRACHY
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x03c5, 0, 0, 0, 0}, 0x1fe0 }, // U1FE0 # GREEK SMALL LETTER UPSILON WITH VRACHY
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0410, 0, 0, 0, 0}, 0x04d0 }, // U04D0 # CYRILLIC CAPITAL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0415, 0, 0, 0, 0}, 0x04d6 }, // U04D6 # CYRILLIC CAPITAL LETTER IE WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0416, 0, 0, 0, 0}, 0x04c1 }, // U04C1 # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0418, 0, 0, 0, 0}, 0x0419 }, // U0419 # CYRILLIC CAPITAL LETTER SHORT I
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0423, 0, 0, 0, 0}, 0x040e }, // U040E # CYRILLIC CAPITAL LETTER SHORT U
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0430, 0, 0, 0, 0}, 0x04d1 }, // U04D1 # CYRILLIC SMALL LETTER A WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0435, 0, 0, 0, 0}, 0x04d7 }, // U04D7 # CYRILLIC SMALL LETTER IE WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0436, 0, 0, 0, 0}, 0x04c2 }, // U04C2 # CYRILLIC SMALL LETTER ZHE WITH BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0438, 0, 0, 0, 0}, 0x0439 }, // U0439 # CYRILLIC SMALL LETTER SHORT I
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x0443, 0, 0, 0, 0}, 0x045e }, // U045E # CYRILLIC SMALL LETTER SHORT U
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x1ea0, 0, 0, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Breve), 0x1ea1, 0, 0, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Breve), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0041, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Breve), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0061, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Breve), UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0045, 0, 0}, 0x1e1c }, // U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), UNITIZE(Qt::Key_Multi_key), 0x002c, 0x0065, 0, 0}, 0x1e1d }, // U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), UNITIZE(Qt::Key_Dead_Breve), 0, 0, 0, 0}, 0x02d8 }, // breve
++    { {UNITIZE(Qt::Key_Dead_Breve), UNITIZE(Qt::Key_Dead_Cedilla), 0x0045, 0, 0, 0}, 0x1e1c }, // U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), UNITIZE(Qt::Key_Dead_Cedilla), 0x0065, 0, 0, 0}, 0x1e1d }, // U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
++    { {UNITIZE(Qt::Key_Dead_Breve), UNITIZE(Qt::Key_Dead_Belowdot), 0x0041, 0, 0, 0}, 0x1eb6 }, // U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
++    { {UNITIZE(Qt::Key_Dead_Breve), UNITIZE(Qt::Key_Dead_Belowdot), 0x0061, 0, 0, 0}, 0x1eb7 }, // U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0000, 0x0053, 0, 0, 0}, 0x1e64 }, // U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0000, 0x0053, 0, 0, 0}, 0x1e68 }, // U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0000, 0x0073, 0, 0, 0}, 0x1e69 }, // U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0000, 0x0073, 0, 0, 0}, 0x1e65 }, // U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0020, 0, 0, 0, 0}, 0x02d9 }, // abovedot
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0041, 0, 0, 0, 0}, 0x0226 }, // U0226 # LATIN CAPITAL LETTER A WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0042, 0, 0, 0, 0}, 0x1e02 }, // U1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0043, 0, 0, 0, 0}, 0x010a }, // U010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0044, 0, 0, 0, 0}, 0x1e0a }, // U1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0045, 0, 0, 0, 0}, 0x0116 }, // U0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0046, 0, 0, 0, 0}, 0x1e1e }, // U1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0047, 0, 0, 0, 0}, 0x0120 }, // U0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0048, 0, 0, 0, 0}, 0x1e22 }, // U1E22 # LATIN CAPITAL LETTER H WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0049, 0, 0, 0, 0}, 0x0130 }, // U0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x004d, 0, 0, 0, 0}, 0x1e40 }, // U1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x004e, 0, 0, 0, 0}, 0x1e44 }, // U1E44 # LATIN CAPITAL LETTER N WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x004f, 0, 0, 0, 0}, 0x022e }, // U022E # LATIN CAPITAL LETTER O WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0050, 0, 0, 0, 0}, 0x1e56 }, // U1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0052, 0, 0, 0, 0}, 0x1e58 }, // U1E58 # LATIN CAPITAL LETTER R WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0053, 0, 0, 0, 0}, 0x1e60 }, // U1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0054, 0, 0, 0, 0}, 0x1e6a }, // U1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0057, 0, 0, 0, 0}, 0x1e86 }, // U1E86 # LATIN CAPITAL LETTER W WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0058, 0, 0, 0, 0}, 0x1e8a }, // U1E8A # LATIN CAPITAL LETTER X WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0059, 0, 0, 0, 0}, 0x1e8e }, // U1E8E # LATIN CAPITAL LETTER Y WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x005a, 0, 0, 0, 0}, 0x017b }, // U017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0061, 0, 0, 0, 0}, 0x0227 }, // U0227 # LATIN SMALL LETTER A WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0062, 0, 0, 0, 0}, 0x1e03 }, // U1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0063, 0, 0, 0, 0}, 0x010b }, // U010B # LATIN SMALL LETTER C WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0064, 0, 0, 0, 0}, 0x1e0b }, // U1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0065, 0, 0, 0, 0}, 0x0117 }, // U0117 # LATIN SMALL LETTER E WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0066, 0, 0, 0, 0}, 0x1e1f }, // U1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0067, 0, 0, 0, 0}, 0x0121 }, // U0121 # LATIN SMALL LETTER G WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0068, 0, 0, 0, 0}, 0x1e23 }, // U1E23 # LATIN SMALL LETTER H WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0069, 0, 0, 0, 0}, 0x0131 }, // U0131 # LATIN SMALL LETTER DOTLESS I
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x006d, 0, 0, 0, 0}, 0x1e41 }, // U1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x006e, 0, 0, 0, 0}, 0x1e45 }, // U1E45 # LATIN SMALL LETTER N WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x006f, 0, 0, 0, 0}, 0x022f }, // U022F # LATIN SMALL LETTER O WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0070, 0, 0, 0, 0}, 0x1e57 }, // U1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0072, 0, 0, 0, 0}, 0x1e59 }, // U1E59 # LATIN SMALL LETTER R WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0073, 0, 0, 0, 0}, 0x1e61 }, // U1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0074, 0, 0, 0, 0}, 0x1e6b }, // U1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0077, 0, 0, 0, 0}, 0x1e87 }, // U1E87 # LATIN SMALL LETTER W WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0078, 0, 0, 0, 0}, 0x1e8b }, // U1E8B # LATIN SMALL LETTER X WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0079, 0, 0, 0, 0}, 0x1e8f }, // U1E8F # LATIN SMALL LETTER Y WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x007a, 0, 0, 0, 0}, 0x017c }, // U017C # LATIN SMALL LETTER Z WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x015a, 0, 0, 0, 0}, 0x1e64 }, // U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x015b, 0, 0, 0, 0}, 0x1e65 }, // U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0160, 0, 0, 0, 0}, 0x1e66 }, // U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x0161, 0, 0, 0, 0}, 0x1e67 }, // U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x017f, 0, 0, 0, 0}, 0x1e9b }, // U1E9B # LATIN SMALL LETTER LONG S WITH DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x1e62, 0, 0, 0, 0}, 0x1e68 }, // U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), 0x1e63, 0, 0, 0, 0}, 0x1e69 }, // U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0053, 0, 0}, 0x1e68 }, // U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Multi_key), 0x0021, 0x0073, 0, 0}, 0x1e69 }, // U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0053, 0, 0}, 0x1e64 }, // U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Multi_key), 0x0027, 0x0073, 0, 0}, 0x1e65 }, // U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0053, 0, 0}, 0x1e66 }, // U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Multi_key), 0x0063, 0x0073, 0, 0}, 0x1e67 }, // U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0053, 0, 0}, 0x1e64 }, // U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Multi_key), 0x00b4, 0x0073, 0, 0}, 0x1e65 }, // U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Dead_Acute), 0x0053, 0, 0, 0}, 0x1e64 }, // U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Dead_Acute), 0x0073, 0, 0, 0}, 0x1e65 }, // U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Dead_Abovedot), 0, 0, 0, 0}, 0x02d9 }, // abovedot
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Dead_Caron), 0x0053, 0, 0, 0}, 0x1e66 }, // U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Dead_Caron), 0x0073, 0, 0, 0}, 0x1e67 }, // U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Dead_Belowdot), 0x0053, 0, 0, 0}, 0x1e68 }, // U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
++    { {UNITIZE(Qt::Key_Dead_Abovedot), UNITIZE(Qt::Key_Dead_Belowdot), 0x0073, 0, 0, 0}, 0x1e69 }, // U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Diaeresis), 0x0000, 0x004f, 0, 0, 0}, 0x1e4e }, // U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
++// /* broken */    { {UNITIZE(Qt::Key_Dead_Diaeresis), 0x0000, 0x006f, 0, 0, 0}, 0x1e4f }, // U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
++    { {UNITIZE(Qt::Key_Dead_Diaeresis), 0x0020, 0, 0, 0, 0}, 0x005c }, // quotedbl
++    { {UNITIZE(Qt::Key_Dead_Diaeresis), 0x0027, 0, 0, 0, 0}, 0x0344 }, // U0344 # COMBINING GREEK DIALYTIKA TONOS
++    { {UNITIZE(Qt::Key_Dead_Diaeresis), 0x0041, 0, 0, 0, 0}, 0x00c4 }, // U00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Dead_Diaeresis), 0x0045, 0, 0, 0, 0}, 0x00cb }, // U00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Dead_Diaeresis), 0x0048, 0, 0, 0, 0}, 0x1e26 }, // U1E26 # LATIN CAPITAL LETTER H WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Dead_Diaeresis), 0x0049, 0, 0, 0, 0}, 0x00cf }, // U00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Dead_Diaeresis), 0x004f, 0, 0, 0, 0}, 0x00d6 }, // U00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Dead_Diaeresis), 0x0055, 0, 0, 0, 0}, 0x00dc }, // U00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
++    { {UNITIZE(Qt::Key_Dead_Diaeresis), 0x0057, 0, 0, 0, 0}, 0x1e84 }, // U1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS