From 6614ee1e248c423565939308f367b0ac9ce5734b Mon Sep 17 00:00:00 2001 From: Tristan Matthews <tristan.matthews@savoirfairelinux.com> Date: Fri, 3 Feb 2012 11:48:20 -0500 Subject: [PATCH] * #8542: removed trailing whitespace from tree Also added whitespace checking pre-commit hook when autogen.sh is called. --- AUTHORS | 8 +- CODING | 2 - astylerc | 2 +- daemon/AUTHORS | 8 +- daemon/ChangeLog | 2 +- daemon/NEWS | 8 +- daemon/README | 8 +- daemon/README.gentoo | 2 +- daemon/autogen.sh | 10 +- .../doc/dbus-api/doc/templates/interface.html | 12 +- daemon/doc/doxygen/Makefile.am | 6 +- daemon/doc/doxygen/blank.html | 2 +- daemon/doc/doxygen/core-doc.cfg.in | 102 +- daemon/doc/doxygen/gtk-gui-doc.cfg.in | 106 +- daemon/globals.mak | 6 +- daemon/libs/iax2/Makefile.am | 2 +- daemon/libs/iax2/answer.h | 448 +-- daemon/libs/iax2/busy.h | 102 +- daemon/libs/iax2/dialtone.h | 202 +- daemon/libs/iax2/frame.h | 2 +- daemon/libs/iax2/iax.c | 4 +- daemon/libs/iax2/iax.h | 4 +- daemon/libs/iax2/iax2-parser.c | 16 +- daemon/libs/iax2/iax2-parser.h | 4 +- daemon/libs/iax2/iax2.h | 4 +- daemon/libs/iax2/md5.c | 2 +- daemon/libs/iax2/miniphone.c | 14 +- daemon/libs/iax2/ring10.h | 3478 ++++++++--------- daemon/libs/iax2/ringtone.h | 52 +- daemon/libs/iax2/winiphone.c | 22 +- daemon/libs/iax2/winpoop.h | 4 +- daemon/libs/utilspp/null_type.hpp | 18 +- .../utilspp/singleton/creation_using_new.hpp | 20 +- .../utilspp/singleton/creation_using_new.inl | 18 +- .../utilspp/singleton/lifetime_default.hpp | 18 +- .../utilspp/singleton/lifetime_default.inl | 20 +- .../utilspp/singleton/singleton_holder.hpp | 24 +- .../utilspp/singleton/singleton_holder.inl | 20 +- daemon/libs/utilspp/threading_single.hpp | 20 +- daemon/libs/utilspp/threading_single.inl | 20 +- daemon/man/Makefile.am | 2 +- daemon/man/README.manpages | 2 +- daemon/man/sflphoned.pod | 2 +- daemon/src/Makefile.am | 2 +- daemon/src/audio/Makefile.am | 4 +- daemon/src/audio/alsa/Makefile.am | 2 +- daemon/src/audio/alsa/alsalayer.cpp | 6 +- daemon/src/audio/audiolayer.h | 4 +- daemon/src/audio/audiortp/Makefile.am | 2 +- daemon/src/audio/codecs/Makefile.am | 2 +- daemon/src/audio/codecs/README | 6 +- daemon/src/audio/pulseaudio/Makefile.am | 2 +- daemon/src/audio/pulseaudio/audiostream.cpp | 4 +- daemon/src/audio/pulseaudio/pulselayer.cpp | 2 +- daemon/src/audio/pulseaudio/pulselayer.h | 2 +- daemon/src/audio/sound/Makefile.am | 2 +- daemon/src/dbus/callmanager-introspec.xml | 28 +- daemon/src/history/history.cpp | 4 +- daemon/src/hooks/Makefile.am | 2 +- daemon/src/managerimpl.cpp | 4 +- daemon/src/sip/sipaccount.cpp | 14 +- daemon/src/sip/sipaccount.h | 38 +- daemon/src/sip/sipvoiplink.cpp | 26 +- daemon/src/sip/sipvoiplink.h | 2 +- daemon/test/sflphoned-sample.yml | 46 +- daemon/test/sippxml/test_1.xml | 2 +- daemon/test/sippxml/test_2.xml | 2 +- daemon/test/sippxml/test_3.xml | 4 +- daemon/test/sippxml/test_4.xml | 2 +- daemon/test/siptest.cpp | 2 +- daemon/test/ymlParser.yml | 6 +- gnome/Makefile.am | 2 +- gnome/configure.ac | 2 +- gnome/doc/C/figures/accounts_security.png | Bin 27664 -> 27663 bytes gnome/doc/C/figures/conference.png | Bin 24005 -> 24004 bytes gnome/doc/C/figures/rec-settings.png | Bin 7822 -> 7821 bytes gnome/doc/C/figures/record.png | Bin 20033 -> 20032 bytes gnome/doc/C/figures/transfer.png | Bin 20160 -> 20159 bytes gnome/doc/C/sflphone.xml | 968 ++--- gnome/doc/sflphone.omf.in | 4 +- gnome/man/Makefile.am | 2 +- gnome/man/README.manpages | 2 +- gnome/man/sflphone-client-gnome.pod | 2 +- gnome/src/Makefile.am | 4 +- gnome/src/callable_obj.c | 2 +- gnome/src/config/audioconf.c | 2 +- gnome/src/contacts/addressbook.h | 4 +- gnome/src/dbus/README | 2 +- gnome/src/dbus/callmanager-introspec.xml | 28 +- gnome/src/dbus/shortcutsmanager-introspec.xml | 12 +- gnome/src/icons/README | 4 +- gnome/src/unused.h | 2 +- kde/.gitignore | 2 +- kde/Doxyfile | 86 +- kde/cmake/FindQt4.cmake | 230 +- kde/cmake/TargetDistclean.cmake | 10 +- kde/config.sh | 4 +- kde/doc/advanced-use.docbook | 4 +- kde/doc/basic-use.docbook | 6 +- kde/doc/common-use.docbook | 8 +- kde/doc/credits.docbook | 4 +- kde/doc/index.docbook | 12 +- kde/doc/introduction.docbook | 2 +- kde/doc/wizard-welcome.png | Bin 25116 -> 25115 bytes kde/man/README.manpages | 2 +- kde/man/sflphone-client-kde.pod | 2 +- kde/plasma/dataengine/CMakeLists.txt | 12 +- .../dataengine/plasma-engine-sflphone.desktop | 2 +- .../dataengine/plasma-engine-testtime.desktop | 2 +- kde/plasma/dataengine/sflphonEngine.cpp | 18 +- kde/plasma/dataengine/sflphonEngine.h | 8 +- kde/plasma/plasmoid/CMakeLists.txt | 16 +- kde/plasma/plasmoid/CallItem.cpp | 4 +- kde/plasma/plasmoid/CallItem.h | 4 +- kde/plasma/plasmoid/ConferenceItem.cpp | 2 +- kde/plasma/plasmoid/ConferenceItem.h | 4 +- kde/plasma/plasmoid/DialPage.cpp | 32 +- kde/plasma/plasmoid/DialPage.h | 10 +- kde/plasma/plasmoid/MainWidget.cpp | 16 +- kde/plasma/plasmoid/SFLPhonePlasmoid.cpp | 32 +- kde/plasma/plasmoid/SFLPhonePlasmoid.h | 16 +- .../plasmoid/plasma-applet-sflphone.desktop | 2 +- kde/plasma/plasmoid/sflphone-plasmoid.desktop | 2 +- kde/po/ru/sflphone-client-kde.po | 2 +- kde/src/AccountListModel.h | 2 +- kde/src/AccountView.cpp | 4 +- kde/src/AccountView.h | 2 +- kde/src/AccountWizard.cpp | 80 +- kde/src/AccountWizard.h | 8 +- kde/src/ActionSetAccountFirst.h | 4 +- kde/src/AkonadiBackend.cpp | 16 +- kde/src/AkonadiBackend.h | 10 +- kde/src/CMakeLists.txt | 8 +- kde/src/CallView.cpp | 80 +- kde/src/CallView.h | 18 +- kde/src/Codec.h | 4 +- kde/src/SFLPhone.cpp | 24 +- kde/src/SFLPhone.h | 36 +- kde/src/SFLPhoneView.cpp | 60 +- kde/src/SFLPhoneView.h | 72 +- kde/src/SFLPhoneapplication.cpp | 4 +- kde/src/conf/ConfigAccountList.cpp | 2 +- kde/src/conf/ConfigAccountList.h | 4 +- kde/src/conf/ConfigurationDialog.cpp | 14 +- kde/src/conf/ConfigurationDialog.h | 14 +- kde/src/conf/ConfigurationSkeleton.cpp | 104 +- kde/src/conf/ConfigurationSkeleton.h | 18 +- kde/src/conf/dlgaccounts.cpp | 78 +- kde/src/conf/dlgaccounts.h | 48 +- kde/src/conf/dlgaudio.cpp | 24 +- kde/src/conf/dlgaudio.h | 16 +- kde/src/conf/kcfg_settings.kcfgc | 2 +- kde/src/conf/sflphone-client-kde.kcfg | 48 +- kde/src/dbus/callmanager-introspec.xml | 28 +- kde/src/icons/user-group-properties.svgz | Bin 91615 -> 91612 bytes kde/src/icons/x-office-address-book.png | Bin 4051 -> 4050 bytes kde/src/main.cpp | 12 +- kde/src/widgets/AccountItemWidget.cpp | 8 +- kde/src/widgets/AccountItemWidget.h | 14 +- kde/src/widgets/BookmarkDock.cpp | 8 +- kde/src/widgets/CallTreeItem.cpp | 22 +- kde/src/widgets/CallTreeItem.h | 6 +- kde/src/widgets/ContactDock.cpp | 4 +- kde/src/widgets/ContactDock.h | 12 +- kde/src/widgets/ContactItemWidget.cpp | 12 +- kde/src/widgets/ContactItemWidget.h | 2 +- kde/src/widgets/Dialpad.cpp | 6 +- kde/src/widgets/Dialpad.h | 2 +- kde/src/widgets/HistoryDock.cpp | 14 +- kde/src/widgets/HistoryDock.h | 6 +- kde/src/widgets/HistoryTreeItem.cpp | 20 +- kde/src/widgets/HistoryTreeItem.h | 10 +- kde/src/widgets/TranslucentButtons.cpp | 2 +- kde/src/widgets/TranslucentButtons.h | 6 +- plugins/addressbook/evolution/addressbook.c | 6 +- plugins/configure.ac | 2 +- tools/build-package.sh | 6 +- tools/build-system/automatic-build-machine.sh | 2 +- tools/build-system/build-osc.sh | 6 +- tools/build-system/init-osc.sh | 2 +- tools/build-system/launch-build-machine-2.sh | 4 +- .../usr/bin/sflphone-handler | 6 +- .../share/telify/chrome/content/dialog.css | 4 +- .../share/telify/chrome/content/flag/243.png | Bin 3452 -> 3451 bytes .../share/telify/chrome/content/flag/244.png | Bin 375 -> 374 bytes .../share/telify/chrome/content/flag/247.png | Bin 3740 -> 3739 bytes .../share/telify/chrome/content/flag/357.png | Bin 3050 -> 3049 bytes .../share/telify/chrome/content/flag/44.png | Bin 3740 -> 3739 bytes .../share/telify/chrome/content/flag/500.png | Bin 3239 -> 3238 bytes .../share/telify/chrome/content/flag/976.png | Bin 2973 -> 2972 bytes .../share/telify/chrome/locale/en-US/lang.dtd | 1 - .../mozilla-telify-sflphone/debian/rules | 2 +- .../sflphone-client-gnome/debian/changelog | 22 +- .../sflphone-client-gnome/debian/rules | 20 +- .../sflphone-client-kde/debian/changelog | 22 +- .../sflphone-client-kde/debian/postinst | 2 +- .../sflphone-client-kde/debian/rules | 16 +- .../sflphone-common/debian/changelog | 22 +- .../launchpad/sflphone-common/debian/postinst | 4 +- .../launchpad/sflphone-common/debian/rules | 2 +- .../sflphone-plugins/debian/changelog | 22 +- .../launchpad/sflphone-plugins/debian/rules | 20 +- tools/build-system/make-telify-package.sh | 2 +- .../osc/sflphone-client-gnome.spec | 4 +- .../build-system/osc/sflphone-client-kde.spec | 4 +- tools/build-system/osc/sflphone-common.spec | 2 +- tools/build-system/osc/sflphone-plugins.spec | 4 +- tools/build-system/setenv.sh | 2 +- tools/build-system/sfl-git-dch-2.sh | 2 +- .../mozilla-telify-sflphone/sflphone-handler | 6 +- .../mozilla-telify-sflphone/telify-1.0-fx.xpi | Bin 569335 -> 569328 bytes tools/pysflphone/pysflphone.py | 60 +- tools/pysflphone/pysflphone_testdbus.py | 44 +- tools/pysflphone/sflphonectrlsimple.py | 28 +- tools/sflphone-callto | 18 +- tools/sippxml/account_uas_recv_transfered.xml | 2 +- tools/sippxml/ip2ip_uas_recv_hangup.xml | 10 +- tools/sippxml/ip2ip_uas_recv_hold_offhold.xml | 4 +- tools/sippxml/ip2ip_uas_recv_peer_hungup.xml | 2 +- tools/sippxml/ip2ipcalluac.xml | 2 +- tools/sippxml/ip2ipcalluas.xml | 2 +- tools/sippxml/simpleServiceRoute.xml | 2 +- tools/sippxml/sippusage.txt | 32 +- tools/sippxml/testEarlyMedia.xml | 2 +- tools/sippxml/testsuiteuac.sh | 54 +- tools/vm/deploy_vm.sh | 2 +- 226 files changed, 4067 insertions(+), 4062 deletions(-) diff --git a/AUTHORS b/AUTHORS index 6e78c64c34..27c5949edb 100644 --- a/AUTHORS +++ b/AUTHORS @@ -5,7 +5,7 @@ Emmanuel Milou <emmanuel dot milou at savoirfairelinux dot com> - Dynamic loading of audio codecs ( shared libraries ) - Debian packages - GTK client error handling - - Plus many portions of code in sflphoned and sflphone-gtk + - Plus many portions of code in sflphoned and sflphone-gtk - Test and debugging Alexandre Savard <alexandre dot savard at savoirfairelinux dot com> @@ -14,14 +14,14 @@ Alexandre Bourget <alexandre dot bourget at savoirfairelinux dot com> - IAX implementation Guillaume Carmel-Archambault <guillaume.carmel-archambault at savoirfairelinux dot com> - - Presence + - Presence - Contacts Yun Liu <yun.liu at savoirfairelinux dot com> - Change sip library to pjsip - Support multiple accounts registration - Add chinese translation - Many portions of test and debugging - + Polytechnic School of Montreal: - Jean-Francois Blanchard-Dionne <jean-francois.blanchard-dionne at polymtl dot ca> - Ala Eddine Limame <ala-eddine.limame at polymtl dot ca> @@ -49,7 +49,7 @@ Jerome Oufella <jerome dot oufella at savoirfairelinux dot com> Julien Plissonneau Duquene <... at savoirfairelinux dot com> - autotools cleanups -Jean-Philippe Barrette-LaPierre +Jean-Philippe Barrette-LaPierre - Autotools support and portions of code Laurielle Lea diff --git a/CODING b/CODING index 22e7a34a90..c1785ec901 100644 --- a/CODING +++ b/CODING @@ -1,4 +1,2 @@ Please follow our coding standards when developing http://projects.savoirfairelinux.net/wiki/sflphone/Coding_Standards - - diff --git a/astylerc b/astylerc index 2060843584..5fe7ea2a69 100644 --- a/astylerc +++ b/astylerc @@ -3,7 +3,7 @@ # http://astyle.sourceforge.net/astyle.html # Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> # Savoir-faire Linux Inc -# http://www.sflphone.org +# http://www.sflphone.org style=stroustrup # stroustrup style http://astyle.sourceforge.net/astyle.html#_style=stroustrup indent=spaces=4 # Use spaces instead of tabs for indentation diff --git a/daemon/AUTHORS b/daemon/AUTHORS index 26e4e78f59..ea49a37b38 100644 --- a/daemon/AUTHORS +++ b/daemon/AUTHORS @@ -5,21 +5,21 @@ Emmanuel Milou <emmanuel dot milou at savoirfairelinux dot com> - Dynamic loading of audio codecs ( shared libraries ) - Debian packages - GTK client error handling - - Plus many portions of code in sflphoned and sflphone-gtk + - Plus many portions of code in sflphoned and sflphone-gtk - Test and debugging Alexandre Bourget <alexandre dot bourget at savoirfairelinux dot com> - IAX implementation Guillaume Carmel-Archambault <guillaume.carmel-archambault at savoirfairelinux dot com> - - Presence + - Presence - Contacts Yun Liu <yun.liu at savoirfairelinux dot com> - Change sip library to pjsip - Support multiple accounts registration - Add chinese translation - Many portions of test and debugging - + Polytechnic School of Montreal: - Jean-Francois Blanchard-Dionne <jean-francois.blanchard-dionne at polymtl dot ca> - Ala Eddine Limame <ala-eddine.limame at polymtl dot ca> @@ -47,7 +47,7 @@ Jerome Oufella <jerome dot oufella at savoirfairelinux dot com> Julien Plissonneau Duquene <... at savoirfairelinux dot com> - autotools cleanups -Jean-Philippe Barrette-LaPierre +Jean-Philippe Barrette-LaPierre - Autotools support and portions of code Laurielle Lea diff --git a/daemon/ChangeLog b/daemon/ChangeLog index e688e58548..654f1e1125 100644 --- a/daemon/ChangeLog +++ b/daemon/ChangeLog @@ -183,7 +183,7 @@ 2005-07-25 Laurielle Lea - * Migrate from libeXoSIP 0.9.0 to libeXosip2-1.9.1-pre15 + * Migrate from libeXoSIP 0.9.0 to libeXosip2-1.9.1-pre15 (http://www.antisip.com/download/) 2005-07-21 Laurielle Lea diff --git a/daemon/NEWS b/daemon/NEWS index 598bbaf699..8bf233b2e1 100644 --- a/daemon/NEWS +++ b/daemon/NEWS @@ -43,7 +43,7 @@ SFLphoned (0.6.1) / 2005-11-26 * add speex codec (experimental) * fix for codec handling in sdp and audiortp * new codec class - * add portaudio missing file + * add portaudio missing file (thanks to Pierre POMES) * add samplerate and inChannel/outChannel in AudioLayer we could use microphone in mono and speaker in stereo @@ -66,7 +66,7 @@ SFLphoned/SFLphone (0.5a) / 2005-10-17 SFLphone (0.4.1-pre2) / 2005-09-30 * rearranged utilspp use * Bug fix when trying to use more than 6 lines. - * Now, we send a final response to reINVITEs + * Now, we send a final response to reINVITEs (thanks to Mikael Magnusson) * We can build in different build directories. (thanks to Mikael Magnusson) @@ -85,7 +85,7 @@ SFLphone (0.4) / 2005-07-06 * Handle CANCEL method * PortAudio replace OSS and ALSA devices choice * Add PortAudioCpp to make easy use of RingBuffer object for - audio callback + audio callback * Add PortAudio library to make easy sound portability * Fix a few memory leak * Reorganisation of SFLphone architecture @@ -95,7 +95,7 @@ SFLphone (0.4) / 2005-07-06 * Call management updated SFLphone (0.3) / 2005-04-05 - * ALSA driver support added + * ALSA driver support added * GSM audio codec support added * Ringtones support (just ulaw format) added * Notification incoming call added diff --git a/daemon/README b/daemon/README index afc3decbec..27f0b8d8f9 100644 --- a/daemon/README +++ b/daemon/README @@ -34,7 +34,7 @@ SFLPhone is a Voice-over-IP software phone. We want it to be: - user friendly (fast, sleek, easy to learn interface) - corporate grade (transfers, holds, perfect audio quality) - fully compatible with Asterisk (SIP and IAX protocols) -- customizable +- customizable As the SIP/audio daemon and the user interface are separate processes, it is easy to provide different user interfaces. SFLPhone0.8 comes with @@ -46,7 +46,7 @@ SFLPhone is actually used by the support team of Savoir-Faire Linux Inc. More information is available on the project homepage: http://www.sflphone.org/ - + Short description of content of source tree ------------------------------------------- @@ -56,7 +56,7 @@ Short description of content of source tree - src/ is the core of SFLphone. It contains the main.cpp, managerimpl.cpp files, audio and gui directories, and files about signalisation SIP. Later, it should be better, when IAX will be implemented, that a directory groups - these protocols. + these protocols. The ManagerImpl class is the intermediaire between all the layer in the tree. - src/audio/ is the audio layer. It contains all about tones, dtmf, audiodriver, rtp layer, audio codec ulaw, alaw and gsm. @@ -79,7 +79,7 @@ cd libs/pjproject ./configure --disable-ilbc-codec && make clean && make dep && make sudo make install -If you already have installed a different version of +If you already have installed a different version of pjsip on your system, you will most likely have some errors such as : diff --git a/daemon/README.gentoo b/daemon/README.gentoo index 26dd1a655a..c17db2a1f4 100644 --- a/daemon/README.gentoo +++ b/daemon/README.gentoo @@ -5,7 +5,7 @@ emerge libosip ACCEPT_KEYWORDS=~x86 emerge libeXosip emerge libsamplerate emerge cvs -emerge =qt-3.3.6-r1 +emerge =qt-3.3.6-r1 cvs ... diff --git a/daemon/autogen.sh b/daemon/autogen.sh index 839ab4aaf4..72a79ea4bf 100755 --- a/daemon/autogen.sh +++ b/daemon/autogen.sh @@ -1,6 +1,14 @@ #!/bin/sh -e # Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565663 -[ ! -e m4 ] && mkdir m4 +mkdir -p m4 + +HOOKS_DIR="`git rev-parse --git-dir`"/hooks +# install pre-commit hook for doing clean commits +if test ! \( -x ${HOOKS_DIR}/hooks/pre-commit -a -L ${HOOKS_DIR}/pre-commit \); +then + rm -f ${HOOKS_DIR}/pre-commit + ln -s ${HOOKS_DIR}/pre-commit.sample ${HOOKS_DIR}/pre-commit +fi autoreconf --force --install --verbose -Wall -I m4 diff --git a/daemon/doc/dbus-api/doc/templates/interface.html b/daemon/doc/dbus-api/doc/templates/interface.html index 79c35b201c..c159bf511c 100644 --- a/daemon/doc/dbus-api/doc/templates/interface.html +++ b/daemon/doc/dbus-api/doc/templates/interface.html @@ -45,7 +45,7 @@ #end for </table> #end if - + #if $interface.signals <h3>Signals</h3> <table class="summary"> @@ -216,7 +216,7 @@ </ul> </div> #end if - + #if $method.out_args <div class="indent"> <h3>Returns</h3> @@ -234,9 +234,9 @@ </ul> </div> #end if - + $method.get_docstring() - + #if $method.possible_errors <hr/> <div class="indent"> @@ -256,7 +256,7 @@ #end for </div> #end if - + #if $interface.signals <div class="outset signals signal"> <a name="signals"></a> @@ -417,7 +417,7 @@ #end for </div> #end if - + </div> </body> diff --git a/daemon/doc/doxygen/Makefile.am b/daemon/doc/doxygen/Makefile.am index abe5be8b20..9194aa041f 100644 --- a/daemon/doc/doxygen/Makefile.am +++ b/daemon/doc/doxygen/Makefile.am @@ -2,8 +2,8 @@ if ENABLE_DOXYGEN docdir = ${prefix}/share/doc/wifidog-@VERSION@ html_parent_dir = . -HTML_HEADER = -HTML_FOOTER = +HTML_HEADER = +HTML_FOOTER = all: doxygen-trac @@ -19,7 +19,7 @@ doc: clean core-doc gtk-gui-doc %-doc : %-doc.cfg rm -rf $@/ refman.pdf $(DOXYGEN) $< -# $(MAKE) -C latex/ +# $(MAKE) -C latex/ # mv latex/refman.pdf ./refman.pdf diff --git a/daemon/doc/doxygen/blank.html b/daemon/doc/doxygen/blank.html index 8d1c8b69c3..8b13789179 100644 --- a/daemon/doc/doxygen/blank.html +++ b/daemon/doc/doxygen/blank.html @@ -1 +1 @@ - + diff --git a/daemon/doc/doxygen/core-doc.cfg.in b/daemon/doc/doxygen/core-doc.cfg.in index c526acc255..6c2f2d07c6 100644 --- a/daemon/doc/doxygen/core-doc.cfg.in +++ b/daemon/doc/doxygen/core-doc.cfg.in @@ -5,18 +5,18 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = SFLphone Core -PROJECT_NUMBER = -OUTPUT_DIRECTORY = +PROJECT_NUMBER = +OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = +ABBREVIATE_BRIEF = ALWAYS_DETAILED_SEC = YES INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = NO -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO QT_AUTOBRIEF = NO @@ -25,7 +25,7 @@ DETAILS_AT_TOP = NO INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 8 -ALIASES = +ALIASES = OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO BUILTIN_STL_SUPPORT = NO @@ -57,11 +57,11 @@ GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = +ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = NO -FILE_VERSION_FILTER = +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -70,25 +70,25 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO -WARN_FORMAT = -WARN_LOGFILE = +WARN_FORMAT = +WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = @-top_srcdir-@/src @-top_srcdir-@/src/audio @-top_srcdir-@/src/audio/codecs @-top_srcdir-@/src/dbus @-top_srcdir-@/src/config @-top_srcdir-@/src/zeroconf INPUT_ENCODING = UTF-8 -FILE_PATTERNS = +FILE_PATTERNS = RECURSIVE = NO -EXCLUDE = +EXCLUDE = EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing @@ -106,21 +106,21 @@ VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = +IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = @-html_dir-@ -HTML_FILE_EXTENSION = +HTML_FILE_EXTENSION = HTML_HEADER = @-html_header-@ HTML_FOOTER = @-html_footer-@ -HTML_STYLESHEET = +HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO HTML_DYNAMIC_SECTIONS = NO -CHM_FILE = -HHC_LOCATION = +CHM_FILE = +HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO @@ -132,13 +132,13 @@ TREEVIEW_WIDTH = 250 # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO -LATEX_OUTPUT = -LATEX_CMD_NAME = -MAKEINDEX_CMD_NAME = +LATEX_OUTPUT = +LATEX_CMD_NAME = +MAKEINDEX_CMD_NAME = COMPACT_LATEX = NO PAPER_TYPE = letter -EXTRA_PACKAGES = -LATEX_HEADER = +EXTRA_PACKAGES = +LATEX_HEADER = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = NO @@ -147,25 +147,25 @@ LATEX_HIDE_INDICES = NO # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO -RTF_OUTPUT = +RTF_OUTPUT = COMPACT_RTF = NO RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO -MAN_OUTPUT = -MAN_EXTENSION = +MAN_OUTPUT = +MAN_EXTENSION = MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = +XML_SCHEMA = +XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output @@ -177,32 +177,32 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = +PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- -# Configuration options related to the preprocessor +# Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- -# Configuration::additions related to external references +# Configuration::additions related to external references #--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = +TAGFILES = +GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES -PERL_PATH = +PERL_PATH = #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES -MSCGEN_PATH = +MSCGEN_PATH = HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO CLASS_GRAPH = YES @@ -217,8 +217,8 @@ CALLER_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = +DOT_PATH = +DOTFILE_DIRS = DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO @@ -226,6 +226,6 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- -# Configuration::additions related to the search engine +# Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO diff --git a/daemon/doc/doxygen/gtk-gui-doc.cfg.in b/daemon/doc/doxygen/gtk-gui-doc.cfg.in index dff19c2600..50f2f2191f 100644 --- a/daemon/doc/doxygen/gtk-gui-doc.cfg.in +++ b/daemon/doc/doxygen/gtk-gui-doc.cfg.in @@ -5,18 +5,18 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = SFLPhone GTK GUI -PROJECT_NUMBER = -OUTPUT_DIRECTORY = +PROJECT_NUMBER = +OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = +ABBREVIATE_BRIEF = ALWAYS_DETAILED_SEC = YES INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = NO -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO QT_AUTOBRIEF = NO @@ -25,7 +25,7 @@ DETAILS_AT_TOP = NO INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 8 -ALIASES = +ALIASES = OPTIMIZE_OUTPUT_FOR_C = YES OPTIMIZE_OUTPUT_JAVA = NO BUILTIN_STL_SUPPORT = NO @@ -57,11 +57,11 @@ GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = +ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = NO -FILE_VERSION_FILTER = +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -70,25 +70,25 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO -WARN_FORMAT = -WARN_LOGFILE = +WARN_FORMAT = +WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = @-top_srcdir-@/sflphone-gtk/src +INPUT = @-top_srcdir-@/sflphone-gtk/src INPUT_ENCODING = UTF-8 -FILE_PATTERNS = -RECURSIVE = NO -EXCLUDE = +FILE_PATTERNS = +RECURSIVE = NO +EXCLUDE = EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing @@ -106,21 +106,21 @@ VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = +IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = @-html_dir-@ -HTML_FILE_EXTENSION = +HTML_FILE_EXTENSION = HTML_HEADER = @-html_header-@ HTML_FOOTER = @-html_footer-@ -HTML_STYLESHEET = +HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO HTML_DYNAMIC_SECTIONS = NO -CHM_FILE = -HHC_LOCATION = +CHM_FILE = +HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO @@ -132,13 +132,13 @@ TREEVIEW_WIDTH = 250 # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO -LATEX_OUTPUT = -LATEX_CMD_NAME = -MAKEINDEX_CMD_NAME = +LATEX_OUTPUT = +LATEX_CMD_NAME = +MAKEINDEX_CMD_NAME = COMPACT_LATEX = NO PAPER_TYPE = letter -EXTRA_PACKAGES = -LATEX_HEADER = +EXTRA_PACKAGES = +LATEX_HEADER = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = NO @@ -147,25 +147,25 @@ LATEX_HIDE_INDICES = NO # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO -RTF_OUTPUT = +RTF_OUTPUT = COMPACT_RTF = NO RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO -MAN_OUTPUT = -MAN_EXTENSION = +MAN_OUTPUT = +MAN_EXTENSION = MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = +XML_SCHEMA = +XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output @@ -177,32 +177,32 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = +PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- -# Configuration options related to the preprocessor +# Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- -# Configuration::additions related to external references +# Configuration::additions related to external references #--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = +TAGFILES = +GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES -PERL_PATH = +PERL_PATH = #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES -MSCGEN_PATH = +MSCGEN_PATH = HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO CLASS_GRAPH = YES @@ -217,8 +217,8 @@ CALLER_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = +DOT_PATH = +DOTFILE_DIRS = DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO @@ -226,6 +226,6 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- -# Configuration::additions related to the search engine +# Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO diff --git a/daemon/globals.mak b/daemon/globals.mak index fa550b7107..a6c10a05f5 100644 --- a/daemon/globals.mak +++ b/daemon/globals.mak @@ -24,7 +24,7 @@ PJSIP_LIBS= \ -lpjsip-simple-$(target) \ -lpjsip-ua-$(target) \ -lpjlib-util-$(target) \ - -lpj-$(target) + -lpj-$(target) SIP_CFLAGS=-I$(src)/libs/pjproject/pjsip/include \ -I$(src)/libs/pjproject/pjlib/include \ @@ -35,13 +35,13 @@ SIP_CFLAGS=-I$(src)/libs/pjproject/pjsip/include \ if BUILD_SPEEX SPEEXCODEC=-DHAVE_SPEEX_CODEC else -SPEEXCODEC= +SPEEXCODEC= endif if BUILD_GSM GSMCODEC=-DHAVE_GSM_CODEC else -GSMCODEC= +GSMCODEC= endif # Preprocessor flags diff --git a/daemon/libs/iax2/Makefile.am b/daemon/libs/iax2/Makefile.am index 5bb06f6dde..70750275af 100644 --- a/daemon/libs/iax2/Makefile.am +++ b/daemon/libs/iax2/Makefile.am @@ -3,7 +3,7 @@ AM_CFLAGS += -g -Wall -Wstrict-prototypes -I $(top_srcdir)/libs/iax2/ AM_CFLAGS += -DLIBIAX AM_CFLAGS += -fsigned-char # -DDEBUG_SUPPORT (doesn't compile with it) -# -DDEBUG_DEFAULT +# -DDEBUG_DEFAULT AM_CFLAGS += $(UCFLAGS) noinst_LTLIBRARIES = libiax2.la diff --git a/daemon/libs/iax2/answer.h b/daemon/libs/iax2/answer.h index 2a034204cf..0f2be50dae 100644 --- a/daemon/libs/iax2/answer.h +++ b/daemon/libs/iax2/answer.h @@ -10,228 +10,228 @@ */ static signed short answer[] = { -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 0x19b7, 0x0245, 0xeee5, 0xb875, 0xd9a4, 0x6018, 0x660a, 0xc3c6, -0x8741, 0xff55, 0x4c2e, 0x2146, 0xfed2, 0xf079, 0xcbd4, 0xe561, 0x3c41, 0x3166, -0xd425, 0xdc59, 0x2748, 0x087d, 0xc72b, 0xfe3a, 0x4681, 0x14c6, 0xcf45, 0xdd38, -0xf8dd, 0x0a39, 0x3a5a, 0x32b9, 0xbfec, 0x957f, 0x15a3, 0x70f4, 0x1d95, 0xbfc4, -0xd367, 0xfda0, 0x0dc0, 0x29eb, 0x1fc2, 0xd684, 0xcab1, 0x19c7, 0x29ef, 0xe679, -0xe9d0, 0x2b82, 0x151a, 0xca9f, 0xdb68, 0x1f4a, 0x271c, 0x0e2a, 0xfb32, 0xd1b2, -0xc8ff, 0x2382, 0x6380, 0x0a52, 0xa118, 0xccbf, 0x2ddc, 0x33fd, 0x0964, 0xf2a4, -0xdd81, 0xe092, 0x1a00, 0x325c, 0xf5e3, 0xd6a1, 0x0b6c, 0x1c75, 0xe4f8, 0xe07c, -0x2082, 0x2b3e, 0xf445, 0xdaa9, 0xea13, 0xff3c, 0x245c, 0x35c1, 0xf308, 0xab53, -0xdf59, 0x4698, 0x3f3b, 0xe7f7, 0xca84, 0xed4d, 0x0c3f, 0x1e94, 0x1c2d, 0xf06f, -0xd4df, 0xff34, 0x23d8, 0x001e, 0xe3f1, 0x0b15, 0x2113, 0xf3fd, 0xd768, 0xf9a0, -0x1d31, 0x1c6e, 0x0797, 0xe3a0, 0xce6c, 0xfd7b, 0x422a, 0x2c4c, 0xd364, 0xbf42, -0x0278, 0x303e, 0x1c51, 0xf737, 0xe25a, 0xe75f, 0x0a8f, 0x22ab, 0x05f4, 0xe3f9, -0xf8c4, 0x1705, 0x0162, 0xe49f, 0xfb8b, 0x1e2b, 0x13ac, 0xf044, 0xe07b, 0xf01a, -0x1567, 0x2cbf, 0x0b75, 0xd01b, 0xd206, 0x1563, 0x38d7, 0x0f2e, 0xdb32, 0xdc30, -0x023b, 0x1e44, 0x16eb, 0xf5f7, 0xe425, 0xfa33, 0x14d5, 0x0968, 0xeff2, 0xf762, -0x1137, 0x0e59, 0xf13a, 0xe651, 0xff41, 0x1d60, 0x18fd, 0xf1e6, 0xd75f, 0xf097, -0x20ec, 0x27fa, 0xfba4, 0xd5b8, 0xe68e, 0x1657, 0x2518, 0x04f6, 0xe5a3, 0xe976, -0x0578, 0x18fa, 0x0a92, 0xec0a, 0xef2a, 0x111f, 0x12f4, 0xeec3, 0xe95e, 0x0d3a, -0x18fd, 0xff72, 0xeefc, 0xf114, 0xfaaa, 0x14ee, 0x21db, 0xf56e, 0xcb49, 0xf621, -0x3323, 0x1947, 0xe017, 0xe7e9, 0x0819, 0x0707, 0x084c, 0x0f57, 0xf152, 0xdf92, -0x104a, 0x28eb, 0xedcc, 0xd4ad, 0x1415, 0x296d, 0xed9a, 0xdf57, 0x0cc2, 0x0d95, -0xf7b5, 0x0deb, 0x0b34, 0xd713, 0xea08, 0x38d6, 0x216d, 0xc727, 0xdc32, 0x2cd2, -0x1822, 0xe2d5, 0xfeb3, 0x106c, 0xe6e5, 0xf81e, 0x2fe8, 0x01af, 0xc180, 0x037a, -0x42d8, 0xf88d, 0xc344, 0x0a4f, 0x2c4e, 0xf19d, 0xebeb, 0x162c, 0xf9e9, 0xde93, -0x1b56, 0x2c60, 0xd8aa, 0xce3e, 0x2a41, 0x2eeb, 0xdab1, 0xde32, 0x1c32, 0x0aba, -0xeabe, 0x1008, 0x136d, 0xda2f, 0xec3b, 0x31dd, 0x1130, 0xca79, 0xf5b8, 0x3423, -0x0274, 0xd27d, 0x035e, 0x1e68, 0xf641, 0xf904, 0x1691, 0xef7d, 0xd57a, 0x1c3b, -0x3c23, 0xe881, 0xc274, 0x0af5, 0x2962, 0xfa34, 0xf676, 0x0f71, 0xefcc, 0xe01f, -0x19e7, 0x276f, 0xe694, 0xe134, 0x1c3a, 0x0e8b, 0xd8e7, 0xfa81, 0x2f8b, 0x07c5, -0xd904, 0xf6fa, 0x0ca5, 0xf9a2, 0x0dc7, 0x2623, 0xec54, 0xbe23, 0x02b6, 0x4296, -0x10cd, 0xda61, 0xf11c, 0x0103, 0xf41c, 0x10b4, 0x2a03, 0xf63c, 0xce1a, 0xfdbd, -0x1fb4, 0xfc51, 0xf727, 0x1c8a, 0x04ff, 0xcf41, 0xec05, 0x2913, 0x1ce8, 0xf70c, -0xf744, 0xede8, 0xdd77, 0x0d99, 0x43f1, 0x119c, 0xc14f, 0xd60e, 0x17cb, 0x1e19, -0x0d4e, 0x0c95, 0xeed1, 0xcdf4, 0xf7a5, 0x331f, 0x1cd0, 0xeb17, 0xf082, 0xfb19, -0xe899, 0xfdeb, 0x323c, 0x2036, 0xdad3, 0xd134, 0xfd03, 0x1345, 0x1c10, 0x2239, -0xf656, 0xbc22, 0xdc3f, 0x3392, 0x3d59, 0xfd77, 0xdb4d, 0xe23f, 0xedbe, 0x0f7e, -0x35cc, 0x1947, 0xd5dc, 0xd1bf, 0x035d, 0x16fc, 0x1174, 0x1675, 0x0249, 0xd2d4, -0xd851, 0x184d, 0x32fe, 0x0f91, 0xee14, 0xe1e6, 0xdf9b, 0x016b, 0x3668, 0x2b2b, -0xe20c, 0xc554, 0xf257, 0x1c05, 0x1fc5, 0x14f0, 0xf891, 0xd41c, 0xdf83, 0x1865, -0x2de1, 0x0b16, 0xed58, 0xea0c, 0xea79, 0xfbd9, 0x22af, 0x2732, 0xf62f, 0xd389, -0xe7d9, 0x0b39, 0x1cdc, 0x1de3, 0x038a, 0xd809, 0xd5f7, 0x0b55, 0x305e, 0x1910, -0xf02e, 0xe089, 0xe7c7, 0x0195, 0x2265, 0x21da, 0xf743, 0xd8f2, 0xe978, 0x09a1, -0x190a, 0x17c5, 0x045a, 0xe46d, 0xdd06, 0xffb2, 0x2293, 0x1cfe, 0xfd4d, 0xe4f9, -0xe310, 0xfaf1, 0x1d22, 0x2376, 0x0113, 0xde3a, 0xe21b, 0x0204, 0x1ba1, 0x1bd6, -0x0333, 0xe563, 0xe104, 0xfd51, 0x1bc1, 0x1ccf, 0x0285, 0xe757, 0xe35e, 0xfaf2, -0x185d, 0x1d46, 0x06b7, 0xec13, 0xe108, 0xef6e, 0x121d, 0x2a17, 0x16a6, 0xe32c, -0xc9a9, 0xf070, 0x2f48, 0x3788, 0xfa4e, 0xc32a, 0xd9c2, 0x1fa1, 0x36fe, 0x07fa, -0xd9e4, 0xe577, 0x0e5e, 0x1755, 0xfb53, 0xed71, 0x0540, 0x19e0, 0x0301, 0xdc97, -0xe391, 0x1937, 0x367c, 0x0bc9, 0xca4c, 0xc96b, 0x105d, 0x461f, 0x2416, 0xd481, -0xbc97, 0xf8b7, 0x39af, 0x2ec9, 0xecc6, 0xcb50, 0xeee3, 0x1ffe, 0x1e8e, 0xf700, -0xe66a, 0xff58, 0x149f, 0x02e5, 0xe792, 0xf2d8, 0x1a4d, 0x225a, 0xf642, 0xce7f, -0xe6a6, 0x25e2, 0x38f5, 0x01d0, 0xc50f, 0xd243, 0x19bd, 0x3fc6, 0x14f0, 0xd2d7, -0xcdb6, 0x069a, 0x2ffe, 0x1847, 0xe6f8, 0xdf0a, 0x0337, 0x1a90, 0x067a, 0xeb5b, -0xf541, 0x143b, 0x14f2, 0xf092, 0xdc02, 0xfb91, 0x28a3, 0x2274, 0xeaa8, 0xc9e7, -0xef48, 0x2d01, 0x322e, 0xf6d2, 0xc7cb, 0xe13b, 0x1fda, 0x3217, 0x0458, 0xd690, -0xe2bf, 0x11c4, 0x21d5, 0x0291, 0xe5c8, 0xf3a9, 0x12ba, 0x11aa, 0xf22b, 0xe627, -0x03ec, 0x219a, 0x1036, 0xe2f2, 0xd93f, 0x059c, 0x2ed6, 0x1b75, 0xe227, 0xce55, -0xfb19, 0x2de0, 0x2477, 0xed08, 0xd148, 0xf307, 0x21d4, 0x2002, 0xf543, 0xdeac, -0xf7f9, 0x18a9, 0x11d6, 0xf0ef, 0xe8e4, 0x05ea, 0x1ba5, 0x0727, 0xe448, 0xe748, -0x100e, 0x265e, 0x07fc, 0xdbae, 0xde78, 0x0efa, 0x2ce0, 0x0f94, 0xddf1, 0xd9ea, -0x0797, 0x28f6, 0x12eb, 0xe60c, 0xdf46, 0x0469, 0x1fbb, 0x0ced, 0xe9f6, 0xe95f, -0x09fe, 0x1ab9, 0x02cb, 0xe5a4, 0xef2a, 0x1327, 0x1d7b, 0xfd07, 0xde3d, 0xed9c, -0x17e5, 0x22e7, 0xfe3a, 0xdb38, 0xe9b9, 0x161a, 0x2416, 0x0175, 0xde3d, 0xe9de, -0x1294, 0x1fc9, 0x00ea, 0xe2a7, 0xeee2, 0x1298, 0x1a7d, 0xfc1d, 0xe3bb, 0xf47a, -0x1642, 0x185e, 0xf727, 0xe1af, 0xf709, 0x19c3, 0x18e7, 0xf50d, 0xe010, 0xf75b, -0x1a9c, 0x18d8, 0xf4c5, 0xe0c9, 0xf865, 0x1a1c, 0x16d5, 0xf3a6, 0xe257, 0xfaf2, -0x1a44, 0x14d5, 0xf34f, 0xe4b6, 0xfc77, 0x17d5, 0x0ff8, 0xf133, 0xe8b7, 0x0344, -0x1a37, 0x0ad5, 0xe95e, 0xe61a, 0x08a5, 0x227e, 0x0e33, 0xe4a7, 0xdd70, 0x03b0, -0x25f4, 0x17b2, 0xec0a, 0xdb4e, 0xf898, 0x1ba3, 0x18f6, 0xf973, 0xe87f, 0xf77a, -0x0b93, 0x096c, 0xfb0e, 0xfb03, 0x0896, 0x0940, 0xf51d, 0xe904, 0xfdc7, 0x1dda, -0x1bf9, 0xf29b, 0xd37f, 0xea1b, 0x1f37, 0x3175, 0x07eb, 0xd3f7, 0xd46b, 0x077d, -0x2eeb, 0x1e67, 0xeeae, 0xd8c7, 0xef85, 0x1119, 0x18d3, 0x088e, 0xf953, 0xf5ad, -0xf556, 0xf63d, 0x0234, 0x167a, 0x19a1, 0xfbf9, 0xd873, 0xdd4b, 0x0f06, 0x3748, -0x21e6, 0xe181, 0xc032, 0xe79a, 0x2bec, 0x3e76, 0x0b1b, 0xce41, 0xcb23, 0xff96, -0x2d79, 0x26d1, 0xfcc7, 0xdf8a, 0xe525, 0xfd83, 0x10f1, 0x16d7, 0x0f50, 0xfaea, -0xe3f1, 0xe20f, 0x0158, 0x27d9, 0x2866, 0xf96f, 0xcb34, 0xd563, 0x11d6, 0x3d25, -0x2424, 0xe254, 0xc2c9, 0xe7cd, 0x248d, 0x34f5, 0x0c42, 0xdcd0, 0xd827, 0xfa65, -0x19eb, 0x1b50, 0x0721, 0xf396, 0xeb9c, 0xefde, 0x0016, 0x1594, 0x1cc1, 0x0658, -0xe22b, 0xd852, 0xfb3e, 0x2923, 0x2c78, 0xfc87, 0xcdb5, 0xd69c, 0x0e3c, 0x3527, -0x201f, 0xe993, 0xcf9e, 0xeb21, 0x183f, 0x25ea, 0x0c93, 0xed4d, 0xe5f9, 0xf548, -0x07fb, 0x117c, 0x0ff2, 0x0398, 0xf08c, 0xe628, 0xf489, 0x143b, 0x2419, 0x0ccf, -0xe2cc, 0xd5a6, 0xf861, 0x2615, 0x2a1b, 0xfeb4, 0xd543, 0xdc53, 0x09b4, 0x2901, -0x19ff, 0xf24a, 0xde86, 0xeec4, 0x0b7b, 0x1733, 0x0d0a, 0xfc24, 0xf1bb, 0xf110, -0xfa03, 0x0a0f, 0x15d4, 0x0e21, 0xf435, 0xe17e, 0xee90, 0x1225, 0x2527, 0x0efa, -0xe61f, 0xd916, 0xf7b8, 0x1f50, 0x2326, 0x0099, 0xe01e, 0xe473, 0x0491, 0x1b37, -0x1360, 0xfb17, 0xecd9, 0xf20d, 0x0051, 0x0aec, 0x0d4a, 0x073d, 0xfa5a, 0xeeb8, -0xf165, 0x0516, 0x17dc, 0x12da, 0xf71b, 0xe213, 0xed85, 0x0eef, 0x20c8, 0x0e09, -0xebcc, 0xe0d4, 0xf848, 0x1637, 0x19d6, 0x026b, 0xec09, 0xed00, 0xff9b, 0x0e5a, -0x0d6b, 0x026c, 0xf865, 0xf4da, 0xf888, 0x025a, 0x0cbb, 0x0d53, 0xff96, 0xeefa, -0xee80, 0x021c, 0x15d6, 0x126a, 0xf9c1, 0xe724, 0xf017, 0x0aa1, 0x18b6, 0x0b4e, -0xf2d7, 0xea91, 0xf957, 0x0cac, 0x1061, 0x03f4, 0xf6ad, 0xf476, 0xfbdf, 0x0489, -0x08b1, 0x06df, 0xffcf, 0xf766, 0xf537, 0xfddf, 0x0ad4, 0x0e15, 0x01da, 0xf205, -0xf0a0, 0x0082, 0x1066, 0x0e41, 0xfc71, 0xef1b, 0xf4ad, 0x05cd, 0x0f32, 0x07ed, -0xf9c8, 0xf401, 0xfa93, 0x04af, 0x088c, 0x04a7, 0xfe15, 0xf9f1, 0xfa64, 0xff1e, -0x0539, 0x078c, 0x02af, 0xfa1a, 0xf69d, 0xfd09, 0x075b, 0x0a3d, 0x01f2, 0xf761, -0xf642, 0xffa7, 0x08f3, 0x0830, 0xff05, 0xf7db, 0xf9bc, 0x0174, 0x068b, 0x04b2, -0xfeff, 0xfb39, 0xfc1a, 000000, 0x0371, 0x03d7, 0x00fe, 0xfd37, 0xfbe0, 0xfe78, -0x02af, 0x044a, 0x0180, 0xfd43, 0xfc00, 0xfed1, 0x02aa, 0x0346, 0x00dd, 0xfde0, -0xfbfe, 0x0114, 0x0987, 0x04bc, 0xf49d, 0xf23a, 0x06ab, 0x162e, 0x0544, 0xe76b, -0xea25, 0x1015, 0x2474, 0x0431, 0xd7d3, 0xe1ec, 0x1923, 0x2df5, 0x01cd, 0xd386, -0xe3d9, 0x1b9d, 0x2c62, 0xfeb8, 0xd31a, 0xe6ba, 0x1dbd, 0x2abb, 0xfbab, 0xd2ed, -0xe9ab, 0x1fa7, 0x28ef, 0xf8b3, 0xd2f5, 0xeca5, 0x2160, 0x26fd, 0xf5d7, 0xd334, -0xefa1, 0x22e5, 0x24ea, 0xf31b, 0xd3a9, 0xf29f, 0x2435, 0x22b6, 0xf07e, 0xd44e, -0xf59b, 0x2551, 0x2067, 0xee08, 0xd527, 0xf88e, 0x2639, 0x1e00, 0xebb6, 0xd62d, -0xfb77, 0x26eb, 0x1b85, 0xe98b, 0xd75f, 0xfe51, 0x276b, 0x18f9, 0xe78e, 0xd8b9, -0x011a, 0x27b6, 0x1660, 0xe5bb, 0xda3a, 0x03cc, 0x27cf, 0x13bd, 0xe415, 0xdbdf, -0x066a, 0x27b7, 0x1117, 0xe29e, 0xdda5, 0x08ec, 0x276e, 0x0e6d, 0xe154, 0xdf89, -0x0b52, 0x26f6, 0x0bc7, 0xe039, 0xe185, 0x0d96, 0x2653, 0x0924, 0xdf4e, 0xe399, -0x0fb9, 0x2584, 0x068b, 0xde93, 0xe5c0, 0x11b8, 0x248e, 0x03fd, 0xde08, 0xe7f8, -0x1390, 0x2372, 0x0180, 0xddaa, 0xea3c, 0x1544, 0x2231, 0xff12, 0xdd7a, 0xec89, -0x16cf, 0x20d0, 0xfcb9, 0xdd77, 0xeedb, 0x1831, 0x1f52, 0xfa77, 0xdd9f, 0xf132, -0x1969, 0x1db7, 0xf850, 0xddf1, 0xf385, 0x1a75, 0x1c06, 0xf645, 0xde6b, 0xf5d7, -0x1b5b, 0x1a3f, 0xf457, 0xdf0d, 0xf820, 0x1c13, 0x1867, 0xf288, 0xdfd2, 0xfa5f, -0x1ca1, 0x167f, 0xf0db, 0xe0ba, 0xfc92, 0x1d06, 0x148b, 0xef50, 0xe1c1, 0xfeb5, -0x1d43, 0x1290, 0xede9, 0xe2e6, 0x00c6, 0x1d58, 0x108e, 0xeca7, 0xe426, 0x02c4, -0x1d45, 0x0e8a, 0xeb8a, 0xe57f, 0x04a9, 0x1d0e, 0x0c87, 0xea92, 0xe6ec, 0x0677, -0x1cb2, 0x0a87, 0xe9be, 0xe86e, 0x082a, 0x1c34, 0x088b, 0xe912, 0xe9fe, 0x09c1, -0x1b95, 0x069c, 0xe88c, 0xeb9c, 0x0b3a, 0x1ad9, 0x04b6, 0xe82a, 0xed43, 0x0c96, -0x1a00, 0x02df, 0xe7eb, 0xeef3, 0x0dd0, 0x190d, 0x0116, 0xe7d0, 0xf0a8, 0x0eec, -0x1804, 0xff61, 0xe7d8, 0xf25d, 0x0fe6, 0x16e3, 0xfdc0, 0xe800, 0xf412, 0x10bf, -0x15b1, 0xfc36, 0xe848, 0xf5c5, 0x1176, 0x146e, 0xfac2, 0xe8ad, 0xf771, 0x120d, -0x1320, 0xf969, 0xe92e, 0xf913, 0x1282, 0x11c4, 0xf828, 0xe9cb, 0xfaac, 0x12d8, -0x1062, 0xf703, 0xea7e, 0xfc38, 0x130e, 0x0efa, 0xf5fb, 0xeb49, 0xfdb5, 0x1325, -0x0d8e, 0xf50e, 0xec26, 0xff20, 0x131e, 0x0c21, 0xf43f, 0xed15, 0x007a, 0x12fa, -0x0ab6, 0xf38d, 0xee15, 0x01be, 0x12bd, 0x094f, 0xf2f9, 0xef22, 0x02ef, 0x1265, -0x07f0, 0xf283, 0xf037, 0x0408, 0x11f6, 0x0699, 0xf226, 0xf156, 0x050a, 0x1170, -0x054b, 0xf1e8, 0xf27a, 0x05f4, 0x10d8, 0x040c, 0xf1c5, 0xf3a3, 0x06c2, 0x102c, -0x02da, 0xf1bc, 0xf4cc, 0x0779, 0x0f71, 0x01b7, 0xf1cc, 0xf5f5, 0x0815, 0x0ea7, -0x00a8, 0xf1f4, 0xf719, 0x0899, 0x0dd2, 0xffab, 0xf233, 0xf839, 0x0902, 0x0cf4, -0xfec0, 0xf288, 0xf950, 0x0952, 0x0c0e, 0xfdec, 0xf2ee, 0xfa5d, 0x0989, 0x0b23, -0xfd2d, 0xf368, 0xfb62, 0x09a7, 0x0a35, 0xfc85, 0xf3f1, 0xfc58, 0x09af, 0x0946, -0xfbf2, 0xf488, 0xfd3f, 0x09a1, 0x0859, 0xfb77, 0xf52c, 0xfe17, 0x097d, 0x076f, -0xfb14, 0xf5d8, 0xfede, 0x0945, 0x068a, 0xfac6, 0xf68d, 0xff93, 0x08fb, 0x05ad, -0xfa8e, 0xf747, 0x0034, 0x08a1, 0x04da, 0xfa6f, 0xf805, 0x00c2, 0x0836, 0x0410, -0xfa63, 0xf8c6, 0x013c, 0x07bf, 0x0354, 0xfa6c, 0xf985, 0x01a1, 0x073b, 0x02a4, -0xfa8a, 0xfa43, 0x01f1, 0x06af, 0x0204, 0xfab9, 0xfafc, 0x022c, 0x0619, 0x0175, -0xfafa, 0xfbae, 0x0252, 0x057f, 0x00f6, 0xfb4b, 0xfc5a, 0x0263, 0x04e0, 0x008b, -0xfbaa, 0xfcfa, 0x0262, 0x0440, 0x0032, 0xfc16, 0xfd90, 0x024b, 0x03a0, 0xffec, -0xfc8c, 0xfe19, 0x0225, 0x0301, 0xffb9, 0xfd0c, 0xfe93, 0x01ea, 0x0267, 0xff9c, -0xfd95, 0xfefe, 0x01a0, 0x01d3, 0xff90, 0xfe22, 0xff5a, 0x0147, 0x0145, 0xff99, -0xfeb3, 0xffa1, 0x00e0, 0x00c3, 0xffb6, 0xff46, 0xffd9, 0x006d, 0x004b, 0xffe5, -0xffda, 0xfffc, 000000, 0xfffe, 000000, 0xffff, 000000, 0xffff, 0xffff, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 0x19b7, 0x0245, 0xeee5, 0xb875, 0xd9a4, 0x6018, 0x660a, 0xc3c6, +0x8741, 0xff55, 0x4c2e, 0x2146, 0xfed2, 0xf079, 0xcbd4, 0xe561, 0x3c41, 0x3166, +0xd425, 0xdc59, 0x2748, 0x087d, 0xc72b, 0xfe3a, 0x4681, 0x14c6, 0xcf45, 0xdd38, +0xf8dd, 0x0a39, 0x3a5a, 0x32b9, 0xbfec, 0x957f, 0x15a3, 0x70f4, 0x1d95, 0xbfc4, +0xd367, 0xfda0, 0x0dc0, 0x29eb, 0x1fc2, 0xd684, 0xcab1, 0x19c7, 0x29ef, 0xe679, +0xe9d0, 0x2b82, 0x151a, 0xca9f, 0xdb68, 0x1f4a, 0x271c, 0x0e2a, 0xfb32, 0xd1b2, +0xc8ff, 0x2382, 0x6380, 0x0a52, 0xa118, 0xccbf, 0x2ddc, 0x33fd, 0x0964, 0xf2a4, +0xdd81, 0xe092, 0x1a00, 0x325c, 0xf5e3, 0xd6a1, 0x0b6c, 0x1c75, 0xe4f8, 0xe07c, +0x2082, 0x2b3e, 0xf445, 0xdaa9, 0xea13, 0xff3c, 0x245c, 0x35c1, 0xf308, 0xab53, +0xdf59, 0x4698, 0x3f3b, 0xe7f7, 0xca84, 0xed4d, 0x0c3f, 0x1e94, 0x1c2d, 0xf06f, +0xd4df, 0xff34, 0x23d8, 0x001e, 0xe3f1, 0x0b15, 0x2113, 0xf3fd, 0xd768, 0xf9a0, +0x1d31, 0x1c6e, 0x0797, 0xe3a0, 0xce6c, 0xfd7b, 0x422a, 0x2c4c, 0xd364, 0xbf42, +0x0278, 0x303e, 0x1c51, 0xf737, 0xe25a, 0xe75f, 0x0a8f, 0x22ab, 0x05f4, 0xe3f9, +0xf8c4, 0x1705, 0x0162, 0xe49f, 0xfb8b, 0x1e2b, 0x13ac, 0xf044, 0xe07b, 0xf01a, +0x1567, 0x2cbf, 0x0b75, 0xd01b, 0xd206, 0x1563, 0x38d7, 0x0f2e, 0xdb32, 0xdc30, +0x023b, 0x1e44, 0x16eb, 0xf5f7, 0xe425, 0xfa33, 0x14d5, 0x0968, 0xeff2, 0xf762, +0x1137, 0x0e59, 0xf13a, 0xe651, 0xff41, 0x1d60, 0x18fd, 0xf1e6, 0xd75f, 0xf097, +0x20ec, 0x27fa, 0xfba4, 0xd5b8, 0xe68e, 0x1657, 0x2518, 0x04f6, 0xe5a3, 0xe976, +0x0578, 0x18fa, 0x0a92, 0xec0a, 0xef2a, 0x111f, 0x12f4, 0xeec3, 0xe95e, 0x0d3a, +0x18fd, 0xff72, 0xeefc, 0xf114, 0xfaaa, 0x14ee, 0x21db, 0xf56e, 0xcb49, 0xf621, +0x3323, 0x1947, 0xe017, 0xe7e9, 0x0819, 0x0707, 0x084c, 0x0f57, 0xf152, 0xdf92, +0x104a, 0x28eb, 0xedcc, 0xd4ad, 0x1415, 0x296d, 0xed9a, 0xdf57, 0x0cc2, 0x0d95, +0xf7b5, 0x0deb, 0x0b34, 0xd713, 0xea08, 0x38d6, 0x216d, 0xc727, 0xdc32, 0x2cd2, +0x1822, 0xe2d5, 0xfeb3, 0x106c, 0xe6e5, 0xf81e, 0x2fe8, 0x01af, 0xc180, 0x037a, +0x42d8, 0xf88d, 0xc344, 0x0a4f, 0x2c4e, 0xf19d, 0xebeb, 0x162c, 0xf9e9, 0xde93, +0x1b56, 0x2c60, 0xd8aa, 0xce3e, 0x2a41, 0x2eeb, 0xdab1, 0xde32, 0x1c32, 0x0aba, +0xeabe, 0x1008, 0x136d, 0xda2f, 0xec3b, 0x31dd, 0x1130, 0xca79, 0xf5b8, 0x3423, +0x0274, 0xd27d, 0x035e, 0x1e68, 0xf641, 0xf904, 0x1691, 0xef7d, 0xd57a, 0x1c3b, +0x3c23, 0xe881, 0xc274, 0x0af5, 0x2962, 0xfa34, 0xf676, 0x0f71, 0xefcc, 0xe01f, +0x19e7, 0x276f, 0xe694, 0xe134, 0x1c3a, 0x0e8b, 0xd8e7, 0xfa81, 0x2f8b, 0x07c5, +0xd904, 0xf6fa, 0x0ca5, 0xf9a2, 0x0dc7, 0x2623, 0xec54, 0xbe23, 0x02b6, 0x4296, +0x10cd, 0xda61, 0xf11c, 0x0103, 0xf41c, 0x10b4, 0x2a03, 0xf63c, 0xce1a, 0xfdbd, +0x1fb4, 0xfc51, 0xf727, 0x1c8a, 0x04ff, 0xcf41, 0xec05, 0x2913, 0x1ce8, 0xf70c, +0xf744, 0xede8, 0xdd77, 0x0d99, 0x43f1, 0x119c, 0xc14f, 0xd60e, 0x17cb, 0x1e19, +0x0d4e, 0x0c95, 0xeed1, 0xcdf4, 0xf7a5, 0x331f, 0x1cd0, 0xeb17, 0xf082, 0xfb19, +0xe899, 0xfdeb, 0x323c, 0x2036, 0xdad3, 0xd134, 0xfd03, 0x1345, 0x1c10, 0x2239, +0xf656, 0xbc22, 0xdc3f, 0x3392, 0x3d59, 0xfd77, 0xdb4d, 0xe23f, 0xedbe, 0x0f7e, +0x35cc, 0x1947, 0xd5dc, 0xd1bf, 0x035d, 0x16fc, 0x1174, 0x1675, 0x0249, 0xd2d4, +0xd851, 0x184d, 0x32fe, 0x0f91, 0xee14, 0xe1e6, 0xdf9b, 0x016b, 0x3668, 0x2b2b, +0xe20c, 0xc554, 0xf257, 0x1c05, 0x1fc5, 0x14f0, 0xf891, 0xd41c, 0xdf83, 0x1865, +0x2de1, 0x0b16, 0xed58, 0xea0c, 0xea79, 0xfbd9, 0x22af, 0x2732, 0xf62f, 0xd389, +0xe7d9, 0x0b39, 0x1cdc, 0x1de3, 0x038a, 0xd809, 0xd5f7, 0x0b55, 0x305e, 0x1910, +0xf02e, 0xe089, 0xe7c7, 0x0195, 0x2265, 0x21da, 0xf743, 0xd8f2, 0xe978, 0x09a1, +0x190a, 0x17c5, 0x045a, 0xe46d, 0xdd06, 0xffb2, 0x2293, 0x1cfe, 0xfd4d, 0xe4f9, +0xe310, 0xfaf1, 0x1d22, 0x2376, 0x0113, 0xde3a, 0xe21b, 0x0204, 0x1ba1, 0x1bd6, +0x0333, 0xe563, 0xe104, 0xfd51, 0x1bc1, 0x1ccf, 0x0285, 0xe757, 0xe35e, 0xfaf2, +0x185d, 0x1d46, 0x06b7, 0xec13, 0xe108, 0xef6e, 0x121d, 0x2a17, 0x16a6, 0xe32c, +0xc9a9, 0xf070, 0x2f48, 0x3788, 0xfa4e, 0xc32a, 0xd9c2, 0x1fa1, 0x36fe, 0x07fa, +0xd9e4, 0xe577, 0x0e5e, 0x1755, 0xfb53, 0xed71, 0x0540, 0x19e0, 0x0301, 0xdc97, +0xe391, 0x1937, 0x367c, 0x0bc9, 0xca4c, 0xc96b, 0x105d, 0x461f, 0x2416, 0xd481, +0xbc97, 0xf8b7, 0x39af, 0x2ec9, 0xecc6, 0xcb50, 0xeee3, 0x1ffe, 0x1e8e, 0xf700, +0xe66a, 0xff58, 0x149f, 0x02e5, 0xe792, 0xf2d8, 0x1a4d, 0x225a, 0xf642, 0xce7f, +0xe6a6, 0x25e2, 0x38f5, 0x01d0, 0xc50f, 0xd243, 0x19bd, 0x3fc6, 0x14f0, 0xd2d7, +0xcdb6, 0x069a, 0x2ffe, 0x1847, 0xe6f8, 0xdf0a, 0x0337, 0x1a90, 0x067a, 0xeb5b, +0xf541, 0x143b, 0x14f2, 0xf092, 0xdc02, 0xfb91, 0x28a3, 0x2274, 0xeaa8, 0xc9e7, +0xef48, 0x2d01, 0x322e, 0xf6d2, 0xc7cb, 0xe13b, 0x1fda, 0x3217, 0x0458, 0xd690, +0xe2bf, 0x11c4, 0x21d5, 0x0291, 0xe5c8, 0xf3a9, 0x12ba, 0x11aa, 0xf22b, 0xe627, +0x03ec, 0x219a, 0x1036, 0xe2f2, 0xd93f, 0x059c, 0x2ed6, 0x1b75, 0xe227, 0xce55, +0xfb19, 0x2de0, 0x2477, 0xed08, 0xd148, 0xf307, 0x21d4, 0x2002, 0xf543, 0xdeac, +0xf7f9, 0x18a9, 0x11d6, 0xf0ef, 0xe8e4, 0x05ea, 0x1ba5, 0x0727, 0xe448, 0xe748, +0x100e, 0x265e, 0x07fc, 0xdbae, 0xde78, 0x0efa, 0x2ce0, 0x0f94, 0xddf1, 0xd9ea, +0x0797, 0x28f6, 0x12eb, 0xe60c, 0xdf46, 0x0469, 0x1fbb, 0x0ced, 0xe9f6, 0xe95f, +0x09fe, 0x1ab9, 0x02cb, 0xe5a4, 0xef2a, 0x1327, 0x1d7b, 0xfd07, 0xde3d, 0xed9c, +0x17e5, 0x22e7, 0xfe3a, 0xdb38, 0xe9b9, 0x161a, 0x2416, 0x0175, 0xde3d, 0xe9de, +0x1294, 0x1fc9, 0x00ea, 0xe2a7, 0xeee2, 0x1298, 0x1a7d, 0xfc1d, 0xe3bb, 0xf47a, +0x1642, 0x185e, 0xf727, 0xe1af, 0xf709, 0x19c3, 0x18e7, 0xf50d, 0xe010, 0xf75b, +0x1a9c, 0x18d8, 0xf4c5, 0xe0c9, 0xf865, 0x1a1c, 0x16d5, 0xf3a6, 0xe257, 0xfaf2, +0x1a44, 0x14d5, 0xf34f, 0xe4b6, 0xfc77, 0x17d5, 0x0ff8, 0xf133, 0xe8b7, 0x0344, +0x1a37, 0x0ad5, 0xe95e, 0xe61a, 0x08a5, 0x227e, 0x0e33, 0xe4a7, 0xdd70, 0x03b0, +0x25f4, 0x17b2, 0xec0a, 0xdb4e, 0xf898, 0x1ba3, 0x18f6, 0xf973, 0xe87f, 0xf77a, +0x0b93, 0x096c, 0xfb0e, 0xfb03, 0x0896, 0x0940, 0xf51d, 0xe904, 0xfdc7, 0x1dda, +0x1bf9, 0xf29b, 0xd37f, 0xea1b, 0x1f37, 0x3175, 0x07eb, 0xd3f7, 0xd46b, 0x077d, +0x2eeb, 0x1e67, 0xeeae, 0xd8c7, 0xef85, 0x1119, 0x18d3, 0x088e, 0xf953, 0xf5ad, +0xf556, 0xf63d, 0x0234, 0x167a, 0x19a1, 0xfbf9, 0xd873, 0xdd4b, 0x0f06, 0x3748, +0x21e6, 0xe181, 0xc032, 0xe79a, 0x2bec, 0x3e76, 0x0b1b, 0xce41, 0xcb23, 0xff96, +0x2d79, 0x26d1, 0xfcc7, 0xdf8a, 0xe525, 0xfd83, 0x10f1, 0x16d7, 0x0f50, 0xfaea, +0xe3f1, 0xe20f, 0x0158, 0x27d9, 0x2866, 0xf96f, 0xcb34, 0xd563, 0x11d6, 0x3d25, +0x2424, 0xe254, 0xc2c9, 0xe7cd, 0x248d, 0x34f5, 0x0c42, 0xdcd0, 0xd827, 0xfa65, +0x19eb, 0x1b50, 0x0721, 0xf396, 0xeb9c, 0xefde, 0x0016, 0x1594, 0x1cc1, 0x0658, +0xe22b, 0xd852, 0xfb3e, 0x2923, 0x2c78, 0xfc87, 0xcdb5, 0xd69c, 0x0e3c, 0x3527, +0x201f, 0xe993, 0xcf9e, 0xeb21, 0x183f, 0x25ea, 0x0c93, 0xed4d, 0xe5f9, 0xf548, +0x07fb, 0x117c, 0x0ff2, 0x0398, 0xf08c, 0xe628, 0xf489, 0x143b, 0x2419, 0x0ccf, +0xe2cc, 0xd5a6, 0xf861, 0x2615, 0x2a1b, 0xfeb4, 0xd543, 0xdc53, 0x09b4, 0x2901, +0x19ff, 0xf24a, 0xde86, 0xeec4, 0x0b7b, 0x1733, 0x0d0a, 0xfc24, 0xf1bb, 0xf110, +0xfa03, 0x0a0f, 0x15d4, 0x0e21, 0xf435, 0xe17e, 0xee90, 0x1225, 0x2527, 0x0efa, +0xe61f, 0xd916, 0xf7b8, 0x1f50, 0x2326, 0x0099, 0xe01e, 0xe473, 0x0491, 0x1b37, +0x1360, 0xfb17, 0xecd9, 0xf20d, 0x0051, 0x0aec, 0x0d4a, 0x073d, 0xfa5a, 0xeeb8, +0xf165, 0x0516, 0x17dc, 0x12da, 0xf71b, 0xe213, 0xed85, 0x0eef, 0x20c8, 0x0e09, +0xebcc, 0xe0d4, 0xf848, 0x1637, 0x19d6, 0x026b, 0xec09, 0xed00, 0xff9b, 0x0e5a, +0x0d6b, 0x026c, 0xf865, 0xf4da, 0xf888, 0x025a, 0x0cbb, 0x0d53, 0xff96, 0xeefa, +0xee80, 0x021c, 0x15d6, 0x126a, 0xf9c1, 0xe724, 0xf017, 0x0aa1, 0x18b6, 0x0b4e, +0xf2d7, 0xea91, 0xf957, 0x0cac, 0x1061, 0x03f4, 0xf6ad, 0xf476, 0xfbdf, 0x0489, +0x08b1, 0x06df, 0xffcf, 0xf766, 0xf537, 0xfddf, 0x0ad4, 0x0e15, 0x01da, 0xf205, +0xf0a0, 0x0082, 0x1066, 0x0e41, 0xfc71, 0xef1b, 0xf4ad, 0x05cd, 0x0f32, 0x07ed, +0xf9c8, 0xf401, 0xfa93, 0x04af, 0x088c, 0x04a7, 0xfe15, 0xf9f1, 0xfa64, 0xff1e, +0x0539, 0x078c, 0x02af, 0xfa1a, 0xf69d, 0xfd09, 0x075b, 0x0a3d, 0x01f2, 0xf761, +0xf642, 0xffa7, 0x08f3, 0x0830, 0xff05, 0xf7db, 0xf9bc, 0x0174, 0x068b, 0x04b2, +0xfeff, 0xfb39, 0xfc1a, 000000, 0x0371, 0x03d7, 0x00fe, 0xfd37, 0xfbe0, 0xfe78, +0x02af, 0x044a, 0x0180, 0xfd43, 0xfc00, 0xfed1, 0x02aa, 0x0346, 0x00dd, 0xfde0, +0xfbfe, 0x0114, 0x0987, 0x04bc, 0xf49d, 0xf23a, 0x06ab, 0x162e, 0x0544, 0xe76b, +0xea25, 0x1015, 0x2474, 0x0431, 0xd7d3, 0xe1ec, 0x1923, 0x2df5, 0x01cd, 0xd386, +0xe3d9, 0x1b9d, 0x2c62, 0xfeb8, 0xd31a, 0xe6ba, 0x1dbd, 0x2abb, 0xfbab, 0xd2ed, +0xe9ab, 0x1fa7, 0x28ef, 0xf8b3, 0xd2f5, 0xeca5, 0x2160, 0x26fd, 0xf5d7, 0xd334, +0xefa1, 0x22e5, 0x24ea, 0xf31b, 0xd3a9, 0xf29f, 0x2435, 0x22b6, 0xf07e, 0xd44e, +0xf59b, 0x2551, 0x2067, 0xee08, 0xd527, 0xf88e, 0x2639, 0x1e00, 0xebb6, 0xd62d, +0xfb77, 0x26eb, 0x1b85, 0xe98b, 0xd75f, 0xfe51, 0x276b, 0x18f9, 0xe78e, 0xd8b9, +0x011a, 0x27b6, 0x1660, 0xe5bb, 0xda3a, 0x03cc, 0x27cf, 0x13bd, 0xe415, 0xdbdf, +0x066a, 0x27b7, 0x1117, 0xe29e, 0xdda5, 0x08ec, 0x276e, 0x0e6d, 0xe154, 0xdf89, +0x0b52, 0x26f6, 0x0bc7, 0xe039, 0xe185, 0x0d96, 0x2653, 0x0924, 0xdf4e, 0xe399, +0x0fb9, 0x2584, 0x068b, 0xde93, 0xe5c0, 0x11b8, 0x248e, 0x03fd, 0xde08, 0xe7f8, +0x1390, 0x2372, 0x0180, 0xddaa, 0xea3c, 0x1544, 0x2231, 0xff12, 0xdd7a, 0xec89, +0x16cf, 0x20d0, 0xfcb9, 0xdd77, 0xeedb, 0x1831, 0x1f52, 0xfa77, 0xdd9f, 0xf132, +0x1969, 0x1db7, 0xf850, 0xddf1, 0xf385, 0x1a75, 0x1c06, 0xf645, 0xde6b, 0xf5d7, +0x1b5b, 0x1a3f, 0xf457, 0xdf0d, 0xf820, 0x1c13, 0x1867, 0xf288, 0xdfd2, 0xfa5f, +0x1ca1, 0x167f, 0xf0db, 0xe0ba, 0xfc92, 0x1d06, 0x148b, 0xef50, 0xe1c1, 0xfeb5, +0x1d43, 0x1290, 0xede9, 0xe2e6, 0x00c6, 0x1d58, 0x108e, 0xeca7, 0xe426, 0x02c4, +0x1d45, 0x0e8a, 0xeb8a, 0xe57f, 0x04a9, 0x1d0e, 0x0c87, 0xea92, 0xe6ec, 0x0677, +0x1cb2, 0x0a87, 0xe9be, 0xe86e, 0x082a, 0x1c34, 0x088b, 0xe912, 0xe9fe, 0x09c1, +0x1b95, 0x069c, 0xe88c, 0xeb9c, 0x0b3a, 0x1ad9, 0x04b6, 0xe82a, 0xed43, 0x0c96, +0x1a00, 0x02df, 0xe7eb, 0xeef3, 0x0dd0, 0x190d, 0x0116, 0xe7d0, 0xf0a8, 0x0eec, +0x1804, 0xff61, 0xe7d8, 0xf25d, 0x0fe6, 0x16e3, 0xfdc0, 0xe800, 0xf412, 0x10bf, +0x15b1, 0xfc36, 0xe848, 0xf5c5, 0x1176, 0x146e, 0xfac2, 0xe8ad, 0xf771, 0x120d, +0x1320, 0xf969, 0xe92e, 0xf913, 0x1282, 0x11c4, 0xf828, 0xe9cb, 0xfaac, 0x12d8, +0x1062, 0xf703, 0xea7e, 0xfc38, 0x130e, 0x0efa, 0xf5fb, 0xeb49, 0xfdb5, 0x1325, +0x0d8e, 0xf50e, 0xec26, 0xff20, 0x131e, 0x0c21, 0xf43f, 0xed15, 0x007a, 0x12fa, +0x0ab6, 0xf38d, 0xee15, 0x01be, 0x12bd, 0x094f, 0xf2f9, 0xef22, 0x02ef, 0x1265, +0x07f0, 0xf283, 0xf037, 0x0408, 0x11f6, 0x0699, 0xf226, 0xf156, 0x050a, 0x1170, +0x054b, 0xf1e8, 0xf27a, 0x05f4, 0x10d8, 0x040c, 0xf1c5, 0xf3a3, 0x06c2, 0x102c, +0x02da, 0xf1bc, 0xf4cc, 0x0779, 0x0f71, 0x01b7, 0xf1cc, 0xf5f5, 0x0815, 0x0ea7, +0x00a8, 0xf1f4, 0xf719, 0x0899, 0x0dd2, 0xffab, 0xf233, 0xf839, 0x0902, 0x0cf4, +0xfec0, 0xf288, 0xf950, 0x0952, 0x0c0e, 0xfdec, 0xf2ee, 0xfa5d, 0x0989, 0x0b23, +0xfd2d, 0xf368, 0xfb62, 0x09a7, 0x0a35, 0xfc85, 0xf3f1, 0xfc58, 0x09af, 0x0946, +0xfbf2, 0xf488, 0xfd3f, 0x09a1, 0x0859, 0xfb77, 0xf52c, 0xfe17, 0x097d, 0x076f, +0xfb14, 0xf5d8, 0xfede, 0x0945, 0x068a, 0xfac6, 0xf68d, 0xff93, 0x08fb, 0x05ad, +0xfa8e, 0xf747, 0x0034, 0x08a1, 0x04da, 0xfa6f, 0xf805, 0x00c2, 0x0836, 0x0410, +0xfa63, 0xf8c6, 0x013c, 0x07bf, 0x0354, 0xfa6c, 0xf985, 0x01a1, 0x073b, 0x02a4, +0xfa8a, 0xfa43, 0x01f1, 0x06af, 0x0204, 0xfab9, 0xfafc, 0x022c, 0x0619, 0x0175, +0xfafa, 0xfbae, 0x0252, 0x057f, 0x00f6, 0xfb4b, 0xfc5a, 0x0263, 0x04e0, 0x008b, +0xfbaa, 0xfcfa, 0x0262, 0x0440, 0x0032, 0xfc16, 0xfd90, 0x024b, 0x03a0, 0xffec, +0xfc8c, 0xfe19, 0x0225, 0x0301, 0xffb9, 0xfd0c, 0xfe93, 0x01ea, 0x0267, 0xff9c, +0xfd95, 0xfefe, 0x01a0, 0x01d3, 0xff90, 0xfe22, 0xff5a, 0x0147, 0x0145, 0xff99, +0xfeb3, 0xffa1, 0x00e0, 0x00c3, 0xffb6, 0xff46, 0xffd9, 0x006d, 0x004b, 0xffe5, +0xffda, 0xfffc, 000000, 0xfffe, 000000, 0xffff, 000000, 0xffff, 0xffff, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000 }; diff --git a/daemon/libs/iax2/busy.h b/daemon/libs/iax2/busy.h index 2c642fae39..ca7d41a0f1 100644 --- a/daemon/libs/iax2/busy.h +++ b/daemon/libs/iax2/busy.h @@ -1,55 +1,55 @@ -/* busy.h: Generated from frequencies 480 and 620 +/* busy.h: Generated from frequencies 480 and 620 by gensound. 400 samples */ static short busy[400] = { - 0, 13697, 24766, 31109, 31585, 26222, 16198, 3569, - -9162, -19575, -25812, -26935, -23069, -15322, -5493, 4339, - 12277, 16985, 17934, 15440, 10519, 4585, -908, -4827, - -6592, -6269, -4489, -2220, -467, 30, -983, -3203, - -5839, -7844, -8215, -6301, -2035, 3975, 10543, 16141, - 19260, 18787, 14322, 6338, -3845, -14296, -22858, -27611, - -27309, -21691, -11585, 1213, 14285, 25068, 31388, 31915, - 26457, 16010, 2568, -11282, -22885, -30054, -31509, -27120, - -17908, -5805, 6760, 17379, 24147, 26028, 23020, 16094, - 6931, -2478, -10279, -15136, -16474, -14538, -10253, -4949, - 0, 3515, 5052, 4688, 3045, 1069, -268, -272, - 1269, 3996, 7067, 9381, 9889, 7910, 3365, -3123, - -10320, -16622, -20424, -20510, -16384, -8448, 2006, 13026, - 22383, 28040, 28613, 23696, 13996, 1232, -12193, -23670, - -30918, -32459, -27935, -18190, -5103, 8795, 20838, 28764, - 31164, 27753, 19395, 7893, -4412, -15136, -22342, -24909, - -22717, -16609, -8143, 780, 8361, 13272, 14909, 13455, - 9758, 5067, 678, -2387, -3624, -3133, -1538, 224, - 1209, 751, -1315, -4580, -8145, -10848, -11585, -9628, - -4878, 2038, 9844, 16867, 21403, 22124, 18429, 10638, - 0, -11524, -21643, -28211, -29702, -25561, -16364, -3737, - 9946, 22044, 30180, 32733, 29182, 20210, 7573, -6269, - -18655, -27259, -30558, -28117, -20645, -9807, 2148, 12878, - 20426, 23599, 22173, 16865, 9117, 731, -6552, -11426, - -13269, -12216, -9050, -4941, -1118, 1460, 2335, 1635, - 0, -1635, -2335, -1460, 1118, 4941, 9050, 12216, - 13269, 11426, 6552, -731, -9117, -16865, -22173, -23599, - -20426, -12878, -2148, 9807, 20645, 28117, 30558, 27259, - 18655, 6269, -7573, -20210, -29182, -32733, -30180, -22044, - -9946, 3737, 16364, 25561, 29702, 28211, 21643, 11524, - 0, -10638, -18429, -22124, -21403, -16867, -9844, -2038, - 4878, 9628, 11585, 10848, 8145, 4580, 1315, -751, - -1209, -224, 1538, 3133, 3624, 2387, -678, -5067, - -9758, -13455, -14909, -13272, -8361, -780, 8143, 16609, - 22717, 24909, 22342, 15136, 4412, -7893, -19395, -27753, - -31164, -28764, -20838, -8795, 5103, 18190, 27935, 32459, - 30918, 23670, 12193, -1232, -13996, -23696, -28613, -28040, - -22383, -13026, -2006, 8448, 16384, 20510, 20424, 16622, - 10320, 3123, -3365, -7910, -9889, -9381, -7067, -3996, - -1269, 272, 268, -1069, -3045, -4688, -5052, -3515, - 0, 4949, 10253, 14538, 16474, 15136, 10279, 2478, - -6931, -16094, -23020, -26028, -24147, -17379, -6760, 5805, - 17908, 27120, 31509, 30054, 22885, 11282, -2568, -16010, - -26457, -31915, -31388, -25068, -14285, -1213, 11585, 21691, - 27309, 27611, 22858, 14296, 3845, -6338, -14322, -18787, - -19260, -16141, -10543, -3975, 2035, 6301, 8215, 7844, - 5839, 3203, 983, -30, 467, 2220, 4489, 6269, - 6592, 4827, 908, -4585, -10519, -15440, -17934, -16985, - -12277, -4339, 5493, 15322, 23069, 26935, 25812, 19575, - 9162, -3569, -16198, -26222, -31585, -31109, -24766, -13697, + 0, 13697, 24766, 31109, 31585, 26222, 16198, 3569, + -9162, -19575, -25812, -26935, -23069, -15322, -5493, 4339, + 12277, 16985, 17934, 15440, 10519, 4585, -908, -4827, + -6592, -6269, -4489, -2220, -467, 30, -983, -3203, + -5839, -7844, -8215, -6301, -2035, 3975, 10543, 16141, + 19260, 18787, 14322, 6338, -3845, -14296, -22858, -27611, + -27309, -21691, -11585, 1213, 14285, 25068, 31388, 31915, + 26457, 16010, 2568, -11282, -22885, -30054, -31509, -27120, + -17908, -5805, 6760, 17379, 24147, 26028, 23020, 16094, + 6931, -2478, -10279, -15136, -16474, -14538, -10253, -4949, + 0, 3515, 5052, 4688, 3045, 1069, -268, -272, + 1269, 3996, 7067, 9381, 9889, 7910, 3365, -3123, + -10320, -16622, -20424, -20510, -16384, -8448, 2006, 13026, + 22383, 28040, 28613, 23696, 13996, 1232, -12193, -23670, + -30918, -32459, -27935, -18190, -5103, 8795, 20838, 28764, + 31164, 27753, 19395, 7893, -4412, -15136, -22342, -24909, + -22717, -16609, -8143, 780, 8361, 13272, 14909, 13455, + 9758, 5067, 678, -2387, -3624, -3133, -1538, 224, + 1209, 751, -1315, -4580, -8145, -10848, -11585, -9628, + -4878, 2038, 9844, 16867, 21403, 22124, 18429, 10638, + 0, -11524, -21643, -28211, -29702, -25561, -16364, -3737, + 9946, 22044, 30180, 32733, 29182, 20210, 7573, -6269, + -18655, -27259, -30558, -28117, -20645, -9807, 2148, 12878, + 20426, 23599, 22173, 16865, 9117, 731, -6552, -11426, + -13269, -12216, -9050, -4941, -1118, 1460, 2335, 1635, + 0, -1635, -2335, -1460, 1118, 4941, 9050, 12216, + 13269, 11426, 6552, -731, -9117, -16865, -22173, -23599, + -20426, -12878, -2148, 9807, 20645, 28117, 30558, 27259, + 18655, 6269, -7573, -20210, -29182, -32733, -30180, -22044, + -9946, 3737, 16364, 25561, 29702, 28211, 21643, 11524, + 0, -10638, -18429, -22124, -21403, -16867, -9844, -2038, + 4878, 9628, 11585, 10848, 8145, 4580, 1315, -751, + -1209, -224, 1538, 3133, 3624, 2387, -678, -5067, + -9758, -13455, -14909, -13272, -8361, -780, 8143, 16609, + 22717, 24909, 22342, 15136, 4412, -7893, -19395, -27753, + -31164, -28764, -20838, -8795, 5103, 18190, 27935, 32459, + 30918, 23670, 12193, -1232, -13996, -23696, -28613, -28040, + -22383, -13026, -2006, 8448, 16384, 20510, 20424, 16622, + 10320, 3123, -3365, -7910, -9889, -9381, -7067, -3996, + -1269, 272, 268, -1069, -3045, -4688, -5052, -3515, + 0, 4949, 10253, 14538, 16474, 15136, 10279, 2478, + -6931, -16094, -23020, -26028, -24147, -17379, -6760, 5805, + 17908, 27120, 31509, 30054, 22885, 11282, -2568, -16010, + -26457, -31915, -31388, -25068, -14285, -1213, 11585, 21691, + 27309, 27611, 22858, 14296, 3845, -6338, -14322, -18787, + -19260, -16141, -10543, -3975, 2035, 6301, 8215, 7844, + 5839, 3203, 983, -30, 467, 2220, 4489, 6269, + 6592, 4827, 908, -4585, -10519, -15440, -17934, -16985, + -12277, -4339, 5493, 15322, 23069, 26935, 25812, 19575, + 9162, -3569, -16198, -26222, -31585, -31109, -24766, -13697, }; diff --git a/daemon/libs/iax2/dialtone.h b/daemon/libs/iax2/dialtone.h index 09b881487d..f961a79ef8 100644 --- a/daemon/libs/iax2/dialtone.h +++ b/daemon/libs/iax2/dialtone.h @@ -1,105 +1,105 @@ -/* dialtone.h: Generated from frequencies 350 and 440 +/* dialtone.h: Generated from frequencies 350 and 440 by gensound. 800 samples */ static short dialtone[800] = { - 0, 9997, 19004, 26133, 30692, 32251, 30690, 26206, - 19286, 10657, 1206, -8116, -16396, -22848, -26895, -28221, - -26797, -22878, -16960, -9723, -1954, 5545, 12044, 16954, - 19887, 20687, 19434, 16420, 12107, 7061, 1881, -2866, - -6721, -9365, -10657, -10634, -9491, -7547, -5190, -2822, - -801, 607, 1263, 1168, 454, -633, -1784, -2669, - -2993, -2548, -1247, 855, 3558, 6538, 9388, 11665, - 12955, 12933, 11408, 8370, 3996, -1349, -7152, -12797, - -17635, -21060, -22583, -21895, -18914, -13807, -6985, 934, - 9180, 16913, 23309, 27654, 29422, 28342, 24429, 17998, - 9630, 123, -9589, -18538, -25813, -30667, -32588, -31360, - -27088, -20185, -11332, -1411, 8594, 17694, 24997, 29805, - 31675, 30473, 26374, 19844, 11585, 2455, -6618, -14745, - -21156, -25284, -26815, -25713, -22213, -16785, -10073, -2824, - 4203, 10318, 14969, 17794, 18653, 17628, 14998, 11197, - 6753, 2217, -1899, -5189, -7386, -8388, -8261, -7212, - -5555, -3657, -1881, -536, 169, 157, -515, -1664, - -3009, -4217, -4954, -4940, -3996, -2080, 697, 4081, - 7689, 11059, 13710, 15199, 15187, 13489, 10114, 5272, - -630, -7031, -13263, -18632, -22491, -24320, -23794, -20823, - -15582, -8498, -218, 8457, 16651, 23507, 28276, 30407, - 29606, 25876, 19524, 11134, 1511, -8401, -17616, -25208, - -30406, -32682, -31800, -27845, -21215, -12576, -2796, 7150, - 16278, 23700, 28713, 30868, 30015, 26312, 20199, 12351, - 3598, -5164, -13071, -19378, -23531, -25223, -24413, -21318, - -16384, -10218, -3526, 2980, 8655, 12985, 15642, 16505, - 15661, 13381, 10073, 6228, 2348, -1110, -3796, -5495, - -6152, -5863, -4853, -3434, -1954, -744, -62, -60, - -757, -2037, -3664, -5317, -6637, -7283, -6985, -5590, - -3096, 334, 4390, 8631, 12544, 15605, 17339, 17393, - 15582, 11928, 6672, 258, -6705, -13506, -19403, -23711, - -25879, -25558, -22653, -17341, -10061, -1480, 7570, 16185, - 23475, 28661, 31164, 30670, 27167, 20951, 12603, 2930, - -7116, -16540, -24401, -29915, -32533, -32003, -28391, -22075, - -13704, -4128, 5690, 14781, 22262, 27432, 29838, 29319, - 26014, 20339, 12940, 4614, -3777, -11401, -17540, -21660, - -23463, -22908, -20199, -15755, -10150, -4044, 1898, 7079, - 11030, 13459, 14268, 13555, 11585, 8745, 5487, 2268, - -511, -2559, -3716, -3975, -3468, -2440, -1206, -101, - 578, 618, -78, -1470, -3382, -5524, -7531, -9018, - -9630, -9103, -7308, -4280, -226, 4483, 9357, 13829, - 17329, 19352, 19524, 17659, 13788, 8177, 1302, -6184, - -13528, -19945, -24710, -27240, -27167, -24381, -19058, -11646, - -2830, 6539, 15528, 23219, 28806, 31685, 31520, 28282, - 22254, 14010, 4355, -5759, -15331, -23411, -29203, -32144, - -31966, -28714, -22748, -14695, -5384, 4241, 13228, 20707, - 25981, 28600, 28391, 25479, 20256, 13337, 5482, -2482, - -9761, -15668, -19694, -21556, -21215, -18865, -14902, -9864, - -4366, 975, 5614, 9130, 11270, 11967, 11332, 9628, - 7223, 4536, 1976, -113, -1495, -2071, -1882, -1102, - 0, 1102, 1882, 2071, 1495, 113, -1976, -4536, - -7223, -9628, -11332, -11967, -11270, -9130, -5614, -975, - 4366, 9864, 14902, 18865, 21215, 21556, 19694, 15668, - 9761, 2482, -5482, -13337, -20256, -25479, -28391, -28600, - -25981, -20707, -13228, -4241, 5384, 14695, 22748, 28714, - 31966, 32144, 29203, 23411, 15331, 5759, -4355, -14010, - -22254, -28282, -31520, -31685, -28806, -23219, -15528, -6539, - 2830, 11646, 19058, 24381, 27167, 27240, 24710, 19945, - 13528, 6184, -1302, -8177, -13788, -17659, -19524, -19352, - -17329, -13829, -9357, -4483, 226, 4280, 7308, 9103, - 9630, 9018, 7531, 5524, 3382, 1470, 78, -618, - -578, 101, 1206, 2440, 3468, 3975, 3716, 2559, - 511, -2268, -5487, -8745, -11585, -13555, -14268, -13459, - -11030, -7079, -1898, 4044, 10150, 15755, 20199, 22908, - 23463, 21660, 17540, 11401, 3777, -4614, -12940, -20339, - -26014, -29319, -29838, -27432, -22262, -14781, -5690, 4128, - 13704, 22075, 28391, 32003, 32533, 29915, 24401, 16540, - 7116, -2930, -12603, -20951, -27167, -30670, -31164, -28661, - -23475, -16185, -7570, 1480, 10061, 17341, 22653, 25558, - 25879, 23711, 19403, 13506, 6705, -258, -6672, -11928, - -15582, -17393, -17339, -15605, -12544, -8631, -4390, -334, - 3096, 5590, 6985, 7283, 6637, 5317, 3664, 2037, - 757, 60, 62, 744, 1954, 3434, 4853, 5863, - 6152, 5495, 3796, 1110, -2348, -6228, -10073, -13381, - -15661, -16505, -15642, -12985, -8655, -2980, 3526, 10218, - 16384, 21318, 24413, 25223, 23531, 19378, 13071, 5164, - -3598, -12351, -20199, -26312, -30015, -30868, -28713, -23700, - -16278, -7150, 2796, 12576, 21215, 27845, 31800, 32682, - 30406, 25208, 17616, 8401, -1511, -11134, -19524, -25876, - -29606, -30407, -28276, -23507, -16651, -8457, 218, 8498, - 15582, 20823, 23794, 24320, 22491, 18632, 13263, 7031, - 630, -5272, -10114, -13489, -15187, -15199, -13710, -11059, - -7689, -4081, -697, 2080, 3996, 4940, 4954, 4217, - 3009, 1664, 515, -157, -169, 536, 1881, 3657, - 5555, 7212, 8261, 8388, 7386, 5189, 1899, -2217, - -6753, -11197, -14998, -17628, -18653, -17794, -14969, -10318, - -4203, 2824, 10073, 16785, 22213, 25713, 26815, 25284, - 21156, 14745, 6618, -2455, -11585, -19844, -26374, -30473, - -31675, -29805, -24997, -17694, -8594, 1411, 11332, 20185, - 27088, 31360, 32588, 30667, 25813, 18538, 9589, -123, - -9630, -17998, -24429, -28342, -29422, -27654, -23309, -16913, - -9180, -934, 6985, 13807, 18914, 21895, 22583, 21060, - 17635, 12797, 7152, 1349, -3996, -8370, -11408, -12933, - -12955, -11665, -9388, -6538, -3558, -855, 1247, 2548, - 2993, 2669, 1784, 633, -454, -1168, -1263, -607, - 801, 2822, 5190, 7547, 9491, 10634, 10657, 9365, - 6721, 2866, -1881, -7061, -12107, -16420, -19434, -20687, - -19887, -16954, -12044, -5545, 1954, 9723, 16960, 22878, - 26797, 28221, 26895, 22848, 16396, 8116, -1206, -10657, - -19286, -26206, -30690, -32251, -30692, -26133, -19004, -9997, + 0, 9997, 19004, 26133, 30692, 32251, 30690, 26206, + 19286, 10657, 1206, -8116, -16396, -22848, -26895, -28221, + -26797, -22878, -16960, -9723, -1954, 5545, 12044, 16954, + 19887, 20687, 19434, 16420, 12107, 7061, 1881, -2866, + -6721, -9365, -10657, -10634, -9491, -7547, -5190, -2822, + -801, 607, 1263, 1168, 454, -633, -1784, -2669, + -2993, -2548, -1247, 855, 3558, 6538, 9388, 11665, + 12955, 12933, 11408, 8370, 3996, -1349, -7152, -12797, + -17635, -21060, -22583, -21895, -18914, -13807, -6985, 934, + 9180, 16913, 23309, 27654, 29422, 28342, 24429, 17998, + 9630, 123, -9589, -18538, -25813, -30667, -32588, -31360, + -27088, -20185, -11332, -1411, 8594, 17694, 24997, 29805, + 31675, 30473, 26374, 19844, 11585, 2455, -6618, -14745, + -21156, -25284, -26815, -25713, -22213, -16785, -10073, -2824, + 4203, 10318, 14969, 17794, 18653, 17628, 14998, 11197, + 6753, 2217, -1899, -5189, -7386, -8388, -8261, -7212, + -5555, -3657, -1881, -536, 169, 157, -515, -1664, + -3009, -4217, -4954, -4940, -3996, -2080, 697, 4081, + 7689, 11059, 13710, 15199, 15187, 13489, 10114, 5272, + -630, -7031, -13263, -18632, -22491, -24320, -23794, -20823, + -15582, -8498, -218, 8457, 16651, 23507, 28276, 30407, + 29606, 25876, 19524, 11134, 1511, -8401, -17616, -25208, + -30406, -32682, -31800, -27845, -21215, -12576, -2796, 7150, + 16278, 23700, 28713, 30868, 30015, 26312, 20199, 12351, + 3598, -5164, -13071, -19378, -23531, -25223, -24413, -21318, + -16384, -10218, -3526, 2980, 8655, 12985, 15642, 16505, + 15661, 13381, 10073, 6228, 2348, -1110, -3796, -5495, + -6152, -5863, -4853, -3434, -1954, -744, -62, -60, + -757, -2037, -3664, -5317, -6637, -7283, -6985, -5590, + -3096, 334, 4390, 8631, 12544, 15605, 17339, 17393, + 15582, 11928, 6672, 258, -6705, -13506, -19403, -23711, + -25879, -25558, -22653, -17341, -10061, -1480, 7570, 16185, + 23475, 28661, 31164, 30670, 27167, 20951, 12603, 2930, + -7116, -16540, -24401, -29915, -32533, -32003, -28391, -22075, + -13704, -4128, 5690, 14781, 22262, 27432, 29838, 29319, + 26014, 20339, 12940, 4614, -3777, -11401, -17540, -21660, + -23463, -22908, -20199, -15755, -10150, -4044, 1898, 7079, + 11030, 13459, 14268, 13555, 11585, 8745, 5487, 2268, + -511, -2559, -3716, -3975, -3468, -2440, -1206, -101, + 578, 618, -78, -1470, -3382, -5524, -7531, -9018, + -9630, -9103, -7308, -4280, -226, 4483, 9357, 13829, + 17329, 19352, 19524, 17659, 13788, 8177, 1302, -6184, + -13528, -19945, -24710, -27240, -27167, -24381, -19058, -11646, + -2830, 6539, 15528, 23219, 28806, 31685, 31520, 28282, + 22254, 14010, 4355, -5759, -15331, -23411, -29203, -32144, + -31966, -28714, -22748, -14695, -5384, 4241, 13228, 20707, + 25981, 28600, 28391, 25479, 20256, 13337, 5482, -2482, + -9761, -15668, -19694, -21556, -21215, -18865, -14902, -9864, + -4366, 975, 5614, 9130, 11270, 11967, 11332, 9628, + 7223, 4536, 1976, -113, -1495, -2071, -1882, -1102, + 0, 1102, 1882, 2071, 1495, 113, -1976, -4536, + -7223, -9628, -11332, -11967, -11270, -9130, -5614, -975, + 4366, 9864, 14902, 18865, 21215, 21556, 19694, 15668, + 9761, 2482, -5482, -13337, -20256, -25479, -28391, -28600, + -25981, -20707, -13228, -4241, 5384, 14695, 22748, 28714, + 31966, 32144, 29203, 23411, 15331, 5759, -4355, -14010, + -22254, -28282, -31520, -31685, -28806, -23219, -15528, -6539, + 2830, 11646, 19058, 24381, 27167, 27240, 24710, 19945, + 13528, 6184, -1302, -8177, -13788, -17659, -19524, -19352, + -17329, -13829, -9357, -4483, 226, 4280, 7308, 9103, + 9630, 9018, 7531, 5524, 3382, 1470, 78, -618, + -578, 101, 1206, 2440, 3468, 3975, 3716, 2559, + 511, -2268, -5487, -8745, -11585, -13555, -14268, -13459, + -11030, -7079, -1898, 4044, 10150, 15755, 20199, 22908, + 23463, 21660, 17540, 11401, 3777, -4614, -12940, -20339, + -26014, -29319, -29838, -27432, -22262, -14781, -5690, 4128, + 13704, 22075, 28391, 32003, 32533, 29915, 24401, 16540, + 7116, -2930, -12603, -20951, -27167, -30670, -31164, -28661, + -23475, -16185, -7570, 1480, 10061, 17341, 22653, 25558, + 25879, 23711, 19403, 13506, 6705, -258, -6672, -11928, + -15582, -17393, -17339, -15605, -12544, -8631, -4390, -334, + 3096, 5590, 6985, 7283, 6637, 5317, 3664, 2037, + 757, 60, 62, 744, 1954, 3434, 4853, 5863, + 6152, 5495, 3796, 1110, -2348, -6228, -10073, -13381, + -15661, -16505, -15642, -12985, -8655, -2980, 3526, 10218, + 16384, 21318, 24413, 25223, 23531, 19378, 13071, 5164, + -3598, -12351, -20199, -26312, -30015, -30868, -28713, -23700, + -16278, -7150, 2796, 12576, 21215, 27845, 31800, 32682, + 30406, 25208, 17616, 8401, -1511, -11134, -19524, -25876, + -29606, -30407, -28276, -23507, -16651, -8457, 218, 8498, + 15582, 20823, 23794, 24320, 22491, 18632, 13263, 7031, + 630, -5272, -10114, -13489, -15187, -15199, -13710, -11059, + -7689, -4081, -697, 2080, 3996, 4940, 4954, 4217, + 3009, 1664, 515, -157, -169, 536, 1881, 3657, + 5555, 7212, 8261, 8388, 7386, 5189, 1899, -2217, + -6753, -11197, -14998, -17628, -18653, -17794, -14969, -10318, + -4203, 2824, 10073, 16785, 22213, 25713, 26815, 25284, + 21156, 14745, 6618, -2455, -11585, -19844, -26374, -30473, + -31675, -29805, -24997, -17694, -8594, 1411, 11332, 20185, + 27088, 31360, 32588, 30667, 25813, 18538, 9589, -123, + -9630, -17998, -24429, -28342, -29422, -27654, -23309, -16913, + -9180, -934, 6985, 13807, 18914, 21895, 22583, 21060, + 17635, 12797, 7152, 1349, -3996, -8370, -11408, -12933, + -12955, -11665, -9388, -6538, -3558, -855, 1247, 2548, + 2993, 2669, 1784, 633, -454, -1168, -1263, -607, + 801, 2822, 5190, 7547, 9491, 10634, 10657, 9365, + 6721, 2866, -1881, -7061, -12107, -16420, -19434, -20687, + -19887, -16954, -12044, -5545, 1954, 9723, 16960, 22878, + 26797, 28221, 26895, 22848, 16396, 8116, -1206, -10657, + -19286, -26206, -30690, -32251, -30692, -26133, -19004, -9997, }; diff --git a/daemon/libs/iax2/frame.h b/daemon/libs/iax2/frame.h index efc91d6af9..350a25f2d4 100644 --- a/daemon/libs/iax2/frame.h +++ b/daemon/libs/iax2/frame.h @@ -2,7 +2,7 @@ * libiax: An implementation of the Inter-Asterisk eXchange protocol * * Asterisk internal frame definitions. - * + * * Copyright (C) 1999, Mark Spencer * * Mark Spencer <markster@linux-support.net> diff --git a/daemon/libs/iax2/iax.c b/daemon/libs/iax2/iax.c index 3ae3c25b82..013879ac72 100644 --- a/daemon/libs/iax2/iax.c +++ b/daemon/libs/iax2/iax.c @@ -2179,7 +2179,7 @@ static int forward_match(struct sockaddr_in *sin, short callno, short dcallno, s if (cur->peercallno == 0) { cur->peercallno = callno; } - else if ( cur->peercallno != callno ) + else if ( cur->peercallno != callno ) { // print a warning when the callno's don't match fprintf( stderr, "WARNING: peercallno does not match callno" @@ -2551,7 +2551,7 @@ static struct iax_event *iax_header_to_event(struct iax_session *session, struct DEBU(G "Packet arrived out of order (expecting %d, got %d) (frametype = %d, subclass = %d)\n", session->iseqno, fh->oseqno, fh->type, subclass); - /* + /* * Check if session->iseqno > fh->oseqno, accounting for possible wrap around * This is correct if the two values are not equal (which, in this case, is guaranteed) */ diff --git a/daemon/libs/iax2/iax.h b/daemon/libs/iax2/iax.h index 8a0e3fe3d3..cb5377b45f 100644 --- a/daemon/libs/iax2/iax.h +++ b/daemon/libs/iax2/iax.h @@ -2,7 +2,7 @@ * libIAX * * Implementation of Inter-IAXerisk eXchange - * + * * Copyright (C) 1999, Mark Spencer * * Mark Spencer <markster@linux-support.net> @@ -10,7 +10,7 @@ * This program is free software, distributed under the terms of * the GNU Lesser (Library) General Public License */ - + #ifndef _IAX_H #define _IAX_H diff --git a/daemon/libs/iax2/iax2-parser.c b/daemon/libs/iax2/iax2-parser.c index ae4a8c2ed8..958380a409 100644 --- a/daemon/libs/iax2/iax2-parser.c +++ b/daemon/libs/iax2/iax2-parser.c @@ -2,7 +2,7 @@ * Asterisk -- A telephony toolkit for Linux. * * Implementation of Inter-Asterisk eXchange - * + * * Copyright (C) 2003-2004, Digium * * Mark Spencer <markster@digium.com> @@ -218,7 +218,7 @@ static void dump_prov_ies(char *output, int maxlen, unsigned char *iedata, int l char tmp[256]; if (len < 2) return; - strcpy(output, "\n"); + strcpy(output, "\n"); maxlen -= (int)strlen(output); output += strlen(output); while(len > 2) { ie = iedata[0]; @@ -396,12 +396,12 @@ void iax_showframe(struct iax_frame *f, struct ast_iax2_full_hdr *fhi, int rx, s snprintf(subclass2, (int)sizeof(subclass2), "%d", fh->csub); subclass = subclass2; } -snprintf(tmp, (int)sizeof(tmp), +snprintf(tmp, (int)sizeof(tmp), "%s-Frame Retry[%s] -- OSeqno: %3.3d ISeqno: %3.3d Type: %s Subclass: %s\n", (rx ? "Rx" : "Tx"), retries, fh->oseqno, fh->iseqno, clas, subclass); outputf(tmp); -snprintf(tmp, (int)sizeof(tmp), +snprintf(tmp, (int)sizeof(tmp), " Timestamp: %05lums SCall: %5.5d DCall: %5.5d [%s:%d]\n", (unsigned long)ntohl(fh->ts), ntohs(fh->scallno) & ~IAX_FLAG_FULL, ntohs(fh->dcallno) & ~IAX_FLAG_RETRANS, @@ -431,14 +431,14 @@ int iax_ie_append_addr(struct iax_ie_data *ied, unsigned char ie, struct sockadd return iax_ie_append_raw(ied, ie, sin, (int)sizeof(struct sockaddr_in)); } -int iax_ie_append_int(struct iax_ie_data *ied, unsigned char ie, unsigned int value) +int iax_ie_append_int(struct iax_ie_data *ied, unsigned char ie, unsigned int value) { unsigned int newval; newval = htonl(value); return iax_ie_append_raw(ied, ie, &newval, (int)sizeof(newval)); } -int iax_ie_append_short(struct iax_ie_data *ied, unsigned char ie, unsigned short value) +int iax_ie_append_short(struct iax_ie_data *ied, unsigned char ie, unsigned short value) { unsigned short newval; newval = htons(value); @@ -455,7 +455,7 @@ int iax_ie_append_byte(struct iax_ie_data *ied, unsigned char ie, unsigned char return iax_ie_append_raw(ied, ie, &dat, 1); } -int iax_ie_append(struct iax_ie_data *ied, unsigned char ie) +int iax_ie_append(struct iax_ie_data *ied, unsigned char ie) { return iax_ie_append_raw(ied, ie, NULL, 0); } @@ -777,7 +777,7 @@ void iax_frame_wrap(struct iax_frame *fr, struct ast_frame *f) fr->af.offset = AST_FRIENDLY_OFFSET; fr->af.src = f->src; fr->af.data = fr->afdata; - if (fr->af.datalen) + if (fr->af.datalen) memcpy(fr->af.data, f->data, fr->af.datalen); } diff --git a/daemon/libs/iax2/iax2-parser.h b/daemon/libs/iax2/iax2-parser.h index 8238b2f469..dbf0eea41b 100644 --- a/daemon/libs/iax2/iax2-parser.h +++ b/daemon/libs/iax2/iax2-parser.h @@ -2,7 +2,7 @@ * Asterisk -- A telephony toolkit for Linux. * * Implementation of Inter-Asterisk eXchange - * + * * Copyright (C) 2003, Digium * * Mark Spencer <markster@digium.com> @@ -10,7 +10,7 @@ * This program is free software, distributed under the terms of * the GNU Lesser (Library) General Public License */ - + #ifndef _IAX2_PARSER_H #define _IAX2_PARSER_H diff --git a/daemon/libs/iax2/iax2.h b/daemon/libs/iax2/iax2.h index 1be78757a4..da144f7047 100644 --- a/daemon/libs/iax2/iax2.h +++ b/daemon/libs/iax2/iax2.h @@ -2,7 +2,7 @@ * Asterisk -- A telephony toolkit for Linux. * * Implementation of Inter-Asterisk eXchange - * + * * Copyright (C) 2003, Digium * * Mark Spencer <markster@linux-support.net> @@ -10,7 +10,7 @@ * This program is free software, distributed under the terms of * the GNU Lesser (Library) General Public License */ - + #ifndef _IAX2_H #define _IAX2_H diff --git a/daemon/libs/iax2/md5.c b/daemon/libs/iax2/md5.c index 5524d26b1f..656601f98b 100644 --- a/daemon/libs/iax2/md5.c +++ b/daemon/libs/iax2/md5.c @@ -136,7 +136,7 @@ void IAX_MD5Update(struct IAX_MD5Context *ctx, uint8_t const *buf, unsigned int } /* - * Final wrapup - pad to 64-byte boundary with the bit pattern + * Final wrapup - pad to 64-byte boundary with the bit pattern * 1 0* (64-bit count of bits processed, MSB-first) */ void IAX_MD5Final(uint8_t digest[16], struct IAX_MD5Context *ctx) diff --git a/daemon/libs/iax2/miniphone.c b/daemon/libs/iax2/miniphone.c index ab0dd8463c..dca9933b33 100644 --- a/daemon/libs/iax2/miniphone.c +++ b/daemon/libs/iax2/miniphone.c @@ -195,14 +195,14 @@ static int send_sound(int soundfd) return -1; } /* Calculate how many samples we can send, max */ - if (total > (abi.fragments * abi.fragsize / 2)) + if (total > (abi.fragments * abi.fragsize / 2)) total = abi.fragments * abi.fragsize / 2; res = total; if (sampsent < sounds[cursound].samplen) { myoff=0; while(total) { amt = total; - if (amt > (sounds[cursound].datalen - offset)) + if (amt > (sounds[cursound].datalen - offset)) amt = sounds[cursound].datalen - offset; memcpy(myframe + myoff, sounds[cursound].data + offset, amt * 2); total -= amt; @@ -213,7 +213,7 @@ static int send_sound(int soundfd) offset = 0; } /* Set it up for silence */ - if (sampsent >= sounds[cursound].samplen) + if (sampsent >= sounds[cursound].samplen) silencelen = sounds[cursound].silencelen; frame = myframe; } else { @@ -463,7 +463,7 @@ main(int argc, char *argv[]) timerptr = &timer; timer.tv_sec = m /1000; timer.tv_usec = (m % 1000) * 1000; - } else + } else timerptr = 0; regm = check_iax_timeout(); if (!timerptr || (m > regm)) { @@ -512,7 +512,7 @@ do_iax_event(FILE *f) { if(e->event.connect.callerid && e->event.connect.dnid) - fprintf(f, "Call from '%s' for '%s'", e->event.connect.callerid, + fprintf(f, "Call from '%s' for '%s'", e->event.connect.callerid, e->event.connect.dnid); else if(e->event.connect.dnid) { fprintf(f, "Call from '%s'", e->event.connect.dnid); @@ -664,7 +664,7 @@ handle_event(FILE *f, struct iax_event *e, struct peer *p) int res; res = write(audiofd, fr, sizeof(fr)); - if (res < 0) + if (res < 0) fprintf(f, "Write failed: %s\n", strerror(errno)); } len += 33; @@ -696,7 +696,7 @@ dump_call(void) offhook = 0; ringing = 0; gentone(TONE_NONE, 0); -} +} void parse_cmd(FILE *f, int argc, char **argv) diff --git a/daemon/libs/iax2/ring10.h b/daemon/libs/iax2/ring10.h index 13fce373e7..7c0495dd5a 100644 --- a/daemon/libs/iax2/ring10.h +++ b/daemon/libs/iax2/ring10.h @@ -10,1743 +10,1743 @@ */ static signed short ring10[] = { -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 0x82a0, 0x8dc7, 0x607e, 0xc0c6, 0x2bd3, -0x8df5, 0x828d, 0x0716, 0xaca6, 0xcefe, 0x41df, 0xd185, 0x8aa3, 0x8b1a, 0x789b, -0x82a2, 0x804f, 0x7ea8, 0x8113, 0x7f7d, 0x7fff, 0x801e, 0x801d, 0x7f32, 0x82ec, -0x83e1, 0x7fb0, 0x7f71, 0x80de, 0x7f3d, 0x7fe3, 0x81b4, 0x7c37, 0x8553, 0x7b29, -0x7ede, 0xde6e, 0x0e64, 0xf9f4, 0x015e, 0x00f6, 0xfe56, 0x0019, 0xf8bb, 0xfd90, -0x08cc, 0x05ab, 0xfd0b, 0xf9c6, 0xf875, 0xf789, 0xfc74, 0x032e, 0xf97a, 0xf4bb, -0x0212, 0x006e, 0x03df, 0x17c5, 0x0f50, 0xfb23, 0xfdbd, 0xf7cf, 0xdf5b, 0xe2d3, -0xf111, 0xef27, 0x11c5, 0x33a4, 0x168d, 0x0145, 0x0494, 0xe85c, 0xdac3, 0xf0c7, -0xeea8, 0x0023, 0x3036, 0x252a, 0xffb7, 0x01d1, 0xf637, 0xd506, 0xe8eb, 0xf5ff, -0xe5ca, 0x1ec5, 0x3fa4, 0x0e3c, 0x1570, 0x2b37, 0xea23, 0xca43, 0xf392, 0xdf0e, -0xde40, 0x2e7c, 0x276f, 0x035c, 0x2ccc, 0x1acf, 0xcf4a, 0xeb5b, 0x0fb1, 0xe01a, -0x0c69, 0x3a97, 0xfb54, 0x0751, 0x20f1, 0xdce9, 0xd2a2, 0x19b3, 0x096f, 0xf1b6, -0x38de, 0x1f70, 0xf32b, 0x2569, 0x0650, 0xc3d7, 0xf1ad, 0x1aa5, 0xe87e, 0x0c7f, -0x406d, 0xffaa, 0x0ba8, 0x2e02, 0xe545, 0xcebb, 0x10fc, 0x0102, 0xded8, 0x2b7c, -0x2053, 0xec6f, 0x266e, 0x1770, 0xcb63, 0xf18e, 0x2015, 0xe6ef, 0xfe64, 0x3700, -0xf628, 0xfb00, 0x2e43, 0xee48, 0xcd4a, 0x1867, 0x0ec3, 0xdd77, 0x2291, 0x1c80, -0xe325, 0x19b7, 0x1719, 0xcb88, 0xeded, 0x258c, 0xe7e8, 0xf0c6, 0x2d21, 0xf3d5, -0xf494, 0x290d, 0xef7b, 0xca28, 0x12c8, 0x0d8d, 0xd5f3, 0x171d, 0x1994, 0xe0c0, -0x1348, 0x1929, 0xcf9b, 0xe6fb, 0x20ae, 0xe921, 0xed2b, 0x2c54, 0xf96e, 0xf19f, -0x21b6, 0xf12e, 0xc8b4, 0x0907, 0x0964, 0xd049, 0x0eb8, 0x1fa6, 0xe6b5, 0x0cec, -0x16b6, 0xcd0c, 0xda57, 0x17c9, 0xe440, 0xe2a2, 0x2b4d, 0xffa2, 0xec7e, 0x1ee9, -0xf674, 0xbfcb, 0xf769, 0x0402, 0xcfe8, 0x104b, 0x2734, 0xe7e9, 0x07d9, 0x19f4, -0xd032, 0xd00b, 0x0e46, 0xe17d, 0xe2d8, 0x3456, 0x0781, 0xed01, 0x238d, 0xfa72, -0xbb51, 0xf543, 0x050b, 0xccd5, 0x1491, 0x3358, 0xedad, 0x10c4, 0x283b, 0xd051, -0xc9e9, 0x11f8, 0xe2cb, 0xe534, 0x43aa, 0x1090, 0xf11b, 0x3267, 0x02c3, 0xb72d, -0xf9ac, 0x0fbd, 0xce45, 0x1d7b, 0x4389, 0xef2e, 0x1593, 0x348e, 0xd0cb, 0xca8c, -0x1f61, 0xe981, 0xdef7, 0x4774, 0x15ae, 0xefab, 0x3b28, 0x0a9e, 0xb2f6, 0xf9e9, -0x1976, 0xcc08, 0x15ab, 0x4534, 0xee6c, 0x159b, 0x3753, 0xcf09, 0xc69a, 0x2270, -0xf15c, 0xdee6, 0x48ce, 0x1af4, 0xf169, 0x3da0, 0x0d68, 0xb573, 0xff9e, 0x20ba, -0xcbfe, 0x142d, 0x4879, 0xed49, 0x1434, 0x3d96, 0xd714, 0xca99, 0x298b, 0xf708, -0xd92c, 0x4632, 0x1acc, 0xea6e, 0x3d2c, 0x1412, 0xb534, 0xfbfa, 0x24f9, 0xcd72, -0x0df9, 0x48f8, 0xeb87, 0x0bca, 0x3dd5, 0xd6cc, 0xc015, 0x2605, 0xfa87, 0xd1a9, -0x40d0, 0x1c59, 0xe0de, 0x34f9, 0x14c6, 0xaf61, 0xf2a5, 0x23e6, 0xc929, 0x01be, -0x4423, 0xe53b, 0x0182, 0x3c3a, 0xd758, 0xbb9d, 0x1fa9, 0xf454, 0xc611, 0x36e8, -0x18f7, 0xdac9, 0x2e8a, 0x126d, 0xac14, 0xead6, 0x2215, 0xc990, 0xf9f5, 0x43cb, -0xea01, 0xfcbf, 0x38fd, 0xd9f3, 0xb7cd, 0x1bc4, 0xfd41, 0xca56, 0x31e3, 0x1d4b, -0xdca2, 0x2a9f, 0x1c24, 0xb8aa, 0xeb59, 0x25d5, 0xd2d0, 0xfa10, 0x44fa, 0xefe0, -0xfced, 0x3ef4, 0xe9a1, 0xbdf0, 0x19ac, 0x0198, 0xca6f, 0x2f04, 0x25b6, 0xe187, -0x29ba, 0x250a, 0xbe42, 0xe40e, 0x24ef, 0xd75d, 0xf476, 0x44f8, 0xf719, 0xf7a1, -0x3c94, 0xf20e, 0xbcdf, 0x16a3, 0x07e8, 0xc8d4, 0x2a3e, 0x2b3f, 0xdf4e, 0x235d, -0x2c92, 0xc2c7, 0xdf39, 0x2873, 0xd790, 0xea2a, 0x47fd, 0xfd0e, 0xf0e3, 0x3bd8, -0xf4e9, 0xb265, 0x0c2c, 0x0751, 0xc302, 0x29bb, 0x37bd, 0xe138, 0x1e0c, 0x2d09, -0xbddb, 0xd246, 0x24c4, 0xd87a, 0xe5df, 0x4ff6, 0x08d6, 0xf0d8, 0x3d61, 0xf8bf, -0xaede, 0x0a36, 0x0df3, 0xc0f5, 0x23ec, 0x3e92, 0xe3d7, 0x1cad, 0x348e, 0xc0d6, -0xcd4e, 0x265c, 0xd9b6, 0xdf83, 0x510e, 0x0c41, 0xeece, 0x4153, 0xfeeb, 0xa9f6, -0x04b3, 0x12a4, 0xbf2f, 0x20d1, 0x42f4, 0xe1b1, 0x1b1e, 0x3980, 0xc2b4, 0xcb50, -0x2b74, 0xded0, 0xd835, 0x4e7a, 0x0b46, 0xe555, 0x4015, 0x0517, 0xaa54, 0x0504, -0x1932, 0xbc34, 0x1a77, 0x48b1, 0xe0bb, 0x149b, 0x3ba7, 0xc34a, 0xc481, 0x2bc2, -0xe401, 0xd20e, 0x4f53, 0x1389, 0xe3b7, 0x418b, 0x0a15, 0xa70d, 0x0024, 0x1f9f, -0xbf65, 0x142d, 0x4a81, 0xe0ca, 0x1152, 0x4325, 0xcb03, 0xc18a, 0x2b95, 0xeb45, -0xcf92, 0x4c54, 0x18ad, 0xe08b, 0x3f12, 0x1264, 0xa9fc, 0xfd97, 0x246f, 0xbf86, -0x0ce2, 0x4e7c, 0xe4f3, 0x0c20, 0x44e0, 0xd069, 0xbdcb, 0x2b8e, 0xf32d, 0xcad4, -0x464f, 0x1e76, 0xdf62, 0x3b07, 0x17ea, 0xaafb, 0xf5a0, 0x2835, 0xc7c2, 0x0842, -0x4d2b, 0xe634, 0x03ef, 0x42bc, 0xd7f2, 0xbb73, 0x2662, 0xf892, 0xc8b3, 0x3e30, -0x1f20, 0xdcca, 0x354a, 0x1c6b, 0xaf75, 0xf0f7, 0x2963, 0xc908, 0xfdbf, 0x4c3c, -0xebe5, 0x00e3, 0x44c4, 0xdf15, 0xb9e9, 0x243b, 0x00e9, 0xcb76, 0x3b53, 0x248e, -0xdc27, 0x2fcb, 0x22e5, 0xb66c, 0xec96, 0x2b19, 0xd0ef, 0xf97b, 0x48ae, 0xecc0, -0xf8b4, 0x411d, 0xe769, 0xb9f7, 0x1c41, 0x0022, 0xc369, 0x2ced, 0x23ac, 0xd8eb, -0x2522, 0x232a, 0xb611, 0xe19f, 0x2738, 0xd013, 0xece5, 0x434c, 0xf00e, 0xefcc, -0x3b79, 0xeb32, 0xb19c, 0x135e, 0x04ef, 0xc1b9, 0x27a8, 0x2992, 0xd7b3, 0x1ba5, -0x2481, 0xb8c5, 0xd97d, 0x246f, 0xd113, 0xe45d, 0x4486, 0xf7f7, 0xeb36, 0x395a, -0xf122, 0xaea5, 0x0c28, 0x05eb, 0xbde4, 0x2585, 0x36a2, 0xde67, 0x1b86, 0x2dac, -0xbd03, 0xd2b8, 0x2624, 0xd8b8, 0xe802, 0x521b, 0x0855, 0xefbc, 0x4048, 0xfad2, -0xafe2, 0x0fb1, 0x12b2, 0xc62c, 0x2c2a, 0x43f5, 0xe562, 0x1fcb, 0x3791, 0xc2ac, -0xd4d1, 0x2dfd, 0xde0a, 0xe53f, 0x5578, 0x0f49, 0xf2b6, 0x4609, 0x0105, 0xabf5, -0x09a8, 0x157e, 0xc286, 0x23e7, 0x425f, 0xe36a, 0x1d93, 0x3580, 0xbf80, 0xcaf2, -0x2a04, 0xf16e, 0xd92b, 0x0eaa, 0xf1a7, 0x1ddb, 0x5b52, 0x0665, 0xd2e3, 0x15f8, -0xf606, 0x9d42, 0xdba7, 0xf312, 0xd349, 0x21ed, 0x576a, 0x34e8, 0x2450, 0x2679, -0xdc01, 0xb506, 0xcb0f, 0xa454, 0xccf3, 0x2c13, 0x1673, 0xf8ca, 0x4ff1, 0x63ac, -0xec26, 0xd77c, 0xf1f9, 0xc268, 0xb11a, 0xdfe4, 0x02e7, 0x10f5, 0x3512, 0x19dd, -0x0edc, 0x3568, 0xf6f7, 0xbe10, 0xda93, 0xf4fe, 0xda03, 0xe293, 0x15dd, 0x15f3, -0x1ba5, 0x1521, 0x12e8, 0x23ab, 0x0fc3, 0xdb3e, 0xb671, 0xe960, 0xe13c, 0xc695, -0x1a81, 0x3d23, 0x1c56, 0x190d, 0x4234, 0x1970, 0xd784, 0xd86b, 0xb5e8, 0xc9f3, -0xeb89, 0xe344, 0x17ae, 0x5713, 0x37fc, 0xffe2, 0x36b3, 0x1dfe, 0xb963, 0xbf9c, -0xc9a1, 0xcc7b, 0xe409, 0x08a6, 0x2077, 0x3b4d, 0x3cba, 0x0553, 0x220e, 0x226e, -0xd219, 0xb7ec, 0xcb8b, 0xdf2a, 0xd0c7, 0xf5be, 0x2ff0, 0x42a6, 0x3c24, 0x25ae, -0x2d6d, 0x0d94, 0xde80, 0xb78b, 0xb12b, 0xdf7a, 0xde33, 0x0046, 0x47b1, 0x5170, -0x29c0, 0x2945, 0x3ab5, 0xf08f, 0xc806, 0xc229, 0xbbf4, 0xe40d, 0xf365, 0x0bfe, -0x448d, 0x5cd8, 0x1e52, 0x10ba, 0x3908, 0xefa4, 0xc243, 0xcf89, 0xd02d, 0xde92, -0xf8e0, 0x191e, 0x2f7b, 0x48e6, 0x1e38, 0x1074, 0x3785, 0xf8be, 0xbd1c, 0xc06b, -0xdc36, 0xdb97, 0xe3c0, 0x2042, 0x37c5, 0x36ff, 0x1b73, 0x2064, 0x2c9a, 0xefa2, -0xbf0c, 0xb7f0, 0xe221, 0xe243, 0xd998, 0x2263, 0x4bae, 0x3596, 0x18aa, 0x3763, -0x27d0, 0xdcc6, 0xcacc, 0xc06f, 0xd83d, 0xecfe, 0xeefa, 0x1ffa, 0x5052, 0x393f, -0x0af5, 0x3c9e, 0x316b, 0xd2df, 0xc575, 0xd3c8, 0xddd2, 0xdf98, 0xfbd7, 0x2929, -0x4879, 0x4052, 0x160c, 0x3708, 0x2b31, 0xdac6, 0xc0c3, 0xcfc0, 0xe71d, 0xddec, -0x0145, 0x3847, 0x457c, 0x356b, 0x214a, 0x3a5f, 0x1474, 0xd892, 0xc579, 0xc6a7, -0xe77a, 0xe4dc, 0x00ab, 0x3b89, 0x4eba, 0x290a, 0x16ea, 0x3dc6, 0x0956, 0xcc12, -0xc3bd, 0xc9e9, 0xe4be, 0xe60b, 0x0561, 0x3707, 0x4c82, 0x2444, 0x1406, 0x3a8e, -0xff5b, 0xc494, 0xbf9f, 0xcb26, 0xdfef, 0xe755, 0x1060, 0x334f, 0x40e5, 0x1f87, -0x16b9, 0x33e8, 0xfa6e, 0xc670, 0xb774, 0xcc17, 0xe18f, 0xdd0f, 0x102c, 0x3f0d, -0x4098, 0x1b95, 0x24b2, 0x315a, 0xe9d8, 0xc459, 0xb314, 0xc524, 0xe2a6, 0xe1cf, -0x100a, 0x44af, 0x455c, 0x1551, 0x264f, 0x2ab1, 0xd681, 0xb90c, 0xb4d6, 0xc68d, -0xddac, 0xef74, 0x1f57, 0x4357, 0x4192, 0x0e60, 0x1bcb, 0x20fd, 0xd477, 0xb435, -0xb3e3, 0xcdc3, 0xd9c4, 0xef97, 0x2384, 0x3b60, 0x34c9, 0x119d, 0x1f15, 0x0fb3, -0xd15d, 0xb30d, 0xa9e3, 0xd431, 0xdc02, 0xe98a, 0x2987, 0x4204, 0x290c, 0x1181, -0x2d0c, 0x0800, 0xcb55, 0xb8f5, 0xaaa6, 0xd49f, 0xe57c, 0xf063, 0x281c, 0x4c65, -0x2d19, 0x0cd2, 0x2ddb, 0xfefe, 0xc171, 0xbd4c, 0xb7c2, 0xd4c5, 0xe6f3, 0x0040, -0x2b86, 0x4b6d, 0x2ed1, 0x0ce3, 0x2d97, 0x01f9, 0xc2ad, 0xb8fc, 0xc53e, 0xe1cf, -0xea35, 0x0eb0, 0x38b8, 0x4a3b, 0x2a1e, 0x1457, 0x2a1e, 0xfbca, 0xcdf1, 0xbc93, -0xcc0b, 0xec27, 0xeb05, 0x144b, 0x4443, 0x496d, 0x2233, 0x2180, 0x30b2, 0xf03c, -0xcced, 0xbf0d, 0xcc55, 0xeec3, 0xf367, 0x186f, 0x45cd, 0x4e7d, 0x215a, 0x2485, -0x3122, 0xe7a8, 0xc40a, 0xbf85, 0xd4dd, 0xebe8, 0xf32b, 0x2121, 0x49bb, 0x4c61, -0x1af5, 0x1f88, 0x2c32, 0xe8c5, 0xc512, 0xc0b7, 0xdbf9, 0xe9ea, 0xf2f4, 0x2584, -0x43e2, 0x3e1b, 0x19cf, 0x28d2, 0x2442, 0xe27b, 0xc589, 0xbe8a, 0xdddc, 0xe567, -0xed4e, 0x27f2, 0x48cd, 0x3505, 0x0e88, 0x2cd5, 0x207d, 0xda54, 0xc1cf, 0xb8c1, -0xd925, 0xe569, 0xefd0, 0x2723, 0x4dd1, 0x38b2, 0x0de5, 0x2d90, 0x155b, 0xca06, -0xbab6, 0xbf37, 0xdd46, 0xe3fd, 0xfb50, 0x2e5d, 0x487b, 0x343e, 0x0abe, 0x25e9, -0x0f65, 0xcb83, 0xb474, 0xbc50, 0xe2ab, 0xe1df, 0xfd3e, 0x3672, 0x458b, 0x294e, -0x10fd, 0x2afa, 0x027f, 0xcae8, 0xb95b, 0xbc6f, 0xe536, 0xe3af, 0xfd1c, 0x3b18, -0x4cb1, 0x23ff, 0x13eb, 0x3353, 0xfb34, 0xc4aa, 0xb71a, 0xb9f2, 0xe1d7, 0xe97f, -0x058d, 0x3a0f, 0x4fcd, 0x2408, 0x11a3, 0x2fb9, 0xf271, 0xbb7f, 0xb447, 0xc317, -0xde44, 0xe56a, 0x110a, 0x3ccc, 0x494a, 0x1f80, 0x11af, 0x26a1, 0xeb09, 0xbcd0, -0xaf90, 0xc8d4, 0xe63f, 0xe47d, 0x1435, 0x3f4f, 0x3fbe, 0x17c7, 0x1a4f, 0x2393, -0xe191, 0xbfa1, 0xb0e4, 0xc7c9, 0xe2d9, 0xe363, 0x1625, 0x4320, 0x3da9, 0x11c4, -0x1e02, 0x1d1b, 0xd6be, 0xbe96, 0xb123, 0xc8a4, 0xe6ce, 0xef2e, 0x1c03, 0x4584, -0x3fd1, 0x1006, 0x20d8, 0x197b, 0xcf64, 0xb99e, 0xb693, 0xd396, 0xe8eb, 0xfb01, -0x2aca, 0x4b38, 0x3f87, 0x0de0, 0x1f2f, 0x1503, 0xd574, 0xba46, 0xb72d, 0xf07a, -0xfa16, 0xf608, 0x29c0, 0x3a7e, 0x42a7, 0x43ac, 0x2717, 0xec6f, 0xd732, 0xc1ac, -0xa146, 0xef37, 0x122b, 0x05c1, 0x5c67, 0x8e8c, 0x3d5e, 0x0043, 0x00d0, 0xb9ef, -0xa38d, 0xc8dd, 0xc921, 0x15c9, 0x5fe3, 0x531a, 0x477d, 0x5852, 0x1b9f, 0xb930, -0xd1b6, 0xde60, 0xbcce, 0xe7f7, 0x16b1, 0x2aeb, 0x4605, 0x3592, 0xfe8c, 0x0c1d, -0x1b24, 0xd084, 0xd667, 0x2736, 0x06f7, 0xdfa7, 0x1976, 0x0df9, 0xc5e8, 0x032b, -0x324e, 0xea0e, 0x1ab4, 0x46e4, 0xf72e, 0x0369, 0x0ef3, 0xbe35, 0xbd17, 0x10fd, -0xfb35, 0xeb3f, 0x4e43, 0x2da4, 0xfe31, 0x2f50, 0xf64c, 0xafd6, 0xe267, 0xfd01, -0xca77, 0x1087, 0x48c1, 0xfcf4, 0x1bb0, 0x31af, 0xd234, 0xc0cb, 0x054e, 0xec6b, -0xce29, 0x29db, 0x1bb4, 0xf0fd, 0x3608, 0x12eb, 0xbb40, 0xeaa8, 0x190f, 0xce00, -0xed59, 0x39ef, 0xf1f0, 0xfb2a, 0x3535, 0xe3b3, 0xbf33, 0x1a9b, 0x013b, 0xc2ab, -0x2976, 0x21e0, 0xd3d8, 0x1ca6, 0x14ae, 0xb242, 0xe538, 0x2958, 0xd98c, 0xf279, -0x4106, 0xf13e, 0xf68b, 0x3379, 0xe023, 0xb4a8, 0x104b, 0x0685, 0xcca4, 0x2e61, -0x2d96, 0xe2b8, 0x26ac, 0x2510, 0xc114, 0xd9e5, 0x1f91, 0xdbc9, 0xe515, 0x40bd, -0x0693, 0xff44, 0x3c5e, 0xf664, 0xb8dc, 0x0b37, 0x1314, 0xc29c, 0x161f, 0x3582, -0xe32e, 0x17c0, 0x2de6, 0xc7c1, 0xcfeb, 0x23a6, 0xe644, 0xe65f, 0x4256, 0xf765, -0xe698, 0x4148, 0xfbe1, 0xa6b4, 0x03fa, 0x1c92, 0xcb85, 0x1a54, 0x37af, 0xe830, -0x1b0b, 0x255d, 0xc13f, 0xd3d9, 0x205e, 0xde69, 0xe2ab, 0x48d5, 0x0931, 0xee2f, -0x3d79, 0x0658, 0xb36c, 0xf59e, 0x11f4, 0xd042, 0x110b, 0x2e1b, 0xe763, 0x2269, -0x3bda, 0xcefb, 0xd37b, 0x2d7f, 0xe9d7, 0xd48e, 0x3fd2, 0x0e86, 0xea62, 0x3cd5, -0x11e0, 0xc1dc, 0x08e0, 0x1f68, 0xd3f1, 0x1fc8, 0x3da6, 0xe12f, 0x1d62, 0x4060, -0xccb6, 0xd211, 0x316f, 0xf370, 0xe20e, 0x4657, 0x1280, 0xf30a, 0x3df0, 0x07fc, -0xb956, 0x023e, 0x1978, 0xcbba, 0x137d, 0x3ff7, 0xecbc, 0x1698, 0x3f29, 0xdf9f, -0xcc1c, 0x1bdc, 0xef17, 0xd3da, 0x346b, 0x1296, 0xeb25, 0x3885, 0x190f, 0xbf13, -0xfb71, 0x1df2, 0xc509, 0xffa2, 0x3a66, 0xe5fd, 0x04f6, 0x36be, 0xda99, 0xc67e, -0x1fc2, 0xef95, 0xcfa8, 0x39df, 0x0f1a, 0xd986, 0x2d7b, 0x0e88, 0xb2a2, 0xf40f, -0x1bd3, 0xc95c, 0x0511, 0x408d, 0xec48, 0x03d2, 0x3281, 0xd7a0, 0xb9a0, 0x13ab, -0xf02d, 0xc92c, 0x3af6, 0x26c0, 0xe5f8, 0x2de7, 0x18b9, 0xafd8, 0xddbf, 0x15bc, -0xc4d3, 0xf6dc, 0x4b73, 0xf89f, 0x018a, 0x3c4e, 0xdf11, 0xb20d, 0x12d7, 0xf511, -0xbf7e, 0x33aa, 0x286f, 0xe309, 0x3107, 0x1f74, 0xb1c3, 0xe10f, 0x1fd3, 0xc7d4, -0xef6e, 0x4b78, 0xf32f, 0xf8e5, 0x43cb, 0xe7da, 0xaf46, 0x115a, 0xfeb2, 0xbf7a, -0x2e9a, 0x2ed7, 0xde2f, 0x2807, 0x259c, 0xb09f, 0xd3d4, 0x2606, 0xd544, 0xeb3d, -0x5107, 0xfecf, 0xf63f, 0x4304, 0xedfe, 0xae0d, 0x0d7f, 0x0957, 0xc47d, 0x2f62, -0x3b51, 0xdfea, 0x2a01, 0x3390, 0xb825, 0xd3e9, 0x29f1, 0xd82e, 0xe2e3, 0x509a, -0x061c, 0xf530, 0x48b1, 0xf740, 0xabeb, 0x0d93, 0x0ed4, 0xbed0, 0x274e, 0x3e3b, -0xddc2, 0x2168, 0x35a1, 0xbbb0, 0xcedb, 0x2b94, 0xdd5b, 0xdd2d, 0x4e6a, 0x068d, -0xe741, 0x3eef, 0xfe34, 0xad12, 0x0bb7, 0x1a73, 0xbea5, 0x1c31, 0x4269, 0xdc1a, -0x1611, 0x37d6, 0xc048, 0xcaa3, 0x2f7e, 0xe59c, 0xd94c, 0x4ed8, 0x0af6, 0xe225, -0x3c84, 0xfd49, 0xa4b2, 0x048d, 0x1ed5, 0xc496, 0x1caa, 0x4641, 0xddd4, 0x1578, -0x37dc, 0xc13b, 0xcab7, 0x30dc, 0xfec0, 0xd462, 0x1387, 0x07dd, 0x14c1, 0x4b92, -0x0d74, 0xda49, 0x12de, 0x02fe, 0xb8fe, 0xeaae, 0x0363, 0xdab0, 0x23b0, 0x68fb, -0x3681, 0x1351, 0x29fc, 0xf22e, 0xb781, 0xd225, 0xc11d, 0xd7d8, 0x354d, 0x26b8, -0x09af, 0x60fa, 0x5f8c, 0xe302, 0xde80, 0xff6a, 0xbb95, 0xafec, 0x029f, 0x161d, -0x0fee, 0x3924, 0x2b6c, 0x1ed5, 0x24fe, 0xec7b, 0xc1fe, 0xe22b, 0xfbcd, 0xdc4d, -0xf3f7, 0x210f, 0x1d01, 0x1305, 0x1342, 0x1f6c, 0x0852, 0xfea5, 0xdd42, 0xc083, -0xf243, 0xde95, 0xd818, 0x23f7, 0x3eab, 0x0891, 0x1381, 0x52fd, 0xff10, 0xc983, -0xe091, 0xc3b8, 0xcafc, 0xe7d7, 0xfc8d, 0x2043, 0x559d, 0x2c2e, 0x0418, 0x4485, -0x0b4c, 0xb4e5, 0xc68e, 0xddbf, 0xd0b6, 0xdc81, 0x1e4b, 0x2d10, 0x365b, 0x2c50, -0x170a, 0x303e, 0x0a60, 0xcc89, 0xb88a, 0xdbc7, 0xe3e7, 0xcdd2, 0x0b38, 0x3c7e, -0x392b, 0x254c, 0x3272, 0x2fc9, 0xf0ee, 0xd4d8, 0xb5b4, 0xc03b, 0xdef0, 0xd8e9, -0x0edc, 0x533e, 0x46e4, 0x0fc4, 0x358a, 0x34b8, 0xd1c3, 0xbf29, 0xbb64, 0xbeea, -0xdb1c, 0xf31b, 0x17f1, 0x44fa, 0x4bfb, 0x0a36, 0x1fe2, 0x2ce9, 0xcf0d, 0xb605, -0xc6c6, 0xcc96, 0xcf30, 0xf9cd, 0x25fb, 0x36d1, 0x4086, 0x1499, 0x21d8, 0x287f, -0xde77, 0xb0fd, 0xba6d, 0xe0f5, 0xd3e4, 0xee77, 0x3561, 0x4077, 0x2baa, 0x1d38, -0x3753, 0x1587, 0xd2e2, 0xb252, 0xb44b, 0xe5a7, 0xdbb5, 0xe778, 0x3790, 0x55cb, -0x234e, 0x10ab, 0x42e9, 0x083e, 0xc15a, 0xc2a9, 0xbe30, 0xd7d1, 0xe76a, 0xfa22, -0x2b37, 0x53cb, 0x29a6, 0x0950, 0x4086, 0x0f68, 0xbba0, 0xb824, 0xcc9c, 0xd743, -0xd665, 0x06ae, 0x3597, 0x44f1, 0x2854, 0x19d4, 0x3395, 0xfe8f, 0xc1b9, 0xad2d, -0xc39d, 0xde05, 0xd850, 0x0bf2, 0x4266, 0x457f, 0x1d4b, 0x2284, 0x337f, 0xe442, -0xbc43, 0xb8ba, 0xc33a, 0xe0e4, 0xe8f8, 0x10b5, 0x4262, 0x4afc, 0x1744, 0x1d2b, -0x3125, 0xe2b5, 0xbcb6, 0xbdea, 0xccfd, 0xdfe5, 0xefed, 0x1bae, 0x3f5e, 0x451d, -0x167c, 0x1ea7, 0x2848, 0xdf70, 0xbb35, 0xbbfc, 0xd959, 0xe266, 0xec2b, 0x20e3, -0x435c, 0x3878, 0x0fee, 0x25e8, 0x1ba1, 0xdaf0, 0xc061, 0xb76f, 0xdd9c, 0xe727, -0xece4, 0x247e, 0x48ee, 0x303d, 0x099a, 0x320b, 0x19b9, 0xd0b8, 0xc508, 0xbe20, -0xd52c, 0xe430, 0xf5f1, 0x21d1, 0x4aae, 0x3670, 0x0bc4, 0x349a, 0x16c6, 0xc9e1, -0xbb8f, 0xc44e, 0xdbed, 0xde26, 0x03b2, 0x34c9, 0x4689, 0x30a8, 0x17ea, 0x33bd, -0x0b87, 0xcd79, 0xb9b9, 0xc3c1, 0xe227, 0xdffc, 0x07ae, 0x3deb, 0x4732, 0x25e8, -0x1ef9, 0x370f, 0xfb29, 0xcc78, 0xbf32, 0xc5c0, 0xe807, 0xe571, 0x074b, 0x4121, -0x4902, 0x1968, 0x206c, 0x3da5, 0xf467, 0xc9c7, 0xc240, 0xc6d8, 0xe2b1, 0xeca9, -0x0f7d, 0x3a80, 0x4ac1, 0x1bda, 0x1cdc, 0x3836, 0xee35, 0xc32e, 0xc0a2, 0xce3e, -0xdfd7, 0xe9c8, 0x162c, 0x3eb5, 0x48b0, 0x1a61, 0x1e8f, 0x2cf5, 0xe5c6, 0xbb80, -0xb378, 0xd228, 0xe3dd, 0xeba5, 0x2266, 0x46f5, 0x3e1f, 0x13fa, 0x26ea, 0x21ec, -0xd925, 0xbdc7, 0xb66d, 0xd76b, 0xe81e, 0xf025, 0x269d, 0x4d69, 0x3d40, 0x1027, -0x2c58, 0x1cc9, 0xd265, 0xbfd4, 0xbabe, 0xd919, 0xe822, 0xf931, 0x2bc9, 0x4c69, -0x3d20, 0x158d, 0x31ca, 0x1821, 0xce8a, 0xb8af, 0xba0f, 0xdfb6, 0xe677, 0xfd3b, -0x385e, 0x53d9, 0x3764, 0x14a8, 0x30af, 0x0a51, 0xcb95, 0xbad7, 0xbc48, 0xe366, -0xea7e, 0x06cf, 0x3f08, 0x53c7, 0x2fe0, 0x189d, 0x383f, 0x00fd, 0xc5f3, 0xbf0d, -0xc38f, 0xe4a3, 0xecee, 0x0ef5, 0x432c, 0x54a7, 0x2a15, 0x190d, 0x3675, 0xf7bc, -0xc3e0, 0xbc22, 0xc381, 0xe210, 0xec59, 0x15ed, 0x4300, 0x4fd8, 0x269c, 0x1bda, -0x324a, 0xed57, 0xbb9c, 0xb705, 0xceb8, 0xeb30, 0xed72, 0x1baa, 0x48ad, 0x4bd3, -0x1fde, 0x1ea9, 0x2826, 0xe505, 0xc2b3, 0xb577, 0xceec, 0xeeb9, 0xef73, 0x1fd5, -0x4c99, 0x41f7, 0x12c7, 0x24ad, 0x22eb, 0xd504, 0xbfe3, 0xba2a, 0xd063, 0xea6f, -0xf037, 0x1c9c, 0x4acf, 0x430c, 0x0b68, 0x200d, 0x1c9e, 0xcce4, 0xb9ad, 0xbc29, -0xd211, 0xe475, 0xfc21, 0x2910, 0x443b, 0x3a83, 0x0ef1, 0x2295, 0x15ac, 0xd00d, -0xb774, 0xbaff, 0xded3, 0xe41e, 0xf945, 0x331e, 0x49b7, 0x3276, 0x128d, 0x28c7, -0x08f2, 0xce8e, 0xbb2e, 0xb907, 0xe4c0, 0xe9f8, 0xf98a, 0x3323, 0x4a75, 0x2718, -0x0ddc, 0x3369, 0x0795, 0xc936, 0xc192, 0xc3cc, 0xe2b9, 0xe583, 0xfce9, 0x312f, -0x4951, 0x266f, 0x0ffe, 0x3698, 0x0679, 0xca63, 0xc301, 0xc844, 0xde4c, 0xe26e, -0x076e, 0x3283, 0x4507, 0x259a, 0x11af, 0x30ff, 0xfd1c, 0xc1b2, 0xb384, 0xc924, -0xe414, 0xde8f, 0x0781, 0x295f, 0x51b4, 0x5b09, 0x17c9, 0xf17b, 0xd9cd, 0xb11a, -0x8396, 0xbd98, 0x073f, 0x0598, 0x5258, 0x7bf8, 0x3dd3, 0x096d, 0xe7f8, 0xa966, -0x9271, 0xc3c7, 0xb173, 0xf5d9, 0x6db2, 0x3b89, 0x2231, 0x4aaf, 0x1c3b, 0xc115, -0xcb06, 0xd460, 0xbb98, 0x03f6, 0xf9d7, 0xecaf, 0x4aa5, 0x27cf, 0xcf8c, 0x0764, -0x3489, 0xd9cb, 0xf31b, 0x39b5, 0xebc3, 0xeb7f, 0x1192, 0xceee, 0xbd72, 0x16f9, -0x1b5a, 0xf888, 0x4a44, 0x34a8, 0xedd8, 0x18bb, 0xf8d6, 0xa74c, 0xd19c, 0x139c, -0xeaf7, 0x0d0b, 0x5317, 0x0e81, 0x0c44, 0x35bd, 0xe010, 0xb51d, 0x075b, 0xfc77, -0xc9ae, 0x2b95, 0x35a1, 0xf0e8, 0x2c61, 0x2481, 0xc370, 0xe826, 0x20b5, 0xd95a, -0xf832, 0x43e0, 0xf261, 0xf7ef, 0x414e, 0xf14b, 0xbf9e, 0x1c6c, 0x1380, 0xd3d1, -0x2650, 0x1f52, 0xd592, 0x1ddb, 0x2414, 0xc347, 0xebd1, 0x3e70, 0xf240, 0xeb89, -0x3d66, 0xf738, 0xe57b, 0x2fe8, 0xf22d, 0xbd68, 0x1e7b, 0x2466, 0xd858, 0x2613, -0x3122, 0xdc86, 0x16b9, 0x277b, 0xc324, 0xdb13, 0x2c78, 0xe8ab, 0xed0b, 0x49bb, -0x0342, 0xf02a, 0x3b6c, 0xf7d9, 0xb9c6, 0x0fd8, 0x1192, 0xc763, 0x12e5, 0x2738, -0xe26c, 0x1a89, 0x2a72, 0xcd72, 0xdca7, 0x27a9, 0xe962, 0xd98a, 0x271e, 0xf948, -0xe783, 0x29f0, 0x000e, 0xc137, 0x064c, 0x17e6, 0xcd48, 0x0efb, 0x329b, 0xdc50, -0xf9d6, 0x28fd, 0xd866, 0xc34b, 0x13df, 0xefa3, 0xdcbf, 0x3578, 0x09a7, 0xe33f, -0x2c3f, 0x02a6, 0xaa76, 0xf3eb, 0x1870, 0xc21d, 0x029e, 0x3d07, 0xedbb, 0x0a92, -0x33dc, 0xd94f, 0xc985, 0x15a5, 0xdf1c, 0xd3f5, 0x3f5e, 0x0fca, 0xe50f, 0x3b04, -0x1a3d, 0xb99b, 0xf6d1, 0x1c75, 0xcc21, 0x0987, 0x3e95, 0xed51, 0x0dcf, 0x3b32, -0xd980, 0xc6f7, 0x280e, 0xf587, 0xd3c2, 0x4871, 0x233c, 0xe02f, 0x3039, 0x183d, -0xaecf, 0xf137, 0x2776, 0xcc66, 0x0bf0, 0x5162, 0xeddf, 0x088c, 0x4536, 0xd457, -0xb205, 0x2315, 0xf51a, 0xc60d, 0x4281, 0x2682, 0xe5d9, 0x3aad, 0x1cab, 0xb02d, -0xf294, 0x20af, 0xbecb, 0x0084, 0x4c16, 0xeaf2, 0x054e, 0x449f, 0xdf02, 0xbd48, -0x25bf, 0xfda9, 0xcb15, 0x3a93, 0x1e9b, 0xddd4, 0x3408, 0x1f70, 0xb333, 0xf3df, -0x32ab, 0xd133, 0x014e, 0x52b2, 0xf138, 0xfe00, 0x4260, 0xe1f2, 0xbbac, 0x28bf, -0x0404, 0xcc81, 0x4649, 0x2e56, 0xdee8, 0x3677, 0x23ef, 0xabc0, 0xea62, 0x3159, -0xcf59, 0xfdcf, 0x575a, 0xf403, 0xfe40, 0x4759, 0xe094, 0xb225, 0x1ffa, 0xfefc, -0xc26f, 0x3a61, 0x2be1, 0xdb44, 0x2efe, 0x2504, 0xadcb, 0xe074, 0x2713, 0xc6d3, -0xecc2, 0x48d6, 0xea4d, 0xf2ec, 0x43a0, 0xe1fc, 0xaa5f, 0x1825, 0xffd7, 0xba38, -0x2bdb, 0x24a3, 0xce10, 0x1cd8, 0x1cfc, 0xab2e, 0xdc4d, 0x276d, 0xca22, 0xeb01, -0x4a08, 0xeb0e, 0xe94c, 0x3cd7, 0xe45f, 0xa6c6, 0x0f8c, 0x066f, 0xc2d2, 0x2a01, -0x2aea, 0xd9bf, 0x251a, 0x2933, 0xb64d, 0xd9b5, 0x26a1, 0xd2ba, 0xe822, 0x4af1, -0xfec7, 0xf323, 0x3fdf, 0xf78e, 0xb4c1, 0x0f7f, 0x0e1c, 0xc7ce, 0x25fb, 0x3129, -0xdeb5, 0x2268, 0x3385, 0xc266, 0xd9b6, 0x2efc, 0xddb0, 0xe00f, 0x45ac, 0x0168, -0xea8d, 0x3cd9, 0xfeda, 0xb603, 0x13c5, 0x166b, 0xc192, 0x1f5a, 0x3804, 0xda94, -0x15a3, 0x35b3, 0xc729, 0xd3ae, 0x2e68, 0xe359, 0xde70, 0x4764, 0x0725, 0xe6b1, -0x3882, 0xfed4, 0xad23, 0x0819, 0x16c2, 0xc15b, 0x1c91, 0x4358, 0xe49c, 0x1162, -0x35d1, 0xc8f8, 0xc74f, 0x2676, 0xe0e9, 0xd0d7, 0x4b09, 0x1cea, 0xedea, 0x3f3b, -0x11f4, 0xb09a, 0xfc73, 0x177b, 0xba40, 0x109f, 0x4fcb, 0xf285, 0x1d0f, 0x3dc2, -0xc588, 0xc98d, 0x329a, 0xfd8a, 0xcc33, 0x1573, 0x1810, 0x1532, 0x434e, 0x102d, -0xd555, 0x08d4, 0x0011, 0xb77c, 0xec37, 0x098c, 0xd4fc, 0x2033, 0x7926, 0x32be, -0xfe95, 0x28ab, 0xef9c, 0xa428, 0xcffc, 0xcbdf, 0xd07c, 0x3681, 0x2f87, 0x0680, -0x626e, 0x5e9c, 0xd624, 0xd9e4, 0x080a, 0xadfe, 0xa2f5, 0x12af, 0x142c, 0xffde, -0x3703, 0x3570, 0x269e, 0x24fb, 0xe8a1, 0xb7ec, 0xe753, 0xf82a, 0xce4d, 0x001a, -0x2e98, 0x1f84, 0x0eb8, 0x1beb, 0x2603, 0xfcff, 0xfd98, 0xd8c0, 0xc719, 0xfc52, -0xddd2, 0xe3ec, 0x2ee0, 0x4393, 0x042b, 0x1929, 0x569a, 0xef83, 0xc35d, 0xd9e5, -0xc6ce, 0xd1e0, 0xed86, 0x0b2a, 0x23b2, 0x504c, 0x20ad, 0x029d, 0x3b72, 0xf5a5, -0xad6b, 0xbe54, 0xddfc, 0xd162, 0xddcd, 0x2952, 0x324b, 0x3156, 0x1d3f, 0x12f5, -0x235b, 0xf27f, 0xc001, 0xb250, 0xdfdd, 0xe3f3, 0xd455, 0x14e4, 0x3c06, 0x3326, -0x1a60, 0x30e7, 0x24a0, 0xe2c3, 0xcd08, 0xb21c, 0xc75c, 0xdc66, 0xe088, 0x1e09, -0x54ef, 0x4197, 0x0dca, 0x356f, 0x22ce, 0xcaf2, 0xc0ce, 0xbc3d, 0xcfda, 0xe59b, -0xfe5c, 0x27b1, 0x4caa, 0x45a1, 0x0add, 0x274f, 0x1c6c, 0xcde6, 0xc343, 0xd011, -0xdf48, 0xe021, 0x0b0c, 0x335a, 0x3c8e, 0x345d, 0x0d86, 0x278e, 0x1b8f, 0xdc12, -0xbc28, 0xc6ff, 0xead3, 0xdba0, 0xfdee, 0x39b8, 0x3f03, 0x2143, 0x1858, 0x376b, -0x021b, 0xcaa8, 0xbb59, 0xc6f6, 0xef67, 0xe041, 0xf9ba, 0x3cd7, 0x4cfd, 0x168d, -0x1037, 0x3fec, 0xf71d, 0xbed3, 0xc8d6, 0xcbc6, 0xdd8f, 0xea8c, 0x09b1, 0x2e92, -0x4701, 0x1829, 0x091c, 0x3ad7, 0xfd4b, 0xb999, 0xbe68, 0xdc50, 0xdc39, 0xd663, -0x1009, 0x330e, 0x37f3, 0x1ad3, 0x1cca, 0x3476, 0xf66a, 0xc5e8, 0xbb6f, 0xd5e8, -0xe008, 0xd5ea, 0x10b5, 0x3f63, 0x3725, 0x1102, 0x2911, 0x3855, 0xe9cb, 0xc610, -0xc44b, 0xd547, 0xdd89, 0xe4aa, 0x195d, 0x4084, 0x3d9b, 0x10ab, 0x2a1f, 0x3667, -0xe38c, 0xc1a0, 0xc4c5, 0xdd94, 0xe21b, 0xe99c, 0x1f49, 0x4312, 0x3b69, 0x0f14, -0x2b3d, 0x2eaa, 0xdeab, 0xc00a, 0xc634, 0xe225, 0xe0e3, 0xf311, 0x2b9a, 0x44fd, -0x3881, 0x11ee, 0x2f2a, 0x2428, 0xdc87, 0xc347, 0xc2d0, 0xe6e0, 0xe5b0, 0xf196, -0x2d4e, 0x4a97, 0x3366, 0x1388, 0x3ae0, 0x1bf8, 0xd058, 0xc212, 0xc09b, 0xdbf3, -0xe25c, 0xfa1f, 0x3093, 0x4e94, 0x31f0, 0x12fe, 0x3bde, 0x11ad, 0xc841, 0xb8bd, -0xbe0b, 0xdd25, 0xdd7e, 0x0138, 0x3ac9, 0x4ccb, 0x2ba2, 0x1359, 0x3033, 0xfbc6, -0xc14d, 0xb543, 0xbd7e, 0xdcf8, 0xde2b, 0x0754, 0x388b, 0x409a, 0x1e0d, 0x134a, -0x2ba8, 0xeee4, 0xbe5b, 0xafaf, 0xbb90, 0xe059, 0xde74, 0x0736, 0x3d1c, 0x4310, -0x16f1, 0x1686, 0x2f2a, 0xe9de, 0xbe17, 0xb446, 0xc0ca, 0xdd27, 0xe1a0, 0x0ccd, -0x3c13, 0x4661, 0x1949, 0x196a, 0x2a50, 0xdf8d, 0xb6a7, 0xb25a, 0xc8aa, 0xdf0e, -0xe6dc, 0x19c8, 0x411d, 0x423f, 0x15db, 0x1a0d, 0x2316, 0xdf69, 0xba97, 0xb2a9, -0xd092, 0xe29a, 0xebf2, 0x2556, 0x4a3b, 0x3fb1, 0x16cb, 0x2603, 0x1c1b, 0xd67d, -0xbcf3, 0xb765, 0xdad1, 0xea4b, 0xf176, 0x27e4, 0x4d31, 0x3b4c, 0x0fab, 0x2ad5, -0x1a4d, 0xd10b, 0xbc49, 0xba78, 0xda1f, 0xe903, 0xffda, 0x308c, 0x4a2f, 0x38ce, -0x11cc, 0x299c, 0x105c, 0xcdc3, 0xba31, 0xc03e, 0xe616, 0xe849, 0xfec7, 0x37e1, -0x4e98, 0x3198, 0x12d8, 0x2aeb, 0x03e5, 0xcb29, 0xbccb, 0xc232, 0xe734, 0xeb9c, -0x07ed, 0x3d12, 0x4b48, 0x2515, 0x14e8, 0x330c, 0xfd19, 0xc86d, 0xc241, 0xca17, -0xe64b, 0xe918, 0x09ed, 0x3ba3, 0x4eee, 0x25e2, 0x167a, 0x38a6, 0xffcf, 0xcb0e, -0xc615, 0xd055, 0xe3d3, 0xeafc, 0x1602, 0x3e86, 0x49c2, 0x257e, 0x2166, 0x3bcd, -0xfc55, 0xc4ad, 0xbb87, 0xd6e3, 0xe7a1, 0xe64f, 0x1ddd, 0x4682, 0x4516, 0x1dee, -0x1dc5, 0x2b0d, 0xed86, 0xc590, 0xb97d, 0xd84f, 0xec06, 0xe368, 0x1c7f, 0x4cee, -0x3f07, 0x13c3, 0x289d, 0x28fb, 0xdcf0, 0xc5b7, 0xbdb7, 0xd4a7, 0xec46, 0xecd0, -0x1bda, 0x48cc, 0x4019, 0x0cd7, 0x23a7, 0x2698, 0xd5be, 0xbc3e, 0xb90e, 0xcc6c, -0xddf3, 0xf12b, 0x24f1, 0x4448, 0x3b5c, 0x118e, 0x2441, 0x1c2b, 0xd270, 0xb368, -0xb6c7, 0xdd46, 0xdf51, 0xefbb, 0x3138, 0x49d2, 0x3667, 0x1864, 0x2b86, 0x1073, -0xd35e, 0xbbf4, 0xb47a, 0xdfb4, 0xe8bb, 0xf6b2, 0x353a, 0x4fd4, 0x2e9f, 0x12a8, -0x323d, 0x07c8, 0xcb04, 0xc1fa, 0xbd57, 0xdf17, 0xe6e8, 0xfa82, 0x3052, 0x4c63, -0x2d83, 0x12bf, 0x3366, 0x0318, 0xc6dd, 0xbd85, 0xbc4f, 0xd9e1, 0xe604, 0x0814, -0x34df, 0x4a09, 0x2d9d, 0x148f, 0x2e79, 0xfba1, 0xc12c, 0xb277, 0xbf95, 0xdeb7, -0xe211, 0x10bc, 0x423c, 0x4956, 0x24f7, 0x1571, 0x2434, 0xebbb, 0xc333, 0xb587, -0xc733, 0xedc0, 0xebba, 0x0854, 0x3f2e, 0x6f7e, 0x4a81, 0x0e5e, 0x03fe, 0xcb43, -0xa313, 0xa8c3, 0xd5fe, 0x0fe0, 0x3ce3, 0x6922, 0x5cb3, 0x4541, 0x10b8, 0xc5c1, -0xb7c8, 0xca44, 0xca38, 0xd7f7, 0x38e7, 0x4e53, 0x1cb5, 0x3dfb, 0x3d19, 0x06ab, -0xeda0, 0xe9ef, 0xd83d, 0xf9bf, 0x0ebe, 0xca2a, 0x0a79, 0x510e, 0xf01d, 0xe7eb, -0x3be6, 0x1a2e, 0xf989, 0x353e, 0x099c, 0xe538, 0x16d7, 0xd697, 0xa93c, 0x0407, -0x1bee, 0xf75f, 0x46c6, 0x50e3, 0xf430, 0x1813, 0x169b, 0xaf5d, 0xc57c, 0x0fb5, -0xe638, 0xf7e9, 0x459c, 0x122e, 0x0654, 0x352e, 0xfc93, 0xc262, 0xf99c, 0x072c, -0xc8f1, 0x0bf2, 0x32cd, 0xf85b, 0x1790, 0x25c1, 0xde96, 0xd882, 0x18ea, 0xe834, -0xd77c, 0x3995, 0x1231, 0xeab1, 0x28e3, 0x0cfc, 0xc5ef, 0xf7bd, 0x18f1, 0xd03e, -0x057e, 0x320a, 0xe5e4, 0x07c7, 0x2d5d, 0xd88a, 0xc884, 0x2072, 0xfd6c, 0xd3d0, -0x2a59, 0x1066, 0xe564, 0x22a2, 0x047a, 0xb2ee, 0xeaad, 0x1c28, 0xcc6c, 0xf7e5, -0x3c36, 0xee88, 0xfbfb, 0x3085, 0xddf6, 0xb28a, 0x0aaf, 0xf456, 0xbc45, 0x223a, -0x21ed, 0xe31c, 0x2214, 0x1882, 0xb51a, 0xdbdc, 0x18ba, 0xc1ce, 0xe1c3, 0x397c, -0xed39, 0xf426, 0x3690, 0xe68c, 0xb498, 0x0e83, 0x00c5, 0xc494, 0x1ef7, 0x1b31, -0xdc33, 0x1f84, 0x1b7f, 0xb9c1, 0xdc07, 0x2246, 0xd5fb, 0xeaf7, 0x4a41, 0x042a, -0xed8c, 0x29a9, 0xf4c4, 0xbbf5, 0xffbd, 0x02b3, 0xd089, 0x2a98, 0x349a, 0xe5f4, -0x231d, 0x3682, 0xc042, 0xc757, 0x28ee, 0xe56b, 0xda47, 0x3eac, 0x0d7c, 0xfc17, -0x4512, 0x05d1, 0xbb63, 0x0fc8, 0x0da5, 0xb98f, 0x1ecc, 0x3aea, 0xdbbd, 0x1bd6, -0x4041, 0xd007, 0xd35e, 0x2aaf, 0xea38, 0xe711, 0x3e4a, 0xfa47, 0xef65, 0x3f02, -0xf730, 0xae98, 0x0fae, 0x1e19, 0xc953, 0x1ea3, 0x3db2, 0xe20d, 0x1043, 0x2d87, -0xc8ab, 0xca8a, 0x2270, 0xe769, 0xe021, 0x4751, 0x0a42, 0xed5b, 0x468e, 0x0a0e, -0xa823, 0xfc1e, 0x19ce, 0xc19e, 0x0fd8, 0x3c33, 0xe854, 0x1d91, 0x3f3f, 0xd03c, -0xd290, 0x2d60, 0xe292, 0xd443, 0x4229, 0x0590, 0xe446, 0x3c78, 0x0d2e, 0xbba0, -0x0b10, 0x1fdc, 0xccc6, 0x142f, 0x3174, 0xdc18, 0x1061, 0x371b, 0xd368, 0xd200, -0x2d59, 0xf1a5, 0xdc23, 0x3edd, 0x0fb6, 0xe812, 0x2f6f, 0x0a77, 0xb941, 0xfe00, -0x1d36, 0xcc9c, 0x11f2, 0x404a, 0xe70a, 0x0abc, 0x3965, 0xd3be, 0xbed2, 0x1fe7, -0xee09, 0xd03e, 0x3f07, 0x1799, 0xe33b, 0x342f, 0x1443, 0xb44b, 0xf906, 0x1979, -0xbeaf, 0x0a9f, 0x45b3, 0xe73c, 0x0a6f, 0x3e78, 0xd655, 0xc03d, 0x2087, 0xeb0b, -0xcf7a, 0x4395, 0x1915, 0xe1a6, 0x34d0, 0x134e, 0xac96, 0xeeeb, 0x1aa0, 0xc459, -0x0965, 0x4852, 0xe8bd, 0x0151, 0x3569, 0xd16f, 0xb855, 0x1c6f, 0xed54, 0xcabb, -0x428e, 0x1dfb, 0xdf3c, 0x323b, 0x15f0, 0xab84, 0xe597, 0x18a2, 0xc34f, 0x0120, -0x48dd, 0xedf1, 0x07d1, 0x3f6b, 0xd521, 0xb0ac, 0x1903, 0xf0c7, 0xc122, 0x3959, -0x22ad, 0xe010, 0x2ec7, 0x1837, 0xaaf6, 0xe170, 0x1e2b, 0xc7b9, 0xfdb5, 0x4c53, -0xebef, 0xfb34, 0x3ee4, 0xdef9, 0xb297, 0x1b34, 0xfd76, 0xc42a, 0x391e, 0x2b29, -0xde3f, 0x2dc8, 0x2491, 0xb2a5, 0xe544, 0x2b06, 0xcad8, 0xf507, 0x54ba, 0xf673, -0xfa92, 0x48ca, 0xe9a8, 0xafd3, 0x1ef7, 0x084a, 0xc383, 0x3a6e, 0x3354, 0xdbff, -0x2c3f, 0x2b2a, 0xb115, 0xe1c4, 0x348d, 0xd2d5, 0xf3b1, 0x5801, 0xf84b, 0xf5dc, -0x4897, 0xeba9, 0xac5a, 0x1d11, 0x0bb4, 0xbcd7, 0x32ed, 0x3809, 0xdc0a, 0x2aa8, -0x3035, 0xb63c, 0xddf9, 0x3359, 0xe1e6, 0xdc8c, 0x1666, 0xf007, 0x2428, 0x5dbe, -0x00c2, 0xd781, 0x22f0, 0xf405, 0xa1af, 0xed74, 0xf64b, 0xd808, 0x304e, 0x5c2f, -0x2e87, 0x2aaf, 0x32b5, 0xdc5e, 0xbf90, 0xd852, 0xad5b, 0xdde3, 0x38e2, 0x1923, -0x04d1, 0x62c4, 0x5bb8, 0xe529, 0xeaaf, 0xfd61, 0xc422, 0xc0df, 0xfa6b, 0x0d7b, -0x16ff, 0x3f3e, 0x1d78, 0x1a46, 0x3b1d, 0xf55f, 0xc829, 0xeeb5, 0x0157, 0xdd55, -0xf41a, 0x20b5, 0x1533, 0x2329, 0x1f7c, 0x1523, 0x1e43, 0x1419, 0xdc00, 0xbfc2, -0xfbcf, 0xe187, 0xd1ef, 0x2a18, 0x3c8b, 0x1862, 0x2179, 0x4380, 0x06a1, 0xdc67, -0xe0e4, 0xb854, 0xda4e, 0xf2b5, 0xe744, 0x1f54, 0x57ea, 0x2932, 0xfa55, 0x3961, -0x0fd9, 0xbac6, 0xcdda, 0xd258, 0xcf89, 0xe3ab, 0x0707, 0x1a3e, 0x3967, 0x30cc, -0x0264, 0x2d4f, 0x1e6c, 0xcc01, 0xb70b, 0xd1c4, 0xdac0, 0xca7b, 0xfba8, 0x26c2, -0x371b, 0x359b, 0x23c6, 0x2fb4, 0x0da1, 0xd9bd, 0xae9d, 0xb89c, 0xdb61, 0xcb90, -0x0132, 0x482d, 0x42cd, 0x1e49, 0x2e1f, 0x3691, 0xe7fa, 0xc93c, 0xba66, 0xbb0a, -0xe251, 0xe472, 0x0383, 0x3f08, 0x4cc8, 0x1215, 0x1c80, 0x3b71, 0xe4f3, 0xc431, -0xcbb0, 0xc403, 0xd2f9, 0xf12b, 0x1313, 0x2f50, 0x4774, 0x1313, 0x18c4, 0x4058, -0xed5d, 0xb643, 0xc25a, 0xd92a, 0xcdc3, 0xe267, 0x25f0, 0x37bf, 0x38e3, 0x1db0, -0x2909, 0x2dab, 0xe635, 0xb3fb, 0xb52f, 0xe71a, 0xdad1, 0xdbe5, 0x2dd4, 0x4a45, -0x2f11, 0x15fc, 0x375b, 0x1edc, 0xd95e, 0xc7dd, 0xb91d, 0xdb9a, 0xe8d2, 0xea7d, -0x243c, 0x50aa, 0x347a, 0x0b10, 0x3f2c, 0x24ae, 0xc984, 0xc48d, 0xccec, 0xd726, -0xda77, 0xf845, 0x2782, 0x491b, 0x3bb7, 0x1233, 0x3698, 0x200c, 0xcd29, 0xb25f, -0xc2ef, 0xdd85, 0xd457, 0xfe96, 0x3830, 0x43f0, 0x2e94, 0x1a60, 0x3369, 0x07e9, -0xcb4f, 0xb645, 0xba73, 0xdbb8, 0xdb8f, 0xffae, 0x3a33, 0x48d7, 0x2211, 0x15da, -0x362f, 0xfbd5, 0xc39a, 0xb7fb, 0xc2cf, 0xe1cd, 0xe2d2, 0x0604, 0x36c9, 0x495d, -0x209d, 0x15d2, 0x37e6, 0xf91a, 0xc431, 0xbe00, 0xccf7, 0xe3be, 0xe90a, 0x14f8, -0x3bed, 0x4775, 0x22c5, 0x1a55, 0x2eb8, 0xf7ab, 0xcbee, 0xbb0a, 0xd4b7, 0xea3e, -0xe43a, 0x18fd, 0x455e, 0x429e, 0x1d75, 0x27b4, 0x2e04, 0xeadd, 0xca0c, 0xb834, -0xcf7e, 0xebe8, 0xec12, 0x1d2b, 0x4ce6, 0x4388, 0x1410, 0x2882, 0x2863, 0xdbfa, -0xc201, 0xbc64, 0xd1a8, 0xe40d, 0xf23c, 0x21f6, 0x44ac, 0x3ed5, 0x105b, 0x1f33, -0x1ab9, 0xd393, 0xb879, 0xb8a2, 0xd559, 0xdf87, 0xf31b, 0x2555, 0x3b7c, 0x3066, -0x0f9b, 0x206c, 0x1043, 0xd352, 0xb6fe, 0xb4ae, 0xdacb, 0xdd79, 0xed28, 0x2944, -0x40cc, 0x26e3, 0x1073, 0x2c6d, 0x0a8e, 0xd1fe, 0xbe7c, 0xb79c, 0xdbb0, 0xe28f, -0xf1b8, 0x2782, 0x45d6, 0x288a, 0x146e, 0x3752, 0x08d7, 0xccea, 0xc003, 0xbd89, -0xda98, 0xe4f4, 0x0193, 0x3341, 0x4c65, 0x29eb, 0x1665, 0x385c, 0x0502, 0xcaf3, -0xbfdd, 0xc859, 0xe1b4, 0xe85f, 0x0f40, 0x394b, 0x49b1, 0x2907, 0x1adb, 0x324c, -0xf922, 0xc6e9, 0xb961, 0xcbdd, 0xe7b2, 0xe6bd, 0x11f6, 0x3fef, 0x46fb, 0x1df6, -0x1d0f, 0x2f40, 0xeef5, 0xc4a6, 0xb575, 0xcb9f, 0xe637, 0xea22, 0x1afc, 0x450f, -0x486c, 0x1ca2, 0x2081, 0x27c1, 0xe170, 0xbe81, 0xb610, 0xd4bd, 0xe951, 0xed82, -0x22d8, 0x4920, 0x44fd, 0x1967, 0x24be, 0x230d, 0xdd5b, 0xbd48, 0xb2b2, 0xd74f, -0xebd6, 0xf51e, 0x2d0e, 0x4f15, 0x406d, 0x18ea, 0x2d32, 0x1b37, 0xd68b, 0xc044, -0xb935, 0xdd2b, 0xe8ca, 0xf474, 0x309b, 0x54b6, 0x3c42, 0x14ba, 0x347b, 0x1910, -0xd0a8, 0xbcba, 0xb8c9, 0xdc46, 0xe9fe, 0xfff4, 0x3532, 0x5389, 0x3988, 0x14af, -0x3504, 0x102d, 0xc848, 0xb929, 0xbe6f, 0xdd0e, 0xe430, 0x059c, 0x3ba7, 0x4f58, -0x2e33, 0x10f0, 0x2a2f, 0xfdb9, 0xc2f6, 0xafbb, 0xbb99, 0xe4f6, 0xe5f2, 0x07f0, -0x3ce6, 0x4606, 0x2206, 0x1803, 0x2b80, 0xee52, 0xc24f, 0xb46d, 0xbb4a, 0xe32e, -0xe633, 0x0953, 0x4238, 0x4b00, 0x1a28, 0x1723, 0x280d, 0xe191, 0xbf29, 0xb512, -0xbb95, 0xe083, 0xee77, 0x11e1, 0x3d02, 0x4905, 0x18fb, 0x175c, 0x25d3, 0xdaba, -0xb4bd, 0xb51c, 0xcc2b, 0xe1c5, 0xed1f, 0x1d15, 0x42ae, 0x42e0, 0x12aa, 0x15c7, -0x1ce6, 0xdd86, 0xbb2e, 0xb339, 0xd4c6, 0xe6a3, 0xee5c, 0x246d, 0x4599, 0x378a, -0x117f, 0x247f, 0x1587, 0xd40f, 0xc211, 0xba12, 0xda04, 0xe9d2, 0xf097, 0x2593, -0x4a0d, 0x33f2, 0x0e58, 0x2f92, 0x1796, 0xd23e, 0xc5d1, 0xbd1d, 0xd6a8, 0xea03, -0xfd4b, 0x2b76, 0x4d07, 0x372b, 0x12c1, 0x3610, 0x1455, 0xc9fa, 0xc082, 0xc65f, -0xdbf3, 0xe5fa, 0x0864, 0x3695, 0x4d6d, 0x3441, 0x13be, 0x2f2f, 0x090c, 0xce34, -0xb830, 0xc505, 0xfada, 0xec81, 0xfb68, 0x2eba, 0x319e, 0x3ce2, 0x44fb, 0x1d01, -0xdd9d, 0xd66a, 0xb232, 0xa016, 0xf64b, 0xfff6, 0x09d5, 0x7376, 0x8570, 0x20f6, -0xfe82, 0xf200, 0x9a52, 0xa325, 0xc4f5, 0xcbde, 0x2c79, 0x67bb, 0x4c8f, 0x46a8, -0x523c, 0xf79d, 0xabd0, 0xda12, 0xcc15, 0xb71c, 0xf62d, 0x1e60, 0x327a, 0x4b18, -0x2770, 0xf598, 0x157f, 0x094e, 0xbe89, 0xebf7, 0x2a77, 0xf098, 0xe9ee, 0x28e2, -0xf32a, 0xc056, 0x237c, 0x271d, 0xe4a4, 0x3978, 0x35ba, 0xe536, 0x10f5, 0xfdaa, -0xa68b, 0xd3ea, 0x212f, 0xea07, 0x08a6, 0x5e96, 0x0ae2, 0x07c6, 0x37b6, 0xd70c, -0xb092, 0xfe7d, 0xf21a, 0xcad9, 0x34d2, 0x36e9, 0xf083, 0x37da, 0x22a5, 0xbc01, -0xdc00, 0x1395, 0xd553, 0xe5e3, 0x3bac, 0xfd08, 0xfe92, 0x3f5c, 0xee23, 0xbc45, -0x0d39, 0x0a9c, 0xc61a, 0x146f, 0x2951, 0xdb39, 0x171e, 0x293d, 0xc2e7, 0xdd20, -0x32b9, 0xe330, 0xd7b9, 0x3cc5, 0xf7d9, 0xdcad, 0x311b, 0xf1df, 0xb0b8, 0x105b, -0x1a8c, 0xca51, 0x1be5, 0x2f80, 0xd616, 0x11ca, 0x2652, 0xbc4e, 0xcb96, 0x21a7, -0xe4b4, 0xe253, 0x4487, 0x0196, 0xe674, 0x3516, 0xfb04, 0xb3bc, 0xfeb8, 0x1079, -0xc24e, 0x088e, 0x3298, 0xe80b, 0x14c1, 0x2ed3, 0xd1a8, 0xcf82, 0x2207, 0xee50, -0xcf02, 0x2dec, 0x08af, 0xe42a, 0x344d, 0x0fb2, 0xb971, 0xfa3f, 0x1df7, 0xd32e, -0x11cc, 0x3722, 0xda30, 0x07ac, 0x3d3f, 0xd7ab, 0xc34d, 0x271b, 0xfe76, 0xdbb3, -0x3d61, 0x18ed, 0xed9b, 0x3389, 0x0c14, 0xba7c, 0xf987, 0x187e, 0xcd50, 0x1066, -0x476b, 0xf480, 0x1314, 0x42bb, 0xe5fe, 0xc3be, 0x1389, 0xf39f, 0xd575, 0x3648, -0x1e47, 0xf2fa, 0x3e74, 0x234a, 0xbf4c, 0xf288, 0x221b, 0xc710, 0xfa3c, 0x5035, -0xfb9e, 0x0502, 0x44eb, 0xeee6, 0xc43e, 0x1d61, 0xfb1c, 0xc9de, 0x3c74, 0x2aae, -0xe190, 0x3674, 0x2619, 0xaff2, 0xe8b6, 0x2937, 0xc78c, 0xf5df, 0x540b, 0xfb05, -0x020b, 0x434b, 0xe0e6, 0xacc1, 0x10fc, 0xf91d, 0xbcee, 0x3592, 0x3566, 0xe36e, -0x337d, 0x30bf, 0xb32f, 0xd426, 0x2162, 0xc820, 0xe042, 0x4c56, 0xfe46, 0xf61f, -0x4a89, 0xf803, 0xad4d, 0x11a6, 0x0a6c, 0xb6d1, 0x253a, 0x3311, 0xd5a0, 0x2667, -0x3498, 0xb800, 0xd872, 0x2f83, 0xd41e, 0xe4e1, 0x5463, 0xf738, 0xea30, 0x492c, -0xf007, 0xaab2, 0x16ec, 0x11da, 0xc262, 0x2e37, 0x3e3b, 0xdd03, 0x22dd, 0x30e8, -0xb674, 0xd170, 0x2e2c, 0xdcd6, 0xe399, 0x56b9, 0x04f1, 0xea52, 0x4a44, 0xfd31, -0xa60d, 0x09bf, 0x162d, 0xbcc9, 0x1f55, 0x4352, 0xde68, 0x1cd9, 0x3c0d, 0xbf98, -0xc8d8, 0x2a1f, 0xdc64, 0xd503, 0x4d6c, 0x0785, 0xe7a8, 0x476e, 0xff01, 0xa5cd, -0x064f, 0x17bf, 0xbe55, 0x1800, 0x3b7b, 0xd4d9, 0x10f0, 0x3690, 0xbf8d, 0xc71e, -0x297a, 0xe393, 0xd729, 0x47fe, 0x0285, 0xda51, 0x391b, 0xfeb3, 0xa48e, 0xfbc3, -0x19a9, 0xc3a0, 0x108e, 0x3eae, 0xdebc, 0x0f12, 0x36a2, 0xc4c0, 0xbf91, 0x1e2f, -0xe5de, 0xd395, 0x4354, 0x10d5, 0xe319, 0x39c0, 0x0a87, 0xace4, 0xf7d2, 0x18b7, -0xc582, 0x0b6f, 0x3da5, 0xe290, 0x0dde, 0x3c3e, 0xcfe6, 0xc55b, 0x253d, 0xeca1, -0xcf94, 0x3b7a, 0x0f41, 0xdf74, 0x366b, 0x1370, 0xb644, 0xfb14, 0x1f1e, 0xc7c9, -0x07b4, 0x41e9, 0xe70d, 0x071d, 0x3d77, 0xdb66, 0xc478, 0x265f, 0xf916, 0xd180, -0x3ee6, 0x1beb, 0xdeb9, 0x31d9, 0x191a, 0xb479, 0xf52c, 0x2801, 0xccf7, 0x03d4, -0x4bd7, 0xedac, 0x016a, 0x3a65, 0xd6fc, 0xbe27, 0x2266, 0x07f4, 0xd0c6, 0x0dcf, -0x1281, 0x0eb0, 0x45e8, 0x1d9a, 0xd8e3, 0x05c1, 0x084a, 0xb5be, 0xdaec, 0x09a2, -0xe1b9, 0x11ee, 0x6086, 0x43d5, 0x17db, 0x2892, 0xfb50, 0xb60e, 0xc9f7, 0xc054, -0xc68d, 0x23e0, 0x2ffe, 0x062b, 0x4e99, 0x701f, 0xf80e, 0xd329, 0xff2c, 0xcb90, -0xa2d6, 0xed8c, 0x1910, 0x0699, 0x2f80, 0x3089, 0x1d1c, 0x374f, 0x03b2, 0xc14c, -0xd8b6, 0xfb3d, 0xd617, 0xe1a7, 0x22a2, 0x2021, 0x1a55, 0x1dcb, 0x2025, 0x150c, -0x0753, 0xe11c, 0xb5ad, 0xeb4f, 0xe450, 0xcc01, 0x1b1d, 0x3faa, 0x18aa, 0x0e6d, -0x4970, 0x17e5, 0xcba3, 0xd80b, 0xbb23, 0xc5d9, 0xe755, 0xf01c, 0x158e, 0x5028, -0x3e7d, 0xfcdb, 0x3482, 0x21eb, 0xbae5, 0xbfbe, 0xd2fb, 0xcfc4, 0xd821, 0x0aca, -0x27bb, 0x3924, 0x3d1e, 0x0e86, 0x271a, 0x205b, 0xd16c, 0xaf53, 0xc9df, 0xe377, -0xce6f, 0xfa21, 0x34f1, 0x4083, 0x3410, 0x259d, 0x319d, 0x06b6, 0xd9dc, 0xb750, -0xb2df, 0xde42, 0xd8e4, 0xfe96, 0x4970, 0x54f6, 0x25ba, 0x2520, 0x3c2e, 0xedea, -0xc061, 0xba0d, 0xba48, 0xde9c, 0xeb84, 0x0af2, 0x401e, 0x56b2, 0x1aa5, 0x0f66, -0x36cf, 0xe844, 0xb80e, 0xc1dd, 0xc246, 0xcece, 0xe9fe, 0x177a, 0x32d2, 0x4547, -0x1818, 0x0c52, 0x30b6, 0xec12, 0xaf1a, 0xb2f2, 0xcfa8, 0xd2b1, 0xdf9e, 0x2116, -0x3ab2, 0x35ab, 0x1b48, 0x247c, 0x25e1, 0xdedd, 0xb1e5, 0xaf2b, 0xdb4a, 0xe17b, -0xdfc7, 0x27da, 0x4f71, 0x34be, 0x0ed1, 0x2d58, 0x1ef5, 0xd091, 0xc1bb, 0xbe47, -0xd524, 0xeaee, 0xf469, 0x2112, 0x4cf4, 0x3d3e, 0x0aff, 0x304c, 0x281a, 0xcdc7, -0xbbed, 0xd088, 0xe04a, 0xdeea, 0xfee9, 0x2f94, 0x47fc, 0x3dff, 0x1a27, 0x31e9, -0x1deb, 0xd894, 0xbec6, 0xc6e8, 0xe5fc, 0xe340, 0x014d, 0x3cd1, 0x4e2f, 0x32bd, -0x1d0c, 0x372e, 0x0af1, 0xce88, 0xc502, 0xc97d, 0xe495, 0xeb9c, 0x0798, 0x374a, -0x4e4d, 0x2a7e, 0x16b3, 0x3ddd, 0x08ed, 0xc949, 0xc5ee, 0xce08, 0xdf28, 0xe8b7, -0x0fe9, 0x3689, 0x490a, 0x2817, 0x1714, 0x38c1, 0x0109, 0xc527, 0xc1af, 0xd087, -0xdced, 0xe41e, 0x12dc, 0x3476, 0x3cd2, 0x201b, 0x1cbb, 0x2e40, 0xf269, 0xc5fe, -0xb844, 0xcaac, 0xdf7f, 0xe02f, 0x0f09, 0x373a, 0x383b, 0x13eb, 0x21ef, 0x2cbc, -0xe41a, 0xc568, 0xb82e, 0xc319, 0xdca2, 0xe63b, 0x0f93, 0x3ca2, 0x4202, 0x11af, -0x2392, 0x2ac6, 0xd906, 0xb7d3, 0xb715, 0xce35, 0xdb89, 0xef49, 0x2213, 0x3ff6, -0x3f4b, 0x14d9, 0x2398, 0x1f27, 0xd7ab, 0xb866, 0xb50a, 0xd74b, 0xe11e, 0xf58b, -0x2ece, 0x467f, 0x3963, 0x1933, 0x2caa, 0x1426, 0xd5d8, 0xbe81, 0xb620, 0xdf76, -0xe789, 0xf65e, 0x349f, 0x505c, 0x3366, 0x16ea, 0x3646, 0x0f5a, 0xd18a, 0xc1b2, -0xb7f7, 0xdd2a, 0xeb2f, 0xfd79, 0x30f5, 0x516e, 0x31d6, 0x12af, 0x388a, 0x0be7, -0xca82, 0xbdf0, 0xbc89, 0xda3c, 0xe687, 0x06e8, 0x3695, 0x5204, 0x3323, 0x158c, -0x3447, 0x05f1, 0xca02, 0xb88d, 0xc1cf, 0xe381, 0xea5c, 0x110d, 0x40c6, 0x4e27, -0x2a69, 0x1e8c, 0x30b5, 0xf349, 0xc5eb, 0xb6f0, 0xc440, 0xe7cd, 0xebf2, 0x1281, -0x4308, 0x4ce7, 0x1f25, 0x1bf5, 0x2d5c, 0xe897, 0xc291, 0xb85f, 0xc6be, 0xe556, -0xf257, 0x1cc0, 0x442d, 0x4d14, 0x200a, 0x1f36, 0x26a6, 0xdf96, 0xbef2, 0xb898, -0xd0e1, 0xe9a1, 0xf513, 0x2536, 0x486a, 0x4666, 0x1bd4, 0x216e, 0x1a61, 0xd966, -0xbfd6, 0xb46f, 0xd414, 0xeb0f, 0xf5c1, 0x2917, 0x4b03, 0x3b01, 0x120a, 0x279d, -0x127b, 0xce60, 0xc0b2, 0xbaa1, 0xd93a, 0xea16, 0xf79d, 0x29e1, 0x4e28, 0x3952, -0x0c9b, 0x2918, 0x0da3, 0xc8e3, 0xbf5d, 0xbd5b, 0xd7be, 0xe6b5, 0xff78, 0x2bfe, -0x474e, 0x30ea, 0x0afb, 0x2996, 0x09da, 0xc618, 0xb66b, 0xc002, 0xde8f, 0xe009, -0x0068, 0x34b1, 0x479e, 0x290d, 0x1057, 0x2cf4, 0x0037, 0xc901, 0xba19, 0xc161, -0xe4c1, 0xe626, 0x06b7, 0x3bce, 0x46e6, 0x1fc6, 0x1c43, 0x37dd, 0xf4a3, 0xc6e9, -0xc0da, 0xc57a, 0xe45d, 0xe96e, 0x0b68, 0x3e09, 0x4c53, 0x1c9e, 0x1978, 0x350c, -0xec82, 0xc2fd, 0xc069, 0xc683, 0xdf64, 0xee42, 0x1619, 0x39da, 0x4685, 0x1dc8, -0x1c78, 0x2de4, 0xe52f, 0xbb56, 0xb88c, 0xd10f, 0xe424, 0xed39, 0x226e, 0x45c9, -0x4373, 0x1798, 0x1d16, 0x2213, 0xe050, 0xbf9c, 0xb315, 0xd32f, 0xe7c5, 0xec31, -0x23d2, 0x48dd, 0x38f4, 0x0de0, 0x25fc, 0x1996, 0xcef8, 0xbc82, 0xb55a, 0xd59c, -0xe89f, 0xefe0, 0x23a4, 0x4993, 0x37a4, 0x0c32, 0x2be5, 0x17d1, 0xcddd, 0xc07a, -0xb8e9, 0xd329, 0xe54b, 0xfb4e, 0x2cfc, 0x4d3a, 0x3bad, 0x0fee, 0x2b2b, 0x1047, -0xc712, 0xb4f7, 0xbbf0, 0xdc5f, 0xe2f3, 0xfef6, 0x224e, 0x4c36, 0x6c76, 0x2b5c, -0xfa57, 0xe594, 0xbdb1, 0x8b0a, 0xa7ca, 0x0160, 0x0786, 0x400c, 0x8424, 0x5796, -0x1be9, 0xf540, 0xbdf9, 0x9768, 0xc4df, 0xbd3d, 0xdd3d, 0x63d3, 0x4e65, 0x1fea, -0x4e57, 0x38bb, 0xd91b, 0xcd56, 0xe3ad, 0xbffd, 0xfbd6, 0x0607, 0xdb8e, 0x3ccb, -0x4192, 0xd6b0, 0xf73b, 0x42bf, 0xeff1, 0xe330, 0x3dbd, 0xfa84, 0xdccf, 0x13df, -0xde74, 0xb718, 0x0b45, 0x28d2, 0xfb25, 0x3fa0, 0x4276, 0xedb2, 0x1335, 0x0954, -0xadc9, 0xc6fc, 0x1522, 0xf53c, 0xfe45, 0x4b87, 0x18e7, 0x04a7, 0x3412, 0xee3f, -0xb321, 0xfd48, 0x04c9, 0xc508, 0x15a8, 0x372c, 0xeb2f, 0x165c, 0x2ca0, 0xce55, -0xd34d, 0x1c95, 0xe2fd, 0xdd7e, 0x3294, 0xf905, 0xe452, 0x34a4, 0x04d0, 0xbdd7, -0x0a01, 0x1d14, 0xce45, 0x0c02, 0x2888, 0xd716, 0x03dc, 0x2b4a, 0xd5cd, 0xd68c, -0x2ef2, 0xfc10, 0xda6f, 0x316f, 0x0773, 0xda8e, 0x2215, 0x0507, 0xb6f3, 0xfe70, -0x2a5d, 0xd6c8, 0x0b84, 0x4188, 0xe8c4, 0xfdd0, 0x2ec5, 0xd794, 0xc3a2, 0x2279, -0xf779, 0xd09d, 0x423d, 0x27fc, 0xe6f8, 0x2f40, 0x1b5a, 0xbc8b, 0xf157, 0x1fb4, -0xcaa0, 0xfa3a, 0x4232, 0xf922, 0x0ecb, 0x3f09, 0xe3ee, 0xc318, 0x1cef, 0xfdc1, -0xca4c, 0x2a22, 0x20f1, 0xe87d, 0x279c, 0x1afc, 0xbe72, 0xe720, 0x2220, 0xd1d4, -0xf6a7, 0x4e3e, 0xf5f4, 0xecca, 0x3b54, 0xf567, 0xb06f, 0x0a45, 0x0b98, 0xc973, -0x28f0, 0x2f21, 0xdfeb, 0x24a0, 0x2810, 0xaef4, 0xd207, 0x2ab3, 0xcd51, 0xdc82, -0x4ca3, 0xfdde, 0xef82, 0x40ab, 0xf143, 0xac33, 0x082b, 0xfdac, 0xb9b7, 0x28f3, -0x2b71, 0xd054, 0x2723, 0x3651, 0xb6cf, 0xd176, 0x2ba8, 0xd75d, 0xdb92, 0x450f, -0xfd8f, 0xec9c, 0x3e23, 0xf598, 0xaf02, 0x111a, 0x135a, 0xbd2d, 0x2334, 0x3d0a, -0xd3d8, 0x1768, 0x3bb0, 0xbab9, 0xc676, 0x311a, 0xe06f, 0xd889, 0x5018, 0x070b, -0xe756, 0x4942, 0xfd09, 0x9d71, 0x0bcc, 0x1bed, 0xb4ce, 0x1c66, 0x47ec, 0xdc5f, -0x1b74, 0x4238, 0xc481, 0xcf1b, 0x32f5, 0xe1ce, 0xda85, 0x4e4d, 0x0437, 0xe474, -0x4777, 0x07ed, 0xaff9, 0x127d, 0x24cd, 0xc370, 0x199d, 0x3e29, 0xd8bf, 0x14fd, -0x3d8b, 0xc8ea, 0xd1b6, 0x3766, 0xecd3, 0xda6f, 0x4fa7, 0x0ce7, 0xdddd, 0x4019, -0x0c05, 0xaedb, 0x0dbc, 0x2b4c, 0xcdd3, 0x1ddc, 0x470d, 0xe283, 0x1764, 0x40d4, -0xcabb, 0xcd66, 0x3585, 0xf1c2, 0xdda9, 0x4ffb, 0x11e4, 0xe28a, 0x415d, 0x12d2, -0xb486, 0x055e, 0x1fd4, 0xc66e, 0x12ca, 0x417e, 0xe4e2, 0x1229, 0x3e2a, 0xd10c, -0xc800, 0x29e0, 0xed4e, 0xd10c, 0x3fcc, 0x11a3, 0xe1f9, 0x3ad7, 0x16ca, 0xb727, -0x0155, 0x2400, 0xc8c6, 0x0c22, 0x40bf, 0xe1dc, 0x06e9, 0x3e89, 0xd924, 0xc59a, -0x27a2, 0xf22c, 0xcfad, 0x3f51, 0x14cd, 0xda51, 0x2f15, 0x1235, 0xae68, 0xedef, -0x1983, 0xc602, 0x06d9, 0x46e6, 0xe9de, 0x01cd, 0x3928, 0xd470, 0xb512, 0x15ff, -0xec31, 0xc9cd, 0x3f78, 0x243a, 0xe15e, 0x29ed, 0x1245, 0xaba1, 0xe5e9, 0x199e, -0xc296, 0xfe39, 0x4ac5, 0xeb5f, 0xfa56, 0x3c11, 0xd94f, 0xae50, 0x1511, 0xf001, -0xbde3, 0x36c2, 0x230d, 0xd7fe, 0x2c17, 0x1e3a, 0xaa06, 0xe31f, 0x226e, 0xc144, -0xf626, 0x4f4e, 0xeb1e, 0xf4dd, 0x3e8c, 0xdc0a, 0xaf47, 0x1e56, 0xfed8, 0xc48e, -0x3d56, 0x2b0f, 0xd682, 0x2918, 0x1dec, 0xa955, 0xe5bb, 0x2b6b, 0xc9b8, 0xfa77, -0x56f8, 0xf481, 0xfb61, 0x4479, 0xdf2e, 0xabca, 0x1c70, 0xffe7, 0xbc88, 0x3a59, -0x3826, 0xe054, 0x2f4b, 0x2c11, 0xb1dd, 0xe03e, 0x2b29, 0xc998, 0xf18d, 0x59ee, -0xf7ac, 0xf73d, 0x4d8e, 0xed67, 0xb1d8, 0x21a9, 0x1848, 0xccda, 0x07a8, 0xffcd, -0xfa23, 0x5aea, 0x3797, 0xd62f, 0x0ab0, 0x245e, 0xb225, 0xc27c, 0x09d2, 0xd863, -0xfe56, 0x5bb6, 0x4ddb, 0x2aa0, 0x3bda, 0x0b4a, 0xc172, 0xdcc2, 0xc178, 0xb04a, -0x211f, 0x3a69, 0xf99a, 0x3316, 0x7dfa, 0x1afe, 0xd954, 0x046d, 0xdf49, 0xb051, -0xdb3e, 0x09de, 0x0f9f, 0x347e, 0x2f84, 0x0af2, 0x3895, 0x1ade, 0xc5b6, 0xd468, -0xfe63, 0xe6d0, 0xddae, 0x14b5, 0x175e, 0x16c3, 0x1fae, 0x122e, 0x1fcb, 0x16f5, -0xef7f, 0xbe99, 0xdd8a, 0xf61b, 0xc6ce, 0x019a, 0x43c3, 0x2909, 0x1168, 0x39ad, -0x2f76, 0xde14, 0xddd2, 0xc963, 0xbd2a, 0xea45, 0xea62, 0x0266, 0x4616, 0x4e1c, -0x015e, 0x18de, 0x36f6, 0xcf20, 0xb656, 0xd210, 0xd017, 0xd8b3, 0xfb2f, 0x1950, -0x2b27, 0x3c69, 0x095e, 0x0ec5, 0x2d9c, 0xe85e, 0xb75b, 0xc4ac, 0xe1a3, 0xcfe0, -0xdf2a, 0x1a10, 0x3183, 0x376b, 0x1d4c, 0x237d, 0x185c, 0xe4f3, 0xbf7b, 0xab18, -0xcfc2, 0xd346, 0xe11c, 0x2903, 0x45ea, 0x24aa, 0x102b, 0x353d, 0x080f, 0xc677, -0xbdeb, 0xb32e, 0xd477, 0xe331, 0xef66, 0x2325, 0x4c5c, 0x27b3, 0xfaf5, 0x3106, -0x1252, 0xc709, 0xca81, 0xcbe5, 0xd04d, 0xdd4e, 0xfd3c, 0x1a5f, 0x3c21, 0x2935, -0x0252, 0x3750, 0x1e8e, 0xc8e4, 0xb83e, 0xd48f, 0xdc6e, 0xce04, 0x0585, 0x31bc, -0x360a, 0x2009, 0x14c2, 0x394e, 0x10a3, 0xc93d, 0xafa5, 0xd6b1, 0xef04, 0xcd94, -0x0467, 0x48be, 0x4051, 0x1437, 0x1fb5, 0x3cd3, 0xf79e, 0xcc8f, 0xc153, 0xcd1f, -0xeeb7, 0xe37c, 0x03cf, 0x4174, 0x4958, 0x1000, 0x1d3b, 0x4853, 0xf289, 0xbea9, -0xc9e2, 0xd4e7, 0xde7b, 0xe633, 0x1461, 0x3e75, 0x4911, 0x1b5a, 0x2106, 0x4059, -0xf467, 0xbf92, 0xc1f8, 0xd995, 0xdcf6, 0xe0ba, 0x1eb5, 0x4600, 0x4167, 0x1d25, -0x2ef9, 0x3639, 0xe56b, 0xc105, 0xc027, 0xd70a, 0xe1eb, 0xea01, 0x247e, 0x4c66, -0x3f10, 0x14c8, 0x3245, 0x3094, 0xdd32, 0xc132, 0xc147, 0xd9a1, 0xe18c, 0xeeb8, -0x2824, 0x4a69, 0x395c, 0x1015, 0x3040, 0x238d, 0xd48a, 0xc21b, 0xc53b, 0xdc6d, -0xe1ce, 0xf6ef, 0x2ad6, 0x46b7, 0x34da, 0x1114, 0x34eb, 0x1e8c, 0xd361, 0xbe8c, -0xc1c6, 0xe012, 0xdf71, 0xf81f, 0x3359, 0x4a06, 0x2d71, 0x1454, 0x38da, 0x0f58, -0xccf4, 0xbea1, 0xbbb5, 0xdb25, 0xe2c4, 0xfd77, 0x3627, 0x5121, 0x2c35, 0x15a0, -0x3989, 0x0018, 0xc03f, 0xbaf5, 0xc3cd, 0xe02b, 0xe6c9, 0x0e3d, 0x3eb5, 0x4d58, -0x26cb, 0x1318, 0x2fe0, 0xf891, 0xc27d, 0xb828, 0xc71e, 0xe21d, 0xe699, 0x15c5, -0x4058, 0x45ef, 0x2262, 0x1985, 0x28bc, 0xeca7, 0xc32c, 0xb7e4, 0xcfc1, 0xea07, -0xe4ac, 0x173a, 0x461c, 0x3eba, 0x15fa, 0x2087, 0x2703, 0xe29a, 0xc4b3, 0xb600, -0xc8f7, 0xe687, 0xe9ba, 0x15c4, 0x426b, 0x3e74, 0x0edd, 0x1f75, 0x23b8, 0xd925, -0xc0ab, 0xba1f, 0xcb2d, 0xe095, 0xeca2, 0x1990, 0x40e5, 0x3c5d, 0x1023, 0x24d2, -0x1ebd, 0xd280, 0xbab7, 0xba30, 0xd226, 0xe0d0, 0xf39a, 0x22d6, 0x4063, 0x34fc, -0x0f3b, 0x2825, 0x190f, 0xd310, 0xbcd9, 0xbd2e, 0xd80b, 0xdd5a, 0xf3ce, 0x2b22, -0x4783, 0x32fb, 0x13a4, 0x3361, 0x1484, 0xcf84, 0xc067, 0xc184, 0xdb6a, 0xe3e8, -0x0230, 0x3122, 0x4768, 0x320a, 0x16c1, 0x3427, 0x0aed, 0xc9bb, 0xba81, 0xc328, -0xe12c, 0xe1e3, 0x07e1, 0x3ec1, 0x4f67, 0x2ddc, 0x15f0, 0x2f32, 0xfe24, 0xc964, -0xbbfd, 0xc754, 0xe848, 0xe9ef, 0x1196, 0x41b3, 0x4b5f, 0x2760, 0x1f91, 0x35ce, -0xf3d5, 0xc722, 0xbfad, 0xcade, 0xe85a, 0xeaa5, 0x1660, 0x4809, 0x4c60, 0x1f11, -0x212f, 0x36b0, 0xefd1, 0xc764, 0xbc28, 0xc837, 0xe455, 0xec50, 0x1c88, 0x4b3c, -0x4de3, 0x2041, 0x28c6, 0x32d7, 0xe1ea, 0xbea7, 0xbd29, 0xd1a9, 0xe60c, 0xf02d, -0x2433, 0x4c51, 0x4811, 0x1816, 0x23ce, 0x292b, 0xdf35, 0xbcec, 0xb6b3, 0xd50d, -0xe49a, 0xee6a, 0x2b0c, 0x4b27, 0x39f9, 0x15f5, 0x29d8, 0x1859, 0xd36e, 0xc04c, -0xb5ab, 0xd4b0, 0xe461, 0xec0c, 0x2803, 0x4fb2, 0x371f, 0x0f49, 0x2de8, 0x1063, -0xc7dd, 0xbbcc, 0xb195, 0xcdad, 0xe2b5, 0xf6ed, 0x29d0, 0x4ac5, 0x31e4, 0x0aa9, -0x2acb, 0x0735, 0xbe72, 0xb39c, 0xb620, 0xd1d9, 0xdc5c, 0xfcdd, 0x307a, 0x46be, -0x2c7c, 0x0a2b, 0x22ab, 0xfca8, 0xc0ac, 0xafc4, 0xb815, 0xde74, 0xe13f, 0x0269, -0x370e, 0x4107, 0x21c4, 0x13c8, 0x26a3, 0xf061, 0xc3ac, 0xb5ad, 0xbbea, 0xe2b6, -0xe314, 0x03cd, 0x3a8a, 0x453e, 0x1c0b, 0x167a, 0x2afd, 0xe8ae, 0xc330, 0xbb1d, -0xbd71, 0xdff6, 0xea8c, 0x0cd6, 0x3cc1, 0x4b59, 0x1e08, 0x1762, 0x288a, 0xe327, -0xbcf5, 0xbc04, 0xcc41, 0xe3b8, 0xf214, 0x1f63, 0x40b7, 0x4556, 0x1932, 0x14e9, -0x22d4, 0xe5af, 0xc176, 0xbaf1, 0xd516, 0xeaa3, 0xed1a, 0x10a5, 0x4490, 0x6d0e, -0x387d, 0x06ad, 0xf979, 0xc011, 0x9e3c, 0xad92, 0xe582, 0x1234, 0x4531, 0x6a71, -0x4d3b, 0x3443, 0xfe14, 0xbf35, 0xb76f, 0xcbe7, 0xc8b4, 0xe9aa, 0x501f, 0x43d8, -0x1d18, 0x4560, 0x2e0d, 0xf4de, 0xea75, 0xe7b7, 0xd73f, 0x0fdc, 0x11cd, 0xd145, -0x29c3, 0x44d4, 0xdad6, 0xf4f0, 0x3e51, 0x092e, 0x07b6, 0x43ce, 0xfd5a, 0xf591, -0x1f19, 0xc2ea, 0xb2d7, 0x198e, 0x140f, 0xfa53, 0x5e12, 0x4564, 0xf1ae, 0x2e33, -0x0b49, 0xa4bb, 0xdaed, 0x1485, 0xdc90, 0x0cbf, 0x4f0d, 0x0854, 0x15b5, 0x3b75, -0xe6b5, 0xbe4e, 0x0981, 0xfc23, 0xc6c6, 0x22a2, 0x2984, 0xf1db, 0x27f9, 0x1ab0, -0xc60e, 0xe49e, 0x21a8, 0xd681, 0xe953, 0x41f4, 0xf337, 0xeb9d, 0x3560, 0xf514, -0xbd12, 0x135a, 0x1144, 0xc99f, 0x21e0, 0x2271, 0xd155, 0x1a35, 0x25a3, 0xbec7, -0xdc7d, 0x31ed, 0xe802, 0xe46d, 0x3ef6, 0xfc72, 0xeb7d, 0x2fc5, 0xecf1, 0xb132, -0x0d6d, 0x171d, 0xcaf3, 0x20be, 0x36cd, 0xdeff, 0x1430, 0x2c97, 0xc49c, 0xcab8, -0x247c, 0xe2b5, 0xd3f1, 0x3d93, 0x0c22, 0xee37, 0x3907, 0x01ea, 0xb32c, 0x07e5, -0x153f, 0xb7d0, 0x0a61, 0x333d, 0xdb8a, 0x1138, 0x3892, 0xcfca, 0xccd1, 0x2831, -0xeb12, 0xd73f, 0x357e, 0xfe1d, 0xe21b, 0x300a, 0xfded, 0xaf91, 0xffaf, 0x1ba1, -0xc5b1, 0x0c52, 0x3c73, 0xe33f, 0xfac8, 0x2338, 0xd7bc, 0xc7f4, 0x0f99, 0xe739, -0xd9e0, 0x3980, 0x0e6d, 0xe382, 0x335e, 0x15f9, 0xae82, 0xe698, 0x1c86, 0xca1d, -0xf6f1, 0x34d2, 0xf14d, 0x0fec, 0x3c9a, 0xdef1, 0xc8df, 0x20f3, 0xea68, 0xc50a, -0x33ef, 0x1185, 0xd7d4, 0x2ebc, 0x2178, 0xc1c1, 0xf72b, 0x2354, 0xd2eb, 0x0168, -0x30db, 0xe0a6, 0x05a6, 0x3bad, 0xdc09, 0xc45f, 0x276d, 0xfd11, 0xcf0a, 0x363e, -0x204b, 0xe4d0, 0x2851, 0x199c, 0xbc3c, 0xe9df, 0x1c38, 0xcf05, 0x03b3, 0x4c0e, -0xf6ee, 0x068d, 0x44a0, 0xe3e0, 0xb163, 0x17fa, 0xfdee, 0xc709, 0x37cd, 0x2e63, -0xea1c, 0x3531, 0x2ca0, 0xbf9e, 0xeeec, 0x2b06, 0xc5f7, 0xf1c8, 0x5385, 0xfc84, -0x0002, 0x49cb, 0xf52b, 0xbfbf, 0x204d, 0x04c6, 0xc649, 0x35e9, 0x30b9, 0xe658, -0x31b2, 0x2cb7, 0xb96b, 0xe5a8, 0x2f24, 0xd410, 0xf6ab, 0x5771, 0x04b9, 0xfc36, -0x3ec2, 0xecd7, 0xb28a, 0x1904, 0x0954, 0xc24d, 0x3764, 0x3ade, 0xddf2, 0x29ce, -0x3445, 0xb4d5, 0xd352, 0x2d79, 0xd037, 0xe09a, 0x535a, 0x01a5, 0xf095, 0x48ef, -0xf767, 0xa8aa, 0x11b3, 0x097b, 0xb15c, 0x2a36, 0x3db4, 0xd6cd, 0x24b8, 0x3712, -0xb430, 0xcdb4, 0x2b60, 0xd3aa, 0xe09b, 0x53eb, 0xfc4a, 0xea6b, 0x4b2a, 0xf90e, -0xa8c8, 0x1124, 0x129b, 0xbaac, 0x269d, 0x4030, 0xda96, 0x20e1, 0x3a2e, 0xbd1c, -0xd0d8, 0x3158, 0xdd88, 0xdee5, 0x57dc, 0x0a22, 0xeb70, 0x4be8, 0x027e, 0xa602, -0x0680, 0x1714, 0xbfed, 0x242e, 0x47b1, 0xe011, 0x1d8e, 0x3eca, 0xc029, 0xc616, -0x2e06, 0xe28f, 0xd4aa, 0x4f9e, 0x0f06, 0xe649, 0x438d, 0x0564, 0xa6f1, 0x02f6, -0x1bd3, 0xc020, 0x18b7, 0x4204, 0xd71b, 0x0fc8, 0x3e52, 0xc2b8, 0xbf78, 0x2bd7, -0xe6d3, 0xce7b, 0x47d7, 0x0a5d, 0xd7d4, 0x39c7, 0x074e, 0xa273, 0xfc77, 0x1fef, -0xbcf9, 0x0cec, 0x426a, 0xd4f2, 0x044f, 0x3d93, 0xc6ea, 0xbcdf, 0x2bd1, 0xed0b, -0xce10, 0x43d0, 0x0ca2, 0xd5d2, 0x35c4, 0x0c15, 0xa646, 0xfa2d, 0x2097, 0xc0dd, -0x0c2b, 0x439b, 0xdc9c, 0x059f, 0x3b30, 0xca4a, 0xbbcb, 0x2337, 0xe7a3, 0xc717, -0x3dae, 0x1491, 0xdc09, 0x3229, 0x0f3e, 0xac38, 0xf62a, 0x25d7, 0xcda9, 0xe86a, -0x0ccd, 0xe87d, 0x2a51, 0x46ee, 0xea42, 0xe40d, 0x22b1, 0xd631, 0xa84b, 0xf868, -0xe4f9, 0xdc35, 0x395d, 0x50be, 0x1fd6, 0x25ac, 0x1e57, 0xc641, 0xc358, 0xd0f2, -0xac56, 0xf1aa, 0x385d, 0x08e0, 0x0c0c, 0x6c90, 0x3d9a, 0xd534, 0xf575, 0xf32f, -0xb660, 0xc715, 0x00c3, 0x060a, 0x1cc0, 0x3bee, 0x0fef, 0x2648, 0x390e, 0xe520, -0xcaa4, 0xfc07, 0xfa8c, 0xcfc3, 0xff3b, 0x2146, 0x0eaa, 0x22f7, 0x21eb, 0x22a5, -0x2b3f, 0x140f, 0xd035, 0xce0d, 0x018b, 0xcdfd, 0xe402, 0x4024, 0x35a0, 0x11b4, -0x30f7, 0x48c6, 0xfc36, 0xe429, 0xd9e4, 0xb819, 0xe9ae, 0xecf6, 0xeaac, 0x339b, -0x5af6, 0x18c2, 0x0a7d, 0x49f9, 0xfaf8, 0xba8d, 0xd5ae, 0xd0dc, 0xd43b, 0xee6d, -0x117b, 0x23d1, 0x46ee, 0x29ad, 0x0339, 0x3a96, 0x1314, 0xc110, 0xbad0, 0xd9cf, -0xd706, 0xcd74, 0x0d91, 0x315e, 0x3f9c, 0x359b, 0x2190, 0x2aef, 0x0433, 0xcdb2, -0xa574, 0xc711, 0xe12e, 0xcf40, 0x197f, 0x5324, 0x3d77, 0x20a5, 0x375c, 0x2d03, -0xe262, 0xca54, 0xb0b0, 0xc640, 0xed6e, 0xe3a9, 0x14a7, 0x559a, 0x4789, 0x0af5, -0x2c0d, 0x3078, 0xd574, 0xc8f1, 0xc60c, 0xc4a3, 0xddbb, 0xf434, 0x12bf, 0x3a4f, -0x46b5, 0x0de9, 0x28f8, 0x3a3e, 0xd862, 0xb36e, 0xc4b9, 0xd290, 0xcc9e, 0xf150, -0x28e5, 0x36b7, 0x3727, 0x1942, 0x296a, 0x1f3b, 0xd304, 0xaa50, 0xb7e0, 0xe064, -0xcd60, 0xe774, 0x36d2, 0x4354, 0x256f, 0x16b9, 0x32a9, 0x04e9, 0xc94b, 0xbd89, -0xb4e8, 0xde63, 0xe6b3, 0xefc2, 0x2c99, 0x4d30, 0x244c, 0x0dd9, 0x4013, 0x0a25, -0xbf81, 0xc647, 0xc8d3, 0xd098, 0xddd7, 0x0729, 0x2f46, 0x49fe, 0x3186, 0x11dd, -0x33c9, 0x0a1a, 0xc455, 0xb4fe, 0xcbf9, 0xe01f, 0xd9c3, 0x0d63, 0x3ca9, 0x40e4, -0x2597, 0x1f85, 0x2fee, 0xf6c7, 0xc763, 0xb733, 0xcbd2, 0xe734, 0xe337, 0x11ef, -0x4379, 0x4377, 0x1865, 0x216c, 0x32c8, 0xee0c, 0xca47, 0xc04a, 0xd076, 0xe70b, -0xebed, 0x16a9, 0x3f81, 0x44ae, 0x16f6, 0x2266, 0x31f0, 0xe6d6, 0xc30d, 0xc333, -0xd87e, 0xe495, 0xf14b, 0x1f91, 0x3ab4, 0x3a37, 0x1822, 0x291b, 0x2bcf, 0xea2c, -0xc762, 0xbf57, 0xdd08, 0xe181, 0xec7b, 0x28f2, 0x456d, 0x366d, 0x1d72, 0x3891, -0x2266, 0xe229, 0xcd55, 0xbe26, 0xdad8, 0xe6b2, 0xf1ad, 0x2a59, 0x4ce7, 0x346f, -0x18da, 0x3eb3, 0x1a5c, 0xd0e6, 0xc45c, 0xbfe1, 0xd4d3, 0xe11f, 0x014a, 0x2f81, -0x4863, 0x3408, 0x1268, 0x31f4, 0x0ec8, 0xca3c, 0xb9fc, 0xc1dc, 0xdd52, 0xe093, -0x05ff, 0x33c3, 0x43d7, 0x2da7, 0x1671, 0x2bf0, 0x0034, 0xc97d, 0xb0c3, 0xbe5e, -0xe43b, 0xdb68, 0x0387, 0x3ae6, 0x3ee7, 0x1b43, 0x174b, 0x2d76, 0xf26e, 0xc68d, -0xb289, 0xbb76, 0xe0fe, 0xde57, 0x0305, 0x3b0e, 0x44f7, 0x17e8, 0x1ae0, 0x2e9e, -0xe6b9, 0xc23e, 0xb5b3, 0xbe35, 0xde8a, 0xe55c, 0x0e04, 0x3e2d, 0x4749, 0x1891, -0x1cce, 0x2c46, 0xe31a, 0xbc10, 0xb2be, 0xc7d4, 0xe1b0, 0xec58, 0x1b5f, 0x42a4, -0x4577, 0x18af, 0x206d, 0x2610, 0xe0cf, 0xbee7, 0xb63b, 0xd3ec, 0xe4ab, 0xed6c, -0x253f, 0x4a99, 0x42a8, 0x18da, 0x2a90, 0x2130, 0xd967, 0xc013, 0xb623, 0xd3d0, -0xe7d4, 0xf7c7, 0x2d1b, 0x4df4, 0x3dfe, 0x18d3, 0x2e94, 0x12e1, 0xceb7, 0xbc8b, -0xb721, 0xd9e6, 0xe7b6, 0xfe42, 0x37c7, 0x5256, 0x3916, 0x14fa, 0x2b19, 0x0829, -0xcbbc, 0xbc11, 0xba4e, 0xe0c8, 0xec3c, 0x04ba, 0x39d7, 0x4f48, 0x314f, 0x1b2a, -0x320f, 0xfbd4, 0xc7ad, 0xbe46, 0xbcb0, 0xdfec, 0xea9d, 0x0a76, 0x3eae, 0x51ce, -0x28b8, 0x15c7, 0x32b1, 0xf736, 0xc436, 0xbbe2, 0xc2bd, 0xe357, 0xecf4, 0x10c4, -0x40f6, 0x524e, 0x25cd, 0x19ce, 0x301e, 0xec1e, 0xbc6a, 0xbace, 0xd1d8, 0xe825, -0xec23, 0x1b1b, 0x4400, 0x482a, 0x1bce, 0x1896, 0x260d, 0xe7f6, 0xc325, 0xb5e4, -0xd101, 0xeabf, 0xea0d, 0x1d52, 0x47b3, 0x3cf0, 0x1282, 0x235d, 0x2050, 0xd9ae, -0xc4d9, 0xb970, 0xd086, 0xe87d, 0xea86, 0x1b23, 0x48b1, 0x3c02, 0x0e92, 0x2cb2, -0x2472, 0xd2cb, 0xbff8, 0xbc43, 0xce22, 0xe2d3, 0xf745, 0x2364, 0x47bb, 0x3e11, -0x1209, 0x2f53, 0x1fb0, 0xcfac, 0xba0d, 0xbeea, 0xd8e3, 0xde1c, 0xf854, 0x2f24, -0x49ea, 0x387f, 0x14be, 0x2de7, 0x1304, 0xd01b, 0xb948, 0xbc56, 0xe0d1, 0xe484, -0xff93, 0x3655, 0x488a, 0x2bf5, 0x16ba, 0x3637, 0x07aa, 0xcf32, 0xc24d, 0xc063, -0xe449, 0xe713, 0x01e8, 0x3b25, 0x4f83, 0x26c5, 0x1640, 0x3ab8, 0xff8c, 0xc83c, -0xbf7c, 0xc052, 0xdf32, 0xe807, 0x09ef, 0x390f, 0x4d01, 0x25f5, 0x19b1, 0x3685, -0xf201, 0xbb2e, 0xb561, 0xc59a, 0xdeac, 0xe81d, 0x110d, 0x2f0d, 0x5faf, 0x5bc4, -0x12fe, 0xf615, 0xda50, 0xa9ae, 0x886f, 0xcd18, 0x0718, 0x09f1, 0x5bb7, 0x7af7, -0x3e15, 0x0a73, 0xe799, 0xa715, 0x9c71, 0xc971, 0xb0a1, 0x07a7, 0x6f82, 0x3163, -0x2a82, 0x5398, 0x14c9, 0xbfc2, 0xd8b3, 0xd540, 0xc5ce, 0x0fda, 0xf099, 0xf1a7, -0x518e, 0x1c60, 0xcd84, 0x19da, 0x35b8, 0xd346, 0x03a1, 0x377b, 0xdf14, 0xefc5, -0x0c59, 0xc206, 0xc448, 0x2196, 0x11ee, 0xfe70, 0x4f48, 0x1fa8, 0xeb2d, 0x1d5b, -0xeaf2, 0x9f51, 0xdaef, 0x10e0, 0xe2b8, 0x140e, 0x4a7c, 0x0548, 0x11c6, 0x2b5c, -0xd063, 0xb9e9, 0x0c49, 0xee9f, 0xcd6b, 0x32da, 0x2204, 0xe702, 0x2c36, 0x195d, -0xbc4d, 0xef56, 0x1ea6, 0xd1a8, 0xfb24, 0x33f8, 0xe2fa, 0xffb5, 0x3ccd, 0xe4cb, -0xca25, 0x2563, 0x0355, 0xd2da, 0x2bb0, 0x137a, 0xd6ec, 0x2218, 0x1b95, 0xc3b7, -0xf854, 0x3722, 0xe6e8, 0xf671, 0x3596, 0xec18, 0xf030, 0x2d9c, 0xe6e7, 0xc2e9, -0x26d5, 0x1a49, 0xd733, 0x2bbd, 0x26a1, 0xdab2, 0x1ba0, 0x23f0, 0xc355, 0xe703, -0x2bce, 0xdc49, 0xf190, 0x496d, 0xfc6e, 0xf386, 0x3dfc, 0xf7e9, 0xbcff, 0x1444, -0x0996, 0xc579, 0x1fc6, 0x2a9c, 0xe722, 0x261f, 0x2af6, 0xc74c, 0xe3b8, 0x2a8b, -0xe105, 0xe8c4, 0x3bef, 0xfd9f, 0xefc2, 0x313f, 0xf888, 0xbeed, 0x0f0d, 0x10ba, -0xcf13, 0x2814, 0x3a0d, 0xdf51, 0x0dca, 0x2f8f, 0xccfa, 0xc831, 0x1d1f, 0xe940, -0xe8cf, 0x4a93, 0x0d52, 0xef83, 0x3c76, 0xfaba, 0xa5dd, 0x0126, 0x112f, 0xbdc7, -0x1a61, 0x422a, 0xe9fb, 0x1b1a, 0x3694, 0xc9c9, 0xce2b, 0x1ef2, 0xd732, 0xdc7b, -0x46da, 0xff7f, 0xe9fc, 0x46e1, 0x05ac, 0xaeb6, 0x0663, 0x159d, 0xc012, 0x1316, -0x34ba, 0xdd94, 0x12fd, 0x31f6, 0xc596, 0xcbff, 0x2ae2, 0xe4d5, 0xd6c1, 0x4927, -0x0b3d, 0xdd77, 0x3926, 0x07d1, 0xa2d2, 0xfb2e, 0x211d, 0xc317, 0x1769, 0x4b14, -0xe280, 0x1326, 0x411c, 0xc1e2, 0xbac5, 0x2cf6, 0xe603, 0xcb4b, 0x4ed8, 0x191b, -0xe401, 0x458d, 0x1545, 0xac87, 0x005f, 0x1e4a, 0xba9b, 0x0cc0, 0x467e, 0xe1cf, -0x11da, 0x478e, 0xd350, 0xc70d, 0x31c1, 0xf201, 0xce1e, 0x434c, 0x12d6, 0xdd0b, -0x3986, 0x1337, 0xaf6d, 0x006c, 0x2ca7, 0xc8ff, 0x0c23, 0x4bde, 0xe11d, 0x0318, -0x41ef, 0xd0e5, 0xbd29, 0x3042, 0xf8a0, 0xd014, 0x4ad2, 0x1b53, 0xda3d, 0x3aa3, -0x14be, 0xa4bb, 0xf7a1, 0x2b27, 0xc43a, 0x0948, 0x507e, 0xe296, 0x0297, 0x45db, -0xd510, 0xb990, 0x273a, 0xf430, 0xc750, 0x3f4c, 0x1a85, 0xdb6a, 0x3993, 0x1ab4, -0xadf3, 0xf5f6, 0x280d, 0xc5fc, 0xfe8a, 0x4668, 0xe58d, 0x011c, 0x457a, 0xdfc7, -0xbebe, 0x255e, 0xfae1, 0xcb02, 0x3a3a, 0x1b49, 0xd635, 0x2c90, 0x1a6d, 0xb0f1, -0xf0b7, 0x2851, 0xcb11, 0xfd3b, 0x4815, 0xe902, 0xf73a, 0x3af3, 0xde3a, 0xb633, -0x1a27, 0xfae7, 0xc8e7, 0x3373, 0x1efa, 0xdab3, 0x2af8, 0x1f54, 0xb3a4, 0xe5bd, -0x2010, 0xc657, 0xef33, 0x4332, 0xf32a, 0xf8bc, 0x3a43, 0xe716, 0xb380, 0x1025, -0xf94b, 0xbff8, 0x2cbe, 0x2722, 0xd958, 0x2238, 0x24de, 0xb4e0, 0xd8e0, 0x219f, -0xcbf4, 0xec3e, 0x4cc4, 0xf5db, 0xee65, 0x3cb1, 0xe88f, 0xad6b, 0x15fb, 0x0312, -0xbe65, 0x3207, 0x3441, 0xd731, 0x1ee6, 0x2923, 0xb321, 0xd7af, 0x26e1, 0xce3a, -0xeb73, 0x52d6, 0xfb3a, 0xed11, 0x3fa2, 0xeb93, 0xa537, 0x0fde, 0x078b, 0xbcc7, -0x2dd2, 0x39bf, 0xde73, 0x2216, 0x2ba5, 0xb204, 0xd113, 0x2873, 0xd059, 0xe433, -0x5331, 0x00f5, 0xede6, 0x41c9, 0xf3f8, 0xaa8c, 0x0f24, 0x06be, 0xb5e6, 0x29e9, -0x39f4, 0xda5d, 0x25b6, 0x2b84, 0xb07f, 0xd942, 0x36fe, 0xe8ec, 0xcdd1, 0x1733, -0x0849, 0x1aa1, 0x4558, 0xfb48, 0xd3ef, 0x11bd, 0xef48, 0xb142, 0xf697, 0xfdea, -0xd64a, 0x32a6, 0x6fed, 0x25f8, 0x0b17, 0x2a5c, 0xdff3, 0xaef4, 0xd4ec, 0xbcba, -0xe25d, 0x44cb, 0x234b, 0x1321, 0x73ba, 0x4da9, 0xced4, 0xe817, 0x007f, 0xa908, -0xb5df, 0x1df6, 0x1875, 0x0e2c, 0x3ec1, 0x2fcd, 0x272d, 0x2290, 0xe25c, 0xc07e, -0xf134, 0xfb4d, 0xd6f2, 0x0ad3, 0x3447, 0x223c, 0x13f1, 0x2272, 0x269f, 0x025a, -0x0161, 0xd722, 0xd224, 0x0308, 0xde38, 0xef78, 0x3c18, 0x42ed, 0x0555, 0x290a, -0x5400, 0xe6be, 0xca2d, 0xdae9, 0xc68f, 0xd7d0, 0xf47c, 0x10ed, 0x3184, 0x5941, -0x1cf6, 0x0891, 0x3a35, 0xeb6f, 0xae39, 0xc817, 0xe6f7, 0xd6ef, 0xebb0, 0x3372, -0x35f1, 0x34dd, 0x1e90, 0x16f7, 0x21a1, 0xf074, 0xc287, 0xb8c4, 0xe82d, 0xe6eb, -0xdb90, 0x1e19, 0x40af, 0x3208, 0x1a9a, 0x320f, 0x1b9a, 0xdeff, 0xcf46, 0xb4a3, -0xcbd7, 0xdf68, 0xe59a, 0x22fe, 0x55b5, 0x3892, 0x0be2, 0x396b, 0x1a98, 0xc635, -0xc146, 0xc092, 0xd361, 0xe7eb, 0x0383, 0x2879, 0x4c6a, 0x3c0d, 0x05ca, 0x2976, -0x14a9, 0xc798, 0xc116, 0xd2d8, 0xdd50, 0xdcd3, 0x0b09, 0x2bce, 0x3653, 0x2ab8, -0x0a52, 0x2aa9, 0x14b7, 0xd401, 0xb890, 0xcc60, 0xea88, 0xd5e4, 0xfe7d, 0x383b, -0x3ade, 0x1b88, 0x1ad7, 0x3ed1, 0x075f, 0xcd9c, 0xbbc4, 0xcbe8, 0xeb85, 0xd822, -0xfbc3, 0x3e44, 0x459b, 0x10ea, 0x17ee, 0x43df, 0xf7f9, 0xc0a0, 0xc419, 0xcf1f, -0xdea4, 0xe05f, 0x0678, 0x330f, 0x42d4, 0x111c, 0x0fba, 0x3f57, 0xf9a8, 0xb669, -0xbe1b, 0xe146, 0xdd9a, 0xd4be, 0x11a3, 0x389d, 0x37d6, 0x13b2, 0x1c70, 0x3370, -0xf10c, 0xc063, 0xb6e6, 0xd48a, 0xdc66, 0xd809, 0x1789, 0x3f92, 0x3566, 0x0e0f, -0x231e, 0x2ea3, 0xde28, 0xbb31, 0xba09, 0xcf05, 0xd866, 0xdfc8, 0x18f1, 0x3ecd, -0x369b, 0x0a8f, 0x2386, 0x2af2, 0xda2a, 0xb79e, 0xb7d0, 0xd687, 0xde35, 0xe721, -0x22ba, 0x4574, 0x3572, 0x0dd3, 0x2e06, 0x263b, 0xd7ab, 0xbfc7, 0xc2f6, 0xdf1b, -0xe1c3, 0xf1d5, 0x2cb4, 0x4e1c, 0x37cd, 0x115d, 0x35cd, 0x1fe6, 0xd779, 0xc301, -0xc58e, 0xe72d, 0xe5ce, 0xf960, 0x335a, 0x4fb4, 0x357b, 0x1898, 0x426e, 0x1cc2, -0xd473, 0xc727, 0xc831, 0xe1fb, 0xe68f, 0x072e, 0x3da1, 0x58d4, 0x39ac, 0x1d25, -0x4338, 0x1401, 0xcf2b, 0xbee6, 0xca41, 0xe875, 0xe64f, 0x1316, 0x4982, 0x5236, -0x2f67, 0x2085, 0x38b8, 0xfd01, 0xc7c8, 0xba93, 0xc979, 0xebc7, 0xea26, 0x168d, -0x477d, 0x4817, 0x212b, 0x1fdd, 0x335a, 0xef3e, 0xc484, 0xb895, 0xc9b8, 0xec42, -0xe805, 0x136b, 0x4a61, 0x4971, 0x17b6, 0x1f6a, 0x2f97, 0xe4b1, 0xc086, 0xb999, -0xcac9, 0xe5fd, 0xee0c, 0x1807, 0x412f, 0x460f, 0x166d, 0x1f4c, 0x29b3, 0xdc64, -0xb965, 0xb861, 0xd211, 0xe147, 0xeb99, 0x2193, 0x450f, 0x3ce4, 0x113e, 0x1f63, -0x1c84, 0xd769, 0xb874, 0xb487, 0xd682, 0xe1c9, 0xed74, 0x24b0, 0x43a4, 0x33ba, -0x0e1c, 0x2413, 0x10f7, 0xcdd3, 0xb977, 0xb8d7, 0xdbc4, 0xe37c, 0xf175, 0x272e, -0x457d, 0x2d0a, 0x07d0, 0x297e, 0x0f41, 0xca51, 0xb9f7, 0xbc9a, 0xdaa7, 0xddfe, -0xf766, 0x2c64, 0x4532, 0x2d7b, 0x0dd9, 0x2cf4, 0x0c17, 0xc90f, 0xb4bc, 0xc07f, -0xe270, 0xdce1, 0xfc63, 0x371a, 0x4749, 0x2579, 0x1187, 0x2dc1, 0xff1f, 0xc7eb, -0xb7f0, 0xc150, 0xe209, 0xe0bb, 0x0562, 0x39a6, 0x419b, 0x18df, 0x11d0, 0x32b0, -0xf640, 0xc162, 0xbaa8, 0xc92a, 0xe355, 0xdf42, 0x07ce, 0x3de6, 0x485f, 0x1a8d, -0x15e0, 0x345d, 0xf2a7, 0xc2b4, 0xbc48, 0xcb43, 0xe331, 0xe771, 0x171d, 0x41c7, -0x46e8, 0x1e6a, 0x1d99, 0x3169, 0xea47, 0xbb34, 0xb612, 0xcfe5, 0xe372, 0xe4f4, -0x1dce, 0x4978, 0x4538, 0x1abb, 0x1ff9, 0x2726, 0xe2ee, 0xbf5a, 0xb642, 0xd6a7, -0xeb65, 0xe981, 0x26c2, 0x5246, 0x3d0f, 0x142e, 0x2f6c, 0x28fc, 0xda88, 0xc3aa, -0xbdbe, 0xd749, 0xeb54, 0xf1e0, 0x25cd, 0x526c, 0x41ba, 0x10bf, 0x2fe6, 0x2449, -0xd374, 0xbfc4, 0xbbe2, 0xd283, 0xe25c, 0xf99f, 0x2cef, 0x4ac7, 0x3ddf, 0x17d9, -0x3082, 0x1925, 0xce89, 0xb6a1, 0xbc50, 0xe283, 0xe474, 0xfd8d, 0x3bcc, 0x4e96, -0x33c3, 0x167a, 0x2e47, 0x0a43, 0xcef1, 0xbc29, 0xba3d, 0xe1a3, 0xe5f7, 0xfe7c, -0x39db, 0x4bea, 0x270e, 0x128b, 0x30de, 0xfb59, 0xc505, 0xbdab, 0xbd60, 0xe0c5, -0xe64a, 0x0171, 0x35c3, 0x47fc, 0x21b5, 0x11b5, 0x30fa, 0xf4fc, 0xc06e, 0xbaa3, -0xbc7a, 0xd83f, 0xe4e1, 0x0b66, 0x373d, 0x497a, 0x2421, 0x109c, 0x26f1, 0xecb6, -0xbadf, 0xb11f, 0xc45d, 0xdf59, 0xe4b2, 0x1641, 0x3f59, 0x42bc, 0x1c1c, 0x129c, -0x1bee, 0xe133, 0xbe64, 0xb1ad, 0xcc9f, 0xec32, 0xe986, 0x19ae, 0x44e5, 0x3a19, -0x0e88, 0x1ade, 0x1f2c, 0xdec4, 0xc3cc, 0xb2ef, 0xdaab, 0xfd08, 0xe6a7, 0x1123, -0x3704, 0x3898, 0x3ad4, 0x346f, 0xfe92, 0xd1d3, 0xcc04, 0x9cbd, 0xc135, 0x02eb, -0xf63b, 0x365b, 0x8b58, 0x58ad, 0x0415, 0x0488, 0xcf1c, 0x8e64, 0xb611, 0xc2c4, -0xeda1, 0x4ea8, 0x63da, 0x49bb, 0x50ec, 0x3618, 0xc859, 0xb818, 0xe010, 0xbc83, -0xd14a, 0x1ad8, 0x32a9, 0x4030, 0x4434, 0x0f51, 0xf80f, 0x1895, 0xeaf8, 0xc48d, -0x175a, 0x2702, 0xe895, 0x0fd2, 0x2756, 0xcf30, 0xdfad, 0x3a11, 0xfb80, 0xfa5f, -0x565f, 0x121d, 0xf290, 0x2352, 0xddf3, 0xa5f4, 0xfe06, 0x187b, 0xde96, 0x3a13, -0x5105, 0xf698, 0x255a, 0x212e, 0xb7a3, 0xc5a7, 0x10d7, 0xdeff, 0xe90b, 0x551a, -0x1708, 0xfd81, 0x42e8, 0xf9ae, 0xb328, 0xf8c8, 0x0cd4, 0xc910, 0x1398, 0x3cf8, -0xe89b, 0x1c9d, 0x36c1, 0xcb0b, 0xcca6, 0x2759, 0xf1e2, 0xd264, 0x3d80, 0x146d, -0xe372, 0x36c2, 0x0ab3, 0xb2ef, 0x0a0e, 0x2e96, 0xc7be, 0x0dcf, 0x4ba5, 0xdcd8, -0xff1f, 0x391f, 0xcf51, 0xc4c3, 0x314b, 0xfef3, 0xd680, 0x41c6, 0x156e, 0xdd3b, -0x2eeb, 0x0886, 0xa9c9, 0xf3a6, 0x247e, 0xc927, 0x069f, 0x4a37, 0xe895, 0x0061, -0x378e, 0xd6a1, 0xb348, 0x1688, 0xf810, 0xc498, 0x323f, 0x1fc5, 0xe066, 0x29b3, -0x139d, 0xadbb, 0xe71a, 0x2c44, 0xcae3, 0xe8e1, 0x3f89, 0xe822, 0xf034, 0x367a, -0xdf30, 0xb32c, 0x1aba, 0x0281, 0xcc1b, 0x36c4, 0x14ca, 0xc6d5, 0x2590, 0x1c08, -0xa351, 0xd7ce, 0x2a74, 0xd59f, 0xf3fa, 0x477e, 0xf4e0, 0xf8ff, 0x3121, 0xdc01, -0xb775, 0x150c, 0xfcd8, 0xcc0d, 0x38c8, 0x2ece, 0xe423, 0x2849, 0x29b5, 0xc302, -0xda74, 0x1f47, 0xdd2f, 0xf247, 0x3ab2, 0xf2d7, 0x006a, 0x4787, 0xf2b8, 0xbc9f, -0x1f1c, 0x0ac7, 0xbde9, 0x23df, 0x2b4d, 0xd869, 0x1cf2, 0x2e59, 0xc8ac, 0xe6ca, -0x2cef, 0xd907, 0xf197, 0x4b23, 0xf20c, 0xef15, 0x4469, 0xf156, 0xb2a9, 0x1bfd, -0x127b, 0xca28, 0x306d, 0x3438, 0xdf08, 0x20cf, 0x27a1, 0xb9c7, 0xd8d7, 0x2741, -0xd309, 0xe588, 0x5056, 0x03d5, 0xef96, 0x4207, 0xfd8d, 0xae5f, 0x03b5, 0x0589, -0xbd38, 0x23af, 0x3a76, 0xe095, 0x2023, 0x3839, 0xc165, 0xd4ca, 0x2de1, 0xd781, -0xe09b, 0x50bd, 0x0340, 0xea0c, 0x4022, 0xf840, 0xad2c, 0x1331, 0x12e3, 0xc260, -0x2f2a, 0x3b6c, 0xd12c, 0x18a4, 0x3197, 0xb77c, 0xd13d, 0x2bd2, 0xd972, 0xe616, -0x52eb, 0x041e, 0xeb26, 0x3bdc, 0xf119, 0xa2b2, 0x06d5, 0x1049, 0xbd97, 0x289f, -0x44ee, 0xdf14, 0x1d7f, 0x34ac, 0xb7bb, 0xc690, 0x278a, 0xda25, 0xdff9, 0x579a, -0x080c, 0xe6ec, 0x4374, 0xfcbd, 0xa5be, 0x078c, 0x146b, 0xbb5b, 0x2164, 0x4262, -0xdc47, 0x1e50, 0x39f8, 0xbce7, 0xcbb4, 0x2afe, 0xdc45, 0xdb5e, 0x5409, 0x0b3a, -0xe53c, 0x4358, 0x02ae, 0xa896, 0x0857, 0x1af8, 0xc23a, 0x2352, 0x496b, 0xdfb5, -0x197e, 0x3ce3, 0xbe54, 0xc506, 0x3012, 0xe677, 0xd704, 0x5217, 0x11ee, 0xe2e7, -0x3fe4, 0x06fa, 0xa5a3, 0xfdcd, 0x181f, 0xbb44, 0x1747, 0x4a1f, 0xdca9, 0x10d6, -0x4291, 0xc4a6, 0xbd25, 0x2a87, 0xe605, 0xcbf6, 0x4b38, 0x15fb, 0xe0ad, 0x3f35, -0x0d36, 0xa652, 0x0068, 0x234a, 0xbde1, 0x11e2, 0x4aeb, 0xdbe0, 0x0a9d, 0x4344, -0xcb41, 0xbfb5, 0x3005, 0xef5d, 0xcc1b, 0x497b, 0x1516, 0xd825, 0x3b8a, 0x1677, -0xabc7, 0xfeb9, 0x2dcb, 0xc484, 0x08d9, 0x4f69, 0xe275, 0x041d, 0x4846, 0xd81a, -0xc055, 0x3307, 0xfcca, 0xce29, 0x4a68, 0x20cb, 0xd8f3, 0x379a, 0x1b24, 0xaf02, -0xfaf5, 0x36a2, 0xdc0c, 0xf2c4, 0x1be5, 0xefab, 0x3121, 0x54a4, 0xf198, 0xe7b1, -0x2ba4, 0xe144, 0xad6e, 0x0105, 0xf0a8, 0xe331, 0x4379, 0x5911, 0x2529, 0x2cc9, -0x279d, 0xcce3, 0xc4aa, 0xd6d0, 0xaebe, 0xee7a, 0x3b83, 0x0e08, 0x0c23, 0x6c6b, -0x4249, 0xd2d0, 0xee99, 0xf0dc, 0xb1d9, 0xc315, 0x0097, 0x05b2, 0x198e, 0x3a21, -0x0a87, 0x19af, 0x3001, 0xda73, 0xbf3b, 0xf320, 0xf1e8, 0xce48, 0xfde9, 0x1c97, -0x092a, 0x1c03, 0x1996, 0x174f, 0x1e06, 0x0784, 0xc7d4, 0xc266, 0xf6c0, 0xcc3e, -0xdd41, 0x35c9, 0x3070, 0x0e9b, 0x2df6, 0x46cc, 0xf777, 0xdb3b, 0xd86d, 0xb2ad, -0xdad5, 0xea97, 0xeb13, 0x2dfd, 0x5bf5, 0x1d45, 0x0c80, 0x4c6b, 0xf9d2, 0xb332, -0xd3b1, 0xcca7, 0xc90a, 0xeeb9, 0x1637, 0x2142, 0x4501, 0x2b65, 0x034c, 0x35ee, -0x0df0, 0xbcaf, 0xb962, 0xda48, 0xd509, 0xd169, 0x125a, 0x2f7e, 0x3ce9, 0x31e9, -0x1f9f, 0x25c3, 0xf9ce, 0xc7fa, 0xa4bc, 0xc4e4, 0xde14, 0xd114, 0x1820, 0x4ec1, -0x3955, 0x1716, 0x2ffb, 0x23e1, 0xd401, 0xc118, 0xaea8, 0xc267, 0xe761, 0xe650, -0x166b, 0x5317, 0x4508, 0x02ef, 0x256f, 0x2a58, 0xc9bf, 0xbfb1, 0xc690, 0xc4c0, -0xdb5a, 0xfc3e, 0x1d56, 0x406f, 0x4672, 0x07f9, 0x258b, 0x3563, 0xd0af, 0xad4b, -0xc62c, 0xd7ec, 0xd118, 0xfacb, 0x32c8, 0x3cf8, 0x3893, 0x1827, 0x2a88, 0x2056, -0xd2e0, 0xa9a8, 0xbc95, 0xe82d, 0xd209, 0xed42, 0x4049, 0x4bca, 0x27a4, 0x17b5, -0x33c7, 0x048c, 0xc896, 0xbbc4, 0xb5e8, 0xde55, 0xe670, 0xf26e, 0x319d, 0x5284, -0x20bb, 0x0a37, 0x3f54, 0x0425, 0xb7b6, 0xbeac, 0xc4a7, 0xd10a, 0xdf90, 0x067a, -0x32d8, 0x4def, 0x29e9, 0x0de0, 0x33b8, 0x00f9, 0xbb53, 0xb44c, 0xca99, 0xdcb3, -0xdf0d, 0x140a, 0x4211, 0x47c0, 0x2741, 0x1ffe, 0x3026, 0xf2ee, 0xc44d, 0xb8c2, -0xcbde, 0xe86b, 0xed77, 0x1b4d, 0x47ee, 0x4766, 0x1ae9, 0x2386, 0x33e9, 0xea57, -0xc4ae, 0xc182, 0xd3ec, 0xeae1, 0xf2fa, 0x1c99, 0x46ce, 0x4849, 0x16e5, 0x2357, -0x2d0d, 0xe171, 0xc2b4, 0xc619, 0xdb43, 0xe861, 0xf96a, 0x2580, 0x41a1, 0x3fcc, -0x14f6, 0x245e, 0x2692, 0xe3d9, 0xc4b2, 0xc084, 0xdcfb, 0xe481, 0xf277, 0x26e8, -0x4453, 0x3677, 0x1401, 0x2eb5, 0x1c61, 0xda3a, 0xc536, 0xbbc2, 0xd95f, 0xe409, -0xf088, 0x24e3, 0x4a50, 0x36ef, 0x1343, 0x3794, 0x1bd7, 0xd0b1, 0xbf04, 0xc0c0, -0xd999, 0xe102, 0xfe57, 0x307b, 0x4c60, 0x3446, 0x110b, 0x34af, 0x1719, 0xd246, -0xbe92, 0xc661, 0xdf01, 0xde95, 0x04b9, 0x34ae, 0x44b2, 0x2c3e, 0x140f, 0x311d, -0x09e5, 0xcd57, 0xb673, 0xc4ea, 0xe8e6, 0xdfae, 0x02f2, 0x3c51, 0x460d, 0x2037, -0x160e, 0x33a4, 0xffd5, 0xd044, 0xbb77, 0xbff6, 0xe547, 0xe2d3, 0x02a5, 0x3927, -0x483e, 0x1e84, 0x18a8, 0x35a4, 0xf428, 0xc4b4, 0xb810, 0xbe31, 0xdf3f, 0xe3b9, -0x070a, 0x3a6e, 0x4a01, 0x1d3d, 0x19b7, 0x312f, 0xe9ed, 0xb9d2, 0xb185, 0xc27d, -0xdf74, 0xeaac, 0x163c, 0x40b2, 0x480f, 0x196b, 0x1a68, 0x2946, 0xe387, 0xbd44, -0xb687, 0xcdd3, 0xe1c0, 0xe73f, 0x19c6, 0x454e, 0x4471, 0x1517, 0x1f37, 0x2415, -0xde12, 0xbc28, 0xb193, 0xce92, 0xe199, 0xeb2a, 0x208d, 0x45c9, 0x3dfd, 0x140f, -0x2554, 0x1b8d, 0xd3e4, 0xb631, 0xaeee, 0xd2a0, 0xe032, 0xeefc, 0x2bad, 0x4d46, -0x3a27, 0x0f3b, 0x24c9, 0x111e, 0xcdbf, 0xb6b5, 0xb194, 0xd7c9, 0xe60a, 0xf93b, -0x2f30, 0x4968, 0x3246, 0x1306, 0x2d46, 0x06e7, 0xc785, 0xba49, 0xb9ab, 0xde3a, -0xe629, 0xff26, 0x3a02, 0x5456, 0x30f0, 0x10ea, 0x3149, 0x0578, 0xc92c, 0xbe07, -0xc00c, 0xe26f, 0xec57, 0x0aaf, 0x3ec0, 0x560f, 0x2fbd, 0x16da, 0x3543, 0xfe12, -0xc441, 0xbe1e, 0xce80, 0xec2a, 0xeeda, 0x1761, 0x467e, 0x531c, 0x2945, 0x16f3, -0x30b3, 0xfa85, 0xc82a, 0xb95b, 0xd0b9, 0xf0bf, 0xecf0, 0x1a23, 0x4acc, 0x48e2, -0x1c65, 0x1e4d, 0x2902, 0xe8e0, 0xc9c2, 0xbc2f, 0xd2c0, 0xf22e, 0xed1c, 0x1844, -0x4b01, 0x4776, 0x146e, 0x2125, 0x2832, 0xde1c, 0xc52b, 0xbd52, 0xcf76, 0xec76, -0xf496, 0x1c9f, 0x4726, 0x432c, 0x116f, 0x25e7, 0x2766, 0xd731, 0xbc99, 0xc162, -0xd7c6, 0xe12d, 0xf3c2, 0x27ac, 0x489f, 0x3fb7, 0x11f9, 0x23e3, 0x1dd1, 0xd9f9, -0xbc81, 0xbc41, 0xe051, 0xe6f9, 0xf6af, 0x2df2, 0x4613, 0x2fe6, 0x12b9, 0x303c, -0x120f, 0xd130, 0xc1da, 0xbc62, 0xdb80, 0xe279, 0xf4be, 0x2c52, 0x4660, 0x275e, -0x0d1c, 0x3149, 0x075f, 0xc931, 0xbf24, 0xbaf3, 0xd888, 0xe2cc, 0xfb8b, 0x2cb6, -0x4a52, 0x29ea, 0x0caa, 0x3097, 0xff78, 0xbdf9, 0xb45b, 0xc1cb, 0xdd4e, 0xe310, -0x068a, 0x24f2, 0x54ac, 0x60d2, 0x1650, 0xf4c6, 0xe059, 0xb014, 0x83b1, 0xbc91, -0x02f9, 0x0157, 0x4fca, 0x7cb3, 0x41bb, 0x0df7, 0xea9f, 0xace6, 0x957f, 0xc6c1, -0xb25c, 0xf25c, 0x6d4a, 0x3c23, 0x2274, 0x5314, 0x2754, 0xc59a, 0xd13d, 0xdf25, -0xc110, 0x097d, 0xfee9, 0xe7e9, 0x4a58, 0x3073, 0xd0cf, 0x0834, 0x3f47, 0xde37, -0xefad, 0x3de0, 0xef24, 0xe80f, 0x1519, 0xd4ff, 0xbae7, 0x160b, 0x1ed5, 0xf6f3, -0x4a32, 0x391f, 0xed02, 0x1a95, 0x0194, 0xa798, 0xcdb4, 0x1870, 0xed7d, 0x0805, -0x5609, 0x1649, 0x0c10, 0x37fb, 0xe698, 0xb602, 0x0ab1, 0x02bc, 0xc982, 0x29a0, -0x3592, 0xeb4c, 0x26a0, 0x2b39, 0xc51e, 0xe028, 0x25df, 0xdd3d, 0xeb89, 0x3c7d, -0xf25b, 0xf2a8, 0x40cd, 0xf67a, 0xbd91, 0x18e1, 0x1367, 0xcbf7, 0x1e2b, 0x2469, -0xd608, 0x16f8, 0x2a0b, 0xc927, 0xe2cc, 0x37b1, 0xf346, 0xe694, 0x382d, 0xf93e, -0xe10a, 0x2a89, 0xf6d1, 0xba9a, 0x1681, 0x2591, 0xd24e, 0x187c, 0x2fad, 0xd8f6, -0x0b46, 0x2ae5, 0xc8c2, 0xd38a, 0x2a7a, 0xe7b1, 0xdcb3, 0x3e95, 0x03d8, 0xe5e1, -0x3718, 0x0451, 0xb6fc, 0x05d7, 0x1636, 0xc589, 0x0c0d, 0x2d31, 0xe2a5, 0x145e, -0x2ff3, 0xd16c, 0xd748, 0x2961, 0xeee4, 0xd89a, 0x2f77, 0x0413, 0xe432, 0x2a18, -0x07e4, 0xbf90, 0xffac, 0x1a5c, 0xce43, 0x0eae, 0x3e2a, 0xe525, 0xfcdf, 0x3412, -0xe19f, 0xc0d0, 0x160c, 0xf679, 0xdaf7, 0x3d0f, 0x184f, 0xe643, 0x3314, 0x0d97, -0xa9d1, 0xf210, 0x1e09, 0xc374, 0x0591, 0x4995, 0xef24, 0x05bf, 0x3aa6, 0xdaf6, -0xc1a1, 0x198b, 0xe5e1, 0xce1f, 0x40dc, 0x134c, 0xddc5, 0x3b68, 0x1d73, 0xb2c0, -0xf385, 0x2228, 0xc6a9, 0xff0d, 0x4056, 0xea16, 0x071a, 0x3ca3, 0xd74b, 0xbcb1, -0x210f, 0xf2c1, 0xcb2c, 0x414d, 0x1f07, 0xd958, 0x2f24, 0x195a, 0xa747, 0xe84d, -0x2605, 0xc501, 0xff0e, 0x4e0a, 0xea48, 0x02a4, 0x46c5, 0xd723, 0xafda, 0x23af, -0xf6a4, 0xbc7c, 0x3c45, 0x26f8, 0xdc74, 0x367d, 0x2543, 0xb0bd, 0xed3e, 0x27e5, -0xc333, 0xf8e2, 0x4d51, 0xeb5f, 0xfefc, 0x4865, 0xe34b, 0xb937, 0x2748, 0x0266, -0xc562, 0x3a6b, 0x25b1, 0xd774, 0x2daa, 0x2313, 0xb311, 0xef4a, 0x32e8, 0xcf60, -0xf8b2, 0x51fb, 0xee07, 0xf368, 0x44ab, 0xe548, 0xb2da, 0x24f2, 0x07b3, 0xc446, -0x3bc4, 0x2db3, 0xd779, 0x2ee4, 0x281e, 0xace1, 0xe4c5, 0x335a, 0xceab, 0xf17b, -0x55c7, 0xf4d4, 0xf24d, 0x4603, 0xeb3d, 0xaf65, 0x1bbf, 0x08f3, 0xbf31, 0x300f, -0x30d1, 0xd9cf, 0x29ba, 0x2ead, 0xb5b6, 0xdd53, 0x2dff, 0xcf0d, 0xe2d2, 0x4b14, -0xf7cf, 0xf104, 0x48fe, 0xf5f9, 0xb102, 0x175c, 0x0bd9, 0xbcb2, 0x27b4, 0x336a, -0xd7be, 0x2088, 0x3408, 0xbf37, 0xdc20, 0x3264, 0xdb9f, 0xe60e, 0x5013, 0xffb1, -0xe856, 0x4281, 0xff01, 0xb10f, 0x1094, 0x176a, 0xc863, 0x243b, 0x390b, 0xdf6d, -0x1d95, 0x3900, 0xc65f, 0xd25c, 0x2c3a, 0xe187, 0xdbeb, 0x465f, 0x0986, 0xeb79, -0x4044, 0x0711, 0xb0da, 0x0496, 0x1513, 0xc287, 0x187b, 0x3c78, 0xe032, 0x1521, -0x3c5f, 0xccc3, 0xcce1, 0x2b96, 0xe4ca, 0xd2ba, 0x430a, 0x0aa2, 0xdffc, 0x3ad9, -0x0be5, 0xaea0, 0x03b6, 0x1ba6, 0xbbed, 0x0db5, 0x4113, 0xdc05, 0x05bb, 0x3a65, -0xcc55, 0xc14b, 0x25ec, 0xe783, 0xd1d2, 0x4965, 0x1616, 0xdbb4, 0x3263, 0x0a8b, -0xa569, 0xf7cf, 0x1f57, 0xc4d2, 0x1559, 0x517f, 0xea47, 0x0848, 0x3a1f, 0xc9f1, -0xbb1e, 0x266f, 0xea60, 0xcd1c, 0x4d59, 0x23a6, 0xe328, 0x3b46, 0x19d2, 0xabe2, -0xf47d, 0x1e1a, 0xbcd3, 0x09ed, 0x4fb3, 0xe964, 0x0dbc, 0x485b, 0xd3bb, 0xbbbe, -0x2722, 0xffc5, 0xce39, 0x0d09, 0xfe2c, 0x112d, 0x596c, 0x16f5, 0xd170, 0x12a7, -0x07ab, 0xa521, 0xd945, 0x0290, 0xcf7b, 0x0c60, 0x5af6, 0x3c64, 0x1c78, 0x2c17, -0xf082, 0xb62e, 0xcf0c, 0xac7d, 0xba75, 0x27ac, 0x23af, 0xf129, 0x473d, 0x6f3b, -0xefd4, 0xd0fc, 0xfcb5, 0xc5fa, 0xa532, 0xe2aa, 0x08ff, 0x0704, 0x304a, 0x21e6, -0x0f85, 0x38c1, 0x010f, 0xbcdf, 0xd894, 0xf8ab, 0xd8c7, 0xe36a, 0x1b7a, 0x178e, -0x1a72, 0x1741, 0x157f, 0x1dd4, 0x0dfe, 0xe47e, 0xbdd3, 0xf139, 0xe9ae, 0xc861, -0x198e, 0x432e, 0x1c93, 0x1246, 0x4ca3, 0x23d4, 0xd5a3, 0xdda1, 0xc097, 0xcd1a, -0xeddd, 0xed1a, 0x1738, 0x5658, 0x41b1, 0xfba0, 0x3319, 0x2a1d, 0xc048, 0xc0cf, -0xd583, 0xd4c9, 0xdb7a, 0x070a, 0x2588, 0x3798, 0x3aa9, 0x0add, 0x25af, 0x2337, -0xd4c2, 0xb504, 0xca8a, 0xe4dd, 0xd039, 0xf1df, 0x2bb9, 0x3c1d, 0x3426, 0x22ac, -0x331f, 0x0f10, 0xdc7d, 0xbbe1, 0xb47c, 0xdb63, 0xd984, 0xfcbd, 0x450f, 0x5431, -0x271a, 0x210b, 0x3c62, 0xf43d, 0xc565, 0xc201, 0xc114, 0xe4f6, 0xee9b, 0x085b, -0x3cf5, 0x5653, 0x1e82, 0x0d52, 0x38a8, 0xf608, 0xc456, 0xce8b, 0xcfd1, 0xda08, -0xf0f6, 0x16f4, 0x3014, 0x4610, 0x1a46, 0x0c35, 0x36d1, 0xfb60, 0xbc9c, 0xbcea, -0xdb0c, 0xda74, 0xdb6c, 0x17ce, 0x3715, 0x33b3, 0x13c8, 0x1e7d, 0x290c, 0xe55b, -0xb756, 0xb135, 0xdad6, 0xde70, 0xd336, 0x1782, 0x43a0, 0x29e5, 0x03f8, 0x2c8f, -0x2768, 0xd396, 0xc0e1, 0xbc23, 0xccce, 0xdf32, 0xe829, 0x16bf, 0x4610, 0x3567, -0x012e, 0x312c, 0x3059, 0xcf4c, 0xbc48, 0xcf7d, 0xdb0c, 0xd4f7, 0xefe3, 0x2327, -0x3f5e, 0x34bf, 0x11d9, 0x3885, 0x2a09, 0xd700, 0xbd59, 0xc753, 0xde26, 0xd765, -0xf612, 0x31cc, 0x45d3, 0x2d56, 0x17c3, 0x3e94, 0x16b7, 0xce82, 0xc389, 0xc8ab, -0xdd9d, 0xdd82, 0xfe36, 0x3550, 0x4d5b, 0x2a45, 0x1384, 0x3ff2, 0x0ef3, 0xc81d, -0xbe61, 0xcce9, 0xe4aa, 0xe0ab, 0x0699, 0x385e, 0x486b, 0x2294, 0x15f0, 0x3d85, -0x01db, 0xc686, 0xc116, 0xcff5, 0xe34d, 0xe14b, 0x10c9, 0x3f07, 0x466b, 0x1f0d, -0x1d05, 0x3ab5, 0xf8ef, 0xc8ce, 0xc05e, 0xd357, 0xe7d4, 0xe29f, 0x13df, 0x471a, -0x4a47, 0x1c4c, 0x297f, 0x3e3f, 0xed74, 0xc6f8, 0xbfdc, 0xccde, 0xe3d5, 0xeaa0, -0x19ee, 0x4b1b, 0x4d49, 0x1865, 0x2976, 0x37a0, 0xe1a2, 0xb9e8, 0xba35, 0xd299, -0xde2b, 0xecfc, 0x27c6, 0x4ae2, 0x4564, 0x19a4, 0x28b5, 0x2426, 0xd885, 0xbc0a, -0xb90e, 0xd777, 0xe284, 0xf34a, 0x2d9a, 0x4813, 0x38b9, 0x14ee, 0x2c67, 0x1894, -0xd324, 0xbc7e, 0xb3bc, 0xda55, 0xe3e2, 0xef0a, 0x2fd7, 0x4da0, 0x2e6a, 0x0ee2, -0x326e, 0x0fc1, 0xcb23, 0xbee7, 0xb82c, 0xdaac, 0xe70d, 0xf676, 0x2c96, 0x4efe, -0x3180, 0x0f59, 0x3430, 0x0900, 0xc464, 0xbdf3, 0xbfd4, 0xdc18, 0xe54f, 0x02ac, -0x346a, 0x4ca2, 0x2bdb, 0x0ba0, 0x2ca5, 0x00e4, 0xc0c2, 0xb4ae, 0xbea2, 0xdd3b, -0xe1b5, 0x05e5, 0x36cd, 0x455d, 0x228c, 0x0f39, 0x2721, 0xf06a, 0xbe3c, 0xb625, -0xc315, 0xe0db, 0xe130, 0x0824, 0x3af9, 0x4450, 0x1a04, 0x1254, 0x2a20, 0xeab7, -0xbec0, 0xb857, 0xc3f1, 0xdf5a, 0xe831, 0x122e, 0x3daa, 0x44fa, 0x18f6, 0x1739, -0x28bb, 0xe41d, 0xbbf3, 0xb89c, 0xcff6, 0xe5c1, 0xea00, 0x1c60, 0x45d5, 0x43ef, -0x1c06, 0x2434, 0x292a, 0xe39e, 0xc2cb, 0xbd71, 0xd5c4, 0xe95c, 0xf5d3, 0x2a36, -0x4b75, 0x403d, 0x1c75, 0x32bf, 0x27ef, 0xdda2, 0xcb76, 0xc7c5, 0xdb1a, 0xe84b, -0xf612, 0x2b74, 0x5112, 0x4137, 0x18a7, 0x3889, 0x2791, 0xd8ed, 0xc90a, 0xc6c8, -0xd83c, 0xe5cf, 0x01d1, 0x32e1, 0x4e08, 0x3e77, 0x1bcc, 0x39cc, 0x1bcb, 0xcf7c, -0xbfad, 0xc693, 0xe1af, 0xe44a, 0x0379, 0x3b80, 0x5122, 0x34da, 0x12cd, 0x2ff7, -0x0b3f, 0xcb7c, 0xb95e, 0xc0f4, 0xe555, 0xe1ce, 0x01a1, 0x3cc9, 0x475e, 0x2196, -0x156a, 0x33d5, 0xf97d, 0xc4c1, 0xb9ed, 0xbd90, 0xe1db, 0xe24b, 0x021d, 0x3cfa, -0x4dca, 0x1ea3, 0x12f7, 0x33e9, 0xf159, 0xbf15, 0xb984, 0xbdf4, 0xd9dc, 0xe483, -0x0d28, 0x3bb5, 0x4aee, 0x1fcf, 0x1792, 0x2e75, 0xe773, 0xb55d, 0xaeed, 0xc525, -0xdc07, 0xe07a, 0x162d, 0x403a, 0x41df, 0x18e6, 0x1816, 0x22ca, 0xe0d7, 0xba3f, -0xab7d, 0xc6d9, 0xe296, 0xe464, 0x1a6b, 0x45ec, 0x3cb4, 0x1203, 0x21d7, 0x1e19, -0xd553, 0xc042, 0xb44a, 0xca17, 0xe29f, 0xe893, 0x1a35, 0x457e, 0x3ca4, 0x0eee, -0x274f, 0x1dc0, 0xd010, 0xbe2a, 0xb43a, 0xca4c, 0xe2e4, 0xf448, 0x246d, 0x4965, -0x3fdb, 0x10f7, 0x25b8, 0x162e, 0xcca7, 0xb882, 0xb947, 0xd7a5, 0xe438, 0xfea1, -0x33b7, 0x4cfe, 0x3b14, 0x1175, 0x24b7, 0x0bf7, 0xcecd, 0xbc06, 0xbdfc, 0xe81e, -0xee24, 0x01b0, 0x3af8, 0x476e, 0x28b0, 0x20d9, 0x3412, 0xf8f1, 0xc8c9, 0xbcf1, -0xbe75, 0xed66, 0xf061, 0x0477, 0x2e04, 0x4a13, 0x58d9, 0x3473, 0x0a86, 0xde23, -0xc927, 0xa391, 0xa85a, 0xfd01, 0x01c0, 0x26a1, 0x8016, 0x6b60, 0x1f2e, 0x05f0, -0xdab1, 0x948b, 0xb8c2, 0xc47d, 0xcb07, 0x3e6c, 0x61b3, 0x38d1, 0x421e, 0x423b, -0xe147, 0xbac6, 0xe0e9, 0xbe22, 0xd9dd, 0x0b3a, 0x03de, 0x31f4, 0x40dc, 0xf8e0, -0xf398, 0x2cdd, 0xec3a, 0xc582, 0x25ea, 0x1c58, 0xd8cd, 0x0700, 0x13d5, 0xbffb, -0xdfbf, 0x2eeb, 0xf5a6, 0x0a90, 0x5506, 0x0dfc, 0xf5d4, 0x194f, 0xd0b1, 0xa469, -0xf944, 0x0659, 0xe225, 0x3e8d, 0x4455, 0xf804, 0x285d, 0x16e8, 0xac54, 0xcbe6, -0x0dc1, 0xcfa2, 0xef3a, 0x51ba, 0x0cea, 0x02d9, 0x4169, 0xec8e, 0xb42c, 0x04b3, -0xfdcb, 0xc5c1, 0x233b, 0x2fa0, 0xe530, 0x27ec, 0x2937, 0xc096, 0xdeaa, 0x2435, -0xe010, 0xe6f7, 0x3e0a, 0xfd91, 0xeb2e, 0x333b, 0xf30c, 0xb2be, 0x1250, 0x1fd9, -0xc7fa, 0x1877, 0x3b5d, 0xdbdb, 0x0644, 0x23bb, 0xbdc0, 0xcc54, 0x2f0c, 0xf1f3, -0xe57b, 0x48e5, 0x082c, 0xe598, 0x360e, 0xf80f, 0xa876, 0x0659, 0x1b42, 0xc57b, -0x1fb9, 0x48cb, 0xe657, 0x1591, 0x3682, 0xcb26, 0xccd4, 0x2692, 0xe8fa, 0xda38, -0x445f, 0x1220, 0xf0e0, 0x3d8f, 0x09d0, 0xb6bc, 0x00e1, 0x260a, 0xd188, 0x0576, -0x3935, 0xef31, 0x1179, 0x33e9, 0xd401, 0xcde0, 0x2d56, 0xfa21, 0xdbb0, 0x4a3c, -0x1c17, 0xdc92, 0x334e, 0x1ceb, 0xb17d, 0xebbf, 0x27e0, 0xd919, 0x0f7e, 0x4a4b, -0xf20c, 0x107b, 0x3a20, 0xcab0, 0xba0a, 0x24cb, 0xf1fa, 0xcaf2, 0x3f6a, 0x2005, -0xe495, 0x30ba, 0x16ef, 0xb7a7, 0xec01, 0x1401, 0xc9b7, 0x05b6, 0x393b, 0xe12d, -0x07bf, 0x44cb, 0xdee8, 0xbd85, 0x23f1, 0xfc20, 0xc5f2, 0x2bd6, 0x194b, 0xdfc0, -0x26e3, 0x160b, 0xba3e, 0xf25d, 0x2457, 0xcdc4, 0x004b, 0x4634, 0xe4dc, 0xf4a7, -0x3d04, 0xdcc3, 0xb397, 0x1fb0, 0x0021, 0xcbc7, 0x37a0, 0x223d, 0xdd2e, 0x2e4a, -0x1e22, 0xae9d, 0xea89, 0x28db, 0xc94f, 0xf4c9, 0x4a0c, 0xf565, 0xfefa, 0x4525, -0xee89, 0xbfb1, 0x1b8b, 0xfa5c, 0xc436, 0x2f51, 0x24ca, 0xdfcd, 0x2cf4, 0x2a31, -0xbd55, 0xe94e, 0x2b96, 0xd147, 0xee2f, 0x4235, 0xf2bf, 0xf601, 0x3b75, 0xe821, -0xb876, 0x1f6c, 0x056a, 0xc597, 0x378b, 0x2e60, 0xd377, 0x1e9d, 0x283c, 0xb892, -0xdee1, 0x2781, 0xd1f0, 0xf4ba, 0x554c, 0x0123, 0xf9be, 0x420b, 0xea52, 0xaa76, -0x121d, 0x04f0, 0xbdca, 0x333f, 0x4315, 0xe753, 0x27d8, 0x325a, 0xb873, 0xd272, -0x2388, 0xcf65, 0xe913, 0x57fe, 0x07f4, 0xf542, 0x4773, 0xf6c7, 0xab18, 0x11a2, -0x0c42, 0xb926, 0x2816, 0x3c96, 0xde7c, 0x28fb, 0x3ab1, 0xb843, 0xd1f6, 0x2e08, -0xd30e, 0xdd67, 0x552d, 0x04b1, 0xe6f1, 0x4408, 0xfac7, 0xa436, 0x0956, 0x1138, -0xb9e0, 0x267a, 0x42e3, 0xd676, 0x199d, 0x3443, 0xb086, 0xc200, 0x28e5, 0xda7a, -0xd827, 0x53d9, 0x0bab, 0xe3c1, 0x40a6, 0xfc98, 0xa29e, 0x018f, 0x1105, 0xb6e7, -0x1b43, 0x498c, 0xdd00, 0x1541, 0x4138, 0xc0de, 0xbf2e, 0x283d, 0xe09c, 0xce50, -0x4aa8, 0x1053, 0xdfdb, 0x3f0a, 0x0676, 0xa0c4, 0xfe21, 0x1b86, 0xb753, 0x10a7, -0x4958, 0xd934, 0x0821, 0x3f0a, 0xc34f, 0xba57, 0x2b9e, 0xe817, 0xc7b8, 0x46a9, -0x0faa, 0xd39d, 0x38e6, 0x0b67, 0x9f2e, 0xfa87, 0x2298, 0xbafd, 0x0a31, 0x466b, -0xd41d, 0xfd51, 0x3a2b, 0xc101, 0xb40d, 0x2b20, 0xef1f, 0xc9c0, 0x46b9, 0x10a8, -0xce9c, 0x3371, 0x097d, 0x9c55, 0xf5c4, 0x3090, 0xd2df, 0xecd4, 0x147e, 0xe806, -0x2e2d, 0x4ebd, 0xe525, 0xe179, 0x26a7, 0xd61d, 0xaa44, 0x0053, 0xe8dc, 0xe136, -0x46b6, 0x57fc, 0x24b5, 0x2da9, 0x235d, 0xcd31, 0xca81, 0xd1c7, 0xaf26, 0xfdb0, -0x3bad, 0x09ac, 0x1da0, 0x74cf, 0x3a9c, 0xd9e6, 0xf662, 0xf1b3, 0xb74e, 0xc78b, -0x079d, 0x1303, 0x25f7, 0x3f88, 0x14f4, 0x2459, 0x2c9b, 0xdd69, 0xc8da, 0xfb0c, -0xfc56, 0xd94a, 0x0b6d, 0x29c0, 0x150a, 0x22e5, 0x1d92, 0x18ef, 0x1cfc, 0x0c23, -0xcdc3, 0xcd7b, 0x0116, 0xd225, 0xea05, 0x3ecf, 0x321c, 0x114b, 0x3429, 0x4818, -0xf80f, 0xe0f6, 0xd86d, 0xb88f, 0xe34c, 0xec85, 0xf335, 0x37f0, 0x5dfb, 0x1c42, -0x11db, 0x4f23, 0xfc26, 0xba44, 0xd5aa, 0xd324, 0xd1fd, 0xf17c, 0x1856, 0x276a, -0x4692, 0x286a, 0x0ba3, 0x3d7b, 0x1150, 0xc1ac, 0xbdf0, 0xe136, 0xd542, 0xcf26, -0x1384, 0x2faf, 0x3870, 0x2e2c, 0x2318, 0x28d4, 0xfdee, 0xcb16, 0xa730, 0xc88d, -0xdb00, 0xceb6, 0x1995, 0x4d9d, 0x384a, 0x1a5c, 0x3253, 0x2473, 0xd8f1, 0xc53c, -0xafa7, 0xc440, 0xe9ed, 0xe807, 0x176e, 0x51f8, 0x4372, 0x074b, 0x2912, 0x2b6d, -0xcf1e, 0xc37a, 0xc518, 0xc3a3, 0xdc9c, 0xfa3e, 0x1a98, 0x40fa, 0x4783, 0x0983, -0x2539, 0x3545, 0xd15a, 0xad3e, 0xc7ca, 0xd8f8, 0xd06d, 0xf96a, 0x3340, 0x3d0f, -0x375f, 0x19a1, 0x2cbe, 0x2480, 0xd619, 0xaa0f, 0xbfde, 0xe9c8, 0xd157, 0xf05e, -0x42af, 0x4a8c, 0x2ada, 0x1e55, 0x372a, 0x09e1, 0xcd35, 0xbbbe, 0xb8fb, 0xe193, -0xe480, 0xf329, 0x3476, 0x51aa, 0x233d, 0x1102, 0x44ce, 0x08c4, 0xbbca, 0xc158, -0xc692, 0xd1e1, 0xdde2, 0x0656, 0x33cd, 0x4f74, 0x2ddc, 0x0f4d, 0x394e, 0x09e6, -0xbe5c, 0xb5ad, 0xcc4d, 0xdc27, 0xdab2, 0x1043, 0x3ea4, 0x479b, 0x2b41, 0x1d61, -0x308b, 0xf8bb, 0xc464, 0xb735, 0xcd64, 0xe75e, 0xe437, 0x161f, 0x4870, 0x48ad, -0x1c9b, 0x1ea2, 0x33d1, 0xf0d7, 0xc828, 0xc0cf, 0xd2aa, 0xe99c, 0xeb83, 0x1a23, -0x47fe, 0x4a7b, 0x1905, 0x1e38, 0x324a, 0xe958, 0xc1e9, 0xc325, 0xd7e4, 0xe635, -0xf2dc, 0x2267, 0x3faa, 0x415f, 0x1a59, 0x202f, 0x2852, 0xe889, 0xc4bd, 0xbe6c, -0xdab6, 0xe56a, 0xef10, 0x26eb, 0x4556, 0x3a6e, 0x180a, 0x2a09, 0x1fb9, 0xde8b, -0xc5cf, 0xb9e8, 0xd7a7, 0xe7b9, 0xedd9, 0x2300, 0x49df, 0x37d1, 0x12a8, 0x2f9a, -0x18aa, 0xce1b, 0xbdb0, 0xbc6b, 0xd29e, 0xdeee, 0xf71a, 0x2781, 0x45f4, 0x339d, -0x0ccf, 0x2b8f, 0x12d6, 0xc8e8, 0xb6b6, 0xbda1, 0xd3af, 0xd912, 0xfe42, 0x2d6d, -0x3ef8, 0x304b, 0x1689, 0x29cf, 0x067c, 0xcba1, 0xb57d, 0xbede, 0xdf90, 0xdc36, -0xfffb, 0x3465, 0x3c40, 0x2128, 0x1a44, 0x31e1, 0xfd23, 0xcc9c, 0xbac3, 0xbc48, -0xdd17, 0xde23, 0xfd31, 0x3137, 0x4362, 0x1eee, 0x18fc, 0x32b8, 0xf20e, 0xc5cc, -0xbb44, 0xbdcc, 0xd9bd, 0xe2e3, 0x076b, 0x353c, 0x4892, 0x1e7b, 0x18f6, 0x30cf, -0xea76, 0xbae7, 0xb387, 0xc4fa, 0xdcc0, 0xe7b8, 0x15fe, 0x3d5b, 0x45ed, 0x199f, -0x192d, 0x2670, 0xe39c, 0xbd23, 0xb49a, 0xce79, 0xe000, 0xe7b3, 0x1c0b, 0x42fb, -0x4231, 0x1500, 0x214f, 0x24b7, 0xddd0, 0xbdaf, 0xb443, 0xd1d6, 0xe488, 0xf035, -0x248c, 0x481a, 0x412e, 0x17e3, 0x2a09, 0x1e55, 0xd730, 0xbb6d, 0xb458, 0xd6fe, -0xe4f4, 0xf65d, 0x30dd, 0x50e1, 0x3ee0, 0x15ff, 0x2a77, 0x133f, 0xd208, 0xbb41, -0xb5d0, 0xdc9b, 0xea0f, 0xfe2e, 0x33e8, 0x4ec6, 0x3729, 0x17b0, 0x327e, 0x0ae7, -0xcbb1, 0xbd40, 0xbbb0, 0xe021, 0xe92f, 0x0274, 0x3a54, 0x53fa, 0x3201, 0x1417, -0x340a, 0x073d, 0xcaf8, 0xbd21, 0xbddc, 0xdfe9, 0xebda, 0x0cee, 0x3df0, 0x5410, -0x3025, 0x16c7, 0x32e0, 0xfb90, 0xc1f6, 0xbac8, 0xcb01, 0xe852, 0xeb00, 0x14bb, -0x4362, 0x4e09, 0x267e, 0x175e, 0x2ea6, 0xf673, 0xc679, 0xb7ca, 0xce42, 0xef38, -0xea88, 0x19da, 0x4c19, 0x4976, 0x1f9b, 0x2155, 0x2984, 0xe747, 0xc939, 0xbc60, -0xced0, 0xf05b, 0xef4a, 0x1a1b, 0x4d06, 0x49db, 0x1707, 0x21a4, 0x261f, 0xdb58, -0xc42f, 0xbd07, 0xcd03, 0xeb57, 0xf6f1, 0x1fe4, 0x4885, 0x45cb, 0x1391, 0x2121, -0x232c, 0xd7ec, 0xbd29, 0xbf59, 0xd799, 0xe575, 0xf6b7, 0x28c6, 0x4774, 0x3e39, -0x1137, 0x1ef7, 0x1744, 0xd610, 0xbc35, 0xb9e4, 0xdd70, 0xe860, 0xf41e, 0x2929, -0x4423, 0x2e1c, 0x110a, 0x2d77, 0x0e41, 0xced2, 0xc1cd, 0xbb1d, 0xd9b8, 0xe41e, -0xf4ed, 0x2b8f, 0x4959, 0x2b92, 0x0f36, 0x32ac, 0x0962, 0xc983, 0xc063, 0xbadd, -0xd65d, 0xe557, 0xfe42, 0x2c4a, 0x49b0, 0x2cc4, 0x11af, 0x335e, 0x0099, 0xbfb6, -0xb950, 0xc282, 0xda13, 0xe2c3, 0x0c6b, 0x2301, 0x3d0d, 0x5b32, 0x2bf1, 0xf816, -0xd811, 0xc694, 0x94e5, 0xa76b, 0x02b3, 0xf90f, 0x23f0, 0x863b, 0x6a8b, 0x1164, -0xf826, 0xd412, 0x8d7c, 0xade7, 0xbb44, 0xce06, 0x446e, 0x60cd, 0x37d3, 0x464b, -0x4603, 0xdb1a, 0xadc9, 0xd748, 0xbb79, 0xd2d1, 0x0130, 0x0928, 0x3b0a, 0x4390, -0x0002, 0xef18, 0x25c7, 0xf662, 0xbcac, 0x1201, 0x1f14, 0xda32, 0xff28, 0x1fbe, -0xd1ed, 0xd6db, 0x389e, 0x0dbf, 0xf3fb, 0x488e, 0x1c7e, 0xe70e, 0x1374, 0xed9e, -0xa6a3, 0xedff, 0x24fa, 0xe3d7, 0x2454, 0x55ff, 0xfbf6, 0x19ad, 0x27e2, 0xbe48, -0xc206, 0x1296, 0xe45b, 0xdd35, 0x4db6, 0x1c33, 0xef46, 0x4348, 0x0b24, 0xb5eb, -0xf732, 0x126a, 0xcd2b, 0x063c, 0x37c5, 0xec01, 0x18d9, 0x3cc8, 0xd616, 0xd2bc, -0x273a, 0xf84b, 0xd381, 0x30e7, 0x1385, 0xdff9, 0x30f4, 0x18b0, 0xc10e, 0x0696, -0x364d, 0xd762, 0xfbf8, 0x3d8c, 0xe397, 0xf63d, 0x3932, 0xe0e0, 0xc7fb, 0x31c6, -0x0e47, 0xd472, 0x33f1, 0x19cb, 0xd9b6, 0x297e, 0x174d, 0xb770, 0xf385, 0x2b80, -0xd844, 0x020b, 0x44ae, 0xecdc, 0xffc6, 0x3c84, 0xe59b, 0xc239, 0x1b9c, 0x03d8, -0xcdfc, 0x284d, 0x2050, 0xe856, 0x29ba, 0x1da6, 0xc79c, 0xf13e, 0x2a8b, 0xdb89, -0xe7cf, 0x315a, 0xf321, 0xf5f9, 0x332c, 0xf230, 0xc508, 0x1566, 0x093d, 0xce9a, -0x23e7, 0x1dac, 0xd1bc, 0x1aa1, 0x2c3b, 0xbf9a, 0xd5cb, 0x286f, 0xe374, 0xeccb, -0x3bb8, 0xfa4b, 0xf5e8, 0x2f2d, 0xe9fe, 0xbb23, 0x0ce2, 0xff3a, 0xc469, 0x2484, -0x2c01, 0xe186, 0x1b3d, 0x26db, 0xc966, 0xd43c, 0x0cf6, 0xd3cc, 0xeaf1, 0x349d, -0xf49e, 0xfa1b, 0x3da3, 0xf2ae, 0xb5a2, 0x09f1, 0x0303, 0xbee6, 0x1c15, 0x2f77, -0xe137, 0x187e, 0x2a96, 0xc3d0, 0xd414, 0x1e88, 0xd685, 0xe774, 0x4a59, 0xfa19, -0xe6e2, 0x3f71, 0xf365, 0xa657, 0x0aac, 0x0b27, 0xbbf9, 0x22a4, 0x3896, 0xdde2, -0x1ea6, 0x2ddb, 0xb6a3, 0xcf13, 0x234d, 0xd209, 0xdfcd, 0x4de4, 0x0530, 0xf235, -0x458e, 0xfe1c, 0xaf9c, 0x04ff, 0x0ba8, 0xc04a, 0x1dfe, 0x3a8f, 0xe44e, 0x1ebd, -0x3786, 0xc838, 0xd340, 0x2d49, 0xe462, 0xdc75, 0x4606, 0x05e5, 0xe8d6, 0x3e07, -0x0367, 0xb349, 0x0d09, 0x1be3, 0xc56a, 0x2148, 0x4004, 0xd8d7, 0x1595, 0x3a7d, -0xc56d, 0xd126, 0x3261, 0xe7bb, 0xe124, 0x5308, 0x0eb8, 0xeb26, 0x437a, 0x042c, -0xaf26, 0x0eb2, 0x218d, 0xc6ad, 0x22c2, 0x4ab9, 0xe2d2, 0x1874, 0x40cd, 0xca8d, -0xc838, 0x2e68, 0xedb9, 0xd7fa, 0x4c7a, 0x1526, 0xe7cb, 0x4150, 0x0c9e, 0xae99, -0x0430, 0x20bb, 0xc1b5, 0x1187, 0x47d4, 0xe4da, 0x1440, 0x42ec, 0xcdff, 0xc6df, -0x2c13, 0xec08, 0xd2d5, 0x46ed, 0x0ef1, 0xdd36, 0x3d9e, 0x0f6f, 0xadf9, 0x0331, -0x2434, 0xc516, 0x0f43, 0x4485, 0xde32, 0x0700, 0x3d61, 0xce91, 0xbeff, 0x2926, -0xf4fa, 0xd134, 0x41a9, 0x1664, 0xdc49, 0x34e2, 0x1333, 0xace3, 0xf361, 0x1f70, -0xc693, 0x0699, 0x47e9, 0xe934, 0x0537, 0x4024, 0xd7ae, 0xba09, 0x1da8, 0xf1cd, -0xcbb4, 0x3981, 0x188e, 0xddeb, 0x326b, 0x1892, 0xb095, 0xf130, 0x20bc, 0xc29d, -0xf9a7, 0x3f9b, 0xe3d4, 0xfb7a, 0x3e64, 0xdf3d, 0xbe59, 0x2395, 0xf6d6, 0xc4b9, -0x3386, 0x1936, 0xd767, 0x2b7a, 0x1dd1, 0xb547, 0xeefe, 0x2814, 0xcaa5, 0xf817, -0x487c, 0xeb89, 0xf26b, 0x397c, 0xdf7f, 0xb39b, 0x1c04, 0xfe68, 0xc54d, 0x349f, -0x2a68, 0xdbdd, 0x22d6, 0x1ddd, 0xb0a0, 0xe0fa, 0x21cc, 0xc993, 0xf898, 0x52ec, -0xf689, 0xf70a, 0x426a, 0xe741, 0xaf61, 0x151d, 0xf921, 0xc0cc, 0x3886, 0x3002, -0xdf54, 0x2dc5, 0x25fe, 0xb022, 0xe019, 0x2b01, 0xdc46, 0xdf34, 0x113b, 0xf3ef, -0x2b9e, 0x5380, 0xf6a9, 0xdedb, 0x2143, 0xe2d9, 0xa1ed, 0xf09b, 0xf0dc, 0xdb67, -0x3407, 0x5e55, 0x32ca, 0x27e1, 0x25c5, 0xd709, 0xc36a, 0xcfc9, 0xa7f8, 0xea51, -0x3bd7, 0x0e16, 0x0801, 0x6978, 0x4f5b, 0xdcee, 0xefc1, 0xfe47, 0xbe36, 0xbc03, -0xf6fb, 0x0a54, 0x1b49, 0x3bd0, 0x15ec, 0x2382, 0x3cb2, 0xeb19, 0xc5aa, 0xedb7, -0xf957, 0xd7a6, 0xf768, 0x22e7, 0x17a3, 0x2061, 0x1ba7, 0x1fd9, 0x23d8, 0x0c01, -0xd667, 0xc4b5, 0xfb1e, 0xd994, 0xd7e9, 0x3398, 0x3e92, 0x166b, 0x27af, 0x4ec2, -0x0515, 0xd7d3, 0xde1a, 0xb994, 0xdcbe, 0xf079, 0xeced, 0x2d31, 0x5f61, 0x253a, -0x040a, 0x4aa6, 0x0dcf, 0xb7f1, 0xcf3e, 0xd1b1, 0xcf61, 0xe63f, 0x105c, 0x26cc, -0x431a, 0x31ef, 0x089d, 0x3279, 0x1505, 0xc9c8, 0xbc77, 0xd253, 0xdbe3, 0xd185, -0x028c, 0x2ef7, 0x3d5b, 0x2ff3, 0x2436, 0x2ecc, 0xffae, 0xd27d, 0xae72, 0xb7bb, -0xda8b, 0xd2ea, 0x0b5f, 0x4d03, 0x43e6, 0x19f3, 0x2a63, 0x2e3d, 0xdc83, 0xc2d3, -0xb8a6, 0xbf1e, 0xe681, 0xe9fe, 0x0c02, 0x47ed, 0x4b9b, 0x0b96, 0x1c09, 0x3193, -0xdad3, 0xc2e7, 0xcba3, 0xc7a2, 0xd979, 0xf765, 0x1768, 0x34eb, 0x4272, 0x0e6d, -0x1cba, 0x35bf, 0xe2f7, 0xb4ec, 0xc2dc, 0xdbc9, 0xd4b0, 0xeaf5, 0x2a04, 0x3d45, -0x3135, 0x163c, 0x29bf, 0x1de9, 0xd862, 0xb512, 0xbc25, 0xe60f, 0xdb2d, 0xe4e1, -0x2e4c, 0x46ed, 0x2280, 0x0c95, 0x3390, 0x0dba, 0xc912, 0xc227, 0xbe99, 0xd9c1, -0xe290, 0xed33, 0x2239, 0x44f4, 0x1ed4, 0x0166, 0x3720, 0x122c, 0xc1e5, 0xbe0b, -0xcc00, 0xd5f1, 0xd17f, 0xf3b3, 0x23a2, 0x3db4, 0x2624, 0x0cc4, 0x33e1, 0x1023, -0xc9ae, 0xb631, 0xc8cd, 0xdd8a, 0xceea, 0xfaf7, 0x3621, 0x3ded, 0x1ca5, 0x1b0d, -0x3ba6, 0x0216, 0xce92, 0xc394, 0xc90e, 0xdd1a, 0xd9c7, 0x0438, 0x3a3b, 0x43f5, -0x193b, 0x1b93, 0x427f, 0xfe8c, 0xc66d, 0xc591, 0xd58c, 0xe393, 0xe1bc, 0x0fe2, -0x3df6, 0x448e, 0x1c8a, 0x21c0, 0x3e71, 0xf9bd, 0xc96f, 0xc456, 0xd5d9, 0xe4b5, -0xe922, 0x1ce5, 0x418b, 0x417b, 0x1d09, 0x2518, 0x341d, 0xf03a, 0xcbea, 0xc1e1, -0xd6e8, 0xe7f3, 0xe55f, 0x1d2e, 0x4954, 0x3f9e, 0x1b23, 0x31e7, 0x3163, 0xe580, -0xcb7b, 0xbe90, 0xd27b, 0xe98e, 0xede5, 0x22f3, 0x51cc, 0x440f, 0x174a, 0x3744, -0x308b, 0xdab4, 0xc2e8, 0xc03f, 0xd50d, 0xe3f9, 0xf766, 0x2e0e, 0x4fbc, 0x4269, -0x17f2, 0x2ec2, 0x1f55, 0xd524, 0xbca2, 0xbb93, 0xda21, 0xe34e, 0xfad1, 0x31b6, -0x47da, 0x36e7, 0x19ff, 0x2ef6, 0x0ef3, 0xd0a0, 0xb94c, 0xb54a, 0xdd97, 0xe171, -0xf86b, 0x35bc, 0x47ba, 0x2983, 0x1694, 0x3324, 0x023b, 0xc961, 0xbc03, 0xb2d4, -0xd7d9, 0xe2e7, 0xf9f7, 0x3391, 0x4b1a, 0x23f3, 0x1255, 0x2f9f, 0xf2dd, 0xbf1b, -0xb8c8, 0xb595, 0xd67b, 0xe49e, 0x04eb, 0x3553, 0x491e, 0x20bc, 0x101c, 0x2d09, -0xefb9, 0xbc9b, 0xb456, 0xbc74, 0xdcb8, 0xe7e3, 0x1085, 0x3e2d, 0x4862, 0x20a4, -0x178e, 0x24e7, 0xe5be, 0xbfc5, 0xb5ac, 0xc6ce, 0xe4c1, 0xe9df, 0x156b, 0x41e6, -0x4347, 0x169b, 0x1dcf, 0x2537, 0xdbdb, 0xbd60, 0xb4ac, 0xc74f, 0xe58f, 0xf1d1, -0x1bdb, 0x438d, 0x41e3, 0x1215, 0x1c5f, 0x197b, 0xd34e, 0xbb05, 0xb7f2, 0xd3b2, -0xe362, 0xf0f9, 0x2581, 0x46a8, 0x3c22, 0x115f, 0x2009, 0x122f, 0xd304, 0xbd34, -0xb54b, 0xd890, 0xe911, 0xf7d8, 0x2be6, 0x4644, 0x3124, 0x11c4, 0x2d7b, 0x0ee0, -0xcfc2, 0xc445, 0xbf59, 0xdf01, 0xe6a3, 0xf6fe, 0x2fa7, 0x4f24, 0x32c6, 0x10fe, -0x360f, 0x14d0, 0xd1fe, 0xc5f6, 0xc3cd, 0xdf16, 0xe84d, 0x00f9, 0x3302, 0x4f34, -0x330f, 0x190f, 0x3c38, 0x0f70, 0xcd2f, 0xc1c9, 0xccf8, 0xe5e1, 0xe528, 0x0d0a, -0x3fdc, 0x4c89, 0x2965, 0x1572, 0x3558, 0x0773, 0xcf30, 0xbe56, 0xcfa1, 0xeeb4, -0xe390, 0x0d40, 0x446b, 0x47d6, 0x22c9, 0x1f4d, 0x33f7, 0xf611, 0xcd9c, 0xbd57, -0xc66d, 0xec7d, 0xe7bf, 0x0df9, 0x474d, 0x4b43, 0x1b2f, 0x1f2d, 0x35f1, 0xea3c, -0xc455, 0xbc6b, 0xc16f, 0xe41e, 0xef9d, 0x16e5, 0x457b, 0x4d9b, 0x1df1, 0x2052, -0x310e, 0xe35e, 0xbd3b, 0xbe4a, 0xd17b, 0xe63a, 0xf0dd, 0x2445, 0x4bde, 0x4c1f, -0x20d2, 0x25a1, 0x2da1, 0xe9a8, 0xc288, 0xb909, 0xd9c6, 0xee3e, 0xf6a6, 0x2ef9, -0x50a3, 0x43ee, 0x1dd3, 0x2eed, 0x2309, 0xe027, 0xcabc, 0xbd16, 0xdbde, 0xee25, -0xf339, 0x2c27, 0x5390, 0x40a0, 0x1b96, 0x375c, 0x1d2b, 0xd734, 0xc78b, 0xb807, -0xd541, 0xecee, 0xfe54, 0x2fa0, 0x5361, 0x3f28, 0x1522, 0x3393, 0x1266, 0xc88d, -0xbc85, 0xb8d2, 0xd4a8, 0xe5ab, 0x0438, 0x3396, 0x4c0c, 0x33cd, 0x0a79, 0x2169, -0xfe45, 0xc2f1, 0xb2f9, 0xb954, 0xe0e9, 0xe165, 0x029e, 0x2aa5, 0x318e, 0x465f, -0x33d0, 0x0444, 0xd0f3, 0xc734, 0xa46c, 0x9309, 0xec1b, 0xfbdf, 0x010e, 0x6440, -0x7e13, 0x1ed8, 0xeedd, 0xe7dd, 0x9c36, 0x94bd, 0xaeea, 0xb4e6, 0x08d9, 0x4ccc, -0x44d3, 0x3995, 0x43b3, 0xfbc8, 0xa9f8, 0xbc47, 0xb7e9, 0xb05c, 0xd4b9, 0x0205, -0x2fad, 0x38f1, 0x145d, 0xf759, 0x0aec, 0xf6cf, 0xb93a, 0xdb0a, 0x14b9, 0xe52f, -0xdb64, 0x2275, 0xfc04, 0xc169, 0x1482, 0x2708, 0xda58, 0x13ad, 0x34f3, 0xe68c, -0xf5c6, 0x0b27, 0xbfca, 0xc11f, 0x1a39, 0xf895, 0xf15a, 0x535e, 0x1fbe, 0xfd1c, -0x2fab, 0xeb46, 0xb207, 0xf114, 0xfe7d, 0xd0f4, 0x2a5f, 0x4be3, 0xf98f, 0x2db3, -0x365b, 0xcbe5, 0xd12f, 0x160e, 0xe93e, 0xe29c, 0x4478, 0x1d6f, 0x0413, 0x49f1, -0x0cdb, 0xc582, 0x08ff, 0x1ce3, 0xd295, 0x10d4, 0x44fb, 0xeff9, 0x15bb, 0x4310, -0xddfd, 0xd8c9, 0x34f7, 0xfaaf, 0xd716, 0x4457, 0x1cff, 0xe28a, 0x3514, 0x1237, -0xb5a9, 0x01cc, 0x3075, 0xd90a, 0x1130, 0x4b8f, 0xf1cd, 0x0fee, 0x37f4, 0xcf77, -0xc32c, 0x262d, 0xfb1f, 0xde11, 0x4cfa, 0x220f, 0xe7b6, 0x379f, 0x1630, 0xb473, -0xeb2b, 0x1f40, 0xcdde, 0xfb49, 0x44ba, 0xf7a8, 0x0b44, 0x3ad4, 0xdf56, 0xbc11, -0x192e, 0xfdae, 0xc1e6, 0x2be2, 0x260a, 0xe13b, 0x285b, 0x1e09, 0xb912, 0xe471, -0x2223, 0xd36d, 0xfe2f, 0x46c5, 0xe36b, 0xf7a8, 0x4755, 0xdf55, 0xa7b3, 0x1a23, -0x0b84, 0xc893, 0x2faf, 0x2991, 0xe2bb, 0x2481, 0x13cb, 0xb383, 0xe0a3, 0x1702, -0xc7e4, 0xf45d, 0x4b67, 0xf6a6, 0xf97a, 0x3e6f, 0xecd9, 0xadf3, 0xfeb4, 0xfd06, -0xc788, 0x1f7a, 0x200a, 0xe5ba, 0x31ba, 0x2511, 0xb3da, 0xe100, 0x2776, 0xc990, -0xe1ba, 0x44f0, 0xef0a, 0xe6e3, 0x3c2c, 0xf024, 0xb397, 0x1376, 0x054e, 0xc2a5, -0x2c7f, 0x2067, 0xc5d1, 0x227f, 0x2507, 0xa6ee, 0xd8b4, 0x2da2, 0xd0d2, 0xe5d2, -0x4ae3, 0xf3c8, 0xec01, 0x3d1d, 0xe4c8, 0xa76d, 0x0cd7, 0x02fe, 0xc051, 0x2a3f, -0x2ff4, 0xd96d, 0x206e, 0x2cdb, 0xbcc2, 0xcfce, 0x1d9e, 0xd936, 0xe286, 0x3c62, -0xf899, 0xf161, 0x4188, 0xfacc, 0xb89c, 0x13b2, 0x0f18, 0xbfc2, 0x1908, 0x2b9b, -0xdd40, 0x1c58, 0x31c8, 0xcc18, 0xe1de, 0x3029, 0xe1a2, 0xeab8, 0x4814, 0xf8bb, -0xec3b, 0x41cd, 0xfd3d, 0xbb42, 0x1ab1, 0x1bc5, 0xd03f, 0x2b94, 0x39e6, 0xe56b, -0x20f6, 0x302f, 0xc7e3, 0xe07e, 0x304b, 0xe35d, 0xef37, 0x556b, 0x0a77, 0xf3f3, -0x471e, 0x0715, 0xb6bf, 0x0a15, 0x15a7, 0xc8f0, 0x27ce, 0x49e1, 0xef3f, 0x24d8, -0x3fc8, 0xcf85, 0xd3a9, 0x2981, 0xe391, 0xe1e2, 0x5568, 0x1a44, 0xf6f8, 0x47a5, -0x0bb1, 0xb4f6, 0x0758, 0x180f, 0xc264, 0x1c7f, 0x4997, 0xe7b6, 0x1790, 0x3eec, -0xcc71, 0xc989, 0x25c5, 0xe0ff, 0xd5eb, 0x4cb5, 0x1585, 0xe9fb, 0x3f4e, 0x079f, -0xa4e8, 0xf8b6, 0x18b7, 0xbe0e, 0x140f, 0x4dcd, 0xe6f8, 0x106e, 0x3e48, 0xc659, -0xb8d1, 0x1fc6, 0xe2f7, 0xcafc, 0x4b21, 0x1aac, 0xddf9, 0x38ef, 0x0d86, 0xa172, -0xefb8, 0x1ae3, 0xb8b9, 0x022b, 0x4952, 0xe3b7, 0x0763, 0x3fb6, 0xcaa1, 0xb546, -0x2034, 0xe7b3, 0xc26e, 0x4341, 0x1b44, 0xd872, 0x37f9, 0x158c, 0xa302, 0xed16, -0x212e, 0xbda6, 0x0112, 0x4eb5, 0xe481, 0x0180, 0x448c, 0xd2be, 0xb34a, 0x2659, -0xf969, 0xc3e7, 0x4253, 0x2498, 0xd3ac, 0x2f84, 0x1c93, 0xa86a, 0xeae4, 0x2be9, -0xc824, 0xfb1e, 0x5254, 0xeb1f, 0xf85a, 0x40c6, 0xd602, 0xacc6, 0x20d2, 0xfcc1, -0xbfa1, 0x3d9b, 0x2b83, 0xd669, 0x2fcc, 0x202d, 0xa65f, 0xe170, 0x2e20, 0xdd4c, -0xe4e8, 0x1128, 0xe9c6, 0x2b2e, 0x54f5, 0xec68, 0xd881, 0x25b3, 0xe44f, 0x9e7f, -0xf130, 0xeb8e, 0xd492, 0x3413, 0x5451, 0x26e6, 0x289d, 0x2623, 0xcf51, 0xbd9d, -0xcfb5, 0xa20d, 0xdfe7, 0x36b7, 0x0cc4, 0x056d, 0x65fe, 0x4dbe, 0xdc03, 0xeb0b, -0xf3c5, 0xb95e, 0xbfab, 0xf463, 0x0575, 0x1cd4, 0x3d59, 0x1332, 0x1c9e, 0x36b2, -0xe6ff, 0xc1d2, 0xebab, 0xf875, 0xd9ed, 0xf751, 0x1ec8, 0x177a, 0x1fdf, 0x14b0, -0x158a, 0x1d8b, 0x09a1, 0xd3cc, 0xc301, 0xfa03, 0xda41, 0xd913, 0x31d2, 0x3bcd, -0x1398, 0x2276, 0x47f0, 0x04ad, 0xdb13, 0xde05, 0xbc40, 0xe0b4, 0xf233, 0xedf8, -0x2b4d, 0x5c62, 0x258d, 0x04db, 0x4756, 0x0b9d, 0xbaa9, 0xd2dc, 0xd3e6, 0xd2e5, -0xeb10, 0x1044, 0x260b, 0x4492, 0x307c, 0x0989, 0x37e3, 0x1952, 0xc9b1, 0xbe5d, -0xd980, 0xdd51, 0xcfb1, 0x0665, 0x3440, 0x3f66, 0x32e5, 0x2caa, 0x3828, 0x04a2, -0xd6f3, 0xb98c, 0xc152, 0xdc75, 0xd7fc, 0x131d, 0x50a8, 0x4584, 0x218f, 0x39e9, -0x3a8c, 0xe3c0, 0xca56, 0xc147, 0xc3c0, 0xe3a0, 0xec33, 0x13df, 0x4aaa, 0x4c83, -0x117c, 0x2896, 0x399a, 0xdc86, 0xc6f6, 0xcd47, 0xc6ce, 0xd9cc, 0xf86e, 0x19ad, -0x3a91, 0x491f, 0x123e, 0x24d9, 0x3cde, 0xe11b, 0xb37c, 0xc2df, 0xd7a4, 0xd130, -0xef29, 0x2c49, 0x3d20, 0x37d9, 0x16ea, 0x291c, 0x26ac, 0xda1f, 0xaaed, 0xb607, -0xe686, 0xd568, 0xe17d, 0x337f, 0x4b43, 0x2881, 0x1389, 0x38c7, 0x12c8, 0xcd26, -0xbcc3, 0xb56e, 0xdd1b, 0xe483, 0xea42, 0x2a90, 0x51ed, 0x261e, 0x0805, 0x4126, -0x1494, 0xbddc, 0xbaf3, 0xc450, 0xd324, 0xd5cd, 0xf712, 0x2ef6, 0x4d20, 0x2af3, -0x0e0c, 0x3762, 0x0ac6, 0xbe79, 0xae49, 0xc076, 0xd8d1, 0xd3ec, 0x0029, 0x3a43, -0x4756, 0x22ca, 0x1958, 0x35d2, 0xf721, 0xbeb2, 0xb3fe, 0xbef0, 0xda1f, 0xdc92, -0x07d3, 0x4050, 0x4bd0, 0x19d3, 0x154a, 0x3522, 0xefeb, 0xbbc4, 0xb715, 0xc994, -0xdf48, 0xe0b3, 0x1046, 0x40b6, 0x462c, 0x16f6, 0x1aab, 0x3230, 0xe981, 0xbd2a, -0xbab3, 0xd2a2, 0xe5c9, 0xe97f, 0x1c0b, 0x466f, 0x4272, 0x167d, 0x2642, 0x3042, -0xe930, 0xc684, 0xbe13, 0xdccc, 0xed63, 0xea9d, 0x2413, 0x5441, 0x43f9, 0x180c, -0x36e2, 0x2e3f, 0xdd7b, 0xc957, 0xc358, 0xdaa2, 0xeec1, 0xf6ba, 0x27c0, 0x5560, -0x448c, 0x1635, 0x38ef, 0x285a, 0xd524, 0xc336, 0xc6ef, 0xdd82, 0xe86a, 0x024a, -0x3514, 0x5243, 0x4024, 0x1679, 0x30ad, 0x19cb, 0xd2e3, 0xbea4, 0xc57f, 0xe4e0, -0xe5d6, 0xfff4, 0x3873, 0x4af7, 0x2f8e, 0x188b, 0x3243, 0x0881, 0xcd5e, 0xbb93, -0xbf31, 0xe52f, 0xe3f9, 0xfc94, 0x39c7, 0x4714, 0x1d41, 0x169d, 0x38c9, 0xfecd, -0xcb1a, 0xc0fc, 0xbdbe, 0xdc75, 0xe1b5, 0xfaa7, 0x3213, 0x48a1, 0x1b68, 0x15dc, -0x3a99, 0xf55f, 0xc01b, 0xbf71, 0xc2a6, 0xd4e4, 0xdf4d, 0x066a, 0x3170, 0x40f1, -0x1a26, 0x18e0, 0x342c, 0xedf9, 0xba41, 0xb3b4, 0xc38e, 0xd795, 0xe02b, 0x10cf, -0x387d, 0x3bf9, 0x151b, 0x1afe, 0x254b, 0xde99, 0xbc43, 0xb3bd, 0xc921, 0xde4a, -0xe189, 0x1332, 0x3ec6, 0x3af6, 0x0d82, 0x1fcf, 0x23ba, 0xd6bf, 0xb847, 0xb180, -0xcc73, 0xe0cc, 0xeb2b, 0x1cb5, 0x417e, 0x395b, 0x0e37, 0x260e, 0x1c37, 0xceea, -0xb693, 0xb466, 0xd44d, 0xde55, 0xeccf, 0x28e9, 0x4c64, 0x3a26, 0x1085, 0x2a16, -0x12d5, 0xcc04, 0xb7f6, 0xb4e4, 0xda25, 0xe424, 0xf801, 0x3387, 0x4c82, 0x2ff0, -0x133d, 0x33da, 0x0a6a, 0xc653, 0xba9f, 0xb9a4, 0xdb0d, 0xe2d3, 0xfd70, 0x3932, -0x535b, 0x2ec6, 0x131d, 0x36f2, 0x041c, 0xc4de, 0xbc13, 0xbb88, 0xdb49, 0xe632, -0x0792, 0x3bf9, 0x5215, 0x2df5, 0x197b, 0x38ba, 0xfc1c, 0xc000, 0xb9c1, 0xc559, -0xe3b9, 0xea55, 0x13bb, 0x45e0, 0x506f, 0x2598, 0x1a8a, 0x31d4, 0xf25d, 0xc2c1, -0xb752, 0xc926, 0xeaa3, 0xebad, 0x18ac, 0x4b3a, 0x4b14, 0x1dc9, 0x246e, 0x2f24, -0xe2ff, 0xc4be, 0xbca8, 0xccb7, 0xee7a, 0xf1d7, 0x1fad, 0x5446, 0x4e8c, 0x1a55, -0x2bfd, 0x2de3, 0xdbcc, 0xc7c4, 0xc19e, 0xcdf0, 0xeebf, 0x0347, 0x2b46, 0x50aa, -0x4efc, 0x1ae7, 0x2bc2, 0x29fc, 0xd661, 0xbcdd, 0xc496, 0xddc3, 0xe917, 0xff6c, -0x336f, 0x4f83, 0x433f, 0x1820, 0x2877, 0x176c, 0xd63d, 0xbf37, 0xbd41, 0xe3e4, -0xec70, 0xfccc, 0x35e8, 0x4cad, 0x2f68, 0x12a7, 0x2fac, 0x08d7, 0xcd76, 0xc4f5, -0xbf59, 0xdfbb, 0xe9f3, 0xfd34, 0x3194, 0x4aa3, 0x2767, 0x0f36, 0x33c2, 0x0048, -0xc54f, 0xc2fd, 0xbd10, 0xd605, 0xe41c, 0xff51, 0x2a83, 0x4801, 0x28e6, 0x0aff, -0x2f62, 0xfdb7, 0xbd39, 0xb775, 0xc18e, 0xd7dc, 0xe021, 0x0a7d, 0x33af, 0x423a, -0x2081, 0x0d26, 0x28f2, 0xf6aa, 0xc604, 0xb20f, 0xca22, 0xf929, 0xe0c9, 0xfe41, -0x2c91, 0x285c, 0x3479, 0x40e1, 0x11dd, 0xd23c, 0xd207, 0xa861, 0xa807, 0xfe96, -0xf904, 0x0d6b, 0x7934, 0x78f8, 0x0f08, 0xfce1, 0xe859, 0x8e1b, 0xa714, 0xc4a3, -0xd05d, 0x3229, 0x6379, 0x4af3, 0x48ea, 0x4a2d, 0xe67d, 0xa875, 0xd782, 0xc120, -0xb7cb, 0xfb9f, 0x1f2e, 0x34e8, 0x4bf0, 0x20cd, 0xf0b2, 0x1643, 0x0563, 0xbcd0, -0xf27f, 0x2741, 0xe7cd, 0xef58, 0x2d5f, 0xebc6, 0xc657, 0x2de0, 0x1cb6, 0xe47e, -0x4360, 0x2d6e, 0xe23e, 0x16ee, 0xf98d, 0xa445, 0xddbb, 0x207f, 0xe2c0, 0x123e, -0x5bce, 0x016d, 0x1099, 0x3582, 0xc93d, 0xb242, 0x0573, 0xeaa3, 0xcd42, 0x3ec8, -0x2edf, 0xedf6, 0x39f9, 0x19b8, 0xb85b, 0xe3bc, 0x1369, 0xd1a8, 0xf1db, 0x3e71, -0xf679, 0x05fa, 0x4211, 0xe5a8, 0xbfbb, 0x17fb, 0x0686, 0xc767, 0x1e4b, 0x24e5, -0xdea8, 0x2460, 0x26bf, 0xbfbf, 0xebef, 0x3662, 0xdb5b, 0xe735, 0x478f, 0xf36f, -0xe6aa, 0x3a12, 0xedab, 0xb885, 0x2168, 0x1a11, 0xd137, 0x2b7c, 0x29a9, 0xd6be, -0x2004, 0x24d0, 0xb744, 0xddad, 0x2f52, 0xe201, 0xeeef, 0x4b3b, 0xfc02, 0xef7b, -0x3d92, 0xf6b9, 0xb6be, 0x0b17, 0x0d77, 0xc534, 0x191c, 0x30b3, 0xe945, 0x23b0, -0x2f3b, 0xc9bb, 0xd7dc, 0x269c, 0xe46c, 0xd902, 0x3766, 0x0212, 0xeb25, 0x39af, -0x03e0, 0xb8e7, 0x077c, 0x169d, 0xcc6f, 0x1b10, 0x2e0e, 0xd19a, 0x0fd8, 0x38f6, -0xca91, 0xc8f9, 0x29d6, 0xf078, 0xdd5c, 0x3b96, 0x09ef, 0xf001, 0x3507, 0xfbb1, -0xb660, 0x03d5, 0x0e0a, 0xc387, 0x17f0, 0x3e5b, 0xe93c, 0x15a4, 0x38a5, 0xd46a, -0xc5fe, 0x1360, 0xe4bc, 0xda9b, 0x39bc, 0x0c8d, 0xef2a, 0x3f9f, 0x0fdb, 0xb193, -0xf8d2, 0x1694, 0xb855, 0xffea, 0x4558, 0xed39, 0x083b, 0x3cd1, 0xda45, 0xc36d, -0x1e6e, 0xe476, 0xc765, 0x430f, 0x19a5, 0xde45, 0x3c55, 0x16d3, 0xa619, 0xf171, -0x1f0a, 0xbe1b, 0x04f9, 0x4d9d, 0xeec4, 0x0d1f, 0x3e78, 0xccbe, 0xb49f, 0x1d9b, -0xeb29, 0xc2b6, 0x448d, 0x28e1, 0xe2a4, 0x3aab, 0x21b9, 0xad2c, 0xe5d9, 0x1d14, -0xbe21, 0xf5ec, 0x4db1, 0xef99, 0x030b, 0x4e45, 0xe3cc, 0xb105, 0x20c5, 0xfc50, -0xb9ac, 0x35e2, 0x2898, 0xd9cf, 0x3397, 0x236d, 0xace6, 0xea90, 0x2c38, 0xc65d, -0xf7eb, 0x5313, 0xe39f, 0xf211, 0x477a, 0xdbe9, 0xad7a, 0x1ffa, 0x0017, 0xc201, -0x3906, 0x27ff, 0xd56a, 0x2d70, 0x20b7, 0xa843, 0xe22b, 0x2d3a, 0xc8d1, 0xeff9, -0x5809, 0xf171, 0xf1ca, 0x4aa1, 0xe752, 0xa7f6, 0x1531, 0x03a8, 0xbd38, 0x3515, -0x35e4, 0xd873, 0x2cec, 0x2fa3, 0xaedb, 0xd92e, 0x2cc6, 0xccea, 0xe531, 0x5116, -0xf947, 0xf6dd, 0x4ce8, 0xef45, 0xaeac, 0x190f, 0x0bfc, 0xbc68, 0x2afb, 0x3612, -0xd723, 0x2687, 0x3899, 0xbdfb, 0xda26, 0x3069, 0xdbaf, 0xe6bf, 0x5016, 0x0057, -0xf1d5, 0x480e, 0xf64b, 0xad29, 0x13a0, 0x16f4, 0xc33e, 0x2614, 0x4041, 0xe193, -0x201a, 0x3648, 0xc1be, 0xd35e, 0x2aee, 0xe031, 0xe3b6, 0x52de, 0x0b18, 0xedc3, -0x4b67, 0x084a, 0xaf95, 0x0ccc, 0x1af7, 0xc089, 0x19da, 0x4369, 0xe6d2, 0x1d97, -0x422d, 0xcfe2, 0xd1f7, 0x2e93, 0xe6d4, 0xd904, 0x4acc, 0x0d46, 0xe47d, 0x425b, -0x0eb4, 0xb1bb, 0x06af, 0x2009, 0xc469, 0x12a4, 0x3fee, 0xdd98, 0x0e0f, 0x3d40, -0xcdb1, 0xc9b2, 0x2f38, 0xedc8, 0xcf7d, 0x42ef, 0x1026, 0xd9af, 0x3710, 0x1033, -0xad12, 0xfd62, 0x2285, 0xc358, 0x0c72, 0x48be, 0xe51c, 0x0a9a, 0x2ff8, 0xbdc8, -0xc28d, 0x2cc9, 0xfec9, 0xc7ca, 0x13e5, 0x17e1, 0x02ca, 0x35c6, 0x0fac, 0xcd93, -0xf8c0, 0xfbac, 0xbba6, 0xe67f, 0x0735, 0xd6a6, 0x1bde, 0x7350, 0x2eb9, 0xfad9, -0x2334, 0xeee4, 0xa104, 0xc9e5, 0xcf89, 0xd376, 0x2f8b, 0x2f58, 0x13f9, 0x6199, -0x5172, 0xd760, 0xdae6, 0x0109, 0xaaab, 0x9f01, 0x11f6, 0x1c74, 0xff8b, 0x303b, -0x3d89, 0x2a49, 0x1900, 0xe5d6, 0xbb94, 0xe00a, 0xeeb6, 0xce23, 0x0253, 0x3291, -0x20e8, 0x0d77, 0x2650, 0x2ac1, 0xf46d, 0xf971, 0xdbe5, 0xc599, 0xf13a, 0xdd86, -0xebfb, 0x30a4, 0x422d, 0x0726, 0x20e1, 0x53cf, 0xe990, 0xbf8d, 0xd717, 0xc738, -0xcc12, 0xed69, 0x1207, 0x2679, 0x4b59, 0x2072, 0x0f6e, 0x3b3c, 0xef93, 0xaf82, -0xc07e, 0xdcf5, 0xccea, 0xe17b, 0x31b5, 0x3ad1, 0x3673, 0x24ae, 0x1fad, 0x2260, -0xf0dd, 0xc29e, 0xb494, 0xe43c, 0xe377, 0xdb2b, 0x2318, 0x45fc, 0x34e0, 0x20c4, -0x3ea5, 0x232d, 0xdb31, 0xcc1d, 0xb320, 0xc65a, 0xdf18, 0xea47, 0x25f0, 0x5cd4, -0x4386, 0x10e7, 0x3d78, 0x214b, 0xc538, 0xbca9, 0xbe8b, 0xcd16, 0xe049, 0x05f5, -0x2fe8, 0x5197, 0x45f2, 0x0fc2, 0x2f2f, 0x1971, 0xc5a7, 0xb7fc, 0xca80, 0xd975, -0xd7df, 0x0c99, 0x3a4e, 0x3fc6, 0x30e6, 0x13a0, 0x2b87, 0x0f79, 0xcd82, 0xaf27, -0xc107, 0xe381, 0xd5f3, 0x035c, 0x44e6, 0x44fc, 0x1db9, 0x1e95, 0x3a4e, 0xf713, -0xc17f, 0xb545, 0xc44b, 0xea43, 0xe0b2, 0x034f, 0x458e, 0x4e96, 0x1557, 0x1819, -0x3caa, 0xeb53, 0xb81f, 0xc29d, 0xcb34, 0xd827, 0xea2e, 0x153f, 0x3683, 0x4599, -0x17a8, 0x1025, 0x3238, 0xefae, 0xb3df, 0xb7d0, 0xd811, 0xd6f7, 0xd85a, 0x1792, -0x3a94, 0x35ea, 0x1657, 0x21c8, 0x243d, 0xdfb1, 0xbb30, 0xb0e9, 0xceed, 0xddbf, -0xdff2, 0x1be1, 0x44e0, 0x3265, 0x0879, 0x260d, 0x1f6a, 0xcd4c, 0xba1b, 0xbafd, -0xcb3d, 0xd899, 0xeb07, 0x19d6, 0x3c13, 0x3544, 0x08ed, 0x2407, 0x1daa, 0xcd68, -0xb792, 0xbf01, 0xd1c2, 0xd611, 0xf34b, 0x259b, 0x3b2f, 0x2f39, 0x1053, 0x2d78, -0x1a05, 0xd265, 0xba97, 0xc02a, 0xdab7, 0xd903, 0xf86d, 0x2ff9, 0x403d, 0x28d3, -0x14a1, 0x34af, 0x0a0e, 0xcda4, 0xc3ac, 0xc13a, 0xdd8d, 0xe2ea, 0xfd27, 0x2eb2, -0x45ac, 0x26be, 0x14ec, 0x3dd9, 0x06bc, 0xc81d, 0xc6e2, 0xc719, 0xd8c3, 0xe5c7, -0x0b66, 0x32c9, 0x4b92, 0x2cb4, 0x19ce, 0x3c10, 0x0272, 0xc5eb, 0xbb96, 0xccd7, -0xe07a, 0xdfbb, 0x160a, 0x4341, 0x4749, 0x2676, 0x21c7, 0x2fd3, 0xf0d0, 0xc6ee, -0xb624, 0xcad8, 0xe85f, 0xe7c5, 0x1d81, 0x4b84, 0x45af, 0x1eba, 0x2c0d, 0x30c1, -0xe4ba, 0xca8d, 0xbdbe, 0xcc89, 0xed50, 0xf3dd, 0x2203, 0x5159, 0x4cd1, 0x1b22, -0x2e08, 0x3255, 0xe28f, 0xc7e6, 0xc2e3, 0xd510, 0xe8de, 0xfa14, 0x2846, 0x4a33, -0x4c04, 0x1fed, 0x2f64, 0x2cdb, 0xe195, 0xc51d, 0xc13f, 0xdb62, 0xe696, 0xfa3e, -0x31bd, 0x4d3c, 0x4355, 0x2150, 0x33b3, 0x204a, 0xe0d7, 0xc877, 0xbdd9, 0xdeff, -0xeb46, 0x0024, 0x3a0c, 0x5485, 0x3c57, 0x1fe4, 0x3a57, 0x110e, 0xd1f0, 0xc4f8, -0xbfae, 0xe303, 0xf0e8, 0x0757, 0x3795, 0x525c, 0x364d, 0x163e, 0x3411, 0x078d, -0xc95e, 0xbed3, 0xc146, 0xdd79, 0xe8cb, 0x0fb0, 0x3b8b, 0x4b40, 0x2f52, 0x1708, -0x2c9b, 0xf6f7, 0xc33e, 0xb8f8, 0xc0a0, 0xe27b, 0xe6d8, 0x0c22, 0x3d9b, 0x4878, -0x24a6, 0x186c, 0x2467, 0xe600, 0xc014, 0xb323, 0xbc0b, 0xe0eb, 0xe8da, 0x0f11, -0x3cef, 0x40c5, 0x12df, 0x1430, 0x227a, 0xdb2e, 0xb8c4, 0xb5de, 0xc528, 0xdd7a, -0xe824, 0x13d4, 0x3e15, 0x4384, 0x124e, 0x1469, 0x1e10, 0xd6df, 0xb7fb, 0xb8e3, -0xcdaf, 0xdd42, 0xecbb, 0x1e7d, 0x3c6f, 0x378a, 0x1149, 0x1e8a, 0x1b08, 0xd447, -0xb3c7, 0xb0b3, 0xd341, 0xe16d, 0xebda, 0x22db, 0x4450, 0x345d, 0x0fcd, 0x27aa, -0x137c, 0xcfd2, 0xc241, 0xbb1b, 0xd538, 0xe771, 0xf62c, 0x297f, 0x4c37, 0x3271, -0x103e, 0x360c, 0x143c, 0xc8cb, 0xc2e2, 0xc46f, 0xd919, 0xe83f, 0x0316, 0x2e44, -0x49f7, 0x320d, 0x1102, 0x34eb, 0x0f20, 0xc998, 0xc1e5, 0xc68b, 0xd8b7, 0xe3aa, -0x0e51, 0x3839, 0x473d, 0x306d, 0x1936, 0x313b, 0x023a, 0xca3b, 0xb9cb, 0xc4e8, -0xe9a8, 0xe8e8, 0x0e4f, 0x4390, 0x4a72, 0x23d2, 0x1d52, 0x31ca, 0xf0b0, 0xc813, -0xbd25, 0xc202, 0xe6ea, 0xee18, 0x12c8, 0x4476, 0x4b2e, 0x198b, 0x19a1, 0x2fcc, -0xe518, 0xbf8d, 0xbe9e, 0xcb6d, 0xe622, 0xee0e, 0x167e, 0x3fbf, 0x46fb, 0x1a7d, -0x1f4e, 0x2d08, 0xe17f, 0xbedd, 0xbaa3, 0xcc16, 0xe196, 0xeedc, 0x21cc, 0x44ed, -0x4348, 0x1a18, 0x2363, 0x242e, 0xdc65, 0xbd61, 0xb300, 0xcfa0, 0xe712, 0xe5c7, -0x169f, 0x5f17, 0x7299, 0x2bb1, 0x0b65, 0xe2fd, 0x9b1c, 0xa3b5, 0xaeb5, 0xe147, -0x3787, 0x593a, 0x5290, 0x4a3c, 0x2e69, 0xcbb4, 0xa91f, 0xc5a3, 0xbd85, 0xd07b, -0x1055, 0x3d01, 0x2411, 0x222c, 0x2b1a, 0x0b05, 0xffdc, 0xe3f2, 0xcf8c, 0xf390, -0x15ad, 0xd9f5, 0xc944, 0x2d37, 0x09de, 0xc93f, 0x0d00, 0x229d, 0x0eb5, 0x31fb, -0x193d, 0xdefd, 0x0b6e, 0xe2b8, 0x80c1, 0xd2cb, 0x1719, 0xe9c2, 0x3008, 0x6a8a, -0xfee8, 0x01bc, 0x299a, 0xb39d, 0xa48f, 0x0798, 0xe5e9, 0xddfa, 0x41e1, 0x17dc, -0xf43b, 0x3829, 0x05c3, 0xbd89, 0xf1bc, 0x0dab, 0xcd37, 0xfad8, 0x2e14, 0xf080, -0x107b, 0x24ea, 0xd852, 0xd4a0, 0x17fd, 0xfd24, 0xd818, 0x2b57, 0x168d, 0xdb81, -0x1759, 0x0cdb, 0xc867, 0xf2e6, 0x257d, 0xe349, 0xfff1, 0x39a1, 0xe33d, 0xee45, -0x2b9d, 0xe388, 0xc702, 0x21a8, 0x103e, 0xda0f, 0x2f4b, 0x1b70, 0xd6c1, 0x1b55, -0x104d, 0xb577, 0xe811, 0x28c6, 0xe0aa, 0xfee3, 0x4403, 0xf56f, 0xf711, 0x2c32, -0xe60a, 0xbd96, 0x0d61, 0x048f, 0xce3d, 0x272f, 0x325d, 0xf1c7, 0x2094, 0x1ff0, -0xc860, 0xe30a, 0x2515, 0xdac5, 0xe92d, 0x441f, 0x0548, 0xfb76, 0x3d79, 0xfd5c, -0xbecb, 0x1149, 0x13f9, 0xd214, 0x2a6f, 0x3388, 0xe6f8, 0x2190, 0x2948, 0xc4a5, -0xdd42, 0x2f43, 0xe6af, 0xf03f, 0x54db, 0x13d9, 0xfca6, 0x3215, 0xf506, 0xc57a, -0x12c0, 0x0f9f, 0xd3cc, 0x322e, 0x4301, 0xf273, 0x23ab, 0x356e, 0xd3b2, 0xd051, -0x21b7, 0xf281, 0xecda, 0x4489, 0x12f0, 0x0242, 0x4407, 0x06d1, 0xbafe, 0x0b6c, -0x1d26, 0xc6ee, 0x19bc, 0x44e9, 0xe86d, 0x13b7, 0x39ca, 0xd446, 0xd119, 0x2941, -0xee93, 0xe7c5, 0x4bc2, 0x0643, 0xe908, 0x4535, 0x0444, 0xaaed, 0x0a10, 0x21a1, -0xc807, 0x1964, 0x41d6, 0xe77b, 0x16b3, 0x34e4, 0xc869, 0xc8dc, 0x2196, 0xe4ba, -0xdb97, 0x4973, 0x106a, 0xe7d9, 0x3cc5, 0x0a39, 0xa769, 0xf083, 0x1925, 0xc4c2, -0x075d, 0x3c4a, 0xe3ca, 0x0d28, 0x38d3, 0xc8d1, 0xbd34, 0x29a4, 0xea91, 0xbfc6, -0x3ad0, 0x0fbe, 0xd348, 0x3125, 0x0f03, 0xa6a3, 0xf4e3, 0x222b, 0xbe73, 0x00e2, -0x3cfa, 0xd671, 0xff6d, 0x3893, 0xc753, 0xb6c9, 0x236e, 0xec95, 0xc571, 0x3925, -0x1324, 0xdbd6, 0x2c09, 0x07a8, 0xaa2d, 0xf242, 0x1fa6, 0xc716, 0x042c, 0x441c, -0xe490, 0xffd3, 0x3dc4, 0xdc2a, 0xb9f6, 0x1f30, 0xfbb0, 0xca2e, 0x371c, 0x2003, -0xddf1, 0x31fa, 0x2307, 0xb4d8, 0xf004, 0x2cbc, 0xc878, 0xf7c6, 0x4caf, 0xed6b, -0xfe78, 0x48e2, 0xe5f3, 0xb861, 0x209c, 0xffdd, 0xc990, 0x3a8f, 0x2235, 0xd8df, -0x3307, 0x26fb, 0xb85c, 0xf04e, 0x2cb8, 0xd049, 0xfa7c, 0x49ae, 0xedac, 0xfa25, -0x3f7d, 0xe587, 0xbae6, 0x1de2, 0x03f4, 0xc964, 0x35b0, 0x2bf3, 0xdcc1, 0x287a, -0x2509, 0xb53e, 0xdd34, 0x21f5, 0xd014, 0xf4e6, 0x5327, 0xfbed, 0xf63d, 0x422a, -0xebde, 0xadff, 0x109b, 0x03c0, 0xc66e, 0x34a1, 0x371f, 0xe1e5, 0x266b, 0x298a, -0xb6ec, 0xdb6e, 0x2815, 0xd421, 0xf019, 0x5352, 0xff26, 0xf3f2, 0x43a2, 0xf389, -0xb155, 0x11bc, 0x093e, 0xc3cf, 0x2cd7, 0x37d3, 0xe04d, 0x22e3, 0x2ecd, 0xb8a8, -0xd4f6, 0x2b5c, 0xd879, 0xe9c1, 0x5345, 0x0074, 0xeb1b, 0x3d0d, 0xf0a8, 0xa78e, -0x0f83, 0x1369, 0xc523, 0x2e80, 0x3d4c, 0xdb13, 0x1e41, 0x2ecc, 0xb34d, 0xd013, -0x2f65, 0xd81e, 0xe458, 0x57d2, 0x0406, 0xebe0, 0x457a, 0xf7e1, 0xa66e, 0x0b6f, -0x0e7a, 0xb8d1, 0x251b, 0x3fe1, 0xdd7d, 0x20b9, 0x3687, 0xbb17, 0xd0b9, 0x2e06, -0xd6de, 0xd8c9, 0x50ce, 0x0665, 0xe605, 0x3fce, 0xfc63, 0xac6f, 0x0f4a, 0x249e, -0xcfcc, 0xfc68, 0x0488, 0xeb03, 0x4794, 0x43ec, 0xda83, 0xf3bd, 0x2644, 0xc019, -0xac19, 0xfdb7, 0xdae0, 0xebc8, 0x4a7e, 0x4842, 0x204b, 0x2f4a, 0x0bd7, 0xb466, -0xc7b6, 0xc25a, 0x9ff5, 0xfeaa, 0x3147, 0xf5d6, 0x1606, 0x7098, 0x2536, 0xcb1f, -0xef7c, 0xd8bb, 0xa610, 0xc6a6, 0xf94d, 0x01cf, 0x2326, 0x2e92, 0xfa36, 0x1b23, -0x1fee, 0xc9e0, 0xbf64, 0xf0f7, 0xebf9, 0xcd60, 0xfed7, 0x1727, 0x0a34, 0x1723, -0x0a36, 0x0e7b, 0x18aa, 0xfc64, 0xb854, 0xc985, 0xfdd8, 0xc68b, 0xea58, 0x3e80, -0x2a34, 0x0ba2, 0x2d28, 0x367f, 0xec1b, 0xe1de, 0xce20, 0xb654, 0xf084, 0xed7d, -0xf556, 0x44c2, 0x5de8, 0x118c, 0x103a, 0x43c2, 0xea97, 0xbbb3, 0xd781, 0xd5a7, -0xe105, 0xfd04, 0x1bc6, 0x2dbd, 0x4a4e, 0x2262, 0x090c, 0x37f3, 0x0697, 0xc337, -0xc445, 0xe70d, 0xe217, 0xdb53, 0x1953, 0x38c9, 0x40c1, 0x2ede, 0x22c3, 0x260c, -0xfc8c, 0xcfd4, 0xb0e1, 0xd39e, 0xe34c, 0xdae1, 0x253f, 0x508f, 0x342f, 0x1aa5, -0x3628, 0x1e6e, 0xd753, 0xc9cd, 0xb7c4, 0xd23c, 0xef41, 0xeb30, 0x1cc2, 0x523c, -0x3c38, 0x02b5, 0x29f9, 0x28a2, 0xd759, 0xd1f8, 0xd1bf, 0xd245, 0xe508, 0xfe91, -0x19fc, 0x3b30, 0x3d9b, 0x0a4c, 0x2fd0, 0x37f4, 0xdc8c, 0xbe49, 0xd7b4, 0xe591, -0xd3af, 0xfd0f, 0x3070, 0x36f1, 0x325e, 0x18a4, 0x3386, 0x27ca, 0xdc73, 0xb513, -0xcdc8, 0xf809, 0xd5d9, 0xf013, 0x4334, 0x4964, 0x2395, 0x1b7b, 0x3c5a, 0x0fe4, -0xd7a3, 0xc6c6, 0xc6b6, 0xf0cf, 0xeb7d, 0xf80b, 0x3914, 0x525a, 0x2445, 0x1417, -0x4928, 0x0ff5, 0xc35d, 0xc78a, 0xd244, 0xdff9, 0xe35e, 0x07df, 0x35ae, 0x4ba7, -0x2974, 0x1106, 0x3cf3, 0x0fec, 0xc4b4, 0xb9c7, 0xd562, 0xe489, 0xd970, 0x0e52, -0x3f61, 0x43d6, 0x27aa, 0x2131, 0x364b, 0xfd16, 0xc955, 0xb961, 0xcde0, 0xe8ce, -0xe024, 0x0e4f, 0x4544, 0x4582, 0x18cd, 0x22be, 0x3a77, 0xf22e, 0xc4f3, 0xbabf, -0xcce0, 0xe32e, 0xe352, 0x12f7, 0x43a1, 0x4666, 0x1401, 0x1c0c, 0x30e6, 0xe619, -0xbb56, 0xbb95, 0xd491, 0xe00b, 0xe61a, 0x17a4, 0x3b47, 0x3b00, 0x10e7, 0x1c7e, -0x2707, 0xe361, 0xb750, 0xb2d2, 0xd7be, 0xdb41, 0xe145, 0x2096, 0x40ed, 0x319a, -0x118b, 0x2924, 0x1a2e, 0xd6af, 0xba5f, 0xad6c, 0xd2c9, 0xe064, 0xe67c, 0x25df, -0x4ea4, 0x3357, 0x0fc7, 0x312c, 0x1020, 0xc418, 0xb5ff, 0xb68a, 0xd4f7, 0xe2ef, -0xfb14, 0x2e11, 0x4c3e, 0x3280, 0x08fc, 0x2966, 0x0e36, 0xc69d, 0xb3ba, 0xbf26, -0xde72, 0xe461, 0x0918, 0x3887, 0x4967, 0x313c, 0x1236, 0x2763, 0x0526, 0xcb44, -0xb35a, 0xc8b5, 0xed8f, 0xdf83, 0x05bf, 0x41b2, 0x4548, 0x20ab, 0x1a30, 0x2bd9, -0xf884, 0xce0f, 0xb377, 0xc10c, 0xede8, 0xe5b7, 0x0520, 0x42f2, 0x4b64, 0x19c0, -0x1a50, 0x2fd7, 0xee52, 0xc8d4, 0xbcea, 0xc661, 0xe5d5, 0xe9b8, 0x0e4b, 0x42da, -0x4c23, 0x187a, 0x1ba9, 0x2fdd, 0xe89e, 0xbcad, 0xb84a, 0xd201, 0xe619, 0xeba8, -0x1a61, 0x40ef, 0x41b7, 0x151a, 0x1cbf, 0x2b05, 0xea44, 0xc1f8, 0xbc6c, 0xdb3c, -0xe422, 0xe69f, 0x208e, 0x4881, 0x3cc7, 0x1503, 0x2aa9, 0x27ed, 0xe431, 0xc5cc, -0xbdfa, 0xdd9a, 0xe8e9, 0xf074, 0x2496, 0x4a59, 0x3e74, 0x1374, 0x2e8f, 0x252c, -0xd82c, 0xba66, 0xbeda, 0xe1cc, 0xe3a5, 0xf456, 0x3043, 0x4df4, 0x382a, 0x0d8b, -0x25d9, 0x1516, 0xd249, 0xb805, 0xbbdd, 0xe317, 0xe31f, 0xf717, 0x307f, 0x4438, -0x2ce7, 0x1089, 0x29b8, 0x060d, 0xc757, 0xb6c7, 0xb848, 0xdd4c, 0xde36, 0xf60e, -0x341a, 0x45f6, 0x1fc8, 0x0b03, 0x2ed5, 0xff75, 0xc14a, 0xb3bb, 0xb4dc, 0xd6d2, -0xdc36, 0xfbb0, 0x356c, 0x49c3, 0x2300, 0x0fe9, 0x2f18, 0xf499, 0xb802, 0xb1b2, -0xc06f, 0xdc85, 0xde22, 0x0805, 0x3cc1, 0x488e, 0x1f2e, 0x11d7, 0x2c64, 0xf3b1, -0xbd78, 0xadbb, 0xc5eb, 0xe451, 0xde57, 0x0e82, 0x4140, 0x4137, 0x1916, 0x1b84, -0x28d4, 0xe639, 0xc1a0, 0xb2e7, 0xc697, 0xe4be, 0xdf87, 0x10dc, 0x49b4, 0x457d, -0x1479, 0x2405, 0x2b0f, 0xdcbe, 0xbefc, 0xb3a9, 0xc6dd, 0xe60b, 0xed45, 0x1b13, -0x497b, 0x4531, 0x1324, 0x24b0, 0x243c, 0xd210, 0xb83d, 0xb984, 0xd0bc, 0xe2a6, -0xf3b7, 0x2766, 0x4a82, 0x4204, 0x133f, 0x22b4, 0x1b4e, 0xd4a3, 0xba37, 0xbaaf, -0xdf26, 0xea12, 0xf84b, 0x3177, 0x4e17, 0x39af, 0x193b, 0x308a, 0x13c1, 0xd6b0, -0xc5d3, 0xbffc, 0xe599, 0xeec6, 0xff4d, 0x38ac, 0x5167, 0x346a, 0x1b9d, 0x376a, -0x0ce4, 0xd4a8, 0xc78f, 0xc195, 0xe4f4, 0xf0f5, 0x07bb, 0x3cdc, 0x5981, 0x3510, -0x1b26, 0x3a31, 0x03fb, 0xca72, 0xc53e, 0xcd25, 0xecab, 0xf768, 0x193e, 0x437d, -0x53af, 0x2c6f, 0x15b8, 0x31bf, 0xff10, 0xcc99, 0xc147, 0xd348, 0xee05, 0xee95, -0x1782, 0x2f2b, 0x4b20, 0x5a80, 0x2b14, 0xfd25, 0xdd6a, 0xccb5, 0x9c77, 0xbb91, -0x0abb, 0xfa6d, 0x308d, 0x8b3b, 0x6386, 0x0f1b, 0x0366, 0xd9a6, 0x969a, 0xbb36, -0xbe42, 0xd650, 0x4a43, 0x5e11, 0x39f6, 0x4e5f, 0x3f3f, 0xd1f7, 0xbac7, 0xda01, -0xb75e, 0xdb85, 0x0689, 0x0f50, 0x402d, 0x3a48, 0xf492, 0xf3ba, 0x232e, 0xe3c2, -0xc221, 0x1c7e, 0x103b, 0xda32, 0x0d99, 0x12a9, 0xc374, 0xe4a9, 0x2fee, 0xef59, -0xf571, 0x4551, 0x09ce, 0xee4d, 0x190c, 0xdd87, 0xa5eb, 0xf5c9, 0x0d02, 0xd8dd, -0x32e0, 0x4556, 0xf27b, 0x272d, 0x1a0f, 0xac2d, 0xc929, 0x0d48, 0xd065, 0xe73f, -0x4fb6, 0x0a4b, 0xfcc1, 0x4512, 0xed54, 0xb2b9, 0x0350, 0xfc0b, 0xbed7, 0x1926, -0x2f0c, 0xe1a6, 0x2871, 0x338a, 0xc365, 0xd8fc, 0x2261, 0xe12a, 0xda5e, 0x3836, -0x02a6, 0xeb2d, 0x3c29, 0xfc95, 0xb47f, 0x126c, 0x2240, 0xc4df, 0x1301, 0x42d9, -0xddbd, 0x05c8, 0x2ff4, 0xc609, 0xc9ef, 0x2ebd, 0xf193, 0xda07, 0x46da, 0x0cd3, -0xe052, 0x39eb, 0x0085, 0xa3df, 0xfdbd, 0x1d67, 0xc36d, 0x1321, 0x461a, 0xe3db, -0x121d, 0x3bc5, 0xce7e, 0xc611, 0x1e92, 0xe869, 0xd146, 0x3d6e, 0x12f6, 0xe781, -0x3a2e, 0x100e, 0xb4c0, 0xf87f, 0x2451, 0xce12, 0xfd54, 0x3b61, 0xe9af, 0x0485, -0x363a, 0xd7a5, 0xc531, 0x26b6, 0xfb26, 0xd3af, 0x4024, 0x13d3, 0xcf38, 0x31ca, -0x1fe6, 0xacba, 0xe830, 0x28d0, 0xd67b, 0x03f4, 0x4390, 0xeff5, 0x0d9b, 0x3cdc, -0xd2ef, 0xbce5, 0x1df5, 0xf194, 0xcc0a, 0x3c7b, 0x22be, 0xe9d0, 0x37e4, 0x1f21, -0xbf6a, 0xed14, 0x13f9, 0xccad, 0xfeed, 0x36f2, 0xe931, 0x0bd9, 0x4870, 0xe9a7, -0xc649, 0x2406, 0x009e, 0xc7de, 0x28c6, 0x1d14, 0xe19d, 0x2d2e, 0x24eb, 0xc1ae, -0xf293, 0x2948, 0xd034, 0xfc36, 0x4c80, 0xed33, 0xf76a, 0x4574, 0xe546, 0xb51f, -0x205e, 0x01e4, 0xc8f6, 0x3c9b, 0x2dfd, 0xe000, 0x3231, 0x23e4, 0xac3f, 0xe1e2, -0x2470, 0xc806, 0xf279, 0x51f9, 0xfc93, 0xfd3d, 0x471f, 0xf14b, 0xb564, 0x0d8d, -0xf7a1, 0xbaf7, 0x2ae2, 0x3330, 0xe3cf, 0x2876, 0x2f9d, 0xbe99, 0xd8ed, 0x2066, -0xcc5b, 0xe037, 0x444b, 0xfc55, 0xf1ae, 0x3dee, 0xedb1, 0xa9f3, 0x0f58, 0x052a, -0xb88b, 0x286b, 0x32e9, 0xd191, 0x1a2d, 0x2b19, 0xb1ba, 0xd055, 0x2574, 0xcd9d, -0xe17a, 0x4f5d, 0xf991, 0xe9c8, 0x4424, 0xee22, 0xa03f, 0x0b3e, 0x0833, 0xb2f6, -0x25d7, 0x3fb5, 0xd971, 0x1eca, 0x3552, 0xb55f, 0xc5ed, 0x2341, 0xd2b5, 0xd7c1, -0x523e, 0x069d, 0xe63d, 0x453d, 0xfaec, 0xa137, 0x0414, 0x12c4, 0xb981, 0x1bb8, -0x4054, 0xdb21, 0x1feb, 0x3f6a, 0xbc6b, 0xcb19, 0x2eaa, 0xdddc, 0xd782, 0x53f0, -0x0db9, 0xe5f5, 0x4ae5, 0x09f1, 0xaaaa, 0x08ea, 0x1b96, 0xc280, 0x22c4, 0x4ce0, -0xe24f, 0x1cfe, 0x4491, 0xc23a, 0xc424, 0x2faf, 0xe9a8, 0xd606, 0x50b8, 0x16c3, -0xe5a3, 0x41e4, 0x0b1a, 0xa940, 0xfef6, 0x1bdf, 0xbfb1, 0x1607, 0x4e4e, 0xe252, -0x116e, 0x44af, 0xc71f, 0xbeed, 0x2c56, 0xed57, 0xd13f, 0x46da, 0x1220, 0xdf44, -0x3fcf, 0x0e72, 0xa687, 0xfe99, 0x22c2, 0xc0f4, 0x10f5, 0x4ab0, 0xdcc9, 0x0862, -0x42d3, 0xcce8, 0xbf2b, 0x2c4a, 0xf130, 0xcf23, 0x47a0, 0x1557, 0xd894, 0x3b17, -0x15eb, 0xac91, 0xfc3e, 0x2839, 0xc889, 0x0a6b, 0x4a0a, 0xe524, 0x0571, 0x40a3, -0xd642, 0xc2d3, 0x2b1c, 0xfa19, 0xd4f9, 0x465b, 0x1ef6, 0xe106, 0x371e, 0x15ec, -0xb185, 0xfc2f, 0x2898, 0xcc97, 0x0b55, 0x4c1f, 0xebc4, 0x08bc, 0x3f08, 0xd705, -0xc599, 0x2bb5, 0x081d, 0xcd96, 0x0d3b, 0x0ffa, 0x0823, 0x3f09, 0x1a45, 0xdad9, -0x0662, 0x07b7, 0xbb6a, 0xde9a, 0x0740, 0xda46, 0x0e1e, 0x6549, 0x38b1, 0x04bd, -0x2510, 0xf943, 0xad98, 0xc9a0, 0xca5c, 0xcaba, 0x22c9, 0x2b10, 0x01f0, 0x511a, -0x637c, 0xe409, 0xcfea, 0xff1b, 0xbae4, 0x9b34, 0xfafc, 0x154f, 0xfdb5, 0x2da1, -0x2e82, 0x1b20, 0x2472, 0xf46c, 0xbc6b, 0xd8c3, 0xf895, 0xcd65, 0xe4ee, 0x20c1, -0x1821, 0x08d6, 0x178c, 0x2a03, 0x07e8, 0xfe05, 0xe136, 0xbccf, 0xeb99, 0xdae7, -0xd3aa, 0x1d70, 0x3e94, 0x094b, 0x0900, 0x5434, 0x0901, 0xc4b1, 0xdc6e, 0xc832, -0xca7f, 0xe370, 0xfc55, 0x19fb, 0x5037, 0x3174, 0xfe1c, 0x3bdc, 0x1079, 0xb5a5, -0xbd97, 0xde91, 0xd7dc, 0xd8e9, 0x1ed3, 0x2fd7, 0x3373, 0x2e1c, 0x130d, 0x2861, -0x0ada, 0xcec0, 0xaf81, 0xd3f1, 0xe991, 0xcbf7, 0x0636, 0x408c, 0x3d14, 0x22da, -0x2e7f, 0x334f, 0xf091, 0xd23f, 0xb6f6, 0xbe39, 0xe0ea, 0xdac6, 0x0ab7, 0x52de, -0x5241, 0x1a28, 0x36a7, 0x3ee4, 0xdc10, 0xbfb1, 0xc06c, 0xc69f, 0xdf82, 0xf62e, -0x1f54, 0x4e25, 0x578d, 0x17a6, 0x26c4, 0x37fc, 0xe05d, 0xc099, 0xcd8c, 0xd886, -0xd8c3, 0xfcba, 0x2d83, 0x3fa6, 0x48bb, 0x1e77, 0x2a31, 0x31eb, 0xe98e, 0xbcf5, -0xc196, 0xe4e4, 0xdb34, 0xf4b5, 0x398d, 0x47e8, 0x3526, 0x2168, 0x3d9a, 0x20eb, -0xddcb, 0xbe09, 0xb85c, 0xe775, 0xe3f6, 0xedd1, 0x3731, 0x576a, 0x2d99, 0x1229, -0x4011, 0x0fb4, 0xc58a, 0xc2e0, 0xc163, 0xd8b3, 0xe485, 0xfbc4, 0x28a2, 0x4aba, -0x2b57, 0x06a4, 0x385f, 0x150e, 0xc2cd, 0xb65c, 0xcd33, 0xde60, 0xd4fe, 0x0096, -0x3507, 0x45bc, 0x2781, 0x142c, 0x33ba, 0x049c, 0xc775, 0xb39c, 0xc6ec, 0xe39b, -0xd75b, 0x0203, 0x3c34, 0x4589, 0x1c2f, 0x171d, 0x336b, 0xeff6, 0xbf31, 0xb8c6, -0xc21c, 0xde19, 0xe412, 0x0b3a, 0x399a, 0x4631, 0x1799, 0x116c, 0x3085, 0xeefe, -0xbcec, 0xb922, 0xcdc6, 0xe051, 0xe2d7, 0x10d0, 0x38e1, 0x3dfb, 0x1356, 0x1516, -0x2876, 0xe6f8, 0xbb6a, 0xb636, 0xd128, 0xdda0, 0xdf16, 0x11df, 0x387e, 0x338c, -0x0c5c, 0x211c, 0x2422, 0xdca8, 0xbf10, 0xb435, 0xcd32, 0xde18, 0xe25f, 0x144e, -0x3fe0, 0x3472, 0x0753, 0x2b41, 0x27e8, 0xd555, 0xc117, 0xbddb, 0xcb8c, 0xdaa8, -0xee16, 0x185e, 0x406a, 0x394d, 0x0e4c, 0x3224, 0x2283, 0xcee6, 0xb78f, 0xbe46, -0xd600, 0xd73a, 0xf882, 0x2db5, 0x4253, 0x3500, 0x1558, 0x2eee, 0x13ba, 0xd1b3, -0xb80a, 0xbd32, 0xe28d, 0xdf23, 0xfd44, 0x3980, 0x4ace, 0x2d3f, 0x18f4, 0x34ae, -0x039f, 0xcc97, 0xbb5e, 0xbe2a, 0xe6fa, 0xe555, 0x023b, 0x3de8, 0x4db4, 0x2192, -0x1578, 0x3a68, 0xfe29, 0xc84a, 0xbd0b, 0xc1ef, 0xe3a9, 0xe936, 0x0a3b, 0x3ab4, -0x505a, 0x260d, 0x1903, 0x39c0, 0xf9ac, 0xc53b, 0xbc41, 0xcc45, 0xe5fc, 0xe843, -0x15b8, 0x436d, 0x4dae, 0x24c5, 0x212b, 0x33f2, 0xf1b2, 0xc3a3, 0xb509, 0xcd57, -0xe8db, 0xeb7c, 0x1d1e, 0x4aef, 0x4a01, 0x1af5, 0x24c7, 0x2df1, 0xe4a5, 0xc1ae, -0xb8ad, 0xd2c8, 0xe887, 0xee7b, 0x21d0, 0x4d5f, 0x4806, 0x171f, 0x2854, 0x27e5, -0xdd26, 0xc075, 0xb9c1, 0xd6dc, 0xe94e, 0xf760, 0x2a99, 0x4d0c, 0x4405, 0x1751, -0x2a63, 0x1e7d, 0xd670, 0xba60, 0xb674, 0xde00, 0xe8fc, 0xf57e, 0x3121, 0x51b2, -0x3a66, 0x11d4, 0x29d9, 0x107f, 0xd01f, 0xbbd1, 0xb864, 0xe08f, 0xea2a, 0xfafd, -0x34de, 0x5038, 0x3061, 0x1294, 0x3316, 0x07d3, 0xc6ab, 0xbd82, 0xc0f2, 0xe421, -0xebe4, 0x0398, 0x39c6, 0x54a2, 0x2e8b, 0x0e55, 0x3308, 0x0648, 0xc5ad, 0xbd8e, -0xc53c, 0xdfb2, 0xe8b4, 0x0f4a, 0x3d14, 0x4caa, 0x2bf1, 0x15bf, 0x2e89, 0xf945, -0xc136, 0xb890, 0xcaeb, 0xe950, 0xe7bf, 0x115d, 0x451b, 0x4aa1, 0x20cd, 0x1684, -0x2a91, 0xf0a3, 0xc5b7, 0xb815, 0xc9bf, 0xee16, 0xea12, 0x117d, 0x470b, 0x42c7, -0x113f, 0x1b7c, 0x2b91, 0xe191, 0xc212, 0xbd24, 0xc84b, 0xe419, 0xe8c1, 0x104f, -0x440c, 0x4662, 0x1122, 0x20a6, 0x2d8e, 0xda8b, 0xbcf3, 0xc089, 0xcbf5, 0xde1c, -0xf3c0, 0x2135, 0x414e, 0x3fd9, 0x15e1, 0x26f5, 0x292e, 0xdc7e, 0xb937, 0xb924, -0xd769, 0xe06d, 0xee92, 0x2aa0, 0x48ae, 0x379d, 0x15e3, 0x2afa, 0x167d, 0xd370, -0xbfeb, 0xb8aa, 0xd8da, 0xe695, 0xf331, 0x2abe, 0x4918, 0x2e1c, 0x0f19, 0x32cf, -0x0f46, 0xc822, 0xbf6b, 0xbca2, 0xdadc, 0xe628, 0xf835, 0x2cf1, 0x4b03, 0x2c10, -0x0df9, 0x358e, 0x0a2c, 0xc678, 0xc06b, 0xc05f, 0xd849, 0xe170, 0x02e1, 0x3324, -0x4bd0, 0x2fc8, 0x13c8, 0x3314, 0x0029, 0xbf2e, 0xb455, 0xc1d3, 0xe027, 0xe480, -0x0a7f, 0x2c7a, 0x5506, 0x634d, 0x2129, 0xfadf, 0xe1b5, 0xb620, 0x8bd2, 0xbfae, -0x0a2a, 0x0d5d, 0x5240, 0x8109, 0x4e83, 0x15cf, 0xf367, 0xba2c, 0x9d5f, 0xcd2e, -0xbdc8, 0xf85d, 0x6f35, 0x4484, 0x29e8, 0x54f0, 0x2a04, 0xcc06, 0xd6d5, 0xe253, -0xc387, 0x09da, 0xff4a, 0xebc6, 0x4eb3, 0x2edb, 0xcfcc, 0x0b9a, 0x3d1b, 0xdc1f, -0xf4a1, 0x3fae, 0xeb9b, 0xe915, 0x13be, 0xcb86, 0xb940, 0x1643, 0x18ee, 0xf7d9, -0x4acf, 0x30df, 0xe6dc, 0x16fe, 0xf4d5, 0x9c55, 0xcc79, 0x10aa, 0xe384, 0x0496, -0x4c2c, 0x0504, 0xff4c, 0x2d7e, 0xd93d, 0xacb4, 0x00e4, 0xf5af, 0xc18e, 0x2289, -0x2a64, 0xe0a9, 0x2089, 0x21b8, 0xbaf3, 0xdd89, 0x1ea4, 0xd2e4, 0xe648, 0x37ea, -0xec35, 0xe993, 0x35d6, 0xed2e, 0xbadd, 0x15b4, 0x0a9d, 0xc841, 0x1a7c, 0x191c, -0xcaef, 0x0f4e, 0x1fff, 0xbfae, 0xe155, 0x3460, 0xeb55, 0xe0b6, 0x3048, 0xf2f2, -0xddca, 0x235a, 0xee7f, 0xb7cc, 0x15dd, 0x2097, 0xce52, 0x180f, 0x2dcf, 0xd499, -0x0857, 0x29b8, 0xc4c2, 0xd000, 0x28ff, 0xe652, 0xde94, 0x43c5, 0x05e6, 0xe425, -0x356a, 0xfee7, 0xb2c1, 0x0914, 0x1584, 0xbe7b, 0x0e5a, 0x368a, 0xe276, 0x1274, -0x3391, 0xd008, 0xd357, 0x26c2, 0xec06, 0xdd61, 0x39e2, 0x0868, 0xe6f9, 0x3207, -0x091c, 0xbc0e, 0x0582, 0x1f6d, 0xd133, 0x1cab, 0x4d57, 0xeb81, 0x02e3, 0x3712, -0xde41, 0xc71f, 0x212b, 0xfb67, 0xe7a1, 0x504a, 0x23ac, 0xedd8, 0x3eb6, 0x157e, -0xad36, 0xfc30, 0x2995, 0xcb86, 0x10c5, 0x529b, 0xf7a7, 0x15fe, 0x4546, 0xdc21, -0xcaba, 0x26eb, 0xe984, 0xd493, 0x4c8e, 0x16e6, 0xe56c, 0x463b, 0x1cf9, 0xb4a9, -0xfd71, 0x24ab, 0xc8a4, 0x09c8, 0x41c1, 0xe4ff, 0x0a9c, 0x3d28, 0xd226, 0xc16f, -0x2d0a, 0xf732, 0xcb2f, 0x42b2, 0x1d8f, 0xd5f3, 0x2c26, 0x1649, 0xa7c7, 0xed21, -0x286f, 0xc688, 0x04e2, 0x51dd, 0xe73b, 0x0013, 0x46f0, 0xd1e8, 0xab29, 0x260f, -0xf7aa, 0xbdee, 0x402d, 0x25c0, 0xda8b, 0x3989, 0x21df, 0xa95c, 0xf0ed, 0x290b, -0xbd3d, 0xfb44, 0x4eba, 0xe63a, 0xfecd, 0x4a1d, 0xe177, 0xbc6f, 0x2af3, 0xfdf2, -0xc4cf, 0x3b3d, 0x1ebb, 0xd4a0, 0x319d, 0x221e, 0xaf94, 0xf1b0, 0x3313, 0xcaf9, -0xf7f2, 0x4fd1, 0xeb5b, 0xf54e, 0x3faa, 0xd925, 0xb016, 0x2624, 0x012e, 0xc2f3, -0x3e16, 0x255d, 0xce61, 0x2b67, 0x1e8d, 0xa020, 0xe075, 0x2e2f, 0xc930, 0xf3f3, -0x4f96, 0xe6da, 0xef8a, 0x43fb, 0xdd85, 0xab7b, 0x2022, 0xfe5f, 0xba39, 0x346d, -0x27b4, 0xd20a, 0x2bfd, 0x2882, 0xae6f, 0xe3d3, 0x2b38, 0xc9c6, 0xef8e, 0x49d8, -0xeade, 0xf2c2, 0x46de, 0xe8ca, 0xb2fe, 0x208e, 0x0855, 0xc5c4, 0x338e, 0x29eb, -0xd645, 0x257e, 0x260c, 0xb7e2, 0xebef, 0x3365, 0xd6d8, 0xf811, 0x518d, 0xf457, -0xf134, 0x4558, 0xf41a, 0xb66e, 0x1a28, 0x0bd1, 0xcaa3, 0x31f9, 0x3045, 0xe17a, -0x2ad4, 0x2f2d, 0xbd2b, 0xe13e, 0x2cfe, 0xd3bd, 0xea52, 0x4fb4, 0x020e, 0xf40a, -0x4278, 0xf8f7, 0xb45e, 0x127c, 0x0af1, 0xc2d1, 0x2b03, 0x36f1, 0xdd10, 0x20d2, -0x35ec, 0xc074, 0xd7bd, 0x2eef, 0xd9db, 0xe543, 0x52c9, 0x05cf, 0xec53, 0x41bb, -0xfa65, 0xaf2a, 0x15c6, 0x1274, 0xbe0e, 0x2c97, 0x448e, 0xdd59, 0x1c74, 0x3817, -0xbb2b, 0xcf5b, 0x2f9a, 0xdc0c, 0xe4f0, 0x586d, 0x096c, 0xe913, 0x42c2, 0xf921, -0xa4d2, 0x0f94, 0x157d, 0xbee7, 0x2a97, 0x46c2, 0xe0bf, 0x1d38, 0x3786, 0xb9af, -0xcb2a, 0x2dd9, 0xd952, 0xdcbe, 0x5596, 0x0bab, 0xea4b, 0x4531, 0xffe2, 0xa78b, -0x0c61, 0x136f, 0xb532, 0x2148, 0x44ae, 0xd96e, 0x195c, 0x392c, 0xb898, 0xc8e9, -0x3388, 0xef92, 0xcd85, 0x0ef6, 0xf796, 0x13e1, 0x506a, 0x028d, 0xcd42, 0x14f5, -0xf58e, 0x9d81, 0xe29f, 0xfb3c, 0xcd66, 0x1bbf, 0x6302, 0x30d7, 0x14e4, 0x29bc, -0xdf14, 0xae5e, 0xce80, 0xabdc, 0xca7e, 0x3503, 0x1ee4, 0xf688, 0x5aac, 0x62a7, -0xd87d, 0xd4d5, 0xfc76, 0xb6dd, 0xa5b5, 0xf6e7, 0x0b99, 0x0665, 0x381b, 0x1f19, -0x1206, 0x2ed5, 0xebdd, 0xb56d, 0xde2e, 0xf87e, 0xce4d, 0xed47, 0x2439, 0x121c, -0x1266, 0x1483, 0x16c8, 0x10fd, 0x0650, 0xd754, 0xbaff, 0xf7e2, 0xda39, 0xcd45, -0x2986, 0x40dc, 0x0e53, 0x182a, 0x50a1, 0x01de, 0xcb6e, 0xdc62, 0xb781, 0xcfc4, -0xee54, 0xf542, 0x2240, 0x5981, 0x2c5e, 0xf8e5, 0x3e3b, 0x0d29, 0xaf98, 0xc3b7, -0xd787, 0xd3b1, 0xe2e2, 0x19c0, 0x28df, 0x3943, 0x2fe3, 0x081e, 0x2922, 0x0f78, -0xc962, 0xb6cc, 0xd979, 0xe6a6, 0xd121, 0x07cf, 0x3500, 0x3ad0, 0x2c2a, 0x2624, -0x2c95, 0xfb6f, 0xd7be, 0xb61f, 0xc05e, 0xe300, 0xd931, 0x0c0c, 0x4eae, 0x4878, -0x15a7, 0x2a43, 0x31b1, 0xdd24, 0xc4ea, 0xbda7, 0xc680, 0xe6be, 0xf0c6, 0x13f8, -0x45f0, 0x4cdc, 0x09ee, 0x185b, 0x3039, 0xdd40, 0xc562, 0xd19d, 0xd51e, 0xdcc7, -0xfbf1, 0x1f9a, 0x3311, 0x4108, 0x10a0, 0x1d6d, 0x368a, 0xebc0, 0xbacd, 0xc61c, -0xe6be, 0xd8c6, 0xecc7, 0x2b4f, 0x3ad6, 0x3234, 0x16aa, 0x312b, 0x2c20, 0xe5cf, -0xbf0c, 0xc2d3, 0xef02, 0xde96, 0xe42b, 0x3264, 0x4f6e, 0x2b87, 0x1502, 0x434e, -0x2169, 0xd824, 0xcd4a, 0xcbe5, 0xe67d, 0xe8bc, 0xf5fe, 0x2bd2, 0x4fbf, 0x2b2a, -0x05aa, 0x4482, 0x2857, 0xcb20, 0xc28b, 0xdaa2, 0xe5a8, 0xd616, 0xfaa0, 0x2fc3, -0x4640, 0x2ce5, 0x0f5a, 0x3ab7, 0x1944, 0xcda3, 0xbbcb, 0xcda1, 0xe22a, 0xd491, -0x0143, 0x3873, 0x3fbe, 0x22bb, 0x1736, 0x3ae6, 0x0407, 0xc3a8, 0xb9c4, 0xc437, -0xdc67, 0xd7ba, 0x00f1, 0x3801, 0x41a0, 0x1951, 0x11c6, 0x35de, 0xf7fb, 0xbeac, -0xb811, 0xc658, 0xdc21, 0xd8e4, 0x060e, 0x39e5, 0x4146, 0x14d2, 0x16dd, 0x36f4, -0xed6d, 0xba86, 0xb9b4, 0xcb20, 0xdd7e, 0xdfe1, 0x0f15, 0x3b82, 0x3e9b, 0x1158, -0x1b8a, 0x323f, 0xe8e2, 0xbdfb, 0xb835, 0xd09f, 0xddf2, 0xdd36, 0x148a, 0x40d3, -0x3e5f, 0x13a7, 0x2794, 0x2f4a, 0xde17, 0xbd25, 0xb6e3, 0xcb99, 0xdc56, 0xe6b9, -0x1ce9, 0x4836, 0x40a4, 0x1189, 0x2c70, 0x2966, 0xd436, 0xb74c, 0xb722, 0xd074, -0xdc0f, 0xf37b, 0x2f67, 0x4c6c, 0x3aa1, 0x13df, 0x2e82, 0x1863, 0xcd4e, 0xbc3f, -0xbce0, 0xd9c4, 0xe1be, 0xfb8d, 0x359d, 0x4c01, 0x3625, 0x17b8, 0x32ce, 0x1032, -0xcc89, 0xbc30, 0xbdba, 0xe2ec, 0xe81c, 0x005e, 0x3db9, 0x512c, 0x2c97, 0x17fc, -0x380c, 0x06f5, 0xcdb1, 0xc0d4, 0xbe6b, 0xe241, 0xead9, 0x05a4, 0x3a27, 0x518a, -0x2c10, 0x187d, 0x3809, 0xfd0c, 0xc4ac, 0xbff0, 0xc939, 0xe3de, 0xe907, 0x0ded, -0x3e36, 0x4e75, 0x2456, 0x1759, 0x31b3, 0xf547, 0xc449, 0xba76, 0xcb7c, 0xe629, -0xeb17, 0x17cc, 0x43ae, 0x4970, 0x1dfb, 0x1c5c, 0x2c1b, 0xe97c, 0xc40d, 0xbedd, -0xd492, 0xe90c, 0xea14, 0x18aa, 0x44ec, 0x43bf, 0x15aa, 0x2421, 0x2f68, 0xe453, -0xc2c4, 0xbef4, 0xd4c2, 0xe5c8, 0xf22d, 0x2430, 0x475e, 0x4461, 0x187f, 0x2916, -0x2d8a, 0xe382, 0xc1ee, 0xc2fa, 0xe144, 0xe6ea, 0xf400, 0x30a7, 0x50eb, 0x4265, -0x1b39, 0x2f67, 0x2260, 0xde78, 0xc61b, 0xc3e2, 0xe4c5, 0xea6e, 0xf9b7, 0x32e4, -0x4b24, 0x330a, 0x1529, 0x377b, 0x1ad4, 0xd298, 0xc471, 0xc39e, 0xdfcf, 0xe493, -0xf83e, 0x339f, 0x5169, 0x3178, 0x0fe4, 0x3634, 0x10e7, 0xcad8, 0xc188, 0xc0cb, -0xd97a, 0xe36b, 0x01cf, 0x3255, 0x49ca, 0x2dc9, 0x1019, 0x33a3, 0x059a, 0xbd42, -0xb33f, 0xbe30, 0xd9b3, 0xdc31, 0x0338, 0x37ee, 0x44ae, 0x224f, 0x0cf2, 0x27ab, -0xf5dc, 0xbd67, 0xaf02, 0xbe02, 0xde1c, 0xd738, 0x02b2, 0x3eba, 0x4074, 0x174f, -0x1829, 0x2c82, 0xe72a, 0xbf61, 0xb6b3, 0xbe85, 0xe2b1, 0xe25f, 0x05c1, 0x4181, -0x4a2b, 0x1512, 0x1a96, 0x326a, 0xe3c7, 0xbc8c, 0xb7af, 0xbd6f, 0xd849, 0xe90a, -0x150e, 0x3ed0, 0x469e, 0x176f, 0x1b23, 0x2908, 0xdb26, 0xb2f3, 0xb1f8, 0xca6a, -0xdb06, 0xe6a5, 0x1fb9, 0x4383, 0x3e5d, 0x1596, 0x1e94, 0x1cb0, 0xd8cf, 0xba95, -0xaec4, 0xcef4, 0xe43f, 0xeaf7, 0x2443, 0x4766, 0x336a, 0x0e32, 0x27a3, 0x1356, -0xcd5d, 0xc150, 0xb6ba, 0xd1d8, 0xe528, 0xee84, 0x2426, 0x4adf, 0x3667, 0x10cd, -0x310e, 0x1388, 0xcbbb, 0xc47e, 0xbd1f, 0xd491, 0xe98e, 0x0244, 0x3289, 0x53b3, -0x3eb9, 0x1566, 0x3290, 0x11e3, 0xcc07, 0xc004, 0xc4fd, 0xe223, 0xed0a, 0x10ae, -0x3ff0, 0x5037, 0x36e6, 0x164f, 0x29a1, 0x0284, 0xcdb8, 0xbdcd, 0xc637, 0xed96, -0xeeb1, 0x0cd0, 0x4050, 0x49bb, 0x239a, 0x1780, 0x2eab, 0xf6b6, 0xce3d, 0xbc38, -0xc8a0, 0x00e6, 0xefad, 0x0021, 0x33f9, 0x3ae3, 0x3cd3, 0x3fb1, 0x1838, 0xd924, -0xd541, 0xaecf, 0xa5de, 0xf7be, 0xfc4c, 0x140b, 0x790a, 0x7937, 0x1616, 0xfecc, -0xe9f4, 0x93de, 0xa330, 0xc0f0, 0xcf7e, 0x2cbc, 0x6286, 0x4ccf, 0x462d, 0x450f, -0xe74f, 0xa99c, 0xd6b1, 0xc669, 0xba55, 0xfefe, 0x25a9, 0x3149, 0x43ec, 0x1f26, -0xede2, 0x0adf, 0xff6f, 0xbdad, 0xf121, 0x2c23, 0xf18d, 0xf0cc, 0x2718, 0xe6c1, -0xbbba, 0x1d92, 0x14c7, 0xde85, 0x3e57, 0x31f4, 0xe295, 0x0f8d, 0xf992, 0xa267, -0xd117, 0x1bec, 0xe179, 0x07c9, 0x5af9, 0x03a7, 0x02e9, 0x3014, 0xd04d, 0xa794, -0xfb7e, 0xf282, 0xc715, 0x36b9, 0x3764, 0xea25, 0x307a, 0x1cb0, 0xb2ec, 0xd406, -0x117c, 0xd2a9, 0xea54, 0x43e9, 0xfc21, 0xfaa3, 0x3fc1, 0xeafd, 0xb060, 0x0b4c, -0x0ff9, 0xc461, 0x1954, 0x3040, 0xd984, 0x1601, 0x2825, 0xbc3f, 0xdbce, 0x3875, -0xe248, 0xdd2e, 0x4e02, 0xfd2c, 0xd91c, 0x3749, 0xf658, 0xaa69, 0x13e1, 0x2498, -0xcc14, 0x21ba, 0x3a26, 0xdb15, 0x1623, 0x2c3d, 0xba40, 0xcd2e, 0x2cf5, 0xe4ae, -0xe186, 0x52e0, 0x0d31, 0xe5cf, 0x3778, 0xffc1, 0xac3d, 0xfddf, 0x1bac, 0xc8ec, -0x14d4, 0x4029, 0xe79d, 0x15d6, 0x3792, 0xcc34, 0xca86, 0x3225, 0xf50a, 0xcf32, -0x3e28, 0x12b9, 0xe181, 0x364b, 0x1002, 0xb4c9, 0x031c, 0x26d6, 0xd0a9, 0x1e6a, -0x443a, 0xd350, 0x08d3, 0x41ed, 0xc7a2, 0xb99c, 0x2fe3, 0xff21, 0xdc75, 0x4839, -0x19bb, 0xe84c, 0x32f7, 0x01b7, 0xaddf, 0xfef1, 0x1e1c, 0xcae8, 0x16e4, 0x4bda, -0xecbb, 0x0caf, 0x3f24, 0xe0dc, 0xc4bc, 0x18da, 0xf67e, 0xdd77, 0x3908, 0x10f4, -0xed5b, 0x4369, 0x1b8d, 0xb980, 0x0190, 0x297a, 0xc6e3, 0x009e, 0x4462, 0xea33, -0x0155, 0x3cba, 0xe27f, 0xcbef, 0x2bda, 0xf9a0, 0xd4bc, 0x439f, 0x150b, 0xd559, -0x344d, 0x1a5b, 0xaf57, 0xf935, 0x2de0, 0xcf9a, 0x0979, 0x49a9, 0xea95, 0x051a, -0x3cdb, 0xd6df, 0xbc25, 0x2174, 0xf28b, 0xc89b, 0x4222, 0x2645, 0xdfc1, 0x315e, -0x201e, 0xb2fc, 0xe3d4, 0x181b, 0xc442, 0xfd80, 0x4a43, 0xed31, 0xff1f, 0x4381, -0xdf06, 0xb4dc, 0x1fd7, 0xf6dc, 0xbffe, 0x3a30, 0x24f3, 0xd6d6, 0x297b, 0x1c5d, -0xaf37, 0xedb8, 0x286b, 0xc61d, 0xfe95, 0x515b, 0xe559, 0xf3c9, 0x4090, 0xd830, -0xae85, 0x1db8, 0xf7ec, 0xc607, 0x3f9f, 0x264d, 0xd94a, 0x2a8a, 0x1485, 0xa002, -0xdeaf, 0x235b, 0xc381, 0xfa49, 0x5796, 0xefa6, 0xf6b9, 0x4056, 0xd904, 0xa813, -0x17bf, 0xf931, 0xbf26, 0x3e31, 0x2c1d, 0xd50a, 0x2d55, 0x22b9, 0xa846, 0xdf9f, -0x28c5, 0xc598, 0xef6b, 0x51e5, 0xf17d, 0xfa6e, 0x46ce, 0xddcb, 0xac63, 0x1bcf, -0xff42, 0xc08e, 0x3b8a, 0x30ab, 0xd540, 0x2b2a, 0x2b14, 0xb01e, 0xe003, 0x2eb4, -0xd207, 0xf705, 0x5a04, 0xf5f1, 0xf4f2, 0x49c1, 0xe735, 0xac7d, 0x1ff2, 0x0bc1, -0xc150, 0x3a15, 0x3cd0, 0xdc44, 0x29ee, 0x3079, 0xb504, 0xdcbb, 0x2cd7, 0xcfca, -0xeed8, 0x5c84, 0xfe19, 0xf346, 0x4ec0, 0xf24e, 0xa9a2, 0x1b01, 0x120e, 0xbf61, -0x31bd, 0x3ed0, 0xdca8, 0x27d7, 0x3553, 0xb79f, 0xddc0, 0x376a, 0xd743, 0xea45, -0x592a, 0xf9f4, 0xe94c, 0x4a1d, 0xf552, 0xa9a1, 0x19d2, 0x14c6, 0xbc9b, 0x2b11, -0x3913, 0xd2dc, 0x1f02, 0x340a, 0xb6b6, 0xd426, 0x33f8, 0xd9a8, 0xdc7f, 0x5123, -0xfd3a, 0xde46, 0x40ce, 0xfa10, 0xa997, 0x14a8, 0x1bb4, 0xc08d, 0x2376, 0x3d24, -0xd503, 0x166b, 0x35f1, 0xbc86, 0xd0fa, 0x36e8, 0xf1a1, 0xd628, 0x16ed, 0xf145, -0x0d1a, 0x55e9, 0x09b3, 0xd0ea, 0x189e, 0xfae5, 0xa1d9, 0xe581, 0xfd1f, 0xd241, -0x1ffa, 0x5b9f, 0x2d05, 0x1f94, 0x316b, 0xe330, 0xba22, 0xd9ab, 0xb354, 0xcfaa, -0x3059, 0x1e34, 0xfcfc, 0x565e, 0x623a, 0xe738, 0xe027, 0xfe57, 0xc099, 0xb327, -0xf470, 0x0c3c, 0x0e38, 0x38fd, 0x1a11, 0x0892, 0x3339, 0xf5c3, 0xbab1, 0xe297, -0xf843, 0xce95, 0xe620, 0x1c2a, 0x09ee, 0x1283, 0x1b02, 0x1187, 0x188b, 0x0e86, -0xd87e, 0xb652, 0xeca9, 0xdb2d, 0xc7dd, 0x1fe5, 0x379e, 0x0fd2, 0x1c45, 0x4c2e, -0x1316, 0xd85d, 0xdfc8, 0xb6df, 0xc87f, 0xeb35, 0xe54a, 0x1628, 0x57e4, 0x3419, -0xff6c, 0x4156, 0x1c74, 0xb5b4, 0xca06, 0xd49b, 0xc6db, 0xdff3, 0x0f42, 0x1c9b, -0x38c2, 0x3cc3, 0x059b, 0x2a27, 0x2699, 0xce85, 0xb4f9, 0xd393, 0xdea9, 0xcdb3, -0x03e7, 0x3281, 0x3d54, 0x3c61, 0x2583, 0x2ce2, 0x0c86, 0xdb4d, 0xb3bf, 0xbb9c, -0xe353, 0xd3fa, 0x034f, 0x4cdb, 0x4ab4, 0x21fa, 0x2b59, 0x391f, 0xeb27, 0xc6cb, -0xb8e4, 0xba9a, 0xe811, 0xec0e, 0x0c31, 0x4bdb, 0x5772, 0x163d, 0x1a19, 0x3f4d, -0xe9e8, 0xc3a2, 0xce2a, 0xc788, 0xd9f4, 0xf83e, 0x1bc6, 0x3ce8, 0x5548, 0x1db0, -0x1a55, 0x4521, 0xf1e2, 0xb3ab, 0xc2fd, 0xdbe1, 0xd800, 0xed52, 0x2c30, 0x402d, -0x430b, 0x23ff, 0x260b, 0x2f76, 0xea68, 0xb3d7, 0xb28e, 0xe14a, 0xdd06, 0xe066, -0x33b3, 0x51ec, 0x33b4, 0x1667, 0x3052, 0x1b77, 0xd41e, 0xc1bd, 0xb6c4, 0xd7a4, -0xeae0, 0xe9c9, 0x2119, 0x50ee, 0x3348, 0x0504, 0x35a7, 0x2224, 0xc555, 0xbad4, -0xc362, 0xd0c4, 0xdade, 0xf6c3, 0x247a, 0x463c, 0x3726, 0x098e, 0x2ae9, 0x1a2f, -0xc9d7, 0xb0fe, 0xc012, 0xdaac, 0xd5e1, 0xf9b0, 0x351f, 0x47da, 0x2cc6, 0x10fb, -0x2d9f, 0x068e, 0xc5e3, 0xb7fe, 0xc297, 0xe2b0, 0xe422, 0x01db, 0x36ef, 0x48cb, -0x23b7, 0x10de, 0x3507, 0x0307, 0xc7bf, 0xbff3, 0xc77c, 0xe128, 0xe56e, 0x0857, -0x3924, 0x4aaf, 0x2249, 0x103e, 0x31eb, 0xfa7b, 0xc42a, 0xbff2, 0xca69, 0xdf50, -0xe715, 0x1070, 0x37d6, 0x4303, 0x1eac, 0x16ba, 0x3184, 0xf739, 0xc4f5, 0xba46, -0xcd7e, 0xe4d0, 0xe592, 0x10ee, 0x3d09, 0x4044, 0x17ce, 0x2016, 0x2f3f, 0xe9e5, -0xc633, 0xbad5, 0xc6f9, 0xdeac, 0xe624, 0x121c, 0x413b, 0x4301, 0x1783, 0x29fd, -0x2ba5, 0xdaa4, 0xbe2e, 0xbb8e, 0xcbc8, 0xdde4, 0xf1e9, 0x21db, 0x439b, 0x4190, -0x172e, 0x27a0, 0x21f8, 0xd636, 0xbad8, 0xb8bf, 0xd096, 0xdf64, 0xf8a8, 0x2b93, -0x443b, 0x3b96, 0x185e, 0x26da, 0x10a6, 0xd167, 0xbdb5, 0xb977, 0xdb3a, 0xe708, -0xfa86, 0x2f52, 0x4806, 0x3265, 0x17a3, 0x31bc, 0x0e05, 0xd510, 0xc461, 0xbd66, -0xe192, 0xed77, 0x0119, 0x32ba, 0x50ed, 0x31ea, 0x16d3, 0x36ec, 0x0732, 0xcfc7, -0xc460, 0xc184, 0xdf83, 0xea58, 0x0626, 0x3550, 0x5246, 0x2def, 0x16cd, 0x3427, -0xfd3a, 0xc953, 0xbd3c, 0xc544, 0xe4ec, 0xf153, 0x166b, 0x3e10, 0x4e6d, 0x26d4, -0x1968, 0x2f16, 0xf428, 0xcae0, 0xbedd, 0xccf8, 0xe956, 0xefa2, 0x1950, 0x4297, -0x4a75, 0x1de5, 0x1955, 0x29ba, 0xeb91, 0xc61c, 0xbb12, 0xce33, 0xe7ce, 0xefe6, -0x18c6, 0x3e32, 0x43c5, 0x1922, 0x1cc3, 0x20fd, 0xde2b, 0xbf55, 0xb70b, 0xd16f, -0xe788, 0xef8e, 0x20c4, 0x4654, 0x3d93, 0x11d7, 0x1d2e, 0x15c5, 0xd810, 0xc122, -0xb7df, 0xd5bd, 0xe934, 0xf5a0, 0x24cd, 0x4321, 0x356b, 0x10be, 0x2522, 0x0e25, -0xcdbf, 0xc120, 0xbd1c, 0xd9ef, 0xe950, 0xf8ec, 0x2940, 0x4a04, 0x31e9, 0x09bb, -0x2935, 0x0de2, 0xcd32, 0xc3e0, 0xc0ad, 0xd96f, 0xebee, 0x0617, 0x2f65, 0x4a9d, -0x32b8, 0x104d, 0x2b20, 0x042c, 0xc6fe, 0xc0fc, 0xccb1, 0xe4c6, 0xe7e5, 0x0a2f, -0x3646, 0x44a9, 0x27ed, 0x0f84, 0x2482, 0xf9ba, 0xc9c9, 0xbc46, 0xc6f1, 0xe7c9, -0xe7b4, 0x0935, 0x38ab, 0x3dfb, 0x17f4, 0x1202, 0x2366, 0xe8cf, 0xc894, 0xc02b, -0xc4e7, 0xe682, 0xe9b4, 0x07dc, 0x39bc, 0x4323, 0x1255, 0x11a3, 0x2383, 0xde38, -0xc201, 0xc28c, 0xc797, 0xe30e, 0xf319, 0x11aa, 0x3329, 0x3e07, 0x11d9, 0x1242, -0x2173, 0xdd6c, 0xbc12, 0xbfc4, 0xd3cc, 0xe301, 0xf14f, 0x1ed7, 0x3c0b, 0x3bbe, -0x150a, 0x16d9, 0x1504, 0xded6, 0xc844, 0xc0c3, 0xdedd, 0xf0d7, 0xf666, 0x25d8, -0x4424, 0x33d0, 0x130e, 0x2876, 0x1370, 0xd7a6, 0xcf17, 0xc604, 0xdfb9, 0xf3d2, -0xfde9, 0x29bc, 0x4a3a, 0x328f, 0x0b59, 0x293f, 0x0f84, 0xd398, 0xd04b, 0xc938, -0xdc96, 0xf077, 0x05ff, 0x2a1d, 0x46e9, 0x33e3, 0x0e06, 0x27af, 0x084b, 0xcbee, -0xc5ed, 0xce50, 0xe4ec, 0xee95, 0x0fc4, 0x3481, 0x4291, 0x2ab8, 0x0ee7, 0x217a, -0xfbca, 0xd072, 0xc584, 0xcdc2, 0xeeae, 0xf284, 0x0beb, 0x2a91, 0x499c, 0x4ab9, -0x1751, 0xfb4e, 0xdff4, 0xc548, 0xaa11, 0xcb25, 0x079b, 0x0c5f, 0x3e98, 0x6247, -0x3e07, 0x0f43, 0xf0e4, 0xca5f, 0xb34f, 0xd401, 0xc893, 0xf3d1, 0x4c26, 0x308b, -0x22b3, 0x41c0, 0x2279, 0xdc8b, 0xdff8, 0xe310, 0xcceb, 0x027f, 0xf615, 0xee06, -0x3db0, 0x2392, 0xe01d, 0x1366, 0x3415, 0xe34c, 0xf6fc, 0x29c3, 0xe8c4, 0xee7a, -0x0fa2, 0xddee, 0xd84b, 0x1d1b, 0x1722, 0xff58, 0x3ac2, 0x1f74, 0xf03f, 0x1870, -0xfcd6, 0xbff1, 0xe68f, 0x1180, 0xed1f, 0x0a12, 0x3895, 0x07ec, 0x0a31, 0x24b3, -0xe648, 0xc9fc, 0x0734, 0xf757, 0xd412, 0x1f4f, 0x1e8b, 0xee37, 0x1f0e, 0x1be3, -0xd43a, 0xefa3, 0x194b, 0xddce, 0xf237, 0x287d, 0xeedf, 0xf88e, 0x2f7f, 0xf704, -0xd874, 0x1c88, 0x0972, 0xd8d5, 0x1702, 0x0f28, 0xe05e, 0x15f4, 0x1a7c, 0xd9ff, -0xf6eb, 0x29b0, 0xf002, 0xf068, 0x23d5, 0xf4b8, 0xf046, 0x1d23, 0xf157, 0xd110, -0x1519, 0x14cc, 0xdede, 0x142d, 0x1a12, 0xe515, 0x0b1c, 0x1636, 0xd4d5, 0xe629, -0x1cf8, 0xe7c6, 0xea58, 0x2b1f, 0xfc3e, 0xeeea, 0x236a, 0xfb53, 0xcfca, 0x089d, -0x0488, 0xd160, 0x0a55, 0x141d, 0xe5cd, 0x107d, 0x186d, 0xd8c8, 0xeaf7, 0x1870, -0xe826, 0xe955, 0x18d7, 0xf4b0, 0xf2f4, 0x198f, 0xf637, 0xd898, 0x0a60, 0x099d, -0xe121, 0x112c, 0x19f0, 0xe9f0, 0x0257, 0x16f3, 0xea68, 0xe825, 0x11db, 0xf73d, -0xf784, 0x22c2, 0x01a7, 0xfa94, 0x2329, 0xff98, 0xd3ac, 0x066b, 0x0f20, 0xe092, -0x0cc3, 0x1ddc, 0xf6f5, 0x1320, 0x1de5, 0xe877, 0xf111, 0x167b, 0xeabe, 0xf59b, -0x2682, 0xf99e, 0xf763, 0x2689, 0x0359, 0xdfbd, 0x0e98, 0x0da2, 0xe78d, 0x0e20, -0x0ddb, 0xeff0, 0x11e2, 0x1312, 0xe459, 0xf4b0, 0x1704, 0xee92, 0xf4ab, 0x1ec2, -0xfc20, 0xf450, 0x169f, 0xfcad, 0xdbac, 0x0468, 0x089e, 0xe794, 0x0e53, 0x118e, -0xefe9, 0x0e4a, 0x169a, 0xe1da, 0xebc0, 0x15eb, 0xefcb, 0xf2ee, 0x1beb, 0xfce8, -0xfa9c, 0x1c17, 0xffdb, 0xe6b1, 0x0fc5, 0x065c, 0xe6be, 0x10a6, 0x0c31, 0xefee, -0x1306, 0x13f9, 0xe94c, 0xfe45, 0x19f0, 0xf32a, 0xfe85, 0x1905, 0xf62a, 0xfd6b, -0x1747, 0xf729, 0xeaea, 0x11d1, 0x0593, 0xf301, 0x1786, 0x0b5f, 0xf124, 0x0940, -0x0668, 0xe6ec, 0xfe96, 0x1506, 0xf474, 0x04f3, 0x1923, 0xf708, 0xfe00, 0x1197, -0xf0a5, 0xe784, 0x0dcb, 0xff73, 0xf084, 0x1476, 0x091e, 0xf640, 0x0af0, 0x0286, -0xe773, 0xfd6b, 0x0efa, 0xf175, 0xf89a, 0x07af, 0xf9a6, 0x0516, 0x128d, 0x00ff, -0xfb4e, 0x0ed0, 0xfc70, 0xe60e, 0xf53d, 0xf46c, 0xf494, 0x0bff, 0x1551, 0x06e1, -0x0c9f, 0x0f55, 0xefab, 0xed70, 0xf731, 0xf0fe, 0xfd13, 0x0d56, 0x068f, 0x0174, -0x0fee, 0xffe4, 0xea15, 0xfb9a, 0xffd4, 0xf166, 0xfe33, 0x0e6f, 0xfeb8, 0x0068, -0x0cad, 0xf543, 0xef47, 0x0118, 0xf5be, 0xeb4f, 0x04dc, 0x09b3, 0xf586, 0x0081, -0x05bb, 0xf123, 0xf60d, 0x03d9, 0xf8d9, 0xfe28, 0x0dac, 0xfb79, 0xf27c, 0xfe7f, -0xf2c5, 0xeeb0, 0x04d2, 0x030d, 0xfb07, 0x0e9e, 0x0d11, 0xf686, 0xfc94, 0xffbf, -0xed59, 0xf589, 0x05ab, 0xfa48, 0xffa7, 0x10c1, 0x014b, 0xfa25, 0x09af, 0xfdfc, -0xf0ef, 0x03b9, 0x0400, 0xf635, 0x063f, 0x0b0b, 0xf9ca, 0x03dd, 0x0d8d, 0xfce6, -0x00df, 0x0f4b, 0x024e, 0xff59, 0x0dc5, 0x0159, 0xf654, 0x067a, 0x0580, 0xfe5c, -0x0e74, 0x0f97, 0x0220, 0x099e, 0x09f1, 0xf6cc, 0xfa19, 0x04a0, 0xfb69, 0x0199, -0x10a2, 0x0726, 0x02f2, 0x0c0d, 0x00c5, 0xf7e4, 0x056d, 0x020c, 0xf921, 0x0880, -0x0a05, 0xfc9b, 0x05b1, 0x0ba8, 0xfd73, 0x0126, 0x0afa, 0xfedb, 0xfe8e, 0x0754, -0xff08, 0x010e, 0x0a12, 0xff2a, 0xfc7a, 0x0965, 0x0306, 0xfbf9, 0x0735, 0x05c2, -0xfdbe, 0x020b, 0x01d4, 0xfd23, 0x035d, 0x0690, 0x0006, 0x0536, 0x0b42, 0x02fd, -0x0048, 0x04d9, 0xffac, 0xfb96, 0x0522, 0x06ea, 0x01a3, 0x0640, 0x0721, 0x02e7, -0x04ad, 0x0494, 0xfe70, 0x009e, 0x0380, 0xfafb, 0xfecf, 0x0890, 0x0224, 0xffd6, -0x0613, 0x005f, 0xfada, 0x0129, 0xfdf3, 0xf949, 0x014d, 0x006d, 0xfa91, 0x0029, -0x002c, 0xf7d8, 0xff02, 0x0615, 0xfbc4, 0xfc2b, 0x035b, 0xfb89, 0xf601, 0xfa4f, -0xfabf, 0xfbd9, 0x00a3, 0xfe0a, 0xfbd4, 0x0009, 0xfe8b, 0xf866, 0xf96c, 0xfcbd, -0xf750, 0xf6d5, 0xfee5, 0xfea6, 0xfc47, 0x00a5, 0x013f, 0xfaa4, 0xf910, 0xf98a, -0xf6f0, 0xfa55, 0xfc01, 0xfac1, 0xff53, 0x001d, 0xfac1, 0xfb9d, 0xfef2, 0xf9c9, -0xf9ce, 0xff10, 0xfabf, 0xfab8, 0xfe59, 0xfa05, 0xfa90, 0x00a1, 0xff54, 0xfdbe, -0x0243, 0xff6b, 0xfac6, 0xfde2, 0xfc78, 0xf927, 0xfc12, 0xfe2f, 0xfc8a, 0xfe15, -0x00a9, 0xff55, 0x0011, 0x0049, 0xfbfb, 0xfa18, 0xfd23, 0xfbc7, 0xf7ac, 0xfd25, -0x019e, 0x0030, 0x02a9, 0x0344, 0x0053, 0x0036, 0x003f, 0xfc42, 0xfd77, 0x047f, -0x022f, 0xffd5, 0x0747, 0x065b, 0xffcd, 0x058c, 0x0801, 0x00b8, 0x029f, 0x057c, -0x0228, 0x02a9, 0x03ae, 0x0336, 0x052e, 0x06d3, 0x0355, 0x0367, 0x097b, 0x0767, -0x040b, 0x0708, 0x062b, 0x00f3, 0x010e, 0x0624, 0x0661, 0x0641, 0x0870, 0x08cf, -0x095c, 0x0672, 0x0114, 0x0064, 0x0450, 0x0372, 0x00f0, 0x074e, 0x0927, 0x0375, -0x04d0, 0x06fa, 0x0278, 0x00e0, 0x023e, 0x0105, 0x0392, 0x0478, 0x01dc, 0x0633, -0x06ad, 0x0137, 0x035b, 0x071e, 0x039a, 0x00b9, 0x0238, 0x0257, 0x03b3, 0x032c, -0x00b5, 0x062b, 0x0920, 0x0425, 0x05d7, 0x09b0, 0x0457, 0x011e, 0x02cb, 0x0112, -0x01e7, 0x03e0, 0x04a0, 0x09f0, 0x0993, 0x025d, 0x03ab, 0x06f0, 0x01ce, 0xffa9, -0x0343, 0x03bf, 0x02bc, 0x0192, 0x0175, 0x03f8, 0x025f, 0xfe13, 0xffaf, 0x037b, -0x017f, 0xff0d, 0x010c, 0x01cc, 0xff47, 0xfda7, 0xff79, 0xffc8, 0xfd08, 0xfdcd, -0x01e5, 0x03c0, 0x00fa, 0xfdf8, 0xfdb9, 0xff87, 0xff9b, 0xfbe2, 0xfeae, 0x0380, -0x0014, 0xfe6f, 0x0115, 0x0048, 0xfe1d, 0xff3b, 0xff7b, 0xff0a, 0x0012, 0xfed0, -0xfed6, 0xffe0, 0xfcbf, 0xfbdb, 0x005d, 0xffb1, 0xf9ae, 0xfb2b, 0x0004, 0xff44, -0xfc6c, 0xfb62, 0xfdf8, 0xff0d, 0xfbbb, 0xfae7, 0xfd8a, 0xfd70, 0xfaee, 0xfbe3, -0xfdf3, 0xfc89, 0xfa9a, 0xfb6e, 0xfd82, 0xfcb8, 0xfaa3, 0xfc2a, 0xfeb9, 0xfc5c, -0xf8a1, 0xfb85, 0x000c, 0xfee7, 0xfbc5, 0xfc1f, 0xfee8, 0xfdac, 0xfae0, 0xfc8b, -0xfef5, 0xfebd, 0xfdf5, 0xfec1, 0x0023, 0xff0f, 0xfc4a, 0xfdd7, 0x00f5, 0xfea6, -0xfd0c, 0x002f, 0x0087, 0xfc77, 0xfc93, 0x0024, 0x013b, 0x00dc, 0xfdb0, 0xfcbd, -0x0060, 0xfed8, 0xfc65, 0xfff5, 0x0160, 0xfef8, 0x0045, 0x0243, 0x0065, 0xfff6, -0x0124, 0x00f9, 0x00f5, 0x00ae, 0xff8e, 0x00df, 0x02e1, 0xffa3, 0xfea2, 0x0390, -0x035d, 0xff35, 0xff1f, 0x009b, 0x0048, 0xffed, 0x0005, 0xfff7, 0x0019, 0xff23, -0xfe36, 0xff91, 0x0112, 0x0088, 0xfff6, 0x00fa, 0x00a3, 0xfe18, 0xfe82, 0x01b6, -0x00ae, 0xfead, 0x018f, 0x02ef, 0x0126, 0x002b, 0xffb6, 0x01e3, 0x0382, 0x00b0, -0x00bd, 0x0402, 0x024e, 0x0002, 0x02e3, 0x0327, 0x00b6, 0x01cf, 0x02ca, 0x0250, -0x0280, 0x01bd, 0x021d, 0x04f6, 0x0340, 0xfee9, 0x0095, 0x0305, 0x00bc, 0x012c, -0x04fc, 0x0469, 0x0257, 0x027e, 0x0242, 0x01ad, 0x014b, 0x00c3, 0x0147, 0x037a, -0x036a, 0x00b5, 0x0068, 0x0121, 0xff9a, 0xfec8, 0x0143, 0x0151, 0xfd18, 0xfced, -0xffbd, 0x0066, 0x007d, 0xff3b, 0xfdd4, 0xfe9a, 0xff0d, 0xfdc1, 0xfe33, 0xffd7, -0xfd45, 0xfbe9, 0xffc6, 0xff2d, 0xfb3e, 0xfd69, 0x0057, 0xff59, 0xffc4, 0x00ad, -0x0017, 0xffc4, 0xfde4, 0xfc22, 0xfe08, 0x004b, 0xffd4, 0x0028, 0x0265, 0x00fa, -0xfdc5, 0xfe0b, 0xff0e, 0xfe78, 0xfdca, 0xfe74, 0xff9b, 0x005c, 0x0106, 0x00eb, -0x015c, 0x01a8, 0xff52, 0xfee2, 0x00ee, 0xffbe, 0xfec8, 0x010d, 0x01ab, 0x00d9, -0x0106, 0x010d, 0x00e8, 0x0118, 0x00e8, 0x012b, 0x02b4, 0x0211, 0xff7a, 0xff8e, -0x0115, 0x0100, 0x00de, 0x02dd, 0x0379, 0x00f9, 0xffd1, 0x0018, 0xfff6, 0xfffa, -0x000c, 0xfff1, 0x0004, 0x0012, 0xffc4, 0x009c, 0x010c, 0xfffb, 0xffe4, 0x001a, -0xfff2, 0xfffc, 0x0012, 0xffe2, 0x0015, 0x015a, 0x0257, 0x01c9, 0x004d, 0xfff9, -0xffdd, 0x0059, 0x019b, 0x004f, 0x0095, 0x030f, 0x0191, 0xff96, 0x015d, 0x0296, -0x01ee, 0x0205, 0x01f5, 0x0220, 0x0303, 0x0276, 0x01b6, 0x02a2, 0x02f4, 0x01f9, -0x0209, 0x01e3, 0x0073, 0x00ad, 0x0219, 0x0205, 0x00f2, 0x000a, 0xffc0, 0x00c9, -0x0105, 0xffac, 0x007c, 0x0198, 0x0051, 0xffcf, 0x001b, 0xfff4, 0x0001, 0x0002, -0xfffe, 0xfffb, 0x0005, 0xfffd, 0xfff3, 0x0025, 0xff14, 0xfe3b, 0xffa5, 0xfffc, -0xfee0, 0xff17, 0xffe8, 0x0010, 0xffec, 0x0017, 0xffe5, 0xff21, 0xfef3, 0xfef8, -0xff4b, 0x002c, 0xffc0, 0xfee9, 0xffc3, 0x001f, 0xff65, 0xffbc, 0x001d, 0xfff2, -000000, 0x0003, 0xfffc, 0xfffc, 0x000a, 0xffec, 0x0015, 0x0095, 0x002c, 0xffc9, -0x006a, 0x0078, 0xfff2, 0xfffb, 0x0006, 0xfffa, 0x0002, 0xfffd, 0x0004, 0xfff4, -0x0010, 0xfff2, 0xfff7, 0x003a, 0xfeb1, 0xfe3a, 0xfff4, 0x0020, 0xffde, 0x0015, -0xfff6, 000000, 0x0002, 0xfffc, 0x0001, 0xfffe, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 0x82a0, 0x8dc7, 0x607e, 0xc0c6, 0x2bd3, +0x8df5, 0x828d, 0x0716, 0xaca6, 0xcefe, 0x41df, 0xd185, 0x8aa3, 0x8b1a, 0x789b, +0x82a2, 0x804f, 0x7ea8, 0x8113, 0x7f7d, 0x7fff, 0x801e, 0x801d, 0x7f32, 0x82ec, +0x83e1, 0x7fb0, 0x7f71, 0x80de, 0x7f3d, 0x7fe3, 0x81b4, 0x7c37, 0x8553, 0x7b29, +0x7ede, 0xde6e, 0x0e64, 0xf9f4, 0x015e, 0x00f6, 0xfe56, 0x0019, 0xf8bb, 0xfd90, +0x08cc, 0x05ab, 0xfd0b, 0xf9c6, 0xf875, 0xf789, 0xfc74, 0x032e, 0xf97a, 0xf4bb, +0x0212, 0x006e, 0x03df, 0x17c5, 0x0f50, 0xfb23, 0xfdbd, 0xf7cf, 0xdf5b, 0xe2d3, +0xf111, 0xef27, 0x11c5, 0x33a4, 0x168d, 0x0145, 0x0494, 0xe85c, 0xdac3, 0xf0c7, +0xeea8, 0x0023, 0x3036, 0x252a, 0xffb7, 0x01d1, 0xf637, 0xd506, 0xe8eb, 0xf5ff, +0xe5ca, 0x1ec5, 0x3fa4, 0x0e3c, 0x1570, 0x2b37, 0xea23, 0xca43, 0xf392, 0xdf0e, +0xde40, 0x2e7c, 0x276f, 0x035c, 0x2ccc, 0x1acf, 0xcf4a, 0xeb5b, 0x0fb1, 0xe01a, +0x0c69, 0x3a97, 0xfb54, 0x0751, 0x20f1, 0xdce9, 0xd2a2, 0x19b3, 0x096f, 0xf1b6, +0x38de, 0x1f70, 0xf32b, 0x2569, 0x0650, 0xc3d7, 0xf1ad, 0x1aa5, 0xe87e, 0x0c7f, +0x406d, 0xffaa, 0x0ba8, 0x2e02, 0xe545, 0xcebb, 0x10fc, 0x0102, 0xded8, 0x2b7c, +0x2053, 0xec6f, 0x266e, 0x1770, 0xcb63, 0xf18e, 0x2015, 0xe6ef, 0xfe64, 0x3700, +0xf628, 0xfb00, 0x2e43, 0xee48, 0xcd4a, 0x1867, 0x0ec3, 0xdd77, 0x2291, 0x1c80, +0xe325, 0x19b7, 0x1719, 0xcb88, 0xeded, 0x258c, 0xe7e8, 0xf0c6, 0x2d21, 0xf3d5, +0xf494, 0x290d, 0xef7b, 0xca28, 0x12c8, 0x0d8d, 0xd5f3, 0x171d, 0x1994, 0xe0c0, +0x1348, 0x1929, 0xcf9b, 0xe6fb, 0x20ae, 0xe921, 0xed2b, 0x2c54, 0xf96e, 0xf19f, +0x21b6, 0xf12e, 0xc8b4, 0x0907, 0x0964, 0xd049, 0x0eb8, 0x1fa6, 0xe6b5, 0x0cec, +0x16b6, 0xcd0c, 0xda57, 0x17c9, 0xe440, 0xe2a2, 0x2b4d, 0xffa2, 0xec7e, 0x1ee9, +0xf674, 0xbfcb, 0xf769, 0x0402, 0xcfe8, 0x104b, 0x2734, 0xe7e9, 0x07d9, 0x19f4, +0xd032, 0xd00b, 0x0e46, 0xe17d, 0xe2d8, 0x3456, 0x0781, 0xed01, 0x238d, 0xfa72, +0xbb51, 0xf543, 0x050b, 0xccd5, 0x1491, 0x3358, 0xedad, 0x10c4, 0x283b, 0xd051, +0xc9e9, 0x11f8, 0xe2cb, 0xe534, 0x43aa, 0x1090, 0xf11b, 0x3267, 0x02c3, 0xb72d, +0xf9ac, 0x0fbd, 0xce45, 0x1d7b, 0x4389, 0xef2e, 0x1593, 0x348e, 0xd0cb, 0xca8c, +0x1f61, 0xe981, 0xdef7, 0x4774, 0x15ae, 0xefab, 0x3b28, 0x0a9e, 0xb2f6, 0xf9e9, +0x1976, 0xcc08, 0x15ab, 0x4534, 0xee6c, 0x159b, 0x3753, 0xcf09, 0xc69a, 0x2270, +0xf15c, 0xdee6, 0x48ce, 0x1af4, 0xf169, 0x3da0, 0x0d68, 0xb573, 0xff9e, 0x20ba, +0xcbfe, 0x142d, 0x4879, 0xed49, 0x1434, 0x3d96, 0xd714, 0xca99, 0x298b, 0xf708, +0xd92c, 0x4632, 0x1acc, 0xea6e, 0x3d2c, 0x1412, 0xb534, 0xfbfa, 0x24f9, 0xcd72, +0x0df9, 0x48f8, 0xeb87, 0x0bca, 0x3dd5, 0xd6cc, 0xc015, 0x2605, 0xfa87, 0xd1a9, +0x40d0, 0x1c59, 0xe0de, 0x34f9, 0x14c6, 0xaf61, 0xf2a5, 0x23e6, 0xc929, 0x01be, +0x4423, 0xe53b, 0x0182, 0x3c3a, 0xd758, 0xbb9d, 0x1fa9, 0xf454, 0xc611, 0x36e8, +0x18f7, 0xdac9, 0x2e8a, 0x126d, 0xac14, 0xead6, 0x2215, 0xc990, 0xf9f5, 0x43cb, +0xea01, 0xfcbf, 0x38fd, 0xd9f3, 0xb7cd, 0x1bc4, 0xfd41, 0xca56, 0x31e3, 0x1d4b, +0xdca2, 0x2a9f, 0x1c24, 0xb8aa, 0xeb59, 0x25d5, 0xd2d0, 0xfa10, 0x44fa, 0xefe0, +0xfced, 0x3ef4, 0xe9a1, 0xbdf0, 0x19ac, 0x0198, 0xca6f, 0x2f04, 0x25b6, 0xe187, +0x29ba, 0x250a, 0xbe42, 0xe40e, 0x24ef, 0xd75d, 0xf476, 0x44f8, 0xf719, 0xf7a1, +0x3c94, 0xf20e, 0xbcdf, 0x16a3, 0x07e8, 0xc8d4, 0x2a3e, 0x2b3f, 0xdf4e, 0x235d, +0x2c92, 0xc2c7, 0xdf39, 0x2873, 0xd790, 0xea2a, 0x47fd, 0xfd0e, 0xf0e3, 0x3bd8, +0xf4e9, 0xb265, 0x0c2c, 0x0751, 0xc302, 0x29bb, 0x37bd, 0xe138, 0x1e0c, 0x2d09, +0xbddb, 0xd246, 0x24c4, 0xd87a, 0xe5df, 0x4ff6, 0x08d6, 0xf0d8, 0x3d61, 0xf8bf, +0xaede, 0x0a36, 0x0df3, 0xc0f5, 0x23ec, 0x3e92, 0xe3d7, 0x1cad, 0x348e, 0xc0d6, +0xcd4e, 0x265c, 0xd9b6, 0xdf83, 0x510e, 0x0c41, 0xeece, 0x4153, 0xfeeb, 0xa9f6, +0x04b3, 0x12a4, 0xbf2f, 0x20d1, 0x42f4, 0xe1b1, 0x1b1e, 0x3980, 0xc2b4, 0xcb50, +0x2b74, 0xded0, 0xd835, 0x4e7a, 0x0b46, 0xe555, 0x4015, 0x0517, 0xaa54, 0x0504, +0x1932, 0xbc34, 0x1a77, 0x48b1, 0xe0bb, 0x149b, 0x3ba7, 0xc34a, 0xc481, 0x2bc2, +0xe401, 0xd20e, 0x4f53, 0x1389, 0xe3b7, 0x418b, 0x0a15, 0xa70d, 0x0024, 0x1f9f, +0xbf65, 0x142d, 0x4a81, 0xe0ca, 0x1152, 0x4325, 0xcb03, 0xc18a, 0x2b95, 0xeb45, +0xcf92, 0x4c54, 0x18ad, 0xe08b, 0x3f12, 0x1264, 0xa9fc, 0xfd97, 0x246f, 0xbf86, +0x0ce2, 0x4e7c, 0xe4f3, 0x0c20, 0x44e0, 0xd069, 0xbdcb, 0x2b8e, 0xf32d, 0xcad4, +0x464f, 0x1e76, 0xdf62, 0x3b07, 0x17ea, 0xaafb, 0xf5a0, 0x2835, 0xc7c2, 0x0842, +0x4d2b, 0xe634, 0x03ef, 0x42bc, 0xd7f2, 0xbb73, 0x2662, 0xf892, 0xc8b3, 0x3e30, +0x1f20, 0xdcca, 0x354a, 0x1c6b, 0xaf75, 0xf0f7, 0x2963, 0xc908, 0xfdbf, 0x4c3c, +0xebe5, 0x00e3, 0x44c4, 0xdf15, 0xb9e9, 0x243b, 0x00e9, 0xcb76, 0x3b53, 0x248e, +0xdc27, 0x2fcb, 0x22e5, 0xb66c, 0xec96, 0x2b19, 0xd0ef, 0xf97b, 0x48ae, 0xecc0, +0xf8b4, 0x411d, 0xe769, 0xb9f7, 0x1c41, 0x0022, 0xc369, 0x2ced, 0x23ac, 0xd8eb, +0x2522, 0x232a, 0xb611, 0xe19f, 0x2738, 0xd013, 0xece5, 0x434c, 0xf00e, 0xefcc, +0x3b79, 0xeb32, 0xb19c, 0x135e, 0x04ef, 0xc1b9, 0x27a8, 0x2992, 0xd7b3, 0x1ba5, +0x2481, 0xb8c5, 0xd97d, 0x246f, 0xd113, 0xe45d, 0x4486, 0xf7f7, 0xeb36, 0x395a, +0xf122, 0xaea5, 0x0c28, 0x05eb, 0xbde4, 0x2585, 0x36a2, 0xde67, 0x1b86, 0x2dac, +0xbd03, 0xd2b8, 0x2624, 0xd8b8, 0xe802, 0x521b, 0x0855, 0xefbc, 0x4048, 0xfad2, +0xafe2, 0x0fb1, 0x12b2, 0xc62c, 0x2c2a, 0x43f5, 0xe562, 0x1fcb, 0x3791, 0xc2ac, +0xd4d1, 0x2dfd, 0xde0a, 0xe53f, 0x5578, 0x0f49, 0xf2b6, 0x4609, 0x0105, 0xabf5, +0x09a8, 0x157e, 0xc286, 0x23e7, 0x425f, 0xe36a, 0x1d93, 0x3580, 0xbf80, 0xcaf2, +0x2a04, 0xf16e, 0xd92b, 0x0eaa, 0xf1a7, 0x1ddb, 0x5b52, 0x0665, 0xd2e3, 0x15f8, +0xf606, 0x9d42, 0xdba7, 0xf312, 0xd349, 0x21ed, 0x576a, 0x34e8, 0x2450, 0x2679, +0xdc01, 0xb506, 0xcb0f, 0xa454, 0xccf3, 0x2c13, 0x1673, 0xf8ca, 0x4ff1, 0x63ac, +0xec26, 0xd77c, 0xf1f9, 0xc268, 0xb11a, 0xdfe4, 0x02e7, 0x10f5, 0x3512, 0x19dd, +0x0edc, 0x3568, 0xf6f7, 0xbe10, 0xda93, 0xf4fe, 0xda03, 0xe293, 0x15dd, 0x15f3, +0x1ba5, 0x1521, 0x12e8, 0x23ab, 0x0fc3, 0xdb3e, 0xb671, 0xe960, 0xe13c, 0xc695, +0x1a81, 0x3d23, 0x1c56, 0x190d, 0x4234, 0x1970, 0xd784, 0xd86b, 0xb5e8, 0xc9f3, +0xeb89, 0xe344, 0x17ae, 0x5713, 0x37fc, 0xffe2, 0x36b3, 0x1dfe, 0xb963, 0xbf9c, +0xc9a1, 0xcc7b, 0xe409, 0x08a6, 0x2077, 0x3b4d, 0x3cba, 0x0553, 0x220e, 0x226e, +0xd219, 0xb7ec, 0xcb8b, 0xdf2a, 0xd0c7, 0xf5be, 0x2ff0, 0x42a6, 0x3c24, 0x25ae, +0x2d6d, 0x0d94, 0xde80, 0xb78b, 0xb12b, 0xdf7a, 0xde33, 0x0046, 0x47b1, 0x5170, +0x29c0, 0x2945, 0x3ab5, 0xf08f, 0xc806, 0xc229, 0xbbf4, 0xe40d, 0xf365, 0x0bfe, +0x448d, 0x5cd8, 0x1e52, 0x10ba, 0x3908, 0xefa4, 0xc243, 0xcf89, 0xd02d, 0xde92, +0xf8e0, 0x191e, 0x2f7b, 0x48e6, 0x1e38, 0x1074, 0x3785, 0xf8be, 0xbd1c, 0xc06b, +0xdc36, 0xdb97, 0xe3c0, 0x2042, 0x37c5, 0x36ff, 0x1b73, 0x2064, 0x2c9a, 0xefa2, +0xbf0c, 0xb7f0, 0xe221, 0xe243, 0xd998, 0x2263, 0x4bae, 0x3596, 0x18aa, 0x3763, +0x27d0, 0xdcc6, 0xcacc, 0xc06f, 0xd83d, 0xecfe, 0xeefa, 0x1ffa, 0x5052, 0x393f, +0x0af5, 0x3c9e, 0x316b, 0xd2df, 0xc575, 0xd3c8, 0xddd2, 0xdf98, 0xfbd7, 0x2929, +0x4879, 0x4052, 0x160c, 0x3708, 0x2b31, 0xdac6, 0xc0c3, 0xcfc0, 0xe71d, 0xddec, +0x0145, 0x3847, 0x457c, 0x356b, 0x214a, 0x3a5f, 0x1474, 0xd892, 0xc579, 0xc6a7, +0xe77a, 0xe4dc, 0x00ab, 0x3b89, 0x4eba, 0x290a, 0x16ea, 0x3dc6, 0x0956, 0xcc12, +0xc3bd, 0xc9e9, 0xe4be, 0xe60b, 0x0561, 0x3707, 0x4c82, 0x2444, 0x1406, 0x3a8e, +0xff5b, 0xc494, 0xbf9f, 0xcb26, 0xdfef, 0xe755, 0x1060, 0x334f, 0x40e5, 0x1f87, +0x16b9, 0x33e8, 0xfa6e, 0xc670, 0xb774, 0xcc17, 0xe18f, 0xdd0f, 0x102c, 0x3f0d, +0x4098, 0x1b95, 0x24b2, 0x315a, 0xe9d8, 0xc459, 0xb314, 0xc524, 0xe2a6, 0xe1cf, +0x100a, 0x44af, 0x455c, 0x1551, 0x264f, 0x2ab1, 0xd681, 0xb90c, 0xb4d6, 0xc68d, +0xddac, 0xef74, 0x1f57, 0x4357, 0x4192, 0x0e60, 0x1bcb, 0x20fd, 0xd477, 0xb435, +0xb3e3, 0xcdc3, 0xd9c4, 0xef97, 0x2384, 0x3b60, 0x34c9, 0x119d, 0x1f15, 0x0fb3, +0xd15d, 0xb30d, 0xa9e3, 0xd431, 0xdc02, 0xe98a, 0x2987, 0x4204, 0x290c, 0x1181, +0x2d0c, 0x0800, 0xcb55, 0xb8f5, 0xaaa6, 0xd49f, 0xe57c, 0xf063, 0x281c, 0x4c65, +0x2d19, 0x0cd2, 0x2ddb, 0xfefe, 0xc171, 0xbd4c, 0xb7c2, 0xd4c5, 0xe6f3, 0x0040, +0x2b86, 0x4b6d, 0x2ed1, 0x0ce3, 0x2d97, 0x01f9, 0xc2ad, 0xb8fc, 0xc53e, 0xe1cf, +0xea35, 0x0eb0, 0x38b8, 0x4a3b, 0x2a1e, 0x1457, 0x2a1e, 0xfbca, 0xcdf1, 0xbc93, +0xcc0b, 0xec27, 0xeb05, 0x144b, 0x4443, 0x496d, 0x2233, 0x2180, 0x30b2, 0xf03c, +0xcced, 0xbf0d, 0xcc55, 0xeec3, 0xf367, 0x186f, 0x45cd, 0x4e7d, 0x215a, 0x2485, +0x3122, 0xe7a8, 0xc40a, 0xbf85, 0xd4dd, 0xebe8, 0xf32b, 0x2121, 0x49bb, 0x4c61, +0x1af5, 0x1f88, 0x2c32, 0xe8c5, 0xc512, 0xc0b7, 0xdbf9, 0xe9ea, 0xf2f4, 0x2584, +0x43e2, 0x3e1b, 0x19cf, 0x28d2, 0x2442, 0xe27b, 0xc589, 0xbe8a, 0xdddc, 0xe567, +0xed4e, 0x27f2, 0x48cd, 0x3505, 0x0e88, 0x2cd5, 0x207d, 0xda54, 0xc1cf, 0xb8c1, +0xd925, 0xe569, 0xefd0, 0x2723, 0x4dd1, 0x38b2, 0x0de5, 0x2d90, 0x155b, 0xca06, +0xbab6, 0xbf37, 0xdd46, 0xe3fd, 0xfb50, 0x2e5d, 0x487b, 0x343e, 0x0abe, 0x25e9, +0x0f65, 0xcb83, 0xb474, 0xbc50, 0xe2ab, 0xe1df, 0xfd3e, 0x3672, 0x458b, 0x294e, +0x10fd, 0x2afa, 0x027f, 0xcae8, 0xb95b, 0xbc6f, 0xe536, 0xe3af, 0xfd1c, 0x3b18, +0x4cb1, 0x23ff, 0x13eb, 0x3353, 0xfb34, 0xc4aa, 0xb71a, 0xb9f2, 0xe1d7, 0xe97f, +0x058d, 0x3a0f, 0x4fcd, 0x2408, 0x11a3, 0x2fb9, 0xf271, 0xbb7f, 0xb447, 0xc317, +0xde44, 0xe56a, 0x110a, 0x3ccc, 0x494a, 0x1f80, 0x11af, 0x26a1, 0xeb09, 0xbcd0, +0xaf90, 0xc8d4, 0xe63f, 0xe47d, 0x1435, 0x3f4f, 0x3fbe, 0x17c7, 0x1a4f, 0x2393, +0xe191, 0xbfa1, 0xb0e4, 0xc7c9, 0xe2d9, 0xe363, 0x1625, 0x4320, 0x3da9, 0x11c4, +0x1e02, 0x1d1b, 0xd6be, 0xbe96, 0xb123, 0xc8a4, 0xe6ce, 0xef2e, 0x1c03, 0x4584, +0x3fd1, 0x1006, 0x20d8, 0x197b, 0xcf64, 0xb99e, 0xb693, 0xd396, 0xe8eb, 0xfb01, +0x2aca, 0x4b38, 0x3f87, 0x0de0, 0x1f2f, 0x1503, 0xd574, 0xba46, 0xb72d, 0xf07a, +0xfa16, 0xf608, 0x29c0, 0x3a7e, 0x42a7, 0x43ac, 0x2717, 0xec6f, 0xd732, 0xc1ac, +0xa146, 0xef37, 0x122b, 0x05c1, 0x5c67, 0x8e8c, 0x3d5e, 0x0043, 0x00d0, 0xb9ef, +0xa38d, 0xc8dd, 0xc921, 0x15c9, 0x5fe3, 0x531a, 0x477d, 0x5852, 0x1b9f, 0xb930, +0xd1b6, 0xde60, 0xbcce, 0xe7f7, 0x16b1, 0x2aeb, 0x4605, 0x3592, 0xfe8c, 0x0c1d, +0x1b24, 0xd084, 0xd667, 0x2736, 0x06f7, 0xdfa7, 0x1976, 0x0df9, 0xc5e8, 0x032b, +0x324e, 0xea0e, 0x1ab4, 0x46e4, 0xf72e, 0x0369, 0x0ef3, 0xbe35, 0xbd17, 0x10fd, +0xfb35, 0xeb3f, 0x4e43, 0x2da4, 0xfe31, 0x2f50, 0xf64c, 0xafd6, 0xe267, 0xfd01, +0xca77, 0x1087, 0x48c1, 0xfcf4, 0x1bb0, 0x31af, 0xd234, 0xc0cb, 0x054e, 0xec6b, +0xce29, 0x29db, 0x1bb4, 0xf0fd, 0x3608, 0x12eb, 0xbb40, 0xeaa8, 0x190f, 0xce00, +0xed59, 0x39ef, 0xf1f0, 0xfb2a, 0x3535, 0xe3b3, 0xbf33, 0x1a9b, 0x013b, 0xc2ab, +0x2976, 0x21e0, 0xd3d8, 0x1ca6, 0x14ae, 0xb242, 0xe538, 0x2958, 0xd98c, 0xf279, +0x4106, 0xf13e, 0xf68b, 0x3379, 0xe023, 0xb4a8, 0x104b, 0x0685, 0xcca4, 0x2e61, +0x2d96, 0xe2b8, 0x26ac, 0x2510, 0xc114, 0xd9e5, 0x1f91, 0xdbc9, 0xe515, 0x40bd, +0x0693, 0xff44, 0x3c5e, 0xf664, 0xb8dc, 0x0b37, 0x1314, 0xc29c, 0x161f, 0x3582, +0xe32e, 0x17c0, 0x2de6, 0xc7c1, 0xcfeb, 0x23a6, 0xe644, 0xe65f, 0x4256, 0xf765, +0xe698, 0x4148, 0xfbe1, 0xa6b4, 0x03fa, 0x1c92, 0xcb85, 0x1a54, 0x37af, 0xe830, +0x1b0b, 0x255d, 0xc13f, 0xd3d9, 0x205e, 0xde69, 0xe2ab, 0x48d5, 0x0931, 0xee2f, +0x3d79, 0x0658, 0xb36c, 0xf59e, 0x11f4, 0xd042, 0x110b, 0x2e1b, 0xe763, 0x2269, +0x3bda, 0xcefb, 0xd37b, 0x2d7f, 0xe9d7, 0xd48e, 0x3fd2, 0x0e86, 0xea62, 0x3cd5, +0x11e0, 0xc1dc, 0x08e0, 0x1f68, 0xd3f1, 0x1fc8, 0x3da6, 0xe12f, 0x1d62, 0x4060, +0xccb6, 0xd211, 0x316f, 0xf370, 0xe20e, 0x4657, 0x1280, 0xf30a, 0x3df0, 0x07fc, +0xb956, 0x023e, 0x1978, 0xcbba, 0x137d, 0x3ff7, 0xecbc, 0x1698, 0x3f29, 0xdf9f, +0xcc1c, 0x1bdc, 0xef17, 0xd3da, 0x346b, 0x1296, 0xeb25, 0x3885, 0x190f, 0xbf13, +0xfb71, 0x1df2, 0xc509, 0xffa2, 0x3a66, 0xe5fd, 0x04f6, 0x36be, 0xda99, 0xc67e, +0x1fc2, 0xef95, 0xcfa8, 0x39df, 0x0f1a, 0xd986, 0x2d7b, 0x0e88, 0xb2a2, 0xf40f, +0x1bd3, 0xc95c, 0x0511, 0x408d, 0xec48, 0x03d2, 0x3281, 0xd7a0, 0xb9a0, 0x13ab, +0xf02d, 0xc92c, 0x3af6, 0x26c0, 0xe5f8, 0x2de7, 0x18b9, 0xafd8, 0xddbf, 0x15bc, +0xc4d3, 0xf6dc, 0x4b73, 0xf89f, 0x018a, 0x3c4e, 0xdf11, 0xb20d, 0x12d7, 0xf511, +0xbf7e, 0x33aa, 0x286f, 0xe309, 0x3107, 0x1f74, 0xb1c3, 0xe10f, 0x1fd3, 0xc7d4, +0xef6e, 0x4b78, 0xf32f, 0xf8e5, 0x43cb, 0xe7da, 0xaf46, 0x115a, 0xfeb2, 0xbf7a, +0x2e9a, 0x2ed7, 0xde2f, 0x2807, 0x259c, 0xb09f, 0xd3d4, 0x2606, 0xd544, 0xeb3d, +0x5107, 0xfecf, 0xf63f, 0x4304, 0xedfe, 0xae0d, 0x0d7f, 0x0957, 0xc47d, 0x2f62, +0x3b51, 0xdfea, 0x2a01, 0x3390, 0xb825, 0xd3e9, 0x29f1, 0xd82e, 0xe2e3, 0x509a, +0x061c, 0xf530, 0x48b1, 0xf740, 0xabeb, 0x0d93, 0x0ed4, 0xbed0, 0x274e, 0x3e3b, +0xddc2, 0x2168, 0x35a1, 0xbbb0, 0xcedb, 0x2b94, 0xdd5b, 0xdd2d, 0x4e6a, 0x068d, +0xe741, 0x3eef, 0xfe34, 0xad12, 0x0bb7, 0x1a73, 0xbea5, 0x1c31, 0x4269, 0xdc1a, +0x1611, 0x37d6, 0xc048, 0xcaa3, 0x2f7e, 0xe59c, 0xd94c, 0x4ed8, 0x0af6, 0xe225, +0x3c84, 0xfd49, 0xa4b2, 0x048d, 0x1ed5, 0xc496, 0x1caa, 0x4641, 0xddd4, 0x1578, +0x37dc, 0xc13b, 0xcab7, 0x30dc, 0xfec0, 0xd462, 0x1387, 0x07dd, 0x14c1, 0x4b92, +0x0d74, 0xda49, 0x12de, 0x02fe, 0xb8fe, 0xeaae, 0x0363, 0xdab0, 0x23b0, 0x68fb, +0x3681, 0x1351, 0x29fc, 0xf22e, 0xb781, 0xd225, 0xc11d, 0xd7d8, 0x354d, 0x26b8, +0x09af, 0x60fa, 0x5f8c, 0xe302, 0xde80, 0xff6a, 0xbb95, 0xafec, 0x029f, 0x161d, +0x0fee, 0x3924, 0x2b6c, 0x1ed5, 0x24fe, 0xec7b, 0xc1fe, 0xe22b, 0xfbcd, 0xdc4d, +0xf3f7, 0x210f, 0x1d01, 0x1305, 0x1342, 0x1f6c, 0x0852, 0xfea5, 0xdd42, 0xc083, +0xf243, 0xde95, 0xd818, 0x23f7, 0x3eab, 0x0891, 0x1381, 0x52fd, 0xff10, 0xc983, +0xe091, 0xc3b8, 0xcafc, 0xe7d7, 0xfc8d, 0x2043, 0x559d, 0x2c2e, 0x0418, 0x4485, +0x0b4c, 0xb4e5, 0xc68e, 0xddbf, 0xd0b6, 0xdc81, 0x1e4b, 0x2d10, 0x365b, 0x2c50, +0x170a, 0x303e, 0x0a60, 0xcc89, 0xb88a, 0xdbc7, 0xe3e7, 0xcdd2, 0x0b38, 0x3c7e, +0x392b, 0x254c, 0x3272, 0x2fc9, 0xf0ee, 0xd4d8, 0xb5b4, 0xc03b, 0xdef0, 0xd8e9, +0x0edc, 0x533e, 0x46e4, 0x0fc4, 0x358a, 0x34b8, 0xd1c3, 0xbf29, 0xbb64, 0xbeea, +0xdb1c, 0xf31b, 0x17f1, 0x44fa, 0x4bfb, 0x0a36, 0x1fe2, 0x2ce9, 0xcf0d, 0xb605, +0xc6c6, 0xcc96, 0xcf30, 0xf9cd, 0x25fb, 0x36d1, 0x4086, 0x1499, 0x21d8, 0x287f, +0xde77, 0xb0fd, 0xba6d, 0xe0f5, 0xd3e4, 0xee77, 0x3561, 0x4077, 0x2baa, 0x1d38, +0x3753, 0x1587, 0xd2e2, 0xb252, 0xb44b, 0xe5a7, 0xdbb5, 0xe778, 0x3790, 0x55cb, +0x234e, 0x10ab, 0x42e9, 0x083e, 0xc15a, 0xc2a9, 0xbe30, 0xd7d1, 0xe76a, 0xfa22, +0x2b37, 0x53cb, 0x29a6, 0x0950, 0x4086, 0x0f68, 0xbba0, 0xb824, 0xcc9c, 0xd743, +0xd665, 0x06ae, 0x3597, 0x44f1, 0x2854, 0x19d4, 0x3395, 0xfe8f, 0xc1b9, 0xad2d, +0xc39d, 0xde05, 0xd850, 0x0bf2, 0x4266, 0x457f, 0x1d4b, 0x2284, 0x337f, 0xe442, +0xbc43, 0xb8ba, 0xc33a, 0xe0e4, 0xe8f8, 0x10b5, 0x4262, 0x4afc, 0x1744, 0x1d2b, +0x3125, 0xe2b5, 0xbcb6, 0xbdea, 0xccfd, 0xdfe5, 0xefed, 0x1bae, 0x3f5e, 0x451d, +0x167c, 0x1ea7, 0x2848, 0xdf70, 0xbb35, 0xbbfc, 0xd959, 0xe266, 0xec2b, 0x20e3, +0x435c, 0x3878, 0x0fee, 0x25e8, 0x1ba1, 0xdaf0, 0xc061, 0xb76f, 0xdd9c, 0xe727, +0xece4, 0x247e, 0x48ee, 0x303d, 0x099a, 0x320b, 0x19b9, 0xd0b8, 0xc508, 0xbe20, +0xd52c, 0xe430, 0xf5f1, 0x21d1, 0x4aae, 0x3670, 0x0bc4, 0x349a, 0x16c6, 0xc9e1, +0xbb8f, 0xc44e, 0xdbed, 0xde26, 0x03b2, 0x34c9, 0x4689, 0x30a8, 0x17ea, 0x33bd, +0x0b87, 0xcd79, 0xb9b9, 0xc3c1, 0xe227, 0xdffc, 0x07ae, 0x3deb, 0x4732, 0x25e8, +0x1ef9, 0x370f, 0xfb29, 0xcc78, 0xbf32, 0xc5c0, 0xe807, 0xe571, 0x074b, 0x4121, +0x4902, 0x1968, 0x206c, 0x3da5, 0xf467, 0xc9c7, 0xc240, 0xc6d8, 0xe2b1, 0xeca9, +0x0f7d, 0x3a80, 0x4ac1, 0x1bda, 0x1cdc, 0x3836, 0xee35, 0xc32e, 0xc0a2, 0xce3e, +0xdfd7, 0xe9c8, 0x162c, 0x3eb5, 0x48b0, 0x1a61, 0x1e8f, 0x2cf5, 0xe5c6, 0xbb80, +0xb378, 0xd228, 0xe3dd, 0xeba5, 0x2266, 0x46f5, 0x3e1f, 0x13fa, 0x26ea, 0x21ec, +0xd925, 0xbdc7, 0xb66d, 0xd76b, 0xe81e, 0xf025, 0x269d, 0x4d69, 0x3d40, 0x1027, +0x2c58, 0x1cc9, 0xd265, 0xbfd4, 0xbabe, 0xd919, 0xe822, 0xf931, 0x2bc9, 0x4c69, +0x3d20, 0x158d, 0x31ca, 0x1821, 0xce8a, 0xb8af, 0xba0f, 0xdfb6, 0xe677, 0xfd3b, +0x385e, 0x53d9, 0x3764, 0x14a8, 0x30af, 0x0a51, 0xcb95, 0xbad7, 0xbc48, 0xe366, +0xea7e, 0x06cf, 0x3f08, 0x53c7, 0x2fe0, 0x189d, 0x383f, 0x00fd, 0xc5f3, 0xbf0d, +0xc38f, 0xe4a3, 0xecee, 0x0ef5, 0x432c, 0x54a7, 0x2a15, 0x190d, 0x3675, 0xf7bc, +0xc3e0, 0xbc22, 0xc381, 0xe210, 0xec59, 0x15ed, 0x4300, 0x4fd8, 0x269c, 0x1bda, +0x324a, 0xed57, 0xbb9c, 0xb705, 0xceb8, 0xeb30, 0xed72, 0x1baa, 0x48ad, 0x4bd3, +0x1fde, 0x1ea9, 0x2826, 0xe505, 0xc2b3, 0xb577, 0xceec, 0xeeb9, 0xef73, 0x1fd5, +0x4c99, 0x41f7, 0x12c7, 0x24ad, 0x22eb, 0xd504, 0xbfe3, 0xba2a, 0xd063, 0xea6f, +0xf037, 0x1c9c, 0x4acf, 0x430c, 0x0b68, 0x200d, 0x1c9e, 0xcce4, 0xb9ad, 0xbc29, +0xd211, 0xe475, 0xfc21, 0x2910, 0x443b, 0x3a83, 0x0ef1, 0x2295, 0x15ac, 0xd00d, +0xb774, 0xbaff, 0xded3, 0xe41e, 0xf945, 0x331e, 0x49b7, 0x3276, 0x128d, 0x28c7, +0x08f2, 0xce8e, 0xbb2e, 0xb907, 0xe4c0, 0xe9f8, 0xf98a, 0x3323, 0x4a75, 0x2718, +0x0ddc, 0x3369, 0x0795, 0xc936, 0xc192, 0xc3cc, 0xe2b9, 0xe583, 0xfce9, 0x312f, +0x4951, 0x266f, 0x0ffe, 0x3698, 0x0679, 0xca63, 0xc301, 0xc844, 0xde4c, 0xe26e, +0x076e, 0x3283, 0x4507, 0x259a, 0x11af, 0x30ff, 0xfd1c, 0xc1b2, 0xb384, 0xc924, +0xe414, 0xde8f, 0x0781, 0x295f, 0x51b4, 0x5b09, 0x17c9, 0xf17b, 0xd9cd, 0xb11a, +0x8396, 0xbd98, 0x073f, 0x0598, 0x5258, 0x7bf8, 0x3dd3, 0x096d, 0xe7f8, 0xa966, +0x9271, 0xc3c7, 0xb173, 0xf5d9, 0x6db2, 0x3b89, 0x2231, 0x4aaf, 0x1c3b, 0xc115, +0xcb06, 0xd460, 0xbb98, 0x03f6, 0xf9d7, 0xecaf, 0x4aa5, 0x27cf, 0xcf8c, 0x0764, +0x3489, 0xd9cb, 0xf31b, 0x39b5, 0xebc3, 0xeb7f, 0x1192, 0xceee, 0xbd72, 0x16f9, +0x1b5a, 0xf888, 0x4a44, 0x34a8, 0xedd8, 0x18bb, 0xf8d6, 0xa74c, 0xd19c, 0x139c, +0xeaf7, 0x0d0b, 0x5317, 0x0e81, 0x0c44, 0x35bd, 0xe010, 0xb51d, 0x075b, 0xfc77, +0xc9ae, 0x2b95, 0x35a1, 0xf0e8, 0x2c61, 0x2481, 0xc370, 0xe826, 0x20b5, 0xd95a, +0xf832, 0x43e0, 0xf261, 0xf7ef, 0x414e, 0xf14b, 0xbf9e, 0x1c6c, 0x1380, 0xd3d1, +0x2650, 0x1f52, 0xd592, 0x1ddb, 0x2414, 0xc347, 0xebd1, 0x3e70, 0xf240, 0xeb89, +0x3d66, 0xf738, 0xe57b, 0x2fe8, 0xf22d, 0xbd68, 0x1e7b, 0x2466, 0xd858, 0x2613, +0x3122, 0xdc86, 0x16b9, 0x277b, 0xc324, 0xdb13, 0x2c78, 0xe8ab, 0xed0b, 0x49bb, +0x0342, 0xf02a, 0x3b6c, 0xf7d9, 0xb9c6, 0x0fd8, 0x1192, 0xc763, 0x12e5, 0x2738, +0xe26c, 0x1a89, 0x2a72, 0xcd72, 0xdca7, 0x27a9, 0xe962, 0xd98a, 0x271e, 0xf948, +0xe783, 0x29f0, 0x000e, 0xc137, 0x064c, 0x17e6, 0xcd48, 0x0efb, 0x329b, 0xdc50, +0xf9d6, 0x28fd, 0xd866, 0xc34b, 0x13df, 0xefa3, 0xdcbf, 0x3578, 0x09a7, 0xe33f, +0x2c3f, 0x02a6, 0xaa76, 0xf3eb, 0x1870, 0xc21d, 0x029e, 0x3d07, 0xedbb, 0x0a92, +0x33dc, 0xd94f, 0xc985, 0x15a5, 0xdf1c, 0xd3f5, 0x3f5e, 0x0fca, 0xe50f, 0x3b04, +0x1a3d, 0xb99b, 0xf6d1, 0x1c75, 0xcc21, 0x0987, 0x3e95, 0xed51, 0x0dcf, 0x3b32, +0xd980, 0xc6f7, 0x280e, 0xf587, 0xd3c2, 0x4871, 0x233c, 0xe02f, 0x3039, 0x183d, +0xaecf, 0xf137, 0x2776, 0xcc66, 0x0bf0, 0x5162, 0xeddf, 0x088c, 0x4536, 0xd457, +0xb205, 0x2315, 0xf51a, 0xc60d, 0x4281, 0x2682, 0xe5d9, 0x3aad, 0x1cab, 0xb02d, +0xf294, 0x20af, 0xbecb, 0x0084, 0x4c16, 0xeaf2, 0x054e, 0x449f, 0xdf02, 0xbd48, +0x25bf, 0xfda9, 0xcb15, 0x3a93, 0x1e9b, 0xddd4, 0x3408, 0x1f70, 0xb333, 0xf3df, +0x32ab, 0xd133, 0x014e, 0x52b2, 0xf138, 0xfe00, 0x4260, 0xe1f2, 0xbbac, 0x28bf, +0x0404, 0xcc81, 0x4649, 0x2e56, 0xdee8, 0x3677, 0x23ef, 0xabc0, 0xea62, 0x3159, +0xcf59, 0xfdcf, 0x575a, 0xf403, 0xfe40, 0x4759, 0xe094, 0xb225, 0x1ffa, 0xfefc, +0xc26f, 0x3a61, 0x2be1, 0xdb44, 0x2efe, 0x2504, 0xadcb, 0xe074, 0x2713, 0xc6d3, +0xecc2, 0x48d6, 0xea4d, 0xf2ec, 0x43a0, 0xe1fc, 0xaa5f, 0x1825, 0xffd7, 0xba38, +0x2bdb, 0x24a3, 0xce10, 0x1cd8, 0x1cfc, 0xab2e, 0xdc4d, 0x276d, 0xca22, 0xeb01, +0x4a08, 0xeb0e, 0xe94c, 0x3cd7, 0xe45f, 0xa6c6, 0x0f8c, 0x066f, 0xc2d2, 0x2a01, +0x2aea, 0xd9bf, 0x251a, 0x2933, 0xb64d, 0xd9b5, 0x26a1, 0xd2ba, 0xe822, 0x4af1, +0xfec7, 0xf323, 0x3fdf, 0xf78e, 0xb4c1, 0x0f7f, 0x0e1c, 0xc7ce, 0x25fb, 0x3129, +0xdeb5, 0x2268, 0x3385, 0xc266, 0xd9b6, 0x2efc, 0xddb0, 0xe00f, 0x45ac, 0x0168, +0xea8d, 0x3cd9, 0xfeda, 0xb603, 0x13c5, 0x166b, 0xc192, 0x1f5a, 0x3804, 0xda94, +0x15a3, 0x35b3, 0xc729, 0xd3ae, 0x2e68, 0xe359, 0xde70, 0x4764, 0x0725, 0xe6b1, +0x3882, 0xfed4, 0xad23, 0x0819, 0x16c2, 0xc15b, 0x1c91, 0x4358, 0xe49c, 0x1162, +0x35d1, 0xc8f8, 0xc74f, 0x2676, 0xe0e9, 0xd0d7, 0x4b09, 0x1cea, 0xedea, 0x3f3b, +0x11f4, 0xb09a, 0xfc73, 0x177b, 0xba40, 0x109f, 0x4fcb, 0xf285, 0x1d0f, 0x3dc2, +0xc588, 0xc98d, 0x329a, 0xfd8a, 0xcc33, 0x1573, 0x1810, 0x1532, 0x434e, 0x102d, +0xd555, 0x08d4, 0x0011, 0xb77c, 0xec37, 0x098c, 0xd4fc, 0x2033, 0x7926, 0x32be, +0xfe95, 0x28ab, 0xef9c, 0xa428, 0xcffc, 0xcbdf, 0xd07c, 0x3681, 0x2f87, 0x0680, +0x626e, 0x5e9c, 0xd624, 0xd9e4, 0x080a, 0xadfe, 0xa2f5, 0x12af, 0x142c, 0xffde, +0x3703, 0x3570, 0x269e, 0x24fb, 0xe8a1, 0xb7ec, 0xe753, 0xf82a, 0xce4d, 0x001a, +0x2e98, 0x1f84, 0x0eb8, 0x1beb, 0x2603, 0xfcff, 0xfd98, 0xd8c0, 0xc719, 0xfc52, +0xddd2, 0xe3ec, 0x2ee0, 0x4393, 0x042b, 0x1929, 0x569a, 0xef83, 0xc35d, 0xd9e5, +0xc6ce, 0xd1e0, 0xed86, 0x0b2a, 0x23b2, 0x504c, 0x20ad, 0x029d, 0x3b72, 0xf5a5, +0xad6b, 0xbe54, 0xddfc, 0xd162, 0xddcd, 0x2952, 0x324b, 0x3156, 0x1d3f, 0x12f5, +0x235b, 0xf27f, 0xc001, 0xb250, 0xdfdd, 0xe3f3, 0xd455, 0x14e4, 0x3c06, 0x3326, +0x1a60, 0x30e7, 0x24a0, 0xe2c3, 0xcd08, 0xb21c, 0xc75c, 0xdc66, 0xe088, 0x1e09, +0x54ef, 0x4197, 0x0dca, 0x356f, 0x22ce, 0xcaf2, 0xc0ce, 0xbc3d, 0xcfda, 0xe59b, +0xfe5c, 0x27b1, 0x4caa, 0x45a1, 0x0add, 0x274f, 0x1c6c, 0xcde6, 0xc343, 0xd011, +0xdf48, 0xe021, 0x0b0c, 0x335a, 0x3c8e, 0x345d, 0x0d86, 0x278e, 0x1b8f, 0xdc12, +0xbc28, 0xc6ff, 0xead3, 0xdba0, 0xfdee, 0x39b8, 0x3f03, 0x2143, 0x1858, 0x376b, +0x021b, 0xcaa8, 0xbb59, 0xc6f6, 0xef67, 0xe041, 0xf9ba, 0x3cd7, 0x4cfd, 0x168d, +0x1037, 0x3fec, 0xf71d, 0xbed3, 0xc8d6, 0xcbc6, 0xdd8f, 0xea8c, 0x09b1, 0x2e92, +0x4701, 0x1829, 0x091c, 0x3ad7, 0xfd4b, 0xb999, 0xbe68, 0xdc50, 0xdc39, 0xd663, +0x1009, 0x330e, 0x37f3, 0x1ad3, 0x1cca, 0x3476, 0xf66a, 0xc5e8, 0xbb6f, 0xd5e8, +0xe008, 0xd5ea, 0x10b5, 0x3f63, 0x3725, 0x1102, 0x2911, 0x3855, 0xe9cb, 0xc610, +0xc44b, 0xd547, 0xdd89, 0xe4aa, 0x195d, 0x4084, 0x3d9b, 0x10ab, 0x2a1f, 0x3667, +0xe38c, 0xc1a0, 0xc4c5, 0xdd94, 0xe21b, 0xe99c, 0x1f49, 0x4312, 0x3b69, 0x0f14, +0x2b3d, 0x2eaa, 0xdeab, 0xc00a, 0xc634, 0xe225, 0xe0e3, 0xf311, 0x2b9a, 0x44fd, +0x3881, 0x11ee, 0x2f2a, 0x2428, 0xdc87, 0xc347, 0xc2d0, 0xe6e0, 0xe5b0, 0xf196, +0x2d4e, 0x4a97, 0x3366, 0x1388, 0x3ae0, 0x1bf8, 0xd058, 0xc212, 0xc09b, 0xdbf3, +0xe25c, 0xfa1f, 0x3093, 0x4e94, 0x31f0, 0x12fe, 0x3bde, 0x11ad, 0xc841, 0xb8bd, +0xbe0b, 0xdd25, 0xdd7e, 0x0138, 0x3ac9, 0x4ccb, 0x2ba2, 0x1359, 0x3033, 0xfbc6, +0xc14d, 0xb543, 0xbd7e, 0xdcf8, 0xde2b, 0x0754, 0x388b, 0x409a, 0x1e0d, 0x134a, +0x2ba8, 0xeee4, 0xbe5b, 0xafaf, 0xbb90, 0xe059, 0xde74, 0x0736, 0x3d1c, 0x4310, +0x16f1, 0x1686, 0x2f2a, 0xe9de, 0xbe17, 0xb446, 0xc0ca, 0xdd27, 0xe1a0, 0x0ccd, +0x3c13, 0x4661, 0x1949, 0x196a, 0x2a50, 0xdf8d, 0xb6a7, 0xb25a, 0xc8aa, 0xdf0e, +0xe6dc, 0x19c8, 0x411d, 0x423f, 0x15db, 0x1a0d, 0x2316, 0xdf69, 0xba97, 0xb2a9, +0xd092, 0xe29a, 0xebf2, 0x2556, 0x4a3b, 0x3fb1, 0x16cb, 0x2603, 0x1c1b, 0xd67d, +0xbcf3, 0xb765, 0xdad1, 0xea4b, 0xf176, 0x27e4, 0x4d31, 0x3b4c, 0x0fab, 0x2ad5, +0x1a4d, 0xd10b, 0xbc49, 0xba78, 0xda1f, 0xe903, 0xffda, 0x308c, 0x4a2f, 0x38ce, +0x11cc, 0x299c, 0x105c, 0xcdc3, 0xba31, 0xc03e, 0xe616, 0xe849, 0xfec7, 0x37e1, +0x4e98, 0x3198, 0x12d8, 0x2aeb, 0x03e5, 0xcb29, 0xbccb, 0xc232, 0xe734, 0xeb9c, +0x07ed, 0x3d12, 0x4b48, 0x2515, 0x14e8, 0x330c, 0xfd19, 0xc86d, 0xc241, 0xca17, +0xe64b, 0xe918, 0x09ed, 0x3ba3, 0x4eee, 0x25e2, 0x167a, 0x38a6, 0xffcf, 0xcb0e, +0xc615, 0xd055, 0xe3d3, 0xeafc, 0x1602, 0x3e86, 0x49c2, 0x257e, 0x2166, 0x3bcd, +0xfc55, 0xc4ad, 0xbb87, 0xd6e3, 0xe7a1, 0xe64f, 0x1ddd, 0x4682, 0x4516, 0x1dee, +0x1dc5, 0x2b0d, 0xed86, 0xc590, 0xb97d, 0xd84f, 0xec06, 0xe368, 0x1c7f, 0x4cee, +0x3f07, 0x13c3, 0x289d, 0x28fb, 0xdcf0, 0xc5b7, 0xbdb7, 0xd4a7, 0xec46, 0xecd0, +0x1bda, 0x48cc, 0x4019, 0x0cd7, 0x23a7, 0x2698, 0xd5be, 0xbc3e, 0xb90e, 0xcc6c, +0xddf3, 0xf12b, 0x24f1, 0x4448, 0x3b5c, 0x118e, 0x2441, 0x1c2b, 0xd270, 0xb368, +0xb6c7, 0xdd46, 0xdf51, 0xefbb, 0x3138, 0x49d2, 0x3667, 0x1864, 0x2b86, 0x1073, +0xd35e, 0xbbf4, 0xb47a, 0xdfb4, 0xe8bb, 0xf6b2, 0x353a, 0x4fd4, 0x2e9f, 0x12a8, +0x323d, 0x07c8, 0xcb04, 0xc1fa, 0xbd57, 0xdf17, 0xe6e8, 0xfa82, 0x3052, 0x4c63, +0x2d83, 0x12bf, 0x3366, 0x0318, 0xc6dd, 0xbd85, 0xbc4f, 0xd9e1, 0xe604, 0x0814, +0x34df, 0x4a09, 0x2d9d, 0x148f, 0x2e79, 0xfba1, 0xc12c, 0xb277, 0xbf95, 0xdeb7, +0xe211, 0x10bc, 0x423c, 0x4956, 0x24f7, 0x1571, 0x2434, 0xebbb, 0xc333, 0xb587, +0xc733, 0xedc0, 0xebba, 0x0854, 0x3f2e, 0x6f7e, 0x4a81, 0x0e5e, 0x03fe, 0xcb43, +0xa313, 0xa8c3, 0xd5fe, 0x0fe0, 0x3ce3, 0x6922, 0x5cb3, 0x4541, 0x10b8, 0xc5c1, +0xb7c8, 0xca44, 0xca38, 0xd7f7, 0x38e7, 0x4e53, 0x1cb5, 0x3dfb, 0x3d19, 0x06ab, +0xeda0, 0xe9ef, 0xd83d, 0xf9bf, 0x0ebe, 0xca2a, 0x0a79, 0x510e, 0xf01d, 0xe7eb, +0x3be6, 0x1a2e, 0xf989, 0x353e, 0x099c, 0xe538, 0x16d7, 0xd697, 0xa93c, 0x0407, +0x1bee, 0xf75f, 0x46c6, 0x50e3, 0xf430, 0x1813, 0x169b, 0xaf5d, 0xc57c, 0x0fb5, +0xe638, 0xf7e9, 0x459c, 0x122e, 0x0654, 0x352e, 0xfc93, 0xc262, 0xf99c, 0x072c, +0xc8f1, 0x0bf2, 0x32cd, 0xf85b, 0x1790, 0x25c1, 0xde96, 0xd882, 0x18ea, 0xe834, +0xd77c, 0x3995, 0x1231, 0xeab1, 0x28e3, 0x0cfc, 0xc5ef, 0xf7bd, 0x18f1, 0xd03e, +0x057e, 0x320a, 0xe5e4, 0x07c7, 0x2d5d, 0xd88a, 0xc884, 0x2072, 0xfd6c, 0xd3d0, +0x2a59, 0x1066, 0xe564, 0x22a2, 0x047a, 0xb2ee, 0xeaad, 0x1c28, 0xcc6c, 0xf7e5, +0x3c36, 0xee88, 0xfbfb, 0x3085, 0xddf6, 0xb28a, 0x0aaf, 0xf456, 0xbc45, 0x223a, +0x21ed, 0xe31c, 0x2214, 0x1882, 0xb51a, 0xdbdc, 0x18ba, 0xc1ce, 0xe1c3, 0x397c, +0xed39, 0xf426, 0x3690, 0xe68c, 0xb498, 0x0e83, 0x00c5, 0xc494, 0x1ef7, 0x1b31, +0xdc33, 0x1f84, 0x1b7f, 0xb9c1, 0xdc07, 0x2246, 0xd5fb, 0xeaf7, 0x4a41, 0x042a, +0xed8c, 0x29a9, 0xf4c4, 0xbbf5, 0xffbd, 0x02b3, 0xd089, 0x2a98, 0x349a, 0xe5f4, +0x231d, 0x3682, 0xc042, 0xc757, 0x28ee, 0xe56b, 0xda47, 0x3eac, 0x0d7c, 0xfc17, +0x4512, 0x05d1, 0xbb63, 0x0fc8, 0x0da5, 0xb98f, 0x1ecc, 0x3aea, 0xdbbd, 0x1bd6, +0x4041, 0xd007, 0xd35e, 0x2aaf, 0xea38, 0xe711, 0x3e4a, 0xfa47, 0xef65, 0x3f02, +0xf730, 0xae98, 0x0fae, 0x1e19, 0xc953, 0x1ea3, 0x3db2, 0xe20d, 0x1043, 0x2d87, +0xc8ab, 0xca8a, 0x2270, 0xe769, 0xe021, 0x4751, 0x0a42, 0xed5b, 0x468e, 0x0a0e, +0xa823, 0xfc1e, 0x19ce, 0xc19e, 0x0fd8, 0x3c33, 0xe854, 0x1d91, 0x3f3f, 0xd03c, +0xd290, 0x2d60, 0xe292, 0xd443, 0x4229, 0x0590, 0xe446, 0x3c78, 0x0d2e, 0xbba0, +0x0b10, 0x1fdc, 0xccc6, 0x142f, 0x3174, 0xdc18, 0x1061, 0x371b, 0xd368, 0xd200, +0x2d59, 0xf1a5, 0xdc23, 0x3edd, 0x0fb6, 0xe812, 0x2f6f, 0x0a77, 0xb941, 0xfe00, +0x1d36, 0xcc9c, 0x11f2, 0x404a, 0xe70a, 0x0abc, 0x3965, 0xd3be, 0xbed2, 0x1fe7, +0xee09, 0xd03e, 0x3f07, 0x1799, 0xe33b, 0x342f, 0x1443, 0xb44b, 0xf906, 0x1979, +0xbeaf, 0x0a9f, 0x45b3, 0xe73c, 0x0a6f, 0x3e78, 0xd655, 0xc03d, 0x2087, 0xeb0b, +0xcf7a, 0x4395, 0x1915, 0xe1a6, 0x34d0, 0x134e, 0xac96, 0xeeeb, 0x1aa0, 0xc459, +0x0965, 0x4852, 0xe8bd, 0x0151, 0x3569, 0xd16f, 0xb855, 0x1c6f, 0xed54, 0xcabb, +0x428e, 0x1dfb, 0xdf3c, 0x323b, 0x15f0, 0xab84, 0xe597, 0x18a2, 0xc34f, 0x0120, +0x48dd, 0xedf1, 0x07d1, 0x3f6b, 0xd521, 0xb0ac, 0x1903, 0xf0c7, 0xc122, 0x3959, +0x22ad, 0xe010, 0x2ec7, 0x1837, 0xaaf6, 0xe170, 0x1e2b, 0xc7b9, 0xfdb5, 0x4c53, +0xebef, 0xfb34, 0x3ee4, 0xdef9, 0xb297, 0x1b34, 0xfd76, 0xc42a, 0x391e, 0x2b29, +0xde3f, 0x2dc8, 0x2491, 0xb2a5, 0xe544, 0x2b06, 0xcad8, 0xf507, 0x54ba, 0xf673, +0xfa92, 0x48ca, 0xe9a8, 0xafd3, 0x1ef7, 0x084a, 0xc383, 0x3a6e, 0x3354, 0xdbff, +0x2c3f, 0x2b2a, 0xb115, 0xe1c4, 0x348d, 0xd2d5, 0xf3b1, 0x5801, 0xf84b, 0xf5dc, +0x4897, 0xeba9, 0xac5a, 0x1d11, 0x0bb4, 0xbcd7, 0x32ed, 0x3809, 0xdc0a, 0x2aa8, +0x3035, 0xb63c, 0xddf9, 0x3359, 0xe1e6, 0xdc8c, 0x1666, 0xf007, 0x2428, 0x5dbe, +0x00c2, 0xd781, 0x22f0, 0xf405, 0xa1af, 0xed74, 0xf64b, 0xd808, 0x304e, 0x5c2f, +0x2e87, 0x2aaf, 0x32b5, 0xdc5e, 0xbf90, 0xd852, 0xad5b, 0xdde3, 0x38e2, 0x1923, +0x04d1, 0x62c4, 0x5bb8, 0xe529, 0xeaaf, 0xfd61, 0xc422, 0xc0df, 0xfa6b, 0x0d7b, +0x16ff, 0x3f3e, 0x1d78, 0x1a46, 0x3b1d, 0xf55f, 0xc829, 0xeeb5, 0x0157, 0xdd55, +0xf41a, 0x20b5, 0x1533, 0x2329, 0x1f7c, 0x1523, 0x1e43, 0x1419, 0xdc00, 0xbfc2, +0xfbcf, 0xe187, 0xd1ef, 0x2a18, 0x3c8b, 0x1862, 0x2179, 0x4380, 0x06a1, 0xdc67, +0xe0e4, 0xb854, 0xda4e, 0xf2b5, 0xe744, 0x1f54, 0x57ea, 0x2932, 0xfa55, 0x3961, +0x0fd9, 0xbac6, 0xcdda, 0xd258, 0xcf89, 0xe3ab, 0x0707, 0x1a3e, 0x3967, 0x30cc, +0x0264, 0x2d4f, 0x1e6c, 0xcc01, 0xb70b, 0xd1c4, 0xdac0, 0xca7b, 0xfba8, 0x26c2, +0x371b, 0x359b, 0x23c6, 0x2fb4, 0x0da1, 0xd9bd, 0xae9d, 0xb89c, 0xdb61, 0xcb90, +0x0132, 0x482d, 0x42cd, 0x1e49, 0x2e1f, 0x3691, 0xe7fa, 0xc93c, 0xba66, 0xbb0a, +0xe251, 0xe472, 0x0383, 0x3f08, 0x4cc8, 0x1215, 0x1c80, 0x3b71, 0xe4f3, 0xc431, +0xcbb0, 0xc403, 0xd2f9, 0xf12b, 0x1313, 0x2f50, 0x4774, 0x1313, 0x18c4, 0x4058, +0xed5d, 0xb643, 0xc25a, 0xd92a, 0xcdc3, 0xe267, 0x25f0, 0x37bf, 0x38e3, 0x1db0, +0x2909, 0x2dab, 0xe635, 0xb3fb, 0xb52f, 0xe71a, 0xdad1, 0xdbe5, 0x2dd4, 0x4a45, +0x2f11, 0x15fc, 0x375b, 0x1edc, 0xd95e, 0xc7dd, 0xb91d, 0xdb9a, 0xe8d2, 0xea7d, +0x243c, 0x50aa, 0x347a, 0x0b10, 0x3f2c, 0x24ae, 0xc984, 0xc48d, 0xccec, 0xd726, +0xda77, 0xf845, 0x2782, 0x491b, 0x3bb7, 0x1233, 0x3698, 0x200c, 0xcd29, 0xb25f, +0xc2ef, 0xdd85, 0xd457, 0xfe96, 0x3830, 0x43f0, 0x2e94, 0x1a60, 0x3369, 0x07e9, +0xcb4f, 0xb645, 0xba73, 0xdbb8, 0xdb8f, 0xffae, 0x3a33, 0x48d7, 0x2211, 0x15da, +0x362f, 0xfbd5, 0xc39a, 0xb7fb, 0xc2cf, 0xe1cd, 0xe2d2, 0x0604, 0x36c9, 0x495d, +0x209d, 0x15d2, 0x37e6, 0xf91a, 0xc431, 0xbe00, 0xccf7, 0xe3be, 0xe90a, 0x14f8, +0x3bed, 0x4775, 0x22c5, 0x1a55, 0x2eb8, 0xf7ab, 0xcbee, 0xbb0a, 0xd4b7, 0xea3e, +0xe43a, 0x18fd, 0x455e, 0x429e, 0x1d75, 0x27b4, 0x2e04, 0xeadd, 0xca0c, 0xb834, +0xcf7e, 0xebe8, 0xec12, 0x1d2b, 0x4ce6, 0x4388, 0x1410, 0x2882, 0x2863, 0xdbfa, +0xc201, 0xbc64, 0xd1a8, 0xe40d, 0xf23c, 0x21f6, 0x44ac, 0x3ed5, 0x105b, 0x1f33, +0x1ab9, 0xd393, 0xb879, 0xb8a2, 0xd559, 0xdf87, 0xf31b, 0x2555, 0x3b7c, 0x3066, +0x0f9b, 0x206c, 0x1043, 0xd352, 0xb6fe, 0xb4ae, 0xdacb, 0xdd79, 0xed28, 0x2944, +0x40cc, 0x26e3, 0x1073, 0x2c6d, 0x0a8e, 0xd1fe, 0xbe7c, 0xb79c, 0xdbb0, 0xe28f, +0xf1b8, 0x2782, 0x45d6, 0x288a, 0x146e, 0x3752, 0x08d7, 0xccea, 0xc003, 0xbd89, +0xda98, 0xe4f4, 0x0193, 0x3341, 0x4c65, 0x29eb, 0x1665, 0x385c, 0x0502, 0xcaf3, +0xbfdd, 0xc859, 0xe1b4, 0xe85f, 0x0f40, 0x394b, 0x49b1, 0x2907, 0x1adb, 0x324c, +0xf922, 0xc6e9, 0xb961, 0xcbdd, 0xe7b2, 0xe6bd, 0x11f6, 0x3fef, 0x46fb, 0x1df6, +0x1d0f, 0x2f40, 0xeef5, 0xc4a6, 0xb575, 0xcb9f, 0xe637, 0xea22, 0x1afc, 0x450f, +0x486c, 0x1ca2, 0x2081, 0x27c1, 0xe170, 0xbe81, 0xb610, 0xd4bd, 0xe951, 0xed82, +0x22d8, 0x4920, 0x44fd, 0x1967, 0x24be, 0x230d, 0xdd5b, 0xbd48, 0xb2b2, 0xd74f, +0xebd6, 0xf51e, 0x2d0e, 0x4f15, 0x406d, 0x18ea, 0x2d32, 0x1b37, 0xd68b, 0xc044, +0xb935, 0xdd2b, 0xe8ca, 0xf474, 0x309b, 0x54b6, 0x3c42, 0x14ba, 0x347b, 0x1910, +0xd0a8, 0xbcba, 0xb8c9, 0xdc46, 0xe9fe, 0xfff4, 0x3532, 0x5389, 0x3988, 0x14af, +0x3504, 0x102d, 0xc848, 0xb929, 0xbe6f, 0xdd0e, 0xe430, 0x059c, 0x3ba7, 0x4f58, +0x2e33, 0x10f0, 0x2a2f, 0xfdb9, 0xc2f6, 0xafbb, 0xbb99, 0xe4f6, 0xe5f2, 0x07f0, +0x3ce6, 0x4606, 0x2206, 0x1803, 0x2b80, 0xee52, 0xc24f, 0xb46d, 0xbb4a, 0xe32e, +0xe633, 0x0953, 0x4238, 0x4b00, 0x1a28, 0x1723, 0x280d, 0xe191, 0xbf29, 0xb512, +0xbb95, 0xe083, 0xee77, 0x11e1, 0x3d02, 0x4905, 0x18fb, 0x175c, 0x25d3, 0xdaba, +0xb4bd, 0xb51c, 0xcc2b, 0xe1c5, 0xed1f, 0x1d15, 0x42ae, 0x42e0, 0x12aa, 0x15c7, +0x1ce6, 0xdd86, 0xbb2e, 0xb339, 0xd4c6, 0xe6a3, 0xee5c, 0x246d, 0x4599, 0x378a, +0x117f, 0x247f, 0x1587, 0xd40f, 0xc211, 0xba12, 0xda04, 0xe9d2, 0xf097, 0x2593, +0x4a0d, 0x33f2, 0x0e58, 0x2f92, 0x1796, 0xd23e, 0xc5d1, 0xbd1d, 0xd6a8, 0xea03, +0xfd4b, 0x2b76, 0x4d07, 0x372b, 0x12c1, 0x3610, 0x1455, 0xc9fa, 0xc082, 0xc65f, +0xdbf3, 0xe5fa, 0x0864, 0x3695, 0x4d6d, 0x3441, 0x13be, 0x2f2f, 0x090c, 0xce34, +0xb830, 0xc505, 0xfada, 0xec81, 0xfb68, 0x2eba, 0x319e, 0x3ce2, 0x44fb, 0x1d01, +0xdd9d, 0xd66a, 0xb232, 0xa016, 0xf64b, 0xfff6, 0x09d5, 0x7376, 0x8570, 0x20f6, +0xfe82, 0xf200, 0x9a52, 0xa325, 0xc4f5, 0xcbde, 0x2c79, 0x67bb, 0x4c8f, 0x46a8, +0x523c, 0xf79d, 0xabd0, 0xda12, 0xcc15, 0xb71c, 0xf62d, 0x1e60, 0x327a, 0x4b18, +0x2770, 0xf598, 0x157f, 0x094e, 0xbe89, 0xebf7, 0x2a77, 0xf098, 0xe9ee, 0x28e2, +0xf32a, 0xc056, 0x237c, 0x271d, 0xe4a4, 0x3978, 0x35ba, 0xe536, 0x10f5, 0xfdaa, +0xa68b, 0xd3ea, 0x212f, 0xea07, 0x08a6, 0x5e96, 0x0ae2, 0x07c6, 0x37b6, 0xd70c, +0xb092, 0xfe7d, 0xf21a, 0xcad9, 0x34d2, 0x36e9, 0xf083, 0x37da, 0x22a5, 0xbc01, +0xdc00, 0x1395, 0xd553, 0xe5e3, 0x3bac, 0xfd08, 0xfe92, 0x3f5c, 0xee23, 0xbc45, +0x0d39, 0x0a9c, 0xc61a, 0x146f, 0x2951, 0xdb39, 0x171e, 0x293d, 0xc2e7, 0xdd20, +0x32b9, 0xe330, 0xd7b9, 0x3cc5, 0xf7d9, 0xdcad, 0x311b, 0xf1df, 0xb0b8, 0x105b, +0x1a8c, 0xca51, 0x1be5, 0x2f80, 0xd616, 0x11ca, 0x2652, 0xbc4e, 0xcb96, 0x21a7, +0xe4b4, 0xe253, 0x4487, 0x0196, 0xe674, 0x3516, 0xfb04, 0xb3bc, 0xfeb8, 0x1079, +0xc24e, 0x088e, 0x3298, 0xe80b, 0x14c1, 0x2ed3, 0xd1a8, 0xcf82, 0x2207, 0xee50, +0xcf02, 0x2dec, 0x08af, 0xe42a, 0x344d, 0x0fb2, 0xb971, 0xfa3f, 0x1df7, 0xd32e, +0x11cc, 0x3722, 0xda30, 0x07ac, 0x3d3f, 0xd7ab, 0xc34d, 0x271b, 0xfe76, 0xdbb3, +0x3d61, 0x18ed, 0xed9b, 0x3389, 0x0c14, 0xba7c, 0xf987, 0x187e, 0xcd50, 0x1066, +0x476b, 0xf480, 0x1314, 0x42bb, 0xe5fe, 0xc3be, 0x1389, 0xf39f, 0xd575, 0x3648, +0x1e47, 0xf2fa, 0x3e74, 0x234a, 0xbf4c, 0xf288, 0x221b, 0xc710, 0xfa3c, 0x5035, +0xfb9e, 0x0502, 0x44eb, 0xeee6, 0xc43e, 0x1d61, 0xfb1c, 0xc9de, 0x3c74, 0x2aae, +0xe190, 0x3674, 0x2619, 0xaff2, 0xe8b6, 0x2937, 0xc78c, 0xf5df, 0x540b, 0xfb05, +0x020b, 0x434b, 0xe0e6, 0xacc1, 0x10fc, 0xf91d, 0xbcee, 0x3592, 0x3566, 0xe36e, +0x337d, 0x30bf, 0xb32f, 0xd426, 0x2162, 0xc820, 0xe042, 0x4c56, 0xfe46, 0xf61f, +0x4a89, 0xf803, 0xad4d, 0x11a6, 0x0a6c, 0xb6d1, 0x253a, 0x3311, 0xd5a0, 0x2667, +0x3498, 0xb800, 0xd872, 0x2f83, 0xd41e, 0xe4e1, 0x5463, 0xf738, 0xea30, 0x492c, +0xf007, 0xaab2, 0x16ec, 0x11da, 0xc262, 0x2e37, 0x3e3b, 0xdd03, 0x22dd, 0x30e8, +0xb674, 0xd170, 0x2e2c, 0xdcd6, 0xe399, 0x56b9, 0x04f1, 0xea52, 0x4a44, 0xfd31, +0xa60d, 0x09bf, 0x162d, 0xbcc9, 0x1f55, 0x4352, 0xde68, 0x1cd9, 0x3c0d, 0xbf98, +0xc8d8, 0x2a1f, 0xdc64, 0xd503, 0x4d6c, 0x0785, 0xe7a8, 0x476e, 0xff01, 0xa5cd, +0x064f, 0x17bf, 0xbe55, 0x1800, 0x3b7b, 0xd4d9, 0x10f0, 0x3690, 0xbf8d, 0xc71e, +0x297a, 0xe393, 0xd729, 0x47fe, 0x0285, 0xda51, 0x391b, 0xfeb3, 0xa48e, 0xfbc3, +0x19a9, 0xc3a0, 0x108e, 0x3eae, 0xdebc, 0x0f12, 0x36a2, 0xc4c0, 0xbf91, 0x1e2f, +0xe5de, 0xd395, 0x4354, 0x10d5, 0xe319, 0x39c0, 0x0a87, 0xace4, 0xf7d2, 0x18b7, +0xc582, 0x0b6f, 0x3da5, 0xe290, 0x0dde, 0x3c3e, 0xcfe6, 0xc55b, 0x253d, 0xeca1, +0xcf94, 0x3b7a, 0x0f41, 0xdf74, 0x366b, 0x1370, 0xb644, 0xfb14, 0x1f1e, 0xc7c9, +0x07b4, 0x41e9, 0xe70d, 0x071d, 0x3d77, 0xdb66, 0xc478, 0x265f, 0xf916, 0xd180, +0x3ee6, 0x1beb, 0xdeb9, 0x31d9, 0x191a, 0xb479, 0xf52c, 0x2801, 0xccf7, 0x03d4, +0x4bd7, 0xedac, 0x016a, 0x3a65, 0xd6fc, 0xbe27, 0x2266, 0x07f4, 0xd0c6, 0x0dcf, +0x1281, 0x0eb0, 0x45e8, 0x1d9a, 0xd8e3, 0x05c1, 0x084a, 0xb5be, 0xdaec, 0x09a2, +0xe1b9, 0x11ee, 0x6086, 0x43d5, 0x17db, 0x2892, 0xfb50, 0xb60e, 0xc9f7, 0xc054, +0xc68d, 0x23e0, 0x2ffe, 0x062b, 0x4e99, 0x701f, 0xf80e, 0xd329, 0xff2c, 0xcb90, +0xa2d6, 0xed8c, 0x1910, 0x0699, 0x2f80, 0x3089, 0x1d1c, 0x374f, 0x03b2, 0xc14c, +0xd8b6, 0xfb3d, 0xd617, 0xe1a7, 0x22a2, 0x2021, 0x1a55, 0x1dcb, 0x2025, 0x150c, +0x0753, 0xe11c, 0xb5ad, 0xeb4f, 0xe450, 0xcc01, 0x1b1d, 0x3faa, 0x18aa, 0x0e6d, +0x4970, 0x17e5, 0xcba3, 0xd80b, 0xbb23, 0xc5d9, 0xe755, 0xf01c, 0x158e, 0x5028, +0x3e7d, 0xfcdb, 0x3482, 0x21eb, 0xbae5, 0xbfbe, 0xd2fb, 0xcfc4, 0xd821, 0x0aca, +0x27bb, 0x3924, 0x3d1e, 0x0e86, 0x271a, 0x205b, 0xd16c, 0xaf53, 0xc9df, 0xe377, +0xce6f, 0xfa21, 0x34f1, 0x4083, 0x3410, 0x259d, 0x319d, 0x06b6, 0xd9dc, 0xb750, +0xb2df, 0xde42, 0xd8e4, 0xfe96, 0x4970, 0x54f6, 0x25ba, 0x2520, 0x3c2e, 0xedea, +0xc061, 0xba0d, 0xba48, 0xde9c, 0xeb84, 0x0af2, 0x401e, 0x56b2, 0x1aa5, 0x0f66, +0x36cf, 0xe844, 0xb80e, 0xc1dd, 0xc246, 0xcece, 0xe9fe, 0x177a, 0x32d2, 0x4547, +0x1818, 0x0c52, 0x30b6, 0xec12, 0xaf1a, 0xb2f2, 0xcfa8, 0xd2b1, 0xdf9e, 0x2116, +0x3ab2, 0x35ab, 0x1b48, 0x247c, 0x25e1, 0xdedd, 0xb1e5, 0xaf2b, 0xdb4a, 0xe17b, +0xdfc7, 0x27da, 0x4f71, 0x34be, 0x0ed1, 0x2d58, 0x1ef5, 0xd091, 0xc1bb, 0xbe47, +0xd524, 0xeaee, 0xf469, 0x2112, 0x4cf4, 0x3d3e, 0x0aff, 0x304c, 0x281a, 0xcdc7, +0xbbed, 0xd088, 0xe04a, 0xdeea, 0xfee9, 0x2f94, 0x47fc, 0x3dff, 0x1a27, 0x31e9, +0x1deb, 0xd894, 0xbec6, 0xc6e8, 0xe5fc, 0xe340, 0x014d, 0x3cd1, 0x4e2f, 0x32bd, +0x1d0c, 0x372e, 0x0af1, 0xce88, 0xc502, 0xc97d, 0xe495, 0xeb9c, 0x0798, 0x374a, +0x4e4d, 0x2a7e, 0x16b3, 0x3ddd, 0x08ed, 0xc949, 0xc5ee, 0xce08, 0xdf28, 0xe8b7, +0x0fe9, 0x3689, 0x490a, 0x2817, 0x1714, 0x38c1, 0x0109, 0xc527, 0xc1af, 0xd087, +0xdced, 0xe41e, 0x12dc, 0x3476, 0x3cd2, 0x201b, 0x1cbb, 0x2e40, 0xf269, 0xc5fe, +0xb844, 0xcaac, 0xdf7f, 0xe02f, 0x0f09, 0x373a, 0x383b, 0x13eb, 0x21ef, 0x2cbc, +0xe41a, 0xc568, 0xb82e, 0xc319, 0xdca2, 0xe63b, 0x0f93, 0x3ca2, 0x4202, 0x11af, +0x2392, 0x2ac6, 0xd906, 0xb7d3, 0xb715, 0xce35, 0xdb89, 0xef49, 0x2213, 0x3ff6, +0x3f4b, 0x14d9, 0x2398, 0x1f27, 0xd7ab, 0xb866, 0xb50a, 0xd74b, 0xe11e, 0xf58b, +0x2ece, 0x467f, 0x3963, 0x1933, 0x2caa, 0x1426, 0xd5d8, 0xbe81, 0xb620, 0xdf76, +0xe789, 0xf65e, 0x349f, 0x505c, 0x3366, 0x16ea, 0x3646, 0x0f5a, 0xd18a, 0xc1b2, +0xb7f7, 0xdd2a, 0xeb2f, 0xfd79, 0x30f5, 0x516e, 0x31d6, 0x12af, 0x388a, 0x0be7, +0xca82, 0xbdf0, 0xbc89, 0xda3c, 0xe687, 0x06e8, 0x3695, 0x5204, 0x3323, 0x158c, +0x3447, 0x05f1, 0xca02, 0xb88d, 0xc1cf, 0xe381, 0xea5c, 0x110d, 0x40c6, 0x4e27, +0x2a69, 0x1e8c, 0x30b5, 0xf349, 0xc5eb, 0xb6f0, 0xc440, 0xe7cd, 0xebf2, 0x1281, +0x4308, 0x4ce7, 0x1f25, 0x1bf5, 0x2d5c, 0xe897, 0xc291, 0xb85f, 0xc6be, 0xe556, +0xf257, 0x1cc0, 0x442d, 0x4d14, 0x200a, 0x1f36, 0x26a6, 0xdf96, 0xbef2, 0xb898, +0xd0e1, 0xe9a1, 0xf513, 0x2536, 0x486a, 0x4666, 0x1bd4, 0x216e, 0x1a61, 0xd966, +0xbfd6, 0xb46f, 0xd414, 0xeb0f, 0xf5c1, 0x2917, 0x4b03, 0x3b01, 0x120a, 0x279d, +0x127b, 0xce60, 0xc0b2, 0xbaa1, 0xd93a, 0xea16, 0xf79d, 0x29e1, 0x4e28, 0x3952, +0x0c9b, 0x2918, 0x0da3, 0xc8e3, 0xbf5d, 0xbd5b, 0xd7be, 0xe6b5, 0xff78, 0x2bfe, +0x474e, 0x30ea, 0x0afb, 0x2996, 0x09da, 0xc618, 0xb66b, 0xc002, 0xde8f, 0xe009, +0x0068, 0x34b1, 0x479e, 0x290d, 0x1057, 0x2cf4, 0x0037, 0xc901, 0xba19, 0xc161, +0xe4c1, 0xe626, 0x06b7, 0x3bce, 0x46e6, 0x1fc6, 0x1c43, 0x37dd, 0xf4a3, 0xc6e9, +0xc0da, 0xc57a, 0xe45d, 0xe96e, 0x0b68, 0x3e09, 0x4c53, 0x1c9e, 0x1978, 0x350c, +0xec82, 0xc2fd, 0xc069, 0xc683, 0xdf64, 0xee42, 0x1619, 0x39da, 0x4685, 0x1dc8, +0x1c78, 0x2de4, 0xe52f, 0xbb56, 0xb88c, 0xd10f, 0xe424, 0xed39, 0x226e, 0x45c9, +0x4373, 0x1798, 0x1d16, 0x2213, 0xe050, 0xbf9c, 0xb315, 0xd32f, 0xe7c5, 0xec31, +0x23d2, 0x48dd, 0x38f4, 0x0de0, 0x25fc, 0x1996, 0xcef8, 0xbc82, 0xb55a, 0xd59c, +0xe89f, 0xefe0, 0x23a4, 0x4993, 0x37a4, 0x0c32, 0x2be5, 0x17d1, 0xcddd, 0xc07a, +0xb8e9, 0xd329, 0xe54b, 0xfb4e, 0x2cfc, 0x4d3a, 0x3bad, 0x0fee, 0x2b2b, 0x1047, +0xc712, 0xb4f7, 0xbbf0, 0xdc5f, 0xe2f3, 0xfef6, 0x224e, 0x4c36, 0x6c76, 0x2b5c, +0xfa57, 0xe594, 0xbdb1, 0x8b0a, 0xa7ca, 0x0160, 0x0786, 0x400c, 0x8424, 0x5796, +0x1be9, 0xf540, 0xbdf9, 0x9768, 0xc4df, 0xbd3d, 0xdd3d, 0x63d3, 0x4e65, 0x1fea, +0x4e57, 0x38bb, 0xd91b, 0xcd56, 0xe3ad, 0xbffd, 0xfbd6, 0x0607, 0xdb8e, 0x3ccb, +0x4192, 0xd6b0, 0xf73b, 0x42bf, 0xeff1, 0xe330, 0x3dbd, 0xfa84, 0xdccf, 0x13df, +0xde74, 0xb718, 0x0b45, 0x28d2, 0xfb25, 0x3fa0, 0x4276, 0xedb2, 0x1335, 0x0954, +0xadc9, 0xc6fc, 0x1522, 0xf53c, 0xfe45, 0x4b87, 0x18e7, 0x04a7, 0x3412, 0xee3f, +0xb321, 0xfd48, 0x04c9, 0xc508, 0x15a8, 0x372c, 0xeb2f, 0x165c, 0x2ca0, 0xce55, +0xd34d, 0x1c95, 0xe2fd, 0xdd7e, 0x3294, 0xf905, 0xe452, 0x34a4, 0x04d0, 0xbdd7, +0x0a01, 0x1d14, 0xce45, 0x0c02, 0x2888, 0xd716, 0x03dc, 0x2b4a, 0xd5cd, 0xd68c, +0x2ef2, 0xfc10, 0xda6f, 0x316f, 0x0773, 0xda8e, 0x2215, 0x0507, 0xb6f3, 0xfe70, +0x2a5d, 0xd6c8, 0x0b84, 0x4188, 0xe8c4, 0xfdd0, 0x2ec5, 0xd794, 0xc3a2, 0x2279, +0xf779, 0xd09d, 0x423d, 0x27fc, 0xe6f8, 0x2f40, 0x1b5a, 0xbc8b, 0xf157, 0x1fb4, +0xcaa0, 0xfa3a, 0x4232, 0xf922, 0x0ecb, 0x3f09, 0xe3ee, 0xc318, 0x1cef, 0xfdc1, +0xca4c, 0x2a22, 0x20f1, 0xe87d, 0x279c, 0x1afc, 0xbe72, 0xe720, 0x2220, 0xd1d4, +0xf6a7, 0x4e3e, 0xf5f4, 0xecca, 0x3b54, 0xf567, 0xb06f, 0x0a45, 0x0b98, 0xc973, +0x28f0, 0x2f21, 0xdfeb, 0x24a0, 0x2810, 0xaef4, 0xd207, 0x2ab3, 0xcd51, 0xdc82, +0x4ca3, 0xfdde, 0xef82, 0x40ab, 0xf143, 0xac33, 0x082b, 0xfdac, 0xb9b7, 0x28f3, +0x2b71, 0xd054, 0x2723, 0x3651, 0xb6cf, 0xd176, 0x2ba8, 0xd75d, 0xdb92, 0x450f, +0xfd8f, 0xec9c, 0x3e23, 0xf598, 0xaf02, 0x111a, 0x135a, 0xbd2d, 0x2334, 0x3d0a, +0xd3d8, 0x1768, 0x3bb0, 0xbab9, 0xc676, 0x311a, 0xe06f, 0xd889, 0x5018, 0x070b, +0xe756, 0x4942, 0xfd09, 0x9d71, 0x0bcc, 0x1bed, 0xb4ce, 0x1c66, 0x47ec, 0xdc5f, +0x1b74, 0x4238, 0xc481, 0xcf1b, 0x32f5, 0xe1ce, 0xda85, 0x4e4d, 0x0437, 0xe474, +0x4777, 0x07ed, 0xaff9, 0x127d, 0x24cd, 0xc370, 0x199d, 0x3e29, 0xd8bf, 0x14fd, +0x3d8b, 0xc8ea, 0xd1b6, 0x3766, 0xecd3, 0xda6f, 0x4fa7, 0x0ce7, 0xdddd, 0x4019, +0x0c05, 0xaedb, 0x0dbc, 0x2b4c, 0xcdd3, 0x1ddc, 0x470d, 0xe283, 0x1764, 0x40d4, +0xcabb, 0xcd66, 0x3585, 0xf1c2, 0xdda9, 0x4ffb, 0x11e4, 0xe28a, 0x415d, 0x12d2, +0xb486, 0x055e, 0x1fd4, 0xc66e, 0x12ca, 0x417e, 0xe4e2, 0x1229, 0x3e2a, 0xd10c, +0xc800, 0x29e0, 0xed4e, 0xd10c, 0x3fcc, 0x11a3, 0xe1f9, 0x3ad7, 0x16ca, 0xb727, +0x0155, 0x2400, 0xc8c6, 0x0c22, 0x40bf, 0xe1dc, 0x06e9, 0x3e89, 0xd924, 0xc59a, +0x27a2, 0xf22c, 0xcfad, 0x3f51, 0x14cd, 0xda51, 0x2f15, 0x1235, 0xae68, 0xedef, +0x1983, 0xc602, 0x06d9, 0x46e6, 0xe9de, 0x01cd, 0x3928, 0xd470, 0xb512, 0x15ff, +0xec31, 0xc9cd, 0x3f78, 0x243a, 0xe15e, 0x29ed, 0x1245, 0xaba1, 0xe5e9, 0x199e, +0xc296, 0xfe39, 0x4ac5, 0xeb5f, 0xfa56, 0x3c11, 0xd94f, 0xae50, 0x1511, 0xf001, +0xbde3, 0x36c2, 0x230d, 0xd7fe, 0x2c17, 0x1e3a, 0xaa06, 0xe31f, 0x226e, 0xc144, +0xf626, 0x4f4e, 0xeb1e, 0xf4dd, 0x3e8c, 0xdc0a, 0xaf47, 0x1e56, 0xfed8, 0xc48e, +0x3d56, 0x2b0f, 0xd682, 0x2918, 0x1dec, 0xa955, 0xe5bb, 0x2b6b, 0xc9b8, 0xfa77, +0x56f8, 0xf481, 0xfb61, 0x4479, 0xdf2e, 0xabca, 0x1c70, 0xffe7, 0xbc88, 0x3a59, +0x3826, 0xe054, 0x2f4b, 0x2c11, 0xb1dd, 0xe03e, 0x2b29, 0xc998, 0xf18d, 0x59ee, +0xf7ac, 0xf73d, 0x4d8e, 0xed67, 0xb1d8, 0x21a9, 0x1848, 0xccda, 0x07a8, 0xffcd, +0xfa23, 0x5aea, 0x3797, 0xd62f, 0x0ab0, 0x245e, 0xb225, 0xc27c, 0x09d2, 0xd863, +0xfe56, 0x5bb6, 0x4ddb, 0x2aa0, 0x3bda, 0x0b4a, 0xc172, 0xdcc2, 0xc178, 0xb04a, +0x211f, 0x3a69, 0xf99a, 0x3316, 0x7dfa, 0x1afe, 0xd954, 0x046d, 0xdf49, 0xb051, +0xdb3e, 0x09de, 0x0f9f, 0x347e, 0x2f84, 0x0af2, 0x3895, 0x1ade, 0xc5b6, 0xd468, +0xfe63, 0xe6d0, 0xddae, 0x14b5, 0x175e, 0x16c3, 0x1fae, 0x122e, 0x1fcb, 0x16f5, +0xef7f, 0xbe99, 0xdd8a, 0xf61b, 0xc6ce, 0x019a, 0x43c3, 0x2909, 0x1168, 0x39ad, +0x2f76, 0xde14, 0xddd2, 0xc963, 0xbd2a, 0xea45, 0xea62, 0x0266, 0x4616, 0x4e1c, +0x015e, 0x18de, 0x36f6, 0xcf20, 0xb656, 0xd210, 0xd017, 0xd8b3, 0xfb2f, 0x1950, +0x2b27, 0x3c69, 0x095e, 0x0ec5, 0x2d9c, 0xe85e, 0xb75b, 0xc4ac, 0xe1a3, 0xcfe0, +0xdf2a, 0x1a10, 0x3183, 0x376b, 0x1d4c, 0x237d, 0x185c, 0xe4f3, 0xbf7b, 0xab18, +0xcfc2, 0xd346, 0xe11c, 0x2903, 0x45ea, 0x24aa, 0x102b, 0x353d, 0x080f, 0xc677, +0xbdeb, 0xb32e, 0xd477, 0xe331, 0xef66, 0x2325, 0x4c5c, 0x27b3, 0xfaf5, 0x3106, +0x1252, 0xc709, 0xca81, 0xcbe5, 0xd04d, 0xdd4e, 0xfd3c, 0x1a5f, 0x3c21, 0x2935, +0x0252, 0x3750, 0x1e8e, 0xc8e4, 0xb83e, 0xd48f, 0xdc6e, 0xce04, 0x0585, 0x31bc, +0x360a, 0x2009, 0x14c2, 0x394e, 0x10a3, 0xc93d, 0xafa5, 0xd6b1, 0xef04, 0xcd94, +0x0467, 0x48be, 0x4051, 0x1437, 0x1fb5, 0x3cd3, 0xf79e, 0xcc8f, 0xc153, 0xcd1f, +0xeeb7, 0xe37c, 0x03cf, 0x4174, 0x4958, 0x1000, 0x1d3b, 0x4853, 0xf289, 0xbea9, +0xc9e2, 0xd4e7, 0xde7b, 0xe633, 0x1461, 0x3e75, 0x4911, 0x1b5a, 0x2106, 0x4059, +0xf467, 0xbf92, 0xc1f8, 0xd995, 0xdcf6, 0xe0ba, 0x1eb5, 0x4600, 0x4167, 0x1d25, +0x2ef9, 0x3639, 0xe56b, 0xc105, 0xc027, 0xd70a, 0xe1eb, 0xea01, 0x247e, 0x4c66, +0x3f10, 0x14c8, 0x3245, 0x3094, 0xdd32, 0xc132, 0xc147, 0xd9a1, 0xe18c, 0xeeb8, +0x2824, 0x4a69, 0x395c, 0x1015, 0x3040, 0x238d, 0xd48a, 0xc21b, 0xc53b, 0xdc6d, +0xe1ce, 0xf6ef, 0x2ad6, 0x46b7, 0x34da, 0x1114, 0x34eb, 0x1e8c, 0xd361, 0xbe8c, +0xc1c6, 0xe012, 0xdf71, 0xf81f, 0x3359, 0x4a06, 0x2d71, 0x1454, 0x38da, 0x0f58, +0xccf4, 0xbea1, 0xbbb5, 0xdb25, 0xe2c4, 0xfd77, 0x3627, 0x5121, 0x2c35, 0x15a0, +0x3989, 0x0018, 0xc03f, 0xbaf5, 0xc3cd, 0xe02b, 0xe6c9, 0x0e3d, 0x3eb5, 0x4d58, +0x26cb, 0x1318, 0x2fe0, 0xf891, 0xc27d, 0xb828, 0xc71e, 0xe21d, 0xe699, 0x15c5, +0x4058, 0x45ef, 0x2262, 0x1985, 0x28bc, 0xeca7, 0xc32c, 0xb7e4, 0xcfc1, 0xea07, +0xe4ac, 0x173a, 0x461c, 0x3eba, 0x15fa, 0x2087, 0x2703, 0xe29a, 0xc4b3, 0xb600, +0xc8f7, 0xe687, 0xe9ba, 0x15c4, 0x426b, 0x3e74, 0x0edd, 0x1f75, 0x23b8, 0xd925, +0xc0ab, 0xba1f, 0xcb2d, 0xe095, 0xeca2, 0x1990, 0x40e5, 0x3c5d, 0x1023, 0x24d2, +0x1ebd, 0xd280, 0xbab7, 0xba30, 0xd226, 0xe0d0, 0xf39a, 0x22d6, 0x4063, 0x34fc, +0x0f3b, 0x2825, 0x190f, 0xd310, 0xbcd9, 0xbd2e, 0xd80b, 0xdd5a, 0xf3ce, 0x2b22, +0x4783, 0x32fb, 0x13a4, 0x3361, 0x1484, 0xcf84, 0xc067, 0xc184, 0xdb6a, 0xe3e8, +0x0230, 0x3122, 0x4768, 0x320a, 0x16c1, 0x3427, 0x0aed, 0xc9bb, 0xba81, 0xc328, +0xe12c, 0xe1e3, 0x07e1, 0x3ec1, 0x4f67, 0x2ddc, 0x15f0, 0x2f32, 0xfe24, 0xc964, +0xbbfd, 0xc754, 0xe848, 0xe9ef, 0x1196, 0x41b3, 0x4b5f, 0x2760, 0x1f91, 0x35ce, +0xf3d5, 0xc722, 0xbfad, 0xcade, 0xe85a, 0xeaa5, 0x1660, 0x4809, 0x4c60, 0x1f11, +0x212f, 0x36b0, 0xefd1, 0xc764, 0xbc28, 0xc837, 0xe455, 0xec50, 0x1c88, 0x4b3c, +0x4de3, 0x2041, 0x28c6, 0x32d7, 0xe1ea, 0xbea7, 0xbd29, 0xd1a9, 0xe60c, 0xf02d, +0x2433, 0x4c51, 0x4811, 0x1816, 0x23ce, 0x292b, 0xdf35, 0xbcec, 0xb6b3, 0xd50d, +0xe49a, 0xee6a, 0x2b0c, 0x4b27, 0x39f9, 0x15f5, 0x29d8, 0x1859, 0xd36e, 0xc04c, +0xb5ab, 0xd4b0, 0xe461, 0xec0c, 0x2803, 0x4fb2, 0x371f, 0x0f49, 0x2de8, 0x1063, +0xc7dd, 0xbbcc, 0xb195, 0xcdad, 0xe2b5, 0xf6ed, 0x29d0, 0x4ac5, 0x31e4, 0x0aa9, +0x2acb, 0x0735, 0xbe72, 0xb39c, 0xb620, 0xd1d9, 0xdc5c, 0xfcdd, 0x307a, 0x46be, +0x2c7c, 0x0a2b, 0x22ab, 0xfca8, 0xc0ac, 0xafc4, 0xb815, 0xde74, 0xe13f, 0x0269, +0x370e, 0x4107, 0x21c4, 0x13c8, 0x26a3, 0xf061, 0xc3ac, 0xb5ad, 0xbbea, 0xe2b6, +0xe314, 0x03cd, 0x3a8a, 0x453e, 0x1c0b, 0x167a, 0x2afd, 0xe8ae, 0xc330, 0xbb1d, +0xbd71, 0xdff6, 0xea8c, 0x0cd6, 0x3cc1, 0x4b59, 0x1e08, 0x1762, 0x288a, 0xe327, +0xbcf5, 0xbc04, 0xcc41, 0xe3b8, 0xf214, 0x1f63, 0x40b7, 0x4556, 0x1932, 0x14e9, +0x22d4, 0xe5af, 0xc176, 0xbaf1, 0xd516, 0xeaa3, 0xed1a, 0x10a5, 0x4490, 0x6d0e, +0x387d, 0x06ad, 0xf979, 0xc011, 0x9e3c, 0xad92, 0xe582, 0x1234, 0x4531, 0x6a71, +0x4d3b, 0x3443, 0xfe14, 0xbf35, 0xb76f, 0xcbe7, 0xc8b4, 0xe9aa, 0x501f, 0x43d8, +0x1d18, 0x4560, 0x2e0d, 0xf4de, 0xea75, 0xe7b7, 0xd73f, 0x0fdc, 0x11cd, 0xd145, +0x29c3, 0x44d4, 0xdad6, 0xf4f0, 0x3e51, 0x092e, 0x07b6, 0x43ce, 0xfd5a, 0xf591, +0x1f19, 0xc2ea, 0xb2d7, 0x198e, 0x140f, 0xfa53, 0x5e12, 0x4564, 0xf1ae, 0x2e33, +0x0b49, 0xa4bb, 0xdaed, 0x1485, 0xdc90, 0x0cbf, 0x4f0d, 0x0854, 0x15b5, 0x3b75, +0xe6b5, 0xbe4e, 0x0981, 0xfc23, 0xc6c6, 0x22a2, 0x2984, 0xf1db, 0x27f9, 0x1ab0, +0xc60e, 0xe49e, 0x21a8, 0xd681, 0xe953, 0x41f4, 0xf337, 0xeb9d, 0x3560, 0xf514, +0xbd12, 0x135a, 0x1144, 0xc99f, 0x21e0, 0x2271, 0xd155, 0x1a35, 0x25a3, 0xbec7, +0xdc7d, 0x31ed, 0xe802, 0xe46d, 0x3ef6, 0xfc72, 0xeb7d, 0x2fc5, 0xecf1, 0xb132, +0x0d6d, 0x171d, 0xcaf3, 0x20be, 0x36cd, 0xdeff, 0x1430, 0x2c97, 0xc49c, 0xcab8, +0x247c, 0xe2b5, 0xd3f1, 0x3d93, 0x0c22, 0xee37, 0x3907, 0x01ea, 0xb32c, 0x07e5, +0x153f, 0xb7d0, 0x0a61, 0x333d, 0xdb8a, 0x1138, 0x3892, 0xcfca, 0xccd1, 0x2831, +0xeb12, 0xd73f, 0x357e, 0xfe1d, 0xe21b, 0x300a, 0xfded, 0xaf91, 0xffaf, 0x1ba1, +0xc5b1, 0x0c52, 0x3c73, 0xe33f, 0xfac8, 0x2338, 0xd7bc, 0xc7f4, 0x0f99, 0xe739, +0xd9e0, 0x3980, 0x0e6d, 0xe382, 0x335e, 0x15f9, 0xae82, 0xe698, 0x1c86, 0xca1d, +0xf6f1, 0x34d2, 0xf14d, 0x0fec, 0x3c9a, 0xdef1, 0xc8df, 0x20f3, 0xea68, 0xc50a, +0x33ef, 0x1185, 0xd7d4, 0x2ebc, 0x2178, 0xc1c1, 0xf72b, 0x2354, 0xd2eb, 0x0168, +0x30db, 0xe0a6, 0x05a6, 0x3bad, 0xdc09, 0xc45f, 0x276d, 0xfd11, 0xcf0a, 0x363e, +0x204b, 0xe4d0, 0x2851, 0x199c, 0xbc3c, 0xe9df, 0x1c38, 0xcf05, 0x03b3, 0x4c0e, +0xf6ee, 0x068d, 0x44a0, 0xe3e0, 0xb163, 0x17fa, 0xfdee, 0xc709, 0x37cd, 0x2e63, +0xea1c, 0x3531, 0x2ca0, 0xbf9e, 0xeeec, 0x2b06, 0xc5f7, 0xf1c8, 0x5385, 0xfc84, +0x0002, 0x49cb, 0xf52b, 0xbfbf, 0x204d, 0x04c6, 0xc649, 0x35e9, 0x30b9, 0xe658, +0x31b2, 0x2cb7, 0xb96b, 0xe5a8, 0x2f24, 0xd410, 0xf6ab, 0x5771, 0x04b9, 0xfc36, +0x3ec2, 0xecd7, 0xb28a, 0x1904, 0x0954, 0xc24d, 0x3764, 0x3ade, 0xddf2, 0x29ce, +0x3445, 0xb4d5, 0xd352, 0x2d79, 0xd037, 0xe09a, 0x535a, 0x01a5, 0xf095, 0x48ef, +0xf767, 0xa8aa, 0x11b3, 0x097b, 0xb15c, 0x2a36, 0x3db4, 0xd6cd, 0x24b8, 0x3712, +0xb430, 0xcdb4, 0x2b60, 0xd3aa, 0xe09b, 0x53eb, 0xfc4a, 0xea6b, 0x4b2a, 0xf90e, +0xa8c8, 0x1124, 0x129b, 0xbaac, 0x269d, 0x4030, 0xda96, 0x20e1, 0x3a2e, 0xbd1c, +0xd0d8, 0x3158, 0xdd88, 0xdee5, 0x57dc, 0x0a22, 0xeb70, 0x4be8, 0x027e, 0xa602, +0x0680, 0x1714, 0xbfed, 0x242e, 0x47b1, 0xe011, 0x1d8e, 0x3eca, 0xc029, 0xc616, +0x2e06, 0xe28f, 0xd4aa, 0x4f9e, 0x0f06, 0xe649, 0x438d, 0x0564, 0xa6f1, 0x02f6, +0x1bd3, 0xc020, 0x18b7, 0x4204, 0xd71b, 0x0fc8, 0x3e52, 0xc2b8, 0xbf78, 0x2bd7, +0xe6d3, 0xce7b, 0x47d7, 0x0a5d, 0xd7d4, 0x39c7, 0x074e, 0xa273, 0xfc77, 0x1fef, +0xbcf9, 0x0cec, 0x426a, 0xd4f2, 0x044f, 0x3d93, 0xc6ea, 0xbcdf, 0x2bd1, 0xed0b, +0xce10, 0x43d0, 0x0ca2, 0xd5d2, 0x35c4, 0x0c15, 0xa646, 0xfa2d, 0x2097, 0xc0dd, +0x0c2b, 0x439b, 0xdc9c, 0x059f, 0x3b30, 0xca4a, 0xbbcb, 0x2337, 0xe7a3, 0xc717, +0x3dae, 0x1491, 0xdc09, 0x3229, 0x0f3e, 0xac38, 0xf62a, 0x25d7, 0xcda9, 0xe86a, +0x0ccd, 0xe87d, 0x2a51, 0x46ee, 0xea42, 0xe40d, 0x22b1, 0xd631, 0xa84b, 0xf868, +0xe4f9, 0xdc35, 0x395d, 0x50be, 0x1fd6, 0x25ac, 0x1e57, 0xc641, 0xc358, 0xd0f2, +0xac56, 0xf1aa, 0x385d, 0x08e0, 0x0c0c, 0x6c90, 0x3d9a, 0xd534, 0xf575, 0xf32f, +0xb660, 0xc715, 0x00c3, 0x060a, 0x1cc0, 0x3bee, 0x0fef, 0x2648, 0x390e, 0xe520, +0xcaa4, 0xfc07, 0xfa8c, 0xcfc3, 0xff3b, 0x2146, 0x0eaa, 0x22f7, 0x21eb, 0x22a5, +0x2b3f, 0x140f, 0xd035, 0xce0d, 0x018b, 0xcdfd, 0xe402, 0x4024, 0x35a0, 0x11b4, +0x30f7, 0x48c6, 0xfc36, 0xe429, 0xd9e4, 0xb819, 0xe9ae, 0xecf6, 0xeaac, 0x339b, +0x5af6, 0x18c2, 0x0a7d, 0x49f9, 0xfaf8, 0xba8d, 0xd5ae, 0xd0dc, 0xd43b, 0xee6d, +0x117b, 0x23d1, 0x46ee, 0x29ad, 0x0339, 0x3a96, 0x1314, 0xc110, 0xbad0, 0xd9cf, +0xd706, 0xcd74, 0x0d91, 0x315e, 0x3f9c, 0x359b, 0x2190, 0x2aef, 0x0433, 0xcdb2, +0xa574, 0xc711, 0xe12e, 0xcf40, 0x197f, 0x5324, 0x3d77, 0x20a5, 0x375c, 0x2d03, +0xe262, 0xca54, 0xb0b0, 0xc640, 0xed6e, 0xe3a9, 0x14a7, 0x559a, 0x4789, 0x0af5, +0x2c0d, 0x3078, 0xd574, 0xc8f1, 0xc60c, 0xc4a3, 0xddbb, 0xf434, 0x12bf, 0x3a4f, +0x46b5, 0x0de9, 0x28f8, 0x3a3e, 0xd862, 0xb36e, 0xc4b9, 0xd290, 0xcc9e, 0xf150, +0x28e5, 0x36b7, 0x3727, 0x1942, 0x296a, 0x1f3b, 0xd304, 0xaa50, 0xb7e0, 0xe064, +0xcd60, 0xe774, 0x36d2, 0x4354, 0x256f, 0x16b9, 0x32a9, 0x04e9, 0xc94b, 0xbd89, +0xb4e8, 0xde63, 0xe6b3, 0xefc2, 0x2c99, 0x4d30, 0x244c, 0x0dd9, 0x4013, 0x0a25, +0xbf81, 0xc647, 0xc8d3, 0xd098, 0xddd7, 0x0729, 0x2f46, 0x49fe, 0x3186, 0x11dd, +0x33c9, 0x0a1a, 0xc455, 0xb4fe, 0xcbf9, 0xe01f, 0xd9c3, 0x0d63, 0x3ca9, 0x40e4, +0x2597, 0x1f85, 0x2fee, 0xf6c7, 0xc763, 0xb733, 0xcbd2, 0xe734, 0xe337, 0x11ef, +0x4379, 0x4377, 0x1865, 0x216c, 0x32c8, 0xee0c, 0xca47, 0xc04a, 0xd076, 0xe70b, +0xebed, 0x16a9, 0x3f81, 0x44ae, 0x16f6, 0x2266, 0x31f0, 0xe6d6, 0xc30d, 0xc333, +0xd87e, 0xe495, 0xf14b, 0x1f91, 0x3ab4, 0x3a37, 0x1822, 0x291b, 0x2bcf, 0xea2c, +0xc762, 0xbf57, 0xdd08, 0xe181, 0xec7b, 0x28f2, 0x456d, 0x366d, 0x1d72, 0x3891, +0x2266, 0xe229, 0xcd55, 0xbe26, 0xdad8, 0xe6b2, 0xf1ad, 0x2a59, 0x4ce7, 0x346f, +0x18da, 0x3eb3, 0x1a5c, 0xd0e6, 0xc45c, 0xbfe1, 0xd4d3, 0xe11f, 0x014a, 0x2f81, +0x4863, 0x3408, 0x1268, 0x31f4, 0x0ec8, 0xca3c, 0xb9fc, 0xc1dc, 0xdd52, 0xe093, +0x05ff, 0x33c3, 0x43d7, 0x2da7, 0x1671, 0x2bf0, 0x0034, 0xc97d, 0xb0c3, 0xbe5e, +0xe43b, 0xdb68, 0x0387, 0x3ae6, 0x3ee7, 0x1b43, 0x174b, 0x2d76, 0xf26e, 0xc68d, +0xb289, 0xbb76, 0xe0fe, 0xde57, 0x0305, 0x3b0e, 0x44f7, 0x17e8, 0x1ae0, 0x2e9e, +0xe6b9, 0xc23e, 0xb5b3, 0xbe35, 0xde8a, 0xe55c, 0x0e04, 0x3e2d, 0x4749, 0x1891, +0x1cce, 0x2c46, 0xe31a, 0xbc10, 0xb2be, 0xc7d4, 0xe1b0, 0xec58, 0x1b5f, 0x42a4, +0x4577, 0x18af, 0x206d, 0x2610, 0xe0cf, 0xbee7, 0xb63b, 0xd3ec, 0xe4ab, 0xed6c, +0x253f, 0x4a99, 0x42a8, 0x18da, 0x2a90, 0x2130, 0xd967, 0xc013, 0xb623, 0xd3d0, +0xe7d4, 0xf7c7, 0x2d1b, 0x4df4, 0x3dfe, 0x18d3, 0x2e94, 0x12e1, 0xceb7, 0xbc8b, +0xb721, 0xd9e6, 0xe7b6, 0xfe42, 0x37c7, 0x5256, 0x3916, 0x14fa, 0x2b19, 0x0829, +0xcbbc, 0xbc11, 0xba4e, 0xe0c8, 0xec3c, 0x04ba, 0x39d7, 0x4f48, 0x314f, 0x1b2a, +0x320f, 0xfbd4, 0xc7ad, 0xbe46, 0xbcb0, 0xdfec, 0xea9d, 0x0a76, 0x3eae, 0x51ce, +0x28b8, 0x15c7, 0x32b1, 0xf736, 0xc436, 0xbbe2, 0xc2bd, 0xe357, 0xecf4, 0x10c4, +0x40f6, 0x524e, 0x25cd, 0x19ce, 0x301e, 0xec1e, 0xbc6a, 0xbace, 0xd1d8, 0xe825, +0xec23, 0x1b1b, 0x4400, 0x482a, 0x1bce, 0x1896, 0x260d, 0xe7f6, 0xc325, 0xb5e4, +0xd101, 0xeabf, 0xea0d, 0x1d52, 0x47b3, 0x3cf0, 0x1282, 0x235d, 0x2050, 0xd9ae, +0xc4d9, 0xb970, 0xd086, 0xe87d, 0xea86, 0x1b23, 0x48b1, 0x3c02, 0x0e92, 0x2cb2, +0x2472, 0xd2cb, 0xbff8, 0xbc43, 0xce22, 0xe2d3, 0xf745, 0x2364, 0x47bb, 0x3e11, +0x1209, 0x2f53, 0x1fb0, 0xcfac, 0xba0d, 0xbeea, 0xd8e3, 0xde1c, 0xf854, 0x2f24, +0x49ea, 0x387f, 0x14be, 0x2de7, 0x1304, 0xd01b, 0xb948, 0xbc56, 0xe0d1, 0xe484, +0xff93, 0x3655, 0x488a, 0x2bf5, 0x16ba, 0x3637, 0x07aa, 0xcf32, 0xc24d, 0xc063, +0xe449, 0xe713, 0x01e8, 0x3b25, 0x4f83, 0x26c5, 0x1640, 0x3ab8, 0xff8c, 0xc83c, +0xbf7c, 0xc052, 0xdf32, 0xe807, 0x09ef, 0x390f, 0x4d01, 0x25f5, 0x19b1, 0x3685, +0xf201, 0xbb2e, 0xb561, 0xc59a, 0xdeac, 0xe81d, 0x110d, 0x2f0d, 0x5faf, 0x5bc4, +0x12fe, 0xf615, 0xda50, 0xa9ae, 0x886f, 0xcd18, 0x0718, 0x09f1, 0x5bb7, 0x7af7, +0x3e15, 0x0a73, 0xe799, 0xa715, 0x9c71, 0xc971, 0xb0a1, 0x07a7, 0x6f82, 0x3163, +0x2a82, 0x5398, 0x14c9, 0xbfc2, 0xd8b3, 0xd540, 0xc5ce, 0x0fda, 0xf099, 0xf1a7, +0x518e, 0x1c60, 0xcd84, 0x19da, 0x35b8, 0xd346, 0x03a1, 0x377b, 0xdf14, 0xefc5, +0x0c59, 0xc206, 0xc448, 0x2196, 0x11ee, 0xfe70, 0x4f48, 0x1fa8, 0xeb2d, 0x1d5b, +0xeaf2, 0x9f51, 0xdaef, 0x10e0, 0xe2b8, 0x140e, 0x4a7c, 0x0548, 0x11c6, 0x2b5c, +0xd063, 0xb9e9, 0x0c49, 0xee9f, 0xcd6b, 0x32da, 0x2204, 0xe702, 0x2c36, 0x195d, +0xbc4d, 0xef56, 0x1ea6, 0xd1a8, 0xfb24, 0x33f8, 0xe2fa, 0xffb5, 0x3ccd, 0xe4cb, +0xca25, 0x2563, 0x0355, 0xd2da, 0x2bb0, 0x137a, 0xd6ec, 0x2218, 0x1b95, 0xc3b7, +0xf854, 0x3722, 0xe6e8, 0xf671, 0x3596, 0xec18, 0xf030, 0x2d9c, 0xe6e7, 0xc2e9, +0x26d5, 0x1a49, 0xd733, 0x2bbd, 0x26a1, 0xdab2, 0x1ba0, 0x23f0, 0xc355, 0xe703, +0x2bce, 0xdc49, 0xf190, 0x496d, 0xfc6e, 0xf386, 0x3dfc, 0xf7e9, 0xbcff, 0x1444, +0x0996, 0xc579, 0x1fc6, 0x2a9c, 0xe722, 0x261f, 0x2af6, 0xc74c, 0xe3b8, 0x2a8b, +0xe105, 0xe8c4, 0x3bef, 0xfd9f, 0xefc2, 0x313f, 0xf888, 0xbeed, 0x0f0d, 0x10ba, +0xcf13, 0x2814, 0x3a0d, 0xdf51, 0x0dca, 0x2f8f, 0xccfa, 0xc831, 0x1d1f, 0xe940, +0xe8cf, 0x4a93, 0x0d52, 0xef83, 0x3c76, 0xfaba, 0xa5dd, 0x0126, 0x112f, 0xbdc7, +0x1a61, 0x422a, 0xe9fb, 0x1b1a, 0x3694, 0xc9c9, 0xce2b, 0x1ef2, 0xd732, 0xdc7b, +0x46da, 0xff7f, 0xe9fc, 0x46e1, 0x05ac, 0xaeb6, 0x0663, 0x159d, 0xc012, 0x1316, +0x34ba, 0xdd94, 0x12fd, 0x31f6, 0xc596, 0xcbff, 0x2ae2, 0xe4d5, 0xd6c1, 0x4927, +0x0b3d, 0xdd77, 0x3926, 0x07d1, 0xa2d2, 0xfb2e, 0x211d, 0xc317, 0x1769, 0x4b14, +0xe280, 0x1326, 0x411c, 0xc1e2, 0xbac5, 0x2cf6, 0xe603, 0xcb4b, 0x4ed8, 0x191b, +0xe401, 0x458d, 0x1545, 0xac87, 0x005f, 0x1e4a, 0xba9b, 0x0cc0, 0x467e, 0xe1cf, +0x11da, 0x478e, 0xd350, 0xc70d, 0x31c1, 0xf201, 0xce1e, 0x434c, 0x12d6, 0xdd0b, +0x3986, 0x1337, 0xaf6d, 0x006c, 0x2ca7, 0xc8ff, 0x0c23, 0x4bde, 0xe11d, 0x0318, +0x41ef, 0xd0e5, 0xbd29, 0x3042, 0xf8a0, 0xd014, 0x4ad2, 0x1b53, 0xda3d, 0x3aa3, +0x14be, 0xa4bb, 0xf7a1, 0x2b27, 0xc43a, 0x0948, 0x507e, 0xe296, 0x0297, 0x45db, +0xd510, 0xb990, 0x273a, 0xf430, 0xc750, 0x3f4c, 0x1a85, 0xdb6a, 0x3993, 0x1ab4, +0xadf3, 0xf5f6, 0x280d, 0xc5fc, 0xfe8a, 0x4668, 0xe58d, 0x011c, 0x457a, 0xdfc7, +0xbebe, 0x255e, 0xfae1, 0xcb02, 0x3a3a, 0x1b49, 0xd635, 0x2c90, 0x1a6d, 0xb0f1, +0xf0b7, 0x2851, 0xcb11, 0xfd3b, 0x4815, 0xe902, 0xf73a, 0x3af3, 0xde3a, 0xb633, +0x1a27, 0xfae7, 0xc8e7, 0x3373, 0x1efa, 0xdab3, 0x2af8, 0x1f54, 0xb3a4, 0xe5bd, +0x2010, 0xc657, 0xef33, 0x4332, 0xf32a, 0xf8bc, 0x3a43, 0xe716, 0xb380, 0x1025, +0xf94b, 0xbff8, 0x2cbe, 0x2722, 0xd958, 0x2238, 0x24de, 0xb4e0, 0xd8e0, 0x219f, +0xcbf4, 0xec3e, 0x4cc4, 0xf5db, 0xee65, 0x3cb1, 0xe88f, 0xad6b, 0x15fb, 0x0312, +0xbe65, 0x3207, 0x3441, 0xd731, 0x1ee6, 0x2923, 0xb321, 0xd7af, 0x26e1, 0xce3a, +0xeb73, 0x52d6, 0xfb3a, 0xed11, 0x3fa2, 0xeb93, 0xa537, 0x0fde, 0x078b, 0xbcc7, +0x2dd2, 0x39bf, 0xde73, 0x2216, 0x2ba5, 0xb204, 0xd113, 0x2873, 0xd059, 0xe433, +0x5331, 0x00f5, 0xede6, 0x41c9, 0xf3f8, 0xaa8c, 0x0f24, 0x06be, 0xb5e6, 0x29e9, +0x39f4, 0xda5d, 0x25b6, 0x2b84, 0xb07f, 0xd942, 0x36fe, 0xe8ec, 0xcdd1, 0x1733, +0x0849, 0x1aa1, 0x4558, 0xfb48, 0xd3ef, 0x11bd, 0xef48, 0xb142, 0xf697, 0xfdea, +0xd64a, 0x32a6, 0x6fed, 0x25f8, 0x0b17, 0x2a5c, 0xdff3, 0xaef4, 0xd4ec, 0xbcba, +0xe25d, 0x44cb, 0x234b, 0x1321, 0x73ba, 0x4da9, 0xced4, 0xe817, 0x007f, 0xa908, +0xb5df, 0x1df6, 0x1875, 0x0e2c, 0x3ec1, 0x2fcd, 0x272d, 0x2290, 0xe25c, 0xc07e, +0xf134, 0xfb4d, 0xd6f2, 0x0ad3, 0x3447, 0x223c, 0x13f1, 0x2272, 0x269f, 0x025a, +0x0161, 0xd722, 0xd224, 0x0308, 0xde38, 0xef78, 0x3c18, 0x42ed, 0x0555, 0x290a, +0x5400, 0xe6be, 0xca2d, 0xdae9, 0xc68f, 0xd7d0, 0xf47c, 0x10ed, 0x3184, 0x5941, +0x1cf6, 0x0891, 0x3a35, 0xeb6f, 0xae39, 0xc817, 0xe6f7, 0xd6ef, 0xebb0, 0x3372, +0x35f1, 0x34dd, 0x1e90, 0x16f7, 0x21a1, 0xf074, 0xc287, 0xb8c4, 0xe82d, 0xe6eb, +0xdb90, 0x1e19, 0x40af, 0x3208, 0x1a9a, 0x320f, 0x1b9a, 0xdeff, 0xcf46, 0xb4a3, +0xcbd7, 0xdf68, 0xe59a, 0x22fe, 0x55b5, 0x3892, 0x0be2, 0x396b, 0x1a98, 0xc635, +0xc146, 0xc092, 0xd361, 0xe7eb, 0x0383, 0x2879, 0x4c6a, 0x3c0d, 0x05ca, 0x2976, +0x14a9, 0xc798, 0xc116, 0xd2d8, 0xdd50, 0xdcd3, 0x0b09, 0x2bce, 0x3653, 0x2ab8, +0x0a52, 0x2aa9, 0x14b7, 0xd401, 0xb890, 0xcc60, 0xea88, 0xd5e4, 0xfe7d, 0x383b, +0x3ade, 0x1b88, 0x1ad7, 0x3ed1, 0x075f, 0xcd9c, 0xbbc4, 0xcbe8, 0xeb85, 0xd822, +0xfbc3, 0x3e44, 0x459b, 0x10ea, 0x17ee, 0x43df, 0xf7f9, 0xc0a0, 0xc419, 0xcf1f, +0xdea4, 0xe05f, 0x0678, 0x330f, 0x42d4, 0x111c, 0x0fba, 0x3f57, 0xf9a8, 0xb669, +0xbe1b, 0xe146, 0xdd9a, 0xd4be, 0x11a3, 0x389d, 0x37d6, 0x13b2, 0x1c70, 0x3370, +0xf10c, 0xc063, 0xb6e6, 0xd48a, 0xdc66, 0xd809, 0x1789, 0x3f92, 0x3566, 0x0e0f, +0x231e, 0x2ea3, 0xde28, 0xbb31, 0xba09, 0xcf05, 0xd866, 0xdfc8, 0x18f1, 0x3ecd, +0x369b, 0x0a8f, 0x2386, 0x2af2, 0xda2a, 0xb79e, 0xb7d0, 0xd687, 0xde35, 0xe721, +0x22ba, 0x4574, 0x3572, 0x0dd3, 0x2e06, 0x263b, 0xd7ab, 0xbfc7, 0xc2f6, 0xdf1b, +0xe1c3, 0xf1d5, 0x2cb4, 0x4e1c, 0x37cd, 0x115d, 0x35cd, 0x1fe6, 0xd779, 0xc301, +0xc58e, 0xe72d, 0xe5ce, 0xf960, 0x335a, 0x4fb4, 0x357b, 0x1898, 0x426e, 0x1cc2, +0xd473, 0xc727, 0xc831, 0xe1fb, 0xe68f, 0x072e, 0x3da1, 0x58d4, 0x39ac, 0x1d25, +0x4338, 0x1401, 0xcf2b, 0xbee6, 0xca41, 0xe875, 0xe64f, 0x1316, 0x4982, 0x5236, +0x2f67, 0x2085, 0x38b8, 0xfd01, 0xc7c8, 0xba93, 0xc979, 0xebc7, 0xea26, 0x168d, +0x477d, 0x4817, 0x212b, 0x1fdd, 0x335a, 0xef3e, 0xc484, 0xb895, 0xc9b8, 0xec42, +0xe805, 0x136b, 0x4a61, 0x4971, 0x17b6, 0x1f6a, 0x2f97, 0xe4b1, 0xc086, 0xb999, +0xcac9, 0xe5fd, 0xee0c, 0x1807, 0x412f, 0x460f, 0x166d, 0x1f4c, 0x29b3, 0xdc64, +0xb965, 0xb861, 0xd211, 0xe147, 0xeb99, 0x2193, 0x450f, 0x3ce4, 0x113e, 0x1f63, +0x1c84, 0xd769, 0xb874, 0xb487, 0xd682, 0xe1c9, 0xed74, 0x24b0, 0x43a4, 0x33ba, +0x0e1c, 0x2413, 0x10f7, 0xcdd3, 0xb977, 0xb8d7, 0xdbc4, 0xe37c, 0xf175, 0x272e, +0x457d, 0x2d0a, 0x07d0, 0x297e, 0x0f41, 0xca51, 0xb9f7, 0xbc9a, 0xdaa7, 0xddfe, +0xf766, 0x2c64, 0x4532, 0x2d7b, 0x0dd9, 0x2cf4, 0x0c17, 0xc90f, 0xb4bc, 0xc07f, +0xe270, 0xdce1, 0xfc63, 0x371a, 0x4749, 0x2579, 0x1187, 0x2dc1, 0xff1f, 0xc7eb, +0xb7f0, 0xc150, 0xe209, 0xe0bb, 0x0562, 0x39a6, 0x419b, 0x18df, 0x11d0, 0x32b0, +0xf640, 0xc162, 0xbaa8, 0xc92a, 0xe355, 0xdf42, 0x07ce, 0x3de6, 0x485f, 0x1a8d, +0x15e0, 0x345d, 0xf2a7, 0xc2b4, 0xbc48, 0xcb43, 0xe331, 0xe771, 0x171d, 0x41c7, +0x46e8, 0x1e6a, 0x1d99, 0x3169, 0xea47, 0xbb34, 0xb612, 0xcfe5, 0xe372, 0xe4f4, +0x1dce, 0x4978, 0x4538, 0x1abb, 0x1ff9, 0x2726, 0xe2ee, 0xbf5a, 0xb642, 0xd6a7, +0xeb65, 0xe981, 0x26c2, 0x5246, 0x3d0f, 0x142e, 0x2f6c, 0x28fc, 0xda88, 0xc3aa, +0xbdbe, 0xd749, 0xeb54, 0xf1e0, 0x25cd, 0x526c, 0x41ba, 0x10bf, 0x2fe6, 0x2449, +0xd374, 0xbfc4, 0xbbe2, 0xd283, 0xe25c, 0xf99f, 0x2cef, 0x4ac7, 0x3ddf, 0x17d9, +0x3082, 0x1925, 0xce89, 0xb6a1, 0xbc50, 0xe283, 0xe474, 0xfd8d, 0x3bcc, 0x4e96, +0x33c3, 0x167a, 0x2e47, 0x0a43, 0xcef1, 0xbc29, 0xba3d, 0xe1a3, 0xe5f7, 0xfe7c, +0x39db, 0x4bea, 0x270e, 0x128b, 0x30de, 0xfb59, 0xc505, 0xbdab, 0xbd60, 0xe0c5, +0xe64a, 0x0171, 0x35c3, 0x47fc, 0x21b5, 0x11b5, 0x30fa, 0xf4fc, 0xc06e, 0xbaa3, +0xbc7a, 0xd83f, 0xe4e1, 0x0b66, 0x373d, 0x497a, 0x2421, 0x109c, 0x26f1, 0xecb6, +0xbadf, 0xb11f, 0xc45d, 0xdf59, 0xe4b2, 0x1641, 0x3f59, 0x42bc, 0x1c1c, 0x129c, +0x1bee, 0xe133, 0xbe64, 0xb1ad, 0xcc9f, 0xec32, 0xe986, 0x19ae, 0x44e5, 0x3a19, +0x0e88, 0x1ade, 0x1f2c, 0xdec4, 0xc3cc, 0xb2ef, 0xdaab, 0xfd08, 0xe6a7, 0x1123, +0x3704, 0x3898, 0x3ad4, 0x346f, 0xfe92, 0xd1d3, 0xcc04, 0x9cbd, 0xc135, 0x02eb, +0xf63b, 0x365b, 0x8b58, 0x58ad, 0x0415, 0x0488, 0xcf1c, 0x8e64, 0xb611, 0xc2c4, +0xeda1, 0x4ea8, 0x63da, 0x49bb, 0x50ec, 0x3618, 0xc859, 0xb818, 0xe010, 0xbc83, +0xd14a, 0x1ad8, 0x32a9, 0x4030, 0x4434, 0x0f51, 0xf80f, 0x1895, 0xeaf8, 0xc48d, +0x175a, 0x2702, 0xe895, 0x0fd2, 0x2756, 0xcf30, 0xdfad, 0x3a11, 0xfb80, 0xfa5f, +0x565f, 0x121d, 0xf290, 0x2352, 0xddf3, 0xa5f4, 0xfe06, 0x187b, 0xde96, 0x3a13, +0x5105, 0xf698, 0x255a, 0x212e, 0xb7a3, 0xc5a7, 0x10d7, 0xdeff, 0xe90b, 0x551a, +0x1708, 0xfd81, 0x42e8, 0xf9ae, 0xb328, 0xf8c8, 0x0cd4, 0xc910, 0x1398, 0x3cf8, +0xe89b, 0x1c9d, 0x36c1, 0xcb0b, 0xcca6, 0x2759, 0xf1e2, 0xd264, 0x3d80, 0x146d, +0xe372, 0x36c2, 0x0ab3, 0xb2ef, 0x0a0e, 0x2e96, 0xc7be, 0x0dcf, 0x4ba5, 0xdcd8, +0xff1f, 0x391f, 0xcf51, 0xc4c3, 0x314b, 0xfef3, 0xd680, 0x41c6, 0x156e, 0xdd3b, +0x2eeb, 0x0886, 0xa9c9, 0xf3a6, 0x247e, 0xc927, 0x069f, 0x4a37, 0xe895, 0x0061, +0x378e, 0xd6a1, 0xb348, 0x1688, 0xf810, 0xc498, 0x323f, 0x1fc5, 0xe066, 0x29b3, +0x139d, 0xadbb, 0xe71a, 0x2c44, 0xcae3, 0xe8e1, 0x3f89, 0xe822, 0xf034, 0x367a, +0xdf30, 0xb32c, 0x1aba, 0x0281, 0xcc1b, 0x36c4, 0x14ca, 0xc6d5, 0x2590, 0x1c08, +0xa351, 0xd7ce, 0x2a74, 0xd59f, 0xf3fa, 0x477e, 0xf4e0, 0xf8ff, 0x3121, 0xdc01, +0xb775, 0x150c, 0xfcd8, 0xcc0d, 0x38c8, 0x2ece, 0xe423, 0x2849, 0x29b5, 0xc302, +0xda74, 0x1f47, 0xdd2f, 0xf247, 0x3ab2, 0xf2d7, 0x006a, 0x4787, 0xf2b8, 0xbc9f, +0x1f1c, 0x0ac7, 0xbde9, 0x23df, 0x2b4d, 0xd869, 0x1cf2, 0x2e59, 0xc8ac, 0xe6ca, +0x2cef, 0xd907, 0xf197, 0x4b23, 0xf20c, 0xef15, 0x4469, 0xf156, 0xb2a9, 0x1bfd, +0x127b, 0xca28, 0x306d, 0x3438, 0xdf08, 0x20cf, 0x27a1, 0xb9c7, 0xd8d7, 0x2741, +0xd309, 0xe588, 0x5056, 0x03d5, 0xef96, 0x4207, 0xfd8d, 0xae5f, 0x03b5, 0x0589, +0xbd38, 0x23af, 0x3a76, 0xe095, 0x2023, 0x3839, 0xc165, 0xd4ca, 0x2de1, 0xd781, +0xe09b, 0x50bd, 0x0340, 0xea0c, 0x4022, 0xf840, 0xad2c, 0x1331, 0x12e3, 0xc260, +0x2f2a, 0x3b6c, 0xd12c, 0x18a4, 0x3197, 0xb77c, 0xd13d, 0x2bd2, 0xd972, 0xe616, +0x52eb, 0x041e, 0xeb26, 0x3bdc, 0xf119, 0xa2b2, 0x06d5, 0x1049, 0xbd97, 0x289f, +0x44ee, 0xdf14, 0x1d7f, 0x34ac, 0xb7bb, 0xc690, 0x278a, 0xda25, 0xdff9, 0x579a, +0x080c, 0xe6ec, 0x4374, 0xfcbd, 0xa5be, 0x078c, 0x146b, 0xbb5b, 0x2164, 0x4262, +0xdc47, 0x1e50, 0x39f8, 0xbce7, 0xcbb4, 0x2afe, 0xdc45, 0xdb5e, 0x5409, 0x0b3a, +0xe53c, 0x4358, 0x02ae, 0xa896, 0x0857, 0x1af8, 0xc23a, 0x2352, 0x496b, 0xdfb5, +0x197e, 0x3ce3, 0xbe54, 0xc506, 0x3012, 0xe677, 0xd704, 0x5217, 0x11ee, 0xe2e7, +0x3fe4, 0x06fa, 0xa5a3, 0xfdcd, 0x181f, 0xbb44, 0x1747, 0x4a1f, 0xdca9, 0x10d6, +0x4291, 0xc4a6, 0xbd25, 0x2a87, 0xe605, 0xcbf6, 0x4b38, 0x15fb, 0xe0ad, 0x3f35, +0x0d36, 0xa652, 0x0068, 0x234a, 0xbde1, 0x11e2, 0x4aeb, 0xdbe0, 0x0a9d, 0x4344, +0xcb41, 0xbfb5, 0x3005, 0xef5d, 0xcc1b, 0x497b, 0x1516, 0xd825, 0x3b8a, 0x1677, +0xabc7, 0xfeb9, 0x2dcb, 0xc484, 0x08d9, 0x4f69, 0xe275, 0x041d, 0x4846, 0xd81a, +0xc055, 0x3307, 0xfcca, 0xce29, 0x4a68, 0x20cb, 0xd8f3, 0x379a, 0x1b24, 0xaf02, +0xfaf5, 0x36a2, 0xdc0c, 0xf2c4, 0x1be5, 0xefab, 0x3121, 0x54a4, 0xf198, 0xe7b1, +0x2ba4, 0xe144, 0xad6e, 0x0105, 0xf0a8, 0xe331, 0x4379, 0x5911, 0x2529, 0x2cc9, +0x279d, 0xcce3, 0xc4aa, 0xd6d0, 0xaebe, 0xee7a, 0x3b83, 0x0e08, 0x0c23, 0x6c6b, +0x4249, 0xd2d0, 0xee99, 0xf0dc, 0xb1d9, 0xc315, 0x0097, 0x05b2, 0x198e, 0x3a21, +0x0a87, 0x19af, 0x3001, 0xda73, 0xbf3b, 0xf320, 0xf1e8, 0xce48, 0xfde9, 0x1c97, +0x092a, 0x1c03, 0x1996, 0x174f, 0x1e06, 0x0784, 0xc7d4, 0xc266, 0xf6c0, 0xcc3e, +0xdd41, 0x35c9, 0x3070, 0x0e9b, 0x2df6, 0x46cc, 0xf777, 0xdb3b, 0xd86d, 0xb2ad, +0xdad5, 0xea97, 0xeb13, 0x2dfd, 0x5bf5, 0x1d45, 0x0c80, 0x4c6b, 0xf9d2, 0xb332, +0xd3b1, 0xcca7, 0xc90a, 0xeeb9, 0x1637, 0x2142, 0x4501, 0x2b65, 0x034c, 0x35ee, +0x0df0, 0xbcaf, 0xb962, 0xda48, 0xd509, 0xd169, 0x125a, 0x2f7e, 0x3ce9, 0x31e9, +0x1f9f, 0x25c3, 0xf9ce, 0xc7fa, 0xa4bc, 0xc4e4, 0xde14, 0xd114, 0x1820, 0x4ec1, +0x3955, 0x1716, 0x2ffb, 0x23e1, 0xd401, 0xc118, 0xaea8, 0xc267, 0xe761, 0xe650, +0x166b, 0x5317, 0x4508, 0x02ef, 0x256f, 0x2a58, 0xc9bf, 0xbfb1, 0xc690, 0xc4c0, +0xdb5a, 0xfc3e, 0x1d56, 0x406f, 0x4672, 0x07f9, 0x258b, 0x3563, 0xd0af, 0xad4b, +0xc62c, 0xd7ec, 0xd118, 0xfacb, 0x32c8, 0x3cf8, 0x3893, 0x1827, 0x2a88, 0x2056, +0xd2e0, 0xa9a8, 0xbc95, 0xe82d, 0xd209, 0xed42, 0x4049, 0x4bca, 0x27a4, 0x17b5, +0x33c7, 0x048c, 0xc896, 0xbbc4, 0xb5e8, 0xde55, 0xe670, 0xf26e, 0x319d, 0x5284, +0x20bb, 0x0a37, 0x3f54, 0x0425, 0xb7b6, 0xbeac, 0xc4a7, 0xd10a, 0xdf90, 0x067a, +0x32d8, 0x4def, 0x29e9, 0x0de0, 0x33b8, 0x00f9, 0xbb53, 0xb44c, 0xca99, 0xdcb3, +0xdf0d, 0x140a, 0x4211, 0x47c0, 0x2741, 0x1ffe, 0x3026, 0xf2ee, 0xc44d, 0xb8c2, +0xcbde, 0xe86b, 0xed77, 0x1b4d, 0x47ee, 0x4766, 0x1ae9, 0x2386, 0x33e9, 0xea57, +0xc4ae, 0xc182, 0xd3ec, 0xeae1, 0xf2fa, 0x1c99, 0x46ce, 0x4849, 0x16e5, 0x2357, +0x2d0d, 0xe171, 0xc2b4, 0xc619, 0xdb43, 0xe861, 0xf96a, 0x2580, 0x41a1, 0x3fcc, +0x14f6, 0x245e, 0x2692, 0xe3d9, 0xc4b2, 0xc084, 0xdcfb, 0xe481, 0xf277, 0x26e8, +0x4453, 0x3677, 0x1401, 0x2eb5, 0x1c61, 0xda3a, 0xc536, 0xbbc2, 0xd95f, 0xe409, +0xf088, 0x24e3, 0x4a50, 0x36ef, 0x1343, 0x3794, 0x1bd7, 0xd0b1, 0xbf04, 0xc0c0, +0xd999, 0xe102, 0xfe57, 0x307b, 0x4c60, 0x3446, 0x110b, 0x34af, 0x1719, 0xd246, +0xbe92, 0xc661, 0xdf01, 0xde95, 0x04b9, 0x34ae, 0x44b2, 0x2c3e, 0x140f, 0x311d, +0x09e5, 0xcd57, 0xb673, 0xc4ea, 0xe8e6, 0xdfae, 0x02f2, 0x3c51, 0x460d, 0x2037, +0x160e, 0x33a4, 0xffd5, 0xd044, 0xbb77, 0xbff6, 0xe547, 0xe2d3, 0x02a5, 0x3927, +0x483e, 0x1e84, 0x18a8, 0x35a4, 0xf428, 0xc4b4, 0xb810, 0xbe31, 0xdf3f, 0xe3b9, +0x070a, 0x3a6e, 0x4a01, 0x1d3d, 0x19b7, 0x312f, 0xe9ed, 0xb9d2, 0xb185, 0xc27d, +0xdf74, 0xeaac, 0x163c, 0x40b2, 0x480f, 0x196b, 0x1a68, 0x2946, 0xe387, 0xbd44, +0xb687, 0xcdd3, 0xe1c0, 0xe73f, 0x19c6, 0x454e, 0x4471, 0x1517, 0x1f37, 0x2415, +0xde12, 0xbc28, 0xb193, 0xce92, 0xe199, 0xeb2a, 0x208d, 0x45c9, 0x3dfd, 0x140f, +0x2554, 0x1b8d, 0xd3e4, 0xb631, 0xaeee, 0xd2a0, 0xe032, 0xeefc, 0x2bad, 0x4d46, +0x3a27, 0x0f3b, 0x24c9, 0x111e, 0xcdbf, 0xb6b5, 0xb194, 0xd7c9, 0xe60a, 0xf93b, +0x2f30, 0x4968, 0x3246, 0x1306, 0x2d46, 0x06e7, 0xc785, 0xba49, 0xb9ab, 0xde3a, +0xe629, 0xff26, 0x3a02, 0x5456, 0x30f0, 0x10ea, 0x3149, 0x0578, 0xc92c, 0xbe07, +0xc00c, 0xe26f, 0xec57, 0x0aaf, 0x3ec0, 0x560f, 0x2fbd, 0x16da, 0x3543, 0xfe12, +0xc441, 0xbe1e, 0xce80, 0xec2a, 0xeeda, 0x1761, 0x467e, 0x531c, 0x2945, 0x16f3, +0x30b3, 0xfa85, 0xc82a, 0xb95b, 0xd0b9, 0xf0bf, 0xecf0, 0x1a23, 0x4acc, 0x48e2, +0x1c65, 0x1e4d, 0x2902, 0xe8e0, 0xc9c2, 0xbc2f, 0xd2c0, 0xf22e, 0xed1c, 0x1844, +0x4b01, 0x4776, 0x146e, 0x2125, 0x2832, 0xde1c, 0xc52b, 0xbd52, 0xcf76, 0xec76, +0xf496, 0x1c9f, 0x4726, 0x432c, 0x116f, 0x25e7, 0x2766, 0xd731, 0xbc99, 0xc162, +0xd7c6, 0xe12d, 0xf3c2, 0x27ac, 0x489f, 0x3fb7, 0x11f9, 0x23e3, 0x1dd1, 0xd9f9, +0xbc81, 0xbc41, 0xe051, 0xe6f9, 0xf6af, 0x2df2, 0x4613, 0x2fe6, 0x12b9, 0x303c, +0x120f, 0xd130, 0xc1da, 0xbc62, 0xdb80, 0xe279, 0xf4be, 0x2c52, 0x4660, 0x275e, +0x0d1c, 0x3149, 0x075f, 0xc931, 0xbf24, 0xbaf3, 0xd888, 0xe2cc, 0xfb8b, 0x2cb6, +0x4a52, 0x29ea, 0x0caa, 0x3097, 0xff78, 0xbdf9, 0xb45b, 0xc1cb, 0xdd4e, 0xe310, +0x068a, 0x24f2, 0x54ac, 0x60d2, 0x1650, 0xf4c6, 0xe059, 0xb014, 0x83b1, 0xbc91, +0x02f9, 0x0157, 0x4fca, 0x7cb3, 0x41bb, 0x0df7, 0xea9f, 0xace6, 0x957f, 0xc6c1, +0xb25c, 0xf25c, 0x6d4a, 0x3c23, 0x2274, 0x5314, 0x2754, 0xc59a, 0xd13d, 0xdf25, +0xc110, 0x097d, 0xfee9, 0xe7e9, 0x4a58, 0x3073, 0xd0cf, 0x0834, 0x3f47, 0xde37, +0xefad, 0x3de0, 0xef24, 0xe80f, 0x1519, 0xd4ff, 0xbae7, 0x160b, 0x1ed5, 0xf6f3, +0x4a32, 0x391f, 0xed02, 0x1a95, 0x0194, 0xa798, 0xcdb4, 0x1870, 0xed7d, 0x0805, +0x5609, 0x1649, 0x0c10, 0x37fb, 0xe698, 0xb602, 0x0ab1, 0x02bc, 0xc982, 0x29a0, +0x3592, 0xeb4c, 0x26a0, 0x2b39, 0xc51e, 0xe028, 0x25df, 0xdd3d, 0xeb89, 0x3c7d, +0xf25b, 0xf2a8, 0x40cd, 0xf67a, 0xbd91, 0x18e1, 0x1367, 0xcbf7, 0x1e2b, 0x2469, +0xd608, 0x16f8, 0x2a0b, 0xc927, 0xe2cc, 0x37b1, 0xf346, 0xe694, 0x382d, 0xf93e, +0xe10a, 0x2a89, 0xf6d1, 0xba9a, 0x1681, 0x2591, 0xd24e, 0x187c, 0x2fad, 0xd8f6, +0x0b46, 0x2ae5, 0xc8c2, 0xd38a, 0x2a7a, 0xe7b1, 0xdcb3, 0x3e95, 0x03d8, 0xe5e1, +0x3718, 0x0451, 0xb6fc, 0x05d7, 0x1636, 0xc589, 0x0c0d, 0x2d31, 0xe2a5, 0x145e, +0x2ff3, 0xd16c, 0xd748, 0x2961, 0xeee4, 0xd89a, 0x2f77, 0x0413, 0xe432, 0x2a18, +0x07e4, 0xbf90, 0xffac, 0x1a5c, 0xce43, 0x0eae, 0x3e2a, 0xe525, 0xfcdf, 0x3412, +0xe19f, 0xc0d0, 0x160c, 0xf679, 0xdaf7, 0x3d0f, 0x184f, 0xe643, 0x3314, 0x0d97, +0xa9d1, 0xf210, 0x1e09, 0xc374, 0x0591, 0x4995, 0xef24, 0x05bf, 0x3aa6, 0xdaf6, +0xc1a1, 0x198b, 0xe5e1, 0xce1f, 0x40dc, 0x134c, 0xddc5, 0x3b68, 0x1d73, 0xb2c0, +0xf385, 0x2228, 0xc6a9, 0xff0d, 0x4056, 0xea16, 0x071a, 0x3ca3, 0xd74b, 0xbcb1, +0x210f, 0xf2c1, 0xcb2c, 0x414d, 0x1f07, 0xd958, 0x2f24, 0x195a, 0xa747, 0xe84d, +0x2605, 0xc501, 0xff0e, 0x4e0a, 0xea48, 0x02a4, 0x46c5, 0xd723, 0xafda, 0x23af, +0xf6a4, 0xbc7c, 0x3c45, 0x26f8, 0xdc74, 0x367d, 0x2543, 0xb0bd, 0xed3e, 0x27e5, +0xc333, 0xf8e2, 0x4d51, 0xeb5f, 0xfefc, 0x4865, 0xe34b, 0xb937, 0x2748, 0x0266, +0xc562, 0x3a6b, 0x25b1, 0xd774, 0x2daa, 0x2313, 0xb311, 0xef4a, 0x32e8, 0xcf60, +0xf8b2, 0x51fb, 0xee07, 0xf368, 0x44ab, 0xe548, 0xb2da, 0x24f2, 0x07b3, 0xc446, +0x3bc4, 0x2db3, 0xd779, 0x2ee4, 0x281e, 0xace1, 0xe4c5, 0x335a, 0xceab, 0xf17b, +0x55c7, 0xf4d4, 0xf24d, 0x4603, 0xeb3d, 0xaf65, 0x1bbf, 0x08f3, 0xbf31, 0x300f, +0x30d1, 0xd9cf, 0x29ba, 0x2ead, 0xb5b6, 0xdd53, 0x2dff, 0xcf0d, 0xe2d2, 0x4b14, +0xf7cf, 0xf104, 0x48fe, 0xf5f9, 0xb102, 0x175c, 0x0bd9, 0xbcb2, 0x27b4, 0x336a, +0xd7be, 0x2088, 0x3408, 0xbf37, 0xdc20, 0x3264, 0xdb9f, 0xe60e, 0x5013, 0xffb1, +0xe856, 0x4281, 0xff01, 0xb10f, 0x1094, 0x176a, 0xc863, 0x243b, 0x390b, 0xdf6d, +0x1d95, 0x3900, 0xc65f, 0xd25c, 0x2c3a, 0xe187, 0xdbeb, 0x465f, 0x0986, 0xeb79, +0x4044, 0x0711, 0xb0da, 0x0496, 0x1513, 0xc287, 0x187b, 0x3c78, 0xe032, 0x1521, +0x3c5f, 0xccc3, 0xcce1, 0x2b96, 0xe4ca, 0xd2ba, 0x430a, 0x0aa2, 0xdffc, 0x3ad9, +0x0be5, 0xaea0, 0x03b6, 0x1ba6, 0xbbed, 0x0db5, 0x4113, 0xdc05, 0x05bb, 0x3a65, +0xcc55, 0xc14b, 0x25ec, 0xe783, 0xd1d2, 0x4965, 0x1616, 0xdbb4, 0x3263, 0x0a8b, +0xa569, 0xf7cf, 0x1f57, 0xc4d2, 0x1559, 0x517f, 0xea47, 0x0848, 0x3a1f, 0xc9f1, +0xbb1e, 0x266f, 0xea60, 0xcd1c, 0x4d59, 0x23a6, 0xe328, 0x3b46, 0x19d2, 0xabe2, +0xf47d, 0x1e1a, 0xbcd3, 0x09ed, 0x4fb3, 0xe964, 0x0dbc, 0x485b, 0xd3bb, 0xbbbe, +0x2722, 0xffc5, 0xce39, 0x0d09, 0xfe2c, 0x112d, 0x596c, 0x16f5, 0xd170, 0x12a7, +0x07ab, 0xa521, 0xd945, 0x0290, 0xcf7b, 0x0c60, 0x5af6, 0x3c64, 0x1c78, 0x2c17, +0xf082, 0xb62e, 0xcf0c, 0xac7d, 0xba75, 0x27ac, 0x23af, 0xf129, 0x473d, 0x6f3b, +0xefd4, 0xd0fc, 0xfcb5, 0xc5fa, 0xa532, 0xe2aa, 0x08ff, 0x0704, 0x304a, 0x21e6, +0x0f85, 0x38c1, 0x010f, 0xbcdf, 0xd894, 0xf8ab, 0xd8c7, 0xe36a, 0x1b7a, 0x178e, +0x1a72, 0x1741, 0x157f, 0x1dd4, 0x0dfe, 0xe47e, 0xbdd3, 0xf139, 0xe9ae, 0xc861, +0x198e, 0x432e, 0x1c93, 0x1246, 0x4ca3, 0x23d4, 0xd5a3, 0xdda1, 0xc097, 0xcd1a, +0xeddd, 0xed1a, 0x1738, 0x5658, 0x41b1, 0xfba0, 0x3319, 0x2a1d, 0xc048, 0xc0cf, +0xd583, 0xd4c9, 0xdb7a, 0x070a, 0x2588, 0x3798, 0x3aa9, 0x0add, 0x25af, 0x2337, +0xd4c2, 0xb504, 0xca8a, 0xe4dd, 0xd039, 0xf1df, 0x2bb9, 0x3c1d, 0x3426, 0x22ac, +0x331f, 0x0f10, 0xdc7d, 0xbbe1, 0xb47c, 0xdb63, 0xd984, 0xfcbd, 0x450f, 0x5431, +0x271a, 0x210b, 0x3c62, 0xf43d, 0xc565, 0xc201, 0xc114, 0xe4f6, 0xee9b, 0x085b, +0x3cf5, 0x5653, 0x1e82, 0x0d52, 0x38a8, 0xf608, 0xc456, 0xce8b, 0xcfd1, 0xda08, +0xf0f6, 0x16f4, 0x3014, 0x4610, 0x1a46, 0x0c35, 0x36d1, 0xfb60, 0xbc9c, 0xbcea, +0xdb0c, 0xda74, 0xdb6c, 0x17ce, 0x3715, 0x33b3, 0x13c8, 0x1e7d, 0x290c, 0xe55b, +0xb756, 0xb135, 0xdad6, 0xde70, 0xd336, 0x1782, 0x43a0, 0x29e5, 0x03f8, 0x2c8f, +0x2768, 0xd396, 0xc0e1, 0xbc23, 0xccce, 0xdf32, 0xe829, 0x16bf, 0x4610, 0x3567, +0x012e, 0x312c, 0x3059, 0xcf4c, 0xbc48, 0xcf7d, 0xdb0c, 0xd4f7, 0xefe3, 0x2327, +0x3f5e, 0x34bf, 0x11d9, 0x3885, 0x2a09, 0xd700, 0xbd59, 0xc753, 0xde26, 0xd765, +0xf612, 0x31cc, 0x45d3, 0x2d56, 0x17c3, 0x3e94, 0x16b7, 0xce82, 0xc389, 0xc8ab, +0xdd9d, 0xdd82, 0xfe36, 0x3550, 0x4d5b, 0x2a45, 0x1384, 0x3ff2, 0x0ef3, 0xc81d, +0xbe61, 0xcce9, 0xe4aa, 0xe0ab, 0x0699, 0x385e, 0x486b, 0x2294, 0x15f0, 0x3d85, +0x01db, 0xc686, 0xc116, 0xcff5, 0xe34d, 0xe14b, 0x10c9, 0x3f07, 0x466b, 0x1f0d, +0x1d05, 0x3ab5, 0xf8ef, 0xc8ce, 0xc05e, 0xd357, 0xe7d4, 0xe29f, 0x13df, 0x471a, +0x4a47, 0x1c4c, 0x297f, 0x3e3f, 0xed74, 0xc6f8, 0xbfdc, 0xccde, 0xe3d5, 0xeaa0, +0x19ee, 0x4b1b, 0x4d49, 0x1865, 0x2976, 0x37a0, 0xe1a2, 0xb9e8, 0xba35, 0xd299, +0xde2b, 0xecfc, 0x27c6, 0x4ae2, 0x4564, 0x19a4, 0x28b5, 0x2426, 0xd885, 0xbc0a, +0xb90e, 0xd777, 0xe284, 0xf34a, 0x2d9a, 0x4813, 0x38b9, 0x14ee, 0x2c67, 0x1894, +0xd324, 0xbc7e, 0xb3bc, 0xda55, 0xe3e2, 0xef0a, 0x2fd7, 0x4da0, 0x2e6a, 0x0ee2, +0x326e, 0x0fc1, 0xcb23, 0xbee7, 0xb82c, 0xdaac, 0xe70d, 0xf676, 0x2c96, 0x4efe, +0x3180, 0x0f59, 0x3430, 0x0900, 0xc464, 0xbdf3, 0xbfd4, 0xdc18, 0xe54f, 0x02ac, +0x346a, 0x4ca2, 0x2bdb, 0x0ba0, 0x2ca5, 0x00e4, 0xc0c2, 0xb4ae, 0xbea2, 0xdd3b, +0xe1b5, 0x05e5, 0x36cd, 0x455d, 0x228c, 0x0f39, 0x2721, 0xf06a, 0xbe3c, 0xb625, +0xc315, 0xe0db, 0xe130, 0x0824, 0x3af9, 0x4450, 0x1a04, 0x1254, 0x2a20, 0xeab7, +0xbec0, 0xb857, 0xc3f1, 0xdf5a, 0xe831, 0x122e, 0x3daa, 0x44fa, 0x18f6, 0x1739, +0x28bb, 0xe41d, 0xbbf3, 0xb89c, 0xcff6, 0xe5c1, 0xea00, 0x1c60, 0x45d5, 0x43ef, +0x1c06, 0x2434, 0x292a, 0xe39e, 0xc2cb, 0xbd71, 0xd5c4, 0xe95c, 0xf5d3, 0x2a36, +0x4b75, 0x403d, 0x1c75, 0x32bf, 0x27ef, 0xdda2, 0xcb76, 0xc7c5, 0xdb1a, 0xe84b, +0xf612, 0x2b74, 0x5112, 0x4137, 0x18a7, 0x3889, 0x2791, 0xd8ed, 0xc90a, 0xc6c8, +0xd83c, 0xe5cf, 0x01d1, 0x32e1, 0x4e08, 0x3e77, 0x1bcc, 0x39cc, 0x1bcb, 0xcf7c, +0xbfad, 0xc693, 0xe1af, 0xe44a, 0x0379, 0x3b80, 0x5122, 0x34da, 0x12cd, 0x2ff7, +0x0b3f, 0xcb7c, 0xb95e, 0xc0f4, 0xe555, 0xe1ce, 0x01a1, 0x3cc9, 0x475e, 0x2196, +0x156a, 0x33d5, 0xf97d, 0xc4c1, 0xb9ed, 0xbd90, 0xe1db, 0xe24b, 0x021d, 0x3cfa, +0x4dca, 0x1ea3, 0x12f7, 0x33e9, 0xf159, 0xbf15, 0xb984, 0xbdf4, 0xd9dc, 0xe483, +0x0d28, 0x3bb5, 0x4aee, 0x1fcf, 0x1792, 0x2e75, 0xe773, 0xb55d, 0xaeed, 0xc525, +0xdc07, 0xe07a, 0x162d, 0x403a, 0x41df, 0x18e6, 0x1816, 0x22ca, 0xe0d7, 0xba3f, +0xab7d, 0xc6d9, 0xe296, 0xe464, 0x1a6b, 0x45ec, 0x3cb4, 0x1203, 0x21d7, 0x1e19, +0xd553, 0xc042, 0xb44a, 0xca17, 0xe29f, 0xe893, 0x1a35, 0x457e, 0x3ca4, 0x0eee, +0x274f, 0x1dc0, 0xd010, 0xbe2a, 0xb43a, 0xca4c, 0xe2e4, 0xf448, 0x246d, 0x4965, +0x3fdb, 0x10f7, 0x25b8, 0x162e, 0xcca7, 0xb882, 0xb947, 0xd7a5, 0xe438, 0xfea1, +0x33b7, 0x4cfe, 0x3b14, 0x1175, 0x24b7, 0x0bf7, 0xcecd, 0xbc06, 0xbdfc, 0xe81e, +0xee24, 0x01b0, 0x3af8, 0x476e, 0x28b0, 0x20d9, 0x3412, 0xf8f1, 0xc8c9, 0xbcf1, +0xbe75, 0xed66, 0xf061, 0x0477, 0x2e04, 0x4a13, 0x58d9, 0x3473, 0x0a86, 0xde23, +0xc927, 0xa391, 0xa85a, 0xfd01, 0x01c0, 0x26a1, 0x8016, 0x6b60, 0x1f2e, 0x05f0, +0xdab1, 0x948b, 0xb8c2, 0xc47d, 0xcb07, 0x3e6c, 0x61b3, 0x38d1, 0x421e, 0x423b, +0xe147, 0xbac6, 0xe0e9, 0xbe22, 0xd9dd, 0x0b3a, 0x03de, 0x31f4, 0x40dc, 0xf8e0, +0xf398, 0x2cdd, 0xec3a, 0xc582, 0x25ea, 0x1c58, 0xd8cd, 0x0700, 0x13d5, 0xbffb, +0xdfbf, 0x2eeb, 0xf5a6, 0x0a90, 0x5506, 0x0dfc, 0xf5d4, 0x194f, 0xd0b1, 0xa469, +0xf944, 0x0659, 0xe225, 0x3e8d, 0x4455, 0xf804, 0x285d, 0x16e8, 0xac54, 0xcbe6, +0x0dc1, 0xcfa2, 0xef3a, 0x51ba, 0x0cea, 0x02d9, 0x4169, 0xec8e, 0xb42c, 0x04b3, +0xfdcb, 0xc5c1, 0x233b, 0x2fa0, 0xe530, 0x27ec, 0x2937, 0xc096, 0xdeaa, 0x2435, +0xe010, 0xe6f7, 0x3e0a, 0xfd91, 0xeb2e, 0x333b, 0xf30c, 0xb2be, 0x1250, 0x1fd9, +0xc7fa, 0x1877, 0x3b5d, 0xdbdb, 0x0644, 0x23bb, 0xbdc0, 0xcc54, 0x2f0c, 0xf1f3, +0xe57b, 0x48e5, 0x082c, 0xe598, 0x360e, 0xf80f, 0xa876, 0x0659, 0x1b42, 0xc57b, +0x1fb9, 0x48cb, 0xe657, 0x1591, 0x3682, 0xcb26, 0xccd4, 0x2692, 0xe8fa, 0xda38, +0x445f, 0x1220, 0xf0e0, 0x3d8f, 0x09d0, 0xb6bc, 0x00e1, 0x260a, 0xd188, 0x0576, +0x3935, 0xef31, 0x1179, 0x33e9, 0xd401, 0xcde0, 0x2d56, 0xfa21, 0xdbb0, 0x4a3c, +0x1c17, 0xdc92, 0x334e, 0x1ceb, 0xb17d, 0xebbf, 0x27e0, 0xd919, 0x0f7e, 0x4a4b, +0xf20c, 0x107b, 0x3a20, 0xcab0, 0xba0a, 0x24cb, 0xf1fa, 0xcaf2, 0x3f6a, 0x2005, +0xe495, 0x30ba, 0x16ef, 0xb7a7, 0xec01, 0x1401, 0xc9b7, 0x05b6, 0x393b, 0xe12d, +0x07bf, 0x44cb, 0xdee8, 0xbd85, 0x23f1, 0xfc20, 0xc5f2, 0x2bd6, 0x194b, 0xdfc0, +0x26e3, 0x160b, 0xba3e, 0xf25d, 0x2457, 0xcdc4, 0x004b, 0x4634, 0xe4dc, 0xf4a7, +0x3d04, 0xdcc3, 0xb397, 0x1fb0, 0x0021, 0xcbc7, 0x37a0, 0x223d, 0xdd2e, 0x2e4a, +0x1e22, 0xae9d, 0xea89, 0x28db, 0xc94f, 0xf4c9, 0x4a0c, 0xf565, 0xfefa, 0x4525, +0xee89, 0xbfb1, 0x1b8b, 0xfa5c, 0xc436, 0x2f51, 0x24ca, 0xdfcd, 0x2cf4, 0x2a31, +0xbd55, 0xe94e, 0x2b96, 0xd147, 0xee2f, 0x4235, 0xf2bf, 0xf601, 0x3b75, 0xe821, +0xb876, 0x1f6c, 0x056a, 0xc597, 0x378b, 0x2e60, 0xd377, 0x1e9d, 0x283c, 0xb892, +0xdee1, 0x2781, 0xd1f0, 0xf4ba, 0x554c, 0x0123, 0xf9be, 0x420b, 0xea52, 0xaa76, +0x121d, 0x04f0, 0xbdca, 0x333f, 0x4315, 0xe753, 0x27d8, 0x325a, 0xb873, 0xd272, +0x2388, 0xcf65, 0xe913, 0x57fe, 0x07f4, 0xf542, 0x4773, 0xf6c7, 0xab18, 0x11a2, +0x0c42, 0xb926, 0x2816, 0x3c96, 0xde7c, 0x28fb, 0x3ab1, 0xb843, 0xd1f6, 0x2e08, +0xd30e, 0xdd67, 0x552d, 0x04b1, 0xe6f1, 0x4408, 0xfac7, 0xa436, 0x0956, 0x1138, +0xb9e0, 0x267a, 0x42e3, 0xd676, 0x199d, 0x3443, 0xb086, 0xc200, 0x28e5, 0xda7a, +0xd827, 0x53d9, 0x0bab, 0xe3c1, 0x40a6, 0xfc98, 0xa29e, 0x018f, 0x1105, 0xb6e7, +0x1b43, 0x498c, 0xdd00, 0x1541, 0x4138, 0xc0de, 0xbf2e, 0x283d, 0xe09c, 0xce50, +0x4aa8, 0x1053, 0xdfdb, 0x3f0a, 0x0676, 0xa0c4, 0xfe21, 0x1b86, 0xb753, 0x10a7, +0x4958, 0xd934, 0x0821, 0x3f0a, 0xc34f, 0xba57, 0x2b9e, 0xe817, 0xc7b8, 0x46a9, +0x0faa, 0xd39d, 0x38e6, 0x0b67, 0x9f2e, 0xfa87, 0x2298, 0xbafd, 0x0a31, 0x466b, +0xd41d, 0xfd51, 0x3a2b, 0xc101, 0xb40d, 0x2b20, 0xef1f, 0xc9c0, 0x46b9, 0x10a8, +0xce9c, 0x3371, 0x097d, 0x9c55, 0xf5c4, 0x3090, 0xd2df, 0xecd4, 0x147e, 0xe806, +0x2e2d, 0x4ebd, 0xe525, 0xe179, 0x26a7, 0xd61d, 0xaa44, 0x0053, 0xe8dc, 0xe136, +0x46b6, 0x57fc, 0x24b5, 0x2da9, 0x235d, 0xcd31, 0xca81, 0xd1c7, 0xaf26, 0xfdb0, +0x3bad, 0x09ac, 0x1da0, 0x74cf, 0x3a9c, 0xd9e6, 0xf662, 0xf1b3, 0xb74e, 0xc78b, +0x079d, 0x1303, 0x25f7, 0x3f88, 0x14f4, 0x2459, 0x2c9b, 0xdd69, 0xc8da, 0xfb0c, +0xfc56, 0xd94a, 0x0b6d, 0x29c0, 0x150a, 0x22e5, 0x1d92, 0x18ef, 0x1cfc, 0x0c23, +0xcdc3, 0xcd7b, 0x0116, 0xd225, 0xea05, 0x3ecf, 0x321c, 0x114b, 0x3429, 0x4818, +0xf80f, 0xe0f6, 0xd86d, 0xb88f, 0xe34c, 0xec85, 0xf335, 0x37f0, 0x5dfb, 0x1c42, +0x11db, 0x4f23, 0xfc26, 0xba44, 0xd5aa, 0xd324, 0xd1fd, 0xf17c, 0x1856, 0x276a, +0x4692, 0x286a, 0x0ba3, 0x3d7b, 0x1150, 0xc1ac, 0xbdf0, 0xe136, 0xd542, 0xcf26, +0x1384, 0x2faf, 0x3870, 0x2e2c, 0x2318, 0x28d4, 0xfdee, 0xcb16, 0xa730, 0xc88d, +0xdb00, 0xceb6, 0x1995, 0x4d9d, 0x384a, 0x1a5c, 0x3253, 0x2473, 0xd8f1, 0xc53c, +0xafa7, 0xc440, 0xe9ed, 0xe807, 0x176e, 0x51f8, 0x4372, 0x074b, 0x2912, 0x2b6d, +0xcf1e, 0xc37a, 0xc518, 0xc3a3, 0xdc9c, 0xfa3e, 0x1a98, 0x40fa, 0x4783, 0x0983, +0x2539, 0x3545, 0xd15a, 0xad3e, 0xc7ca, 0xd8f8, 0xd06d, 0xf96a, 0x3340, 0x3d0f, +0x375f, 0x19a1, 0x2cbe, 0x2480, 0xd619, 0xaa0f, 0xbfde, 0xe9c8, 0xd157, 0xf05e, +0x42af, 0x4a8c, 0x2ada, 0x1e55, 0x372a, 0x09e1, 0xcd35, 0xbbbe, 0xb8fb, 0xe193, +0xe480, 0xf329, 0x3476, 0x51aa, 0x233d, 0x1102, 0x44ce, 0x08c4, 0xbbca, 0xc158, +0xc692, 0xd1e1, 0xdde2, 0x0656, 0x33cd, 0x4f74, 0x2ddc, 0x0f4d, 0x394e, 0x09e6, +0xbe5c, 0xb5ad, 0xcc4d, 0xdc27, 0xdab2, 0x1043, 0x3ea4, 0x479b, 0x2b41, 0x1d61, +0x308b, 0xf8bb, 0xc464, 0xb735, 0xcd64, 0xe75e, 0xe437, 0x161f, 0x4870, 0x48ad, +0x1c9b, 0x1ea2, 0x33d1, 0xf0d7, 0xc828, 0xc0cf, 0xd2aa, 0xe99c, 0xeb83, 0x1a23, +0x47fe, 0x4a7b, 0x1905, 0x1e38, 0x324a, 0xe958, 0xc1e9, 0xc325, 0xd7e4, 0xe635, +0xf2dc, 0x2267, 0x3faa, 0x415f, 0x1a59, 0x202f, 0x2852, 0xe889, 0xc4bd, 0xbe6c, +0xdab6, 0xe56a, 0xef10, 0x26eb, 0x4556, 0x3a6e, 0x180a, 0x2a09, 0x1fb9, 0xde8b, +0xc5cf, 0xb9e8, 0xd7a7, 0xe7b9, 0xedd9, 0x2300, 0x49df, 0x37d1, 0x12a8, 0x2f9a, +0x18aa, 0xce1b, 0xbdb0, 0xbc6b, 0xd29e, 0xdeee, 0xf71a, 0x2781, 0x45f4, 0x339d, +0x0ccf, 0x2b8f, 0x12d6, 0xc8e8, 0xb6b6, 0xbda1, 0xd3af, 0xd912, 0xfe42, 0x2d6d, +0x3ef8, 0x304b, 0x1689, 0x29cf, 0x067c, 0xcba1, 0xb57d, 0xbede, 0xdf90, 0xdc36, +0xfffb, 0x3465, 0x3c40, 0x2128, 0x1a44, 0x31e1, 0xfd23, 0xcc9c, 0xbac3, 0xbc48, +0xdd17, 0xde23, 0xfd31, 0x3137, 0x4362, 0x1eee, 0x18fc, 0x32b8, 0xf20e, 0xc5cc, +0xbb44, 0xbdcc, 0xd9bd, 0xe2e3, 0x076b, 0x353c, 0x4892, 0x1e7b, 0x18f6, 0x30cf, +0xea76, 0xbae7, 0xb387, 0xc4fa, 0xdcc0, 0xe7b8, 0x15fe, 0x3d5b, 0x45ed, 0x199f, +0x192d, 0x2670, 0xe39c, 0xbd23, 0xb49a, 0xce79, 0xe000, 0xe7b3, 0x1c0b, 0x42fb, +0x4231, 0x1500, 0x214f, 0x24b7, 0xddd0, 0xbdaf, 0xb443, 0xd1d6, 0xe488, 0xf035, +0x248c, 0x481a, 0x412e, 0x17e3, 0x2a09, 0x1e55, 0xd730, 0xbb6d, 0xb458, 0xd6fe, +0xe4f4, 0xf65d, 0x30dd, 0x50e1, 0x3ee0, 0x15ff, 0x2a77, 0x133f, 0xd208, 0xbb41, +0xb5d0, 0xdc9b, 0xea0f, 0xfe2e, 0x33e8, 0x4ec6, 0x3729, 0x17b0, 0x327e, 0x0ae7, +0xcbb1, 0xbd40, 0xbbb0, 0xe021, 0xe92f, 0x0274, 0x3a54, 0x53fa, 0x3201, 0x1417, +0x340a, 0x073d, 0xcaf8, 0xbd21, 0xbddc, 0xdfe9, 0xebda, 0x0cee, 0x3df0, 0x5410, +0x3025, 0x16c7, 0x32e0, 0xfb90, 0xc1f6, 0xbac8, 0xcb01, 0xe852, 0xeb00, 0x14bb, +0x4362, 0x4e09, 0x267e, 0x175e, 0x2ea6, 0xf673, 0xc679, 0xb7ca, 0xce42, 0xef38, +0xea88, 0x19da, 0x4c19, 0x4976, 0x1f9b, 0x2155, 0x2984, 0xe747, 0xc939, 0xbc60, +0xced0, 0xf05b, 0xef4a, 0x1a1b, 0x4d06, 0x49db, 0x1707, 0x21a4, 0x261f, 0xdb58, +0xc42f, 0xbd07, 0xcd03, 0xeb57, 0xf6f1, 0x1fe4, 0x4885, 0x45cb, 0x1391, 0x2121, +0x232c, 0xd7ec, 0xbd29, 0xbf59, 0xd799, 0xe575, 0xf6b7, 0x28c6, 0x4774, 0x3e39, +0x1137, 0x1ef7, 0x1744, 0xd610, 0xbc35, 0xb9e4, 0xdd70, 0xe860, 0xf41e, 0x2929, +0x4423, 0x2e1c, 0x110a, 0x2d77, 0x0e41, 0xced2, 0xc1cd, 0xbb1d, 0xd9b8, 0xe41e, +0xf4ed, 0x2b8f, 0x4959, 0x2b92, 0x0f36, 0x32ac, 0x0962, 0xc983, 0xc063, 0xbadd, +0xd65d, 0xe557, 0xfe42, 0x2c4a, 0x49b0, 0x2cc4, 0x11af, 0x335e, 0x0099, 0xbfb6, +0xb950, 0xc282, 0xda13, 0xe2c3, 0x0c6b, 0x2301, 0x3d0d, 0x5b32, 0x2bf1, 0xf816, +0xd811, 0xc694, 0x94e5, 0xa76b, 0x02b3, 0xf90f, 0x23f0, 0x863b, 0x6a8b, 0x1164, +0xf826, 0xd412, 0x8d7c, 0xade7, 0xbb44, 0xce06, 0x446e, 0x60cd, 0x37d3, 0x464b, +0x4603, 0xdb1a, 0xadc9, 0xd748, 0xbb79, 0xd2d1, 0x0130, 0x0928, 0x3b0a, 0x4390, +0x0002, 0xef18, 0x25c7, 0xf662, 0xbcac, 0x1201, 0x1f14, 0xda32, 0xff28, 0x1fbe, +0xd1ed, 0xd6db, 0x389e, 0x0dbf, 0xf3fb, 0x488e, 0x1c7e, 0xe70e, 0x1374, 0xed9e, +0xa6a3, 0xedff, 0x24fa, 0xe3d7, 0x2454, 0x55ff, 0xfbf6, 0x19ad, 0x27e2, 0xbe48, +0xc206, 0x1296, 0xe45b, 0xdd35, 0x4db6, 0x1c33, 0xef46, 0x4348, 0x0b24, 0xb5eb, +0xf732, 0x126a, 0xcd2b, 0x063c, 0x37c5, 0xec01, 0x18d9, 0x3cc8, 0xd616, 0xd2bc, +0x273a, 0xf84b, 0xd381, 0x30e7, 0x1385, 0xdff9, 0x30f4, 0x18b0, 0xc10e, 0x0696, +0x364d, 0xd762, 0xfbf8, 0x3d8c, 0xe397, 0xf63d, 0x3932, 0xe0e0, 0xc7fb, 0x31c6, +0x0e47, 0xd472, 0x33f1, 0x19cb, 0xd9b6, 0x297e, 0x174d, 0xb770, 0xf385, 0x2b80, +0xd844, 0x020b, 0x44ae, 0xecdc, 0xffc6, 0x3c84, 0xe59b, 0xc239, 0x1b9c, 0x03d8, +0xcdfc, 0x284d, 0x2050, 0xe856, 0x29ba, 0x1da6, 0xc79c, 0xf13e, 0x2a8b, 0xdb89, +0xe7cf, 0x315a, 0xf321, 0xf5f9, 0x332c, 0xf230, 0xc508, 0x1566, 0x093d, 0xce9a, +0x23e7, 0x1dac, 0xd1bc, 0x1aa1, 0x2c3b, 0xbf9a, 0xd5cb, 0x286f, 0xe374, 0xeccb, +0x3bb8, 0xfa4b, 0xf5e8, 0x2f2d, 0xe9fe, 0xbb23, 0x0ce2, 0xff3a, 0xc469, 0x2484, +0x2c01, 0xe186, 0x1b3d, 0x26db, 0xc966, 0xd43c, 0x0cf6, 0xd3cc, 0xeaf1, 0x349d, +0xf49e, 0xfa1b, 0x3da3, 0xf2ae, 0xb5a2, 0x09f1, 0x0303, 0xbee6, 0x1c15, 0x2f77, +0xe137, 0x187e, 0x2a96, 0xc3d0, 0xd414, 0x1e88, 0xd685, 0xe774, 0x4a59, 0xfa19, +0xe6e2, 0x3f71, 0xf365, 0xa657, 0x0aac, 0x0b27, 0xbbf9, 0x22a4, 0x3896, 0xdde2, +0x1ea6, 0x2ddb, 0xb6a3, 0xcf13, 0x234d, 0xd209, 0xdfcd, 0x4de4, 0x0530, 0xf235, +0x458e, 0xfe1c, 0xaf9c, 0x04ff, 0x0ba8, 0xc04a, 0x1dfe, 0x3a8f, 0xe44e, 0x1ebd, +0x3786, 0xc838, 0xd340, 0x2d49, 0xe462, 0xdc75, 0x4606, 0x05e5, 0xe8d6, 0x3e07, +0x0367, 0xb349, 0x0d09, 0x1be3, 0xc56a, 0x2148, 0x4004, 0xd8d7, 0x1595, 0x3a7d, +0xc56d, 0xd126, 0x3261, 0xe7bb, 0xe124, 0x5308, 0x0eb8, 0xeb26, 0x437a, 0x042c, +0xaf26, 0x0eb2, 0x218d, 0xc6ad, 0x22c2, 0x4ab9, 0xe2d2, 0x1874, 0x40cd, 0xca8d, +0xc838, 0x2e68, 0xedb9, 0xd7fa, 0x4c7a, 0x1526, 0xe7cb, 0x4150, 0x0c9e, 0xae99, +0x0430, 0x20bb, 0xc1b5, 0x1187, 0x47d4, 0xe4da, 0x1440, 0x42ec, 0xcdff, 0xc6df, +0x2c13, 0xec08, 0xd2d5, 0x46ed, 0x0ef1, 0xdd36, 0x3d9e, 0x0f6f, 0xadf9, 0x0331, +0x2434, 0xc516, 0x0f43, 0x4485, 0xde32, 0x0700, 0x3d61, 0xce91, 0xbeff, 0x2926, +0xf4fa, 0xd134, 0x41a9, 0x1664, 0xdc49, 0x34e2, 0x1333, 0xace3, 0xf361, 0x1f70, +0xc693, 0x0699, 0x47e9, 0xe934, 0x0537, 0x4024, 0xd7ae, 0xba09, 0x1da8, 0xf1cd, +0xcbb4, 0x3981, 0x188e, 0xddeb, 0x326b, 0x1892, 0xb095, 0xf130, 0x20bc, 0xc29d, +0xf9a7, 0x3f9b, 0xe3d4, 0xfb7a, 0x3e64, 0xdf3d, 0xbe59, 0x2395, 0xf6d6, 0xc4b9, +0x3386, 0x1936, 0xd767, 0x2b7a, 0x1dd1, 0xb547, 0xeefe, 0x2814, 0xcaa5, 0xf817, +0x487c, 0xeb89, 0xf26b, 0x397c, 0xdf7f, 0xb39b, 0x1c04, 0xfe68, 0xc54d, 0x349f, +0x2a68, 0xdbdd, 0x22d6, 0x1ddd, 0xb0a0, 0xe0fa, 0x21cc, 0xc993, 0xf898, 0x52ec, +0xf689, 0xf70a, 0x426a, 0xe741, 0xaf61, 0x151d, 0xf921, 0xc0cc, 0x3886, 0x3002, +0xdf54, 0x2dc5, 0x25fe, 0xb022, 0xe019, 0x2b01, 0xdc46, 0xdf34, 0x113b, 0xf3ef, +0x2b9e, 0x5380, 0xf6a9, 0xdedb, 0x2143, 0xe2d9, 0xa1ed, 0xf09b, 0xf0dc, 0xdb67, +0x3407, 0x5e55, 0x32ca, 0x27e1, 0x25c5, 0xd709, 0xc36a, 0xcfc9, 0xa7f8, 0xea51, +0x3bd7, 0x0e16, 0x0801, 0x6978, 0x4f5b, 0xdcee, 0xefc1, 0xfe47, 0xbe36, 0xbc03, +0xf6fb, 0x0a54, 0x1b49, 0x3bd0, 0x15ec, 0x2382, 0x3cb2, 0xeb19, 0xc5aa, 0xedb7, +0xf957, 0xd7a6, 0xf768, 0x22e7, 0x17a3, 0x2061, 0x1ba7, 0x1fd9, 0x23d8, 0x0c01, +0xd667, 0xc4b5, 0xfb1e, 0xd994, 0xd7e9, 0x3398, 0x3e92, 0x166b, 0x27af, 0x4ec2, +0x0515, 0xd7d3, 0xde1a, 0xb994, 0xdcbe, 0xf079, 0xeced, 0x2d31, 0x5f61, 0x253a, +0x040a, 0x4aa6, 0x0dcf, 0xb7f1, 0xcf3e, 0xd1b1, 0xcf61, 0xe63f, 0x105c, 0x26cc, +0x431a, 0x31ef, 0x089d, 0x3279, 0x1505, 0xc9c8, 0xbc77, 0xd253, 0xdbe3, 0xd185, +0x028c, 0x2ef7, 0x3d5b, 0x2ff3, 0x2436, 0x2ecc, 0xffae, 0xd27d, 0xae72, 0xb7bb, +0xda8b, 0xd2ea, 0x0b5f, 0x4d03, 0x43e6, 0x19f3, 0x2a63, 0x2e3d, 0xdc83, 0xc2d3, +0xb8a6, 0xbf1e, 0xe681, 0xe9fe, 0x0c02, 0x47ed, 0x4b9b, 0x0b96, 0x1c09, 0x3193, +0xdad3, 0xc2e7, 0xcba3, 0xc7a2, 0xd979, 0xf765, 0x1768, 0x34eb, 0x4272, 0x0e6d, +0x1cba, 0x35bf, 0xe2f7, 0xb4ec, 0xc2dc, 0xdbc9, 0xd4b0, 0xeaf5, 0x2a04, 0x3d45, +0x3135, 0x163c, 0x29bf, 0x1de9, 0xd862, 0xb512, 0xbc25, 0xe60f, 0xdb2d, 0xe4e1, +0x2e4c, 0x46ed, 0x2280, 0x0c95, 0x3390, 0x0dba, 0xc912, 0xc227, 0xbe99, 0xd9c1, +0xe290, 0xed33, 0x2239, 0x44f4, 0x1ed4, 0x0166, 0x3720, 0x122c, 0xc1e5, 0xbe0b, +0xcc00, 0xd5f1, 0xd17f, 0xf3b3, 0x23a2, 0x3db4, 0x2624, 0x0cc4, 0x33e1, 0x1023, +0xc9ae, 0xb631, 0xc8cd, 0xdd8a, 0xceea, 0xfaf7, 0x3621, 0x3ded, 0x1ca5, 0x1b0d, +0x3ba6, 0x0216, 0xce92, 0xc394, 0xc90e, 0xdd1a, 0xd9c7, 0x0438, 0x3a3b, 0x43f5, +0x193b, 0x1b93, 0x427f, 0xfe8c, 0xc66d, 0xc591, 0xd58c, 0xe393, 0xe1bc, 0x0fe2, +0x3df6, 0x448e, 0x1c8a, 0x21c0, 0x3e71, 0xf9bd, 0xc96f, 0xc456, 0xd5d9, 0xe4b5, +0xe922, 0x1ce5, 0x418b, 0x417b, 0x1d09, 0x2518, 0x341d, 0xf03a, 0xcbea, 0xc1e1, +0xd6e8, 0xe7f3, 0xe55f, 0x1d2e, 0x4954, 0x3f9e, 0x1b23, 0x31e7, 0x3163, 0xe580, +0xcb7b, 0xbe90, 0xd27b, 0xe98e, 0xede5, 0x22f3, 0x51cc, 0x440f, 0x174a, 0x3744, +0x308b, 0xdab4, 0xc2e8, 0xc03f, 0xd50d, 0xe3f9, 0xf766, 0x2e0e, 0x4fbc, 0x4269, +0x17f2, 0x2ec2, 0x1f55, 0xd524, 0xbca2, 0xbb93, 0xda21, 0xe34e, 0xfad1, 0x31b6, +0x47da, 0x36e7, 0x19ff, 0x2ef6, 0x0ef3, 0xd0a0, 0xb94c, 0xb54a, 0xdd97, 0xe171, +0xf86b, 0x35bc, 0x47ba, 0x2983, 0x1694, 0x3324, 0x023b, 0xc961, 0xbc03, 0xb2d4, +0xd7d9, 0xe2e7, 0xf9f7, 0x3391, 0x4b1a, 0x23f3, 0x1255, 0x2f9f, 0xf2dd, 0xbf1b, +0xb8c8, 0xb595, 0xd67b, 0xe49e, 0x04eb, 0x3553, 0x491e, 0x20bc, 0x101c, 0x2d09, +0xefb9, 0xbc9b, 0xb456, 0xbc74, 0xdcb8, 0xe7e3, 0x1085, 0x3e2d, 0x4862, 0x20a4, +0x178e, 0x24e7, 0xe5be, 0xbfc5, 0xb5ac, 0xc6ce, 0xe4c1, 0xe9df, 0x156b, 0x41e6, +0x4347, 0x169b, 0x1dcf, 0x2537, 0xdbdb, 0xbd60, 0xb4ac, 0xc74f, 0xe58f, 0xf1d1, +0x1bdb, 0x438d, 0x41e3, 0x1215, 0x1c5f, 0x197b, 0xd34e, 0xbb05, 0xb7f2, 0xd3b2, +0xe362, 0xf0f9, 0x2581, 0x46a8, 0x3c22, 0x115f, 0x2009, 0x122f, 0xd304, 0xbd34, +0xb54b, 0xd890, 0xe911, 0xf7d8, 0x2be6, 0x4644, 0x3124, 0x11c4, 0x2d7b, 0x0ee0, +0xcfc2, 0xc445, 0xbf59, 0xdf01, 0xe6a3, 0xf6fe, 0x2fa7, 0x4f24, 0x32c6, 0x10fe, +0x360f, 0x14d0, 0xd1fe, 0xc5f6, 0xc3cd, 0xdf16, 0xe84d, 0x00f9, 0x3302, 0x4f34, +0x330f, 0x190f, 0x3c38, 0x0f70, 0xcd2f, 0xc1c9, 0xccf8, 0xe5e1, 0xe528, 0x0d0a, +0x3fdc, 0x4c89, 0x2965, 0x1572, 0x3558, 0x0773, 0xcf30, 0xbe56, 0xcfa1, 0xeeb4, +0xe390, 0x0d40, 0x446b, 0x47d6, 0x22c9, 0x1f4d, 0x33f7, 0xf611, 0xcd9c, 0xbd57, +0xc66d, 0xec7d, 0xe7bf, 0x0df9, 0x474d, 0x4b43, 0x1b2f, 0x1f2d, 0x35f1, 0xea3c, +0xc455, 0xbc6b, 0xc16f, 0xe41e, 0xef9d, 0x16e5, 0x457b, 0x4d9b, 0x1df1, 0x2052, +0x310e, 0xe35e, 0xbd3b, 0xbe4a, 0xd17b, 0xe63a, 0xf0dd, 0x2445, 0x4bde, 0x4c1f, +0x20d2, 0x25a1, 0x2da1, 0xe9a8, 0xc288, 0xb909, 0xd9c6, 0xee3e, 0xf6a6, 0x2ef9, +0x50a3, 0x43ee, 0x1dd3, 0x2eed, 0x2309, 0xe027, 0xcabc, 0xbd16, 0xdbde, 0xee25, +0xf339, 0x2c27, 0x5390, 0x40a0, 0x1b96, 0x375c, 0x1d2b, 0xd734, 0xc78b, 0xb807, +0xd541, 0xecee, 0xfe54, 0x2fa0, 0x5361, 0x3f28, 0x1522, 0x3393, 0x1266, 0xc88d, +0xbc85, 0xb8d2, 0xd4a8, 0xe5ab, 0x0438, 0x3396, 0x4c0c, 0x33cd, 0x0a79, 0x2169, +0xfe45, 0xc2f1, 0xb2f9, 0xb954, 0xe0e9, 0xe165, 0x029e, 0x2aa5, 0x318e, 0x465f, +0x33d0, 0x0444, 0xd0f3, 0xc734, 0xa46c, 0x9309, 0xec1b, 0xfbdf, 0x010e, 0x6440, +0x7e13, 0x1ed8, 0xeedd, 0xe7dd, 0x9c36, 0x94bd, 0xaeea, 0xb4e6, 0x08d9, 0x4ccc, +0x44d3, 0x3995, 0x43b3, 0xfbc8, 0xa9f8, 0xbc47, 0xb7e9, 0xb05c, 0xd4b9, 0x0205, +0x2fad, 0x38f1, 0x145d, 0xf759, 0x0aec, 0xf6cf, 0xb93a, 0xdb0a, 0x14b9, 0xe52f, +0xdb64, 0x2275, 0xfc04, 0xc169, 0x1482, 0x2708, 0xda58, 0x13ad, 0x34f3, 0xe68c, +0xf5c6, 0x0b27, 0xbfca, 0xc11f, 0x1a39, 0xf895, 0xf15a, 0x535e, 0x1fbe, 0xfd1c, +0x2fab, 0xeb46, 0xb207, 0xf114, 0xfe7d, 0xd0f4, 0x2a5f, 0x4be3, 0xf98f, 0x2db3, +0x365b, 0xcbe5, 0xd12f, 0x160e, 0xe93e, 0xe29c, 0x4478, 0x1d6f, 0x0413, 0x49f1, +0x0cdb, 0xc582, 0x08ff, 0x1ce3, 0xd295, 0x10d4, 0x44fb, 0xeff9, 0x15bb, 0x4310, +0xddfd, 0xd8c9, 0x34f7, 0xfaaf, 0xd716, 0x4457, 0x1cff, 0xe28a, 0x3514, 0x1237, +0xb5a9, 0x01cc, 0x3075, 0xd90a, 0x1130, 0x4b8f, 0xf1cd, 0x0fee, 0x37f4, 0xcf77, +0xc32c, 0x262d, 0xfb1f, 0xde11, 0x4cfa, 0x220f, 0xe7b6, 0x379f, 0x1630, 0xb473, +0xeb2b, 0x1f40, 0xcdde, 0xfb49, 0x44ba, 0xf7a8, 0x0b44, 0x3ad4, 0xdf56, 0xbc11, +0x192e, 0xfdae, 0xc1e6, 0x2be2, 0x260a, 0xe13b, 0x285b, 0x1e09, 0xb912, 0xe471, +0x2223, 0xd36d, 0xfe2f, 0x46c5, 0xe36b, 0xf7a8, 0x4755, 0xdf55, 0xa7b3, 0x1a23, +0x0b84, 0xc893, 0x2faf, 0x2991, 0xe2bb, 0x2481, 0x13cb, 0xb383, 0xe0a3, 0x1702, +0xc7e4, 0xf45d, 0x4b67, 0xf6a6, 0xf97a, 0x3e6f, 0xecd9, 0xadf3, 0xfeb4, 0xfd06, +0xc788, 0x1f7a, 0x200a, 0xe5ba, 0x31ba, 0x2511, 0xb3da, 0xe100, 0x2776, 0xc990, +0xe1ba, 0x44f0, 0xef0a, 0xe6e3, 0x3c2c, 0xf024, 0xb397, 0x1376, 0x054e, 0xc2a5, +0x2c7f, 0x2067, 0xc5d1, 0x227f, 0x2507, 0xa6ee, 0xd8b4, 0x2da2, 0xd0d2, 0xe5d2, +0x4ae3, 0xf3c8, 0xec01, 0x3d1d, 0xe4c8, 0xa76d, 0x0cd7, 0x02fe, 0xc051, 0x2a3f, +0x2ff4, 0xd96d, 0x206e, 0x2cdb, 0xbcc2, 0xcfce, 0x1d9e, 0xd936, 0xe286, 0x3c62, +0xf899, 0xf161, 0x4188, 0xfacc, 0xb89c, 0x13b2, 0x0f18, 0xbfc2, 0x1908, 0x2b9b, +0xdd40, 0x1c58, 0x31c8, 0xcc18, 0xe1de, 0x3029, 0xe1a2, 0xeab8, 0x4814, 0xf8bb, +0xec3b, 0x41cd, 0xfd3d, 0xbb42, 0x1ab1, 0x1bc5, 0xd03f, 0x2b94, 0x39e6, 0xe56b, +0x20f6, 0x302f, 0xc7e3, 0xe07e, 0x304b, 0xe35d, 0xef37, 0x556b, 0x0a77, 0xf3f3, +0x471e, 0x0715, 0xb6bf, 0x0a15, 0x15a7, 0xc8f0, 0x27ce, 0x49e1, 0xef3f, 0x24d8, +0x3fc8, 0xcf85, 0xd3a9, 0x2981, 0xe391, 0xe1e2, 0x5568, 0x1a44, 0xf6f8, 0x47a5, +0x0bb1, 0xb4f6, 0x0758, 0x180f, 0xc264, 0x1c7f, 0x4997, 0xe7b6, 0x1790, 0x3eec, +0xcc71, 0xc989, 0x25c5, 0xe0ff, 0xd5eb, 0x4cb5, 0x1585, 0xe9fb, 0x3f4e, 0x079f, +0xa4e8, 0xf8b6, 0x18b7, 0xbe0e, 0x140f, 0x4dcd, 0xe6f8, 0x106e, 0x3e48, 0xc659, +0xb8d1, 0x1fc6, 0xe2f7, 0xcafc, 0x4b21, 0x1aac, 0xddf9, 0x38ef, 0x0d86, 0xa172, +0xefb8, 0x1ae3, 0xb8b9, 0x022b, 0x4952, 0xe3b7, 0x0763, 0x3fb6, 0xcaa1, 0xb546, +0x2034, 0xe7b3, 0xc26e, 0x4341, 0x1b44, 0xd872, 0x37f9, 0x158c, 0xa302, 0xed16, +0x212e, 0xbda6, 0x0112, 0x4eb5, 0xe481, 0x0180, 0x448c, 0xd2be, 0xb34a, 0x2659, +0xf969, 0xc3e7, 0x4253, 0x2498, 0xd3ac, 0x2f84, 0x1c93, 0xa86a, 0xeae4, 0x2be9, +0xc824, 0xfb1e, 0x5254, 0xeb1f, 0xf85a, 0x40c6, 0xd602, 0xacc6, 0x20d2, 0xfcc1, +0xbfa1, 0x3d9b, 0x2b83, 0xd669, 0x2fcc, 0x202d, 0xa65f, 0xe170, 0x2e20, 0xdd4c, +0xe4e8, 0x1128, 0xe9c6, 0x2b2e, 0x54f5, 0xec68, 0xd881, 0x25b3, 0xe44f, 0x9e7f, +0xf130, 0xeb8e, 0xd492, 0x3413, 0x5451, 0x26e6, 0x289d, 0x2623, 0xcf51, 0xbd9d, +0xcfb5, 0xa20d, 0xdfe7, 0x36b7, 0x0cc4, 0x056d, 0x65fe, 0x4dbe, 0xdc03, 0xeb0b, +0xf3c5, 0xb95e, 0xbfab, 0xf463, 0x0575, 0x1cd4, 0x3d59, 0x1332, 0x1c9e, 0x36b2, +0xe6ff, 0xc1d2, 0xebab, 0xf875, 0xd9ed, 0xf751, 0x1ec8, 0x177a, 0x1fdf, 0x14b0, +0x158a, 0x1d8b, 0x09a1, 0xd3cc, 0xc301, 0xfa03, 0xda41, 0xd913, 0x31d2, 0x3bcd, +0x1398, 0x2276, 0x47f0, 0x04ad, 0xdb13, 0xde05, 0xbc40, 0xe0b4, 0xf233, 0xedf8, +0x2b4d, 0x5c62, 0x258d, 0x04db, 0x4756, 0x0b9d, 0xbaa9, 0xd2dc, 0xd3e6, 0xd2e5, +0xeb10, 0x1044, 0x260b, 0x4492, 0x307c, 0x0989, 0x37e3, 0x1952, 0xc9b1, 0xbe5d, +0xd980, 0xdd51, 0xcfb1, 0x0665, 0x3440, 0x3f66, 0x32e5, 0x2caa, 0x3828, 0x04a2, +0xd6f3, 0xb98c, 0xc152, 0xdc75, 0xd7fc, 0x131d, 0x50a8, 0x4584, 0x218f, 0x39e9, +0x3a8c, 0xe3c0, 0xca56, 0xc147, 0xc3c0, 0xe3a0, 0xec33, 0x13df, 0x4aaa, 0x4c83, +0x117c, 0x2896, 0x399a, 0xdc86, 0xc6f6, 0xcd47, 0xc6ce, 0xd9cc, 0xf86e, 0x19ad, +0x3a91, 0x491f, 0x123e, 0x24d9, 0x3cde, 0xe11b, 0xb37c, 0xc2df, 0xd7a4, 0xd130, +0xef29, 0x2c49, 0x3d20, 0x37d9, 0x16ea, 0x291c, 0x26ac, 0xda1f, 0xaaed, 0xb607, +0xe686, 0xd568, 0xe17d, 0x337f, 0x4b43, 0x2881, 0x1389, 0x38c7, 0x12c8, 0xcd26, +0xbcc3, 0xb56e, 0xdd1b, 0xe483, 0xea42, 0x2a90, 0x51ed, 0x261e, 0x0805, 0x4126, +0x1494, 0xbddc, 0xbaf3, 0xc450, 0xd324, 0xd5cd, 0xf712, 0x2ef6, 0x4d20, 0x2af3, +0x0e0c, 0x3762, 0x0ac6, 0xbe79, 0xae49, 0xc076, 0xd8d1, 0xd3ec, 0x0029, 0x3a43, +0x4756, 0x22ca, 0x1958, 0x35d2, 0xf721, 0xbeb2, 0xb3fe, 0xbef0, 0xda1f, 0xdc92, +0x07d3, 0x4050, 0x4bd0, 0x19d3, 0x154a, 0x3522, 0xefeb, 0xbbc4, 0xb715, 0xc994, +0xdf48, 0xe0b3, 0x1046, 0x40b6, 0x462c, 0x16f6, 0x1aab, 0x3230, 0xe981, 0xbd2a, +0xbab3, 0xd2a2, 0xe5c9, 0xe97f, 0x1c0b, 0x466f, 0x4272, 0x167d, 0x2642, 0x3042, +0xe930, 0xc684, 0xbe13, 0xdccc, 0xed63, 0xea9d, 0x2413, 0x5441, 0x43f9, 0x180c, +0x36e2, 0x2e3f, 0xdd7b, 0xc957, 0xc358, 0xdaa2, 0xeec1, 0xf6ba, 0x27c0, 0x5560, +0x448c, 0x1635, 0x38ef, 0x285a, 0xd524, 0xc336, 0xc6ef, 0xdd82, 0xe86a, 0x024a, +0x3514, 0x5243, 0x4024, 0x1679, 0x30ad, 0x19cb, 0xd2e3, 0xbea4, 0xc57f, 0xe4e0, +0xe5d6, 0xfff4, 0x3873, 0x4af7, 0x2f8e, 0x188b, 0x3243, 0x0881, 0xcd5e, 0xbb93, +0xbf31, 0xe52f, 0xe3f9, 0xfc94, 0x39c7, 0x4714, 0x1d41, 0x169d, 0x38c9, 0xfecd, +0xcb1a, 0xc0fc, 0xbdbe, 0xdc75, 0xe1b5, 0xfaa7, 0x3213, 0x48a1, 0x1b68, 0x15dc, +0x3a99, 0xf55f, 0xc01b, 0xbf71, 0xc2a6, 0xd4e4, 0xdf4d, 0x066a, 0x3170, 0x40f1, +0x1a26, 0x18e0, 0x342c, 0xedf9, 0xba41, 0xb3b4, 0xc38e, 0xd795, 0xe02b, 0x10cf, +0x387d, 0x3bf9, 0x151b, 0x1afe, 0x254b, 0xde99, 0xbc43, 0xb3bd, 0xc921, 0xde4a, +0xe189, 0x1332, 0x3ec6, 0x3af6, 0x0d82, 0x1fcf, 0x23ba, 0xd6bf, 0xb847, 0xb180, +0xcc73, 0xe0cc, 0xeb2b, 0x1cb5, 0x417e, 0x395b, 0x0e37, 0x260e, 0x1c37, 0xceea, +0xb693, 0xb466, 0xd44d, 0xde55, 0xeccf, 0x28e9, 0x4c64, 0x3a26, 0x1085, 0x2a16, +0x12d5, 0xcc04, 0xb7f6, 0xb4e4, 0xda25, 0xe424, 0xf801, 0x3387, 0x4c82, 0x2ff0, +0x133d, 0x33da, 0x0a6a, 0xc653, 0xba9f, 0xb9a4, 0xdb0d, 0xe2d3, 0xfd70, 0x3932, +0x535b, 0x2ec6, 0x131d, 0x36f2, 0x041c, 0xc4de, 0xbc13, 0xbb88, 0xdb49, 0xe632, +0x0792, 0x3bf9, 0x5215, 0x2df5, 0x197b, 0x38ba, 0xfc1c, 0xc000, 0xb9c1, 0xc559, +0xe3b9, 0xea55, 0x13bb, 0x45e0, 0x506f, 0x2598, 0x1a8a, 0x31d4, 0xf25d, 0xc2c1, +0xb752, 0xc926, 0xeaa3, 0xebad, 0x18ac, 0x4b3a, 0x4b14, 0x1dc9, 0x246e, 0x2f24, +0xe2ff, 0xc4be, 0xbca8, 0xccb7, 0xee7a, 0xf1d7, 0x1fad, 0x5446, 0x4e8c, 0x1a55, +0x2bfd, 0x2de3, 0xdbcc, 0xc7c4, 0xc19e, 0xcdf0, 0xeebf, 0x0347, 0x2b46, 0x50aa, +0x4efc, 0x1ae7, 0x2bc2, 0x29fc, 0xd661, 0xbcdd, 0xc496, 0xddc3, 0xe917, 0xff6c, +0x336f, 0x4f83, 0x433f, 0x1820, 0x2877, 0x176c, 0xd63d, 0xbf37, 0xbd41, 0xe3e4, +0xec70, 0xfccc, 0x35e8, 0x4cad, 0x2f68, 0x12a7, 0x2fac, 0x08d7, 0xcd76, 0xc4f5, +0xbf59, 0xdfbb, 0xe9f3, 0xfd34, 0x3194, 0x4aa3, 0x2767, 0x0f36, 0x33c2, 0x0048, +0xc54f, 0xc2fd, 0xbd10, 0xd605, 0xe41c, 0xff51, 0x2a83, 0x4801, 0x28e6, 0x0aff, +0x2f62, 0xfdb7, 0xbd39, 0xb775, 0xc18e, 0xd7dc, 0xe021, 0x0a7d, 0x33af, 0x423a, +0x2081, 0x0d26, 0x28f2, 0xf6aa, 0xc604, 0xb20f, 0xca22, 0xf929, 0xe0c9, 0xfe41, +0x2c91, 0x285c, 0x3479, 0x40e1, 0x11dd, 0xd23c, 0xd207, 0xa861, 0xa807, 0xfe96, +0xf904, 0x0d6b, 0x7934, 0x78f8, 0x0f08, 0xfce1, 0xe859, 0x8e1b, 0xa714, 0xc4a3, +0xd05d, 0x3229, 0x6379, 0x4af3, 0x48ea, 0x4a2d, 0xe67d, 0xa875, 0xd782, 0xc120, +0xb7cb, 0xfb9f, 0x1f2e, 0x34e8, 0x4bf0, 0x20cd, 0xf0b2, 0x1643, 0x0563, 0xbcd0, +0xf27f, 0x2741, 0xe7cd, 0xef58, 0x2d5f, 0xebc6, 0xc657, 0x2de0, 0x1cb6, 0xe47e, +0x4360, 0x2d6e, 0xe23e, 0x16ee, 0xf98d, 0xa445, 0xddbb, 0x207f, 0xe2c0, 0x123e, +0x5bce, 0x016d, 0x1099, 0x3582, 0xc93d, 0xb242, 0x0573, 0xeaa3, 0xcd42, 0x3ec8, +0x2edf, 0xedf6, 0x39f9, 0x19b8, 0xb85b, 0xe3bc, 0x1369, 0xd1a8, 0xf1db, 0x3e71, +0xf679, 0x05fa, 0x4211, 0xe5a8, 0xbfbb, 0x17fb, 0x0686, 0xc767, 0x1e4b, 0x24e5, +0xdea8, 0x2460, 0x26bf, 0xbfbf, 0xebef, 0x3662, 0xdb5b, 0xe735, 0x478f, 0xf36f, +0xe6aa, 0x3a12, 0xedab, 0xb885, 0x2168, 0x1a11, 0xd137, 0x2b7c, 0x29a9, 0xd6be, +0x2004, 0x24d0, 0xb744, 0xddad, 0x2f52, 0xe201, 0xeeef, 0x4b3b, 0xfc02, 0xef7b, +0x3d92, 0xf6b9, 0xb6be, 0x0b17, 0x0d77, 0xc534, 0x191c, 0x30b3, 0xe945, 0x23b0, +0x2f3b, 0xc9bb, 0xd7dc, 0x269c, 0xe46c, 0xd902, 0x3766, 0x0212, 0xeb25, 0x39af, +0x03e0, 0xb8e7, 0x077c, 0x169d, 0xcc6f, 0x1b10, 0x2e0e, 0xd19a, 0x0fd8, 0x38f6, +0xca91, 0xc8f9, 0x29d6, 0xf078, 0xdd5c, 0x3b96, 0x09ef, 0xf001, 0x3507, 0xfbb1, +0xb660, 0x03d5, 0x0e0a, 0xc387, 0x17f0, 0x3e5b, 0xe93c, 0x15a4, 0x38a5, 0xd46a, +0xc5fe, 0x1360, 0xe4bc, 0xda9b, 0x39bc, 0x0c8d, 0xef2a, 0x3f9f, 0x0fdb, 0xb193, +0xf8d2, 0x1694, 0xb855, 0xffea, 0x4558, 0xed39, 0x083b, 0x3cd1, 0xda45, 0xc36d, +0x1e6e, 0xe476, 0xc765, 0x430f, 0x19a5, 0xde45, 0x3c55, 0x16d3, 0xa619, 0xf171, +0x1f0a, 0xbe1b, 0x04f9, 0x4d9d, 0xeec4, 0x0d1f, 0x3e78, 0xccbe, 0xb49f, 0x1d9b, +0xeb29, 0xc2b6, 0x448d, 0x28e1, 0xe2a4, 0x3aab, 0x21b9, 0xad2c, 0xe5d9, 0x1d14, +0xbe21, 0xf5ec, 0x4db1, 0xef99, 0x030b, 0x4e45, 0xe3cc, 0xb105, 0x20c5, 0xfc50, +0xb9ac, 0x35e2, 0x2898, 0xd9cf, 0x3397, 0x236d, 0xace6, 0xea90, 0x2c38, 0xc65d, +0xf7eb, 0x5313, 0xe39f, 0xf211, 0x477a, 0xdbe9, 0xad7a, 0x1ffa, 0x0017, 0xc201, +0x3906, 0x27ff, 0xd56a, 0x2d70, 0x20b7, 0xa843, 0xe22b, 0x2d3a, 0xc8d1, 0xeff9, +0x5809, 0xf171, 0xf1ca, 0x4aa1, 0xe752, 0xa7f6, 0x1531, 0x03a8, 0xbd38, 0x3515, +0x35e4, 0xd873, 0x2cec, 0x2fa3, 0xaedb, 0xd92e, 0x2cc6, 0xccea, 0xe531, 0x5116, +0xf947, 0xf6dd, 0x4ce8, 0xef45, 0xaeac, 0x190f, 0x0bfc, 0xbc68, 0x2afb, 0x3612, +0xd723, 0x2687, 0x3899, 0xbdfb, 0xda26, 0x3069, 0xdbaf, 0xe6bf, 0x5016, 0x0057, +0xf1d5, 0x480e, 0xf64b, 0xad29, 0x13a0, 0x16f4, 0xc33e, 0x2614, 0x4041, 0xe193, +0x201a, 0x3648, 0xc1be, 0xd35e, 0x2aee, 0xe031, 0xe3b6, 0x52de, 0x0b18, 0xedc3, +0x4b67, 0x084a, 0xaf95, 0x0ccc, 0x1af7, 0xc089, 0x19da, 0x4369, 0xe6d2, 0x1d97, +0x422d, 0xcfe2, 0xd1f7, 0x2e93, 0xe6d4, 0xd904, 0x4acc, 0x0d46, 0xe47d, 0x425b, +0x0eb4, 0xb1bb, 0x06af, 0x2009, 0xc469, 0x12a4, 0x3fee, 0xdd98, 0x0e0f, 0x3d40, +0xcdb1, 0xc9b2, 0x2f38, 0xedc8, 0xcf7d, 0x42ef, 0x1026, 0xd9af, 0x3710, 0x1033, +0xad12, 0xfd62, 0x2285, 0xc358, 0x0c72, 0x48be, 0xe51c, 0x0a9a, 0x2ff8, 0xbdc8, +0xc28d, 0x2cc9, 0xfec9, 0xc7ca, 0x13e5, 0x17e1, 0x02ca, 0x35c6, 0x0fac, 0xcd93, +0xf8c0, 0xfbac, 0xbba6, 0xe67f, 0x0735, 0xd6a6, 0x1bde, 0x7350, 0x2eb9, 0xfad9, +0x2334, 0xeee4, 0xa104, 0xc9e5, 0xcf89, 0xd376, 0x2f8b, 0x2f58, 0x13f9, 0x6199, +0x5172, 0xd760, 0xdae6, 0x0109, 0xaaab, 0x9f01, 0x11f6, 0x1c74, 0xff8b, 0x303b, +0x3d89, 0x2a49, 0x1900, 0xe5d6, 0xbb94, 0xe00a, 0xeeb6, 0xce23, 0x0253, 0x3291, +0x20e8, 0x0d77, 0x2650, 0x2ac1, 0xf46d, 0xf971, 0xdbe5, 0xc599, 0xf13a, 0xdd86, +0xebfb, 0x30a4, 0x422d, 0x0726, 0x20e1, 0x53cf, 0xe990, 0xbf8d, 0xd717, 0xc738, +0xcc12, 0xed69, 0x1207, 0x2679, 0x4b59, 0x2072, 0x0f6e, 0x3b3c, 0xef93, 0xaf82, +0xc07e, 0xdcf5, 0xccea, 0xe17b, 0x31b5, 0x3ad1, 0x3673, 0x24ae, 0x1fad, 0x2260, +0xf0dd, 0xc29e, 0xb494, 0xe43c, 0xe377, 0xdb2b, 0x2318, 0x45fc, 0x34e0, 0x20c4, +0x3ea5, 0x232d, 0xdb31, 0xcc1d, 0xb320, 0xc65a, 0xdf18, 0xea47, 0x25f0, 0x5cd4, +0x4386, 0x10e7, 0x3d78, 0x214b, 0xc538, 0xbca9, 0xbe8b, 0xcd16, 0xe049, 0x05f5, +0x2fe8, 0x5197, 0x45f2, 0x0fc2, 0x2f2f, 0x1971, 0xc5a7, 0xb7fc, 0xca80, 0xd975, +0xd7df, 0x0c99, 0x3a4e, 0x3fc6, 0x30e6, 0x13a0, 0x2b87, 0x0f79, 0xcd82, 0xaf27, +0xc107, 0xe381, 0xd5f3, 0x035c, 0x44e6, 0x44fc, 0x1db9, 0x1e95, 0x3a4e, 0xf713, +0xc17f, 0xb545, 0xc44b, 0xea43, 0xe0b2, 0x034f, 0x458e, 0x4e96, 0x1557, 0x1819, +0x3caa, 0xeb53, 0xb81f, 0xc29d, 0xcb34, 0xd827, 0xea2e, 0x153f, 0x3683, 0x4599, +0x17a8, 0x1025, 0x3238, 0xefae, 0xb3df, 0xb7d0, 0xd811, 0xd6f7, 0xd85a, 0x1792, +0x3a94, 0x35ea, 0x1657, 0x21c8, 0x243d, 0xdfb1, 0xbb30, 0xb0e9, 0xceed, 0xddbf, +0xdff2, 0x1be1, 0x44e0, 0x3265, 0x0879, 0x260d, 0x1f6a, 0xcd4c, 0xba1b, 0xbafd, +0xcb3d, 0xd899, 0xeb07, 0x19d6, 0x3c13, 0x3544, 0x08ed, 0x2407, 0x1daa, 0xcd68, +0xb792, 0xbf01, 0xd1c2, 0xd611, 0xf34b, 0x259b, 0x3b2f, 0x2f39, 0x1053, 0x2d78, +0x1a05, 0xd265, 0xba97, 0xc02a, 0xdab7, 0xd903, 0xf86d, 0x2ff9, 0x403d, 0x28d3, +0x14a1, 0x34af, 0x0a0e, 0xcda4, 0xc3ac, 0xc13a, 0xdd8d, 0xe2ea, 0xfd27, 0x2eb2, +0x45ac, 0x26be, 0x14ec, 0x3dd9, 0x06bc, 0xc81d, 0xc6e2, 0xc719, 0xd8c3, 0xe5c7, +0x0b66, 0x32c9, 0x4b92, 0x2cb4, 0x19ce, 0x3c10, 0x0272, 0xc5eb, 0xbb96, 0xccd7, +0xe07a, 0xdfbb, 0x160a, 0x4341, 0x4749, 0x2676, 0x21c7, 0x2fd3, 0xf0d0, 0xc6ee, +0xb624, 0xcad8, 0xe85f, 0xe7c5, 0x1d81, 0x4b84, 0x45af, 0x1eba, 0x2c0d, 0x30c1, +0xe4ba, 0xca8d, 0xbdbe, 0xcc89, 0xed50, 0xf3dd, 0x2203, 0x5159, 0x4cd1, 0x1b22, +0x2e08, 0x3255, 0xe28f, 0xc7e6, 0xc2e3, 0xd510, 0xe8de, 0xfa14, 0x2846, 0x4a33, +0x4c04, 0x1fed, 0x2f64, 0x2cdb, 0xe195, 0xc51d, 0xc13f, 0xdb62, 0xe696, 0xfa3e, +0x31bd, 0x4d3c, 0x4355, 0x2150, 0x33b3, 0x204a, 0xe0d7, 0xc877, 0xbdd9, 0xdeff, +0xeb46, 0x0024, 0x3a0c, 0x5485, 0x3c57, 0x1fe4, 0x3a57, 0x110e, 0xd1f0, 0xc4f8, +0xbfae, 0xe303, 0xf0e8, 0x0757, 0x3795, 0x525c, 0x364d, 0x163e, 0x3411, 0x078d, +0xc95e, 0xbed3, 0xc146, 0xdd79, 0xe8cb, 0x0fb0, 0x3b8b, 0x4b40, 0x2f52, 0x1708, +0x2c9b, 0xf6f7, 0xc33e, 0xb8f8, 0xc0a0, 0xe27b, 0xe6d8, 0x0c22, 0x3d9b, 0x4878, +0x24a6, 0x186c, 0x2467, 0xe600, 0xc014, 0xb323, 0xbc0b, 0xe0eb, 0xe8da, 0x0f11, +0x3cef, 0x40c5, 0x12df, 0x1430, 0x227a, 0xdb2e, 0xb8c4, 0xb5de, 0xc528, 0xdd7a, +0xe824, 0x13d4, 0x3e15, 0x4384, 0x124e, 0x1469, 0x1e10, 0xd6df, 0xb7fb, 0xb8e3, +0xcdaf, 0xdd42, 0xecbb, 0x1e7d, 0x3c6f, 0x378a, 0x1149, 0x1e8a, 0x1b08, 0xd447, +0xb3c7, 0xb0b3, 0xd341, 0xe16d, 0xebda, 0x22db, 0x4450, 0x345d, 0x0fcd, 0x27aa, +0x137c, 0xcfd2, 0xc241, 0xbb1b, 0xd538, 0xe771, 0xf62c, 0x297f, 0x4c37, 0x3271, +0x103e, 0x360c, 0x143c, 0xc8cb, 0xc2e2, 0xc46f, 0xd919, 0xe83f, 0x0316, 0x2e44, +0x49f7, 0x320d, 0x1102, 0x34eb, 0x0f20, 0xc998, 0xc1e5, 0xc68b, 0xd8b7, 0xe3aa, +0x0e51, 0x3839, 0x473d, 0x306d, 0x1936, 0x313b, 0x023a, 0xca3b, 0xb9cb, 0xc4e8, +0xe9a8, 0xe8e8, 0x0e4f, 0x4390, 0x4a72, 0x23d2, 0x1d52, 0x31ca, 0xf0b0, 0xc813, +0xbd25, 0xc202, 0xe6ea, 0xee18, 0x12c8, 0x4476, 0x4b2e, 0x198b, 0x19a1, 0x2fcc, +0xe518, 0xbf8d, 0xbe9e, 0xcb6d, 0xe622, 0xee0e, 0x167e, 0x3fbf, 0x46fb, 0x1a7d, +0x1f4e, 0x2d08, 0xe17f, 0xbedd, 0xbaa3, 0xcc16, 0xe196, 0xeedc, 0x21cc, 0x44ed, +0x4348, 0x1a18, 0x2363, 0x242e, 0xdc65, 0xbd61, 0xb300, 0xcfa0, 0xe712, 0xe5c7, +0x169f, 0x5f17, 0x7299, 0x2bb1, 0x0b65, 0xe2fd, 0x9b1c, 0xa3b5, 0xaeb5, 0xe147, +0x3787, 0x593a, 0x5290, 0x4a3c, 0x2e69, 0xcbb4, 0xa91f, 0xc5a3, 0xbd85, 0xd07b, +0x1055, 0x3d01, 0x2411, 0x222c, 0x2b1a, 0x0b05, 0xffdc, 0xe3f2, 0xcf8c, 0xf390, +0x15ad, 0xd9f5, 0xc944, 0x2d37, 0x09de, 0xc93f, 0x0d00, 0x229d, 0x0eb5, 0x31fb, +0x193d, 0xdefd, 0x0b6e, 0xe2b8, 0x80c1, 0xd2cb, 0x1719, 0xe9c2, 0x3008, 0x6a8a, +0xfee8, 0x01bc, 0x299a, 0xb39d, 0xa48f, 0x0798, 0xe5e9, 0xddfa, 0x41e1, 0x17dc, +0xf43b, 0x3829, 0x05c3, 0xbd89, 0xf1bc, 0x0dab, 0xcd37, 0xfad8, 0x2e14, 0xf080, +0x107b, 0x24ea, 0xd852, 0xd4a0, 0x17fd, 0xfd24, 0xd818, 0x2b57, 0x168d, 0xdb81, +0x1759, 0x0cdb, 0xc867, 0xf2e6, 0x257d, 0xe349, 0xfff1, 0x39a1, 0xe33d, 0xee45, +0x2b9d, 0xe388, 0xc702, 0x21a8, 0x103e, 0xda0f, 0x2f4b, 0x1b70, 0xd6c1, 0x1b55, +0x104d, 0xb577, 0xe811, 0x28c6, 0xe0aa, 0xfee3, 0x4403, 0xf56f, 0xf711, 0x2c32, +0xe60a, 0xbd96, 0x0d61, 0x048f, 0xce3d, 0x272f, 0x325d, 0xf1c7, 0x2094, 0x1ff0, +0xc860, 0xe30a, 0x2515, 0xdac5, 0xe92d, 0x441f, 0x0548, 0xfb76, 0x3d79, 0xfd5c, +0xbecb, 0x1149, 0x13f9, 0xd214, 0x2a6f, 0x3388, 0xe6f8, 0x2190, 0x2948, 0xc4a5, +0xdd42, 0x2f43, 0xe6af, 0xf03f, 0x54db, 0x13d9, 0xfca6, 0x3215, 0xf506, 0xc57a, +0x12c0, 0x0f9f, 0xd3cc, 0x322e, 0x4301, 0xf273, 0x23ab, 0x356e, 0xd3b2, 0xd051, +0x21b7, 0xf281, 0xecda, 0x4489, 0x12f0, 0x0242, 0x4407, 0x06d1, 0xbafe, 0x0b6c, +0x1d26, 0xc6ee, 0x19bc, 0x44e9, 0xe86d, 0x13b7, 0x39ca, 0xd446, 0xd119, 0x2941, +0xee93, 0xe7c5, 0x4bc2, 0x0643, 0xe908, 0x4535, 0x0444, 0xaaed, 0x0a10, 0x21a1, +0xc807, 0x1964, 0x41d6, 0xe77b, 0x16b3, 0x34e4, 0xc869, 0xc8dc, 0x2196, 0xe4ba, +0xdb97, 0x4973, 0x106a, 0xe7d9, 0x3cc5, 0x0a39, 0xa769, 0xf083, 0x1925, 0xc4c2, +0x075d, 0x3c4a, 0xe3ca, 0x0d28, 0x38d3, 0xc8d1, 0xbd34, 0x29a4, 0xea91, 0xbfc6, +0x3ad0, 0x0fbe, 0xd348, 0x3125, 0x0f03, 0xa6a3, 0xf4e3, 0x222b, 0xbe73, 0x00e2, +0x3cfa, 0xd671, 0xff6d, 0x3893, 0xc753, 0xb6c9, 0x236e, 0xec95, 0xc571, 0x3925, +0x1324, 0xdbd6, 0x2c09, 0x07a8, 0xaa2d, 0xf242, 0x1fa6, 0xc716, 0x042c, 0x441c, +0xe490, 0xffd3, 0x3dc4, 0xdc2a, 0xb9f6, 0x1f30, 0xfbb0, 0xca2e, 0x371c, 0x2003, +0xddf1, 0x31fa, 0x2307, 0xb4d8, 0xf004, 0x2cbc, 0xc878, 0xf7c6, 0x4caf, 0xed6b, +0xfe78, 0x48e2, 0xe5f3, 0xb861, 0x209c, 0xffdd, 0xc990, 0x3a8f, 0x2235, 0xd8df, +0x3307, 0x26fb, 0xb85c, 0xf04e, 0x2cb8, 0xd049, 0xfa7c, 0x49ae, 0xedac, 0xfa25, +0x3f7d, 0xe587, 0xbae6, 0x1de2, 0x03f4, 0xc964, 0x35b0, 0x2bf3, 0xdcc1, 0x287a, +0x2509, 0xb53e, 0xdd34, 0x21f5, 0xd014, 0xf4e6, 0x5327, 0xfbed, 0xf63d, 0x422a, +0xebde, 0xadff, 0x109b, 0x03c0, 0xc66e, 0x34a1, 0x371f, 0xe1e5, 0x266b, 0x298a, +0xb6ec, 0xdb6e, 0x2815, 0xd421, 0xf019, 0x5352, 0xff26, 0xf3f2, 0x43a2, 0xf389, +0xb155, 0x11bc, 0x093e, 0xc3cf, 0x2cd7, 0x37d3, 0xe04d, 0x22e3, 0x2ecd, 0xb8a8, +0xd4f6, 0x2b5c, 0xd879, 0xe9c1, 0x5345, 0x0074, 0xeb1b, 0x3d0d, 0xf0a8, 0xa78e, +0x0f83, 0x1369, 0xc523, 0x2e80, 0x3d4c, 0xdb13, 0x1e41, 0x2ecc, 0xb34d, 0xd013, +0x2f65, 0xd81e, 0xe458, 0x57d2, 0x0406, 0xebe0, 0x457a, 0xf7e1, 0xa66e, 0x0b6f, +0x0e7a, 0xb8d1, 0x251b, 0x3fe1, 0xdd7d, 0x20b9, 0x3687, 0xbb17, 0xd0b9, 0x2e06, +0xd6de, 0xd8c9, 0x50ce, 0x0665, 0xe605, 0x3fce, 0xfc63, 0xac6f, 0x0f4a, 0x249e, +0xcfcc, 0xfc68, 0x0488, 0xeb03, 0x4794, 0x43ec, 0xda83, 0xf3bd, 0x2644, 0xc019, +0xac19, 0xfdb7, 0xdae0, 0xebc8, 0x4a7e, 0x4842, 0x204b, 0x2f4a, 0x0bd7, 0xb466, +0xc7b6, 0xc25a, 0x9ff5, 0xfeaa, 0x3147, 0xf5d6, 0x1606, 0x7098, 0x2536, 0xcb1f, +0xef7c, 0xd8bb, 0xa610, 0xc6a6, 0xf94d, 0x01cf, 0x2326, 0x2e92, 0xfa36, 0x1b23, +0x1fee, 0xc9e0, 0xbf64, 0xf0f7, 0xebf9, 0xcd60, 0xfed7, 0x1727, 0x0a34, 0x1723, +0x0a36, 0x0e7b, 0x18aa, 0xfc64, 0xb854, 0xc985, 0xfdd8, 0xc68b, 0xea58, 0x3e80, +0x2a34, 0x0ba2, 0x2d28, 0x367f, 0xec1b, 0xe1de, 0xce20, 0xb654, 0xf084, 0xed7d, +0xf556, 0x44c2, 0x5de8, 0x118c, 0x103a, 0x43c2, 0xea97, 0xbbb3, 0xd781, 0xd5a7, +0xe105, 0xfd04, 0x1bc6, 0x2dbd, 0x4a4e, 0x2262, 0x090c, 0x37f3, 0x0697, 0xc337, +0xc445, 0xe70d, 0xe217, 0xdb53, 0x1953, 0x38c9, 0x40c1, 0x2ede, 0x22c3, 0x260c, +0xfc8c, 0xcfd4, 0xb0e1, 0xd39e, 0xe34c, 0xdae1, 0x253f, 0x508f, 0x342f, 0x1aa5, +0x3628, 0x1e6e, 0xd753, 0xc9cd, 0xb7c4, 0xd23c, 0xef41, 0xeb30, 0x1cc2, 0x523c, +0x3c38, 0x02b5, 0x29f9, 0x28a2, 0xd759, 0xd1f8, 0xd1bf, 0xd245, 0xe508, 0xfe91, +0x19fc, 0x3b30, 0x3d9b, 0x0a4c, 0x2fd0, 0x37f4, 0xdc8c, 0xbe49, 0xd7b4, 0xe591, +0xd3af, 0xfd0f, 0x3070, 0x36f1, 0x325e, 0x18a4, 0x3386, 0x27ca, 0xdc73, 0xb513, +0xcdc8, 0xf809, 0xd5d9, 0xf013, 0x4334, 0x4964, 0x2395, 0x1b7b, 0x3c5a, 0x0fe4, +0xd7a3, 0xc6c6, 0xc6b6, 0xf0cf, 0xeb7d, 0xf80b, 0x3914, 0x525a, 0x2445, 0x1417, +0x4928, 0x0ff5, 0xc35d, 0xc78a, 0xd244, 0xdff9, 0xe35e, 0x07df, 0x35ae, 0x4ba7, +0x2974, 0x1106, 0x3cf3, 0x0fec, 0xc4b4, 0xb9c7, 0xd562, 0xe489, 0xd970, 0x0e52, +0x3f61, 0x43d6, 0x27aa, 0x2131, 0x364b, 0xfd16, 0xc955, 0xb961, 0xcde0, 0xe8ce, +0xe024, 0x0e4f, 0x4544, 0x4582, 0x18cd, 0x22be, 0x3a77, 0xf22e, 0xc4f3, 0xbabf, +0xcce0, 0xe32e, 0xe352, 0x12f7, 0x43a1, 0x4666, 0x1401, 0x1c0c, 0x30e6, 0xe619, +0xbb56, 0xbb95, 0xd491, 0xe00b, 0xe61a, 0x17a4, 0x3b47, 0x3b00, 0x10e7, 0x1c7e, +0x2707, 0xe361, 0xb750, 0xb2d2, 0xd7be, 0xdb41, 0xe145, 0x2096, 0x40ed, 0x319a, +0x118b, 0x2924, 0x1a2e, 0xd6af, 0xba5f, 0xad6c, 0xd2c9, 0xe064, 0xe67c, 0x25df, +0x4ea4, 0x3357, 0x0fc7, 0x312c, 0x1020, 0xc418, 0xb5ff, 0xb68a, 0xd4f7, 0xe2ef, +0xfb14, 0x2e11, 0x4c3e, 0x3280, 0x08fc, 0x2966, 0x0e36, 0xc69d, 0xb3ba, 0xbf26, +0xde72, 0xe461, 0x0918, 0x3887, 0x4967, 0x313c, 0x1236, 0x2763, 0x0526, 0xcb44, +0xb35a, 0xc8b5, 0xed8f, 0xdf83, 0x05bf, 0x41b2, 0x4548, 0x20ab, 0x1a30, 0x2bd9, +0xf884, 0xce0f, 0xb377, 0xc10c, 0xede8, 0xe5b7, 0x0520, 0x42f2, 0x4b64, 0x19c0, +0x1a50, 0x2fd7, 0xee52, 0xc8d4, 0xbcea, 0xc661, 0xe5d5, 0xe9b8, 0x0e4b, 0x42da, +0x4c23, 0x187a, 0x1ba9, 0x2fdd, 0xe89e, 0xbcad, 0xb84a, 0xd201, 0xe619, 0xeba8, +0x1a61, 0x40ef, 0x41b7, 0x151a, 0x1cbf, 0x2b05, 0xea44, 0xc1f8, 0xbc6c, 0xdb3c, +0xe422, 0xe69f, 0x208e, 0x4881, 0x3cc7, 0x1503, 0x2aa9, 0x27ed, 0xe431, 0xc5cc, +0xbdfa, 0xdd9a, 0xe8e9, 0xf074, 0x2496, 0x4a59, 0x3e74, 0x1374, 0x2e8f, 0x252c, +0xd82c, 0xba66, 0xbeda, 0xe1cc, 0xe3a5, 0xf456, 0x3043, 0x4df4, 0x382a, 0x0d8b, +0x25d9, 0x1516, 0xd249, 0xb805, 0xbbdd, 0xe317, 0xe31f, 0xf717, 0x307f, 0x4438, +0x2ce7, 0x1089, 0x29b8, 0x060d, 0xc757, 0xb6c7, 0xb848, 0xdd4c, 0xde36, 0xf60e, +0x341a, 0x45f6, 0x1fc8, 0x0b03, 0x2ed5, 0xff75, 0xc14a, 0xb3bb, 0xb4dc, 0xd6d2, +0xdc36, 0xfbb0, 0x356c, 0x49c3, 0x2300, 0x0fe9, 0x2f18, 0xf499, 0xb802, 0xb1b2, +0xc06f, 0xdc85, 0xde22, 0x0805, 0x3cc1, 0x488e, 0x1f2e, 0x11d7, 0x2c64, 0xf3b1, +0xbd78, 0xadbb, 0xc5eb, 0xe451, 0xde57, 0x0e82, 0x4140, 0x4137, 0x1916, 0x1b84, +0x28d4, 0xe639, 0xc1a0, 0xb2e7, 0xc697, 0xe4be, 0xdf87, 0x10dc, 0x49b4, 0x457d, +0x1479, 0x2405, 0x2b0f, 0xdcbe, 0xbefc, 0xb3a9, 0xc6dd, 0xe60b, 0xed45, 0x1b13, +0x497b, 0x4531, 0x1324, 0x24b0, 0x243c, 0xd210, 0xb83d, 0xb984, 0xd0bc, 0xe2a6, +0xf3b7, 0x2766, 0x4a82, 0x4204, 0x133f, 0x22b4, 0x1b4e, 0xd4a3, 0xba37, 0xbaaf, +0xdf26, 0xea12, 0xf84b, 0x3177, 0x4e17, 0x39af, 0x193b, 0x308a, 0x13c1, 0xd6b0, +0xc5d3, 0xbffc, 0xe599, 0xeec6, 0xff4d, 0x38ac, 0x5167, 0x346a, 0x1b9d, 0x376a, +0x0ce4, 0xd4a8, 0xc78f, 0xc195, 0xe4f4, 0xf0f5, 0x07bb, 0x3cdc, 0x5981, 0x3510, +0x1b26, 0x3a31, 0x03fb, 0xca72, 0xc53e, 0xcd25, 0xecab, 0xf768, 0x193e, 0x437d, +0x53af, 0x2c6f, 0x15b8, 0x31bf, 0xff10, 0xcc99, 0xc147, 0xd348, 0xee05, 0xee95, +0x1782, 0x2f2b, 0x4b20, 0x5a80, 0x2b14, 0xfd25, 0xdd6a, 0xccb5, 0x9c77, 0xbb91, +0x0abb, 0xfa6d, 0x308d, 0x8b3b, 0x6386, 0x0f1b, 0x0366, 0xd9a6, 0x969a, 0xbb36, +0xbe42, 0xd650, 0x4a43, 0x5e11, 0x39f6, 0x4e5f, 0x3f3f, 0xd1f7, 0xbac7, 0xda01, +0xb75e, 0xdb85, 0x0689, 0x0f50, 0x402d, 0x3a48, 0xf492, 0xf3ba, 0x232e, 0xe3c2, +0xc221, 0x1c7e, 0x103b, 0xda32, 0x0d99, 0x12a9, 0xc374, 0xe4a9, 0x2fee, 0xef59, +0xf571, 0x4551, 0x09ce, 0xee4d, 0x190c, 0xdd87, 0xa5eb, 0xf5c9, 0x0d02, 0xd8dd, +0x32e0, 0x4556, 0xf27b, 0x272d, 0x1a0f, 0xac2d, 0xc929, 0x0d48, 0xd065, 0xe73f, +0x4fb6, 0x0a4b, 0xfcc1, 0x4512, 0xed54, 0xb2b9, 0x0350, 0xfc0b, 0xbed7, 0x1926, +0x2f0c, 0xe1a6, 0x2871, 0x338a, 0xc365, 0xd8fc, 0x2261, 0xe12a, 0xda5e, 0x3836, +0x02a6, 0xeb2d, 0x3c29, 0xfc95, 0xb47f, 0x126c, 0x2240, 0xc4df, 0x1301, 0x42d9, +0xddbd, 0x05c8, 0x2ff4, 0xc609, 0xc9ef, 0x2ebd, 0xf193, 0xda07, 0x46da, 0x0cd3, +0xe052, 0x39eb, 0x0085, 0xa3df, 0xfdbd, 0x1d67, 0xc36d, 0x1321, 0x461a, 0xe3db, +0x121d, 0x3bc5, 0xce7e, 0xc611, 0x1e92, 0xe869, 0xd146, 0x3d6e, 0x12f6, 0xe781, +0x3a2e, 0x100e, 0xb4c0, 0xf87f, 0x2451, 0xce12, 0xfd54, 0x3b61, 0xe9af, 0x0485, +0x363a, 0xd7a5, 0xc531, 0x26b6, 0xfb26, 0xd3af, 0x4024, 0x13d3, 0xcf38, 0x31ca, +0x1fe6, 0xacba, 0xe830, 0x28d0, 0xd67b, 0x03f4, 0x4390, 0xeff5, 0x0d9b, 0x3cdc, +0xd2ef, 0xbce5, 0x1df5, 0xf194, 0xcc0a, 0x3c7b, 0x22be, 0xe9d0, 0x37e4, 0x1f21, +0xbf6a, 0xed14, 0x13f9, 0xccad, 0xfeed, 0x36f2, 0xe931, 0x0bd9, 0x4870, 0xe9a7, +0xc649, 0x2406, 0x009e, 0xc7de, 0x28c6, 0x1d14, 0xe19d, 0x2d2e, 0x24eb, 0xc1ae, +0xf293, 0x2948, 0xd034, 0xfc36, 0x4c80, 0xed33, 0xf76a, 0x4574, 0xe546, 0xb51f, +0x205e, 0x01e4, 0xc8f6, 0x3c9b, 0x2dfd, 0xe000, 0x3231, 0x23e4, 0xac3f, 0xe1e2, +0x2470, 0xc806, 0xf279, 0x51f9, 0xfc93, 0xfd3d, 0x471f, 0xf14b, 0xb564, 0x0d8d, +0xf7a1, 0xbaf7, 0x2ae2, 0x3330, 0xe3cf, 0x2876, 0x2f9d, 0xbe99, 0xd8ed, 0x2066, +0xcc5b, 0xe037, 0x444b, 0xfc55, 0xf1ae, 0x3dee, 0xedb1, 0xa9f3, 0x0f58, 0x052a, +0xb88b, 0x286b, 0x32e9, 0xd191, 0x1a2d, 0x2b19, 0xb1ba, 0xd055, 0x2574, 0xcd9d, +0xe17a, 0x4f5d, 0xf991, 0xe9c8, 0x4424, 0xee22, 0xa03f, 0x0b3e, 0x0833, 0xb2f6, +0x25d7, 0x3fb5, 0xd971, 0x1eca, 0x3552, 0xb55f, 0xc5ed, 0x2341, 0xd2b5, 0xd7c1, +0x523e, 0x069d, 0xe63d, 0x453d, 0xfaec, 0xa137, 0x0414, 0x12c4, 0xb981, 0x1bb8, +0x4054, 0xdb21, 0x1feb, 0x3f6a, 0xbc6b, 0xcb19, 0x2eaa, 0xdddc, 0xd782, 0x53f0, +0x0db9, 0xe5f5, 0x4ae5, 0x09f1, 0xaaaa, 0x08ea, 0x1b96, 0xc280, 0x22c4, 0x4ce0, +0xe24f, 0x1cfe, 0x4491, 0xc23a, 0xc424, 0x2faf, 0xe9a8, 0xd606, 0x50b8, 0x16c3, +0xe5a3, 0x41e4, 0x0b1a, 0xa940, 0xfef6, 0x1bdf, 0xbfb1, 0x1607, 0x4e4e, 0xe252, +0x116e, 0x44af, 0xc71f, 0xbeed, 0x2c56, 0xed57, 0xd13f, 0x46da, 0x1220, 0xdf44, +0x3fcf, 0x0e72, 0xa687, 0xfe99, 0x22c2, 0xc0f4, 0x10f5, 0x4ab0, 0xdcc9, 0x0862, +0x42d3, 0xcce8, 0xbf2b, 0x2c4a, 0xf130, 0xcf23, 0x47a0, 0x1557, 0xd894, 0x3b17, +0x15eb, 0xac91, 0xfc3e, 0x2839, 0xc889, 0x0a6b, 0x4a0a, 0xe524, 0x0571, 0x40a3, +0xd642, 0xc2d3, 0x2b1c, 0xfa19, 0xd4f9, 0x465b, 0x1ef6, 0xe106, 0x371e, 0x15ec, +0xb185, 0xfc2f, 0x2898, 0xcc97, 0x0b55, 0x4c1f, 0xebc4, 0x08bc, 0x3f08, 0xd705, +0xc599, 0x2bb5, 0x081d, 0xcd96, 0x0d3b, 0x0ffa, 0x0823, 0x3f09, 0x1a45, 0xdad9, +0x0662, 0x07b7, 0xbb6a, 0xde9a, 0x0740, 0xda46, 0x0e1e, 0x6549, 0x38b1, 0x04bd, +0x2510, 0xf943, 0xad98, 0xc9a0, 0xca5c, 0xcaba, 0x22c9, 0x2b10, 0x01f0, 0x511a, +0x637c, 0xe409, 0xcfea, 0xff1b, 0xbae4, 0x9b34, 0xfafc, 0x154f, 0xfdb5, 0x2da1, +0x2e82, 0x1b20, 0x2472, 0xf46c, 0xbc6b, 0xd8c3, 0xf895, 0xcd65, 0xe4ee, 0x20c1, +0x1821, 0x08d6, 0x178c, 0x2a03, 0x07e8, 0xfe05, 0xe136, 0xbccf, 0xeb99, 0xdae7, +0xd3aa, 0x1d70, 0x3e94, 0x094b, 0x0900, 0x5434, 0x0901, 0xc4b1, 0xdc6e, 0xc832, +0xca7f, 0xe370, 0xfc55, 0x19fb, 0x5037, 0x3174, 0xfe1c, 0x3bdc, 0x1079, 0xb5a5, +0xbd97, 0xde91, 0xd7dc, 0xd8e9, 0x1ed3, 0x2fd7, 0x3373, 0x2e1c, 0x130d, 0x2861, +0x0ada, 0xcec0, 0xaf81, 0xd3f1, 0xe991, 0xcbf7, 0x0636, 0x408c, 0x3d14, 0x22da, +0x2e7f, 0x334f, 0xf091, 0xd23f, 0xb6f6, 0xbe39, 0xe0ea, 0xdac6, 0x0ab7, 0x52de, +0x5241, 0x1a28, 0x36a7, 0x3ee4, 0xdc10, 0xbfb1, 0xc06c, 0xc69f, 0xdf82, 0xf62e, +0x1f54, 0x4e25, 0x578d, 0x17a6, 0x26c4, 0x37fc, 0xe05d, 0xc099, 0xcd8c, 0xd886, +0xd8c3, 0xfcba, 0x2d83, 0x3fa6, 0x48bb, 0x1e77, 0x2a31, 0x31eb, 0xe98e, 0xbcf5, +0xc196, 0xe4e4, 0xdb34, 0xf4b5, 0x398d, 0x47e8, 0x3526, 0x2168, 0x3d9a, 0x20eb, +0xddcb, 0xbe09, 0xb85c, 0xe775, 0xe3f6, 0xedd1, 0x3731, 0x576a, 0x2d99, 0x1229, +0x4011, 0x0fb4, 0xc58a, 0xc2e0, 0xc163, 0xd8b3, 0xe485, 0xfbc4, 0x28a2, 0x4aba, +0x2b57, 0x06a4, 0x385f, 0x150e, 0xc2cd, 0xb65c, 0xcd33, 0xde60, 0xd4fe, 0x0096, +0x3507, 0x45bc, 0x2781, 0x142c, 0x33ba, 0x049c, 0xc775, 0xb39c, 0xc6ec, 0xe39b, +0xd75b, 0x0203, 0x3c34, 0x4589, 0x1c2f, 0x171d, 0x336b, 0xeff6, 0xbf31, 0xb8c6, +0xc21c, 0xde19, 0xe412, 0x0b3a, 0x399a, 0x4631, 0x1799, 0x116c, 0x3085, 0xeefe, +0xbcec, 0xb922, 0xcdc6, 0xe051, 0xe2d7, 0x10d0, 0x38e1, 0x3dfb, 0x1356, 0x1516, +0x2876, 0xe6f8, 0xbb6a, 0xb636, 0xd128, 0xdda0, 0xdf16, 0x11df, 0x387e, 0x338c, +0x0c5c, 0x211c, 0x2422, 0xdca8, 0xbf10, 0xb435, 0xcd32, 0xde18, 0xe25f, 0x144e, +0x3fe0, 0x3472, 0x0753, 0x2b41, 0x27e8, 0xd555, 0xc117, 0xbddb, 0xcb8c, 0xdaa8, +0xee16, 0x185e, 0x406a, 0x394d, 0x0e4c, 0x3224, 0x2283, 0xcee6, 0xb78f, 0xbe46, +0xd600, 0xd73a, 0xf882, 0x2db5, 0x4253, 0x3500, 0x1558, 0x2eee, 0x13ba, 0xd1b3, +0xb80a, 0xbd32, 0xe28d, 0xdf23, 0xfd44, 0x3980, 0x4ace, 0x2d3f, 0x18f4, 0x34ae, +0x039f, 0xcc97, 0xbb5e, 0xbe2a, 0xe6fa, 0xe555, 0x023b, 0x3de8, 0x4db4, 0x2192, +0x1578, 0x3a68, 0xfe29, 0xc84a, 0xbd0b, 0xc1ef, 0xe3a9, 0xe936, 0x0a3b, 0x3ab4, +0x505a, 0x260d, 0x1903, 0x39c0, 0xf9ac, 0xc53b, 0xbc41, 0xcc45, 0xe5fc, 0xe843, +0x15b8, 0x436d, 0x4dae, 0x24c5, 0x212b, 0x33f2, 0xf1b2, 0xc3a3, 0xb509, 0xcd57, +0xe8db, 0xeb7c, 0x1d1e, 0x4aef, 0x4a01, 0x1af5, 0x24c7, 0x2df1, 0xe4a5, 0xc1ae, +0xb8ad, 0xd2c8, 0xe887, 0xee7b, 0x21d0, 0x4d5f, 0x4806, 0x171f, 0x2854, 0x27e5, +0xdd26, 0xc075, 0xb9c1, 0xd6dc, 0xe94e, 0xf760, 0x2a99, 0x4d0c, 0x4405, 0x1751, +0x2a63, 0x1e7d, 0xd670, 0xba60, 0xb674, 0xde00, 0xe8fc, 0xf57e, 0x3121, 0x51b2, +0x3a66, 0x11d4, 0x29d9, 0x107f, 0xd01f, 0xbbd1, 0xb864, 0xe08f, 0xea2a, 0xfafd, +0x34de, 0x5038, 0x3061, 0x1294, 0x3316, 0x07d3, 0xc6ab, 0xbd82, 0xc0f2, 0xe421, +0xebe4, 0x0398, 0x39c6, 0x54a2, 0x2e8b, 0x0e55, 0x3308, 0x0648, 0xc5ad, 0xbd8e, +0xc53c, 0xdfb2, 0xe8b4, 0x0f4a, 0x3d14, 0x4caa, 0x2bf1, 0x15bf, 0x2e89, 0xf945, +0xc136, 0xb890, 0xcaeb, 0xe950, 0xe7bf, 0x115d, 0x451b, 0x4aa1, 0x20cd, 0x1684, +0x2a91, 0xf0a3, 0xc5b7, 0xb815, 0xc9bf, 0xee16, 0xea12, 0x117d, 0x470b, 0x42c7, +0x113f, 0x1b7c, 0x2b91, 0xe191, 0xc212, 0xbd24, 0xc84b, 0xe419, 0xe8c1, 0x104f, +0x440c, 0x4662, 0x1122, 0x20a6, 0x2d8e, 0xda8b, 0xbcf3, 0xc089, 0xcbf5, 0xde1c, +0xf3c0, 0x2135, 0x414e, 0x3fd9, 0x15e1, 0x26f5, 0x292e, 0xdc7e, 0xb937, 0xb924, +0xd769, 0xe06d, 0xee92, 0x2aa0, 0x48ae, 0x379d, 0x15e3, 0x2afa, 0x167d, 0xd370, +0xbfeb, 0xb8aa, 0xd8da, 0xe695, 0xf331, 0x2abe, 0x4918, 0x2e1c, 0x0f19, 0x32cf, +0x0f46, 0xc822, 0xbf6b, 0xbca2, 0xdadc, 0xe628, 0xf835, 0x2cf1, 0x4b03, 0x2c10, +0x0df9, 0x358e, 0x0a2c, 0xc678, 0xc06b, 0xc05f, 0xd849, 0xe170, 0x02e1, 0x3324, +0x4bd0, 0x2fc8, 0x13c8, 0x3314, 0x0029, 0xbf2e, 0xb455, 0xc1d3, 0xe027, 0xe480, +0x0a7f, 0x2c7a, 0x5506, 0x634d, 0x2129, 0xfadf, 0xe1b5, 0xb620, 0x8bd2, 0xbfae, +0x0a2a, 0x0d5d, 0x5240, 0x8109, 0x4e83, 0x15cf, 0xf367, 0xba2c, 0x9d5f, 0xcd2e, +0xbdc8, 0xf85d, 0x6f35, 0x4484, 0x29e8, 0x54f0, 0x2a04, 0xcc06, 0xd6d5, 0xe253, +0xc387, 0x09da, 0xff4a, 0xebc6, 0x4eb3, 0x2edb, 0xcfcc, 0x0b9a, 0x3d1b, 0xdc1f, +0xf4a1, 0x3fae, 0xeb9b, 0xe915, 0x13be, 0xcb86, 0xb940, 0x1643, 0x18ee, 0xf7d9, +0x4acf, 0x30df, 0xe6dc, 0x16fe, 0xf4d5, 0x9c55, 0xcc79, 0x10aa, 0xe384, 0x0496, +0x4c2c, 0x0504, 0xff4c, 0x2d7e, 0xd93d, 0xacb4, 0x00e4, 0xf5af, 0xc18e, 0x2289, +0x2a64, 0xe0a9, 0x2089, 0x21b8, 0xbaf3, 0xdd89, 0x1ea4, 0xd2e4, 0xe648, 0x37ea, +0xec35, 0xe993, 0x35d6, 0xed2e, 0xbadd, 0x15b4, 0x0a9d, 0xc841, 0x1a7c, 0x191c, +0xcaef, 0x0f4e, 0x1fff, 0xbfae, 0xe155, 0x3460, 0xeb55, 0xe0b6, 0x3048, 0xf2f2, +0xddca, 0x235a, 0xee7f, 0xb7cc, 0x15dd, 0x2097, 0xce52, 0x180f, 0x2dcf, 0xd499, +0x0857, 0x29b8, 0xc4c2, 0xd000, 0x28ff, 0xe652, 0xde94, 0x43c5, 0x05e6, 0xe425, +0x356a, 0xfee7, 0xb2c1, 0x0914, 0x1584, 0xbe7b, 0x0e5a, 0x368a, 0xe276, 0x1274, +0x3391, 0xd008, 0xd357, 0x26c2, 0xec06, 0xdd61, 0x39e2, 0x0868, 0xe6f9, 0x3207, +0x091c, 0xbc0e, 0x0582, 0x1f6d, 0xd133, 0x1cab, 0x4d57, 0xeb81, 0x02e3, 0x3712, +0xde41, 0xc71f, 0x212b, 0xfb67, 0xe7a1, 0x504a, 0x23ac, 0xedd8, 0x3eb6, 0x157e, +0xad36, 0xfc30, 0x2995, 0xcb86, 0x10c5, 0x529b, 0xf7a7, 0x15fe, 0x4546, 0xdc21, +0xcaba, 0x26eb, 0xe984, 0xd493, 0x4c8e, 0x16e6, 0xe56c, 0x463b, 0x1cf9, 0xb4a9, +0xfd71, 0x24ab, 0xc8a4, 0x09c8, 0x41c1, 0xe4ff, 0x0a9c, 0x3d28, 0xd226, 0xc16f, +0x2d0a, 0xf732, 0xcb2f, 0x42b2, 0x1d8f, 0xd5f3, 0x2c26, 0x1649, 0xa7c7, 0xed21, +0x286f, 0xc688, 0x04e2, 0x51dd, 0xe73b, 0x0013, 0x46f0, 0xd1e8, 0xab29, 0x260f, +0xf7aa, 0xbdee, 0x402d, 0x25c0, 0xda8b, 0x3989, 0x21df, 0xa95c, 0xf0ed, 0x290b, +0xbd3d, 0xfb44, 0x4eba, 0xe63a, 0xfecd, 0x4a1d, 0xe177, 0xbc6f, 0x2af3, 0xfdf2, +0xc4cf, 0x3b3d, 0x1ebb, 0xd4a0, 0x319d, 0x221e, 0xaf94, 0xf1b0, 0x3313, 0xcaf9, +0xf7f2, 0x4fd1, 0xeb5b, 0xf54e, 0x3faa, 0xd925, 0xb016, 0x2624, 0x012e, 0xc2f3, +0x3e16, 0x255d, 0xce61, 0x2b67, 0x1e8d, 0xa020, 0xe075, 0x2e2f, 0xc930, 0xf3f3, +0x4f96, 0xe6da, 0xef8a, 0x43fb, 0xdd85, 0xab7b, 0x2022, 0xfe5f, 0xba39, 0x346d, +0x27b4, 0xd20a, 0x2bfd, 0x2882, 0xae6f, 0xe3d3, 0x2b38, 0xc9c6, 0xef8e, 0x49d8, +0xeade, 0xf2c2, 0x46de, 0xe8ca, 0xb2fe, 0x208e, 0x0855, 0xc5c4, 0x338e, 0x29eb, +0xd645, 0x257e, 0x260c, 0xb7e2, 0xebef, 0x3365, 0xd6d8, 0xf811, 0x518d, 0xf457, +0xf134, 0x4558, 0xf41a, 0xb66e, 0x1a28, 0x0bd1, 0xcaa3, 0x31f9, 0x3045, 0xe17a, +0x2ad4, 0x2f2d, 0xbd2b, 0xe13e, 0x2cfe, 0xd3bd, 0xea52, 0x4fb4, 0x020e, 0xf40a, +0x4278, 0xf8f7, 0xb45e, 0x127c, 0x0af1, 0xc2d1, 0x2b03, 0x36f1, 0xdd10, 0x20d2, +0x35ec, 0xc074, 0xd7bd, 0x2eef, 0xd9db, 0xe543, 0x52c9, 0x05cf, 0xec53, 0x41bb, +0xfa65, 0xaf2a, 0x15c6, 0x1274, 0xbe0e, 0x2c97, 0x448e, 0xdd59, 0x1c74, 0x3817, +0xbb2b, 0xcf5b, 0x2f9a, 0xdc0c, 0xe4f0, 0x586d, 0x096c, 0xe913, 0x42c2, 0xf921, +0xa4d2, 0x0f94, 0x157d, 0xbee7, 0x2a97, 0x46c2, 0xe0bf, 0x1d38, 0x3786, 0xb9af, +0xcb2a, 0x2dd9, 0xd952, 0xdcbe, 0x5596, 0x0bab, 0xea4b, 0x4531, 0xffe2, 0xa78b, +0x0c61, 0x136f, 0xb532, 0x2148, 0x44ae, 0xd96e, 0x195c, 0x392c, 0xb898, 0xc8e9, +0x3388, 0xef92, 0xcd85, 0x0ef6, 0xf796, 0x13e1, 0x506a, 0x028d, 0xcd42, 0x14f5, +0xf58e, 0x9d81, 0xe29f, 0xfb3c, 0xcd66, 0x1bbf, 0x6302, 0x30d7, 0x14e4, 0x29bc, +0xdf14, 0xae5e, 0xce80, 0xabdc, 0xca7e, 0x3503, 0x1ee4, 0xf688, 0x5aac, 0x62a7, +0xd87d, 0xd4d5, 0xfc76, 0xb6dd, 0xa5b5, 0xf6e7, 0x0b99, 0x0665, 0x381b, 0x1f19, +0x1206, 0x2ed5, 0xebdd, 0xb56d, 0xde2e, 0xf87e, 0xce4d, 0xed47, 0x2439, 0x121c, +0x1266, 0x1483, 0x16c8, 0x10fd, 0x0650, 0xd754, 0xbaff, 0xf7e2, 0xda39, 0xcd45, +0x2986, 0x40dc, 0x0e53, 0x182a, 0x50a1, 0x01de, 0xcb6e, 0xdc62, 0xb781, 0xcfc4, +0xee54, 0xf542, 0x2240, 0x5981, 0x2c5e, 0xf8e5, 0x3e3b, 0x0d29, 0xaf98, 0xc3b7, +0xd787, 0xd3b1, 0xe2e2, 0x19c0, 0x28df, 0x3943, 0x2fe3, 0x081e, 0x2922, 0x0f78, +0xc962, 0xb6cc, 0xd979, 0xe6a6, 0xd121, 0x07cf, 0x3500, 0x3ad0, 0x2c2a, 0x2624, +0x2c95, 0xfb6f, 0xd7be, 0xb61f, 0xc05e, 0xe300, 0xd931, 0x0c0c, 0x4eae, 0x4878, +0x15a7, 0x2a43, 0x31b1, 0xdd24, 0xc4ea, 0xbda7, 0xc680, 0xe6be, 0xf0c6, 0x13f8, +0x45f0, 0x4cdc, 0x09ee, 0x185b, 0x3039, 0xdd40, 0xc562, 0xd19d, 0xd51e, 0xdcc7, +0xfbf1, 0x1f9a, 0x3311, 0x4108, 0x10a0, 0x1d6d, 0x368a, 0xebc0, 0xbacd, 0xc61c, +0xe6be, 0xd8c6, 0xecc7, 0x2b4f, 0x3ad6, 0x3234, 0x16aa, 0x312b, 0x2c20, 0xe5cf, +0xbf0c, 0xc2d3, 0xef02, 0xde96, 0xe42b, 0x3264, 0x4f6e, 0x2b87, 0x1502, 0x434e, +0x2169, 0xd824, 0xcd4a, 0xcbe5, 0xe67d, 0xe8bc, 0xf5fe, 0x2bd2, 0x4fbf, 0x2b2a, +0x05aa, 0x4482, 0x2857, 0xcb20, 0xc28b, 0xdaa2, 0xe5a8, 0xd616, 0xfaa0, 0x2fc3, +0x4640, 0x2ce5, 0x0f5a, 0x3ab7, 0x1944, 0xcda3, 0xbbcb, 0xcda1, 0xe22a, 0xd491, +0x0143, 0x3873, 0x3fbe, 0x22bb, 0x1736, 0x3ae6, 0x0407, 0xc3a8, 0xb9c4, 0xc437, +0xdc67, 0xd7ba, 0x00f1, 0x3801, 0x41a0, 0x1951, 0x11c6, 0x35de, 0xf7fb, 0xbeac, +0xb811, 0xc658, 0xdc21, 0xd8e4, 0x060e, 0x39e5, 0x4146, 0x14d2, 0x16dd, 0x36f4, +0xed6d, 0xba86, 0xb9b4, 0xcb20, 0xdd7e, 0xdfe1, 0x0f15, 0x3b82, 0x3e9b, 0x1158, +0x1b8a, 0x323f, 0xe8e2, 0xbdfb, 0xb835, 0xd09f, 0xddf2, 0xdd36, 0x148a, 0x40d3, +0x3e5f, 0x13a7, 0x2794, 0x2f4a, 0xde17, 0xbd25, 0xb6e3, 0xcb99, 0xdc56, 0xe6b9, +0x1ce9, 0x4836, 0x40a4, 0x1189, 0x2c70, 0x2966, 0xd436, 0xb74c, 0xb722, 0xd074, +0xdc0f, 0xf37b, 0x2f67, 0x4c6c, 0x3aa1, 0x13df, 0x2e82, 0x1863, 0xcd4e, 0xbc3f, +0xbce0, 0xd9c4, 0xe1be, 0xfb8d, 0x359d, 0x4c01, 0x3625, 0x17b8, 0x32ce, 0x1032, +0xcc89, 0xbc30, 0xbdba, 0xe2ec, 0xe81c, 0x005e, 0x3db9, 0x512c, 0x2c97, 0x17fc, +0x380c, 0x06f5, 0xcdb1, 0xc0d4, 0xbe6b, 0xe241, 0xead9, 0x05a4, 0x3a27, 0x518a, +0x2c10, 0x187d, 0x3809, 0xfd0c, 0xc4ac, 0xbff0, 0xc939, 0xe3de, 0xe907, 0x0ded, +0x3e36, 0x4e75, 0x2456, 0x1759, 0x31b3, 0xf547, 0xc449, 0xba76, 0xcb7c, 0xe629, +0xeb17, 0x17cc, 0x43ae, 0x4970, 0x1dfb, 0x1c5c, 0x2c1b, 0xe97c, 0xc40d, 0xbedd, +0xd492, 0xe90c, 0xea14, 0x18aa, 0x44ec, 0x43bf, 0x15aa, 0x2421, 0x2f68, 0xe453, +0xc2c4, 0xbef4, 0xd4c2, 0xe5c8, 0xf22d, 0x2430, 0x475e, 0x4461, 0x187f, 0x2916, +0x2d8a, 0xe382, 0xc1ee, 0xc2fa, 0xe144, 0xe6ea, 0xf400, 0x30a7, 0x50eb, 0x4265, +0x1b39, 0x2f67, 0x2260, 0xde78, 0xc61b, 0xc3e2, 0xe4c5, 0xea6e, 0xf9b7, 0x32e4, +0x4b24, 0x330a, 0x1529, 0x377b, 0x1ad4, 0xd298, 0xc471, 0xc39e, 0xdfcf, 0xe493, +0xf83e, 0x339f, 0x5169, 0x3178, 0x0fe4, 0x3634, 0x10e7, 0xcad8, 0xc188, 0xc0cb, +0xd97a, 0xe36b, 0x01cf, 0x3255, 0x49ca, 0x2dc9, 0x1019, 0x33a3, 0x059a, 0xbd42, +0xb33f, 0xbe30, 0xd9b3, 0xdc31, 0x0338, 0x37ee, 0x44ae, 0x224f, 0x0cf2, 0x27ab, +0xf5dc, 0xbd67, 0xaf02, 0xbe02, 0xde1c, 0xd738, 0x02b2, 0x3eba, 0x4074, 0x174f, +0x1829, 0x2c82, 0xe72a, 0xbf61, 0xb6b3, 0xbe85, 0xe2b1, 0xe25f, 0x05c1, 0x4181, +0x4a2b, 0x1512, 0x1a96, 0x326a, 0xe3c7, 0xbc8c, 0xb7af, 0xbd6f, 0xd849, 0xe90a, +0x150e, 0x3ed0, 0x469e, 0x176f, 0x1b23, 0x2908, 0xdb26, 0xb2f3, 0xb1f8, 0xca6a, +0xdb06, 0xe6a5, 0x1fb9, 0x4383, 0x3e5d, 0x1596, 0x1e94, 0x1cb0, 0xd8cf, 0xba95, +0xaec4, 0xcef4, 0xe43f, 0xeaf7, 0x2443, 0x4766, 0x336a, 0x0e32, 0x27a3, 0x1356, +0xcd5d, 0xc150, 0xb6ba, 0xd1d8, 0xe528, 0xee84, 0x2426, 0x4adf, 0x3667, 0x10cd, +0x310e, 0x1388, 0xcbbb, 0xc47e, 0xbd1f, 0xd491, 0xe98e, 0x0244, 0x3289, 0x53b3, +0x3eb9, 0x1566, 0x3290, 0x11e3, 0xcc07, 0xc004, 0xc4fd, 0xe223, 0xed0a, 0x10ae, +0x3ff0, 0x5037, 0x36e6, 0x164f, 0x29a1, 0x0284, 0xcdb8, 0xbdcd, 0xc637, 0xed96, +0xeeb1, 0x0cd0, 0x4050, 0x49bb, 0x239a, 0x1780, 0x2eab, 0xf6b6, 0xce3d, 0xbc38, +0xc8a0, 0x00e6, 0xefad, 0x0021, 0x33f9, 0x3ae3, 0x3cd3, 0x3fb1, 0x1838, 0xd924, +0xd541, 0xaecf, 0xa5de, 0xf7be, 0xfc4c, 0x140b, 0x790a, 0x7937, 0x1616, 0xfecc, +0xe9f4, 0x93de, 0xa330, 0xc0f0, 0xcf7e, 0x2cbc, 0x6286, 0x4ccf, 0x462d, 0x450f, +0xe74f, 0xa99c, 0xd6b1, 0xc669, 0xba55, 0xfefe, 0x25a9, 0x3149, 0x43ec, 0x1f26, +0xede2, 0x0adf, 0xff6f, 0xbdad, 0xf121, 0x2c23, 0xf18d, 0xf0cc, 0x2718, 0xe6c1, +0xbbba, 0x1d92, 0x14c7, 0xde85, 0x3e57, 0x31f4, 0xe295, 0x0f8d, 0xf992, 0xa267, +0xd117, 0x1bec, 0xe179, 0x07c9, 0x5af9, 0x03a7, 0x02e9, 0x3014, 0xd04d, 0xa794, +0xfb7e, 0xf282, 0xc715, 0x36b9, 0x3764, 0xea25, 0x307a, 0x1cb0, 0xb2ec, 0xd406, +0x117c, 0xd2a9, 0xea54, 0x43e9, 0xfc21, 0xfaa3, 0x3fc1, 0xeafd, 0xb060, 0x0b4c, +0x0ff9, 0xc461, 0x1954, 0x3040, 0xd984, 0x1601, 0x2825, 0xbc3f, 0xdbce, 0x3875, +0xe248, 0xdd2e, 0x4e02, 0xfd2c, 0xd91c, 0x3749, 0xf658, 0xaa69, 0x13e1, 0x2498, +0xcc14, 0x21ba, 0x3a26, 0xdb15, 0x1623, 0x2c3d, 0xba40, 0xcd2e, 0x2cf5, 0xe4ae, +0xe186, 0x52e0, 0x0d31, 0xe5cf, 0x3778, 0xffc1, 0xac3d, 0xfddf, 0x1bac, 0xc8ec, +0x14d4, 0x4029, 0xe79d, 0x15d6, 0x3792, 0xcc34, 0xca86, 0x3225, 0xf50a, 0xcf32, +0x3e28, 0x12b9, 0xe181, 0x364b, 0x1002, 0xb4c9, 0x031c, 0x26d6, 0xd0a9, 0x1e6a, +0x443a, 0xd350, 0x08d3, 0x41ed, 0xc7a2, 0xb99c, 0x2fe3, 0xff21, 0xdc75, 0x4839, +0x19bb, 0xe84c, 0x32f7, 0x01b7, 0xaddf, 0xfef1, 0x1e1c, 0xcae8, 0x16e4, 0x4bda, +0xecbb, 0x0caf, 0x3f24, 0xe0dc, 0xc4bc, 0x18da, 0xf67e, 0xdd77, 0x3908, 0x10f4, +0xed5b, 0x4369, 0x1b8d, 0xb980, 0x0190, 0x297a, 0xc6e3, 0x009e, 0x4462, 0xea33, +0x0155, 0x3cba, 0xe27f, 0xcbef, 0x2bda, 0xf9a0, 0xd4bc, 0x439f, 0x150b, 0xd559, +0x344d, 0x1a5b, 0xaf57, 0xf935, 0x2de0, 0xcf9a, 0x0979, 0x49a9, 0xea95, 0x051a, +0x3cdb, 0xd6df, 0xbc25, 0x2174, 0xf28b, 0xc89b, 0x4222, 0x2645, 0xdfc1, 0x315e, +0x201e, 0xb2fc, 0xe3d4, 0x181b, 0xc442, 0xfd80, 0x4a43, 0xed31, 0xff1f, 0x4381, +0xdf06, 0xb4dc, 0x1fd7, 0xf6dc, 0xbffe, 0x3a30, 0x24f3, 0xd6d6, 0x297b, 0x1c5d, +0xaf37, 0xedb8, 0x286b, 0xc61d, 0xfe95, 0x515b, 0xe559, 0xf3c9, 0x4090, 0xd830, +0xae85, 0x1db8, 0xf7ec, 0xc607, 0x3f9f, 0x264d, 0xd94a, 0x2a8a, 0x1485, 0xa002, +0xdeaf, 0x235b, 0xc381, 0xfa49, 0x5796, 0xefa6, 0xf6b9, 0x4056, 0xd904, 0xa813, +0x17bf, 0xf931, 0xbf26, 0x3e31, 0x2c1d, 0xd50a, 0x2d55, 0x22b9, 0xa846, 0xdf9f, +0x28c5, 0xc598, 0xef6b, 0x51e5, 0xf17d, 0xfa6e, 0x46ce, 0xddcb, 0xac63, 0x1bcf, +0xff42, 0xc08e, 0x3b8a, 0x30ab, 0xd540, 0x2b2a, 0x2b14, 0xb01e, 0xe003, 0x2eb4, +0xd207, 0xf705, 0x5a04, 0xf5f1, 0xf4f2, 0x49c1, 0xe735, 0xac7d, 0x1ff2, 0x0bc1, +0xc150, 0x3a15, 0x3cd0, 0xdc44, 0x29ee, 0x3079, 0xb504, 0xdcbb, 0x2cd7, 0xcfca, +0xeed8, 0x5c84, 0xfe19, 0xf346, 0x4ec0, 0xf24e, 0xa9a2, 0x1b01, 0x120e, 0xbf61, +0x31bd, 0x3ed0, 0xdca8, 0x27d7, 0x3553, 0xb79f, 0xddc0, 0x376a, 0xd743, 0xea45, +0x592a, 0xf9f4, 0xe94c, 0x4a1d, 0xf552, 0xa9a1, 0x19d2, 0x14c6, 0xbc9b, 0x2b11, +0x3913, 0xd2dc, 0x1f02, 0x340a, 0xb6b6, 0xd426, 0x33f8, 0xd9a8, 0xdc7f, 0x5123, +0xfd3a, 0xde46, 0x40ce, 0xfa10, 0xa997, 0x14a8, 0x1bb4, 0xc08d, 0x2376, 0x3d24, +0xd503, 0x166b, 0x35f1, 0xbc86, 0xd0fa, 0x36e8, 0xf1a1, 0xd628, 0x16ed, 0xf145, +0x0d1a, 0x55e9, 0x09b3, 0xd0ea, 0x189e, 0xfae5, 0xa1d9, 0xe581, 0xfd1f, 0xd241, +0x1ffa, 0x5b9f, 0x2d05, 0x1f94, 0x316b, 0xe330, 0xba22, 0xd9ab, 0xb354, 0xcfaa, +0x3059, 0x1e34, 0xfcfc, 0x565e, 0x623a, 0xe738, 0xe027, 0xfe57, 0xc099, 0xb327, +0xf470, 0x0c3c, 0x0e38, 0x38fd, 0x1a11, 0x0892, 0x3339, 0xf5c3, 0xbab1, 0xe297, +0xf843, 0xce95, 0xe620, 0x1c2a, 0x09ee, 0x1283, 0x1b02, 0x1187, 0x188b, 0x0e86, +0xd87e, 0xb652, 0xeca9, 0xdb2d, 0xc7dd, 0x1fe5, 0x379e, 0x0fd2, 0x1c45, 0x4c2e, +0x1316, 0xd85d, 0xdfc8, 0xb6df, 0xc87f, 0xeb35, 0xe54a, 0x1628, 0x57e4, 0x3419, +0xff6c, 0x4156, 0x1c74, 0xb5b4, 0xca06, 0xd49b, 0xc6db, 0xdff3, 0x0f42, 0x1c9b, +0x38c2, 0x3cc3, 0x059b, 0x2a27, 0x2699, 0xce85, 0xb4f9, 0xd393, 0xdea9, 0xcdb3, +0x03e7, 0x3281, 0x3d54, 0x3c61, 0x2583, 0x2ce2, 0x0c86, 0xdb4d, 0xb3bf, 0xbb9c, +0xe353, 0xd3fa, 0x034f, 0x4cdb, 0x4ab4, 0x21fa, 0x2b59, 0x391f, 0xeb27, 0xc6cb, +0xb8e4, 0xba9a, 0xe811, 0xec0e, 0x0c31, 0x4bdb, 0x5772, 0x163d, 0x1a19, 0x3f4d, +0xe9e8, 0xc3a2, 0xce2a, 0xc788, 0xd9f4, 0xf83e, 0x1bc6, 0x3ce8, 0x5548, 0x1db0, +0x1a55, 0x4521, 0xf1e2, 0xb3ab, 0xc2fd, 0xdbe1, 0xd800, 0xed52, 0x2c30, 0x402d, +0x430b, 0x23ff, 0x260b, 0x2f76, 0xea68, 0xb3d7, 0xb28e, 0xe14a, 0xdd06, 0xe066, +0x33b3, 0x51ec, 0x33b4, 0x1667, 0x3052, 0x1b77, 0xd41e, 0xc1bd, 0xb6c4, 0xd7a4, +0xeae0, 0xe9c9, 0x2119, 0x50ee, 0x3348, 0x0504, 0x35a7, 0x2224, 0xc555, 0xbad4, +0xc362, 0xd0c4, 0xdade, 0xf6c3, 0x247a, 0x463c, 0x3726, 0x098e, 0x2ae9, 0x1a2f, +0xc9d7, 0xb0fe, 0xc012, 0xdaac, 0xd5e1, 0xf9b0, 0x351f, 0x47da, 0x2cc6, 0x10fb, +0x2d9f, 0x068e, 0xc5e3, 0xb7fe, 0xc297, 0xe2b0, 0xe422, 0x01db, 0x36ef, 0x48cb, +0x23b7, 0x10de, 0x3507, 0x0307, 0xc7bf, 0xbff3, 0xc77c, 0xe128, 0xe56e, 0x0857, +0x3924, 0x4aaf, 0x2249, 0x103e, 0x31eb, 0xfa7b, 0xc42a, 0xbff2, 0xca69, 0xdf50, +0xe715, 0x1070, 0x37d6, 0x4303, 0x1eac, 0x16ba, 0x3184, 0xf739, 0xc4f5, 0xba46, +0xcd7e, 0xe4d0, 0xe592, 0x10ee, 0x3d09, 0x4044, 0x17ce, 0x2016, 0x2f3f, 0xe9e5, +0xc633, 0xbad5, 0xc6f9, 0xdeac, 0xe624, 0x121c, 0x413b, 0x4301, 0x1783, 0x29fd, +0x2ba5, 0xdaa4, 0xbe2e, 0xbb8e, 0xcbc8, 0xdde4, 0xf1e9, 0x21db, 0x439b, 0x4190, +0x172e, 0x27a0, 0x21f8, 0xd636, 0xbad8, 0xb8bf, 0xd096, 0xdf64, 0xf8a8, 0x2b93, +0x443b, 0x3b96, 0x185e, 0x26da, 0x10a6, 0xd167, 0xbdb5, 0xb977, 0xdb3a, 0xe708, +0xfa86, 0x2f52, 0x4806, 0x3265, 0x17a3, 0x31bc, 0x0e05, 0xd510, 0xc461, 0xbd66, +0xe192, 0xed77, 0x0119, 0x32ba, 0x50ed, 0x31ea, 0x16d3, 0x36ec, 0x0732, 0xcfc7, +0xc460, 0xc184, 0xdf83, 0xea58, 0x0626, 0x3550, 0x5246, 0x2def, 0x16cd, 0x3427, +0xfd3a, 0xc953, 0xbd3c, 0xc544, 0xe4ec, 0xf153, 0x166b, 0x3e10, 0x4e6d, 0x26d4, +0x1968, 0x2f16, 0xf428, 0xcae0, 0xbedd, 0xccf8, 0xe956, 0xefa2, 0x1950, 0x4297, +0x4a75, 0x1de5, 0x1955, 0x29ba, 0xeb91, 0xc61c, 0xbb12, 0xce33, 0xe7ce, 0xefe6, +0x18c6, 0x3e32, 0x43c5, 0x1922, 0x1cc3, 0x20fd, 0xde2b, 0xbf55, 0xb70b, 0xd16f, +0xe788, 0xef8e, 0x20c4, 0x4654, 0x3d93, 0x11d7, 0x1d2e, 0x15c5, 0xd810, 0xc122, +0xb7df, 0xd5bd, 0xe934, 0xf5a0, 0x24cd, 0x4321, 0x356b, 0x10be, 0x2522, 0x0e25, +0xcdbf, 0xc120, 0xbd1c, 0xd9ef, 0xe950, 0xf8ec, 0x2940, 0x4a04, 0x31e9, 0x09bb, +0x2935, 0x0de2, 0xcd32, 0xc3e0, 0xc0ad, 0xd96f, 0xebee, 0x0617, 0x2f65, 0x4a9d, +0x32b8, 0x104d, 0x2b20, 0x042c, 0xc6fe, 0xc0fc, 0xccb1, 0xe4c6, 0xe7e5, 0x0a2f, +0x3646, 0x44a9, 0x27ed, 0x0f84, 0x2482, 0xf9ba, 0xc9c9, 0xbc46, 0xc6f1, 0xe7c9, +0xe7b4, 0x0935, 0x38ab, 0x3dfb, 0x17f4, 0x1202, 0x2366, 0xe8cf, 0xc894, 0xc02b, +0xc4e7, 0xe682, 0xe9b4, 0x07dc, 0x39bc, 0x4323, 0x1255, 0x11a3, 0x2383, 0xde38, +0xc201, 0xc28c, 0xc797, 0xe30e, 0xf319, 0x11aa, 0x3329, 0x3e07, 0x11d9, 0x1242, +0x2173, 0xdd6c, 0xbc12, 0xbfc4, 0xd3cc, 0xe301, 0xf14f, 0x1ed7, 0x3c0b, 0x3bbe, +0x150a, 0x16d9, 0x1504, 0xded6, 0xc844, 0xc0c3, 0xdedd, 0xf0d7, 0xf666, 0x25d8, +0x4424, 0x33d0, 0x130e, 0x2876, 0x1370, 0xd7a6, 0xcf17, 0xc604, 0xdfb9, 0xf3d2, +0xfde9, 0x29bc, 0x4a3a, 0x328f, 0x0b59, 0x293f, 0x0f84, 0xd398, 0xd04b, 0xc938, +0xdc96, 0xf077, 0x05ff, 0x2a1d, 0x46e9, 0x33e3, 0x0e06, 0x27af, 0x084b, 0xcbee, +0xc5ed, 0xce50, 0xe4ec, 0xee95, 0x0fc4, 0x3481, 0x4291, 0x2ab8, 0x0ee7, 0x217a, +0xfbca, 0xd072, 0xc584, 0xcdc2, 0xeeae, 0xf284, 0x0beb, 0x2a91, 0x499c, 0x4ab9, +0x1751, 0xfb4e, 0xdff4, 0xc548, 0xaa11, 0xcb25, 0x079b, 0x0c5f, 0x3e98, 0x6247, +0x3e07, 0x0f43, 0xf0e4, 0xca5f, 0xb34f, 0xd401, 0xc893, 0xf3d1, 0x4c26, 0x308b, +0x22b3, 0x41c0, 0x2279, 0xdc8b, 0xdff8, 0xe310, 0xcceb, 0x027f, 0xf615, 0xee06, +0x3db0, 0x2392, 0xe01d, 0x1366, 0x3415, 0xe34c, 0xf6fc, 0x29c3, 0xe8c4, 0xee7a, +0x0fa2, 0xddee, 0xd84b, 0x1d1b, 0x1722, 0xff58, 0x3ac2, 0x1f74, 0xf03f, 0x1870, +0xfcd6, 0xbff1, 0xe68f, 0x1180, 0xed1f, 0x0a12, 0x3895, 0x07ec, 0x0a31, 0x24b3, +0xe648, 0xc9fc, 0x0734, 0xf757, 0xd412, 0x1f4f, 0x1e8b, 0xee37, 0x1f0e, 0x1be3, +0xd43a, 0xefa3, 0x194b, 0xddce, 0xf237, 0x287d, 0xeedf, 0xf88e, 0x2f7f, 0xf704, +0xd874, 0x1c88, 0x0972, 0xd8d5, 0x1702, 0x0f28, 0xe05e, 0x15f4, 0x1a7c, 0xd9ff, +0xf6eb, 0x29b0, 0xf002, 0xf068, 0x23d5, 0xf4b8, 0xf046, 0x1d23, 0xf157, 0xd110, +0x1519, 0x14cc, 0xdede, 0x142d, 0x1a12, 0xe515, 0x0b1c, 0x1636, 0xd4d5, 0xe629, +0x1cf8, 0xe7c6, 0xea58, 0x2b1f, 0xfc3e, 0xeeea, 0x236a, 0xfb53, 0xcfca, 0x089d, +0x0488, 0xd160, 0x0a55, 0x141d, 0xe5cd, 0x107d, 0x186d, 0xd8c8, 0xeaf7, 0x1870, +0xe826, 0xe955, 0x18d7, 0xf4b0, 0xf2f4, 0x198f, 0xf637, 0xd898, 0x0a60, 0x099d, +0xe121, 0x112c, 0x19f0, 0xe9f0, 0x0257, 0x16f3, 0xea68, 0xe825, 0x11db, 0xf73d, +0xf784, 0x22c2, 0x01a7, 0xfa94, 0x2329, 0xff98, 0xd3ac, 0x066b, 0x0f20, 0xe092, +0x0cc3, 0x1ddc, 0xf6f5, 0x1320, 0x1de5, 0xe877, 0xf111, 0x167b, 0xeabe, 0xf59b, +0x2682, 0xf99e, 0xf763, 0x2689, 0x0359, 0xdfbd, 0x0e98, 0x0da2, 0xe78d, 0x0e20, +0x0ddb, 0xeff0, 0x11e2, 0x1312, 0xe459, 0xf4b0, 0x1704, 0xee92, 0xf4ab, 0x1ec2, +0xfc20, 0xf450, 0x169f, 0xfcad, 0xdbac, 0x0468, 0x089e, 0xe794, 0x0e53, 0x118e, +0xefe9, 0x0e4a, 0x169a, 0xe1da, 0xebc0, 0x15eb, 0xefcb, 0xf2ee, 0x1beb, 0xfce8, +0xfa9c, 0x1c17, 0xffdb, 0xe6b1, 0x0fc5, 0x065c, 0xe6be, 0x10a6, 0x0c31, 0xefee, +0x1306, 0x13f9, 0xe94c, 0xfe45, 0x19f0, 0xf32a, 0xfe85, 0x1905, 0xf62a, 0xfd6b, +0x1747, 0xf729, 0xeaea, 0x11d1, 0x0593, 0xf301, 0x1786, 0x0b5f, 0xf124, 0x0940, +0x0668, 0xe6ec, 0xfe96, 0x1506, 0xf474, 0x04f3, 0x1923, 0xf708, 0xfe00, 0x1197, +0xf0a5, 0xe784, 0x0dcb, 0xff73, 0xf084, 0x1476, 0x091e, 0xf640, 0x0af0, 0x0286, +0xe773, 0xfd6b, 0x0efa, 0xf175, 0xf89a, 0x07af, 0xf9a6, 0x0516, 0x128d, 0x00ff, +0xfb4e, 0x0ed0, 0xfc70, 0xe60e, 0xf53d, 0xf46c, 0xf494, 0x0bff, 0x1551, 0x06e1, +0x0c9f, 0x0f55, 0xefab, 0xed70, 0xf731, 0xf0fe, 0xfd13, 0x0d56, 0x068f, 0x0174, +0x0fee, 0xffe4, 0xea15, 0xfb9a, 0xffd4, 0xf166, 0xfe33, 0x0e6f, 0xfeb8, 0x0068, +0x0cad, 0xf543, 0xef47, 0x0118, 0xf5be, 0xeb4f, 0x04dc, 0x09b3, 0xf586, 0x0081, +0x05bb, 0xf123, 0xf60d, 0x03d9, 0xf8d9, 0xfe28, 0x0dac, 0xfb79, 0xf27c, 0xfe7f, +0xf2c5, 0xeeb0, 0x04d2, 0x030d, 0xfb07, 0x0e9e, 0x0d11, 0xf686, 0xfc94, 0xffbf, +0xed59, 0xf589, 0x05ab, 0xfa48, 0xffa7, 0x10c1, 0x014b, 0xfa25, 0x09af, 0xfdfc, +0xf0ef, 0x03b9, 0x0400, 0xf635, 0x063f, 0x0b0b, 0xf9ca, 0x03dd, 0x0d8d, 0xfce6, +0x00df, 0x0f4b, 0x024e, 0xff59, 0x0dc5, 0x0159, 0xf654, 0x067a, 0x0580, 0xfe5c, +0x0e74, 0x0f97, 0x0220, 0x099e, 0x09f1, 0xf6cc, 0xfa19, 0x04a0, 0xfb69, 0x0199, +0x10a2, 0x0726, 0x02f2, 0x0c0d, 0x00c5, 0xf7e4, 0x056d, 0x020c, 0xf921, 0x0880, +0x0a05, 0xfc9b, 0x05b1, 0x0ba8, 0xfd73, 0x0126, 0x0afa, 0xfedb, 0xfe8e, 0x0754, +0xff08, 0x010e, 0x0a12, 0xff2a, 0xfc7a, 0x0965, 0x0306, 0xfbf9, 0x0735, 0x05c2, +0xfdbe, 0x020b, 0x01d4, 0xfd23, 0x035d, 0x0690, 0x0006, 0x0536, 0x0b42, 0x02fd, +0x0048, 0x04d9, 0xffac, 0xfb96, 0x0522, 0x06ea, 0x01a3, 0x0640, 0x0721, 0x02e7, +0x04ad, 0x0494, 0xfe70, 0x009e, 0x0380, 0xfafb, 0xfecf, 0x0890, 0x0224, 0xffd6, +0x0613, 0x005f, 0xfada, 0x0129, 0xfdf3, 0xf949, 0x014d, 0x006d, 0xfa91, 0x0029, +0x002c, 0xf7d8, 0xff02, 0x0615, 0xfbc4, 0xfc2b, 0x035b, 0xfb89, 0xf601, 0xfa4f, +0xfabf, 0xfbd9, 0x00a3, 0xfe0a, 0xfbd4, 0x0009, 0xfe8b, 0xf866, 0xf96c, 0xfcbd, +0xf750, 0xf6d5, 0xfee5, 0xfea6, 0xfc47, 0x00a5, 0x013f, 0xfaa4, 0xf910, 0xf98a, +0xf6f0, 0xfa55, 0xfc01, 0xfac1, 0xff53, 0x001d, 0xfac1, 0xfb9d, 0xfef2, 0xf9c9, +0xf9ce, 0xff10, 0xfabf, 0xfab8, 0xfe59, 0xfa05, 0xfa90, 0x00a1, 0xff54, 0xfdbe, +0x0243, 0xff6b, 0xfac6, 0xfde2, 0xfc78, 0xf927, 0xfc12, 0xfe2f, 0xfc8a, 0xfe15, +0x00a9, 0xff55, 0x0011, 0x0049, 0xfbfb, 0xfa18, 0xfd23, 0xfbc7, 0xf7ac, 0xfd25, +0x019e, 0x0030, 0x02a9, 0x0344, 0x0053, 0x0036, 0x003f, 0xfc42, 0xfd77, 0x047f, +0x022f, 0xffd5, 0x0747, 0x065b, 0xffcd, 0x058c, 0x0801, 0x00b8, 0x029f, 0x057c, +0x0228, 0x02a9, 0x03ae, 0x0336, 0x052e, 0x06d3, 0x0355, 0x0367, 0x097b, 0x0767, +0x040b, 0x0708, 0x062b, 0x00f3, 0x010e, 0x0624, 0x0661, 0x0641, 0x0870, 0x08cf, +0x095c, 0x0672, 0x0114, 0x0064, 0x0450, 0x0372, 0x00f0, 0x074e, 0x0927, 0x0375, +0x04d0, 0x06fa, 0x0278, 0x00e0, 0x023e, 0x0105, 0x0392, 0x0478, 0x01dc, 0x0633, +0x06ad, 0x0137, 0x035b, 0x071e, 0x039a, 0x00b9, 0x0238, 0x0257, 0x03b3, 0x032c, +0x00b5, 0x062b, 0x0920, 0x0425, 0x05d7, 0x09b0, 0x0457, 0x011e, 0x02cb, 0x0112, +0x01e7, 0x03e0, 0x04a0, 0x09f0, 0x0993, 0x025d, 0x03ab, 0x06f0, 0x01ce, 0xffa9, +0x0343, 0x03bf, 0x02bc, 0x0192, 0x0175, 0x03f8, 0x025f, 0xfe13, 0xffaf, 0x037b, +0x017f, 0xff0d, 0x010c, 0x01cc, 0xff47, 0xfda7, 0xff79, 0xffc8, 0xfd08, 0xfdcd, +0x01e5, 0x03c0, 0x00fa, 0xfdf8, 0xfdb9, 0xff87, 0xff9b, 0xfbe2, 0xfeae, 0x0380, +0x0014, 0xfe6f, 0x0115, 0x0048, 0xfe1d, 0xff3b, 0xff7b, 0xff0a, 0x0012, 0xfed0, +0xfed6, 0xffe0, 0xfcbf, 0xfbdb, 0x005d, 0xffb1, 0xf9ae, 0xfb2b, 0x0004, 0xff44, +0xfc6c, 0xfb62, 0xfdf8, 0xff0d, 0xfbbb, 0xfae7, 0xfd8a, 0xfd70, 0xfaee, 0xfbe3, +0xfdf3, 0xfc89, 0xfa9a, 0xfb6e, 0xfd82, 0xfcb8, 0xfaa3, 0xfc2a, 0xfeb9, 0xfc5c, +0xf8a1, 0xfb85, 0x000c, 0xfee7, 0xfbc5, 0xfc1f, 0xfee8, 0xfdac, 0xfae0, 0xfc8b, +0xfef5, 0xfebd, 0xfdf5, 0xfec1, 0x0023, 0xff0f, 0xfc4a, 0xfdd7, 0x00f5, 0xfea6, +0xfd0c, 0x002f, 0x0087, 0xfc77, 0xfc93, 0x0024, 0x013b, 0x00dc, 0xfdb0, 0xfcbd, +0x0060, 0xfed8, 0xfc65, 0xfff5, 0x0160, 0xfef8, 0x0045, 0x0243, 0x0065, 0xfff6, +0x0124, 0x00f9, 0x00f5, 0x00ae, 0xff8e, 0x00df, 0x02e1, 0xffa3, 0xfea2, 0x0390, +0x035d, 0xff35, 0xff1f, 0x009b, 0x0048, 0xffed, 0x0005, 0xfff7, 0x0019, 0xff23, +0xfe36, 0xff91, 0x0112, 0x0088, 0xfff6, 0x00fa, 0x00a3, 0xfe18, 0xfe82, 0x01b6, +0x00ae, 0xfead, 0x018f, 0x02ef, 0x0126, 0x002b, 0xffb6, 0x01e3, 0x0382, 0x00b0, +0x00bd, 0x0402, 0x024e, 0x0002, 0x02e3, 0x0327, 0x00b6, 0x01cf, 0x02ca, 0x0250, +0x0280, 0x01bd, 0x021d, 0x04f6, 0x0340, 0xfee9, 0x0095, 0x0305, 0x00bc, 0x012c, +0x04fc, 0x0469, 0x0257, 0x027e, 0x0242, 0x01ad, 0x014b, 0x00c3, 0x0147, 0x037a, +0x036a, 0x00b5, 0x0068, 0x0121, 0xff9a, 0xfec8, 0x0143, 0x0151, 0xfd18, 0xfced, +0xffbd, 0x0066, 0x007d, 0xff3b, 0xfdd4, 0xfe9a, 0xff0d, 0xfdc1, 0xfe33, 0xffd7, +0xfd45, 0xfbe9, 0xffc6, 0xff2d, 0xfb3e, 0xfd69, 0x0057, 0xff59, 0xffc4, 0x00ad, +0x0017, 0xffc4, 0xfde4, 0xfc22, 0xfe08, 0x004b, 0xffd4, 0x0028, 0x0265, 0x00fa, +0xfdc5, 0xfe0b, 0xff0e, 0xfe78, 0xfdca, 0xfe74, 0xff9b, 0x005c, 0x0106, 0x00eb, +0x015c, 0x01a8, 0xff52, 0xfee2, 0x00ee, 0xffbe, 0xfec8, 0x010d, 0x01ab, 0x00d9, +0x0106, 0x010d, 0x00e8, 0x0118, 0x00e8, 0x012b, 0x02b4, 0x0211, 0xff7a, 0xff8e, +0x0115, 0x0100, 0x00de, 0x02dd, 0x0379, 0x00f9, 0xffd1, 0x0018, 0xfff6, 0xfffa, +0x000c, 0xfff1, 0x0004, 0x0012, 0xffc4, 0x009c, 0x010c, 0xfffb, 0xffe4, 0x001a, +0xfff2, 0xfffc, 0x0012, 0xffe2, 0x0015, 0x015a, 0x0257, 0x01c9, 0x004d, 0xfff9, +0xffdd, 0x0059, 0x019b, 0x004f, 0x0095, 0x030f, 0x0191, 0xff96, 0x015d, 0x0296, +0x01ee, 0x0205, 0x01f5, 0x0220, 0x0303, 0x0276, 0x01b6, 0x02a2, 0x02f4, 0x01f9, +0x0209, 0x01e3, 0x0073, 0x00ad, 0x0219, 0x0205, 0x00f2, 0x000a, 0xffc0, 0x00c9, +0x0105, 0xffac, 0x007c, 0x0198, 0x0051, 0xffcf, 0x001b, 0xfff4, 0x0001, 0x0002, +0xfffe, 0xfffb, 0x0005, 0xfffd, 0xfff3, 0x0025, 0xff14, 0xfe3b, 0xffa5, 0xfffc, +0xfee0, 0xff17, 0xffe8, 0x0010, 0xffec, 0x0017, 0xffe5, 0xff21, 0xfef3, 0xfef8, +0xff4b, 0x002c, 0xffc0, 0xfee9, 0xffc3, 0x001f, 0xff65, 0xffbc, 0x001d, 0xfff2, +000000, 0x0003, 0xfffc, 0xfffc, 0x000a, 0xffec, 0x0015, 0x0095, 0x002c, 0xffc9, +0x006a, 0x0078, 0xfff2, 0xfffb, 0x0006, 0xfffa, 0x0002, 0xfffd, 0x0004, 0xfff4, +0x0010, 0xfff2, 0xfff7, 0x003a, 0xfeb1, 0xfe3a, 0xfff4, 0x0020, 0xffde, 0x0015, +0xfff6, 000000, 0x0002, 0xfffc, 0x0001, 0xfffe, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000 }; diff --git a/daemon/libs/iax2/ringtone.h b/daemon/libs/iax2/ringtone.h index 637021d341..ea517fc57b 100644 --- a/daemon/libs/iax2/ringtone.h +++ b/daemon/libs/iax2/ringtone.h @@ -1,30 +1,30 @@ -/* ringtone.h: Generated from frequencies 440 and 480 +/* ringtone.h: Generated from frequencies 440 and 480 by gensound. 200 samples */ static short ringtone[200] = { - 0, 11581, 21659, 28927, 32445, 31764, 26981, 18727, - 8084, -3559, -14693, -23875, -29927, -32083, -30088, -24228, - -15290, -4453, 6864, 17195, 25212, 29902, 30693, 27526, - 20856, 11585, 944, -9673, -18899, -25560, -28837, -28357, - -24244, -17089, -7868, 2192, 11780, 19667, 24872, 26779, - 25212, 20450, 13179, 4396, -4731, -13019, -19421, -23164, - -23839, -21446, -16384, -9384, -1408, 6484, 13281, 18145, - 20517, 20182, 17286, 12301, 5951, -887, -7314, -12519, - -15886, -17068, -16017, -12983, -8458, -3109, 2327, 7142, - 10750, 12757, 13007, 11585, 8793, 5095, 1044, -2800, - -5951, -8053, -8921, -8560, -7141, -4967, -2421, 104, - 2260, 3791, 4567, 4589, 3977, 2941, 1733, 600, - -257, -722, -772, -481, 0, 481, 772, 722, - 257, -600, -1733, -2941, -3977, -4589, -4567, -3791, - -2260, -104, 2421, 4967, 7141, 8560, 8921, 8053, - 5951, 2800, -1044, -5095, -8793, -11585, -13007, -12757, - -10750, -7142, -2327, 3109, 8458, 12983, 16017, 17068, - 15886, 12519, 7314, 887, -5951, -12301, -17286, -20182, - -20517, -18145, -13281, -6484, 1408, 9384, 16384, 21446, - 23839, 23164, 19421, 13019, 4731, -4396, -13179, -20450, - -25212, -26779, -24872, -19667, -11780, -2192, 7868, 17089, - 24244, 28357, 28837, 25560, 18899, 9673, -944, -11585, - -20856, -27526, -30693, -29902, -25212, -17195, -6864, 4453, - 15290, 24228, 30088, 32083, 29927, 23875, 14693, 3559, - -8084, -18727, -26981, -31764, -32445, -28927, -21659, -11581, + 0, 11581, 21659, 28927, 32445, 31764, 26981, 18727, + 8084, -3559, -14693, -23875, -29927, -32083, -30088, -24228, + -15290, -4453, 6864, 17195, 25212, 29902, 30693, 27526, + 20856, 11585, 944, -9673, -18899, -25560, -28837, -28357, + -24244, -17089, -7868, 2192, 11780, 19667, 24872, 26779, + 25212, 20450, 13179, 4396, -4731, -13019, -19421, -23164, + -23839, -21446, -16384, -9384, -1408, 6484, 13281, 18145, + 20517, 20182, 17286, 12301, 5951, -887, -7314, -12519, + -15886, -17068, -16017, -12983, -8458, -3109, 2327, 7142, + 10750, 12757, 13007, 11585, 8793, 5095, 1044, -2800, + -5951, -8053, -8921, -8560, -7141, -4967, -2421, 104, + 2260, 3791, 4567, 4589, 3977, 2941, 1733, 600, + -257, -722, -772, -481, 0, 481, 772, 722, + 257, -600, -1733, -2941, -3977, -4589, -4567, -3791, + -2260, -104, 2421, 4967, 7141, 8560, 8921, 8053, + 5951, 2800, -1044, -5095, -8793, -11585, -13007, -12757, + -10750, -7142, -2327, 3109, 8458, 12983, 16017, 17068, + 15886, 12519, 7314, 887, -5951, -12301, -17286, -20182, + -20517, -18145, -13281, -6484, 1408, 9384, 16384, 21446, + 23839, 23164, 19421, 13019, 4731, -4396, -13179, -20450, + -25212, -26779, -24872, -19667, -11780, -2192, 7868, 17089, + 24244, 28357, 28837, 25560, 18899, 9673, -944, -11585, + -20856, -27526, -30693, -29902, -25212, -17195, -6864, 4453, + 15290, 24228, 30088, 32083, 29927, 23875, 14693, 3559, + -8084, -18727, -26981, -31764, -32445, -28927, -21659, -11581, }; diff --git a/daemon/libs/iax2/winiphone.c b/daemon/libs/iax2/winiphone.c index 0bc3147b7c..fe6ba83a9c 100644 --- a/daemon/libs/iax2/winiphone.c +++ b/daemon/libs/iax2/winiphone.c @@ -115,7 +115,7 @@ void killem(void) { waveInStop(win); waveInReset(win); - waveInClose(win); + waveInClose(win); waveOutReset(wout); waveOutClose(wout); WSACleanup(); /* dont forget socket stuff too */ @@ -294,7 +294,7 @@ main(int argc, char *argv[]) service_network(netfd,f); /* service network here for better performance */ /* if last one was removed from queue, zot it here */ if (i && wh1) - { + { free(wh1); wh1 = wh2; } @@ -303,14 +303,14 @@ main(int argc, char *argv[]) { /* prepare audio header */ if ((c = waveOutUnprepareHeader(wout,&wh->w,sizeof(WAVEHDR))) != MMSYSERR_NOERROR) - { + { fprintf(stderr,"Cannot unprepare audio out header, error %d\n",c); exit(255); } if (wh1 != NULL) /* if there was a last one */ { wh1->next = wh->next; - } + } if (outqueue == wh) /* is first one, so set outqueue to next one */ { outqueue = wh->next; @@ -390,7 +390,7 @@ main(int argc, char *argv[]) gsm_encode(most_recent_answer->gsmout, (short *) ((char *) whin[i].lpData), fo); if(iax_send_voice(most_recent_answer->session, AST_FORMAT_GSM, (char *)fo, sizeof(gsm_frame)) == -1) - puts("Failed to send voice!"); + puts("Failed to send voice!"); lastouttick = GetTickCount(); /* save time of last output */ /* unprepare (free) the header */ @@ -402,7 +402,7 @@ main(int argc, char *argv[]) /* exit the loop so that we can start at lowest buffer again */ break; } - } + } if (i >= NWHIN) break; /* if all found, get out of loop */ } } @@ -433,7 +433,7 @@ do_iax_event(FILE *f) { if(e->event.connect.callerid && e->event.connect.dnid) - fprintf(f, "Call from '%s' for '%s'", e->event.connect.callerid, + fprintf(f, "Call from '%s' for '%s'", e->event.connect.callerid, e->event.connect.dnid); else if(e->event.connect.dnid) { fprintf(f, "Call from '%s'", e->event.connect.dnid); @@ -583,8 +583,8 @@ handle_event(FILE *f, struct iax_event *e, struct peer *p) } else { /* its an audio packet to be output to user */ /* get count of pending items in audio output queue */ - n = 0; - if (outqueue) + n = 0; + if (outqueue) { /* determine number of pending out queue items */ for(wh = outqueue; wh != NULL; wh = wh->next) { @@ -615,7 +615,7 @@ handle_event(FILE *f, struct iax_event *e, struct peer *p) fprintf(stderr,"Cannot prepare header for audio out\n"); exit(255); } - /* if not currently transmitting, hold off a couple of packets for + /* if not currently transmitting, hold off a couple of packets for smooth sounding output */ if ((!n) && (!paused_xmit)) { @@ -647,7 +647,7 @@ handle_event(FILE *f, struct iax_event *e, struct peer *p) while(wh1->next) wh1 = wh1->next; /* find last entry in queue */ wh1->next = wh; /* point it to new entry */ } - } + } #ifdef PRINTCHUCK else printf("Chucking packet!!\n"); #endif diff --git a/daemon/libs/iax2/winpoop.h b/daemon/libs/iax2/winpoop.h index 3089a5ffaf..2c55cd0cbf 100644 --- a/daemon/libs/iax2/winpoop.h +++ b/daemon/libs/iax2/winpoop.h @@ -1,4 +1,4 @@ -/* +/* * Functions Windows doesn't have... but should * Copyright(C) 2001, Linux Support Services, Inc. * @@ -32,7 +32,7 @@ static INLINE int inet_aton(char *cp, struct in_addr *inp) a1 &= 0xff; a2 &= 0xff; a3 &= 0xff; - a4 &= 0xff; + a4 &= 0xff; saddr = (a1 << 24) | (a2 << 16) | (a3 << 8) | a4; inp->s_addr = htonl(saddr); return 1; diff --git a/daemon/libs/utilspp/null_type.hpp b/daemon/libs/utilspp/null_type.hpp index 5e7800deaa..0ba1208ad4 100644 --- a/daemon/libs/utilspp/null_type.hpp +++ b/daemon/libs/utilspp/null_type.hpp @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/daemon/libs/utilspp/singleton/creation_using_new.hpp b/daemon/libs/utilspp/singleton/creation_using_new.hpp index de9c995d3d..fe94f12852 100644 --- a/daemon/libs/utilspp/singleton/creation_using_new.hpp +++ b/daemon/libs/utilspp/singleton/creation_using_new.hpp @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -26,7 +26,7 @@ /** * This class is a creation policy for the utilspp::singleton_holder. The - * policy is creating the singleton by a "new" call. + * policy is creating the singleton by a "new" call. */ namespace utilspp { diff --git a/daemon/libs/utilspp/singleton/creation_using_new.inl b/daemon/libs/utilspp/singleton/creation_using_new.inl index adb66ede9e..5c9ae88eb8 100644 --- a/daemon/libs/utilspp/singleton/creation_using_new.inl +++ b/daemon/libs/utilspp/singleton/creation_using_new.inl @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/daemon/libs/utilspp/singleton/lifetime_default.hpp b/daemon/libs/utilspp/singleton/lifetime_default.hpp index 68a4342e76..ba0208c0a2 100644 --- a/daemon/libs/utilspp/singleton/lifetime_default.hpp +++ b/daemon/libs/utilspp/singleton/lifetime_default.hpp @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/daemon/libs/utilspp/singleton/lifetime_default.inl b/daemon/libs/utilspp/singleton/lifetime_default.inl index 8ff996e1db..6760ececcd 100644 --- a/daemon/libs/utilspp/singleton/lifetime_default.inl +++ b/daemon/libs/utilspp/singleton/lifetime_default.inl @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -28,7 +28,7 @@ #include <stdexcept> template< typename T > -void +void utilspp::LifetimeDefault< T >::scheduleDestruction( T *, void (*func)() ) { std::atexit(func); diff --git a/daemon/libs/utilspp/singleton/singleton_holder.hpp b/daemon/libs/utilspp/singleton/singleton_holder.hpp index da4118f355..6b0fcf47b1 100644 --- a/daemon/libs/utilspp/singleton/singleton_holder.hpp +++ b/daemon/libs/utilspp/singleton/singleton_holder.hpp @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -42,14 +42,14 @@ namespace utilspp static T& instance(); static void makeInstance(); static void terminate(); - + protected: //protected to be sure that nobody may create one by himself. SingletonHolder(); - + private: static void destroySingleton(); - + private: typedef typename ThreadingModel< T * >::VolatileType InstanceType; static InstanceType mInstance; diff --git a/daemon/libs/utilspp/singleton/singleton_holder.inl b/daemon/libs/utilspp/singleton/singleton_holder.inl index d1a9e4f12b..5fb9fab7f4 100644 --- a/daemon/libs/utilspp/singleton/singleton_holder.inl +++ b/daemon/libs/utilspp/singleton/singleton_holder.inl @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -77,7 +77,7 @@ ThreadingModel LifetimePolicy< T >::onDeadReference(); mDestroyed = false; } - + mInstance = CreationPolicy< T >::create(); LifetimePolicy< T >::scheduleDestruction( mInstance, &destroySingleton ); } diff --git a/daemon/libs/utilspp/threading_single.hpp b/daemon/libs/utilspp/threading_single.hpp index 69dc04fbc7..81c023402c 100644 --- a/daemon/libs/utilspp/threading_single.hpp +++ b/daemon/libs/utilspp/threading_single.hpp @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -36,7 +36,7 @@ namespace utilspp void lock(); void unlock(); }; - + struct lock { lock(); diff --git a/daemon/libs/utilspp/threading_single.inl b/daemon/libs/utilspp/threading_single.inl index 5285bf3af1..4d26c4ff1d 100644 --- a/daemon/libs/utilspp/threading_single.inl +++ b/daemon/libs/utilspp/threading_single.inl @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -31,7 +31,7 @@ utilspp::ThreadingSingle< T >::lock::lock() template< typename T > inline -utilspp::ThreadingSingle< T >::lock::lock( +utilspp::ThreadingSingle< T >::lock::lock( utilspp::ThreadingSingle< T >::mutex & ) {} diff --git a/daemon/man/Makefile.am b/daemon/man/Makefile.am index 6df5e801d0..3a3edf5b86 100644 --- a/daemon/man/Makefile.am +++ b/daemon/man/Makefile.am @@ -14,7 +14,7 @@ all: $(MANPAGES) SUFFIXES=.pod .1 .pod.1: - $(POD2MAN) --section=$(SECTION) --release=@VERSION@ --center "" $< > $@ + $(POD2MAN) --section=$(SECTION) --release=@VERSION@ --center "" $< > $@ clean-local: rm -rf *.1 diff --git a/daemon/man/README.manpages b/daemon/man/README.manpages index f794a0d257..75f6044095 100644 --- a/daemon/man/README.manpages +++ b/daemon/man/README.manpages @@ -5,7 +5,7 @@ Procedure: - Creating the manual pages under POD format. A template is available in this directory. - Convert the pdo file in a manpage file: pod2man --section=1 --release=$(VERSION) --center "" myapp.pod > myapp.1 - - You are done! You can read the manpage file with: + - You are done! You can read the manpage file with: groff -man -Tascii myapp.1 diff --git a/daemon/man/sflphoned.pod b/daemon/man/sflphoned.pod index 58c7b8f089..8f59d4d2e6 100644 --- a/daemon/man/sflphoned.pod +++ b/daemon/man/sflphoned.pod @@ -36,7 +36,7 @@ Please report bugs at https://projects.savoirfairelinux.com/projects/sflphone/is =head1 AUTHORS -B<sflphoned> is developed in Montreal by Savoir-Faire Linux Inc. The active developers are Tristan Matthews <tristan.matthews@savoirfairelinux.com> and Alexandre Savard <alexandre.savard@savoirfairelinux.com>. +B<sflphoned> is developed in Montreal by Savoir-Faire Linux Inc. The active developers are Tristan Matthews <tristan.matthews@savoirfairelinux.com> and Alexandre Savard <alexandre.savard@savoirfairelinux.com>. This manual page was written by Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>. diff --git a/daemon/src/Makefile.am b/daemon/src/Makefile.am index 8795e0063b..271c3902d4 100644 --- a/daemon/src/Makefile.am +++ b/daemon/src/Makefile.am @@ -28,7 +28,7 @@ sflphoned_CXXFLAGS = \ -DPREFIX=\"$(prefix)\" -DPROGSHAREDIR=\"${datadir}/sflphone\" $(IAX_CXXFLAG) $(NETWORKMANAGER) \ -DVERSION=\"$(VERSION)\" -# libsflphone +# libsflphone sflphoned_LDADD = ./libsflphone.la $(libssl_LIBS) -lcrypto noinst_LTLIBRARIES = libsflphone.la diff --git a/daemon/src/audio/Makefile.am b/daemon/src/audio/Makefile.am index 1d4595d130..3e623cbae4 100644 --- a/daemon/src/audio/Makefile.am +++ b/daemon/src/audio/Makefile.am @@ -2,7 +2,7 @@ include $(top_srcdir)/globals.mak noinst_LTLIBRARIES = libaudio.la -SUBDIRS = codecs audiortp sound alsa pulseaudio +SUBDIRS = codecs audiortp sound alsa pulseaudio libaudio_la_SOURCES = \ audioloop.cpp \ @@ -42,7 +42,7 @@ libaudio_la_LIBADD = \ ./codecs/libcodecdescriptor.la \ ./alsa/libalsalayer.la \ ./pulseaudio/libpulselayer.la \ - ./sound/libsound.la + ./sound/libsound.la diff --git a/daemon/src/audio/alsa/Makefile.am b/daemon/src/audio/alsa/Makefile.am index 8f67710b33..4ca799e546 100644 --- a/daemon/src/audio/alsa/Makefile.am +++ b/daemon/src/audio/alsa/Makefile.am @@ -2,7 +2,7 @@ include $(top_srcdir)/globals.mak noinst_LTLIBRARIES = libalsalayer.la -libalsalayer_la_SOURCES = alsalayer.cpp +libalsalayer_la_SOURCES = alsalayer.cpp noinst_HEADERS = alsalayer.h diff --git a/daemon/src/audio/alsa/alsalayer.cpp b/daemon/src/audio/alsa/alsalayer.cpp index c1e7620f8a..f8d7b915bf 100644 --- a/daemon/src/audio/alsa/alsalayer.cpp +++ b/daemon/src/audio/alsa/alsalayer.cpp @@ -484,7 +484,7 @@ AlsaLayer::getAudioDeviceIndexMap(AudioStreamDirection dir) const std::string description = snd_ctl_card_info_get_name(info); description.append(" - "); description.append(snd_pcm_info_get_name(pcminfo)); - + // The number of the sound card is associated with a string description audioDevice.push_back(HwIDPair(numCard , description)); } @@ -522,8 +522,8 @@ AlsaLayer::soundCardIndexExists(int card, int stream) int AlsaLayer::getAudioDeviceIndex(const std::string &description) const { - std::vector<HwIDPair> audioDeviceIndexMap; - + std::vector<HwIDPair> audioDeviceIndexMap; + std::vector<HwIDPair> captureDevice = getAudioDeviceIndexMap(AUDIO_STREAM_CAPTURE); std::vector<HwIDPair> playbackDevice = getAudioDeviceIndexMap(AUDIO_STREAM_PLAYBACK); diff --git a/daemon/src/audio/audiolayer.h b/daemon/src/audio/audiolayer.h index 87d76caf25..573002e9b5 100644 --- a/daemon/src/audio/audiolayer.h +++ b/daemon/src/audio/audiolayer.h @@ -81,7 +81,7 @@ class AudioLayer { virtual void stopStream() = 0; /** - * Determine wether or not the audio layer is active (i.e. stream opened) + * Determine wether or not the audio layer is active (i.e. stream opened) */ bool isStarted() const { return isStarted_; @@ -96,7 +96,7 @@ class AudioLayer { void putUrgent(void* buffer, int toCopy); /** - * Flush main buffer + * Flush main buffer */ void flushMain(); diff --git a/daemon/src/audio/audiortp/Makefile.am b/daemon/src/audio/audiortp/Makefile.am index 5d5daf3755..bb0bf253e2 100644 --- a/daemon/src/audio/audiortp/Makefile.am +++ b/daemon/src/audio/audiortp/Makefile.am @@ -16,5 +16,5 @@ libaudiortp_la_SOURCES = \ audio_symmetric_rtp_session.h \ audio_zrtp_session.h \ zrtp_session_callback.h \ - audio_srtp_session.h + audio_srtp_session.h diff --git a/daemon/src/audio/codecs/Makefile.am b/daemon/src/audio/codecs/Makefile.am index 36a051ecd0..e184780237 100644 --- a/daemon/src/audio/codecs/Makefile.am +++ b/daemon/src/audio/codecs/Makefile.am @@ -87,7 +87,7 @@ libcodec_g722_so_CXXFLAGS = -fPIC -g -Wall libcodec_g722_so_LDADD = libcodecdescriptor.la libcodec_g722_so_LDFLAGS = --shared -lc -install-exec-local: install-libcodec_ulaw_so install-libcodec_alaw_so install-libcodec_g722_so $(INSTALL_GSM_RULE) $(INSTALL_SPEEX_NB_RULE) $(INSTALL_SPEEX_WB_RULE) $(INSTALL_SPEEX_UB_RULE) $(INSTALL_CELT_RULE) $(INSTALL_ILBC_RULE) +install-exec-local: install-libcodec_ulaw_so install-libcodec_alaw_so install-libcodec_g722_so $(INSTALL_GSM_RULE) $(INSTALL_SPEEX_NB_RULE) $(INSTALL_SPEEX_WB_RULE) $(INSTALL_SPEEX_UB_RULE) $(INSTALL_CELT_RULE) $(INSTALL_ILBC_RULE) uninstall-local: uninstall-libcodec_ulaw_so uninstall-libcodec_alaw_so uninstall-libcodec_g722_so uninstall-libcodec_gsm_so uninstall-libcodec_speex_nb_so uninstall-libcodec_speex_wb_so uninstall-libcodec_speex_ub_so uninstall-libcodec_celt_so diff --git a/daemon/src/audio/codecs/README b/daemon/src/audio/codecs/README index 515353165c..f7fbdf1a88 100644 --- a/daemon/src/audio/codecs/README +++ b/daemon/src/audio/codecs/README @@ -2,8 +2,8 @@ How to build the codec shared libraries --------------------------------------- CODEC_ALAW: - gcc -fPIC -g -c -Wall ulaw.cpp --------> gives you the object file ulaw.o. + gcc -fPIC -g -c -Wall ulaw.cpp +-------> gives you the object file ulaw.o. -------> option -g to include debug information -------> option -Wall to generate warnings -------> option -fPIC to enable position independant code generation @@ -11,7 +11,7 @@ CODEC_ALAW: gcc -shared -o libcodec_ulaw.so ulaw.o -lc -------> creates the shared library -CODEC ALAW: +CODEC ALAW: idem CODEC_GSM: diff --git a/daemon/src/audio/pulseaudio/Makefile.am b/daemon/src/audio/pulseaudio/Makefile.am index 0e58b78b27..19be919ef9 100644 --- a/daemon/src/audio/pulseaudio/Makefile.am +++ b/daemon/src/audio/pulseaudio/Makefile.am @@ -9,5 +9,5 @@ libpulselayer_la_SOURCES = \ noinst_HEADERS = \ audiostream.h \ - pulselayer.h + pulselayer.h diff --git a/daemon/src/audio/pulseaudio/audiostream.cpp b/daemon/src/audio/pulseaudio/audiostream.cpp index 387d31fcbc..2eb1308e50 100644 --- a/daemon/src/audio/pulseaudio/audiostream.cpp +++ b/daemon/src/audio/pulseaudio/audiostream.cpp @@ -65,10 +65,10 @@ AudioStream::AudioStream(pa_context *c, pa_threaded_mainloop *m, const char *des pa_threaded_mainloop_lock(mainloop_); if (type == PLAYBACK_STREAM || type == RINGTONE_STREAM) - pa_stream_connect_playback(audiostream_, deviceName == "" ? NULL : deviceName.c_str(), &attributes, + pa_stream_connect_playback(audiostream_, deviceName == "" ? NULL : deviceName.c_str(), &attributes, (pa_stream_flags_t)(PA_STREAM_ADJUST_LATENCY|PA_STREAM_AUTO_TIMING_UPDATE), NULL, NULL); else if (type == CAPTURE_STREAM) - pa_stream_connect_record(audiostream_, deviceName == "" ? NULL : deviceName.c_str(), &attributes, + pa_stream_connect_record(audiostream_, deviceName == "" ? NULL : deviceName.c_str(), &attributes, (pa_stream_flags_t)(PA_STREAM_ADJUST_LATENCY|PA_STREAM_AUTO_TIMING_UPDATE)); pa_threaded_mainloop_unlock(mainloop_); diff --git a/daemon/src/audio/pulseaudio/pulselayer.cpp b/daemon/src/audio/pulseaudio/pulselayer.cpp index 74f2dbf47e..9bb92f5fea 100644 --- a/daemon/src/audio/pulseaudio/pulselayer.cpp +++ b/daemon/src/audio/pulseaudio/pulselayer.cpp @@ -187,7 +187,7 @@ bool PulseLayer::inSourceList(const std::string &deviceName) const return std::find(sourceList_.begin(), sourceList_.end(), deviceName) != sourceList_.end(); } -std::vector<std::string> PulseLayer::getAudioDeviceList(AudioStreamDirection dir) const +std::vector<std::string> PulseLayer::getAudioDeviceList(AudioStreamDirection dir) const { if(AUDIO_STREAM_CAPTURE == dir) { return sinkList_; diff --git a/daemon/src/audio/pulseaudio/pulselayer.h b/daemon/src/audio/pulseaudio/pulselayer.h index fc6c742a28..a8640f42cf 100644 --- a/daemon/src/audio/pulseaudio/pulselayer.h +++ b/daemon/src/audio/pulseaudio/pulselayer.h @@ -109,7 +109,7 @@ class PulseLayer : public AudioLayer { AudioStream* ringtone_; /** - * Contain the list of playback devices + * Contain the list of playback devices */ std::vector<std::string> sinkList_; diff --git a/daemon/src/audio/sound/Makefile.am b/daemon/src/audio/sound/Makefile.am index 10e9960b7a..0680471c72 100644 --- a/daemon/src/audio/sound/Makefile.am +++ b/daemon/src/audio/sound/Makefile.am @@ -14,5 +14,5 @@ noinst_HEADERS = \ tone.h \ tonelist.h \ dtmfgenerator.h \ - dtmf.h + dtmf.h diff --git a/daemon/src/dbus/callmanager-introspec.xml b/daemon/src/dbus/callmanager-introspec.xml index 645a776d00..a742426b77 100644 --- a/daemon/src/dbus/callmanager-introspec.xml +++ b/daemon/src/dbus/callmanager-introspec.xml @@ -206,7 +206,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join two participants together to create a 3-way conference including the current client.</p> - <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="sel_callID" direction="in"/> <arg type="s" name="drag_callID" direction="in"/> @@ -225,7 +225,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join a new particiant to an existing conference.</p> - <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="callID" direction="in"> <tp:docstring> @@ -304,7 +304,7 @@ conferences. <tp:rationale>To update client status, one should use <tp:member-ref>getParticipantList</tp:member-ref> - with provided conference IDs.</tp:rationale> + with provided conference IDs.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -324,7 +324,7 @@ </arg> </method> - <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> + <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> <tp:docstring> Tells whether or not a call is being recorded. </tp:docstring> @@ -342,7 +342,7 @@ <signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath"> <tp:docstring> - Once after starting recording for the first time, this signal is emited to + Once after starting recording for the first time, this signal is emited to provide the recorded file path to client application. </tp:docstring> <arg type="s" name="callID" /> @@ -383,7 +383,7 @@ <method name="getCallList" tp:name-for-bindings="getCallList"> <tp:docstring> Get the list of active calls. - <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> + <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -455,7 +455,7 @@ <signal name="incomingMessage" tp:name-for-bindings="incomingMessage"> <tp:docstring> - Notify clients that a new text message has been received. + Notify clients that a new text message has been received. </tp:docstring> <arg type="s" name="callID" /> <arg type="s" name="from" /> @@ -464,7 +464,7 @@ <signal name="callStateChanged" tp:name-for-bindings="callStateChanged"> <tp:docstring> - <p>Notify of a change in a call state.</p> + <p>Notify of a change in a call state.</p> <p>The client must subscribe to this signal.</p> </tp:docstring> <arg type="s" name="callID"> @@ -474,7 +474,7 @@ </arg> <arg type="s" name="state" > <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>INCOMING: Initial state of incoming calls</li> <li>RINGING: Initial state of received outgoing call</li> @@ -502,7 +502,7 @@ </arg> <arg type="s" name="state"> <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>ACTIVE_ATTACHED: SFLphone user is participating to this conference</li> @@ -636,7 +636,7 @@ The SIP or IAX2 message code </tp:docstring> </arg> - </signal> + </signal> <signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify"> <tp:docstring> @@ -656,7 +656,7 @@ <signal name="volumeChanged" tp:name-for-bindings="volumeChanged"> <tp:docstring> - <p>Notify clients of a volume level change.</p> + <p>Notify clients of a volume level change.</p> <p>This signal occurs only if ALSA is enabled since Pulseaudio streams are managed externally. </p> </tp:docstring> <arg type="s" name="device"> @@ -692,7 +692,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Signal sent on SDES session success. Media transmission is encripted - for this call only. It does not apply for a conference.</p> + for this call only. It does not apply for a conference.</p> <p>A conference can be considered to be secured if and only if each participant is secured.</p> </tp:docstring> @@ -702,7 +702,7 @@ <signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff"> <tp:added version="0.9.7"/> <tp:docstring> - <p>Sinal sent to notify that SDES session failed.</p> + <p>Sinal sent to notify that SDES session failed.</p> <p>Media transmission is not encrypted.</p> </tp:docstring> <arg type="s" name="callID" /> diff --git a/daemon/src/history/history.cpp b/daemon/src/history/history.cpp index caa95b663e..16482fde46 100644 --- a/daemon/src/history/history.cpp +++ b/daemon/src/history/history.cpp @@ -44,11 +44,11 @@ namespace { { time_t currentTimestamp; time(¤tTimestamp); - // Number of seconds in one day: 60 sec/min x 60 min/hr x 24hr/day + // Number of seconds in one day: 60 sec/min x 60 min/hr x 24hr/day static const int DAY_UNIX_TIMESTAMP = 60 * 60 * 24; return static_cast<int>(currentTimestamp) - (days * DAY_UNIX_TIMESTAMP); } - + using std::map; using std::string; using std::vector; diff --git a/daemon/src/hooks/Makefile.am b/daemon/src/hooks/Makefile.am index aa5797fe7a..149f232406 100644 --- a/daemon/src/hooks/Makefile.am +++ b/daemon/src/hooks/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = +SUBDIRS = noinst_LTLIBRARIES = libhooks.la diff --git a/daemon/src/managerimpl.cpp b/daemon/src/managerimpl.cpp index ea4e0027a3..1f9f3283bb 100644 --- a/daemon/src/managerimpl.cpp +++ b/daemon/src/managerimpl.cpp @@ -127,7 +127,7 @@ void ManagerImpl::init(std::string config_file) telephoneTone_ = new TelephoneTone(preferences.getZoneToneChoice(), audiodriver_->getSampleRate()); dtmfKey_ = new DTMF(8000); } - } + } history_->load(preferences.getHistoryLimit()); registerAccounts(); @@ -2096,7 +2096,7 @@ bool ManagerImpl::isRecording(const std::string& id) bool ManagerImpl::startRecordedFilePlayback(const std::string& filepath) { DEBUG("Manager: Start recorded file playback %s", filepath.c_str()); - + int sampleRate; { ost::MutexLock lock(audioLayerMutex_); diff --git a/daemon/src/sip/sipaccount.cpp b/daemon/src/sip/sipaccount.cpp index 8f59dd933d..bd57505637 100644 --- a/daemon/src/sip/sipaccount.cpp +++ b/daemon/src/sip/sipaccount.cpp @@ -122,7 +122,7 @@ void SIPAccount::serialize(Conf::YamlEmitter *emitter) portstr << localPort_; ScalarNode port(portstr.str()); ScalarNode serviceRoute(serviceRoute_); - ScalarNode contactUpdateEnabled(contactUpdateEnabled_); + ScalarNode contactUpdateEnabled(contactUpdateEnabled_); ScalarNode mailbox(mailBox_); ScalarNode publishAddr(publishedIpAddress_); @@ -597,7 +597,7 @@ void SIPAccount::startKeepAliveTimer() { keepAliveDelay_.sec = registrationExpire_; keepAliveDelay_.msec = 0; - + link_->registerKeepAliveTimer(keepAliveTimer_, keepAliveDelay_); } @@ -777,12 +777,12 @@ void SIPAccount::setContactHeader(std::string address, std::string port) transport = ";transport=" + std::string(pjsip_transport_get_type_name(transportType_)); } else scheme = "sip:"; - + contactHeader_ = displayName_ + (displayName_.empty() ? "" : " ") + "<" + scheme + username_ + (username_.empty() ? "":"@") + address + ":" + port + transport + ">"; } - + std::string SIPAccount::getContactHeader() const { @@ -809,7 +809,7 @@ std::string SIPAccount::getContactHeader() const address + ":" + port + transport + ">"; } -void SIPAccount::keepAliveRegistrationCb(UNUSED pj_timer_heap_t *th, pj_timer_entry *te) +void SIPAccount::keepAliveRegistrationCb(UNUSED pj_timer_heap_t *th, pj_timer_entry *te) { SIPAccount *sipAccount = reinterpret_cast<SIPAccount *>(te->user_data); @@ -822,10 +822,10 @@ void SIPAccount::keepAliveRegistrationCb(UNUSED pj_timer_heap_t *th, pj_timer_en sipAccount->registerVoIPLink(); // make sure the current timer is deactivated - sipAccount->stopKeepAliveTimer(); + sipAccount->stopKeepAliveTimer(); // register a new timer - sipAccount->startKeepAliveTimer(); + sipAccount->startKeepAliveTimer(); } } diff --git a/daemon/src/sip/sipaccount.h b/daemon/src/sip/sipaccount.h index 6a5b272a39..94986a5ae8 100644 --- a/daemon/src/sip/sipaccount.h +++ b/daemon/src/sip/sipaccount.h @@ -188,7 +188,7 @@ class SIPAccount : public Account { * Stop the keep alive timer. Once canceled, no further registration will be scheduled */ void stopKeepAliveTimer(); - + pjsip_cred_info *getCredInfo() const { return cred_; @@ -222,7 +222,7 @@ class SIPAccount : public Account { } /** - * Set the expiration for this account as found in + * Set the expiration for this account as found in * the "Expire" sip header or the CONTACT's "expire" param. */ void setRegistrationExpire(int expire) { @@ -244,8 +244,8 @@ class SIPAccount : public Account { bool userMatch(const std::string& username) const; bool hostnameMatch(const std::string& hostname) const; - /** - * Registration flag + /** + * Registration flag */ bool isRegistered() const { return bRegister_; @@ -370,7 +370,7 @@ class SIPAccount : public Account { void setContactHeader(std::string address, std::string port); /** - * Get the contact header for + * Get the contact header for * @return pj_str_t The contact header based on account information */ std::string getContactHeader(void) const; @@ -383,7 +383,7 @@ class SIPAccount : public Account { } /** - * The contact header is not updated even if the registrar + * The contact header is not updated even if the registrar */ void disableContactUpdate(void) { contactUpdateEnabled_ = false; @@ -392,7 +392,7 @@ class SIPAccount : public Account { bool isContactUpdateEnabled(void) { return contactUpdateEnabled_; } - + /** * Get the local interface name on which this account is bound. */ @@ -566,15 +566,15 @@ class SIPAccount : public Account { pj_uint16_t tlsListenerPort_; /** - * Transport type used for this sip account. Currently supported types: + * Transport type used for this sip account. Currently supported types: * PJSIP_TRANSPORT_UNSPECIFIED * PJSIP_TRANSPORT_UDP * PJSIP_TRANSPORT_TLS - */ + */ pjsip_transport_type_e transportType_; /** - * Credential information stored for further registration. + * Credential information stored for further registration. */ pjsip_cred_info *cred_; @@ -584,9 +584,9 @@ class SIPAccount : public Account { pjsip_tls_setting tlsSetting_; /** - * The CONTACT header used for registration as provided by the registrar, this value could differ + * The CONTACT header used for registration as provided by the registrar, this value could differ * from the host name in case the registrar is inside a subnetwork (such as a VPN). - * The header will be stored + * The header will be stored */ std::string contactHeader_; @@ -638,7 +638,7 @@ class SIPAccount : public Account { std::string tlsNegotiationTimeoutMsec_; /** - * The stun server hostname (optional), used to provide the public IP address in case the softphone + * The stun server hostname (optional), used to provide the public IP address in case the softphone * stay behind a NAT. */ std::string stunServer_; @@ -651,14 +651,14 @@ class SIPAccount : public Account { /** * Determine if SRTP is enabled for this account, SRTP and ZRTP are mutually exclusive - * This only determine if the media channel is secured. One could only enable TLS + * This only determine if the media channel is secured. One could only enable TLS * with no secured media channel. - */ + */ bool srtpEnabled_; /** * Specifies the type of key exchange usd for SRTP (sdes/zrtp) - */ + */ std::string srtpKeyExchange_; /** @@ -672,7 +672,7 @@ class SIPAccount : public Account { * Determine if the SAS sould be displayed on client side. SAS is a 4-charcter string * that end users should verbaly validate to ensure the channel is secured. Used especially * to prevent man-in-the-middle attack. - */ + */ bool zrtpDisplaySas_; /** @@ -688,11 +688,11 @@ class SIPAccount : public Account { * This is a protocol Code:Description pair. */ std::pair<int, std::string> registrationStateDetailed_; - + /** * Timer used to regularrly send re-register request based * on the "Expire" sip header (or the "expire" Contact parameter) - */ + */ pj_timer_entry keepAliveTimer_; diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp index 17bca24928..50d0f2214a 100644 --- a/daemon/src/sip/sipvoiplink.cpp +++ b/daemon/src/sip/sipvoiplink.cpp @@ -656,14 +656,14 @@ void SIPVoIPLink::registerKeepAliveTimer(pj_timer_entry& timer, pj_time_val& del { pj_status_t status; - status = pjsip_endpt_schedule_timer(endpt_, &timer, &delay); + status = pjsip_endpt_schedule_timer(endpt_, &timer, &delay); if (status != PJ_SUCCESS) ERROR("Could not schedule new timer in pjsip endpoint"); } void SIPVoIPLink::cancelKeepAliveTimer(pj_timer_entry& timer) { - pjsip_endpt_cancel_timer(endpt_, &timer); + pjsip_endpt_cancel_timer(endpt_, &timer); } Call *SIPVoIPLink::newOutgoingCall(const std::string& id, const std::string& toUrl) @@ -1036,7 +1036,7 @@ SIPVoIPLink::dtmfSend(SIPCall *call, char code, const std::string &dtmf) return; } else if (dtmf != SIPAccount::SIPINFO_STR) { - WARN("SIPVoIPLink: Unknown DTMF type %s, defaulting to %s instead", + WARN("SIPVoIPLink: Unknown DTMF type %s, defaulting to %s instead", dtmf.c_str(), SIPAccount::SIPINFO_STR); } // else : dtmf == SIPINFO @@ -1491,11 +1491,11 @@ void SIPVoIPLink::findLocalAddressFromTransport(pjsip_transport *transport, pjsi // Update address and port with active transport if (!transport) { - ERROR("SIPVoIPLink: Transport is NULL in findLocalAddress, using local address %s:%s", addr.c_str(), port.c_str()); + ERROR("SIPVoIPLink: Transport is NULL in findLocalAddress, using local address %s:%s", addr.c_str(), port.c_str()); return; } - // get the transport manager associated with the SIP enpoint + // get the transport manager associated with the SIP enpoint pjsip_tpmgr *tpmgr = pjsip_endpt_get_tpmgr(endpt_); if (!tpmgr) { ERROR("SIPVoIPLink: Transport manager is NULL in findLocalAddress, using local address %s:%s", addr.c_str(), port.c_str()); @@ -1520,9 +1520,9 @@ void SIPVoIPLink::findLocalAddressFromTransport(pjsip_transport *transport, pjsi return; } - // Update local address based on the transport type + // Update local address based on the transport type addr = std::string(localAddress.ptr, localAddress.slen); - + // Fallback on local ip provided by pj_gethostip() if (addr == "0.0.0.0") addr = getSIPLocalIP(); @@ -1851,9 +1851,9 @@ void update_contact_header(struct pjsip_regc_cbparam *param, SIPAccount *account if(siplink == NULL) { ERROR("SIPVoIPLink: Could not find voip link from account"); return; - } + } - pj_pool_t *pool = pj_pool_create(&cp_->factory, "tmp", 512, 512, NULL); + pj_pool_t *pool = pj_pool_create(&cp_->factory, "tmp", 512, 512, NULL); if(pool == NULL) { ERROR("SIPVoIPLink: Could not create temporary memory pool in transport header"); return; @@ -1895,14 +1895,14 @@ void update_contact_header(struct pjsip_regc_cbparam *param, SIPAccount *account updateContact = true; } - size_t foundPort = currentContactHeader.find(recvContactPort); + size_t foundPort = currentContactHeader.find(recvContactPort); if(foundPort == std::string::npos) { updateContact = true; } if(updateContact) { - DEBUG("SIPVoIPLink: Update contact header: %s:%s\n", recvContactHost.c_str(), recvContactPort.c_str()); - account->setContactHeader(recvContactHost, recvContactPort); + DEBUG("SIPVoIPLink: Update contact header: %s:%s\n", recvContactHost.c_str(), recvContactPort.c_str()); + account->setContactHeader(recvContactHost, recvContactPort); siplink->sendRegister(account); } pj_pool_release(pool); @@ -1925,7 +1925,7 @@ void registration_cb(struct pjsip_regc_cbparam *param) if(account->isContactUpdateEnabled()) { update_contact_header(param, account); } - + const pj_str_t *description = pjsip_get_status_text(param->code); if (param->code && description) { diff --git a/daemon/src/sip/sipvoiplink.h b/daemon/src/sip/sipvoiplink.h index d825758087..12d63f7263 100644 --- a/daemon/src/sip/sipvoiplink.h +++ b/daemon/src/sip/sipvoiplink.h @@ -107,7 +107,7 @@ class SIPVoIPLink : public VoIPLink { /** * Abort currently registered timer */ - void cancelKeepAliveTimer(pj_timer_entry& timer); + void cancelKeepAliveTimer(pj_timer_entry& timer); /** * Place a new call diff --git a/daemon/test/sflphoned-sample.yml b/daemon/test/sflphoned-sample.yml index e306032345..942b154122 100644 --- a/daemon/test/sflphoned-sample.yml +++ b/daemon/test/sflphoned-sample.yml @@ -1,26 +1,26 @@ --- accounts: -- alias: +- alias: codecs: 0/ credential: - - password: + - password: realm: '*' - username: - displayName: + username: + displayName: dtmfType: true enable: true - hostname: + hostname: id: IP2IP interface: default - mailbox: + mailbox: port: 5060 - publishAddr: + publishAddr: publishPort: 5060 registrationExpire: true ringtoneEnabled: true ringtonePath: /usr/share/sflphone/ringtones/konga.ul sameasLocal: true - serviceRoute: + serviceRoute: srtp: enable: false keyExchange: sdes @@ -28,22 +28,22 @@ accounts: stunEnabled: false stunServer: stun.sflphone.org tls: - calist: - certificate: - ciphers: + calist: + certificate: + ciphers: enable: false method: TLSv1 - password: - privateKey: + password: + privateKey: requireCertif: true - server: + server: timeout: 2 tlsPort: 5061 verifyClient: true verifyServer: true type: SIP updateContact: false - username: + username: zrtp: displaySas: true displaySasOnce: false @@ -70,13 +70,13 @@ addressbook: business: true enabled: true home: true - list: + list: maxResults: 25 mobile: true photo: true hooks: iax2Enabled: false - numberAddPrefix: + numberAddPrefix: numberEnabled: false sipEnabled: false urlCommand: x-www-browser @@ -98,13 +98,13 @@ audio: devicePlayback: alsa_output.pci-0000_00_1b.0.analog-stereo deviceRecord: alsa_input.pci-0000_00_1b.0.analog-stereo deviceRingtone: alsa_output.pci-0000_00_1b.0.analog-stereo - recordPath: + recordPath: volumeMic: 100 volumeSpkr: 100 shortcuts: - hangUp: - pickUp: - popupWindow: - toggleHold: - togglePickupHangup: + hangUp: + pickUp: + popupWindow: + toggleHold: + togglePickupHangup: ... diff --git a/daemon/test/sippxml/test_1.xml b/daemon/test/sippxml/test_1.xml index 0bdfd4b244..7092639357 100644 --- a/daemon/test/sippxml/test_1.xml +++ b/daemon/test/sippxml/test_1.xml @@ -20,7 +20,7 @@ <!-- --> <scenario name="UAS responder put on hold then hungup"> - + <!-- This scenario implies a second call made by the uac which implies --> <!-- This call to be put on hold automatically --> diff --git a/daemon/test/sippxml/test_2.xml b/daemon/test/sippxml/test_2.xml index 003b0adac8..fa3b9c129e 100644 --- a/daemon/test/sippxml/test_2.xml +++ b/daemon/test/sippxml/test_2.xml @@ -84,7 +84,7 @@ <!-- Here is where the call is put on hold --> <recv request="INVITE" crlf="true"> - </recv> + </recv> <send> <![CDATA[ diff --git a/daemon/test/sippxml/test_3.xml b/daemon/test/sippxml/test_3.xml index 568a97a9e6..bae7eaa2bc 100644 --- a/daemon/test/sippxml/test_3.xml +++ b/daemon/test/sippxml/test_3.xml @@ -7,7 +7,7 @@ <recv request="INVITE" crlf="true"> <action> - <ereg regexp="sendrecv" search_in="body" check_it="true" assign_to="1"/> + <ereg regexp="sendrecv" search_in="body" check_it="true" assign_to="1"/> <log message="Media is [$1]"/> </action> </recv> @@ -184,4 +184,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/daemon/test/sippxml/test_4.xml b/daemon/test/sippxml/test_4.xml index bc4e5636fe..d241bfe3b6 100644 --- a/daemon/test/sippxml/test_4.xml +++ b/daemon/test/sippxml/test_4.xml @@ -64,7 +64,7 @@ <recv response="200" rtd="true"> <action> <ereg regexp="a=rtpmap:0 PCMU/8000" search_in="body" check_it="true" assign_to="1" /> - <log message="Custom header is [$1]"/> + <log message="Custom header is [$1]"/> </action> </recv> diff --git a/daemon/test/siptest.cpp b/daemon/test/siptest.cpp index 2de4da4ad0..06b8f7bf4d 100644 --- a/daemon/test/siptest.cpp +++ b/daemon/test/siptest.cpp @@ -209,7 +209,7 @@ void SIPTest::testTwoOutgoingIpCall() // The second call uses the default user agent scenario std::string secondCallCommand("sipp -sn uas -i 127.0.0.1 -p 5064 -m 1"); - pthread_t firstCallThread; + pthread_t firstCallThread; int rc = pthread_create(&firstCallThread, NULL, sippThread, &firstCallCommand); if (rc) diff --git a/daemon/test/ymlParser.yml b/daemon/test/ymlParser.yml index c63756336f..d5bab9a1c3 100644 --- a/daemon/test/ymlParser.yml +++ b/daemon/test/ymlParser.yml @@ -1,7 +1,7 @@ accounts: - id: 1234 alias: sfl-181 - username: 181 + username: 181 password: sfl-181pw hostname: sflphone.org enable: true @@ -9,7 +9,7 @@ accounts: - id: 2345 alias: sfl-431 - username: 431 + username: 431 password: alexandre hostname: 192.168.50.3 enable: true @@ -21,7 +21,7 @@ accounts: publishaddr: 127.0.0.1 publishport: 5065 sameaslocal: true - resolveonce: false + resolveonce: false codecs: 0/9/110/111/112/ credential: count: 0 diff --git a/gnome/Makefile.am b/gnome/Makefile.am index a80580d35c..ca8bba4dff 100644 --- a/gnome/Makefile.am +++ b/gnome/Makefile.am @@ -19,7 +19,7 @@ appsdir = $(datadir)/applications apps_in_files = sflphone.desktop.in apps_DATA = $(apps_in_files:.desktop.in=.desktop) -DISTCLEANFILES= sflphone.desktop $(GNOME_DOC) +DISTCLEANFILES= sflphone.desktop $(GNOME_DOC) install-data-local: GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(top_srcdir)/$(schema_DATA) diff --git a/gnome/configure.ac b/gnome/configure.ac index 93d2703c98..07b8c0697b 100644 --- a/gnome/configure.ac +++ b/gnome/configure.ac @@ -40,7 +40,7 @@ PKG_CHECK_MODULES(WEBKIT, webkitgtk-3.0) PKG_CHECK_MODULES([CHECK], [check >= 0.9.4]) AC_CONFIG_FILES([ -Makefile +Makefile src/Makefile src/config/Makefile src/dbus/Makefile diff --git a/gnome/doc/C/figures/accounts_security.png b/gnome/doc/C/figures/accounts_security.png index ca3f76c3d9a899589dc29b299a3117ae8ebe110f..11426a93cf93430bbf7e76bc46fb61b625b22363 100644 GIT binary patch delta 14 VcmbPmgR%bx;|4ML&EoPueE=@n1?2z$ delta 16 XcmeCb!8qXt;|4K#Mup8{@;`k5HwXp= diff --git a/gnome/doc/C/figures/conference.png b/gnome/doc/C/figures/conference.png index 91fbc4904ba21ded7969ef39c5ebdbc663f9bb44..92dac72305111027d1ecfbbee5379c02b06901af 100644 GIT binary patch delta 14 VcmX@QoAJnQ#tlVkn~T+g%mFk!1|I+b delta 16 XcmX@IoAKyw#tlVkj0&5J)Pl?bJ&*=J diff --git a/gnome/doc/C/figures/rec-settings.png b/gnome/doc/C/figures/rec-settings.png index c5afcd60aa35d50688dc548a5778a9f7d5ad424e..255e372c59c5c60ec7d7cd969de6a5d72d3b3a0d 100644 GIT binary patch delta 10 RcmeCP?X{h7Y2)SHvH%<y1yle4 delta 12 TcmeCR?X#V5iBVzWrQNasBB=#* diff --git a/gnome/doc/C/figures/record.png b/gnome/doc/C/figures/record.png index dc5635c3d5cd3bcbccdad13c38190dd2fcd3373f..3e884a72da8ad3cb1027346dd5dade2b9a4f1c3a 100644 GIT binary patch delta 14 WcmX>&hw;E1#tqK|H$NAQvH<`!V+N!E delta 16 YcmX>whw<PX#tqK|85K4^6O6I}06ysk!~g&Q diff --git a/gnome/doc/C/figures/transfer.png b/gnome/doc/C/figures/transfer.png index fcb2c4a33a3bdeb8e2a6b762b2e5ca155a35b7eb..8e0628c19889b05a5f169cd0e4ec293a6e8be8d0 100644 GIT binary patch delta 14 WcmX>wmvR4G#tnM*oAvD{@&f=bSOuB@ delta 16 Ycmdl#m+`<{#tnM*j0&6e>?iUA05{47x&QzG diff --git a/gnome/doc/C/sflphone.xml b/gnome/doc/C/sflphone.xml index 233512d272..4065d60977 100644 --- a/gnome/doc/C/sflphone.xml +++ b/gnome/doc/C/sflphone.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ - <!ENTITY app "SFLphone"> - <!ENTITY appversion "0.9.8~rc1"> - <!ENTITY docversion "1.0"> + <!ENTITY app "SFLphone"> + <!ENTITY appversion "0.9.8~rc1"> + <!ENTITY docversion "1.0"> ]> <!-- =============Document Header ============================= --> @@ -26,8 +26,8 @@ --> <abstract role="description"> <para> - SFLphone is an enterprise-class SIP/IAX2 compatible softphone for GNU/Linux, published under the GPLv3 license. - </para> + SFLphone is an enterprise-class SIP/IAX2 compatible softphone for GNU/Linux, published under the GPLv3 license. + </para> </abstract> <publisher> @@ -35,12 +35,12 @@ </publisher> <legalnotice id="legalnotice"> - <para>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation Licence (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this <ulink type="help" url="ghelp:fdl">link</ulink> or in the file COPYING-DOCS distributed with this manual.</para> + <para>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation Licence (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this <ulink type="help" url="ghelp:fdl">link</ulink> or in the file COPYING-DOCS distributed with this manual.</para> <para>This manual is part of a collection of GNOME manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the licence to the manual, as described in section 6 of the licence.</para> - </legalnotice> + </legalnotice> <authorgroup> - <author> + <author> <firstname>Pierre-Luc</firstname> <surname>Bacon</surname> <affiliation> @@ -48,7 +48,7 @@ </affiliation> </author> - <author role="maintainer"> + <author role="maintainer"> <firstname>Emmanuel</firstname> <surname>Milou</surname> <affiliation> @@ -64,7 +64,7 @@ </affiliation> </author> - <author> + <author> <firstname>Alexandre</firstname> <surname>Savard</surname> <affiliation> @@ -74,13 +74,13 @@ </authorgroup> <revhistory> - <revision> + <revision> <revnumber>SFLphone Manual v1.0.1</revnumber> <date>March 2010</date> <revdescription> <para role="author">SFLphone team</para> <para role="publisher">Savoir-faire Linux</para> - <para>Minor changes</para> + <para>Minor changes</para> </revdescription> </revision> @@ -104,137 +104,137 @@ <sect1 id="introduction"> <title>Introduction</title> - <para> - <application>SFLphone</application> is a SIP/IAX2 softphone and VoIP client for GNU/Linux. It aims at being a robust enterprise-class desktop phone and has been designed with a hundred-calls-a-day receptionist in mind. - </para> - <para> - <application>SFLphone</application> is a free software and is distributed under the GNU General Public License version 3. It is developed by Savoir-Faire Linux, a Canadian Linux consulting company, in partnership with the global community. - </para> - <para> - Among the many features we developed for you, we could - highlight the high definition sound (wide-band audio - codecs - speex, G722, Celt), multiple conference call, - audio recording, voicemail notification, and call history. - More than a simple softphone, <application>SFLphone</application> supports advanced enterprise-class call features: unlimited number of calls, call transfer, and on/off hold option. - </para> - <para> - This release also provides advanced security features (secure RTP and TLS). - </para> - - <para> - Besides the native ALSA interface, <application>SFLphone</application> now fully supports PulseAudio sound server so you could experience the great possibilities it offers (sound mixing, per application volume control, ...). - </para> + <para> + <application>SFLphone</application> is a SIP/IAX2 softphone and VoIP client for GNU/Linux. It aims at being a robust enterprise-class desktop phone and has been designed with a hundred-calls-a-day receptionist in mind. + </para> + <para> + <application>SFLphone</application> is a free software and is distributed under the GNU General Public License version 3. It is developed by Savoir-Faire Linux, a Canadian Linux consulting company, in partnership with the global community. + </para> + <para> + Among the many features we developed for you, we could + highlight the high definition sound (wide-band audio + codecs - speex, G722, Celt), multiple conference call, + audio recording, voicemail notification, and call history. + More than a simple softphone, <application>SFLphone</application> supports advanced enterprise-class call features: unlimited number of calls, call transfer, and on/off hold option. + </para> + <para> + This release also provides advanced security features (secure RTP and TLS). + </para> + + <para> + Besides the native ALSA interface, <application>SFLphone</application> now fully supports PulseAudio sound server so you could experience the great possibilities it offers (sound mixing, per application volume control, ...). + </para> </sect1> <sect1 id="getting-started"> - <title>Getting started</title> - <para> - The first time you start up SFLphone, you will be ask to complete a wizard to set up your(s) account(s). This account configuration manager offers you two possibilities: - <itemizedlist> - <listitem> - <para><guilabel>Create a free SIP/IAX2 account on sflphone.org</guilabel></para> - <para>Savoir-faire Linux provides free SIP/IAX2 accounts on an Asterisk server. - By clicking this option, you will be created an account to make test calls. The echo service is available, you may also call other accounts registered to the same server.</para> - <para>By filling out your email address information, you will receive voicemail notifications by email. This information is not mandatory to get your free account.</para> - </listitem> - <listitem> - <para><guilabel>Register an existing SIP or IAX2 account</guilabel></para> - <para>Click there if you already have an account and you want to use it with SFLphone. - You will be prompted to select the account type (SIP or IAX2) and to fill out your account information. <application>SFLphone</application> will then try to register it so you could start using it.</para> - </listitem> - </itemizedlist> - </para> - <para> - You can always access the account creation manager: <menuchoice><guimenu>Edit</guimenu> <guimenuitem>Account creation assistant</guimenuitem></menuchoice>. - </para> + <title>Getting started</title> + <para> + The first time you start up SFLphone, you will be ask to complete a wizard to set up your(s) account(s). This account configuration manager offers you two possibilities: + <itemizedlist> + <listitem> + <para><guilabel>Create a free SIP/IAX2 account on sflphone.org</guilabel></para> + <para>Savoir-faire Linux provides free SIP/IAX2 accounts on an Asterisk server. + By clicking this option, you will be created an account to make test calls. The echo service is available, you may also call other accounts registered to the same server.</para> + <para>By filling out your email address information, you will receive voicemail notifications by email. This information is not mandatory to get your free account.</para> + </listitem> + <listitem> + <para><guilabel>Register an existing SIP or IAX2 account</guilabel></para> + <para>Click there if you already have an account and you want to use it with SFLphone. + You will be prompted to select the account type (SIP or IAX2) and to fill out your account information. <application>SFLphone</application> will then try to register it so you could start using it.</para> + </listitem> + </itemizedlist> + </para> + <para> + You can always access the account creation manager: <menuchoice><guimenu>Edit</guimenu> <guimenuitem>Account creation assistant</guimenuitem></menuchoice>. + </para> </sect1> <sect1 id="accounts"> - <title>Managing your accounts</title> - <para> - <application>SFLphone</application> supports both IAX2 - and SIP accounts. - </para> - - <sect2 id="accounts_basic"> - <title>Basic features</title> - <sect3 id="account_creation"> - <title>Creating a new account</title> - <para>To create a new account, perform the following steps:</para> - <orderedlist> - <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> - <listitem><para>Click on the <guilabel>Add</guilabel> button. Fill out the following information:</para> - <itemizedlist> - <listitem> - <para><guilabel>Alias</guilabel></para> - <para>The name to identify your account in the list. It is not used for the communications</para> - </listitem> - <listitem> - <para><guilabel>Protocol</guilabel></para> - <para>Select SIP or IAX2. The most commonly used protocol is SIP.</para> - </listitem> - <listitem> - <para><guilabel>Host name</guilabel></para> - <para>The name or the IP address of the server you want to register on.</para> - </listitem> - <listitem> - <para><guilabel>User name</guilabel></para> - <para>The name or the extension for your account.</para> - </listitem> - <listitem> - <para><guilabel>Password</guilabel></para> - <para>The password for your account.</para> - </listitem> - <listitem> - <para><guilabel>Voicemail number</guilabel></para> - <para>The number to dial to reach your voicemail. Example: 888, or *97. It will be used as a quick dial button on the main interface.</para> - </listitem> + <title>Managing your accounts</title> + <para> + <application>SFLphone</application> supports both IAX2 + and SIP accounts. + </para> + + <sect2 id="accounts_basic"> + <title>Basic features</title> + <sect3 id="account_creation"> + <title>Creating a new account</title> + <para>To create a new account, perform the following steps:</para> + <orderedlist> + <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> + <listitem><para>Click on the <guilabel>Add</guilabel> button. Fill out the following information:</para> + <itemizedlist> + <listitem> + <para><guilabel>Alias</guilabel></para> + <para>The name to identify your account in the list. It is not used for the communications</para> + </listitem> + <listitem> + <para><guilabel>Protocol</guilabel></para> + <para>Select SIP or IAX2. The most commonly used protocol is SIP.</para> + </listitem> + <listitem> + <para><guilabel>Host name</guilabel></para> + <para>The name or the IP address of the server you want to register on.</para> + </listitem> + <listitem> + <para><guilabel>User name</guilabel></para> + <para>The name or the extension for your account.</para> + </listitem> + <listitem> + <para><guilabel>Password</guilabel></para> + <para>The password for your account.</para> + </listitem> + <listitem> + <para><guilabel>Voicemail number</guilabel></para> + <para>The number to dial to reach your voicemail. Example: 888, or *97. It will be used as a quick dial button on the main interface.</para> + </listitem> </itemizedlist> - </listitem> - <listitem><para>Click the <menuchoice><guimenu>Apply</guimenu></menuchoice> button.</para></listitem> - </orderedlist> - <para>You may now check the state of your account(s). If it is registered, you may now use it to make calls.</para> - <note><para>You can setup as many accounts as you wish.</para></note> - </sect3> - - <sect3 id="account_edit"> - <title>Editing a configured account</title> - <para>To edit an existing account, perform the following steps:</para> - <orderedlist> - <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> - <listitem><para>Select in the list the account you would like to edit, then click on the <guilabel>Edit</guilabel> button.</para></listitem> - <listitem><para>Make your modifications, then click on the <guilabel>Apply</guilabel> button.</para></listitem> - </orderedlist> - </sect3> - - <sect3 id="account_delete"> - <title>Deleting an account</title> - <para>To delete an existing account, perform the following steps:</para> - <orderedlist> - <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> - <listitem><para>Select in the list the account you would like to delete, then click on the <guibutton>Delete</guibutton> button.</para></listitem> - </orderedlist> - </sect3> - - <sect3 id="account_selection"> - <title>Selecting a default account</title> - <para>Since it is possible to have an unlimited number of registered accounts at the same time, which account will be used when making a call ? You can not only set up a default account to be used every time you are making a call, but an entire priority list. To do that, perform the following steps:</para> - <orderedlist> - <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice> to access the accounts list.</para></listitem> - <listitem> - <para>The first account in the account in list will be used as the default account to make calls with. If it is not registered, SFLphone will try to use the second in the list, if still not registered, the third, and so one ...</para> - <para>To reorder the accounts as you wish, select an account and click on the <menuchoice><guimenu>Up</guimenu></menuchoice> or <menuchoice><guimenu>Down</guimenu></menuchoice> button.</para> - </listitem> - </orderedlist> - <para>Note that you also can select an account to make a call with when dialing by right-clicking on it.</para> - </sect3> + </listitem> + <listitem><para>Click the <menuchoice><guimenu>Apply</guimenu></menuchoice> button.</para></listitem> + </orderedlist> + <para>You may now check the state of your account(s). If it is registered, you may now use it to make calls.</para> + <note><para>You can setup as many accounts as you wish.</para></note> + </sect3> + + <sect3 id="account_edit"> + <title>Editing a configured account</title> + <para>To edit an existing account, perform the following steps:</para> + <orderedlist> + <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> + <listitem><para>Select in the list the account you would like to edit, then click on the <guilabel>Edit</guilabel> button.</para></listitem> + <listitem><para>Make your modifications, then click on the <guilabel>Apply</guilabel> button.</para></listitem> + </orderedlist> + </sect3> + + <sect3 id="account_delete"> + <title>Deleting an account</title> + <para>To delete an existing account, perform the following steps:</para> + <orderedlist> + <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> + <listitem><para>Select in the list the account you would like to delete, then click on the <guibutton>Delete</guibutton> button.</para></listitem> + </orderedlist> + </sect3> + + <sect3 id="account_selection"> + <title>Selecting a default account</title> + <para>Since it is possible to have an unlimited number of registered accounts at the same time, which account will be used when making a call ? You can not only set up a default account to be used every time you are making a call, but an entire priority list. To do that, perform the following steps:</para> + <orderedlist> + <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice> to access the accounts list.</para></listitem> + <listitem> + <para>The first account in the account in list will be used as the default account to make calls with. If it is not registered, SFLphone will try to use the second in the list, if still not registered, the third, and so one ...</para> + <para>To reorder the accounts as you wish, select an account and click on the <menuchoice><guimenu>Up</guimenu></menuchoice> or <menuchoice><guimenu>Down</guimenu></menuchoice> button.</para> + </listitem> + </orderedlist> + <para>Note that you also can select an account to make a call with when dialing by right-clicking on it.</para> + </sect3> </sect2> - <sect2 id="account_advanced"> - <title>Advanced features</title> - <para>These features are only available with SIP.</para> - <para>Follow the indications to <link linkend='account_edit'>edit an account</link> and choose the <guimenu>Advanced</guimenu> tab.</para> - <!-- ==== Figure ==== --> + <sect2 id="account_advanced"> + <title>Advanced features</title> + <para>These features are only available with SIP.</para> + <para>Follow the indications to <link linkend='account_edit'>edit an account</link> and choose the <guimenu>Advanced</guimenu> tab.</para> + <!-- ==== Figure ==== --> <figure id="account-advanced-fig"> <title>Advanced features configuration panel</title> <screenshot> @@ -246,45 +246,45 @@ </screenshot> </figure> <!-- ==== End of Figure ==== --> - <sect3 id="accounts_registration"> - <title>Registration</title> - <para>You may set the expires header for a contact.</para> - <para>It basically represents the duration your registration will remain active. If you don't register again within that time, calls will no longer be routed to you. It should not be used as a keepalive mechanism though. The default value is 600 seconds (ten minutes).</para> - <note><para>Some VoIP services requires that you set this value at at least 1600 seconds (e.g. the French VoIP server freephonie.net).</para> - </note> - </sect3> - <sect3 id="accounts_stun"> - <title>Network</title> - <para>This section enables you to set advanced network parameters.</para> - <variablelist> - <varlistentry> - <term><guilabel>Local address</guilabel></term> - <listitem><para>it is initialized to your private/local IP address. Calls will be routed to this address by default.</para></listitem> - </varlistentry> - <varlistentry> - <term><guilabel>Local port</guilabel></term> - <listitem><para>It is initialized to the default SIP port, 5060.</para></listitem> - </varlistentry> - <varlistentry> - <term><guilabel>Set published address and port</guilabel></term> - <listitem> - <itemizedlist> - <listitem><para>Using STUN</para> - <para>If enabled, the core will try to initialize an UDP transport on the mapped address/port number that the NAT (Network Address Translator) has allocated to <application>SFLphone</application>.</para></listitem> - <listitem><para>Same as local parameters</para> - </listitem> - <listitem><para>Manually</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - </variablelist> - </sect3> - </sect2> - <sect2 id="account_security"> - <title>Security features</title> - <para>These features are only available with SIP.</para> - <para>Follow the indications to <link linkend='account_edit'>edit an account</link> and choose the <guimenu>Security</guimenu> tab.</para> + <sect3 id="accounts_registration"> + <title>Registration</title> + <para>You may set the expires header for a contact.</para> + <para>It basically represents the duration your registration will remain active. If you don't register again within that time, calls will no longer be routed to you. It should not be used as a keepalive mechanism though. The default value is 600 seconds (ten minutes).</para> + <note><para>Some VoIP services requires that you set this value at at least 1600 seconds (e.g. the French VoIP server freephonie.net).</para> + </note> + </sect3> + <sect3 id="accounts_stun"> + <title>Network</title> + <para>This section enables you to set advanced network parameters.</para> + <variablelist> + <varlistentry> + <term><guilabel>Local address</guilabel></term> + <listitem><para>it is initialized to your private/local IP address. Calls will be routed to this address by default.</para></listitem> + </varlistentry> + <varlistentry> + <term><guilabel>Local port</guilabel></term> + <listitem><para>It is initialized to the default SIP port, 5060.</para></listitem> + </varlistentry> + <varlistentry> + <term><guilabel>Set published address and port</guilabel></term> + <listitem> + <itemizedlist> + <listitem><para>Using STUN</para> + <para>If enabled, the core will try to initialize an UDP transport on the mapped address/port number that the NAT (Network Address Translator) has allocated to <application>SFLphone</application>.</para></listitem> + <listitem><para>Same as local parameters</para> + </listitem> + <listitem><para>Manually</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + </sect3> + </sect2> + <sect2 id="account_security"> + <title>Security features</title> + <para>These features are only available with SIP.</para> + <para>Follow the indications to <link linkend='account_edit'>edit an account</link> and choose the <guimenu>Security</guimenu> tab.</para> <!-- ==== Figure ==== --> <figure id="account-security-fig"> <title>Security features configuration panel</title> @@ -298,25 +298,25 @@ </figure> <!-- ==== End of Figure ==== --> - <sect3 id="realms"> - <title>Credentials</title> - <para>SFLphone supports multiple realms.</para> - </sect3> + <sect3 id="realms"> + <title>Credentials</title> + <para>SFLphone supports multiple realms.</para> + </sect3> - <sect3 id="security_frame"> - <title>Security </title> - <para>Please refer to the section <link linkend="detailed_security_features">Security features</link> for detailed information about security features.</para> - </sect3> - </sect2> + <sect3 id="security_frame"> + <title>Security </title> + <para>Please refer to the section <link linkend="detailed_security_features">Security features</link> for detailed information about security features.</para> + </sect3> + </sect2> </sect1> <sect1 id="call_features"> - <title>Call features</title> + <title>Call features</title> - <para>The following features are available with both SIP and IAX2 accounts.</para> + <para>The following features are available with both SIP and IAX2 accounts.</para> - <sect2><title>Dialing a number</title> - <!-- ==== Figure ==== --> + <sect2><title>Dialing a number</title> + <!-- ==== Figure ==== --> <figure id="dial-fig"> <title>Dial button</title> <screenshot> @@ -329,9 +329,9 @@ </figure> <!-- ==== End of Figure ==== --> - <para>You may have an unlimited number of calls at the same time, even with different accounts.</para> - <para>To create a new call when you already have a current call, just click on the <guilabel>Dial</guilabel> button. The current call will automatically be put on hold.</para> - <!-- ==== Figure ==== --> + <para>You may have an unlimited number of calls at the same time, even with different accounts.</para> + <para>To create a new call when you already have a current call, just click on the <guilabel>Dial</guilabel> button. The current call will automatically be put on hold.</para> + <!-- ==== Figure ==== --> <figure id="call-second-fig"> <title>Make an other call</title> <screenshot> @@ -344,13 +344,13 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Keyboard shortcut to perform this action: <guimenuitem><accel>NUMPAD</accel></guimenuitem> or almost any keys.</para> + <para>Keyboard shortcut to perform this action: <guimenuitem><accel>NUMPAD</accel></guimenuitem> or almost any keys.</para> - </sect2> - - <sect2><title>Calling a number</title> + </sect2> + + <sect2><title>Calling a number</title> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="call-fig"> <title>Call button</title> <screenshot> @@ -363,12 +363,12 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Keyboard shortcut to perform this action: <guimenuitem><accel>Enter</accel></guimenuitem>.</para> + <para>Keyboard shortcut to perform this action: <guimenuitem><accel>Enter</accel></guimenuitem>.</para> - </sect2> + </sect2> - <sect2><title>Answering a call</title> - <!-- ==== Figure ==== --> + <sect2><title>Answering a call</title> + <!-- ==== Figure ==== --> <figure id="answer-fig"> <title>Answer button</title> <screenshot> @@ -381,11 +381,11 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Keyboard shortcut to perform this action: <guimenuitem><accel>Enter</accel></guimenuitem>.</para> - </sect2> + <para>Keyboard shortcut to perform this action: <guimenuitem><accel>Enter</accel></guimenuitem>.</para> + </sect2> - <sect2><title>Hanging up a call</title> - <!-- ==== Figure ==== --> + <sect2><title>Hanging up a call</title> + <!-- ==== Figure ==== --> <figure id="hangup-fig"> <title>Hangup button</title> <screenshot> @@ -398,12 +398,12 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Keyboard shortcut to perform this action: <guimenuitem><accel>ESC</accel></guimenuitem>.</para> - </sect2> + <para>Keyboard shortcut to perform this action: <guimenuitem><accel>ESC</accel></guimenuitem>.</para> + </sect2> - <sect2><title>Refusing a call</title> + <sect2><title>Refusing a call</title> - <para>When you refuse a call, your caller is automatically redirected to your voicemail box, if applicable.</para> + <para>When you refuse a call, your caller is automatically redirected to your voicemail box, if applicable.</para> <!-- ==== Figure ==== --> <figure id="refuse-fig"> @@ -418,12 +418,12 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Keyboard shortcut to perform this action: <guimenuitem><accel>ESC</accel></guimenuitem>.</para> + <para>Keyboard shortcut to perform this action: <guimenuitem><accel>ESC</accel></guimenuitem>.</para> </sect2> - <sect2><title>Holding on/off a call</title> - <!-- ==== Figure ==== --> + <sect2><title>Holding on/off a call</title> + <!-- ==== Figure ==== --> <figure id="holdon-fig"> <title>Hold on button</title> <screenshot> @@ -435,7 +435,7 @@ </screenshot> </figure> <!-- ==== End of Figure ==== --> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="holdoff-fig"> <title>Hold off button</title> <screenshot> @@ -447,10 +447,10 @@ </screenshot> </figure> <!-- ==== End of Figure ==== --> - </sect2> + </sect2> - <sect2><title>Transferring a call</title> - <!-- ==== Figure ==== --> + <sect2><title>Transferring a call</title> + <!-- ==== Figure ==== --> <figure id="transfer-fig"> <title>Transfer button</title> <screenshot> @@ -463,8 +463,8 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Then type the number you want to transfer the current call to.</para> - <!-- ==== Figure ==== --> + <para>Then type the number you want to transfer the current call to.</para> + <!-- ==== Figure ==== --> <figure id="transfer-go-fig"> <title>Validate the transfer</title> <screenshot> @@ -477,15 +477,15 @@ </figure> <!-- ==== End of Figure ==== --> - <para>And press <guimenuitem><accel>Enter</accel></guimenuitem>. Clicking again on the transfer button cancels the transfer.</para> + <para>And press <guimenuitem><accel>Enter</accel></guimenuitem>. Clicking again on the transfer button cancels the transfer.</para> - </sect2> + </sect2> + + <sect2><title>Record a call</title> - <sect2><title>Record a call</title> - - <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem> <guimenuitem>Audio</guimenuitem></menuchoice> to configure the recordings destination folder.</para> + <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem> <guimenuitem>Audio</guimenuitem></menuchoice> to configure the recordings destination folder.</para> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="rec-settings-fig"> <title>Record settings</title> <screenshot> @@ -512,9 +512,9 @@ <!-- ==== End of Figure ==== --> </sect2> - <sect2><title>Voicemail quick dial</title> - - <caution><para>This feature is available only if you fill out the voicemail number information for your default account.</para></caution> + <sect2><title>Voicemail quick dial</title> + + <caution><para>This feature is available only if you fill out the voicemail number information for your default account.</para></caution> <!-- ==== Figure ==== --> <figure id="voicemail-fig"> @@ -531,88 +531,88 @@ </sect2> - <sect2 id="directip"><title>Direct IP calls</title> - <para>A direct IP call is a call established between two peers without any accounts. When dialing, such a call must prefixed with <guilabel>sip:</guilabel>.</para> + <sect2 id="directip"><title>Direct IP calls</title> + <para>A direct IP call is a call established between two peers without any accounts. When dialing, such a call must prefixed with <guilabel>sip:</guilabel>.</para> - <para>Direct IP calls use SIP protocol to establish communication and RTP to transport data. It is right now not available with IAX2.</para> + <para>Direct IP calls use SIP protocol to establish communication and RTP to transport data. It is right now not available with IAX2.</para> - <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem> <guimenuitem>Direct IP calls</guimenuitem></menuchoice> to configure the advanced security features for this kind of calls.</para> - </sect2> + <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem> <guimenuitem>Direct IP calls</guimenuitem></menuchoice> to configure the advanced security features for this kind of calls.</para> + </sect2> - <sect2 id="conferencecall"><title>Conference calls</title> - <para>SFLphone now supports conference call hosting + <sect2 id="conferencecall"><title>Conference calls</title> + <para>SFLphone now supports conference call hosting integrating server like features in a simple GUI. </para> <para> <itemizedlist> <listitem> - <para><guilabel>Create a conference</guilabel></para> + <para><guilabel>Create a conference</guilabel></para> <para>To host a conference, simply drag and drop one call on another. Additional participants are added the same way, dragging a call on the conference icon. </para> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="drag_n_frop-fig"> - <title>Creating a new conference</title> - <screenshot> + <title>Creating a new conference</title> + <screenshot> <mediaobject> <imageobject> <imagedata fileref="figures/drag_n_drop.png" format="PNG"/> </imageobject> </mediaobject> - </screenshot> + </screenshot> </figure> <!-- ==== End of Figure ==== --> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="conference-fig"> - <title>Conference call</title> - <screenshot> + <title>Conference call</title> + <screenshot> <mediaobject> <imageobject> <imagedata fileref="figures/conference.png" format="PNG"/> </imageobject> </mediaobject> - </screenshot> + </screenshot> </figure> <!-- ==== End of Figure ==== --> </listitem> <listitem> - <para><guilabel>Leave a conference</guilabel></para> + <para><guilabel>Leave a conference</guilabel></para> <para> SFLphone conference model let you leave a conference that you are currently hosting to answer any other incoming communication or even initiate new ones. The conference is not interrupted, double clicking the conference icon let you reintroduce it at any moment. - </para> - <!-- ==== Figure ==== --> + </para> + <!-- ==== Figure ==== --> <figure id="conference_detached-fig"> - <title>Conference detached</title> - <screenshot> + <title>Conference detached</title> + <screenshot> <mediaobject> <imageobject> <imagedata fileref="figures/conference_detached.png" format="PNG"/> </imageobject> </mediaobject> - </screenshot> + </screenshot> </figure> <!-- ==== End of Figure ==== --> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="conference_attached-fig"> - <title>Conference attached</title> - <screenshot> + <title>Conference attached</title> + <screenshot> <mediaobject> <imageobject> <imagedata fileref="figures/conference_attached.png" format="PNG"/> </imageobject> </mediaobject> - </screenshot> + </screenshot> </figure> <!-- ==== End of Figure ==== --> </listitem> <listitem> - <para><guilabel>Multiple conference</guilabel></para> + <para><guilabel>Multiple conference</guilabel></para> <para> SFLphone supports multiple conferences running simultaneously. Two conferences can be joined the same way @@ -630,64 +630,64 @@ </listitem> </itemizedlist> </para> - </sect2> + </sect2> </sect1> <sect1 id="detailed_security_features"> - <title>Security features</title> + <title>Security features</title> <sect2 id="zrtp_srtp"> - <title>SRTP/ZRTP</title> - <sect3 id="zrtp_srtp_definition"> - <title>SRTP and ZRTP, the big picture</title> + <title>SRTP/ZRTP</title> + <sect3 id="zrtp_srtp_definition"> + <title>SRTP and ZRTP, the big picture</title> <para>RTP is the underlying protocol that is used in pair with the widely used SIP protocol to carry voice data. RTP alone does not provide any security features.</para> <para>Details for implementing Secure RTP (SRTP) were described independently in a separate document (RFC). However, in this paper, one aspect was deliberately left unspecified: how should the encryption keys be exchanged between the two parties involved in a secure RTP session ?</para> - + <para>Multiple solutions were proposed to fill in that blank. Among them, are SDES (RFC4568) and ZRTP which are probably the most popular today. For the 0.9.7 release, SFLphone integrates support for Secure RTP through the ZRTP protocol, and SDES is expected to be implemented in the very few next releases.</para> - + <para>As of today, blueprints for ZRTP are still laid out and are recognized under the name "zrtp-draftzimmerman" in the RFC machine. The author of ZRTP is Phil Zimmermann, that same person who brought us PGP. Therefore, it is not surprising that he designed ZRTP as an anti-PKI solution for key exchange.</para> - + <para>ZRTP makes possible for two parties to automatically establish a shared secret in a very simple way from the user's point of view. Indeed under SFLphone no special configuration is needed, apart from enabling the option itself.</para> - + <para>If you want to use ZRTP, please take note that if you are connecting to a PBX, this one must have been configured to support ZRTP. Unfortunately, security for VoIP communications is still young and chances are that your PBX software won't support it.</para> - + <para>This does not mean that you want be able to benefit from ZRTP ! In fact, it turns out that you will be able to use it, as long as the server does not need to decode the RTP stream. This is often the case when the person you are calling to uses a codec that you don't support. In that case, the server will need to transcode the RTP packets and obviously need to be able to handle the ZRTP stream.</para> - + <para>Obviously, if you are calling another user (for example by prefixing the number with "sip:") directly, then this one will have to support ZRTP as well if you want to use it.</para> - </sect3> - - <sect3 id="enabling_srtp"> - <title>Enabling SRTP/ZRTP</title> - <para>To enable ZRTP per account basis, perform the following steps:</para> - <orderedlist> - <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> - <listitem><para>Select in the list the account you would like to edit, then click on the <guilabel>Edit</guilabel> button.</para></listitem> - <listitem><para>Select the <guilabel>Security</guilabel> tab.</para></listitem> - <listitem><para>Select <guilabel>ZRTP</guilabel> from the select box named <guilabel>SRTP Key Exchange</guilabel>.</para></listitem> - </orderedlist> - <!-- ==== Figure ==== --> - <figure id="srtp-enabled-fig"> - <title>Enabling SRTP</title> - <screenshot> - <mediaobject> - <imageobject> - <imagedata fileref="figures/srtp_enabled.png" format="PNG"/> - </imageobject> - </mediaobject> - </screenshot> - </figure> - <!-- ==== End of Figure ==== --> - </sect3> - - <sect3 id="account_zrtp"> + </sect3> + + <sect3 id="enabling_srtp"> + <title>Enabling SRTP/ZRTP</title> + <para>To enable ZRTP per account basis, perform the following steps:</para> + <orderedlist> + <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> + <listitem><para>Select in the list the account you would like to edit, then click on the <guilabel>Edit</guilabel> button.</para></listitem> + <listitem><para>Select the <guilabel>Security</guilabel> tab.</para></listitem> + <listitem><para>Select <guilabel>ZRTP</guilabel> from the select box named <guilabel>SRTP Key Exchange</guilabel>.</para></listitem> + </orderedlist> + <!-- ==== Figure ==== --> + <figure id="srtp-enabled-fig"> + <title>Enabling SRTP</title> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="figures/srtp_enabled.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + </figure> + <!-- ==== End of Figure ==== --> + </sect3> + + <sect3 id="account_zrtp"> <title>Configuration options</title> - + <para>After enabling SRTP, click the <guilabel>Preferences</guilabel> button.</para> - <para>For basic usage, one don't have to worry about that.</para> - - <!-- ==== Figure ==== --> + <para>For basic usage, one don't have to worry about that.</para> + + <!-- ==== Figure ==== --> <figure id="zrtp-options-fig"> <title>ZRTP configuration panel</title> <screenshot> @@ -701,50 +701,50 @@ <!-- ==== End of Figure ==== --> - <variablelist> - <varlistentry> - <term><guilabel>Send Hello Hash in SDP</guilabel></term> - <listitem><para>Selecting this option will cause the program to compute an hash function over the "Hello" packet and send it as an SDP field "zrtp-hash:". The remote end might be interested in getting this value to add an additional layer of protection based on another communication channel. Upon receiving this value, the remote point can compute the hash function on the received hello packet and compare it.</para> - <para>Take note that for 0.9.7, SFLphone does not perform the comparison on its side.</para></listitem> - </varlistentry> - - <varlistentry> - <term><guilabel>Ask user to confirm SAS</guilabel></term> - <listitem><para>The short authentication mechanism is at the heart of the ZRTP protocol. Not requiring the user to manually check the SAS value presents a security risk over Man in the Middle type of attacks.</para> - - <para>Disabling this option will stop the program from prompting the user with the SAS.</para> - - <para>Such an option was motivated to be developed at that time by the the state of the libzrtpcpp library that SFLphone was making use of. It is only from version x.x that this library can cache results of SAS computation between two peers.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><guilabel>Display SAS once for hold event</guilabel></term> - <listitem><para>When call is put on hold, the RTP stream is stopped and reinitiated later. From the ZRTP point of view, this appears as a "new call". Therefore, the SAS will be redisplayed unless this option is selected.</para></listitem> - </varlistentry> - <varlistentry> - <term><guilabel>ZRTP for direct peer-to-peer calls</guilabel></term> - <listitem><para>If you want to use ZRTP for calls that are placed directly to a user (without an intervening PBX), you must enable the option under the "Direct IP Calls" tab in the "configuration" window, available from the "edit" menu.</para> - + <variablelist> + <varlistentry> + <term><guilabel>Send Hello Hash in SDP</guilabel></term> + <listitem><para>Selecting this option will cause the program to compute an hash function over the "Hello" packet and send it as an SDP field "zrtp-hash:". The remote end might be interested in getting this value to add an additional layer of protection based on another communication channel. Upon receiving this value, the remote point can compute the hash function on the received hello packet and compare it.</para> + <para>Take note that for 0.9.7, SFLphone does not perform the comparison on its side.</para></listitem> + </varlistentry> + + <varlistentry> + <term><guilabel>Ask user to confirm SAS</guilabel></term> + <listitem><para>The short authentication mechanism is at the heart of the ZRTP protocol. Not requiring the user to manually check the SAS value presents a security risk over Man in the Middle type of attacks.</para> + + <para>Disabling this option will stop the program from prompting the user with the SAS.</para> + + <para>Such an option was motivated to be developed at that time by the the state of the libzrtpcpp library that SFLphone was making use of. It is only from version x.x that this library can cache results of SAS computation between two peers.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><guilabel>Display SAS once for hold event</guilabel></term> + <listitem><para>When call is put on hold, the RTP stream is stopped and reinitiated later. From the ZRTP point of view, this appears as a "new call". Therefore, the SAS will be redisplayed unless this option is selected.</para></listitem> + </varlistentry> + <varlistentry> + <term><guilabel>ZRTP for direct peer-to-peer calls</guilabel></term> + <listitem><para>If you want to use ZRTP for calls that are placed directly to a user (without an intervening PBX), you must enable the option under the "Direct IP Calls" tab in the "configuration" window, available from the "edit" menu.</para> + <para>Configuration instruction from that point are the same as for configured accounts.</para> - </listitem> - </varlistentry> - </variablelist> + </listitem> + </varlistentry> + </variablelist> </sect3> - </sect2> - <sect2 id="accounts_tls"> + </sect2> + <sect2 id="accounts_tls"> <title>TLS</title> - <para>TODO</para> - </sect2> + <para>TODO</para> + </sect2> </sect1> <sect1 id="audio_interfaces"> - <title>Audio configuration</title> - <para> - ALSA and PulseAudio native interfaces are available. - </para> + <title>Audio configuration</title> + <para> + ALSA and PulseAudio native interfaces are available. + </para> <sect2><title>Pulseaudio</title> <para> @@ -758,44 +758,44 @@ </sect1> <sect1 id="codecs_overview"> - <title>Codecs overview</title> - <para>SFLphone supports several widely used audio codecs:</para> + <title>Codecs overview</title> + <para>SFLphone supports several widely used audio codecs:</para> <para> <itemizedlist> <listitem> <para><guilabel>PCMU/PCMA</guilabel></para> <para> - ITU-T telephony standard PCM formats, 8kHz, 64 - kbit/s, using logarithmic byte compression algorithm. + ITU-T telephony standard PCM formats, 8kHz, 64 + kbit/s, using logarithmic byte compression algorithm. </para> </listitem> <listitem> <para><guilabel>GSM</guilabel></para> <para> - Global System for Mobile communications (GSM) - narrowband 8kHz standard based on linear prediction encoding. + Global System for Mobile communications (GSM) + narrowband 8kHz standard based on linear prediction encoding. </para> </listitem> <listitem> <para><guilabel>G722</guilabel></para> <para> - ITU-T standard wideband 16kHz standard based on linear prediction. + ITU-T standard wideband 16kHz standard based on linear prediction. </para> </listitem> <listitem> <para><guilabel>SPEEX</guilabel></para> <para> - High quality voice encoding/decoding available - in narrowband 8kHz, wideband 16kHz (HD Voice), - and ultra-wideband 32 kHz. - Integrate additional features such as Variable Bit - Rate (VBR) and noise reduction. + High quality voice encoding/decoding available + in narrowband 8kHz, wideband 16kHz (HD Voice), + and ultra-wideband 32 kHz. + Integrate additional features such as Variable Bit + Rate (VBR) and noise reduction. </para> </listitem> <listitem> <para><guilabel>CELT</guilabel></para> <para> - + </para> </listitem> </itemizedlist> @@ -804,92 +804,92 @@ </sect1> <sect1 id="addressbook"> - <title>Address books</title> - <sect2 id="adressbook_enable"> - <title>Enable the address book support</title> - <para>To enable the address book, perform the following steps:</para> + <title>Address books</title> + <sect2 id="adressbook_enable"> + <title>Enable the address book support</title> + <para>To enable the address book, perform the following steps:</para> <orderedlist> - <listitem> - <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. - </para> - </listitem> - <listitem> - <para>Select the <menuchoice><guimenu>Address book</guimenu></menuchoice> tab. - </para> - </listitem> - <listitem> - <para>Check the <guilabel>Use Evolution address books</guilabel> box.</para> - </listitem> + <listitem> + <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. + </para> + </listitem> + <listitem> + <para>Select the <menuchoice><guimenu>Address book</guimenu></menuchoice> tab. + </para> + </listitem> + <listitem> + <para>Check the <guilabel>Use Evolution address books</guilabel> box.</para> + </listitem> + </orderedlist> + <para>Every address books you configured in Evolution will be now available in <application>SFLphone</application>. Please be sure you selected at least one address book.</para> + </sect2> + + <sect2 id="adressbook_options"> + <title>Available options</title> + <para>In <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><guimenuitem>Address book</guimenuitem></menuchoice>, you may select one or all of the following options:</para> + <variablelist> + <varlistentry> + <term><guilabel>Display contact photo if available</guilabel></term> + <listitem><para> + The contact photo will be displayed as a thumbnail beside the phone number. + </para></listitem> + </varlistentry> + <varlistentry> + <term><guilabel>Fields from Evolution's address book</guilabel></term> + <listitem><para> + You may use one or all of these following information from your contact.</para> + <itemizedlist> + <listitem><para>Work phone number</para></listitem> + <listitem><para>Home phone number</para></listitem> + <listitem><para>Mobile phone number</para></listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + </sect2> + + <sect2 id="addressbook_use"> + <title>Using the address book</title> + <orderedlist> + <listitem> + <para>On the toolbar, click on the following button to display the address book window:</para> + + <!-- ==== Figure ==== --> + <figure id="addressbook-fig"> + <title>Address book toolbar button</title> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="figures/addressbook-button.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + </figure> + <!-- ==== End of Figure ==== --> + </listitem> + + <listitem> + <para>Search for a contact</para> + </listitem> + + <listitem> + <para>New entries should have appeared in the window. Double click on it to call the contact. You may also <menuchoice><guimenu>Right click</guimenu><guimenuitem>Edit before calling</guimenuitem></menuchoice> to modify the entry before calling.</para> + </listitem> </orderedlist> - <para>Every address books you configured in Evolution will be now available in <application>SFLphone</application>. Please be sure you selected at least one address book.</para> - </sect2> - - <sect2 id="adressbook_options"> - <title>Available options</title> - <para>In <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><guimenuitem>Address book</guimenuitem></menuchoice>, you may select one or all of the following options:</para> - <variablelist> - <varlistentry> - <term><guilabel>Display contact photo if available</guilabel></term> - <listitem><para> - The contact photo will be displayed as a thumbnail beside the phone number. - </para></listitem> - </varlistentry> - <varlistentry> - <term><guilabel>Fields from Evolution's address book</guilabel></term> - <listitem><para> - You may use one or all of these following information from your contact.</para> - <itemizedlist> - <listitem><para>Work phone number</para></listitem> - <listitem><para>Home phone number</para></listitem> - <listitem><para>Mobile phone number</para></listitem> - </itemizedlist> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2 id="addressbook_use"> - <title>Using the address book</title> - <orderedlist> - <listitem> - <para>On the toolbar, click on the following button to display the address book window:</para> - - <!-- ==== Figure ==== --> - <figure id="addressbook-fig"> - <title>Address book toolbar button</title> - <screenshot> - <mediaobject> - <imageobject> - <imagedata fileref="figures/addressbook-button.png" format="PNG"/> - </imageobject> - </mediaobject> - </screenshot> - </figure> - <!-- ==== End of Figure ==== --> - </listitem> - - <listitem> - <para>Search for a contact</para> - </listitem> - - <listitem> - <para>New entries should have appeared in the window. Double click on it to call the contact. You may also <menuchoice><guimenu>Right click</guimenu><guimenuitem>Edit before calling</guimenuitem></menuchoice> to modify the entry before calling.</para> - </listitem> - </orderedlist> - </sect2> + </sect2> </sect1> <sect1 id="preferences"> - <title>Preferences</title> + <title>Preferences</title> - <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice> to access the configuration panel.</para> - <para>Each section is detailed below.</para> + <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice> to access the configuration panel.</para> + <para>Each section is detailed below.</para> - <sect2> - <title>General</title> - <para>This section provides the user general settings regarding the application.</para> - <sect3><title>Desktop Notifications</title> - <!-- ==== Figure ==== --> + <sect2> + <title>General</title> + <para>This section provides the user general settings regarding the application.</para> + <sect3><title>Desktop Notifications</title> + <!-- ==== Figure ==== --> <figure id="desktop-notif-settings-fig"> <title>Desktop notifications options</title> <screenshot> @@ -903,13 +903,13 @@ <!-- ==== End of Figure ==== --> - <variablelist> + <variablelist> <varlistentry> <term><guilabel>Enable notifications</guilabel></term> <listitem><para> - Both clients use their desktop environment notification system. If checked, you will receive desktop notifications for events such as incoming calls and system messages. - </para> - <figure id="notif-example-fig"> + Both clients use their desktop environment notification system. If checked, you will receive desktop notifications for events such as incoming calls and system messages. + </para> + <figure id="notif-example-fig"> <title>Example of an incoming call notification</title> <screenshot> <mediaobject> @@ -921,12 +921,12 @@ </figure> </listitem> </varlistentry> - <varlistentry> + <varlistentry> <term><guilabel>Enable voicemail notifications</guilabel></term> <listitem><para> - The voicemail notifications are handled separately. If checked, you will be notified with the number of unread voicemails for your accounts. - </para> - <figure id="voicemail-notif-fig"> + The voicemail notifications are handled separately. If checked, you will be notified with the number of unread voicemails for your accounts. + </para> + <figure id="voicemail-notif-fig"> <title>Example of a voicemail notification</title> <screenshot> <mediaobject> @@ -940,11 +940,11 @@ </listitem> </varlistentry> - </variablelist> - </sect3> + </variablelist> + </sect3> - <sect3><title>System Tray Icon</title> - <!-- ==== Figure ==== --> + <sect3><title>System Tray Icon</title> + <!-- ==== Figure ==== --> <figure id="systemtray-settings-fig"> <title>System tray options</title> <screenshot> @@ -958,57 +958,57 @@ <!-- ==== End of Figure ==== --> - <variablelist> + <variablelist> <varlistentry> <term><guilabel>Popup main window on incoming call</guilabel></term> <listitem><para> - If SFLphone is closed on the system tray, pops the main window up on foreground when receiving an incoming call. + If SFLphone is closed on the system tray, pops the main window up on foreground when receiving an incoming call. </para></listitem> </varlistentry> - <varlistentry> + <varlistentry> <term><guilabel>Never popup main window</guilabel></term> <listitem><para> - If SFLphone is closed on the system tray, never pops the main window up on foreground when receiving an incoming call. + If SFLphone is closed on the system tray, never pops the main window up on foreground when receiving an incoming call. </para></listitem> </varlistentry> - <varlistentry> + <varlistentry> <term><guilabel>Hide SFLphone window on startup</guilabel></term> <listitem><para> - On startup, SFLphone will go directly on the system tray. + On startup, SFLphone will go directly on the system tray. </para></listitem> </varlistentry> - </variablelist> + </variablelist> - </sect3> + </sect3> - <sect3><title>Calls history</title> - <!-- ==== Figure ==== --> - <figure id="callshistory-settings-fig"> - <title>Calls history options</title> - <screenshot> - <mediaobject> - <imageobject> - <imagedata fileref="figures/callshistory-settings.png" format="PNG"/> - </imageobject> - </mediaobject> - </screenshot> - </figure> - <!-- ==== End of Figure ==== --> + <sect3><title>Calls history</title> + <!-- ==== Figure ==== --> + <figure id="callshistory-settings-fig"> + <title>Calls history options</title> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="figures/callshistory-settings.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + </figure> + <!-- ==== End of Figure ==== --> - <variablelist> + <variablelist> <varlistentry> <term><guilabel>Keep my history for at least n days</guilabel></term> <listitem><para> - If checked, calls will be kept up to N days in the history. You may select a custom number of days. Do not check it if you don't want to use this feature. + If checked, calls will be kept up to N days in the history. You may select a custom number of days. Do not check it if you don't want to use this feature. </para></listitem> </varlistentry> - </variablelist> - </sect3> + </variablelist> + </sect3> - <sect3><title>Configuration File</title> - <!-- ==== Figure ==== --> + <sect3><title>Configuration File</title> + <!-- ==== Figure ==== --> <figure id="configfile-settings-fig"> <title>Configuration file options</title> <screenshot> @@ -1021,44 +1021,44 @@ </figure> <!-- ==== End of Figure ==== --> - <variablelist> + <variablelist> <varlistentry> <term><guilabel>Store SIP credentials as MD5 hash</guilabel></term> <listitem><para> - If checked, your password information will be encrypted in the configuration file, instead of plain text. + If checked, your password information will be encrypted in the configuration file, instead of plain text. </para></listitem> </varlistentry> </variablelist> - - </sect3> - </sect2> - <sect2> - <title>Audio</title> - <para>TODO</para> - </sect2> + </sect3> + </sect2> - <sect2> - <title>Address book</title> + <sect2> + <title>Audio</title> + <para>TODO</para> + </sect2> + + <sect2> + <title>Address book</title> - <para>Refer to the <link linkend='addressbook'>Address books</link> section for more information.</para> - </sect2> + <para>Refer to the <link linkend='addressbook'>Address books</link> section for more information.</para> + </sect2> - <sect2> - <title>Hooks</title> - <para>TODO</para> - </sect2> + <sect2> + <title>Hooks</title> + <para>TODO</para> + </sect2> - <sect2> - <title>Network</title> - <para>TODO</para> - </sect2> + <sect2> + <title>Network</title> + <para>TODO</para> + </sect2> - <sect2> - <title>Direct IP calls</title> - <para>Refer to the <link linkend='directip'>Direct IP calls</link> section for more information.</para> - </sect2> + <sect2> + <title>Direct IP calls</title> + <para>Refer to the <link linkend='directip'>Direct IP calls</link> section for more information.</para> + </sect2> </sect1> diff --git a/gnome/doc/sflphone.omf.in b/gnome/doc/sflphone.omf.in index ace92a2e53..7e1233aa80 100644 --- a/gnome/doc/sflphone.omf.in +++ b/gnome/doc/sflphone.omf.in @@ -2,7 +2,7 @@ <omf> <resource> <creator> - sflphoneteam@savoirfairelinux.com + sflphoneteam@savoirfairelinux.com </creator> <maintainer> emmanuel.milou@savoirfairelinux.com @@ -26,5 +26,5 @@ <language code="C"/> <relation seriesid="00e1b4a0-74d3-6e38-acf3-04cbb6e855c540"/> <rights type="GNU FDL" license.version="1.1" holder="Savoir-faire Linux Inc"/> - </resource> + </resource> </omf> diff --git a/gnome/man/Makefile.am b/gnome/man/Makefile.am index 5101b6dc40..90a426f5be 100644 --- a/gnome/man/Makefile.am +++ b/gnome/man/Makefile.am @@ -16,7 +16,7 @@ all: $(MANPAGES) SUFFIXES=.pod .1 .pod.1: - $(POD2MAN) --section=$(SECTION) --release=@VERSION@ --center "" $< > $@ + $(POD2MAN) --section=$(SECTION) --release=@VERSION@ --center "" $< > $@ clean-local: rm -rf *.1 diff --git a/gnome/man/README.manpages b/gnome/man/README.manpages index f794a0d257..75f6044095 100644 --- a/gnome/man/README.manpages +++ b/gnome/man/README.manpages @@ -5,7 +5,7 @@ Procedure: - Creating the manual pages under POD format. A template is available in this directory. - Convert the pdo file in a manpage file: pod2man --section=1 --release=$(VERSION) --center "" myapp.pod > myapp.1 - - You are done! You can read the manpage file with: + - You are done! You can read the manpage file with: groff -man -Tascii myapp.1 diff --git a/gnome/man/sflphone-client-gnome.pod b/gnome/man/sflphone-client-gnome.pod index 471c8b7c93..284aad9cc0 100644 --- a/gnome/man/sflphone-client-gnome.pod +++ b/gnome/man/sflphone-client-gnome.pod @@ -4,7 +4,7 @@ sflphone-client-gnome - SIP and IAX2 compatible voice over IP softphone GTK+ cli =head1 SYNOPSIS -sflphone-client-gnome +sflphone-client-gnome =head1 DESCRIPTION diff --git a/gnome/src/Makefile.am b/gnome/src/Makefile.am index bded011856..3e673bfde4 100644 --- a/gnome/src/Makefile.am +++ b/gnome/src/Makefile.am @@ -3,7 +3,7 @@ include ../globals.mak bin_PROGRAMS = sflphone-client-gnome SUBDIRS = config contacts dbus widget icons - + NOFIFY_LIBS = -lnotify X11_LIBS = -lX11 LD_LIBS = -ldl @@ -43,7 +43,7 @@ sflphone_client_gnome_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) $(NOTIFY_C # add symbolic link install-exec-local: echo $(prefix); echo $(bindir); echo $(datadir); echo $(libdir) - cd $(DESTDIR)$(bindir); ln -sf sflphone-client-gnome sflphone + cd $(DESTDIR)$(bindir); ln -sf sflphone-client-gnome sflphone uninstall-local: -test -h $(DESTDIR)$(bindir)/sflphone && rm $(DESTDIR)$(bindir)/sflphone diff --git a/gnome/src/callable_obj.c b/gnome/src/callable_obj.c index d381941927..83449c6490 100644 --- a/gnome/src/callable_obj.c +++ b/gnome/src/callable_obj.c @@ -234,7 +234,7 @@ gchar* get_call_duration(callable_obj_t *obj) return g_strdup_printf("<small>Duration:</small> %.2ld:%.2ld" , duration/60 , duration%60); } -static +static void add_to_hashtable(GHashTable *hashtable, const gchar *key, const gchar *value) { g_hash_table_insert(hashtable, g_strdup(key), g_strdup(value)); diff --git a/gnome/src/config/audioconf.c b/gnome/src/config/audioconf.c index 84d6b42c68..d449d3e51a 100644 --- a/gnome/src/config/audioconf.c +++ b/gnome/src/config/audioconf.c @@ -159,7 +159,7 @@ select_active_output_audio_device() // Select active output device on server gchar **devices = dbus_get_current_audio_devices_index(); - + int currentDeviceIndex = atoi(devices[0]); DEBUG("audio device index for output = %d", currentDeviceIndex); diff --git a/gnome/src/contacts/addressbook.h b/gnome/src/contacts/addressbook.h index 49bcb7cc4c..ce1ad477aa 100644 --- a/gnome/src/contacts/addressbook.h +++ b/gnome/src/contacts/addressbook.h @@ -84,9 +84,9 @@ struct AddrBookHandle { void (*search) (void (*search_cb)(GList *, gpointer), GtkEntry *, AddressBook_Config *); GSList *(*get_books_data)(gchar **); book_data_t *(*get_book_data_by_uid)(gchar *); - void (*set_current_book)(gchar *); + void (*set_current_book)(gchar *); void (*set_search_type)(AddrbookSearchType); - void (*search_cb)(GList *, gpointer); + void (*search_cb)(GList *, gpointer); }; #endif diff --git a/gnome/src/dbus/README b/gnome/src/dbus/README index 963bb0cf5e..6c1c538245 100644 --- a/gnome/src/dbus/README +++ b/gnome/src/dbus/README @@ -8,4 +8,4 @@ These files are generated by dbus-binding-tool using the server's files named *- These files dbus call wrapper functions to simplify access to dbus API. -UPDATE: These files, and { marshaller.c, marshaller.h } are now created by the build system at the compilation time +UPDATE: These files, and { marshaller.c, marshaller.h } are now created by the build system at the compilation time diff --git a/gnome/src/dbus/callmanager-introspec.xml b/gnome/src/dbus/callmanager-introspec.xml index 62535f0602..0682fb319c 100644 --- a/gnome/src/dbus/callmanager-introspec.xml +++ b/gnome/src/dbus/callmanager-introspec.xml @@ -206,7 +206,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join two participants together to create a 3-way conference including the current client.</p> - <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="sel_callID" direction="in"/> <arg type="s" name="drag_callID" direction="in"/> @@ -225,7 +225,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join a new particiant to an existing conference.</p> - <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="callID" direction="in"> <tp:docstring> @@ -304,7 +304,7 @@ conferences. <tp:rationale>To update client status, one should use <tp:member-ref>getParticipantList</tp:member-ref> - with provided conference IDs.</tp:rationale> + with provided conference IDs.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -324,7 +324,7 @@ </arg> </method> - <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> + <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> <tp:docstring> Tells whether or not a call is being recorded. </tp:docstring> @@ -342,7 +342,7 @@ <signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath"> <tp:docstring> - Once after starting recording for the first time, this signal is emited to + Once after starting recording for the first time, this signal is emited to provide the recorded file path to client application. </tp:docstring> <arg type="s" name="callID" /> @@ -383,7 +383,7 @@ <method name="getCallList" tp:name-for-bindings="getCallList"> <tp:docstring> Get the list of active calls. - <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> + <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -455,7 +455,7 @@ <signal name="incomingMessage" tp:name-for-bindings="incomingMessage"> <tp:docstring> - Notify clients that a new text message has been received. + Notify clients that a new text message has been received. </tp:docstring> <arg type="s" name="callID" /> <arg type="s" name="from" /> @@ -464,7 +464,7 @@ <signal name="callStateChanged" tp:name-for-bindings="callStateChanged"> <tp:docstring> - <p>Notify of a change in a call state.</p> + <p>Notify of a change in a call state.</p> <p>The client must subscribe to this signal.</p> </tp:docstring> <arg type="s" name="callID"> @@ -474,7 +474,7 @@ </arg> <arg type="s" name="state" > <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>INCOMING: Initial state of incoming calls</li> <li>RINGING: Initial state of received outgoing call</li> @@ -502,7 +502,7 @@ </arg> <arg type="s" name="state"> <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>ACTIVE_ATTACHED: SFLphone user is participating to this conference</li> @@ -636,7 +636,7 @@ The SIP or IAX2 message code </tp:docstring> </arg> - </signal> + </signal> <signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify"> <tp:docstring> @@ -656,7 +656,7 @@ <signal name="volumeChanged" tp:name-for-bindings="volumeChanged"> <tp:docstring> - <p>Notify clients of a volume level change.</p> + <p>Notify clients of a volume level change.</p> <p>This signal occurs only if ALSA is enabled since Pulseaudio streams are managed externally. </p> </tp:docstring> <arg type="s" name="device"> @@ -692,7 +692,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Signal sent on SDES session success. Media transmission is encripted - for this call only. It does not apply for a conference.</p> + for this call only. It does not apply for a conference.</p> <p>A conference can be considered to be secured if and only if each participant is secured.</p> </tp:docstring> @@ -702,7 +702,7 @@ <signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff"> <tp:added version="0.9.7"/> <tp:docstring> - <p>Sinal sent to notify that SDES session failed.</p> + <p>Sinal sent to notify that SDES session failed.</p> <p>Media transmission is not encrypted.</p> </tp:docstring> <arg type="s" name="callID" /> diff --git a/gnome/src/dbus/shortcutsmanager-introspec.xml b/gnome/src/dbus/shortcutsmanager-introspec.xml index 89d39efb19..c6491e2d99 100644 --- a/gnome/src/dbus/shortcutsmanager-introspec.xml +++ b/gnome/src/dbus/shortcutsmanager-introspec.xml @@ -1,32 +1,32 @@ <?xml version="1.0" ?> <node name="/org/sflphone/SFLphone"> <interface name="org.sflphone.SFLphone.ContactManager"> - + <!-- Contacts related methods --> - + <!-- Called by the client to get all saved contacts --> <method name="getContacts"> <arg type="s" name="accountID" direction="in"/> <arg type="a{ss}" name="details" direction="out"/> </method> - + <!-- Called by the client to save all local contacts --> <method name="setContacts"> <arg type="s" name="accountID" direction="in"/> <arg type="a{ss}" name="details" direction="in"/> </method> - + <!-- /////////////////////// --> <!-- Presence related methods --> - + <!-- Called by the client to set its new presence status --> <method name="setPresence"> <arg type="s" name="accountID" direction="in"/> <arg type="s" name="presence" direction="in"/> <arg type="s" name="additionalInfo" direction="in"/> </method> - + <!-- Called by the daemon when a contact presence changes --> <method name="setContactPresence"> <arg type="s" name="accountID" direction="in"/> diff --git a/gnome/src/icons/README b/gnome/src/icons/README index 064443d612..04c2bdcef1 100644 --- a/gnome/src/icons/README +++ b/gnome/src/icons/README @@ -1,6 +1,6 @@ To add a svg icon as a stock icon: -1. Dump the raw data from the svg: +1. Dump the raw data from the svg: gdk-pixbuf-csource --raw --name=gnome_stock_example example.svg 2. Copy the output in the file sflphone-client-gnome/src/icons/pixmaps_data.h @@ -11,4 +11,4 @@ gdk-pixbuf-csource --raw --name=gnome_stock_example example.svg 4. Add the icon to the factory. In sflphone-client-gnome/src/icons/icon_factory.c, function register_sflphone_stock_icons, add the line: add_icon (factory, GTK_STOCK_EXAMPLE, gnome_stock_example, GTK_ICON_SIZE_SMALL_TOOLBAR) - You may now use this icon in the code just like a GTK stock icon, the stock id being GTK_STOCK_EXAMPLE. + You may now use this icon in the code just like a GTK stock icon, the stock id being GTK_STOCK_EXAMPLE. diff --git a/gnome/src/unused.h b/gnome/src/unused.h index 24a0ac2e40..94aed5f1c5 100644 --- a/gnome/src/unused.h +++ b/gnome/src/unused.h @@ -30,6 +30,6 @@ #ifndef UNUSED_H_ -#define UNUSED __attribute__((__unused__)) +#define UNUSED __attribute__((__unused__)) #endif /* UNUSED_H_ */ diff --git a/kde/.gitignore b/kde/.gitignore index 4d847ba956..f7fbb2166c 100755 --- a/kde/.gitignore +++ b/kde/.gitignore @@ -11,7 +11,7 @@ doc/index.cache.bz2 src/sflphone-client-kde src/sflphone-client-kde.shell #po/ -#po/* +#po/* #doc/ #man/ #data/ diff --git a/kde/Doxyfile b/kde/Doxyfile index acc49e116b..374a8da38c 100755 --- a/kde/Doxyfile +++ b/kde/Doxyfile @@ -6,7 +6,7 @@ DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = sflphone_kde PROJECT_NUMBER = 0.1 -OUTPUT_DIRECTORY = +OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English BRIEF_MEMBER_DESC = YES @@ -26,7 +26,7 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = YES STRIP_FROM_PATH = /home/jquentin/ -STRIP_FROM_INC_PATH = +STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO QT_AUTOBRIEF = NO @@ -35,7 +35,7 @@ DETAILS_AT_TOP = NO INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 8 -ALIASES = +ALIASES = OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO OPTIMIZE_FOR_FORTRAN = NO @@ -74,13 +74,13 @@ GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = +ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = NO SHOW_FILES = YES SHOW_NAMESPACES = YES -FILE_VERSION_FILTER = +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -90,7 +90,7 @@ WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = +WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- @@ -154,16 +154,16 @@ FILE_PATTERNS = *.c \ *.xpm \ *.dox RECURSIVE = yes -EXCLUDE = +EXCLUDE = EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = -EXAMPLE_PATH = +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = EXAMPLE_PATTERNS = * EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing @@ -181,29 +181,29 @@ VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = +IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO GENERATE_DOCSET = NO DOCSET_FEEDNAME = "Doxygen generated docs" DOCSET_BUNDLE_ID = org.doxygen.Project HTML_DYNAMIC_SECTIONS = NO -CHM_FILE = -HHC_LOCATION = -QTHELP_FILE = -QTHELP_CONFIG = -DOXYGEN2QTHELP_LOC = +CHM_FILE = +HHC_LOCATION = +QTHELP_FILE = +QTHELP_CONFIG = +DOXYGEN2QTHELP_LOC = GENERATE_CHI = NO -CHM_INDEX_ENCODING = +CHM_INDEX_ENCODING = BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO @@ -220,8 +220,8 @@ LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = +EXTRA_PACKAGES = +LATEX_HEADER = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = NO @@ -233,8 +233,8 @@ GENERATE_RTF = NO RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- @@ -247,8 +247,8 @@ MAN_LINKS = NO #--------------------------------------------------------------------------- GENERATE_XML = yes XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = +XML_SCHEMA = +XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output @@ -260,36 +260,36 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = +PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- -# Configuration options related to the preprocessor +# Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- -# Configuration::additions related to external references +# Configuration::additions related to external references #--------------------------------------------------------------------------- -TAGFILES = +TAGFILES = GENERATE_TAGFILE = sflphone_kde.tag ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES -MSCGEN_PATH = +MSCGEN_PATH = HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO DOT_FONTNAME = FreeSans -DOT_FONTPATH = +DOT_FONTPATH = CLASS_GRAPH = YES COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES @@ -302,8 +302,8 @@ CALLER_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = +DOT_PATH = +DOTFILE_DIRS = DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 1000 DOT_TRANSPARENT = YES @@ -311,6 +311,6 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- -# Configuration::additions related to the search engine +# Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO diff --git a/kde/cmake/FindQt4.cmake b/kde/cmake/FindQt4.cmake index e05949f552..25aab9aab4 100755 --- a/kde/cmake/FindQt4.cmake +++ b/kde/cmake/FindQt4.cmake @@ -1,13 +1,13 @@ # - Find QT 4 -# Original module modified by Jeremy Quentin +# Original module modified by Jeremy Quentin # Function qt4_add_dbus_interface modified to take compile properties. # This module can be used to find Qt4. # The most important issue is that the Qt4 qmake is available via the system path. # This qmake is then used to detect basically everything else. -# This module defines a number of key variables and macros. -# First is QT_USE_FILE which is the path to a CMake file that can be included -# to compile Qt 4 applications and libraries. By default, the QtCore and QtGui -# libraries are loaded. This behavior can be changed by setting one or more +# This module defines a number of key variables and macros. +# First is QT_USE_FILE which is the path to a CMake file that can be included +# to compile Qt 4 applications and libraries. By default, the QtCore and QtGui +# libraries are loaded. This behavior can be changed by setting one or more # of the following variables to true before doing INCLUDE(${QT_USE_FILE}): # QT_DONT_USE_QTCORE # QT_DONT_USE_QTGUI @@ -47,12 +47,12 @@ # # There are also some files that need processing by some Qt tools such as moc # and uic. Listed below are macros that may be used to process those files. -# +# # macro QT4_WRAP_CPP(outfiles inputfile ... OPTIONS ...) # create moc code from a list of files containing Qt class with -# the Q_OBJECT declaration. Per-direcotry preprocessor definitions +# the Q_OBJECT declaration. Per-direcotry preprocessor definitions # are also added. Options may be given to moc, such as those found -# when executing "moc -help". +# when executing "moc -help". # # macro QT4_WRAP_UI(outfiles inputfile ... OPTIONS ...) # create code from a list of Qt designer ui files. @@ -72,23 +72,23 @@ # macro QT4_AUTOMOC(sourcefile1 sourcefile2 ... ) # This macro is still experimental. # It can be used to have moc automatically handled. -# So if you have the files foo.h and foo.cpp, and in foo.h a +# So if you have the files foo.h and foo.cpp, and in foo.h a # a class uses the Q_OBJECT macro, moc has to run on it. If you don't # want to use QT4_WRAP_CPP() (which is reliable and mature), you can insert # #include "foo.moc" # in foo.cpp and then give foo.cpp as argument to QT4_AUTOMOC(). This will the # scan all listed files at cmake-time for such included moc files and if it finds -# them cause a rule to be generated to run moc at build time on the +# them cause a rule to be generated to run moc at build time on the # accompanying header file foo.h. # If a source file has the SKIP_AUTOMOC property set it will be ignored by this macro. # # macro QT4_ADD_DBUS_INTERFACE(outfiles interface basename) -# create a the interface header and implementation files with the -# given basename from the given interface xml file and add it to +# create a the interface header and implementation files with the +# given basename from the given interface xml file and add it to # the list of sources # # macro QT4_ADD_DBUS_INTERFACES(outfiles inputfile ... ) -# create the interface header and implementation files +# create the interface header and implementation files # for all listed interface xml files # the name will be automatically determined from the name of the xml file # @@ -101,18 +101,18 @@ # # macro QT4_GENERATE_DBUS_INTERFACE( header [interfacename] ) # generate the xml interface file from the given header. -# If the optional argument interfacename is omitted, the name of the +# If the optional argument interfacename is omitted, the name of the # interface file is constructed from the basename of the header with # the suffix .xml appended. # -# macro QT4_CREATE_TRANSLATION( qm_files directories ... sources ... +# macro QT4_CREATE_TRANSLATION( qm_files directories ... sources ... # ts_files ... OPTIONS ...) # out: qm_files # in: directories sources ts_files # options: flags to pass to lupdate, such as -extensions to specify # extensions for a directory scan. # generates commands to create .ts (vie lupdate) and .qm -# (via lrelease) - files from directories and/or sources. The ts files are +# (via lrelease) - files from directories and/or sources. The ts files are # created and/or updated in the source tree (unless given with full paths). # The qm files are generated in the build tree. # Updating the translations can be done by adding the qm_files @@ -166,33 +166,33 @@ # The QT_USE_FILE will also define QT_DEBUG and QT_NO_DEBUG # to fit your current build type. Those are not contained # in QT_DEFINITIONS. -# -# QT_INCLUDES List of paths to all include directories of +# +# QT_INCLUDES List of paths to all include directories of # Qt4 QT_INCLUDE_DIR and QT_QTCORE_INCLUDE_DIR are # always in this variable even if NOTFOUND, # all other INCLUDE_DIRS are # only added if they are found. # You do not need to use this if you include QT_USE_FILE. -# +# # # Include directories for the Qt modules are listed here. # You do not need to use these variables if you include QT_USE_FILE. # # QT_INCLUDE_DIR Path to "include" of Qt4 -# QT_QT_INCLUDE_DIR Path to "include/Qt" -# QT_QT3SUPPORT_INCLUDE_DIR Path to "include/Qt3Support" -# QT_QTASSISTANT_INCLUDE_DIR Path to "include/QtAssistant" -# QT_QTCORE_INCLUDE_DIR Path to "include/QtCore" -# QT_QTDESIGNER_INCLUDE_DIR Path to "include/QtDesigner" +# QT_QT_INCLUDE_DIR Path to "include/Qt" +# QT_QT3SUPPORT_INCLUDE_DIR Path to "include/Qt3Support" +# QT_QTASSISTANT_INCLUDE_DIR Path to "include/QtAssistant" +# QT_QTCORE_INCLUDE_DIR Path to "include/QtCore" +# QT_QTDESIGNER_INCLUDE_DIR Path to "include/QtDesigner" # QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR Path to "include/QtDesigner" -# QT_QTDBUS_INCLUDE_DIR Path to "include/QtDBus" -# QT_QTGUI_INCLUDE_DIR Path to "include/QtGui" -# QT_QTMOTIF_INCLUDE_DIR Path to "include/QtMotif" -# QT_QTNETWORK_INCLUDE_DIR Path to "include/QtNetwork" -# QT_QTNSPLUGIN_INCLUDE_DIR Path to "include/QtNsPlugin" -# QT_QTOPENGL_INCLUDE_DIR Path to "include/QtOpenGL" -# QT_QTSQL_INCLUDE_DIR Path to "include/QtSql" -# QT_QTXML_INCLUDE_DIR Path to "include/QtXml" +# QT_QTDBUS_INCLUDE_DIR Path to "include/QtDBus" +# QT_QTGUI_INCLUDE_DIR Path to "include/QtGui" +# QT_QTMOTIF_INCLUDE_DIR Path to "include/QtMotif" +# QT_QTNETWORK_INCLUDE_DIR Path to "include/QtNetwork" +# QT_QTNSPLUGIN_INCLUDE_DIR Path to "include/QtNsPlugin" +# QT_QTOPENGL_INCLUDE_DIR Path to "include/QtOpenGL" +# QT_QTSQL_INCLUDE_DIR Path to "include/QtSql" +# QT_QTXML_INCLUDE_DIR Path to "include/QtXml" # QT_QTSVG_INCLUDE_DIR Path to "include/QtSvg" # QT_QTSCRIPT_INCLUDE_DIR Path to "include/QtScript" # QT_QTTEST_INCLUDE_DIR Path to "include/QtTest" @@ -201,11 +201,11 @@ # QT_QTWEBKIT_INCLUDE_DIR Path to "include/QtWebKit" # QT_QTXMLPATTERNS_INCLUDE_DIR Path to "include/QtXmlPatterns" # QT_PHONON_INCLUDE_DIR Path to "include/phonon" -# +# # QT_LIBRARY_DIR Path to "lib" of Qt4 -# +# # QT_PLUGINS_DIR Path to "plugins" for Qt4 -# +# # # The Qt toolkit may contain both debug and release libraries. # In that case, the following library variables will contain both. @@ -235,7 +235,7 @@ # QT_QTWEBKIT_LIBRARY The QtWebKit library # QT_QTXMLPATTERNS_LIBRARY The QtXmlPatterns library # QT_PHONON_LIBRARY The phonon library -# +# # also defined, but NOT for general use are # QT_MOC_EXECUTABLE Where to find the moc tool. # QT_UIC_EXECUTABLE Where to find the uic tool. @@ -245,20 +245,20 @@ # QT_DBUSXML2CPP_EXECUTABLE Where to find the qdbusxml2cpp tool. # QT_LUPDATE_EXECUTABLE Where to find the lupdate tool. # QT_LRELEASE_EXECUTABLE Where to find the lrelease tool. -# +# # QT_DOC_DIR Path to "doc" of Qt4 # QT_MKSPECS_DIR Path to "mkspecs" of Qt4 # # -# These are around for backwards compatibility +# These are around for backwards compatibility # they will be set # QT_WRAP_CPP Set true if QT_MOC_EXECUTABLE is found # QT_WRAP_UI Set true if QT_UIC_EXECUTABLE is found -# +# # These variables do _NOT_ have any effect anymore (compared to FindQt.cmake) # QT_MT_REQUIRED Qt4 is now always multithreaded -# -# These variables are set to "" Because Qt structure changed +# +# These variables are set to "" Because Qt structure changed # (They make no sense in Qt4) # QT_QT_LIBRARY Qt-Library is now split @@ -294,13 +294,13 @@ MACRO(QT_QUERY_QMAKE outvar invar) # information. Use the same variable for both stdout and stderr # to make sure we get the output on all platforms. EXECUTE_PROCESS(COMMAND ${QT_QMAKE_EXECUTABLE} - WORKING_DIRECTORY + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmpQmake OUTPUT_VARIABLE _qmake_query_output RESULT_VARIABLE _qmake_result ERROR_VARIABLE _qmake_query_output ) - - FILE(REMOVE_RECURSE + + FILE(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmpQmake") IF(_qmake_result) @@ -324,7 +324,7 @@ FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake qmake4 qmake-qt4 PATHS IF (QT_QMAKE_EXECUTABLE) SET(QT4_QMAKE_FOUND FALSE) - + EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION) # check for qt3 qmake and then try and find qmake4 or qmake-qt4 in the path @@ -336,7 +336,7 @@ IF (QT_QMAKE_EXECUTABLE) $ENV{QTDIR}/bin ) IF(QT_QMAKE_EXECUTABLE) - EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} + EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION) ENDIF(QT_QMAKE_EXECUTABLE) ENDIF("${QTVERSION}" MATCHES "Unknown") @@ -401,7 +401,7 @@ IF (QT4_QMAKE_FOUND) MESSAGE("Warning: ${QT_LIBRARY_DIR_TMP} does NOT exist, Qt must NOT be installed correctly.") ENDIF(EXISTS "${QT_LIBRARY_DIR_TMP}") ENDIF(NOT QT_LIBRARY_DIR) - + IF (APPLE) IF (EXISTS ${QT_LIBRARY_DIR}/QtCore.framework) SET(QT_USE_FRAMEWORKS ON @@ -410,10 +410,10 @@ IF (QT4_QMAKE_FOUND) SET(QT_USE_FRAMEWORKS OFF CACHE BOOL "Set to ON if Qt build uses frameworks.") ENDIF (EXISTS ${QT_LIBRARY_DIR}/QtCore.framework) - + MARK_AS_ADVANCED(QT_USE_FRAMEWORKS) ENDIF (APPLE) - + # ask qmake for the binary dir IF (QT_LIBRARY_DIR AND NOT QT_BINARY_DIR) EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} @@ -427,8 +427,8 @@ IF (QT4_QMAKE_FOUND) # ask qmake for the include dir IF (QT_LIBRARY_DIR AND NOT QT_HEADERS_DIR) EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} - ARGS "-query QT_INSTALL_HEADERS" - OUTPUT_VARIABLE qt_headers ) + ARGS "-query QT_INSTALL_HEADERS" + OUTPUT_VARIABLE qt_headers ) # make sure we have / and not \ as qmake gives on windows FILE(TO_CMAKE_PATH "${qt_headers}" qt_headers) SET(QT_HEADERS_DIR ${qt_headers} CACHE INTERNAL "") @@ -589,9 +589,9 @@ IF (QT4_QMAKE_FOUND) # Set QT_QTMOTIF_INCLUDE_DIR IF(Q_WS_X11) - FIND_PATH(QT_QTMOTIF_INCLUDE_DIR QtMotif - PATHS - ${QT_INCLUDE_DIR}/QtMotif + FIND_PATH(QT_QTMOTIF_INCLUDE_DIR QtMotif + PATHS + ${QT_INCLUDE_DIR}/QtMotif NO_DEFAULT_PATH ) ENDIF(Q_WS_X11) @@ -666,7 +666,7 @@ IF (QT4_QMAKE_FOUND) ${QT_LIBRARY_DIR}/QtDBus.framework/Headers NO_DEFAULT_PATH ) - + # Set QT_QTASSISTANTCLIENT_INCLUDE_DIR FIND_PATH(QT_QTASSISTANTCLIENT_INCLUDE_DIR QAssistantClient PATHS @@ -674,7 +674,7 @@ IF (QT4_QMAKE_FOUND) ${QT_LIBRARY_DIR}/QtAssistant.framework/Headers NO_DEFAULT_PATH ) - + # Set QT_QTHELP_INCLUDE_DIR FIND_PATH(QT_QTHELP_INCLUDE_DIR QtHelp PATHS @@ -682,7 +682,7 @@ IF (QT4_QMAKE_FOUND) ${QT_LIBRARY_DIR}/QtHelp.framework/Headers NO_DEFAULT_PATH ) - + # Set QT_QTWEBKIT_INCLUDE_DIR FIND_PATH(QT_QTWEBKIT_INCLUDE_DIR QtWebKit PATHS @@ -690,7 +690,7 @@ IF (QT4_QMAKE_FOUND) ${QT_LIBRARY_DIR}/QtWebKit.framework/Headers NO_DEFAULT_PATH ) - + # Set QT_QTXMLPATTERNS_INCLUDE_DIR FIND_PATH(QT_QTXMLPATTERNS_INCLUDE_DIR QtXmlPatterns PATHS @@ -698,7 +698,7 @@ IF (QT4_QMAKE_FOUND) ${QT_LIBRARY_DIR}/QtXmlPatterns.framework/Headers NO_DEFAULT_PATH ) - + # Set QT_PHONON_INCLUDE_DIR FIND_PATH(QT_PHONON_INCLUDE_DIR phonon PATHS @@ -778,7 +778,7 @@ IF (QT4_QMAKE_FOUND) FIND_LIBRARY(QT_QTSCRIPT_LIBRARY_DEBUG NAMES QtScript_debug QtScriptd QtScriptd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) IF( NOT QT_QTCORE_LIBRARY_DEBUG AND NOT QT_QTCORE_LIBRARY_RELEASE ) - + # try dropping a hint if trying to use Visual Studio with Qt built by mingw IF(QT_LIBRARY_DIR AND MSVC) IF(EXISTS ${QT_LIBRARY_DIR}/libqtmain.a) @@ -810,7 +810,7 @@ IF (QT4_QMAKE_FOUND) FIND_LIBRARY(QT_QTMAIN_LIBRARY_DEBUG NAMES qtmaind PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) ENDIF(WIN32) - + # Set QT_QTASSISTANTCLIENT_LIBRARY FIND_LIBRARY(QT_QTASSISTANTCLIENT_LIBRARY_RELEASE NAMES QtAssistantClient QtAssistantClient4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) FIND_LIBRARY(QT_QTASSISTANTCLIENT_LIBRARY_DEBUG NAMES QtAssistantClient_debug QtAssistantClientd QtAssistantClientd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) @@ -832,7 +832,7 @@ IF (QT4_QMAKE_FOUND) # Set QT_QTXMLPATTERNS_LIBRARY FIND_LIBRARY(QT_QTXMLPATTERNS_LIBRARY_RELEASE NAMES QtXmlPatterns QtXmlPatterns4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) FIND_LIBRARY(QT_QTXMLPATTERNS_LIBRARY_DEBUG NAMES QtXmlPatterns_debug QtXmlPatternsd QtXmlPatternsd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) - + # Set QT_PHONON_LIBRARY FIND_LIBRARY(QT_PHONON_LIBRARY_RELEASE NAMES phonon phonon4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) FIND_LIBRARY(QT_PHONON_LIBRARY_DEBUG NAMES phonon_debug phonond phonond4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) @@ -891,7 +891,7 @@ IF (QT4_QMAKE_FOUND) ENDMACRO (_QT4_ADJUST_LIB_VARS) - # Set QT_xyz_LIBRARY variable and add + # Set QT_xyz_LIBRARY variable and add # library include path to QT_INCLUDES _QT4_ADJUST_LIB_VARS(QTCORE) _QT4_ADJUST_LIB_VARS(QTGUI) @@ -923,11 +923,11 @@ IF (QT4_QMAKE_FOUND) IF(WIN32) _QT4_ADJUST_LIB_VARS(QTMAIN) ENDIF(WIN32) - + ####################################### # - # Check the executables of Qt + # Check the executables of Qt # ( moc, uic, rcc ) # ####################################### @@ -938,15 +938,15 @@ IF (QT4_QMAKE_FOUND) QT_QUERY_QMAKE(QT_UIC_EXECUTABLE_INTERNAL "QMAKE_UIC") # make sure we have / and not \ as qmake gives on windows - FILE(TO_CMAKE_PATH + FILE(TO_CMAKE_PATH "${QT_MOC_EXECUTABLE_INTERNAL}" QT_MOC_EXECUTABLE_INTERNAL) # make sure we have / and not \ as qmake gives on windows - FILE(TO_CMAKE_PATH + FILE(TO_CMAKE_PATH "${QT_UIC_EXECUTABLE_INTERNAL}" QT_UIC_EXECUTABLE_INTERNAL) - SET(QT_MOC_EXECUTABLE + SET(QT_MOC_EXECUTABLE ${QT_MOC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The moc executable") - SET(QT_UIC_EXECUTABLE + SET(QT_UIC_EXECUTABLE ${QT_UIC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The uic executable") FIND_PROGRAM(QT_UIC3_EXECUTABLE @@ -955,19 +955,19 @@ IF (QT4_QMAKE_FOUND) NO_DEFAULT_PATH ) - FIND_PROGRAM(QT_RCC_EXECUTABLE + FIND_PROGRAM(QT_RCC_EXECUTABLE NAMES rcc PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH ) - FIND_PROGRAM(QT_DBUSCPP2XML_EXECUTABLE + FIND_PROGRAM(QT_DBUSCPP2XML_EXECUTABLE NAMES qdbuscpp2xml PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH ) - FIND_PROGRAM(QT_DBUSXML2CPP_EXECUTABLE + FIND_PROGRAM(QT_DBUSXML2CPP_EXECUTABLE NAMES qdbusxml2cpp PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH @@ -1013,15 +1013,15 @@ IF (QT4_QMAKE_FOUND) IF ("${_currentArg}" STREQUAL "OPTIONS") SET(_QT4_DOING_OPTIONS TRUE) ELSE ("${_currentArg}" STREQUAL "OPTIONS") - IF(_QT4_DOING_OPTIONS) + IF(_QT4_DOING_OPTIONS) LIST(APPEND ${_qt4_options} "${_currentArg}") ELSE(_QT4_DOING_OPTIONS) LIST(APPEND ${_qt4_files} "${_currentArg}") ENDIF(_QT4_DOING_OPTIONS) ENDIF ("${_currentArg}" STREQUAL "OPTIONS") - ENDFOREACH(_currentArg) + ENDFOREACH(_currentArg) ENDMACRO (QT4_EXTRACT_OPTIONS) - + # macro used to create the names of output files preserving relative dirs MACRO (QT4_MAKE_OUTPUT_FILE infile prefix ext outfile ) STRING(LENGTH ${CMAKE_CURRENT_BINARY_DIR} _binlength) @@ -1050,7 +1050,7 @@ IF (QT4_QMAKE_FOUND) FOREACH(_current ${_inc_DIRS}) SET(${_moc_flags} ${${_moc_flags}} "-I${_current}") ENDFOREACH(_current ${_inc_DIRS}) - + GET_DIRECTORY_PROPERTY(_defines COMPILE_DEFINITIONS) FOREACH(_current ${_defines}) SET(${_moc_flags} ${${_moc_flags}} "-D${_current}") @@ -1087,15 +1087,15 @@ IF (QT4_QMAKE_FOUND) DEPENDS ${infile} ${_moc_working_dir} VERBATIM) - ELSE (WIN32) + ELSE (WIN32) ADD_CUSTOM_COMMAND(OUTPUT ${outfile} COMMAND ${QT_MOC_EXECUTABLE} ARGS ${moc_flags} ${moc_options} -o ${outfile} ${infile} - DEPENDS ${infile}) + DEPENDS ${infile}) ENDIF (WIN32) ENDMACRO (QT4_CREATE_MOC_COMMAND) - + MACRO (QT4_GENERATE_MOC infile outfile ) QT4_GET_MOC_FLAGS(moc_flags) GET_FILENAME_COMPONENT(abs_infile ${infile} ABSOLUTE) @@ -1150,7 +1150,7 @@ IF (QT4_QMAKE_FOUND) GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE) GET_FILENAME_COMPONENT(rc_path ${infile} PATH) SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cxx) - # parse file for dependencies + # parse file for dependencies # all files are absolute paths or relative to the location of the qrc file FILE(READ "${infile}" _RC_FILE_CONTENTS) STRING(REGEX MATCHALL "<file[^<]+" _RC_FILES "${_RC_FILE_CONTENTS}") @@ -1179,39 +1179,39 @@ IF (QT4_QMAKE_FOUND) SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) SET(_impl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc) - + GET_SOURCE_FILE_PROPERTY(_nonamespace ${_interface} NO_NAMESPACE) IF ( _nonamespace ) SET(_params -N -m) ELSE ( _nonamespace ) SET(_params -m) ENDIF ( _nonamespace ) - + GET_SOURCE_FILE_PROPERTY(_classname ${_interface} CLASSNAME) IF ( _classname ) SET(_params ${_params} -c ${_classname}) ENDIF ( _classname ) - + GET_SOURCE_FILE_PROPERTY(_include ${_interface} INCLUDE) IF ( _include ) SET(_params ${_params} -i ${_include}) ENDIF ( _include ) - + ADD_CUSTOM_COMMAND(OUTPUT ${_impl} ${_header} COMMAND ${QT_DBUSXML2CPP_EXECUTABLE} ${_params} -p ${_basename} ${_infile} DEPENDS ${_infile}) - + SET_SOURCE_FILES_PROPERTIES(${_impl} PROPERTIES SKIP_AUTOMOC TRUE) - + QT4_GENERATE_MOC(${_header} ${_moc}) - + SET(${_sources} ${${_sources}} ${_impl} ${_header} ${_moc}) MACRO_ADD_FILE_DEPENDENCIES(${_impl} ${_moc}) - + ENDMACRO(QT4_ADD_DBUS_INTERFACE) - - + + MACRO(QT4_ADD_DBUS_INTERFACES _sources) FOREACH (_current_FILE ${ARGN}) GET_FILENAME_COMPONENT(_infile ${_current_FILE} ABSOLUTE) @@ -1221,29 +1221,29 @@ IF (QT4_QMAKE_FOUND) QT4_ADD_DBUS_INTERFACE(${_sources} ${_infile} ${_basename}interface) ENDFOREACH (_current_FILE) ENDMACRO(QT4_ADD_DBUS_INTERFACES) - - + + MACRO(QT4_GENERATE_DBUS_INTERFACE _header) # _customName ) SET(_customName "${ARGV1}") GET_FILENAME_COMPONENT(_in_file ${_header} ABSOLUTE) GET_FILENAME_COMPONENT(_basename ${_header} NAME_WE) - + IF (_customName) SET(_target ${CMAKE_CURRENT_BINARY_DIR}/${_customName}) ELSE (_customName) SET(_target ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.xml) ENDIF (_customName) - + ADD_CUSTOM_COMMAND(OUTPUT ${_target} COMMAND ${QT_DBUSCPP2XML_EXECUTABLE} ${_in_file} > ${_target} DEPENDS ${_in_file} ) ENDMACRO(QT4_GENERATE_DBUS_INTERFACE) - - + + MACRO(QT4_ADD_DBUS_ADAPTOR _sources _xml_file _include _parentClass) # _optionalBasename ) GET_FILENAME_COMPONENT(_infile ${_xml_file} ABSOLUTE) - + SET(_optionalBasename "${ARGV4}") IF (_optionalBasename) SET(_basename ${_optionalBasename} ) @@ -1363,7 +1363,7 @@ IF (QT4_QMAKE_FOUND) ###################################### # if the includes,libraries,moc,uic and rcc are found then we have it - IF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND + IF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND QT_UIC_EXECUTABLE AND QT_RCC_EXECUTABLE AND QT_QTCORE_LIBRARY) SET( QT4_FOUND "YES" ) INCLUDE(FindPackageMessage) @@ -1376,9 +1376,9 @@ IF (QT4_QMAKE_FOUND) IF( Qt4_FIND_REQUIRED) MESSAGE( FATAL_ERROR "Qt libraries, includes, moc, uic or/and rcc NOT found!") ENDIF( Qt4_FIND_REQUIRED) - ENDIF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND + ENDIF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND QT_UIC_EXECUTABLE AND QT_RCC_EXECUTABLE AND QT_QTCORE_LIBRARY) - + SET(QT_FOUND ${QT4_FOUND}) @@ -1397,13 +1397,13 @@ IF (QT4_QMAKE_FOUND) SET(QT_EDITION_DESKTOPLIGHT 1) ENDIF("${QT_EDITION}" MATCHES "DesktopLight") - + ############################################### # - # configuration/system dependent settings + # configuration/system dependent settings # ############################################### - + # find dependencies for some Qt modules # when doing builds against a static Qt, they are required # when doing builds against a shared Qt, they are sometimes not required @@ -1417,18 +1417,18 @@ IF (QT4_QMAKE_FOUND) SET(QT_QTOPENGL_LIB_DEPENDENCIES "") SET(QT_QTDBUS_LIB_DEPENDENCIES "") SET(QT_QTHELP_LIB_DEPENDENCIES ${QT_QTCLUCENE_LIBRARY}) - + # build using shared Qt needs -DQT_DLL IF(NOT QT_CONFIG MATCHES "static") # warning currently only qconfig.pri on Windows potentially contains "static" # so QT_DLL might not get defined properly on other platforms. SET(QT_DEFINITIONS ${QT_DEFINITIONS} -DQT_DLL) ENDIF(NOT QT_CONFIG MATCHES "static") - + # QtOpenGL dependencies QT_QUERY_QMAKE(QMAKE_LIBS_OPENGL "QMAKE_LIBS_OPENGL") SET (QT_QTOPENGL_LIB_DEPENDENCIES ${QT_QTOPENGL_LIB_DEPENDENCIES} ${QMAKE_LIBS_OPENGL}) - + IF(Q_WS_X11) # X11 libraries Qt absolutely depends on QT_QUERY_QMAKE(QT_LIBS_X11 "QMAKE_LIBS_X11") @@ -1445,25 +1445,25 @@ IF (QT4_QMAKE_FOUND) QT_QUERY_QMAKE(QT_LIBS_THREAD "QMAKE_LIBS_THREAD") SET(QT_QTCORE_LIB_DEPENDENCIES ${QT_QTCORE_LIB_DEPENDENCIES} ${QT_LIBS_THREAD}) - + QT_QUERY_QMAKE(QMAKE_LIBS_DYNLOAD "QMAKE_LIBS_DYNLOAD") SET (QT_QTCORE_LIB_DEPENDENCIES ${QT_QTCORE_LIB_DEPENDENCIES} ${QMAKE_LIBS_DYNLOAD}) ENDIF(Q_WS_X11) - + IF(Q_WS_WIN) SET(QT_QTGUI_LIB_DEPENDENCIES ${QT_QTGUI_LIB_DEPENDENCIES} imm32 winmm) SET(QT_QTCORE_LIB_DEPENDENCIES ${QT_QTCORE_LIB_DEPENDENCIES} ws2_32) ENDIF(Q_WS_WIN) - + IF(Q_WS_MAC) SET(QT_QTGUI_LIB_DEPENDENCIES ${QT_QTGUI_LIB_DEPENDENCIES} "-framework Carbon") - + # Qt 4.0, 4.1, 4.2 use QuickTime IF(QT_VERSION_MINOR LESS 3) SET(QT_QTGUI_LIB_DEPENDENCIES ${QT_QTGUI_LIB_DEPENDENCIES} "-framework QuickTime") ENDIF(QT_VERSION_MINOR LESS 3) - + # Qt 4.2+ use AppKit IF(QT_VERSION_MINOR GREATER 1) SET(QT_QTGUI_LIB_DEPENDENCIES ${QT_QTGUI_LIB_DEPENDENCIES} "-framework AppKit") @@ -1474,7 +1474,7 @@ IF (QT4_QMAKE_FOUND) ####################################### # - # compatibility settings + # compatibility settings # ####################################### # Backwards compatibility for CMake1.4 and 1.2 @@ -1484,7 +1484,7 @@ IF (QT4_QMAKE_FOUND) SET( QT_QT_LIBRARY "") ELSE(QT4_QMAKE_FOUND) - + SET(QT_QMAKE_EXECUTABLE "${QT_QMAKE_EXECUTABLE}-NOTFOUND" CACHE FILEPATH "Invalid qmake found" FORCE) IF(Qt4_FIND_REQUIRED) IF(QT4_INSTALLED_VERSION_TOO_OLD) @@ -1497,7 +1497,7 @@ ELSE(QT4_QMAKE_FOUND) MESSAGE(STATUS "The installed Qt version ${QTVERSION} is too old, at least version ${QT_MIN_VERSION} is required") ENDIF(QT4_INSTALLED_VERSION_TOO_OLD AND NOT Qt4_FIND_QUIETLY) ENDIF(Qt4_FIND_REQUIRED) - + ENDIF (QT4_QMAKE_FOUND) - + diff --git a/kde/cmake/TargetDistclean.cmake b/kde/cmake/TargetDistclean.cmake index eeb8861e42..d061713d0d 100755 --- a/kde/cmake/TargetDistclean.cmake +++ b/kde/cmake/TargetDistclean.cmake @@ -1,4 +1,4 @@ - + # add custom target distclean # cleans and removes cmake generated files etc. # Jan Woetzel 04/2003 @@ -70,13 +70,13 @@ IF (UNIX) po/Makefile po/CMakeFiles ) - + SET(DISTCLEANED_REC - *.cmake + *.cmake Makefile CMakeFiles ) - + ADD_CUSTOM_COMMAND( DEPENDS clean COMMENT "distribution clean" @@ -84,7 +84,7 @@ IF (UNIX) ARGS -Rf CMakeTmp CMakeFiles ${DISTCLEANED} `find ./po -maxdepth 2 -name 'Makefile'` `find ./po -maxdepth 2 -name 'CMakeFiles'` `find ./po -maxdepth 2 -name '*.gmo'` `find ./po -maxdepth 2 -name '*.cmake'` # COMMAND find # ARGS "./po ( -name 'Makefile' -o -name 'CMakeFiles' -o -name '*.gmo' -o -name '*.cmake' ) -maxdepth 2 -exec rm -rf {} \;" -# COMMAND rm +# COMMAND rm # ARGS -Rf `find ./po -maxdepth 2 -name 'Makefile'` # COMMAND find # ARGS ./po -maxdepth 2 -name 'CMakeFiles' -exec rm -rf {} \; diff --git a/kde/config.sh b/kde/config.sh index 8c37d45a0d..e8dd0b4903 100755 --- a/kde/config.sh +++ b/kde/config.sh @@ -16,7 +16,7 @@ fi cd build # prefix=`echo $@ | grep -q "--prefix="` -# +# # if $prefix # then options=$@" -DCMAKE_INSTALL_PREFIX="$prefix_env @@ -37,7 +37,7 @@ autocmd cmake $options .. echo "**********************************************" -echo "Configuration done!" +echo "Configuration done!" echo "Run \`cd build' to go to the build directory." echo "Then run \`make'to build the software." echo "**********************************************" diff --git a/kde/doc/advanced-use.docbook b/kde/doc/advanced-use.docbook index 770d78766d..0a7e2f8d20 100755 --- a/kde/doc/advanced-use.docbook +++ b/kde/doc/advanced-use.docbook @@ -11,7 +11,7 @@ </chapterinfo> <title>Advanced use of &sflphone-client-kde;</title> - + <sect1 id="advanced-use-hooks"> <title>Hooks</title> @@ -33,7 +33,7 @@ <title> Phone number formatting </title> <para> This feature permits you to add the chosen prefix at the beginning of the phone number you are calling. - </para> + </para> </sect2> </sect1> diff --git a/kde/doc/basic-use.docbook b/kde/doc/basic-use.docbook index d089a2c123..3de63acbf1 100755 --- a/kde/doc/basic-use.docbook +++ b/kde/doc/basic-use.docbook @@ -16,10 +16,10 @@ <para>The main window is composed of three main parts : the &actions-p;, the &screen-p; and the &dialpad-p; (although you can hide the two last ones in the Settings menu). The screen part has three positions. The ¤t-w; : it is the one you are by default, it shows the current, dialing and incoming calls. -The &history-w; : it shows the past calls and enables you to call someone you called earlier or from whom you missed a call. +The &history-w; : it shows the past calls and enables you to call someone you called earlier or from whom you missed a call. The &address-w; : it enables you to look in the address book of KDE and to call somebody if his number is available. -To switch between those windows, click on the history and address book buttons. If none of these buttons is triggerred, you are currently in the ¤t-w;, if the history button is triggerred, you are in the &history-w;, and if the address book button is triggerred, you are in the &address-w;. +To switch between those windows, click on the history and address book buttons. If none of these buttons is triggerred, you are currently in the ¤t-w;, if the history button is triggerred, you are in the &history-w;, and if the address book button is triggerred, you are in the &address-w;. </para> @@ -59,7 +59,7 @@ To switch between those windows, click on the history and address book buttons. <para> If you have your KAddressBook configured and filled with some phone numbers, you can go to the &address-w;. The detailed use of this window and its features (search...) is described in this section. Once you are in it, find the name of the person you want to call with the right phone number (&pt-home;, &pt-work; or &pt-cell;), then select it and click on the Accept button in the &actions-p;'s toolbar or in the "actions" menu, or type enter on your keyboard, or double-click on the number.</para> -<para>The screen will come back to the ¤t-w; with a new ringing call with the number you chose in the &address-w;.</para> +<para>The screen will come back to the ¤t-w; with a new ringing call with the number you chose in the &address-w;.</para> <para> Note that you can also right click and select Edit before call to modify the number in the address book before calling it.</para> diff --git a/kde/doc/common-use.docbook b/kde/doc/common-use.docbook index 06b4667fd0..4e1011ea4f 100755 --- a/kde/doc/common-use.docbook +++ b/kde/doc/common-use.docbook @@ -11,7 +11,7 @@ </chapterinfo> <title>Common use of &sflphone-client-kde;</title> - + <sect1 id="common-use-current"> <title>Handling a call</title> @@ -84,7 +84,7 @@ <sect2 id="common-use-address-config"> <title>Configuring &sflphone-client-kde;</title> -<para> You can now go to the Configuration Dialog to choose how &sflphone; will handle your searches in the address book. This step is optionnal though, because the default settings enable you to use the feature without more setup. +<para> You can now go to the Configuration Dialog to choose how &sflphone; will handle your searches in the address book. This step is optionnal though, because the default settings enable you to use the feature without more setup. </para> <para> The maximum results setting enables you to choose how many phone numbers can be displayed when you look for a contact. KDE address book can contain lots of contacts, especially if connected to LDAP directories, and you don't want to see thousands of contacts displayed as soon as you type a letter to search for.</para> @@ -98,7 +98,7 @@ <sect2 id="common-use-address-use"> <title>Search in Address Book</title> -<para> Now that everything is set up, you can go to the &address-w;, then type some letters of the name you want to phone. You will see all the phone numbers that match your request and their type. When the resulting list's size is greater than the maximum chosen in configuration, it will only display the beginning of the list with the max size, and will display a warning message to let you know that your wanted number may be in the rest of the list and so not displayed. In that case you should type some more letters to improve precision of the search. Once you found the right number, double click on the item to call it. +<para> Now that everything is set up, you can go to the &address-w;, then type some letters of the name you want to phone. You will see all the phone numbers that match your request and their type. When the resulting list's size is greater than the maximum chosen in configuration, it will only display the beginning of the list with the max size, and will display a warning message to let you know that your wanted number may be in the rest of the list and so not displayed. In that case you should type some more letters to improve precision of the search. Once you found the right number, double click on the item to call it. </para> </sect2> @@ -116,7 +116,7 @@ <sect2 id="common-use-config-address"> <title>General settings</title> -<para> Here you can choose the capacity of the call history. +<para> Here you can choose the capacity of the call history. </para> </sect2> diff --git a/kde/doc/credits.docbook b/kde/doc/credits.docbook index c8ed6a2d52..188f7cee5a 100755 --- a/kde/doc/credits.docbook +++ b/kde/doc/credits.docbook @@ -14,7 +14,7 @@ <listitem><para>Titus Laska<email>titus.laska@gmx.de</email> Some updates and additions</para></listitem> <listitem><para>Pino Toscano <email>pino@kde.org</email></para></listitem> </itemizedlist>--> - + <itemizedlist> <title>Program:</title> <listitem> @@ -22,7 +22,7 @@ </para> </listitem> </itemizedlist> - + <itemizedlist> <title>Documentation:</title> <listitem> diff --git a/kde/doc/index.docbook b/kde/doc/index.docbook index 5bf4cfa21d..dc19819589 100755 --- a/kde/doc/index.docbook +++ b/kde/doc/index.docbook @@ -16,7 +16,7 @@ <!ENTITY sflphone "SFLphone"> <!ENTITY % addindex "IGNORE"> <!ENTITY % English "INCLUDE" > - + <!-- chapters in separate docbook files --> <!ENTITY introduction SYSTEM "introduction.docbook"> <!ENTITY getting-started SYSTEM "getting-started.docbook"> @@ -28,10 +28,10 @@ <book lang="&language;"> <bookinfo> - <title>&sflphone-client-kde; User Manual</title> + <title>&sflphone-client-kde; User Manual</title> <date>2009-05-10</date> <releaseinfo>&sflphonerelease;</releaseinfo> - + <authorgroup> <author> <firstname>Jérémy</firstname> @@ -46,7 +46,7 @@ <year>2009</year> <holder>Savoir faire linux</holder> </copyright> - + <legalnotice>&FDLNotice;</legalnotice> <abstract> @@ -60,12 +60,12 @@ <keyword>phone</keyword> <keyword>enterprise</keyword> </keywordset> - + </bookinfo> &introduction; -&getting-started; +&getting-started; &basic-use; &common-use; &advanced-use; diff --git a/kde/doc/introduction.docbook b/kde/doc/introduction.docbook index cbf8c1a263..dfb1fc478f 100755 --- a/kde/doc/introduction.docbook +++ b/kde/doc/introduction.docbook @@ -10,5 +10,5 @@ It provides functions like call transfer, call hold, multiple lines, multiple ac It is SIP and IAX2 compatible. &sflphone; audio layer is build upon a native ALSA interface and and a native PulseAudio interface. </para> - + </chapter> diff --git a/kde/doc/wizard-welcome.png b/kde/doc/wizard-welcome.png index d732be6eec55cee995448b7d22e25f072a18c6c0..d234a38d33950a1c25d0c7070f50d0eeb12ddfc9 100755 GIT binary patch delta 14 WcmbPpgmLx}#tq)Fn|)$0umAuu6$VNG delta 16 YcmbPzgmKOh#tq)Fj0&5*V=u4(06Pf=Y5)KL diff --git a/kde/man/README.manpages b/kde/man/README.manpages index f794a0d257..75f6044095 100755 --- a/kde/man/README.manpages +++ b/kde/man/README.manpages @@ -5,7 +5,7 @@ Procedure: - Creating the manual pages under POD format. A template is available in this directory. - Convert the pdo file in a manpage file: pod2man --section=1 --release=$(VERSION) --center "" myapp.pod > myapp.1 - - You are done! You can read the manpage file with: + - You are done! You can read the manpage file with: groff -man -Tascii myapp.1 diff --git a/kde/man/sflphone-client-kde.pod b/kde/man/sflphone-client-kde.pod index 559160f429..7736b13111 100755 --- a/kde/man/sflphone-client-kde.pod +++ b/kde/man/sflphone-client-kde.pod @@ -4,7 +4,7 @@ sflphone-client-kde - SIP and IAX2 compatible voice over IP softphone KDE client =head1 SYNOPSIS -sflphone-client-kde +sflphone-client-kde =head1 DESCRIPTION diff --git a/kde/plasma/dataengine/CMakeLists.txt b/kde/plasma/dataengine/CMakeLists.txt index 4aa0ad6cf6..867b10900d 100644 --- a/kde/plasma/dataengine/CMakeLists.txt +++ b/kde/plasma/dataengine/CMakeLists.txt @@ -2,29 +2,29 @@ project(plasma-sflphone) find_package(KDE4 REQUIRED) include(KDE4Defaults) - + add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ) - -set(sflphone_engine_SRCS + +set(sflphone_engine_SRCS sflphonEngine.cpp ) - + kde4_add_plugin(plasma_engine_sflphone ${sflphone_engine_SRCS}) target_link_libraries(plasma_engine_sflphone qtsflphone ${KDE4_KDECORE_LIBS} ${KDE4_PLASMA_LIBS}) - + install(TARGETS plasma_engine_sflphone DESTINATION ${PLUGIN_INSTALL_DIR}) - + install(FILES plasma-engine-sflphone.desktop DESTINATION ${SERVICES_INSTALL_DIR}) diff --git a/kde/plasma/dataengine/plasma-engine-sflphone.desktop b/kde/plasma/dataengine/plasma-engine-sflphone.desktop index f26be6c79b..e9b9775f61 100644 --- a/kde/plasma/dataengine/plasma-engine-sflphone.desktop +++ b/kde/plasma/dataengine/plasma-engine-sflphone.desktop @@ -2,7 +2,7 @@ Name=sflphone Comment=An SFLPhone IP soft-phone frontend Type=Service - + X-KDE-ServiceTypes=Plasma/DataEngine X-KDE-Library=plasma_engine_sflphone X-Plasma-EngineName=sflphone diff --git a/kde/plasma/dataengine/plasma-engine-testtime.desktop b/kde/plasma/dataengine/plasma-engine-testtime.desktop index 1012d8986e..b2e369f4bb 100644 --- a/kde/plasma/dataengine/plasma-engine-testtime.desktop +++ b/kde/plasma/dataengine/plasma-engine-testtime.desktop @@ -2,7 +2,7 @@ Name=sflphone Comment=An SFLPhone IP soft-phone frontend Type=Service - + X-KDE-ServiceTypes=Plasma/DataEngine X-KDE-Library=plasma_engine_sflphone X-Plasma-EngineName=sflphone diff --git a/kde/plasma/dataengine/sflphonEngine.cpp b/kde/plasma/dataengine/sflphonEngine.cpp index 741a86ae8e..4c7c51c90c 100644 --- a/kde/plasma/dataengine/sflphonEngine.cpp +++ b/kde/plasma/dataengine/sflphonEngine.cpp @@ -1,5 +1,5 @@ #include "sflphonEngine.h" - + #include <Plasma/DataContainer> #include "../../src/lib/Call.h" @@ -8,7 +8,7 @@ #include "../../src/lib/configurationmanager_interface_singleton.h" #include "../../src/lib/callmanager_interface_singleton.h" #include "../../src/lib/sflphone_const.h" - + SFLPhoneEngine::SFLPhoneEngine(QObject* parent, const QVariantList& args) : Plasma::DataEngine(parent, args) { @@ -16,7 +16,7 @@ SFLPhoneEngine::SFLPhoneEngine(QObject* parent, const QVariantList& args) m_pModel = new CallModelConvenience(CallModelConvenience::ActiveCall); m_pModel->initCall(); m_pModel->initHistory(); - + CallManagerInterface& callManager = CallManagerInterfaceSingleton::getInstance(); connect(m_pModel , SIGNAL( callStateChanged(Call*)) , this , SLOT(callStateChangedSignal(Call*) )); @@ -24,7 +24,7 @@ SFLPhoneEngine::SFLPhoneEngine(QObject* parent, const QVariantList& args) connect(&callManager , SIGNAL( conferenceCreated(Call*)) , this , SLOT(conferenceCreatedSignal(Call*) )); connect(&callManager , SIGNAL( conferenceChanged(Call*)) , this , SLOT(conferenceChangedSignal(Call*) )); } - + bool SFLPhoneEngine::sourceRequestEvent(const QString &name) { if ( name == "history" ) { @@ -54,7 +54,7 @@ QStringList SFLPhoneEngine::sources() const { return toReturn; } -QString SFLPhoneEngine::getCallStateName(call_state state) +QString SFLPhoneEngine::getCallStateName(call_state state) { if (state == CALL_STATE_INCOMING) { return I18N_NOOP("Ringing (in)"); @@ -118,10 +118,10 @@ void SFLPhoneEngine::updateConferenceList() void SFLPhoneEngine::updateContacts() { - + } -void SFLPhoneEngine::updateInfo() +void SFLPhoneEngine::updateInfo() { qDebug() << "Currentaccount: " << m_pModel->getCurrentAccountId(); setData("info", I18N_NOOP("Account"), m_pModel->getCurrentAccountId()); @@ -165,9 +165,9 @@ void SFLPhoneEngine::voiceMailNotifySignal(const QString& accountId, int count) //TODO } -void SFLPhoneEngine::accountChanged() +void SFLPhoneEngine::accountChanged() { - + } K_EXPORT_PLASMA_DATAENGINE(sflphone, SFLPhoneEngine) diff --git a/kde/plasma/dataengine/sflphonEngine.h b/kde/plasma/dataengine/sflphonEngine.h index 549c0c1673..9a234f2540 100644 --- a/kde/plasma/dataengine/sflphonEngine.h +++ b/kde/plasma/dataengine/sflphonEngine.h @@ -17,10 +17,10 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * **************************************************************************/ - + #ifndef SFLPHONEENGINE_H #define SFLPHONEENGINE_H - + #include <Plasma/DataEngine> #include <QHash> @@ -40,7 +40,7 @@ class SFLPhoneEngine : public Plasma::DataEngine protected: bool sourceRequestEvent(const QString& name); bool updateSourceEvent(const QString& source); - + private: QHash<QString, HashStringString > historyCall ; QHash<QString, HashStringString > currentCall ; @@ -62,5 +62,5 @@ class SFLPhoneEngine : public Plasma::DataEngine void voiceMailNotifySignal( const QString& accountId, int count ); void accountChanged(); }; - + #endif // SFLPHONEENGINE_H diff --git a/kde/plasma/plasmoid/CMakeLists.txt b/kde/plasma/plasmoid/CMakeLists.txt index f7d4a1aefa..7ecfe0d700 100644 --- a/kde/plasma/plasmoid/CMakeLists.txt +++ b/kde/plasma/plasmoid/CMakeLists.txt @@ -1,19 +1,19 @@ # Project Needs a name ofcourse project(sflphone-plasmoid) - + # Find the required Libaries find_package(KDE4 REQUIRED) include(KDE4Defaults) - + add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ) - + # We add our source code here -set(tutorial1_SRCS +set(tutorial1_SRCS SFLPhonePlasmoid.cpp CallItem.cpp ConferenceItem.cpp @@ -44,18 +44,18 @@ kde4_add_plugin(plasma_applet_sflphone ${tutorial1_SRCS}) target_link_libraries(plasma_applet_sflphone qtsflphone ${KDE4_PLASMA_LIBS} ${KDE4_KDEUI_LIBS}) - + install(TARGETS plasma_applet_sflphone DESTINATION ${PLUGIN_INSTALL_DIR}) - + install(FILES plasma-applet-sflphone.desktop DESTINATION ${SERVICES_INSTALL_DIR}) #set(sflphone-plasmoid_SRCS # SFLPhonePlasmoid.cpp) -# +# #kde4_add_plugin(plasma_applet_sflphone ${sflphone-plasmoid_SRCS}) #target_link_libraries(plasma_applet_sflphone ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${KDE4_KDEUI_LIBS}) -# +# #install(TARGETS plasma_applet_sflphone DESTINATION ${PLUGIN_INSTALL_DIR}) #install(FILES plasma-applet-sflphone.desktop DESTINATION ${SERVICES_INSTALL_DIR}) diff --git a/kde/plasma/plasmoid/CallItem.cpp b/kde/plasma/plasmoid/CallItem.cpp index b795a52970..339b3c8173 100644 --- a/kde/plasma/plasmoid/CallItem.cpp +++ b/kde/plasma/plasmoid/CallItem.cpp @@ -10,7 +10,7 @@ CallItem::CallItem() : frmDate(0), parentItem(0) { setMinimumSize(QSizeF(24,64)); setMaximumSize(QSizeF(10000000,64)); - + frmCallerName = new Plasma::Frame(this); frmCallerNumber = new Plasma::Frame(this); frmStateIcon = new Plasma::Frame(this); @@ -33,7 +33,7 @@ CallItem::CallItem() : frmDate(0), parentItem(0) mainLayout->addItem(frmCallerName,0,1); mainLayout->addItem(frmCallerNumber,1,1); - + } QString CallItem::getCallId() diff --git a/kde/plasma/plasmoid/CallItem.h b/kde/plasma/plasmoid/CallItem.h index 78a53a8920..bf55b76d0f 100644 --- a/kde/plasma/plasmoid/CallItem.h +++ b/kde/plasma/plasmoid/CallItem.h @@ -20,7 +20,7 @@ class CallItem : public Plasma::Frame, public ViewItem void setDate(int date); ViewItem* parent(); void setParent(ViewItem* parent); - bool isConference() + bool isConference() { return false; } @@ -33,7 +33,7 @@ class CallItem : public Plasma::Frame, public ViewItem QString callId; ViewItem* parentItem; QGraphicsGridLayout* mainLayout; - + }; #endif diff --git a/kde/plasma/plasmoid/ConferenceItem.cpp b/kde/plasma/plasmoid/ConferenceItem.cpp index 3b4c1cef9c..04bdf6f3c3 100644 --- a/kde/plasma/plasmoid/ConferenceItem.cpp +++ b/kde/plasma/plasmoid/ConferenceItem.cpp @@ -12,7 +12,7 @@ ConferenceItem::ConferenceItem() : Plasma::Frame() conferenceLayout = new QGraphicsLinearLayout(Qt::Vertical); conferenceLayout->addItem(header); - + setLayout(conferenceLayout); } diff --git a/kde/plasma/plasmoid/ConferenceItem.h b/kde/plasma/plasmoid/ConferenceItem.h index a2676b7797..1ca61d170b 100644 --- a/kde/plasma/plasmoid/ConferenceItem.h +++ b/kde/plasma/plasmoid/ConferenceItem.h @@ -12,13 +12,13 @@ class ConferenceItem : public Plasma::Frame, public ViewItem { public: ConferenceItem(); - bool isConference() + bool isConference() { return true; } void setCallList(QList<CallItem*> list); void setConfId(QString value); - + private: QString confId; QGraphicsLinearLayout* conferenceLayout; diff --git a/kde/plasma/plasmoid/DialPage.cpp b/kde/plasma/plasmoid/DialPage.cpp index 0c1e20e490..6b9906f338 100644 --- a/kde/plasma/plasmoid/DialPage.cpp +++ b/kde/plasma/plasmoid/DialPage.cpp @@ -8,7 +8,7 @@ #include <QHBoxLayout> #include <QDebug> -DialPage::DialPage() +DialPage::DialPage() { QGraphicsGridLayout* mainLayout = new QGraphicsGridLayout(); setLayout(mainLayout); @@ -20,19 +20,19 @@ DialPage::DialPage() //currentNumber->setEnabledBorders(FrameSvg::EnabledBorders::Raised); mainLayout->addItem(currentNumber,0,0,1,6); - QString numbers[12] = - {"1", "2", "3", - "4", "5", "6", - "7", "8", "9", + QString numbers[12] = + {"1", "2", "3", + "4", "5", "6", + "7", "8", "9", "*", "0", "#"}; - - QString texts[12] = - { "" , "abc", "def" , - "ghi" , "jkl", "mno" , - "pqrs", "tuv", "wxyz", + + QString texts[12] = + { "" , "abc", "def" , + "ghi" , "jkl", "mno" , + "pqrs", "tuv", "wxyz", "" , "" , "" }; - - for(int i = 0 ; i < 12 ; i++) { + + for(int i = 0 ; i < 12 ; i++) { DialButton* newButton = new DialButton(this); newButton->setMinimumHeight(40); newButton->setLetter(numbers[i]); @@ -44,12 +44,12 @@ DialPage::DialPage() Plasma::PushButton* newButton = new Plasma::PushButton(this); newButton->setText("Call"); newButton->setIcon(KIcon("/usr/share/kde4/apps/sflphone-plasmoid/icons/outgoing.svg")); - mainLayout->addItem(newButton,5,0,1,3); + mainLayout->addItem(newButton,5,0,1,3); Plasma::PushButton* cancelButton = new Plasma::PushButton(this); cancelButton->setText("Cancel"); cancelButton->setIcon(KIcon("/usr/share/kde4/apps/sflphone-plasmoid/icons/hang_up.svg")); - mainLayout->addItem(cancelButton,5,3,1,3); + mainLayout->addItem(cancelButton,5,3,1,3); connect(newButton, SIGNAL(clicked()), this, SLOT(call())); connect(cancelButton, SIGNAL(clicked()), this, SLOT(cancel())); @@ -61,14 +61,14 @@ void DialPage::charTyped(QString value) currentNumber->setText(currentNumber2); } -void DialPage::call() +void DialPage::call() { emit call(currentNumber2); currentNumber2 = ""; currentNumber->setText("Dial"); } -void DialPage::cancel() +void DialPage::cancel() { currentNumber2 = ""; currentNumber->setText("Dial"); diff --git a/kde/plasma/plasmoid/DialPage.h b/kde/plasma/plasmoid/DialPage.h index 5652ea802b..88e553c77d 100644 --- a/kde/plasma/plasmoid/DialPage.h +++ b/kde/plasma/plasmoid/DialPage.h @@ -4,7 +4,7 @@ #include <Plasma/Frame> #include <Plasma/PushButton> -class DialButton : public Plasma::PushButton +class DialButton : public Plasma::PushButton { Q_OBJECT @@ -25,7 +25,7 @@ class DialButton : public Plasma::PushButton QString letter; }; -class DialPage : public Plasma::Frame +class DialPage : public Plasma::Frame { Q_OBJECT public: @@ -35,15 +35,15 @@ class DialPage : public Plasma::Frame void charTyped(QString value); void call(); void cancel(); - + private: Plasma::Frame* currentNumber; QString currentNumber2; - + signals: void typed(QString); void call(QString); - + }; #endif diff --git a/kde/plasma/plasmoid/MainWidget.cpp b/kde/plasma/plasmoid/MainWidget.cpp index b71ae99178..ff3a9567c5 100644 --- a/kde/plasma/plasmoid/MainWidget.cpp +++ b/kde/plasma/plasmoid/MainWidget.cpp @@ -15,7 +15,7 @@ MainWidget::MainWidget() : Plasma::Frame(), m_mainLayout(0), frmCalls(0), frmCon frmHistory = new Plasma::Frame ( this ); historyLayout = new QGraphicsLinearLayout ( Qt::Vertical ); historyScrollArea = new Plasma::ScrollWidget ( this ); - + mainLayout()->addItem(mainTabs); //connect(mainTabs, SIGNAL(currentChanged(int)), this, SLOT(modeChanged(int))); @@ -28,15 +28,15 @@ MainWidget::MainWidget() : Plasma::Frame(), m_mainLayout(0), frmCalls(0), frmCon frmContact->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); contactScrollArea->setWidget(frmContact); - + frmHistory->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); frmHistory->setLayout(historyLayout); - + historyScrollArea->setWidget(frmHistory); dialPage = new DialPage(); connect(dialPage, SIGNAL(call(QString)), this, SLOT(call(QString))); - + QGraphicsLinearLayout* callTabLayout = new QGraphicsLinearLayout( Qt::Vertical ); QGraphicsLinearLayout* historyTabLayout = new QGraphicsLinearLayout( Qt::Vertical ); QGraphicsLinearLayout* contactTabLayout = new QGraphicsLinearLayout( Qt::Vertical ); @@ -53,13 +53,13 @@ MainWidget::MainWidget() : Plasma::Frame(), m_mainLayout(0), frmCalls(0), frmCon mainTabs->addTab( KIcon("list-add") , "", addTabLayout ); //mainLayout()->addItem(callTabLayout); - + //mainLayout()->addItem(callScrollArea); //mainLayout()->addItem(historyScrollArea); //mainLayout()->addItem(contactScrollArea); - + initPos = frmCalls->pos(); - + frmCalls->setPos ( initPos ); frmHistory->setPos( initPos ); frmContact->setPos( initPos ); @@ -67,7 +67,7 @@ MainWidget::MainWidget() : Plasma::Frame(), m_mainLayout(0), frmCalls(0), frmCon setMinimumSize(285,390); } -void MainWidget::dataUpdated(const QString& source, const Plasma::DataEngine::Data& data) +void MainWidget::dataUpdated(const QString& source, const Plasma::DataEngine::Data& data) { if ((source == "calls") && (frmCalls)) { QHash<QString, QVariant> value = data; diff --git a/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp b/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp index d13e72ebab..293df0fa9a 100644 --- a/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp +++ b/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp @@ -6,19 +6,19 @@ #include <KPushButton> #include "../../src/lib/CallModel.h" - + SFLPhonePlasmoid::SFLPhonePlasmoid(QObject* parent, const QVariantList& args) : Plasma::PopupApplet(parent, args), extenderItem(0), callInit(false), requierAttention(false) { //m_svg.setImagePath("widgets/background"); setBackgroundHints(DefaultBackground); - + CallModelConvenience::init(); - + setMinimumSize(24,24); } -void SFLPhonePlasmoid::dataUpdated(const QString& source, const Plasma::DataEngine::Data& data) +void SFLPhonePlasmoid::dataUpdated(const QString& source, const Plasma::DataEngine::Data& data) { mainWidget->dataUpdated(source, data); @@ -28,12 +28,12 @@ void SFLPhonePlasmoid::dataUpdated(const QString& source, const Plasma::DataEngi callInit = true; } } - + SFLPhonePlasmoid::~SFLPhonePlasmoid() { } - + void SFLPhonePlasmoid::init() { //contactEngine = dataEngine("akonadi"); @@ -41,7 +41,7 @@ void SFLPhonePlasmoid::init() sflphoneEngine->connectSource("calls", this,0/*Update only if something happen*/); sflphoneEngine->connectSource("info", this,0/*Update only if something happen*/); sflphoneEngine->connectSource("history", this,0/*Update only if something happen*/); - + mainWidget = new MainWidget(); connect(mainWidget,SIGNAL(requierAttention()),this,SLOT(notify())); @@ -52,7 +52,7 @@ void SFLPhonePlasmoid::init() //panel_icon.setImagePath("/usr/share/kde4/apps/sflphone-plasmoid/icons/sflphone.svg"); panelFrame->setImage("/usr/share/kde4/apps/sflphone-plasmoid/icons/sflphone.svg"); - + mainLayout->addItem(panelFrame); setLayout(mainLayout); @@ -61,7 +61,7 @@ void SFLPhonePlasmoid::init() connect(panelFrame->nativeWidget(), SIGNAL(clicked()), this, SLOT(showCallPopup())); extender()->setEmptyExtenderMessage(i18n("no running jobs...")); -} +} void SFLPhonePlasmoid::constraintsEvent(Plasma::Constraints constraints) { @@ -81,12 +81,12 @@ void SFLPhonePlasmoid::constraintsEvent(Plasma::Constraints constraints) formFaction = Panel; m_orientation = Qt::Vertical; break; - } + } //if (previous != m_mode) //connectToEngine(); - } -} + } +} @@ -115,7 +115,7 @@ void SFLPhonePlasmoid::constraintsEvent(Plasma::Constraints constraints) //currentMode = index; //} -//void SFLPhonePlasmoid::switchPage(Plasma::ScrollWidget* oldFrame, Plasma::ScrollWidget* newFrame, Plasma::ScrollWidget* toHide, bool direction) +//void SFLPhonePlasmoid::switchPage(Plasma::ScrollWidget* oldFrame, Plasma::ScrollWidget* newFrame, Plasma::ScrollWidget* toHide, bool direction) //{ // QPointF targetPos = oldFrame->pos(); // newFrame->setPos(QPoint(targetPos.x() - newFrame->size().width() ,targetPos.y())); @@ -137,12 +137,12 @@ void SFLPhonePlasmoid::constraintsEvent(Plasma::Constraints constraints) // oldFrame->setVisible(true); // newFrame->setVisible(true); // toHide->setVisible(false); - + // slideAnim->start(QAbstractAnimation::DeleteWhenStopped); // slideAnimOut->start(QAbstractAnimation::DeleteWhenStopped); //} -void SFLPhonePlasmoid::showCallPopup(/*Qt::MouseButton button*/) +void SFLPhonePlasmoid::showCallPopup(/*Qt::MouseButton button*/) { //Q_UNUSED(button) if (!extenderItem) { @@ -161,7 +161,7 @@ void SFLPhonePlasmoid::showCallPopup(/*Qt::MouseButton button*/) } } -void SFLPhonePlasmoid::notify() +void SFLPhonePlasmoid::notify() { //panel_icon.setImagePath("/usr/share/kde4/apps/sflphone-plasmoid/icons/sflphone_notif.svg"); panelFrame->setImage("/usr/share/kde4/apps/sflphone-plasmoid/icons/sflphone_notif.svg"); diff --git a/kde/plasma/plasmoid/SFLPhonePlasmoid.h b/kde/plasma/plasmoid/SFLPhonePlasmoid.h index f557f367f4..96ef72e2be 100644 --- a/kde/plasma/plasmoid/SFLPhonePlasmoid.h +++ b/kde/plasma/plasmoid/SFLPhonePlasmoid.h @@ -2,7 +2,7 @@ #define SFLPHONE_PLASMOID_HEADER #include <KIcon> - + #include <Plasma/PopupApplet> #include <Plasma/Svg> #include <QGraphicsLinearLayout> @@ -11,7 +11,7 @@ #include <plasma/widgets/tabbar.h> //#include <plasma/animations/animation.h> //#include <plasma/animator.h> -#include <Plasma/DataEngine> +#include <Plasma/DataEngine> #include <Plasma/ScrollWidget> #include <Plasma/SvgWidget> #include <Plasma/Extender> @@ -20,10 +20,10 @@ #include "ConferenceItem.h" #include "DialPage.h" #include "MainWidget.h" - + class QSizeF; -enum FormFactor { Panel, Desktop }; +enum FormFactor { Panel, Desktop }; class SFLPhonePlasmoid : public Plasma::PopupApplet { @@ -32,12 +32,12 @@ class SFLPhonePlasmoid : public Plasma::PopupApplet SFLPhonePlasmoid(QObject* parent, const QVariantList &args); ~SFLPhonePlasmoid(); void init(); - + private: Plasma::Svg panel_icon; //Plasma::SvgWidget* panelFrame; Plasma::PushButton* panelFrame; - + Qt::Orientation m_orientation; void constraintsEvent(Plasma::Constraints constraints); Plasma::ExtenderItem* extenderItem; @@ -56,8 +56,8 @@ class SFLPhonePlasmoid : public Plasma::PopupApplet public slots: void dataUpdated(const QString& source, const Plasma::DataEngine::Data &data); }; - + // This is the command that links your applet to the .desktop file - + #endif diff --git a/kde/plasma/plasmoid/plasma-applet-sflphone.desktop b/kde/plasma/plasmoid/plasma-applet-sflphone.desktop index f2050e84d1..db66269660 100644 --- a/kde/plasma/plasmoid/plasma-applet-sflphone.desktop +++ b/kde/plasma/plasmoid/plasma-applet-sflphone.desktop @@ -3,7 +3,7 @@ Name=sflphone Comment=Plasma frontend for the SFLPhone VoIP software Type=Service ServiceTypes=Plasma/Applet - + X-KDE-Library=plasma_applet_sflphone X-KDE-PluginInfo-Author=Emmanuel Lepage Vallee X-KDE-PluginInfo-Email=emmanuel.lepage@savoirfairelinux.com diff --git a/kde/plasma/plasmoid/sflphone-plasmoid.desktop b/kde/plasma/plasmoid/sflphone-plasmoid.desktop index 680a0f5952..3fec3d7edf 100644 --- a/kde/plasma/plasmoid/sflphone-plasmoid.desktop +++ b/kde/plasma/plasmoid/sflphone-plasmoid.desktop @@ -2,7 +2,7 @@ Name=Extender Tutorial Type=Service X-KDE-ServiceTypes=Plasma/Applet - + X-KDE-Library=plasma_applet_extendertutorial X-KDE-PluginInfo-Author=The Plasma Team X-KDE-PluginInfo-Email=plasma-devel@kde.org diff --git a/kde/po/ru/sflphone-client-kde.po b/kde/po/ru/sflphone-client-kde.po index 07c0961e76..673fdf09b5 100755 --- a/kde/po/ru/sflphone-client-kde.po +++ b/kde/po/ru/sflphone-client-kde.po @@ -484,7 +484,7 @@ msgid "" "to edit it using the form on the right." msgstr "" "Это кнопка позволит вам добавить новый аккаунт. После этого вы сможете " -"его изменить при помощи экрана справа." +"его изменить при помощи экрана справа." #: ../sflphone-client-kde/build/src/ui_dlgaccountsbase.h:347 msgid "Add" diff --git a/kde/src/AccountListModel.h b/kde/src/AccountListModel.h index b62566809b..7d5546362f 100755 --- a/kde/src/AccountListModel.h +++ b/kde/src/AccountListModel.h @@ -53,7 +53,7 @@ public: bool accountDown ( int index ); bool removeAccount ( int index ); bool addAccount ( const QString& alias ); - + QString getOrderedList() const; }; diff --git a/kde/src/AccountView.cpp b/kde/src/AccountView.cpp index c70da2b969..eee3f689ff 100644 --- a/kde/src/AccountView.cpp +++ b/kde/src/AccountView.cpp @@ -54,7 +54,7 @@ void AccountView::initItemWidget() { if(m_pWidget != NULL) delete m_pWidget; - + bool enabled = getAccountDetail(ACCOUNT_ENABLED) == ACCOUNT_ENABLED_TRUE; m_pWidget = new AccountItemWidget(); m_pWidget->setEnabled(enabled); @@ -152,7 +152,7 @@ void AccountView::updateState() { if(! isNew()) { Account::updateState(); - + AccountItemWidget * m_pWidget = getItemWidget(); if(getAccountDetail(ACCOUNT_ENABLED) != ACCOUNT_ENABLED_TRUE ) { kDebug() << "Changing account state to Unregistered"; diff --git a/kde/src/AccountView.h b/kde/src/AccountView.h index 2fbc56623e..9d484670b1 100644 --- a/kde/src/AccountView.h +++ b/kde/src/AccountView.h @@ -51,7 +51,7 @@ class AccountView : public Account, public Item<AccountItemWidget> { static AccountView* buildExistingAccountFromId (const QString& _accountId ); static AccountView* buildNewAccountFromAlias (const QString& alias ); virtual void updateState(); - + private: //Attributes QListWidgetItem* m_pItem; diff --git a/kde/src/AccountWizard.cpp b/kde/src/AccountWizard.cpp index 9df923005a..6fdfd3dae5 100755 --- a/kde/src/AccountWizard.cpp +++ b/kde/src/AccountWizard.cpp @@ -75,7 +75,7 @@ typedef struct { } rest_account; ///Validate if the connection can be done with the PBX -int sendRequest(QString host, int port, QString req, QString & ret) +int sendRequest(QString host, int port, QString req, QString & ret) { int s; struct sockaddr_in servSockAddr; @@ -85,7 +85,7 @@ int sendRequest(QString host, int port, QString req, QString & ret) int i=0; FILE *f; char buf[1024]; - + bzero(&servSockAddr, sizeof(servSockAddr)); servHostEnt = gethostbyname(host.toLatin1()); if (servHostEnt == NULL) { @@ -95,20 +95,20 @@ int sendRequest(QString host, int port, QString req, QString & ret) bcopy((char *)servHostEnt->h_addr, (char *)&servSockAddr.sin_addr, servHostEnt->h_length); servSockAddr.sin_port = htons(port); servSockAddr.sin_family = AF_INET; - + if ((s = socket(AF_INET,SOCK_STREAM,0)) < 0) { ret = "socket"; return -1; } - + if(connect(s, (const struct sockaddr *) &servSockAddr, (socklen_t) sizeof(servSockAddr)) < 0 ) { perror(NULL); ret = "connect"; return -1; } - + f = fdopen(s, "r+"); - + const char * req2 = req.toLatin1(); const char * host2 = host.toLatin1(); fprintf(f, "%s HTTP/1.1\r\n", req2); @@ -126,7 +126,7 @@ int sendRequest(QString host, int port, QString req, QString & ret) } for (i = 0; i < length; i++) ret[i] = fgetc(f); - + if (status != 200) { ret = "http error: " + status; // sprintf(ret, "http error: %ld", status); @@ -140,7 +140,7 @@ int sendRequest(QString host, int port, QString req, QString & ret) } /// -rest_account get_rest_account(QString host, QString email) +rest_account get_rest_account(QString host, QString email) { QString req = "GET /rest/accountcreator?email=" + email; QString ret; @@ -158,7 +158,7 @@ rest_account get_rest_account(QString host, QString email) } kDebug() << ret; return ra; -} +} /*************************************************************************** * Class AccountWizard * @@ -177,7 +177,7 @@ AccountWizard::AccountWizard(QWidget * parent) setPage(Page_IAXForm , new WizardAccountIAXFormPage ); setPage(Page_Stun , new WizardAccountStunPage ); setPage(Page_Conclusion , new WizardAccountConclusionPage ); - + setStartId(Page_Intro); setWindowTitle(i18n("Account creation wizard")); setWindowIcon(QIcon(ICON_SFLPHONE)); @@ -198,7 +198,7 @@ void AccountWizard::accept() QString ret; MapStringString accountDetails; - + QString& alias = accountDetails[ QString(ACCOUNT_ALIAS) ]; QString& enabled = accountDetails[ QString(ACCOUNT_ENABLED) ]; QString& mailbox = accountDetails[ QString(ACCOUNT_MAILBOX) ]; @@ -219,7 +219,7 @@ void AccountWizard::accept() QString& zrtp_hello_hash = accountDetails[ QString(ACCOUNT_ZRTP_HELLO_HASH) ]; QString& display_sas_once = accountDetails[ QString(ACCOUNT_DISPLAY_SAS_ONCE) ]; - // interface paramters + // interface paramters QString& locale_interface = accountDetails[ QString(LOCAL_INTERFACE) ]; QString& published_address = accountDetails[ QString(PUBLISHED_ADDRESS) ]; @@ -255,10 +255,10 @@ void AccountWizard::accept() ret += i18n("Creation of account has failed for the reason") + " :\n"; ret += acc.reason; } - } + } else if(field(FIELD_SIP_ACCOUNT).toBool()) { //sip ret += i18n("This assistant is now finished.") + "\n"; - + alias = field ( FIELD_SIP_ALIAS ).toString(); enabled = QString ( ACCOUNT_ENABLED_TRUE ); mailbox = field ( FIELD_SIP_VOICEMAIL ).toString(); @@ -297,7 +297,7 @@ void AccountWizard::accept() stun_enabled = QString(ACCOUNT_ENABLED_FALSE); stun_server = QString(); } - + if(field(FIELD_ZRTP_ENABLED).toBool()) { srtp_enabled = QString( ACCOUNT_ENABLED_TRUE ); key_exchange = QString( ZRTP ); @@ -319,7 +319,7 @@ void AccountWizard::accept() ret += i18n( "Protocol" ) + " : " + protocol + "\n"; ret += i18n( "Voicemail number" ) + " : " + mailbox + "\n"; } - + if(is_create_account) { QString accountId = configurationManager.addAccount(accountDetails); } @@ -327,7 +327,7 @@ void AccountWizard::accept() QDialog::accept(); restart(); } - + @@ -350,8 +350,8 @@ WizardIntroPage::WizardIntroPage(QWidget *parent) layout->addWidget(introLabel); setLayout(layout); } - - + + WizardIntroPage::~WizardIntroPage() { delete introLabel; @@ -386,7 +386,7 @@ WizardAccountAutoManualPage::WizardAccountAutoManualPage(QWidget *parent) layout->addWidget( radioButton_manual ); setLayout(layout); } - + ///Second page destructor WizardAccountAutoManualPage::~WizardAccountAutoManualPage() { @@ -417,7 +417,7 @@ WizardAccountTypePage::WizardAccountTypePage(QWidget *parent) radioButton_SIP = new QRadioButton(i18n("SIP (Session Initiation Protocol)" )); radioButton_IAX = new QRadioButton(i18n("IAX2 (InterAsterix Exchange)" )); radioButton_SIP->setChecked(true); - + registerField( FIELD_SIP_ACCOUNT, radioButton_SIP ); registerField( FIELD_IAX_ACCOUNT, radioButton_IAX ); @@ -426,7 +426,7 @@ WizardAccountTypePage::WizardAccountTypePage(QWidget *parent) layout->addWidget(radioButton_IAX); setLayout(layout); } - + ///Third page destructor WizardAccountTypePage::~WizardAccountTypePage() { @@ -459,7 +459,7 @@ WizardAccountEmailAddressPage::WizardAccountEmailAddressPage(QWidget *parent) lineEdit_emailAddress = new QLineEdit(); label_enableZrtp = new QLabel(i18n("Secure with ZRTP")); checkBox_enableZrtp = new QCheckBox(); - + registerField( FIELD_EMAIL_ADDRESS , lineEdit_emailAddress ); registerField( FIELD_ZRTP_ENABLED , checkBox_enableZrtp ); @@ -472,7 +472,7 @@ WizardAccountEmailAddressPage::WizardAccountEmailAddressPage(QWidget *parent) setLayout(layout); } - + ///Email page destructor WizardAccountEmailAddressPage::~WizardAccountEmailAddressPage() { @@ -514,17 +514,17 @@ WizardAccountSIPFormPage::WizardAccountSIPFormPage(QWidget *parent) checkBox_enableZrtp = new QCheckBox; lineEdit_password->setEchoMode(QLineEdit::Password); - + registerField(QString( FIELD_SIP_ALIAS) + "*" , lineEdit_alias ); registerField(QString( FIELD_SIP_SERVER) + "*" , lineEdit_server ); registerField(QString( FIELD_SIP_USER) + "*" , lineEdit_user ); registerField(QString( FIELD_SIP_PASSWORD) + "*" , lineEdit_password ); registerField(QString( FIELD_SIP_VOICEMAIL) , lineEdit_voicemail ); registerField(QString( FIELD_ZRTP_ENABLED) , checkBox_enableZrtp ); - + QFormLayout *layout = new QFormLayout; - - + + layout->setWidget( 0, QFormLayout::LabelRole , label_alias ); layout->setWidget( 0, QFormLayout::FieldRole , lineEdit_alias ); layout->setWidget( 1, QFormLayout::LabelRole , label_server ); @@ -537,11 +537,11 @@ WizardAccountSIPFormPage::WizardAccountSIPFormPage(QWidget *parent) layout->setWidget( 4, QFormLayout::FieldRole , lineEdit_voicemail ); layout->setWidget( 5, QFormLayout::LabelRole , label_enableZrtp ); layout->setWidget( 5, QFormLayout::FieldRole , checkBox_enableZrtp ); - + setLayout(layout); } - - + + WizardAccountSIPFormPage::~WizardAccountSIPFormPage() { delete label_alias; @@ -579,7 +579,7 @@ WizardAccountIAXFormPage::WizardAccountIAXFormPage(QWidget *parent) label_user = new QLabel(i18n("Username") + " *" ); label_password = new QLabel(i18n("Password") + " *" ); label_voicemail = new QLabel(i18n("Voicemail number" )); - + lineEdit_alias = new QLineEdit; lineEdit_server = new QLineEdit; lineEdit_user = new QLineEdit; @@ -587,15 +587,15 @@ WizardAccountIAXFormPage::WizardAccountIAXFormPage(QWidget *parent) lineEdit_voicemail = new QLineEdit; lineEdit_password->setEchoMode(QLineEdit::Password); - + registerField( QString( FIELD_IAX_ALIAS ) + "*", lineEdit_alias ); registerField( QString( FIELD_IAX_SERVER ) + "*", lineEdit_server ); registerField( QString( FIELD_IAX_USER ) + "*", lineEdit_user ); registerField( QString( FIELD_IAX_PASSWORD ) + "*", lineEdit_password ); registerField( QString( FIELD_IAX_VOICEMAIL ) , lineEdit_voicemail ); - + QFormLayout *layout = new QFormLayout; - + layout->setWidget( 0 , QFormLayout::LabelRole , label_alias ); layout->setWidget( 0 , QFormLayout::FieldRole , lineEdit_alias ); layout->setWidget( 1 , QFormLayout::LabelRole , label_server ); @@ -606,11 +606,11 @@ WizardAccountIAXFormPage::WizardAccountIAXFormPage(QWidget *parent) layout->setWidget( 3 , QFormLayout::FieldRole , lineEdit_password ); layout->setWidget( 4 , QFormLayout::LabelRole , label_voicemail ); layout->setWidget( 4 , QFormLayout::FieldRole , lineEdit_voicemail ); - + setLayout(layout); } - - + + WizardAccountIAXFormPage::~WizardAccountIAXFormPage() { delete label_alias; @@ -645,7 +645,7 @@ WizardAccountStunPage::WizardAccountStunPage(QWidget *parent) label_StunServer = new QLabel(i18n("Stun Server")); lineEdit_StunServer = new QLineEdit(); lineEdit_StunServer->setDisabled(true); - + registerField(FIELD_SIP_ENABLE_STUN, checkBox_enableStun); registerField(FIELD_SIP_STUN_SERVER, lineEdit_StunServer); @@ -654,7 +654,7 @@ WizardAccountStunPage::WizardAccountStunPage(QWidget *parent) layout->addWidget( label_StunServer ); layout->addWidget( lineEdit_StunServer ); setLayout(layout); - + connect(checkBox_enableStun, SIGNAL(toggled(bool)), lineEdit_StunServer, SLOT(setEnabled(bool))); } diff --git a/kde/src/AccountWizard.h b/kde/src/AccountWizard.h index b4af3e90bc..924f03f19a 100755 --- a/kde/src/AccountWizard.h +++ b/kde/src/AccountWizard.h @@ -37,9 +37,9 @@ class AccountWizard : public QWizard Q_OBJECT public: - + enum { Page_Intro, Page_AutoMan, Page_Type, Page_Email, Page_SIPForm, Page_IAXForm, Page_Stun, Page_Conclusion }; - + AccountWizard(QWidget * parent = 0); ~AccountWizard(); void accept(); @@ -134,7 +134,7 @@ class WizardAccountSIPFormPage : public QWizardPage Q_OBJECT public: - + WizardAccountSIPFormPage(QWidget *parent = 0); ~WizardAccountSIPFormPage(); int nextId() const; @@ -167,7 +167,7 @@ class WizardAccountIAXFormPage : public QWizardPage Q_OBJECT public: - + WizardAccountIAXFormPage(QWidget *parent = 0); ~WizardAccountIAXFormPage(); int nextId() const; diff --git a/kde/src/ActionSetAccountFirst.h b/kde/src/ActionSetAccountFirst.h index 2b9dd739e5..07e044c02c 100755 --- a/kde/src/ActionSetAccountFirst.h +++ b/kde/src/ActionSetAccountFirst.h @@ -18,7 +18,7 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * **************************************************************************/ - + #ifndef ACTION_SET_ACCOUNT_FIRST_H #define ACTION_SET_ACCOUNT_FIRST_H @@ -40,7 +40,7 @@ public: private slots: void emitSetFirst(); - + signals: void setFirst(Account * account); diff --git a/kde/src/AkonadiBackend.cpp b/kde/src/AkonadiBackend.cpp index a265001a79..7677746d4f 100644 --- a/kde/src/AkonadiBackend.cpp +++ b/kde/src/AkonadiBackend.cpp @@ -67,7 +67,7 @@ AkonadiBackend::AkonadiBackend(QObject* parent) : ContactBackend(parent) ///Destructor AkonadiBackend::~AkonadiBackend() { - + } @@ -130,7 +130,7 @@ ContactList AkonadiBackend::update(Akonadi::Collection collection) KABC::Addressee tmp = item.payload<KABC::Addressee>(); Contact* aContact = new Contact(); m_AddrHash[tmp.uid()] = tmp; - + KABC::PhoneNumber::List numbers = tmp.phoneNumbers(); PhoneNumbers newNumbers; foreach (KABC::PhoneNumber number, numbers) { @@ -138,7 +138,7 @@ ContactList AkonadiBackend::update(Akonadi::Collection collection) m_ContactByPhone[number.number()] = aContact; } m_ContactByUid[tmp.uid()] = aContact; - + aContact->setNickName (tmp.nickName() ); aContact->setFormattedName (tmp.formattedName() ); aContact->setFirstName (tmp.givenName() ); @@ -147,7 +147,7 @@ ContactList AkonadiBackend::update(Akonadi::Collection collection) aContact->setPreferredEmail (tmp.preferredEmail() ); aContact->setUid (tmp.uid() ); aContact->setPhoneNumbers (newNumbers ); - + if (!tmp.photo().data().isNull()) aContact->setPhoto(new QPixmap(QPixmap::fromImage( tmp.photo().data()).scaled(QSize(48,48)))); else @@ -208,17 +208,17 @@ void AkonadiBackend::addNewContact(Contact* contact) newContact.insertPhoneNumber(pn); } - + //aContact->setPhoneNumbers (newNumbers );//TODO - + Akonadi::ContactEditor *editor = new Akonadi::ContactEditor( Akonadi::ContactEditor::CreateMode, SFLPhone::app()->view() ); editor->setContactTemplate(newContact); - + KDialog* dlg = new KDialog(SFLPhone::app()->view()); dlg->setMainWidget(editor); dlg->exec(); - + if ( !editor->saveContact() ) { kDebug() << "Unable to save new contact to storage"; return; diff --git a/kde/src/AkonadiBackend.h b/kde/src/AkonadiBackend.h index 89a3224ef2..a0494d9633 100644 --- a/kde/src/AkonadiBackend.h +++ b/kde/src/AkonadiBackend.h @@ -52,24 +52,24 @@ public: Contact* getContactByUid ( const QString& uid ); void editContact ( Contact* contact ); void addNewContact ( Contact* contact ); - + private: AkonadiBackend(QObject* parent); virtual ~AkonadiBackend(); - + //Attributes static AkonadiBackend* m_pInstance ; Akonadi::Session* m_pSession ; Akonadi::Collection m_Collection ; QHash<QString,KABC::Addressee> m_AddrHash ; - + protected: ContactList update_slot(); - + public slots: ContactList update(Akonadi::Collection collection); void collectionsReceived( const Akonadi::Collection::List& ); - + signals: void collectionChanged(); }; diff --git a/kde/src/CMakeLists.txt b/kde/src/CMakeLists.txt index 15fffdec37..7ca4c1ec0f 100755 --- a/kde/src/CMakeLists.txt +++ b/kde/src/CMakeLists.txt @@ -1,9 +1,9 @@ ADD_DEFINITIONS( - ${KDE4_DEFINITIONS} - ${QT_DEFINITIONS} - -fexceptions - -DDATA_INSTALL_DIR="\\\"${DATA_INSTALL_DIR}\\\"" + ${KDE4_DEFINITIONS} + ${QT_DEFINITIONS} + -fexceptions + -DDATA_INSTALL_DIR="\\\"${DATA_INSTALL_DIR}\\\"" -DSHARE_INSTALL_PREFIX="\\\"${SHARE_INSTALL_PREFIX}\\\"" ) diff --git a/kde/src/CallView.cpp b/kde/src/CallView.cpp index e4484c9043..5c912479f3 100644 --- a/kde/src/CallView.cpp +++ b/kde/src/CallView.cpp @@ -55,9 +55,9 @@ CallView::CallView(QWidget* parent) : QTreeWidget(parent),m_pActiveOverlay(0),m_ setDragEnabled(true); setAnimated(true); CallTreeItemDelegate *delegate = new CallTreeItemDelegate(); - setItemDelegate(delegate); + setItemDelegate(delegate); setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); - + m_pTransferOverlay = new CallViewOverlay(this); m_pTransferOverlay->setVisible(false); m_pTransferOverlay->resize(size()); @@ -309,11 +309,11 @@ bool CallView::contactToCall(QTreeWidgetItem *parent, int index, const QMimeData } ///Action performed when an item is dropped on the TreeView -bool CallView::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action) +bool CallView::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action) { Q_UNUSED(index) Q_UNUSED(action) - + QByteArray encodedCallId = data->data( MIME_CALLID ); QByteArray encodedPhoneNumber = data->data( MIME_PHONENUMBER ); QByteArray encodedContact = data->data( MIME_CONTACT ); @@ -335,14 +335,14 @@ bool CallView::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData ///Encode data to be tranported during the drag n' drop operation QMimeData* CallView::mimeData( const QList<QTreeWidgetItem *> items) const -{ +{ kDebug() << "A call is being dragged"; if (items.size() < 1) { return NULL; } - + QMimeData *mimeData = new QMimeData(); - + //Call ID for internal call merging and spliting if (SFLPhone::model()->getCall(items[0])->isConference()) { mimeData->setData(MIME_CALLID, SFLPhone::model()->getCall(items[0])->getConfId().toAscii()); @@ -350,10 +350,10 @@ QMimeData* CallView::mimeData( const QList<QTreeWidgetItem *> items) const else { mimeData->setData(MIME_CALLID, SFLPhone::model()->getCall(items[0])->getCallId().toAscii()); } - + //Plain text for other applications mimeData->setData(MIME_PLAIN_TEXT, QString(SFLPhone::model()->getCall(items[0])->getPeerName()+"\n"+SFLPhone::model()->getCall(items[0])->getPeerPhoneNumber()).toAscii()); - + //TODO Comment this line if you don't want to see ugly artefact, but the caller details will not be visible while dragged items[0]->setText(0, SFLPhone::model()->getCall(items[0])->getPeerName() + "\n" + SFLPhone::model()->getCall(items[0])->getPeerPhoneNumber()); return mimeData; @@ -367,14 +367,14 @@ QMimeData* CallView::mimeData( const QList<QTreeWidgetItem *> items) const ****************************************************************************/ ///Add a call in the model structure, the call must exist before being added to the model -Call* CallView::addCall(Call* call, Call* parent) +Call* CallView::addCall(Call* call, Call* parent) { QTreeWidgetItem* callItem = new QTreeWidgetItem(); SFLPhone::model()->updateIndex(call,callItem); insertItem(callItem,parent); - + setCurrentItem(callItem); - + connect(call, SIGNAL(isOver(Call*)), this, SLOT(destroyCall(Call*))); return call; } @@ -432,13 +432,13 @@ void CallView::resizeEvent (QResizeEvent *e) } ///Set the TreeView header text -void CallView::setTitle(const QString& title) +void CallView::setTitle(const QString& title) { headerItem()->setText(0,title); } ///Select an item in the TreeView -bool CallView::selectItem(Call* item) +bool CallView::selectItem(Call* item) { if (SFLPhone::model()->getIndex(item)) { setCurrentItem(SFLPhone::model()->getIndex(item)); @@ -449,7 +449,7 @@ bool CallView::selectItem(Call* item) } ///Return the current item -Call* CallView::getCurrentItem() +Call* CallView::getCurrentItem() { if (currentItem() && SFLPhone::model()->getCall(QTreeWidget::currentItem())) return SFLPhone::model()->getCall(QTreeWidget::currentItem()); @@ -458,7 +458,7 @@ Call* CallView::getCurrentItem() } ///Remove a TreeView item and delete it -bool CallView::removeItem(Call* item) +bool CallView::removeItem(Call* item) { if (indexOfTopLevelItem(SFLPhone::model()->getIndex(item)) != -1) { QTreeWidgetItem* parent = itemAt(indexOfTopLevelItem(SFLPhone::model()->getIndex(item)),0); @@ -472,29 +472,29 @@ bool CallView::removeItem(Call* item) } ///Return the TreeView, this -QWidget* CallView::getWidget() +QWidget* CallView::getWidget() { return this; } ///Convenience wrapper around extractItem(QTreeWidgetItem*) -QTreeWidgetItem* CallView::extractItem(const QString& callId) +QTreeWidgetItem* CallView::extractItem(const QString& callId) { QTreeWidgetItem* currentItem = SFLPhone::model()->getIndex(callId); return extractItem(currentItem); } ///Extract an item from the TreeView and return it, the item is -not- deleted -QTreeWidgetItem* CallView::extractItem(QTreeWidgetItem* item) +QTreeWidgetItem* CallView::extractItem(QTreeWidgetItem* item) { QTreeWidgetItem* parentItem = item->parent(); - + if (parentItem) { if ((indexOfTopLevelItem(parentItem) == -1 ) || (parentItem->indexOfChild(item) == -1)) { kDebug() << "The conversation does not exist"; return 0; } - + QTreeWidgetItem* toReturn = parentItem->takeChild(parentItem->indexOfChild(item)); return toReturn; @@ -504,45 +504,45 @@ QTreeWidgetItem* CallView::extractItem(QTreeWidgetItem* item) } ///Convenience wrapper around insertItem(QTreeWidgetItem*, QTreeWidgetItem*) -CallTreeItem* CallView::insertItem(QTreeWidgetItem* item, Call* parent) +CallTreeItem* CallView::insertItem(QTreeWidgetItem* item, Call* parent) { return insertItem(item,(parent)?SFLPhone::model()->getIndex(parent):0); } ///Insert a TreeView item in the TreeView as child of parent or as a top level item, also restore the item Widget -CallTreeItem* CallView::insertItem(QTreeWidgetItem* item, QTreeWidgetItem* parent) +CallTreeItem* CallView::insertItem(QTreeWidgetItem* item, QTreeWidgetItem* parent) { if (!item) { kDebug() << "This is not a valid call"; return 0; } - + if (!parent) insertTopLevelItem(0,item); else parent->addChild(item); - + CallTreeItem* callItem = new CallTreeItem(); connect(callItem, SIGNAL(showChilds(CallTreeItem*)), this, SLOT(showDropOptions(CallTreeItem*))); connect(callItem, SIGNAL(askTransfer(Call*)), this, SLOT(showTransferOverlay(Call*))); connect(callItem, SIGNAL(transferDropEvent(Call*,QMimeData*)), this, SLOT(transferDropEvent(Call*,QMimeData*))); connect(callItem, SIGNAL(conversationDropEvent(Call*,QMimeData*)), this, SLOT(conversationDropEvent(Call*,QMimeData*))); - + SFLPhone::model()->updateWidget(SFLPhone::model()->getCall(item), callItem); callItem->setCall(SFLPhone::model()->getCall(item)); - + setItemWidget(item,0,callItem); - + expandAll(); return callItem; } ///Remove a call from the interface -void CallView::destroyCall(Call* toDestroy) +void CallView::destroyCall(Call* toDestroy) { if (SFLPhone::model()->getIndex(toDestroy) == currentItem()) setCurrentItem(0); - + if (!SFLPhone::model()->getIndex(toDestroy)) kDebug() << "Call not found"; else if (indexOfTopLevelItem(SFLPhone::model()->getIndex(toDestroy)) != -1) @@ -562,7 +562,7 @@ void CallView::destroyCall(Call* toDestroy) } /// @todo Remove the text partially covering the TreeView item widget when it is being dragged, a beter implementation is needed -void CallView::clearArtefact(QTreeWidgetItem* item) +void CallView::clearArtefact(QTreeWidgetItem* item) { if (item) item->setText(0,""); @@ -607,33 +607,33 @@ void CallView::itemClicked(QTreeWidgetItem* item, int column) { ****************************************************************************/ ///Add a new conference, get the call list and update the interface as needed -Call* CallView::addConference(Call* conf) +Call* CallView::addConference(Call* conf) { kDebug() << "Conference created"; Call* newConf = conf;//SFLPhone::model()->addConference(confID);//TODO ELV? - + QTreeWidgetItem* confItem = new QTreeWidgetItem(); SFLPhone::model()->updateIndex(conf,confItem); insertItem(confItem,(QTreeWidgetItem*)0); - + setCurrentItem(confItem); CallManagerInterface& callManager = CallManagerInterfaceSingleton::getInstance(); QStringList callList = callManager.getParticipantList(conf->getConfId()); - + foreach (QString callId, callList) { kDebug() << "Adding " << callId << "to the conversation"; insertItem(extractItem(SFLPhone::model()->getIndex(callId)),confItem); } - + Q_ASSERT_X(confItem->childCount() == 0, "add conference","Conference created, but without any participants"); return newConf; } ///Executed when the daemon signal a modification in an existing conference. Update the call list and update the TreeView -bool CallView::conferenceChanged(Call* conf) +bool CallView::conferenceChanged(Call* conf) { kDebug() << "Conference changed"; //if (!SFLPhone::model()->conferenceChanged(confId, state)) @@ -658,14 +658,14 @@ bool CallView::conferenceChanged(Call* conf) if (buffer.indexOf(SFLPhone::model()->getIndex(conf)->child(j)) == -1) insertItem(extractItem(SFLPhone::model()->getIndex(conf)->child(j))); } - + Q_ASSERT_X(SFLPhone::model()->getIndex(conf)->childCount() == 0,"changind conference","A conference can't have no participants"); - + return true; } ///Remove a conference from the model and the TreeView -void CallView::conferenceRemoved(Call* conf) +void CallView::conferenceRemoved(Call* conf) { kDebug() << "Attempting to remove conference"; QTreeWidgetItem* idx = SFLPhone::model()->getIndex(conf); diff --git a/kde/src/CallView.h b/kde/src/CallView.h index 0d05fa7fcd..0fa3f8ce56 100644 --- a/kde/src/CallView.h +++ b/kde/src/CallView.h @@ -44,11 +44,11 @@ class CallTreeItemDelegate : public QItemDelegate { public: CallTreeItemDelegate() { } - QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index ) const - { + QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index ) const + { Q_UNUSED(option) Q_UNUSED(index) - return QSize(0,60); + return QSize(0,60); } }; @@ -62,18 +62,18 @@ public: //Setters void setCornerWidget(QWidget* wdg); void setVisible(bool enabled); - + protected: virtual void paintEvent (QPaintEvent* event ); virtual void resizeEvent (QResizeEvent* e ); - + private: QWidget* m_pIcon ; uint m_step ; QTimer* m_pTimer ; bool m_enabled; QColor m_black ; - + private slots: void changeVisibility(); }; @@ -91,7 +91,7 @@ class CallView : public QTreeWidget { bool dropMimeData ( QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action ); virtual QMimeData* mimeData ( const QList<QTreeWidgetItem *> items ) const; bool haveOverlay(); - + private: QTreeWidgetItem* extractItem ( const QString& callId ); QTreeWidgetItem* extractItem ( QTreeWidgetItem* item ); @@ -113,7 +113,7 @@ class CallView : public QTreeWidget { bool callToCall ( QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action ); bool phoneNumberToCall ( QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action ); bool contactToCall ( QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action ); - + public slots: void destroyCall ( Call* toDestroy); void itemDoubleClicked ( QTreeWidgetItem* item, int column ); @@ -135,6 +135,6 @@ class CallView : public QTreeWidget { signals: void itemChanged(Call*); - + }; #endif diff --git a/kde/src/Codec.h b/kde/src/Codec.h index fc17948dd5..8617cc86f9 100755 --- a/kde/src/Codec.h +++ b/kde/src/Codec.h @@ -49,7 +49,7 @@ public: void setBitrate ( const QString& bitrate ); void setBandwidth ( const QString& bandwidth ); void setEnabled ( bool enabled ); - + private: //Attributes QString m_Payload ; @@ -58,7 +58,7 @@ private: QString m_Bitrate ; QString m_Bandwidth ; bool m_Enabled ; - + //Operators Codec& operator=(const Codec&); }; diff --git a/kde/src/SFLPhone.cpp b/kde/src/SFLPhone.cpp index ce24a9b10f..21b03330c8 100755 --- a/kde/src/SFLPhone.cpp +++ b/kde/src/SFLPhone.cpp @@ -88,14 +88,14 @@ bool SFLPhone::initialize() //Keep these template paramater or the static attribute wont be share between this and the call view, they need to be CallModel<CallTreeItem*,QTreeWidgetItem*>* histoModel = new CallModel<CallTreeItem*,QTreeWidgetItem*>(CallModel<CallTreeItem*,QTreeWidgetItem*>::History); histoModel->initHistory(); - + ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); // accept dnd setAcceptDrops(true); m_pContactCD = new ContactDock(this); addDockWidget(Qt::TopDockWidgetArea,m_pContactCD); - + // tell the KXmlGuiWindow that this is indeed the main widget m_pCentralDW = new QDockWidget(this); m_pCentralDW->setObjectName ( "callDock" ); @@ -113,11 +113,11 @@ bool SFLPhone::initialize() }\ \ "); - + m_pCentralDW->setTitleBarWidget(new QWidget()); m_pCentralDW->setContentsMargins(0,0,0,0); m_pView->setContentsMargins(0,0,0,0); - + addDockWidget(Qt::TopDockWidgetArea,m_pCentralDW); m_pHistoryDW = new HistoryDock(this); @@ -160,7 +160,7 @@ bool SFLPhone::initialize() void SFLPhone::setupActions() { kDebug() << "setupActions"; - + action_accept = new KAction(this); action_refuse = new KAction(this); action_hold = new KAction(this); @@ -177,21 +177,21 @@ void SFLPhone::setupActions() action_screen = new QActionGroup(this); action_screen->setExclusive(true); - + action_close = KStandardAction::close(this, SLOT(close()), this); action_quit = KStandardAction::quit(this, SLOT(quitButton()), this); - + action_configureSflPhone = KStandardAction::preferences(m_pView, SLOT(configureSflPhone()), this); action_configureSflPhone->setText(i18n("Configure SFLphone")); - + action_displayDialpad = new KAction(KIcon(QIcon(ICON_DISPLAY_DIALPAD)), i18n("Display dialpad"), this); action_displayDialpad->setCheckable( true ); action_displayDialpad->setChecked ( ConfigurationSkeleton::displayDialpad() ); - action_displayVolumeControls = new KAction(KIcon(QIcon(ICON_DISPLAY_VOLUME_CONSTROLS)), i18n("Display volume controls"), this); + action_displayVolumeControls = new KAction(KIcon(QIcon(ICON_DISPLAY_VOLUME_CONSTROLS)), i18n("Display volume controls"), this); action_displayVolumeControls->setCheckable( true ); action_displayVolumeControls->setChecked ( ConfigurationSkeleton::displayVolume() ); - + action_accountCreationWizard = new KAction(i18n("Account creation wizard"), this); @@ -209,7 +209,7 @@ void SFLPhone::setupActions() /**/connect(action_configureShortcut, SIGNAL(triggered()), this , SLOT(showShortCutEditor() )); /* */ - + actionCollection()->addAction("action_accept" , action_accept ); actionCollection()->addAction("action_refuse" , action_refuse ); actionCollection()->addAction("action_hold" , action_hold ); @@ -223,7 +223,7 @@ void SFLPhone::setupActions() actionCollection()->addAction("action_configureSflPhone" , action_configureSflPhone ); actionCollection()->addAction("action_accountCreationWizard" , action_accountCreationWizard ); actionCollection()->addAction("action_configureShortcut" , action_configureShortcut ); - + setAutoSaveSettings(); createGUI(); } diff --git a/kde/src/SFLPhone.h b/kde/src/SFLPhone.h index e58c412851..030a229243 100755 --- a/kde/src/SFLPhone.h +++ b/kde/src/SFLPhone.h @@ -45,19 +45,19 @@ class CallTreeItem; typedef CallModel<CallTreeItem*,QTreeWidgetItem*> TreeWidgetCallModel; -/** - * This class represents the SFLphone main window - * It implements the methods relative to windowing - * (status, menus, toolbars, notifications...). - * It uses a view which implements the real functionning - * and features of the phone. - * The display of the window is according to the state of the view, - * so the view sends some signals to ask for changes on the window - * that the window has to take into account. - * - * @short Main window - * @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> - * @version 0.9.6 +/** + * This class represents the SFLphone main window + * It implements the methods relative to windowing + * (status, menus, toolbars, notifications...). + * It uses a view which implements the real functionning + * and features of the phone. + * The display of the window is according to the state of the view, + * so the view sends some signals to ask for changes on the window + * that the window has to take into account. + * + * @short Main window + * @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> + * @version 0.9.6 **/ class SFLPhone : public KXmlGuiWindow { @@ -100,7 +100,7 @@ private: QDockWidget* m_pCentralDW ; HistoryDock* m_pHistoryDW ; BookmarkDock* m_pBookmarkDW ; - + static SFLPhone* m_sApp; static TreeWidgetCallModel* m_pModel; @@ -110,7 +110,7 @@ private: protected: virtual bool queryClose(); virtual void changeEvent(QEvent * event); - + public: SFLPhone(QWidget *parent = 0); @@ -121,7 +121,7 @@ public: QList<QAction *> getCallActions (); friend class SFLPhoneView; - + static SFLPhone* app (); static TreeWidgetCallModel* model (); SFLPhoneView* view (); @@ -129,7 +129,7 @@ public: ContactDock* contactDock(); HistoryDock* historyDock(); BookmarkDock* bookmarkDock(); - + private slots: void on_m_pView_statusMessageChangeAsked ( const QString& message ); void on_m_pView_windowTitleChangeAsked ( const QString& message ); @@ -146,4 +146,4 @@ private slots: }; #endif - + diff --git a/kde/src/SFLPhoneView.cpp b/kde/src/SFLPhoneView.cpp index 9c908ca5fc..dadf805c4b 100755 --- a/kde/src/SFLPhoneView.cpp +++ b/kde/src/SFLPhoneView.cpp @@ -58,12 +58,12 @@ SFLPhoneView::SFLPhoneView(QWidget *parent) wizard(0), errorWindow(0) { setupUi(this); - + ConfigurationManagerInterface& configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); - - + + callTreeModel->setTitle(i18n("Calls")); - + QPalette pal = QPalette(palette()); pal.setColor(QPalette::AlternateBase, Qt::lightGray); setPalette(pal); @@ -127,7 +127,7 @@ QErrorMessage * SFLPhoneView::getErrorWindow() void SFLPhoneView::typeString(QString str) { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); - + Call* call = callTreeModel->getCurrentItem(); callManager.playDTMF(str); Call *currentCall = 0; @@ -254,9 +254,9 @@ void SFLPhoneView::updateWindowCallState() bool enabledActions[6]= {true,true,true,true,true,true}; QString buttonIconFiles[6] = {ICON_CALL, ICON_HANGUP, ICON_HOLD, ICON_TRANSFER, ICON_REC_DEL_OFF, ICON_MAILBOX}; QString actionTexts[6] = {ACTION_LABEL_CALL, ACTION_LABEL_HANG_UP, ACTION_LABEL_HOLD, ACTION_LABEL_TRANSFER, ACTION_LABEL_RECORD, ACTION_LABEL_MAILBOX}; - + Call* call = 0; - + bool transfer = false; bool recordActivated = false; //tells whether the call is in recording position @@ -337,9 +337,9 @@ void SFLPhoneView::updateWindowCallState() break; } } - + kDebug() << "Updating Window."; - + emit enabledActionsChangeAsked ( enabledActions ); emit actionIconsChangeAsked ( buttonIconFiles ); emit actionTextsChangeAsked ( actionTexts ); @@ -358,15 +358,15 @@ int SFLPhoneView::phoneNumberTypesDisplayed() if(addressBookSettings[ADDRESSBOOK_DISPLAY_BUSINESS]) { typesDisplayed = typesDisplayed | KABC::PhoneNumber::Work; } - + if(addressBookSettings[ADDRESSBOOK_DISPLAY_MOBILE]) { typesDisplayed = typesDisplayed | KABC::PhoneNumber::Cell; } - + if(addressBookSettings[ADDRESSBOOK_DISPLAY_HOME]) { typesDisplayed = typesDisplayed | KABC::PhoneNumber::Home; } - + return typesDisplayed; } @@ -388,8 +388,8 @@ void SFLPhoneView::updateRecordButton() else { toolButton_recVol->setIcon(QIcon(ICON_REC_VOL_3)); } - - if(recVol > 0) { + + if(recVol > 0) { toolButton_recVol->setChecked(false); } } @@ -400,7 +400,7 @@ void SFLPhoneView::updateVolumeButton() kDebug() << "updateVolumeButton"; CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); double sndVol = callManager.getVolume(SOUND_DEVICE); - + if(sndVol == 0.00) { toolButton_sndVol->setIcon(QIcon(ICON_SND_VOL_0)); } @@ -413,7 +413,7 @@ void SFLPhoneView::updateVolumeButton() else { toolButton_sndVol->setIcon(QIcon(ICON_SND_VOL_3)); } - + if(sndVol > 0) { toolButton_sndVol->setChecked(false); } @@ -447,7 +447,7 @@ void SFLPhoneView::updateVolumeControls() toolButton_sndVol->setVisible ( SFLPhone::app()->action_displayVolumeControls->isChecked() && ConfigurationSkeleton::displayVolume() ); slider_recVol->setVisible ( SFLPhone::app()->action_displayVolumeControls->isChecked() && ConfigurationSkeleton::displayVolume() ); slider_sndVol->setVisible ( SFLPhone::app()->action_displayVolumeControls->isChecked() && ConfigurationSkeleton::displayVolume() ); - + } ///Hide or show the dialpad @@ -465,8 +465,8 @@ void SFLPhoneView::updateStatusMessage() emit statusMessageChangeAsked(i18n("No registered accounts")); } else { - emit statusMessageChangeAsked(i18n("Using account") - + " \'" + account->getAlias() + emit statusMessageChangeAsked(i18n("Using account") + + " \'" + account->getAlias() + "\' (" + account->getAccountDetail(ACCOUNT_TYPE) + ")") ; } } @@ -497,8 +497,8 @@ void SFLPhoneView::displayDialpad(bool checked) ///Input grabber void SFLPhoneView::on_widget_dialpad_typed(QString text) -{ - typeString(text); +{ + typeString(text); } ///The value on the slider changed @@ -552,7 +552,7 @@ void SFLPhoneView::on_toolButton_sndVol_clicked(bool checked) slider_sndVol->setEnabled(false); callManager.setVolume(SOUND_DEVICE, 0.0); } - + updateVolumeButton(); } @@ -560,22 +560,22 @@ void SFLPhoneView::on_toolButton_sndVol_clicked(bool checked) void SFLPhoneView::contextMenuEvent(QContextMenuEvent *event) { KMenu menu(this); - + SFLPhone * window = SFLPhone::app(); QList<QAction *> callActions = window->getCallActions(); - + menu.addAction ( callActions.at((int) SFLPhone::Accept) ); menu.addAction ( callActions[ SFLPhone::Refuse ] ); menu.addAction ( callActions[ SFLPhone::Hold ] ); menu.addAction ( callActions[ SFLPhone::Transfer ] ); menu.addAction ( callActions[ SFLPhone::Record ] ); menu.addSeparator(); - + QAction* action = new ActionSetAccountFirst(NULL, &menu); action->setChecked(SFLPhone::model()->getPriorAccoundId().isEmpty()); connect(action, SIGNAL(setFirst(Account *)), this , SLOT(setAccountFirst(Account *))); menu.addAction(action); - + QVector<Account *> accounts = SFLPhone::model()->getAccountList()->registeredAccounts(); for (int i = 0 ; i < accounts.size() ; i++) { Account* account = accounts.at(i); @@ -592,7 +592,7 @@ void SFLPhoneView::editBeforeCall() { QString name; QString number; - + bool ok; QString newNumber = QInputDialog::getText(this, i18n("Edit before call"), QString(), QLineEdit::Normal, number, &ok); if(ok) { @@ -622,10 +622,10 @@ void SFLPhoneView::configureSflPhone() { ConfigurationDialog* configDialog = new ConfigurationDialog(this); configDialog->setModal(true); - + connect(configDialog, SIGNAL(changesApplied()), this, SLOT(loadWindow())); - + //configDialog->reload(); configDialog->show(); } @@ -729,7 +729,7 @@ void SFLPhoneView::on1_error(MapStringString details) void SFLPhoneView::on1_incomingCall(Call* call) { kDebug() << "Signal : Incoming Call ! ID = " << call->getCallId(); - + updateWindowCallState(); SFLPhone::app()->activateWindow ( ); diff --git a/kde/src/SFLPhoneView.h b/kde/src/SFLPhoneView.h index 59d3028359..3f444acd6a 100755 --- a/kde/src/SFLPhoneView.h +++ b/kde/src/SFLPhoneView.h @@ -37,28 +37,28 @@ class AccountWizard; class CallView; -/** - * This is the main view class for sflphone-client-kde. Most of the non-menu, - * non-toolbar, and non-statusbar (e.g., non frame) GUI code should go - * here. - * As the state of the view has effects on the window, - * it emits some signals to ask for changes that the window has - * to treat. - * - * @short Main view - * @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> - * @version 0.9.6 +/** + * This is the main view class for sflphone-client-kde. Most of the non-menu, + * non-toolbar, and non-statusbar (e.g., non frame) GUI code should go + * here. + * As the state of the view has effects on the window, + * it emits some signals to ask for changes that the window has + * to treat. + * + * @short Main view + * @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> + * @version 0.9.6 */ class SFLPhoneView : public QWidget, public Ui::SFLPhone_view { Q_OBJECT - + private: AccountWizard * wizard; QErrorMessage * errorWindow; protected: - + /** * override context menu handling * @param event @@ -74,21 +74,21 @@ public: * You should call the loadWindow() method once * you have constructed the object and connected the * expected signals. - * @param parent + * @param parent */ SFLPhoneView(QWidget *parent); virtual ~SFLPhoneView(); - + //Getters - - + + QErrorMessage * getErrorWindow(); - - + + //Daemon getters /** * Used to sort contacts according to their types with Kabc. - * @return the integer resulting to the flags of the types + * @return the integer resulting to the flags of the types * chosen to be displayed in SFLphone configuration. */ int phoneNumberTypesDisplayed(); @@ -102,16 +102,16 @@ private slots: * @param action the code of the action to perform */ void action(Call * call, call_action action); - + /** * Sets the account account to be the prior account. * That means it's gonna be used when the user places a call - * if it's defined and registered, else the first registered of + * if it's defined and registered, else the first registered of * accountList will be used. * @param account the account to use prior */ void setAccountFirst(Account * account); - + /** * Handles the behaviour when the user types something with * the dialpad widget or his keyboard (normally it's a one char @@ -152,7 +152,7 @@ private slots: /** * Updates the history's search bar's display according to the current - * text searched. + * text searched. * If empty, hide the search bar. */ void updateRecordButton (); @@ -161,7 +161,7 @@ private slots: void updateVolumeBar (double _value = -1); void updateVolumeControls (); void updateDialpad (); - + public slots: /** @@ -169,17 +169,17 @@ public slots: * according to the settings. */ void loadWindow(); - + /** - * Updates the toolbar's actions' display according to the selected + * Updates the toolbar's actions' display according to the selected * item's state. */ void updateWindowCallState(); - - + + void updateStatusMessage(); - - + + virtual void keyPressEvent(QKeyEvent *event) { int key = event->key(); @@ -209,19 +209,19 @@ public slots: void transfer (); void record (); void mailBox (); - + void on_widget_dialpad_typed(QString text); - + void on_slider_recVol_valueChanged ( int value ); void on_slider_sndVol_valueChanged ( int value ); void on_toolButton_recVol_clicked ( bool checked ); void on_toolButton_sndVol_clicked ( bool checked ); - + void on1_error(MapStringString details); void on1_incomingCall(Call* call); void on1_voiceMailNotify(const QString &accountID, int count); void on1_volumeChanged(const QString &device, double value); - + signals: void statusMessageChangeAsked ( const QString& message ); void windowTitleChangeAsked ( const QString& title ); @@ -233,7 +233,7 @@ signals: void addressBookEnableAsked ( bool enableAddressBook ); void screenChanged(int screen); void incomingCall(const Call * call); - + }; diff --git a/kde/src/SFLPhoneapplication.cpp b/kde/src/SFLPhoneapplication.cpp index cdaf6472ab..75aec9e06f 100755 --- a/kde/src/SFLPhoneapplication.cpp +++ b/kde/src/SFLPhoneapplication.cpp @@ -95,7 +95,7 @@ void SFLPhoneApplication::initializeMainWindow() // if( KMainWindow::classNameOfToplevel( n ) != QLatin1String( "SFLPhone" ) ) { // continue; // } -// +// // restoredWindow = n; // break; // } @@ -128,7 +128,7 @@ void SFLPhoneApplication::initializePaths() Q_NOREPLY void SFLPhoneApplication::quit2() { - + } #include "SFLPhoneapplication.moc" diff --git a/kde/src/conf/ConfigAccountList.cpp b/kde/src/conf/ConfigAccountList.cpp index f41399054b..9de04ed73a 100644 --- a/kde/src/conf/ConfigAccountList.cpp +++ b/kde/src/conf/ConfigAccountList.cpp @@ -39,7 +39,7 @@ AccountView* ConfigAccountList::addAccount(const QString& alias) void ConfigAccountList::removeAccount(QListWidgetItem* item) { - if(!item) + if(!item) kDebug() << "Attempting to remove an account from a NULL item."; return; AccountView* a = (AccountView*) getAccountByItem(item); diff --git a/kde/src/conf/ConfigAccountList.h b/kde/src/conf/ConfigAccountList.h index c2b8bd09cb..ac8538bce1 100644 --- a/kde/src/conf/ConfigAccountList.h +++ b/kde/src/conf/ConfigAccountList.h @@ -24,7 +24,7 @@ class ConfigAccountList : public QObject { AccountView* getAccountByItem ( QListWidgetItem* item ) ; QVector<AccountView*> getAccountByState ( QString & state ) ; AccountView* getAccountById ( const QString & id ) const; - + ///Mutators virtual AccountView* addAccount ( const QString & alias ); void removeAccount ( QListWidgetItem* item ); @@ -39,7 +39,7 @@ class ConfigAccountList : public QObject { private: QVector<AccountView*>* accounts; - + signals: void accountListUpdated(); }; diff --git a/kde/src/conf/ConfigurationDialog.cpp b/kde/src/conf/ConfigurationDialog.cpp index b8c184ae3d..c24fd3433d 100755 --- a/kde/src/conf/ConfigurationDialog.cpp +++ b/kde/src/conf/ConfigurationDialog.cpp @@ -39,24 +39,24 @@ ConfigurationDialog::ConfigurationDialog(SFLPhoneView *parent) :KConfigDialog(parent, SETTINGS_NAME, ConfigurationSkeleton::self()) { this->setWindowIcon(QIcon(ICON_SFLPHONE)); - + dlgGeneral = new DlgGeneral (this); dlgDisplay = new DlgDisplay (this); dlgAccounts = new DlgAccounts (this); dlgAudio = new DlgAudio (this); dlgAddressBook = new DlgAddressBook (this); dlgHooks = new DlgHooks (this); - - addPage( dlgGeneral , i18n("General") , "sflphone-client-kde" ); - addPage( dlgDisplay , i18n("Display") , "applications-graphics" ); + + addPage( dlgGeneral , i18n("General") , "sflphone-client-kde" ); + addPage( dlgDisplay , i18n("Display") , "applications-graphics" ); addPage( dlgAccounts , i18n("Accounts") , "user-identity" ); - addPage( dlgAudio , i18n("Audio") , "audio-headset" ); + addPage( dlgAudio , i18n("Audio") , "audio-headset" ); addPage( dlgAddressBook , i18n("Address Book") , "x-office-address-book" ); addPage( dlgHooks , i18n("Hooks") , "insert-link" ); - + connect(this, SIGNAL(applyClicked()), this, SLOT(applyCustomSettings())); connect(this, SIGNAL(okClicked()), this, SLOT(applyCustomSettings())); - + connect(dlgGeneral, SIGNAL(clearCallHistoryAsked()), this, SIGNAL(clearCallHistoryAsked())); } diff --git a/kde/src/conf/ConfigurationDialog.h b/kde/src/conf/ConfigurationDialog.h index 879793939b..06bc43c9ae 100755 --- a/kde/src/conf/ConfigurationDialog.h +++ b/kde/src/conf/ConfigurationDialog.h @@ -48,7 +48,7 @@ class SFLPhoneView; A few complicated settings are handled directly by its pages. Some custom behaviors have been added to handle specific cases, as this config dialog is not the usual kind. - A few things might be done a cleaner way by passing the handling + A few things might be done a cleaner way by passing the handling to the skeleton like it has been done with codecs. */ class ConfigurationDialog : public KConfigDialog @@ -56,7 +56,7 @@ class ConfigurationDialog : public KConfigDialog Q_OBJECT private: - + DlgGeneral * dlgGeneral; DlgDisplay * dlgDisplay; DlgAccounts * dlgAccounts; @@ -68,8 +68,8 @@ public: ConfigurationDialog(SFLPhoneView *parent = 0); ~ConfigurationDialog(); - - + + public slots: /** * Reimplements KConfigDialog @@ -93,12 +93,12 @@ public slots: * @return whether any custom widget has changed in the dialog. */ bool hasChanged(); - + /** * reloads the informations before showing it. */ void reload(); - + private slots: /** * Apply settings not managed by kconfig (accounts) @@ -110,7 +110,7 @@ private slots: signals: void clearCallHistoryAsked(); void changesApplied(); - + }; #endif diff --git a/kde/src/conf/ConfigurationSkeleton.cpp b/kde/src/conf/ConfigurationSkeleton.cpp index 683e29d945..3fadaea56a 100755 --- a/kde/src/conf/ConfigurationSkeleton.cpp +++ b/kde/src/conf/ConfigurationSkeleton.cpp @@ -40,7 +40,7 @@ ConfigurationSkeleton * ConfigurationSkeleton::self() { if(instance == NULL) { instance = new ConfigurationSkeleton(); } - return instance; + return instance; } @@ -57,17 +57,17 @@ void ConfigurationSkeleton::readConfig() { //ConfigurationSkeleton::readConfig(); kDebug() << "Reading config"; - + ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); - + //////////////////////// ////General settings//// //////////////////////// - + //Call history settings //setEnableHistory(true); setHistoryMax(1000);//configurationManager.getHistoryLimit()); - + //////////////////////// ////Display settings//// //////////////////////// @@ -75,22 +75,22 @@ void ConfigurationSkeleton::readConfig() //Notification settings setNotifOnCalls(true); setNotifOnMessages(true);//configurationManager.getMailNotify()); - + //Window display settings setDisplayOnStart(true); setDisplayOnCalls(true); - + ///////////////////////// ////Accounts settings//// ///////////////////////// - + // loadAccountList(); - + ////////////////////// ////Audio settings//// ////////////////////// - + //Audio Interface settings QString audioManager = configurationManager.getAudioManager(); kDebug() << "audioManager = " << audioManager; @@ -118,23 +118,23 @@ void ConfigurationSkeleton::readConfig() kDebug() << "inputDevice = " << devices[1]; inputDevice = devices[1].toInt(& ok); } - else + else kDebug() << "Fatal: Too few audio devices"; - if(!ok) + if(!ok) kDebug() << "inputDevice is not a number"; - + setAlsaInputDevice(inputDevice); - + //kDebug() << "outputDevice = " << devices[0]; //int outputDevice = devices[0].toInt(& ok); //if(!ok) kDebug() << "outputDevice is not a number"; - //setAlsaOutputDevice(outputDevice); - + //setAlsaOutputDevice(outputDevice); + /////////////////////// ////Record settings//// /////////////////////// - + QString recordPath = configurationManager.getRecordPath(); if(! recordPath.isEmpty()) { setDestinationFolder(recordPath); @@ -142,13 +142,13 @@ void ConfigurationSkeleton::readConfig() else { setDestinationFolder(QDir::home().path()); } - - - + + + ///////////////////////////// ////Address book settings//// ///////////////////////////// - + MapStringInt addressBookSettings = configurationManager.getAddressbookSettings().value(); setEnableAddressBook(addressBookSettings[ADDRESSBOOK_ENABLE]); setMaxResults(addressBookSettings[ADDRESSBOOK_MAX_RESULTS]); @@ -156,11 +156,11 @@ void ConfigurationSkeleton::readConfig() setBusiness(addressBookSettings[ADDRESSBOOK_DISPLAY_BUSINESS]); setMobile(addressBookSettings[ADDRESSBOOK_DISPLAY_MOBILE]); setHome(addressBookSettings[ADDRESSBOOK_DISPLAY_HOME]); - + ///////////////////////////// ///////Hooks settings//////// ///////////////////////////// - + MapStringString hooksSettings = configurationManager.getHookSettings().value(); setAddPrefix(hooksSettings[HOOKS_ENABLED]=="1"); setPrepend(hooksSettings[HOOKS_ADD_PREFIX]); @@ -168,7 +168,7 @@ void ConfigurationSkeleton::readConfig() setEnableHooksIAX(hooksSettings[HOOKS_IAX2_ENABLED]=="1"); setHooksSIPHeader(hooksSettings[HOOKS_SIP_FIELD]); setHooksCommand(hooksSettings[HOOKS_COMMAND]); - + kDebug() << "Finished to read config"; } @@ -177,14 +177,14 @@ void ConfigurationSkeleton::writeConfig() //ConfigurationSkeleton::writeConfig(); kDebug() << "Writing config"; /*ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); - - + + //////////////////////// ////General settings//// //////////////////////// - + kDebug() << "Writing General settings"; - + //Call history settings //if(enableHistory() != QVariant(configurationManager.getHistoryEnabled()).toBool() ) { //configurationManager.setHistoryEnabled(); @@ -195,39 +195,39 @@ void ConfigurationSkeleton::writeConfig() //////////////////////// ////Display settings//// //////////////////////// - + kDebug() << "Writing Display settings"; - + //Notification settings //if(notifOnCalls() != configurationManager.getNotify()) configurationManager.setNotify(); //if(notifOnMessages() != configurationManager.getMailNotify()) configurationManager.setMailNotify(); - + //Window display settings //WARNING états inversés //if(displayOnStart() == configurationManager.isStartHidden()) configurationManager.startHidden(); //if(displayOnCalls() != configurationManager.popupMode()) configurationManager.switchPopupMode(); - + ///////////////////////// ////Accounts settings//// ///////////////////////// - + kDebug() << "Writing Accounts settings"; - + // saveAccountList(); ////////////////////// ////Audio settings//// ////////////////////// - + kDebug() << "Writing Audio settings"; - + //Audio Interface settings int prevManager = configurationManager.getAudioManager(); int newManager = interface(); if(prevManager != newManager) { configurationManager.setAudioManager(newManager); } - + //ringtones settings if(enableRingtones() != configurationManager.isRingtoneEnabled()) configurationManager.ringtoneEnabled(); configurationManager.setRingtoneChoice(ringtone()); @@ -235,7 +235,7 @@ void ConfigurationSkeleton::writeConfig() //codecs settings //kDebug() << "activeCodecList = " << activeCodecList(); //configurationManager.setActiveCodecList(activeCodecList()); - + //alsa settings if(prevManager == CONST_ALSA && newManager == EnumInterface::ALSA) { @@ -244,24 +244,24 @@ void ConfigurationSkeleton::writeConfig() configurationManager.setAudioInputDevice(alsaInputDevice()); configurationManager.setAudioOutputDevice(alsaOutputDevice()); } - - + + /////////////////////// ////Record settings//// /////////////////////// - + kDebug() << "Writing Record settings"; - + QString destination = destinationFolder(); configurationManager.setRecordPath(destination); - - + + ///////////////////////////// ////Address Book settings//// ///////////////////////////// - + kDebug() << "Writing Address Book settings"; - + MapStringInt addressBookSettings = MapStringInt(); addressBookSettings[ADDRESSBOOK_ENABLE] = enableAddressBook(); addressBookSettings[ADDRESSBOOK_MAX_RESULTS] = maxResults(); @@ -270,13 +270,13 @@ void ConfigurationSkeleton::writeConfig() addressBookSettings[ADDRESSBOOK_DISPLAY_MOBILE] = mobile(); addressBookSettings[ADDRESSBOOK_DISPLAY_HOME] = home(); configurationManager.setAddressbookSettings(addressBookSettings); - + ///////////////////////////// ///////Hooks settings//////// ///////////////////////////// - + kDebug() << "Writing Hooks settings"; - + MapStringString hooksSettings = MapStringString(); hooksSettings[HOOKS_ENABLED] = addPrefix() ? "1" : "0"; hooksSettings[HOOKS_ADD_PREFIX] = prepend(); @@ -285,7 +285,7 @@ void ConfigurationSkeleton::writeConfig() hooksSettings[HOOKS_SIP_FIELD] = hooksSIPHeader(); hooksSettings[HOOKS_COMMAND] = hooksCommand(); configurationManager.setHookSettings(hooksSettings); - + kDebug() << "Finished to write config\n";*/ ConfigurationSkeletonBase::writeConfig(); } @@ -294,7 +294,7 @@ void ConfigurationSkeleton::writeConfig() // { // return codecListModel->getActiveCodecList(); // } -// +// // void ConfigurationSkeleton::setActiveCodecList(const QStringList & v) // { // codecListModel->setActiveCodecList(v); @@ -302,6 +302,6 @@ void ConfigurationSkeleton::writeConfig() // void ConfigurationSkeleton::writeConfig() // { -// +// // ConfigurationSkeletonBase::writeConfig(); // } \ No newline at end of file diff --git a/kde/src/conf/ConfigurationSkeleton.h b/kde/src/conf/ConfigurationSkeleton.h index a9fcb1a3f7..cd99acd48a 100755 --- a/kde/src/conf/ConfigurationSkeleton.h +++ b/kde/src/conf/ConfigurationSkeleton.h @@ -30,10 +30,10 @@ /** @author Jérémy Quentin <jeremy.quentin@gmail.com> This class represents the config skeleton for the config dialog. - It inherits the KConfigSkeleton "ConfigurationSkeletonBase"generated + It inherits the KConfigSkeleton "ConfigurationSkeletonBase"generated by sflphone-client-kde.kcfg which handles most of the settings. - This class handles the codec list. - A few complicated settings are handled directly by the config dialog + This class handles the codec list. + A few complicated settings are handled directly by the config dialog and its pages (accounts, sound managers). This class reimplements the writeConfig and readConfig functions to ask the daemon instead of the normal behavior (read and write in a kconfig file). @@ -44,29 +44,29 @@ Q_OBJECT private: static ConfigurationSkeleton * instance; - + //CodecListModel * codecListModel; public: ConfigurationSkeleton(); ~ConfigurationSkeleton(); - + /** * @copydoc KCoreConfigSkeleton::readConfig() */ virtual void readConfig(); - + /** * @copydoc KCoreConfigSkeleton::writeConfig() */ virtual void writeConfig(); - + static ConfigurationSkeleton * self(); - + //QStringList activeCodecList() const; //void setActiveCodecList(const QStringList & v); - + //CodecListModel * getCodecListModel(); }; diff --git a/kde/src/conf/dlgaccounts.cpp b/kde/src/conf/dlgaccounts.cpp index f5d27aca18..5f300b6480 100755 --- a/kde/src/conf/dlgaccounts.cpp +++ b/kde/src/conf/dlgaccounts.cpp @@ -135,7 +135,7 @@ DlgAccounts::DlgAccounts(KConfigDialog* parent) connect(list_credential, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this,SLOT( selectCredential(QListWidgetItem*, QListWidgetItem*))); - + //Disable control connect(radioButton_pa_same_as_local, SIGNAL(clicked(bool)) , this , SLOT(enablePublished())); connect(radioButton_pa_custom, SIGNAL(clicked(bool)) , this , SLOT(enablePublished())); @@ -206,15 +206,15 @@ void DlgAccounts::saveAccount(QListWidgetItem * item) { QString protocolsTab[] = ACCOUNT_TYPES_TAB; - if(! item) { + if(! item) { kDebug() << "Attempting to save details of an account from a NULL item"; - return; + return; } - + AccountView* account = accountList->getAccountByItem(item); if(!account) { kDebug() << "Attempting to save details of an unexisting account : " << item->text(); - return; + return; } //ACCOUNT DETAILS // FIELD WIDGET VALUE / @@ -255,7 +255,7 @@ void DlgAccounts::saveAccount(QListWidgetItem * item) /**/account->setAccountDetail( LOCAL_PORT , QString::number(spinBox_pa_published_port->value()) ); /**/account->setAccountDetail( LOCAL_INTERFACE , comboBox_ni_local_address->currentText() ); // / - + QStringList _codecList; foreach (QString aCodec, keditlistbox_codec->items()) { foreach (StringHash _aCodec, codecList) { @@ -268,31 +268,31 @@ void DlgAccounts::saveAccount(QListWidgetItem * item) ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); configurationManager.setActiveAudioCodecList(_codecList, account->getAccountDetail(ACCOUNT_ID)); kDebug() << "Account codec have been saved" << _codecList << account->getAccountDetail(ACCOUNT_ID); - + saveCredential(account->getAccountDetail(ACCOUNT_ID)); } void DlgAccounts::loadAccount(QListWidgetItem * item) { - if(! item ) { + if(! item ) { kDebug() << "Attempting to load details of an account from a NULL item"; - return; + return; } AccountView* account = accountList->getAccountByItem(item); - if(! account ) { + if(! account ) { kDebug() << "Attempting to load details of an unexisting account"; - return; + return; } edit1_alias->setText( account->getAccountDetail(ACCOUNT_ALIAS)); - + QString protocolsTab[] = ACCOUNT_TYPES_TAB; QList<QString> * protocolsList = new QList<QString>(); - for(int i = 0 ; i < (int) (sizeof(protocolsTab) / sizeof(QString)) ; i++) { + for(int i = 0 ; i < (int) (sizeof(protocolsTab) / sizeof(QString)) ; i++) { protocolsList->append(protocolsTab[i]); } - + QString accountName = account->getAccountDetail(ACCOUNT_TYPE); int protocolIndex = protocolsList->indexOf(accountName); delete protocolsList; @@ -300,7 +300,7 @@ void DlgAccounts::loadAccount(QListWidgetItem * item) loadCredentails(account->getAccountDetail(ACCOUNT_ID)); - + bool ok; int val = account->getAccountDetail(ACCOUNT_EXPIRE).toInt(&ok); spinbox_regExpire->setValue(ok ? val : ACCOUNT_EXPIRE_DEFAULT); @@ -309,8 +309,8 @@ void DlgAccounts::loadAccount(QListWidgetItem * item) edit5_password->setText( credentialList[0].password ); - - + + switch (account->getAccountDetail(TLS_METHOD ).toInt()) { case 0: //KEY_EXCHANGE_NONE checkbox_SDES_fallback_rtp->setVisible ( false ); @@ -367,14 +367,14 @@ void DlgAccounts::loadAccount(QListWidgetItem * item) /**/group_security_tls->setChecked ( (account->getAccountDetail( TLS_ENABLE ) == "true")?1:0 ); /**/combo_security_STRP->setCurrentIndex ( account->getAccountDetail( TLS_METHOD ).toInt() ); /* */ - + combo_tls_method->setCurrentIndex ( combo_tls_method->findText(account->getAccountDetail(TLS_METHOD ))); ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); comboBox_ni_local_address->clear(); QStringList interfaceList = configurationManager.getAllIpInterfaceByName(); comboBox_ni_local_address->addItems(interfaceList); - + spinBox_ni_local_port->setValue(account->getAccountDetail(LOCAL_PORT).toInt()); comboBox_ni_local_address->setCurrentIndex(comboBox_ni_local_address->findText(account->getAccountDetail(LOCAL_INTERFACE))); //TODO need to load the list first @@ -386,8 +386,8 @@ void DlgAccounts::loadAccount(QListWidgetItem * item) keditlistbox_codec->insertItem(_aCodec["alias"]); } } - - + + if(protocolIndex == 0) { // if sip selected checkbox_stun->setChecked(account->getAccountDetail(ACCOUNT_SIP_STUN_ENABLED) == ACCOUNT_ENABLED_TRUE); @@ -419,9 +419,9 @@ void DlgAccounts::loadAccountList() for (int i = 0; i < accountList->size(); ++i) { addAccountToAccountList((*accountList)[i]); } - if (listWidget_accountList->count() > 0 && listWidget_accountList->currentItem() == NULL) + if (listWidget_accountList->count() > 0 && listWidget_accountList->currentItem() == NULL) listWidget_accountList->setCurrentRow(0); - else + else frame2_editAccounts->setEnabled(false); } @@ -527,7 +527,7 @@ void DlgAccounts::updateAccountListCommands() if(listWidget_accountList->currentRow() == listWidget_accountList->count() - 1) { buttonsEnabled[1] = false; } - + button_accountUp->setEnabled ( buttonsEnabled[0] ); button_accountDown->setEnabled ( buttonsEnabled[1] ); button_accountAdd->setEnabled ( buttonsEnabled[2] ); @@ -546,8 +546,8 @@ void DlgAccounts::updateAccountStates() void DlgAccounts::updateStatusLabel(QListWidgetItem * item) { - if(! item ) { - return; + if(! item ) { + return; } AccountView* account = accountList->getAccountByItem(item); updateStatusLabel(account); @@ -555,8 +555,8 @@ void DlgAccounts::updateStatusLabel(QListWidgetItem * item) void DlgAccounts::updateStatusLabel(AccountView* account) { - if(! account ) { - return; + if(! account ) { + return; } QString status = account->getAccountDetail(ACCOUNT_STATUS); edit7_state->setText( "<FONT COLOR=\"" + account->getStateColorName() + "\">" + status + "</FONT>" ); @@ -585,12 +585,12 @@ void DlgAccounts::updateWidgets() accountListHasChanged = false; } -void DlgAccounts::loadCodecList() +void DlgAccounts::loadCodecList() { ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); QVector<int> codecIdList = configurationManager.getAudioCodecList(); QStringList tmpNameList; - + foreach (int aCodec, codecIdList) { QStringList codec = configurationManager.getAudioCodecDetails(aCodec); QHash<QString, QString> _codec; @@ -598,12 +598,12 @@ void DlgAccounts::loadCodecList() _codec[ "frequency" ] = codec[1]; _codec[ "bitrate" ] = codec[2]; _codec[ "id" ] = QString::number(aCodec); - + tmpNameList << _codec["name"]; - + codecList.push_back(_codec); } - + //Generate a relative alias for each codec for (int i =0; i < codecList.size();i++) { if (tmpNameList.indexOf(codecList[i]["name"]) == tmpNameList.lastIndexOf(codecList[i]["name"])) { @@ -616,7 +616,7 @@ void DlgAccounts::loadCodecList() } -void DlgAccounts::codecClicked(const QModelIndex& model) +void DlgAccounts::codecClicked(const QModelIndex& model) { Q_UNUSED(model) foreach (StringHash aCodec, codecList) { @@ -631,7 +631,7 @@ void DlgAccounts::codecClicked(const QModelIndex& model) keditlistbox_codec->addButton()->setEnabled(true); } -void DlgAccounts::addCodec(QString name) +void DlgAccounts::addCodec(QString name) { if (name.isEmpty()) { Private_AddCodecDialog* aDialog = new Private_AddCodecDialog(codecList, keditlistbox_codec->items(), this); @@ -645,18 +645,18 @@ void DlgAccounts::addCodec(QString name) } } -void DlgAccounts::codecChanged() +void DlgAccounts::codecChanged() { if (keditlistbox_codec->items().size() == codecList.size()) keditlistbox_codec->addButton()->setEnabled(false); else keditlistbox_codec->addButton()->setEnabled(true); - + accountListHasChanged = true; emit updateButtons(); } -void DlgAccounts::updateCombo(int value) +void DlgAccounts::updateCombo(int value) { Q_UNUSED(value) switch (combo_security_STRP->currentIndex()) { @@ -708,7 +708,7 @@ void DlgAccounts::saveCredential(QString accountId) { ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); //configurationManager.setNumberOfCredential(accountId, list_credential->count()); //TODO VectorMapStringString toReturn; - + for (int i=0; i < list_credential->count();i++) { QListWidgetItem* currentItem = list_credential->item(i); MapStringString credentialData; diff --git a/kde/src/conf/dlgaccounts.h b/kde/src/conf/dlgaccounts.h index eb3bb5b44a..39c64829e5 100755 --- a/kde/src/conf/dlgaccounts.h +++ b/kde/src/conf/dlgaccounts.h @@ -51,20 +51,20 @@ class Private_AddCodecDialog : public KDialog { Q_OBJECT public: Private_AddCodecDialog(QList< StringHash > itemList, QStringList currentItems ,QWidget* parent = 0); - + private: QTableWidget* codecTable; - + private slots: void emitNewCodec(); - + signals: void addCodec(QString alias); }; -/** - * @author Jérémy Quentin <jeremy.quentin@gmail.com> - * +/** + * @author Jérémy Quentin <jeremy.quentin@gmail.com> + * * \note see ticket #1309 for advices about how to improve this class. */ class DlgAccounts : public QWidget, public Ui_DlgAccountsBase @@ -74,23 +74,23 @@ public: DlgAccounts(KConfigDialog *parent = 0); void saveAccount(QListWidgetItem * item); - + /** - * Fills the settings form in the right side with the - * settings of @p item. - * - * \note When the user creates a new account, its accountDetails - * map is empty, so the form is filled with blank strings, - * zeros... And when the user clicks \e Apply , these settings are - * saved just after the account is created. So be careful the form - * is filled with the right default settings if blank (as 600 for - * registration expire). - * - * @param item the item with which to fill the settings form - * + * Fills the settings form in the right side with the + * settings of @p item. + * + * \note When the user creates a new account, its accountDetails + * map is empty, so the form is filled with blank strings, + * zeros... And when the user clicks \e Apply , these settings are + * saved just after the account is created. So be careful the form + * is filled with the right default settings if blank (as 600 for + * registration expire). + * + * @param item the item with which to fill the settings form + * */ void loadAccount(QListWidgetItem * item); - + private: ///Attributes ConfigAccountList* accountList ; @@ -108,7 +108,7 @@ public slots: bool hasChanged (); void updateSettings (); void updateWidgets (); - + private slots: void changedAccountList (); void connectAccountsChangedSignal (); @@ -123,7 +123,7 @@ private slots: void enablePublished (); void updateAccountStates (); void updateAccountListCommands (); - + void codecClicked ( const QModelIndex& model ); void updateStatusLabel ( QListWidgetItem* item ); void on_listWidget_accountList_currentItemChanged ( QListWidgetItem* current , QListWidgetItem * previous ); @@ -135,8 +135,8 @@ private slots: void loadCredentails ( QString accountId ); void saveCredential ( QString accountId ); void on_edit1_alias_textChanged ( const QString& text ); - - + + signals: void updateButtons(); diff --git a/kde/src/conf/dlgaudio.cpp b/kde/src/conf/dlgaudio.cpp index adf36b85eb..ae9bbd966f 100755 --- a/kde/src/conf/dlgaudio.cpp +++ b/kde/src/conf/dlgaudio.cpp @@ -32,19 +32,19 @@ DlgAudio::DlgAudio(KConfigDialog *parent) : QWidget(parent) { setupUi(this); - + KUrlRequester_ringtone->setMode(KFile::File | KFile::ExistingOnly); - KUrlRequester_ringtone->lineEdit()->setObjectName("kcfg_ringtone"); - KUrlRequester_ringtone->lineEdit()->setReadOnly(true); - + KUrlRequester_ringtone->lineEdit()->setObjectName("kcfg_ringtone"); + KUrlRequester_ringtone->lineEdit()->setReadOnly(true); + KUrlRequester_destinationFolder->setMode(KFile::Directory|KFile::ExistingOnly|KFile::LocalOnly); KUrlRequester_destinationFolder->setUrl(KUrl(QDir::home().path())); - KUrlRequester_destinationFolder->lineEdit()->setObjectName("kcfg_destinationFolder"); + KUrlRequester_destinationFolder->lineEdit()->setObjectName("kcfg_destinationFolder"); KUrlRequester_destinationFolder->lineEdit()->setReadOnly(true); - + connect( box_alsaPlugin, SIGNAL(activated(int)), parent, SLOT(updateButtons())); connect( this, SIGNAL(updateButtons()), parent, SLOT(updateButtons())); - + } @@ -63,7 +63,7 @@ void DlgAudio::updateSettings() //alsaPlugin ConfigurationSkeleton * skeleton = ConfigurationSkeleton::self(); skeleton->setAlsaPlugin(box_alsaPlugin->currentText()); - + //codecTableHasChanged = false; } @@ -79,24 +79,24 @@ void DlgAudio::loadAlsaSettings() ConfigurationManagerInterface& configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); if(QString(configurationManager.getAudioManager()) == "alsa") { ConfigurationSkeleton* skeleton = ConfigurationSkeleton::self(); - + int index = box_alsaPlugin->findText(skeleton->alsaPlugin()); if(index < 0) index = 0; QStringList pluginList = configurationManager.getAudioPluginList (); box_alsaPlugin->clear ( ); box_alsaPlugin->addItems ( pluginList ); box_alsaPlugin->setCurrentIndex ( index ); - + QStringList inputDeviceList = configurationManager.getAudioInputDeviceList (); kcfg_alsaInputDevice->clear ( ); kcfg_alsaInputDevice->addItems ( inputDeviceList ); kcfg_alsaInputDevice->setCurrentIndex ( skeleton->alsaInputDevice() ); - + QStringList outputDeviceList = configurationManager.getAudioOutputDeviceList (); kcfg_alsaOutputDevice->clear ( ); kcfg_alsaOutputDevice->addItems ( outputDeviceList ); kcfg_alsaOutputDevice->setCurrentIndex( skeleton->alsaOutputDevice() ); - + groupBox_alsa->setEnabled(true); } else { diff --git a/kde/src/conf/dlgaudio.h b/kde/src/conf/dlgaudio.h index c8873745b2..5b9a9885e3 100755 --- a/kde/src/conf/dlgaudio.h +++ b/kde/src/conf/dlgaudio.h @@ -45,18 +45,18 @@ public slots: void updateSettings(); bool hasChanged(); /** - * Loads the ALSA settings to fill the combo boxes - * of the ALSA settings. - * ALSA choices for input, output... can be load only - * when the daemon has set ALSA as sound manager. - * So we have to load these settings once the user choses - * ALSA. + * Loads the ALSA settings to fill the combo boxes + * of the ALSA settings. + * ALSA choices for input, output... can be load only + * when the daemon has set ALSA as sound manager. + * So we have to load these settings once the user choses + * ALSA. */ void loadAlsaSettings(); - + private slots: //void codecTableChanged(); - + signals: void updateButtons(); }; diff --git a/kde/src/conf/kcfg_settings.kcfgc b/kde/src/conf/kcfg_settings.kcfgc index 10b2271aa0..b14ca1863f 100755 --- a/kde/src/conf/kcfg_settings.kcfgc +++ b/kde/src/conf/kcfg_settings.kcfgc @@ -1,4 +1,4 @@ - + File=sflphone-client-kde.kcfg ClassName=ConfigurationSkeletonBase Singleton=true diff --git a/kde/src/conf/sflphone-client-kde.kcfg b/kde/src/conf/sflphone-client-kde.kcfg index 50eccb29a3..3bc1f21fb5 100755 --- a/kde/src/conf/sflphone-client-kde.kcfg +++ b/kde/src/conf/sflphone-client-kde.kcfg @@ -1,29 +1,29 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd"> -<kcfg> +<kcfg> <kcfgfile/> <group name="main"> <!-- General Settings --> - - <entry name="SIPPort" type="Int"> - <label>Defines the port that will be used for SIP communication.</label> + + <entry name="SIPPort" type="Int"> + <label>Defines the port that will be used for SIP communication.</label> <min> 1025 </min> <max> 65536 </max> - <default> 1025 </default> + <default> 1025 </default> + </entry> + <entry name="enableHistory" type="Bool"> + <label>Defines whether sflphone should keep a history of calls.</label> </entry> - <entry name="enableHistory" type="Bool"> - <label>Defines whether sflphone should keep a history of calls.</label> - </entry> - <entry name="historyMax" type="Int"> - <label>Defines the number of days the history has to be kept.</label> + <entry name="historyMax" type="Int"> + <label>Defines the number of days the history has to be kept.</label> <min> 1 </min> <max> 99 </max> - <default> 30 </default> - </entry> - + <default> 30 </default> + </entry> + <!-- Display Settings --> - + <entry name="notifOnCalls" type="Bool"> <label>Defines whether user should be notified when receiving a call.</label> </entry> @@ -51,9 +51,9 @@ <entry name="displayContactCallHistory" type="Bool"> <label>Defines if the individual contact history list is visible</label> </entry> - + <!-- Audio Settings --> - + <entry name="interface" type="Enum"> <label>Defines the Stun server to use.</label> <choices> @@ -67,7 +67,7 @@ <entry name="ringtone" type="Path"> <label>Defines which ringtone is used.</label> </entry> - <!-- + <!-- <entry name="activeCodecList" type="StringList"> <label>Defines which ALSA plugin to use.</label> </entry> @@ -84,9 +84,9 @@ <entry name="pulseAudioVolumeAlter" type="Bool"> <label>Defines whether pulse audio can mute other applications during a call.</label> </entry> - + <!-- Address Book Settings --> - + <entry name="enableAddressBook" type="Bool"> <label>Defines whether the search in KDE Address Book is enabled</label> </entry> @@ -110,15 +110,15 @@ <entry name="bookmarkList" type="StringList"> <label>List of bookmarked clients</label> </entry> - + <!-- Record Settings --> - + <entry name="destinationFolder" type="Path"> <label>Defines the destination directory for call recordings.</label> </entry> - + <!-- Hooks Settings --> - + <entry name="enableHooksSIP" type="Bool"> <label>Defines whether to enable hooks for SIP accounts.</label> </entry> @@ -137,5 +137,5 @@ <entry name="prepend" type="String"> <label>Defines the prefix to add.</label> </entry> - </group> + </group> </kcfg> diff --git a/kde/src/dbus/callmanager-introspec.xml b/kde/src/dbus/callmanager-introspec.xml index 645a776d00..a742426b77 100755 --- a/kde/src/dbus/callmanager-introspec.xml +++ b/kde/src/dbus/callmanager-introspec.xml @@ -206,7 +206,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join two participants together to create a 3-way conference including the current client.</p> - <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="sel_callID" direction="in"/> <arg type="s" name="drag_callID" direction="in"/> @@ -225,7 +225,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join a new particiant to an existing conference.</p> - <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="callID" direction="in"> <tp:docstring> @@ -304,7 +304,7 @@ conferences. <tp:rationale>To update client status, one should use <tp:member-ref>getParticipantList</tp:member-ref> - with provided conference IDs.</tp:rationale> + with provided conference IDs.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -324,7 +324,7 @@ </arg> </method> - <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> + <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> <tp:docstring> Tells whether or not a call is being recorded. </tp:docstring> @@ -342,7 +342,7 @@ <signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath"> <tp:docstring> - Once after starting recording for the first time, this signal is emited to + Once after starting recording for the first time, this signal is emited to provide the recorded file path to client application. </tp:docstring> <arg type="s" name="callID" /> @@ -383,7 +383,7 @@ <method name="getCallList" tp:name-for-bindings="getCallList"> <tp:docstring> Get the list of active calls. - <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> + <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -455,7 +455,7 @@ <signal name="incomingMessage" tp:name-for-bindings="incomingMessage"> <tp:docstring> - Notify clients that a new text message has been received. + Notify clients that a new text message has been received. </tp:docstring> <arg type="s" name="callID" /> <arg type="s" name="from" /> @@ -464,7 +464,7 @@ <signal name="callStateChanged" tp:name-for-bindings="callStateChanged"> <tp:docstring> - <p>Notify of a change in a call state.</p> + <p>Notify of a change in a call state.</p> <p>The client must subscribe to this signal.</p> </tp:docstring> <arg type="s" name="callID"> @@ -474,7 +474,7 @@ </arg> <arg type="s" name="state" > <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>INCOMING: Initial state of incoming calls</li> <li>RINGING: Initial state of received outgoing call</li> @@ -502,7 +502,7 @@ </arg> <arg type="s" name="state"> <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>ACTIVE_ATTACHED: SFLphone user is participating to this conference</li> @@ -636,7 +636,7 @@ The SIP or IAX2 message code </tp:docstring> </arg> - </signal> + </signal> <signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify"> <tp:docstring> @@ -656,7 +656,7 @@ <signal name="volumeChanged" tp:name-for-bindings="volumeChanged"> <tp:docstring> - <p>Notify clients of a volume level change.</p> + <p>Notify clients of a volume level change.</p> <p>This signal occurs only if ALSA is enabled since Pulseaudio streams are managed externally. </p> </tp:docstring> <arg type="s" name="device"> @@ -692,7 +692,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Signal sent on SDES session success. Media transmission is encripted - for this call only. It does not apply for a conference.</p> + for this call only. It does not apply for a conference.</p> <p>A conference can be considered to be secured if and only if each participant is secured.</p> </tp:docstring> @@ -702,7 +702,7 @@ <signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff"> <tp:added version="0.9.7"/> <tp:docstring> - <p>Sinal sent to notify that SDES session failed.</p> + <p>Sinal sent to notify that SDES session failed.</p> <p>Media transmission is not encrypted.</p> </tp:docstring> <arg type="s" name="callID" /> diff --git a/kde/src/icons/user-group-properties.svgz b/kde/src/icons/user-group-properties.svgz index edc81b9a6ef2ecc393c402a5def7ebb6ae75e832..136ef7f28cf3ec9c7ce4af9163835687e995c81a 100755 GIT binary patch delta 24 hcmcbAn)S|U)(z7ZZJxf!)^hXJ+hXFI-+cO91OTms4lDow delta 30 ncmca}n)Uu^)(z7ZF)D1Hw#e3!QDO7t+hXF33Y%Yk`dkD6;E@iA diff --git a/kde/src/icons/x-office-address-book.png b/kde/src/icons/x-office-address-book.png index fa1be70cd382a67ac38c1ae68caed83df6ce87ab..b677215ef856d740b6581de815405d0fbd0c1e29 100755 GIT binary patch delta 12 TcmcaCe@T9W2G?dyu2rl6ApQhf delta 14 Vcmca4e_4Km1{b5kW(}@YtN<rV1bYAg diff --git a/kde/src/main.cpp b/kde/src/main.cpp index dec3123eb8..f91419b4ff 100755 --- a/kde/src/main.cpp +++ b/kde/src/main.cpp @@ -56,11 +56,11 @@ static const char version[] = "1.0.2"; int main(int argc, char **argv) { - + try { KLocale::setMainCatalog("sflphone-client-kde"); - + KAboutData about( "sflphone-client-kde" , "sflphone-client-kde" , @@ -79,7 +79,7 @@ int main(int argc, char **argv) KCmdLineArgs::init(argc, argv, &about); KCmdLineOptions options; KCmdLineArgs::addCmdLineOptions(options); - + //configuration dbus TreeWidgetCallModel::init(); @@ -91,9 +91,9 @@ int main(int argc, char **argv) return 1; }; sflphoneWindow_->show(); - + int retVal = app.exec(); - + ConfigurationSkeleton* conf = ConfigurationSkeleton::self(); conf->writeConfig(); delete sflphoneWindow_; @@ -107,4 +107,4 @@ int main(int argc, char **argv) { kDebug() << msg; } -} +} diff --git a/kde/src/widgets/AccountItemWidget.cpp b/kde/src/widgets/AccountItemWidget.cpp index 1adfabc300..7be1cf55fb 100755 --- a/kde/src/widgets/AccountItemWidget.cpp +++ b/kde/src/widgets/AccountItemWidget.cpp @@ -37,11 +37,11 @@ AccountItemWidget::AccountItemWidget(QWidget *parent) { m_pCheckBox = new QCheckBox(this); m_pCheckBox->setObjectName("m_pCheckBox"); - + m_pLed = new QLabel(); m_pLed->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); m_pTextLabel = new QLabel(); - + QSpacerItem* horizontalSpacer = new QSpacerItem(16777215, 20, QSizePolicy::Preferred, QSizePolicy::Minimum); QHBoxLayout* hlayout = new QHBoxLayout(); hlayout->setContentsMargins( 0,0,0,0 ); @@ -49,12 +49,12 @@ AccountItemWidget::AccountItemWidget(QWidget *parent) hlayout->addWidget ( m_pTextLabel ); hlayout->addItem ( horizontalSpacer ); hlayout->addWidget ( m_pLed ); - + this->setLayout(hlayout); m_State = Unregistered; m_Enabled = false; updateDisplay(); - + QMetaObject::connectSlotsByName(this); } diff --git a/kde/src/widgets/AccountItemWidget.h b/kde/src/widgets/AccountItemWidget.h index e2d1659a8c..8b5cabe200 100755 --- a/kde/src/widgets/AccountItemWidget.h +++ b/kde/src/widgets/AccountItemWidget.h @@ -18,7 +18,7 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ - + #ifndef ACCOUNTITEMWIDGET_H #define ACCOUNTITEMWIDGET_H @@ -43,17 +43,17 @@ public: //Getters int getState (); bool getEnabled(); - + //Setters void setState (int state ); void setEnabled (bool enabled ); void setAccountText (const QString& text ); - + //Updates void updateStateDisplay (); void updateEnabledDisplay (); void updateDisplay (); - + private: //Attributes int m_State ; @@ -61,10 +61,10 @@ private: QLabel* m_pLed ; QCheckBox* m_pCheckBox ; QLabel* m_pTextLabel; - -private slots: + +private slots: void on_m_pCheckBox_stateChanged(int state); - + signals: void checkStateChanged(bool checked); diff --git a/kde/src/widgets/BookmarkDock.cpp b/kde/src/widgets/BookmarkDock.cpp index 1d255a012b..37638d7aae 100644 --- a/kde/src/widgets/BookmarkDock.cpp +++ b/kde/src/widgets/BookmarkDock.cpp @@ -62,7 +62,7 @@ BookmarkDock::BookmarkDock(QWidget* parent) : QDockWidget(parent) setObjectName("bookmarkDock"); setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum); setMinimumSize(250,0); - + m_pFilterLE = new KLineEdit(this); m_pSplitter = new QSplitter(Qt::Vertical,this); m_pItemView = new QTreeWidget(this); @@ -75,10 +75,10 @@ BookmarkDock::BookmarkDock(QWidget* parent) : QDockWidget(parent) mainLayout->addWidget(m_pSplitter); m_pSplitter->addWidget(m_pItemView); mainLayout->addWidget(m_pFilterLE); - + m_pSplitter->setChildrenCollapsible(true); m_pSplitter->setStretchFactor(0,7); - + setWindowTitle(i18n("Bookmark")); m_pItemView->headerItem()->setText(0,i18n("Bookmark") ); @@ -92,7 +92,7 @@ BookmarkDock::BookmarkDock(QWidget* parent) : QDockWidget(parent) ///Destructor BookmarkDock::~BookmarkDock() { - + } diff --git a/kde/src/widgets/CallTreeItem.cpp b/kde/src/widgets/CallTreeItem.cpp index 67e4918f09..223cacfbdb 100644 --- a/kde/src/widgets/CallTreeItem.cpp +++ b/kde/src/widgets/CallTreeItem.cpp @@ -65,7 +65,7 @@ CallTreeItem::CallTreeItem(QWidget *parent) ///Destructor CallTreeItem::~CallTreeItem() { - + } @@ -93,7 +93,7 @@ void CallTreeItem::setCall(Call *call) { m_pItemCall = call; setAcceptDrops(true); - + if (m_pItemCall->isConference()) { if (!m_Init) { m_pHistoryPeerL = new QLabel(i18n("Conference"),this); @@ -116,11 +116,11 @@ void CallTreeItem::setCall(Call *call) m_pTransferNumberL = new QLabel(); m_pPeerL = new QLabel(); QSpacerItem* verticalSpacer = new QSpacerItem(16777215, 20, QSizePolicy::Expanding, QSizePolicy::Expanding); - + QHBoxLayout* mainLayout = new QHBoxLayout(); mainLayout->setContentsMargins ( 3, 1, 2, 1); - + m_pBtnConf = new TranslucentButtons(this); m_pBtnConf->setVisible(false); m_pBtnConf->setParent(this); @@ -133,12 +133,12 @@ void CallTreeItem::setCall(Call *call) m_pBtnTrans->setVisible(false); m_pBtnTrans->setPixmap(new QImage(KStandardDirs::locate("data","sflphone-client-kde/transferarraw.png"))); connect(m_pBtnTrans,SIGNAL(dataDropped(QMimeData*)),this,SLOT(transferEvent(QMimeData*))); - + m_pCodecL = new QLabel(this); //m_pCodecL->setText("Codec: "+m_pItemCall->getCurrentCodecName()); m_pSecureL = new QLabel(this); - + mainLayout->setSpacing(4); QVBoxLayout* descr = new QVBoxLayout(); descr->setMargin(1); @@ -147,7 +147,7 @@ void CallTreeItem::setCall(Call *call) transfer->setMargin(0); transfer->setSpacing(0); mainLayout->addWidget(m_pIconL); - + if(! m_pItemCall->getPeerName().isEmpty()) { m_pPeerL->setText(m_pItemCall->getPeerName()); descr->addWidget(m_pPeerL); @@ -161,7 +161,7 @@ void CallTreeItem::setCall(Call *call) descr->addLayout(transfer); descr->addItem(verticalSpacer); mainLayout->addLayout(descr); - + setLayout(mainLayout); setMinimumSize(QSize(50, 30)); @@ -190,7 +190,7 @@ void CallTreeItem::updated() m_pPeerL->setText(i18n("<b>Unknow</b>")); } } - + call_state state = m_pItemCall->getState(); bool recording = m_pItemCall->getRecording(); if(state != CALL_STATE_OVER) { @@ -210,7 +210,7 @@ void CallTreeItem::updated() } m_pTransferNumberL->setText(m_pItemCall->getTransferNumber()); m_pCallNumberL->setText(m_pItemCall->getPeerPhoneNumber()); - + if(state == CALL_STATE_DIALING) { m_pCallNumberL->setText(m_pItemCall->getCallNumber()); } @@ -309,7 +309,7 @@ void CallTreeItem::resizeEvent ( QResizeEvent *e ) m_pBtnTrans->move(width()/2+10,m_pBtnTrans->y()+2); m_pBtnConf->move(10,m_pBtnConf->y()+2); } - + e->accept(); } diff --git a/kde/src/widgets/CallTreeItem.h b/kde/src/widgets/CallTreeItem.h index 22b23540bf..93c881245c 100644 --- a/kde/src/widgets/CallTreeItem.h +++ b/kde/src/widgets/CallTreeItem.h @@ -56,7 +56,7 @@ class CallTreeItem : public QWidget //Const static const char* callStateIcons[12]; - + private: //Attributes Call* m_pItemCall; @@ -72,7 +72,7 @@ class CallTreeItem : public QWidget QLabel* m_pHistoryPeerL; TranslucentButtons* m_pBtnConf; TranslucentButtons* m_pBtnTrans; - + protected: //Reimplementation virtual void dragEnterEvent ( QDragEnterEvent *e ); @@ -88,7 +88,7 @@ private slots: public slots: void updated(); - + signals: void over(Call*); void changed(); diff --git a/kde/src/widgets/ContactDock.cpp b/kde/src/widgets/ContactDock.cpp index cf95ee6cc4..bce78d16d8 100644 --- a/kde/src/widgets/ContactDock.cpp +++ b/kde/src/widgets/ContactDock.cpp @@ -130,7 +130,7 @@ ContactDock::ContactDock(QWidget* parent) : QDockWidget(parent) m_pSplitter->setChildrenCollapsible(true); m_pSplitter->setStretchFactor(0,7); - + connect (AkonadiBackend::getInstance(),SIGNAL(collectionChanged()), this, SLOT(reloadContact() )); connect (m_pContactView, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),this, SLOT(loadContactHistory(QTreeWidgetItem*) )); connect (m_pFilterLE, SIGNAL(textChanged(QString)), this, SLOT(filter(QString) )); @@ -273,7 +273,7 @@ bool ContactTree::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeDa * * ****************************************************************************/ -///Show or hide the history list +///Show or hide the history list void ContactDock::setHistoryVisible(bool visible) { kDebug() << "Toggling history visibility"; diff --git a/kde/src/widgets/ContactDock.h b/kde/src/widgets/ContactDock.h index 014d891520..b19f9c7514 100644 --- a/kde/src/widgets/ContactDock.h +++ b/kde/src/widgets/ContactDock.h @@ -58,7 +58,7 @@ public: //Constructor ContactDock(QWidget* parent); virtual ~ContactDock(); - + private: //Attributes KLineEdit* m_pFilterLE; @@ -68,10 +68,10 @@ private: QComboBox* m_pSortByCBB; QCheckBox* m_pShowHistoCK; QList<ContactItemWidget*> m_Contacts; - + public slots: virtual void keyPressEvent(QKeyEvent* event); - + private slots: void reloadContact(); void loadContactHistory(QTreeWidgetItem* item); @@ -96,13 +96,13 @@ public: KeyPressEaterC(ContactDock* parent) : QObject(parent) { m_pDock = parent; } - + protected: bool eventFilter(QObject *obj, QEvent *event); - + private: ContactDock* m_pDock; - + }; #endif \ No newline at end of file diff --git a/kde/src/widgets/ContactItemWidget.cpp b/kde/src/widgets/ContactItemWidget.cpp index a59ee82c4c..db15eaa48b 100644 --- a/kde/src/widgets/ContactItemWidget.cpp +++ b/kde/src/widgets/ContactItemWidget.cpp @@ -57,22 +57,22 @@ ContactItemWidget::ContactItemWidget(QWidget *parent) m_pCallAgain->setShortcut ( Qt::CTRL + Qt::Key_Enter ); m_pCallAgain->setText ( i18n("Call Again") ); m_pCallAgain->setIcon ( KIcon(ICON_DIALING) ); - + m_pEditContact = new KAction(this); m_pEditContact->setShortcut ( Qt::CTRL + Qt::Key_E ); m_pEditContact->setText ( i18n("Edit contact") ); m_pEditContact->setIcon ( KIcon("contact-new") ); - + m_pCopy = new KAction(this); m_pCopy->setShortcut ( Qt::CTRL + Qt::Key_C ); m_pCopy->setText ( i18n("Copy") ); m_pCopy->setIcon ( KIcon("edit-copy") ); - + m_pEmail = new KAction(this); m_pEmail->setShortcut ( Qt::CTRL + Qt::Key_M ); m_pEmail->setText ( i18n("Send Email") ); m_pEmail->setIcon ( KIcon("mail-message-new") ); - + m_pAddPhone = new KAction(this); m_pAddPhone->setShortcut ( Qt::CTRL + Qt::Key_N ); m_pAddPhone->setText ( i18n("Add Phone Number") ); @@ -113,7 +113,7 @@ void ContactItemWidget::setContact(Contact* contact) m_pOrganizationL = new QLabel ( this ); m_pEmailL = new QLabel ( ); m_pCallNumberL = new QLabel ( this ); - + m_pIconL->setMinimumSize(70,48); m_pIconL->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); @@ -170,7 +170,7 @@ void ContactItemWidget::updated() else { m_pEmailL->setVisible(false); } - + PhoneNumbers numbers = m_pContactKA->getPhoneNumbers(); foreach (Contact::PhoneNumber* number, numbers) { kDebug() << "Phone:" << number->getNumber() << number->getType(); diff --git a/kde/src/widgets/ContactItemWidget.h b/kde/src/widgets/ContactItemWidget.h index fbbe3be356..eeaf078b3b 100644 --- a/kde/src/widgets/ContactItemWidget.h +++ b/kde/src/widgets/ContactItemWidget.h @@ -87,7 +87,7 @@ class ContactItemWidget : public QWidget public slots: void updated(); - + private slots: void showContext(const QPoint& pos); void sendEmail (); diff --git a/kde/src/widgets/Dialpad.cpp b/kde/src/widgets/Dialpad.cpp index 1f7d70404a..2db664f43d 100755 --- a/kde/src/widgets/Dialpad.cpp +++ b/kde/src/widgets/Dialpad.cpp @@ -31,11 +31,11 @@ const char* Dialpad::m_pNumbers[] = "4", "5", "6", "7", "8", "9", "*", "0", "#"}; - + const char* Dialpad::m_pTexts[12] = { "" , "abc", "def" , - "ghi" , "jkl", "mno" , - "pqrs", "tuv", "wxyz", + "ghi" , "jkl", "mno" , + "pqrs", "tuv", "wxyz", "" , "" , "" }; ///Constructor diff --git a/kde/src/widgets/Dialpad.h b/kde/src/widgets/Dialpad.h index fbccc35edf..9c6a2672e3 100755 --- a/kde/src/widgets/Dialpad.h +++ b/kde/src/widgets/Dialpad.h @@ -59,7 +59,7 @@ private: static const int m_Spacing = 5 ; static const int m_NumberSize = 14 ; static const int m_TextSize = 8 ; - + public: Dialpad(QWidget *parent = 0); diff --git a/kde/src/widgets/HistoryDock.cpp b/kde/src/widgets/HistoryDock.cpp index b13754fdc8..165759f7c6 100644 --- a/kde/src/widgets/HistoryDock.cpp +++ b/kde/src/widgets/HistoryDock.cpp @@ -96,7 +96,7 @@ HistoryDock::HistoryDock(QWidget* parent) : QDockWidget(parent) m_pToDW = new KDateWidget(); m_pAllTimeCB = new QCheckBox(i18n("Display all")); m_pLinkPB = new QPushButton(this); - + m_pAllTimeCB->setChecked(ConfigurationSkeleton::displayDataRange()); enableDateRange(ConfigurationSkeleton::displayDataRange()); @@ -105,7 +105,7 @@ HistoryDock::HistoryDock(QWidget* parent) : QDockWidget(parent) m_pLinkPB->setMaximumSize(20,9999999); m_pLinkPB->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding); m_pLinkPB->setCheckable(true); - + m_pItemView->headerItem()->setText(0,i18n("Calls") ); m_pItemView->header ()->setClickable(true ); m_pItemView->header ()->setSortIndicatorShown(true ); @@ -117,7 +117,7 @@ HistoryDock::HistoryDock(QWidget* parent) : QDockWidget(parent) m_pFilterLE->setPlaceholderText(i18n("Filter")); m_pFilterLE->setClearButtonShown(true); - + QStringList sortBy; sortBy << "Date" << "Name" << "Popularity" << "Duration"; m_pSortByCBB->addItems(sortBy); @@ -137,12 +137,12 @@ HistoryDock::HistoryDock(QWidget* parent) : QDockWidget(parent) mainLayout->addWidget(m_pToDW ,5,0,1,2 ); mainLayout->addWidget(m_pItemView ,6,0,1,3 ); mainLayout->addWidget(m_pFilterLE ,7,0,1,3 ); - + setWindowTitle(i18n("History")); QDate date(2000,1,1); m_pFromDW->setDate(date); - + reload(); m_CurrentFromDate = m_pFromDW->date(); m_CurrentToDate = m_pToDW->date(); @@ -269,7 +269,7 @@ void HistoryDock::enableDateRange(bool enable) m_pFromDW->setVisible(enable); m_pToDW->setVisible(enable); m_pLinkPB->setVisible(enable); - + ConfigurationSkeleton::setDisplayDataRange(enable); } @@ -329,7 +329,7 @@ void HistoryDock::updateLinkedToDate(QDate date) * * ****************************************************************************/ -///Generate serializerd version of the content +///Generate serializerd version of the content QMimeData* HistoryTree::mimeData( const QList<QTreeWidgetItem *> items) const { kDebug() << "An history call is being dragged"; diff --git a/kde/src/widgets/HistoryDock.h b/kde/src/widgets/HistoryDock.h index f7b6663c98..e331b476e3 100644 --- a/kde/src/widgets/HistoryDock.h +++ b/kde/src/widgets/HistoryDock.h @@ -48,7 +48,7 @@ typedef QList<HistoryTreeItem*> HistoryList; ///@class HistoryDock Dock to see the previous SFLPhone calls class HistoryDock : public QDockWidget { Q_OBJECT - + public: //Friends friend class KeyPressEater; @@ -56,7 +56,7 @@ public: //Constructors HistoryDock(QWidget* parent); virtual ~HistoryDock(); - + private: //Enum enum SortBy { @@ -86,7 +86,7 @@ private: //Mutator void updateLinkedDate(KDateWidget* item, QDate& prevDate, QDate& newDate); - + public slots: void enableDateRange(bool enable); virtual void keyPressEvent(QKeyEvent* event); diff --git a/kde/src/widgets/HistoryTreeItem.cpp b/kde/src/widgets/HistoryTreeItem.cpp index f082620898..86d24c424a 100644 --- a/kde/src/widgets/HistoryTreeItem.cpp +++ b/kde/src/widgets/HistoryTreeItem.cpp @@ -58,7 +58,7 @@ HistoryTreeItem::HistoryTreeItem(QWidget *parent ,QString phone) m_pEmail = new KAction(this); m_pAddToContact = new KAction(this); m_pBookmark = new KAction(this); - + m_pCallAgain->setShortcut ( Qt::CTRL + Qt::Key_Enter ); m_pCallAgain->setText ( i18n("Call Again") ); m_pCallAgain->setIcon ( KIcon(ICON_DIALING) ); @@ -67,16 +67,16 @@ HistoryTreeItem::HistoryTreeItem(QWidget *parent ,QString phone) m_pAddToContact->setText ( i18n("Add Number to Contact") ); m_pAddToContact->setIcon ( KIcon("list-resource-add") ); m_pAddToContact->setDisabled ( true ); - + m_pAddContact->setShortcut ( Qt::CTRL + Qt::Key_E ); m_pAddContact->setText ( i18n("Add Contact") ); m_pAddContact->setIcon ( KIcon("contact-new") ); - + m_pCopy->setShortcut ( Qt::CTRL + Qt::Key_C ); m_pCopy->setText ( i18n("Copy") ); m_pCopy->setIcon ( KIcon("edit-copy") ); m_pCopy->setDisabled ( true ); - + m_pEmail->setShortcut ( Qt::CTRL + Qt::Key_M ); m_pEmail->setText ( i18n("Send Email") ); m_pEmail->setIcon ( KIcon("mail-message-new") ); @@ -99,7 +99,7 @@ HistoryTreeItem::HistoryTreeItem(QWidget *parent ,QString phone) m_pCallNumberL = new QLabel( this ); m_pDurationL = new QLabel( this ); m_pTimeL = new QLabel( this ); - + m_pIconL->setMinimumSize(70,48); m_pIconL->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); QSpacerItem* verticalSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Expanding); @@ -124,7 +124,7 @@ HistoryTreeItem::HistoryTreeItem(QWidget *parent ,QString phone) ///Destructor HistoryTreeItem::~HistoryTreeItem() { - + } @@ -159,12 +159,12 @@ void HistoryTreeItem::updated() m_pIconL->setPixmap(QPixmap(str)); } m_pCallNumberL->setText(m_pItemCall->getPeerPhoneNumber()); - + if(state == CALL_STATE_DIALING) { m_pCallNumberL->setText(m_pItemCall->getCallNumber()); } } - + } ///Show the context menu @@ -239,12 +239,12 @@ void HistoryTreeItem::bookmark() void HistoryTreeItem::setCall(Call *call) { m_pItemCall = call; - + if (m_pItemCall->isConference()) { m_pIconL->setVisible(true); return; } - + m_pCallNumberL->setText(m_pItemCall->getPeerPhoneNumber()); m_pTimeL->setText(QDateTime::fromTime_t(m_pItemCall->getStartTimeStamp().toUInt()).toString()); diff --git a/kde/src/widgets/HistoryTreeItem.h b/kde/src/widgets/HistoryTreeItem.h index 54671f924b..808d394abc 100644 --- a/kde/src/widgets/HistoryTreeItem.h +++ b/kde/src/widgets/HistoryTreeItem.h @@ -49,7 +49,7 @@ class HistoryTreeItem : public QWidget //Constructor HistoryTreeItem(QWidget* parent =0, QString phone = ""); ~HistoryTreeItem(); - + //Getters Call* call () const; uint getTimeStamp (); @@ -64,7 +64,7 @@ class HistoryTreeItem : public QWidget //Const static const char * callStateIcons[12]; - + private: //Attributes Call* m_pItemCall ; @@ -87,12 +87,12 @@ class HistoryTreeItem : public QWidget uint m_Duration ; QString m_Name ; QString m_PhoneNumber ; - + QTreeWidgetItem* m_pItem; public slots: void updated(); - + private slots: void showContext(const QPoint& pos); void sendEmail(); @@ -102,7 +102,7 @@ private slots: void addToContact(); void bookmark(); bool getContactInfo(QString phone); - + signals: void over(Call*); }; diff --git a/kde/src/widgets/TranslucentButtons.cpp b/kde/src/widgets/TranslucentButtons.cpp index a75fdb3f6c..9c23c3741c 100644 --- a/kde/src/widgets/TranslucentButtons.cpp +++ b/kde/src/widgets/TranslucentButtons.cpp @@ -20,7 +20,7 @@ TranslucentButtons::TranslucentButtons(QWidget* parent):QPushButton(parent),m_en ///Destructor TranslucentButtons::~TranslucentButtons() { - + } ///How to paint diff --git a/kde/src/widgets/TranslucentButtons.h b/kde/src/widgets/TranslucentButtons.h index 50585294dd..8176c54452 100644 --- a/kde/src/widgets/TranslucentButtons.h +++ b/kde/src/widgets/TranslucentButtons.h @@ -19,7 +19,7 @@ public: //Setters void setHoverState(bool hover); void setPixmap(QImage* img); - + protected: //Reimplementation virtual void paintEvent(QPaintEvent* event); @@ -27,7 +27,7 @@ protected: virtual void dragMoveEvent ( QDragMoveEvent *e ); virtual void dragLeaveEvent ( QDragLeaveEvent *e ); virtual void dropEvent ( QDropEvent *e ); - + private: //Attributes bool m_enabled ; @@ -37,7 +37,7 @@ private: QPen m_Pen ; bool m_CurrentState; QImage* m_pImg ; - + public slots: void setVisible(bool enabled); private slots: diff --git a/plugins/addressbook/evolution/addressbook.c b/plugins/addressbook/evolution/addressbook.c index f9ae969f09..197c6102af 100644 --- a/plugins/addressbook/evolution/addressbook.c +++ b/plugins/addressbook/evolution/addressbook.c @@ -39,7 +39,7 @@ void addressbook_search (void (*search_cb)(GList *, gpointer), GtkEntry* entry, AddressBook_Config *addressbook_config) { - search_async_by_contacts (gtk_entry_get_text(entry), + search_async_by_contacts (gtk_entry_get_text(entry), addressbook_config->max_results, search_cb, addressbook_config); @@ -89,9 +89,9 @@ addressbook_get_books_data(gchar **book_list) } book_data_t * -addressbook_get_book_data_by_uid(gchar *uid) +addressbook_get_book_data_by_uid(gchar *uid) { - return books_get_book_data_by_uid (uid); + return books_get_book_data_by_uid (uid); } /** diff --git a/plugins/configure.ac b/plugins/configure.ac index 7c0cd8b9ad..a0e7c2f681 100644 --- a/plugins/configure.ac +++ b/plugins/configure.ac @@ -43,7 +43,7 @@ PKG_CHECK_MODULES([LIBEDATASERVER], [libedataserver-1.2 >= 2.32], ) AC_CONFIG_FILES([ -Makefile +Makefile addressbook/evolution/Makefile addressbook/Makefile ]) diff --git a/tools/build-package.sh b/tools/build-package.sh index 215d8545c0..327ba8987d 100755 --- a/tools/build-package.sh +++ b/tools/build-package.sh @@ -3,17 +3,17 @@ # @author: Yun Liu <yun.liu@savoirfairelinux.com> # # Build sflphone rpm packages for Fedora 10 and openSUSE 11 -# 1 - The SFLphone package must be build with a specific GnuPG key. Please contact us to have more information about that (<sflphoneteam@savoirfairelinux.com>) +# 1 - The SFLphone package must be build with a specific GnuPG key. Please contact us to have more information about that (<sflphoneteam@savoirfairelinux.com>) # 2. The source code can be teched through anonymous http access. So no need of special access. # 3. After having all the prerequisites, you can run "build-rpm-package.sh" to build rpm packages for sflphone. -# +# # Refer to http://www.sflphone.org for futher information # Analyze parameters if [ "$1" == "--help" ] || [ "$1" == "" ];then echo -e '\E[34mThis script is used to build sflphone rpm packages on ubuntu series(8.04,8,10,9), Fedora 10 and SUSE 11 platform.' echo -e '\E[34mYou can add --fedora, --suse or --ubuntu to start packaging.' - echo + echo echo "The SFLphone package must be build with a specific GnuPG key. Please contact us to have more information about that (<sflphoneteam@savoirfairelinux.com>)" echo echo "For fedora and SUSE, you also need to add the following lines to $HOME/.rpmmacros:" diff --git a/tools/build-system/automatic-build-machine.sh b/tools/build-system/automatic-build-machine.sh index 66882c3569..f019f7d86c 100755 --- a/tools/build-system/automatic-build-machine.sh +++ b/tools/build-system/automatic-build-machine.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-04-20 # Last Modified: diff --git a/tools/build-system/build-osc.sh b/tools/build-system/build-osc.sh index 55d1cda900..559173b50e 100755 --- a/tools/build-system/build-osc.sh +++ b/tools/build-system/build-osc.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-11-02 # Last Modified: 2010-05-27 17:39:58 -0400 @@ -39,7 +39,7 @@ do echo Copy package in current directory ${OSC_DIR}/${LAUNCHPAD_PACKAGE}* cp ${OSC_DIR}/${LAUNCHPAD_PACKAGE}* . - echo + echo sed -i -e "s/VERSION_INDEX/${VERSION_INDEX}/g" -e "s/VERSION/${SOFTWARE_VERSION}/g" ${LAUNCHPAD_PACKAGE}.spec echo Create tar ball ${LAUNCHPAD_PACKAGE}-${SOFTWARE_VERSION}.tar.gz @@ -52,7 +52,7 @@ do osc add ${LAUNCHPAD_PACKAGE}-${SOFTWARE_VERSION}.tar.gz osc add *.patch - echo OSC Commit + echo OSC Commit yes | osc commit --force -m "Version ${SOFTWARE_VERSION}" done diff --git a/tools/build-system/init-osc.sh b/tools/build-system/init-osc.sh index eb3b80aa80..88f93e9d80 100755 --- a/tools/build-system/init-osc.sh +++ b/tools/build-system/init-osc.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-11-02 # Last Modified: diff --git a/tools/build-system/launch-build-machine-2.sh b/tools/build-system/launch-build-machine-2.sh index 7020d26b10..70b93f23a4 100755 --- a/tools/build-system/launch-build-machine-2.sh +++ b/tools/build-system/launch-build-machine-2.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-10-20 # Last Modified: 2010-04-22 16:42:57 -0400 @@ -187,7 +187,7 @@ do DEBIAN_DIR="${LAUNCHPAD_DIR}/${LAUNCHPAD_PACKAGE}/debian" echo " --> Clean debian directory" - git checkout ${DEBIAN_DIR} + git checkout ${DEBIAN_DIR} echo " --> Retrieve new sources" DIRNAME=`get_dir_name ${LAUNCHPAD_PACKAGE}` diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler index 727ef0f93c..c3686ff804 100755 --- a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler +++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler @@ -19,7 +19,7 @@ if [ -f "$RESFILE" ]; then # Use first account declared in sflphone config ACCOUNTID="`grep -m 1 Account: $RESFILE | sed -e 's/\[//' -e 's/\]//'`" - fi + fi else echo Fatal: Cant find sflphonedrc config file. @@ -32,11 +32,11 @@ if [ -z $1 ]; then exit 1 fi -# Cleanup destination, keeping numbers only +# Cleanup destination, keeping numbers only TO="`echo $1 | sed -e 's/[^0123456789]//g'`" # Generate call id. -CALLID=${RANDOM}$$ +CALLID=${RANDOM}$$ dbus-send \ --type="method_call" \ diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css index c154c52006..89a400e72f 100644 --- a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css +++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css @@ -5,12 +5,12 @@ #idTelify_popup_dial .menu-iconic-icon { width: 22px; height: 15px; -} +} #idTelify_popup_context .menu-iconic-icon { width: 22px; height: 15px; -} +} .tmpl_empty { color: #a0a0a0; diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/243.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/243.png index a0673c0e4e2786360e76bcd6ff6d65f8b29b7184..9cd944fecdc3a410a6b685511e5661600c7345ce 100644 GIT binary patch delta 12 Tcmew(^;>F#FVAK_9z8|?B+UeI delta 14 Vcmew@^+#%hFAt-_W?vpXMgS}L1d#v$ diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/244.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/244.png index 923e1368ef2a83749ad67facd7ce688a2409615a..64cd624bcb16e744dbad7459526a24b1d3a96da7 100644 GIT binary patch delta 10 Rcmey)^o?mk-o|_mMgSWq1Q`GT delta 12 Tcmeyy^qpx!9;3p>JPt+xA*lp8 diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/247.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/247.png index 9318eb8fe70febc98c026e9a4ffd1afa3d3208d2..9714e588249b3295e67272e2b14d533882fc0a69 100644 GIT binary patch delta 12 TcmbOuJ6m=`6!+$6ZbxPS9d`rd delta 14 VcmbO&J4bdy6gQ*7<|uAQW&k5b1Oxy8 diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/357.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/357.png index 1689fcbf67274bedecbd967d0df7d45ac3c6b5d5..209b5f073cb42653929fa4426cb3e92a49f8c3d0 100644 GIT binary patch delta 11 TcmaDQ{!)CyTdv9Pxc&eDB%TH^ delta 13 VcmaDU{z`nqTP{Y0$#1#-001nJ22cP1 diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/44.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/44.png index 9318eb8fe70febc98c026e9a4ffd1afa3d3208d2..9714e588249b3295e67272e2b14d533882fc0a69 100644 GIT binary patch delta 12 TcmbOuJ6m=`6!+$6ZbxPS9d`rd delta 14 VcmbO&J4bdy6gQ*7<|uAQW&k5b1Oxy8 diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/500.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/500.png index 55137c4ae14ab41c4b4f6fa1e89899c1ee636aa8..e73802c19bb3b2d8354550c19d52c0e5f915cb32 100644 GIT binary patch delta 12 UcmZ23xlD4y7p~1;xi&EZ040tElK=n! delta 14 WcmZ1`xm<F?7cNGH&0n}SF#-TAs|B+F diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/976.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/976.png index 21114e73be7e073336806f993c469c1022d8e302..57d20aec04316e3644230e01a28fed71b1734771 100644 GIT binary patch delta 11 ScmbO$K1Y0m2=`=B?hXJJj0182 delta 13 UcmbOuK39B$2sfj`WD)KT02`YFk^lez diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd index 7dd845151d..0af8755f0e 100644 --- a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd +++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd @@ -36,4 +36,3 @@ <!ENTITY dialog.config.opentype1 "in a new window"> <!ENTITY dialog.config.opentype2 "in a new tab without focus"> <!ENTITY dialog.config.opentype3 "in a new tab with focus"> - \ No newline at end of file diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/rules b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/rules index 8522b9ee02..d002bc2839 100755 --- a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/rules +++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/rules @@ -40,7 +40,7 @@ binary-indep: build install dh_testdir dh_testroot dh_installchangelogs -i - dh_link -i + dh_link -i dh_compress -XMPL -i dh_fixperms -i dh_installdeb -i diff --git a/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog b/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog index f85fb80ecd..d7513f0170 100644 --- a/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog +++ b/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog @@ -2687,7 +2687,7 @@ sflphone-client-gnome (0.9.4-0ubuntu2) SYSTEM; urgency=low [ Emmanuel Milou ] * Fix bug #1090 - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Wed, 8 Apr 2009 11:29:15 -0500 sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low @@ -2699,7 +2699,7 @@ sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low * Protect case when no codecs are active * Fix some return values * Add unitary tests for the hook manager (premisces) - + [Yun Liu] * Update chinese translation @@ -2832,7 +2832,7 @@ sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low * Update spanish translation [Yun Liu ] - * Update chinese translation + * Update chinese translation [ Hussein Abdallah ] * Update russian translation @@ -3000,10 +3000,10 @@ sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low [ Emmanuel Milou ] * add german translation - + [ Yun Liu ] * Fix GUI crash in Ubuntu8.10 64bit system - + -- Yun Liu <yun.liu@savoirfairelinux.com> Thu, 08 Jan 2009 13:08:51 -0500 sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low @@ -3012,16 +3012,16 @@ sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low * The main thread synchronizes the ringtone thread * disable custom ringtone for the ALSA layer * Fix the Makefile.am in man directory, add a SEE ALSO section - + [ Yun Liu ] * Fix daemon crash caused by the previous patch ( for bug ticket #129) - + -- Yun Liu <yun.liu@savoirfairelinux.com> Tue, 06 Jan 2009 16:18:38 -0500 sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low - + * Fix bug ticket #129 - + -- Yun Liu <yun.liu@savoirfairelinux.com> Wed, 5 Jan 2009 15:54:53 -0500 sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low @@ -3069,7 +3069,7 @@ sflphone (0.9-2008-05-06) unstable; urgency=low * GTK+ warnings removal * libnotify warnings removal * Remove aliasing on the SFLphone logo - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Mon, 05 May 2008 16:58:25 -0500 sflphone (0.9) unstable; urgency=low @@ -3077,7 +3077,7 @@ sflphone (0.9) unstable; urgency=low * Several GTK improvement and updates -account window -configuration window - * Migrate from GtkCheckMenuItem to GtkImageMenuItem + * Migrate from GtkCheckMenuItem to GtkImageMenuItem * ALSA standard I/O transfers: MMAP instead of R/W * Fix speex audio quality * IAX2 protocol diff --git a/tools/build-system/launchpad/sflphone-client-gnome/debian/rules b/tools/build-system/launchpad/sflphone-client-gnome/debian/rules index 61b69aa326..3a8f3444e2 100755 --- a/tools/build-system/launchpad/sflphone-client-gnome/debian/rules +++ b/tools/build-system/launchpad/sflphone-client-gnome/debian/rules @@ -25,18 +25,18 @@ configure-stamp: touch configure-stamp -#Architecture +#Architecture build: build-arch build-indep build-arch: build-arch-stamp -build-arch-stamp: configure-stamp +build-arch-stamp: configure-stamp # Add here commands to compile the arch part of the package. - $(MAKE) + $(MAKE) touch $@ build-indep: build-indep-stamp -build-indep-stamp: configure-stamp +build-indep-stamp: configure-stamp # Add here commands to compile the indep part of the package. #$(MAKE) doc @@ -46,7 +46,7 @@ clean: dh_testroot rm -f build-arch-stamp build-indep-stamp configure-stamp # Add here commands to clean up after the build process. - [ ! -f Makefile ] || $(MAKE) distclean + [ ! -f Makefile ] || $(MAKE) distclean ifneq "$(wildcard /usr/share/misc/config.sub)" "" cp -f /usr/share/misc/config.sub config.sub @@ -54,22 +54,22 @@ endif ifneq "$(wildcard /usr/share/misc/config.guess)" "" cp -f /usr/share/misc/config.guess config.guess endif - dh_clean + dh_clean install: install-indep install-arch install-indep: dh_testdir dh_testroot - dh_clean -k -i + dh_clean -k -i dh_installdirs -i # Add here commands to install the package into debian/sflphone. install-arch: dh_testdir dh_testroot - dh_clean -k -s + dh_clean -k -s dh_installdirs -s - # Add here commands to install the arch part of the package into + # Add here commands to install the arch part of the package into # debian/tmp. $(MAKE) DESTDIR=$(CURDIR)/debian/$(package) install dh_install -s @@ -96,7 +96,7 @@ binary-common: dh_installman dh_link dh_strip - dh_compress + dh_compress dh_fixperms # dh_perl dh_makeshlibs diff --git a/tools/build-system/launchpad/sflphone-client-kde/debian/changelog b/tools/build-system/launchpad/sflphone-client-kde/debian/changelog index a368c43102..4f977e142e 100644 --- a/tools/build-system/launchpad/sflphone-client-kde/debian/changelog +++ b/tools/build-system/launchpad/sflphone-client-kde/debian/changelog @@ -2687,7 +2687,7 @@ sflphone-client-kde (0.9.4-0ubuntu2) SYSTEM; urgency=low [ Emmanuel Milou ] * Fix bug #1090 - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Wed, 8 Apr 2009 11:29:15 -0500 sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low @@ -2699,7 +2699,7 @@ sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low * Protect case when no codecs are active * Fix some return values * Add unitary tests for the hook manager (premisces) - + [Yun Liu] * Update chinese translation @@ -2832,7 +2832,7 @@ sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low * Update spanish translation [Yun Liu ] - * Update chinese translation + * Update chinese translation [ Hussein Abdallah ] * Update russian translation @@ -3000,10 +3000,10 @@ sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low [ Emmanuel Milou ] * add german translation - + [ Yun Liu ] * Fix GUI crash in Ubuntu8.10 64bit system - + -- Yun Liu <yun.liu@savoirfairelinux.com> Thu, 08 Jan 2009 13:08:51 -0500 sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low @@ -3012,16 +3012,16 @@ sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low * The main thread synchronizes the ringtone thread * disable custom ringtone for the ALSA layer * Fix the Makefile.am in man directory, add a SEE ALSO section - + [ Yun Liu ] * Fix daemon crash caused by the previous patch ( for bug ticket #129) - + -- Yun Liu <yun.liu@savoirfairelinux.com> Tue, 06 Jan 2009 16:18:38 -0500 sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low - + * Fix bug ticket #129 - + -- Yun Liu <yun.liu@savoirfairelinux.com> Wed, 5 Jan 2009 15:54:53 -0500 sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low @@ -3069,7 +3069,7 @@ sflphone (0.9-2008-05-06) unstable; urgency=low * GTK+ warnings removal * libnotify warnings removal * Remove aliasing on the SFLphone logo - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Mon, 05 May 2008 16:58:25 -0500 sflphone (0.9) unstable; urgency=low @@ -3077,7 +3077,7 @@ sflphone (0.9) unstable; urgency=low * Several GTK improvement and updates -account window -configuration window - * Migrate from GtkCheckMenuItem to GtkImageMenuItem + * Migrate from GtkCheckMenuItem to GtkImageMenuItem * ALSA standard I/O transfers: MMAP instead of R/W * Fix speex audio quality * IAX2 protocol diff --git a/tools/build-system/launchpad/sflphone-client-kde/debian/postinst b/tools/build-system/launchpad/sflphone-client-kde/debian/postinst index 20a15b4f8f..03f87b04e8 100644 --- a/tools/build-system/launchpad/sflphone-client-kde/debian/postinst +++ b/tools/build-system/launchpad/sflphone-client-kde/debian/postinst @@ -3,7 +3,7 @@ update-alternatives --install /usr/bin/sflphone sflphone /usr/bin/sflphone-client-kde 200 \ --slave /usr/share/man/man1/sflphone.1.gz sflphone.1.gz \ /usr/share/man/man1/sflphone-client-kde.1 - + update-alternatives --set sflphone /usr/bin/sflphone-client-kde exit 0 diff --git a/tools/build-system/launchpad/sflphone-client-kde/debian/rules b/tools/build-system/launchpad/sflphone-client-kde/debian/rules index f1edaffc9d..b6368f42f4 100755 --- a/tools/build-system/launchpad/sflphone-client-kde/debian/rules +++ b/tools/build-system/launchpad/sflphone-client-kde/debian/rules @@ -24,18 +24,18 @@ configure-stamp: touch configure-stamp -#Architecture +#Architecture build: build-arch build-indep build-arch: build-arch-stamp -build-arch-stamp: configure-stamp +build-arch-stamp: configure-stamp # Add here commands to compile the arch part of the package. $(MAKE) touch $@ build-indep: build-indep-stamp -build-indep-stamp: configure-stamp +build-indep-stamp: configure-stamp # Add here commands to compile the indep part of the package. #$(MAKE) doc @@ -54,22 +54,22 @@ endif ifneq "$(wildcard /usr/share/misc/config.guess)" "" cp -f /usr/share/misc/config.guess config.guess endif - dh_clean + dh_clean install: install-indep install-arch install-indep: dh_testdir dh_testroot - dh_clean -k -i + dh_clean -k -i dh_installdirs -i # Add here commands to install the package into debian/sflphone. install-arch: dh_testdir dh_testroot - dh_clean -k -s + dh_clean -k -s dh_installdirs -s - # Add here commands to install the arch part of the package into + # Add here commands to install the arch part of the package into # debian/tmp. $(MAKE) DESTDIR=$(CURDIR)/debian/$(package) install dh_install -s @@ -97,7 +97,7 @@ binary-common: # dh_installman dh_link dh_strip - dh_compress + dh_compress dh_fixperms # dh_perl dh_makeshlibs diff --git a/tools/build-system/launchpad/sflphone-common/debian/changelog b/tools/build-system/launchpad/sflphone-common/debian/changelog index a7e8956117..a5ffee640b 100644 --- a/tools/build-system/launchpad/sflphone-common/debian/changelog +++ b/tools/build-system/launchpad/sflphone-common/debian/changelog @@ -2687,7 +2687,7 @@ sflphone-common (0.9.4-0ubuntu2) SYSTEM; urgency=low [ Emmanuel Milou ] * Fix bug #1090 - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Wed, 8 Apr 2009 11:29:15 -0500 sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low @@ -2699,7 +2699,7 @@ sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low * Protect case when no codecs are active * Fix some return values * Add unitary tests for the hook manager (premisces) - + [Yun Liu] * Update chinese translation @@ -2832,7 +2832,7 @@ sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low * Update spanish translation [Yun Liu ] - * Update chinese translation + * Update chinese translation [ Hussein Abdallah ] * Update russian translation @@ -3000,10 +3000,10 @@ sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low [ Emmanuel Milou ] * add german translation - + [ Yun Liu ] * Fix GUI crash in Ubuntu8.10 64bit system - + -- Yun Liu <yun.liu@savoirfairelinux.com> Thu, 08 Jan 2009 13:08:51 -0500 sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low @@ -3012,16 +3012,16 @@ sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low * The main thread synchronizes the ringtone thread * disable custom ringtone for the ALSA layer * Fix the Makefile.am in man directory, add a SEE ALSO section - + [ Yun Liu ] * Fix daemon crash caused by the previous patch ( for bug ticket #129) - + -- Yun Liu <yun.liu@savoirfairelinux.com> Tue, 06 Jan 2009 16:18:38 -0500 sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low - + * Fix bug ticket #129 - + -- Yun Liu <yun.liu@savoirfairelinux.com> Wed, 5 Jan 2009 15:54:53 -0500 sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low @@ -3069,7 +3069,7 @@ sflphone (0.9-2008-05-06) unstable; urgency=low * GTK+ warnings removal * libnotify warnings removal * Remove aliasing on the SFLphone logo - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Mon, 05 May 2008 16:58:25 -0500 sflphone (0.9) unstable; urgency=low @@ -3077,7 +3077,7 @@ sflphone (0.9) unstable; urgency=low * Several GTK improvement and updates -account window -configuration window - * Migrate from GtkCheckMenuItem to GtkImageMenuItem + * Migrate from GtkCheckMenuItem to GtkImageMenuItem * ALSA standard I/O transfers: MMAP instead of R/W * Fix speex audio quality * IAX2 protocol diff --git a/tools/build-system/launchpad/sflphone-common/debian/postinst b/tools/build-system/launchpad/sflphone-common/debian/postinst index ff29eda333..5ac10f4f25 100644 --- a/tools/build-system/launchpad/sflphone-common/debian/postinst +++ b/tools/build-system/launchpad/sflphone-common/debian/postinst @@ -12,8 +12,8 @@ INST_CONFIG="$HOME/.sflphone/sflphonedrc"; INST_DATA="$HOME/.sflphone/history"; INST_CACHE="$HOME/.sflphone/sfl.pid"; -NEW_INST_CONFIG= -NEW_INST_DATA= +NEW_INST_CONFIG= +NEW_INST_DATA= NEW_INST_CACHE= # Set the XDG CONFIG directory to the default one or to the path set in the environment variable diff --git a/tools/build-system/launchpad/sflphone-common/debian/rules b/tools/build-system/launchpad/sflphone-common/debian/rules index d3f7a238f2..ab3b9bf918 100755 --- a/tools/build-system/launchpad/sflphone-common/debian/rules +++ b/tools/build-system/launchpad/sflphone-common/debian/rules @@ -89,5 +89,5 @@ binary-arch: build-arch install-arch override_dh_strip: dh_strip --dbg-package=sflphone-common-dbg -binary: binary-arch +binary: binary-arch .PHONY: build clean binary-arch binary install install-arch configure override_dh_strip diff --git a/tools/build-system/launchpad/sflphone-plugins/debian/changelog b/tools/build-system/launchpad/sflphone-plugins/debian/changelog index 0a5d85585d..440cc2e898 100644 --- a/tools/build-system/launchpad/sflphone-plugins/debian/changelog +++ b/tools/build-system/launchpad/sflphone-plugins/debian/changelog @@ -2687,7 +2687,7 @@ sflphone-plugins (0.9.4-0ubuntu2) SYSTEM; urgency=low [ Emmanuel Milou ] * Fix bug #1090 - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Wed, 8 Apr 2009 11:29:15 -0500 sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low @@ -2699,7 +2699,7 @@ sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low * Protect case when no codecs are active * Fix some return values * Add unitary tests for the hook manager (premisces) - + [Yun Liu] * Update chinese translation @@ -2832,7 +2832,7 @@ sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low * Update spanish translation [Yun Liu ] - * Update chinese translation + * Update chinese translation [ Hussein Abdallah ] * Update russian translation @@ -3000,10 +3000,10 @@ sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low [ Emmanuel Milou ] * add german translation - + [ Yun Liu ] * Fix GUI crash in Ubuntu8.10 64bit system - + -- Yun Liu <yun.liu@savoirfairelinux.com> Thu, 08 Jan 2009 13:08:51 -0500 sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low @@ -3012,16 +3012,16 @@ sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low * The main thread synchronizes the ringtone thread * disable custom ringtone for the ALSA layer * Fix the Makefile.am in man directory, add a SEE ALSO section - + [ Yun Liu ] * Fix daemon crash caused by the previous patch ( for bug ticket #129) - + -- Yun Liu <yun.liu@savoirfairelinux.com> Tue, 06 Jan 2009 16:18:38 -0500 sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low - + * Fix bug ticket #129 - + -- Yun Liu <yun.liu@savoirfairelinux.com> Wed, 5 Jan 2009 15:54:53 -0500 sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low @@ -3069,7 +3069,7 @@ sflphone (0.9-2008-05-06) unstable; urgency=low * GTK+ warnings removal * libnotify warnings removal * Remove aliasing on the SFLphone logo - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Mon, 05 May 2008 16:58:25 -0500 sflphone (0.9) unstable; urgency=low @@ -3077,7 +3077,7 @@ sflphone (0.9) unstable; urgency=low * Several GTK improvement and updates -account window -configuration window - * Migrate from GtkCheckMenuItem to GtkImageMenuItem + * Migrate from GtkCheckMenuItem to GtkImageMenuItem * ALSA standard I/O transfers: MMAP instead of R/W * Fix speex audio quality * IAX2 protocol diff --git a/tools/build-system/launchpad/sflphone-plugins/debian/rules b/tools/build-system/launchpad/sflphone-plugins/debian/rules index d18a6e0a77..0395b7ec35 100755 --- a/tools/build-system/launchpad/sflphone-plugins/debian/rules +++ b/tools/build-system/launchpad/sflphone-plugins/debian/rules @@ -24,18 +24,18 @@ configure-stamp: touch configure-stamp -#Architecture +#Architecture build: build-arch build-indep build-arch: build-arch-stamp -build-arch-stamp: configure-stamp +build-arch-stamp: configure-stamp # Add here commands to compile the arch part of the package. - $(MAKE) + $(MAKE) touch $@ build-indep: build-indep-stamp -build-indep-stamp: configure-stamp +build-indep-stamp: configure-stamp # Add here commands to compile the indep part of the package. #$(MAKE) doc @@ -45,7 +45,7 @@ clean: dh_testroot rm -f build-arch-stamp build-indep-stamp configure-stamp # Add here commands to clean up after the build process. - [ ! -f Makefile ] || $(MAKE) distclean + [ ! -f Makefile ] || $(MAKE) distclean ifneq "$(wildcard /usr/share/misc/config.sub)" "" cp -f /usr/share/misc/config.sub config.sub @@ -53,22 +53,22 @@ endif ifneq "$(wildcard /usr/share/misc/config.guess)" "" cp -f /usr/share/misc/config.guess config.guess endif - dh_clean + dh_clean install: install-indep install-arch install-indep: dh_testdir dh_testroot - dh_clean -k -i + dh_clean -k -i dh_installdirs -i # Add here commands to install the package into debian/sflphone. install-arch: dh_testdir dh_testroot - dh_clean -k -s + dh_clean -k -s dh_installdirs -s - # Add here commands to install the arch part of the package into + # Add here commands to install the arch part of the package into # debian/tmp. $(MAKE) DESTDIR=$(CURDIR)/debian/$(package) install dh_install -s @@ -95,7 +95,7 @@ binary-common: dh_installman dh_link dh_strip - dh_compress + dh_compress dh_fixperms # dh_perl dh_makeshlibs diff --git a/tools/build-system/make-telify-package.sh b/tools/build-system/make-telify-package.sh index 4f2300786e..f7a4d3cef8 100644 --- a/tools/build-system/make-telify-package.sh +++ b/tools/build-system/make-telify-package.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-12-15 # Last Modified: 2009-12-15 18:16:47 -0500 diff --git a/tools/build-system/osc/sflphone-client-gnome.spec b/tools/build-system/osc/sflphone-client-gnome.spec index 3e55a6268f..9e697bd28e 100644 --- a/tools/build-system/osc/sflphone-client-gnome.spec +++ b/tools/build-system/osc/sflphone-client-gnome.spec @@ -3,7 +3,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-05-27 # Last Modified: 2009-10-07 @@ -111,7 +111,7 @@ make DESTDIR=%{buildroot} install %if %{defined suse_version} %suse_update_desktop_file -n %{buildroot}/%{_prefix}/share/applications/sflphone.desktop %endif -rm -rf $RPM_BUILD_ROOT/var/lib/scrollkeeper +rm -rf $RPM_BUILD_ROOT/var/lib/scrollkeeper %clean make clean diff --git a/tools/build-system/osc/sflphone-client-kde.spec b/tools/build-system/osc/sflphone-client-kde.spec index c3a9c2de2a..b238d34f21 100644 --- a/tools/build-system/osc/sflphone-client-kde.spec +++ b/tools/build-system/osc/sflphone-client-kde.spec @@ -3,7 +3,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-05-27 # Last Modified: 2009-10-07 @@ -81,7 +81,7 @@ make clean %files %defattr(-, root, root) %dir %{_prefix}/share/doc/kde/HTML/en/sflphone-client-kde -%dir %{_prefix}/share/kde4/apps/sflphone-client-kde +%dir %{_prefix}/share/kde4/apps/sflphone-client-kde %lang(fr) %{_prefix}/share/locale/fr/LC_MESSAGES/*.mo %lang(es) %{_prefix}/share/locale/es/LC_MESSAGES/*.mo %lang(de) %{_prefix}/share/locale/de/LC_MESSAGES/*.mo diff --git a/tools/build-system/osc/sflphone-common.spec b/tools/build-system/osc/sflphone-common.spec index 2c0e768087..93a59cdb2a 100644 --- a/tools/build-system/osc/sflphone-common.spec +++ b/tools/build-system/osc/sflphone-common.spec @@ -3,7 +3,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-05-27 # Last Modified: 2009-10-07 diff --git a/tools/build-system/osc/sflphone-plugins.spec b/tools/build-system/osc/sflphone-plugins.spec index 8c542057da..957600857d 100644 --- a/tools/build-system/osc/sflphone-plugins.spec +++ b/tools/build-system/osc/sflphone-plugins.spec @@ -3,7 +3,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-05-27 # Last Modified: 2009-10-07 @@ -73,7 +73,7 @@ make DESTDIR=%{buildroot} install %if %{defined suse_version} %suse_update_desktop_file -n %{buildroot}/%{_prefix}/share/applications/sflphone.desktop %endif -rm -rf $RPM_BUILD_ROOT/var/lib/scrollkeeper +rm -rf $RPM_BUILD_ROOT/var/lib/scrollkeeper %clean make clean diff --git a/tools/build-system/setenv.sh b/tools/build-system/setenv.sh index 1f22c60600..cecbc8e880 100644 --- a/tools/build-system/setenv.sh +++ b/tools/build-system/setenv.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-12-15 # Last Modified: 2009-12-15 18:16:52 -0500 diff --git a/tools/build-system/sfl-git-dch-2.sh b/tools/build-system/sfl-git-dch-2.sh index 6a4641e626..73410bfbc8 100755 --- a/tools/build-system/sfl-git-dch-2.sh +++ b/tools/build-system/sfl-git-dch-2.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-10-21 # Last Modified: 2009-10-21 14:58:22 -0400 diff --git a/tools/mozilla-telify-sflphone/sflphone-handler b/tools/mozilla-telify-sflphone/sflphone-handler index db1cf92d0a..a76b3ed7a6 100755 --- a/tools/mozilla-telify-sflphone/sflphone-handler +++ b/tools/mozilla-telify-sflphone/sflphone-handler @@ -19,14 +19,14 @@ if [ -z $1 ]; then exit 1 fi -# Cleanup destination, keeping numbers only +# Cleanup destination, keeping numbers only TO="`echo $1 | sed -e 's/[^0123456789]//g'`" # Generate call id. -CALLID=${RANDOM}$$ +CALLID=${RANDOM}$$ # Dbus placeCallFirstAccount method does not reach sflphoned if starting -# Should find another way to do this +# Should find another way to do this sleep 1 dbus-send \ diff --git a/tools/mozilla-telify-sflphone/telify-1.0-fx.xpi b/tools/mozilla-telify-sflphone/telify-1.0-fx.xpi index 8df2b63f5b8622d44eac232ed72b6d7699e54f23..35d2e19f0efe33142217347bf0cc7e9d56c68751 100644 GIT binary patch delta 85 zcmex<U+KerrG_nxUT3y@pJBYkxLxfW<2kkMv%fO?Gf$T)<`9@Jv6Dq)d&UpOzFY0z qFEMTZeu;Up5=j2AXM4OoOMARM>-KniwwLGHJ^9$Td-8FtTL=KSHYN4| delta 89 zcmexxU+MdOrG_nxUS}8;wtJmnyv4|<uwCUG<2f}(h3(V6GW#=ccl^P)=@z3x`{zqc s+dp4oUaSO>Iqb=(&>m^e(jIBgx;@gK?d3T}g?1-C_U%r59P1VW0K2~<=>Px# diff --git a/tools/pysflphone/pysflphone.py b/tools/pysflphone/pysflphone.py index 61fde183b0..458d444db2 100644 --- a/tools/pysflphone/pysflphone.py +++ b/tools/pysflphone/pysflphone.py @@ -84,11 +84,11 @@ def printHelp(): # Option definition try: - opts, args = getopt.getopt(sys.argv[1:],"", - [ "help", "gaa", "gal", "gara", "gaea", "gasa", "gaia", - "gacl", "gac", "gcc", "hangup=", "refuse=", "hold", - "unhold=", "transfer=","dtmf=", "accept=", "gcd=", - "gad=", "register=", "unregister=", "enable=", "disable=", + opts, args = getopt.getopt(sys.argv[1:],"", + [ "help", "gaa", "gal", "gara", "gaea", "gasa", "gaia", + "gacl", "gac", "gcc", "hangup=", "refuse=", "hold", + "unhold=", "transfer=","dtmf=", "accept=", "gcd=", + "gad=", "register=", "unregister=", "enable=", "disable=", "call=", "sac=" ]) except getopt.GetoptError,err: print str(err) @@ -96,7 +96,7 @@ except getopt.GetoptError,err: # SFLPhone instance. -sflphone = SflPhoneCtrlSimple() +sflphone = SflPhoneCtrlSimple() # If no arguments, run the d-bus event loop. if len(sys.argv) == 1: @@ -107,7 +107,7 @@ if len(sys.argv) == 1: else: for opt, arg in opts: - if opt == "--help": + if opt == "--help": printHelp() # @@ -115,32 +115,32 @@ else: # # Get all accounts - elif opt == "--gaa": + elif opt == "--gaa": for account in sflphone.getAllAccounts(): print account # Get all registered accounts - elif opt == "--gara": + elif opt == "--gara": for account in sflphone.getAllRegisteredAccounts(): print account # Get all enabled accounts - elif opt == "--gaea": + elif opt == "--gaea": for account in sflphone.getAllEnabledAccounts(): print account # Get all SIP accounts - elif opt == "--gasa": + elif opt == "--gasa": for account in sflphone.getAllSipAccounts(): print account # Get all IAX accounts - elif opt == "--gaia": + elif opt == "--gaia": for account in sflphone.getAllIaxAccounts(): print account # Get current call - elif opt == "--gcc": + elif opt == "--gcc": call = sflphone.getCurrentCallID() if call: print call @@ -148,7 +148,7 @@ else: print "No current call." # Get account details - elif opt == "--gad": + elif opt == "--gad": if sflphone.checkAccountExists(arg): details = sflphone.getAccountDetails(arg) for var in details: @@ -157,11 +157,11 @@ else: print "No such account: " + arg # Get active codec list - elif opt == "--gacl": + elif opt == "--gacl": print "Not implemented." # Get call details - elif opt == "--gcd": + elif opt == "--gcd": if arg == "current": arg = sflphone.getCurrentCallID() details = sflphone.getCallDetails(arg) @@ -173,7 +173,7 @@ else: elif opt == "--sac": if arg is "": print "Must specifies the accout to be set" - else: + else: sflphone.setAccount(arg) @@ -182,43 +182,43 @@ else: # # Make a call - elif opt == "--call": + elif opt == "--call": sflphone.Call(arg) # Hangup a call - elif opt == "--hangup": - if arg == "current": + elif opt == "--hangup": + if arg == "current": arg = sflphone.getCurrentCallID() - if arg: + if arg: sflphone.HangUp(arg) # Refuse a call - elif opt == "--refuse": + elif opt == "--refuse": if arg == "current": arg = sflphone.getCurrentCallID() sflphone.Refuse(arg) # Hold a call - elif opt == "--hold": + elif opt == "--hold": if arg == "current": arg = sflphone.getCurrentCallID() sflphone.Hold(arg) # Unhold a call - elif opt == "--unhold": + elif opt == "--unhold": if arg == "current": arg = sflphone.getCurrentCallID() sflphone.UnHold(arg) # Transfer the current call - elif opt == "--transfer": + elif opt == "--transfer": call = sflphone.callmanager.getCurrentCallID() sflphone.Transfert(call, arg) - # Send DTMF - elif opt == "--dtmf": + # Send DTMF + elif opt == "--dtmf": sflphone.Dtmf(arg) # Accept a call - elif opt == "--accept": + elif opt == "--accept": if arg == "current": arg = sflphone.getCurrentCallID() sflphone.Accept(arg) @@ -228,7 +228,7 @@ else: # # Register an account - elif opt == "--register": + elif opt == "--register": if not sflphone.checkAccountExists(arg): print "Account " + arg + ": no such account." @@ -240,7 +240,7 @@ else: print arg + ": Sent register request." # Unregister an account - elif opt == "--unregister": + elif opt == "--unregister": if not sflphone.checkAccountExists(arg): print "Account " + arg + ": no such account." diff --git a/tools/pysflphone/pysflphone_testdbus.py b/tools/pysflphone/pysflphone_testdbus.py index dc17f2bbc9..05b341a569 100644 --- a/tools/pysflphone/pysflphone_testdbus.py +++ b/tools/pysflphone/pysflphone_testdbus.py @@ -34,8 +34,8 @@ def acceptOnIncomingCall(sflphone): # Define function callback to emulate UA behavior on # receiving a call and hanging up def acceptOnIncomingCallHangup(sflphone): - - sflphone.Accept(sflphone.currentCallId) + + sflphone.Accept(sflphone.currentCallId) sflphone.HangUp(sflphone.currentCallId) @@ -56,7 +56,7 @@ class SflPhoneTests(): for account in self.getAllAccounts(): print " " + account - + for account in self.getAllRegisteredAccounts(): print " " + account @@ -69,7 +69,7 @@ class SflPhoneTests(): def test_create_account(self): """Create a new sip account""" - CONFIG_ACCOUNT_TYPE = "Account.type" + CONFIG_ACCOUNT_TYPE = "Account.type" CONFIG_ACCOUNT_ALIAS = "Account.alias" HOSTNAME = "hostname" USERNAME = "username" @@ -101,8 +101,8 @@ class SflPhoneTests(): callid = self.sflphone.Call("sip:test@" + REMOTEADDR_lo) time.sleep(0.5) - - self.sflphone.HangUp(callid) + + self.sflphone.HangUp(callid) time.sleep(0.5) i = i+1 @@ -124,7 +124,7 @@ class SflPhoneTests(): del self.sflphone - + # SCENARIO 1 Test 3 def test_ip2ip_recv_hangup(self): """Wait for calls, answer then hangup""" @@ -135,7 +135,7 @@ class SflPhoneTests(): # Start Glib mainloop self.sflphone.start() - + # SCENARIO 1 Test 4 @@ -158,8 +158,8 @@ class SflPhoneTests(): callid = self.sflphone.Call(PHONE1) time.sleep(0.2) - - self.sflphone.HangUp(callid) + + self.sflphone.HangUp(callid) time.sleep(0.2) i = i+1 @@ -182,7 +182,7 @@ class SflPhoneTests(): del self.sflphone - # SCENARIO 2 Test 3 + # SCENARIO 2 Test 3 def test_account_recv_hangup(self): """Register an account and wait for incoming calls""" @@ -193,7 +193,7 @@ class SflPhoneTests(): self.sflphone.start() - # SCENARIO 2 Test 4 + # SCENARIO 2 Test 4 def test_account_recv_peer_hungup(self): """Register an account and wait for incoming calls""" @@ -218,8 +218,8 @@ class SflPhoneTests(): self.sflphone.UnHold(callid) time.sleep(0.5) - - self.sflphone.HangUp(callid) + + self.sflphone.HangUp(callid) time.sleep(0.5) i = i+1 @@ -236,15 +236,15 @@ class SflPhoneTests(): callid = self.sflphone.Call(PHONE1) time.sleep(1.0) - + self.sflphone.Transfer(callid,PHONE3) - # self.sflphone.HangUp(callid) + # self.sflphone.HangUp(callid) # time.sleep(1.0) i = i+1 - # SCENARIO 5 Test 1 + # SCENARIO 5 Test 1 def test_ip2ip_recv_refuse(self): """Receive an incoming IP2IP call, refuse it""" @@ -269,14 +269,14 @@ class SflPhoneTests(): callid3 = self.sflphone.Call("sip:test@" + REMOTEADDR_lo3) time.sleep(0.1) - - self.sflphone.HangUp(callid1) + + self.sflphone.HangUp(callid1) time.sleep(0.1) - self.sflphone.HangUp(callid2) + self.sflphone.HangUp(callid2) time.sleep(0.1) - self.sflphone.HangUp(callid3) + self.sflphone.HangUp(callid3) time.sleep(0.1) i = i+1 @@ -301,7 +301,7 @@ class SflPhoneTests(): # Open sflphone and connect to sflphoned through dbus sflphone = SflPhoneCtrlSimple(True) -# Init test suite +# Init test suite testsuite = SflPhoneTests(sflphone) # Register the first account available, should be the test account diff --git a/tools/pysflphone/sflphonectrlsimple.py b/tools/pysflphone/sflphonectrlsimple.py index cba2cf72da..12709ed900 100755 --- a/tools/pysflphone/sflphonectrlsimple.py +++ b/tools/pysflphone/sflphonectrlsimple.py @@ -50,9 +50,9 @@ except ImportError, e: class SflPhoneCtrlSimple(Thread): """ Simple class for controlling SflPhoned through DBUS - If option testSuite (ts) is put to true, + If option testSuite (ts) is put to true, simple actions are implemented on incoming call. - """ + """ # list of active calls (known by the client) activeCalls = {} @@ -105,7 +105,7 @@ class SflPhoneCtrlSimple(Thread): raise SPdbusError("Unable to connect DBUS session bus") dbus_objects = dbus.Interface(self.bus.get_object( - 'org.freedesktop.DBus', '/org/freedesktop/DBus'), + 'org.freedesktop.DBus', '/org/freedesktop/DBus'), 'org.freedesktop.DBus').ListNames() if not "org.sflphone.SFLphone" in dbus_objects: @@ -116,8 +116,8 @@ class SflPhoneCtrlSimple(Thread): "/org/sflphone/SFLphone/Instance", introspect=False) proxy_callmgr = self.bus.get_object("org.sflphone.SFLphone", "/org/sflphone/SFLphone/CallManager", introspect=False) - proxy_confmgr = self.bus.get_object("org.sflphone.SFLphone", - "/org/sflphone/SFLphone/ConfigurationManager", + proxy_confmgr = self.bus.get_object("org.sflphone.SFLphone", + "/org/sflphone/SFLphone/ConfigurationManager", introspect=False) self.instance = dbus.Interface(proxy_instance, @@ -128,7 +128,7 @@ class SflPhoneCtrlSimple(Thread): "org.sflphone.SFLphone.ConfigurationManager") except dbus.DBusException, e: - + raise SPdbusError("Unable to bind to sflphoned api, ask core-dev team to implement getVersion method and start to pray.") try: @@ -197,7 +197,7 @@ class SflPhoneCtrlSimple(Thread): - # On call state changed event, set the values for new calls, + # On call state changed event, set the values for new calls, # or delete the call from the list of active calls def onCallStateChanged(self, callid, state): print "Call state changed: " + callid + ", " + state @@ -209,11 +209,11 @@ class SflPhoneCtrlSimple(Thread): elif state in [ "RINGING", "CURRENT", "INCOMING", "HOLD" ]: try: - self.activeCalls[callid]['State'] = state + self.activeCalls[callid]['State'] = state except KeyError, e: print "This call didn't exist!: " + callid + ". Adding it to the list." callDetails = self.getCallDetails(callid) - self.activeCalls[callid] = {'Account': callDetails['ACCOUNTID'], + self.activeCalls[callid] = {'Account': callDetails['ACCOUNTID'], 'To': callDetails['PEER_NUMBER'], 'State': state } elif state in [ "BUSY", "FAILURE" ]: try: @@ -231,7 +231,7 @@ class SflPhoneCtrlSimple(Thread): def addAccount(self, details=None): """Add a new account account - Add a new account to the SFLphone-daemon. Default parameters are \ + Add a new account to the SFLphone-daemon. Default parameters are \ used for missing account configuration field. Required parameters are type, alias, hostname, username and password @@ -289,7 +289,7 @@ class SflPhoneCtrlSimple(Thread): for testedaccount in self.getAllAccounts(): details = self.getAccountDetails(testedaccount) - if ( details['Account.enable'] == "TRUE" and + if ( details['Account.enable'] == "TRUE" and details['Account.alias'] == alias ): self.account = testedaccount return @@ -405,7 +405,7 @@ class SflPhoneCtrlSimple(Thread): def getAllSipAccounts(self): """Return a list of SIP accounts""" sipAccountsList = [] - for accountName in self.getAllAccounts(): + for accountName in self.getAllAccounts(): if self.getAccountDetails(accountName)['Account.type'] == "SIP": sipAccountsList.append(accountName) @@ -442,7 +442,7 @@ class SflPhoneCtrlSimple(Thread): # # Codec manager # - + def getCodecList(self): """ Return the codec list """ return self.configurationmanager.getCodecList() @@ -630,5 +630,5 @@ class SflPhoneCtrlSimple(Thread): while True: context.iteration(True) - if self.isStop: + if self.isStop: return diff --git a/tools/sflphone-callto b/tools/sflphone-callto index 727ef0f93c..94f5cb1d49 100755 --- a/tools/sflphone-callto +++ b/tools/sflphone-callto @@ -11,15 +11,15 @@ RESFILE=~/.config/sflphone/sflphonedrc # Parse sflphonedrc and get default account id string if [ -f "$RESFILE" ]; then - # Use first ID - ACCOUNTID=`grep Accounts.order $RESFILE | sed -e 's/Accounts.order=//' -e 's/\/.*//'` + # Use first ID + ACCOUNTID=`grep Accounts.order $RESFILE | sed -e 's/Accounts.order=//' -e 's/\/.*//'` - # Accounts.order is not set - if [ -z $ACCOUNTID ]; then + # Accounts.order is not set + if [ -z $ACCOUNTID ]; then - # Use first account declared in sflphone config - ACCOUNTID="`grep -m 1 Account: $RESFILE | sed -e 's/\[//' -e 's/\]//'`" - fi + # Use first account declared in sflphone config + ACCOUNTID="`grep -m 1 Account: $RESFILE | sed -e 's/\[//' -e 's/\]//'`" + fi else echo Fatal: Cant find sflphonedrc config file. @@ -32,11 +32,11 @@ if [ -z $1 ]; then exit 1 fi -# Cleanup destination, keeping numbers only +# Cleanup destination, keeping numbers only TO="`echo $1 | sed -e 's/[^0123456789]//g'`" # Generate call id. -CALLID=${RANDOM}$$ +CALLID=${RANDOM}$$ dbus-send \ --type="method_call" \ diff --git a/tools/sippxml/account_uas_recv_transfered.xml b/tools/sippxml/account_uas_recv_transfered.xml index 210f5621b4..8e67f3cec2 100644 --- a/tools/sippxml/account_uas_recv_transfered.xml +++ b/tools/sippxml/account_uas_recv_transfered.xml @@ -98,7 +98,7 @@ </recv> - <!-- + <!-- <recv request="BYE"> </recv> diff --git a/tools/sippxml/ip2ip_uas_recv_hangup.xml b/tools/sippxml/ip2ip_uas_recv_hangup.xml index 4e86b47480..45023d08fa 100644 --- a/tools/sippxml/ip2ip_uas_recv_hangup.xml +++ b/tools/sippxml/ip2ip_uas_recv_hangup.xml @@ -46,17 +46,17 @@ ]]> </send> - <!-- tag from From: header is required to build the To: header in - -- Bye request. --> + <!-- tag from From: header is required to build the To: header in + -- Bye request. --> - <recv request="ACK"> + <recv request="ACK"> <action> <ereg regexp="tag=.*" search_in="hdr" header="From:" check_it="true" assign_to="1" /> </action> </recv> <pause milliseconds="500"/> - + <send retrans="500"> <![CDATA[ @@ -84,4 +84,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/ip2ip_uas_recv_hold_offhold.xml b/tools/sippxml/ip2ip_uas_recv_hold_offhold.xml index 568a97a9e6..bae7eaa2bc 100644 --- a/tools/sippxml/ip2ip_uas_recv_hold_offhold.xml +++ b/tools/sippxml/ip2ip_uas_recv_hold_offhold.xml @@ -7,7 +7,7 @@ <recv request="INVITE" crlf="true"> <action> - <ereg regexp="sendrecv" search_in="body" check_it="true" assign_to="1"/> + <ereg regexp="sendrecv" search_in="body" check_it="true" assign_to="1"/> <log message="Media is [$1]"/> </action> </recv> @@ -184,4 +184,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/ip2ip_uas_recv_peer_hungup.xml b/tools/sippxml/ip2ip_uas_recv_peer_hungup.xml index 04a964cd1c..0d9da874ba 100644 --- a/tools/sippxml/ip2ip_uas_recv_peer_hungup.xml +++ b/tools/sippxml/ip2ip_uas_recv_peer_hungup.xml @@ -75,4 +75,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/ip2ipcalluac.xml b/tools/sippxml/ip2ipcalluac.xml index 9023856390..7d146cec2b 100644 --- a/tools/sippxml/ip2ipcalluac.xml +++ b/tools/sippxml/ip2ipcalluac.xml @@ -82,4 +82,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/ip2ipcalluas.xml b/tools/sippxml/ip2ipcalluas.xml index b7ef0303b0..08d17440ea 100644 --- a/tools/sippxml/ip2ipcalluas.xml +++ b/tools/sippxml/ip2ipcalluas.xml @@ -77,4 +77,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/simpleServiceRoute.xml b/tools/sippxml/simpleServiceRoute.xml index f09cd05012..c200717631 100644 --- a/tools/sippxml/simpleServiceRoute.xml +++ b/tools/sippxml/simpleServiceRoute.xml @@ -82,4 +82,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/sippusage.txt b/tools/sippxml/sippusage.txt index 5c19252857..f1a5190882 100644 --- a/tools/sippxml/sippusage.txt +++ b/tools/sippxml/sippusage.txt @@ -53,7 +53,7 @@ Usage: - pingreply Reply to ping requests If a behavior is prefaced with a -, then it is turned off. Example: all,-bye - + -error_file : Set the name of the error log file. @@ -67,7 +67,7 @@ Usage: -i : Set the local IP address for 'Contact:','Via:', and 'From:' headers. Default is primary host IP address. - + -inf : Inject values from an external CSV file during calls into the scenarios. @@ -76,7 +76,7 @@ Usage: (USER) order. Each line corresponds to one call and has one or more ';' delimited data fields. Those fields can be referred - as [field0], [field1], ... in the xml scenario file. + as [field0], [field1], ... in the xml scenario file. Several CSV files can be used simultaneously (syntax: -inf f1.csv -inf f2.csv ...) @@ -159,18 +159,18 @@ Usage: - On unexpected PING send a 200 OK and continue the call - On any other unexpected message, abort the call by sending a BYE or a CANCEL - + -nr : Disable retransmission in UDP mode. -nostdin : Disable stdin. - + -p : Set the local port number. Default is a random free port chosen by the system. -pause_msg_ign : Ignore the messages received during a pause defined in - the scenario + the scenario -periodic_rtd : Reset response time partition counters each logging interval. @@ -265,7 +265,7 @@ Usage: -oocsn : Load out-of-call scenario. - -skip_rlimit : Do not perform rlimit tuning of file descriptor limits. + -skip_rlimit : Do not perform rlimit tuning of file descriptor limits. Default: false. -slave : 3pcc extended mode: indicates the slave number @@ -277,7 +277,7 @@ Usage: If this option is omitted, the Standard SipStone UAC scenario is loaded. Available values in this version: - + - 'uac' : Standard SipStone UAC (default). - 'uas' : Simple UAS responder. - 'regexp' : Standard SipStone UAC - with regexp and @@ -286,15 +286,15 @@ Usage: scenarios - client. - 'branchs' : Branching and conditional branching in scenarios - server. - + Default 3pcc scenarios (see -3pcc option): - + - '3pcc-C-A' : Controller A side (must be started after all other 3pcc scenarios) - '3pcc-C-B' : Controller B side. - '3pcc-A' : A side. - '3pcc-B' : B side. - + -stat_delimiter : Set the delimiter for the statistics file @@ -313,7 +313,7 @@ Usage: loaded), - cn: un + compression (only if compression plugin loaded). This plugin is not provided with sipp. - + -timeout : Global timeout. Default unit is seconds. If this option is set, SIPp quits after nb units (-timeout 20s quits @@ -322,7 +322,7 @@ Usage: -timeout_error : SIPp fails if the global timeout is reached is set (-timeout option required). - -timer_resol : Set the timer resolution. Default unit is milliseconds. + -timer_resol : Set the timer resolution. Default unit is milliseconds. This option has an impact on timers precision.Small values allow more precise scheduling but impacts CPU usage.If the compression is on, the value is set to @@ -366,7 +366,7 @@ Usage: -watchdog_interval: Set gap between watchdog timer firings. Default is 400. -watchdog_reset : If the watchdog timer has not fired in more than this - time period, then reset the max triggers counters. + time period, then reset the max triggers counters. Default is 10 minutes. -watchdog_minor_threshold: If it has been longer than this period between watchdog @@ -422,7 +422,7 @@ Usage: Set the start offset of dynamic_id varaiable -dynamicMax : variable value - Set the maximum of dynamic_id variable + Set the maximum of dynamic_id variable -dynamicStep : variable value Set the increment of dynamic_id variable @@ -436,7 +436,7 @@ Signal handling: are finished before SIPp exits. Example: kill -SIGUSR1 732 USR2: Triggers a dump of all statistics screens in - <scenario_name>_<pid>_screens.log file. Especially useful + <scenario_name>_<pid>_screens.log file. Especially useful in background mode to know what the current status is. Example: kill -SIGUSR2 732 diff --git a/tools/sippxml/testEarlyMedia.xml b/tools/sippxml/testEarlyMedia.xml index 28f34ff4f0..7909bebecd 100644 --- a/tools/sippxml/testEarlyMedia.xml +++ b/tools/sippxml/testEarlyMedia.xml @@ -104,4 +104,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/testsuiteuac.sh b/tools/sippxml/testsuiteuac.sh index 9397559368..5635003582 100644 --- a/tools/sippxml/testsuiteuac.sh +++ b/tools/sippxml/testsuiteuac.sh @@ -12,7 +12,7 @@ REMOTEADDR_ast=192.168.50.79 function test_ip2ip_send_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # start sipp server to receive calls from sflphone sipp -sf ip2ip_uas_recv_peer_hungup.xml ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} @@ -31,7 +31,7 @@ function test_ip2ip_send_hangup { function test_ip2ip_send_peer_hungup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # start sipp server to receive calls from sflphone and then hangup sipp -sf ip2ip_uas_recv_hangup.xml ${REMOTEADDR_lo} -s ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} @@ -43,7 +43,7 @@ function test_ip2ip_send_peer_hungup { # python ../tools/pysflphone/pysflphone_testdbus.py & # kill every one - bashtrap + bashtrap } @@ -51,7 +51,7 @@ function test_ip2ip_send_peer_hungup { function test_ip2ip_recv_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -61,11 +61,11 @@ function test_ip2ip_recv_hangup { # wait some time to make sure client is bound # sleep 1; - # start sipp client and send calls + # start sipp client and send calls sipp -sf ip2ip_uac_send_peer_hungup.xml ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} -l 1 -m 10 # kill every one - # bashtrap + # bashtrap } @@ -73,7 +73,7 @@ function test_ip2ip_recv_hangup { function test_ip2ip_recv_peer_hungup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -83,11 +83,11 @@ function test_ip2ip_recv_peer_hungup { # wait some time to make sure client is bound # sleep 1; - # start sipp client and send calls + # start sipp client and send calls sipp -sf ip2ip_uac_send_hangup.xml ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} -l 1 -m 10 # kill every one - # bashtrap + # bashtrap } @@ -95,7 +95,7 @@ function test_ip2ip_recv_peer_hungup { function test_account_send_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -108,7 +108,7 @@ function test_account_send_hangup { # process only one registration sipp -sf account_uas_register.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 1 - # start sipp client and send calls + # start sipp client and send calls sipp -sf account_uas_recv_peer_hungup.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 # kill every one @@ -119,7 +119,7 @@ function test_account_send_hangup { function test_account_send_peer_hungup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -132,7 +132,7 @@ function test_account_send_peer_hungup { # process only one registration sipp -sf account_uas_register.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 1 - # start sipp client and send calls + # start sipp client and send calls sipp -sf account_uas_recv_hangup.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 # kill every one @@ -143,7 +143,7 @@ function test_account_send_peer_hungup { function test_account_recv_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -156,7 +156,7 @@ function test_account_recv_hangup { # process only one registration sipp -sf account_uas_register.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 1 - # start sipp client and send calls + # start sipp client and send calls sipp -sf account_uac_send_peer_hungup.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 10 # kill every one # bashtrap @@ -166,7 +166,7 @@ function test_account_recv_hangup { function test_account_recv_peer_hungup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -179,7 +179,7 @@ function test_account_recv_peer_hungup { # process only one registration sipp -sf account_uas_register.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 1 - # start sipp client and send calls + # start sipp client and send calls sipp -sf account_uac_send_hangup.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 10 # kill every one @@ -190,7 +190,7 @@ function test_account_recv_peer_hungup { function test_ip2ip_send_hold_offhold { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -200,7 +200,7 @@ function test_ip2ip_send_hold_offhold { # wait some time to make sure client is bound # sleep 1; - # start sipp client and send calls + # start sipp client and send calls sipp -sf ip2ip_uas_recv_hold_offhold.xml ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} # kill every one # bashtrap @@ -210,7 +210,7 @@ function test_ip2ip_send_hold_offhold { function test_account_send_transfer { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -223,7 +223,7 @@ function test_account_send_transfer { # process only one registration sipp -sf account_uas_register.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 1 - # start sipp client and send calls + # start sipp client and send calls sipp -sf account_uas_recv_transfered.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 # kill every one @@ -235,7 +235,7 @@ function test_account_send_transfer { function test_ip2ip_send_refused { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # start sipp server to receive calls from sflphone and then hangup sipp -sf ip2ip_uac_send_refused.xml ${REMOTEADDR_lo} -s ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} -l 1 @@ -247,7 +247,7 @@ function test_ip2ip_send_refused { # python ../tools/pysflphone/pysflphone_testdbus.py & # kill every one - bashtrap + bashtrap } @@ -255,10 +255,10 @@ function test_ip2ip_send_refused { function test_mult_ip2ip_send_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # start sipp server to receive calls from sflphone - sipp -sf ip2ip_uac_send_hangup.xml 127.0.0.1:5060 -i 127.0.0.1 -p 5062 -l 1 -m 10 + sipp -sf ip2ip_uac_send_hangup.xml 127.0.0.1:5060 -i 127.0.0.1 -p 5062 -l 1 -m 10 sipp -sf ip2ip_uac_send_hangup.xml 127.0.0.1:5060 -i 127.0.0.1 -p 5064 -l 1 -m 10 sipp -sf ip2ip_uac_send_hangup.xml 127.0.0.1:5060 -i 127.0.0.1 -p 5066 -l 1 -m 10 # sipp -sf ip2ip_uac_send_hangup.xml ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} -l 1 -m 10 @@ -278,7 +278,7 @@ function test_mult_ip2ip_send_hangup { function test_mult_ip2ip_recv_peer_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # start sipp server to receive calls from sflphone sipp -sf ip2ip_uac_send_hangup.xml 127.0.0.1 -i 127.0.0.1:5060 -p 5062 @@ -297,7 +297,7 @@ function test_mult_ip2ip_recv_peer_hangup { } -# function called if CTRL-C detected +# function called if CTRL-C detected bashtrap() { killall sipp diff --git a/tools/vm/deploy_vm.sh b/tools/vm/deploy_vm.sh index 4f566c33dc..81144d284d 100644 --- a/tools/vm/deploy_vm.sh +++ b/tools/vm/deploy_vm.sh @@ -29,7 +29,7 @@ VM=Ubuntu-10.04-i386-on-KVM VIRSH="virsh -c qemu:///system" -# Get the full path to vm's +# Get the full path to vm's DISK_IMG=$($VIRSH dumpxml "${VM}"|grep source.file|cut -d"'" -f2) echo "Disk Image: $DISK_IMG" # Get MAC address for this vm -- GitLab