summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Dalley <kevind@rahul.net>2002-03-15 14:20:02 +0000
committerMattia Rizzolo <mattia@mapreri.org>2014-10-03 14:05:02 +0000
commitac8459519a9ef2a1ee635509b52a653da1bfe9d5 (patch)
tree9ed2df2144d6ad3bb7cf1d43243d815a8eb90059
parent8b372c9248930ae29763202121434d3d676d0f30 (diff)
parente7e90b72fd3161c5d55fed49e100781dfa3e9408 (diff)
Imported Debian patch 0.84-2debian/0.84-2
-rw-r--r--Makefile.in9
-rw-r--r--aclocal.m4668
-rw-r--r--backend-po/README.ADD_NEW_LANGUAGE2
-rw-r--r--backend-po/de.po.in2
-rw-r--r--backend-po/de/sane-umax.mobin10247 -> 10263 bytes
-rw-r--r--backend-po/newbackend.po.in549
-rw-r--r--backend-po/umax.de.po294
-rw-r--r--backend-po/umax.de.po.in291
-rw-r--r--backend-po/umax.ja.po584
-rw-r--r--backend-po/umax.po576
-rw-r--r--backend-po/umax1220u.sr.po591
-rwxr-xr-xconfigure1753
-rw-r--r--configure.in124
-rw-r--r--debian/changelog91
-rw-r--r--debian/control6
-rw-r--r--debian/control.xsane6
-rw-r--r--debian/control.xsane-gimp1.12
-rwxr-xr-xdebian/rules18
-rw-r--r--debian/substvars2
-rw-r--r--doc/Makefile.in31
-rw-r--r--doc/sane-logo.jpgbin14856 -> 0 bytes
-rw-r--r--doc/sane-logo2.jpgbin6908 -> 0 bytes
-rw-r--r--doc/sane-pnm16-doc.html42
-rw-r--r--doc/sane-problems-doc.html80
-rw-r--r--doc/sane-scantips-doc.html16
-rw-r--r--doc/sane-xsane-advanced-doc.html127
-rw-r--r--doc/sane-xsane-advanced.jpgbin13091 -> 0 bytes
-rw-r--r--doc/sane-xsane-color-correction-doc.html224
-rw-r--r--doc/sane-xsane-copy-doc.html170
-rw-r--r--doc/sane-xsane-copy.jpgbin25812 -> 0 bytes
-rw-r--r--doc/sane-xsane-doc.html323
-rw-r--r--doc/sane-xsane-empty-doc.html107
-rw-r--r--doc/sane-xsane-enhancement-doc.html101
-rw-r--r--doc/sane-xsane-fax-doc.html173
-rw-r--r--doc/sane-xsane-fax-project.jpgbin12185 -> 0 bytes
-rw-r--r--doc/sane-xsane-fax.jpgbin22366 -> 0 bytes
-rw-r--r--doc/sane-xsane-gimp-doc.html220
-rw-r--r--doc/sane-xsane-gimp.jpgbin21593 -> 0 bytes
-rw-r--r--doc/sane-xsane-histogram-doc.html137
-rw-r--r--doc/sane-xsane-histogram.jpgbin26450 -> 0 bytes
-rw-r--r--doc/sane-xsane-mail-doc.html163
-rw-r--r--doc/sane-xsane-main-doc.html2
-rw-r--r--doc/sane-xsane-preview-doc.html305
-rw-r--r--doc/sane-xsane-preview.jpgbin42499 -> 0 bytes
-rw-r--r--doc/sane-xsane-save-doc.html253
-rw-r--r--doc/sane-xsane-scan-doc.html92
-rw-r--r--doc/sane-xsane-setup-copy-doc.html193
-rw-r--r--doc/sane-xsane-setup-copy.jpgbin36848 -> 0 bytes
-rw-r--r--doc/sane-xsane-setup-display-doc.html204
-rw-r--r--doc/sane-xsane-setup-display.jpgbin29270 -> 0 bytes
-rw-r--r--doc/sane-xsane-setup-enhancement-doc.html195
-rw-r--r--doc/sane-xsane-setup-fax-doc.html209
-rw-r--r--doc/sane-xsane-setup-fax.jpgbin26701 -> 0 bytes
-rw-r--r--doc/sane-xsane-setup-image-doc.html167
-rw-r--r--doc/sane-xsane-setup-mail-doc.html190
-rw-r--r--doc/sane-xsane-setup-save-doc.html192
-rw-r--r--doc/sane-xsane-setup-save.jpgbin30881 -> 0 bytes
-rw-r--r--doc/sane-xsane-standard-doc.html130
-rw-r--r--doc/sane-xsane-standard.jpgbin16093 -> 0 bytes
-rw-r--r--doc/sane-xsane-viewer-doc.html232
-rw-r--r--doc/sane-xsane.jpgbin25412 -> 0 bytes
-rw-r--r--doc/xsane-advanced.jpgbin0 -> 14672 bytes
-rw-r--r--doc/xsane-autoenhance.jpg (renamed from doc/autoenhance.jpg)bin1219 -> 1219 bytes
-rw-r--r--doc/xsane-autoselect.jpgbin0 -> 756 bytes
-rw-r--r--doc/xsane-blur.jpgbin0 -> 706 bytes
-rw-r--r--doc/xsane-brightness.jpg (renamed from doc/brightness.jpg)bin726 -> 726 bytes
-rw-r--r--doc/xsane-clone.jpgbin0 -> 702 bytes
-rw-r--r--doc/xsane-colormode.jpgbin0 -> 698 bytes
-rw-r--r--doc/xsane-contrast.jpg (renamed from doc/contrast.jpg)bin922 -> 922 bytes
-rw-r--r--doc/xsane-copy.jpgbin0 -> 10258 bytes
-rw-r--r--doc/xsane-default.jpg (renamed from doc/default.jpg)bin747 -> 747 bytes
-rw-r--r--doc/xsane-delete-preview-cache.jpgbin0 -> 750 bytes
-rw-r--r--doc/xsane-despeckle.jpgbin0 -> 692 bytes
-rw-r--r--doc/xsane-disk.jpgbin0 -> 633 bytes
-rw-r--r--doc/xsane-fax-project.jpgbin0 -> 18343 bytes
-rw-r--r--doc/xsane-fax.jpgbin0 -> 9315 bytes
-rw-r--r--doc/xsane-gamma.jpg (renamed from doc/gamma.jpg)bin808 -> 808 bytes
-rw-r--r--doc/xsane-gimp.jpgbin0 -> 9170 bytes
-rw-r--r--doc/xsane-histogram.jpgbin0 -> 24583 bytes
-rw-r--r--doc/xsane-logo.jpgbin14048 -> 0 bytes
-rw-r--r--doc/xsane-mail.jpgbin0 -> 9787 bytes
-rw-r--r--doc/xsane-medium.jpgbin0 -> 556 bytes
-rw-r--r--doc/xsane-mirror-x.jpgbin0 -> 662 bytes
-rw-r--r--doc/xsane-mirror-y.jpgbin0 -> 641 bytes
-rw-r--r--doc/xsane-negative.jpg (renamed from doc/negative.jpg)bin1267 -> 1267 bytes
-rw-r--r--doc/xsane-ocr.jpgbin0 -> 746 bytes
-rw-r--r--doc/xsane-pipette-black.jpg (renamed from doc/sane-xsane-pipette-black.jpg)bin1058 -> 1058 bytes
-rw-r--r--doc/xsane-pipette-gray.jpg (renamed from doc/sane-xsane-pipette-gray.jpg)bin1077 -> 1077 bytes
-rw-r--r--doc/xsane-pipette-white.jpg (renamed from doc/sane-xsane-pipette-white.jpg)bin1065 -> 1065 bytes
-rw-r--r--doc/xsane-preferences.jpgbin0 -> 14301 bytes
-rw-r--r--doc/xsane-preset-area.jpgbin0 -> 1188 bytes
-rw-r--r--doc/xsane-preview.jpgbin0 -> 55593 bytes
-rw-r--r--doc/xsane-printer.jpgbin0 -> 603 bytes
-rw-r--r--doc/xsane-resolution.jpgbin0 -> 645 bytes
-rw-r--r--doc/xsane-restore.jpg (renamed from doc/restore.jpg)bin837 -> 837 bytes
-rw-r--r--doc/xsane-rgb-default.jpg (renamed from doc/rgb-default.jpg)bin1095 -> 1095 bytes
-rw-r--r--doc/xsane-rotate-180.jpgbin0 -> 609 bytes
-rw-r--r--doc/xsane-rotate-270.jpgbin0 -> 655 bytes
-rw-r--r--doc/xsane-rotate-90.jpgbin0 -> 595 bytes
-rw-r--r--doc/xsane-rotation.jpgbin0 -> 901 bytes
-rw-r--r--doc/xsane-save.jpgbin0 -> 10628 bytes
-rw-r--r--doc/xsane-scale.jpgbin0 -> 644 bytes
-rw-r--r--doc/xsane-scansource.jpgbin0 -> 616 bytes
-rw-r--r--doc/xsane-setup-copy.jpgbin0 -> 42354 bytes
-rw-r--r--doc/xsane-setup-display.jpgbin0 -> 33113 bytes
-rw-r--r--doc/xsane-setup-enhancement.jpgbin0 -> 38408 bytes
-rw-r--r--doc/xsane-setup-fax.jpgbin0 -> 32988 bytes
-rw-r--r--doc/xsane-setup-image.jpgbin0 -> 10353 bytes
-rw-r--r--doc/xsane-setup-mail.jpgbin0 -> 37467 bytes
-rw-r--r--doc/xsane-setup-save.jpgbin0 -> 34075 bytes
-rw-r--r--doc/xsane-standard.jpgbin0 -> 18374 bytes
-rw-r--r--doc/xsane-store.jpg (renamed from doc/store.jpg)bin790 -> 790 bytes
-rw-r--r--doc/xsane-threshold.jpgbin0 -> 672 bytes
-rw-r--r--doc/xsane-viewer-window.jpgbin0 -> 38185 bytes
-rw-r--r--doc/xsane-viewer.jpgbin0 -> 9724 bytes
-rw-r--r--doc/xsane-visible-area.jpg (renamed from doc/sane-xsane-visible-area.jpg)bin847 -> 847 bytes
-rw-r--r--doc/xsane-zoom-in.jpg (renamed from doc/sane-xsane-zoom-in.jpg)bin1094 -> 1094 bytes
-rw-r--r--doc/xsane-zoom-not.jpg (renamed from doc/sane-xsane-zoom-not.jpg)bin1150 -> 1150 bytes
-rw-r--r--doc/xsane-zoom-out.jpg (renamed from doc/sane-xsane-zoom-out.jpg)bin1128 -> 1128 bytes
-rw-r--r--doc/xsane-zoom-undo.jpg (renamed from doc/sane-xsane-zoom-undo.jpg)bin1101 -> 1101 bytes
-rw-r--r--doc/xsane-zoom.jpgbin0 -> 580 bytes
-rw-r--r--doc/xsane.jpgbin0 -> 10628 bytes
-rw-r--r--doc/xsane.man49
-rw-r--r--frontend/Makefile.in85
-rw-r--r--frontend/xsane-back-gtk.h188
-rw-r--r--frontend/xsane-device-preferences.c.old761
-rw-r--r--frontend/xsane-front-gtk.c798
-rw-r--r--frontend/xsane-gamma.c1541
-rw-r--r--frontend/xsane-preferences.c292
-rw-r--r--frontend/xsane-preferences.h122
-rw-r--r--frontend/xsane-preview.c3257
-rw-r--r--frontend/xsane-save.c975
-rw-r--r--frontend/xsane-save.h79
-rw-r--r--frontend/xsane-scan.c2369
-rw-r--r--frontend/xsane-setup.c1565
-rw-r--r--frontend/xsane-text.h417
-rw-r--r--frontend/xsane.c4829
-rw-r--r--include/config.h298
-rw-r--r--include/config.h.in (renamed from include/sane/config.h.in)61
-rw-r--r--include/md5.h145
-rw-r--r--include/sane/sanei_backend.h116
-rw-r--r--include/sane/sanei_config.h76
-rw-r--r--include/sane/stamp-h1
-rw-r--r--include/sanei_signal.h (renamed from include/sane/sanei_signal.h)0
-rw-r--r--intl/Makefile.in4
l---------intl/libintl.h1
-rw-r--r--lib/Makefile.in10
-rw-r--r--lib/md5.c419
-rw-r--r--lib/sigprocmask.c48
-rw-r--r--po/Makefile.in163
-rw-r--r--po/Makefile.in.bak92
-rw-r--r--po/README72
-rw-r--r--po/README.ADD_NEW_LANGUAGE69
-rw-r--r--po/README.UPDATE_LANGUAGE8
-rw-r--r--po/add-0.37.po.in56
-rw-r--r--po/add-0.38.po.in48
-rw-r--r--po/add-0.40.po.in40
-rw-r--r--po/add-0.44.po.in9
-rw-r--r--po/add-0.47.po.in5
-rw-r--r--po/cs.gmobin24167 -> 41056 bytes
-rw-r--r--po/cs.po2822
-rw-r--r--po/cs.po.in1239
-rw-r--r--po/de.gmobin24095 -> 43876 bytes
-rw-r--r--po/de.po2899
-rw-r--r--po/de.po.in1230
-rw-r--r--po/del-0.43.po.in2
-rw-r--r--po/del-0.44.po.in4
-rw-r--r--po/del-0.47.po.in3
-rw-r--r--po/es.gmobin0 -> 43591 bytes
-rw-r--r--po/es.po2391
-rw-r--r--po/fr.gmobin17131 -> 42654 bytes
-rw-r--r--po/fr.po3480
-rw-r--r--po/fr.po.in1072
-rw-r--r--po/it.gmobin0 -> 22748 bytes
-rw-r--r--po/it.po2546
-rw-r--r--po/ja.gmobin0 -> 38615 bytes
-rw-r--r--po/ja.po2329
-rwxr-xr-xpo/make_newlanguage.po.in3
-rw-r--r--po/messagesbin0 -> 22748 bytes
-rw-r--r--po/newlanguage.po.in1567
-rw-r--r--po/newlanguage.po.in.header2
-rw-r--r--po/newlanguage.po.in.in1211
-rw-r--r--po/nl.gmobin0 -> 40145 bytes
-rw-r--r--po/nl.po2347
-rwxr-xr-xpo/po.in2po8
-rwxr-xr-xpo/remake_language.po.in10
-rw-r--r--po/ru.gmobin0 -> 42350 bytes
-rw-r--r--po/ru.po2366
-rw-r--r--po/sane-text.h19
-rw-r--r--po/sl.gmobin0 -> 25350 bytes
-rw-r--r--po/sl.po2498
-rw-r--r--po/sr.gmobin0 -> 40091 bytes
-rw-r--r--po/sr.po2351
-rw-r--r--po/sv.gmobin0 -> 38314 bytes
-rw-r--r--po/sv.po2403
-rw-r--r--po/tr.gmobin0 -> 40587 bytes
-rw-r--r--po/tr.po2351
-rw-r--r--po/xsane-pot.sed6
-rw-r--r--po/xsane.pot2260
-rwxr-xr-xprint-libs18
-rw-r--r--sanei/Makefile0
-rw-r--r--src/Makefile.in111
-rw-r--r--src/Makefile.in.WIN3283
-rw-r--r--src/Mustek-logo.txt17
-rw-r--r--src/Mustek-logo.xpm527
-rw-r--r--src/Plustek-logo.txt18
-rw-r--r--src/Plustek-logo.xpm75
-rw-r--r--src/UMAX-logo.txt15
-rw-r--r--src/UMAX-logo.xpm56
-rw-r--r--src/cursor/cursor_pipette_black (renamed from frontend/cursor/cursor_pipette_black)0
-rw-r--r--src/cursor/cursor_pipette_gray (renamed from frontend/cursor/cursor_pipette_gray)0
-rw-r--r--src/cursor/cursor_pipette_mask (renamed from frontend/cursor/cursor_pipette_mask)0
-rw-r--r--src/cursor/cursor_pipette_white (renamed from frontend/cursor/cursor_pipette_white)0
-rw-r--r--src/sane-epson-logo.xpm495
-rw-r--r--src/sane-hp-logo.xpm253
-rw-r--r--src/sane-umax-logo.xpm557
-rw-r--r--src/sane-xsane-logo.xpm425
-rw-r--r--src/xsane-32x32.icobin0 -> 2238 bytes
-rw-r--r--src/xsane-32x32.xpm236
-rw-r--r--src/xsane-48x48.icobin0 -> 3774 bytes
-rw-r--r--src/xsane-48x48.xpm272
-rw-r--r--src/xsane-WIN32.txt123
-rw-r--r--src/xsane-back-gtk.c (renamed from frontend/xsane-back-gtk.c)920
-rw-r--r--src/xsane-back-gtk.h91
-rw-r--r--src/xsane-calibration-help.pnm155
-rw-r--r--src/xsane-calibration.pnm156
-rw-r--r--src/xsane-calibration.xpm807
-rw-r--r--src/xsane-device-preferences.c (renamed from frontend/xsane-device-preferences.c)290
-rw-r--r--src/xsane-device-preferences.h (renamed from frontend/xsane-device-preferences.h)8
-rw-r--r--src/xsane-fixedtext.h50
-rw-r--r--src/xsane-front-gtk.c1664
-rw-r--r--src/xsane-front-gtk.h (renamed from frontend/xsane-front-gtk.h)36
-rw-r--r--src/xsane-gamma.c2504
-rw-r--r--src/xsane-gamma.h (renamed from frontend/xsane-gamma.h)26
-rw-r--r--src/xsane-gimp-1_0-compat.h50
-rw-r--r--src/xsane-icons.c (renamed from frontend/xsane-icons.c)877
-rw-r--r--src/xsane-icons.h (renamed from frontend/xsane-icons.h)27
-rw-r--r--src/xsane-license.txt108
-rw-r--r--src/xsane-logo.xpm (renamed from frontend/xsane-logo.xpm)4
-rw-r--r--src/xsane-preferences.c536
-rw-r--r--src/xsane-preferences.h190
-rw-r--r--src/xsane-preview.c5997
-rw-r--r--src/xsane-preview.h (renamed from frontend/xsane-preview.h)68
-rw-r--r--src/xsane-rc-io.c (renamed from frontend/xsane-rc-io.c)169
-rw-r--r--src/xsane-rc-io.h (renamed from frontend/xsane-rc-io.h)5
-rw-r--r--src/xsane-save.c3466
-rw-r--r--src/xsane-save.h62
-rw-r--r--src/xsane-scan.c2179
-rw-r--r--src/xsane-scan.h (renamed from frontend/xsane-scan.h)6
-rw-r--r--src/xsane-setup.c3064
-rw-r--r--src/xsane-setup.h (renamed from frontend/xsane-setup.h)4
-rw-r--r--src/xsane-startimage.pnm332
-rw-r--r--src/xsane-style.rc (renamed from frontend/xsane-style.rc)0
-rw-r--r--src/xsane-text.h701
-rw-r--r--src/xsane-viewer.c1448
-rw-r--r--src/xsane-viewer.h79
-rw-r--r--src/xsane.c7972
-rw-r--r--src/xsane.h (renamed from frontend/xsane.h)584
-rw-r--r--src/xsane.icobin0 -> 2238 bytes
-rw-r--r--xsane-0.50.lsm17
-rw-r--r--xsane-WIN32-compilation.txt142
-rw-r--r--xsane-convert-to-0.46.c85
-rw-r--r--xsane-convert-to-0.49.c65
-rw-r--r--xsane.ACCELKEYS61
-rw-r--r--xsane.AUTHOR2
-rw-r--r--xsane.BACKENDS42
-rw-r--r--xsane.BEGINNERS-INFO31
-rw-r--r--xsane.BUGS27
-rw-r--r--xsane.CHANGES1248
-rw-r--r--xsane.IMAGE4
-rw-r--r--xsane.INSTALL50
-rw-r--r--xsane.LANGUAGES6
-rw-r--r--xsane.LOGO7
-rw-r--r--xsane.NEWS21
-rw-r--r--xsane.OLDER_NEWS19
-rw-r--r--xsane.PROBLEMS91
-rw-r--r--xsane.REMOVE36
-rw-r--r--xsane.ROOT49
-rw-r--r--xsane.RPM7
-rw-r--r--xsane.TODO129
-rw-r--r--xsane.VENDOR-STRINGS9
-rw-r--r--xsane.WIP4
-rw-r--r--xsane.spec43
-rw-r--r--xsane.spec.in43
284 files changed, 76758 insertions, 31729 deletions
diff --git a/Makefile.in b/Makefile.in
index 309b77a..c7a76df 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -20,6 +20,8 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
+sanedatadir = @datadir@/sane
+
MKDIR = $(top_srcdir)/mkinstalldirs
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -27,13 +29,14 @@ INSTALL_DATA = @INSTALL_DATA@
@SET_MAKE@
-SUBDIRS = lib @INTLSUB@ frontend @POSUB@ doc
+SUBDIRS = lib @INTLSUB@ src @POSUB@ doc
all: all-recursive
-
install: install-recursive
+uninstall: uninstall-recursive
+
clean: clean-recursive
distclean: clean distclean-recursive
@@ -43,7 +46,7 @@ distclean: clean distclean-recursive
depend: depend-recursive
-all-recursive install-recursive clean-recursive distclean-recursive \
+all-recursive install-recursive uninstall-recursive clean-recursive distclean-recursive \
depend-recursive:
for subdir in $(SUBDIRS); do \
target=`echo $@ | sed s/-recursive//`; \
diff --git a/aclocal.m4 b/aclocal.m4
index ae0266d..4c39f9c 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,3 +1,4 @@
+######################################################################
# Configure paths for GTK+
# Owen Taylor 97-11-3
@@ -8,12 +9,11 @@ AC_DEFUN(AM_PATH_GTK,
[dnl
dnl Get the cflags and libraries from the gtk-config script
dnl
-AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
- gtk_config_prefix="$withval", gtk_config_prefix="")
-AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
- gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
-AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
- , enable_gtktest=yes)
+ AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
+ gtk_config_prefix="$withval", gtk_config_prefix="")
+ AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
+ gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
+ AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program], , enable_gtktest=yes)
if test x$gtk_config_exec_prefix != x ; then
gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
@@ -171,267 +171,420 @@ main ()
######################################################################
+# Configure paths for The GIMP
+# Oliver Rauch 2000-12-28
-## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
-## Copyright (C) 1996-1998 Free Software Foundation, Inc.
-## Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-## General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-## As a special exception to the GNU General Public License, if you
-## distribute this file as part of a program that contains a
-## configuration script generated by Autoconf, you may include it under
-## the same distribution terms that you use for the rest of that program.
-
-# serial 24 AM_PROG_LIBTOOL
-AC_DEFUN(AM_PROG_LIBTOOL,
-[AC_REQUIRE([AM_ENABLE_SHARED])dnl
-AC_REQUIRE([AM_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_RANLIB])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AM_PROG_LD])dnl
-AC_REQUIRE([AM_PROG_NM])dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
+dnl AM_PATH_GIMP([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for GIMP, and define GIMP_CFLAGS and GIMP_LIBS
+dnl
+AC_DEFUN(AM_PATH_GIMP,
+[dnl
+dnl Get the cflags and libraries from the gimp-config script
dnl
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags=
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$silent" = yes && libtool_flags="$libtool_flags --silent"
-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case "$host" in
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line __oline__ "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case "`/usr/bin/file conftest.o`" in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
+ AC_ARG_WITH(gimp-prefix,[ --with-gimp-prefix=PFX Prefix where GIMP is installed (optional)],
+ gimp_config_prefix="$withval", gimp_config_prefix="")
+ AC_ARG_WITH(gimp-exec-prefix,[ --with-gimp-exec-prefix=PFX Exec prefix where GIMP is installed (optional)],
+ gimp_config_exec_prefix="$withval", gimp_config_exec_prefix="")
+ AC_ARG_ENABLE(gimptest, [ --disable-gimptest Do not try to compile and run a test GIMP program], , enable_gimptest=yes)
+
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ ac_save_GTK_CFLAGS="$GTK_CFLAGS"
+ ac_save_GTK_LIBS="$GTK_LIBS"
+
+ if test x$gimp_config_exec_prefix != x ; then
+ gimp_config_args="$gimp_config_args --exec-prefix=$gimp_config_exec_prefix"
+ if test x${GIMP_CONFIG+set} != xset ; then
+ GIMP_CONFIG=$gimp_config_exec_prefix/bin/gimp-config
+ fi
fi
- rm -rf conftest*
- ;;
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- CFLAGS="$CFLAGS -belf"
- ;;
-esac
-
-# Actually configure libtool. ac_aux_dir is where install-sh is found.
-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \
-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
-|| AC_MSG_ERROR([libtool configure failed])
-])
+ if test x$gimp_config_prefix != x ; then
+ gimp_config_args="$gimp_config_args --prefix=$gimp_config_prefix"
+ if test x${GIMP_CONFIG+set} != xset ; then
+ GIMP_CONFIG=$gimp_config_prefix/bin/gimp-config
+ fi
+ fi
-# AM_ENABLE_SHARED - implement the --enable-shared flag
-# Usage: AM_ENABLE_SHARED[(DEFAULT)]
-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
-# `yes'.
-AC_DEFUN(AM_ENABLE_SHARED,
-[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(shared,
-changequote(<<, >>)dnl
-<< --enable-shared build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT]
-changequote([, ])dnl
-[ --enable-shared=PKGS only build shared libraries if the current package
- appears as an element in the PKGS list],
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
+ AC_PATH_PROG(GIMP_CONFIG, gimp-config, no)
+ if test "$GIMP_CONFIG" = "no" ; then
+ if test x$gimp_config_exec_prefix != x ; then
+ gimp_config_args="$gimp_config_args --exec-prefix=$gimp_config_exec_prefix"
+ if test x${GIMP_TOOL+set} != xset ; then
+ GIMP_TOOL=$gimp_config_exec_prefix/bin/gimptool
+ fi
fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac],
-enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl
-])
+ if test x$gimp_config_prefix != x ; then
+ gimp_config_args="$gimp_config_args --prefix=$gimp_config_prefix"
+ if test x${GIMP_TOOL+set} != xset ; then
+ GIMP_TOOL=$gimp_config_prefix/bin/gimptool
+ fi
+ fi
+ AC_PATH_PROG(GIMP_TOOL, gimptool, no)
+ GIMP_CONFIG=$GIMP_TOOL
+ fi
-# AM_DISABLE_SHARED - set the default shared flag to --disable-shared
-AC_DEFUN(AM_DISABLE_SHARED,
-[AM_ENABLE_SHARED(no)])
-
-# AM_DISABLE_STATIC - set the default static flag to --disable-static
-AC_DEFUN(AM_DISABLE_STATIC,
-[AM_ENABLE_STATIC(no)])
-
-# AM_ENABLE_STATIC - implement the --enable-static flag
-# Usage: AM_ENABLE_STATIC[(DEFAULT)]
-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
-# `yes'.
-AC_DEFUN(AM_ENABLE_STATIC,
-[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(static,
-changequote(<<, >>)dnl
-<< --enable-static build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT]
-changequote([, ])dnl
-[ --enable-static=PKGS only build shared libraries if the current package
- appears as an element in the PKGS list],
-[p=${PACKAGE-default}
-case "$enableval" in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_static=yes
+ min_gimp_version=ifelse([$1], ,1.0.0,$1)
+ no_gimp=""
+
+ if test "$GIMP_CONFIG" = "no" ; then
+dnl we do not have gimp-config (gimp-1.0.x does not have gimp-config)
+dnl so we have to use the GTK_* things for testing for gimp.h and gimpfeatures.h
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="${CPPFLAGS} ${GTK_CFLAGS}"
+ AC_CHECK_HEADERS(libgimp/gimp.h, GIMP_LIBS="-lgimp", no_gimp=yes)
+ AC_CHECK_HEADERS(libgimp/gimpfeatures.h)
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ CFLAGS="${CFLAGS} ${GTK_CFLAGS}"
+ LIBS="${LIBS} ${GTK_LIBS} ${GIMP_LIBS}"
+ if test "x$no_gimp" = x ; then
+ AC_MSG_CHECKING(GIMP compilation)
+ gimp_config_major_version=-1
+ gimp_config_minor_version=0
+ gimp_config_micro_version=0
fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac],
-enable_static=AM_ENABLE_STATIC_DEFAULT)dnl
-])
+ else
+dnl Ok, we have gimp-config and so we do not need the GTK_* things because they are
+dnl included in the output of gimp-config
+ GTK_CFLAGS=""
+ GTK_LIBS=""
+ GIMP_CFLAGS=`$GIMP_CONFIG $gimp_config_args --cflags`
+ GIMP_LIBS=`$GIMP_CONFIG $gimp_config_args --libs`" -lgimp"
+ gimp_config_major_version=`$GIMP_CONFIG $gimp_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ gimp_config_minor_version=`$GIMP_CONFIG $gimp_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ gimp_config_micro_version=`$GIMP_CONFIG $gimp_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ CFLAGS="${CFLAGS} ${GIMP_CFLAGS}"
+ LIBS="${LIBS} ${GIMP_LIBS}"
+ AC_MSG_CHECKING(for GIMP - version >= $min_gimp_version)
+ fi
+dnl
+dnl Now check if the installed GIMP is sufficiently new. (Also sanity
+dnl checks the results of gimp-config to some extent
+dnl
+ if test "x$no_gimp" = x ; then
+ if test "x$enable_gimptest" = "xyes" ; then
+ rm -f conf.gimptest
+ AC_TRY_RUN([
+#include <libgimp/gimp.h>
+#include <stdio.h>
-# AM_PROG_LD - find the path to the GNU or non-GNU linker
-AC_DEFUN(AM_PROG_LD,
-[AC_ARG_WITH(gnu-ld,
-[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])
-ac_prog=ld
-if test "$ac_cv_prog_gcc" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by GCC])
- ac_prog=`($CC -print-prog-name=ld) 2>&5`
- case "$ac_prog" in
- # Accept absolute paths.
- /* | [A-Za-z]:\\*)
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(ac_cv_path_LD,
-[if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog"; then
- ac_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- ac_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$ac_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_SUBST(LD)
-AM_PROG_LD_GNU
-])
+#define GIMP_TEST_CHECK_VERSION(major, minor, micro) \
+ ($gimp_config_major_version > (major) || \
+ ($gimp_config_major_version == (major) && $gimp_config_minor_version > (minor)) || \
+ ($gimp_config_major_version == (major) && $gimp_config_minor_version == (minor) && \
+ $gimp_config_micro_version >= (micro)))
-AC_DEFUN(AM_PROG_LD_GNU,
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- ac_cv_prog_gnu_ld=yes
-else
- ac_cv_prog_gnu_ld=no
-fi])
+#if !GIMP_TEST_CHECK_VERSION(1,1,25)
+# define GimpPlugInInfo GPlugInInfo /* do test with gimp interface version 1.0 */
+#endif
+
+GimpPlugInInfo PLUG_IN_INFO =
+{
+ NULL, NULL, NULL, NULL
+};
+
+
+int
+main ()
+{
+ int major, minor, micro;
+
+ system ("touch conf.gimptest");
+
+ if (sscanf("$min_gimp_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_gimp_version");
+ exit(1);
+ }
+
+ if ( ($gimp_config_major_version != -1) &&
+ ((gimp_major_version != $gimp_config_major_version) ||
+ (gimp_minor_version != $gimp_config_minor_version) ||
+ (gimp_micro_version != $gimp_config_micro_version)) )
+ {
+ printf("\n*** 'gimp-config --version' returned %d.%d.%d, but GIMP (%d.%d.%d)\n",
+ $gimp_config_major_version, $gimp_config_minor_version, $gimp_config_micro_version,
+ gimp_major_version, gimp_minor_version, gimp_micro_version);
+ printf ("*** was found! If gimp-config was correct, then it is best\n");
+ printf ("*** to remove the old version of GIMP. You may also be able to fix the error\n");
+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+ printf("*** required on your system.\n");
+ printf("*** If gimp-config was wrong, set the environment variable GIMP_CONFIG\n");
+ printf("*** to point to the correct copy of gimp-config, and remove the file config.cache\n");
+ printf("*** before re-running configure\n");
+ }
+ else
+ {
+ if ((gimp_major_version > major) ||
+ ((gimp_major_version == major) && (gimp_minor_version > minor)) ||
+ ((gimp_major_version == major) && (gimp_minor_version == minor) && (gimp_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** An old version of GIMP (%d.%d.%d) was found.\n",
+ gimp_major_version, gimp_minor_version, gimp_micro_version);
+ printf("*** You need a version of GIMP newer than %d.%d.%d. The latest version of\n",
+ major, minor, micro);
+ printf("*** GIMP is always available from ftp://ftp.gimp.org.\n");
+ printf("***\n");
+ printf("*** If you have already installed a sufficiently new version, this error\n");
+ printf("*** probably means that the wrong copy of the gimp-config shell script is\n");
+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
+ printf("*** of GIMP, but you can also set the GIMP_CONFIG environment to point to the\n");
+ printf("*** correct copy of gimp-config. (In this case, you will have to\n");
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+ printf("*** so that the correct libraries are found at run-time))\n");
+ }
+ }
+ return 1;
+}
+], , no_gimp=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ fi
+ fi
+
+ if test "x$no_gimp" = x ; then
+dnl gimp test succeeded or not tested
+ if test "x$enable_gimptest" = "xyes" ; then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(not tested)
+ fi
+ if test "$GIMP_CONFIG" != "no" ; then
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="${CPPFLAGS} ${GIMP_CFLAGS}"
+ AC_CHECK_HEADERS(libgimp/gimp.h)
+ AC_CHECK_HEADERS(libgimp/gimpfeatures.h)
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test -f conf.gimptest ; then
+ :
+ else
+ echo "*** Could not run GIMP test program, checking why..."
+ CFLAGS="$CFLAGS $GIMP_CFLAGS"
+ LIBS="$LIBS $GIMP_LIBS"
+ AC_TRY_LINK([
+#include <libgimp/gimp.h>
+#include <stdio.h>
+#define GIMP_TEST_CHECK_VERSION(major, minor, micro) \
+ ($gimp_config_major_version > (major) || \
+ ($gimp_config_major_version == (major) && $gimp_config_minor_version > (minor)) || \
+ ($gimp_config_major_version == (major) && $gimp_config_minor_version == (minor) && \
+ $gimp_config_micro_version >= (micro)))
+
+#if !GIMP_TEST_CHECK_VERSION(1,1,25)
+# define GimpPlugInInfo GPlugInInfo /* do test with gimp interface version 1.0 */
+#endif
+GimpPlugInInfo PLUG_IN_INFO = { NULL, NULL, NULL, NULL };
+], [ return ((gimp_major_version) || (gimp_minor_version) || (gimp_micro_version)); ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding GIMP or finding the wrong"
+ echo "*** version of GIMP. If it is not finding GIMP, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+ echo "***"
+ echo "***" ])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+dnl ok, gimp does not work, so we have to use the gtk_* things again
+ GIMP_CFLAGS=""
+ GIMP_LIBS=""
+ GTK_CFLAGS="$ac_save_GTK_CFLAGS"
+ GTK_LIBS="$ac_save_GTK_LIBS"
+ CFLAGS="${CFLAGS} ${GTK_CFLAGS}"
+ LIBS="${LIBS} ${GTK_LIBS} ${GIMP_LIBS}"
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(GIMP_CFLAGS)
+ AC_SUBST(GIMP_LIBS)
+ rm -f conf.gimptest
])
-# AM_PROG_NM - find the path to a BSD-compatible name lister
-AC_DEFUN(AM_PROG_NM,
-[AC_MSG_CHECKING([for BSD-compatible nm])
-AC_CACHE_VAL(ac_cv_path_NM,
-[case "$NM" in
-/* | [A-Za-z]:\\*)
- ac_cv_path_NM="$NM" # Let the user override the test with a path.
- ;;
-*)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/nm; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$ac_dir/nm -B"
- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- ac_cv_path_NM="$ac_dir/nm -p"
- else
- ac_cv_path_NM="$ac_dir/nm"
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
- ;;
-esac])
-NM="$ac_cv_path_NM"
-AC_MSG_RESULT([$NM])
-AC_SUBST(NM)
+
+# ********************************************************************
+# Configure paths for SANE
+# Oliver Rauch 2000-10-30
+
+dnl AM_PATH_SANE([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for SANE, and define SANE_CFLAGS and SANE_LIBS
+dnl
+AC_DEFUN(AM_PATH_SANE,
+[dnl
+dnl Get the cflags and libraries from the sane-config script
+dnl
+ AC_ARG_WITH(sane-prefix,[ --with-sane-prefix=PFX Prefix where SANE is installed (optional)],
+ sane_config_prefix="$withval", sane_config_prefix="")
+ AC_ARG_WITH(sane-exec-prefix,[ --with-sane-exec-prefix=PFX Exec prefix where SANE is installed (optional)],
+ sane_config_exec_prefix="$withval", sane_config_exec_prefix="")
+ AC_ARG_ENABLE(sanetest, [ --disable-sanetest Do not try to compile and run a test SANE program], , enable_sanetest=yes)
+
+ if test x$sane_config_exec_prefix != x ; then
+ sane_config_args="$sane_config_args --exec-prefix=$sane_config_exec_prefix"
+ if test x${SANE_CONFIG+set} != xset ; then
+ SANE_CONFIG=$sane_config_exec_prefix/bin/sane-config
+ fi
+ fi
+ if test x$sane_config_prefix != x ; then
+ sane_config_args="$sane_config_args --prefix=$sane_config_prefix"
+ if test x${SANE_CONFIG+set} != xset ; then
+ SANE_CONFIG=$sane_config_prefix/bin/sane-config
+ fi
+ fi
+
+ AC_PATH_PROG(SANE_CONFIG, sane-config, no)
+ min_sane_version=ifelse([$1], ,1.0.0,$1)
+ AC_MSG_CHECKING(for SANE - version >= $min_sane_version)
+ no_sane=""
+ if test "$SANE_CONFIG" = "no" ; then
+ no_sane=yes
+ else
+ SANE_CFLAGS=`$SANE_CONFIG $sane_config_args --cflags`
+ SANE_LDFLAGS=`$SANE_CONFIG $sane_config_args --ldflags`
+# SANE_LIBS=`$SANE_CONFIG $sane_config_args --libs`
+ SANE_LIBS=`$SANE_CONFIG $sane_config_args --libs | sed -e 's/-lintl//g'`
+ SANE_PREFIX=`$SANE_CONFIG $sane_config_args --prefix`
+ sane_config_major_version=`$SANE_CONFIG $sane_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ sane_config_minor_version=`$SANE_CONFIG $sane_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ sane_config_micro_version=`$SANE_CONFIG $sane_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_sanetest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LDFLAGS="$LDFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $SANE_CFLAGS"
+ LDFLAGS="$LDFLAGS $SANE_LDFLAGS"
+ LIBS="$LIBS $SANE_LIBS"
+dnl
+dnl Now check if the installed SANE is sufficiently new. (Also sanity
+dnl checks the results of sane-config to some extent
+dnl
+ rm -f conf.sanetest
+ AC_TRY_RUN([
+#include <sane/sane.h>
+#include <stdio.h>
+
+int
+main ()
+{
+ int major, minor, micro;
+
+ system ("touch conf.sanetest");
+
+ if (sscanf("$min_sane_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_sane_version");
+ exit(1);
+ }
+
+ if ( ($sane_config_major_version == major) &&
+ ( ($sane_config_minor_version > minor) ||
+ ( ($sane_config_minor_version == minor) && ($sane_config_micro_version >= micro))))
+ {
+ return 0;
+ }
+ else if ($sane_config_major_version > major)
+ {
+ printf("\n*** A too new version of SANE (%d.%d.%d) was found.\n",
+ $sane_config_major_version, $sane_config_minor_version, $sane_config_micro_version);
+ printf("*** You need a version of SANE with the major version number %d.\n", major);
+ }
+ else
+ {
+ printf("\n*** An old version of SANE (%d.%d.%d) was found.\n",
+ $sane_config_major_version, $sane_config_minor_version, $sane_config_micro_version);
+ printf("*** You need a version of SANE newer than %d.%d.%d. The latest version of\n",
+ major, minor, micro);
+ }
+
+ printf("*** SANE is always available from ftp://ftp.mostang.com\n");
+ printf("***\n");
+ printf("*** If you have already installed a sufficient version, this error\n");
+ printf("*** probably means that the wrong copy of the sane-config shell script is\n");
+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
+ printf("*** of SANE, but you can also set the SANE_CONFIG environment to point to the\n");
+ printf("*** correct copy of sane-config. (In this case, you will have to\n");
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+ printf("*** so that the correct libraries are found at run-time))\n");
+
+ return 1;
+}
+],, no_sane=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LDFLAGS="$ac_save_LDFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_sane" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$SANE_CONFIG" = "no" ; then
+ echo "*** The sane-config script installed by SANE could not be found"
+ echo "*** If SANE was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the SANE_CONFIG environment variable to the"
+ echo "*** full path to sane-config."
+ else
+ if test -f conf.sanetest ; then
+ :
+ else
+ echo "*** Could not run SANE test program, checking why..."
+ CFLAGS="$CFLAGS $SANE_CFLAGS"
+ LIBS="$LIBS $SANE_LIBS"
+ LDFLAGS="$LDFLAGS $SANE_LDFLAGS"
+ AC_TRY_LINK([
+#include <sane/sane.h>
+#include <stdio.h>
+], [ return (SANE_CURRENT_MAJOR); ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding SANE or finding the wrong"
+ echo "*** version of SANE. If it is not finding SANE, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+ echo "***" ]
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means SANE was incorrectly installed"
+ echo "*** or that you have moved SANE since it was installed. In the latter case, you"
+ echo "*** may want to edit the sane-config script: $SANE_CONFIG" ])
+ CFLAGS="$ac_save_CFLAGS"
+ LDFLAGS="$ac_save_LDFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ SANE_CFLAGS=""
+ SANE_LDFLAGS=""
+ SANE_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(SANE_LDFLAGS)
+ AC_SUBST(SANE_CFLAGS)
+ AC_SUBST(SANE_LIBS)
+ AC_SUBST(SANE_PREFIX)
+ rm -f conf.sanetest
])
-##### end of libtool.m4
+
+# ********************************************************************
+
dnl AM_FUNC_ALLOCA
AC_DEFUN(AM_FUNC_ALLOCA,
@@ -503,8 +656,8 @@ static char *f (char * (*g) (char **, int), char **p, ...)
} int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, i
-nt);
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int,
+ int);
int argc;
char **argv;
], [
@@ -528,6 +681,7 @@ esac
+# ********************************************************************
dnl aclocal.m4 generated automatically by aclocal 1.2f
dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
@@ -590,7 +744,7 @@ fi
AC_SUBST($1)dnl
])
-
+# ********************************************************************
# lcmessage.m4 from gettext 0.32
# Check whether LC_MESSAGES is available in <locale.h>.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
@@ -613,7 +767,7 @@ AC_DEFUN(AM_LC_MESSAGES,
fi])
-
+# ********************************************************************
# gettext.m4 from gettext 0.32
# Macro to add for using GNU gettext.
# Ulrich Drepper <drepper@cygnus.com>, 1995.
diff --git a/backend-po/README.ADD_NEW_LANGUAGE b/backend-po/README.ADD_NEW_LANGUAGE
index 5a016ca..27e1699 100644
--- a/backend-po/README.ADD_NEW_LANGUAGE
+++ b/backend-po/README.ADD_NEW_LANGUAGE
@@ -5,7 +5,7 @@ If you want to add a new translation, newbackend.po.in or newbackend.po could
be a good start!
If you have translations to other languages or for other backends,
-please send them to the backend author and to me <Oliver.Rauch@Wolfsburg.DE>
+please send them to the backend author and to me <Oliver.Rauch@rauch-domain.de>
Thanks
Oliver
diff --git a/backend-po/de.po.in b/backend-po/de.po.in
new file mode 100644
index 0000000..e3a7c87
--- /dev/null
+++ b/backend-po/de.po.in
@@ -0,0 +1,2 @@
+#include "/usr/local/include/sane/saneopts.h"
+#define _(x) x
diff --git a/backend-po/de/sane-umax.mo b/backend-po/de/sane-umax.mo
index 9c0c8d7..e5face6 100644
--- a/backend-po/de/sane-umax.mo
+++ b/backend-po/de/sane-umax.mo
Binary files differ
diff --git a/backend-po/newbackend.po.in b/backend-po/newbackend.po.in
index 5c01bfb..c2d8d72 100644
--- a/backend-po/newbackend.po.in
+++ b/backend-po/newbackend.po.in
@@ -1,546 +1,825 @@
#include "/usr/local/include/sane/saneopts.h"
#define _(x) x
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#nls translation file for backend "BACKENDNAME"
#language: "LANGUAGE" (XYZ)
-#original text: "Number of options"
+#original text: "Number of options"
msgid SANE_TITLE_NUM_OPTIONS
msgstr ""
-#original text: "Preview"
+#original text: "Preview"
msgid SANE_TITLE_PREVIEW
msgstr ""
-#original text: "Force monochrome preview"
+#original text: "Force monochrome preview"
msgid SANE_TITLE_GRAY_PREVIEW
msgstr ""
-#original text: "Bit depth"
+#original text: "Bit depth"
msgid SANE_TITLE_BIT_DEPTH
msgstr ""
-#original text: "Scan mode"
+#original text: "Scan mode"
msgid SANE_TITLE_SCAN_MODE
msgstr ""
-#original text: "Scan speed"
+#original text: "Scan speed"
msgid SANE_TITLE_SCAN_SPEED
msgstr ""
-#original text: "Scan source"
+#original text: "Scan source"
msgid SANE_TITLE_SCAN_SOURCE
msgstr ""
-#original text: "Force backtracking"
+#original text: "Force backtracking"
msgid SANE_TITLE_BACKTRACK
msgstr ""
-#original text: "Top-left x"
+#original text: "Top-left x"
msgid SANE_TITLE_SCAN_TL_X
msgstr ""
-#original text: "Top-left y"
+#original text: "Top-left y"
msgid SANE_TITLE_SCAN_TL_Y
msgstr ""
-#original text: "Bottom-right x"
+#original text: "Bottom-right x"
msgid SANE_TITLE_SCAN_BR_X
msgstr ""
-#original text: "Bottom-right y"
+#original text: "Bottom-right y"
msgid SANE_TITLE_SCAN_BR_Y
msgstr ""
-#original text: "Scan resolution"
+#original text: "Scan resolution"
msgid SANE_TITLE_SCAN_RESOLUTION
msgstr ""
-#original text: "X-resolution"
+#original text: "X-resolution"
msgid SANE_TITLE_SCAN_X_RESOLUTION
msgstr ""
-#original text: "Y-resolution"
+#original text: "Y-resolution"
msgid SANE_TITLE_SCAN_Y_RESOLUTION
msgstr ""
-#original text: "Use custom gamma table"
+#original text: "Use custom gamma table"
msgid SANE_TITLE_CUSTOM_GAMMA
msgstr ""
-#original text: "Image intensity"
+#original text: "Image intensity"
msgid SANE_TITLE_GAMMA_VECTOR
msgstr ""
-#original text: "Red intensity"
+#original text: "Red intensity"
msgid SANE_TITLE_GAMMA_VECTOR_R
msgstr ""
-#original text: "Green intensity"
+#original text: "Green intensity"
msgid SANE_TITLE_GAMMA_VECTOR_G
msgstr ""
-#original text: "Blue intensity"
+#original text: "Blue intensity"
msgid SANE_TITLE_GAMMA_VECTOR_B
msgstr ""
-#original text: "Brightness"
+#original text: "Brightness"
msgid SANE_TITLE_BRIGHTNESS
msgstr ""
-#original text: "Contrast"
+#original text: "Contrast"
msgid SANE_TITLE_CONTRAST
msgstr ""
-#original text: "Grain size"
+#original text: "Grain size"
msgid SANE_TITLE_GRAIN_SIZE
msgstr ""
-#original text: "Halftoning"
+#original text: "Halftoning"
msgid SANE_TITLE_HALFTONE
msgstr ""
-#original text: "Black level"
+#original text: "Black level"
msgid SANE_TITLE_BLACK_LEVEL
msgstr ""
-#original text: "White level"
+#original text: "White level"
msgid SANE_TITLE_WHITE_LEVEL
msgstr ""
-#original text: "Shadow"
+#original text: "Shadow"
msgid SANE_TITLE_SHADOW
msgstr ""
-#original text: "Shadow for red"
+#original text: "Shadow for red"
msgid SANE_TITLE_SHADOW_R
msgstr ""
-#original text: "Shadow for green"
+#original text: "Shadow for green"
msgid SANE_TITLE_SHADOW_G
msgstr ""
-#original text: "Shadow for blue"
+#original text: "Shadow for blue"
msgid SANE_TITLE_SHADOW_B
msgstr ""
-#original text: "Highlight"
+#original text: "Highlight"
msgid SANE_TITLE_HIGHLIGHT
msgstr ""
-#original text: "Highlight for red"
+#original text: "Highlight for red"
msgid SANE_TITLE_HIGHLIGHT_R
msgstr ""
-#original text: "Highlight for green"
+#original text: "Highlight for green"
msgid SANE_TITLE_HIGHLIGHT_G
msgstr ""
-#original text: "Highlight for blue"
+#original text: "Highlight for blue"
msgid SANE_TITLE_HIGHLIGHT_B
msgstr ""
-#original text: "Hue"
+#original text: "Hue"
msgid SANE_TITLE_HUE
msgstr ""
-#original text: "Saturation"
+#original text: "Saturation"
msgid SANE_TITLE_SATURATION
msgstr ""
-#original text: "Filename"
+#original text: "Filename"
msgid SANE_TITLE_FILE
msgstr ""
-#original text: "Halftone pattern size"
+#original text: "Halftone pattern size"
msgid SANE_TITLE_HALFTONE_DIMENSION
msgstr ""
-#original text: "Halftone pattern"
+#original text: "Halftone pattern"
msgid SANE_TITLE_HALFTONE_PATTERN
msgstr ""
-#original text: "Bind X and Y resolution"
+#original text: "Bind X and Y resolution"
msgid SANE_TITLE_RESOLUTION_BIND
msgstr ""
-#original text: "Negative"
+#original text: "Negative"
msgid SANE_TITLE_NEGATIVE
msgstr ""
-#original text: "Quality calibration"
+#original text: "Quality calibration"
msgid SANE_TITLE_QUALITY_CAL
msgstr ""
-#original text: "Double Optical Resolution"
+#original text: "Double Optical Resolution"
msgid SANE_TITLE_DOR
msgstr ""
-#original text: "Bind RGB"
+#original text: "Bind RGB"
msgid SANE_TITLE_RGB_BIND
msgstr ""
-#original text: "Threshold"
+#original text: "Threshold"
msgid SANE_TITLE_THRESHOLD
msgstr ""
-#original text: "Analog gamma correction"
+#original text: "Analog gamma correction"
msgid SANE_TITLE_ANALOG_GAMMA
msgstr ""
-#original text: "Analog gamma red"
+#original text: "Analog gamma red"
msgid SANE_TITLE_ANALOG_GAMMA_R
msgstr ""
-#original text: "Analog gamma green"
+#original text: "Analog gamma green"
msgid SANE_TITLE_ANALOG_GAMMA_G
msgstr ""
-#original text: "Analog gamma blue"
+#original text: "Analog gamma blue"
msgid SANE_TITLE_ANALOG_GAMMA_B
msgstr ""
-#original text: "Bind analog gamma"
+#original text: "Bind analog gamma"
msgid SANE_TITLE_ANALOG_GAMMA_BIND
msgstr ""
-#original text: "Smear"
+#original text: "Smear"
msgid SANE_TITLE_SMEAR
msgstr ""
-#original text: "10 bit-mode"
+#original text: "10 bit-mode"
msgid SANE_TITLE_TEN_BIT_MODE
msgstr ""
-#original text: "12 bit-mode"
+#original text: "12 bit-mode"
msgid SANE_TITLE_TWELVE_BIT_MODE
msgstr ""
-#original text: "Warmup lamp"
+#original text: "Warmup lamp"
msgid SANE_TITLE_WARMUP
msgstr ""
-#original text: "Preview patch"
+#original text: "Preview patch"
msgid SANE_TITLE_RGB_PREVIEW_PATCH
msgstr ""
-#original text: "Start-scan patch"
+#original text: "Start-scan patch"
msgid SANE_TITLE_START_SCAN_PATCH
msgstr ""
-#original text: "Cal. exposure-time"
+#original text: "Cal. exposure-time"
msgid SANE_TITLE_CAL_EXPOS_TIME
msgstr ""
-#original text: "Cal. exposure-time for red"
+#original text: "Cal. exposure-time for red"
msgid SANE_TITLE_CAL_EXPOS_TIME_R
msgstr ""
-#original text: "Cal. exposure-time for green"
+#original text: "Cal. exposure-time for " "green"
msgid SANE_TITLE_CAL_EXPOS_TIME_G
msgstr ""
-#original text: "Cal. exposure-time for blue"
+#original text: "Cal. exposure-time for blue"
msgid SANE_TITLE_CAL_EXPOS_TIME_B
msgstr ""
-#original text: "Scan exposure-time"
+#original text: "Scan exposure-time"
msgid SANE_TITLE_SCAN_EXPOS_TIME
msgstr ""
-#original text: "Scan exposure-time for red"
+#original text: "Scan exposure-time for red"
msgid SANE_TITLE_SCAN_EXPOS_TIME_R
msgstr ""
-#original text: "Scan exposure-time for green"
+#original text: "Scan exposure-time for " "green"
msgid SANE_TITLE_SCAN_EXPOS_TIME_G
msgstr ""
-#original text: "Scan exposure-time for blue"
+#original text: "Scan exposure-time for blue"
msgid SANE_TITLE_SCAN_EXPOS_TIME_B
msgstr ""
-#original text: "Set exposure-time"
+#original text: "Set exposure-time"
msgid SANE_TITLE_SELECT_EXPOSURE_TIME
msgstr ""
-#original text: "Cal. lamp density"
+#original text: "Cal. lamp density"
msgid SANE_TITLE_CAL_LAMP_DEN
msgstr ""
-#original text: "Scan lamp density"
+#original text: "Scan lamp density"
msgid SANE_TITLE_SCAN_LAMP_DEN
msgstr ""
-#original text: "Set lamp density"
+#original text: "Set lamp density"
msgid SANE_TITLE_SELECT_LAMP_DENSITY
msgstr ""
-#original text: "Request a preview-quality scan."
+#original text: "Request a preview-quality scan."
msgid SANE_DESC_PREVIEW
msgstr ""
-#original text: "Request that all previews are done in monochrome mode. On a three-pass " " scanner this cuts down the number of passes to one and on a one-pass " "scanner, it reduces the memory requirements and scan-time of the preview."
+#original text: "Request that all previews are done in monochrome mode. On a " "three-pass scanner this cuts down the number of passes to one and on a " "one-pass scanner, it reduces the memory requirements and scan-time of the " "preview."
msgid SANE_DESC_GRAY_PREVIEW
msgstr ""
-#original text: "Number of bits per sample, typical values are 1 for \"line-art\" and 8 " "for multibit scans."
+#original text: "Number of bits per sample, typical values are 1 for \"line-art\" " "and 8 for multibit scans."
msgid SANE_DESC_BIT_DEPTH
msgstr ""
-#original text: "Selects the scan mode (e.g., lineart,monochrome, or color)."
+#original text: "Selects the scan mode (e.g., lineart,monochrome, or color)."
msgid SANE_DESC_SCAN_MODE
msgstr ""
-#original text: "Determines the speed at which the scan proceeds."
+#original text: "Determines the speed at which the scan proceeds."
msgid SANE_DESC_SCAN_SPEED
msgstr ""
-#original text: "Selects the scan source (such as a document-feeder)."
+#original text: "Selects the scan source (such as a document-feeder)."
msgid SANE_DESC_SCAN_SOURCE
msgstr ""
-#original text: "Controls whether backtracking is forced."
+#original text: "Controls whether backtracking is forced."
msgid SANE_DESC_BACKTRACK
msgstr ""
-#original text: "Top-left x position of scan area."
+#original text: "Top-left x position of scan area."
msgid SANE_DESC_SCAN_TL_X
msgstr ""
-#original text: "Top-left y position of scan area."
+#original text: "Top-left y position of scan area."
msgid SANE_DESC_SCAN_TL_Y
msgstr ""
-#original text: "Bottom-right x position of scan area."
+#original text: "Bottom-right x position of scan area."
msgid SANE_DESC_SCAN_BR_X
msgstr ""
-#original text: "Bottom-right y position of scan area."
+#original text: "Bottom-right y position of scan area."
msgid SANE_DESC_SCAN_BR_Y
msgstr ""
-#original text: "Sets the resolution of the scanned image."
+#original text: "Sets the resolution of the scanned image."
msgid SANE_DESC_SCAN_RESOLUTION
msgstr ""
-#original text: "Sets the horizontal resolution of the scanned image."
+#original text: "Sets the horizontal resolution of the scanned image."
msgid SANE_DESC_SCAN_X_RESOLUTION
msgstr ""
-#original text: "Sets the vertical resolution of the scanned image."
+#original text: "Sets the vertical resolution of the scanned image."
msgid SANE_DESC_SCAN_Y_RESOLUTION
msgstr ""
-#original text: "Determines whether a builtin or a custom gamma-table should be used."
+#original text: "Determines whether a builtin or a custom gamma-table should be " "used."
msgid SANE_DESC_CUSTOM_GAMMA
msgstr ""
-#original text: "Gamma-correction table. In color mode this option equally affects the " "red, green, and blue channels simultaneously (i.e., it is an intensity " "gamma table)."
+#original text: "Gamma-correction table. In color mode this option equally " "affects the red, green, and blue channels simultaneously (i.e., it is an " "intensity gamma table)."
msgid SANE_DESC_GAMMA_VECTOR
msgstr ""
-#original text: "Gamma-correction table for the red band."
+#original text: "Gamma-correction table for the red band."
msgid SANE_DESC_GAMMA_VECTOR_R
msgstr ""
-#original text: "Gamma-correction table for the green band."
+#original text: "Gamma-correction table for the green band."
msgid SANE_DESC_GAMMA_VECTOR_G
msgstr ""
-#original text: "Gamma-correction table for the blue band."
+#original text: "Gamma-correction table for the blue band."
msgid SANE_DESC_GAMMA_VECTOR_B
msgstr ""
-#original text: "Controls the brightness of the acquired image."
+#original text: "Controls the brightness of the acquired image."
msgid SANE_DESC_BRIGHTNESS
msgstr ""
-#original text: "Controls the contrast of the acquired image."
+#original text: "Controls the contrast of the acquired image."
msgid SANE_DESC_CONTRAST
msgstr ""
-#original text: "Selects the \"graininess\" of the acquired image. Smaller values " "result in sharper images."
+#original text: "Selects the \"graininess\" of the acquired image. Smaller values " "result in sharper images."
msgid SANE_DESC_GRAIN_SIZE
msgstr ""
-#original text: "Selects whether the acquired image should be halftoned (dithered)."
+#original text: "Selects whether the acquired image should be halftoned (dithered)."
msgid SANE_DESC_HALFTONE
msgstr ""
-#original text: "Selects what radiance level should be considered \"black\"."
+#original text: "Selects what radiance level should be considered \"black\"."
msgid SANE_DESC_BLACK_LEVEL
msgstr ""
-#original text: "Selects what radiance level should be considered \"white\"."
+#original text: "Selects what radiance level should be considered \"white\"."
msgid SANE_DESC_WHITE_LEVEL
msgstr ""
-#original text: "Selects what radiance level should be considered \"black\"."
+#original text: "Selects what radiance level should be considered \"black\"."
msgid SANE_DESC_SHADOW
msgstr ""
-#original text: "Selects what red radiance level should be considered \"black\"."
+#original text: "Selects what red radiance level should be considered \"black\"."
msgid SANE_DESC_SHADOW_R
msgstr ""
-#original text: "Selects what green radiance level should be considered \"black\"."
+#original text: "Selects what green radiance level should be considered \"black\"."
msgid SANE_DESC_SHADOW_G
msgstr ""
-#original text: "Selects what blue radiance level should be considered \"black\"."
+#original text: "Selects what blue radiance level should be considered \"black\"."
msgid SANE_DESC_SHADOW_B
msgstr ""
-#original text: "Selects what radiance level should be considered \"white\"."
+#original text: "Selects what radiance level should be considered \"white\"."
msgid SANE_DESC_HIGHLIGHT
msgstr ""
-#original text: "Selects what red radiance level should be considered \"full red\"."
+#original text: "Selects what red radiance level should be considered \"full red\"."
msgid SANE_DESC_HIGHLIGHT_R
msgstr ""
-#original text: "Selects what green radiance level should be considered \"full green\"."
+#original text: "Selects what green radiance level should be considered \"full " "green\"."
msgid SANE_DESC_HIGHLIGHT_G
msgstr ""
-#original text: "Selects what blue radiance level should be considered \"full blue\"."
+#original text: "Selects what blue radiance level should be considered \"full " "blue\"."
msgid SANE_DESC_HIGHLIGHT_B
msgstr ""
-#original text: "Controls the \"hue\" (blue-level) of the acquired image."
+#original text: "Controls the \"hue\" (blue-level) of the acquired image."
msgid SANE_DESC_HUE
msgstr ""
-#original text: "The saturation level controls the amount of \"blooming\" that occurs when " "acquiring an image with a camera. Larger values cause more blooming."
+#original text: "The saturation level controls the amount of \"blooming\" that " "occurs when acquiring an image with a camera. Larger values cause more " "blooming."
msgid SANE_DESC_SATURATION
msgstr ""
-#original text: "The filename of the image to be loaded."
+#original text: "The filename of the image to be loaded."
msgid SANE_DESC_FILE
msgstr ""
-#original text: "Sets the size of the halftoning (dithering) pattern used when scanning " "halftoned images."
+#original text: "Sets the size of the halftoning (dithering) pattern used when " "scanning halftoned images."
msgid SANE_DESC_HALFTONE_DIMENSION
msgstr ""
-#original text: "Defines the halftoning (dithering) pattern for scanning halftoned images."
+#original text: "Defines the halftoning (dithering) pattern for scanning " "halftoned images."
msgid SANE_DESC_HALFTONE_PATTERN
msgstr ""
-#original text: "Use same values for X and Y resolution"
+#original text: "Use same values for X and Y resolution"
msgid SANE_DESC_RESOLUTION_BIND
msgstr ""
-#original text: "Swap black and white"
+#original text: "Swap black and white"
msgid SANE_DESC_NEGATIVE
msgstr ""
-#original text: "Do a quality white-calibration"
+#original text: "Do a quality white-calibration"
msgid SANE_DESC_QUALITY_CAL
msgstr ""
-#original text: "Use lens that doubles optical resolution"
+#original text: "Use lens that doubles optical resolution"
msgid SANE_DESC_DOR
msgstr ""
-#original text: "In RGB-mode use same values for each color"
+#original text: "In RGB-mode use same values for each color"
msgid SANE_DESC_RGB_BIND
msgstr ""
-#original text: "Select minimum-brightness to get a white point"
+#original text: "Select minimum-brightness to get a white point"
msgid SANE_DESC_THRESHOLD
msgstr ""
-#original text: "Analog gamma-correction"
+#original text: "Analog gamma-correction"
msgid SANE_DESC_ANALOG_GAMMA
msgstr ""
-#original text: "Analog gamma-correction for red"
+#original text: "Analog gamma-correction for red"
msgid SANE_DESC_ANALOG_GAMMA_R
msgstr ""
-#original text: "Analog gamma-correction for green"
+#original text: "Analog gamma-correction for green"
msgid SANE_DESC_ANALOG_GAMMA_G
msgstr ""
-#original text: "Analog gamma-correction for blue"
+#original text: "Analog gamma-correction for blue"
msgid SANE_DESC_ANALOG_GAMMA_B
msgstr ""
-#original text: "In RGB-mode use same values for each color"
+#original text: "In RGB-mode use same values for each color"
msgid SANE_DESC_ANALOG_GAMMA_BIND
msgstr ""
-#original text: "Don't care about image smearing problem"
+#original text: "Don't care about image smearing problem"
msgid SANE_DESC_SMEAR
msgstr ""
-#original text: "Output with 10 bits instead of 8 bits"
+#original text: "Output with 10 bits instead of 8 bits"
msgid SANE_DESC_TEN_BIT_MODE
msgstr ""
-#original text: "Output with 12 bits instead of 8 bits"
+#original text: "Output with 12 bits instead of 8 bits"
msgid SANE_DESC_TWELVE_BIT_MODE
msgstr ""
-#original text: "Warmup lamp before scanning"
+#original text: "Warmup lamp before scanning"
msgid SANE_DESC_WARMUP
msgstr ""
-#original text: "Set preview-bit in rgb-mode"
+#original text: "Set preview-bit in rgb-mode"
msgid SANE_DESC_RGB_PREVIEW_PATCH
msgstr ""
-#original text: "Use special start-scan bits"
+#original text: "Use special start-scan bits"
msgid SANE_DESC_START_SCAN_PATCH
msgstr ""
-#original text: "Define exposure-time for calibration"
+#original text: "Define exposure-time for calibration"
msgid SANE_DESC_CAL_EXPOS_TIME
msgstr ""
-#original text: "Define exposure-time for red calibration"
+#original text: "Define exposure-time for red calibration"
msgid SANE_DESC_CAL_EXPOS_TIME_R
msgstr ""
-#original text: "Define exposure-time for green calibration"
+#original text: "Define exposure-time for green calibration"
msgid SANE_DESC_CAL_EXPOS_TIME_G
msgstr ""
-#original text: "Define exposure-time for blue calibration"
+#original text: "Define exposure-time for blue calibration"
msgid SANE_DESC_CAL_EXPOS_TIME_B
msgstr ""
-#original text: "Define exposure-time for scan"
+#original text: "Define exposure-time for scan"
msgid SANE_DESC_SCAN_EXPOS_TIME
msgstr ""
-#original text: "Define exposure-time for red scan"
+#original text: "Define exposure-time for red scan"
msgid SANE_DESC_SCAN_EXPOS_TIME_R
msgstr ""
-#original text: "Define exposure-time for green scan"
+#original text: "Define exposure-time for green scan"
msgid SANE_DESC_SCAN_EXPOS_TIME_G
msgstr ""
-#original text: "Define exposure-time for blue scan"
+#original text: "Define exposure-time for blue scan"
msgid SANE_DESC_SCAN_EXPOS_TIME_B
msgstr ""
-#original text: "Enable selection of exposure-time"
+#original text: "Enable selection of exposure-time"
msgid SANE_DESC_SELECT_EXPOSURE_TIME
msgstr ""
-#original text: "Define lamp density for calibration"
+#original text: "Define lamp density for calibration"
msgid SANE_DESC_CAL_LAMP_DEN
msgstr ""
-#original text: "Define lamp density for scan"
+#original text: "Define lamp density for scan"
msgid SANE_DESC_SCAN_LAMP_DEN
msgstr ""
-#original text: "Enable selection of lamp density"
+#original text: "Enable selection of lamp density"
msgid SANE_DESC_SELECT_LAMP_DENSITY
msgstr ""
diff --git a/backend-po/umax.de.po b/backend-po/umax.de.po
index 86e9d9b..aefc1a6 100644
--- a/backend-po/umax.de.po
+++ b/backend-po/umax.de.po
@@ -1,279 +1,3 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
#nls translation file for backend umax
#language: german (de)
@@ -455,7 +179,7 @@ msgstr "Verbinde RGB"
#original text: "Threshold"
msgid "Threshold"
-msgstr "Grenzwert"
+msgstr "Schwellwert"
#original text: "Analog gamma correction"
msgid "Analog gamma correction"
@@ -562,7 +286,7 @@ msgstr ""
#original text: "Number of bits per sample, typical values are 1 for \"line-art\" and 8 " "for multibit scans."
msgid "Number of bits per sample, typical values are 1 for \"line-art\" and 8 " "for multibit scans."
-msgstr "Anzahl der Bits pro Farbwert, typische Werte seind 1 für lineart- und 8 für multibit-Scans"
+msgstr "Anzahl der Bits pro Farbwert, typische Werte sind 1 für lineart- und 8 für multibit-Scans"
#original text: "Selects the scan mode (e.g., lineart,monochrome, or color)."
msgid "Selects the scan mode (e.g., lineart,monochrome, or color)."
@@ -820,33 +544,43 @@ msgstr "Definiere die Lichtwerte beim Scannen"
msgid "Enable selection of lamp density"
msgstr "Ermögliche Auswahl der Lichtwerte"
+#original text: "Geometry"
msgid "Geometry"
msgstr "Geometrie"
+#original text: "Enhancement"
msgid "Enhancement"
msgstr "Farbverbesserung"
+#original text: "Scan Mode"
msgid "Scan Mode"
msgstr "Scan Modus"
+#original text: "Color"
msgid "Color"
msgstr "Farbe"
+#original text: "Gray"
msgid "Gray"
msgstr "Graustufen"
+#original text: "Halftone"
msgid "Halftone"
msgstr "Halbton"
+#original text: "Lineart"
msgid "Lineart"
msgstr "Strichzeichnung"
+#original text: "Flatbed"
msgid "Flatbed"
msgstr "Flachbett"
-msgid "Transparency"
-msgstr "Durchlicht"
+#original text: "Transparency Adapter"
+msgid "Transparency Adapter"
+msgstr "Durchlichteinheit"
+#original text: "Automatic Document Feeder"
msgid "Automatic Document Feeder"
msgstr "Autom. Dokumenteneinzug"
diff --git a/backend-po/umax.de.po.in b/backend-po/umax.de.po.in
index 940f18c..839be27 100644
--- a/backend-po/umax.de.po.in
+++ b/backend-po/umax.de.po.in
@@ -1,5 +1,280 @@
#include "/usr/local/include/sane/saneopts.h"
#define _(x) x
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#nls translation file for backend umax
#language: german (de)
@@ -289,7 +564,7 @@ msgstr ""
#original text: "Number of bits per sample, typical values are 1 for \"line-art\" and 8 " "for multibit scans."
msgid SANE_DESC_BIT_DEPTH
-msgstr "Anzahl der Bits pro Farbwert, typische Werte seind 1 für lineart- und 8 für multibit-Scans"
+msgstr "Anzahl der Bits pro Farbwert, typische Werte sind 1 für lineart- und 8 für multibit-Scans"
#original text: "Selects the scan mode (e.g., lineart,monochrome, or color)."
msgid SANE_DESC_SCAN_MODE
@@ -547,33 +822,43 @@ msgstr "Definiere die Lichtwerte beim Scannen"
msgid SANE_DESC_SELECT_LAMP_DENSITY
msgstr "Ermögliche Auswahl der Lichtwerte"
+#original text: "Geometry"
msgid "Geometry"
msgstr "Geometrie"
+#original text: "Enhancement"
msgid "Enhancement"
msgstr "Farbverbesserung"
+#original text: "Scan Mode"
msgid "Scan Mode"
msgstr "Scan Modus"
+#original text: "Color"
msgid "Color"
msgstr "Farbe"
+#original text: "Gray"
msgid "Gray"
msgstr "Graustufen"
+#original text: "Halftone"
msgid "Halftone"
msgstr "Halbton"
+#original text: "Lineart"
msgid "Lineart"
msgstr "Strichzeichnung"
+#original text: "Flatbed"
msgid "Flatbed"
msgstr "Flachbett"
-msgid "Transparency"
-msgstr "Durchlicht"
+#original text: "Transparency Adapter"
+msgid "Transparency Adapter"
+msgstr "Durchlichteinheit"
+#original text: "Automatic Document Feeder"
msgid "Automatic Document Feeder"
msgstr "Autom. Dokumenteneinzug"
diff --git a/backend-po/umax.ja.po b/backend-po/umax.ja.po
new file mode 100644
index 0000000..d32e5ca
--- /dev/null
+++ b/backend-po/umax.ja.po
@@ -0,0 +1,584 @@
+#nls translation file for backend umax
+#language: japanese (ja)
+
+#original text: "Number of options"
+msgid "Number of options"
+msgstr "ĽŞĽ×ĽˇĽçĽó¤Îżô"
+
+#original text: "Preview"
+msgid "Preview"
+msgstr "Ľ×ĽěĽÓĽĺĄź"
+
+#original text: "Force monochrome preview"
+msgid "Force monochrome preview"
+msgstr "śŻŔŠĽâĽÎĽŻĽíĽ×ĽěĽÓĽĺĄź"
+
+#original text: "Bit depth"
+msgid "Bit depth"
+msgstr "ĽÓĽĂĽČżźĹŮ"
+
+#original text: "Scan mode"
+msgid "Scan mode"
+msgstr "ĽšĽ­ĽăĽóĽâĄźĽÉ"
+
+#original text: "Scan speed"
+msgid "Scan speed"
+msgstr "ĽšĽ­ĽăĽóĽšĽÔĄźĽÉ"
+
+#original text: "Scan source"
+msgid "Scan source"
+msgstr "ĽšĽ­ĽăĽóĽ˝ĄźĽš"
+
+#original text: "Force backtracking"
+msgid "Force backtracking"
+msgstr "śŻŔŠĽĐĽĂĽŻĽČĽéĽĂĽŻ"
+
+#original text: "Top-left x"
+msgid "Top-left x"
+msgstr "žĺĘŐş¸¤ÎxşÂɸ"
+
+#original text: "Top-left y"
+msgid "Top-left y"
+msgstr "žĺĘŐş¸¤ÎyşÂɸ"
+
+#original text: "Bottom-right x"
+msgid "Bottom-right x"
+msgstr "ÄěĘŐąŚ¤ÎxşÂɸ"
+
+#original text: "Bottom-right y"
+msgid "Bottom-right y"
+msgstr "ÄěĘŐąŚ¤ÎyşÂɸ"
+
+#original text: "Scan resolution"
+msgid "Scan resolution"
+msgstr "ĽšĽ­ĽăĽó˛ňÁüĹŮ"
+
+#original text: "X-resolution"
+msgid "X-resolution"
+msgstr "XĘý¸ţ¤Î˛ňÁüĹŮ"
+
+#original text: "Y-resolution"
+msgid "Y-resolution"
+msgstr "YĘý¸ţ¤Î˛ňÁüĹŮ"
+
+#original text: "Use custom gamma table"
+msgid "Use custom gamma table"
+msgstr "ĽŤĽšĽżĽŕĽŹĽóĽŢĽĆĄźĽÖĽë¤ňťČÍŃ"
+
+#original text: "Image intensity"
+msgid "Image intensity"
+msgstr "˛čÁüśŻÄ´"
+
+#original text: "Red intensity"
+msgid "Red intensity"
+msgstr "ŔÖŔŽĘŹ¤ÎśŻÄ´"
+
+#original text: "Green intensity"
+msgid "Green intensity"
+msgstr "ÎĐŔŽĘŹ¤ÎśŻÄ´"
+
+#original text: "Blue intensity"
+msgid "Blue intensity"
+msgstr "ŔÄŔŽĘŹ¤ÎśŻÄ´"
+
+#original text: "Brightness"
+msgid "Brightness"
+msgstr "ĚŔĹŮ"
+
+#original text: "Contrast"
+msgid "Contrast"
+msgstr "ĽłĽóĽČĽéĽšĽČ"
+
+#original text: "Grain size"
+msgid "Grain size"
+msgstr "ÎłĹŮ"
+
+#original text: "Halftoning"
+msgid "Halftoning"
+msgstr "Ăć´ÖĽČĄźĽó"
+
+#original text: "Black level"
+msgid "Black level"
+msgstr "šőłŹÄ´"
+
+#original text: "White level"
+msgid "White level"
+msgstr "ÇňłŹÄ´"
+
+#original text: "Shadow"
+msgid "Shadow"
+msgstr "ą˘ąĆ"
+
+#original text: "Shadow for red"
+msgid "Shadow for red"
+msgstr "ŔÖŔŽĘŹ¤Ř¤Îą˘ąĆ"
+
+#original text: "Shadow for green"
+msgid "Shadow for green"
+msgstr "ÎĐŔŽĘŹ¤Ř¤Îą˘ąĆ"
+
+#original text: "Shadow for blue"
+msgid "Shadow for blue"
+msgstr "ŔÄŔŽĘŹ¤Ř¤Îą˘ąĆ"
+
+#original text: "Highlight"
+msgid "Highlight"
+msgstr "ĽĎĽ¤ĽéĽ¤ĽČ"
+
+#original text: "Highlight for red"
+msgid "Highlight for red"
+msgstr "ŔÖŔŽĘŹ¤Ř¤ÎĽĎĽ¤ĽéĽ¤ĽČ"
+
+#original text: "Highlight for green"
+msgid "Highlight for green"
+msgstr "ÎĐŔŽĘŹ¤Ř¤ÎĽĎĽ¤ĽéĽ¤ĽČ"
+
+#original text: "Highlight for blue"
+msgid "Highlight for blue"
+msgstr "ŔÄŔŽĘŹ¤Ř¤ÎĽĎĽ¤ĽéĽ¤ĽČ"
+
+#original text: "Hue"
+msgid "Hue"
+msgstr "ż§šç¤¤"
+
+#original text: "Saturation"
+msgid "Saturation"
+msgstr "şĚĹŮ"
+
+#original text: "Filename"
+msgid "Filename"
+msgstr "ĽŐĽĄĽ¤ĽëĚž"
+
+#original text: "Halftone pattern size"
+msgid "Halftone pattern size"
+msgstr "Ăć´ÖĽČĄźĽó¤ÎĚćÍÍĽľĽ¤Ľş"
+
+#original text: "Halftone pattern"
+msgid "Halftone pattern"
+msgstr "Ăć´ÖĽČĄźĽó¤ÎĚćÍÍ"
+
+#original text: "Bind X and Y resolution"
+msgid "Bind X and Y resolution"
+msgstr "X¤ČY¤ÎłĆĘý¸ţ¤Î˛ňÁüĹ٤ňˇëšç"
+
+#original text: "Negative"
+msgid "Negative"
+msgstr "΢žĆ¤­"
+
+#original text: "Quality calibration"
+msgid "Quality calibration"
+msgstr "˛čźÁĘäŔľ"
+
+#original text: "Double Optical Resolution"
+msgid "Double Optical Resolution"
+msgstr "ÇÜŔşĹٸ÷łŘ˛ňÁüĹŮ"
+
+#original text: "Bind RGB"
+msgid "Bind RGB"
+msgstr "RGB¤ňˇëšç"
+
+#original text: "Threshold"
+msgid "Threshold"
+msgstr "ďçĂÍ"
+
+#original text: "Analog gamma correction"
+msgid "Analog gamma correction"
+msgstr "Ľ˘ĽĘĽíĽ°ĽŹĽóĽŢĘäŔľ"
+
+#original text: "Analog gamma red"
+msgid "Analog gamma red"
+msgstr "Ľ˘ĽĘĽíĽ°ĽŹĽóĽŢ ŔÖ"
+
+#original text: "Analog gamma green"
+msgid "Analog gamma green"
+msgstr "Ľ˘ĽĘĽíĽ°ĽŹĽóĽŢ ÎĐ"
+
+#original text: "Analog gamma blue"
+msgid "Analog gamma blue"
+msgstr "Ľ˘ĽĘĽíĽ°ĽŹĽóĽŢ ŔÄ"
+
+#original text: "Bind analog gamma"
+msgid "Bind analog gamma"
+msgstr "Ľ˘ĽĘĽíĽ°ĽŹĽóĽŢ¤ňˇëšç"
+
+#original text: "Smear"
+msgid "Smear"
+msgstr "¤ˇ¤ß"
+
+#original text: "10 bit-mode"
+msgid "10 bit-mode"
+msgstr "10ĽÓĽĂĽČĽâĄźĽÉ"
+
+#original text: "12 bit-mode"
+msgid "12 bit-mode"
+msgstr "12ĽÓĽĂĽČĽâĄźĽÉ"
+
+#original text: "Warmup lamp"
+msgid "Warmup lamp"
+msgstr "ĽŚĽŠĄźĽŕĽ˘ĽĂĽ×ĽéĽóĽ×"
+
+#original text: "Preview patch"
+msgid "Preview patch"
+msgstr "Ľ×ĽěĽÓĽĺĄźĽŃĽĂĽÁ"
+
+#original text: "Start-scan patch"
+msgid "Start-scan patch"
+msgstr "ĽšĽŢĄźĽČĽšĽ­ĽăĽóĽŃĽĂĽÁ"
+
+#original text: "Cal. exposure-time"
+msgid "Cal. exposure-time"
+msgstr "ĎŞ¸÷ťţ´Ö¤Îˇ×ťť"
+
+#original text: "Cal. exposure-time for red"
+msgid "Cal. exposure-time for red"
+msgstr "ĎŞ¸÷ťţ´Ö¤Îˇ×ťť(ŔÖ)"
+
+#original text: "Cal. exposure-time for green"
+msgid "Cal. exposure-time for green"
+msgstr "ĎŞ¸÷ťţ´Ö¤Îˇ×ťť(ÎĐ)"
+
+#original text: "Cal. exposure-time for blue"
+msgid "Cal. exposure-time for blue"
+msgstr "ĎŞ¸÷ťţ´Ö¤Îˇ×ťť(ŔÄ)"
+
+#original text: "Scan exposure-time"
+msgid "Scan exposure-time"
+msgstr "ťŘÄę¤ÎĎŞ¸÷ťţ´Ö¤ÇĽšĽ­ĽăĽó"
+
+#original text: "Scan exposure-time for red"
+msgid "Scan exposure-time for red"
+msgstr "ťŘÄę¤ÎĎŞ¸÷ťţ´Ö¤ÇĽšĽ­ĽăĽó(ŔÖ)"
+
+#original text: "Scan exposure-time for green"
+msgid "Scan exposure-time for green"
+msgstr "ťŘÄę¤ÎĎŞ¸÷ťţ´Ö¤ÇĽšĽ­ĽăĽó(ÎĐ)"
+
+#original text: "Scan exposure-time for blue"
+msgid "Scan exposure-time for blue"
+msgstr "ťŘÄę¤ÎĎŞ¸÷ťţ´Ö¤ÇĽšĽ­ĽăĽó(ŔÄ)"
+
+#original text: "Set exposure-time"
+msgid "Set exposure-time"
+msgstr "ĎŞ¸÷ťţ´Ö¤ňĽťĽĂĽČ"
+
+#original text: "Cal. lamp density"
+msgid "Cal. lamp density"
+msgstr "¸÷şĚĚŠĹ٤ňˇ×ťť"
+
+#original text: "Scan lamp density"
+msgid "Scan lamp density"
+msgstr "ťŘÄę¤Î¸÷şĚĚŠĹ٤ǼšĽ­ĽăĽó"
+
+#original text: "Set lamp density"
+msgid "Set lamp density"
+msgstr "¸÷şĚĚŠĹ٤ňĽťĽĂĽČ"
+
+
+
+
+#original text: "Request a preview-quality scan."
+msgid "Request a preview-quality scan."
+msgstr "Ľ×ĽěĽÓĽĺĄź˛čźÁ¤ÇĽšĽ­ĽăĽó¤š¤ë"
+
+#original text: "Request that all previews are done in monochrome mode. On a three-pass " " scanner this cuts down the number of passes to one and on a one-pass " "scanner, it reduces the memory requirements and scan-time of the preview."
+msgid "Request that all previews are done in monochrome mode. On a three-pass " " scanner this cuts down the number of passes to one and on a one-pass " "scanner, it reduces the memory requirements and scan-time of the preview."
+msgstr "¤š¤Ů¤Ć¤ÎĽ×ĽěĽÓĽĺĄź¤ĎĽâĽÎĽŻĽíĽâĄźĽÉ¤ÇźÂšÔ¤ľ¤ě¤Ţ¤šĄŁĽďĽóĽŃĽšĽšĽ­ĽăĽĘ¤Ç¤Ď"ĄĄ"ĽŃĽšżô¤Ď1¤Č¤Ę¤ęĄ˘Ľ×ĽěĽÓĽĺĄź¤ËÍפš¤ëĽáĽâĽę¤äĽšĽ­ĽăĽóťţ´Ö¤ňŔáĚ󤡤ޤšĄŁ"
+
+#original text: "Number of bits per sample, typical values are 1 for \"line-art\" and 8 " "for multibit scans."
+msgid "Number of bits per sample, typical values are 1 for \"line-art\" and 8 " "for multibit scans."
+msgstr "ĽľĽóĽ×ĽëĹö¤ę¤ÎĽÓĽĂĽČżôĄŁĽéĽ¤ĽóĽ˘ĄźĽČ¤ËÂФˇ¤Ć¤ĎÄĚžď1¤ÇĄ˘ĽŢĽëĽÁĽÓĽĂĽČ¤Ç¤ÎĽšĽ­ĽăĽó¤Ç¤Ď8¤Ç¤šĄŁ"
+
+#original text: "Selects the scan mode (e.g., lineart,monochrome, or color)."
+msgid "Selects the scan mode (e.g., lineart,monochrome, or color)."
+msgstr "ĽšĽ­ĽăĽóĽâĄźĽÉ¤ňÁŞÂňĄĘÎ㥧ĽéĽ¤ĽóĽ˘ĄźĽČĄ˘ĽâĽÎĽŻĽíĄ˘ĽŤĽéĄźĄË "
+
+#original text: "Determines the speed at which the scan proceeds."
+msgid "Determines the speed at which the scan proceeds."
+msgstr "ĽšĽ­ĽăĽóżĘšÔÂŽĹ٤ňˇčÄę"
+
+#original text: "Selects the scan source (such as a document-feeder)."
+msgid "Selects the scan source (such as a document-feeder)."
+msgstr "ĽšĽ­ĽăĽóĽ˝ĄźĽš¤ňÁŞÂňĄĘʸ˝ńĽŐĽŁĄźĽŔ¤Ę¤ÉĄË"
+
+#original text: "Controls whether backtracking is forced."
+msgid "Controls whether backtracking is forced."
+msgstr "ĽĐĽĂĽŻĽČĽéĽĂĽ­ĽóĽ°¤ÎśŻŔŠ¤ňĽłĽóĽČĽíĄźĽë"
+
+#original text: "Top-left x position of scan area."
+msgid "Top-left x position of scan area."
+msgstr "ĽšĽ­ĽăĽóÎΰč¤ÎžĺĘŐş¸¤ÎxşÂɸ"
+
+#original text: "Top-left y position of scan area."
+msgid "Top-left y position of scan area."
+msgstr "ĽšĽ­ĽăĽóÎΰč¤ÎžĺĘŐş¸¤ÎyşÂɸ"
+
+#original text: "Bottom-right x position of scan area."
+msgid "Bottom-right x position of scan area."
+msgstr "ĽšĽ­ĽăĽóÎΰč¤ÎÄěĘŐąŚ¤ÎxşÂɸ"
+
+#original text: "Bottom-right y position of scan area."
+msgid "Bottom-right y position of scan area."
+msgstr "ĽšĽ­ĽăĽóÎΰč¤ÎÄěĘŐąŚ¤ÎyşÂɸ"
+
+#original text: "Sets the resolution of the scanned image."
+msgid "Sets the resolution of the scanned image."
+msgstr "ĽšĽ­ĽăĽó¤ˇ¤ż˛čÁü¤Î˛ňÁüĹ٤ňĽťĽĂĽČ"
+
+#original text: "Sets the horizontal resolution of the scanned image."
+msgid "Sets the horizontal resolution of the scanned image."
+msgstr "ĽšĽ­ĽăĽó¤ˇ¤ż˛čÁü¤ÎżĺĘż˛ňÁüĹ٤ňĽťĽĂĽČ"
+
+#original text: "Sets the vertical resolution of the scanned image."
+msgid "Sets the vertical resolution of the scanned image."
+msgstr "ĽšĽ­ĽăĽó¤ˇ¤ż˛čÁü¤ÎżâÄž˛ňÁüĹ٤ňĽťĽĂĽČ"
+
+#original text: "Determines whether a builtin or a custom gamma-table should be used."
+msgid "Determines whether a builtin or a custom gamma-table should be used."
+msgstr "ťČÍѤš¤ëĽŹĽóĽŢĽĆĄźĽÖĽë¤ňˇčÄęĄĘĽÓĽëĽČĽ¤Ľó¤ŤĽŤĽšĽżĽŕ¤ŤĄË"
+
+#original text: "Gamma-correction table. In color mode this option equally affects the " "red, green, and blue channels simultaneously (i.e., it is an intensity " "gamma table)."
+msgid "Gamma-correction table. In color mode this option equally affects the " "red, green, and blue channels simultaneously (i.e., it is an intensity " "gamma table)."
+msgstr "ĽŹĽóĽŢĘäŔľĽĆĄźĽÖĽëĄŁ¤ł¤ÎĽŞĽ×ĽˇĽçĽó¤ĎĽŤĽéĄźĽâĄźĽÉ¤ÇŔÖĄŚÎĐĄŚŔĤγƼÁĽăĽÍĽë" "¤ËÂФˇ¤Ć°ěÍͤ˾ĄÇ˝¤ˇ¤Ţ¤šĄŁ"
+
+#original text: "Gamma-correction table for the red band."
+msgid "Gamma-correction table for the red band."
+msgstr "ŔÖÂÓ°č¤ËÂФš¤ëĽŹĽóĽŢĘäŔľ"
+
+#original text: "Gamma-correction table for the green band."
+msgid "Gamma-correction table for the green band."
+msgstr "ÎĐÂÓ°č¤ËÂФš¤ëĽŹĽóĽŢĘäŔľ"
+
+#original text: "Gamma-correction table for the blue band."
+msgid "Gamma-correction table for the blue band."
+msgstr "ŔÄÂÓ°č¤ËÂФš¤ëĽŹĽóĽŢĘäŔľ"
+
+#original text: "Controls the brightness of the acquired image."
+msgid "Controls the brightness of the acquired image."
+msgstr "źč¤ęšţ¤ß˛čÁü¤ÎĚŔĹ٤ňĽłĽóĽČĽíĄźĽë"
+
+#original text: "Controls the contrast of the acquired image."
+msgid "Controls the contrast of the acquired image."
+msgstr "źč¤ęšţ¤ß˛čÁü¤ÎĽłĽóĽČĽéĽšĽČ¤ňĽłĽóĽČĽíĄźĽë"
+
+#original text: "Selects the \"graininess\" of the acquired image. Smaller values " "result in sharper images."
+msgid "Selects the \"graininess\" of the acquired image. Smaller values " "result in sharper images."
+msgstr "źč¤ęšţ¤ß˛čÁü¤ÎÎłĹ٤ňÁŞÂňĄŁ˛čÁüÁŻĚŔ˛˝¤Îˇë˛Ě¤č¤ęžŽ¤ľ¤¤ĄŁ"
+
+#original text: "Selects whether the acquired image should be halftoned (dithered)."
+msgid "Selects whether the acquired image should be halftoned (dithered)."
+msgstr "źč¤ęšţ¤ß˛čÁü¤ňĂć´ÖĽČĄźĽó¤Ë¤Ť¤ą¤ë¤Ť¤ňÁŞÂňĄĘĽÇĽŁĽś˛˝ĄË"
+
+#original text: "Selects what radiance level should be considered \"black\"."
+msgid "Selects what radiance level should be considered \"black\"."
+msgstr "šőż§¤Č¤ľ¤ě¤żÉôĘŹ¤ÎľąĹ٤ňÁŞÂň"
+
+#original text: "Selects what radiance level should be considered \"white\"."
+msgid "Selects what radiance level should be considered \"white\"."
+msgstr "Çňż§¤Č¤ľ¤ě¤żÉôĘŹ¤ÎľąĹ٤ňÁŞÂň"
+
+#original text: "Selects what radiance level should be considered \"black\"."
+msgid "Selects what radiance level should be considered \"black\"."
+msgstr "šőż§¤Č¤ľ¤ě¤żÉôĘŹ¤ÎľąĹ٤ňÁŞÂň"
+
+#original text: "Selects what red radiance level should be considered \"black\"."
+msgid "Selects what red radiance level should be considered \"black\"."
+msgstr "šőż§¤Č¤ľ¤ě¤żÉôĘŹ¤ÎŔÖŔŽĘŹ¤ÎľąĹ٤ňÁŞÂň"
+
+#original text: "Selects what green radiance level should be considered \"black\"."
+msgid "Selects what green radiance level should be considered \"black\"."
+msgstr "šőż§¤Č¤ľ¤ě¤żÉôĘŹ¤ÎÎĐŔŽĘŹ¤ÎľąĹ٤ňÁŞÂň"
+
+#original text: "Selects what blue radiance level should be considered \"black\"."
+msgid "Selects what blue radiance level should be considered \"black\"."
+msgstr "šőż§¤Č¤ľ¤ě¤żÉôĘŹ¤ÎŔÄŔŽĘŹ¤ÎľąĹ٤ňÁŞÂň"
+
+#original text: "Selects what radiance level should be considered \"white\"."
+msgid "Selects what radiance level should be considered \"white\"."
+msgstr "Çňż§¤Č¤ľ¤ě¤żÉôĘŹ¤ÎľąĹ٤ňÁŞÂň"
+
+#original text: "Selects what red radiance level should be considered \"full red\"."
+msgid "Selects what red radiance level should be considered \"full red\"."
+msgstr "ŔÖż§¤Č¤ľ¤ě¤żÉôĘŹ¤ÎŔÖŔŽĘŹ¤ÎľąĹ٤ňÁŞÂň"
+
+#original text: "Selects what green radiance level should be considered \"full green\"."
+msgid "Selects what green radiance level should be considered \"full green\"."
+msgstr "ÎĐż§¤Č¤ľ¤ě¤żÉôĘŹ¤ÎÎĐŔŽĘŹ¤ÎľąĹ٤ňÁŞÂň"
+
+#original text: "Selects what blue radiance level should be considered \"full blue\"."
+msgid "Selects what blue radiance level should be considered \"full blue\"."
+msgstr "ŔÄż§¤Č¤ľ¤ě¤żÉôĘŹ¤ÎŔÄŔŽĘŹ¤ÎľąĹ٤ňÁŞÂň"
+
+#original text: "Controls the \"hue\" (blue-level) of the acquired image."
+msgid "Controls the \"hue\" (blue-level) of the acquired image."
+msgstr "źč¤ęšţ¤ß˛čÁü¤Îż§šç¤¤ĄĘŔĥˤňĽłĽóĽČĽíĄźĽë"
+
+#original text: "The saturation level controls the amount of \"blooming\" that occurs when " "acquiring an image with a camera. Larger values cause more blooming."
+msgid "The saturation level controls the amount of \"blooming\" that occurs when " "acquiring an image with a camera. Larger values cause more blooming."
+msgstr "¤Ü¤Ť¤ˇÎ̤ňĽłĽóĽČĽíĄźĽë¤š¤ëşĚĹŮ"
+
+#original text: "The filename of the image to be loaded."
+msgid "The filename of the image to be loaded."
+msgstr "Ćɤߚţ¤ß˛čÁüĽŐĽĄĽ¤ĽëĚž"
+
+#original text: "Sets the size of the halftoning (dithering) pattern used when scanning " "halftoned images."
+msgid "Sets the size of the halftoning (dithering) pattern used when scanning " "halftoned images."
+msgstr "Ăć´ÖĽČĄźĽóĄĘĽÇĽŁĽśĄË¤ÎĚćÍÍĽľĽ¤Ľş¤ňĽťĽĂĽČ"
+
+#original text: "Defines the halftoning (dithering) pattern for scanning halftoned images."
+msgid "Defines the halftoning (dithering) pattern for scanning halftoned images."
+msgstr "Ăć´ÖĽČĄźĽóĄĘĽÇĽŁĽśĄË¤ÎĚćÍÍĽľĽ¤Ľş¤ňÄęľÁ"
+
+#original text: "Use same values for X and Y resolution"
+msgid "Use same values for X and Y resolution"
+msgstr "X¤ČY¤ÎłĆĘý¸ţ¤Î˛ňÁüĹ٤ËĆą¤¸ĂͤňşÎÍѤˇ¤Ţ¤š"
+
+#original text: "Swap black and white"
+msgid "Swap black and white"
+msgstr "šőż§¤ČÇňż§¤ň¸ň´š¤ˇ¤Ţ¤š"
+
+#original text: "Do a quality white-calibration"
+msgid "Do a quality white-calibration"
+msgstr "Çňż§˛čźÁĘäŔľ¤ňšÔ¤¤¤Ţ¤š"
+
+#original text: "Use lens that doubles optical resolution"
+msgid "Use lens that doubles optical resolution"
+msgstr "¸÷łŘ˛ňÁüĹ٤ŹÇÜŔşĹ٤μěĽóĽş¤ňťČ¤¤¤Ţ¤š"
+
+#original text: "In RGB-mode use same values for each color"
+msgid "In RGB-mode use same values for each color"
+msgstr "RGBĽâĄźĽÉ¤Ë¤Ş¤¤¤ĆłĆż§¤ËÂФˇ¤ĆĆą¤¸ĂͤňÍѤ¤¤Ţ¤š"
+
+#original text: "Select minimum-brightness to get a white point"
+msgid "Select minimum-brightness to get a white point"
+msgstr "ÇňĹŔ¤ňźčĆŔ¤š¤ë¤ż¤á¤ÎşÇžŽĚŔĹ٤ňÁŞÂň¤ˇ¤Ţ¤š"
+
+#original text: "Analog gamma-correction"
+msgid "Analog gamma-correction"
+msgstr "Ľ˘ĽĘĽíĽ°ĽŹĽóĽŢĘäŔľ"
+
+#original text: "Analog gamma-correction for red"
+msgid "Analog gamma-correction for red"
+msgstr "ŔÖŔŽĘŹ¤Ř¤ÎĽ˘ĽĘĽíĽ°ĽŹĽóĽŢĘäŔľ"
+
+#original text: "Analog gamma-correction for green"
+msgid "Analog gamma-correction for green"
+msgstr "ÎĐŔŽĘŹ¤Ř¤ÎĽ˘ĽĘĽíĽ°ĽŹĽóĽŢĘäŔľ"
+
+#original text: "Analog gamma-correction for blue"
+msgid "Analog gamma-correction for blue"
+msgstr "ŔÄŔŽĘŹ¤Ř¤ÎĽ˘ĽĘĽíĽ°ĽŹĽóĽŢĘäŔľ"
+
+#original text: "In RGB-mode use same values for each color"
+msgid "In RGB-mode use same values for each color"
+msgstr "RGBĽâĄźĽÉ¤Ë¤Ş¤¤¤ĆłĆż§¤ËÂФˇĆą¤¸ĂͤňÍѤ¤¤Ţ¤š"
+
+#original text: "Don't care about image smearing problem"
+msgid "Don't care about image smearing problem"
+msgstr "˛čÁü¤Î¤ˇ¤ß¤Ř¤Îż´ÇۤŹ¤¤¤ę¤Ţ¤ť¤ó"
+
+#original text: "Output with 10 bits instead of 8 bits"
+msgid "Output with 10 bits instead of 8 bits"
+msgstr "8ĽÓĽĂĽČ¤ÎÂĺ¤ď¤ę¤Ë10ĽÓĽĂĽČ¤Ç˝ĐÎϤˇ¤Ţ¤š"
+
+#original text: "Output with 12 bits instead of 8 bits"
+msgid "Output with 12 bits instead of 8 bits"
+msgstr "8ĽÓĽĂĽČ¤ÎÂĺ¤ď¤ę¤Ë12ĽÓĽĂĽČ¤Ç˝ĐÎϤˇ¤Ţ¤š"
+
+#original text: "Warmup lamp before scanning"
+msgid "Warmup lamp before scanning"
+msgstr "ĽšĽ­ĽăĽóÁ°¤ÎĽŚĽŠĄźĽŕĽ˘ĽĂĽ×ĽéĽóĽ×"
+
+#original text: "Set preview-bit in rgb-mode"
+msgid "Set preview-bit in rgb-mode"
+msgstr "RGBĽâĄźĽÉ¤Ç¤ÎĽ×ĽěĽÓĽĺĄźĽÓĽĂĽČ¤ňĽťĽĂĽČ"
+
+#original text: "Use special start-scan bits"
+msgid "Use special start-scan bits"
+msgstr "special start-scan bits¤ňťČ¤¤¤Ţ¤š"
+
+#original text: "Define exposure-time for calibration"
+msgid "Define exposure-time for calibration"
+msgstr "ĘäŔľťţ¤ÎĎŞ¸÷ťţ´Ö¤ňÄęľÁ"
+
+#original text: "Define exposure-time for red calibration"
+msgid "Define exposure-time for red calibration"
+msgstr "ŔÖŔŽĘŹĘäŔľťţ¤ÎĎŞ¸÷ťţ´Ö¤ňÄęľÁ"
+
+#original text: "Define exposure-time for green calibration"
+msgid "Define exposure-time for green calibration"
+msgstr "ÎĐŔŽĘŹĘäŔľťţ¤ÎĎŞ¸÷ťţ´Ö¤ňÄęľÁ"
+
+#original text: "Define exposure-time for blue calibration"
+msgid "ŔÄŔŽĘŹĘäŔľťţ¤ÎĎŞ¸÷ťţ´Ö¤ňÄęľÁ"
+
+#original text: "Define exposure-time for scan"
+msgid "Define exposure-time for scan"
+msgstr "ĽšĽ­ĽăĽóťţ¤ÎĎŞ¸÷ťţ´Ö¤ňÄęľÁ"
+
+#original text: "Define exposure-time for red scan"
+msgid "Define exposure-time for red scan"
+msgstr "ŔÖŔŽĘŹĽšĽ­ĽăĽóťţ¤ÎĎŞ¸÷ťţ´Ö¤ňÄęľÁ"
+
+#original text: "Define exposure-time for green scan"
+msgid "ÎĐŔŽĘŹĽšĽ­ĽăĽóťţ¤ÎĎŞ¸÷ťţ´Ö¤ňÄęľÁ"
+
+#original text: "Define exposure-time for blue scan"
+msgid "Define exposure-time for blue scan"
+msgstr "ŔÄŔŽĘŹĽšĽ­ĽăĽóťţ¤ÎĎŞ¸÷ťţ´Ö¤ňÄęľÁ"
+
+#original text: "Enable selection of exposure-time"
+msgid "Enable selection of exposure-time"
+msgstr "ĎŞ¸÷ťţ´Ö¤ňÁŞÂň˛Ä¤Ë¤š¤ë"
+
+#original text: "Define lamp density for calibration"
+msgid "Define lamp density for calibration"
+msgstr "ĘäŔľťţ¤Î¸÷şĚĚŠĹ٤ňÄęľÁ"
+
+#original text: "Define lamp density for scan"
+msgid "Define lamp density for scan"
+msgstr "ĽšĽ­ĽăĽóťţ¤Î¸÷şĚĚŠĹ٤ňÄęľÁ"
+
+#original text: "Enable selection of lamp density"
+msgid "Enable selection of lamp density"
+msgstr "¸÷şĚĚŠĹ٤ňÁŞÂň˛Ä¤Ë¤š¤ë"
+
+#original text: "Geometry"
+msgid "Geometry"
+msgstr "Ľ¸ĽŞĽáĽČĽę"
+
+#original text: "Enhancement"
+msgid "Enhancement"
+msgstr "śŻÄ´"
+
+#original text: "Scan Mode"
+msgid "Scan Mode"
+msgstr "ĽšĽ­ĽăĽóĽâĄźĽÉ"
+
+#original text: "Color"
+msgid "Color"
+msgstr "ĽŤĽéĄź"
+
+#original text: "Gray"
+msgid "Gray"
+msgstr "Ľ°ĽěĄź"
+
+#original text: "Halftone"
+msgid "Halftone"
+msgstr "Ăć´ÖĽČĄźĽó"
+
+#original text: "Lineart"
+msgid "Lineart"
+msgstr "ĽéĽ¤ĽóĽ˘ĄźĽČ"
+
+#original text: "Flatbed"
+msgid "Flatbed"
+msgstr "ĽŐĽéĽĂĽČĽŮĽĂĽÉ"
+
+#original text: "Transparency Adapter"
+msgid "Transparency Adapter"
+msgstr "ĆŠ˛áĽ˘ĽŔĽ×Ľż"
+
+#original text: "Automatic Document Feeder"
+msgid "Automatic Document Feeder"
+msgstr "ADF(Automatic Document Feeder)"
+
diff --git a/backend-po/umax.po b/backend-po/umax.po
new file mode 100644
index 0000000..20d2f66
--- /dev/null
+++ b/backend-po/umax.po
@@ -0,0 +1,576 @@
+#nls translation file for backend umax
+#language: german (de)
+
+#original text: "Number of options"
+msgid "Number of options"
+msgstr "Anzahl der Optionen"
+
+#original text: "Preview"
+msgid "Preview"
+msgstr "Vorschau"
+
+#original text: "Force monochrome preview"
+msgid "Force monochrome preview"
+msgstr "Vorschauscan in grau"
+
+#original text: "Bit depth"
+msgid "Bit depth"
+msgstr "Bittiefe"
+
+#original text: "Scan mode"
+msgid "Scan mode"
+msgstr "Scan Modus"
+
+#original text: "Scan speed"
+msgid "Scan speed"
+msgstr "Scangeschwindigkeit"
+
+#original text: "Scan source"
+msgid "Scan source"
+msgstr "Scanquelle"
+
+#original text: "Force backtracking"
+msgid "Force backtracking"
+msgstr ""
+
+#original text: "Top-left x"
+msgid "Top-left x"
+msgstr "links"
+
+#original text: "Top-left y"
+msgid "Top-left y"
+msgstr "oben"
+
+#original text: "Bottom-right x"
+msgid "Bottom-right x"
+msgstr "rechts"
+
+#original text: "Bottom-right y"
+msgid "Bottom-right y"
+msgstr "unten"
+
+#original text: "Scan resolution"
+msgid "Scan resolution"
+msgstr "Scanauflösung"
+
+#original text: "X-resolution"
+msgid "X-resolution"
+msgstr "X-Auflösung"
+
+#original text: "Y-resolution"
+msgid "Y-resolution"
+msgstr "Y-Auflösung"
+
+#original text: "Use custom gamma table"
+msgid "Use custom gamma table"
+msgstr "Benutze scannerinterne Gammakorrektur"
+
+#original text: "Image intensity"
+msgid "Image intensity"
+msgstr "Bildintensität"
+
+#original text: "Red intensity"
+msgid "Red intensity"
+msgstr "Intensität Rot"
+
+#original text: "Green intensity"
+msgid "Green intensity"
+msgstr "Intensität Grün"
+
+#original text: "Blue intensity"
+msgid "Blue intensity"
+msgstr "Intensität Blau"
+
+#original text: "Brightness"
+msgid "Brightness"
+msgstr "Helligkeit"
+
+#original text: "Contrast"
+msgid "Contrast"
+msgstr "Kontrast"
+
+#original text: "Grain size"
+msgid "Grain size"
+msgstr ""
+
+#original text: "Halftoning"
+msgid "Halftoning"
+msgstr ""
+
+#original text: "Black level"
+msgid "Black level"
+msgstr "Wert für Schwarz"
+
+#original text: "White level"
+msgid "White level"
+msgstr "Wert für Weiß"
+
+#original text: "Shadow"
+msgid "Shadow"
+msgstr "Schatten"
+
+#original text: "Shadow for red"
+msgid "Shadow for red"
+msgstr "Schatten Rot"
+
+#original text: "Shadow for green"
+msgid "Shadow for green"
+msgstr "Schatten Grün"
+
+#original text: "Shadow for blue"
+msgid "Shadow for blue"
+msgstr "Schatten Blau"
+
+#original text: "Highlight"
+msgid "Highlight"
+msgstr "Licht"
+
+#original text: "Highlight for red"
+msgid "Highlight for red"
+msgstr "Licht Rot"
+
+#original text: "Highlight for green"
+msgid "Highlight for green"
+msgstr "Licht Grün"
+
+#original text: "Highlight for blue"
+msgid "Highlight for blue"
+msgstr "Licht Blau"
+
+#original text: "Hue"
+msgid "Hue"
+msgstr ""
+
+#original text: "Saturation"
+msgid "Saturation"
+msgstr "Sättigung"
+
+#original text: "Filename"
+msgid "Filename"
+msgstr "Datiename"
+
+#original text: "Halftone pattern size"
+msgid "Halftone pattern size"
+msgstr "Halbton Matrix Größe"
+
+#original text: "Halftone pattern"
+msgid "Halftone pattern"
+msgstr "Halbton Matrix"
+
+#original text: "Bind X and Y resolution"
+msgid "Bind X and Y resolution"
+msgstr "verbinde X und Y Auflösung"
+
+#original text: "Negative"
+msgid "Negative"
+msgstr "Negativ"
+
+#original text: "Quality calibration"
+msgid "Quality calibration"
+msgstr "Qualitäts Weißabgleich"
+
+#original text: "Double Optical Resolution"
+msgid "Double Optical Resolution"
+msgstr "Verdoppelte optische Auflösung"
+
+#original text: "Bind RGB"
+msgid "Bind RGB"
+msgstr "Verbinde RGB"
+
+#original text: "Threshold"
+msgid "Threshold"
+msgstr "Grenzwert"
+
+#original text: "Analog gamma correction"
+msgid "Analog gamma correction"
+msgstr "Analoge Gammakorrektur"
+
+#original text: "Analog gamma red"
+msgid "Analog gamma red"
+msgstr "Analoger Gammawert Rot"
+
+#original text: "Analog gamma green"
+msgid "Analog gamma green"
+msgstr "Analoger Gammawert Grün"
+
+#original text: "Analog gamma blue"
+msgid "Analog gamma blue"
+msgstr "Analoger Gammawert Blau"
+
+#original text: "Bind analog gamma"
+msgid "Bind analog gamma"
+msgstr "Verbinde analoge Gammawerte"
+
+#original text: "Smear"
+msgid "Smear"
+msgstr "Schmieren"
+
+#original text: "10 bit-mode"
+msgid "10 bit-mode"
+msgstr ""
+
+#original text: "12 bit-mode"
+msgid "12 bit-mode"
+msgstr ""
+
+#original text: "Warmup lamp"
+msgid "Warmup lamp"
+msgstr "Lampe aufwärmen"
+
+#original text: "Preview patch"
+msgid "Preview patch"
+msgstr ""
+
+#original text: "Start-scan patch"
+msgid "Start-scan patch"
+msgstr ""
+
+#original text: "Cal. exposure-time"
+msgid "Cal. exposure-time"
+msgstr "Beleuchtungszeit zum Kalibrieren"
+
+#original text: "Cal. exposure-time for red"
+msgid "Cal. exposure-time for red"
+msgstr "Beleuchtungszeit zum Kalibrieren von Rot"
+
+#original text: "Cal. exposure-time for green"
+msgid "Cal. exposure-time for green"
+msgstr "Beleuchtungszeit zum Kalibrieren von Grün"
+
+#original text: "Cal. exposure-time for blue"
+msgid "Cal. exposure-time for blue"
+msgstr "Beleuchtungszeit zum Kalibrieren von Blau"
+
+#original text: "Scan exposure-time"
+msgid "Scan exposure-time"
+msgstr "Beleuchtungszeit zum Scannen"
+
+#original text: "Scan exposure-time for red"
+msgid "Scan exposure-time for red"
+msgstr "Beleuchtungszeit zum Scannen von Rot"
+
+#original text: "Scan exposure-time for green"
+msgid "Scan exposure-time for green"
+msgstr "Beleuchtungszeit zum Scannen von Grün"
+
+#original text: "Scan exposure-time for blue"
+msgid "Scan exposure-time for blue"
+msgstr "Beleuchtungszeit zum Scannen von Blau"
+
+#original text: "Set exposure-time"
+msgid "Set exposure-time"
+msgstr "Definiere Beleuchtungszeit"
+
+#original text: "Cal. lamp density"
+msgid "Cal. lamp density"
+msgstr "Lichtwert für Kalibrierung"
+
+#original text: "Scan lamp density"
+msgid "Scan lamp density"
+msgstr "Lichtwert beim Scannen"
+
+#original text: "Set lamp density"
+msgid "Set lamp density"
+msgstr "Definiere Lichtwert"
+
+
+
+
+#original text: "Request a preview-quality scan."
+msgid "Request a preview-quality scan."
+msgstr "Erbitte Scan in Vorschauqualität"
+
+#original text: "Request that all previews are done in monochrome mode. On a three-pass " " scanner this cuts down the number of passes to one and on a one-pass " "scanner, it reduces the memory requirements and scan-time of the preview."
+msgid "Request that all previews are done in monochrome mode. On a three-pass " " scanner this cuts down the number of passes to one and on a one-pass " "scanner, it reduces the memory requirements and scan-time of the preview."
+msgstr ""
+
+#original text: "Number of bits per sample, typical values are 1 for \"line-art\" and 8 " "for multibit scans."
+msgid "Number of bits per sample, typical values are 1 for \"line-art\" and 8 " "for multibit scans."
+msgstr "Anzahl der Bits pro Farbwert, typische Werte seind 1 für lineart- und 8 für multibit-Scans"
+
+#original text: "Selects the scan mode (e.g., lineart,monochrome, or color)."
+msgid "Selects the scan mode (e.g., lineart,monochrome, or color)."
+msgstr "Wählt den Scanmode (z.B. Lineart, Grau oder Farbe)"
+
+#original text: "Determines the speed at which the scan proceeds."
+msgid "Determines the speed at which the scan proceeds."
+msgstr "Bestimmt die Scangeschwindigkeit"
+
+#original text: "Selects the scan source (such as a document-feeder)."
+msgid "Selects the scan source (such as a document-feeder)."
+msgstr "Bestimmt die Scanquelle (wie Dokumenteneinzug)"
+
+#original text: "Controls whether backtracking is forced."
+msgid "Controls whether backtracking is forced."
+msgstr ""
+
+#original text: "Top-left x position of scan area."
+msgid "Top-left x position of scan area."
+msgstr "linke Kante des zu scannenden Bereichs"
+
+#original text: "Top-left y position of scan area."
+msgid "Top-left y position of scan area."
+msgstr "Obere Kante des zu scannenden Bereichs"
+
+#original text: "Bottom-right x position of scan area."
+msgid "Bottom-right x position of scan area."
+msgstr "rechte Kante des zu scannenden Bereichs"
+
+#original text: "Bottom-right y position of scan area."
+msgid "Bottom-right y position of scan area."
+msgstr "untere Kante des zu scannenden Bereichs"
+
+#original text: "Sets the resolution of the scanned image."
+msgid "Sets the resolution of the scanned image."
+msgstr "Bestimmt die Auflösung des Bildes"
+
+#original text: "Sets the horizontal resolution of the scanned image."
+msgid "Sets the horizontal resolution of the scanned image."
+msgstr "Bestimmt die horizontale Auflösung des Bildes"
+
+#original text: "Sets the vertical resolution of the scanned image."
+msgid "Sets the vertical resolution of the scanned image."
+msgstr "Bestimmt die vertikale Auflösung des Bildes"
+
+#original text: "Determines whether a builtin or a custom gamma-table should be used."
+msgid "Determines whether a builtin or a custom gamma-table should be used."
+msgstr "Bestimmt ob die scannerinterne Gammakorrektur verwendet wird"
+
+#original text: "Gamma-correction table. In color mode this option equally affects the " "red, green, and blue channels simultaneously (i.e., it is an intensity " "gamma table)."
+msgid "Gamma-correction table. In color mode this option equally affects the " "red, green, and blue channels simultaneously (i.e., it is an intensity " "gamma table)."
+msgstr "Gamma Tabelle"
+
+#original text: "Gamma-correction table for the red band."
+msgid "Gamma-correction table for the red band."
+msgstr "Gamma Tabelle für rote Komponente"
+
+#original text: "Gamma-correction table for the green band."
+msgid "Gamma-correction table for the green band."
+msgstr "Gamma Tabelle für grüne Komponente"
+
+#original text: "Gamma-correction table for the blue band."
+msgid "Gamma-correction table for the blue band."
+msgstr "Gamma Tabelle für blaue Komponente"
+
+#original text: "Controls the brightness of the acquired image."
+msgid "Controls the brightness of the acquired image."
+msgstr "Kontrolliert die Helligkeit des Bildes"
+
+#original text: "Controls the contrast of the acquired image."
+msgid "Controls the contrast of the acquired image."
+msgstr "Kontrolliert den Kontrast des Bildes"
+
+#original text: "Selects the \"graininess\" of the acquired image. Smaller values " "result in sharper images."
+msgid "Selects the \"graininess\" of the acquired image. Smaller values " "result in sharper images."
+msgstr ""
+
+#original text: "Selects whether the acquired image should be halftoned (dithered)."
+msgid "Selects whether the acquired image should be halftoned (dithered)."
+msgstr ""
+
+#original text: "Selects what radiance level should be considered \"black\"."
+msgid "Selects what radiance level should be considered \"black\"."
+msgstr "Bestimmt, welcher Helligkeitswert als Schwarz angesehen werden soll"
+
+#original text: "Selects what radiance level should be considered \"white\"."
+msgid "Selects what radiance level should be considered \"white\"."
+msgstr "Bestimmt, welcher Helligkeitswert als Weiß angesehen werden soll"
+
+#original text: "Selects what radiance level should be considered \"black\"."
+msgid "Selects what radiance level should be considered \"black\"."
+msgstr "Bestimmt, welcher Helligkeitswert als Schwarz angesehen werden soll"
+
+#original text: "Selects what red radiance level should be considered \"black\"."
+msgid "Selects what red radiance level should be considered \"black\"."
+msgstr "Bestimmt, welcher Helligkeitswert der roten Komponente als Schwarz angesehen werden soll"
+
+#original text: "Selects what green radiance level should be considered \"black\"."
+msgid "Selects what green radiance level should be considered \"black\"."
+msgstr "Bestimmt, welcher Helligkeitswert der grünen Komponente als Schwarz angesehen werden soll"
+
+#original text: "Selects what blue radiance level should be considered \"black\"."
+msgid "Selects what blue radiance level should be considered \"black\"."
+msgstr "Bestimmt, welcher Helligkeitswert der blauen Komponente als Schwarz angesehen werden soll"
+
+#original text: "Selects what radiance level should be considered \"white\"."
+msgid "Selects what radiance level should be considered \"white\"."
+msgstr "Bestimmt, welcher Helligkeitswert als Weiß angesehen werden soll"
+
+#original text: "Selects what red radiance level should be considered \"full red\"."
+msgid "Selects what red radiance level should be considered \"full red\"."
+msgstr "Bestimmt, welcher Helligkeitswert der roten Komponente als Weiß angesehen werden soll"
+
+#original text: "Selects what green radiance level should be considered \"full green\"."
+msgid "Selects what green radiance level should be considered \"full green\"."
+msgstr "Bestimmt, welcher Helligkeitswert der grünen Komponente als Weiß angesehen werden soll"
+
+#original text: "Selects what blue radiance level should be considered \"full blue\"."
+msgid "Selects what blue radiance level should be considered \"full blue\"."
+msgstr "Bestimmt, welcher Helligkeitswert der blauen Komponente als Weiß angesehen werden soll"
+
+#original text: "Controls the \"hue\" (blue-level) of the acquired image."
+msgid "Controls the \"hue\" (blue-level) of the acquired image."
+msgstr ""
+
+#original text: "The saturation level controls the amount of \"blooming\" that occurs when " "acquiring an image with a camera. Larger values cause more blooming."
+msgid "The saturation level controls the amount of \"blooming\" that occurs when " "acquiring an image with a camera. Larger values cause more blooming."
+msgstr ""
+
+#original text: "The filename of the image to be loaded."
+msgid "The filename of the image to be loaded."
+msgstr "Der Dateiname des zu ladenden Bildes"
+
+#original text: "Sets the size of the halftoning (dithering) pattern used when scanning " "halftoned images."
+msgid "Sets the size of the halftoning (dithering) pattern used when scanning " "halftoned images."
+msgstr ""
+
+#original text: "Defines the halftoning (dithering) pattern for scanning halftoned images."
+msgid "Defines the halftoning (dithering) pattern for scanning halftoned images."
+msgstr ""
+
+#original text: "Use same values for X and Y resolution"
+msgid "Use same values for X and Y resolution"
+msgstr "Benutze die gleichen Auflösungen für X und Y"
+
+#original text: "Swap black and white"
+msgid "Swap black and white"
+msgstr "Invertiere die Farben, z.B. tausche Schwarz gegen Weiß"
+
+#original text: "Do a quality white-calibration"
+msgid "Do a quality white-calibration"
+msgstr "Führe einen Qualitätsweißabgleich durch"
+
+#original text: "Use lens that doubles optical resolution"
+msgid "Use lens that doubles optical resolution"
+msgstr "Benutze die Linse, mit der die optische Auflösung verdoppelt wird"
+
+#original text: "In RGB-mode use same values for each color"
+msgid "In RGB-mode use same values for each color"
+msgstr "Benutze die gleichen Wert für alle Farben im RGB Modus"
+
+#original text: "Select minimum-brightness to get a white point"
+msgid "Select minimum-brightness to get a white point"
+msgstr "Wähle die minimale Helligkeit, die als Weiß betrachtet werden soll"
+
+#original text: "Analog gamma-correction"
+msgid "Analog gamma-correction"
+msgstr "analoge Gammakorrektur"
+
+#original text: "Analog gamma-correction for red"
+msgid "Analog gamma-correction for red"
+msgstr "analoge Gammakorrektur für Rot"
+
+#original text: "Analog gamma-correction for green"
+msgid "Analog gamma-correction for green"
+msgstr "analoge Gammakorrektur für Grün"
+
+#original text: "Analog gamma-correction for blue"
+msgid "Analog gamma-correction for blue"
+msgstr "analoge Gammakorrektur für Blau"
+
+#original text: "In RGB-mode use same values for each color"
+msgid "In RGB-mode use same values for each color"
+msgstr ""
+
+#original text: "Don't care about image smearing problem"
+msgid "Don't care about image smearing problem"
+msgstr "Ignoriere das Problem des Verschmierens des Bildes"
+
+#original text: "Output with 10 bits instead of 8 bits"
+msgid "Output with 10 bits instead of 8 bits"
+msgstr ""
+
+#original text: "Output with 12 bits instead of 8 bits"
+msgid "Output with 12 bits instead of 8 bits"
+msgstr ""
+
+#original text: "Warmup lamp before scanning"
+msgid "Warmup lamp before scanning"
+msgstr "Wärme die Lampe vorm Scannen auf"
+
+#original text: "Set preview-bit in rgb-mode"
+msgid "Set preview-bit in rgb-mode"
+msgstr "Setzt das Vorschaubit im Farbmodus"
+
+#original text: "Use special start-scan bits"
+msgid "Use special start-scan bits"
+msgstr "Benutze besondere Einstellungen beim Start des Scans"
+
+#original text: "Define exposure-time for calibration"
+msgid "Define exposure-time for calibration"
+msgstr "Bestimmt die Beleuchtungszeit für die Kalibrierung"
+
+#original text: "Define exposure-time for red calibration"
+msgid "Define exposure-time for red calibration"
+msgstr "Bestimmt die Beleuchtungszeit für die Kalibrierung der roten Komponente"
+
+#original text: "Define exposure-time for green calibration"
+msgid "Define exposure-time for green calibration"
+msgstr "Bestimmt die Beleuchtungszeit für die Kalibrierung der grünen Komponente"
+
+#original text: "Define exposure-time for blue calibration"
+msgid "Define exposure-time for blue calibration"
+msgstr "Bestimmt die Beleuchtungszeit für die Kalibrierung der blauen Komponente"
+
+#original text: "Define exposure-time for scan"
+msgid "Define exposure-time for scan"
+msgstr "Bestimmt die Beleuchtungszeit für den Scan"
+
+#original text: "Define exposure-time for red scan"
+msgid "Define exposure-time for red scan"
+msgstr "Bestimmt die Beleuchtungszeit für den Scan der roten Komponente"
+
+#original text: "Define exposure-time for green scan"
+msgid "Define exposure-time for green scan"
+msgstr "Bestimmt die Beleuchtungszeit für den Scan der grünen Komponente"
+
+#original text: "Define exposure-time for blue scan"
+msgid "Define exposure-time for blue scan"
+msgstr "Bestimmt die Beleuchtungszeit für den Scan der blauen Komponente"
+
+#original text: "Enable selection of exposure-time"
+msgid "Enable selection of exposure-time"
+msgstr "Ermögliche Einstellung der Beleuchtungszeiten"
+
+#original text: "Define lamp density for calibration"
+msgid "Define lamp density for calibration"
+msgstr "Definiere die Lichtwerte beim Kalibrieren"
+
+#original text: "Define lamp density for scan"
+msgid "Define lamp density for scan"
+msgstr "Definiere die Lichtwerte beim Scannen"
+
+#original text: "Enable selection of lamp density"
+msgid "Enable selection of lamp density"
+msgstr "Ermögliche Auswahl der Lichtwerte"
+
+msgid "Geometry"
+msgstr "Geometrie"
+
+msgid "Enhancement"
+msgstr "Farbverbesserung"
+
+msgid "Scan Mode"
+msgstr "Scan Modus"
+
+msgid "Color"
+msgstr "Farbe"
+
+msgid "Gray"
+msgstr "Graustufen"
+
+msgid "Halftone"
+msgstr "Halbton"
+
+msgid "Lineart"
+msgstr "Strichzeichnung"
+
+msgid "Flatbed"
+msgstr "Flachbett"
+
+msgid "Transparency"
+msgstr "Durchlicht"
+
+msgid "Automatic Document Feeder"
+msgstr "Autom. Dokumenteneinzug"
+
diff --git a/backend-po/umax1220u.sr.po b/backend-po/umax1220u.sr.po
new file mode 100644
index 0000000..a913096
--- /dev/null
+++ b/backend-po/umax1220u.sr.po
@@ -0,0 +1,591 @@
+msgid ""
+msgstr ""
+"Last-Translator: Rusmir Duško <drusmir@gmx.ch>\n"
+"PO-Revision-Date: 2002-01-04 19:10GMT\n"
+"Language-Team: srpski <sr@li.org>\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.2\n"
+
+#nls translation file for backend umax
+#language: serbian (sr)
+#original text: "Number of options"
+msgid "Number of options"
+msgstr "Broj opcija"
+
+#original text: "Preview"
+msgid "Preview"
+msgstr "Pregled"
+
+#original text: "Force monochrome preview"
+msgid "Force monochrome preview"
+msgstr "Sivi pregled"
+
+#original text: "Bit depth"
+msgid "Bit depth"
+msgstr "Dubina bita"
+
+#original text: "Scan mode"
+msgid "Scan mode"
+msgstr "Modus skeniranja"
+
+#original text: "Scan speed"
+msgid "Scan speed"
+msgstr "Brzina skeniranja"
+
+#original text: "Scan source"
+msgid "Scan source"
+msgstr "Izvor skeniranja"
+
+#original text: "Force backtracking"
+msgid "Force backtracking"
+msgstr "Bektrejs"
+
+#original text: "Top-left x"
+msgid "Top-left x"
+msgstr "levo"
+
+#original text: "Top-left y"
+msgid "Top-left y"
+msgstr "gore"
+
+#original text: "Bottom-right x"
+msgid "Bottom-right x"
+msgstr "desno"
+
+#original text: "Bottom-right y"
+msgid "Bottom-right y"
+msgstr "dole"
+
+#original text: "Scan resolution"
+msgid "Scan resolution"
+msgstr "Rezolucija skeniranja"
+
+#original text: "X-resolution"
+msgid "X-resolution"
+msgstr "X-rezolucija"
+
+#original text: "Y-resolution"
+msgid "Y-resolution"
+msgstr "Y-rezolucija"
+
+#original text: "Use custom gamma table"
+msgid "Use custom gamma table"
+msgstr "Koristi internu gamakorekturu"
+
+#original text: "Image intensity"
+msgid "Image intensity"
+msgstr "Jačina slike"
+
+#original text: "Red intensity"
+msgid "Red intensity"
+msgstr "Jačina crvene"
+
+#original text: "Green intensity"
+msgid "Green intensity"
+msgstr "Jačina zelene"
+
+#original text: "Blue intensity"
+msgid "Blue intensity"
+msgstr "Jačina plave"
+
+#original text: "Brightness"
+msgid "Brightness"
+msgstr "Osvetliti"
+
+#original text: "Contrast"
+msgid "Contrast"
+msgstr "Kontrast"
+
+#original text: "Grain size"
+msgid "Grain size"
+msgstr "Veličina granulacije"
+
+#original text: "Halftoning"
+msgid "Halftoning"
+msgstr "Poluton"
+
+#original text: "Black level"
+msgid "Black level"
+msgstr "Crni nivo"
+
+#original text: "White level"
+msgid "White level"
+msgstr "Beli nivo"
+
+#original text: "Shadow"
+msgid "Shadow"
+msgstr "Senke"
+
+#original text: "Shadow for red"
+msgid "Shadow for red"
+msgstr "Crvene senke"
+
+#original text: "Shadow for green"
+msgid "Shadow for green"
+msgstr "Zelene senke"
+
+#original text: "Shadow for blue"
+msgid "Shadow for blue"
+msgstr "Plave senke"
+
+#original text: "Highlight"
+msgid "Highlight"
+msgstr "Svetlo"
+
+#original text: "Highlight for red"
+msgid "Highlight for red"
+msgstr "Crveno svetlo"
+
+#original text: "Highlight for green"
+msgid "Highlight for green"
+msgstr "Zeleno svetlo"
+
+#original text: "Highlight for blue"
+msgid "Highlight for blue"
+msgstr "Plavo svetlo"
+
+#original text: "Hue"
+msgid "Hue"
+msgstr "Nijansa"
+
+#original text: "Saturation"
+msgid "Saturation"
+msgstr "Zasićenje"
+
+#original text: "Filename"
+msgid "Filename"
+msgstr "Naziv fajla"
+
+#original text: "Halftone pattern size"
+msgid "Halftone pattern size"
+msgstr "Poluton veličine uzorka"
+
+#original text: "Halftone pattern"
+msgid "Halftone pattern"
+msgstr "Poluton uzorka"
+
+#original text: "Bind X and Y resolution"
+msgid "Bind X and Y resolution"
+msgstr "Poveži X i Y rezoluciju"
+
+#original text: "Negative"
+msgid "Negative"
+msgstr "Negativ"
+
+#original text: "Quality calibration"
+msgid "Quality calibration"
+msgstr "Kalibracija kvaliteta"
+
+#original text: "Double Optical Resolution"
+msgid "Double Optical Resolution"
+msgstr "Poduplaj optičku rezoluciju"
+
+#original text: "Bind RGB"
+msgid "Bind RGB"
+msgstr "Poveži RGB"
+
+#original text: "Threshold"
+msgid "Threshold"
+msgstr "Prag šuma"
+
+#original text: "Analog gamma correction"
+msgid "Analog gamma correction"
+msgstr "Analogna gamakorekcija"
+
+#original text: "Analog gamma red"
+msgid "Analog gamma red"
+msgstr "Analogna gamavrednost crvene"
+
+#original text: "Analog gamma green"
+msgid "Analog gamma green"
+msgstr "Analogna gamavrednost zelene"
+
+#original text: "Analog gamma blue"
+msgid "Analog gamma blue"
+msgstr "Analogna gamavrednost plave"
+
+#original text: "Bind analog gamma"
+msgid "Bind analog gamma"
+msgstr "Poveži analogne gamavrednosti"
+
+#original text: "Smear"
+msgid "Smear"
+msgstr "Podmaži"
+
+#original text: "10 bit-mode"
+msgid "10 bit-mode"
+msgstr "10 bitni modus"
+
+#original text: "12 bit-mode"
+msgid "12 bit-mode"
+msgstr "12 bitni modus"
+
+#original text: "Warmup lamp"
+msgid "Warmup lamp"
+msgstr "Zagrej lampu"
+
+#original text: "Preview patch"
+msgid "Preview patch"
+msgstr "Pregled prepravke"
+
+#original text: "Start-scan patch"
+msgid "Start-scan patch"
+msgstr "Počni prepravku skeniranja"
+
+#original text: "Cal. exposure-time"
+msgid "Cal. exposure-time"
+msgstr "Vreme osvetljena za kalibrisanje"
+
+#original text: "Cal. exposure-time for red"
+msgid "Cal. exposure-time for red"
+msgstr "Vreme osvetljena za kalibrisanje crvene"
+
+#original text: "Cal. exposure-time for green"
+msgid "Cal. exposure-time for green"
+msgstr "Vreme osvetljena za kalibrisanje zelene"
+
+#original text: "Cal. exposure-time for blue"
+msgid "Cal. exposure-time for blue"
+msgstr "Vreme osvetljena za kalibrisanje plave"
+
+#original text: "Scan exposure-time"
+msgid "Scan exposure-time"
+msgstr "Vreme osvetljena za skeniranje"
+
+#original text: "Scan exposure-time for red"
+msgid "Scan exposure-time for red"
+msgstr "Vreme osvetljena za skeniranje crvene"
+
+#original text: "Scan exposure-time for green"
+msgid "Scan exposure-time for green"
+msgstr "Vreme osvetljena za skeniranje zelene"
+
+#original text: "Scan exposure-time for blue"
+msgid "Scan exposure-time for blue"
+msgstr "Vreme osvetljena za skeniranje plave"
+
+#original text: "Set exposure-time"
+msgid "Set exposure-time"
+msgstr "Odredi vreme osvetljenja"
+
+#original text: "Cal. lamp density"
+msgid "Cal. lamp density"
+msgstr "Kalibriši jačinu lampe"
+
+#original text: "Scan lamp density"
+msgid "Scan lamp density"
+msgstr "Jačina lampe pri skeniranju"
+
+#original text: "Set lamp density"
+msgid "Set lamp density"
+msgstr "Odredi jačinu lampe"
+
+#original text: "Request a preview-quality scan."
+msgid "Request a preview-quality scan."
+msgstr "Zatraži pregledno skeniranje"
+
+#original text: "Request that all previews are done in monochrome mode. On a three-pass " " scanner this cuts down the number of passes to one and on a one-pass " "scanner, it reduces the memory requirements and scan-time of the preview."
+msgid "Request that all previews are done in monochrome mode. On a three-pass " " scanner this cuts down the number of passes to one and on a one-pass " "scanner, it reduces the memory requirements and scan-time of the preview."
+msgstr "Zatraži da svi pregledi budu urađeni u monohromom modusu"
+
+#original text: "Number of bits per sample, typical values are 1 for \"line-art\" and 8 " "for multibit scans."
+msgid "Number of bits per sample, typical values are 1 for \"line-art\" and 8 " "for multibit scans."
+msgstr "Broj bita po uzorku, tipične vrednosti su 1 za linearna- i 8 za multibitna-skeniranja"
+
+#original text: "Selects the scan mode (e.g., lineart,monochrome, or color)."
+msgid "Selects the scan mode (e.g., lineart,monochrome, or color)."
+msgstr "Biraj način skeniranja (n.pr. crtež , grao ili u boji)"
+
+#original text: "Determines the speed at which the scan proceeds."
+msgid "Determines the speed at which the scan proceeds."
+msgstr "Odredi brzinu skeniranja"
+
+#original text: "Selects the scan source (such as a document-feeder)."
+msgid "Selects the scan source (such as a document-feeder)."
+msgstr "Odredi izvor skeniranja (kao šahta za dokumenta)"
+
+#original text: "Controls whether backtracking is forced."
+msgid "Controls whether backtracking is forced."
+msgstr "Kontroliši koji sistem za korekciju je poželjan"
+
+#original text: "Top-left x position of scan area."
+msgid "Top-left x position of scan area."
+msgstr "Levi ugao polja za skeniranje"
+
+#original text: "Top-left y position of scan area."
+msgid "Top-left y position of scan area."
+msgstr "Gornji ugao polja za skeniranje"
+
+#original text: "Bottom-right x position of scan area."
+msgid "Bottom-right x position of scan area."
+msgstr "Desni ugao polja za skeniranje"
+
+#original text: "Bottom-right y position of scan area."
+msgid "Bottom-right y position of scan area."
+msgstr "Donji ugao polja za skeniranje"
+
+#original text: "Sets the resolution of the scanned image."
+msgid "Sets the resolution of the scanned image."
+msgstr "Odredi rezoluciju slike"
+
+#original text: "Sets the horizontal resolution of the scanned image."
+msgid "Sets the horizontal resolution of the scanned image."
+msgstr "Odredi horizontalnu rezoluciju slike"
+
+#original text: "Sets the vertical resolution of the scanned image."
+msgid "Sets the vertical resolution of the scanned image."
+msgstr "Odredi vertikalnu rezoluciju slike"
+
+#original text: "Determines whether a builtin or a custom gamma-table should be used."
+msgid "Determines whether a builtin or a custom gamma-table should be used."
+msgstr "Odredi da li da se ugrađena ili korisnička gamakorrektura skenera upotrebljava"
+
+#original text: "Gamma-correction table. In color mode this option equally affects the " "red, green, and blue channels simultaneously (i.e., it is an intensity " "gamma table)."
+msgid "Gamma-correction table. In color mode this option equally affects the " "red, green, and blue channels simultaneously (i.e., it is an intensity " "gamma table)."
+msgstr "Tabela za gamakorekciju"
+
+#original text: "Gamma-correction table for the red band."
+msgid "Gamma-correction table for the red band."
+msgstr "Tabela za gamakorekciju crvene komponente"
+
+#original text: "Gamma-correction table for the green band."
+msgid "Gamma-correction table for the green band."
+msgstr "Tabela za gamakorekciju zelene komponente"
+
+#original text: "Gamma-correction table for the blue band."
+msgid "Gamma-correction table for the blue band."
+msgstr "Tabela za gamakorekciju plave komponente"
+
+#original text: "Controls the brightness of the acquired image."
+msgid "Controls the brightness of the acquired image."
+msgstr "Kontroliše osvetljenje slike"
+
+#original text: "Controls the contrast of the acquired image."
+msgid "Controls the contrast of the acquired image."
+msgstr "Kontroliše kontrast slike"
+
+#original text: "Selects the \"graininess\" of the acquired image. Smaller values " "result in sharper images."
+msgid "Selects the \"graininess\" of the acquired image. Smaller values " "result in sharper images."
+msgstr "Odaberi sivo nivo od slike"
+
+#original text: "Selects whether the acquired image should be halftoned (dithered)."
+msgid "Selects whether the acquired image should be halftoned (dithered)."
+msgstr "Odredi gde slika treba da bude polutonirana"
+
+#original text: "Selects what radiance level should be considered \"black\"."
+msgid "Selects what radiance level should be considered \"black\"."
+msgstr "Odredi koja vrednost osvetljenja da bude posmatrana kao crno"
+
+#original text: "Selects what radiance level should be considered \"white\"."
+msgid "Selects what radiance level should be considered \"white\"."
+msgstr "Odredi koja vrednost osvetljenja da bude posmatrana kao belo"
+
+#original text: "Selects what radiance level should be considered \"black\"."
+msgid "Selects what radiance level should be considered \"black\"."
+msgstr "Odredi koja vrednost osvetljenja da bude posmatrana kao crno"
+
+#original text: "Selects what red radiance level should be considered \"black\"."
+msgid "Selects what red radiance level should be considered \"black\"."
+msgstr "Odredi koja vrednost crvenog osvetljenja da bude posmatrana kao crno"
+
+#original text: "Selects what green radiance level should be considered \"black\"."
+msgid "Selects what green radiance level should be considered \"black\"."
+msgstr "Odredi koja vrednost zelenog osvetljenja da bude posmatrana kao crno"
+
+#original text: "Selects what blue radiance level should be considered \"black\"."
+msgid "Selects what blue radiance level should be considered \"black\"."
+msgstr "Odredi koja vrednost plavog osvetljenja da bude posmatrana kao crno"
+
+#original text: "Selects what radiance level should be considered \"white\"."
+msgid "Selects what radiance level should be considered \"white\"."
+msgstr "Odredi koja vrednost osvetljenja da bude posmatrana kao belo"
+
+#original text: "Selects what red radiance level should be considered \"full red\"."
+msgid "Selects what red radiance level should be considered \"full red\"."
+msgstr "Odredi koja vrednost crvenog osvetljenja da bude posmatrana kao potpuno crvena"
+
+#original text: "Selects what green radiance level should be considered \"full green\"."
+msgid "Selects what green radiance level should be considered \"full green\"."
+msgstr "Odredi koja vrednost zelenog osvetljenja da bude posmatrana kao potpuno zelena"
+
+#original text: "Selects what blue radiance level should be considered \"full blue\"."
+msgid "Selects what blue radiance level should be considered \"full blue\"."
+msgstr "Odredi koja vrednost plavog osvetljenja da bude posmatrana kao potpuno plavo"
+
+#original text: "Controls the \"hue\" (blue-level) of the acquired image."
+msgid "Controls the \"hue\" (blue-level) of the acquired image."
+msgstr "Kontroliši plavi nivo od slike"
+
+#original text: "The saturation level controls the amount of \"blooming\" that occurs when " "acquiring an image with a camera. Larger values cause more blooming."
+msgid "The saturation level controls the amount of \"blooming\" that occurs when " "acquiring an image with a camera. Larger values cause more blooming."
+msgstr "Nivo zasićenja koji kontoliše količinu rumenila koji se javlja kod kamera"
+
+#original text: "The filename of the image to be loaded."
+msgid "The filename of the image to be loaded."
+msgstr "Ime fajla slike koja treba da se unese"
+
+#original text: "Sets the size of the halftoning (dithering) pattern used when scanning " "halftoned images."
+msgid "Sets the size of the halftoning (dithering) pattern used when scanning " "halftoned images."
+msgstr "Odredi veličinu uzorka u polutonu koji se upotrebljava kod skeniranja"
+
+#original text: "Defines the halftoning (dithering) pattern for scanning halftoned images."
+msgid "Defines the halftoning (dithering) pattern for scanning halftoned images."
+msgstr "Definiraj dithering senku za skeniranje polutoniranih slika"
+
+#original text: "Use same values for X and Y resolution"
+msgid "Use same values for X and Y resolution"
+msgstr "Upotrebljavaj iste vrednosti za X i Y"
+
+#original text: "Swap black and white"
+msgid "Swap black and white"
+msgstr "Invertuj boje, npr. promeni crnu u belu"
+
+#original text: "Do a quality white-calibration"
+msgid "Do a quality white-calibration"
+msgstr "Uradi kvalitetnu belu kalibraciju"
+
+#original text: "Use lens that doubles optical resolution"
+msgid "Use lens that doubles optical resolution"
+msgstr "Koristi sočivo koje poduplava optičku rezoluciju"
+
+#original text: "In RGB-mode use same values for each color"
+msgid "In RGB-mode use same values for each color"
+msgstr "Koristi istu vrednost sa svaku boju u RGB modusu"
+
+#original text: "Select minimum-brightness to get a white point"
+msgid "Select minimum-brightness to get a white point"
+msgstr "Izaberi minimalno osvetljenje za dobijanje bele tačke"
+
+#original text: "Analog gamma-correction"
+msgid "Analog gamma-correction"
+msgstr "Analogna gamakorektura"
+
+#original text: "Analog gamma-correction for red"
+msgid "Analog gamma-correction for red"
+msgstr "Analogna gamakorektura za crveno"
+
+#original text: "Analog gamma-correction for green"
+msgid "Analog gamma-correction for green"
+msgstr "Analogna gamakorektura za zeleno"
+
+#original text: "Analog gamma-correction for blue"
+msgid "Analog gamma-correction for blue"
+msgstr "Analogna gamakorektura za plavo"
+
+#original text: "In RGB-mode use same values for each color"
+msgid "In RGB-mode use same values for each color"
+msgstr "U RGB modusu koristi iste vrednosti za svaku boju"
+
+#original text: "Don't care about image smearing problem"
+msgid "Don't care about image smearing problem"
+msgstr "Ignoriši problem podmazivanja slike"
+
+#original text: "Output with 10 bits instead of 8 bits"
+msgid "Output with 10 bits instead of 8 bits"
+msgstr "Izlaz sa 10 bita umesto 8 bita"
+
+#original text: "Output with 12 bits instead of 8 bits"
+msgid "Output with 12 bits instead of 8 bits"
+msgstr "Izlaz sa 12 bita umesto 8 bita"
+
+#original text: "Warmup lamp before scanning"
+msgid "Warmup lamp before scanning"
+msgstr "Zagrej lampu pre skeniranja"
+
+#original text: "Set preview-bit in rgb-mode"
+msgid "Set preview-bit in rgb-mode"
+msgstr "Namesti bite za pregled u boji"
+
+#original text: "Use special start-scan bits"
+msgid "Use special start-scan bits"
+msgstr "Koristi posebna podešavanja pri startu skeniranja"
+
+#original text: "Define exposure-time for calibration"
+msgid "Define exposure-time for calibration"
+msgstr "Definiši vreme osvetljenja za kalibrisanje"
+
+#original text: "Define exposure-time for red calibration"
+msgid "Define exposure-time for red calibration"
+msgstr "Definiši vreme osvetljenja za kalibrisanje crvene"
+
+#original text: "Define exposure-time for green calibration"
+msgid "Define exposure-time for green calibration"
+msgstr "Definiši vreme osvetljenja za kalibrisanje zalene"
+
+#original text: "Define exposure-time for blue calibration"
+msgid "Define exposure-time for blue calibration"
+msgstr "Definiši vreme osvetljenja za kalibrisanje plave"
+
+#original text: "Define exposure-time for scan"
+msgid "Define exposure-time for scan"
+msgstr "Definiši vreme osvetljenja za skeniranje"
+
+#original text: "Define exposure-time for red scan"
+msgid "Define exposure-time for red scan"
+msgstr "Definiši vreme osvetljenja za skeniranje crvene"
+
+#original text: "Define exposure-time for green scan"
+msgid "Define exposure-time for green scan"
+msgstr "Definiši vreme osvetljenja za skeniranje zelene"
+
+#original text: "Define exposure-time for blue scan"
+msgid "Define exposure-time for blue scan"
+msgstr "Definiši vreme osvetljenja za skeniranje plave"
+
+#original text: "Enable selection of exposure-time"
+msgid "Enable selection of exposure-time"
+msgstr "Omogući podešavanje vremena za osvetljenje"
+
+#original text: "Define lamp density for calibration"
+msgid "Define lamp density for calibration"
+msgstr "Definiši jačinu osvetljenja pri kalibrisanju"
+
+#original text: "Define lamp density for scan"
+msgid "Define lamp density for scan"
+msgstr "Definiši jačinu osvetljenja pri skeniranju"
+
+#original text: "Enable selection of lamp density"
+msgid "Enable selection of lamp density"
+msgstr "Omogući podešavanje jačine lampe"
+
+#original text: "Geometry"
+msgid "Geometry"
+msgstr "Geometrija"
+
+#original text: "Enhancement"
+msgid "Enhancement"
+msgstr "Poboljšanje"
+
+#original text: "Scan Mode"
+msgid "Scan Mode"
+msgstr "Skeniranje"
+
+#original text: "Color"
+msgid "Color"
+msgstr "Boja"
+
+#original text: "Gray"
+msgid "Gray"
+msgstr "Sivo"
+
+#original text: "Halftone"
+msgid "Halftone"
+msgstr "Poluton"
+
+#original text: "Lineart"
+msgid "Lineart"
+msgstr "Crtež"
+
+#original text: "Flatbed"
+msgid "Flatbed"
+msgstr "ravni skener"
+
+#original text: "Transparency Adapter"
+msgid "Transparency Adapter"
+msgstr "Adapter za propust svetla"
+
+#original text: "Automatic Document Feeder"
+msgid "Automatic Document Feeder"
+msgstr "Automatsko uvlačenje dokumenta"
+
diff --git a/configure b/configure
index f5834f8..11480e9 100755
--- a/configure
+++ b/configure
@@ -12,8 +12,6 @@ ac_help=
ac_default_prefix=/usr/local
# Any additions from configure.in:
ac_help="$ac_help
- --enable-intl-patch add -lintl to check for sane"
-ac_help="$ac_help
--disable-gimp do not include GIMP plugin mode"
ac_help="$ac_help
--disable-jpeg do not include JPEG support"
@@ -28,7 +26,11 @@ ac_help="$ac_help
ac_help="$ac_help
--with-catgets use catgets functions if available"
ac_help="$ac_help
- --with-x use the X Window System"
+ --with-sane-prefix=PFX Prefix where SANE is installed (optional)"
+ac_help="$ac_help
+ --with-sane-exec-prefix=PFX Exec prefix where SANE is installed (optional)"
+ac_help="$ac_help
+ --disable-sanetest Do not try to compile and run a test SANE program"
ac_help="$ac_help
--with-gtk-prefix=PFX Prefix where GTK is installed (optional)"
ac_help="$ac_help
@@ -36,6 +38,12 @@ ac_help="$ac_help
ac_help="$ac_help
--disable-gtktest Do not try to compile and run a test GTK program"
ac_help="$ac_help
+ --with-gimp-prefix=PFX Prefix where GIMP is installed (optional)"
+ac_help="$ac_help
+ --with-gimp-exec-prefix=PFX Exec prefix where GIMP is installed (optional)"
+ac_help="$ac_help
+ --disable-gimptest Do not try to compile and run a test GIMP program"
+ac_help="$ac_help
Used environment variables that can be set by user:
CFLAGS, CPPFLAGS, LDFLAGS, LIBS"
@@ -483,7 +491,7 @@ echo > confdefs.h
# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=include/sane/config.h.in
+ac_unique_file=include/config.h.in
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
@@ -559,14 +567,14 @@ fi
# version code:
V_MAJOR=0
-V_MINOR=50
+V_MINOR=84
PACKAGE=xsane
BINPROGS="xsane"
# languages
-ALL_LINGUAS="de fr cs"
+ALL_LINGUAS="cs de es fr nl ru sl sr sv it ja tr"
SANE_V_MAJOR=1
VERSION=${V_MAJOR}.${V_MINOR}
@@ -589,20 +597,9 @@ EOF
-echo $ac_n "checking whether libintl patch is requested""... $ac_c" 1>&6
-echo "configure:594: checking whether libintl patch is requested" >&5
-# Check whether --enable-intl-patch or --disable-intl-patch was given.
-if test "${enable_intl_patch+set}" = set; then
- enableval="$enable_intl_patch"
- ADD_LIBINTL=$enableval
-else
- ADD_LIBINTL=no
-fi
-
-echo "$ac_t""$ADD_LIBINTL" 1>&6
echo $ac_n "checking whether GIMP plugin is requested""... $ac_c" 1>&6
-echo "configure:606: checking whether GIMP plugin is requested" >&5
+echo "configure:603: checking whether GIMP plugin is requested" >&5
# Check whether --enable-gimp or --disable-gimp was given.
if test "${enable_gimp+set}" = set; then
enableval="$enable_gimp"
@@ -614,7 +611,7 @@ fi
echo "$ac_t""$USE_GIMP" 1>&6
echo $ac_n "checking whether JPEG support is requested""... $ac_c" 1>&6
-echo "configure:618: checking whether JPEG support is requested" >&5
+echo "configure:615: checking whether JPEG support is requested" >&5
# Check whether --enable-jpeg or --disable-jpeg was given.
if test "${enable_jpeg+set}" = set; then
enableval="$enable_jpeg"
@@ -626,7 +623,7 @@ fi
echo "$ac_t""$USE_JPEG" 1>&6
echo $ac_n "checking whether PNG support is requested""... $ac_c" 1>&6
-echo "configure:630: checking whether PNG support is requested" >&5
+echo "configure:627: checking whether PNG support is requested" >&5
# Check whether --enable-png or --disable-png was given.
if test "${enable_png+set}" = set; then
enableval="$enable_png"
@@ -638,7 +635,7 @@ fi
echo "$ac_t""$USE_PNG" 1>&6
echo $ac_n "checking whether TIFF support is requested""... $ac_c" 1>&6
-echo "configure:642: checking whether TIFF support is requested" >&5
+echo "configure:639: checking whether TIFF support is requested" >&5
# Check whether --enable-tiff or --disable-tiff was given.
if test "${enable_tiff+set}" = set; then
enableval="$enable_tiff"
@@ -653,7 +650,7 @@ echo "$ac_t""$USE_TIFF" 1>&6
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:657: checking for $ac_word" >&5
+echo "configure:654: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -683,7 +680,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:687: checking for $ac_word" >&5
+echo "configure:684: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -734,7 +731,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:738: checking for $ac_word" >&5
+echo "configure:735: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -766,7 +763,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:770: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:767: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -777,12 +774,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 781 "configure"
+#line 778 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -808,12 +805,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:812: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:809: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:817: checking whether we are using GNU C" >&5
+echo "configure:814: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -822,7 +819,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:826: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -841,7 +838,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:845: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:842: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -873,7 +870,7 @@ else
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:877: checking how to run the C preprocessor" >&5
+echo "configure:874: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -888,13 +885,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 892 "configure"
+#line 889 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:898: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:895: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -905,13 +902,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 909 "configure"
+#line 906 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:915: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:912: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -922,13 +919,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 926 "configure"
+#line 923 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:932: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:929: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -953,9 +950,9 @@ fi
echo "$ac_t""$CPP" 1>&6
echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:957: checking for AIX" >&5
+echo "configure:954: checking for AIX" >&5
cat > conftest.$ac_ext <<EOF
-#line 959 "configure"
+#line 956 "configure"
#include "confdefs.h"
#ifdef _AIX
yes
@@ -978,17 +975,17 @@ rm -f conftest*
ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
-echo "configure:982: checking for minix/config.h" >&5
+echo "configure:979: checking for minix/config.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 987 "configure"
+#line 984 "configure"
#include "confdefs.h"
#include <minix/config.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:992: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:989: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1026,7 +1023,7 @@ EOF
fi
echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:1030: checking for POSIXized ISC" >&5
+echo "configure:1027: checking for POSIXized ISC" >&5
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
@@ -1050,7 +1047,7 @@ fi
echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:1054: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "configure:1051: checking for ${CC-cc} option to accept ANSI C" >&5
if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1066,7 +1063,7 @@ for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__
do
CC="$ac_save_CC $ac_arg"
cat > conftest.$ac_ext <<EOF
-#line 1070 "configure"
+#line 1067 "configure"
#include "confdefs.h"
#include <stdarg.h>
#include <stdio.h>
@@ -1092,8 +1089,8 @@ static char *f (char * (*g) (char **, int), char **p, ...)
} int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, i
-nt);
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int,
+ int);
int argc;
char **argv;
@@ -1103,7 +1100,7 @@ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
; return 0; }
EOF
-if { (eval echo configure:1107: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1104: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
am_cv_prog_cc_stdc="$ac_arg"; break
else
@@ -1157,7 +1154,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1161: checking for a BSD compatible install" >&5
+echo "configure:1158: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1210,7 +1207,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:1214: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:1211: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1237,7 +1234,7 @@ else
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1241: checking how to run the C preprocessor" >&5
+echo "configure:1238: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1252,13 +1249,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1256 "configure"
+#line 1253 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1262: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1259: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1269,13 +1266,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1273 "configure"
+#line 1270 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1279: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1276: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1286,13 +1283,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 1290 "configure"
+#line 1287 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1296: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1293: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1318,13 +1315,13 @@ echo "$ac_t""$CPP" 1>&6
if test $ac_cv_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:1322: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:1319: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <<EOF
-#line 1328 "configure"
+#line 1325 "configure"
#include "confdefs.h"
#include <sgtty.h>
Autoconf TIOCGETP
@@ -1342,7 +1339,7 @@ rm -f conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <<EOF
-#line 1346 "configure"
+#line 1343 "configure"
#include "confdefs.h"
#include <termio.h>
Autoconf TCGETA
@@ -1371,12 +1368,12 @@ if test "${ac_cv_prog_gcc}" = "yes"; then
fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1375: checking for ANSI C header files" >&5
+echo "configure:1372: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1380 "configure"
+#line 1377 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -1384,7 +1381,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1385: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1401,7 +1398,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1405 "configure"
+#line 1402 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -1419,7 +1416,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 1423 "configure"
+#line 1420 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -1440,7 +1437,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 1444 "configure"
+#line 1441 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -1451,7 +1448,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:1455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -1474,23 +1471,21 @@ EOF
fi
-for ac_hdr in fcntl.h unistd.h libc.h sys/dsreq.h sys/select.h \
- sys/time.h sys/scanio.h sys/socket.h sys/io.h asm/io.h gscdds.h sys/hw.h \
- bsd/dev/scsireg.h io/cam/cam.h camlib.h sys/types.h zlib.h
+for ac_hdr in os2.h fcntl.h unistd.h libc.h sys/time.h sys/types.h zlib.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1484: checking for $ac_hdr" >&5
+echo "configure:1479: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1489 "configure"
+#line 1484 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1494: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1489: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1518,12 +1513,12 @@ done
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1522: checking for working const" >&5
+echo "configure:1517: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1527 "configure"
+#line 1522 "configure"
#include "confdefs.h"
int main() {
@@ -1572,7 +1567,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:1576: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -1593,21 +1588,21 @@ EOF
fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1597: checking for inline" >&5
+echo "configure:1592: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 1604 "configure"
+#line 1599 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:1611: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -1633,12 +1628,12 @@ EOF
esac
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1637: checking return type of signal handlers" >&5
+echo "configure:1632: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1642 "configure"
+#line 1637 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -1655,7 +1650,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:1659: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -1674,12 +1669,12 @@ EOF
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:1678: checking for size_t" >&5
+echo "configure:1673: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1683 "configure"
+#line 1678 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1707,12 +1702,12 @@ EOF
fi
echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:1711: checking for pid_t" >&5
+echo "configure:1706: checking for pid_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1716 "configure"
+#line 1711 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1740,12 +1735,12 @@ EOF
fi
echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:1744: checking for ssize_t" >&5
+echo "configure:1739: checking for ssize_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1749 "configure"
+#line 1744 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1773,12 +1768,12 @@ EOF
fi
echo $ac_n "checking for u_char""... $ac_c" 1>&6
-echo "configure:1777: checking for u_char" >&5
+echo "configure:1772: checking for u_char" >&5
if eval "test \"`echo '$''{'ac_cv_type_u_char'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1782 "configure"
+#line 1777 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1806,12 +1801,12 @@ EOF
fi
echo $ac_n "checking for u_int""... $ac_c" 1>&6
-echo "configure:1810: checking for u_int" >&5
+echo "configure:1805: checking for u_int" >&5
if eval "test \"`echo '$''{'ac_cv_type_u_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1815 "configure"
+#line 1810 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1839,12 +1834,12 @@ EOF
fi
echo $ac_n "checking for u_long""... $ac_c" 1>&6
-echo "configure:1843: checking for u_long" >&5
+echo "configure:1838: checking for u_long" >&5
if eval "test \"`echo '$''{'ac_cv_type_u_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1848 "configure"
+#line 1843 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -1872,103 +1867,8 @@ EOF
fi
-echo $ac_n "checking for scsireq_enter in -lscsi""... $ac_c" 1>&6
-echo "configure:1877: checking for scsireq_enter in -lscsi" >&5
-ac_lib_var=`echo scsi'_'scsireq_enter | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lscsi $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1885 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char scsireq_enter();
-
-int main() {
-scsireq_enter()
-; return 0; }
-EOF
-if { (eval echo configure:1896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo scsi | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lscsi $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
- # FreeBSD needs this
-echo $ac_n "checking for cam_open_device in -lcam""... $ac_c" 1>&6
-echo "configure:1924: checking for cam_open_device in -lcam" >&5
-ac_lib_var=`echo cam'_'cam_open_device | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lcam $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1932 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char cam_open_device();
-
-int main() {
-cam_open_device()
-; return 0; }
-EOF
-if { (eval echo configure:1943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo cam | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lcam $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
- # FreeBSD 3+ needs this
-
echo $ac_n "checking for sqrt in -lm""... $ac_c" 1>&6
-echo "configure:1972: checking for sqrt in -lm" >&5
+echo "configure:1872: checking for sqrt in -lm" >&5
ac_lib_var=`echo m'_'sqrt | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1976,7 +1876,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1980 "configure"
+#line 1880 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1987,7 +1887,7 @@ int main() {
sqrt()
; return 0; }
EOF
-if { (eval echo configure:1991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2015,7 +1915,7 @@ else
fi
echo $ac_n "checking for deflateInit_ in -lz""... $ac_c" 1>&6
-echo "configure:2019: checking for deflateInit_ in -lz" >&5
+echo "configure:1919: checking for deflateInit_ in -lz" >&5
ac_lib_var=`echo z'_'deflateInit_ | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2023,7 +1923,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lz $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2027 "configure"
+#line 1927 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2034,7 +1934,7 @@ int main() {
deflateInit_()
; return 0; }
EOF
-if { (eval echo configure:2038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2064,7 +1964,7 @@ fi
if test "${USE_JPEG}" = "yes"; then
echo $ac_n "checking for jpeg_start_decompress in -ljpeg""... $ac_c" 1>&6
-echo "configure:2068: checking for jpeg_start_decompress in -ljpeg" >&5
+echo "configure:1968: checking for jpeg_start_decompress in -ljpeg" >&5
ac_lib_var=`echo jpeg'_'jpeg_start_decompress | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2072,7 +1972,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ljpeg $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2076 "configure"
+#line 1976 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2083,7 +1983,7 @@ int main() {
jpeg_start_decompress()
; return 0; }
EOF
-if { (eval echo configure:2087: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2115,7 +2015,7 @@ fi
# tiff test must stand after test for zlib
if test "${USE_TIFF}" = "yes"; then
echo $ac_n "checking for TIFFOpen in -ltiff""... $ac_c" 1>&6
-echo "configure:2119: checking for TIFFOpen in -ltiff" >&5
+echo "configure:2019: checking for TIFFOpen in -ltiff" >&5
ac_lib_var=`echo tiff'_'TIFFOpen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2123,7 +2023,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ltiff $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2127 "configure"
+#line 2027 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2134,7 +2034,7 @@ int main() {
TIFFOpen()
; return 0; }
EOF
-if { (eval echo configure:2138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2166,19 +2066,19 @@ fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:2170: checking for working alloca.h" >&5
+echo "configure:2070: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2175 "configure"
+#line 2075 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:2182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -2199,12 +2099,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:2203: checking for alloca" >&5
+echo "configure:2103: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2208 "configure"
+#line 2108 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -2232,7 +2132,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:2236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2136: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -2264,12 +2164,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:2268: checking whether alloca needs Cray hooks" >&5
+echo "configure:2168: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2273 "configure"
+#line 2173 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -2294,12 +2194,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2298: checking for $ac_func" >&5
+echo "configure:2198: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2303 "configure"
+#line 2203 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2322,7 +2222,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2326: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2349,7 +2249,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:2353: checking stack direction for C alloca" >&5
+echo "configure:2253: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2357,7 +2257,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 2361 "configure"
+#line 2261 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -2376,7 +2276,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:2380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -2403,17 +2303,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2407: checking for $ac_hdr" >&5
+echo "configure:2307: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2412 "configure"
+#line 2312 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2417: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2317: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2442,12 +2342,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2446: checking for $ac_func" >&5
+echo "configure:2346: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2451 "configure"
+#line 2351 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2470,7 +2370,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2495,7 +2395,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:2499: checking for working mmap" >&5
+echo "configure:2399: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2503,7 +2403,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 2507 "configure"
+#line 2407 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -2643,7 +2543,7 @@ main()
}
EOF
-if { (eval echo configure:2647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -2665,15 +2565,15 @@ EOF
fi
-for ac_func in atexit mkdir sigprocmask strdup strndup strftime strstr strsep strtod snprintf usleep strcasecmp strncasecmp
+for ac_func in atexit mkdir sigprocmask strdup strndup strftime strstr strsep strtod snprintf usleep strcasecmp strncasecmp lstat
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2672: checking for $ac_func" >&5
+echo "configure:2572: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2677 "configure"
+#line 2577 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2696,7 +2596,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2721,292 +2621,10 @@ fi
done
-for ac_hdr in dlfcn.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2729: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2734 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2739: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:2760: checking for dlopen in -ldl" >&5
-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2768 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dlopen();
-
-int main() {
-dlopen()
-; return 0; }
-EOF
-if { (eval echo configure:2779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo dl | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-ldl $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
- for ac_func in dlopen
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2808: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2813 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- enable_dynamic=yes
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-for ac_hdr in dl.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2870: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2875 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2880: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:2901: checking for shl_load in -ldld" >&5
-ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldld $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2909 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char shl_load();
-
-int main() {
-shl_load()
-; return 0; }
-EOF
-if { (eval echo configure:2920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo dld | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-ldld $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
- for ac_func in shl_load
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2949: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2954 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- enable_dynamic=yes
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3010: checking for $ac_word" >&5
+echo "configure:2628: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3034,12 +2652,12 @@ else
fi
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3038: checking for off_t" >&5
+echo "configure:2656: checking for off_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3043 "configure"
+#line 2661 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3072,17 +2690,17 @@ unistd.h values.h sys/param.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3076: checking for $ac_hdr" >&5
+echo "configure:2694: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3081 "configure"
+#line 2699 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3086: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2704: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3112,12 +2730,12 @@ done
__argz_count __argz_stringify __argz_next
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3116: checking for $ac_func" >&5
+echo "configure:2734: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3121 "configure"
+#line 2739 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3140,7 +2758,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2762: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3169,12 +2787,12 @@ done
for ac_func in stpcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3173: checking for $ac_func" >&5
+echo "configure:2791: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3178 "configure"
+#line 2796 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3197,7 +2815,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3231,19 +2849,19 @@ EOF
if test $ac_cv_header_locale_h = yes; then
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:3235: checking for LC_MESSAGES" >&5
+echo "configure:2853: checking for LC_MESSAGES" >&5
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3240 "configure"
+#line 2858 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
-if { (eval echo configure:3247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_val_LC_MESSAGES=yes
else
@@ -3264,7 +2882,7 @@ EOF
fi
fi
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:3268: checking whether NLS is requested" >&5
+echo "configure:2886: checking whether NLS is requested" >&5
# Check whether --enable-nls or --disable-nls was given.
if test "${enable_nls+set}" = set; then
enableval="$enable_nls"
@@ -3284,7 +2902,7 @@ fi
EOF
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:3288: checking whether included gettext is requested" >&5
+echo "configure:2906: checking whether included gettext is requested" >&5
# Check whether --with-included-gettext or --without-included-gettext was given.
if test "${with_included_gettext+set}" = set; then
withval="$with_included_gettext"
@@ -3303,17 +2921,17 @@ fi
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:3307: checking for libintl.h" >&5
+echo "configure:2925: checking for libintl.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3312 "configure"
+#line 2930 "configure"
#include "confdefs.h"
#include <libintl.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3317: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3330,19 +2948,19 @@ fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
-echo "configure:3334: checking for gettext in libc" >&5
+echo "configure:2952: checking for gettext in libc" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3339 "configure"
+#line 2957 "configure"
#include "confdefs.h"
#include <libintl.h>
int main() {
return (int) gettext ("")
; return 0; }
EOF
-if { (eval echo configure:3346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libc=yes
else
@@ -3358,7 +2976,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
if test "$gt_cv_func_gettext_libc" != "yes"; then
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
-echo "configure:3362: checking for bindtextdomain in -lintl" >&5
+echo "configure:2980: checking for bindtextdomain in -lintl" >&5
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3366,7 +2984,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3370 "configure"
+#line 2988 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3377,7 +2995,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
-if { (eval echo configure:3381: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3393,19 +3011,19 @@ fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
-echo "configure:3397: checking for gettext in libintl" >&5
+echo "configure:3015: checking for gettext in libintl" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3402 "configure"
+#line 3020 "configure"
#include "confdefs.h"
int main() {
return (int) gettext ("")
; return 0; }
EOF
-if { (eval echo configure:3409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libintl=yes
else
@@ -3433,7 +3051,7 @@ EOF
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3437: checking for $ac_word" >&5
+echo "configure:3055: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3467,12 +3085,12 @@ fi
for ac_func in dcgettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3471: checking for $ac_func" >&5
+echo "configure:3089: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3476 "configure"
+#line 3094 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3495,7 +3113,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -3522,7 +3140,7 @@ done
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3526: checking for $ac_word" >&5
+echo "configure:3144: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3558,7 +3176,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3562: checking for $ac_word" >&5
+echo "configure:3180: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3590,7 +3208,7 @@ else
fi
cat > conftest.$ac_ext <<EOF
-#line 3594 "configure"
+#line 3212 "configure"
#include "confdefs.h"
int main() {
@@ -3598,7 +3216,7 @@ extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr
; return 0; }
EOF
-if { (eval echo configure:3602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
CATOBJEXT=.gmo
DATADIRNAME=share
@@ -3621,7 +3239,7 @@ fi
if test "$CATOBJEXT" = "NONE"; then
echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6
-echo "configure:3625: checking whether catgets can be used" >&5
+echo "configure:3243: checking whether catgets can be used" >&5
# Check whether --with-catgets or --without-catgets was given.
if test "${with_catgets+set}" = set; then
withval="$with_catgets"
@@ -3634,7 +3252,7 @@ fi
if test "$nls_cv_use_catgets" = "yes"; then
echo $ac_n "checking for main in -li""... $ac_c" 1>&6
-echo "configure:3638: checking for main in -li" >&5
+echo "configure:3256: checking for main in -li" >&5
ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3642,14 +3260,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-li $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3646 "configure"
+#line 3264 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:3653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3677,12 +3295,12 @@ else
fi
echo $ac_n "checking for catgets""... $ac_c" 1>&6
-echo "configure:3681: checking for catgets" >&5
+echo "configure:3299: checking for catgets" >&5
if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3686 "configure"
+#line 3304 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char catgets(); below. */
@@ -3705,7 +3323,7 @@ catgets();
; return 0; }
EOF
-if { (eval echo configure:3709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_catgets=yes"
else
@@ -3727,7 +3345,7 @@ EOF
# Extract the first word of "gencat", so it can be a program name with args.
set dummy gencat; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3731: checking for $ac_word" >&5
+echo "configure:3349: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3763,7 +3381,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3767: checking for $ac_word" >&5
+echo "configure:3385: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3800,7 +3418,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3804: checking for $ac_word" >&5
+echo "configure:3422: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3835,7 +3453,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3839: checking for $ac_word" >&5
+echo "configure:3457: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3893,7 +3511,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3897: checking for $ac_word" >&5
+echo "configure:3515: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3927,7 +3545,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3931: checking for $ac_word" >&5
+echo "configure:3549: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3963,7 +3581,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3967: checking for $ac_word" >&5
+echo "configure:3585: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4053,7 +3671,7 @@ fi
LINGUAS=
else
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:4057: checking for catalogs to be installed" >&5
+echo "configure:3675: checking for catalogs to be installed" >&5
NEW_LINGUAS=
for lang in ${LINGUAS=$ALL_LINGUAS}; do
case "$ALL_LINGUAS" in
@@ -4081,17 +3699,17 @@ echo "configure:4057: checking for catalogs to be installed" >&5
if test "$CATOBJEXT" = ".cat"; then
ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
-echo "configure:4085: checking for linux/version.h" >&5
+echo "configure:3703: checking for linux/version.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4090 "configure"
+#line 3708 "configure"
#include "confdefs.h"
#include <linux/version.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4095: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3713: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4149,249 +3767,247 @@ fi
-#### Choose a window system.
+ # Check whether --with-sane-prefix or --without-sane-prefix was given.
+if test "${with_sane_prefix+set}" = set; then
+ withval="$with_sane_prefix"
+ sane_config_prefix="$withval"
+else
+ sane_config_prefix=""
+fi
-# If we find X, set shell vars x_includes and x_libraries to the
-# paths, otherwise set no_x=yes.
-# Uses ac_ vars as temps to allow command line to override cache and checks.
-# --without-x overrides everything else, but does not touch the cache.
-echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:4160: checking for X" >&5
+ # Check whether --with-sane-exec-prefix or --without-sane-exec-prefix was given.
+if test "${with_sane_exec_prefix+set}" = set; then
+ withval="$with_sane_exec_prefix"
+ sane_config_exec_prefix="$withval"
+else
+ sane_config_exec_prefix=""
+fi
-# Check whether --with-x or --without-x was given.
-if test "${with_x+set}" = set; then
- withval="$with_x"
+ # Check whether --enable-sanetest or --disable-sanetest was given.
+if test "${enable_sanetest+set}" = set; then
+ enableval="$enable_sanetest"
:
+else
+ enable_sanetest=yes
fi
-# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
-if test "x$with_x" = xno; then
- # The user explicitly disabled X.
- have_x=disabled
-else
- if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
- # Both variables are already set.
- have_x=yes
- else
-if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then
+
+ if test x$sane_config_exec_prefix != x ; then
+ sane_config_args="$sane_config_args --exec-prefix=$sane_config_exec_prefix"
+ if test x${SANE_CONFIG+set} != xset ; then
+ SANE_CONFIG=$sane_config_exec_prefix/bin/sane-config
+ fi
+ fi
+ if test x$sane_config_prefix != x ; then
+ sane_config_args="$sane_config_args --prefix=$sane_config_prefix"
+ if test x${SANE_CONFIG+set} != xset ; then
+ SANE_CONFIG=$sane_config_prefix/bin/sane-config
+ fi
+ fi
+
+ # Extract the first word of "sane-config", so it can be a program name with args.
+set dummy sane-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3812: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_SANE_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
- # One or both of the vars are not set, and there is no cached value.
-ac_x_includes=NO ac_x_libraries=NO
-rm -fr conftestdir
-if mkdir conftestdir; then
- cd conftestdir
- # Make sure to not put "make" in the Imakefile rules, since we grep it out.
- cat > Imakefile <<'EOF'
-acfindx:
- @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
-EOF
- if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
- # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
- eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
- # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
- for ac_extension in a so sl; do
- if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
- test -f $ac_im_libdir/libX11.$ac_extension; then
- ac_im_usrlibdir=$ac_im_libdir; break
- fi
- done
- # Screen out bogus values from the imake configuration. They are
- # bogus both because they are the default anyway, and because
- # using them would break gcc on systems where it needs fixed includes.
- case "$ac_im_incroot" in
- /usr/include) ;;
- *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;;
- esac
- case "$ac_im_usrlibdir" in
- /usr/lib | /lib) ;;
- *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;;
- esac
- fi
- cd ..
- rm -fr conftestdir
+ case "$SANE_CONFIG" in
+ /*)
+ ac_cv_path_SANE_CONFIG="$SANE_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_SANE_CONFIG="$SANE_CONFIG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_SANE_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_SANE_CONFIG" && ac_cv_path_SANE_CONFIG="no"
+ ;;
+esac
+fi
+SANE_CONFIG="$ac_cv_path_SANE_CONFIG"
+if test -n "$SANE_CONFIG"; then
+ echo "$ac_t""$SANE_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
fi
-if test "$ac_x_includes" = NO; then
- # Guess where to find include files, by looking for this one X11 .h file.
- test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
-
- # First, try using that file with no special directory specified.
-cat > conftest.$ac_ext <<EOF
-#line 4222 "configure"
+ min_sane_version=1.0.0
+ echo $ac_n "checking for SANE - version >= $min_sane_version""... $ac_c" 1>&6
+echo "configure:3847: checking for SANE - version >= $min_sane_version" >&5
+ no_sane=""
+ if test "$SANE_CONFIG" = "no" ; then
+ no_sane=yes
+ else
+ SANE_CFLAGS=`$SANE_CONFIG $sane_config_args --cflags`
+ SANE_LDFLAGS=`$SANE_CONFIG $sane_config_args --ldflags`
+# SANE_LIBS=`$SANE_CONFIG $sane_config_args --libs`
+ SANE_LIBS=`$SANE_CONFIG $sane_config_args --libs | sed -e 's/-lintl//g'`
+ SANE_PREFIX=`$SANE_CONFIG $sane_config_args --prefix`
+ sane_config_major_version=`$SANE_CONFIG $sane_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ sane_config_minor_version=`$SANE_CONFIG $sane_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ sane_config_micro_version=`$SANE_CONFIG $sane_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+ if test "x$enable_sanetest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LDFLAGS="$LDFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $SANE_CFLAGS"
+ LDFLAGS="$LDFLAGS $SANE_LDFLAGS"
+ LIBS="$LIBS $SANE_LIBS"
+ rm -f conf.sanetest
+ if test "$cross_compiling" = yes; then
+ echo $ac_n "cross compiling; assumed OK... $ac_c"
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3875 "configure"
#include "confdefs.h"
-#include <$x_direct_test_include>
+
+#include <sane/sane.h>
+#include <stdio.h>
+
+int
+main ()
+{
+ int major, minor, micro;
+
+ system ("touch conf.sanetest");
+
+ if (sscanf("$min_sane_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_sane_version");
+ exit(1);
+ }
+
+ if ( ($sane_config_major_version == major) &&
+ ( ($sane_config_minor_version > minor) ||
+ ( ($sane_config_minor_version == minor) && ($sane_config_micro_version >= micro))))
+ {
+ return 0;
+ }
+ else if ($sane_config_major_version > major)
+ {
+ printf("\n*** A too new version of SANE (%d.%d.%d) was found.\n",
+ $sane_config_major_version, $sane_config_minor_version, $sane_config_micro_version);
+ printf("*** You need a version of SANE with the major version number %d.\n", major);
+ }
+ else
+ {
+ printf("\n*** An old version of SANE (%d.%d.%d) was found.\n",
+ $sane_config_major_version, $sane_config_minor_version, $sane_config_micro_version);
+ printf("*** You need a version of SANE newer than %d.%d.%d. The latest version of\n",
+ major, minor, micro);
+ }
+
+ printf("*** SANE is always available from ftp://ftp.mostang.com\n");
+ printf("***\n");
+ printf("*** If you have already installed a sufficient version, this error\n");
+ printf("*** probably means that the wrong copy of the sane-config shell script is\n");
+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
+ printf("*** of SANE, but you can also set the SANE_CONFIG environment to point to the\n");
+ printf("*** correct copy of sane-config. (In this case, you will have to\n");
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+ printf("*** so that the correct libraries are found at run-time))\n");
+
+ return 1;
+}
+
EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4227: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- # We can compile using X headers with no special include directory.
-ac_x_includes=
+if { (eval echo configure:3927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
else
- echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
- rm -rf conftest*
- # Look for the header file in a standard set of common directories.
-# Check X11 before X11Rn because it is often a symlink to the current release.
- for ac_dir in \
- /usr/X11/include \
- /usr/X11R6/include \
- /usr/X11R5/include \
- /usr/X11R4/include \
- \
- /usr/include/X11 \
- /usr/include/X11R6 \
- /usr/include/X11R5 \
- /usr/include/X11R4 \
- \
- /usr/local/X11/include \
- /usr/local/X11R6/include \
- /usr/local/X11R5/include \
- /usr/local/X11R4/include \
- \
- /usr/local/include/X11 \
- /usr/local/include/X11R6 \
- /usr/local/include/X11R5 \
- /usr/local/include/X11R4 \
- \
- /usr/X386/include \
- /usr/x386/include \
- /usr/XFree86/include/X11 \
- \
- /usr/include \
- /usr/local/include \
- /usr/unsupported/include \
- /usr/athena/include \
- /usr/local/x11r5/include \
- /usr/lpp/Xamples/include \
- \
- /usr/openwin/include \
- /usr/openwin/share/include \
- ; \
- do
- if test -r "$ac_dir/$x_direct_test_include"; then
- ac_x_includes=$ac_dir
- break
- fi
- done
+ rm -fr conftest*
+ no_sane=yes
+fi
+rm -fr conftest*
fi
-rm -f conftest*
-fi # $ac_x_includes = NO
-
-if test "$ac_x_libraries" = NO; then
- # Check for the libraries.
-
- test -z "$x_direct_test_library" && x_direct_test_library=Xt
- test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
- # See if we find them without any special options.
- # Don't add to $LIBS permanently.
- ac_save_LIBS="$LIBS"
- LIBS="-l$x_direct_test_library $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4296 "configure"
+ CFLAGS="$ac_save_CFLAGS"
+ LDFLAGS="$ac_save_LDFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_sane" = x ; then
+ echo "$ac_t""yes" 1>&6
+ HAVE_SANE=yes
+ else
+ echo "$ac_t""no" 1>&6
+ if test "$SANE_CONFIG" = "no" ; then
+ echo "*** The sane-config script installed by SANE could not be found"
+ echo "*** If SANE was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the SANE_CONFIG environment variable to the"
+ echo "*** full path to sane-config."
+ else
+ if test -f conf.sanetest ; then
+ :
+ else
+ echo "*** Could not run SANE test program, checking why..."
+ CFLAGS="$CFLAGS $SANE_CFLAGS"
+ LIBS="$LIBS $SANE_LIBS"
+ LDFLAGS="$LDFLAGS $SANE_LDFLAGS"
+ cat > conftest.$ac_ext <<EOF
+#line 3963 "configure"
#include "confdefs.h"
+#include <sane/sane.h>
+#include <stdio.h>
+
int main() {
-${x_direct_test_function}()
+ return (SANE_CURRENT_MAJOR);
; return 0; }
EOF
-if { (eval echo configure:4303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
- LIBS="$ac_save_LIBS"
-# We can link X programs with no special library path.
-ac_x_libraries=
+ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding SANE or finding the wrong"
+ echo "*** version of SANE. If it is not finding SANE, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+ echo "***"
+ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means SANE was incorrectly installed"
+ echo "*** or that you have moved SANE since it was installed. In the latter case, you"
+ echo "*** may want to edit the sane-config script: $SANE_CONFIG"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
- rm -rf conftest*
- LIBS="$ac_save_LIBS"
-# First see if replacing the include by lib works.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \
- /usr/X11/lib \
- /usr/X11R6/lib \
- /usr/X11R5/lib \
- /usr/X11R4/lib \
- \
- /usr/lib/X11 \
- /usr/lib/X11R6 \
- /usr/lib/X11R5 \
- /usr/lib/X11R4 \
- \
- /usr/local/X11/lib \
- /usr/local/X11R6/lib \
- /usr/local/X11R5/lib \
- /usr/local/X11R4/lib \
- \
- /usr/local/lib/X11 \
- /usr/local/lib/X11R6 \
- /usr/local/lib/X11R5 \
- /usr/local/lib/X11R4 \
- \
- /usr/X386/lib \
- /usr/x386/lib \
- /usr/XFree86/lib/X11 \
- \
- /usr/lib \
- /usr/local/lib \
- /usr/unsupported/lib \
- /usr/athena/lib \
- /usr/local/x11r5/lib \
- /usr/lpp/Xamples/lib \
- /lib/usr/lib/X11 \
- \
- /usr/openwin/lib \
- /usr/openwin/share/lib \
- ; \
-do
- for ac_extension in a so sl; do
- if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
- ac_x_libraries=$ac_dir
- break 2
- fi
- done
-done
fi
rm -f conftest*
-fi # $ac_x_libraries = NO
-
-if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then
- # Didn't find X anywhere. Cache the known absence of X.
- ac_cv_have_x="have_x=no"
-else
- # Record where we found X for the cache.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
-fi
-fi
+ CFLAGS="$ac_save_CFLAGS"
+ LDFLAGS="$ac_save_LDFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ SANE_CFLAGS=""
+ SANE_LDFLAGS=""
+ SANE_LIBS=""
+ :
fi
- eval "$ac_cv_have_x"
-fi # $with_x != no
-
-if test "$have_x" != yes; then
- echo "$ac_t""$have_x" 1>&6
- no_x=yes
-else
- # If each of the values was on the command line, it overrides each guess.
- test "x$x_includes" = xNONE && x_includes=$ac_x_includes
- test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
- # Update the cache value to reflect the command line values.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
- echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6
-fi
+
+
+
+
+ rm -f conf.sanetest
-if test "$no_x" = yes; then
- window_system=none
-else
- window_system=x11
-fi
-# Check whether --with-gtk-prefix or --without-gtk-prefix was given.
+ # Check whether --with-gtk-prefix or --without-gtk-prefix was given.
if test "${with_gtk_prefix+set}" = set; then
withval="$with_gtk_prefix"
gtk_config_prefix="$withval"
@@ -4399,7 +4015,7 @@ else
gtk_config_prefix=""
fi
-# Check whether --with-gtk-exec-prefix or --without-gtk-exec-prefix was given.
+ # Check whether --with-gtk-exec-prefix or --without-gtk-exec-prefix was given.
if test "${with_gtk_exec_prefix+set}" = set; then
withval="$with_gtk_exec_prefix"
gtk_config_exec_prefix="$withval"
@@ -4407,7 +4023,7 @@ else
gtk_config_exec_prefix=""
fi
-# Check whether --enable-gtktest or --disable-gtktest was given.
+ # Check whether --enable-gtktest or --disable-gtktest was given.
if test "${enable_gtktest+set}" = set; then
enableval="$enable_gtktest"
:
@@ -4432,7 +4048,7 @@ fi
# Extract the first word of "gtk-config", so it can be a program name with args.
set dummy gtk-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4436: checking for $ac_word" >&5
+echo "configure:4052: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4467,7 +4083,7 @@ fi
min_gtk_version=1.2.0
echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6
-echo "configure:4471: checking for GTK - version >= $min_gtk_version" >&5
+echo "configure:4087: checking for GTK - version >= $min_gtk_version" >&5
no_gtk=""
if test "$GTK_CONFIG" = "no" ; then
no_gtk=yes
@@ -4490,7 +4106,7 @@ echo "configure:4471: checking for GTK - version >= $min_gtk_version" >&5
echo $ac_n "cross compiling; assumed OK... $ac_c"
else
cat > conftest.$ac_ext <<EOF
-#line 4494 "configure"
+#line 4110 "configure"
#include "confdefs.h"
#include <gtk/gtk.h>
@@ -4553,7 +4169,7 @@ main ()
}
EOF
-if { (eval echo configure:4557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -4587,7 +4203,7 @@ fi
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4591 "configure"
+#line 4207 "configure"
#include "confdefs.h"
#include <gtk/gtk.h>
@@ -4597,7 +4213,7 @@ int main() {
return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version));
; return 0; }
EOF
-if { (eval echo configure:4601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding GTK or finding the wrong"
@@ -4636,32 +4252,160 @@ rm -f conftest*
rm -f conf.gtktest
-# Change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
-# for the tests that follow. We set it back to REAL_CFLAGS later on.
+if test "${USE_GIMP}" = "yes"; then
+ # Check whether --with-gimp-prefix or --without-gimp-prefix was given.
+if test "${with_gimp_prefix+set}" = set; then
+ withval="$with_gimp_prefix"
+ gimp_config_prefix="$withval"
+else
+ gimp_config_prefix=""
+fi
-# According to Owen Taylor, GTK_CFLAGS is _guaranteed_ to contain
-# -D and -I flags only, i.e., it really is GTK_CPPFLAGS...
-saved_CPPFLAGS="${CPPFLAGS}"
-saved_LIBS="${LIBS}"
-CPPFLAGS="${CPPFLAGS} ${GTK_CFLAGS}"
-LIBS="${LIBS} ${GTK_LIBS}"
+ # Check whether --with-gimp-exec-prefix or --without-gimp-exec-prefix was given.
+if test "${with_gimp_exec_prefix+set}" = set; then
+ withval="$with_gimp_exec_prefix"
+ gimp_config_exec_prefix="$withval"
+else
+ gimp_config_exec_prefix=""
+fi
-if test "${USE_GIMP}" = "yes"; then
- for ac_hdr in libgimp/gimp.h
+ # Check whether --enable-gimptest or --disable-gimptest was given.
+if test "${enable_gimptest+set}" = set; then
+ enableval="$enable_gimptest"
+ :
+else
+ enable_gimptest=yes
+fi
+
+
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_LIBS="$LIBS"
+ ac_save_GTK_CFLAGS="$GTK_CFLAGS"
+ ac_save_GTK_LIBS="$GTK_LIBS"
+
+ if test x$gimp_config_exec_prefix != x ; then
+ gimp_config_args="$gimp_config_args --exec-prefix=$gimp_config_exec_prefix"
+ if test x${GIMP_CONFIG+set} != xset ; then
+ GIMP_CONFIG=$gimp_config_exec_prefix/bin/gimp-config
+ fi
+ fi
+
+ if test x$gimp_config_prefix != x ; then
+ gimp_config_args="$gimp_config_args --prefix=$gimp_config_prefix"
+ if test x${GIMP_CONFIG+set} != xset ; then
+ GIMP_CONFIG=$gimp_config_prefix/bin/gimp-config
+ fi
+ fi
+
+ # Extract the first word of "gimp-config", so it can be a program name with args.
+set dummy gimp-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4304: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GIMP_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GIMP_CONFIG" in
+ /*)
+ ac_cv_path_GIMP_CONFIG="$GIMP_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GIMP_CONFIG="$GIMP_CONFIG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GIMP_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GIMP_CONFIG" && ac_cv_path_GIMP_CONFIG="no"
+ ;;
+esac
+fi
+GIMP_CONFIG="$ac_cv_path_GIMP_CONFIG"
+if test -n "$GIMP_CONFIG"; then
+ echo "$ac_t""$GIMP_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ if test "$GIMP_CONFIG" = "no" ; then
+ if test x$gimp_config_exec_prefix != x ; then
+ gimp_config_args="$gimp_config_args --exec-prefix=$gimp_config_exec_prefix"
+ if test x${GIMP_TOOL+set} != xset ; then
+ GIMP_TOOL=$gimp_config_exec_prefix/bin/gimptool
+ fi
+ fi
+ if test x$gimp_config_prefix != x ; then
+ gimp_config_args="$gimp_config_args --prefix=$gimp_config_prefix"
+ if test x${GIMP_TOOL+set} != xset ; then
+ GIMP_TOOL=$gimp_config_prefix/bin/gimptool
+ fi
+ fi
+ # Extract the first word of "gimptool", so it can be a program name with args.
+set dummy gimptool; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4353: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GIMP_TOOL'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$GIMP_TOOL" in
+ /*)
+ ac_cv_path_GIMP_TOOL="$GIMP_TOOL" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_GIMP_TOOL="$GIMP_TOOL" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_GIMP_TOOL="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_GIMP_TOOL" && ac_cv_path_GIMP_TOOL="no"
+ ;;
+esac
+fi
+GIMP_TOOL="$ac_cv_path_GIMP_TOOL"
+if test -n "$GIMP_TOOL"; then
+ echo "$ac_t""$GIMP_TOOL" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ GIMP_CONFIG=$GIMP_TOOL
+ fi
+
+ min_gimp_version=1.0.0
+ no_gimp=""
+
+ if test "$GIMP_CONFIG" = "no" ; then
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="${CPPFLAGS} ${GTK_CFLAGS}"
+ for ac_hdr in libgimp/gimp.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4655: checking for $ac_hdr" >&5
+echo "configure:4399: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4660 "configure"
+#line 4404 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4665: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4409: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4684,24 +4428,25 @@ EOF
GIMP_LIBS="-lgimp"
else
echo "$ac_t""no" 1>&6
+no_gimp=yes
fi
done
- for ac_hdr in libgimp/gimpfeatures.h
+ for ac_hdr in libgimp/gimpfeatures.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4695: checking for $ac_hdr" >&5
+echo "configure:4440: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4700 "configure"
+#line 4445 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4705: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4450: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4727,35 +4472,159 @@ else
fi
done
-fi
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ CFLAGS="${CFLAGS} ${GTK_CFLAGS}"
+ LIBS="${LIBS} ${GTK_LIBS} ${GIMP_LIBS}"
+ if test "x$no_gimp" = x ; then
+ echo $ac_n "checking GIMP compilation""... $ac_c" 1>&6
+echo "configure:4481: checking GIMP compilation" >&5
+ gimp_config_major_version=-1
+ gimp_config_minor_version=0
+ gimp_config_micro_version=0
+ fi
+ else
+ GTK_CFLAGS=""
+ GTK_LIBS=""
+ GIMP_CFLAGS=`$GIMP_CONFIG $gimp_config_args --cflags`
+ GIMP_LIBS=`$GIMP_CONFIG $gimp_config_args --libs`" -lgimp"
+ gimp_config_major_version=`$GIMP_CONFIG $gimp_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ gimp_config_minor_version=`$GIMP_CONFIG $gimp_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ gimp_config_micro_version=`$GIMP_CONFIG $gimp_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+ CFLAGS="${CFLAGS} ${GIMP_CFLAGS}"
+ LIBS="${LIBS} ${GIMP_LIBS}"
+ echo $ac_n "checking for GIMP - version >= $min_gimp_version""... $ac_c" 1>&6
+echo "configure:4500: checking for GIMP - version >= $min_gimp_version" >&5
+ fi
-LIBS="${saved_LIBS}"
-CPPFLAGS="${saved_CPPFLAGS}"
+ if test "x$no_gimp" = x ; then
+ if test "x$enable_gimptest" = "xyes" ; then
+ rm -f conf.gimptest
+ if test "$cross_compiling" = yes; then
+ echo $ac_n "cross compiling; assumed OK... $ac_c"
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4510 "configure"
+#include "confdefs.h"
+#include <libgimp/gimp.h>
+#include <stdio.h>
-# png test must stand after test for zlib
-# png test must stand behind X11-check because it is located in
-# the X11 directory on some systems
-# so we have to use x_includes and x_libraries to test for png
-# and all following checks (=sane)
-# saved_CPPFLAGS is still up to date
-CPPFLAGS="${CPPFLAGS} -I${x_includes}"
-if test "${USE_PNG}" = "yes"; then
- for ac_hdr in png.h
+#define GIMP_TEST_CHECK_VERSION(major, minor, micro) \
+ ($gimp_config_major_version > (major) || \
+ ($gimp_config_major_version == (major) && $gimp_config_minor_version > (minor)) || \
+ ($gimp_config_major_version == (major) && $gimp_config_minor_version == (minor) && \
+ $gimp_config_micro_version >= (micro)))
+
+#if !GIMP_TEST_CHECK_VERSION(1,1,25)
+# define GimpPlugInInfo GPlugInInfo /* do test with gimp interface version 1.0 */
+#endif
+
+GimpPlugInInfo PLUG_IN_INFO =
+{
+ NULL, NULL, NULL, NULL
+};
+
+
+int
+main ()
+{
+ int major, minor, micro;
+
+ system ("touch conf.gimptest");
+
+ if (sscanf("$min_gimp_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
+ printf("%s, bad version string\n", "$min_gimp_version");
+ exit(1);
+ }
+
+ if ( ($gimp_config_major_version != -1) &&
+ ((gimp_major_version != $gimp_config_major_version) ||
+ (gimp_minor_version != $gimp_config_minor_version) ||
+ (gimp_micro_version != $gimp_config_micro_version)) )
+ {
+ printf("\n*** 'gimp-config --version' returned %d.%d.%d, but GIMP (%d.%d.%d)\n",
+ $gimp_config_major_version, $gimp_config_minor_version, $gimp_config_micro_version,
+ gimp_major_version, gimp_minor_version, gimp_micro_version);
+ printf ("*** was found! If gimp-config was correct, then it is best\n");
+ printf ("*** to remove the old version of GIMP. You may also be able to fix the error\n");
+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+ printf("*** required on your system.\n");
+ printf("*** If gimp-config was wrong, set the environment variable GIMP_CONFIG\n");
+ printf("*** to point to the correct copy of gimp-config, and remove the file config.cache\n");
+ printf("*** before re-running configure\n");
+ }
+ else
+ {
+ if ((gimp_major_version > major) ||
+ ((gimp_major_version == major) && (gimp_minor_version > minor)) ||
+ ((gimp_major_version == major) && (gimp_minor_version == minor) && (gimp_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** An old version of GIMP (%d.%d.%d) was found.\n",
+ gimp_major_version, gimp_minor_version, gimp_micro_version);
+ printf("*** You need a version of GIMP newer than %d.%d.%d. The latest version of\n",
+ major, minor, micro);
+ printf("*** GIMP is always available from ftp://ftp.gimp.org.\n");
+ printf("***\n");
+ printf("*** If you have already installed a sufficiently new version, this error\n");
+ printf("*** probably means that the wrong copy of the gimp-config shell script is\n");
+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
+ printf("*** of GIMP, but you can also set the GIMP_CONFIG environment to point to the\n");
+ printf("*** correct copy of gimp-config. (In this case, you will have to\n");
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+ printf("*** so that the correct libraries are found at run-time))\n");
+ }
+ }
+ return 1;
+}
+
+EOF
+if { (eval echo configure:4590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ no_gimp=yes
+fi
+rm -fr conftest*
+fi
+
+ fi
+ fi
+
+ if test "x$no_gimp" = x ; then
+ if test "x$enable_gimptest" = "xyes" ; then
+ echo "$ac_t""yes" 1>&6
+ else
+ echo "$ac_t""not tested" 1>&6
+ fi
+ if test "$GIMP_CONFIG" != "no" ; then
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="${CPPFLAGS} ${GIMP_CFLAGS}"
+ for ac_hdr in libgimp/gimp.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4749: checking for $ac_hdr" >&5
+echo "configure:4618: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4754 "configure"
+#line 4623 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4759: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4628: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4775,86 +4644,27 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
cat >> confdefs.h <<EOF
#define $ac_tr_hdr 1
EOF
- echo $ac_n "checking for png_create_info_struct in -lpng""... $ac_c" 1>&6
-echo "configure:4780: checking for png_create_info_struct in -lpng" >&5
-ac_lib_var=`echo png'_'png_create_info_struct | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lpng -L${x_libraries} $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4788 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char png_create_info_struct();
-
-int main() {
-png_create_info_struct()
-; return 0; }
-EOF
-if { (eval echo configure:4799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo png | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lpng $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
+
else
echo "$ac_t""no" 1>&6
fi
done
- if test "${ac_cv_lib_png_png_create_info_struct}" = "yes"; then
-# remove libpng because if we do not remove it all following
-# checks could need x_libraries and x_includes
- LIBS=`echo $LIBS | sed -e 's/-lpng//'`
- PNG_LIB="-lpng"
- fi
-fi
-CPPFLAGS="${saved_CPPFLAGS}"
-
-# check for sane must stand after check for dl
-# check must stand at end of list because of the missing libintl in libsane.so
-# check needs x_libraries and x_includes because they may be needed by png
-if test "${ADD_LIBINTL}" = "no"; then
- for ac_hdr in sane/sane.h
+ for ac_hdr in libgimp/gimpfeatures.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4848: checking for $ac_hdr" >&5
+echo "configure:4658: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4853 "configure"
+#line 4663 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4858: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4668: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4874,74 +4684,108 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
cat >> confdefs.h <<EOF
#define $ac_tr_hdr 1
EOF
- echo $ac_n "checking for sane_init in -lsane""... $ac_c" 1>&6
-echo "configure:4879: checking for sane_init in -lsane" >&5
-ac_lib_var=`echo sane'_'sane_init | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
+
else
- ac_save_LIBS="$LIBS"
-LIBS="-lsane $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4887 "configure"
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ fi
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ HAVE_GIMP=yes
+ else
+ echo "$ac_t""no" 1>&6
+ if test -f conf.gimptest ; then
+ :
+ else
+ echo "*** Could not run GIMP test program, checking why..."
+ CFLAGS="$CFLAGS $GIMP_CFLAGS"
+ LIBS="$LIBS $GIMP_LIBS"
+ cat > conftest.$ac_ext <<EOF
+#line 4708 "configure"
#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char sane_init();
+
+#include <libgimp/gimp.h>
+#include <stdio.h>
+#define GIMP_TEST_CHECK_VERSION(major, minor, micro) \
+ ($gimp_config_major_version > (major) || \
+ ($gimp_config_major_version == (major) && $gimp_config_minor_version > (minor)) || \
+ ($gimp_config_major_version == (major) && $gimp_config_minor_version == (minor) && \
+ $gimp_config_micro_version >= (micro)))
+
+#if !GIMP_TEST_CHECK_VERSION(1,1,25)
+# define GimpPlugInInfo GPlugInInfo /* do test with gimp interface version 1.0 */
+#endif
+GimpPlugInInfo PLUG_IN_INFO = { NULL, NULL, NULL, NULL };
int main() {
-sane_init()
+ return ((gimp_major_version) || (gimp_minor_version) || (gimp_micro_version));
; return 0; }
EOF
-if { (eval echo configure:4898: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
+ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding GIMP or finding the wrong"
+ echo "*** version of GIMP. If it is not finding GIMP, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+ echo "***"
+ echo "***"
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
fi
rm -f conftest*
-LIBS="$ac_save_LIBS"
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ GIMP_CFLAGS=""
+ GIMP_LIBS=""
+ GTK_CFLAGS="$ac_save_GTK_CFLAGS"
+ GTK_LIBS="$ac_save_GTK_LIBS"
+ CFLAGS="${CFLAGS} ${GTK_CFLAGS}"
+ LIBS="${LIBS} ${GTK_LIBS} ${GIMP_LIBS}"
+ :
+ fi
+
+
+ rm -f conf.gimptest
fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo sane | sed -e 's/^a-zA-Z0-9_/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lsane $LIBS"
+
-else
- echo "$ac_t""no" 1>&6
-fi
+# png test must stand after test for zlib
+# png test must stand behind GTK-check (X-Window-check)
+# because png.h is located in the X11 directory on some systems
+# so we have to use GTK_CFLAGS and GTK_LIBS to test for png
+if test "${USE_PNG}" = "yes"; then
+ saved_CPPFLAGS="${CPPFLAGS}"
-else
- echo "$ac_t""no" 1>&6
-fi
-done
+ if test "x${HAVE_GTK}" != "x"; then
+ CPPFLAGS="${CPPFLAGS} ${GTK_CFLAGS}"
+ fi
-else
- for ac_hdr in sane/sane.h
+ for ac_hdr in png.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4935: checking for $ac_hdr" >&5
+echo "configure:4779: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4940 "configure"
+#line 4784 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4945: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4961,27 +4805,27 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
cat >> confdefs.h <<EOF
#define $ac_tr_hdr 1
EOF
- echo $ac_n "checking for sane_init in -lsane""... $ac_c" 1>&6
-echo "configure:4966: checking for sane_init in -lsane" >&5
-ac_lib_var=`echo sane'_'sane_init | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for png_create_info_struct in -lpng""... $ac_c" 1>&6
+echo "configure:4810: checking for png_create_info_struct in -lpng" >&5
+ac_lib_var=`echo png'_'png_create_info_struct | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
-LIBS="-lsane -lintl $LIBS"
+LIBS="-lpng ${GTK_LIBS} $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4974 "configure"
+#line 4818 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char sane_init();
+char png_create_info_struct();
int main() {
-sane_init()
+png_create_info_struct()
; return 0; }
EOF
-if { (eval echo configure:4985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4829: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4996,13 +4840,13 @@ LIBS="$ac_save_LIBS"
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo sane | sed -e 's/^a-zA-Z0-9_/_/g' \
+ ac_tr_lib=HAVE_LIB`echo png | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
cat >> confdefs.h <<EOF
#define $ac_tr_lib 1
EOF
- LIBS="-lsane $LIBS"
+ LIBS="-lpng $LIBS"
else
echo "$ac_t""no" 1>&6
@@ -5013,41 +4857,40 @@ else
fi
done
+ CPPFLAGS="${saved_CPPFLAGS}"
fi
-# this should be after all checks
-# add libpng again
-LIBS="${PNG_LIB} ${LIBS}"
-
CPPFLAGS="${CPPFLAGS} \
- -DPATH_SANE_DATA_DIR=\$(sanedatadir) \
-DV_MAJOR=${V_MAJOR} -DV_MINOR=${V_MINOR} -DSANE_V_MAJOR=${SANE_V_MAJOR}"
-if test "${ac_cv_lib_sane_sane_init}" != "yes"; then
+if test "x${HAVE_SANE}" = "x"; then
echo "****************************************************************"
- echo "ERROR: SANE is needed for compiling xsane"
+ echo "ERROR: SANE-1.0.0 or newer is needed for compiling xsane"
echo " - if you installed SANE as rpm make sure you also included"
echo " sane-devel"
- echo " - if SANE is installed, try ./configure -enable-intl-patch"
echo "****************************************************************"
- rm -f $cache_file
- exit -1
+ echo ""
+ echo "you may need to remove $cache_file before you run configure again"
+ echo ""
+ exit
fi
-if test "${HAVE_GTK}" = "no"; then
+if test "x${HAVE_GTK}" = "x"; then
echo "****************************************************************"
echo "ERROR: GTK-1.2.0 or newer is needed for compiling xsane"
echo " if you installed gtk as rpm make sure you also included"
echo " gtk-devel"
echo "****************************************************************"
- rm -f $cache_file
- exit -1
+ echo ""
+ echo "you may need to remove $cache_file before you run configure again"
+ echo ""
+ exit
fi
@@ -5171,7 +5014,7 @@ ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL"
trap 'rm -fr `echo "Makefile intl/Makefile po/Makefile lib/Makefile
- frontend/Makefile include/Makefile doc/Makefile include/sane/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+ src/Makefile include/Makefile doc/Makefile xsane.spec include/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
@@ -5238,12 +5081,20 @@ s%@GT_YES@%$GT_YES%g
s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g
s%@l@%$l%g
s%@INTLSUB@%$INTLSUB%g
+s%@SANE_CONFIG@%$SANE_CONFIG%g
+s%@SANE_LDFLAGS@%$SANE_LDFLAGS%g
+s%@SANE_CFLAGS@%$SANE_CFLAGS%g
+s%@SANE_LIBS@%$SANE_LIBS%g
+s%@SANE_PREFIX@%$SANE_PREFIX%g
s%@GTK_CONFIG@%$GTK_CONFIG%g
s%@GTK_CFLAGS@%$GTK_CFLAGS%g
s%@GTK_LIBS@%$GTK_LIBS%g
+s%@GIMP_CONFIG@%$GIMP_CONFIG%g
+s%@GIMP_TOOL@%$GIMP_TOOL%g
+s%@GIMP_CFLAGS@%$GIMP_CFLAGS%g
+s%@GIMP_LIBS@%$GIMP_LIBS%g
s%@INCLUDES@%$INCLUDES%g
s%@BINPROGS@%$BINPROGS%g
-s%@GIMP_LIBS@%$GIMP_LIBS%g
s%@V_MAJOR@%$V_MAJOR%g
s%@V_MINOR@%$V_MINOR%g
s%@DLL_PRELOAD@%$DLL_PRELOAD%g
@@ -5289,7 +5140,7 @@ EOF
cat >> $CONFIG_STATUS <<EOF
CONFIG_FILES=\${CONFIG_FILES-"Makefile intl/Makefile po/Makefile lib/Makefile
- frontend/Makefile include/Makefile doc/Makefile"}
+ src/Makefile include/Makefile doc/Makefile xsane.spec"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
@@ -5370,7 +5221,7 @@ ac_eD='%g'
if test "${CONFIG_HEADERS+set}" != set; then
EOF
cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="include/sane/config.h"
+ CONFIG_HEADERS="include/config.h"
EOF
cat >> $CONFIG_STATUS <<\EOF
fi
@@ -5557,9 +5408,7 @@ echo "****************************************************************"
echo "* *"
echo "* To compile XSANE: *"
echo "* ----------------- *"
-echo "* enter as normal user: *"
echo "* make *"
-echo "* and as root: *"
echo "* make install *"
echo "* *"
echo "* ------------------------------------------------------------ *"
diff --git a/configure.in b/configure.in
index c06eb0a..34ff577 100644
--- a/configure.in
+++ b/configure.in
@@ -1,19 +1,19 @@
dnl Process this file with autoconf to produce a configure script. -*-sh-*-
-AC_INIT(include/sane/config.h.in)
-AC_CONFIG_HEADER(include/sane/config.h)
+AC_INIT(include/config.h.in)
+AC_CONFIG_HEADER(include/config.h)
# AC_PREREQ(2.10)dnl dnl Minimum Autoconf version required.
# AC_ARG_PROGRAM
# version code:
V_MAJOR=0
-V_MINOR=50
+V_MINOR=84
PACKAGE=xsane
BINPROGS="xsane"
# languages
-ALL_LINGUAS="de fr cs"
+ALL_LINGUAS="cs de es fr nl ru sl sr sv it ja tr"
SANE_V_MAJOR=1
VERSION=${V_MAJOR}.${V_MINOR}
@@ -26,13 +26,8 @@ AC_SUBST(VERSION)
AC_SUBST(PACKAGE_VERSION)
AC_SUBST(SANE_MAJOR)
-dnl Check args
-dnl Check for intl patch selection
-AC_MSG_CHECKING([whether libintl patch is requested])
-dnl Default is disabled libintl patch
-AC_ARG_ENABLE(intl-patch, [ --enable-intl-patch add -lintl to check for sane], ADD_LIBINTL=$enableval, ADD_LIBINTL=no)
-AC_MSG_RESULT($ADD_LIBINTL)
+dnl Check args
dnl Check for gimp plugin support
AC_MSG_CHECKING([whether GIMP plugin is requested])
@@ -78,9 +73,7 @@ fi
dnl Checks for header files.
AC_HEADER_STDC
-AC_CHECK_HEADERS(fcntl.h unistd.h libc.h sys/dsreq.h sys/select.h \
- sys/time.h sys/scanio.h sys/socket.h sys/io.h asm/io.h gscdds.h sys/hw.h \
- bsd/dev/scsireg.h io/cam/cam.h camlib.h sys/types.h zlib.h)
+AC_CHECK_HEADERS(os2.h fcntl.h unistd.h libc.h sys/time.h sys/types.h zlib.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
@@ -93,11 +86,6 @@ AC_CHECK_TYPE(u_char, unsigned char)
AC_CHECK_TYPE(u_int, unsigned int)
AC_CHECK_TYPE(u_long, unsigned long)
-dnl The following libs have to be included because they are forgotten in the sane libs
-AC_CHECK_LIB(scsi, scsireq_enter) # FreeBSD needs this
-AC_CHECK_LIB(cam, cam_open_device) # FreeBSD 3+ needs this
-dnl AC_CHECK_LIB(intl,gettext)
-
dnl Checks for libraries.
AC_CHECK_LIB(m, sqrt)
AC_CHECK_LIB(z, deflateInit_)
@@ -114,13 +102,7 @@ fi
dnl Checks for library functions.
AM_FUNC_ALLOCA
AC_FUNC_MMAP
-AC_CHECK_FUNCS(atexit mkdir sigprocmask strdup strndup strftime strstr strsep strtod snprintf usleep strcasecmp strncasecmp)
-
-dnl standard dll handling
-AC_CHECK_HEADERS(dlfcn.h, [AC_CHECK_LIB(dl,dlopen) AC_CHECK_FUNCS(dlopen, enable_dynamic=yes,)],)
-
-dnl HP/UX DLL handling
-AC_CHECK_HEADERS(dl.h, [AC_CHECK_LIB(dld,shl_load) AC_CHECK_FUNCS(shl_load, enable_dynamic=yes,)],)
+AC_CHECK_FUNCS(atexit mkdir sigprocmask strdup strndup strftime strstr strsep strtod snprintf usleep strcasecmp strncasecmp lstat)
dnl Check for NLS/gettext
AM_GNU_GETTEXT
@@ -135,68 +117,34 @@ fi
AC_SUBST(INTLSUB)
-#### Choose a window system.
-
-AC_PATH_X
-if test "$no_x" = yes; then
- window_system=none
-else
- window_system=x11
-fi
+AM_PATH_SANE(1.0.0, HAVE_SANE=yes, )
+dnl *** if xsane is compiled as gimp plugin it is possible that we do not
+dnl *** need the test for gtk, but when we have gimp-1.0.x installed
+dnl *** (gimp-1.0.x does not have gimp-config) or we compile xsane without
+dnl *** gimp support we need the test for gtk
AM_PATH_GTK(1.2.0, HAVE_GTK=yes, )
-# Change CFLAGS temporarily so that C_SWITCH_X_SITE gets used
-# for the tests that follow. We set it back to REAL_CFLAGS later on.
-
-# According to Owen Taylor, GTK_CFLAGS is _guaranteed_ to contain
-# -D and -I flags only, i.e., it really is GTK_CPPFLAGS...
-saved_CPPFLAGS="${CPPFLAGS}"
-saved_LIBS="${LIBS}"
-CPPFLAGS="${CPPFLAGS} ${GTK_CFLAGS}"
-LIBS="${LIBS} ${GTK_LIBS}"
-
if test "${USE_GIMP}" = "yes"; then
- AC_CHECK_HEADERS(libgimp/gimp.h, GIMP_LIBS="-lgimp")
- AC_CHECK_HEADERS(libgimp/gimpfeatures.h)
+ AM_PATH_GIMP(1.0.0, HAVE_GIMP=yes)
fi
-
-LIBS="${saved_LIBS}"
-CPPFLAGS="${saved_CPPFLAGS}"
-
+
# png test must stand after test for zlib
-# png test must stand behind X11-check because it is located in
-# the X11 directory on some systems
-# so we have to use x_includes and x_libraries to test for png
-# and all following checks (=sane)
-# saved_CPPFLAGS is still up to date
-CPPFLAGS="${CPPFLAGS} -I${x_includes}"
+# png test must stand behind GTK-check (X-Window-check)
+# because png.h is located in the X11 directory on some systems
+# so we have to use GTK_CFLAGS and GTK_LIBS to test for png
if test "${USE_PNG}" = "yes"; then
- AC_CHECK_HEADERS(png.h, [AC_CHECK_LIB(png, png_create_info_struct,,, -L${x_libraries})])
- if test "${ac_cv_lib_png_png_create_info_struct}" = "yes"; then
-# remove libpng because if we do not remove it all following
-# checks could need x_libraries and x_includes
- LIBS=`echo $LIBS | sed -e 's/-lpng//'`
- PNG_LIB="-lpng"
+ saved_CPPFLAGS="${CPPFLAGS}"
+
+ if test "x${HAVE_GTK}" != "x"; then
+ CPPFLAGS="${CPPFLAGS} ${GTK_CFLAGS}"
fi
-fi
-CPPFLAGS="${saved_CPPFLAGS}"
-
-# check for sane must stand after check for dl
-# check must stand at end of list because of the missing libintl in libsane.so
-# check needs x_libraries and x_includes because they may be needed by png
-dnl Check for sane lib
-if test "${ADD_LIBINTL}" = "no"; then
- AC_CHECK_HEADERS(sane/sane.h, AC_CHECK_LIB(sane,sane_init))
-else
- AC_CHECK_HEADERS(sane/sane.h, AC_CHECK_LIB(sane,sane_init,,, -lintl))
-fi
+ AC_CHECK_HEADERS(png.h, [AC_CHECK_LIB(png, png_create_info_struct,,, ${GTK_LIBS})])
+ CPPFLAGS="${saved_CPPFLAGS}"
+fi
-# this should be after all checks
-# add libpng again
-LIBS="${PNG_LIB} ${LIBS}"
AC_SUBST(INCLUDES)
AC_SUBST(BINPROGS)
@@ -204,29 +152,31 @@ AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
AC_SUBST(GIMP_LIBS)
CPPFLAGS="${CPPFLAGS} \
- -DPATH_SANE_DATA_DIR=\$(sanedatadir) \
-DV_MAJOR=${V_MAJOR} -DV_MINOR=${V_MINOR} -DSANE_V_MAJOR=${SANE_V_MAJOR}"
dnl Print error message if sane or gtk is missing
-if test "${ac_cv_lib_sane_sane_init}" != "yes"; then
+if test "x${HAVE_SANE}" = "x"; then
echo "****************************************************************"
- echo "ERROR: SANE is needed for compiling xsane"
+ echo "ERROR: SANE-1.0.0 or newer is needed for compiling xsane"
echo " - if you installed SANE as rpm make sure you also included"
echo " sane-devel"
- echo " - if SANE is installed, try ./configure -enable-intl-patch"
echo "****************************************************************"
- rm -f $cache_file
- exit -1
+ echo ""
+ echo "you may need to remove $cache_file before you run configure again"
+ echo ""
+ exit
fi
-if test "${HAVE_GTK}" = "no"; then
+if test "x${HAVE_GTK}" = "x"; then
echo "****************************************************************"
echo "ERROR: GTK-1.2.0 or newer is needed for compiling xsane"
echo " if you installed gtk as rpm make sure you also included"
echo " gtk-devel"
echo "****************************************************************"
- rm -f $cache_file
- exit -1
+ echo ""
+ echo "you may need to remove $cache_file before you run configure again"
+ echo ""
+ exit
fi
@@ -243,7 +193,7 @@ To add include or library paths call:
[env] CPPFLAGS=\"-I/path/to/foo/include\" LDFLAGS=\"-L/path/to/foo/libs\" ./configure])
AC_OUTPUT([Makefile intl/Makefile po/Makefile lib/Makefile
- frontend/Makefile include/Makefile doc/Makefile],)
+ src/Makefile include/Makefile doc/Makefile xsane.spec],)
echo "****************************************************************"
echo "* *"
@@ -289,9 +239,7 @@ echo "****************************************************************"
echo "* *"
echo "* To compile XSANE: *"
echo "* ----------------- *"
-echo "* enter as normal user: *"
echo "* make *"
-echo "* and as root: *"
echo "* make install *"
echo "* *"
echo "* ------------------------------------------------------------ *"
diff --git a/debian/changelog b/debian/changelog
index 62daa58..e2b14a4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,84 @@
-xsane (0.50-5.1) stable; urgency=high
+xsane (0.84-2) unstable; urgency=low
- * Non-maintainer upload by Security Team
- * Fixed several temporary file vulnerabilities by introducing
- /tmp/xsane-${LOGNAME:-$UID} as location for all temporary files,
- created securely upon startup.
+ * relinked with libusb-0.1-4.
- -- Martin Schulze <joey@finlandia.infodrom.north.de> Mon, 4 Mar 2002 18:50:02 +0100
+ -- Kevin Dalley <kevind@rahul.net> Fri, 15 Mar 2002 14:20:02 +0000
+
+xsane (0.84-1) unstable; urgency=low
+
+ * new upstream release.
+ * relinked with new libpng-dev (closes: #136711).
+
+ -- Kevin Dalley <kevind@rahul.net> Thu, 14 Mar 2002 02:23:44 +0000
+
+xsane (0.72-2) unstable; urgency=low
+
+ * New upstream version of xsane (closes: #105785).
+
+ -- Kevin Dalley <kevind@rahul.net> Wed, 3 Oct 2001 00:36:17 -0700
+
+xsane (0.72-1) unstable; urgency=low
+
+ * New upstream version of xsane. Many changes.
+
+ -- Kevin Dalley <kevind@rahul.net> Mon, 12 Mar 2001 10:32:10 +0000
+
+xsane (0.70-1) unstable; urgency=low
+
+ * new upstream release of xsane.
+
+ -- Kevin Dalley <kevind@rahul.net> Mon, 15 Jan 2001 04:16:25 -0800
+
+xsane (0.63-1) unstable; urgency=low
+
+ * new upstream version of xsane
+ * link sane-gimp1.1 with libgimp1.1-1.1.29.
+ * change control files so that packages sane and sane-gimp1.1 are
+ explicitly described as working with gimp and gimp1.1 respectively.
+ The package sane now mentions the packages sane-gimp1.1 and vice
+ versa.
+
+ -- Kevin Dalley <kevind@rahul.net> Sun, 5 Nov 2000 16:43:07 -0800
+
+xsane (0.62-1) unstable; urgency=low
+
+ * New upstream version of xsane.
+
+ -- Kevin Dalley <kevind@rahul.net> Sat, 21 Oct 2000 16:35:58 -0700
+
+xsane (0.61-2) unstable; urgency=low
+
+ * link xsane-gimp1.1 with libgimp1.1, which is new library.
+
+ -- Kevin Dalley <kevind@rahul.net> Sat, 21 Oct 2000 16:25:04 -0700
+
+xsane (0.61-1) unstable; urgency=low
+
+ * new upstream release of xsane.
+
+ -- Kevin Dalley <kevind@rahul.net> Sat, 9 Sep 2000 15:06:04 -0700
+
+xsane (0.59-1) unstable; urgency=low
+
+ * new upstream release of xsane
+ * added preview support for 16bpp
+ * miscellaneous changes and improvements
+
+ -- Kevin Dalley <kevind@rahul.net> Tue, 4 Jul 2000 16:47:55 -0700
+
+xsane (0.50-7) unstable; urgency=low
+
+ * link xsane-gimp1.1 with libgimp1.1.22, which is the most recent
+ libgimp1.1 in unstable.
+
+ -- Kevin Dalley <kevind@rahul.net> Mon, 3 Jul 2000 23:03:21 -0700
+
+xsane (0.50-6) unstable; urgency=low
+
+ * link xsane-gimp1.1 with libgimp1.1.19, which is the most recent
+ libgimp1.1 in unstable.
+
+ -- Kevin Dalley <kevind@rahul.net> Fri, 7 Apr 2000 14:51:00 -0700
xsane (0.50-5) frozen unstable; urgency=low
@@ -14,7 +87,7 @@ xsane (0.50-5) frozen unstable; urgency=low
-- Kevin Dalley <kevind@rahul.net> Wed, 5 Apr 2000 08:35:17 -0700
-xsane-gimp1.1 (0.50-4) frozen unstable; urgency=low
+xsane (0.50-4) frozen unstable; urgency=low
* Add Build-Depends to control files for xsane and xsane-gimp1.1 (closes:
#60923).
@@ -188,6 +261,4 @@ xsane (0.22-1) unstable; urgency=low
-- Kevin Dalley <kevind@rahul.net> Mon, 26 Apr 1999 23:03:13 -0700
-Local variables:
-mode: debian-changelog
-End:
+
diff --git a/debian/control b/debian/control
index 73d0e90..6484cc5 100644
--- a/debian/control
+++ b/debian/control
@@ -3,14 +3,14 @@ Section: graphics
Priority: optional
Maintainer: Kevin Dalley <kevind@rahul.net>
Standards-Version: 3.0.0
-Build-Depends: libgimp-dev, libjpeg62-dev, libsane-dev, zlib1g-dev, libtiff3g-dev, libpng2-dev
+Build-Depends: libgimp1.2-dev (>= 1.2.0), libglib1.2-dev (>= 1.2.0), libgtk1.2-dev (>= 1.2.10-4), libjpeg62-dev, libpng-dev, libsane-dev (>= 1.0.7), libtiff3g-dev, libusb-dev, xlibs-dev (>= 4.0.1-11), zlib1g-dev (>= 1:1.1.3)
Package: xsane
Section: graphics
Architecture: any
Depends: ${shlibs:Depends}
-Suggests: gimp (>= 1.0.0), hylafax-client | mgetty-fax
-Conflicts: xsane-gimp1.1, gimp1.1
+Suggests: gimp1.2, hylafax-client | mgetty-fax, gv
+Conflicts: xsane-gimp1.1
Description: a gtk based X11 frontend for SANE (Scanner Access Now Easy)
SANE stands for "Scanner Access Now Easy" and is an application
programming interface (API) that provides standardized access to any
diff --git a/debian/control.xsane b/debian/control.xsane
index 73d0e90..6484cc5 100644
--- a/debian/control.xsane
+++ b/debian/control.xsane
@@ -3,14 +3,14 @@ Section: graphics
Priority: optional
Maintainer: Kevin Dalley <kevind@rahul.net>
Standards-Version: 3.0.0
-Build-Depends: libgimp-dev, libjpeg62-dev, libsane-dev, zlib1g-dev, libtiff3g-dev, libpng2-dev
+Build-Depends: libgimp1.2-dev (>= 1.2.0), libglib1.2-dev (>= 1.2.0), libgtk1.2-dev (>= 1.2.10-4), libjpeg62-dev, libpng-dev, libsane-dev (>= 1.0.7), libtiff3g-dev, libusb-dev, xlibs-dev (>= 4.0.1-11), zlib1g-dev (>= 1:1.1.3)
Package: xsane
Section: graphics
Architecture: any
Depends: ${shlibs:Depends}
-Suggests: gimp (>= 1.0.0), hylafax-client | mgetty-fax
-Conflicts: xsane-gimp1.1, gimp1.1
+Suggests: gimp1.2, hylafax-client | mgetty-fax, gv
+Conflicts: xsane-gimp1.1
Description: a gtk based X11 frontend for SANE (Scanner Access Now Easy)
SANE stands for "Scanner Access Now Easy" and is an application
programming interface (API) that provides standardized access to any
diff --git a/debian/control.xsane-gimp1.1 b/debian/control.xsane-gimp1.1
index 27e6124..9afeab1 100644
--- a/debian/control.xsane-gimp1.1
+++ b/debian/control.xsane-gimp1.1
@@ -3,7 +3,7 @@ Section: graphics
Priority: optional
Maintainer: Kevin Dalley <kevind@rahul.net>
Standards-Version: 3.0.0
-Build-Depends: libgimp1.1.17-dev, libjpeg62-dev, libsane-dev, zlib1g-dev, libtiff3g-dev, libpng2-dev
+Build-Depends: libc6-dev, libglib1.2-dev, libgtk1.2-dev, libjpeg62-dev, libpng2-dev, libsane-dev, libtiff3g-dev, zlib1g-dev, xlib6g-dev, libgimp1.1-dev (>= 1.1.32), libgimp1.1-dev (<< 1.1.33)
Package: xsane-gimp1.1
Section: graphics
diff --git a/debian/rules b/debian/rules
index 898556d..b7087cd 100755
--- a/debian/rules
+++ b/debian/rules
@@ -15,7 +15,7 @@ CFLAGS = -O2 -g
# LDFLAGS = -s LDFLAGS is not correctly defined in Makefile.in
prefix=/usr
package=xsane
-gimp-version=1.0
+gimp-version=1.2
build:
$(checkdir)
@@ -63,15 +63,13 @@ binary-arch: checkroot build
install -d debian/tmp-$(package)$(prefix)/lib/gimp/$(gimp-version)/plug-ins
ln -sf ../../../../bin/xsane \
debian/tmp-$(package)$(prefix)/lib/gimp/$(gimp-version)/plug-ins
- for file in xsane.AUTHOR xsane.CHANGES \
- xsane.IMAGE xsane.LANGUAGES xsane.ONLINEHELP \
- xsane.PROBLEMS xsane.TODO \
- xsane-*.lsm; \
+ for file in xsane.* ; \
do \
install -m 644 $${file} \
debian/tmp-$(package)$(prefix)/share/doc/$(package); \
gzip -9v debian/tmp-$(package)$(prefix)/share/doc/$(package)/$${file}; \
done
+ rm -f debian/tmp-$(package)$(prefix)/share/doc/$(package)/xsane.COPYING.gz
ln -s xsane.CHANGES.gz \
debian/tmp-$(package)$(prefix)/share/doc/$(package)/changelog.gz
ln -s ../sane \
@@ -80,12 +78,14 @@ binary-arch: checkroot build
install -m 0644 debian/copyright debian/tmp-$(package)$(prefix)/share/doc/$(package)/.
install -m 0644 debian/changelog \
debian/tmp-$(package)$(prefix)/share/doc/$(package)/changelog.Debian
+ rm -f debian/tmp-$(package)$(prefix)/share/doc/$(package)/sane/xsane/xsane-license.txt
+ ln -s ../../../../common-licenses/GPL debian/tmp-$(package)$(prefix)/share/doc/$(package)/sane/xsane/xsane-license.txt
gzip -9v \
debian/tmp-$(package)$(prefix)/share/doc/$(package)/changelog.Debian
install -d debian/tmp-$(package)/usr/lib/menu
install -m 0644 debian/menu.$(package) debian/tmp-$(package)/usr/lib/menu/$(package)
- dpkg-shlibdeps debian/tmp-$(package)$(prefix)/bin/*
- strip debian/tmp-$(package)$(prefix)/bin/*
+ dpkg-shlibdeps debian/tmp-$(package)$(prefix)/bin/xsane
+ strip debian/tmp-$(package)$(prefix)/bin/xsane
dpkg-gencontrol -isp -p$(package) -Pdebian/tmp-$(package)
dpkg --build debian/tmp-$(package) ..
@@ -113,7 +113,7 @@ xsane-gimp1.1-files:
mv debian/changelog.new debian/changelog
rm -f debian/rules.new
sed -e's/^package=xsane$$/package=xsane-gimp1.1/' \
- -e 's/^gimp-version=1.0$$/gimp-version=1.1/' debian/rules > \
+ -e 's/^gimp-version=1.2$$/gimp-version=1.1/' debian/rules > \
debian/rules.new
mv debian/rules.new debian/rules
chmod a+x debian/rules
@@ -127,7 +127,7 @@ xsane-files:
mv debian/changelog.new debian/changelog
rm -f debian/rules.new
sed -e's/^package=xsane-gimp1.1$$/package=xsane/' \
- -e 's/^gimp-version=1.1$$/gimp-version=1.0/' debian/rules > \
+ -e 's/^gimp-version=1.1$$/gimp-version=1.2/' debian/rules > \
debian/rules.new
mv debian/rules.new debian/rules
chmod a+x debian/rules
diff --git a/debian/substvars b/debian/substvars
index 3bb265a..e6a2cc5 100644
--- a/debian/substvars
+++ b/debian/substvars
@@ -1 +1 @@
-shlibs:Depends=libc6 (>= 2.1.2), libgimp1.1.17 (>= 1.1.17-3), libglib1.2 (>= 1.2.0), libgtk1.2 (>= 1.2.7-1), libjpeg62, libpng2, libsane (>= 1.0.1-1999-10-21-7), libtiff3g, libz1, xlib6g (>= 3.3.6)
+shlibs:Depends=libc6 (>= 2.2.4-4), libgimp1.2 (>= 1.2.0), libglib1.2 (>= 1.2.0), libgtk1.2 (>= 1.2.10-4), libjpeg62, libpng3, libsane (>= 1.0.7), libtiff3g, libusb-0.1-4 (>= 1:0.1.5-2), xlibs (>> 4.1.0), zlib1g (>= 1:1.1.3)
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 0099667..6913cd2 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -21,6 +21,7 @@ includedir = @includedir@
oldincludedir = /usr/include
configdir = ${sysconfdir}/sane.d
sanedatadir = ${datadir}/sane
+xsanedocdir = ${datadir}/sane/xsane/doc
MKDIR = $(top_srcdir)/mkinstalldirs
INSTALL = @INSTALL@
@@ -41,6 +42,7 @@ all: $(MANPAGES)
%.1: %.man
sed -e 's|@DATADIR@|$(datadir)|g' \
+ -e 's|@SANEDATADIR@|$(sanedatadir)|g' \
-e 's|@CONFIGDIR@|$(configdir)|g' \
-e 's|@LIBDIR@|$(libdir)|g' \
-e 's|@BINDIR@|$(bindir)|g' \
@@ -53,8 +55,33 @@ install: $(MANPAGES)
$(INSTALL_DATA) $${page} $(mandir)/man1/$${page} || exit 1; \
done
$(MKDIR) $(datadir)
- $(INSTALL_DATA) $(srcdir)/sane-*-doc.html $(sanedatadir)/
- $(INSTALL_DATA) $(srcdir)/*.jpg $(sanedatadir)/
+
+ $(MKDIR) $(xsanedocdir)
+ @for page in *.html; do\
+ echo installing $${page} in $(xsanedocdir)/$${page}...; \
+ $(INSTALL_DATA) $${page} $(xsanedocdir)/$${page} || exit 1; \
+ done
+
+ @for image in *.jpg; do\
+ echo installing $${image} in $(xsanedocdir)/$${image}...; \
+ $(INSTALL_DATA) $${image} $(xsanedocdir)/$${image} || exit 1; \
+ done
+
+uninstall:
+ @for page in $(SECT1); do \
+ echo uninstalling $(mandir)/man1/$${page}...; \
+ rm -f $(mandir)/man1/$${page} || exit 1; \
+ done
+
+ @for page in *.html; do\
+ echo uninstalling $(xsanedocdir)/$${page}...; \
+ rm -f $(xsanedocdir)/$${page} || exit 1; \
+ done
+
+ @for image in *.jpg; do\
+ echo uninstalling $${image} in $(xsanedocdir)/$${image}...; \
+ rm -f $(xsanedocdir)/$${image} || exit 1; \
+ done
docs: ps html
diff --git a/doc/sane-logo.jpg b/doc/sane-logo.jpg
deleted file mode 100644
index 218babf..0000000
--- a/doc/sane-logo.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-logo2.jpg b/doc/sane-logo2.jpg
deleted file mode 100644
index e0f604f..0000000
--- a/doc/sane-logo2.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-pnm16-doc.html b/doc/sane-pnm16-doc.html
deleted file mode 100644
index e6bc487..0000000
--- a/doc/sane-pnm16-doc.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; Linux 2.0.36 i586) [Netscape]">
- <META NAME="Author" CONTENT="Oliver Rauch">
- <META NAME="Description" CONTENT="scan, photocopy and fax frontend for SANE">
- <TITLE>SANE - XSane frontend</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EF" VLINK="#51188E" ALINK="#FF0000">
-
-<BLOCKQUOTE>
-<CENTER>
-<H3>
-<IMG SRC="sane-logo.jpg" HEIGHT=300 WIDTH=256 ALIGN=TEXTTOP></H3></CENTER>
-
-<CENTER>
-<H1>
-PNM16 BACKEND</H1></CENTER>
-
-<CENTER>
-<H1>
-
-<HR WIDTH="100%"></H1></CENTER>
-</BLOCKQUOTE>
-
-<BLOCKQUOTE>
-<CENTER><FONT SIZE=+1>The PNM16 backend is a backend for testing SANE frontends.
-It is not planned to give the user any useful functions!</FONT></CENTER>
-
-<CENTER><FONT SIZE=+1>It reads a pnm image and converts it into a 8-16
-bits/sample image.</FONT></CENTER>
-
-<CENTER><FONT SIZE=+1></FONT>&nbsp;</CENTER>
-
-<CENTER><FONT SIZE=+1></FONT></CENTER>
-
-<CENTER>
-<HR WIDTH="100%"></CENTER>
-</BLOCKQUOTE>
-
-</BODY>
-</HTML>
diff --git a/doc/sane-problems-doc.html b/doc/sane-problems-doc.html
index 085118b..dce66a1 100644
--- a/doc/sane-problems-doc.html
+++ b/doc/sane-problems-doc.html
@@ -30,19 +30,40 @@ with SANE or XSane please read this before you write any mails.</font></font></b
<b><font color="#000000">The SANE frontend (like xsane or xscanimage) does
not start or aborts with a segmentation fault.</font></b></li>
-<p><br><font color="#000000">Edit /usr/local/etc/sane.d/dll.conf (or /usr/etc/sane.d/dll.conf)
+<ul>
+<li>
+<font color="#000000">Edit /usr/local/etc/sane.d/dll.conf (or /usr/etc/sane.d/dll.conf)
and comment out all but the backend you need. To do this add a "#" at the
-beginning of the relevant lines.</font><font color="#000000"></font>
-<p><font color="#000000">If that does not help try to find out where the
-error occurs:</font>
-<br><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gdb
-xscanimage</font>
-<br><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r
-&lt;enter></font>
-<br><font color="#000000">after the frontend returned:</font>
-<br><font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; backtrace
-&lt;enter></font>
-<br>&nbsp;
+beginning of the relevant lines.</font></li>
+
+<li>
+make sure there is only one sane version installed before you compile xsane
+(try as root: $find / -name "*sane*" | less)</li>
+
+<li>
+If you used an earlier version of xsane before remove the configuration
+directory: rm -rf ~/.sane/xsane (you have to enter all configurations again
+afterwards).</li>
+
+<li>
+make sure there is only one gtk-config and only one gimp-config file on
+your system (find / -name "g*-config").</li>
+
+<li>
+Do not install any self compiled source package over binary packages, in
+most cases the installation paths are different so the old versions are
+not overwritten!</li>
+
+<li>
+<font color="#000000">If that does not help try to find out where the error
+occurs:</font></li>
+
+<br><font color="#000000">&nbsp;&nbsp;&nbsp; gdb xscanimage</font>
+<br><font color="#000000">&nbsp;&nbsp;&nbsp; r &lt;enter></font>
+<br><font color="#000000">&nbsp;&nbsp;&nbsp; after the frontend returned:</font>
+<br><font color="#000000">&nbsp;&nbsp;&nbsp; backtrace &lt;enter></font><br>
+<BR></ul>
+
<li>
<b><font color="#000000">The scanner starts the scan but it stops while
scanning</font></b></li>
@@ -101,10 +122,39 @@ of scsi card.</font>
<li>
<font color="#000000">May be your scanner/firmware does not work correct
with the backend you use. Update the backend version or contact the author
-of the backend.</font></li>
+of the backend.</font><br>
+<br>
+<BR></li>
</blockquote>
-<font color="#000000"></font>
-<br>&nbsp;
+
+<li>
+<b><font color="#000000">If you get an error message&nbsp; that libsane-dll.so.1
+or libsane-so.1 is not found, you have to tell your system where the SANE-libraries
+are installed.</font></b></li>
+
+<blockquote>
+<li>
+<font color="#000000">For linux and sane-1.0.1 you have to edit /etc/ld.so.conf
+and add a line with the path to the SANE libraries (normally /usr/local/lib/sane),
+then call ldconfig.</font></li>
+
+<li>
+<font color="#000000">For linux and sane-1.0.2 and later versions the path
+to the SANE libs MUST NOT be listed in /etc/ld.so.conf, if it has been
+listed, remove the path and call ldconfig, then reinstall SANE.</font></li>
+
+<li>
+<font color="#000000">On some systems "/usr/local/lib" is not searched
+for libraries, it may be necessary to add this path. For linux make sure
+that "/usr/local/lib" is listed in /etc/ld.so.conf, call ldconfig as root
+after changing /etc/ld.so.conf.</font></li>
+
+<li>
+<font color="#000000">If all that does not help, make sure that libsane.so.*
+are symbolic links to ./sane/libsane-dll.so.*</font><br>
+<BR></li>
+</blockquote>
+
<li>
<b>Please read the documentation of the backend you use</b></li>
</blockquote>
diff --git a/doc/sane-scantips-doc.html b/doc/sane-scantips-doc.html
index 9a4e45d..2563e9a 100644
--- a/doc/sane-scantips-doc.html
+++ b/doc/sane-scantips-doc.html
@@ -29,20 +29,26 @@ If you are looking for some tips about scanning, desktoppublishing etc,
take a look at these links:</h4>
<blockquote>
-<blockquote>
<li>
<font color="#000000"><a href="http://www.scantips.com/">http://www.scantips.com/</a></font></li>
<li>
-<font color="#000000"><a href="http://www.infomedia.net/scan/">http://www.infomedia.net/scan/</a></font></li>
+<font color="#000000"><a href="http://www.infomedia.net/scan/">http://www.infomedia.net/scan/</a></font>
+</li>
<li>
-<font color="#000000"><a href="http://www.hsdesign.com/scanning/">http://www.hsdesign.com/scanning/</a></font></li>
+<font color="#000000"><a href="http://www.abstractconcreteworks.com/essays/scanning/scanning.html">http://www.abstractconcreteworks.com/essays/scanning/scanning.html/</a></font>
+</li>
<li>
-<font color="#000000"><a href="http://desktoppublishing.com/">http://desktoppublishing.com/</a></font></li>
-</blockquote>
+<font color="#000000"><a href="http://desktoppublishing.com/scanning.html">http://desktoppublishing.com/scanning.html</a></font></li>
</blockquote>
+I have no influence to the contents of the linked pages.
+The content may change at any time whithout my knowledge.
+I am not responsible for any contents linked or referred to.
+
+
+
</body>
</html>
diff --git a/doc/sane-xsane-advanced-doc.html b/doc/sane-xsane-advanced-doc.html
index b294836..e75b06c 100644
--- a/doc/sane-xsane-advanced-doc.html
+++ b/doc/sane-xsane-advanced-doc.html
@@ -2,34 +2,121 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
- <title>XSane - Advanced options</title>
+ <title>XSane - Advanced options window</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
-<br>&nbsp;
+
+<table>
+<td width=200>
+<img SRC="xsane-logo2.jpg" hspace=30 height=150 width=128 align=TOP>
+</td>
+<td>
+<h1><dd><font color="#009900">Advanced options window</font></dd></h1>
+</td>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<blockquote>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</blockquote>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<blockquote>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</blockquote>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
<blockquote>
-<h1>
-<u><font color="#009900">Advanced options window</font></u></h1>
-&nbsp;
-<p>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
-
-<center><img SRC="sane-xsane-advanced.jpg" height=238 width=291></center>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</blockquote>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+
+<blockquote>
+<br>
+<center><img SRC="xsane-advanced.jpg" height=248 width=296></center>
+<br>
+<br>
+<br>
+The advanced options window contains special scanner options
+that should be used by advanced users. XSane does not now anything about
+these options, it only creates this dialog to give the user the possibility
+to take control of these options.
+<p>
+Please read the backend manual if you need any information about
+the functions you find in this window.
+</blockquote>
+</td>
+</table>
<hr WIDTH="100%">
-<center><a href="sane-xsane-doc.html">INDEX</a></center>
-<p><br>
+<blockquote>
+<font size=+1>Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a></font>
+</blockquote>
+
</body>
</html>
diff --git a/doc/sane-xsane-advanced.jpg b/doc/sane-xsane-advanced.jpg
deleted file mode 100644
index 309aa72..0000000
--- a/doc/sane-xsane-advanced.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-color-correction-doc.html b/doc/sane-xsane-color-correction-doc.html
new file mode 100644
index 0000000..62fbfed
--- /dev/null
+++ b/doc/sane-xsane-color-correction-doc.html
@@ -0,0 +1,224 @@
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
+ <meta name="Author" content="Oliver Rauch">
+ <meta name="Description" content="scan, photocopy and fax frontend for SANE">
+ <title>XSane - Color correction</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
+
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 align=TOP>
+</td>
+<td>
+<blockquote>
+<h1><u><font color="#009900">Color correction</font></u></h1>
+</blockquote>
+</td>
+</tr>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<br>
+<center><img SRC="xsane.jpg" alt="XSane-main-window"></center>
+<br>
+<br>
+<blockquote>
+XSane uses a gamma table to do the following enhancement functions.
+If the scanner supports a custom gamma table (and the option is enabled)
+XSane uses the scanner internal gamma table with the scanner's maximum
+bit depth.
+<br>
+<br>
+<br>
+<img SRC="xsane-gamma.jpg" alt="gamma">
+&nbsp;&nbsp;
+<a NAME="GAMMA"></a><b>Gamma correction:</b>
+
+<blockquote>
+The gamma correction is a non linear correction. Black keeps black and white keeps white
+<blockquote>
+if the gamma value is greater than 1.0 the gray intensities are brightned
+<br>
+if the gamma value is smaller than 1.0 the gray intensities are darkened
+</blockquote>
+</blockquote>
+
+<img SRC="xsane-brightness.jpg" alt="brightness">
+&nbsp;&nbsp;
+<a NAME="BRIGHTNESS"></a><b>Brightness:</b>
+<blockquote>
+positive values increase the brightness of the image. All values
+are increased by the same value. 100% means a shift of the half value range
+(on 8 bits (256 values) this means a shift of 128).
+</blockquote>
+
+<img SRC="xsane-contrast.jpg" alt="contrast">
+&nbsp;&nbsp;
+<a NAME="CONTRAST"></a><b>Contrast:</b>
+<blockquote>
+positive values increase the contrast of the image. Medium gray keeps medium gray (8 bits: 128)
+<blockquote>
+-100% means that all colors become medium gray
+<br>
++100% means that the difference between a value and medium gray is doubled
+</blockquote>
+</blockquote>
+
+<img SRC="xsane-threshold.jpg" alt="threshold">
+&nbsp;&nbsp;
+<a NAME="THRESHOLD"></a><b>Threshold:</b>
+<blockquote>
+defines the brightness level in % that is needed to get a white
+point in lineart (black/white) mode. You have to enter some options in
+the <a href="sane-xsane-setup-enhancement-doc.html">enhancement setup</a> and the
+backend needs to make available a threshold option.
+</blockquote>
+
+<img SRC="xsane-rgb-default.jpg" alt="rgb-default">
+&nbsp;&nbsp;
+<a NAME="RGB_DEFAULT"></a><b>RGB default:</b>
+<blockquote>
+if RGB default is activated, all values for the color components
+(red, green and blue) are set to the default values (gamma=1.0, brightness=0%,
+contrast=0%). If you deactivate it, you can set different enhancement values
+for each color.
+</blockquote>
+
+<img SRC="xsane-negative.jpg" alt="negative">
+&nbsp;&nbsp;
+<a NAME="NEGATIVE"></a><b>Negative:</b>
+<blockquote>
+This option inverts the intensities (black &lt;-> white). It
+is for scanning negatives.
+<br>
+<br>
+Negatives do not only have inverted colors, it also is necessary to
+do a color correction for each color component because the negatives have
+very different color ranges for each color.
+</blockquote>
+
+<img SRC="xsane-autoenhance.jpg" alt="autoenhance">
+&nbsp;&nbsp;
+<a NAME="AUTO_ENHANCEMENT"></a><b>Autoenhancement:</b>
+<blockquote>
+If you press this button XSane tries to set good values for
+brightness, contrast and gamma correction in dependance of the selected
+part in the preview window. This does work quiet well for brightness and
+contrast, but the gamma correction normally has to be corrected manually.
+<br>If RGB default is disabled, the components for each color are set individually.
+</blockquote>
+
+<img SRC="xsane-default.jpg" alt="default">
+&nbsp;&nbsp;
+<a NAME="ENHANCEMENT_DEFAULT"></a><b>Enhancement default:</b>
+<blockquote>
+Sets the enhancement values to default: gamma=1.0, brightness=0%, contrast=0%.
+</blockquote>
+
+<img SRC="xsane-restore.jpg" alt="restore">
+&nbsp;&nbsp;
+<a NAME="RESTORE_ENHANCEMENT"></a><b>Restore enhancement:</b>
+<blockquote>
+Restores the enhancement values from preferences.
+</blockquote>
+
+<img SRC="xsane-store.jpg" alt="store">
+&nbsp;&nbsp;
+<a NAME="MEMORY_ENHANCEMENT"></a><b>Store enhancement (Memory):</b>
+<blockquote>
+Store selected enhancement values to preferences.
+</blockquote>
+</blockquote>
+</td>
+</tr>
+</table>
+
+<hr WIDTH="100%">
+
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
+</body>
+</html>
+
diff --git a/doc/sane-xsane-copy-doc.html b/doc/sane-xsane-copy-doc.html
index e0f0b07..549052a 100644
--- a/doc/sane-xsane-copy-doc.html
+++ b/doc/sane-xsane-copy-doc.html
@@ -1,40 +1,166 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
<title>XSane - Copy mode</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
-<blockquote>&nbsp;
-<h1>
-<u><font color="#009900">Copy mode</font></u></h1>
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 height=150 width=128 align=TOP>
+</td>
+<td>
+<blockquote>
+<h1><font color="#009900">Main window in copy mode</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+In Copy mode, the scanned image is sent directly to the selected printer.
+<br>
+<br>
+<br>
+<center><img SRC="xsane-copy.jpg" alt="XSane-main-window"></center>
+<br>
+<br>
+<img SRC="xsane-colormode.jpg" alt="colormode">
+&nbsp;&nbsp;
+<b>Scanmode:</b>
+<blockquote>
+Select scanmode, e.g.: color, grayscale, halftone, lineart.
+</blockquote>
+
+<img SRC="xsane-scansource.jpg" alt="scansource">
+&nbsp;&nbsp;
+<b>Scansource:</b>
+<blockquote>
+Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder.
</blockquote>
-<blockquote>&nbsp;In Copy mode, the scanned image is converted to postscript.
-The postscript file is piped as standard input to the command listed after
-the printer symbol.
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
+<img SRC="xsane-medium.jpg" alt="medium">
+&nbsp;&nbsp;
+<b>Scanmedium:</b>
+<blockquote>
+Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>,
+<i>Agfa negative</i>, ... or <i>Full range</i>.
+</blockquote>
-<center><img SRC="sane-xsane-copy.jpg" height=416 width=270></center>
+<img SRC="xsane-printer.jpg" alt="printer">
+&nbsp;&nbsp;
+<b>Printer:</b>
+<blockquote>
+Select the printer on which the scanned image shall be printed. In the box
+with the number you can select the number of copies that shall be created.
+</blockquote>
+
+
+<img SRC="xsane-zoom.jpg" alt="zoom">
+&nbsp;&nbsp;
+<b>Zoom factor:</b>
+<blockquote>
+Select the zoom factor for the photocopy. XSane automatically selects the
+correct scan resolution in dependance of the zoom factor and the defined
+printer resolutions.
-<blockquote>&nbsp;
-<br>The options of the printer and the printer command can be set in the
-menu
-<a href="sane-xsane-setup-printer-doc.html">Preferences/Setup</a></blockquote>
+</blockquote>
+</blockquote>
+<blockquote>
+The options of the printer and the printer command can be set in the menu
+<a href="sane-xsane-setup-copy-doc.html">Preferences/Setup</a>
+</blockquote>
+</td>
+</tr>
+</table>
<hr WIDTH="100%">
-<center><a href="sane-xsane-doc.html">INDEX</a></center>
-<p><br>
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
</body>
</html>
diff --git a/doc/sane-xsane-copy.jpg b/doc/sane-xsane-copy.jpg
deleted file mode 100644
index 13c1cd9..0000000
--- a/doc/sane-xsane-copy.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-doc.html b/doc/sane-xsane-doc.html
index 9956e12..dc01e34 100644
--- a/doc/sane-xsane-doc.html
+++ b/doc/sane-xsane-doc.html
@@ -1,232 +1,173 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
<title>XSane - Documentation index</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 height=150 width=128 align=TOP>
+</td>
+<td>
<blockquote>
-<h1>
-<br>
-<BR></h1>
+<h1><font color="#009900">Index of XSane documentation</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
-<h1>
-</h1>
-<h1>
-</h1>
+<hr WIDTH="100%">
-<h1>
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
<br>
-<u><font color="#009900">Index of xsane documentation</font></u></h1>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
-<blockquote>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
-</blockquote>
-<blockquote>
-<li>
-<font color="#000000"><font size=+1>Xsane modes:</font></font></li>
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
<blockquote>
+<br>
+<h3><font color="#009900"><u>What is XSane?</u></font></h3>
<blockquote>
-<li>
-<font color="#000000"><a href="sane-xsane-scan-doc.html">Scan mode</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-copy-doc.html">Copy mode</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-fax-doc.html">Fax mode</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></font></li>
-</blockquote>
+XSane is a graphical scanning frontend for
+<a href="http://www.mostang.com/sane">SANE</a> (Scanner Access Now Easy).
+It uses the
+<a href="http://www.mostang.com/sane">SANE-library</a> to talk to
+scanners. This means that XSane does not support any scanners itself.
+Here you can find out
+<a href="http://www.mostang.com/sane/sane-backends.html">
+which scanners are supported by the SANE-library</a>.
+<p>
+XSane is designed for acquiring images with scanners (there are other
+devices like cameras and videodevices supported by SANE, but XSane is
+not designed for that purpose). You can scan to file, do a photocopy,
+create a fax and start XSane from the GIMP as gimp plugin.
</blockquote>
-
-<li>
-<font color="#000000"><font size=+1>Scanner option windows:</font></font></li>
-
+<p>
+<h3><font color="#009900"><u>Setup:</u></font></h3>
<blockquote>
-<blockquote>
-<li>
-<font color="#000000"><a href="sane-xsane-standard-doc.html">Standard options
-window</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-advanced-doc.html">Advanced options
-window</a></font></li>
-</blockquote>
+Before you start scanning please go through all setup pages. XSane may not work
+correct or you may not be able to get advance of all functions if you do not configure
+XSane correct.
+
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
</blockquote>
-<li>
-<font color="#000000"><font size=+1><a href="sane-xsane-preview-doc.html">Preview</a></font></font></li>
-<blockquote>
-<blockquote>
-<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette
-white</a></font></li>
-<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette
-gray</a></font></li>
+<h3><font color="#009900"><u>Homepage of XSane:</u></font></h3>
+<ul>
+<li><a href="http://www.xsane.org">www.xsane.org</a></li>
<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette
-black</a></font></li>
+XSane is available as
+<a href="http://www.xsane.org/xsane-download-source.html">source code</a>
+for unix systems and Win32.
+</li>
<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></font></li>
+There also is a
+<a href="http://www.xsane.org/xsane-win32.html">binary version for Win32</a>
+(Windows 9x, 2000, NT, ME) for network scanning.
+</li>
+</ul>
-<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom
-out</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom
-in</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo
-zoom</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select
-visible area</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select
-scanarea</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move
-scanarea</a></font></li>
-
-<br>&nbsp;</blockquote>
-</blockquote>
-
-<li>
-<font color="#000000"><font size=+1><a href="sane-xsane-enhancement-doc.html">Enhancement
-functions</a>:</font></font></li>
-
-<blockquote>
+<h3><font color="#009900"><u>Author of XSane:</u></font></h3>
<blockquote>
-<li>
-<font color="#000000"><a href="sane-xsane-enhancement-doc.html#GAMMA">Gamma
-correction</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-enhancement-doc.html#BRIGHTNESS">Brightness</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-enhancement-doc.html#CONTRAST">Contrast</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-enhancement-doc.html#RGB_DEFAULT">RGB
-default</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-enhancement-doc.html#NEGATIVE">Negative</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-enhancement-doc.html#AUTOENHANCEMENT">Autoenhancement</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-enhancement-doc.html#ENHANCEMENT_DEFAULT">Enhancement
-default</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-enhancement-doc.html#RESTORE_ENHANCEMENT">Restore
-enhancement</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-enhancement-doc.html#STORE_ENHANCEMENT">Store
-enhancement</a></font></li>
-
-<br>&nbsp;
-<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette
-white</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette
-gray</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette
-black</a></font></li>
-
-<br>&nbsp;
-<li>
-<font color="#000000"><a href="sane-xsane-histogram-doc.html">Histogram
-window</a></font></li>
-
-<li>
-<font color="#000000">Highlight/White point</font></li>
-
-<li>
-<font color="#000000">Shadow/Black point</font></li>
-
-<li>
-<font color="#000000">Gamma/Gray point</font></li>
+<a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
</blockquote>
-</blockquote>
-
-<li>
-<font color="#000000"><font size=+1>Setup:</font></font></li>
-<blockquote>
-<blockquote>
-<li>
-<font color="#000000"><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-setup-display-doc.html">Display
-setup</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-setup-save-doc.html">Saving setup</a></font></li>
-
-<li>
-<font color="#000000"><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></font></li>
-</blockquote>
</blockquote>
+</td>
+</tr>
+</table>
-<li>
-<font color="#000000"><font size=+1>Supported functions:</font></font></li>
+<hr WIDTH="100%">
<blockquote>
-<blockquote>
-<li>
-<font color="#000000">Support for 9-16 bits/sample</font></li>
-
-<li>
-<font color="#000000">Output formats</font></li>
-
-<li>
-<font color="#000000">Automatic filename generation</font></li>
-
-<li>
-<font color="#000000">Automatic Document Feeder</font></li>
-</blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
</blockquote>
-</blockquote>
-
-<hr WIDTH="100%">
-<blockquote><font size=+1>Author: <a href="mailto:Oliver.Rauch@Wolfsburg.DE">Oliver
-Rauch</a></font>
-<p><font size=+1><a href="http://www.wolfsburg.de/~rauch/sane/sane-xsane.html">Homepage
-of xsane</a></font></blockquote>
</body>
</html>
diff --git a/doc/sane-xsane-empty-doc.html b/doc/sane-xsane-empty-doc.html
new file mode 100644
index 0000000..a3c8227
--- /dev/null
+++ b/doc/sane-xsane-empty-doc.html
@@ -0,0 +1,107 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
+ <meta name="Author" content="Oliver Rauch">
+ <meta name="Description" content="scan, photocopy and fax frontend for SANE">
+ <title>XSane - Documentation index</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
+
+
+<table>
+<td width=200>
+<img SRC="xsane-logo2.jpg" hspace=30 height=150 width=128 align=TOP>
+</td>
+<td>
+<h1><dd><font color="#009900">Index of XSane documentation</font></dd></h1>
+</td>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<blockquote>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</blockquote>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<blockquote>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</blockquote>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<blockquote>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</blockquote>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+</td>
+</table>
+
+<hr WIDTH="100%">
+
+<blockquote>
+<font size=+1>Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a></font>
+</blockquote>
+
+</body>
+</html>
diff --git a/doc/sane-xsane-enhancement-doc.html b/doc/sane-xsane-enhancement-doc.html
deleted file mode 100644
index 32c1d05..0000000
--- a/doc/sane-xsane-enhancement-doc.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
- <meta name="Author" content="Oliver Rauch">
- <meta name="Description" content="scan, photocopy and fax frontend for SANE">
- <title>XSane - Enhancement</title>
-</head>
-<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
-
-<br>&nbsp;
-<blockquote>
-<h1>
-<u><font color="#009900">Enhancement</font></u></h1>
-XSane uses a gamma table to do the following enhancement functions. If
-the scanner supports a custom gamma table (and the option is enabled) XSane
-uses the scanner internal gamma table with the scanner's maximum bit depth.</blockquote>
-
-<center><img SRC="sane-xsane.jpg" height=416 width=270></center>
-
-<blockquote>&nbsp;
-<dt>
-<img SRC="gamma.jpg" height=21 width=22><a NAME="GAMMA"></a><b> Gamma correction:</b></dt>
-
-<blockquote>The gamma correction is a non linear correction. Black keeps
-black and white keeps white
-<blockquote>if the gamma value is greater than 1.0 the gray intensities
-are brightned
-<br>if the gamma value is smaller than 1.0 the gray intensities are darkend</blockquote>
-</blockquote>
-
-<dt>
-<img SRC="brightness.jpg" height=21 width=22><a NAME="BRIGHTNESS"></a><b> Brightness:</b></dt>
-
-<blockquote>positive values increase the brightness of the image. All values
-are increased by the same value. 100% means a shift of the half value range
-(on 8 bits (256 values) this means a shift of 128).</blockquote>
-
-<dt>
-<img SRC="contrast.jpg" height=21 width=22><a NAME="CONTRAST"></a><b> Contrast:</b></dt>
-
-<blockquote>positive values increase the contrast of the image. Medium
-gray keeps medium gray (8 bits: 128)
-<blockquote>-100% means that all colors become medium gray
-<br>+100% means that the difference between a value and medium gray is
-doubled</blockquote>
-</blockquote>
-
-<dt>
-<img SRC="rgb-default.jpg" height=26 width=26><a NAME="RGB_DEFAULT"></a><b> RGB default:</b></dt>
-
-<blockquote>if RGB default is activated, all values for the color components
-(red, green and blue) are set to the default values (gamma=1.0, brightness=0%,
-contrast=0%). If you deactivate it, you can set different enhancement values
-for each color.</blockquote>
-
-<dt>
-<img SRC="negative.jpg" height=26 width=26><a NAME="NEGATIVE"></a><b> Negative:</b></dt>
-
-<blockquote>This option inverts the intensities (black &lt;-> white).
-It is for scanning negatives.
-<p>Negatives do not only have inverted colors, it also is necessary
-to do a color correction for each color component because the negatives
-have very different color ranges for each color.</blockquote>
-
-<dt>
-<img SRC="autoenhance.jpg" height=26 width=26><a NAME="AUTO_ENHANCEMENT"></a><b> Autoenhancement:</b></dt>
-
-<blockquote>If you press this button XSane tries to set good values
-for brightness, contrast and gamma correction independance of the selected
-part in the preview window. This does work quiet well for brightness and
-contrast, but the gamma correction normally has to be corrected manually.</b>
-<br>If RGB default is disabled, the components for each color are set
-individually.</blockquote>
-
-<img SRC="default.jpg" height=26 width=26><a NAME="ENHANCEMENT_DEFAULT"></a><b> Enhancement default:</b>
-<blockquote>Sets the enhancement values to default: gamma=1.0, brightness=0%,
-contrast=0%.</blockquote>
-
-<dt>
-<img SRC="restore.jpg" height=26 width=26><a NAME="RESTORE_ENHANCEMENT"></a><b> Restore enhancement:</b></dt>
-
-<blockquote>Restores the enhancement values from preferences.</blockquote>
-
-<dt>
-<img SRC="store.jpg" height=26 width=26><a NAME="MEMORY_ENHANCEMENT"></a><b> Store enhancement (Memory):</b></dt>
-
-<blockquote>tore selected enhancement values to preferences.</blockquote>
-</blockquote>
-
-<center>
-<hr WIDTH="100%">
-<br><b><a href="../../c/sane/xsane/doc/sane-xsane-doc.html">INDEX</a></b></center>
-
-<p><br>
-</body>
-</html>
diff --git a/doc/sane-xsane-fax-doc.html b/doc/sane-xsane-fax-doc.html
index 5eaf593..db0ca86 100644
--- a/doc/sane-xsane-fax-doc.html
+++ b/doc/sane-xsane-fax-doc.html
@@ -1,39 +1,172 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
<title>XSane - Fax mode</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-<blockquote>
-<h3>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></h3>
-&nbsp;</blockquote>
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 height=150 width=128 align=TOP>
+</td>
+<td>
<blockquote>
-<h1>
-<u><font color="#009900">Fax mode</font></u></h1>
-This mode is a Frontend for SANE and for a faxprogram like hylafax or mgetty+sendfax
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
+<h1><font color="#009900">Main window in fax mode</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
-<center><img SRC="sane-xsane-fax.jpg" height=380 width=270>&nbsp;&nbsp;&nbsp;<img SRC="sane-xsane-fax-project.jpg" height=260 width=208></center>
-<p><br>
-<blockquote>You need to have a faxprogram like hylafax(1) or mgetty+sendfax(8)
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+This mode is a frontend for SANE and for a faxprogram like hylafax or mgetty+sendfax.
+<br>
+You need to have a faxprogram like hylafax(1) or mgetty+sendfax(8)
installed. The faxcommand and the options must be specified in the menu
-<a href="sane-xsane-setup-doc.html">Preferences/Setup</a>.</blockquote>
+<a href="sane-xsane-setup-fax-doc.html">Preferences/Setup:Fax Options</a>.
+<br>
+<br>
+<br>
+<center><img SRC="xsane-fax.jpg" alt="XSane-main-window"></center>
+<br>
+<br>
+<img SRC="xsane-colormode.jpg" alt="colormode">
+&nbsp;&nbsp;
+<b>Scanmode:</b>
+<blockquote>
+Select scanmode, e.g.: color, grayscale, halftone, lineart.
+</blockquote>
+
+<img SRC="xsane-scansource.jpg" alt="scansource">
+&nbsp;&nbsp;
+<b>Scansource:</b>
+<blockquote>
+Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder.
+</blockquote>
+
+<img SRC="xsane-medium.jpg" alt="medium">
+&nbsp;&nbsp;
+<b>Scanmedium:</b>
+<blockquote>
+Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>,
+<i>Agfa negative</i>, ... or <i>Full range</i>.
+</blockquote>
+
+<br>
+<br>
+<center><img SRC="xsane-fax-project.jpg" alt="XSane-fax-project-indow"></center>
+<br>
+
+<h4>FINE MODE:</h4>
+<blockquote>
+The faxpages are always scanned in fine mode (204 dpi * 196 lpi). If
+<i>Fine mode</i> is enabled when the project is sent all pages are sent with
+ 196lpi (fine mode), otherwise all pages are sent with 98lpi (normal mode).
+</blockquote>
+
+<h4>INSERT FILE:</h4>
+<blockquote>
+You can add an external created postscript file to the fax project. The file is copied
+to the fax project directory.
+</blockquote>
+
+<h4>SHOW PAGE:</h4>
+<blockquote>
+A postscrip viewer is called to display the selected page.
+</blockquote>
+<br>
+</blockquote>
+</td>
+</tr>
+</table>
<hr WIDTH="100%">
-<center><a href="sane-xsane-doc.html">INDEX</a></center>
-<p><br>
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
</body>
</html>
+
diff --git a/doc/sane-xsane-fax-project.jpg b/doc/sane-xsane-fax-project.jpg
deleted file mode 100644
index 03048b8..0000000
--- a/doc/sane-xsane-fax-project.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-fax.jpg b/doc/sane-xsane-fax.jpg
deleted file mode 100644
index 60d1065..0000000
--- a/doc/sane-xsane-fax.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-gimp-doc.html b/doc/sane-xsane-gimp-doc.html
index 7c4a49e..447c8e4 100644
--- a/doc/sane-xsane-gimp-doc.html
+++ b/doc/sane-xsane-gimp-doc.html
@@ -1,60 +1,206 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
<title>XSane - Gimp plugin</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 align=TOP>
+</td>
+<td>
<blockquote>
-<h1>
-<u><font color="#009900">Xsane as Gimp plugin</font></u></h1>
-<font color="#000000">If xsane is started as Gimp plugin, the scanned image
-automatically is transfered to the Gimp.</font>
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
+<h1><font color="#009900">Main window of gimp plugin</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
-<center><img SRC="sane-xsane-gimp.jpg" height=350 width=270></center>
-<blockquote>&nbsp;
-<p>To start xsane as a gimp plugin, you have to set a symbolic link from
-the xsane binary to a GIMP plug-ins directory. If xsane is located in /usr/local/bin&nbsp;
-and you use-gimp-1.0.x do:
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+If XSane is started as Gimp plugin, the scanned image automatically is transfered to the Gimp.
+<br>
+<br>
+<br>
+<center><img SRC="xsane-gimp.jpg" alt="XSane-main-window"></center>
+<br>
+<br>
+<img SRC="xsane-colormode.jpg" alt="colormode">
+&nbsp;&nbsp;
+<b>Scanmode:</b>
+<blockquote>
+Select scanmode, e.g.: color, grayscale, halftone, lineart.
+</blockquote>
+
+<img SRC="xsane-scansource.jpg" alt="scansource">
+&nbsp;&nbsp;
+<b>Scansource:</b>
+<blockquote>
+Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder.
+</blockquote>
+
+<img SRC="xsane-medium.jpg" alt="medium">
+&nbsp;&nbsp;
+<b>Scanmedium:</b>
+<blockquote>
+Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>,
+<i>Agfa negative</i>, ... or <i>Full range</i>.
+</blockquote>
+
+<img SRC="xsane-resolution.jpg" alt="resolution">
+&nbsp;&nbsp;
+<b>Scan resolution:</b>
+<blockquote>
+Select resolution that is used for scanning. If the backends makes available a
+range of resolutions (e.g. 100-600 dpi) XSane can display a slider or a
+list of resolutions. You select this via <i>Preferences/Show resolution list</i>.
+<br>
+The backend can define a list of resolutions insted of a range, in this
+case it is not possible to enable the slider.
+<p>
+To select exact resolutions with the slider click the slider with the mouse pointer
+and use the cursor keys to change the value in steps of 1, if you press <i>ctrl</i>
+and a cursor key the step is 10.
+</blockquote>
+<br>
+<br>
+To start xsane as a GIMP plugin, you have to set a symbolic link from
+the xsane binary to a GIMP plug-ins directory. In the following examples
+we assume that xsane is located in /usr/local/bin:
+<br>
+<br>
+<br>
+gimp-1.0.x:
<blockquote>
<pre>ln -s /usr/local/bin/xsane ~/.gimp/plug-ins/</pre>
+You can start xsane from the GIMP menu <i>Xtns/Xsane </i>
</blockquote>
-if you use gimp-1.1.x, you have to do:
+<br>
+<br>
+gimp-1.1.x:
<blockquote>
<pre>ln -s /usr/local/bin/xsane ~/.gimp-1.1/plug-ins/</pre>
+until gimp-1.1.9 you can start xsane from the GIMP menu <i>Xtns/Xsane </i>
+<br>
+since gimp-1.1.10 you can start xsane from the GIMP menu <i>File/Acquire</i>
+</blockquote>
+<br>
+<br>
+gimp-1.2.x:
+<blockquote>
+<pre>ln -s /usr/local/bin/xsane ~/.gimp-1.2/plug-ins/</pre>
+You can start xsane from the GIMP menu<i> File/Acquire.</i>
+</blockquote>
+<br>
+<br>
+The GIMP´s XSane or Acquire menu contains short-cuts to the SANE devices that
+were available at the time xsane was queried.
</blockquote>
-You can start xsane from the GIMP menu <i>Xtns/Xsane </i>if GIMP-version
-&lt; 1.1.9, since GIMP-version-1.1.9 you can start xsane from the GIMP
-menu<i> File/Acquire.</i> It contains short-cuts to the SANE devices that
-were available at the time xsane was queried.</blockquote>
-
-<blockquote>Note that gimp(1) caches these short-cuts in ~/.gimp/pluginrc.
-Thus, when the list of&nbsp; available devices changes (e.g., a new scanner
-is installed or the device of the scanner has changed),&nbsp; then it is
-typically desirable to rebuild this cache. To do this, you can either&nbsp;
-touch(1) the xsane binary (e.g.,"touch&nbsp; /usr/local/bin/xsane") or
-delete the plugin cache (e.g.,&nbsp; "rm&nbsp; ~/.gimp/pluginrc"). Either
+
+<blockquote>
+Note that gimp(1) caches these short-cuts in ~/.gimp/pluginrc.
+Thus, when the list of available devices changes (e.g., a new scanner
+is installed or the device of the scanner has changed), then it is
+typically desirable to rebuild this cache. To do this, you can either
+touch(1) the xsane binary (e.g.,"touch /usr/local/bin/xsane") or
+delete the plugin cache (e.g., "rm ~/.gimp*/pluginrc"). Either
way, invoking gimp(1) afterwards will cause the pluginrc to be rebuilt.
-<p>If xsane is started as GIMP plugin it always sends the scanned image
-to the GIMP, copy- or fax- mode can not selected when xsane runs as GIMP
-plugin!</blockquote>
+<br>
+<br>
+If xsane is started as GIMP plugin it always sends the scanned image to the GIMP.
+Copy and fax mode can not selected when xsane runs as GIMP plugin!
+</blockquote>
+</td>
+</tr>
+</table>
+
+<hr WIDTH="100%">
-<center>
-<p><br>
-<hr WIDTH="100%"><a href="sane-xsane-doc.html">INDEX</a></center>
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
-<p><br>
</body>
</html>
diff --git a/doc/sane-xsane-gimp.jpg b/doc/sane-xsane-gimp.jpg
deleted file mode 100644
index f183d42..0000000
--- a/doc/sane-xsane-gimp.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-histogram-doc.html b/doc/sane-xsane-histogram-doc.html
index 736bde9..6014083 100644
--- a/doc/sane-xsane-histogram-doc.html
+++ b/doc/sane-xsane-histogram-doc.html
@@ -2,34 +2,105 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
- <title>XSane - Histogram</title>
+ <title>XSane - Histogram window</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
+
+<table>
+<td width=200>
+<img SRC="xsane-logo2.jpg" hspace=30 height=150 width=128 align=TOP>
+</td>
+<td>
+<h1><dd><font color="#009900">Histogram window</font></dd></h1>
+</td>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
<blockquote>
-<h1>
-<u><font color="#009900">Histogram window</font></u></h1>
-&nbsp;
-<p>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
-
-<center><img SRC="sane-xsane-histogram.jpg" height=362 width=278></center>
-
-<p><br>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</blockquote>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<blockquote>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</blockquote>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
<blockquote>
-<blockquote>The histogram shows the color density of the area that is selected
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</blockquote>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<br>
+<center><img SRC="xsane-histogram.jpg" height=366 width=278></center>
+<br>
+<br>
+<br>
+<blockquote>
+The histogram shows the color density of the area that is selected
in the preview window. The top histogram represents the scanned raw image,
the bottom histogram represents the enhanced image. In grayscale mode,
there are three sliders in the gray range. The black slider defines the
@@ -38,18 +109,26 @@ point (gamma). If the <i>rgb default button</i> (in the xsane main window)
is not selected in color mode there are also sliders in the red, the green
and the blue range. In this case a move of a slider of the gray range also
moves the sliders of the color ranges.
-<p>The <i>I</i>, <i>R</i>, <i>G</i> and <i>B</i> buttons define if the
-<i>intensity</i>, <i>red</i>, <i>green</i> and/or <i>blue</i> histogram
-components are shown.
-<p>The curve-type button defines if the histogram curves are shown with
+<p>
+The <i>I</i>, <i>R</i>, <i>G</i> and <i>B</i> buttons define if the
+<i>intensity</i>, <i>red</i>, <i>green</i> and/or <i>blue</i>
+histogram components are shown.
+<p>
+The curve-type button defines if the histogram curves are shown with
pixels or with lines.
-<p>The <i>LOG</i> button defines if the densities are displayed linear
-or logarithmical.</blockquote>
+<p>
+The <i>LOG</i> button defines if the densities are displayed linear
+or logarithmical.
</blockquote>
+</td>
+</table>
+
<hr WIDTH="100%">
-<center><a href="sane-xsane-doc.html">INDEX</a></center>
-<p><br>
+<blockquote>
+<font size=+1>Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a></font>
+</blockquote>
+
</body>
</html>
diff --git a/doc/sane-xsane-histogram.jpg b/doc/sane-xsane-histogram.jpg
deleted file mode 100644
index a13a912..0000000
--- a/doc/sane-xsane-histogram.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-mail-doc.html b/doc/sane-xsane-mail-doc.html
new file mode 100644
index 0000000..0b70ed3
--- /dev/null
+++ b/doc/sane-xsane-mail-doc.html
@@ -0,0 +1,163 @@
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
+ <meta name="Author" content="Oliver Rauch">
+ <meta name="Description" content="scan, photocopy and fax frontend for SANE">
+ <title>XSane - Scan mode</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
+
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 height=150 width=128 align=TOP>
+</td>
+<td>
+<blockquote>
+<h1><font color="#009900">Main window in save mode</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+In the mail mode images are scanned and sent by email.
+<br>
+<br>
+<br>
+<center><img SRC="xsane-mail.jpg" alt="XSane-main-window"></center>
+<br>
+<br>
+
+<img SRC="xsane-colormode.jpg" alt="colormode">
+&nbsp;&nbsp;
+<b>Scanmode:</b>
+<blockquote>
+Select scanmode, e.g.: color, grayscale, halftone, lineart.
+</blockquote>
+
+<img SRC="xsane-scansource.jpg" alt="scansource">
+&nbsp;&nbsp;
+<b>Scansource:</b>
+<blockquote>
+Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder.
+</blockquote>
+
+<img SRC="xsane-medium.jpg" alt="medium">
+&nbsp;&nbsp;
+<b>Scanmedium:</b>
+<blockquote>
+Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>,
+<i>Agfa negative</i>, ... or <i>Full range</i>.
+</blockquote>
+
+<img SRC="xsane-resolution.jpg" alt="resolution">
+&nbsp;&nbsp;
+<b>Scan resolution:</b>
+<blockquote>
+Select resolution that is used for scanning. If the backends makes available a
+range of resolutions (e.g. 100-600 dpi) XSane can display a slider or a
+list of resolutions. You select this via <i>Preferences/Show resolution list</i>.
+<br>
+The backend can define a list of resolutions insted of a range, in this
+case it is not possible to enable the slider.
+<p>
+To select exact resolutions with the slider click the slider with the mouse pointer
+and use the cursor keys to change the value in steps of 1, if you press <i>ctrl</i>
+and a cursor key the step is 10.
+</blockquote>
+
+
+</blockquote>
+</td>
+</tr>
+</table>
+
+<hr WIDTH="100%">
+
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
+</body>
+</html>
+
diff --git a/doc/sane-xsane-main-doc.html b/doc/sane-xsane-main-doc.html
index b3f0a42..4f5c2da 100644
--- a/doc/sane-xsane-main-doc.html
+++ b/doc/sane-xsane-main-doc.html
@@ -31,7 +31,7 @@
<H1>
<U><FONT COLOR="#009900">The main window</FONT></U></H1>
&nbsp;
-<CENTER><IMG SRC="sane-xsane.jpg" HEIGHT=443 WIDTH=306></CENTER>
+<CENTER><IMG SRC="xsane.jpg" HEIGHT=443 WIDTH=306></CENTER>
<CENTER>&nbsp;</CENTER>
</BLOCKQUOTE>
diff --git a/doc/sane-xsane-preview-doc.html b/doc/sane-xsane-preview-doc.html
index 996d21d..2617e34 100644
--- a/doc/sane-xsane-preview-doc.html
+++ b/doc/sane-xsane-preview-doc.html
@@ -1,173 +1,266 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
- <title>XSane - Preview</title>
+ <title>XSane - Preview window</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 align=TOP>
+</td>
+<td>
<blockquote>
-<h3>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></h3>
-&nbsp;
-<p>&nbsp;</blockquote>
+<h1><font color="#009900">Preview window</font></h1>
+</blockquote>
+
+</td>
+</tr>
+</table>
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
<blockquote>
-<h1>
-<u><font color="#009900">Preview window</font></u></h1>
+<br>
The preview window is to select an area that you want to scan. You can
resize the preview window and zoom into the scan area.
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
-
-<center><img SRC="sane-xsane-preview.jpg" height=643 width=407></center>
-
-<p><br>
-<blockquote>&nbsp;
-<br>With the smaller, black dashed frame in the preview you select the
-area that shall be scanned. The larger, red dashed frame is only available
-in COPY-mode, it shows the size of the page of the selected printer relative
-to the zoom scale.</blockquote>
-
-<blockquote><img SRC="sane-xsane-pipette-white.jpg" height=26 width=27><a NAME="PIPETTE_WHITE"></a><b><u>Pipette
-white:</u></b>
-<blockquote>Use mouse pointer and click a point that shall be white. If
+<br>
+<br>
+<br>
+<center><img SRC="xsane-preview.jpg" alt="preview-window"></center>
+<br>
+<blockquote>
+<br>With the smaller, black/white dashed frame in the preview you select the
+area that shall be scanned. The larger, red/green dashed frame is only
+available in COPY-mode (and when you scan to a postscript file). It shows
+the size of the page of the selected printer relative to the zoom scale.
+</blockquote>
+
+<img SRC="xsane-pipette-white.jpg" alt="pipette-white">
+&nbsp;&nbsp;
+<a NAME="PIPETTE_WHITE"></a><b><u>Pipette white:</u></b>
+<blockquote>
+Use mouse pointer and click a point that shall be white. If
you use the left mouse button only the intensity is used to calculate the
white point. If <i>RGB default</i> (main window) is not activated you can
use the middle mouse button to define the white point for each color component.
-You can abort the selection by pressing the right mouse button.</blockquote>
-
-<dt>
-<img SRC="sane-xsane-pipette-gray.jpg" height=26 width=28>&nbsp;<a NAME="PIPETTE_GRAY"></a><b><u>Pipette
-gray:</u></b></dt>
+You can abort the selection by pressing the right mouse button.
+</blockquote>
+<img SRC="xsane-pipette-gray.jpg" alt="pipette-gray">
+&nbsp;&nbsp;
+<a NAME="PIPETTE_GRAY"></a><b><u>Pipette gray:</u></b>
<blockquote>
-<dt>
Use mouse pointer and click a point that shall be medium gray. If you use
-the left mouse button only the intensity is used to calculate the white
+the left mouse button only the intensity is used to calculate the gray
point. If <i>RGB default</i> (main window) is not activated you can use
-the middle mouse button to define the white point for each color component.
-You can abort the selection by pressing the right mouse button.</dt>
+the middle mouse button to define the gray point for each color component.
+You can abort the selection by pressing the right mouse button.
</blockquote>
-<dt>
-<img SRC="sane-xsane-pipette-black.jpg" height=26 width=26>&nbsp;<a NAME="PIPETTE_BLACK"></a><b><u>Pipette
-black:</u></b></dt>
-
+<img SRC="xsane-pipette-black.jpg" alt="pipette-black">
+&nbsp;&nbsp;
+<a NAME="PIPETTE_BLACK"></a><b><u>Pipette black:</u></b>
<blockquote>
-<dt>
Use mouse pointer and click a point that shall be black. If you use the
-left mouse button only the intensity is used to calculate the white point.
+left mouse button only the intensity is used to calculate the black point.
If <i>RGB default</i> (main window) is not activated you can use the middle
-mouse button to define the white point for each color component. You can
-abort the selection by pressing the right mouse button.</dt>
+mouse button to define the black point for each color component. You can
+abort the selection by pressing the right mouse button.
</blockquote>
-<dt>
-<img SRC="sane-xsane-zoom-not.jpg" height=26 width=26>&nbsp;<a NAME="UNZOOM"></a><b><u>Unzoom:</u></b></dt>
-
+<img SRC="xsane-zoom-not.jpg" alt="zoom-not">
+&nbsp;&nbsp;
+<a NAME="UNZOOM"></a><b><u>Unzoom:</u></b>
<blockquote>
-<dt>
-Use full scan area.</dt>
+Use full scan area.
</blockquote>
-<dt>
-<img SRC="sane-xsane-zoom-out.jpg" height=27 width=27>&nbsp;<a NAME="ZOOM_OUT"></a><b><u>Zoom
-out:</u></b></dt>
-
+<img SRC="xsane-zoom-out.jpg" alt="zoom-out">
+&nbsp;&nbsp;
+<a NAME="ZOOM_OUT"></a><b><u>Zoom out:</u></b>
<blockquote>
-<dt>
-Increase preview area by 20%.</dt>
+Increase preview area by 20%.
</blockquote>
-<dt>
-<img SRC="sane-xsane-zoom-in.jpg" height=26 width=26>&nbsp;<a NAME="ZOOM_IN"></a><b><u>Zoom
-in:</u></b></dt>
+<img SRC="xsane-zoom-in.jpg" alt="zoom-in">
+&nbsp;&nbsp;
+<a NAME="ZOOM_IN"></a><b><u>Zoom in:</u></b>
+<blockquote>
+Zoom into selected area.
+</blockquote>
+<img SRC="xsane-zoom-undo.jpg" alt="zoom-undo">
+&nbsp;&nbsp;
+<a NAME="UNDO_ZOOM"></a><b><u>Undo zoom:</u></b>
<blockquote>
-<dt>
-Zoom into selected area.</dt>
+Undo last zoom.
</blockquote>
-<dt>
-<img SRC="sane-xsane-zoom-undo.jpg" height=26 width=26>&nbsp;<a NAME="UNDO_ZOOM"></a><b><u>Undo
-zoom:</u></b></dt>
+<img SRC="xsane-autoselect.jpg" alt="autoselect">
+&nbsp;&nbsp;
+<a NAME="AUTOSELECT"></a><b><u>Autoselect:</u></b>
+<blockquote>
+Select part with image(s).
+</blockquote>
+<img SRC="xsane-visible-area.jpg" alt="select-visible-area">
+&nbsp;&nbsp;
+<a NAME="SELECT_VISIBLE_AREA"></a><b><u>Select visible area:</u></b>
<blockquote>
-<dt>
-Undo last zoom.</dt>
+Select the visible area in the preview window for scanning.
</blockquote>
-<dt>
-<img SRC="sane-xsane-visible-area.jpg" height=26 width=26>&nbsp;<a NAME="SELECT_VISIBLE_AREA"></a><b><u>Select
-visible area:</u></b></dt>
+<img SRC="xsane-delete-preview-cache.jpg" alt="delete-preview-image-cache">
+&nbsp;&nbsp;
+<a NAME="DELETE_PREVIEW_CACHE"></a><b><u>Delete preview image cache:</u></b>
+<blockquote>
+Delete all images in the preview cache. When you did change anything on
+the scanning surface you should press this button to make sure that
+you do not use old preview images.
+</blockquote>
+<img SRC="xsane-preset-area.jpg" alt="preset-area">
+&nbsp;&nbsp;
+<a NAME="PRESET_AREA"></a><b><u>Preset area:</u></b>
<blockquote>
-<dt>
-Select the visible area in the preview window for scanning.</dt>
+Select a sub surface of the scan surface as maximum scan area.
+The defined areas are relative to the surface of the scanner.
+The list of preset areas can be changed by the user. Open the
+menu with a short click with the left mouse button. Move the mouse
+pointer to the menu item you want to change. Press and
+hold the right mouse button to open the context menu.
</blockquote>
-<dt>
-<b><u>Acquire Preview:</u></b></dt>
+<img SRC="xsane-rotation.jpg" alt="rotation">
+&nbsp;&nbsp;
+<a NAME="ROTATION"></a><b><u>Rotation:</u></b>
+<blockquote>
+Select rotation angel and mirror plane. Take care that the
+<i>preset areas</i> are relative to the scanner surface (not to the
+display surface): so they also are rotated on display when you select
+a rotation.
+</blockquote>
+<b><u>Acquire Preview:</u></b>
<blockquote>
-<dt>
Start preview scan. If you resized the preview window, the new preview
-is done with updated resolution.</dt>
+is done with updated resolution.
</blockquote>
-<dt>
-<b><u>Cancel Preview:</u></b></dt>
-
+<b><u>Cancel Preview:</u></b>
<blockquote>
-<dt>
-Cancel a preview scan.</dt>
-
-<dt>
-</dt>
+Cancel a preview scan.
</blockquote>
-<dt>
-<a NAME="SELECT_SCAN_AREA"></a><b><u>Left mouse button:</u></b></dt>
-
+<a NAME="SELECT_SCAN_AREA"></a><b><u>Left mouse button:</u></b>
<blockquote>
-<dt>
-<u>Select scan area:</u> Press (&amp;hold) left mouse button to define
+<u><b>Select scan area:</b></u> Press (&amp;hold) left mouse button to define
one edge, move the mouse so that the area you want to scan is in the frame
-and release the button.<br>
-<BR></dt>
-
-<dt>
-<u>Edit scan area:</u> Move the pointer over an edge of the existing selection,
-the mouse pointer changes. Now press (&amp;hold)&nbsp; the left mouse button,
-you can move the draged edge of the scanarea, then release the left mouse
-button.</dt>
+and release the button.
+<br>
+<br>
+<u><b>Edit scan area:</b></u> Move the pointer over an edge or side of the
+existing selection, the mouse pointer changes. Now press (&amp;hold) the left
+mouse button, you can move the draged edge/side of the scanarea, then release the
+left mouse button.
</blockquote>
-<dt>
-<a NAME="MOVE_SCAN_AREA"></a><b><u>Right and middle mouse button:</u></b></dt>
-
+<a NAME="MOVE_SCAN_AREA"></a><b><u>Right and middle mouse button:</u></b>
<blockquote>
-<dt>
If you press (&amp;hold) the right or the middle mouse button in the selection
-frame you can move the selection frame without resizing it.</dt>
-</blockquote>
+frame you can move the selection frame without resizing it.
</blockquote>
-<blockquote>
-<blockquote>
-<blockquote>&nbsp;</blockquote>
-</blockquote>
</blockquote>
+</td>
+</tr>
+</table>
<hr WIDTH="100%">
-<center><a href="sane-xsane-doc.html">INDEX</a></center>
-<p><br>
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
</body>
</html>
+
diff --git a/doc/sane-xsane-preview.jpg b/doc/sane-xsane-preview.jpg
deleted file mode 100644
index 892e8d8..0000000
--- a/doc/sane-xsane-preview.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-save-doc.html b/doc/sane-xsane-save-doc.html
new file mode 100644
index 0000000..8e37efa
--- /dev/null
+++ b/doc/sane-xsane-save-doc.html
@@ -0,0 +1,253 @@
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
+ <meta name="Author" content="Oliver Rauch">
+ <meta name="Description" content="scan, photocopy and fax frontend for SANE">
+ <title>XSane - Scan mode</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
+
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 height=150 width=128 align=TOP>
+</td>
+<td>
+<blockquote>
+<h1><font color="#009900">Main window in save mode</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+In the save mode an image is scanned and saved to a file.
+<br>
+<br>
+<br>
+<center><img SRC="xsane-save.jpg" alt="XSane-main-window"></center>
+<br>
+<br>
+
+<img SRC="xsane-colormode.jpg" alt="colormode">
+&nbsp;&nbsp;
+<b>Scanmode:</b>
+<blockquote>
+Select scanmode, e.g.: color, grayscale, halftone, lineart.
+</blockquote>
+
+<img SRC="xsane-scansource.jpg" alt="scansource">
+&nbsp;&nbsp;
+<b>Scansource:</b>
+<blockquote>
+Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder.
+</blockquote>
+
+<img SRC="xsane-medium.jpg" alt="medium">
+&nbsp;&nbsp;
+<b>Scanmedium:</b>
+<blockquote>
+Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>,
+<i>Agfa negative</i>, ... or <i>Full range</i>.
+</blockquote>
+
+<img SRC="xsane-resolution.jpg" alt="resolution">
+&nbsp;&nbsp;
+<b>Scan resolution:</b>
+<blockquote>
+Select resolution that is used for scanning. If the backends makes available a
+range of resolutions (e.g. 100-600 dpi) XSane can display a slider or a
+list of resolutions. You select this via <i>Preferences/Show resolution list</i>.
+<br>
+The backend can define a list of resolutions insted of a range, in this
+case it is not possible to enable the slider.
+<p>
+To select exact resolutions with the slider click the slider with the mouse pointer
+and use the cursor keys to change the value in steps of 1, if you press <i>ctrl</i>
+and a cursor key the step is 10.
+</blockquote>
+
+
+<img SRC="xsane-disk.jpg" alt="disk">
+&nbsp;&nbsp;
+<b>Select filename:</b>
+<blockquote>
+If you press the disk icon a browse dialog is opened where you can select the name
+of the image file that is created when the next scan is done.
+You also can enter the filename directly to the text box right to the disk icon.
+If no path is entered XSane saves the file into the directory selected in
+<i>Preferences/Change directory</i>.
+<p>
+<b>Step:</b>
+<blockquote>
+If there is a counter in the filename (image-0001.jpg) the counter is increased by
+the number selected in this box.
+</blockquote>
+
+<b>Type:</b>
+<blockquote>
+<i>by ext</i> means that the filetype is selected by the extension of the filename.
+When you select a filetype in this box XSane automatically appends the correct
+extension to the filename, you should not append a file extension in this case.
+</blockquote>
+
+
+<b>Supported filetypes:</b>
+
+<blockquote>
+<i>Pnm</i> and <i>ps</i> (and raw) are always available. The
+other formats are only available if necessary libraries are present and
+support is compiled in. For <i>png</i> you need libpng and libz, for
+<i>jpeg</i> you need jpeglib, for <i>tiff</i> you need libtiff.
+</blockquote>
+
+<blockquote>
+The <i>raw</i> format is a 16 bit binary format. Some programs can read
+<i>raw</i> files as <i>pnm</i>-format. For the <i>pnm</i> format
+only 8 bit binary and ascii and 16 bit ascii are defined. We suggest
+not to use the <i>raw</i> format for storing images you want to view, it is
+meant for post-processing with programs you write yourself. The advantage
+is that this format produces much smaller files than the 16 bit ascii
+<i>pnm</i> format does.
+</blockquote>
+
+<blockquote>
+<b>The supported output formats depend on the bit depth of the scanned image:</b>
+<p>
+<b><u>1 bit/pixel black/white mode:</u></b>
+<blockquote>
+<font color="#000099">pnm = pbm, png</font><br>
+<font color="#000099">ps, jpeg and tiff are converted to 8 bit grayscale mode.</font>
+</blockquote>
+<p>
+<b><u>8 bits/pixel grayscale mode:</u></b>
+<blockquote>
+<font color="#000099">pnm = pgm, png, ps, jpeg and tiff</font>
+</blockquote>
+<p>
+<b><u>16 bits/pixel grayscale mode (9-16 bits):</u></b>
+<blockquote>
+<font color="#000099">pnm (ascii), png, raw and tiff</font>
+</blockquote>
+<p>
+<b><u>24 bits/pixel RGB-color mode (8 bits/color):</u></b>
+<blockquote>
+<font color="#000099">pnm = ppm, png, ps, jpeg and tiff</font>
+</blockquote>
+<p>
+<b><u>48 bits/pixel RGB-color mode (9-16 bits/color):</u></b>
+<blockquote>
+<font color="#000099">pnm (ascii), png, raw and tiff</font>
+</blockquote>
+
+</blockquote>
+
+<b><u><font color="#009900">optional: (default: not compiled in)</font></u></b>
+
+<blockquote>
+<b><u>32 bits/pixel RGBA-color mode (8 bits/color):</u></b>
+<blockquote>
+<font color="#000099">rgba (raw) and png with alpha channel</font>
+</blockquote>
+
+<b><u>64 bits/pixel RGBA-color mode (9-16 bits/color):</u></b>
+<blockquote>
+<font color="#000099">rgba (raw) and png with alpha channel</font>
+</blockquote>
+
+</blockquote>
+
+</blockquote>
+</blockquote>
+</td>
+</tr>
+</table>
+
+<hr WIDTH="100%">
+
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
+</body>
+</html>
+
diff --git a/doc/sane-xsane-scan-doc.html b/doc/sane-xsane-scan-doc.html
deleted file mode 100644
index 6995bf9..0000000
--- a/doc/sane-xsane-scan-doc.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
- <meta name="Author" content="Oliver Rauch">
- <meta name="Description" content="scan, photocopy and fax frontend for SANE">
- <title>XSane - Scan mode</title>
-</head>
-<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
-
-<br>&nbsp;
-<blockquote>
-<h1>
-<u><font color="#009900">Scan mode (stand alone)</font></u></h1>
-The scan mode is to scan an image and save it to a file.
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
-
-<center><img SRC="sane-xsane.jpg" height=416 width=270></center>
-
-<blockquote>&nbsp;</blockquote>
-
-<h3>
-<u><font color="#009900">Supported output formats:</font></u></h3>
-
-<blockquote>You can select the output format by the filename extension
-(menu = "by ext") or by selecting the file format in the menu. Possible
-are: <i>pnm, png, ps, jpeg, raw </i>and<i> tiff.</i></blockquote>
-
-<blockquote><i>Pnm</i> and <i>ps</i> (and raw) are always available. The
-other formats are only available if necessary libraries are present (at
-compilation time AND while xsane is executed). For <i>png</i> you need
-libpng and libz, for <i>jpeg</i> you need jpeglib, for <i>tiff</i> you
-need libtiff.</blockquote>
-
-<blockquote>The <i>raw</i> format is a 16 bit format comparable to 16 bit
-binary <i>pnm</i> format that is not defined, for <i>pnm</i> the 16 bit
-format only is defined as ascii mode which generates huge and slow files.</blockquote>
-
-<blockquote><b>The supported output formats depend on the bit depth of
-the scanned image:</b>
-<h4>
-<u><font color="#990000">1 bit/pixel black/white mode:</font></u></h4>
-
-<blockquote><font color="#000099">pnm = pbm, png</font>
-<br><font color="#000099">ps, jpeg and tiff are converted to 8 bit grayscale
-mode.</font></blockquote>
-
-<h4>
-<u><font color="#990000">8 bits/pixel grayscale mode:</font></u></h4>
-
-<blockquote><font color="#000099">pnm = pgm, png, ps, jpeg and tiff</font></blockquote>
-
-<h4>
-<u><font color="#990000">16 bits/pixel grayscale mode (9-16 bits):</font></u></h4>
-
-<blockquote><font color="#000099">pnm (ascii), png and raw</font></blockquote>
-
-<h4>
-<u><font color="#990000">24 bits/pixel RGB-color mode (8 bits/color):</font></u></h4>
-
-<blockquote><font color="#000099">pnm = ppm, png, ps, jpeg and tiff</font></blockquote>
-
-<h4>
-<u><font color="#990000">48 bits/pixel RGB-color mode (9-16 bits/color):</font></u></h4>
-
-<blockquote><font color="#000099">pnm (ascii), png and raw</font></blockquote>
-
-<h4>
-<u><font color="#990000">32 bits/pixel RGBA-color mode (8 bits/color):</font></u></h4>
-
-<blockquote><font color="#000099">rgba (raw) and png with alpha channel</font></blockquote>
-
-<h4>
-<u><font color="#990000">64 bits/pixel RGBA-color mode (9-16 bits/color):</font></u></h4>
-
-<blockquote><font color="#000099">rgba (raw) and png with alpha channel</font></blockquote>
-</blockquote>
-
-<center>
-<hr WIDTH="100%">
-<br><a href="/usr/local/share/sane/sane-xsane-doc.html">INDEX</a></center>
-
-<p><br>
-<br>
-</body>
-</html>
diff --git a/doc/sane-xsane-setup-copy-doc.html b/doc/sane-xsane-setup-copy-doc.html
index bbd36b6..56f93b1 100644
--- a/doc/sane-xsane-setup-copy-doc.html
+++ b/doc/sane-xsane-setup-copy-doc.html
@@ -1,96 +1,169 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
- <title>XSane - Setup</title>
+ <title>XSane - Copy setup</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
-<dd>
-</dd>
-<dd>
-</dd>
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 align=TOP>
+</td>
+<td>
+<blockquote>
+<h1><font color="#009900">Copy setup</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
-<dd>
-</dd>
-<blockquote>
-<h1>
-<u><font color="#009900">Copy setup</font></u></h1>
-&nbsp;
-<p>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
-
-<center><img SRC="sane-xsane-setup-copy.jpg" height=501 width=391></center>
+<hr WIDTH="100%">
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+You open the setup window via the menu <i>preferences/setup</i> in the
+main window of xsane.
+<br>
+<br>
+<br>
+<center><img SRC="xsane-setup-copy.jpg" alt="XSane-setup-copy-window"></center>
+<br>
+<br>
+<br>
+<h4>NAME:</h4>
<blockquote>
-<h4>
-NAME:</h4>
+Define the name for the following printer definition.
</blockquote>
+<h4>COMMAND:</h4>
<blockquote>
-<blockquote>Define the name for the following printer definition.</blockquote>
-
-<h4>
-COMMAND:</h4>
-
-<blockquote>Enter the command with which you print files. The command has
-to read the file from the standard input. If you use the bsd printing system,
-this is "lpr -", if you use the old printing system, this should be "lp
--".</blockquote>
+Enter the command with which you print files. The command has
+to read the file from the standard input. If you use the bsd printing system
+this is "lpr", if you use the old printing system this should be "lp".
</blockquote>
+<h4>COPY NUMBER OPTION:</h4>
<blockquote>
-<h4>
-COPY NUMBER OPTION:</h4>
+Enter the option of the printer command with wich the number
+of copies are specified. If you use the bsd printing system (lpr)
+this is "-#", if you use the old printing system (lp) this should be "-n".
+This option is the last option passed to the printerrcommand
+so if you specify a ";#" the option is ignored.
</blockquote>
+<h4>RESOLUTION:</h4>
<blockquote>
-<blockquote>Enter the option of the printer command with wich the number
-of copies are specified. This option is the last option passed to the printerrcommand
-so if you specify a ";#" the option is ignored.</blockquote>
-
-<h4>
-RESOLUTION:</h4>
-
-<blockquote>With <i>resolution</i> you specify the resolution that shall
+With <i>resolution</i> you specify the resolution that shall
be used for printing. It is not always necessary to set this value to the
resolution of the printer. Especally in grayscale and color mode it normally
is good to set this value to the half or the quarter of the printer resolution
because the printer needs a greater resolution to do the dithering. This
value does not effect a change of the image size, the image size only depends
-on the given zoom factor.</blockquote>
-
-<h4>
-PRINT AREA (WIDTH, HEIGHT, LEFT OFFSET, BOTTOM OFFSET):</h4>
+on the given zoom factor.
+</blockquote>
-<blockquote>Each printer has it's own area size and position where it is
-able to print.</blockquote>
+<h4>PRINT AREA (WIDTH, HEIGHT, LEFT OFFSET, BOTTOM OFFSET):</h4>
+<blockquote>
+Each printer has it's own area size and position where it is able to print.
+</blockquote>
-<h4>
-PRINTER GAMMA VALUES:</h4>
+<h4>PRINTER GAMMA VALUES:</h4>
+<blockquote>
+Addidtional gamma value for printing. The <i>Printer gamma value</i>
+is used for grayscale and as common value for color mode. The
+red, green and blue values are for color correction.
+</blockquote>
-<blockquote>Addidtional gamma value for printing. The <i>Printer gamma
-value</i> is used for grayscale and as common value for color mode. The
-red, green and blue values are for color correction.</blockquote>
</blockquote>
+</td>
+</tr>
+</table>
+
<hr WIDTH="100%">
-<center><a href="sane-xsane-doc.html">INDEX</a></center>
-<p><br>
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
</body>
</html>
+
diff --git a/doc/sane-xsane-setup-copy.jpg b/doc/sane-xsane-setup-copy.jpg
deleted file mode 100644
index abe3d35..0000000
--- a/doc/sane-xsane-setup-copy.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-setup-display-doc.html b/doc/sane-xsane-setup-display-doc.html
index 948e4d1..7c1bb31 100644
--- a/doc/sane-xsane-setup-display-doc.html
+++ b/doc/sane-xsane-setup-display-doc.html
@@ -1,99 +1,173 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
- <title>XSane - Setup</title>
+ <title>XSane - Display setup</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
-<dd>
-</dd>
-
-<dd>
-</dd>
-
-<dd>
-</dd>
-
-<dd>
-</dd>
-
-<dd>
-</dd>
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 align=TOP>
+</td>
+<td>
<blockquote>
-<h1>
-<u><font color="#009900">Display setup</font></u></h1>
+<h1><font color="#009900">Display setup</font></h1>
</blockquote>
+</td>
+</tr>
+</table>
-<blockquote>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
-
-<h3>
-<font color="#009900"></font></h3>
-<font color="#009900"></font>
-<center>
-<p><br><img SRC="sane-xsane-setup-display.jpg" height=501 width=391></center>
-
-<p><br>
-<blockquote>
-<h4>
-MAIN WINDOW SIZE FIXED:</h4>
-</blockquote>
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+You open the setup window via the menu <i>preferences/setup</i> in the
+main window of xsane.
+<br>
+<br>
+<br>
+<center><p><img SRC="xsane-setup-display.jpg" alt="XSane-setup-display-window"></center>
+<br>
+<br>
+<br>
+<h4>MAIN WINDOW SIZE FIXED:</h4>
<blockquote>
-<blockquote>Select if the main window size shall be fixed (the window size
+Select if the main window size shall be fixed (the window size
is defined by xsane) or it shall be a resizable with scrollbars if necessary.
The change of this option will take effect at the next start of xsane.
The option can be overwritten by the command line options --Fixed/-F or
---Resizeable/-R.</blockquote>
+--Resizeable/-R.
</blockquote>
+<h4>USE PRIVATE COLORMAP:</h4>
<blockquote>
-<h4>
-PRESERVE PREVIEW IMAGE:</h4>
+If enabled and if the X server runs in 8 bit mode (256 colors)
+then the preview uses an own color map.
+<br>I suggest you do <b>not</b> run the X server in 8 bit mode!
</blockquote>
-<blockquote>
-<blockquote>Preserve the preview image for the next program start. The
-last preview image is displayed on the next program start, you don`t need
-to redo the preview scan.</blockquote>
-
-<h4>
-USE PRIVATE COLORMAP:</h4>
-
-<blockquote>If enabled and if the X server runs in 8 bit mode (256 colors)
-then the preview uses an own color map.</blockquote>
+<h4>PREVIEW OVERSAMPLING:</h4>
-<h4>
-PREVIEW GAMMA:</h4>
+<blockquote>
+Defines a multiplier for the preview scan resolution. A value
+of 1.0 means that the preview resolution is calculated that way that for
+each pixel in the preview window the scanner produces one pixel. If you
+want to be able to zoom into the preview and get a higher resolution without
+a new preview scan enter a factor (between 1.0 and 2.0) with that the calculated
+resolution shall be multiplied. But the handling of the preview gets much
+slower if you enter large values. So I suggest a value of 1.0 on slow computers
+and a value up to 2.0 on fast computers.
+</blockquote>
-<blockquote>Set the gamma correction value for the preview image. This
-is to get correct colors on your monitor.</blockquote>
+<h4>PREVIEW GAMMA:</h4>
+<blockquote>
+Set the gamma correction value for the preview image. This is to get correct
+colors on your monitor.
+</blockquote>
-<h4>
-HELPFILE VIEWER:</h4>
+<h4>DISABLE&nbsp;GIMP PREVIEW GAMMA:</h4>
+<blockquote>
+When xsane is started as gimp plugin do not use preview gamma.
+</blockquote>
-<blockquote>Enter a program to show the helpfiles. It must be a html-viewer.
+<h4>HELPFILE VIEWER:</h4>
+<blockquote>
+Enter a program to show the helpfiles. It must be a html-viewer.
If you enter the keywrod "netscape-remote", xsane uses a already running
netscape to show the onlinehelp. If you run kde, you may want to enter
-"kdehelp" here.</blockquote>
+"kdehelp" here.
</blockquote>
+</blockquote>
+</td>
+</tr>
+</table>
+
<hr WIDTH="100%">
-<center><a href="sane-xsane-doc.html">INDEX</a></center>
-<p><br>
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
</body>
</html>
+
diff --git a/doc/sane-xsane-setup-display.jpg b/doc/sane-xsane-setup-display.jpg
deleted file mode 100644
index e7d9d92..0000000
--- a/doc/sane-xsane-setup-display.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-setup-enhancement-doc.html b/doc/sane-xsane-setup-enhancement-doc.html
new file mode 100644
index 0000000..5827198
--- /dev/null
+++ b/doc/sane-xsane-setup-enhancement-doc.html
@@ -0,0 +1,195 @@
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Oliver Rauch">
+ <meta name="Description" content="scan, photocopy and fax frontend for SANE">
+ <title>XSane - Enhancement setup</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
+
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 align=TOP>
+</td>
+<td>
+<blockquote>
+<h1><font color="#009900">Enhancement setup</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+You open the setup window via the menu <i>preferences/setup</i> in the
+main window of xsane.
+<br>
+<br>
+<br>
+<center><img SRC="xsane-setup-enhancement.jpg" alt="XSane-setup-enhancement-window"></center>
+<br>
+<br>
+<h4>THRESHOLD OPTION:</h4>
+<blockquote>
+There are three options available:
+<ul>
+<li><b>Standard options window (lineart)</b></li>
+</ul>
+<blockquote>
+The threshold option is kept untouched. If the backend makes
+available a "threshold" option you find it in the standard or advanced
+options window. You have to do a new preview scan to see changes of the
+threshold value.
+</blockquote>
+
+<ul>
+<li><b>XSane main window (lineart)</b></li>
+</ul>
+<blockquote>
+If the backend makes available a "threshold" option it is moved
+to the main window. The value range is normalized (see
+<i>THRESHOLD MINIMUM, MAXIMUM, MULTIPLIER, OFFSET</i>).
+You have to do a new preview scan to see changes of the threshold value.
+</blockquote>
+
+<ul>
+<li><b>XSane main window (grayscale->lineart)</b></li>
+</ul>
+<blockquote>
+If the backend makes available a "threshold" option it is moved
+to the main window. The preview scan is done in grayscale mode (see
+<i>NAME OF GRAYSCALE SCANMODE</i>) and transformed to black/white. Changes
+of the threshold value are visible in the preview window without a new preview
+scan. The value range of the threshold option is normalized (see
+<i>THRESHOLD MINIMUM, MAXIMUM, MULTIPLIER, OFFSET</i>).
+</blockquote>
+</blockquote>
+</blockquote>
+
+<h4>THRESHOLD MINIMUM, MAXIMUM, MULTIPLIER, OFFSET:</h4>
+<blockquote>
+These values are used to make the threshold function of the
+backends work the same way XSane does handle it. This is:
+<b>the threshold value defines the brightness level in % that is needed
+to get a white point. A value of 0% creates a totally white image, a value
+of 100% creates a totally black image.</b>
+<br>
+If the threshold function of the backend does not cover the full range
+(0-100% = white...black), you can reduce the range with the values MINIMUM
+and MAXIMUM. If the backend defines another value range (e.g 0-255 ) you
+have to enter a MULTIPLIER (2.55 for rang 0-255), with the OFFSET value
+you can shift the range linear.
+<br>
+<br>
+<b>The calculation is:</b>
+<blockquote>
+<b>backend_threshold = OFFSET + MULTIPLIER * xsane_threshold</b>
+</blockquote>
+<b>where the user can select xsane_threshold in the range from MINIMUM to MAXIMUM.</b>
+</blockquote>
+
+<h4>NAME OF GRAYSCALE SCANMODE:</h4>
+<blockquote>
+If you want to do a grayscale previewscan when lineart scanmode
+is selected, you have to tell xsane the name of the grayscale mode. This
+is because the scanmode is defined by the backend and differen backends
+may use different names. You have to enter the original name (not translated)
+case sensitive (take a look at the scanmode selection menu in the xsane
+main window).
+<br>
+The name should be something like
+<blockquote>
+<b><i>Gray</i></b>
+</blockquote>
+
+</blockquote>
+</td>
+</tr>
+</table>
+
+<hr WIDTH="100%">
+
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
+</body>
+</html>
diff --git a/doc/sane-xsane-setup-fax-doc.html b/doc/sane-xsane-setup-fax-doc.html
index a5d3953..f44745c 100644
--- a/doc/sane-xsane-setup-fax-doc.html
+++ b/doc/sane-xsane-setup-fax-doc.html
@@ -1,104 +1,175 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
- <title>XSane - Setup</title>
+ <title>XSane - Fax setup</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
-<blockquote>
-<h1>
-<u><font color="#009900">Fax setup</font></u></h1>
-&nbsp;
-<p>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
-
-<center><img SRC="sane-xsane-setup-fax.jpg" height=501 width=391></center>
-
-<p><br>
-<blockquote>
-<h4>
-COMMAND:</h4>
-
-<blockquote>Enter command to send/spool faxfiles.
-<dd>
-<b>hylafax: "sendfax"</b></dd>
-<dd>
-<b>mgetty+sendfax: "faxspool"</b></dd>
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 align=TOP>
+</td>
+<td>
+<blockquote>
+<h1><font color="#009900">Fax setup</font></h1>
</blockquote>
+</td>
+</tr>
+</table>
-<h4>
-RECEIVER OPTION:</h4>
-<blockquote>Option to set receiver phone number or address.
-<dd>
-<b>hylafax: "-d"</b></dd>
+<hr WIDTH="100%">
-<dd>
-<b>mgetty+sendfax: leave free</b></dd>
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+You open the setup window via the menu <i>preferences/setup</i> in the
+main window of xsane.
+<br>
+<br>
+<br>
+<center><img SRC="xsane-setup-fax.jpg" alt="Xsane-setup-fax-window"></center>
+<br>
+<br>
+<br>
+
+<h4>COMMAND:</h4>
+<blockquote>
+Enter command to send/spool faxfiles.
+<b>hylafax: "sendfax"</b>
+<b>mgetty+sendfax: "faxspool"</b>
</blockquote>
-<h4>
-POSTSCRIPTFILE OPTION:</h4>
+<h4>RECEIVER OPTION:</h4>
+<blockquote>
+Option to set receiver phone number or address.
+<b>hylafax: "-d"</b>
+<b>mgetty+sendfax: leave free</b>
+</blockquote>
-<blockquote>If there is an option that must be set before the filenames
+<h4>POSTSCRIPTFILE OPTION:</h4>
+<blockquote>
+If there is an option that must be set before the filenames
of the faxfile or if it is necessary to specify an option for files in
postscript format, enter this option - otherwise let this field free.
-<dd>
-<b>hylafax: leave free</b></dd>
-
-<dd>
-<b>mgetty+sendfax: leave free</b></dd>
+<b>hylafax: leave free</b>
+<b>mgetty+sendfax: leave free</b>
</blockquote>
-<h4>
-NORMAL MODE OPTION:</h4>
-
+<h4>NORMAL MODE OPTION:</h4>
<blockquote>If there is an option to set normal mode (98lpi) then enter
this option - otherwise let this field free.
-<dd>
-<b>hylafax: "-l"</b></dd>
-
-<dd>
-<b>mgetty+sendfax: "-n"</b></dd>
+<b>hylafax: "-l"</b>
+<b>mgetty+sendfax: "-n"</b>
</blockquote>
-<h4>
-FINE MODE OPTION:</h4>
-
-<blockquote>If there is an option to set fine mode (196lpi) then enter
+<h4>FINE MODE OPTION:</h4>
+<blockquote>
+If there is an option to set fine mode (196lpi) then enter
this option - otherwise let this field free.
-<dd>
-<b>hylafax: "-m"</b></dd>
+<b>hylafax: "-m"</b>
+<b>mgetty+sendfax: leave free</b>
+</blockquote>
-<dd>
-<b>mgetty+sendfax: leave free</b></dd>
+<h4>VIEWER:</h4>
+<blockquote>
+Enter a program to show the postscript fax files on the screen.
+<br>
+E.g. this can be "ghostscript" or "xv".
</blockquote>
-<h4>
-VIEWER:</h4>
+<h4>PRINT AREA (WIDTH, HEIGHT, LEFT OFFSET, BOTTOM OFFSET):</h4>
+<blockquote>
+Define size and position of printable area on faxpage.
+</blockquote>
-<blockquote>Enter a program to show the postscript fax files on the screen.
-<br>E.g. this can be "ghostscript" or "xv".</blockquote>
</blockquote>
+</td>
+</tr>
+</table>
<hr WIDTH="100%">
-<center><a href="sane-xsane-doc.html">INDEX</a></center>
-<p><br>
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
</body>
</html>
+
diff --git a/doc/sane-xsane-setup-fax.jpg b/doc/sane-xsane-setup-fax.jpg
deleted file mode 100644
index f2e66de..0000000
--- a/doc/sane-xsane-setup-fax.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-setup-image-doc.html b/doc/sane-xsane-setup-image-doc.html
new file mode 100644
index 0000000..ffbb474
--- /dev/null
+++ b/doc/sane-xsane-setup-image-doc.html
@@ -0,0 +1,167 @@
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Oliver Rauch">
+ <meta name="Description" content="scan, photocopy and fax frontend for SANE">
+ <title>XSane - Save setup</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
+
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 align=TOP>
+</td>
+<td>
+<blockquote>
+<h1><font color="#009900">Image setup</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+You open the setup window via the menu <i>preferences/setup</i> in the
+main window of xsane.
+<br>
+<br>
+<br>
+<center><p><br><img SRC="xsane-setup-image.jpg" alt="XSane-setup-image-window"></center>
+<br>
+<br>
+<br>
+<h4>REDUCE 16 BIT IMAGE TO 8 BIT:</h4>
+<blockquote>
+When the image is scanned with 16 bit/color then xsane does reduce the
+color depth to 8 bit/color before saving the image.
+</blockquote>
+
+<h4>JPEG IMAGE QUALITY:</h4>
+<blockquote>
+If the image is saved in <i>jpeg</i> format this value defines
+the quality of the image. Low values mean low quality and low file size,
+high values mean high quality and high file size.
+</blockquote>
+
+<h4>PNG IMAGE COMPRESSION:</h4>
+<blockquote>
+If the image is saved in <i>png</i> format this value defines
+the compression level. The quality of the image keeps the same, low values
+mean low compression, large files and low compression time. High values
+mean high compression, smaller files and high compression time.
+</blockquote>
+
+<h4>TIFF 16 BIT IMAGE COMPRESSION:</h4>
+<blockquote>
+If the image is saved in 16 bit/color <i>tiff</i> format this selection defines
+if xsane does <i>pack bits</i> or <i>no compression</i> is used.
+</blockquote>
+
+<h4>TIFF 8 BIT IMAGE COMPRESSION:</h4>
+<blockquote>
+If the image is saved in 8 bit/color <i>tiff</i> format this selection defines
+if xsane does <i>pack bits</i>, use <i>JPEG DCT compression</i> or <i>no compression</i>
+is used.
+</blockquote>
+
+<h4>TIFF lineart IMAGE COMPRESSION:</h4>
+<blockquote>
+If the image is saved in lineart <i>tiff</i> format this selection defines
+if xsane does <i>pack bits</i>, use <i>CCIT Group 4 Fax compression</i>,
+<i>CCIT Group 3 Fax compression</i>, <i>CCIT 1D Huffman compression</i>,
+<i>JPEG DCT compression</i> or <i>no compression</i>
+is used.
+</blockquote>
+
+</blockquote>
+</td>
+</tr>
+</table>
+
+<hr WIDTH="100%">
+
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
+</body>
+</html>
+
diff --git a/doc/sane-xsane-setup-mail-doc.html b/doc/sane-xsane-setup-mail-doc.html
new file mode 100644
index 0000000..128b96e
--- /dev/null
+++ b/doc/sane-xsane-setup-mail-doc.html
@@ -0,0 +1,190 @@
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Oliver Rauch">
+ <meta name="Description" content="scan, photocopy and fax frontend for SANE">
+ <title>XSane - Mail setup</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
+
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 align=TOP>
+</td>
+<td>
+<blockquote>
+<h1><font color="#009900">Mail setup</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+You open the setup window via the menu <i>preferences/setup</i> in the
+main window of xsane.
+<br>
+<br>
+<br>
+<center><img SRC="xsane-setup-mail.jpg" alt="Xsane-setup-mail-window"></center>
+<br>
+<br>
+<br>
+
+<h4>FROM:</h4>
+<blockquote>
+Enter your email address.
+</blockquote>
+
+<h4>REPLY TO:</h4>
+<blockquote>
+Enter the email address to which the receiver shall answer.
+If this is the same as the <i>from</i> address enter the same
+address again.
+</blockquote>
+
+<h4>SMTP SERVER:</h4>
+<blockquote>
+This is the address of the smtp server.
+</blockquote>
+
+<h4>SMPT PORT:</h4>
+<blockquote>
+Here you have to enter the port number on which the smtp server
+expects smtp connections. The standard port number is 25.
+</blockquote>
+
+<h4>POP3 authentification:</h4>
+<blockquote>
+Some smtp servers expect authentification before accepting
+any mail. The smtp protocol does not define any authentification
+routines. A lot of smtp servers expect that you authentificate
+yourself via the pop3 authentification routines.
+</blockquote>
+
+<h4>POP3 server:</h4>
+<blockquote>
+This is the address of the pop3 server.
+</blockquote>
+
+<h4>POP3 port:</h4>
+<blockquote>
+Here you have to enter the port number on which the pop3 server
+expects pop3 connections. The standard port number is 110.
+</blockquote>
+
+<h4>POP3 user:</h4>
+<blockquote>
+Enter your username for the pop3 server.
+</blockquote>
+
+<h4>POP3 password:</h4>
+<blockquote>
+Enter the password for the pop3 server. Pay attention, this can
+be a security hole. The user and password is stored in the
+xsane.rc file in ~/.sane/xsane/xsane.rc. The password is
+not stored in plain text but it is simple to reconstruct
+the password from the entry in xsane.rc. If you enter
+your pop3 password here make sure no one gets access
+to your xsane.rc file.
+</blockquote>
+
+<h4>Viewer(png):</h4>
+<blockquote>
+Enter the program that shall be used to display a scanned
+image when the <i>show image</i> button is pressed in the mail dialog.
+The program has to be able to display png images.
+</blockquote>
+
+</blockquote>
+</td>
+</tr>
+</table>
+
+<hr WIDTH="100%">
+
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
+</body>
+</html>
+
diff --git a/doc/sane-xsane-setup-save-doc.html b/doc/sane-xsane-setup-save-doc.html
index 5e8cb2d..7ad89c5 100644
--- a/doc/sane-xsane-setup-save-doc.html
+++ b/doc/sane-xsane-setup-save-doc.html
@@ -1,92 +1,150 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
- <title>XSane - Setup</title>
+ <title>XSane - Save setup</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
-<dd>
-</dd>
-
-<dd>
-</dd>
-
-<dd>
-</dd>
-
-<dd>
-</dd>
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 align=TOP>
+</td>
+<td>
<blockquote>
-<h1>
-<u><font color="#009900">Saving setup</font></u></h1>
-&nbsp;
-<p>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
+<h1><font color="#009900">Save setup</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
-<blockquote>&nbsp;</blockquote>
-<h3>
-<font color="#009900"></font></h3>
-<font color="#009900"></font>
-<center>
-<p><br><img SRC="sane-xsane-setup-save.jpg" height=501 width=391></center>
+<hr WIDTH="100%">
-<p><br>
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+You open the setup window via the menu <i>preferences/setup</i> in the
+main window of xsane.
+<br>
+<br>
+<br>
+<center><p><br><img SRC="xsane-setup-save.jpg" alt="XSane-setup-save-window"></center>
+<br>
+<br>
+<br>
+<h4> PERMISSIONS:</h4>
<blockquote>
-<h4>
-OVERWRITE WARNING:</h4>
+You can set permissions with which a file or directory is created.
+The user permissions are not changeable because needs the predefined user
+permissions for correct function.
</blockquote>
+<h4>OVERWRITE WARNING:</h4>
<blockquote>
-<blockquote>If enabled, a warning comes up before an existing file is overwritten.</blockquote>
-
-<h4>
-INCREASE FILENAME COUNTER:</h4>
-
-<blockquote>If enabled, the number in the filename of the following form
-is automatically increased after a scan is completed:
-<blockquote><i>image-001.ext</i></blockquote>
-The number of digits is free and will not be changed, in case of an overflow,
-a warning is printed and the counter becomes 0.</blockquote>
-
-<blockquote>If an automatic document feeder is used the filename should
-contain a counter and this option should be enabled.</blockquote>
-
-<h4>
-SKIP EXISTING NUMBERS:</h4>
-
-<blockquote>If <i>increase filename counter</i> is enabled, filenames that
-already exist are skipped!</blockquote>
-
-<h4>
-JPEG IMAGE QUALITY:</h4>
-
-<blockquote>If the image is saved in <i>jpeg</i> format this value defines
-the quality of the image. Low values mean low quality and low file size,
-high values mean high quality and high file size.</blockquote>
+If enabled, a warning comes up before an existing file is overwritten.
+</blockquote>
-<h4>
-PNG IMAGE COMPRESSION:</h4>
+<h4>SKIP EXISTING NUMBERS:</h4>
+<blockquote>
+If filename counter is automatically increased, the filenames that
+already exist are skipped!
+</blockquote>
-<blockquote>If the image is saved in <i>png</i> format this value defines
-the compression level. The quality of the image keeps the same, low values
-mean low compression, large files and low compression time. High values
-mean high compression, smaller files and high compression time.</blockquote>
+<h4>FILENAME COUNTER LENGTH:</h4>
+<blockquote>
+If the filename includes a counter (image-0003.pnm), the length
+of the counter can be defined. This can be interesting eg. if you want
+to scan 500 images and want that the ordering the images by their filenames
+creates the same order like the counter does. If you select <i>inactive</i>
+the counter is not changed by xsane.
</blockquote>
+</blockquote>
+</td>
+</tr>
+</table>
<hr WIDTH="100%">
-<center><a href="sane-xsane-doc.html">INDEX</a></center>
-<p><br>
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
</body>
</html>
+
diff --git a/doc/sane-xsane-setup-save.jpg b/doc/sane-xsane-setup-save.jpg
deleted file mode 100644
index 07b6a22..0000000
--- a/doc/sane-xsane-setup-save.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-standard-doc.html b/doc/sane-xsane-standard-doc.html
index 3a09d7e..cbd1ae2 100644
--- a/doc/sane-xsane-standard-doc.html
+++ b/doc/sane-xsane-standard-doc.html
@@ -1,33 +1,125 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.6 [en] (X11; I; Linux 2.2.11 i586) [Netscape]">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
<meta name="Author" content="Oliver Rauch">
<meta name="Description" content="scan, photocopy and fax frontend for SANE">
- <title>XSane - Standard options</title>
+ <title>XSane - Standrad options window</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
-&nbsp;
-<dd>
-<img SRC="xsane-logo2.jpg" height=150 width=128 align=LEFT></dd>
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 align=TOP>
+</td>
+<td>
+<blockquote>
+<h1><font color="#009900">Standard options window</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
<blockquote>
-<h1>
-<u><font color="#009900">Standard options window</font></u></h1>
-&nbsp;
-<p>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;</blockquote>
-
-<center><img SRC="sane-xsane-standard.jpg" height=275 width=307>
<br>
+<center><img SRC="xsane-standard.jpg" alt="standard-options-window"></center>
+<br>
+<br>
+<br>
+The standard options window contains general scanner options. XSane
+does not now anything about these options, it only creates this dialog
+to give the user the possibility to take control of these options.
+<p>
+Please read the backend manual if you need any information about
+the functions you find in this window.
+</blockquote>
+</td>
+</tr>
+</table>
+
<hr WIDTH="100%">
-<br><a href="sane-xsane-doc.html">INDEX</a></center>
-<p><br>
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
</body>
</html>
diff --git a/doc/sane-xsane-standard.jpg b/doc/sane-xsane-standard.jpg
deleted file mode 100644
index 13be214..0000000
--- a/doc/sane-xsane-standard.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/sane-xsane-viewer-doc.html b/doc/sane-xsane-viewer-doc.html
new file mode 100644
index 0000000..9c9489a
--- /dev/null
+++ b/doc/sane-xsane-viewer-doc.html
@@ -0,0 +1,232 @@
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.18 i686) [Netscape]">
+ <meta name="Author" content="Oliver Rauch">
+ <meta name="Description" content="scan, photocopy and fax frontend for SANE">
+ <title>XSane - Scan mode</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
+
+
+<table>
+<tr>
+<td width=200>
+<img SRC="xsane-logo2.jpg" alt="XSane-logo" hspace=30 height=150 width=128 align=TOP>
+</td>
+<td>
+<blockquote>
+<h1><font color="#009900">Main window in viewer mode</font></h1>
+</blockquote>
+</td>
+</tr>
+</table>
+
+
+<hr WIDTH="100%">
+
+<table>
+<tr>
+<td valign=TOP width="200" bgcolor="#E0E0BA">
+<br>
+<a href="sane-xsane-doc.html">Index</a>
+<br>
+<br>
+<br>
+<font color="#000000">Main window:</font>
+<ul>
+<li><a href="sane-xsane-viewer-doc.html">Viewer mode</a></li>
+<li><a href="sane-xsane-save-doc.html">Save mode</a></li>
+<li><a href="sane-xsane-copy-doc.html">Copy mode</a></li>
+<li><a href="sane-xsane-fax-doc.html">Fax mode</a></li>
+<li><a href="sane-xsane-mail-doc.html">Mail mode</a></li>
+<li><a href="sane-xsane-gimp-doc.html">Gimp plugin</a></li>
+</ul>
+<br>
+<a href="sane-xsane-color-correction-doc.html">Color correction:</a>
+<ul>
+<li><a href="sane-xsane-color-correction-doc.html#GAMMA">Gamma correction</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#BRIGHTNESS">Brightness</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#CONTRAST">Contrast</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#THRESHOLD">Threshold</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RGB_DEFAULT">RGB default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#NEGATIVE">Negative</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#AUTOENHANCEMENT">Autoenhancement</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#ENHANCEMENT_DEFAULT">Default</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#RESTORE_ENHANCEMENT">Restore</a></li>
+<li><a href="sane-xsane-color-correction-doc.html#STORE_ENHANCEMENT">Store</a></li>
+<li><a href="sane-xsane-histogram-doc.html">Histogram window</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette functions</a></li>
+</ul>
+<br>
+<a href="sane-xsane-standard-doc.html">Standard options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-advanced-doc.html">Advanced options window</a>
+<br>
+<br>
+<br>
+<a href="sane-xsane-preview-doc.html">Preview:</a>
+<ul>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_WHITE">Pipette white</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_GRAY">Pipette gray</a></li>
+<li><a href="sane-xsane-preview-doc.html#PIPETTE_BLACK">Pipette black</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNZOOM">Unzoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_OUT">Zoom out</a></li>
+<li><a href="sane-xsane-preview-doc.html#ZOOM_IN">Zoom in</a></li>
+<li><a href="sane-xsane-preview-doc.html#UNDO_ZOOM">Undo zoom</a></li>
+<li><a href="sane-xsane-preview-doc.html#AUTOSELECT">Autoselect scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_VISIBLE_AREA">Select visible area</a></li>
+<li><a href="sane-xsane-preview-doc.html#SELECT_SCAN_AREA">Select scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#MOVE_SCAN_AREA">Move scanarea</a></li>
+<li><a href="sane-xsane-preview-doc.html#DELETE_PREVIEW_CACHE">Delete preview cache</a></li>
+</ul>
+<br>
+<font color="#000000">Setup:</font>
+<ul>
+<li><a href="sane-xsane-setup-copy-doc.html">Copy setup</a></li>
+<li><a href="sane-xsane-setup-display-doc.html">Display setup</a></li>
+<li><a href="sane-xsane-setup-enhancement-doc.html">Enhancement setup</a></li>
+<li><a href="sane-xsane-setup-fax-doc.html">Fax setup</a></li>
+<li><a href="sane-xsane-setup-image-doc.html">Image setup</a></li>
+<li><a href="sane-xsane-setup-mail-doc.html">Mail setup</a></li>
+<li><a href="sane-xsane-setup-save-doc.html">Saving setup</a></li>
+</ul>
+</td>
+
+
+
+<td VALIGN=TOP BGCOLOR="#FFFFFF">
+<blockquote>
+<br>
+In the viewer mode an image is scanned and displayed in the viewer.
+<br>
+<br>
+<br>
+<center><img SRC="xsane-viewer.jpg" alt="XSane-main-window"></center>
+<br>
+<br>
+
+<img SRC="xsane-colormode.jpg" alt="colormode">
+&nbsp;&nbsp;
+<b>Scanmode:</b>
+<blockquote>
+Select scanmode, e.g.: color, grayscale, halftone, lineart.
+</blockquote>
+
+<img SRC="xsane-scansource.jpg" alt="scansource">
+&nbsp;&nbsp;
+<b>Scansource:</b>
+<blockquote>
+Select scansource, e.g.: Flatbed, Transparency, Automatic Document Feeder.
+</blockquote>
+
+<img SRC="xsane-medium.jpg" alt="medium">
+&nbsp;&nbsp;
+<b>Scanmedium:</b>
+<blockquote>
+Select scanmedium, e.g.: <i>slide</i>, <i>standard negative</i>,
+<i>Agfa negative</i>, ... or <i>Full range</i>.
+</blockquote>
+
+<img SRC="xsane-resolution.jpg" alt="resolution">
+&nbsp;&nbsp;
+<b>Scan resolution:</b>
+<blockquote>
+Select resolution that is used for scanning. If the backends makes available a
+range of resolutions (e.g. 100-600 dpi) XSane can display a slider or a
+list of resolutions. You select this via <i>Preferences/Show resolution list</i>.
+<br>
+The backend can define a list of resolutions insted of a range, in this
+case it is not possible to enable the slider.
+<p>
+To select exact resolutions with the slider click the slider with the mouse pointer
+and use the cursor keys to change the value in steps of 1, if you press <i>ctrl</i>
+and a cursor key the step is 10.
+</blockquote>
+<br>
+<br>
+<b>The viewer window:</b>
+<blockquote>
+When the image is scanned it is displayed in the viewer window:
+</blockquote>
+
+<center><img SRC="xsane-viewer-window.jpg" alt="XSane-viewer-window"></center>
+<br>
+<br>
+<img SRC="xsane-disk.jpg" alt="save image">
+&nbsp;&nbsp;
+<b>Save image:</b>
+<blockquote>
+Save image to disk. If the path, filename and filetype is not defined, a dialog
+opens that allows selecting path, filename and filetype.
+</blockquote>
+
+<img SRC="xsane-ocr.jpg" alt="do ocr">
+&nbsp;&nbsp;
+<b>OCR:</b>
+<blockquote>
+Call OCR program and save created text to file.
+</blockquote>
+
+<img SRC="xsane-clone.jpg" alt="clone image">
+&nbsp;&nbsp;
+<b>Clone image:</b>
+<blockquote>
+Creates a new viewer window with a copy of the displayed image.
+</blockquote>
+
+<img SRC="xsane-scale.jpg" alt="scale image">
+&nbsp;&nbsp;
+<b>Scale image:</b>
+<blockquote>
+Change size of the image.
+</blockquote>
+
+<img SRC="xsane-despeckle.jpg" alt="despeckle image">
+&nbsp;&nbsp;
+<b>Despeckle image:</b>
+<blockquote>
+Removes spots from the displayed image that is scanned from a rastered original
+like a magazine.
+</blockquote>
+
+<img SRC="xsane-blur.jpg" alt="blur image">
+&nbsp;&nbsp;
+<b>Blur image:</b>
+<blockquote>
+Blur displayed image.
+</blockquote>
+
+<img SRC="xsane-rotate-90.jpg" alt="rotate image 90 degree">
+<img SRC="xsane-rotate-180.jpg" alt="rotate image 180 degree">
+<img SRC="xsane-rotate-270.jpg" alt="rotate image 270 degree">
+&nbsp;&nbsp;
+<b>Rotate image 90, 180, 270 degree:</b>
+<blockquote>
+Rotates the image by 90, 180 or 270 degree (clockwise).
+</blockquote>
+
+<img SRC="xsane-mirror-x.jpg" alt="mirror image at vertical axis">
+<img SRC="xsane-mirror-y.jpg" alt="mirror image at horizontal axis">
+&nbsp;&nbsp;
+<b>Mirror image at vertical or horizontal axis:</b>
+<blockquote>
+Mirrors the image at vertical or horizonral axis.
+</blockquote>
+
+</blockquote>
+</td>
+</tr>
+</table>
+
+<hr WIDTH="100%">
+
+<blockquote>
+Author: <a href="mailto:Oliver.Rauch@xsane.org">Oliver Rauch</a>
+</blockquote>
+
+</body>
+</html>
+
diff --git a/doc/sane-xsane.jpg b/doc/sane-xsane.jpg
deleted file mode 100644
index 31c37af..0000000
--- a/doc/sane-xsane.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/xsane-advanced.jpg b/doc/xsane-advanced.jpg
new file mode 100644
index 0000000..ed9bab4
--- /dev/null
+++ b/doc/xsane-advanced.jpg
Binary files differ
diff --git a/doc/autoenhance.jpg b/doc/xsane-autoenhance.jpg
index 0be20e2..0be20e2 100644
--- a/doc/autoenhance.jpg
+++ b/doc/xsane-autoenhance.jpg
Binary files differ
diff --git a/doc/xsane-autoselect.jpg b/doc/xsane-autoselect.jpg
new file mode 100644
index 0000000..e4f14c2
--- /dev/null
+++ b/doc/xsane-autoselect.jpg
Binary files differ
diff --git a/doc/xsane-blur.jpg b/doc/xsane-blur.jpg
new file mode 100644
index 0000000..691bba9
--- /dev/null
+++ b/doc/xsane-blur.jpg
Binary files differ
diff --git a/doc/brightness.jpg b/doc/xsane-brightness.jpg
index 0a382d3..0a382d3 100644
--- a/doc/brightness.jpg
+++ b/doc/xsane-brightness.jpg
Binary files differ
diff --git a/doc/xsane-clone.jpg b/doc/xsane-clone.jpg
new file mode 100644
index 0000000..0fde0c4
--- /dev/null
+++ b/doc/xsane-clone.jpg
Binary files differ
diff --git a/doc/xsane-colormode.jpg b/doc/xsane-colormode.jpg
new file mode 100644
index 0000000..009468a
--- /dev/null
+++ b/doc/xsane-colormode.jpg
Binary files differ
diff --git a/doc/contrast.jpg b/doc/xsane-contrast.jpg
index b8d0435..b8d0435 100644
--- a/doc/contrast.jpg
+++ b/doc/xsane-contrast.jpg
Binary files differ
diff --git a/doc/xsane-copy.jpg b/doc/xsane-copy.jpg
new file mode 100644
index 0000000..6871737
--- /dev/null
+++ b/doc/xsane-copy.jpg
Binary files differ
diff --git a/doc/default.jpg b/doc/xsane-default.jpg
index 56602f8..56602f8 100644
--- a/doc/default.jpg
+++ b/doc/xsane-default.jpg
Binary files differ
diff --git a/doc/xsane-delete-preview-cache.jpg b/doc/xsane-delete-preview-cache.jpg
new file mode 100644
index 0000000..f01476b
--- /dev/null
+++ b/doc/xsane-delete-preview-cache.jpg
Binary files differ
diff --git a/doc/xsane-despeckle.jpg b/doc/xsane-despeckle.jpg
new file mode 100644
index 0000000..9deb6c9
--- /dev/null
+++ b/doc/xsane-despeckle.jpg
Binary files differ
diff --git a/doc/xsane-disk.jpg b/doc/xsane-disk.jpg
new file mode 100644
index 0000000..481ba85
--- /dev/null
+++ b/doc/xsane-disk.jpg
Binary files differ
diff --git a/doc/xsane-fax-project.jpg b/doc/xsane-fax-project.jpg
new file mode 100644
index 0000000..9ff2766
--- /dev/null
+++ b/doc/xsane-fax-project.jpg
Binary files differ
diff --git a/doc/xsane-fax.jpg b/doc/xsane-fax.jpg
new file mode 100644
index 0000000..ecbf020
--- /dev/null
+++ b/doc/xsane-fax.jpg
Binary files differ
diff --git a/doc/gamma.jpg b/doc/xsane-gamma.jpg
index bf24033..bf24033 100644
--- a/doc/gamma.jpg
+++ b/doc/xsane-gamma.jpg
Binary files differ
diff --git a/doc/xsane-gimp.jpg b/doc/xsane-gimp.jpg
new file mode 100644
index 0000000..7350f7d
--- /dev/null
+++ b/doc/xsane-gimp.jpg
Binary files differ
diff --git a/doc/xsane-histogram.jpg b/doc/xsane-histogram.jpg
new file mode 100644
index 0000000..c5ca68f
--- /dev/null
+++ b/doc/xsane-histogram.jpg
Binary files differ
diff --git a/doc/xsane-logo.jpg b/doc/xsane-logo.jpg
deleted file mode 100644
index 596f3da..0000000
--- a/doc/xsane-logo.jpg
+++ /dev/null
Binary files differ
diff --git a/doc/xsane-mail.jpg b/doc/xsane-mail.jpg
new file mode 100644
index 0000000..232530b
--- /dev/null
+++ b/doc/xsane-mail.jpg
Binary files differ
diff --git a/doc/xsane-medium.jpg b/doc/xsane-medium.jpg
new file mode 100644
index 0000000..d9a6181
--- /dev/null
+++ b/doc/xsane-medium.jpg
Binary files differ
diff --git a/doc/xsane-mirror-x.jpg b/doc/xsane-mirror-x.jpg
new file mode 100644
index 0000000..42e4fde
--- /dev/null
+++ b/doc/xsane-mirror-x.jpg
Binary files differ
diff --git a/doc/xsane-mirror-y.jpg b/doc/xsane-mirror-y.jpg
new file mode 100644
index 0000000..83a5e88
--- /dev/null
+++ b/doc/xsane-mirror-y.jpg
Binary files differ
diff --git a/doc/negative.jpg b/doc/xsane-negative.jpg
index be4bec1..be4bec1 100644
--- a/doc/negative.jpg
+++ b/doc/xsane-negative.jpg
Binary files differ
diff --git a/doc/xsane-ocr.jpg b/doc/xsane-ocr.jpg
new file mode 100644
index 0000000..e087af5
--- /dev/null
+++ b/doc/xsane-ocr.jpg
Binary files differ
diff --git a/doc/sane-xsane-pipette-black.jpg b/doc/xsane-pipette-black.jpg
index 8508f14..8508f14 100644
--- a/doc/sane-xsane-pipette-black.jpg
+++ b/doc/xsane-pipette-black.jpg
Binary files differ
diff --git a/doc/sane-xsane-pipette-gray.jpg b/doc/xsane-pipette-gray.jpg
index 72211f3..72211f3 100644
--- a/doc/sane-xsane-pipette-gray.jpg
+++ b/doc/xsane-pipette-gray.jpg
Binary files differ
diff --git a/doc/sane-xsane-pipette-white.jpg b/doc/xsane-pipette-white.jpg
index b8b8b0f..b8b8b0f 100644
--- a/doc/sane-xsane-pipette-white.jpg
+++ b/doc/xsane-pipette-white.jpg
Binary files differ
diff --git a/doc/xsane-preferences.jpg b/doc/xsane-preferences.jpg
new file mode 100644
index 0000000..851200a
--- /dev/null
+++ b/doc/xsane-preferences.jpg
Binary files differ
diff --git a/doc/xsane-preset-area.jpg b/doc/xsane-preset-area.jpg
new file mode 100644
index 0000000..25bdab5
--- /dev/null
+++ b/doc/xsane-preset-area.jpg
Binary files differ
diff --git a/doc/xsane-preview.jpg b/doc/xsane-preview.jpg
new file mode 100644
index 0000000..12cc6fb
--- /dev/null
+++ b/doc/xsane-preview.jpg
Binary files differ
diff --git a/doc/xsane-printer.jpg b/doc/xsane-printer.jpg
new file mode 100644
index 0000000..5366704
--- /dev/null
+++ b/doc/xsane-printer.jpg
Binary files differ
diff --git a/doc/xsane-resolution.jpg b/doc/xsane-resolution.jpg
new file mode 100644
index 0000000..52e3a33
--- /dev/null
+++ b/doc/xsane-resolution.jpg
Binary files differ
diff --git a/doc/restore.jpg b/doc/xsane-restore.jpg
index 754871b..754871b 100644
--- a/doc/restore.jpg
+++ b/doc/xsane-restore.jpg
Binary files differ
diff --git a/doc/rgb-default.jpg b/doc/xsane-rgb-default.jpg
index b04a539..b04a539 100644
--- a/doc/rgb-default.jpg
+++ b/doc/xsane-rgb-default.jpg
Binary files differ
diff --git a/doc/xsane-rotate-180.jpg b/doc/xsane-rotate-180.jpg
new file mode 100644
index 0000000..e532f28
--- /dev/null
+++ b/doc/xsane-rotate-180.jpg
Binary files differ
diff --git a/doc/xsane-rotate-270.jpg b/doc/xsane-rotate-270.jpg
new file mode 100644
index 0000000..d0fe2cc
--- /dev/null
+++ b/doc/xsane-rotate-270.jpg
Binary files differ
diff --git a/doc/xsane-rotate-90.jpg b/doc/xsane-rotate-90.jpg
new file mode 100644
index 0000000..720c473
--- /dev/null
+++ b/doc/xsane-rotate-90.jpg
Binary files differ
diff --git a/doc/xsane-rotation.jpg b/doc/xsane-rotation.jpg
new file mode 100644
index 0000000..aa57039
--- /dev/null
+++ b/doc/xsane-rotation.jpg
Binary files differ
diff --git a/doc/xsane-save.jpg b/doc/xsane-save.jpg
new file mode 100644
index 0000000..4791ad5
--- /dev/null
+++ b/doc/xsane-save.jpg
Binary files differ
diff --git a/doc/xsane-scale.jpg b/doc/xsane-scale.jpg
new file mode 100644
index 0000000..cbfd1c0
--- /dev/null
+++ b/doc/xsane-scale.jpg
Binary files differ
diff --git a/doc/xsane-scansource.jpg b/doc/xsane-scansource.jpg
new file mode 100644
index 0000000..0340ced
--- /dev/null
+++ b/doc/xsane-scansource.jpg
Binary files differ
diff --git a/doc/xsane-setup-copy.jpg b/doc/xsane-setup-copy.jpg
new file mode 100644
index 0000000..a09b266
--- /dev/null
+++ b/doc/xsane-setup-copy.jpg
Binary files differ
diff --git a/doc/xsane-setup-display.jpg b/doc/xsane-setup-display.jpg
new file mode 100644
index 0000000..045c3aa
--- /dev/null
+++ b/doc/xsane-setup-display.jpg
Binary files differ
diff --git a/doc/xsane-setup-enhancement.jpg b/doc/xsane-setup-enhancement.jpg
new file mode 100644
index 0000000..53733ba
--- /dev/null
+++ b/doc/xsane-setup-enhancement.jpg
Binary files differ
diff --git a/doc/xsane-setup-fax.jpg b/doc/xsane-setup-fax.jpg
new file mode 100644
index 0000000..b1ac97b
--- /dev/null
+++ b/doc/xsane-setup-fax.jpg
Binary files differ
diff --git a/doc/xsane-setup-image.jpg b/doc/xsane-setup-image.jpg
new file mode 100644
index 0000000..e6ce8f4
--- /dev/null
+++ b/doc/xsane-setup-image.jpg
Binary files differ
diff --git a/doc/xsane-setup-mail.jpg b/doc/xsane-setup-mail.jpg
new file mode 100644
index 0000000..e08c07a
--- /dev/null
+++ b/doc/xsane-setup-mail.jpg
Binary files differ
diff --git a/doc/xsane-setup-save.jpg b/doc/xsane-setup-save.jpg
new file mode 100644
index 0000000..f4f6d19
--- /dev/null
+++ b/doc/xsane-setup-save.jpg
Binary files differ
diff --git a/doc/xsane-standard.jpg b/doc/xsane-standard.jpg
new file mode 100644
index 0000000..2255b84
--- /dev/null
+++ b/doc/xsane-standard.jpg
Binary files differ
diff --git a/doc/store.jpg b/doc/xsane-store.jpg
index e1223df..e1223df 100644
--- a/doc/store.jpg
+++ b/doc/xsane-store.jpg
Binary files differ
diff --git a/doc/xsane-threshold.jpg b/doc/xsane-threshold.jpg
new file mode 100644
index 0000000..0990031
--- /dev/null
+++ b/doc/xsane-threshold.jpg
Binary files differ
diff --git a/doc/xsane-viewer-window.jpg b/doc/xsane-viewer-window.jpg
new file mode 100644
index 0000000..9bf70a6
--- /dev/null
+++ b/doc/xsane-viewer-window.jpg
Binary files differ
diff --git a/doc/xsane-viewer.jpg b/doc/xsane-viewer.jpg
new file mode 100644
index 0000000..d93990d
--- /dev/null
+++ b/doc/xsane-viewer.jpg
Binary files differ
diff --git a/doc/sane-xsane-visible-area.jpg b/doc/xsane-visible-area.jpg
index 117a5ba..117a5ba 100644
--- a/doc/sane-xsane-visible-area.jpg
+++ b/doc/xsane-visible-area.jpg
Binary files differ
diff --git a/doc/sane-xsane-zoom-in.jpg b/doc/xsane-zoom-in.jpg
index dc73335..dc73335 100644
--- a/doc/sane-xsane-zoom-in.jpg
+++ b/doc/xsane-zoom-in.jpg
Binary files differ
diff --git a/doc/sane-xsane-zoom-not.jpg b/doc/xsane-zoom-not.jpg
index b239646..b239646 100644
--- a/doc/sane-xsane-zoom-not.jpg
+++ b/doc/xsane-zoom-not.jpg
Binary files differ
diff --git a/doc/sane-xsane-zoom-out.jpg b/doc/xsane-zoom-out.jpg
index 9e20fc1..9e20fc1 100644
--- a/doc/sane-xsane-zoom-out.jpg
+++ b/doc/xsane-zoom-out.jpg
Binary files differ
diff --git a/doc/sane-xsane-zoom-undo.jpg b/doc/xsane-zoom-undo.jpg
index 11e0890..11e0890 100644
--- a/doc/sane-xsane-zoom-undo.jpg
+++ b/doc/xsane-zoom-undo.jpg
Binary files differ
diff --git a/doc/xsane-zoom.jpg b/doc/xsane-zoom.jpg
new file mode 100644
index 0000000..2ac14af
--- /dev/null
+++ b/doc/xsane-zoom.jpg
Binary files differ
diff --git a/doc/xsane.jpg b/doc/xsane.jpg
new file mode 100644
index 0000000..2f9a50d
--- /dev/null
+++ b/doc/xsane.jpg
Binary files differ
diff --git a/doc/xsane.man b/doc/xsane.man
index 8e69216..1021b89 100644
--- a/doc/xsane.man
+++ b/doc/xsane.man
@@ -1,4 +1,4 @@
-.TH xsane 1 "02 Aug 1999"
+.TH xsane 1 "11 Aug 2000"
.IX xsane
.SH NAME
xsane - scanner frontend for SANE
@@ -44,7 +44,8 @@ explicit devicename argument,
.B xsane
presents a dialog listing all known and available devices. To access
an available device that is not known to the system, the devicename
-must be specified explicitly.
+must be specified explicitly. The format of devicename is
+backendname:devicefile (eg: umax:/dev/sga).
.SH RUNNING UNDER THE GIMP
To run
.B xsane
@@ -52,12 +53,18 @@ under the
.BR gimp (1),
simply set a symbolic link from the xsane-binary to one of the
.BR gimp (1)
-plug-ins directories. For example, the command
+plug-ins directories. For example, for gimp-1.0.x the command
.PP
.RS
ln -s @BINDIR@/xsane ~/.gimp/plug-ins/
.RE
.PP
+and for gimp 1.1.x the command:
+.PP
+.RS
+ln -s @BINDIR@/xsane ~/.gimp-1.1/plug-ins/
+.RE
+.PP
adds a symlink for the
.B xsane
binary to the user's plug-ins directory. After creating this symlink,
@@ -66,10 +73,11 @@ will be queried by
.BR gimp (1)
the next time it's invoked. From then on,
.B xsane
-can be invoked through "Xtns->XSane->Device dialog..." menu entry.
+can be invoked through "Xtns->XSane->Device dialog..." or through
+"File->Acquire->XSane->Device dialog..." menu entry.
-You'll also find that the "Xtns->XSane" menu contains short-cuts
-to the SANE devices that were available at the time the
+You'll also find that the "Xtns->XSane"/"File->Acquire->XSane" menu contains
+short-cuts to the SANE devices that were available at the time the
.B xsane
was queried.
Note that
@@ -91,7 +99,9 @@ If the
.B --version
or
.B -v
-flag is given xsane prints a version information and exits.
+flag is given xsane prints a version information, some
+information about gtk+ and gimp version it is compiled
+against and lists the supported fileformats, then it exits.
.PP
The
.B --scan
@@ -157,6 +167,12 @@ The
.B --sync
flag requests a synchronous connection with the X11 server. This is for
debugging purposes only.
+.SH ENVIRONMENT
+.TP
+.I SANE_DEFAULT_DEVICE
+is used to preselect the device in the device dialog. This way you only
+have to accept the device (<ENTER> or OK-Button).
+
.SH FILES
.TP
.I $HOME/.sane/xsane/xsane.rc
@@ -172,28 +188,17 @@ manipulated directly. Instead, the user should use the
interface to select appropriate values and then save the device
settings using the "Preferences->Save Device Settings" menubar entry.
.TP
-.I $HOME/.sane/preview-devicename.ppm
-After acquiring a preview,
-.B xsane
-normally saves the preview image in this device-specific file. Thus,
-next time the program is started up, the program can present the old
-preview image. This feature can be turned off through the
-"Preferences->Preview Options..." dialog.
-.TP
-.I @DATADIR@/sane-style.rc
+.I @SANEDATADIR@/xsane/xsane-style.rc
This system-wide file controls the aspects of the user-interface such
as colors and fonts. It is a GTK style file and provides fine control
over the visual aspects of the user-interface.
.TP
-.I $HOME/.sane/sane-style.rc
+.I $HOME/.sane/xsane/xsane-style.rc
This file serves the same purpose as the system-wide style file. If
present, it takes precedence over the system wide style file.
.SH "SEE ALSO"
gimp(1), xscanimage(1), scanimage(1),
sane\-dll(5), sane\-net(5), sane-scsi(5),
-sane\-abaton(5), sane\-agfafocus(5), sane\-apple(5), sane\-dc25(5),
-sane\-dmc(5), sane\-epson(5), sane\-hp(5), sane\-microtek(5),
-sane\-microtek2(5), sane\-mustek(5), sane\-pint(5), sane\-pnm(5),
-sane\-qcam(5), sane\-umax(5)
+sane\-"backendname"(5)
.SH AUTHOR
-Oliver Rauch (Oliver.Rauch@Wolfsburg.DE)
+Oliver Rauch <Oliver.Rauch@rauch-domain.de>
diff --git a/frontend/Makefile.in b/frontend/Makefile.in
deleted file mode 100644
index 439369d..0000000
--- a/frontend/Makefile.in
+++ /dev/null
@@ -1,85 +0,0 @@
-SHELL = /bin/sh
-
-VPATH = @srcdir@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ..
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-configdir = ${sysconfdir}/sane.d
-sanedatadir = ${datadir}/sane
-
-MKINSTALLDIRS = @MKINSTALLDIRS@
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-CC = @CC@
-INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include \
- @GTK_CFLAGS@ @INCLUDES@ \
- -DLOCALEDIR=\""$(datadir)/locale"\"
-DEFS = @DEFS@
-CPPFLAGS = @CPPFLAGS@
-CFLAGS = @CFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @INTLLIBS@ @LIBS@
-GTK_LIBS = @GTK_LIBS@
-GIMP_LIBS = @GIMP_LIBS@
-
-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
-LINK = $(CC) $(LDFLAGS) -o $@
-
-BINPROGS = @BINPROGS@
-
-@SET_MAKE@
-
-PROGRAMS = $(BINPROGS)
-LIBLIB = ../lib/liblib.a
-
-XSANE_OBJS = xsane-back-gtk.o xsane-front-gtk.o xsane-gamma.o xsane-preview.o \
- xsane-rc-io.o xsane-device-preferences.o xsane-preferences.o \
- xsane-setup.o xsane-save.o xsane-scan.o xsane-icons.o xsane.o
-
-
-.c.o:
- $(COMPILE) $<
-
-all: $(PROGRAMS)
-
-install: $(PROGRAMS)
- $(MKINSTALLDIRS) $(bindir) $(sbindir) $(datadir) $(sanedatadir) $(sanedatadir)/xsane
- @for program in $(BINPROGS); do \
- $(INSTALL_PROGRAM) $${program} $(bindir)/$${program}; \
- done
- $(INSTALL_DATA) $(srcdir)/xsane-style.rc $(sanedatadir)/xsane/xsane-style.rc
- $(INSTALL_DATA) $(srcdir)/xsane-logo.xpm $(sanedatadir)/xsane-logo.xpm
-
-xsane: $(XSANE_OBJS) $(LIBLIB)
- $(LINK) $(XSANE_OBJS) \
- $(LIBLIB) $(GIMP_LIBS) $(GTK_LIBS) $(LIBS)
-
-
-clean:
- rm -f *.o *~ .*~ *.bak
- rm -rf .libs
-
-distclean: clean
- rm -f Makefile $(PROGRAMS)
-
-depend:
- makedepend $(INCLUDES) *.c
-
-.PHONY: all install depend clean distclean
diff --git a/frontend/xsane-back-gtk.h b/frontend/xsane-back-gtk.h
deleted file mode 100644
index af1d55a..0000000
--- a/frontend/xsane-back-gtk.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane-back-gtk.h
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#ifndef xsane_back_gtk_h
-#define xsane_back_gtk_h
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#include <sys/types.h>
-
-#include <gtk/gtk.h>
-
-#include <sane/config.h>
-#include <sane/sane.h>
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-enum
-{
- XSANE_PATH_LOCAL_SANE = 0,
- XSANE_PATH_SYSTEM,
- XSANE_PATH_TMP
-};
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-struct GSGDialog;
-
-typedef void (*GSGCallback) (struct GSGDialog *dialog, void *arg);
-typedef GtkWidget *(*XSANECallback) (void);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-typedef enum
- {
- xsane_back_gtk_TL_X, /* top-left x */
- xsane_back_gtk_TL_Y, /* top-left y */
- xsane_back_gtk_BR_X, /* bottom-right x */
- xsane_back_gtk_BR_Y /* bottom-right y */
- }
-GSGCornerCoordinates;
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-typedef struct
- {
- /* The option number of the well-known options. Each of these may
- be -1 in case the backend doesn't define the respective option. */
- int scanmode;
- int scansource;
- int preview;
- int dpi;
- int dpi_x;
- int dpi_y;
- int coord[4];
- int gamma_vector;
- int gamma_vector_r;
- int gamma_vector_g;
- int gamma_vector_b;
- int bit_depth;
- }
-GSGWellKnownOptions;
-
-typedef struct
- {
- gchar *label;
- struct GSGDialogElement *elem;
- gint index;
- }
-GSGMenuItem;
-
-typedef struct GSGDialogElement
- {
- struct GSGDialog *dialog; /* wasteful, but is there a better solution? */
- GtkWidget *automatic; /* auto button for options that support this */
- GtkWidget *widget;
- GtkObject *data;
- int menu_size; /* # of items in menu (if any) */
- GSGMenuItem *menu;
- }
-GSGDialogElement;
-
-typedef struct GSGDialog
- {
- GtkWidget *xsane_window;
- GtkWidget *standard_window;
- GtkWidget *advanced_window;
- GtkWidget *xsane_hbox;
- GtkWidget *standard_hbox;
- GtkWidget *advanced_hbox;
- GtkWidget *xsanemode_widget;
- GtkTooltips *tooltips;
- GdkColor tooltips_fg;
- GdkColor tooltips_bg;
- SANE_Handle *dev;
- const char *dev_name;
- GSGWellKnownOptions well_known;
- int num_elements;
- GSGDialogElement *element;
- gint idle_id;
- u_int rebuild : 1;
- /* This callback gets invoked whenever the backend notifies us
- that the option descriptors have changed. */
- GSGCallback option_reload_callback;
- void *option_reload_arg;
- /* This callback gets invoked whenever the backend notifies us
- that the parameters have changed. */
- GSGCallback param_change_callback;
- void *param_change_arg;
- XSANECallback update_xsane_callback;
- void *update_xsane_arg;
- int pixelcolor;
- }
-GSGDialog;
-
-extern int xsane_back_gtk_message_dialog_active;
-
-/* Construct the path and return it in filename_ret (this buffer must
- be at least max_len bytes long). The path is constructed as
- follows:
-
- ~/.sane/${PROG_NAME}/${PREFIX}${DEV_NAME}${POSTFIX}
-
- If PROG_NAME is NULL, an empty string is used and the leading slash
- is removed. On success, 0 is returned, on error a negative number and
- ERRNO is set to the appropriate value. */
-extern int xsane_back_gtk_make_path(size_t max_len, char *filename_ret,
- const char *prog_name,
- const char *dir_name,
- const char *prefix, const char *dev_name,
- const char *postfix,
- int local);
-extern gint xsane_back_gtk_decision(gchar *title, gchar** icon_xpm, gchar *message, gchar *oktext, gchar *rejecttext, gint wait);
-extern void xsane_back_gtk_message(gchar *title, gchar** icon_xpm, gchar *message, gint wait);
-extern void xsane_back_gtk_error(gchar *error_message, gint wait);
-extern void xsane_back_gtk_warning(gchar *warning_message, gint wait);
-extern int xsane_back_gtk_get_filename(const char *label, const char *default_name,
- size_t max_len, char *filename, int show_fileopts);
-
-extern void xsane_back_gtk_sync(GSGDialog *dialog);
-extern void xsane_back_gtk_update_vector(GSGDialog *dialog, int opt_num, SANE_Int *vector);
-extern void xsane_back_gtk_refresh_dialog(GSGDialog *dialog);
-extern void xsane_back_gtk_update_scan_window(GSGDialog *dialog);
-extern void xsane_back_gtk_set_advanced(GSGDialog *dialog, int advanced);
-extern void xsane_back_gtk_set_tooltips(GSGDialog *dialog, int enable);
-extern void xsane_back_gtk_set_tooltip(GtkTooltips *tooltips, GtkWidget *widget, const char *desc);
-extern void xsane_back_gtk_set_sensitivity(GSGDialog *dialog, int sensitive);
-extern void xsane_set_sensitivity(SANE_Int sensitivity);
-extern void xsane_back_gtk_destroy_dialog(GSGDialog *dialog);
-extern void xsane_back_gtk_set_option(GSGDialog * dialog, int opt_num, void *val, SANE_Action action);
-extern GtkWidget *xsane_back_gtk_group_new (GtkWidget *parent, const char * title);
-extern void xsane_back_gtk_button_new(GtkWidget * parent, const char *name, SANE_Word val,
- GSGDialogElement *elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable);
-extern void xsane_back_gtk_scale_new(GtkWidget * parent, const char *name, gfloat val,
- gfloat min, gfloat max, gfloat quant, int automatic,
- GSGDialogElement *elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable);
-extern void xsane_back_gtk_option_menu_new(GtkWidget *parent, const char *name, char *str_list[],
- const char *val, GSGDialogElement * elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable);
-extern void xsane_back_gtk_text_entry_new(GtkWidget *parent, const char *name, const char *val,
- GSGDialogElement *elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable);
-extern void xsane_back_gtk_push_button_callback(GtkWidget * widget, gpointer data);
-extern const char *xsane_back_gtk_unit_string(SANE_Unit unit);
-void xsane_set_window_icon(GtkWidget *gtk_window, gchar **xpm_d);
-
-#define xsane_back_gtk_dialog_get_device(dialog) ((dialog)->dev)
-
-#endif /* gtkglue_h */
diff --git a/frontend/xsane-device-preferences.c.old b/frontend/xsane-device-preferences.c.old
deleted file mode 100644
index aa4d8b8..0000000
--- a/frontend/xsane-device-preferences.c.old
+++ /dev/null
@@ -1,761 +0,0 @@
-
-/* sane - Scanner Access Now Easy.
- Copyright (C) 1999 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA. */
-
-/* ---------------------------------------------------------------------------------------------------------------- */
-
-#include "xsane.h"
-#include "xsane-rc-io.h"
-#include "xsane-front-gtk.h"
-#include "xsane-gamma.h"
-
-/* ---------------------------------------------------------------------------------------------------------------- */
-
-#define BITS_PER_LONG (8*sizeof(u_long))
-
-#define SET(set, bit) ((set)[(bit)/BITS_PER_LONG] |= (1UL << (bit)%BITS_PER_LONG))
-#define IS_SET(set, bit) (((set)[(bit)/BITS_PER_LONG] & (1UL << (bit)%BITS_PER_LONG)) != 0)
-
-/* ---------------------------------------------------------------------------------------------------------------- */
-
-int xsane_device_preferences_load_values(int fd, SANE_Handle device)
-{
- const SANE_Option_Descriptor *opt;
- SANE_Word *word_array;
- SANE_String name, str;
- u_long *caused_reload;
- SANE_Int num_options;
- SANE_Status status;
- int i, keep_going;
- SANE_Word word;
- SANE_Int info;
- off_t offset;
- size_t size;
- char *buf;
- Wire w;
-
- offset = lseek(fd, 0, SEEK_CUR);
- w.io.fd = fd;
- w.io.read = read;
- w.io.write = write;
- xsane_rc_io_w_init(&w);
- xsane_rc_io_w_set_dir(&w, WIRE_DECODE);
- keep_going = 0;
-
- sane_control_option(device, 0, SANE_ACTION_GET_VALUE, &num_options, 0);
- size = (num_options + BITS_PER_LONG - 1) / BITS_PER_LONG * sizeof(long);
- caused_reload = alloca(size);
- memset(caused_reload, 0, size);
-
- while (1)
- {
- xsane_rc_io_w_space(&w, 3);
-
- if (!w.status)
- {
- xsane_rc_io_w_string(&w, &name);
- }
-
- if (w.status)
- {
- if (keep_going)
- {
- lseek(fd, offset, SEEK_SET);
- xsane_rc_io_w_set_dir(&w, WIRE_DECODE);
- keep_going = 0;
- continue;
- }
- return 0;
- }
-
- status = SANE_STATUS_GOOD;
- info = 0;
- for (i = 1; (opt = sane_get_option_descriptor(device, i)); ++i)
- {
- if (!opt->name || strcmp(opt->name, name) != 0)
- {
- continue;
- }
-
- if (IS_SET(caused_reload, i))
- {
- continue;
- }
-
- switch (opt->type)
- {
- case SANE_TYPE_BOOL:
- case SANE_TYPE_INT:
- case SANE_TYPE_FIXED:
- if (opt->size == sizeof(SANE_Word))
- {
- xsane_rc_io_w_word(&w, &word);
- status = sane_control_option(device, i, SANE_ACTION_SET_VALUE, &word, &info);
- }
- else
- {
- SANE_Int len;
-
- xsane_rc_io_w_array(&w, &len, (void **) &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word));
- status = sane_control_option(device, i, SANE_ACTION_SET_VALUE, word_array, &info);
- w.direction = WIRE_FREE;
- xsane_rc_io_w_array(&w, &len, (void **) &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word));
- w.direction = WIRE_DECODE;
- }
- break;
-
- case SANE_TYPE_STRING:
- xsane_rc_io_w_string(&w, &str);
- buf = malloc(opt->size);
- if (!w.status) /* got a string ? */
- {
- strncpy(buf, str, opt->size);
- buf[opt->size - 1] = '\0';
- xsane_rc_io_w_free(&w, (WireCodecFunc) xsane_rc_io_w_string, &str);
- status = sane_control_option(device, i, SANE_ACTION_SET_VALUE, buf, &info);
- }
- break;
-
- case SANE_TYPE_BUTTON:
- case SANE_TYPE_GROUP:
- /* nothing to read for button and group */
- break;
- }
- break;
- }
- xsane_rc_io_w_free(&w, (WireCodecFunc) xsane_rc_io_w_string, &name);
-
- if (status == SANE_STATUS_GOOD && (info & SANE_INFO_RELOAD_OPTIONS))
- {
- SET(caused_reload, i);
- keep_going = 1;
- }
- }
- return 0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------- */
-
-int xsane_device_preferences_save_values(int fd, SANE_Handle device)
-{
- const SANE_Option_Descriptor *opt;
- size_t word_array_size = 0;
- SANE_Word *word_array = 0;
- size_t str_size = 0;
- SANE_String str = 0;
- SANE_Word word;
- Wire w;
- int i;
-
- w.io.fd = fd;
- w.io.read = read;
- w.io.write = write;
- xsane_rc_io_w_init(&w);
- xsane_rc_io_w_set_dir(&w, WIRE_ENCODE);
-
- for (i = 0; (opt = sane_get_option_descriptor(device, i)); ++i)
- {
- if ((opt->cap & (SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT)) != (SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT) || !opt->name)
- /* if we can't query AND set the option, don't bother saving it */
- {
- continue;
- }
-
- switch (opt->type)
- {
- case SANE_TYPE_BOOL:
- case SANE_TYPE_INT:
- case SANE_TYPE_FIXED:
- if (opt->size == sizeof(SANE_Word))
- {
- if (sane_control_option(device, i, SANE_ACTION_GET_VALUE, &word, 0) != SANE_STATUS_GOOD)
- {
- continue;
- }
- xsane_rc_io_w_string(&w, (SANE_String *) &opt->name);
- xsane_rc_io_w_word(&w, &word);
- }
- else
- {
- SANE_Int len = opt->size / sizeof(SANE_Word);
-
- if (opt->size > word_array_size)
- {
- word_array_size = ((opt->size + 32*sizeof(SANE_Word)) & ~(32*sizeof(SANE_Word) - 1));
- if (word_array)
- {
- word_array = realloc(word_array, word_array_size);
- }
- else
- {
- word_array = malloc(word_array_size);
- }
-
- if (word_array == 0)
- {
- /* Malloc failed, so return an error. */
- w.status = ENOMEM;
- return 1;
- }
- }
-
- if (sane_control_option(device, i, SANE_ACTION_GET_VALUE, word_array, 0) != SANE_STATUS_GOOD)
- {
- continue;
- }
-
- xsane_rc_io_w_string(&w, (SANE_String *) &opt->name);
- xsane_rc_io_w_array(&w, &len, (void **) &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word));
- }
- break;
-
- case SANE_TYPE_STRING:
- if (opt->size > str_size)
- {
- str_size = (opt->size + 1024) & ~1023;
-
- if (str)
- {
- str = realloc(str, str_size);
- }
- else
- {
- str = malloc(str_size);
- }
-
- if (str == 0)
- {
- /* Malloc failed, so return an error. */
- w.status = ENOMEM;
- return 1;
- }
- }
-
- if (sane_control_option(device, i, SANE_ACTION_GET_VALUE, str, 0) != SANE_STATUS_GOOD)
- {
- continue;
- }
-
- xsane_rc_io_w_string(&w, (SANE_String *) &opt->name);
- xsane_rc_io_w_string(&w, &str);
- break;
-
- case SANE_TYPE_BUTTON:
- case SANE_TYPE_GROUP:
- break;
- }
- }
- xsane_rc_io_w_set_dir(&w, WIRE_DECODE);
-
- if (word_array)
- {
- free(word_array);
- }
- if (str)
- {
- free(str);
- }
-
- return 0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_device_preferences_load_file(char *filename)
-{
- int fd;
- FILE *file;
- char buf[256];
- char option[256];
- char *optionp;
- char *version = 0;
- int len;
-
- int main_posx = XSANE_DIALOG_POS_X;
- int main_posy = XSANE_DIALOG_POS_Y;
- int main_width = XSANE_DIALOG_WIDTH;
- int main_height = XSANE_DIALOG_HEIGHT;
-
- int standard_options_posx = XSANE_DIALOG_POS_X;
- int standard_options_posy = XSANE_DIALOG_POS_Y2;
-
- int advanced_options_posx = XSANE_DIALOG_POS_X2;
- int advanced_options_posy = XSANE_DIALOG_POS_Y2;
-
- int histogram_posx = XSANE_DIALOG_POS_X2;
- int histogram_posy = XSANE_DIALOG_POS_Y;
-
- int preview_posx = 0;
- int preview_posy = 0;
- int preview_width = 0;
- int preview_height = 0;
-
- file = fopen(filename, "r");
- if (file == 0) /* error ? */
- {
- return;
- }
-
- if (!feof(file))
- {
- fgets(option, sizeof(option), file); /* get first line */
- option[strlen(option)-1] = 0; /* remove cr */
-
- if (strcmp(option, "\"XSANE_DEVICE_RC\"") != 0) /* wrong file format ? */
- {
- char buf[256];
-
- snprintf(buf, sizeof(buf), "%s\n%s %s", ERR_LOAD_DEVICE_SETTINGS, filename, ERR_NO_DRC_FILE);
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- if (!feof(file))
- {
- fgets(option, sizeof(option), file); /* get version */
- option[strlen(option)-1] = 0; /* remove cr */
- len = strlen(option);
- if (len)
- {
- if (option[len-1] == 34)
- {
- option[len-1] = 0; /* remove " */
- }
- }
- optionp = option+1;
-
- if (strcmp(optionp, xsane.device_set_filename))
- {
- snprintf(buf, sizeof(buf), "%s \"%s\"\n"
- "%s \"%s\",\n"
- "%s \"%s\",\n"
- "%s",
- TEXT_FILE, filename,
- ERR_CREATED_FOR_DEVICE, optionp,
- ERR_USED_FOR_DEVICE, xsane.device_set_filename,
- ERR_MAY_CAUSE_PROBLEMS);
- if (xsane_back_gtk_decision(ERR_HEADER_WARNING, buf, ERR_BUTTON_OK, BUTTON_CANCEL, TRUE) == FALSE)
- { /* cancel */
- fclose(file);
- return;
- }
- }
- }
- }
-
- while (!feof(file))
- {
- fgets(option, sizeof(option), file); /* get option name */
- option[strlen(option)-1] = 0; /* remove cr */
- if (strcmp(option, "\"xsane-version\"") == 0)
- {
- fgets(option, sizeof(option), file); /* get version */
- option[strlen(option)-1] = 0; /* remove cr */
- len = strlen(option);
- if (len)
- {
- if (option[len-1] == 34)
- {
- option[len-1] = 0; /* remove " */
- }
- }
- version = strdup(option+1);
- }
- else if (strcmp(option, "\"xsane-gamma\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.gamma);
- }
- else if (strcmp(option, "\"xsane-gamma-red\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.gamma_red);
- }
- else if (strcmp(option, "\"xsane-gamma-green\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.gamma_green);
- }
- else if (strcmp(option, "\"xsane-gamma-blue\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.gamma_blue);
- }
- else if (strcmp(option, "\"xsane-brightness\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.brightness);
- }
- else if (strcmp(option, "\"xsane-brightness-red\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.brightness_red);
- }
- else if (strcmp(option, "\"xsane-brightness-green\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.brightness_green);
- }
- else if (strcmp(option, "\"xsane-brightness-blue\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.brightness_blue);
- }
- else if (strcmp(option, "\"xsane-contrast\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.contrast);
- }
- else if (strcmp(option, "\"xsane-contrast-red\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.contrast_red);
- }
- else if (strcmp(option, "\"xsane-contrast-green\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.contrast_green);
- }
- else if (strcmp(option, "\"xsane-contrast-blue\"") == 0)
- {
- fscanf(file, "%lf\n", &xsane.contrast_blue);
- }
- else if (strcmp(option, "\"xsane-enhancement-rgb-default\"") == 0)
- {
- fscanf(file, "%d\n", &xsane.enhancement_rgb_default);
- }
- else if (strcmp(option, "\"xsane-negative\"") == 0)
- {
- fscanf(file, "%d\n", &xsane.negative);
- }
- else if (strcmp(option, "\"xsane-show-preview\"") == 0)
- {
- fscanf(file, "%d\n", &xsane.show_preview);
- }
- else if (strcmp(option, "\"xsane-main-window-x-position\"") == 0)
- {
- fscanf(file, "%d\n", &main_posx);
- }
- else if (strcmp(option, "\"xsane-main-window-y-position\"") == 0)
- {
- fscanf(file, "%d\n", &main_posy);
- }
- else if (strcmp(option, "\"xsane-main-window-width\"") == 0)
- {
- fscanf(file, "%d\n", &main_width);
- }
- else if (strcmp(option, "\"xsane-main-window-height\"") == 0)
- {
- fscanf(file, "%d\n", &main_height);
- }
- else if (strcmp(option, "\"xsane-standard-options-window-x-position\"") == 0)
- {
- fscanf(file, "%d\n", &standard_options_posx);
- }
- else if (strcmp(option, "\"xsane-standard-options-window-y-position\"") == 0)
- {
- fscanf(file, "%d\n", &standard_options_posy);
- }
- else if (strcmp(option, "\"xsane-advanced-options-window-x-position\"") == 0)
- {
- fscanf(file, "%d\n", &advanced_options_posx);
- }
- else if (strcmp(option, "\"xsane-advanced-options-window-y-position\"") == 0)
- {
- fscanf(file, "%d\n", &advanced_options_posy);
- }
- else if (strcmp(option, "\"xsane-histogram-window-x-position\"") == 0)
- {
- fscanf(file, "%d\n", &histogram_posx);
- }
- else if (strcmp(option, "\"xsane-histogram-window-y-position\"") == 0)
- {
- fscanf(file, "%d\n", &histogram_posy);
- }
- else if (strcmp(option, "\"xsane-preview-window-x-position\"") == 0)
- {
- fscanf(file, "%d\n", &preview_posx);
- }
- else if (strcmp(option, "\"xsane-preview-window-y-position\"") == 0)
- {
- fscanf(file, "%d\n", &preview_posy);
- }
- else if (strcmp(option, "\"xsane-preview-window-width\"") == 0)
- {
- fscanf(file, "%d\n", &preview_width);
- }
- else if (strcmp(option, "\"xsane-preview-window-height\"") == 0)
- {
- fscanf(file, "%d\n", &preview_height);
- }
- else
- {
- fgets(option, sizeof(option), file); /* skip option */
- }
- }
- fclose(file);
-
-#if 0
- if (version)
- {
- if (strcmp(version, XSANE_VERSION))
- {
- snprintf(buf, sizeof(buf), "File: \"%s\"\n"
- "has been saved with xsane-%s,\n"
- "this may cause problems!", filename, version);
- xsane_back_gtk_warning(buf, TRUE);
- }
- free(version);
- }
- else
- {
- snprintf(buf, sizeof(buf), "File: \"%s\"\n"
- "has been saved with xsane before version 0.40,\n"
- "this may cause problems!", filename);
- xsane_back_gtk_warning(buf, TRUE);
- }
-#endif
-
-
- gtk_widget_set_uposition(xsane.shell, main_posx, main_posy);
- gtk_widget_set_uposition(xsane.standard_options_shell, standard_options_posx, standard_options_posy);
- gtk_widget_set_uposition(xsane.advanced_options_shell, advanced_options_posx, advanced_options_posy);
- gtk_widget_set_uposition(xsane.histogram_dialog, histogram_posx, histogram_posy);
-
- if (xsane.preview)
- {
- gtk_widget_set_uposition(xsane.preview->top, preview_posx, preview_posy);
- }
-
- gtk_window_set_default_size(GTK_WINDOW(xsane.shell), main_width, main_height);
-
- if (xsane.preview)
- {
- gtk_window_set_default_size(GTK_WINDOW(xsane.preview->top), preview_width, preview_height);
- }
-
-
- fd = open(filename, O_RDONLY);
- if (fd < 0)
- {
- return;
- }
- xsane_device_preferences_load_values(fd, dialog->dev);
- close(fd);
-
- if (dialog->well_known.dpi > 0)
- {
- const SANE_Option_Descriptor *opt;
-
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.dpi);
-
- switch (opt->type)
- {
- case SANE_TYPE_INT:
- {
- SANE_Int dpi;
- sane_control_option(dialog->dev, dialog->well_known.dpi, SANE_ACTION_GET_VALUE, &dpi, 0);
- xsane.resolution = dpi;
- }
- break;
-
- case SANE_TYPE_FIXED:
- {
- SANE_Fixed dpi;
- sane_control_option(dialog->dev, dialog->well_known.dpi, SANE_ACTION_GET_VALUE, &dpi, 0);
- xsane.resolution = (int) SANE_UNFIX(dpi);
- }
- break;
-
- default:
- fprintf(stderr, "xsane_pref_load_file: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
- return;
- }
- }
-
- xsane_refresh_dialog(dialog);
- xsane_enhancement_by_gamma();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_device_preferences_restore(void)
-{
- char filename[PATH_MAX];
-
- xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, 0, xsane.device_set_filename, ".drc");
- xsane_device_preferences_load_file(filename);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_device_preferences_load(void)
-{
- char filename[PATH_MAX];
- char windowname[256];
-
- xsane_set_sensitivity(FALSE);
-
- sprintf(windowname, "%s %s %s", prog_name, WINDOW_LOAD_SETTINGS, device_text);
- xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, 0, xsane.device_set_filename, ".drc");
- xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename);
- xsane_device_preferences_load_file(filename);
- xsane_set_sensitivity(TRUE);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_device_preferences_save(GtkWidget *widget, gpointer data)
-{
- char filename[PATH_MAX];
- char windowname[256];
- int fd;
- FILE *file;
- int posx, posy, width, height;
-
- xsane_set_sensitivity(FALSE);
-
- sprintf(windowname, "%s %s %s", prog_name, WINDOW_SAVE_SETTINGS, device_text);
- xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, 0, xsane.device_set_filename, ".drc");
- xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename);
-
- file = fopen(filename, "w");
- if (file == 0)
- {
- char buf[256];
-
- snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_CREATE_FILE, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- xsane_set_sensitivity(TRUE);
- return;
- }
-
- fprintf(file, "\"XSANE_DEVICE_RC\"\n");
- fprintf(file, "\"%s\"\n", xsane.device_set_filename);
- fclose(file);
-
- fd = open(filename, O_WRONLY | O_APPEND , 0666);
- if (fd < 0)
- {
- char buf[256];
-
- snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_CREATE_FILE, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- xsane_set_sensitivity(TRUE);
- return;
- }
- xsane_device_preferences_save_values(fd, dialog->dev);
- close(fd);
-
-
- file = fopen(filename, "a");
- if (file == 0)
- {
- char buf[256];
-
- snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_CREATE_FILE, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- xsane_set_sensitivity(TRUE);
- return;
- }
-
- fprintf(file, "\"xsane-version\"\n");
- fprintf(file, "\"" XSANE_VERSION "\"\n");
- fprintf(file, "\"xsane-gamma\"\n");
- fprintf(file, "%f\n", xsane.gamma);
- fprintf(file, "\"xsane-gamma-red\"\n");
- fprintf(file, "%f\n", xsane.gamma_red);
- fprintf(file, "\"xsane-gamma-green\"\n");
- fprintf(file, "%f\n", xsane.gamma_green);
- fprintf(file, "\"xsane-gamma-blue\"\n");
- fprintf(file, "%f\n", xsane.gamma_blue);
-
- fprintf(file, "\"xsane-brightness\"\n");
- fprintf(file, "%f\n", xsane.brightness);
- fprintf(file, "\"xsane-brightness-red\"\n");
- fprintf(file, "%f\n", xsane.brightness_red);
- fprintf(file, "\"xsane-brightness-green\"\n");
- fprintf(file, "%f\n", xsane.brightness_green);
- fprintf(file, "\"xsane-brightness-blue\"\n");
- fprintf(file, "%f\n", xsane.brightness_blue);
-
- fprintf(file, "\"xsane-contrast\"\n");
- fprintf(file, "%f\n", xsane.contrast);
- fprintf(file, "\"xsane-contrast-red\"\n");
- fprintf(file, "%f\n", xsane.contrast_red);
- fprintf(file, "\"xsane-contrast-green\"\n");
- fprintf(file, "%f\n", xsane.contrast_green);
- fprintf(file, "\"xsane-contrast-blue\"\n");
- fprintf(file, "%f\n", xsane.contrast_blue);
-
- fprintf(file, "\"xsane-enhancement-rgb-default\"\n");
- fprintf(file, "%d\n", xsane.enhancement_rgb_default);
-
- fprintf(file, "\"xsane-negative\"\n");
- fprintf(file, "%d\n", xsane.negative);
-
- gdk_window_get_root_origin(xsane.shell->window, &posx, &posy);
- gdk_window_get_size(xsane.shell->window, &width, &height);
- fprintf(file, "\"xsane-main-window-x-position\"\n");
- fprintf(file, "%d\n", posx);
- fprintf(file, "\"xsane-main-window-y-position\"\n");
- fprintf(file, "%d\n", posy);
- fprintf(file, "\"xsane-main-window-width\"\n");
- fprintf(file, "%d\n", width);
- fprintf(file, "\"xsane-main-window-height\"\n");
- fprintf(file, "%d\n", height);
- gtk_widget_set_uposition(xsane.shell, posx, posy); /* set default geometry used when window is closed and opened again */
- gtk_window_set_default_size(GTK_WINDOW(xsane.shell), width, height);
-
- gdk_window_get_root_origin(xsane.standard_options_shell->window, &posx, &posy);
- fprintf(file, "\"xsane-standard-options-window-x-position\"\n");
- fprintf(file, "%d\n", posx);
- fprintf(file, "\"xsane-standard-options-window-y-position\"\n");
- fprintf(file, "%d\n", posy);
- gtk_widget_set_uposition(xsane.standard_options_shell, posx, posy);
-
- gdk_window_get_root_origin(xsane.advanced_options_shell->window, &posx, &posy);
- fprintf(file, "\"xsane-advanced-options-window-x-position\"\n");
- fprintf(file, "%d\n", posx);
- fprintf(file, "\"xsane-advanced-options-window-y-position\"\n");
- fprintf(file, "%d\n", posy);
- gtk_widget_set_uposition(xsane.advanced_options_shell, posx, posy);
-
- gdk_window_get_root_origin(xsane.histogram_dialog->window, &posx, &posy);
- fprintf(file, "\"xsane-histogram-window-x-position\"\n");
- fprintf(file, "%d\n", posx);
- fprintf(file, "\"xsane-histogram-window-y-position\"\n");
- fprintf(file, "%d\n", posy);
- gtk_widget_set_uposition(xsane.histogram_dialog, posx, posy);
-
- fprintf(file, "\"xsane-show-preview\"\n");
- fprintf(file, "%d\n", xsane.show_preview);
-
- if (xsane.preview)
- {
- gdk_window_get_root_origin(xsane.preview->top->window, &posx, &posy);
- gdk_window_get_size(xsane.preview->top->window, &width, &height);
- fprintf(file, "\"xsane-preview-window-x-position\"\n");
- fprintf(file, "%d\n", posx);
- fprintf(file, "\"xsane-preview-window-y-position\"\n");
- fprintf(file, "%d\n", posy);
- fprintf(file, "\"xsane-preview-window-width\"\n");
- fprintf(file, "%d\n", width);
- fprintf(file, "\"xsane-preview-window-height\"\n");
- fprintf(file, "%d\n", height);
- gtk_widget_set_uposition(xsane.preview->top, posx, posy);
- gtk_window_set_default_size(GTK_WINDOW(xsane.preview->top), width, height);
- }
-
- fclose(file);
-
- xsane_set_sensitivity(TRUE);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------- */
-
diff --git a/frontend/xsane-front-gtk.c b/frontend/xsane-front-gtk.c
deleted file mode 100644
index fca864e..0000000
--- a/frontend/xsane-front-gtk.c
+++ /dev/null
@@ -1,798 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane-front-gtk.c
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#include "xsane.h"
-#include "xsane-back-gtk.h"
-#include "xsane-preferences.h"
-#include "xsane-preview.h"
-#include "xsane-save.h"
-#include "xsane-text.h"
-#include "xsane-gamma.h"
-#include "xsane-setup.h"
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
-#include <png.h>
-#include <zlib.h>
-#endif
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* forward declarations: */
-
-void xsane_get_bounds(const SANE_Option_Descriptor *opt, double *minp, double *maxp);
-int xsane_set_resolution(int well_known_option, int resolution);
-void xsane_set_all_resolutions(void);
-void xsane_define_maximum_output_size();
-void xsane_close_dialog_callback(GtkWidget *widget, gpointer data);
-void xsane_authorization_button_callback(GtkWidget *widget, gpointer data);
-gint xsane_authorization_callback(SANE_String_Const resource,
- SANE_Char username[SANE_MAX_USERNAME_LEN],
- SANE_Char password[SANE_MAX_PASSWORD_LEN]);
-void xsane_progress_cancel(GtkWidget *widget, gpointer data);
-XsaneProgress_t *xsane_progress_new(char *title, char *text, GtkSignalFunc callback, gpointer callback_data);
-void xsane_progress_free(XsaneProgress_t *p);
-void xsane_progress_update(XsaneProgress_t *p, gfloat newval);
-void xsane_toggle_button_new_with_pixmap(GtkWidget *parent, const char *xpm_d[], const char *desc,
- int *state, void *xsane_toggle_button_callback);
-GtkWidget *xsane_button_new_with_pixmap(GtkWidget *parent, const char *xpm_d[], const char *desc,
- void *xsane_button_callback, gpointer data);
-void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, int option_number, const char *desc,
- void *option_menu_callback, SANE_Int settable, const gchar *widget_name);
-void xsane_option_menu_new_with_pixmap(GtkBox *parent, const char *xpm_d[], const char *desc,
- char *str_list[], const char *val,
- GtkObject **data, int option,
- void *option_menu_callback, SANE_Int settable, const gchar *widget_name);
-void xsane_scale_new(GtkBox *parent, char *labeltext, const char *desc,
- float min, float max, float quant, float step, float page_step,
- int digits, double *val, GtkObject **data, void *xsane_scale_callback, SANE_Int settable);
-void xsane_scale_new_with_pixmap(GtkBox *parent, const char *xpm_d[], const char *desc,
- float min, float max, float quant, float step, float page_step, int digits,
- double *val, GtkObject **data, int option, void *xsane_scale_callback, SANE_Int settable);
-void xsane_separator_new(GtkWidget *xsane_parent, int dist);
-GtkWidget *xsane_info_table_text_new(GtkWidget *table, gchar *text, int row, int colomn);
-GtkWidget *xsane_info_text_new(GtkWidget *parent, gchar *text);
-void xsane_refresh_dialog(void *nothing);
-void xsane_set_sensitivity(SANE_Int sensitivity);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_get_bounds(const SANE_Option_Descriptor *opt, double *minp, double *maxp)
-{
- double min, max;
- int i;
-
- min = -INF;
- max = INF;
- switch (opt->constraint_type)
- {
- case SANE_CONSTRAINT_RANGE:
- min = opt->constraint.range->min;
- max = opt->constraint.range->max;
- break;
-
- case SANE_CONSTRAINT_WORD_LIST:
- min = INF;
- max = -INF;
-
- for (i = 1; i <= opt->constraint.word_list[0]; ++i)
- {
- if (opt->constraint.word_list[i] < min)
- {
- min = opt->constraint.word_list[i];
- }
- if (opt->constraint.word_list[i] > max)
- {
- max = opt->constraint.word_list[i];
- }
- }
- break;
-
- default:
- break;
- }
-
- if (opt->type == SANE_TYPE_FIXED)
- {
- if (min > -INF && min < INF)
- {
- min = SANE_UNFIX (min);
- }
- if (max > -INF && max < INF)
- {
- max = SANE_UNFIX (max);
- }
- }
- *minp = min;
- *maxp = max;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-int xsane_set_resolution(int well_known_option, int resolution)
-{
- const SANE_Option_Descriptor *opt;
- SANE_Word dpi;
- SANE_Word bestdpi;
- SANE_Word diff;
- SANE_Word val;
- int items;
- int i;
-
- opt = sane_get_option_descriptor(dialog->dev, well_known_option);
-
- if (!opt)
- {
- return -1; /* option does not exits */
- }
-
- if (opt->constraint_type == SANE_CONSTRAINT_RANGE)
- {
- switch (opt->type)
- {
- case SANE_TYPE_INT:
- dpi = resolution;
- break;
-
- case SANE_TYPE_FIXED:
- dpi = SANE_FIX(resolution);
- break;
-
- default:
- fprintf(stderr, "set_resolution: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
- return 1; /* error */
- }
- }
- else if (opt->constraint_type == SANE_CONSTRAINT_WORD_LIST)
- {
- switch (opt->type)
- {
- case SANE_TYPE_INT:
- dpi = resolution;
- break;
-
- case SANE_TYPE_FIXED:
- dpi = SANE_FIX(resolution);
- break;
-
- default:
- fprintf(stderr, "set_resolution: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
- return 1; /* error */
- }
-
- items = opt->constraint.word_list[0];
- bestdpi = opt->constraint.word_list[1];
- diff = abs(bestdpi - dpi);
-
- for (i=1; i<=items; i++)
- {
- val = opt->constraint.word_list[i];
- if (abs(val - dpi) < diff)
- {
- diff = abs(val - dpi);
- bestdpi = val;
- }
- }
-
- if (bestdpi == -1)
- {
- fprintf(stderr, "set_resolution: %s\n", ERR_FAILED_SET_RESOLUTION);
- return -1;
- }
- dpi = bestdpi;
- }
- else
- {
- fprintf(stderr, "set_resolution: %s %d\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
- return 1; /* error */
- }
-
- sane_control_option(dialog->dev, well_known_option, SANE_ACTION_SET_VALUE, &dpi, 0);
- return 0; /* everything is ok */
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_set_all_resolutions(void)
-{
- xsane_set_resolution(dialog->well_known.dpi_y, xsane.resolution_y); /* set y resolution if possible */
- if (xsane_set_resolution(dialog->well_known.dpi_x, xsane.resolution_x)) /* set x resolution if possible */
- {
- xsane_set_resolution(dialog->well_known.dpi, xsane.resolution); /* set common resolution if necessary */
- xsane.resolution_x = xsane.resolution;
- xsane.resolution_y = xsane.resolution;
- }
-
- xsane.zoom = xsane.resolution / preferences.printer[preferences.printernr]->resolution;
- xsane.zoom_x = xsane.resolution_x / preferences.printer[preferences.printernr]->resolution;
- xsane.zoom_y = xsane.resolution_y / preferences.printer[preferences.printernr]->resolution;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_define_maximum_output_size()
-{
- const SANE_Option_Descriptor *opt;
-
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.coord[0]);
-
- if ( (opt) && (opt->unit== SANE_UNIT_MM) )
- {
- if (xsane.xsane_mode == XSANE_COPY)
- {
- if (preferences.psrotate) /* rotate: landscape */
- {
- preview_set_maximum_output_size(xsane.preview,
- preferences.printer[preferences.printernr]->height / xsane.zoom_y,
- preferences.printer[preferences.printernr]->width / xsane.zoom_x);
- }
- else /* do not rotate: portrait */
- {
- preview_set_maximum_output_size(xsane.preview,
- preferences.printer[preferences.printernr]->width / xsane.zoom_x,
- preferences.printer[preferences.printernr]->height / xsane.zoom_y);
- }
- }
- else if (xsane.xsane_mode == XSANE_FAX)
- {
- preview_set_maximum_output_size(xsane.preview, preferences.fax_width, preferences.fax_height);
- }
- else
- {
- preview_set_maximum_output_size(xsane.preview, INF, INF);
- }
- }
- else
- {
- preview_set_maximum_output_size(xsane.preview, INF, INF);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_close_dialog_callback(GtkWidget *widget, gpointer data)
-{
- GtkWidget *dialog = data;
-
- gtk_widget_destroy(dialog);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-int authorization_flag;
-
-void xsane_authorization_button_callback(GtkWidget *widget, gpointer data)
-{
- authorization_flag = (long) data;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-gint xsane_authorization_callback(SANE_String_Const resource,
- SANE_Char username[SANE_MAX_USERNAME_LEN],
- SANE_Char password[SANE_MAX_PASSWORD_LEN])
-{
- GtkWidget *authorize_dialog, *vbox, *hbox, *button, *label;
- GtkWidget *username_widget, *password_widget;
- char buf[256];
- char *input;
- int len;
-
- authorize_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
- gtk_window_set_position(GTK_WINDOW(authorize_dialog), GTK_WIN_POS_CENTER);
- gtk_window_set_policy(GTK_WINDOW(authorize_dialog), FALSE, FALSE, FALSE);
- gtk_signal_connect(GTK_OBJECT(authorize_dialog), "delete_event",
- GTK_SIGNAL_FUNC(xsane_authorization_button_callback), (void *) -1); /* -1 = cancel */
- snprintf(buf, sizeof(buf), "%s %s", prog_name, WINDOW_AUTHORIZE);
- gtk_window_set_title(GTK_WINDOW(authorize_dialog), buf);
- xsane_set_window_icon(authorize_dialog, 0);
-
- vbox = gtk_vbox_new(/* not homogeneous */ FALSE, 10); /* y-space between all box items */
- gtk_container_add(GTK_CONTAINER(authorize_dialog), vbox);
- gtk_widget_show(vbox);
-
- snprintf(buf, sizeof(buf), "\n\n%s %s\n", TEXT_AUTHORIZATION_REQ, resource);
- label = gtk_label_new(buf);
- gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); /* y-space around authorization text */
- gtk_widget_show(label);
-
- /* ask for username */
- hbox = gtk_hbox_new(FALSE, 10); /* x-space between label and input filed */
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); /* y-space around inner items */
-
- label = gtk_label_new(TEXT_USERNAME);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10); /* x-space around label */
- gtk_widget_show(label);
-
- username_widget = gtk_entry_new_with_max_length(SANE_MAX_USERNAME_LEN-1);
- gtk_widget_set_usize(username_widget, 250, 0);
- gtk_entry_set_text(GTK_ENTRY(username_widget), "");
- gtk_box_pack_end(GTK_BOX(hbox), username_widget, FALSE, FALSE, 10); /* x-space around input filed */
- gtk_widget_show(username_widget);
- gtk_widget_show(hbox);
-
-
- /* ask for password */
- hbox = gtk_hbox_new(FALSE, 10); /* x-space between label and input filed */
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); /* y-space around inner items */
-
- label = gtk_label_new(TEXT_PASSWORD);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10); /* x-space around label */
- gtk_widget_show(label);
-
- password_widget = gtk_entry_new_with_max_length(SANE_MAX_PASSWORD_LEN-1);
- gtk_entry_set_visibility(GTK_ENTRY(password_widget), FALSE); /* make entered text invisible */
- gtk_widget_set_usize(password_widget, 250, 0);
- gtk_entry_set_text(GTK_ENTRY(password_widget), "");
- gtk_box_pack_end(GTK_BOX(hbox), password_widget, FALSE, FALSE, 10); /* x-space around input filed */
- gtk_widget_show(password_widget);
- gtk_widget_show(hbox);
-
- /* buttons */
- hbox = gtk_hbox_new(TRUE, 10); /* x-space between buttons */
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 10); /* y-space around buttons */
-
- button = gtk_button_new_with_label(BUTTON_OK);
- GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(xsane_authorization_button_callback), (void *) 1);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 10); /* x-space around OK-button */
- gtk_widget_grab_default(button);
- gtk_widget_show(button);
-
- button = gtk_button_new_with_label(BUTTON_CANCEL);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(xsane_authorization_button_callback), (void *) -1);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 10); /* x-space around cancel-button */
- gtk_widget_show(button);
-
- gtk_widget_show(hbox);
-
- gtk_widget_show(authorize_dialog);
-
-
- username[0]=0;
- password[0]=0;
-
- authorization_flag = 0;
-
- /* wait for ok or cancel */
- while (authorization_flag == 0)
- {
- gtk_main_iteration();
- }
-
- if (authorization_flag == 1) /* 1=ok, -1=cancel */
- {
- input = gtk_entry_get_text(GTK_ENTRY(username_widget));
- len = strlen(input);
- memcpy(username, input, len);
- username[len] = 0;
-
- input = gtk_entry_get_text(GTK_ENTRY(password_widget));
- len = strlen(input);
- memcpy(password, input, len);
- password[len] = 0;
- }
- gtk_widget_destroy(authorize_dialog);
- return TRUE;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_progress_cancel(GtkWidget *widget, gpointer data)
-{
- XsaneProgress_t *p = (XsaneProgress_t *) data;
-
- (*p->callback) ();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-XsaneProgress_t *xsane_progress_new(char *title, char *text, GtkSignalFunc callback, gpointer callback_data)
-{
- GtkWidget *button, *label;
- GtkBox *vbox, *hbox;
- XsaneProgress_t *p;
- static const int progress_x = 5;
- static const int progress_y = 5;
-
- p = (XsaneProgress_t *) malloc(sizeof(XsaneProgress_t));
- p->callback = callback;
-
- p->shell = gtk_dialog_new();
- gtk_widget_set_uposition(p->shell, progress_x, progress_y);
- gtk_window_set_title(GTK_WINDOW (p->shell), title);
-
- xsane_set_window_icon(p->shell, 0);
-
- vbox = GTK_BOX(GTK_DIALOG(p->shell)->vbox);
- hbox = GTK_BOX(GTK_DIALOG(p->shell)->action_area);
-
- gtk_container_set_border_width(GTK_CONTAINER (vbox), 7);
-
- label = gtk_label_new(text);
- gtk_misc_set_alignment(GTK_MISC (label), 0.0, 0.5);
- gtk_box_pack_start(vbox, label, FALSE, TRUE, 0);
-
- p->pbar = gtk_progress_bar_new();
- gtk_widget_set_usize(p->pbar, 200, 20);
- gtk_box_pack_start(vbox, p->pbar, TRUE, TRUE, 0);
-
- button = gtk_toggle_button_new_with_label(BUTTON_CANCEL);
- gtk_signal_connect(GTK_OBJECT (button), "clicked", (GtkSignalFunc) xsane_progress_cancel, p);
- gtk_box_pack_start(hbox, button, TRUE, TRUE, 0);
-
- gtk_widget_show(label);
- gtk_widget_show(p->pbar);
- gtk_widget_show(button);
- gtk_widget_show(GTK_WIDGET (p->shell));
- return p;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_progress_free(XsaneProgress_t *p)
-{
- if (p)
- {
- gtk_widget_destroy(p->shell);
- free (p);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_progress_update(XsaneProgress_t *p, gfloat newval)
-{
- if (p)
- {
- gtk_progress_bar_update(GTK_PROGRESS_BAR(p->pbar), newval);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_toggle_button_new_with_pixmap(GtkWidget *parent, const char *xpm_d[], const char *desc,
- int *state, void *xsane_toggle_button_callback)
-{
- GtkWidget *button;
- GtkWidget *pixmapwidget;
- GdkBitmap *mask;
- GdkPixmap *pixmap;
-
- button = gtk_toggle_button_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, button, desc);
-
- pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) xpm_d);
- pixmapwidget = gtk_pixmap_new(pixmap, mask);
- gtk_container_add(GTK_CONTAINER(button), pixmapwidget);
- gtk_widget_show(pixmapwidget);
- gdk_pixmap_unref(pixmap);
-
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *state);
- gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_toggle_button_callback, (GtkObject *)state);
- gtk_box_pack_start(GTK_BOX(parent), button, FALSE, FALSE, 0);
- gtk_widget_show(button);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-GtkWidget *xsane_button_new_with_pixmap(GtkWidget *parent, const char *xpm_d[], const char *desc,
- void *xsane_button_callback, gpointer data)
-{
- GtkWidget *button;
- GtkWidget *pixmapwidget;
- GdkBitmap *mask;
- GdkPixmap *pixmap;
-
- button = gtk_button_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, button, desc);
-
- pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) xpm_d);
- pixmapwidget = gtk_pixmap_new(pixmap, mask);
- gtk_container_add(GTK_CONTAINER(button), pixmapwidget);
- gtk_widget_show(pixmapwidget);
- gdk_pixmap_unref(pixmap);
-
- if (xsane_button_callback)
- {
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_button_callback, data);
- }
- gtk_box_pack_start(GTK_BOX(parent), button, FALSE, FALSE, 0);
- gtk_widget_show(button);
-
- return(button);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int xsane_option_menu_lookup(GSGMenuItem menu_items[], const char *string)
-{
- int i;
-
- for (i = 0; strcmp(menu_items[i].label, string) != 0; ++i);
- return i;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_option_menu_callback(GtkWidget *widget, gpointer data)
-{
- GSGMenuItem *menu_item = data;
- GSGDialogElement *elem = menu_item->elem;
- const SANE_Option_Descriptor *opt;
- GSGDialog *dialog = elem->dialog;
- int opt_num;
- double dval;
- SANE_Word val;
- void *valp = &val;
-
- opt_num = elem - dialog->element;
- opt = sane_get_option_descriptor(dialog->dev, opt_num);
- switch (opt->type)
- {
- case SANE_TYPE_INT:
- sscanf(menu_item->label, "%d", &val);
- break;
-
- case SANE_TYPE_FIXED:
- sscanf(menu_item->label, "%lg", &dval);
- val = SANE_FIX(dval);
- break;
-
- case SANE_TYPE_STRING:
- valp = menu_item->label;
- break;
-
- default:
- fprintf(stderr, "xsane_option_menu_callback: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
- break;
- }
- xsane_back_gtk_set_option(dialog, opt_num, valp, SANE_ACTION_SET_VALUE);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, int option_number, const char *desc,
- void *option_menu_callback, SANE_Int settable, const gchar *widget_name)
-{
- GtkWidget *option_menu, *menu, *item;
- GSGMenuItem *menu_items;
- GSGDialogElement *elem;
- int i, num_items;
-
- elem = dialog->element + option_number;
-
- for (num_items = 0; str_list[num_items]; ++num_items);
- menu_items = malloc(num_items * sizeof(menu_items[0]));
-
- menu = gtk_menu_new();
- if (widget_name)
- {
- gtk_widget_set_name(menu, widget_name);
- }
-
- for (i = 0; i < num_items; ++i)
- {
- item = gtk_menu_item_new_with_label(_BGT(str_list[i]));
- gtk_container_add(GTK_CONTAINER(menu), item);
-
- if (option_menu_callback)
- {
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) option_menu_callback, menu_items + i);
- }
- else
- {
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_option_menu_callback, menu_items + i);
- }
-
- gtk_widget_show(item);
-
- menu_items[i].label = str_list[i];
- menu_items[i].elem = elem;
- menu_items[i].index = i;
- }
-
- option_menu = gtk_option_menu_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, option_menu, desc);
- gtk_box_pack_end(GTK_BOX(parent), option_menu, FALSE, FALSE, 2);
- gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), menu);
- gtk_option_menu_set_history(GTK_OPTION_MENU(option_menu), xsane_option_menu_lookup(menu_items, val));
-
- gtk_widget_show(option_menu);
-
- gtk_widget_set_sensitive(option_menu, settable);
-
- elem->widget = option_menu;
- elem->menu_size = num_items;
- elem->menu = menu_items;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_option_menu_new_with_pixmap(GtkBox *parent, const char *xpm_d[], const char *desc,
- char *str_list[], const char *val,
- GtkObject **data, int option,
- void *option_menu_callback, SANE_Int settable, const gchar *widget_name)
-{
- GtkWidget *hbox;
- GtkWidget *pixmapwidget;
- GdkBitmap *mask;
- GdkPixmap *pixmap;
-
- hbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(parent, hbox, FALSE, FALSE, 0);
-
- pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) xpm_d);
- pixmapwidget = gtk_pixmap_new(pixmap, mask);
- gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
- gtk_widget_show(pixmapwidget);
-
- xsane_option_menu_new(hbox, str_list, val, option, desc, option_menu_callback, settable, widget_name);
- gtk_widget_show(hbox);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_scale_new(GtkBox *parent, char *labeltext, const char *desc,
- float min, float max, float quant, float step, float page_step,
- int digits, double *val, GtkObject **data, void *xsane_scale_callback, SANE_Int settable)
-{
- GtkWidget *hbox;
- GtkWidget *label;
- GtkWidget *scale;
-
- hbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(parent, hbox, FALSE, FALSE, 0);
-
- label = gtk_label_new(labeltext);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
-
- *data = gtk_adjustment_new(*val, min, max, quant, step, page_step);
- scale = gtk_hscale_new(GTK_ADJUSTMENT(*data));
- xsane_back_gtk_set_tooltip(dialog->tooltips, scale, desc);
- gtk_widget_set_usize(scale, 201, 0); /* minimum scale with = 201 pixels */
- gtk_range_set_update_policy(GTK_RANGE(scale), preferences.gtk_update_policy);
- /* GTK_UPDATE_CONTINUOUS, GTK_UPDATE_DISCONTINUOUS, GTK_UPDATE_DELAYED */
- gtk_scale_set_value_pos(GTK_SCALE(scale), GTK_POS_TOP);
- gtk_scale_set_digits(GTK_SCALE(scale), digits);
- gtk_box_pack_end(GTK_BOX(hbox), scale, FALSE, TRUE, 5); /* make scale not sizeable */
-
- if (xsane_scale_callback)
- {
- gtk_signal_connect(*data, "value_changed", (GtkSignalFunc) xsane_scale_callback, val);
- }
-
- gtk_widget_show(label);
- gtk_widget_show(scale);
- gtk_widget_show(hbox);
-
- gtk_widget_set_sensitive(scale, settable);
-
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_scale_new_with_pixmap(GtkBox *parent, const char *xpm_d[], const char *desc,
- float min, float max, float quant, float step, float page_step, int digits,
- double *val, GtkObject **data, int option, void *xsane_scale_callback, SANE_Int settable)
-{
- GtkWidget *hbox;
- GtkWidget *scale;
- GtkWidget *pixmapwidget;
- GdkBitmap *mask;
- GdkPixmap *pixmap;
-
- hbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(parent, hbox, FALSE, FALSE, 0);
-
- pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) xpm_d);
- pixmapwidget = gtk_pixmap_new(pixmap, mask);
- gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
-
- *data = gtk_adjustment_new(*val, min, max, quant, step, page_step);
- scale = gtk_hscale_new(GTK_ADJUSTMENT(*data));
- xsane_back_gtk_set_tooltip(dialog->tooltips, scale, desc);
- gtk_widget_set_usize(scale, 201, 0); /* minimum scale with = 201 pxiels */
- gtk_range_set_update_policy(GTK_RANGE(scale), preferences.gtk_update_policy);
- /* GTK_UPDATE_CONTINUOUS, GTK_UPDATE_DISCONTINUOUS, GTK_UPDATE_DELAYED */
- gtk_scale_set_value_pos(GTK_SCALE(scale), GTK_POS_TOP);
- gtk_scale_set_digits(GTK_SCALE(scale), digits);
- gtk_box_pack_end(GTK_BOX(hbox), scale, TRUE, TRUE, 5); /* make scale sizeable */
-
- if (xsane_scale_callback)
- {
- gtk_signal_connect(*data, "value_changed", (GtkSignalFunc) xsane_scale_callback, val);
- }
-
- gtk_widget_show(pixmapwidget);
- gtk_widget_show(scale);
- gtk_widget_show(hbox);
-
- gtk_widget_set_sensitive(scale, settable);
-
- gdk_pixmap_unref(pixmap);
-
- if ( (dialog) && (option) )
- {
- GSGDialogElement *elem;
-
- elem=dialog->element + option;
- elem->data = *data;
- elem->widget = scale;
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_separator_new(GtkWidget *xsane_parent, int dist)
-{
- GtkWidget *xsane_separator;
-
- xsane_separator = gtk_hseparator_new();
- gtk_box_pack_start(GTK_BOX(xsane_parent), xsane_separator, FALSE, FALSE, dist);
- gtk_widget_show(xsane_separator);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-GtkWidget *xsane_info_table_text_new(GtkWidget *table, gchar *text, int row, int colomn)
-{
- GtkWidget *hbox, *label;
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_table_attach_defaults(GTK_TABLE(table), hbox, row, row+1, colomn, colomn+1);
- gtk_widget_show(hbox);
-
- label = gtk_label_new(text);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10);
- gtk_widget_show(label);
-
- return label;
-}
-/* ---------------------------------------------------------------------------------------------------------------------- */
-#if 0
-GtkWidget *xsane_info_text_new(GtkWidget *parent, gchar *text)
-{
- GtkWidget *hbox, *label;
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(parent), hbox, TRUE, TRUE, 5);
- gtk_widget_show(hbox);
-
- label = gtk_label_new(text);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10);
- gtk_widget_show(label);
-
- return label;
-}
-#endif
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_refresh_dialog(void *nothing)
-{
- xsane_back_gtk_refresh_dialog(dialog);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/frontend/xsane-gamma.c b/frontend/xsane-gamma.c
deleted file mode 100644
index 90573f5..0000000
--- a/frontend/xsane-gamma.c
+++ /dev/null
@@ -1,1541 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane-gamma.c
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#include "xsane.h"
-#include "xsane-front-gtk.h"
-#include "xsane-back-gtk.h"
-#include "xsane-preferences.h"
-#include "xsane-preview.h"
-#include "xsane-save.h"
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
-#include <png.h>
-#include <zlib.h>
-#endif
-#endif
-
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* forward declarations: */
-
-static void xsane_bound_double(double *value, double min, double max);
-void xsane_clear_histogram(XsanePixmap *hist);
-static void xsane_draw_histogram_with_points(XsanePixmap *hist, int invert,
- SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue,
- int show_red, int show_green, int show_blue, int show_inten, double scale);
-static void xsane_draw_histogram_with_lines(XsanePixmap *hist, int invert,
- SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue,
- int show_red, int show_green, int show_blue, int show_inten, double scale);
-void xsane_draw_slider_level(XsaneSlider *slider);
-static void xsane_set_slider(XsaneSlider *slider, double min, double mid, double max);
-void xsane_update_slider(XsaneSlider *slider);
-void xsane_update_sliders(void);
-static gint xsane_slider_callback(GtkWidget *widget, GdkEvent *event, XsaneSlider *slider);
-void xsane_create_slider(XsaneSlider *slider);
-void xsane_create_histogram(GtkWidget *parent, const char *title, int width, int height, XsanePixmap *hist);
-static void xsane_calculate_auto_enhancement(int negative,
- SANE_Int *count_raw, SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue);
-void xsane_calculate_histogram(void);
-void xsane_update_histogram(void);
-void xsane_histogram_toggle_button_callback(GtkWidget *widget, gpointer data);
-void xsane_create_gamma_curve(SANE_Int *gammadata, int negative, double gamma,
- double brightness, double contrast, int numbers, int maxout);
-void xsane_update_gamma(void);
-static void xsane_enhancement_update(void);
-static void xsane_gamma_to_histogram(double *min, double *mid, double *max,
- double contrast, double brightness, double gamma);
-void xsane_enhancement_by_gamma(void);
-void xsane_enhancement_restore_default(void);
-void xsane_enhancement_restore(void);
-void xsane_enhancement_store(void);
-static void xsane_histogram_to_gamma(XsaneSlider *slider, double *contrast, double *brightness, double *gamma);
-void xsane_enhancement_by_histogram(void);
-static gint xsane_histogram_win_delete(GtkWidget *widget, gpointer data);
-void xsane_create_histogram_dialog(const char *devicetext);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_bound_double(double *value, double min, double max)
-{
- if (*value < min)
- {
- *value = min;
- }
-
- if (*value > max)
- {
- *value = max;
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_clear_histogram(XsanePixmap *hist)
-{
- GdkRectangle rect;
-
- if(hist->pixmap)
- {
- rect.x=0;
- rect.y=0;
- rect.width = HIST_WIDTH;
- rect.height = HIST_HEIGHT;
-
- gdk_draw_rectangle(hist->pixmap, xsane.gc_backg, TRUE, 0, 0, HIST_WIDTH, HIST_HEIGHT);
- gtk_widget_draw(hist->pixmapwid, &rect);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_draw_histogram_with_points(XsanePixmap *hist, int invert,
- SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue,
- int show_red, int show_green, int show_blue, int show_inten, double scale)
-{
- GdkRectangle rect;
- int i;
- int inten, red, green, blue;
- int colval;
-
-#define XD 1
-#define YD 2
-
- if(hist->pixmap)
- {
- rect.x=0;
- rect.y=0;
- rect.width = HIST_WIDTH;
- rect.height = HIST_HEIGHT;
-
- gdk_draw_rectangle(hist->pixmap, xsane.gc_backg, TRUE, 0, 0, HIST_WIDTH, HIST_HEIGHT);
-
- red = 0;
- green = 0;
- blue = 0;
-
- for (i=0; i < HIST_WIDTH; i++)
- {
- if (invert)
- {
- colval = 255-i;
- }
- else
- {
- colval = i;
- }
-
- inten = show_inten * count[colval] * scale;
-
- if (xsane.xsane_color)
- {
- red = show_red * count_red[colval] * scale;
- green = show_green * count_green[colval] * scale;
- blue = show_blue * count_blue[colval] * scale;
- }
-
- if (inten > HIST_HEIGHT)
- inten = HIST_HEIGHT;
-
- if (red > HIST_HEIGHT)
- red = HIST_HEIGHT;
-
- if (green > HIST_HEIGHT)
- green = HIST_HEIGHT;
-
- if (blue > HIST_HEIGHT)
- blue = HIST_HEIGHT;
-
-
- gdk_draw_rectangle(hist->pixmap, xsane.gc_red, TRUE, i, HIST_HEIGHT - red, XD, YD);
- gdk_draw_rectangle(hist->pixmap, xsane.gc_green, TRUE, i, HIST_HEIGHT - green, XD, YD);
- gdk_draw_rectangle(hist->pixmap, xsane.gc_blue, TRUE, i, HIST_HEIGHT - blue, XD, YD);
- gdk_draw_rectangle(hist->pixmap, xsane.gc_black, TRUE, i, HIST_HEIGHT - inten, XD, YD);
- }
-
- gtk_widget_draw(hist->pixmapwid, &rect);
- }
-}
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_draw_histogram_with_lines(XsanePixmap *hist, int invert,
- SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue,
- int show_red, int show_green, int show_blue, int show_inten, double scale)
-{
- GdkRectangle rect;
- int i, j, k;
- int inten, red, green, blue;
- int inten0=0, red0=0, green0=0, blue0=0;
- int val[4];
- int val2[4];
- int color[4];
- int val_swap;
- int color_swap;
- int colval;
-
- if (hist->pixmap)
- {
- rect.x=0;
- rect.y=0;
- rect.width = HIST_WIDTH;
- rect.height = HIST_HEIGHT;
-
- gdk_draw_rectangle(hist->pixmap, xsane.gc_backg, TRUE, 0, 0, HIST_WIDTH, HIST_HEIGHT);
-
- red = 0;
- green = 0;
- blue = 0;
-
- for (i=0; i < HIST_WIDTH; i++)
- {
- if (invert)
- {
- colval = 255-i;
- }
- else
- {
- colval = i;
- }
-
- inten = show_inten * count[colval] * scale;
-
- if (xsane.xsane_color)
- {
- red = show_red * count_red[colval] * scale;
- green = show_green * count_green[colval] * scale;
- blue = show_blue * count_blue[colval] * scale;
- }
-
- if (inten > HIST_HEIGHT)
- inten = HIST_HEIGHT;
-
- if (red > HIST_HEIGHT)
- red = HIST_HEIGHT;
-
- if (green > HIST_HEIGHT)
- green = HIST_HEIGHT;
-
- if (blue > HIST_HEIGHT)
- blue = HIST_HEIGHT;
-
- val[0] = red; color[0] = 0;
- val[1] = green; color[1] = 1;
- val[2] = blue; color[2] = 2;
- val[3] = inten; color[3] = 3;
-
- for (j=0; j<3; j++)
- {
- for (k=j+1; k<4; k++)
- {
- if (val[j] < val[k])
- {
- val_swap = val[j];
- color_swap = color[j];
- val[j] = val[k];
- color[j] = color[k];
- val[k] = val_swap;
- color[k] = color_swap;
- }
- }
- }
- val2[0]=val[1]+1;
- val2[1]=val[2]+1;
- val2[2]=val[3]+1;
- val2[3]=0;
-
- for (j=0; j<4; j++)
- {
- switch(color[j])
- {
- case 0: red0 = val2[j];
- break;
- case 1: green0 = val2[j];
- break;
- case 2: blue0 = val2[j];
- break;
- case 3: inten0 = val2[j];
- break;
- }
- }
-
-
- gdk_draw_line(hist->pixmap, xsane.gc_red, i, HIST_HEIGHT - red, i, HIST_HEIGHT - red0);
- gdk_draw_line(hist->pixmap, xsane.gc_green, i, HIST_HEIGHT - green, i, HIST_HEIGHT - green0);
- gdk_draw_line(hist->pixmap, xsane.gc_blue, i, HIST_HEIGHT - blue, i, HIST_HEIGHT - blue0);
- gdk_draw_line(hist->pixmap, xsane.gc_black, i, HIST_HEIGHT - inten, i, HIST_HEIGHT - inten0);
- }
-
- gtk_widget_draw(hist->pixmapwid, &rect);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_establish_slider(XsaneSlider *slider)
-{
- int x, y, pos, len;
- guchar buf[XSANE_SLIDER_WIDTH*3];
- GdkRectangle rect;
-
- buf[0] = buf[1] = buf[2] = 0;
- buf[3+0] = buf[3+1] = buf[3+2]= 0;
-
- for (x=0; x<256; x++)
- {
- buf[3*x+0+6] = x * slider->r;
- buf[3*x+1+6] = x * slider->g;
- buf[3*x+2+6] = x * slider->b;
- }
-
- buf[258*3+0] = 255 * slider->r;
- buf[258*3+1] = 255 * slider->g;
- buf[258*3+2] = 255 * slider->b;
-
- buf[259*3+0] = 255 * slider->r;
- buf[259*3+1] = 255 * slider->g;
- buf[259*3+2] = 255 * slider->b;
-
- for (y=0; y<XSANE_SLIDER_HEIGHT; y++)
- {
- pos = slider->position[0]-y/2;
- len = y;
- if (pos<-2)
- {
- len = len + pos + 2;
- pos = -2;
- }
- pos = pos * 3 + 6;
-
- for (x=0; x<=len; x++)
- {
- if ((x == 0) || (x == len) || (y == XSANE_SLIDER_HEIGHT-1))
- {
- buf[pos++] = 255;
- buf[pos++] = 255;
- buf[pos++] = 255;
- }
- else
- {
- buf[pos++] = 0;
- buf[pos++] = 0;
- buf[pos++] = 0;
- }
- }
-
-
- pos = slider->position[1]-y/2;
- len = y;
- pos = pos * 3 + 6;
-
- for (x=0; x<=len; x++)
- {
- if ((x == 0) || (x == len) || (y == XSANE_SLIDER_HEIGHT-1))
- {
- buf[pos++] = 255;
- buf[pos++] = 255;
- buf[pos++] = 255;
- }
- else
- {
- buf[pos++] = 128;
- buf[pos++] = 128;
- buf[pos++] = 128;
- }
- }
-
-
- pos = slider->position[2]-y/2;
- len = y;
- if (pos+len>257)
- {
- len = 257 - pos;
- }
- pos = pos * 3 + 6;
-
- for (x=0; x<=len; x++)
- {
- if ((x == 0) || (x == len) || (y == XSANE_SLIDER_HEIGHT-1))
- {
- buf[pos++] = 0;
- buf[pos++] = 0;
- buf[pos++] = 0;
- }
- else
- {
- buf[pos++] = 255;
- buf[pos++] = 255;
- buf[pos++] = 255;
- }
- }
-
- gtk_preview_draw_row(GTK_PREVIEW(slider->preview),buf, 0, y, XSANE_SLIDER_WIDTH);
- }
-
- rect.x=0;
- rect.y=0;
- rect.width = XSANE_SLIDER_WIDTH;
- rect.height = XSANE_SLIDER_HEIGHT;
-
- gtk_widget_draw(slider->preview, &rect);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_draw_slider_level(XsaneSlider *slider)
-{
- int i;
- guchar buf[XSANE_SLIDER_WIDTH*3];
- GdkRectangle rect;
-
- buf[0] = buf[1] = buf[2] = 0;
- buf[3+0] = buf[3+1] = buf[3+2]= 0;
-
- for (i=0; i<256; i++)
- {
- buf[3*i+0+6] = i * slider->r;
- buf[3*i+1+6] = i * slider->g;
- buf[3*i+2+6] = i * slider->b;
- }
-
- buf[258*3+0] = 255 * slider->r;
- buf[258*3+1] = 255 * slider->g;
- buf[258*3+2] = 255 * slider->b;
-
- buf[259*3+0] = 255 * slider->r;
- buf[259*3+1] = 255 * slider->g;
- buf[259*3+2] = 255 * slider->b;
-
- for (i=0; i<XSANE_SLIDER_HEIGHT; i++)
- {
- gtk_preview_draw_row(GTK_PREVIEW(slider->preview),buf, 0, i, XSANE_SLIDER_WIDTH);
- }
-
- rect.x=0;
- rect.y=0;
- rect.width = XSANE_SLIDER_WIDTH;
- rect.height = XSANE_SLIDER_HEIGHT;
-
- gtk_widget_draw(slider->preview, &rect);
-}
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_set_slider(XsaneSlider *slider, double min, double mid, double max)
-{
- slider->value[0] = min;
- slider->value[1] = mid;
- slider->value[2] = max;
-
- slider->position[0] = min * 2.55;
- slider->position[1] = mid * 2.55;
- slider->position[2] = max * 2.55;
-
- xsane_establish_slider(slider);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_update_slider(XsaneSlider *slider)
-{
- slider->position[0] = 2.55 * slider->value[0];
- slider->position[1] = 2.55 * slider->value[1];
- slider->position[2] = 2.55 * slider->value[2];
-
- xsane_establish_slider(slider);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_update_sliders()
-{
- xsane_update_slider(&xsane.slider_gray);
-
- if ( (xsane.xsane_color) && (!xsane.enhancement_rgb_default) )
- {
- xsane_update_slider(&xsane.slider_red);
- xsane_update_slider(&xsane.slider_green);
- xsane_update_slider(&xsane.slider_blue);
-
- xsane.slider_gray.active &= ~XSANE_SLIDER_INACTIVE; /* mark slider active */
- xsane.slider_red.active &= ~XSANE_SLIDER_INACTIVE; /* mark slider active */
- xsane.slider_green.active &= ~XSANE_SLIDER_INACTIVE; /* mark slider active */
- xsane.slider_blue.active &= ~XSANE_SLIDER_INACTIVE; /* mark slider active */
- }
- else
- {
- xsane_draw_slider_level(&xsane.slider_red); /* remove slider */
- xsane_draw_slider_level(&xsane.slider_green); /* remove slider */
- xsane_draw_slider_level(&xsane.slider_blue); /* remove slider */
-
- xsane.slider_red.active = XSANE_SLIDER_INACTIVE; /* mark slider inactive */
- xsane.slider_green.active = XSANE_SLIDER_INACTIVE; /* mark slider inactive */
- xsane.slider_blue.active = XSANE_SLIDER_INACTIVE; /* mark slider inactive */
-
- if (xsane.param.depth == 1)
- {
- xsane_draw_slider_level(&xsane.slider_gray); /* remove slider */
- xsane.slider_gray.active = XSANE_SLIDER_INACTIVE; /* mark slider inactive */
- }
- else
- {
- xsane.slider_gray.active &= ~XSANE_SLIDER_INACTIVE; /* mark slider active */
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static gint xsane_slider_callback(GtkWidget *widget, GdkEvent *event, XsaneSlider *slider)
-{
- GdkEventButton *button_event;
- GdkEventMotion *motion_event;
- int distance;
- int i = 0;
- static int update = FALSE;
- static int event_count = 0;
- static int x;
-
- if (slider->active == XSANE_SLIDER_INACTIVE)
- {
- return 0;
- }
-
- event_count++;
-
- switch(event->type)
- {
- case GDK_BUTTON_PRESS:
- gtk_grab_add(widget);
- button_event = (GdkEventButton *) event;
-
- distance = G_MAXINT;
- for (i=0; i<3; i++)
- {
- if (fabs(button_event->x - slider->position[i]) < distance)
- {
- slider->active = i + 1;
- distance = fabs(button_event->x - slider->position[i]);
- }
- }
- if (distance<10)
- {
- x = button_event->x;
- update = TRUE;
- }
- else
- {
- slider->active = XSANE_SLIDER_ACTIVE;
- }
- break;
-
- case GDK_BUTTON_RELEASE:
- gtk_grab_remove(widget);
- xsane_enhancement_by_histogram(); /* slider->active must be unchanged !!! */
- slider->active = XSANE_SLIDER_ACTIVE; /* ok, now we can reset it */
- break;
-
- case GDK_MOTION_NOTIFY:
- motion_event = (GdkEventMotion *) event;
- gdk_window_get_pointer(widget->window, &x, 0, 0);
- update = TRUE;
- break;
-
- default:
- break;
- }
-
- if (update)
- {
- update = FALSE;
- switch(slider->active)
- {
- case 1:
- slider->value[0] = (x-XSANE_SLIDER_OFFSET) / 2.55;
- xsane_bound_double(&slider->value[0], 0.0, slider->value[1] - 1);
- break;
-
- case 2:
- slider->value[1] = (x-XSANE_SLIDER_OFFSET) / 2.55;
- xsane_bound_double(&slider->value[1], slider->value[0] + 1, slider->value[2] - 1);
- break;
-
- case 3:
- slider->value[2] = (x-XSANE_SLIDER_OFFSET) / 2.55;
- xsane_bound_double(&slider->value[2], slider->value[1] + 1, 100.0);
- break;
-
- default:
- break;
- }
- xsane_set_slider(slider, slider->value[0], slider->value[1], slider->value[2]);
-
- if ((preferences.gtk_update_policy == GTK_UPDATE_CONTINUOUS) && (event_count == 1))
- {
- xsane_enhancement_by_histogram();
- }
- else if ((preferences.gtk_update_policy == GTK_UPDATE_DELAYED) && (event_count == 1))
- {
- xsane_enhancement_by_histogram();
- }
- }
-
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- event_count--;
-
- return 0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_create_slider(XsaneSlider *slider)
-{
- slider->preview = gtk_preview_new(GTK_PREVIEW_COLOR);
- gtk_preview_size(GTK_PREVIEW(slider->preview), XSANE_SLIDER_WIDTH, XSANE_SLIDER_HEIGHT);
- gtk_widget_set_events(slider->preview, XSANE_SLIDER_EVENTS);
- gtk_signal_connect(GTK_OBJECT(slider->preview), "event", GTK_SIGNAL_FUNC(xsane_slider_callback), slider);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_create_histogram(GtkWidget *parent, const char *title, int width, int height, XsanePixmap *hist)
-{
- GdkBitmap *mask=NULL;
-
- hist->frame = gtk_frame_new(title);
- hist->pixmap = gdk_pixmap_new(xsane.histogram_dialog->window, width, height, -1);
- hist->pixmapwid = gtk_pixmap_new(hist->pixmap, mask);
- gtk_container_add(GTK_CONTAINER(hist->frame), hist->pixmapwid);
- gdk_draw_rectangle(hist->pixmap, xsane.gc_backg, TRUE, 0, 0, width, height);
-
- gtk_box_pack_start(GTK_BOX(parent), hist->frame, FALSE, FALSE, 2);
- gtk_widget_show(hist->pixmapwid);
- gtk_widget_show(hist->frame);
- }
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_calculate_auto_enhancement(int negative,
- SANE_Int *count_raw, SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue)
-{ /* calculate white, medium and black values for auto enhancement */
- int limit, limit_mid;
- int points, points_mix, points_red, points_green, points_blue;
- int min, mid, max;
- int min_red, mid_red, max_red;
- int min_green, mid_green, max_green;
- int min_blue, mid_blue, max_blue;
- int val;
- int i;
-
- if (xsane.preview)
- {
- points = 0;
- points_mix = 0;
- points_red = 0;
- points_green = 0;
- points_blue = 0;
-
- for (i=0; i<256; i++)
- {
- points += count_raw[i];
- points_mix += 10 * log(1 + count_raw[i] + count_raw_red[i] + count_raw_green[i] + count_raw_blue[i]);
- points_red += 10 * log(1 + count_raw_red[i]);
- points_green += 10 * log(1 + count_raw_green[i]);
- points_blue += 10 * log(1 + count_raw_blue[i]);
- }
-
- limit = 1 + points / 5000;
-
- /* ----- gray ----- */
-
- min = -1;
- val = 0;
- while ( (val/4 < limit) && (min < 254) )
- {
- min++;
- val += count_raw[min] + count_raw_red[min] + count_raw_green[min] + count_raw_blue[min];
- }
-
- max = HIST_WIDTH;
- val = 0;
- while ( (val/4 < limit) && (max > min + 1) )
- {
- max--;
- val += count_raw[max] + count_raw_red[max] + count_raw_green[max] + count_raw_blue[max];
- }
-
- limit_mid = points_mix / 2.0;
-
- mid = 0;
- val = 0;
- while ( (val < limit_mid) && (mid < max - 2) )
- {
- mid++;
- val += 10 * log(1 + count_raw[mid] + count_raw_red[mid] + count_raw_green[mid] + count_raw_blue[mid]);
- }
-
- /* ----- red ----- */
-
- min_red = -1;
- val = 0;
- while ( (val < limit) && (min_red < 254) )
- {
- min_red++;
- val += count_raw_red[min_red];
- }
-
- max_red = HIST_WIDTH;
- val = 0;
- while ( (val < limit) && (max_red > min_red + 1) )
- {
- max_red--;
- val += count_raw_red[max_red];
- }
-
- limit_mid = points_red / 2.0;
-
- mid_red = 0;
- val = 0;
- while ( (val < limit_mid) && (mid_red < max_red - 2) )
- {
- mid_red++;
- val += 10 * log(1 + count_raw_red[mid_red]);
- }
-
- /* ----- green ----- */
-
- min_green = -1;
- val = 0;
- while ( (val < limit) && (min_green < 254) )
- {
- min_green++;
- val += count_raw_green[min_green];
- }
-
- max_green = HIST_WIDTH;
- val = 0;
- while ( (val < limit) && (max_green > min_green + 1) )
- {
- max_green--;
- val += count_raw_green[max_green];
- }
-
- limit_mid = points_green / 2.0;
-
- mid_green = 0;
- val = 0;
- while ( (val < limit_mid) && (mid_green < max_green - 2) )
- {
- mid_green++;
- val += 10 * log(1 + count_raw_green[mid_green]);
- }
-
- /* ----- blue ----- */
-
- min_blue = -1;
- val = 0;
- while ( (val < limit) && (min_blue < 254) )
- {
- min_blue++;
- val += count_raw_blue[min_blue];
- }
-
- max_blue = HIST_WIDTH;
- val = 0;
- while ( (val < limit) && (max_blue > min_blue + 1) )
- {
- max_blue--;
- val += count_raw_blue[max_blue];
- }
-
- limit_mid = points_blue / 2.0;
-
- mid_blue = 0;
- val = 0;
- while ( (val < limit_mid) && (mid_blue < max_blue - 2) )
- {
- mid_blue++;
- val += 10 * log(1 + count_raw_blue[mid_blue]);
- }
-
- if (negative)
- {
- xsane.auto_white = (255-min)/2.55;
- xsane.auto_gray = (255-mid)/2.55;
- xsane.auto_black = (255-max)/2.55;
-
- xsane.auto_white_red = (255-min_red)/2.55;
- xsane.auto_gray_red = (255-mid_red)/2.55;
- xsane.auto_black_red = (255-max_red)/2.55;
-
- xsane.auto_white_green = (255-min_green)/2.55;
- xsane.auto_gray_green = (255-mid_green)/2.55;
- xsane.auto_black_green = (255-max_green)/2.55;
-
- xsane.auto_white_blue = (255-min_blue)/2.55;
- xsane.auto_gray_blue = (255-mid_blue)/2.55;
- xsane.auto_black_blue = (255-max_blue)/2.55;
- }
- else /* positive */
- {
- xsane.auto_white = max/2.55;
- xsane.auto_gray = mid/2.55;
- xsane.auto_black = min/2.55;
-
- xsane.auto_white_red = max_red/2.55;
- xsane.auto_gray_red = mid_red/2.55;
- xsane.auto_black_red = min_red/2.55;
-
- xsane.auto_white_green = max_green/2.55;
- xsane.auto_gray_green = mid_green/2.55;
- xsane.auto_black_green = min_green/2.55;
-
- xsane.auto_white_blue = max_blue/2.55;
- xsane.auto_gray_blue = mid_blue/2.55;
- xsane.auto_black_blue = min_blue/2.55;
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_calculate_histogram(void)
-{
- SANE_Int *count_raw;
- SANE_Int *count_raw_red;
- SANE_Int *count_raw_green;
- SANE_Int *count_raw_blue;
- SANE_Int *count_enh;
- SANE_Int *count_enh_red;
- SANE_Int *count_enh_green;
- SANE_Int *count_enh_blue;
- int i;
- int maxval_raw;
- int maxval_enh;
- int maxval;
- double scale;
-
- /* at first reset auto enhancement values */
-
- xsane.auto_black = 0.0;
- xsane.auto_gray = 50.0;
- xsane.auto_white = 100.0;
-
- xsane.auto_black_red = 0.0;
- xsane.auto_gray_red = 50.0;
- xsane.auto_white_red = 100.0;
-
- xsane.auto_black_green = 0.0;
- xsane.auto_gray_green = 50.0;
- xsane.auto_white_green = 100.0;
-
- xsane.auto_black_blue = 0.0;
- xsane.auto_gray_blue = 50.0;
- xsane.auto_white_blue = 100.0;
-
- if (xsane.preview) /* preview window exists? */
- {
- count_raw = calloc(256, sizeof(SANE_Int));
- count_raw_red = calloc(256, sizeof(SANE_Int));
- count_raw_green = calloc(256, sizeof(SANE_Int));
- count_raw_blue = calloc(256, sizeof(SANE_Int));
- count_enh = calloc(256, sizeof(SANE_Int));
- count_enh_red = calloc(256, sizeof(SANE_Int));
- count_enh_green = calloc(256, sizeof(SANE_Int));
- count_enh_blue = calloc(256, sizeof(SANE_Int));
-
- preview_calculate_histogram(xsane.preview, count_raw, count_raw_red, count_raw_green, count_raw_blue,
- count_enh, count_enh_red, count_enh_green, count_enh_blue);
-
- if (xsane.param.depth > 1)
- {
- xsane_calculate_auto_enhancement(xsane.negative, count_raw, count_raw_red, count_raw_green, count_raw_blue);
- }
-
- if (xsane.histogram_log) /* logarithmical display */
- {
- for (i=0; i<=255; i++)
- {
- count_raw[i] = (int) (50*log(1.0 + count_raw[i]));
- count_raw_red[i] = (int) (50*log(1.0 + count_raw_red[i]));
- count_raw_green[i] = (int) (50*log(1.0 + count_raw_green[i]));
- count_raw_blue[i] = (int) (50*log(1.0 + count_raw_blue[i]));
-
- count_enh[i] = (int) (50*log(1.0 + count_enh[i]));
- count_enh_red[i] = (int) (50*log(1.0 + count_enh_red[i]));
- count_enh_green[i] = (int) (50*log(1.0 + count_enh_green[i]));
- count_enh_blue[i] = (int) (50*log(1.0 + count_enh_blue[i]));
- }
- }
-
- maxval_raw = 0;
- maxval_enh = 0;
-
- /* first and last 10 values are not used for calculating maximum value */
- for (i = 10 ; i < HIST_WIDTH - 10; i++)
- {
- if (count_raw[i] > maxval_raw) { maxval_raw = count_raw[i]; }
- if (count_raw_red[i] > maxval_raw) { maxval_raw = count_raw_red[i]; }
- if (count_raw_green[i] > maxval_raw) { maxval_raw = count_raw_green[i]; }
- if (count_raw_blue[i] > maxval_raw) { maxval_raw = count_raw_blue[i]; }
- if (count_enh[i] > maxval_enh) { maxval_enh = count_enh[i]; }
- if (count_enh_red[i] > maxval_enh) { maxval_enh = count_enh_red[i]; }
- if (count_enh_green[i] > maxval_enh) { maxval_enh = count_enh_green[i]; }
- if (count_enh_blue[i] > maxval_enh) { maxval_enh = count_enh_blue[i]; }
- }
- maxval = ((maxval_enh > maxval_raw) ? maxval_enh : maxval_raw);
- scale = 100.0/maxval;
-
- if (xsane.histogram_lines)
- {
- xsane_draw_histogram_with_lines(&xsane.histogram_raw, xsane.negative,
- count_raw, count_raw_red, count_raw_green, count_raw_blue,
- xsane.histogram_red, xsane.histogram_green, xsane.histogram_blue, xsane.histogram_int, scale);
-
- xsane_draw_histogram_with_lines(&xsane.histogram_enh, 0 /* negative is done by gamma table */,
- count_enh, count_enh_red, count_enh_green, count_enh_blue,
- xsane.histogram_red, xsane.histogram_green, xsane.histogram_blue, xsane.histogram_int, scale);
- }
- else
- {
- xsane_draw_histogram_with_points(&xsane.histogram_raw, xsane.negative,
- count_raw, count_raw_red, count_raw_green, count_raw_blue,
- xsane.histogram_red, xsane.histogram_green, xsane.histogram_blue, xsane.histogram_int, scale);
-
- xsane_draw_histogram_with_points(&xsane.histogram_enh, 0 /*negative is done by gamma table */,
- count_enh, count_enh_red, count_enh_green, count_enh_blue,
- xsane.histogram_red, xsane.histogram_green, xsane.histogram_blue, xsane.histogram_int, scale);
- }
-
- free(count_enh_blue);
- free(count_enh_green);
- free(count_enh_red);
- free(count_enh);
- free(count_raw_blue);
- free(count_raw_green);
- free(count_raw_red);
- free(count_raw);
- }
- else
- {
- xsane_clear_histogram(&xsane.histogram_raw);
- xsane_clear_histogram(&xsane.histogram_enh);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_update_histogram()
-{
- if (preferences.show_histogram)
- {
- xsane_calculate_histogram();
- gtk_widget_show(xsane.histogram_dialog);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_histogram_toggle_button_callback(GtkWidget *widget, gpointer data)
-{
- int *valuep = data;
-
- *valuep = (GTK_TOGGLE_BUTTON(widget)->active != 0);
- xsane_update_histogram();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_create_gamma_curve(SANE_Int *gammadata, int negative, double gamma,
- double brightness, double contrast, int numbers, int maxout)
-{
- int i;
- double midin;
- double val;
- double m;
- double b;
- int maxin = numbers-1;
-
- if (contrast < -100.0)
- {
- contrast = -100.0;
- }
-
- midin = (int)(numbers / 2.0);
-
- m = 1.0 + contrast/100.0;
- b = (1.0 + brightness/100.0) * midin;
-
- if (negative)
- {
- for (i=0; i <= maxin; i++)
- {
- val = ((double) (maxin - i)) - midin;
- val = val * m + b;
- xsane_bound_double(&val, 0.0, maxin);
-
- gammadata[i] = 0.5 + maxout * pow( val/maxin, (1.0/gamma) );
- }
- }
- else /* positive */
- {
- for (i=0; i <= maxin; i++)
- {
- val = ((double) i) - midin;
- val = val * m + b;
- xsane_bound_double(&val, 0.0, maxin);
-
- gammadata[i] = 0.5 + maxout * pow( val/maxin, (1.0/gamma) );
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_update_gamma(void)
-{
- if (xsane.preview)
- {
- if (!xsane.preview_gamma_data_red)
- {
- xsane.preview_gamma_data_red = malloc(256 * sizeof(SANE_Int));
- xsane.preview_gamma_data_green = malloc(256 * sizeof(SANE_Int));
- xsane.preview_gamma_data_blue = malloc(256 * sizeof(SANE_Int));
-
- xsane.histogram_gamma_data_red = malloc(256 * sizeof(SANE_Int));
- xsane.histogram_gamma_data_green = malloc(256 * sizeof(SANE_Int));
- xsane.histogram_gamma_data_blue = malloc(256 * sizeof(SANE_Int));
- }
-
- xsane_create_gamma_curve(xsane.preview_gamma_data_red, xsane.negative,
- xsane.gamma * xsane.gamma_red * preferences.preview_gamma * preferences.preview_gamma_red,
- xsane.brightness + xsane.brightness_red,
- xsane.contrast + xsane.contrast_red, 256, 255);
-
- xsane_create_gamma_curve(xsane.preview_gamma_data_green, xsane.negative,
- xsane.gamma * xsane.gamma_green * preferences.preview_gamma * preferences.preview_gamma_green,
- xsane.brightness + xsane.brightness_green,
- xsane.contrast + xsane.contrast_green, 256, 255);
-
- xsane_create_gamma_curve(xsane.preview_gamma_data_blue, xsane.negative,
- xsane.gamma * xsane.gamma_blue * preferences.preview_gamma * preferences.preview_gamma_blue,
- xsane.brightness + xsane.brightness_blue,
- xsane.contrast + xsane.contrast_blue , 256, 255);
-
- xsane_create_gamma_curve(xsane.histogram_gamma_data_red, xsane.negative,
- xsane.gamma * xsane.gamma_red,
- xsane.brightness + xsane.brightness_red,
- xsane.contrast + xsane.contrast_red, 256, 255);
-
- xsane_create_gamma_curve(xsane.histogram_gamma_data_green, xsane.negative,
- xsane.gamma * xsane.gamma_green,
- xsane.brightness + xsane.brightness_green,
- xsane.contrast + xsane.contrast_green, 256, 255);
-
- xsane_create_gamma_curve(xsane.histogram_gamma_data_blue, xsane.negative,
- xsane.gamma * xsane.gamma_blue,
- xsane.brightness + xsane.brightness_blue,
- xsane.contrast + xsane.contrast_blue , 256, 255);
-
- preview_gamma_correction(xsane.preview,
- xsane.preview_gamma_data_red, xsane.preview_gamma_data_green, xsane.preview_gamma_data_blue,
- xsane.histogram_gamma_data_red, xsane.histogram_gamma_data_green, xsane.histogram_gamma_data_blue);
-
- }
- xsane_update_histogram();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_enhancement_update(void)
-{
- guint sig_changed=0;
-
- if (xsane.param.depth == 1) /* lineart? no gamma */
- {
- return;
- }
-
- sig_changed = gtk_signal_lookup("changed", GTK_OBJECT_TYPE(xsane.gamma_widget));
-
- GTK_ADJUSTMENT(xsane.gamma_widget)->value = xsane.gamma;
- GTK_ADJUSTMENT(xsane.brightness_widget)->value = xsane.brightness;
- GTK_ADJUSTMENT(xsane.contrast_widget)->value = xsane.contrast;
-
- if ( (xsane.xsane_color) && (!xsane.enhancement_rgb_default) )
- {
- GTK_ADJUSTMENT(xsane.gamma_red_widget)->value = xsane.gamma_red;
- GTK_ADJUSTMENT(xsane.gamma_green_widget)->value = xsane.gamma_green;
- GTK_ADJUSTMENT(xsane.gamma_blue_widget)->value = xsane.gamma_blue;
-
- GTK_ADJUSTMENT(xsane.brightness_red_widget)->value = xsane.brightness_red;
- GTK_ADJUSTMENT(xsane.brightness_green_widget)->value = xsane.brightness_green;
- GTK_ADJUSTMENT(xsane.brightness_blue_widget)->value = xsane.brightness_blue;
-
- GTK_ADJUSTMENT(xsane.contrast_red_widget)->value = xsane.contrast_red;
- GTK_ADJUSTMENT(xsane.contrast_green_widget)->value = xsane.contrast_green;
- GTK_ADJUSTMENT(xsane.contrast_blue_widget)->value = xsane.contrast_blue;
-
- gtk_signal_emit(xsane.gamma_red_widget, sig_changed);
- gtk_signal_emit(xsane.gamma_green_widget, sig_changed);
- gtk_signal_emit(xsane.gamma_blue_widget, sig_changed);
-
- gtk_signal_emit(xsane.brightness_red_widget, sig_changed);
- gtk_signal_emit(xsane.brightness_green_widget, sig_changed);
- gtk_signal_emit(xsane.brightness_blue_widget, sig_changed);
-
- gtk_signal_emit(xsane.contrast_red_widget, sig_changed);
- gtk_signal_emit(xsane.contrast_green_widget, sig_changed);
- gtk_signal_emit(xsane.contrast_blue_widget, sig_changed);
-
- }
-
- gtk_signal_emit(xsane.gamma_widget, sig_changed);
- gtk_signal_emit(xsane.brightness_widget, sig_changed);
- gtk_signal_emit(xsane.contrast_widget, sig_changed);
-
- xsane_update_sliders(); /* update histogram slider */
-
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_gamma_to_histogram(double *min, double *mid, double *max,
- double contrast, double brightness, double gamma)
-{
- double m;
- double b;
-
- m = 1.0 + contrast/100.0;
- b = (1.0 + brightness/100.0) * 50.0;
-
- if (m > 0)
- {
- *min = 50.0 - b/m;
- *mid = (100.0 * pow(0.5, gamma)-b) / m + 50.0;
- *max = (100.0-b)/m + 50.0;
- }
- else
- {
- *min = 0.0;
- *mid = 50.0;
- *max = 100.0;
- }
-
- xsane_bound_double(min, 0.0, 99.0);
- xsane_bound_double(max, 1.0, 100.0);
- xsane_bound_double(mid, *min+1, *max-1);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_enhancement_by_gamma(void)
-{
- double min, mid, max;
- double contrast, brightness, gamma;
-
- xsane_gamma_to_histogram(&min, &mid, &max, xsane.contrast, xsane.brightness, xsane.gamma);
-
- xsane.slider_gray.value[0] = min;
- xsane.slider_gray.value[1] = mid;
- xsane.slider_gray.value[2] = max;
-
-
- /* red */
- contrast = xsane.contrast + xsane.contrast_red;
- brightness = xsane.brightness + xsane.brightness_red;
- gamma = xsane.gamma * xsane.gamma_red;
-
- if (contrast < -100.0)
- {
- contrast = -100.0;
- }
-
- xsane_gamma_to_histogram(&min, &mid, &max, contrast, brightness, gamma);
-
- xsane.slider_red.value[0] = min;
- xsane.slider_red.value[1] = mid;
- xsane.slider_red.value[2] = max;
-
-
- /* green */
- contrast = xsane.contrast + xsane.contrast_green;
- brightness = xsane.brightness + xsane.brightness_green;
- gamma = xsane.gamma * xsane.gamma_green;
-
- if (contrast < -100.0)
- {
- contrast = -100.0;
- }
-
- xsane_gamma_to_histogram(&min, &mid, &max, contrast, brightness, gamma);
-
- xsane.slider_green.value[0] = min;
- xsane.slider_green.value[1] = mid;
- xsane.slider_green.value[2] = max;
-
-
- /* blue */
- contrast = xsane.contrast + xsane.contrast_blue;
- brightness = xsane.brightness + xsane.brightness_blue;
- gamma = xsane.gamma * xsane.gamma_blue;
-
- if (contrast < -100.0)
- {
- contrast = -100.0;
- }
-
- xsane_gamma_to_histogram(&min, &mid, &max,
- xsane.contrast + xsane.contrast_blue,
- xsane.brightness + xsane.brightness_blue,
- xsane.gamma * xsane.gamma_blue);
-
- xsane.slider_blue.value[0] = min;
- xsane.slider_blue.value[1] = mid;
- xsane.slider_blue.value[2] = max;
-
-
- xsane_enhancement_update();
- xsane_update_gamma();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_enhancement_restore_default()
-{
- xsane.gamma = 1.0;
- xsane.gamma_red = 1.0;
- xsane.gamma_green = 1.0;
- xsane.gamma_blue = 1.0;
-
- xsane.brightness = 0.0;
- xsane.brightness_red = 0.0;
- xsane.brightness_green = 0.0;
- xsane.brightness_blue = 0.0;
-
- xsane.contrast = 0.0;
- xsane.contrast_red = 0.0;
- xsane.contrast_green = 0.0;
- xsane.contrast_blue = 0.0;
-
- xsane_enhancement_by_gamma();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_enhancement_restore()
-{
- xsane.gamma = preferences.xsane_gamma;
- xsane.gamma_red = preferences.xsane_gamma_red;
- xsane.gamma_green = preferences.xsane_gamma_green;
- xsane.gamma_blue = preferences.xsane_gamma_blue;
-
- xsane.brightness = preferences.xsane_brightness;
- xsane.brightness_red = preferences.xsane_brightness_red;
- xsane.brightness_green = preferences.xsane_brightness_green;
- xsane.brightness_blue = preferences.xsane_brightness_blue;
-
- xsane.contrast = preferences.xsane_contrast;
- xsane.contrast_red = preferences.xsane_contrast_red;
- xsane.contrast_green = preferences.xsane_contrast_green;
- xsane.contrast_blue = preferences.xsane_contrast_blue;
-
- xsane.enhancement_rgb_default = preferences.xsane_rgb_default;
- xsane.negative = preferences.xsane_negative;
-
- xsane_refresh_dialog(dialog);
- xsane_enhancement_by_gamma();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_enhancement_store()
-{
- preferences.xsane_gamma = xsane.gamma;
- preferences.xsane_gamma_red = xsane.gamma_red;
- preferences.xsane_gamma_green = xsane.gamma_green;
- preferences.xsane_gamma_blue = xsane.gamma_blue;
-
- preferences.xsane_brightness = xsane.brightness;
- preferences.xsane_brightness_red = xsane.brightness_red;
- preferences.xsane_brightness_green = xsane.brightness_green;
- preferences.xsane_brightness_blue = xsane.brightness_blue;
-
- preferences.xsane_contrast = xsane.contrast;
- preferences.xsane_contrast_red = xsane.contrast_red;
- preferences.xsane_contrast_green = xsane.contrast_green;
- preferences.xsane_contrast_blue = xsane.contrast_blue;
-
- preferences.xsane_rgb_default = xsane.enhancement_rgb_default;
- preferences.xsane_negative = xsane.negative;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_histogram_to_gamma(XsaneSlider *slider, double *contrast, double *brightness, double *gamma)
-{
- double mid;
- double range;
-
- *contrast = (10000.0 / (slider->value[2] - slider->value[0]) - 100.0);
- *brightness = - (slider->value[0] - 50.0) * (*contrast + 100.0)/50.0 - 100.0;
-
- mid = slider->value[1] - slider->value[0];
- range = slider->value[2] - slider->value[0];
-
- *gamma = log(mid/range) / log(0.5);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_enhancement_by_histogram(void)
-{
- double gray_brightness;
- double gray_contrast;
- double gray_gamma;
- double brightness;
- double contrast;
- double gamma;
-
- xsane_histogram_to_gamma(&xsane.slider_gray, &gray_contrast, &gray_brightness, &gray_gamma);
-
- xsane.gamma = gray_gamma;
- xsane.brightness = gray_brightness;
- xsane.contrast = gray_contrast;
-
- if ( (xsane.xsane_color) && (!xsane.enhancement_rgb_default) ) /* rgb sliders active */
- {
- if ((xsane.slider_gray.active == XSANE_SLIDER_ACTIVE) ||
- (xsane.slider_gray.active == XSANE_SLIDER_INACTIVE)) /* gray slider not moved */
- {
- xsane_histogram_to_gamma(&xsane.slider_red, &contrast, &brightness, &gamma);
-
- xsane.gamma_red = gamma / gray_gamma;
- xsane.brightness_red = brightness - gray_brightness;
- xsane.contrast_red = contrast - gray_contrast;
-
- xsane_histogram_to_gamma(&xsane.slider_green, &contrast, &brightness, &gamma);
-
- xsane.gamma_green = gamma / gray_gamma;
- xsane.brightness_green = brightness - gray_brightness;
- xsane.contrast_green = contrast - gray_contrast;
-
- xsane_histogram_to_gamma(&xsane.slider_blue, &contrast, &brightness, &gamma);
-
- xsane.gamma_blue = gamma / gray_gamma;
- xsane.brightness_blue = brightness - gray_brightness;
- xsane.contrast_blue = contrast - gray_contrast;
-
- xsane_enhancement_update();
- xsane_update_gamma();
- }
- else /* gray slider was moved in rgb-mode */
- {
- xsane_enhancement_by_gamma();
- }
- }
- else /* rgb sliders not active */
- {
- xsane_enhancement_update();
- xsane_update_gamma();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static gint xsane_histogram_win_delete(GtkWidget *widget, gpointer data)
-{
- gtk_widget_hide(widget);
- preferences.show_histogram = FALSE;
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_histogram_widget), preferences.show_histogram);
- return TRUE;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_create_histogram_dialog(const char *devicetext)
-{
- char windowname[255];
- GtkWidget *xsane_color_hbox;
- GtkWidget *xsane_histogram_vbox;
- GdkColor color_black;
- GdkColor color_red;
- GdkColor color_green;
- GdkColor color_blue;
- GdkColor color_backg;
- GdkColormap *colormap;
- GtkStyle *style;
-
- xsane.histogram_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
- gtk_window_set_policy(GTK_WINDOW(xsane.histogram_dialog), FALSE, FALSE, FALSE);
- gtk_widget_set_uposition(xsane.histogram_dialog, XSANE_HISTOGRAM_POS_X, XSANE_HISTOGRAM_POS_Y);
- gtk_signal_connect(GTK_OBJECT(xsane.histogram_dialog), "delete_event", GTK_SIGNAL_FUNC(xsane_histogram_win_delete), 0);
- sprintf(windowname, "%s %s", WINDOW_HISTOGRAM, devicetext);
- gtk_window_set_title(GTK_WINDOW(xsane.histogram_dialog), windowname);
- xsane_set_window_icon(xsane.histogram_dialog, 0);
-
- xsane_histogram_vbox = gtk_vbox_new(FALSE, 0);
- gtk_container_set_border_width(GTK_CONTAINER(xsane_histogram_vbox), 5);
- gtk_container_add(GTK_CONTAINER(xsane.histogram_dialog), xsane_histogram_vbox);
- gtk_widget_show(xsane_histogram_vbox);
-
-
- /* set gc for histogram drawing */
- gtk_widget_realize(xsane.histogram_dialog); /* realize dialog to get colors and style */
-
- style = gtk_widget_get_style(xsane.histogram_dialog);
-/*
- style = gtk_rc_get_style(xsane.histogram_dialog);
- style = gtk_widget_get_default_style();
-*/
-
- xsane.gc_trans = style->bg_gc[GTK_STATE_NORMAL];
- xsane.bg_trans = &style->bg[GTK_STATE_NORMAL];
-
- colormap = gdk_window_get_colormap(xsane.histogram_dialog->window);
-
- xsane.gc_black = gdk_gc_new(xsane.histogram_dialog->window);
- color_black.red = 0;
- color_black.green = 0;
- color_black.blue = 0;
- gdk_color_alloc(colormap, &color_black);
- gdk_gc_set_foreground(xsane.gc_black, &color_black);
-
- xsane.gc_red = gdk_gc_new(xsane.histogram_dialog->window);
- color_red.red = 40000;
- color_red.green = 10000;
- color_red.blue = 10000;
- gdk_color_alloc(colormap, &color_red);
- gdk_gc_set_foreground(xsane.gc_red, &color_red);
-
- xsane.gc_green = gdk_gc_new(xsane.histogram_dialog->window);
- color_green.red = 10000;
- color_green.green = 40000;
- color_green.blue = 10000;
- gdk_color_alloc(colormap, &color_green);
- gdk_gc_set_foreground(xsane.gc_green, &color_green);
-
- xsane.gc_blue = gdk_gc_new(xsane.histogram_dialog->window);
- color_blue.red = 10000;
- color_blue.green = 10000;
- color_blue.blue = 40000;
- gdk_color_alloc(colormap, &color_blue);
- gdk_gc_set_foreground(xsane.gc_blue, &color_blue);
-
- xsane.gc_backg = gdk_gc_new(xsane.histogram_dialog->window);
- color_backg.red = 50000;
- color_backg.green = 50000;
- color_backg.blue = 50000;
- gdk_color_alloc(colormap, &color_backg);
- gdk_gc_set_foreground(xsane.gc_backg, &color_backg);
-
-
- /* add histogram images and sliders */
-
- xsane_create_histogram(xsane_histogram_vbox, FRAME_RAW_IMAGE, 256, 100, &(xsane.histogram_raw));
-
- xsane_separator_new(xsane_histogram_vbox, 0);
-
- xsane.slider_gray.r = 1;
- xsane.slider_gray.g = 1;
- xsane.slider_gray.b = 1;
- xsane.slider_gray.active = XSANE_SLIDER_ACTIVE;
- xsane_create_slider(&xsane.slider_gray);
- gtk_box_pack_start(GTK_BOX(xsane_histogram_vbox), xsane.slider_gray.preview, FALSE, FALSE, 0);
- gtk_widget_show(xsane.slider_gray.preview);
- gtk_widget_realize(xsane.slider_gray.preview);
-
- xsane_separator_new(xsane_histogram_vbox, 0);
-
- xsane.slider_red.r = 1;
- xsane.slider_red.g = 0;
- xsane.slider_red.b = 0;
- xsane.slider_red.active = XSANE_SLIDER_ACTIVE;
- xsane_create_slider(&xsane.slider_red);
- gtk_box_pack_start(GTK_BOX(xsane_histogram_vbox), xsane.slider_red.preview, FALSE, FALSE, 0);
- gtk_widget_show(xsane.slider_red.preview);
- gtk_widget_realize(xsane.slider_red.preview);
-
- xsane_separator_new(xsane_histogram_vbox, 0);
-
- xsane.slider_green.r = 0;
- xsane.slider_green.g = 1;
- xsane.slider_green.b = 0;
- xsane.slider_green.active = XSANE_SLIDER_ACTIVE;
- xsane_create_slider(&xsane.slider_green);
- gtk_box_pack_start(GTK_BOX(xsane_histogram_vbox), xsane.slider_green.preview, FALSE, FALSE, 0);
- gtk_widget_show(xsane.slider_green.preview);
- gtk_widget_realize(xsane.slider_green.preview);
-
- xsane_separator_new(xsane_histogram_vbox, 0);
-
- xsane.slider_blue.r = 0;
- xsane.slider_blue.g = 0;
- xsane.slider_blue.b = 1;
- xsane.slider_blue.active = XSANE_SLIDER_ACTIVE;
- xsane_create_slider(&xsane.slider_blue);
- gtk_box_pack_start(GTK_BOX(xsane_histogram_vbox), xsane.slider_blue.preview, FALSE, FALSE, 0);
- gtk_widget_show(xsane.slider_blue.preview);
- gtk_widget_realize(xsane.slider_blue.preview);
-
- xsane_draw_slider_level(&xsane.slider_gray);
- xsane_draw_slider_level(&xsane.slider_red);
- xsane_draw_slider_level(&xsane.slider_green);
- xsane_draw_slider_level(&xsane.slider_blue);
-
- xsane_separator_new(xsane_histogram_vbox, 0);
-
- xsane_create_histogram(xsane_histogram_vbox, FRAME_ENHANCED_IMAGE, 256, 100, &(xsane.histogram_enh));
-
- xsane_color_hbox = gtk_hbox_new(TRUE, 5);
- gtk_container_set_border_width(GTK_CONTAINER(xsane_color_hbox), 5);
- gtk_container_add(GTK_CONTAINER(xsane_histogram_vbox), xsane_color_hbox);
- gtk_widget_show(xsane_color_hbox);
-
- xsane_toggle_button_new_with_pixmap(xsane_color_hbox, intensity_xpm, DESC_HIST_INTENSITY,
- &xsane.histogram_int, xsane_histogram_toggle_button_callback);
- xsane_toggle_button_new_with_pixmap(xsane_color_hbox, red_xpm, DESC_HIST_RED,
- &xsane.histogram_red, xsane_histogram_toggle_button_callback);
- xsane_toggle_button_new_with_pixmap(xsane_color_hbox, green_xpm, DESC_HIST_GREEN,
- &xsane.histogram_green, xsane_histogram_toggle_button_callback);
- xsane_toggle_button_new_with_pixmap(xsane_color_hbox, blue_xpm, DESC_HIST_BLUE,
- &xsane.histogram_blue, xsane_histogram_toggle_button_callback);
- xsane_toggle_button_new_with_pixmap(xsane_color_hbox, pixel_xpm, DESC_HIST_PIXEL,
- &xsane.histogram_lines, xsane_histogram_toggle_button_callback);
- xsane_toggle_button_new_with_pixmap(xsane_color_hbox, log_xpm, DESC_HIST_LOG,
- &xsane.histogram_log, xsane_histogram_toggle_button_callback);
-
- gtk_widget_show(xsane_color_hbox);
-
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
diff --git a/frontend/xsane-preferences.c b/frontend/xsane-preferences.c
deleted file mode 100644
index 8c13c5d..0000000
--- a/frontend/xsane-preferences.c
+++ /dev/null
@@ -1,292 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane-preferences.c
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* --------------------------------------------------------------------- */
-
-#include "xsane.h"
-#include "xsane-preferences.h"
-#include "xsane-rc-io.h"
-
-/* --------------------------------------------------------------------- */
-
-#define POFFSET(field) ((char *) &((Preferences *) 0)->field - (char *) 0)
-#define PFIELD(p,offset,type) (*((type *)(((char *)(p)) + (offset))))
-
-#define PRTOFFSET(field) ((char *) &((Preferences_printer_t *) 0)->field - (char *) 0)
-
-/* --------------------------------------------------------------------- */
-
-Preferences preferences =
- {
- 0, /* no default filename */
- 0137, /* image umask (permission mask for -rw-r------) */
- 0027, /* image umask (permission mask for -rwxr-x----) */
- 0, /* no fax project */
- 0, /* no default faxcommand */
- 0, /* no default fax receiver option */
- 0, /* no default fax postscript option */
- 0, /* no default fax normal option */
- 0, /* no default fax fine option */
- 0, /* no fax viewer */
- 210.0, /* fax_width: width of fax paper in mm */
- 296.98, /* fax_height: height of fax paper in mm */
- 0.0, /* fax_leftoffset */
- 0.0, /* fax_bottomoffset */
- 0, /* no doc viewer */
- 80.0, /* jpeg_quality */
- 7.0, /* png_compression */
- 5, /* tiff_compression_nr */
- 5, /* tiff_compression_1_nr */
- 1, /* overwrite_warning */
- 1, /* increase_filename_counter */
- 1, /* skip_existing_numbers */
- 1, /* tooltips enabled */
- 0, /* (dont) show histogram */
- 0, /* (dont) show standard options */
- 0, /* (dont) show advanced options */
- 0, /* (dont) show resolution list */
- 10.0, /* length unit */
- 1, /* main window fixed (1) or scrolled (0) */
- 1, /* preserve_preview */
- 0, /* preview_own_cmap */
- 1.0, /* preview_gamma */
- 1.0, /* preview_gamma_red */
- 1.0, /* preview_gamma_green */
- 1.0, /* preview_gamma_blue */
- 1.6, /* gamma */
- 1.0, /* gamma red */
- 1.0, /* gamma green */
- 1.0, /* gamma blue */
- 0.0, /* brightness */
- 0.0, /* brightness red */
- 0.0, /* brightness green */
- 0.0, /* brightness blue */
- 0.0, /* contrast */
- 0.0, /* contrast red */
- 0.0, /* contrast green */
- 0.0, /* contrast blue */
- 1, /* rgb default */
- 0, /* negative */
- GTK_UPDATE_DISCONTINUOUS, /* update policy for gtk frontend sliders */
- 0, /* psrotate: rotate in postscript mode (landscape) */
- 0, /* printernr */
- 0 /* printerdefinitions */
- };
-
-/* --------------------------------------------------------------------- */
-
-static struct
- {
- SANE_String name;
- void (*codec) (Wire *w, void *p, long offset);
- long offset;
- }
-desc[] =
- {
- {"filename", xsane_rc_pref_string, POFFSET(filename)},
- {"image-umask", xsane_rc_pref_int, POFFSET(image_umask)},
- {"directory-umask", xsane_rc_pref_int, POFFSET(directory_umask)},
- {"fax-project", xsane_rc_pref_string, POFFSET(fax_project)},
- {"fax-command", xsane_rc_pref_string, POFFSET(fax_command)},
- {"fax-receiver-option", xsane_rc_pref_string, POFFSET(fax_receiver_option)},
- {"fax-postscript-option", xsane_rc_pref_string, POFFSET(fax_postscript_option)},
- {"fax-normal-option", xsane_rc_pref_string, POFFSET(fax_normal_option)},
- {"fax-fine-option", xsane_rc_pref_string, POFFSET(fax_fine_option)},
- {"fax-viewer", xsane_rc_pref_string, POFFSET(fax_viewer)},
- {"fax-left-offset", xsane_rc_pref_double, POFFSET(fax_leftoffset)},
- {"fax-bottom-offset", xsane_rc_pref_double, POFFSET(fax_bottomoffset)},
- {"fax-width", xsane_rc_pref_double, POFFSET(fax_width)},
- {"fax-height", xsane_rc_pref_double, POFFSET(fax_height)},
- {"doc-viewer", xsane_rc_pref_string, POFFSET(doc_viewer)},
- {"overwrite-warning", xsane_rc_pref_int, POFFSET(overwrite_warning)},
- {"increase-filename-counter", xsane_rc_pref_int, POFFSET(increase_filename_counter)},
- {"skip-existing-numbers", xsane_rc_pref_int, POFFSET(skip_existing_numbers)},
- {"jpeg-quality", xsane_rc_pref_double, POFFSET(jpeg_quality)},
- {"png-compression", xsane_rc_pref_double, POFFSET(png_compression)},
- {"tiff-compression_nr", xsane_rc_pref_int, POFFSET(tiff_compression_nr)},
- {"tiff-compression_1_nr", xsane_rc_pref_int, POFFSET(tiff_compression_1_nr)},
- {"tool-tips", xsane_rc_pref_int, POFFSET(tooltips_enabled)},
- {"show-histogram", xsane_rc_pref_int, POFFSET(show_histogram)},
- {"show-standard-options", xsane_rc_pref_int, POFFSET(show_standard_options)},
- {"show-advanced-options", xsane_rc_pref_int, POFFSET(show_advanced_options)},
- {"show-resolution-list", xsane_rc_pref_int, POFFSET(show_resolution_list)},
- {"length-unit", xsane_rc_pref_double, POFFSET(length_unit)},
- {"main-window-fixed", xsane_rc_pref_int, POFFSET(main_window_fixed)},
- {"preserve-preview", xsane_rc_pref_int, POFFSET(preserve_preview)},
- {"preview-own-cmap", xsane_rc_pref_int, POFFSET(preview_own_cmap)},
- {"preview-gamma", xsane_rc_pref_double, POFFSET(preview_gamma)},
- {"preview-gamma-red", xsane_rc_pref_double, POFFSET(preview_gamma_red)},
- {"preview-gamma-green", xsane_rc_pref_double, POFFSET(preview_gamma_green)},
- {"preview-gamma-blue", xsane_rc_pref_double, POFFSET(preview_gamma_blue)},
- {"gamma", xsane_rc_pref_double, POFFSET(xsane_gamma)},
- {"gamma-red", xsane_rc_pref_double, POFFSET(xsane_gamma_red)},
- {"gamma-green", xsane_rc_pref_double, POFFSET(xsane_gamma_green)},
- {"gamma-blue", xsane_rc_pref_double, POFFSET(xsane_gamma_blue)},
- {"brightness", xsane_rc_pref_double, POFFSET(xsane_brightness)},
- {"brightness-red", xsane_rc_pref_double, POFFSET(xsane_brightness_red)},
- {"brightness-green", xsane_rc_pref_double, POFFSET(xsane_brightness_green)},
- {"brightness-blue", xsane_rc_pref_double, POFFSET(xsane_brightness_blue)},
- {"contrast", xsane_rc_pref_double, POFFSET(xsane_contrast)},
- {"contrast-red", xsane_rc_pref_double, POFFSET(xsane_contrast_red)},
- {"contrast-green", xsane_rc_pref_double, POFFSET(xsane_contrast_green)},
- {"contrast-blue", xsane_rc_pref_double, POFFSET(xsane_contrast_blue)},
- {"rgb-default", xsane_rc_pref_int, POFFSET(xsane_rgb_default)},
- {"negative", xsane_rc_pref_int, POFFSET(xsane_negative)},
- {"gtk-update-policy", xsane_rc_pref_int, POFFSET(gtk_update_policy)},
- {"postscript-rotate", xsane_rc_pref_int, POFFSET(psrotate)},
- {"printernr", xsane_rc_pref_int, POFFSET(printernr)},
- {"printerdefinitions", xsane_rc_pref_int, POFFSET(printerdefinitions)}
- };
-
-/* --------------------------------------------------------------------- */
-
-static struct
- {
- SANE_String name;
- void (*codec) (Wire *w, void *p, long offset);
- long offset;
- }
-desc_printer[] =
- {
- {"printer-name", xsane_rc_pref_string, PRTOFFSET(name)},
- {"printer-command", xsane_rc_pref_string, PRTOFFSET(command)},
- {"printer-copy-number-option", xsane_rc_pref_string, PRTOFFSET(copy_number_option)},
- {"printer-resolution", xsane_rc_pref_int, PRTOFFSET(resolution)},
- {"printer-width", xsane_rc_pref_double, PRTOFFSET(width)},
- {"printer-height", xsane_rc_pref_double, PRTOFFSET(height)},
- {"printer-left-offset", xsane_rc_pref_double, PRTOFFSET(leftoffset)},
- {"printer-bottom-offset", xsane_rc_pref_double, PRTOFFSET(bottomoffset)},
- {"printer-gamma", xsane_rc_pref_double, PRTOFFSET(gamma)},
- {"printer-gamma-red", xsane_rc_pref_double, PRTOFFSET(gamma_red)},
- {"printer-gamma-green", xsane_rc_pref_double, PRTOFFSET(gamma_green)},
- {"printer-gamma-blue", xsane_rc_pref_double, PRTOFFSET(gamma_blue)}
- };
-
-/* --------------------------------------------------------------------- */
-
-void preferences_save(int fd)
-{
- Wire w;
- int i, n;
-
- w.io.fd = fd;
- w.io.read = read;
- w.io.write = write;
- xsane_rc_io_w_init(&w);
- xsane_rc_io_w_set_dir(&w, WIRE_ENCODE);
-
- for (i = 0; i < NELEMS(desc); ++i)
- {
- xsane_rc_io_w_string(&w, &desc[i].name);
- (*desc[i].codec) (&w, &preferences, desc[i].offset);
- }
-
- n=0;
-
- while (n < preferences.printerdefinitions)
- {
- for (i = 0; i < NELEMS(desc_printer); ++i)
- {
- xsane_rc_io_w_string(&w, &desc_printer[i].name);
- (*desc_printer[i].codec) (&w, preferences.printer[n], desc_printer[i].offset);
- }
- n++;
- }
-
- xsane_rc_io_w_set_dir(&w, WIRE_DECODE); /* flush it out */
-}
-
-/* --------------------------------------------------------------------- */
-
-void preferences_restore(int fd)
-{
- SANE_String name;
- Wire w;
- int i, n;
-
- w.io.fd = fd;
- w.io.read = read;
- w.io.write = write;
- xsane_rc_io_w_init(&w);
- xsane_rc_io_w_set_dir(&w, WIRE_DECODE);
-
-
- while (1)
- {
- xsane_rc_io_w_space(&w, 3);
- if (w.status)
- {
- return;
- }
-
- xsane_rc_io_w_string(&w, &name);
- if (w.status || !name)
- {
- return;
- }
-
- for (i = 0; i < NELEMS (desc); ++i)
- {
- if (strcmp(name, desc[i].name) == 0)
- {
- (*desc[i].codec) (&w, &preferences, desc[i].offset);
- break;
- }
- }
- if (!strcmp(name, "printerdefinitions"))
- {
- break;
- }
- }
-
-
- n=0;
- while (n < preferences.printerdefinitions)
- {
- preferences.printer[n] = calloc(sizeof(Preferences_printer_t), 1);
- for (i = 0; i < NELEMS(desc_printer); ++i)
- {
- xsane_rc_io_w_space (&w, 3);
- if (w.status)
- {
- return;
- }
-
- xsane_rc_io_w_string(&w, &name);
- if (w.status || !name)
- {
- return;
- }
-
- if (strcmp(name, desc_printer[i].name) == 0)
- {
- (*desc_printer[i].codec) (&w, preferences.printer[n], desc_printer[i].offset);
- }
- else
- {
- break;
- }
- }
- n++;
- }
-
-}
diff --git a/frontend/xsane-preferences.h b/frontend/xsane-preferences.h
deleted file mode 100644
index 19482fa..0000000
--- a/frontend/xsane-preferences.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane-preferences.h
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#ifndef xsane_preferences_h
-#define xsane_preferences_h
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#include <sane/sane.h>
-#include <gtk/gtk.h>
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-typedef struct
- {
- char *name; /* user defined printer name */
- char *command; /* printercommand */
- char *copy_number_option; /* option to define number of copies */
- int resolution; /* printer resolution for copy mode */
- double width; /* printer width of printable area in mm */
- double height; /* printer height of printable area in mm */
- double leftoffset; /* printer left offset in mm */
- double bottomoffset;/* printer bottom offset in mm */
- double gamma; /* printer gamma */
- double gamma_red; /* printer gamma red */
- double gamma_green; /* printer gamma green */
- double gamma_blue; /* printer gamma blue */
- }
-Preferences_printer_t;
-
-typedef struct
- {
- char *filename; /* default filename */
- mode_t image_umask; /* image umask (permisson mask) */
- mode_t directory_umask; /* directory umask (permisson mask) */
-
- char *fax_project; /* fax project */
- char *fax_command; /* faxcommand */
- char *fax_receiver_option; /* fax receiver option */
- char *fax_postscript_option; /* fax postscript option */
- char *fax_normal_option; /* fax normal mode option */
- char *fax_fine_option; /* fax fine mode option */
- char *fax_viewer; /* fax viewer */
- double fax_width; /* width of fax paper in mm */
- double fax_height; /* height of fax paper in mm */
- double fax_leftoffset; /* left offset of fax paper in mm */
- double fax_bottomoffset; /* bottom offset of fax paper in mm */
-
- char *doc_viewer; /* doc viewer for helpfiles */
-
- double jpeg_quality; /* quality when saving image as jpeg */
- double png_compression; /* compression when saving image as pnm */
- int tiff_compression_nr; /* compression type nr when saving multi bit image as tiff */
- int tiff_compression_1_nr; /* compression type nr when saving one bit image as tiff */
- int overwrite_warning; /* warn if file exists */
- int increase_filename_counter; /* automatically increase counter */
- int skip_existing_numbers; /* automatically increase counter */
-
- int tooltips_enabled; /* should tooltips be disabled? */
- int show_histogram; /* show histogram ? */
- int show_standard_options; /* show standard options ? */
- int show_advanced_options; /* show advanced options ? */
- int show_resolution_list; /* show resolution list instead of slider ? */
- double length_unit; /* 1.0==mm, 10.0==cm, 25.4==inches, etc. */
- int main_window_fixed; /* fixed (1) or scrolled (0) main window */
- int preserve_preview; /* save/restore preview image(s)? */
- int preview_own_cmap; /* install colormap for preview */
- double preview_gamma; /* gamma value for previews */
- double preview_gamma_red; /* red gamma value for previews */
- double preview_gamma_green; /* green gamma value for previews */
- double preview_gamma_blue; /* blue gamma value for previews */
- double xsane_gamma;
- double xsane_gamma_red;
- double xsane_gamma_green;
- double xsane_gamma_blue;
- double xsane_brightness;
- double xsane_brightness_red;
- double xsane_brightness_green;
- double xsane_brightness_blue;
- double xsane_contrast;
- double xsane_contrast_red;
- double xsane_contrast_green;
- double xsane_contrast_blue;
-
- int xsane_rgb_default;
- int xsane_negative;
- GtkUpdateType gtk_update_policy;
-
- int psrotate; /* rotate by 90 degree in postscript mode - landscape */
- int printernr; /* number of printers */
- int printerdefinitions;
- Preferences_printer_t *printer[10];
- }
-Preferences;
-
-extern Preferences preferences;
-
-extern void preferences_save (int fd);
-extern void preferences_restore (int fd);
-
-#endif /* preferences_h */
diff --git a/frontend/xsane-preview.c b/frontend/xsane-preview.c
deleted file mode 100644
index a75b12a..0000000
--- a/frontend/xsane-preview.c
+++ /dev/null
@@ -1,3257 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane-preview.c
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/*
-
- The preview strategy is as follows:
- -----------------------------------
-
- 1) The preview is done on the full scan area or a part of it.
-
- 2) The preview is zoomable so the user can precisely pick
- the selection area even for small scans on a large scan
- surface.
-
- 3) The preview window is resizeable.
-
- 4) The preview scan resolution depends on preview window size
- and the selected preview surface (zoom area).
-
- 5) We let the user/backend pick whether a preview is in color,
- grayscale, lineart or what not. The only options that the
- preview may (temporarily) modify are:
-
- - resolution (set so the preview fills the window)
- - scan area options (top-left corner, bottom-right corner)
- - preview option (to let the backend know we're doing a preview)
- - gamma table is set to default (gamma=1.0)
-
- 5) The initial size of the scan surface is determined based on the constraints
- of the four corner coordinates. Missing constraints are replaced
- by 0/+INF as appropriate (0 for top-left, +INF for bottom-right coords).
-
- 6) Given the preview window size and the scan surface size, we
- select the resolution so the acquired preview image just fits
- in the preview window. The resulting resolution may be out
- of range in which case we pick the minum/maximum if there is
- a range or word-list constraint or a default value if there is
- no such constraint.
-
- 7) Once a preview image has been acquired, we know the size of the
- preview image (in pixels). An initial scale factor is chosen
- so the image fits into the preview window.
-
-*/
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#include "xsane.h"
-/* #include <sys/param.h> */
-#include "xsane-back-gtk.h"
-#include "xsane-front-gtk.h"
-#include "xsane-preview.h"
-#include "xsane-preferences.h"
-#include "xsane-gamma.h"
-
-
-#ifndef PATH_MAX
-# define PATH_MAX 1024
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-extern const char *prog_name;
-extern const char *device_text;
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* Cut fp conversion routines some slack: */
-#define GROSSLY_DIFFERENT(f1,f2) (fabs ((f1) - (f2)) > 1e-3)
-#define GROSSLY_EQUAL(f1,f2) (fabs ((f1) - (f2)) < 1e-3)
-
-#ifdef __alpha__
- /* This seems to be necessary for at least some XFree86 3.1.2
- servers. It's known to be necessary for the XF86_TGA server for
- Linux/Alpha. Fortunately, it's no great loss so we turn this on
- by default for now. */
-# define XSERVER_WITH_BUGGY_VISUALS
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#define PRESET_AREA_ITEMS 11
-typedef struct
-{
- char *name;
- float width;
- float height;
-} Preset_area;
-
-static const Preset_area preset_area[] =
-{
- { "full size", INF, INF },
- { "DIN A3", 296.98, 420.0 },
- { "DIN A4", 210.0, 296.98 },
- { "DIN A4H", 296.98, 210.0 },
- { "DIN A5", 148.5, 210.0 },
- { "DIN A5H", 210.0, 148.5 },
- { "9x13 cm", 90.0, 130.0 },
- { "13x9 cm", 130.0, 90.0 },
- { "legal", 215.9, 355.6 },
- { "letter", 215.9, 279.4 },
- { "custom", INF, INF }
-};
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static SANE_Int *preview_gamma_data_red = 0;
-static SANE_Int *preview_gamma_data_green = 0;
-static SANE_Int *preview_gamma_data_blue = 0;
-
-static SANE_Int *histogram_gamma_data_red = 0;
-static SANE_Int *histogram_gamma_data_green = 0;
-static SANE_Int *histogram_gamma_data_blue = 0;
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* forward declarations */
-static void preview_order_selection(Preview *p);
-static void preview_bound_selection(Preview *p);
-static void preview_draw_rect(Preview *p, GdkWindow *win, GdkGC *gc, float coord[4]);
-static void preview_draw_selection(Preview *p);
-static void preview_update_selection(Preview *p);
-static void preview_establish_selection(Preview *p);
-/* static void preview_update_batch_selection(Preview *p); */
-static void preview_get_scale_device_to_image(Preview *p, float *xscalep, float *yscalep);
-static void preview_get_scale_device_to_preview(Preview *p, float *xscalep, float *yscalep);
-static void preview_get_scale_preview_to_image(Preview *p, float *xscalep, float *yscalep);
-static void preview_paint_image(Preview *p);
-static void preview_display_partial_image(Preview *p);
-static void preview_display_maybe(Preview *p);
-static void preview_display_image(Preview *p);
-static void preview_save_option(Preview *p, int option, SANE_Word *save_loc, int *valid);
-static void preview_restore_option(Preview *p, int option, SANE_Word saved_value, int valid);
-static void preview_set_option_float(Preview *p, int option, float value);
-static void preview_set_option_bool(Preview *p, int option, SANE_Bool value);
-static void preview_set_option_int(Preview *p, int option, SANE_Int value);
-static int preview_increment_image_y(Preview *p);
-static void preview_read_image_data(gpointer data, gint source, GdkInputCondition cond);
-static void preview_scan_done(Preview *p);
-static void preview_scan_start(Preview *p);
-static int preview_make_image_path(Preview *p, size_t filename_size, char *filename, int level);
-static void preview_restore_image(Preview *p);
-static gint preview_expose_handler(GtkWidget *window, GdkEvent *event, gpointer data);
-static gint preview_event_handler(GtkWidget *window, GdkEvent *event, gpointer data);
-static void preview_start_button_clicked(GtkWidget *widget, gpointer data);
-static void preview_cancel_button_clicked(GtkWidget *widget, gpointer data);
-static void preview_area_correct(Preview *p);
-static void preview_save_image(Preview *p);
-static void preview_zoom_not(GtkWidget *window, gpointer data);
-static void preview_zoom_out(GtkWidget *window, gpointer data);
-static void preview_zoom_in(GtkWidget *window, gpointer data);
-static void preview_zoom_undo(GtkWidget *window, gpointer data);
-static void preview_get_color(Preview *p, int x, int y, int *red, int *green, int *blue);
-static void preview_pipette_white(GtkWidget *window, gpointer data);
-static void preview_pipette_gray(GtkWidget *window, gpointer data);
-static void preview_pipette_black(GtkWidget *window, gpointer data);
-static void preview_full_preview_area(GtkWidget *widget, gpointer call_data);
-static void preview_preset_area_callback(GtkWidget *widget, gpointer call_data);
-
-void preview_do_gamma_correction(Preview *p);
-void preview_calculate_histogram(Preview *p,
- SANE_Int *count_raw, SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue,
- SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue);
-void preview_gamma_correction(Preview *p,
- SANE_Int *gamma_red, SANE_Int *gamma_green, SANE_Int *gamma_blue,
- SANE_Int *gamma_red_hist, SANE_Int *gamma_green_hist, SANE_Int *gamma_blue_hist);
-void preview_area_resize(GtkWidget *widget);
-void preview_update_maximum_output_size(Preview *p);
-void preview_set_maximum_output_size(Preview *p, float width, float height);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_order_selection(Preview *p)
-{
- float tmp_coordinate;
-
- p->selection.active = ( (p->selection.coordinate[0] != p->selection.coordinate[2]) &&
- (p->selection.coordinate[1] != p->selection.coordinate[3]) );
-
-
- if (p->selection.active)
- {
- if (p->selection.coordinate[0] > p->selection.coordinate[2])
- {
- tmp_coordinate = p->selection.coordinate[0];
- p->selection.coordinate[0] = p->selection.coordinate[2];
- p->selection.coordinate[2] = tmp_coordinate;
-
- p->selection_xedge = (p->selection_xedge + 2) & 3;
- }
-
- if (p->selection.coordinate[1] > p->selection.coordinate[3])
- {
- tmp_coordinate = p->selection.coordinate[1];
- p->selection.coordinate[1] = p->selection.coordinate[3];
- p->selection.coordinate[3] = tmp_coordinate;
-
- p->selection_yedge = (p->selection_yedge + 2) & 3;
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_bound_selection(Preview *p)
-{
-
- p->selection.active = ( (p->selection.coordinate[0] != p->selection.coordinate[2]) &&
- (p->selection.coordinate[1] != p->selection.coordinate[3]) );
-
-
- if (p->selection.active)
- {
- if (p->selection.coordinate[0] < p->scanner_surface[0])
- {
- p->selection.coordinate[0] = p->scanner_surface[0];
- }
-
- if (p->selection.coordinate[1] < p->scanner_surface[1])
- {
- p->selection.coordinate[1] = p->scanner_surface[1];
- }
-
- if (p->selection.coordinate[2] > p->scanner_surface[2])
- {
- p->selection.coordinate[2] = p->scanner_surface[2];
- }
-
- if (p->selection.coordinate[3] > p->scanner_surface[3])
- {
- p->selection.coordinate[3] = p->scanner_surface[3];
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_draw_rect(Preview *p, GdkWindow *win, GdkGC *gc, float coordinate[4])
-{
- float xscale, yscale;
- float x, y, w, h;
- gint xi, yi, wi, hi;
-
- x = coordinate[0];
- y = coordinate[1];
- w = coordinate[2] - x;
- h = coordinate[3] - y;
-
- if (w < 0)
- {
- x = coordinate[2];
- w = -w;
- }
-
- if (h < 0)
- {
- y = coordinate[3];
- h = -h;
- }
-
- preview_get_scale_device_to_preview(p, &xscale, &yscale);
-
- x = x - p->surface[0];
- y = y - p->surface[1];
-
- xi = (gint) (x * xscale + 0.5);
- yi = (gint) (y * yscale + 0.5);
- wi = (gint) (w * xscale + 0.5);
- hi = (gint) (h * yscale + 0.5);
-
- gdk_draw_rectangle(win, gc, FALSE, xi, yi, wi + 1, hi + 1);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_draw_selection(Preview *p)
-{
- if (!p->gc_selection) /* window isn't mapped yet */
- {
- return;
- }
-
- while (gtk_events_pending()) /* make sure all drawing actions are finished */
- {
- gtk_main_iteration();
- }
-
- if (p->previous_selection.active)
- {
- preview_draw_rect(p, p->window->window, p->gc_selection, p->previous_selection.coordinate);
- }
-
- if (p->selection.active)
- {
- preview_draw_rect(p, p->window->window, p->gc_selection, p->selection.coordinate);
- }
-
- p->previous_selection = p->selection;
-
-
- if (!p->gc_selection_maximum) /* window isn't mapped yet */
- {
- return;
- }
-
- if (p->previous_selection_maximum.active)
- {
- preview_draw_rect(p, p->window->window, p->gc_selection_maximum, p->previous_selection_maximum.coordinate);
- }
-
- if (p->selection_maximum.active)
- {
- preview_draw_rect(p, p->window->window, p->gc_selection_maximum, p->selection_maximum.coordinate);
- }
-
- p->previous_selection_maximum = p->selection_maximum;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_update_selection(Preview *p)
-/* draw selection box as defined in backend */
-{
- const SANE_Option_Descriptor *opt;
- SANE_Status status;
- SANE_Word val;
- int i, optnum;
-
- p->previous_selection = p->selection;
-
- for (i = 0; i < 4; ++i)
- {
- optnum = p->dialog->well_known.coord[i];
- if (optnum > 0)
- {
- opt = sane_get_option_descriptor(p->dialog->dev, optnum);
- status = sane_control_option(p->dialog->dev, optnum, SANE_ACTION_GET_VALUE, &val, 0);
- if (status != SANE_STATUS_GOOD)
- {
- continue;
- }
- if (opt->type == SANE_TYPE_FIXED)
- {
- p->selection.coordinate[i] = SANE_UNFIX(val);
- }
- else
- {
- p->selection.coordinate[i] = val;
- }
- }
- else /* backend does not use scanarea options */
- {
- switch (i)
- {
- case 0:
- case 1:
- p->selection.coordinate[i] = 0;
- break;
-
- case 2:
- p->selection.coordinate[i] = p->preview_width;
- break;
-
- case 3:
- p->selection.coordinate[i] = p->preview_height;
- break;
- }
- }
- }
-
- for (i = 0; i < 2; ++i)
- {
- if (p->selection.coordinate[i + 2] < p->selection.coordinate[i])
- {
- p->selection.coordinate[i + 2] = p->selection.coordinate[i];
- }
- }
-
- p->selection.active = ( (p->selection.coordinate[0] != p->selection.coordinate[2]) &&
- (p->selection.coordinate[1] != p->selection.coordinate[3]) );
-
- preview_draw_selection(p);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_establish_selection(Preview *p)
-{
- /* This routine only shall be called if the preview area really is changed. */
-
- int i;
-
- preview_order_selection(p);
-
- xsane.block_update_param = TRUE; /* do not change parameters each time */
-
- for (i = 0; i < 4; ++i)
- {
- preview_set_option_float(p, p->dialog->well_known.coord[i], p->selection.coordinate[i]);
- }
-
- xsane_back_gtk_update_scan_window(p->dialog);
-
- xsane.block_update_param = FALSE;
-
- if (p->dialog->param_change_callback)
- {
- (*p->dialog->param_change_callback) (p->dialog, p->dialog->param_change_arg);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#if 0
-static void preview_update_batch_selection(Preview *p)
-{
- Batch_selection *batch_selection;
-
- if (!p->gc_selection) /* window isn't mapped yet */
- {
- return;
- }
-
- batch_selection = p->batch_selection;
-
- while (batch_selection)
- {
- preview_draw_rect(p, p->window->window, p->gc_selection, batch_selection->coordinate);
-
- batch_selection = batch_selection->next;
- }
-}
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_get_scale_device_to_image(Preview *p, float *xscalep, float *yscalep)
-{
- float device_width, device_height;
- float xscale = 1.0;
- float yscale = 1.0;
-
- device_width = fabs(p->image_surface[2] - p->image_surface[0]);
- device_height = fabs(p->image_surface[3] - p->image_surface[1]);
-
- if ( (device_width >0) && (device_width < INF) )
- {
- xscale = p->image_width / device_width;
- }
-
- if ( (device_height >0) && (device_height < INF) )
- {
- yscale = p->image_height / device_height;
- }
-
- if (p->surface_unit == SANE_UNIT_PIXEL)
- {
- if (xscale > yscale)
- {
- yscale = xscale;
- }
- else
- {
- xscale = yscale;
- }
- }
-
- *xscalep = xscale;
- *yscalep = yscale;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_get_scale_device_to_preview(Preview *p, float *xscalep, float *yscalep)
-{
- float device_width, device_height;
- float xscale = 1.0;
- float yscale = 1.0;
-
- device_width = fabs(p->image_surface[2] - p->image_surface[0]);
- device_height = fabs(p->image_surface[3] - p->image_surface[1]);
-
- if ( (device_width >0) && (device_width < INF) )
- {
- xscale = p->preview_width / device_width;
- }
-
- if ( (device_height >0) && (device_height < INF) )
- {
- yscale = p->preview_height / device_height;
- }
-
- if (p->surface_unit == SANE_UNIT_PIXEL)
- {
- if (xscale > yscale)
- {
- yscale = xscale;
- }
- else
- {
- xscale = yscale;
- }
- }
-
- *xscalep = xscale;
- *yscalep = yscale;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_get_scale_preview_to_image(Preview *p, float *xscalep, float *yscalep)
-{
- float xscale = 1.0;
- float yscale = 1.0;
-
- if (p->image_width > 0)
- {
- xscale = p->image_width / (float) p->preview_width;
- }
-
- if (p->image_height > 0)
- {
- yscale = p->image_height / (float) p->preview_height;
- }
-
- if (p->surface_unit == SANE_UNIT_PIXEL)
- {
- if (xscale > yscale)
- {
- yscale = xscale;
- }
- else
- {
- xscale = yscale;
- }
- }
-
- *xscalep = xscale;
- *yscalep = yscale;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_paint_image(Preview *p)
-{
- float xscale, yscale, src_x, src_y;
- int dst_x, dst_y, height, x, y, old_y, src_offset;
-
- preview_get_scale_preview_to_image(p, &xscale, &yscale);
-
- memset(p->preview_row, 0x80, 3*p->preview_window_width);
-
- /* don't draw last line unless it's complete: */
- height = p->image_y;
-
- if (p->image_x == 0 && height < p->image_height)
- {
- ++height;
- }
-
- /* for now, use simple nearest-neighbor interpolation: */
- src_offset = 0;
- src_x = src_y = 0.0;
- old_y = -1;
-
- for (dst_y = 0; dst_y < p->preview_height; ++dst_y)
- {
- y = (int) (src_y + 0.5);
- if (y >= height)
- {
- break;
- }
- src_offset = y * 3 * p->image_width;
-
- if ((p->image_data_enh) && (old_y != y))
- {
- old_y = y;
- for (dst_x = 0; dst_x < p->preview_width; ++dst_x)
- {
- x = (int) (src_x + 0.5);
- if (x >= p->image_width)
- {
- break;
- }
-
- p->preview_row[3*dst_x + 0] = p->image_data_enh[src_offset + 3*x + 0];
- p->preview_row[3*dst_x + 1] = p->image_data_enh[src_offset + 3*x + 1];
- p->preview_row[3*dst_x + 2] = p->image_data_enh[src_offset + 3*x + 2];
- src_x += xscale;
- }
- }
- gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, dst_y, p->preview_window_width);
- src_x = 0.0;
- src_y += yscale;
- }
-
- if (dst_y >= p->preview_height-5)
- {
- memset(p->preview_row, 0x80, 3*p->preview_window_width);
- for (dst_y = p->preview_height-1; dst_y < p->preview_window_height; ++dst_y)
- {
- gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, dst_y, p->preview_window_width);
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_display_partial_image(Preview *p)
-{
- preview_paint_image(p);
-
- if (GTK_WIDGET_DRAWABLE(p->window))
- {
- GtkPreview *preview = GTK_PREVIEW(p->window);
- int src_x, src_y;
-
- src_x = (p->window->allocation.width - preview->buffer_width)/2;
- src_y = (p->window->allocation.height - preview->buffer_height)/2;
- gtk_preview_put(preview, p->window->window, p->window->style->black_gc, src_x, src_y,
- 0, 0, p->preview_width, p->preview_height);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_display_maybe(Preview *p)
-{
- time_t now;
-
- time(&now);
-
- if (now > p->image_last_time_updated) /* wait at least one secone */
- {
- p->image_last_time_updated = now;
- preview_display_partial_image(p);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_display_image(Preview *p)
-{
- /* if image height was unknown and got larger than expected get missing memory */
- if (p->params.lines <= 0 && p->image_y < p->image_height)
- {
- p->image_height = p->image_y;
- p->image_data_raw = realloc(p->image_data_raw, 3 * p->image_width * p->image_height);
- p->image_data_enh = realloc(p->image_data_enh, 3 * p->image_width * p->image_height);
- assert(p->image_data_raw);
- assert(p->image_data_enh);
- }
-
- memcpy(p->image_data_raw, p->image_data_enh, 3 * p->image_width * p->image_height);
-
- preview_do_gamma_correction(p);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_save_option(Preview *p, int option, SANE_Word *save_loc, int *valid)
-{
- SANE_Status status;
-
- if (option <= 0)
- {
- *valid = 0;
- return;
- }
-
- status = sane_control_option(p->dialog->dev, option, SANE_ACTION_GET_VALUE, save_loc, 0);
- *valid = (status == SANE_STATUS_GOOD);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_restore_option(Preview *p, int option, SANE_Word saved_value, int valid)
-{
- const SANE_Option_Descriptor *opt;
- SANE_Status status;
- SANE_Handle dev;
-
- if (!valid)
- {
- return;
- }
-
- dev = p->dialog->dev;
- status = sane_control_option(dev, option, SANE_ACTION_SET_VALUE, &saved_value, 0);
-
- if (status != SANE_STATUS_GOOD)
- {
- char buf[256];
- opt = sane_get_option_descriptor(dev, option);
- snprintf(buf, sizeof(buf), "%s %s: %s.", ERR_SET_OPTION, opt->name, XSANE_STRSTATUS(status));
- xsane_back_gtk_error(buf, TRUE);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_set_option_float(Preview *p, int option, float value)
-{
- const SANE_Option_Descriptor *opt;
- SANE_Handle dev;
- SANE_Word word;
-
- if (option <= 0 || value <= -INF || value >= INF)
- {
- return;
- }
-
- dev = p->dialog->dev;
- opt = sane_get_option_descriptor(dev, option);
- if (opt->type == SANE_TYPE_FIXED)
- {
- word = SANE_FIX(value) + 0.5;
- }
- else
- {
- word = value + 0.5;
- }
-
- sane_control_option(dev, option, SANE_ACTION_SET_VALUE, &word, 0);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_set_option_bool(Preview *p, int option, SANE_Bool value)
-{
- SANE_Handle dev;
-
- if (option <= 0)
- return;
-
- dev = p->dialog->dev;
- sane_control_option(dev, option, SANE_ACTION_SET_VALUE, &value, 0);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_set_option_int(Preview *p, int option, SANE_Int value)
-{
- SANE_Handle dev;
-
- if (option <= 0)
- return;
-
- dev = p->dialog->dev;
- sane_control_option(dev, option, SANE_ACTION_SET_VALUE, &value, 0);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int preview_increment_image_y(Preview *p)
-{
- size_t extra_size, offset;
- char buf[256];
-
- p->image_x = 0;
- ++p->image_y;
- if (p->params.lines <= 0 && p->image_y >= p->image_height)
- {
- offset = 3 * p->image_width*p->image_height;
- extra_size = 3 * 32 * p->image_width;
- p->image_height += 32;
- p->image_data_raw = realloc(p->image_data_raw, offset + extra_size);
- p->image_data_enh = realloc(p->image_data_enh, offset + extra_size);
- if ( (!p->image_data_enh) || (!p->image_data_raw) )
- {
- snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_ALLOCATE_IMAGE, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- preview_scan_done(p);
- return -1;
- }
- memset(p->image_data_enh + offset, 0xff, extra_size);
- }
- return 0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_read_image_data(gpointer data, gint source, GdkInputCondition cond)
-{
- SANE_Status status;
- Preview *p = data;
- u_char buf[8192];
- SANE_Handle dev;
- SANE_Int len;
- int i, j;
-
- dev = p->dialog->dev;
- while (1)
- {
- status = sane_read(dev, buf, sizeof(buf), &len);
- if (status != SANE_STATUS_GOOD)
- {
- if (status == SANE_STATUS_EOF)
- {
- if (p->params.last_frame) /* got all preview image data */
- {
- preview_display_image(p); /* display preview image */
- preview_save_image(p); /* save preview image */
- preview_scan_done(p); /* scan is done */
- return; /* ok, all finished */
- }
- else
- {
- preview_scan_start(p);
- break;
- }
- }
- else
- {
- snprintf(buf, sizeof(buf), "%s %s.", ERR_DURING_READ, XSANE_STRSTATUS(status));
- xsane_back_gtk_error(buf, TRUE);
- }
- preview_scan_done(p);
- return;
- }
-
- if (!len)
- {
- break; /* out of data for now */
- }
-
- switch (p->params.format)
- {
- case SANE_FRAME_RGB:
- if (p->params.depth != 8)
- {
- goto bad_depth;
- }
-
- for (i = 0; i < len; ++i)
- {
- p->image_data_enh[p->image_offset++] = buf[i];
- if (p->image_offset%3 == 0)
- {
- if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0)
- {
- return;
- }
- }
- }
- break;
-
- case SANE_FRAME_GRAY:
- switch (p->params.depth)
- {
- case 1:
- for (i = 0; i < len; ++i)
- {
- u_char mask = buf[i];
-
- for (j = 7; j >= 0; --j)
- {
- u_char gl = (mask & (1 << j)) ? 0x00 : 0xff;
- p->image_data_enh[p->image_offset++] = gl;
- p->image_data_enh[p->image_offset++] = gl;
- p->image_data_enh[p->image_offset++] = gl;
- if (++p->image_x >= p->image_width)
- {
- if (preview_increment_image_y(p) < 0)
- {
- return;
- }
- break; /* skip padding bits */
- }
- }
- }
- break;
-
- case 8:
- for (i = 0; i < len; ++i)
- {
- u_char gl = buf[i];
- p->image_data_enh[p->image_offset++] = gl;
- p->image_data_enh[p->image_offset++] = gl;
- p->image_data_enh[p->image_offset++] = gl;
- if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0)
- {
- return;
- }
- }
- break;
-
- default:
- goto bad_depth;
- }
- break;
-
- case SANE_FRAME_RED:
- case SANE_FRAME_GREEN:
- case SANE_FRAME_BLUE:
- switch (p->params.depth)
- {
- case 1:
- for (i = 0; i < len; ++i)
- {
- u_char mask = buf[i];
-
- for (j = 0; j < 8; ++j)
- {
- u_char gl = (mask & 1) ? 0xff : 0x00;
- mask >>= 1;
- p->image_data_enh[p->image_offset++] = gl;
- p->image_offset += 3;
- if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0)
- {
- return;
- }
- }
- }
- break;
-
- case 8:
- for (i = 0; i < len; ++i)
- {
- p->image_data_enh[p->image_offset] = buf[i];
- p->image_offset += 3;
- if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0)
- {
- return;
- }
- }
- break;
-
- default:
- goto bad_depth;
- }
- break;
-
- default:
- fprintf(stderr, "preview_read_image_data: %s %d\n", ERR_BAD_FRAME_FORMAT, p->params.format);
- preview_scan_done(p);
- return;
- }
-
- if (p->input_tag < 0)
- {
- preview_display_maybe(p);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- }
- }
- preview_display_maybe(p);
- return;
-
-bad_depth:
- snprintf(buf, sizeof(buf), "%s %d.", ERR_PREVIEW_BAD_DEPTH, p->params.depth);
- xsane_back_gtk_error(buf, TRUE);
- preview_scan_done(p);
- return;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_scan_done(Preview *p)
-{
- int i;
-
- p->scanning = FALSE;
-
- if (p->input_tag >= 0)
- {
- gdk_input_remove(p->input_tag);
- p->input_tag = -1;
- }
-
- sane_cancel(p->dialog->dev);
-
- xsane.block_update_param = TRUE; /* do not change parameters each time */
-
- preview_restore_option(p, p->dialog->well_known.dpi, p->saved_dpi, p->saved_dpi_valid);
- preview_restore_option(p, p->dialog->well_known.dpi_x, p->saved_dpi_x, p->saved_dpi_x_valid);
- preview_restore_option(p, p->dialog->well_known.dpi_y, p->saved_dpi_y, p->saved_dpi_y_valid);
-
- for (i = 0; i < 4; ++i)
- {
- preview_restore_option(p, p->dialog->well_known.coord[i], p->saved_coord[i], p->saved_coord_valid[i]);
- }
-
- preview_restore_option(p, p->dialog->well_known.bit_depth, p->saved_bit_depth, p->saved_bit_depth_valid);
-
- preview_set_option_bool(p, p->dialog->well_known.preview, SANE_FALSE);
-
- gtk_widget_set_sensitive(p->cancel, FALSE);
- xsane_set_sensitivity(TRUE);
-
- xsane.block_update_param = FALSE;
-
- preview_update_surface(p, 0); /* if surface was not defined it's necessary to redefine it now */
-
- preview_update_selection(p);
- xsane_update_histogram();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int preview_get_memory(Preview *p)
-{
- char buf[256];
-
- if (p->image_data_enh)
- {
- free(p->image_data_enh);
- p->image_data_enh = 0;
- }
-
- if (p->image_data_raw)
- {
- free(p->image_data_raw);
- p->image_data_raw = 0;
- }
-
- if (p->preview_row)
- {
- free(p->preview_row);
- p->preview_row = 0;
- }
-
- p->image_data_enh = malloc(3 * p->image_width * (p->image_height));
- p->image_data_raw = malloc(3 * p->image_width * (p->image_height));
- p->preview_row = malloc(3 * p->preview_window_width);
-
- if ( (!p->image_data_raw) || (!p->image_data_enh) || (!p->preview_row) )
- {
- if (p->image_data_enh)
- {
- free(p->image_data_enh);
- p->image_data_enh = 0;
- }
-
- if (p->image_data_raw)
- {
- free(p->image_data_raw);
- p->image_data_raw = 0;
- }
-
- if (p->preview_row)
- {
- free(p->preview_row);
- p->preview_row = 0;
- }
-
- snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_ALLOCATE_IMAGE, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
-
- return -1; /* error */
- }
-
- memset(p->image_data_enh, 0xff, 3*p->image_width*p->image_height); /* clean memory */
-
- return 0; /* ok */
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_scan_start(Preview *p)
-{
- SANE_Handle dev = p->dialog->dev;
- SANE_Status status;
- char buf[256];
- int fd, y, i;
- int gamma_gray_size = 256; /* set this values to image depth for more than 8bpp input support!!! */
- int gamma_red_size = 256;
- int gamma_green_size = 256;
- int gamma_blue_size = 256;
- int gamma_gray_max = 255; /* set this to to image depth for more than 8bpp output support */
- int gamma_red_max = 255;
- int gamma_green_max = 255;
- int gamma_blue_max = 255;
-
- for (i=0; i<4; i++)
- {
- p->image_surface[i] = p->surface[i];
- }
-
- xsane_clear_histogram(&xsane.histogram_raw);
- xsane_clear_histogram(&xsane.histogram_enh);
- gtk_widget_set_sensitive(p->cancel, TRUE);
- xsane_set_sensitivity(FALSE);
-
- /* clear old preview: */
- memset(p->preview_row, 0xff, 3*p->preview_width);
- for (y = 0; y < p->preview_height; ++y)
- {
- gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, y, p->preview_width);
- }
-
- if (p->input_tag >= 0)
- {
- gdk_input_remove(p->input_tag);
- p->input_tag = -1;
- }
-
- if (p->dialog->well_known.gamma_vector >0)
- {
- const SANE_Option_Descriptor *opt;
-
- opt = sane_get_option_descriptor(p->dialog->dev, p->dialog->well_known.gamma_vector);
- if (SANE_OPTION_IS_ACTIVE(opt->cap))
- {
- SANE_Int *gamma_data;
-
- opt = sane_get_option_descriptor(p->dialog->dev, p->dialog->well_known.gamma_vector);
- gamma_gray_size = opt->size / sizeof(opt->type);
- gamma_gray_max = opt->constraint.range->max;
-
- gamma_data = malloc(gamma_gray_size * sizeof(SANE_Int));
- xsane_create_gamma_curve(gamma_data, 0, 1.0, 0.0, 0.0, gamma_gray_size, gamma_gray_max);
- xsane_back_gtk_update_vector(p->dialog, p->dialog->well_known.gamma_vector, gamma_data);
- free(gamma_data);
- }
- }
-
- if (p->dialog->well_known.gamma_vector_r >0)
- {
- const SANE_Option_Descriptor *opt;
-
- opt = sane_get_option_descriptor(p->dialog->dev, p->dialog->well_known.gamma_vector_r);
- if (SANE_OPTION_IS_ACTIVE(opt->cap))
- {
- SANE_Int *gamma_data_red, *gamma_data_green, *gamma_data_blue;
-
- opt = sane_get_option_descriptor(p->dialog->dev, p->dialog->well_known.gamma_vector_r);
- gamma_red_size = opt->size / sizeof(opt->type);
- gamma_red_max = opt->constraint.range->max;
-
- opt = sane_get_option_descriptor(p->dialog->dev, p->dialog->well_known.gamma_vector_g);
- gamma_green_size = opt->size / sizeof(opt->type);
- gamma_green_max = opt->constraint.range->max;
-
- opt = sane_get_option_descriptor(p->dialog->dev, p->dialog->well_known.gamma_vector_b);
- gamma_blue_size = opt->size / sizeof(opt->type);
- gamma_blue_max = opt->constraint.range->max;
-
- gamma_data_red = malloc(gamma_red_size * sizeof(SANE_Int));
- gamma_data_green = malloc(gamma_green_size * sizeof(SANE_Int));
- gamma_data_blue = malloc(gamma_blue_size * sizeof(SANE_Int));
-
- xsane_create_gamma_curve(gamma_data_red, 0, 1.0, 0.0, 0.0, gamma_red_size, gamma_red_max);
- xsane_create_gamma_curve(gamma_data_green, 0, 1.0, 0.0, 0.0, gamma_green_size, gamma_green_max);
- xsane_create_gamma_curve(gamma_data_blue, 0, 1.0, 0.0, 0.0, gamma_blue_size, gamma_blue_max);
-
- xsane_back_gtk_update_vector(p->dialog, p->dialog->well_known.gamma_vector_r, gamma_data_red);
- xsane_back_gtk_update_vector(p->dialog, p->dialog->well_known.gamma_vector_g, gamma_data_green);
- xsane_back_gtk_update_vector(p->dialog, p->dialog->well_known.gamma_vector_b, gamma_data_blue);
-
- free(gamma_data_red);
- free(gamma_data_green);
- free(gamma_data_blue);
- }
- }
-
- status = sane_start(dev);
- if (status != SANE_STATUS_GOOD)
- {
- snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_START_SCANNER, XSANE_STRSTATUS(status));
- xsane_back_gtk_error(buf, TRUE);
- preview_scan_done(p);
- return;
- }
-
- status = sane_get_parameters(dev, &p->params);
- if (status != SANE_STATUS_GOOD)
- {
- snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_GET_PARAMS, XSANE_STRSTATUS(status));
- xsane_back_gtk_error(buf, TRUE);
- preview_scan_done(p);
- return;
- }
-
- p->image_offset = p->image_x = p->image_y = 0;
-
- if (p->params.format >= SANE_FRAME_RED && p->params.format <= SANE_FRAME_BLUE)
- {
- p->image_offset = p->params.format - SANE_FRAME_RED;
- }
-
- if ( (!p->image_data_enh) || (p->params.pixels_per_line != p->image_width)
- || ( (p->params.lines >= 0) && (p->params.lines != p->image_height) ) )
- {
- p->image_width = p->params.pixels_per_line;
- p->image_height = p->params.lines;
-
- if (p->image_height < 0)
- {
- p->image_height = 32; /* may have to adjust as we go... */
- }
-
- if (preview_get_memory(p))
- {
- preview_scan_done(p); /* error */
- return;
- }
- }
-
-/* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */
-/* THIS IS A BIT STRANGE HERE */
- p->selection.active = FALSE;
- p->previous_selection_maximum.active = FALSE;
-/* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */
-
- p->scanning = TRUE;
-
- if (sane_set_io_mode(dev, SANE_TRUE) == SANE_STATUS_GOOD && sane_get_select_fd(dev, &fd) == SANE_STATUS_GOOD)
- {
- p->input_tag = gdk_input_add(fd, GDK_INPUT_READ, preview_read_image_data, p);
- }
- else
- {
- preview_read_image_data(p, -1, GDK_INPUT_READ);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int preview_make_image_path(Preview *p, size_t filename_size, char *filename, int level)
-{
- char buf[256];
-
- snprintf(buf, sizeof(buf), "preview-level-%d-", level);
- return xsane_back_gtk_make_path(filename_size, filename, 0, 0, buf, p->dialog->dev_name, ".ppm", XSANE_PATH_TMP);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int preview_restore_image_from_file(Preview *p, FILE *in, int min_quality)
-{
- u_int psurface_type, psurface_unit;
- int image_width, image_height;
- int xoffset, yoffset, width, height;
- int quality;
- int y;
- float psurface[4];
- size_t nread;
- char *imagep;
-
- if (!in)
- {
- return min_quality;
- }
-
- /* See whether there is a saved preview and load it if present: */
-
- if (fscanf(in, "P6\n# surface: %g %g %g %g %u %u\n%d %d\n255\n",
- psurface + 0, psurface + 1, psurface + 2, psurface + 3,
- &psurface_type, &psurface_unit,
- &image_width, &image_height) != 8)
- {
- return min_quality;
- }
-
- if ((psurface_type != p->surface_type) || (psurface_unit != p->surface_unit))
- {
- return min_quality;
- }
-
- xoffset = (p->surface[0] - psurface[0])/(psurface[2] - psurface[0]) * image_width;
- yoffset = (p->surface[1] - psurface[1])/(psurface[3] - psurface[1]) * image_height;
- width = (p->surface[2] - p->surface[0])/(psurface[2] - psurface[0]) * image_width;
- height = (p->surface[3] - p->surface[1])/(psurface[3] - psurface[1]) * image_height;
- quality = width;
-
- if ((xoffset < 0) || (yoffset < 0) ||
- (xoffset+width > image_width) || (yoffset+height > image_height) ||
- (width == 0) || (height == 0))
- {
- return min_quality;
- }
-
- if (quality < min_quality)
- {
- return min_quality;
- }
-
- p->params.depth = 8;
- p->image_width = width;
- p->image_height = height;
-
- if (preview_get_memory(p))
- {
- return min_quality; /* error allocating memory */
- }
-
- fseek(in, yoffset * 3 * image_width, SEEK_CUR); /* skip unused lines */
-
- imagep = p->image_data_enh;
-
- for (y = yoffset; y < yoffset + height; y++)
- {
- fseek(in, xoffset * 3, SEEK_CUR); /* skip unused pixel left of area */
-
- nread = fread(imagep, 3, width, in);
- imagep += width * 3;
-
- fseek(in, (image_width - width - xoffset) * 3, SEEK_CUR); /* skip unused pixel right of area */
- }
-
- p->image_y = height;
- p->image_x = width;
-
- p->image_surface[0] = p->surface[0];
- p->image_surface[1] = p->surface[1];
- p->image_surface[2] = p->surface[2];
- p->image_surface[3] = p->surface[3];
-
- return quality;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_restore_image(Preview *p)
-{
- char filename[PATH_MAX];
- FILE *in;
- int status;
- int quality = 0;
- int level;
-
- /* See whether there is a saved preview and load it if present: */
-
- for(level = 2; level >= 0; level--)
- {
- status = preview_make_image_path(p, sizeof(filename), filename, level);
- if (status >= 0)
- {
- in = fopen(filename, "r");
- if (in)
- {
- quality = preview_restore_image_from_file(p, in, quality);
- }
- }
- }
- memcpy(p->image_data_raw, p->image_data_enh, 3 * p->image_width * p->image_height);
-
-/* the following commands may be removed because they are done because a event is emmited */
- preview_do_gamma_correction(p);
- xsane_update_histogram();
- preview_draw_selection(p);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* This is executed _after_ the gtkpreview's expose routine. */
-static gint preview_expose_handler(GtkWidget *window, GdkEvent *event, gpointer data)
-{
- Preview *p = data;
-
- p->previous_selection.active = FALSE; /* ok, old selections are overpainted */
- p->previous_selection_maximum.active = FALSE;
- p->selection.active = TRUE; /* ok, old selections are overpainted */
- p->selection_maximum.active = TRUE;
- preview_draw_selection(p); /* draw selections again */
-
- return FALSE;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static gint preview_event_handler(GtkWidget *window, GdkEvent *event, gpointer data)
-{
- Preview *p = data;
- GdkCursor *cursor;
- GdkColor color;
- GdkColormap *colormap;
- float preview_selection[4];
- float xscale, yscale;
- static int event_count = 0;
- int cursornr;
-
- event_count++;
-
- preview_get_scale_device_to_preview(p, &xscale, &yscale);
-
- preview_selection[0] = xscale * (p->selection.coordinate[0] - p->surface[0]);
- preview_selection[1] = yscale * (p->selection.coordinate[1] - p->surface[1]);
- preview_selection[2] = xscale * (p->selection.coordinate[2] - p->surface[0]);
- preview_selection[3] = yscale * (p->selection.coordinate[3] - p->surface[1]);
-
- if (event->type == GDK_EXPOSE)
- {
- if (!p->gc_selection)
- {
- colormap = gdk_window_get_colormap(p->window->window);
-
- p->gc_selection = gdk_gc_new(p->window->window);
- gdk_gc_set_function(p->gc_selection, GDK_INVERT);
- gdk_gc_set_line_attributes(p->gc_selection, 1, GDK_LINE_ON_OFF_DASH, GDK_CAP_BUTT, GDK_JOIN_MITER);
-
- p->gc_selection_maximum = gdk_gc_new(p->window->window);
- gdk_gc_set_function(p->gc_selection_maximum, GDK_XOR);
- gdk_gc_set_line_attributes(p->gc_selection_maximum, 1, GDK_LINE_ON_OFF_DASH, GDK_CAP_BUTT, GDK_JOIN_MITER);
- color.red = 0;
- color.green = 65535;
- color.blue = 30000;
- gdk_color_alloc(colormap, &color);
- gdk_gc_set_foreground(p->gc_selection_maximum, &color);
-
- preview_paint_image(p);
- }
- else
- {
- while (gtk_events_pending()) /* make sure image is updated */
- {
- gtk_main_iteration();
- }
-
- p->previous_selection.active = FALSE; /* ok, old selections are overpainted */
- p->previous_selection_maximum.active = FALSE;
- preview_draw_selection(p); /* draw selections again */
- }
- }
- else if (!p->scanning)
- {
- switch (event->type)
- {
- case GDK_UNMAP:
- case GDK_MAP:
- break;
-
- case GDK_BUTTON_PRESS:
- switch (p->mode)
- {
- case MODE_PIPETTE_WHITE:
- {
- if ( ( (((GdkEventButton *)event)->button == 1) || (((GdkEventButton *)event)->button == 2) ) &&
- (p->image_data_raw) ) /* left or middle button */
- {
- int r,g,b;
-
- preview_get_color(p, event->button.x, event->button.y, &r, &g, &b);
-
- xsane.slider_gray.value[2] = sqrt( (r*r+g*g+b*b) / 3)/2.55;
-
- if ( (!xsane.enhancement_rgb_default) && (((GdkEventButton *)event)->button == 2) ) /* middle button */
- {
- xsane.slider_red.value[2] = r/2.55;
- xsane.slider_green.value[2] = g/2.55;
- xsane.slider_blue.value[2] = b/2.55;
- }
- else
- {
- xsane.slider_red.value[2] = xsane.slider_gray.value[2];
- xsane.slider_green.value[2] = xsane.slider_gray.value[2];
- xsane.slider_blue.value[2] = xsane.slider_gray.value[2];
- }
-
- if (xsane.slider_gray.value[2] < 2)
- {
- xsane.slider_gray.value[2] = 2;
- }
- if (xsane.slider_gray.value[1] >= xsane.slider_gray.value[2])
- {
- xsane.slider_gray.value[1] = xsane.slider_gray.value[2]-1;
- if (xsane.slider_gray.value[0] >= xsane.slider_gray.value[1])
- {
- xsane.slider_gray.value[0] = xsane.slider_gray.value[1]-1;
- }
- }
-
- if (xsane.slider_red.value[2] < 2)
- {
- xsane.slider_red.value[2] = 2;
- }
- if (xsane.slider_red.value[1] >= xsane.slider_red.value[2])
- {
- xsane.slider_red.value[1] = xsane.slider_red.value[2]-1;
- if (xsane.slider_red.value[0] >= xsane.slider_red.value[1])
- {
- xsane.slider_red.value[0] = xsane.slider_red.value[1]-1;
- }
- }
-
- if (xsane.slider_green.value[2] < 2)
- {
- xsane.slider_green.value[2] = 2;
- }
- if (xsane.slider_green.value[1] >= xsane.slider_green.value[2])
- {
- xsane.slider_green.value[1] = xsane.slider_green.value[2]-1;
- if (xsane.slider_green.value[0] >= xsane.slider_green.value[1])
- {
- xsane.slider_green.value[0] = xsane.slider_green.value[1]-1;
- }
- }
-
- if (xsane.slider_blue.value[2] < 2)
- {
- xsane.slider_blue.value[2] = 2;
- }
- if (xsane.slider_blue.value[1] >= xsane.slider_blue.value[2])
- {
- xsane.slider_blue.value[1] = xsane.slider_blue.value[2]-1;
- if (xsane.slider_blue.value[0] >= xsane.slider_blue.value[1])
- {
- xsane.slider_blue.value[0] = xsane.slider_blue.value[1]-1;
- }
- }
-
- xsane_enhancement_by_histogram();
- }
-
- p->mode = MODE_NORMAL;
-
- cursor = gdk_cursor_new(XSANE_CURSOR_PREVIEW);
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = XSANE_CURSOR_PREVIEW;
- }
- break;
-
- case MODE_PIPETTE_GRAY:
- {
- if ( ( (((GdkEventButton *)event)->button == 1) || (((GdkEventButton *)event)->button == 2) ) &&
- (p->image_data_raw) ) /* left or middle button */
- {
- int r,g,b;
-
- preview_get_color(p, event->button.x, event->button.y, &r, &g, &b);
-
- xsane.slider_gray.value[1] = sqrt( (r*r+g*g+b*b) / 3)/2.55;
-
- if ( (!xsane.enhancement_rgb_default) && (((GdkEventButton *)event)->button == 2) ) /* middle button */
- {
- xsane.slider_red.value[1] = r/2.55;
- xsane.slider_green.value[1] = g/2.55;
- xsane.slider_blue.value[1] = b/2.55;
- }
- else
- {
- xsane.slider_red.value[1] = xsane.slider_gray.value[1];
- xsane.slider_green.value[1] = xsane.slider_gray.value[1];
- xsane.slider_blue.value[1] = xsane.slider_gray.value[1];
- }
-
- if (xsane.slider_gray.value[1] == 0)
- {
- xsane.slider_gray.value[1] += 1;
- }
- if (xsane.slider_gray.value[1] == 100)
- {
- xsane.slider_gray.value[1] -= 1;
- }
- if (xsane.slider_gray.value[1] >= xsane.slider_gray.value[2])
- {
- xsane.slider_gray.value[2] = xsane.slider_gray.value[1]+1;
- }
- if (xsane.slider_gray.value[1] <= xsane.slider_gray.value[0])
- {
- xsane.slider_gray.value[0] = xsane.slider_gray.value[1]-1;
- }
-
- if (xsane.slider_red.value[1] == 0)
- {
- xsane.slider_red.value[1] += 1;
- }
- if (xsane.slider_red.value[1] == 100)
- {
- xsane.slider_red.value[1] -= 1;
- }
- if (xsane.slider_red.value[1] >= xsane.slider_red.value[2])
- {
- xsane.slider_red.value[2] = xsane.slider_red.value[1]+1;
- }
- if (xsane.slider_red.value[1] <= xsane.slider_red.value[0])
- {
- xsane.slider_red.value[0] = xsane.slider_red.value[1]-1;
- }
-
- if (xsane.slider_green.value[1] == 0)
- {
- xsane.slider_green.value[1] += 1;
- }
- if (xsane.slider_green.value[1] == 100)
- {
- xsane.slider_green.value[1] -= 1;
- }
- if (xsane.slider_green.value[1] >= xsane.slider_green.value[2])
- {
- xsane.slider_green.value[2] = xsane.slider_green.value[1]+1;
- }
- if (xsane.slider_green.value[1] <= xsane.slider_green.value[0])
- {
- xsane.slider_green.value[0] = xsane.slider_green.value[1]-1;
- }
-
- if (xsane.slider_blue.value[1] == 0)
- {
- xsane.slider_blue.value[1] += 1;
- }
- if (xsane.slider_blue.value[1] == 100)
- {
- xsane.slider_blue.value[1] -= 1;
- }
- if (xsane.slider_blue.value[1] >= xsane.slider_blue.value[2])
- {
- xsane.slider_blue.value[2] = xsane.slider_blue.value[1]+1;
- }
- if (xsane.slider_blue.value[1] <= xsane.slider_blue.value[0])
- {
- xsane.slider_blue.value[0] = xsane.slider_blue.value[1]-1;
- }
-
- xsane_enhancement_by_histogram();
- }
-
- p->mode = MODE_NORMAL;
-
- cursor = gdk_cursor_new(XSANE_CURSOR_PREVIEW);
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = XSANE_CURSOR_PREVIEW;
- }
- break;
-
- case MODE_PIPETTE_BLACK:
- {
- if ( ( (((GdkEventButton *)event)->button == 1) || (((GdkEventButton *)event)->button == 2) ) &&
- (p->image_data_raw) ) /* left or middle button */
- {
- int r,g,b;
-
- preview_get_color(p, event->button.x, event->button.y, &r, &g, &b);
-
- xsane.slider_gray.value[0] = sqrt( (r*r+g*g+b*b) / 3)/2.55;
-
- if ( (!xsane.enhancement_rgb_default) && (((GdkEventButton *)event)->button == 2) ) /* middle button */
- {
- xsane.slider_red.value[0] = r/2.55;
- xsane.slider_green.value[0] = g/2.55;
- xsane.slider_blue.value[0] = b/2.55;
- }
- else
- {
- xsane.slider_red.value[0] = xsane.slider_gray.value[0];
- xsane.slider_green.value[0] = xsane.slider_gray.value[0];
- xsane.slider_blue.value[0] = xsane.slider_gray.value[0];
- }
-
- if (xsane.slider_gray.value[0] > 98)
- {
- xsane.slider_gray.value[0] = 98;
- }
- if (xsane.slider_gray.value[1] <= xsane.slider_gray.value[0])
- {
- xsane.slider_gray.value[1] = xsane.slider_gray.value[0]+1;
- if (xsane.slider_gray.value[2] <= xsane.slider_gray.value[1])
- {
- xsane.slider_gray.value[2] = xsane.slider_gray.value[1]+1;
- }
- }
-
- if (xsane.slider_red.value[0] > 98)
- {
- xsane.slider_red.value[0] = 98;
- }
- if (xsane.slider_red.value[1] <= xsane.slider_red.value[0])
- {
- xsane.slider_red.value[1] = xsane.slider_red.value[0]+1;
- if (xsane.slider_red.value[2] <= xsane.slider_red.value[1])
- {
- xsane.slider_red.value[2] = xsane.slider_red.value[1]+1;
- }
- }
-
- if (xsane.slider_green.value[0] > 98)
- {
- xsane.slider_green.value[0] = 98;
- }
- if (xsane.slider_green.value[1] <= xsane.slider_green.value[0])
- {
- xsane.slider_green.value[1] = xsane.slider_green.value[0]+1;
- if (xsane.slider_green.value[2] <= xsane.slider_green.value[1])
- {
- xsane.slider_green.value[2] = xsane.slider_green.value[1]+1;
- }
- }
-
- if (xsane.slider_blue.value[0] > 98)
- {
- xsane.slider_blue.value[0] = 98;
- }
- if (xsane.slider_blue.value[1] <= xsane.slider_blue.value[0])
- {
- xsane.slider_blue.value[1] = xsane.slider_blue.value[0]+1;
- if (xsane.slider_blue.value[2] <= xsane.slider_blue.value[1])
- {
- xsane.slider_blue.value[2] = xsane.slider_blue.value[1]+1;
- }
- }
-
- xsane_enhancement_by_histogram();
- }
-
- p->mode = MODE_NORMAL;
-
- cursor = gdk_cursor_new(XSANE_CURSOR_PREVIEW);
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = XSANE_CURSOR_PREVIEW;
- }
- break;
-
- case MODE_NORMAL:
- {
- switch (((GdkEventButton *)event)->button)
- {
- case 1: /* left button */
- p->selection_xedge = -1;
- if ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) && (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) /* left */
- {
- p->selection_xedge = 0;
- }
- else if ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) && (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) /* right */
- {
- p->selection_xedge = 2;
- }
-
- p->selection_yedge = -1;
- if ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) && (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) /* top */
- {
- p->selection_yedge = 1;
- }
- else if ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) && (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) /* bottom */
- {
- p->selection_yedge = 3;
- }
-
- if ( (p->selection_xedge != -1) && (p->selection_yedge != -1) ) /* move edge */
- {
- p->selection_drag_edge = TRUE;
- p->selection.coordinate[p->selection_xedge] = p->surface[0] + event->button.x / xscale;
- p->selection.coordinate[p->selection_yedge] = p->surface[1] + event->button.y / yscale;
- preview_draw_selection(p);
- }
- else /* select new area */
- {
- p->selection_xedge = 2;
- p->selection_yedge = 3;
- p->selection.coordinate[0] = p->surface[0] + event->button.x / xscale;
- p->selection.coordinate[1] = p->surface[1] + event->button.y / yscale;
- p->selection_drag = TRUE;
-
- cursornr = GDK_CROSS;
- cursor = gdk_cursor_new(cursornr); /* set curosr */
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = cursornr;
- }
- break;
-
- case 2: /* middle button */
- case 3: /* right button */
- if ( (preview_selection[0]-SELECTION_RANGE_OUT < event->button.x) &&
- (preview_selection[2]+SELECTION_RANGE_OUT > event->button.x) &&
- (preview_selection[1]-SELECTION_RANGE_OUT < event->button.y) &&
- (preview_selection[3]+SELECTION_RANGE_OUT > event->button.y) )
- {
- p->selection_drag = TRUE;
- p->selection_xpos = event->button.x;
- p->selection_ypos = event->button.y;
-
- cursornr = GDK_HAND2;
- cursor = gdk_cursor_new(cursornr); /* set curosr */
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = cursornr;
- }
- break;
-
- default:
- break;
- }
- }
- }
- break;
-
- case GDK_BUTTON_RELEASE:
- switch (((GdkEventButton *)event)->button)
- {
- case 1: /* left button */
- case 2: /* middle button */
- case 3: /* right button */
- if (p->selection_drag)
- {
- cursornr = XSANE_CURSOR_PREVIEW;
- cursor = gdk_cursor_new(cursornr); /* set curosr */
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = cursornr;
- }
-
- if ( (p->selection_drag) || (p->selection_drag_edge) )
- {
-
- if (((GdkEventButton *)event)->button == 1) /* left button */
- {
- p->selection.coordinate[p->selection_xedge] = p->surface[0] + event->button.x / xscale;
- p->selection.coordinate[p->selection_yedge] = p->surface[1] + event->button.y / yscale;
- }
-
- p->selection_drag_edge = FALSE;
- p->selection_drag = FALSE;
-
- preview_order_selection(p);
- preview_bound_selection(p);
- preview_update_maximum_output_size(p);
- preview_draw_selection(p);
- preview_establish_selection(p);
- }
- default:
- break;
- }
- break;
-
- case GDK_MOTION_NOTIFY:
- switch (((GdkEventMotion *)event)->state)
- {
- case 256: /* left button */
- if (p->selection_drag_edge)
- {
- p->selection.active = TRUE;
- p->selection.coordinate[p->selection_xedge] = p->surface[0] + event->button.x / xscale;
- p->selection.coordinate[p->selection_yedge] = p->surface[1] + event->button.y / yscale;
-
- preview_order_selection(p);
- preview_bound_selection(p);
- preview_update_maximum_output_size(p);
- preview_draw_selection(p);
-
- if ((preferences.gtk_update_policy == GTK_UPDATE_CONTINUOUS) && (event_count == 1))
- {
- preview_establish_selection(p);
- }
- else if ((preferences.gtk_update_policy == GTK_UPDATE_DELAYED) && (event_count == 1))
- {
- preview_establish_selection(p);
- }
- }
-
- if (p->selection_drag)
- {
- p->selection.active = TRUE;
- p->selection.coordinate[p->selection_xedge] = p->surface[0] + event->motion.x / xscale;
- p->selection.coordinate[p->selection_yedge] = p->surface[1] + event->motion.y / yscale;
-
- preview_order_selection(p);
- preview_bound_selection(p);
- preview_update_maximum_output_size(p);
- preview_draw_selection(p);
-
- if ((preferences.gtk_update_policy == GTK_UPDATE_CONTINUOUS) && (event_count == 1))
- {
- preview_establish_selection(p);
- }
- else if ((preferences.gtk_update_policy == GTK_UPDATE_DELAYED) && (event_count == 1))
- {
- preview_establish_selection(p);
- }
- }
-
- cursornr = p->cursornr;
-
- if ( ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) && (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) && /* left */
- ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) && (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) ) /* top */
- {
- cursornr = GDK_TOP_LEFT_CORNER;
- }
- else if ( ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) && (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) && /* right */
- ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) && (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) ) /* top */
- {
- cursornr = GDK_TOP_RIGHT_CORNER;
- }
- else if ( ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) && (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) && /* left */
- ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) && (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) ) /* bottom */
- {
- cursornr = GDK_BOTTOM_LEFT_CORNER;
- }
- else if ( ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) && (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) && /* right */
- ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) && (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) ) /* bottom */
- {
- cursornr = GDK_BOTTOM_RIGHT_CORNER;
- }
-
- if (cursornr != p->cursornr)
- {
- cursor = gdk_cursor_new(cursornr); /* set curosr */
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = cursornr;
- }
- break;
-
- case 512: /* middle button */
- case 1024: /* right button */
- if (p->selection_drag)
- {
- int dx, dy;
-
- dx = p->selection_xpos - event->motion.x;
- dy = p->selection_ypos - event->motion.y;
-
- p->selection_xpos = event->motion.x;
- p->selection_ypos = event->motion.y;
-
- p->selection.active = TRUE;
- p->selection.coordinate[0] -= dx / xscale;
- p->selection.coordinate[1] -= dy / yscale;
- p->selection.coordinate[2] -= dx / xscale;
- p->selection.coordinate[3] -= dy / yscale;
-
- preview_bound_selection(p);
- preview_update_maximum_output_size(p);
- preview_draw_selection(p);
-
- if ((preferences.gtk_update_policy == GTK_UPDATE_CONTINUOUS) && (event_count == 1))
- {
- preview_establish_selection(p);
- }
- else if ((preferences.gtk_update_policy == GTK_UPDATE_DELAYED) && (event_count == 1))
- {
- preview_establish_selection(p);
- }
- }
- break;
-
- default:
- if ( ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) && (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) && /* left */
- ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) && (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) ) /* top */
- {
- cursornr = GDK_TOP_LEFT_CORNER;
- }
- else if ( ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) && (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) && /* right */
- ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) && (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) ) /* top */
- {
- cursornr = GDK_TOP_RIGHT_CORNER;
- }
- else if ( ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) && (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) && /* left */
- ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) && (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) ) /* bottom */
- {
- cursornr = GDK_BOTTOM_LEFT_CORNER;
- }
- else if ( ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) && (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) && /* right */
- ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) && (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) ) /* bottom */
- {
- cursornr = GDK_BOTTOM_RIGHT_CORNER;
- }
- else
- {
- cursornr = XSANE_CURSOR_PREVIEW;
- }
-
- if ((cursornr != p->cursornr) && (p->cursornr != -1))
- {
- cursor = gdk_cursor_new(cursornr); /* set curosr */
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = cursornr;
- }
- break;
- }
- break;
-
- default:
-#if 0
- fprintf(stderr, "preview_event_handler: unhandled event type %d\n", event->type);
-#endif
- break;
- }
- }
-
- while (gtk_events_pending()) /* make sure all selection draw is done now */
- {
- gtk_main_iteration();
- }
-
- event_count--;
-
- return FALSE;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_start_button_clicked(GtkWidget *widget, gpointer data)
-{
- preview_scan(data);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_cancel_button_clicked(GtkWidget *widget, gpointer data)
-{
- preview_scan_done(data);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-Preview *preview_new(GSGDialog *dialog)
-{
- static int first_time = 1;
- GtkWidget *table, *frame;
- GtkSignalFunc signal_func;
- GtkWidgetClass *class;
- GtkBox *vbox, *hbox;
- GdkCursor *cursor;
- GtkWidget *preset_area_option_menu, *preset_area_menu, *preset_area_item;
- Preview *p;
- int i;
- char buf[256];
-
- p = malloc(sizeof(*p));
- if (!p)
- {
- return 0;
- }
- memset(p, 0, sizeof(*p));
-
- p->mode = MODE_NORMAL; /* no pipette functions etc */
- p->dialog = dialog;
- p->input_tag = -1;
-
- if (first_time)
- {
- first_time = 0;
- gtk_preview_set_gamma(1.0);
- gtk_preview_set_install_cmap(preferences.preview_own_cmap);
- }
-
- p->preset_width = INF; /* use full scanarea */
- p->preset_height = INF; /* use full scanarea */
-
- p->maximum_output_width = INF; /* full output with */
- p->maximum_output_height = INF; /* full output height */
-
-#ifndef XSERVER_WITH_BUGGY_VISUALS
- gtk_widget_push_visual(gtk_preview_get_visual());
-#endif
- gtk_widget_push_colormap(gtk_preview_get_cmap());
-
- snprintf(buf, sizeof(buf), "%s %s", WINDOW_PREVIEW, device_text);
- p->top = gtk_dialog_new();
- gtk_window_set_title(GTK_WINDOW(p->top), buf);
- vbox = GTK_BOX(GTK_DIALOG(p->top)->vbox);
- hbox = GTK_BOX(GTK_DIALOG(p->top)->action_area);
-
- xsane_set_window_icon(p->top, 0);
-
- /* top hbox for pipette buttons */
- p->button_box = gtk_hbox_new(FALSE, 5);
- gtk_container_set_border_width(GTK_CONTAINER(p->button_box), 4);
- gtk_box_pack_start(GTK_BOX(vbox), p->button_box, FALSE, FALSE, 0);
-
- /* White, gray and black pipette button */
- p->pipette_white = xsane_button_new_with_pixmap(p->button_box, pipette_white_xpm, DESC_PIPETTE_WHITE, (GtkSignalFunc) preview_pipette_white, p);
- p->pipette_gray = xsane_button_new_with_pixmap(p->button_box, pipette_gray_xpm, DESC_PIPETTE_GRAY, (GtkSignalFunc) preview_pipette_gray, p);
- p->pipette_black = xsane_button_new_with_pixmap(p->button_box, pipette_black_xpm, DESC_PIPETTE_BLACK, (GtkSignalFunc) preview_pipette_black, p);
-
- /* Zoom not, zoom out and zoom in button */
- p->zoom_not = xsane_button_new_with_pixmap(p->button_box, zoom_not_xpm, DESC_ZOOM_FULL, (GtkSignalFunc) preview_zoom_not, p);
- p->zoom_out = xsane_button_new_with_pixmap(p->button_box, zoom_out_xpm, DESC_ZOOM_OUT, (GtkSignalFunc) preview_zoom_out, p);
- p->zoom_in = xsane_button_new_with_pixmap(p->button_box, zoom_in_xpm, DESC_ZOOM_IN, (GtkSignalFunc) preview_zoom_in, p);
- p->zoom_undo = xsane_button_new_with_pixmap(p->button_box, zoom_undo_xpm, DESC_ZOOM_UNDO, (GtkSignalFunc) preview_zoom_undo, p);
-
- gtk_widget_set_sensitive(p->zoom_not, FALSE); /* no zoom at this point, so no zoom not */
- gtk_widget_set_sensitive(p->zoom_out, FALSE); /* no zoom at this point, so no zoom out */
- gtk_widget_set_sensitive(p->zoom_undo, FALSE); /* no zoom at this point, so no zoom undo */
-
-
-
- xsane_button_new_with_pixmap(p->button_box, full_preview_area_xpm, DESC_FULL_PREVIEW_AREA,
- (GtkSignalFunc) preview_full_preview_area, p);
-
- /* select maximum scanarea */
- preset_area_menu = gtk_menu_new();
-
- for (i = 0; i < PRESET_AREA_ITEMS; ++i)
- {
- preset_area_item = gtk_menu_item_new_with_label(preset_area[i].name);
- gtk_container_add(GTK_CONTAINER(preset_area_menu), preset_area_item);
- gtk_signal_connect(GTK_OBJECT(preset_area_item), "activate", (GtkSignalFunc) preview_preset_area_callback, p);
- gtk_object_set_data(GTK_OBJECT(preset_area_item), "Selection", (void *) i);
-
- gtk_widget_show(preset_area_item);
- }
-
- preset_area_option_menu = gtk_option_menu_new();
- gtk_box_pack_start(GTK_BOX(p->button_box), preset_area_option_menu, FALSE, FALSE, 2);
- gtk_option_menu_set_menu(GTK_OPTION_MENU(preset_area_option_menu), preset_area_menu);
- gtk_option_menu_set_history(GTK_OPTION_MENU(preset_area_option_menu), 0); /* full area */
-/* xsane_back_gtk_set_tooltip(tooltips, preset_area_option_menu, desc); */
-
- gtk_widget_show(preset_area_option_menu);
- p->preset_area_option_menu = preset_area_option_menu;
-
- gtk_widget_show(p->button_box);
-
-
-
- /* construct the preview area (table with sliders & preview window) */
- table = gtk_table_new(2, 2, /* homogeneous */ FALSE);
- gtk_table_set_col_spacing(GTK_TABLE(table), 0, 1);
- gtk_table_set_row_spacing(GTK_TABLE(table), 0, 1);
- gtk_container_set_border_width(GTK_CONTAINER(table), 2);
- gtk_box_pack_start(vbox, table, /* expand */ TRUE, /* fill */ TRUE, /* padding */ 0);
-
- /* the empty box in the top-left corner */
- frame = gtk_frame_new(/* label */ 0);
- gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_OUT);
- gtk_table_attach(GTK_TABLE(table), frame, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
-
- /* the horizontal ruler */
- p->hruler = gtk_hruler_new();
- gtk_table_attach(GTK_TABLE(table), p->hruler, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
-
- /* the vertical ruler */
- p->vruler = gtk_vruler_new();
- gtk_table_attach(GTK_TABLE(table), p->vruler, 0, 1, 1, 2, 0, GTK_FILL, 0, 0);
-
- /* the preview area */
-
- p->window = gtk_preview_new(GTK_PREVIEW_COLOR);
- gtk_preview_set_expand(GTK_PREVIEW(p->window), TRUE);
- gtk_widget_set_events(p->window,
- GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
- GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
- gtk_signal_connect(GTK_OBJECT(p->window), "event", (GtkSignalFunc) preview_event_handler, p);
- gtk_signal_connect_after(GTK_OBJECT(p->window), "expose_event", (GtkSignalFunc) preview_expose_handler, p);
- gtk_signal_connect_after(GTK_OBJECT(p->window), "size_allocate", (GtkSignalFunc) preview_area_resize, 0);
- gtk_object_set_data(GTK_OBJECT(p->window), "PreviewPointer", p);
-
- /* Connect the motion-notify events of the preview area with the rulers. Nifty stuff! */
-
- class = GTK_WIDGET_CLASS(GTK_OBJECT(p->hruler)->klass);
- signal_func = (GtkSignalFunc) class->motion_notify_event;
- gtk_signal_connect_object(GTK_OBJECT(p->window), "motion_notify_event", signal_func, GTK_OBJECT(p->hruler));
-
- class = GTK_WIDGET_CLASS(GTK_OBJECT(p->vruler)->klass);
- signal_func = (GtkSignalFunc) class->motion_notify_event;
- gtk_signal_connect_object(GTK_OBJECT(p->window), "motion_notify_event", signal_func, GTK_OBJECT(p->vruler));
-
- p->viewport = gtk_frame_new(/* label */ 0);
- gtk_frame_set_shadow_type(GTK_FRAME(p->viewport), GTK_SHADOW_IN);
- gtk_container_add(GTK_CONTAINER(p->viewport), p->window);
-
- gtk_table_attach(GTK_TABLE(table), p->viewport, 1, 2, 1, 2,
- GTK_FILL | GTK_EXPAND | GTK_SHRINK,
- GTK_FILL | GTK_EXPAND | GTK_SHRINK, 0, 0);
-
- preview_update_surface(p, 0);
-
- /* fill in action area: */
-
- /* Start button */
- p->start = gtk_button_new_with_label(BUTTON_PREVIEW_ACQUIRE);
- gtk_signal_connect(GTK_OBJECT(p->start), "clicked", (GtkSignalFunc) preview_start_button_clicked, p);
- gtk_box_pack_start(GTK_BOX(hbox), p->start, TRUE, TRUE, 0);
-
- /* Cancel button */
- p->cancel = gtk_button_new_with_label(BUTTON_PREVIEW_CANCEL);
- gtk_signal_connect(GTK_OBJECT(p->cancel), "clicked", (GtkSignalFunc) preview_cancel_button_clicked, p);
- gtk_box_pack_start(GTK_BOX(hbox), p->cancel, TRUE, TRUE, 0);
- gtk_widget_set_sensitive(p->cancel, FALSE);
-
- gtk_widget_show(p->cancel);
- gtk_widget_show(p->start);
- gtk_widget_show(p->viewport);
- gtk_widget_show(p->window);
- gtk_widget_show(p->hruler);
- gtk_widget_show(p->vruler);
- gtk_widget_show(frame);
- gtk_widget_show(table);
- gtk_widget_show(p->top);
-
- cursor = gdk_cursor_new(XSANE_CURSOR_PREVIEW); /* set default curosr */
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = XSANE_CURSOR_PREVIEW;
-
- gtk_widget_pop_colormap();
-#ifndef XSERVER_WITH_BUGGY_VISUALS
- gtk_widget_pop_visual();
-#endif
- return p;
-}
-
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_area_correct(Preview *p)
-{
- float width, height, max_width, max_height;
-
- width = p->preview_width;
- height = p->preview_height;
- max_width = p->preview_window_width;
- max_height = p->preview_window_height;
-
- width = max_width;
- height = width / p->aspect;
-
- if (height > max_height)
- {
- height = max_height;
- width = height * p->aspect;
- }
-
- p->preview_width = width + 0.5;
- p->preview_height = height + 0.5;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void preview_update_surface(Preview *p, int surface_changed)
-{
- float val;
- float width, height;
- float max_width, max_height;
- float preset_width, preset_height;
- const SANE_Option_Descriptor *opt;
- int i;
- SANE_Value_Type type;
- SANE_Unit unit;
- double min, max;
-
- unit = SANE_UNIT_PIXEL;
- type = SANE_TYPE_INT;
-
- for (i = 0; i < 4; ++i) /* test if surface (max vals of scanarea) has changed */
- {
-/* val = (i & 2) ? INF : -INF; */
- val = (i & 2) ? INF : 0;
-
- if (p->dialog->well_known.coord[i] > 0)
- {
- opt = sane_get_option_descriptor(p->dialog->dev, p->dialog->well_known.coord[i]);
- assert(opt->unit == SANE_UNIT_PIXEL || opt->unit == SANE_UNIT_MM);
- unit = opt->unit;
- type = opt->type;
-
- xsane_get_bounds(opt, &min, &max);
-
- if (i & 2)
- {
- val = max;
- }
- else
- {
- val = min;
- }
- }
-
- if (p->max_scanner_surface[i] != val)
- {
- surface_changed = 2;
- p->max_scanner_surface[i] = val;
- }
- }
-
- if (surface_changed == 2) /* redefine all surface subparts */
- {
- for (i = 0; i < 4; i++)
- {
- val = p->max_scanner_surface[i];
- p->scanner_surface[i] = val;
- p->surface[i] = val;
- p->image_surface[i] = val;
- }
- }
-
- max_width = p->max_scanner_surface[xsane_back_gtk_BR_X] - p->max_scanner_surface[xsane_back_gtk_TL_X];
- max_height = p->max_scanner_surface[xsane_back_gtk_BR_Y] - p->max_scanner_surface[xsane_back_gtk_TL_Y];
-
- width = p->scanner_surface[xsane_back_gtk_BR_X] - p->scanner_surface[xsane_back_gtk_TL_X];
- height = p->scanner_surface[xsane_back_gtk_BR_Y] - p->scanner_surface[xsane_back_gtk_TL_Y];
-
- preset_width = p->preset_width;
- preset_height = p->preset_height;
-
- if (preset_width > max_width)
- {
- preset_width = max_width;
- }
-
- if (preset_height > max_height)
- {
- preset_height = max_height;
- }
-
- if ( (width != preset_width) || (height != preset_height) )
- {
- p->scanner_surface[xsane_back_gtk_TL_X] = p->scanner_surface[xsane_back_gtk_TL_X];
- p->surface[xsane_back_gtk_TL_X] = p->scanner_surface[xsane_back_gtk_TL_X];
- p->image_surface[xsane_back_gtk_TL_X] = p->scanner_surface[xsane_back_gtk_TL_X];
-
- p->scanner_surface[xsane_back_gtk_BR_X] = p->scanner_surface[xsane_back_gtk_TL_X] + preset_width;
- p->surface[xsane_back_gtk_BR_X] = p->scanner_surface[xsane_back_gtk_TL_X] + preset_width;
- p->image_surface[xsane_back_gtk_BR_X] = p->scanner_surface[xsane_back_gtk_TL_X] + preset_width;
-
- p->scanner_surface[xsane_back_gtk_TL_Y] = p->scanner_surface[xsane_back_gtk_TL_Y];
- p->surface[xsane_back_gtk_TL_Y] = p->scanner_surface[xsane_back_gtk_TL_Y];
- p->image_surface[xsane_back_gtk_TL_Y] = p->scanner_surface[xsane_back_gtk_TL_Y];
-
- p->scanner_surface[xsane_back_gtk_BR_Y] = p->scanner_surface[xsane_back_gtk_TL_Y] + preset_height;
- p->surface[xsane_back_gtk_BR_Y] = p->scanner_surface[xsane_back_gtk_TL_Y] + preset_height;
- p->image_surface[xsane_back_gtk_BR_Y] = p->scanner_surface[xsane_back_gtk_TL_Y] + preset_height;
-
- surface_changed = 1;
- }
-
- if (p->surface_unit != unit)
- {
- surface_changed = 1;
- p->surface_unit = unit;
- }
-
- if (p->surface_unit == SANE_UNIT_MM)
- {
- gtk_widget_set_sensitive(p->preset_area_option_menu, TRUE); /* enable preset area */
- }
- else
- {
- gtk_widget_set_sensitive(p->preset_area_option_menu, FALSE); /* disable preset area */
- }
-
- if (p->surface_type != type)
- {
- surface_changed = 1;
- p->surface_type = type;
- }
-
- if (surface_changed)
- {
- /* guess the initial preview window size: */
-
- width = p->surface[xsane_back_gtk_BR_X] - p->surface[xsane_back_gtk_TL_X];
- height = p->surface[xsane_back_gtk_BR_Y] - p->surface[xsane_back_gtk_TL_Y];
-
- if (p->surface_type == SANE_TYPE_INT)
- {
- width += 1.0;
- height += 1.0;
- }
- else
- {
- width += SANE_UNFIX(1.0);
- height += SANE_UNFIX(1.0);
- }
-
- assert(width > 0.0 && height > 0.0);
-
- if (width >= INF || height >= INF)
- {
- p->aspect = 1.0;
- }
- else
- {
- p->aspect = width/height;
- }
- }
- else if ( (p->image_height) && (p->image_width) )
- {
- p->aspect = p->image_width/(float) p->image_height;
- }
-
- if ( (surface_changed) && (p->preview_window_width == 0) )
- {
- p->preview_window_width = 0.5 * gdk_screen_width();
- p->preview_window_height = 0.5 * gdk_screen_height();
- }
-
- preview_area_correct(p);
-
- if (surface_changed)
- {
- gtk_widget_set_usize(GTK_WIDGET(p->window), p->preview_width, p->preview_height);
- /* preview_area_resize is automatically called by signal handler */
-
- preview_bound_selection(p); /* make sure selection is not larger than surface */
- preview_restore_image(p); /* draw selected surface of the image */
- }
- else
- {
- preview_update_selection(p);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void preview_scan(Preview *p)
-{
- double min, max, swidth, sheight, width, height, dpi = 0;
- const SANE_Option_Descriptor *opt;
- gint gwidth, gheight;
- int i;
-
- xsane.block_update_param = TRUE; /* do not change parameters each time */
-
- preview_save_option(p, p->dialog->well_known.dpi, &p->saved_dpi, &p->saved_dpi_valid);
- preview_save_option(p, p->dialog->well_known.dpi_x, &p->saved_dpi_x, &p->saved_dpi_x_valid);
- preview_save_option(p, p->dialog->well_known.dpi_y, &p->saved_dpi_y, &p->saved_dpi_y_valid);
-
- for (i = 0; i < 4; ++i)
- {
- preview_save_option(p, p->dialog->well_known.coord[i], &p->saved_coord[i], p->saved_coord_valid + i);
- }
- preview_save_option(p, p->dialog->well_known.bit_depth, &p->saved_bit_depth, &p->saved_bit_depth_valid);
-
- /* determine dpi, if necessary: */
-
- if (p->dialog->well_known.dpi > 0)
- {
- opt = sane_get_option_descriptor(p->dialog->dev, p->dialog->well_known.dpi);
-
- gwidth = p->preview_width;
- gheight = p->preview_height;
-
- height = gheight;
- width = height * p->aspect;
-
- if (width > gwidth)
- {
- width = gwidth;
- height = width / p->aspect;
- }
-
- swidth = (p->surface[xsane_back_gtk_BR_X] - p->surface[xsane_back_gtk_TL_X]);
-
- if (swidth < INF)
- {
- dpi = MM_PER_INCH * width/swidth;
- }
- else
- {
- sheight = (p->surface[xsane_back_gtk_BR_Y] - p->surface[xsane_back_gtk_TL_Y]);
- if (sheight < INF)
- {
- dpi = MM_PER_INCH * height/sheight;
- }
- else
- {
- dpi = 18.0;
- }
- }
-
- xsane_get_bounds(opt, &min, &max);
-
- if (dpi < min)
- {
- dpi = min;
- }
-
- if (dpi > max)
- {
- dpi = max;
- }
-
- xsane_set_resolution(p->dialog->well_known.dpi, dpi); /* set resolution to dpi or next higher value that is available */
- xsane_set_resolution(p->dialog->well_known.dpi_x, dpi); /* set resolution to dpi or next higher value that is available */
- xsane_set_resolution(p->dialog->well_known.dpi_y, dpi); /* set resolution to dpi or next higher value that is available */
- }
-
- /* set the scan window (necessary since backends may default to non-maximum size): */
-
- for (i = 0; i < 4; ++i)
- {
- preview_set_option_float(p, p->dialog->well_known.coord[i], p->surface[i]);
- }
-
- preview_set_option_bool(p, p->dialog->well_known.preview, SANE_TRUE);
-
- if ( (p->saved_bit_depth > 8) && (p->saved_bit_depth_valid) ) /* don't scan with more than 8bpp */
- {
- preview_set_option_int(p, p->dialog->well_known.bit_depth, 8);
- }
-
- xsane.block_update_param = FALSE;
-
- /* OK, all set to go */
- preview_scan_start(p);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_save_image_file(Preview *p, FILE *out)
-{
- if (out)
- {
- /* always save it as a PPM image: */
- fprintf(out, "P6\n# surface: %g %g %g %g %u %u\n%d %d\n255\n",
- p->surface[0], p->surface[1], p->surface[2], p->surface[3],
- p->surface_type, p->surface_unit, p->image_width, p->image_height);
-
- fwrite(p->image_data_raw, 3, p->image_width*p->image_height, out);
- fclose(out);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_save_image(Preview *p)
-{
- char filename[PATH_MAX];
- FILE *out;
- int status;
-
- if (!p->image_data_enh)
- {
- return;
- }
-
- if ( GROSSLY_EQUAL(p->max_scanner_surface[0], p->surface[0]) && /* full device surface */
- GROSSLY_EQUAL(p->max_scanner_surface[1], p->surface[1]) &&
- GROSSLY_EQUAL(p->max_scanner_surface[2], p->surface[2]) &&
- GROSSLY_EQUAL(p->max_scanner_surface[3], p->surface[3]) )
- {
- status = preview_make_image_path(p, sizeof(filename), filename, 0);
- }
- else if ( GROSSLY_EQUAL(p->scanner_surface[0], p->surface[0]) && /* user defined surface */
- GROSSLY_EQUAL(p->scanner_surface[1], p->surface[1]) &&
- GROSSLY_EQUAL(p->scanner_surface[2], p->surface[2]) &&
- GROSSLY_EQUAL(p->scanner_surface[3], p->surface[3]) )
- {
- status = preview_make_image_path(p, sizeof(filename), filename, 1);
- }
- else /* zoom area */
- {
- status = preview_make_image_path(p, sizeof(filename), filename, 2);
- }
-
- if (status >= 0)
- {
- /* save preview image */
- remove(filename); /* remove existing preview */
- umask(0177); /* creare temporary file with "-rw-------" permissions */
- out = fopen(filename, "w");
- umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
-
- preview_save_image_file(p, out);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void preview_destroy(Preview *p)
-{
- int level;
- int status;
- char filename[PATH_MAX];
-
- if (p->scanning)
- {
- preview_scan_done(p); /* don't save partial window */
- }
- else
- {
- preview_save_image(p);
- }
-
- if (!preferences.preserve_preview)
- {
- for(level = 0; level <= 2; level++)
- {
- status = preview_make_image_path(p, sizeof(filename), filename, level);
- if (status >= 0)
- {
- remove(filename); /* remove existing preview */
- }
- }
- }
-
- if (p->image_data_enh)
- {
- free(p->image_data_enh);
- p->image_data_enh = 0;
- }
-
- if (p->image_data_raw)
- {
- free(p->image_data_raw);
- p->image_data_raw = 0;
- }
-
- if (p->preview_row)
- {
- free(p->preview_row);
- p->preview_row = 0;
- }
-
- if (p->gc_selection)
- {
- gdk_gc_destroy(p->gc_selection);
- }
-
- if (p->gc_selection_maximum)
- {
- gdk_gc_destroy(p->gc_selection_maximum);
- }
-
- if (p->top)
- {
- gtk_widget_destroy(p->top);
- }
- free(p);
-
- p = 0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_zoom_not(GtkWidget *window, gpointer data)
-{
- Preview *p=data;
- int i;
-
- for (i=0; i<4; i++)
- {
- p->surface[i] = p->scanner_surface[i];
- }
-
- preview_update_surface(p, 1);
- gtk_widget_set_sensitive(p->zoom_not, FALSE); /* forbid unzoom */
- gtk_widget_set_sensitive(p->zoom_out, FALSE); /* forbid zoom out */
- gtk_widget_set_sensitive(p->zoom_undo,TRUE); /* allow zoom undo */
-
- while (gtk_events_pending()) /* make sure all selection draw is done now */
- {
- gtk_main_iteration();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_zoom_out(GtkWidget *window, gpointer data)
-{
- Preview *p=data;
- int i;
- float delta_width = (p->surface[2] - p->surface[0]) * 0.2;
- float delta_height = (p->surface[3] - p->surface[1]) * 0.2;
-
- for (i=0; i<4; i++)
- {
- p->old_surface[i] = p->surface[i];
- }
-
- p->surface[0] -= delta_width;
- p->surface[1] -= delta_height;
- p->surface[2] += delta_width;
- p->surface[3] += delta_height;
-
- if (p->surface[0] < p->scanner_surface[0])
- {
- p->surface[0] = p->scanner_surface[0];
- }
-
- if (p->surface[1] < p->scanner_surface[1])
- {
- p->surface[1] = p->scanner_surface[1];
- }
-
- if (p->surface[2] > p->scanner_surface[2])
- {
- p->surface[2] = p->scanner_surface[2];
- }
-
- if (p->surface[3] > p->scanner_surface[3])
- {
- p->surface[3] = p->scanner_surface[3];
- }
-
- preview_update_surface(p, 1);
- gtk_widget_set_sensitive(p->zoom_not, TRUE); /* allow unzoom */
- gtk_widget_set_sensitive(p->zoom_undo,TRUE); /* allow zoom undo */
-
- while (gtk_events_pending()) /* make sure all selection draw is done now */
- {
- gtk_main_iteration();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_zoom_in(GtkWidget *window, gpointer data)
-{
- Preview *p=data;
- const SANE_Option_Descriptor *opt;
- SANE_Status status;
- SANE_Word val;
- int i, optnum;
-
- for (i=0; i<4; i++)
- {
- p->old_surface[i] = p->surface[i];
-
- optnum = p->dialog->well_known.coord[i];
- if (optnum > 0)
- {
- opt = sane_get_option_descriptor(p->dialog->dev, optnum);
- status = sane_control_option(p->dialog->dev, optnum, SANE_ACTION_GET_VALUE, &val, 0);
- if (status != SANE_STATUS_GOOD)
- {
- continue;
- }
-
- if (opt->type == SANE_TYPE_FIXED)
- {
- p->surface[i] = SANE_UNFIX(val);
- }
- else
- {
- p->surface[i] = val;
- }
- }
- }
-
- preview_update_surface(p, 1);
- gtk_widget_set_sensitive(p->zoom_not, TRUE); /* allow unzoom */
- gtk_widget_set_sensitive(p->zoom_out, TRUE); /* allow zoom out */
- gtk_widget_set_sensitive(p->zoom_undo,TRUE); /* allow zoom undo */
-
- while (gtk_events_pending()) /* make sure all selection draw is done now */
- {
- gtk_main_iteration();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_zoom_undo(GtkWidget *window, gpointer data)
-{
- Preview *p=data;
- int i;
-
- for (i=0; i<4; i++)
- {
- p->surface[i] = p->old_surface[i];
- }
-
- preview_update_surface(p, 1);
- gtk_widget_set_sensitive(p->zoom_not, TRUE); /* allow unzoom */
- gtk_widget_set_sensitive(p->zoom_out, TRUE); /* allow zoom out */
- gtk_widget_set_sensitive(p->zoom_undo, FALSE); /* forbid zoom undo */
-
- while (gtk_events_pending()) /* make sure all selection draw is done now */
- {
- gtk_main_iteration();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_get_color(Preview *p, int x, int y, int *red, int *green, int *blue)
-{
- int image_x, image_y;
- float xscale_p2i, yscale_p2i;
- int offset;
-
- if (p->image_data_raw)
- {
- preview_get_scale_preview_to_image(p, &xscale_p2i, &yscale_p2i);
-
- image_x = x * xscale_p2i;
- image_y = y * yscale_p2i;
-
- offset = 3 * (image_y * p->image_width + image_x);
-
- if (!xsane.negative) /* positive */
- {
- *red = p->image_data_raw[offset ];
- *green = p->image_data_raw[offset + 1];
- *blue = p->image_data_raw[offset + 2];
- }
- else /* negative */
- {
- *red = 255 - p->image_data_raw[offset ];
- *green = 255 - p->image_data_raw[offset + 1];
- *blue = 255 - p->image_data_raw[offset + 2];
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_pipette_white(GtkWidget *window, gpointer data)
-{
- Preview *p=data;
- GdkCursor *cursor;
- GdkColor fg;
- GdkColor bg;
- GdkPixmap *pixmap;
- GdkPixmap *mask;
-
- p->mode = MODE_PIPETTE_WHITE;
-
- pixmap = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_white, CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
- mask = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_mask, CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
-
- fg.red = 0;
- fg.green = 0;
- fg.blue = 0;
-
- bg.red = 65535;
- bg.green = 65535;
- bg.blue = 65535;
-
- cursor = gdk_cursor_new_from_pixmap(pixmap, mask, &fg, &bg, CURSOR_PIPETTE_HOT_X, CURSOR_PIPETTE_HOT_Y);
-
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = -1;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_pipette_gray(GtkWidget *window, gpointer data)
-{
- Preview *p=data;
- GdkCursor *cursor;
- GdkColor fg;
- GdkColor bg;
- GdkPixmap *pixmap;
- GdkPixmap *mask;
-
- p->mode = MODE_PIPETTE_GRAY;
-
- pixmap = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_gray, CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
- mask = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_mask, CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
-
- fg.red = 0;
- fg.green = 0;
- fg.blue = 0;
-
- bg.red = 65535;
- bg.green = 65535;
- bg.blue = 65535;
-
- cursor = gdk_cursor_new_from_pixmap(pixmap, mask, &fg, &bg, CURSOR_PIPETTE_HOT_X, CURSOR_PIPETTE_HOT_Y);
-
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = -1;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_pipette_black(GtkWidget *window, gpointer data)
-{
- Preview *p=data;
- GdkCursor *cursor;
- GdkColor fg;
- GdkColor bg;
- GdkPixmap *pixmap;
- GdkPixmap *mask;
-
- p->mode = MODE_PIPETTE_BLACK;
-
- pixmap = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_black, CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
- mask = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_mask , CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
-
- fg.red = 0;
- fg.green = 0;
- fg.blue = 0;
-
- bg.red = 65535;
- bg.green = 65535;
- bg.blue = 65535;
-
- cursor = gdk_cursor_new_from_pixmap(pixmap, mask, &fg, &bg, CURSOR_PIPETTE_HOT_X, CURSOR_PIPETTE_HOT_Y);
-
- gdk_window_set_cursor(p->window->window, cursor);
- gdk_cursor_destroy(cursor);
- p->cursornr = -1;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_full_preview_area(GtkWidget *widget, gpointer call_data)
-{
- Preview *p = call_data;
- int i;
-
- p->selection.active = TRUE;
-
- for (i=0; i<4; i++)
- {
- p->selection.coordinate[i] = p->surface[i];
- }
-
- preview_update_maximum_output_size(p);
- preview_draw_selection(p);
- preview_establish_selection(p);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void preview_preset_area_callback(GtkWidget *widget, gpointer call_data)
-{
- Preview *p = call_data;
- int selection;
-
- selection = (int) gtk_object_get_data(GTK_OBJECT(widget), "Selection");
-
- p->preset_width = preset_area[selection].width;
- p->preset_height = preset_area[selection].height;
-
- preview_update_surface(p, 0);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void preview_do_gamma_correction(Preview *p)
-{
- int x,y;
- int offset;
-
- if (p->image_data_raw)
- {
- if ((p->image_data_raw) && (p->params.depth > 1) && (preview_gamma_data_red))
- {
- for (y=0; y < p->image_height; y++)
- {
- for (x=0; x < p->image_width; x++)
- {
- offset = 3 * (y * p->image_width + x);
- p->image_data_enh[offset ] = preview_gamma_data_red [p->image_data_raw[offset ]];
- p->image_data_enh[offset + 1] = preview_gamma_data_green[p->image_data_raw[offset + 1]];
- p->image_data_enh[offset + 2] = preview_gamma_data_blue [p->image_data_raw[offset + 2]];
- }
- }
- }
-
- preview_display_partial_image(p);
-
- p->previous_selection.active = FALSE; /* previous selection is not drawn */
- p->previous_selection_maximum.active = FALSE;
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void preview_calculate_histogram(Preview *p,
- SANE_Int *count_raw, SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue,
- SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue)
-{
- int x, y;
- int offset;
- SANE_Int red_raw, green_raw, blue_raw;
- SANE_Int red, green, blue;
- SANE_Int min_x, max_x, min_y, max_y;
- float xscale, yscale;
-
- preview_get_scale_device_to_image(p, &xscale, &yscale);
-
- min_x = (p->selection.coordinate[0] - p->surface[0]) * xscale;
- min_y = (p->selection.coordinate[1] - p->surface[1]) * yscale;
- max_x = (p->selection.coordinate[2] - p->surface[0]) * xscale;
- max_y = (p->selection.coordinate[3] - p->surface[1]) * yscale;
-
- if (min_x < 0)
- {
- min_x = 0;
- }
-
- if (max_x >= p->image_width)
- {
- max_x = p->image_width-1;
- }
-
- if (min_y < 0)
- {
- min_y = 0;
- }
-
- if (max_y >= p->image_height)
- {
- max_y = p->image_height-1;
- }
-
- if ((p->image_data_raw) && (p->params.depth > 1) && (preview_gamma_data_red))
- {
- for (y = min_y; y <= max_y; y++)
- {
- for (x = min_x; x <= max_x; x++)
- {
- offset = 3 * (y * p->image_width + x);
- red_raw = p->image_data_raw[offset ];
- green_raw = p->image_data_raw[offset + 1];
- blue_raw = p->image_data_raw[offset + 2];
-
- red = histogram_gamma_data_red [red_raw];
- green = histogram_gamma_data_green[green_raw];
- blue = histogram_gamma_data_blue [blue_raw];
-
-/* count_raw [(int) sqrt((red_raw*red_raw + green_raw*green_raw + blue_raw*blue_raw)/3.0)]++; */
- count_raw [(int) ((red_raw + green_raw + blue_raw)/3)]++;
- count_raw_red [red_raw]++;
- count_raw_green[green_raw]++;
- count_raw_blue [blue_raw]++;
-
-/* count [(int) sqrt((red*red + green*green + blue*blue)/3.0)]++; */
- count [(int) ((red + green + blue)/3)]++;
- count_red [red]++;
- count_green[green]++;
- count_blue [blue]++;
- }
- }
- }
- else /* no preview image => all colors = 1 */
- {
- int i;
-
- for (i = 1; i <= 254; i++)
- {
- count_raw [i] = 0;
- count_raw_red [i] = 0;
- count_raw_green[i] = 0;
- count_raw_blue [i] = 0;
-
- count [i] = 0;
- count_red [i] = 0;
- count_green[i] = 0;
- count_blue [i] = 0;
- }
-
- count_raw [0] = 10;
- count_raw_red [0] = 10;
- count_raw_green[0] = 10;
- count_raw_blue [0] = 10;
-
- count [0] = 10;
- count_red [0] = 10;
- count_green[0] = 10;
- count_blue [0] = 10;
-
- count_raw [255] = 10;
- count_raw_red [255] = 10;
- count_raw_green[255] = 10;
- count_raw_blue [255] = 10;
-
- count [255] = 10;
- count_red [255] = 10;
- count_green[255] = 10;
- count_blue [255] = 10;
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void preview_gamma_correction(Preview *p,
- SANE_Int *gamma_red, SANE_Int *gamma_green, SANE_Int *gamma_blue,
- SANE_Int *gamma_red_hist, SANE_Int *gamma_green_hist, SANE_Int *gamma_blue_hist)
-{
- preview_gamma_data_red = gamma_red;
- preview_gamma_data_green = gamma_green;
- preview_gamma_data_blue = gamma_blue;
-
- histogram_gamma_data_red = gamma_red_hist;
- histogram_gamma_data_green = gamma_green_hist;
- histogram_gamma_data_blue = gamma_blue_hist;
-
- preview_do_gamma_correction(p);
- preview_draw_selection(p);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void preview_area_resize(GtkWidget *widget)
-{
- float min_x, max_x, delta_x;
- float min_y, max_y, delta_y;
- float xscale, yscale, f;
- Preview *p;
-
- p = gtk_object_get_data(GTK_OBJECT(widget), "PreviewPointer");
-
- p->preview_window_width = widget->allocation.width;
- p->preview_window_height = widget->allocation.height;
-
- p->preview_width = widget->allocation.width;
- p->preview_height = widget->allocation.height;
-
- preview_area_correct(p); /* set preview dimensions (with right aspect) that they fit into the window */
-
- if (p->preview_row) /* make sure preview_row is large enough for one line of the new size */
- {
- p->preview_row = realloc(p->preview_row, 3 * p->preview_window_width);
- }
- else
- {
- p->preview_row = malloc(3 * p->preview_window_width);
- }
-
- /* set the ruler ranges: */
-
- min_x = p->surface[xsane_back_gtk_TL_X];
- if (min_x <= -INF)
- {
- min_x = 0.0;
- }
-
- max_x = p->surface[xsane_back_gtk_BR_X];
- if (max_x >= INF)
- {
- max_x = p->image_width - 1;
- }
-
- min_y = p->surface[xsane_back_gtk_TL_Y];
- if (min_y <= -INF)
- {
- min_y = 0.0;
- }
-
- max_y = p->surface[xsane_back_gtk_BR_Y];
- if (max_y >= INF)
- {
- max_y = p->image_height - 1;
- }
-
- /* convert mm to inches if that's what the user wants: */
-
- if (p->surface_unit == SANE_UNIT_MM)
- {
- double factor = 1.0/preferences.length_unit;
-
- min_x *= factor;
- max_x *= factor;
- min_y *= factor;
- max_y *= factor;
- }
-
- preview_get_scale_preview_to_image(p, &xscale, &yscale);
-
- if (p->image_width > 0)
- {
- f = xscale * p->preview_width / p->image_width;
- }
- else
- {
- f = 1.0;
- }
-
- min_x *= f;
- max_x *= f;
- delta_x = max_x - min_x;
-
- gtk_ruler_set_range(GTK_RULER(p->hruler), min_x, min_x + delta_x*p->preview_window_width/p->preview_width,
- min_x, /* max_size */ 20);
-
- if (p->image_height > 0)
- {
- f = yscale * p->preview_height / p->image_height;
- }
- else
- {
- f = 1.0;
- }
-
- min_y *= f;
- max_y *= f;
- delta_y = max_y - min_y;
-
- gtk_ruler_set_range(GTK_RULER(p->vruler), min_y, min_y + delta_y*p->preview_window_height/p->preview_height,
- min_y, /* max_size */ 20);
-
- preview_paint_image(p);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void preview_update_maximum_output_size(Preview *p)
-{
- if ( (p->maximum_output_width >= INF) || (p->maximum_output_height >= INF) )
- {
- if (p->selection_maximum.active)
- {
- p->selection_maximum.active = FALSE;
- }
- }
- else
- {
- p->previous_selection_maximum = p->selection_maximum;
-
- p->selection_maximum.active = TRUE;
- p->selection_maximum.coordinate[0] = p->selection.coordinate[0];
- p->selection_maximum.coordinate[1] = p->selection.coordinate[1];
- p->selection_maximum.coordinate[2] = p->selection.coordinate[0] + p->maximum_output_width;
- p->selection_maximum.coordinate[3] = p->selection.coordinate[1] + p->maximum_output_height;
-
- if (p->selection_maximum.coordinate[2] > p->max_scanner_surface[2])
- {
- p->selection_maximum.coordinate[2] = p->max_scanner_surface[2];
- }
-
- if (p->selection_maximum.coordinate[3] > p->max_scanner_surface[3])
- {
- p->selection_maximum.coordinate[3] = p->max_scanner_surface[3];
- }
-
- if ( (p->selection.coordinate[0] < p->selection_maximum.coordinate[0]) ||
- (p->selection.coordinate[1] < p->selection_maximum.coordinate[1]) ||
- (p->selection.coordinate[2] > p->selection_maximum.coordinate[2]) ||
- (p->selection.coordinate[3] > p->selection_maximum.coordinate[3]) )
- {
- if (p->selection.coordinate[2] > p->selection_maximum.coordinate[2])
- {
- p->selection.coordinate[2] = p->selection_maximum.coordinate[2];
- }
-
- if (p->selection.coordinate[3] > p->selection_maximum.coordinate[3])
- {
- p->selection.coordinate[3] = p->selection_maximum.coordinate[3];
- }
- preview_draw_selection(p);
- preview_establish_selection(p);
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void preview_set_maximum_output_size(Preview *p, float width, float height)
-{
- /* witdh and height in device units */
-
- p->maximum_output_width = width;
- p->maximum_output_height = height;
-
- preview_update_maximum_output_size(p);
- preview_draw_selection(p);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/frontend/xsane-save.c b/frontend/xsane-save.c
deleted file mode 100644
index d9ac69a..0000000
--- a/frontend/xsane-save.c
+++ /dev/null
@@ -1,975 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane-save.c
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#include "xsane.h"
-#include "xsane-preview.h"
-#include "xsane-back-gtk.h"
-#include "xsane-front-gtk.h"
-#include "xsane-text.h"
-
-#ifdef HAVE_LIBJPEG
-#include <jpeglib.h>
-#endif
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
-#include <png.h>
-#include <zlib.h>
-#endif
-#endif
-
-#ifdef HAVE_LIBTIFF
-#include <tiffio.h>
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int cancel_save;
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_cancel_save()
-{
- cancel_save = 1;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_convert_text_to_filename(char **text)
-{
- if (text)
- {
- char *filename = *text;
- char buf[256];
- int buflen=0;
- int txtlen=0;
-
- while((filename[txtlen] != 0) && (buflen<253))
- {
- switch (filename[txtlen])
- {
- case ' ':
- buf[buflen++] = ':';
- buf[buflen++] = '_';
- txtlen++;
- break;
-
- case '/':
- buf[buflen++] = ':';
- buf[buflen++] = '%';
- txtlen++;
- break;
-
- case '*':
- buf[buflen++] = ':';
- buf[buflen++] = '#';
- txtlen++;
- break;
-
- case '?':
- buf[buflen++] = ':';
- buf[buflen++] = 'q';
- txtlen++;
- break;
-
- case '\\':
- buf[buflen++] = ':';
- buf[buflen++] = '=';
- txtlen++;
- break;
-
- case ';':
- buf[buflen++] = ':';
- buf[buflen++] = '!';
- txtlen++;
- break;
-
- case '&':
- buf[buflen++] = ':';
- buf[buflen++] = '+';
- txtlen++;
- break;
-
- case '<':
- buf[buflen++] = ':';
- buf[buflen++] = 's';
- txtlen++;
- break;
-
- case '>':
- buf[buflen++] = ':';
- buf[buflen++] = 'g';
- txtlen++;
- break;
-
- case '|':
- buf[buflen++] = ':';
- buf[buflen++] = 'p';
- txtlen++;
- break;
-
- case ':':
- buf[buflen++] = ':';
- buf[buflen++] = ':';
- txtlen++;
- break;
-
- default:
- buf[buflen++] = filename[txtlen++];
- break;
- }
- }
- buf[buflen] = 0;
- free(filename);
- *text = strdup(buf);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_increase_counter_in_filename(char *filename, int skip)
-{
- char *position_point;
- char *position_counter;
- char counter;
- FILE *testfile;
-
- while (1)
- {
- position_point = strrchr(filename, '.');
- if (position_point)
- {
- position_counter = position_point-1;
- }
- else
- {
- position_counter = filename + strlen(filename) - 1;
- }
-
- if (!( (*position_counter >= '0') && (*position_counter <='9') ))
- {
- break; /* no counter found */
- }
-
- while ( (position_counter > filename) && (*position_counter >= '0') && (*position_counter <='9') )
- {
- counter = ++(*position_counter);
- if (counter != ':')
- {
- break;
- }
- *position_counter = '0';
- position_counter--;
- }
-
- if (!( (*position_counter >= '0') && (*position_counter <='9') )) /* overflow */
- {
- xsane_back_gtk_warning(WARN_COUNTER_OVERFLOW, FALSE);
- break; /* last available number ("999") */
- }
-
- if (skip) /* test if filename already used */
- {
- testfile = fopen(filename, "r");
- if (testfile) /* filename used: skip */
- {
- fclose(testfile);
- }
- else
- {
- break; /* filename not used, ok */
- }
- }
- else /* do not test if filename already used */
- {
- break; /* filename ok */
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_save_ps_create_header(FILE *outfile, int color, int bits, int pixel_width, int pixel_height,
- int left, int bottom, float width, float height,
- int paperwidth, int paperheight, int rotate)
-{
- int degree, position_left, position_bottom, box_left, box_bottom, box_right, box_top;
-
- if (rotate) /* roatet with 90 degrees - eg for landscape mode */
- {
- degree = 90;
- position_left = left;
- position_bottom = bottom - paperwidth;
- box_left = paperwidth - bottom - height * 72.0;
- box_bottom = left;
- box_right = (int) (box_left + height * 72.0);
- box_top = (int) (box_bottom + width * 72.0);
- }
- else /* do not rotate, eg for portrait mode */
- {
- degree = 0;
- position_left = left;
- position_bottom = bottom;
- box_left = left;
- box_bottom = bottom;
- box_right = (int) (box_left + width * 72.0);
- box_top = (int) (box_bottom + height * 72.0);
- }
-
- fprintf(outfile, "%%!PS-Adobe-2.0 EPSF-2.0\n");
- fprintf(outfile, "%%%%Creator: xsane version %s (sane %d.%d)\n", VERSION,
- SANE_VERSION_MAJOR(xsane.sane_backend_versioncode),
- SANE_VERSION_MINOR(xsane.sane_backend_versioncode));
- fprintf(outfile, "%%%%BoundingBox: %d %d %d %d\n", box_left, box_bottom, box_right, box_top);
- fprintf(outfile, "%%\n");
- fprintf(outfile, "/origstate save def\n");
- fprintf(outfile, "20 dict begin\n");
-
- if (bits == 1)
- {
- fprintf(outfile, "/pix %d string def\n", (pixel_width+7)/8);
- fprintf(outfile, "/grays %d string def\n", pixel_width);
- fprintf(outfile, "/npixels 0 def\n");
- fprintf(outfile, "/rgbindx 0 def\n");
- }
- else
- {
- fprintf(outfile, "/pix %d string def\n", pixel_width);
- }
-
-
- fprintf(outfile, "%d rotate\n", degree);
- fprintf(outfile, "%d %d translate\n", position_left, position_bottom);
- fprintf(outfile, "%f %f scale\n", width * 72.0, height * 72.0);
- fprintf(outfile, "%d %d %d\n", pixel_width, pixel_height, bits);
- fprintf(outfile, "[%d %d %d %d %d %d]\n", pixel_width, 0, 0, -pixel_height, 0 , pixel_height);
- fprintf(outfile, "{currentfile pix readhexstring pop}\n");
-
- if (color)
- {
- fprintf(outfile, "false 3 colorimage\n");
- fprintf(outfile, "\n");
- }
- else
- {
- fprintf(outfile, "image\n");
- fprintf(outfile, "\n");
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_save_ps_bw(FILE *outfile, FILE *imagefile, int pixel_width, int pixel_height)
-{
- int x, y, count;
- int bytes_per_line = (pixel_width+7)/8;
-
- cancel_save = 0;
-
- count = 0;
- for (y = 0; y < pixel_height; y++)
- {
- for (x = 0; x < bytes_per_line; x++)
- {
- fprintf(outfile, "%02x", (fgetc(imagefile) ^ 255));
- if (++count >= 40)
- {
- fprintf(outfile, "\n");
- count = 0;
- }
- }
- fprintf(outfile, "\n");
- count = 0;
- xsane_progress_update(xsane.progress, (float)y/pixel_height);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- if (cancel_save)
- {
- break;
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_save_ps_gray(FILE *outfile, FILE *imagefile, int pixel_width, int pixel_height)
-{
- int x, y, count;
-
- cancel_save = 0;
-
- count = 0;
- for (y=0; y<pixel_height; y++)
- {
- for (x=0; x<pixel_width; x++)
- {
- fprintf(outfile, "%02x", fgetc(imagefile));
- if (++count >=40)
- {
- fprintf(outfile, "\n");
- count = 0;
- }
- }
- fprintf(outfile, "\n");
- count = 0;
- xsane_progress_update(xsane.progress, (float)y/pixel_height);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- if (cancel_save)
- {
- break;
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_save_ps_color(FILE *outfile, FILE *imagefile, int pixel_width, int pixel_height)
-{
- int x, y, count;
-
- cancel_save = 0;
-
- count = 0;
- for (y=0; y<pixel_height; y++)
- {
- for (x=0; x<pixel_width; x++)
- {
- fprintf(outfile, "%02x", fgetc(imagefile));
- fprintf(outfile, "%02x", fgetc(imagefile));
- fprintf(outfile, "%02x", fgetc(imagefile));
- if (++count >=10)
- {
- fprintf(outfile, "\n");
- count = 0;
- }
- }
- fprintf(outfile, "\n");
- count = 0;
-
- xsane_progress_update(xsane.progress, (float)y/pixel_height);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- if (cancel_save)
- {
- break;
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_save_ps(FILE *outfile, FILE *imagefile,
- int color, int bits,
- int pixel_width, int pixel_height,
- int left, int bottom,
- float width, float height,
- int paperheight, int paperwidth, int rotate)
-{
- xsane_save_ps_create_header(outfile, color, bits, pixel_width, pixel_height,
- left, bottom, width, height, paperheight, paperwidth, rotate);
-
- if (color == 0) /* lineart, halftone, grayscale */
- {
- if (bits == 1) /* lineart, halftone */
- {
- xsane_save_ps_bw(outfile, imagefile, pixel_width, pixel_height);
- }
- else /* grayscale */
- {
- xsane_save_ps_gray(outfile, imagefile, pixel_width, pixel_height);
- }
- }
- else /* color */
- {
- xsane_save_ps_color(outfile, imagefile, pixel_width, pixel_height);
- }
-
- fprintf(outfile, "\n");
- fprintf(outfile, "showpage\n");
- fprintf(outfile, "end\n");
- fprintf(outfile, "origstate restore\n");
- fprintf(outfile, "\n");
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#ifdef HAVE_LIBJPEG
-void xsane_save_jpeg(FILE *outfile, FILE *imagefile,
- int color, int bits,
- int pixel_width, int pixel_height,
- int quality)
-{
- char *data;
- char buf[256];
- int x,y;
- int components = 1;
- struct jpeg_compress_struct cinfo;
- struct jpeg_error_mgr jerr;
- JSAMPROW row_pointer[1];
-
- cancel_save = 0;
-
- if (color)
- {
- components = 3;
- }
-
- data = malloc(pixel_width * components);
-
- if (!data)
- {
- snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM);
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- cinfo.err = jpeg_std_error(&jerr);
- jpeg_create_compress(&cinfo);
- jpeg_stdio_dest(&cinfo, outfile);
- cinfo.image_width = pixel_width;
- cinfo.image_height = pixel_height;
- cinfo.input_components = components;
- if (color)
- {
- cinfo.in_color_space = JCS_RGB;
- }
- else
- {
- cinfo.in_color_space = JCS_GRAYSCALE;
- }
- jpeg_set_defaults(&cinfo);
- jpeg_set_quality(&cinfo, quality, TRUE);
- jpeg_start_compress(&cinfo, TRUE);
-
- for (y=0; y<pixel_height; y++)
- {
- xsane_progress_update(xsane.progress, (float)y/pixel_height);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- if (bits == 1)
- {
- int byte = 0;
- int mask = 128;
-
- for (x = 0; x < pixel_width; x++)
- {
-
- if ( (x % 8) == 0)
- {
- byte = fgetc(imagefile);
- mask = 128;
- }
-
- if (byte & mask)
- {
- data[x] = 0;
- }
- else
- {
- data[x] = 255;
- }
- mask >>= 1;
- }
- }
- else
- {
- fread(data, components, pixel_width, imagefile);
- }
- row_pointer[0] = data;
- jpeg_write_scanlines(&cinfo, row_pointer, 1);
- if (cancel_save)
- {
- break;
- }
- }
-
- jpeg_finish_compress(&cinfo);
- free(data);
-}
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#ifdef HAVE_LIBTIFF
-void xsane_save_tiff(const char *outfilename, FILE *imagefile,
- int color, int bits,
- int pixel_width, int pixel_height,
- int compression, int quality)
-{
- TIFF *tiffile;
- char *data;
- char buf[256];
- int y, w;
- int components;
-
- cancel_save = 0;
-
- if (color)
- {
- components = 3;
- }
- else
- {
- components = 1;
- }
-
- tiffile = TIFFOpen(outfilename, "w");
- if (!tiffile)
- {
- snprintf(buf, sizeof(buf), "%s %s %s\n",ERR_DURING_SAVE, ERR_OPEN_FAILED, outfilename);
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- data = malloc(pixel_width * components);
-
- if (!data)
- {
- snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM);
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- TIFFSetField(tiffile, TIFFTAG_IMAGEWIDTH, pixel_width);
- TIFFSetField(tiffile, TIFFTAG_IMAGELENGTH, pixel_height);
- TIFFSetField(tiffile, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
- TIFFSetField(tiffile, TIFFTAG_BITSPERSAMPLE, bits);
- TIFFSetField(tiffile, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
- TIFFSetField(tiffile, TIFFTAG_COMPRESSION, compression);
- TIFFSetField(tiffile, TIFFTAG_SAMPLESPERPIXEL, components);
- TIFFSetField(tiffile, TIFFTAG_SOFTWARE, "xsane");
-#if 0
- TIFFSetField(tiffile, TIFFTAG_DATATIME, "0.0.1900,0:0:00");
- TIFFSetField(tiffile, TIFFTAG_XRESOLUTION, 100);
- TIFFSetField(tiffile, TIFFTAG_YRESOLUTION, 100);
-#endif
-
- if (compression == COMPRESSION_JPEG)
- {
- TIFFSetField(tiffile, TIFFTAG_JPEGQUALITY, quality);
- }
-
- if (color)
- {
- TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB);
- }
- else
- {
- if (bits == 1) /* lineart */
- {
- TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISWHITE);
- }
- else /* grayscale */
- {
- TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK);
- }
- }
-
- TIFFSetField(tiffile, TIFFTAG_ROWSPERSTRIP, TIFFDefaultStripSize(tiffile, -1));
-
- w = TIFFScanlineSize(tiffile);
-
- for (y = 0; y < pixel_height; y++)
- {
- xsane_progress_update(xsane.progress, (float) y / pixel_height);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- fread(data, 1, w, imagefile);
-
- TIFFWriteScanline(tiffile, data, y, 0);
-
- if (cancel_save)
- {
- break;
- }
- }
-
- TIFFClose(tiffile);
- free(data);
-}
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
-void xsane_save_png(FILE *outfile, FILE *imagefile,
- int color, int bits,
- int pixel_width, int pixel_height,
- int compression)
-{
- png_structp png_ptr;
- png_infop png_info_ptr;
- png_bytep row_ptr;
- png_color_8 sig_bit;
- char *data;
- char buf[256];
- int colortype, components, byte_width;
- int y;
-
- cancel_save = 0;
-
- png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0);
- if (!png_ptr)
- {
- snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBTIFF);
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- png_info_ptr = png_create_info_struct(png_ptr);
- if (!png_info_ptr)
- {
- snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBTIFF);
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- if (setjmp(png_ptr->jmpbuf))
- {
- snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG);
- xsane_back_gtk_error(buf, TRUE);
- png_destroy_write_struct(&png_ptr, (png_infopp) 0);
- return;
- }
-
- byte_width = pixel_width;
-
- if (color == 4) /* RGBA */
- {
- components = 4;
- colortype = PNG_COLOR_TYPE_RGB_ALPHA;
- }
- else if (color) /* RGB */
- {
- components = 3;
- colortype = PNG_COLOR_TYPE_RGB;
- }
- else /* gray or black/white */
- {
- components = 1;
- colortype = PNG_COLOR_TYPE_GRAY;
- }
-
- png_init_io(png_ptr, outfile);
- png_set_compression_level(png_ptr, compression);
- png_set_IHDR(png_ptr, png_info_ptr, pixel_width, pixel_height, bits,
- colortype, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
-
- if (color >=3)
- {
- sig_bit.red = bits;
- sig_bit.green = bits;
- sig_bit.blue = bits;
-
- if (color ==4)
- {
- sig_bit.alpha = bits;
- }
-
- }
- else
- {
- sig_bit.gray = bits;
-
- if (bits == 1)
- {
- byte_width = pixel_width/8;
- png_set_invert_mono(png_ptr);
- }
- }
-
- png_set_sBIT(png_ptr, png_info_ptr, &sig_bit);
- png_write_info(png_ptr, png_info_ptr);
- png_set_shift(png_ptr, &sig_bit);
-
- data = malloc(pixel_width * components);
-
- if (!data)
- {
- snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM);
- xsane_back_gtk_error(buf, TRUE);
- png_destroy_write_struct(&png_ptr, (png_infopp) 0);
- return;
- }
-
- for (y = 0; y < pixel_height; y++)
- {
- xsane_progress_update(xsane.progress, (float) y / pixel_height);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- fread(data, components, byte_width, imagefile);
-
- row_ptr = data;
- png_write_rows(png_ptr, &row_ptr, 1);
- if (cancel_save)
- {
- break;
- }
- }
-
- free(data);
- png_write_end(png_ptr, png_info_ptr);
- png_destroy_write_struct(&png_ptr, (png_infopp) 0);
-
-}
-#endif
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
-void xsane_save_png_16(FILE *outfile, FILE *imagefile,
- int color, int bits,
- int pixel_width, int pixel_height,
- int compression)
-{
- png_structp png_ptr;
- png_infop png_info_ptr;
- png_bytep row_ptr;
- png_color_8 sig_bit; /* should be 16, but then I get a warning about wrong type */
- char *data;
- char buf[256];
- int colortype, components;
- int x,y;
- guint16 val;
-
- cancel_save = 0;
-
- png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0);
- if (!png_ptr)
- {
- snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG);
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- png_info_ptr = png_create_info_struct(png_ptr);
- if (!png_info_ptr)
- {
- snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG);
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- if (setjmp(png_ptr->jmpbuf))
- {
- snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG);
- xsane_back_gtk_error(buf, TRUE);
- png_destroy_write_struct(&png_ptr, (png_infopp) 0);
- return;
- }
-
- if (color == 4) /* RGBA */
- {
- components = 4;
- colortype = PNG_COLOR_TYPE_RGB_ALPHA;
- }
- else if (color) /* RGB */
- {
- components = 3;
- colortype = PNG_COLOR_TYPE_RGB;
- }
- else /* gray or black/white */
- {
- components = 1;
- colortype = PNG_COLOR_TYPE_GRAY;
- }
-
- png_init_io(png_ptr, outfile);
- png_set_compression_level(png_ptr, compression);
- png_set_IHDR(png_ptr, png_info_ptr, pixel_width, pixel_height, 16,
- colortype, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
-
- sig_bit.red = bits;
- sig_bit.green = bits;
- sig_bit.blue = bits;
- sig_bit.alpha = bits;
- sig_bit.gray = bits;
-
- png_set_sBIT(png_ptr, png_info_ptr, &sig_bit);
- png_write_info(png_ptr, png_info_ptr);
- png_set_shift(png_ptr, &sig_bit);
- png_set_packing(png_ptr);
-
- data = malloc(pixel_width * components * 2);
-
- if (!data)
- {
- snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM);
- xsane_back_gtk_error(buf, TRUE);
- png_destroy_write_struct(&png_ptr, (png_infopp) 0);
- return;
- }
-
- for (y = 0; y < pixel_height; y++)
- {
- xsane_progress_update(xsane.progress, (float)y/pixel_height);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- for (x = 0; x < pixel_width * components; x++) /* this must be changed in dependance of endianess */
- {
- fread(&val, 2, 1, imagefile); /* get data in machine order */
- data[x*2+0] = val/256; /* write data in network order (MSB first) */
- data[x*2+1] = val & 255;
- }
-
- row_ptr = data;
- png_write_rows(png_ptr, &row_ptr, 1);
- if (cancel_save)
- {
- break;
- }
- }
-
- free(data);
- png_write_end(png_ptr, png_info_ptr);
- png_destroy_write_struct(&png_ptr, (png_infopp) 0);
-}
-#endif
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_save_pnm_16_gray(FILE *outfile, FILE *imagefile, int bits, int pixel_width, int pixel_height)
-{
- int x,y;
- guint16 val;
- int count = 0;
-
- cancel_save = 0;
-
- /* write pgm ascii > 8 bpp */
- fprintf(outfile, "P2\n# SANE data follows\n%d %d\n65535\n", pixel_width, pixel_height);
-
- for (y=0; y<pixel_height; y++)
- {
- for (x=0; x<pixel_width; x++)
- {
- fread(&val, 2, 1, imagefile); /* get data in machine order */
- fprintf(outfile, "%d ", val);
-
- if (++count >= 10)
- {
- fprintf(outfile, "\n");
- count = 0;
- }
- }
- fprintf(outfile, "\n");
- count = 0;
-
- xsane_progress_update(xsane.progress, (float)y/pixel_height);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- if (cancel_save)
- {
- break;
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_save_pnm_16_color(FILE *outfile, FILE *imagefile, int bits, int pixel_width, int pixel_height)
-{
- int x,y;
- guint16 val;
- int count = 0;
-
- cancel_save = 0;
-
- /* write ppm ascii > 8 bpp */
- fprintf(outfile, "P3\n# SANE data follows\n%d %d\n65535\n", pixel_width, pixel_height);
-
- for (y=0; y<pixel_height; y++)
- {
- for (x=0; x<pixel_width; x++)
- {
- fread(&val, 2, 1, imagefile); /* get data in machine order */
- fprintf(outfile, "%d ", val);
-
- fread(&val, 2, 1, imagefile);
- fprintf(outfile, "%d ", val);
-
- fread(&val, 2, 1, imagefile);
- fprintf(outfile, "%d ", val);
-
- if (++count >= 3)
- {
- fprintf(outfile, "\n");
- count = 0;
- }
- }
- fprintf(outfile, "\n");
- count = 0;
-
- xsane_progress_update(xsane.progress, (float)y/pixel_height);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- if (cancel_save)
- {
- break;
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_save_pnm_16(FILE *outfile, FILE *imagefile, int color, int bits, int pixel_width, int pixel_height)
-{
- if (color)
- {
- xsane_save_pnm_16_color(outfile, imagefile, bits, pixel_width, pixel_height);
- }
- else
- {
- xsane_save_pnm_16_gray(outfile, imagefile, bits, pixel_width, pixel_height);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/frontend/xsane-save.h b/frontend/xsane-save.h
deleted file mode 100644
index 7ac856c..0000000
--- a/frontend/xsane-save.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane-save.h
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_cancel_save();
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_convert_text_to_filename(char **filename);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-
-void xsane_increase_counter_in_filename(char *filename, int skip);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_save_ps(FILE *outfile, FILE *imagefile,
- int color, int bits,
- int pixel_width, int pixel_height,
- int left, int bottom,
- float width, float height,
- int paperwidth, int paperheight, int landscape);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_save_jpeg(FILE *outfile, FILE *imagefile,
- int color, int bits,
- int pixel_width, int pixel_height,
- int quality);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_save_tiff(const char *outfilename, FILE *imagefile,
- int color, int bits,
- int pixel_width, int pixel_height,
- int compression, int quality);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_save_png(FILE *outfile, FILE *imagefile,
- int color, int bits,
- int pixel_width, int pixel_height,
- int compression);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_save_png_16(FILE *outfile, FILE *imagefile,
- int color, int bits,
- int pixel_width, int pixel_height,
- int compression);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_save_pnm_16(FILE *outfile, FILE *imagefile,
- int color, int bits,
- int pixel_width, int pixel_height);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/frontend/xsane-scan.c b/frontend/xsane-scan.c
deleted file mode 100644
index d66ab28..0000000
--- a/frontend/xsane-scan.c
+++ /dev/null
@@ -1,2369 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane-scan.c
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#include "xsane.h"
-#include "xsane-back-gtk.h"
-#include "xsane-front-gtk.h"
-#include "xsane-preferences.h"
-#include "xsane-preview.h"
-#include "xsane-save.h"
-#include "xsane-text.h"
-#include "xsane-gamma.h"
-#include "xsane-setup.h"
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
-#include <png.h>
-#include <zlib.h>
-#endif
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#ifdef HAVE_LIBGIMP_GIMP_H
-
-#include <libgimp/gimp.h>
-
-static void xsane_gimp_query(void);
-static void xsane_gimp_run(char *name, int nparams, GParam * param, int *nreturn_vals, GParam ** return_vals);
-
-GPlugInInfo PLUG_IN_INFO =
-{
- NULL, /* init_proc */
- NULL, /* quit_proc */
- xsane_gimp_query, /* query_proc */
- xsane_gimp_run, /* run_proc */
-};
-
-#endif /* HAVE_LIBGIMP_GIMP_H */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* forward declarations: */
-
-static int xsane_generate_dummy_filename();
-#ifdef HAVE_LIBGIMP_GIMP_H
-static int xsane_decode_devname(const char *encoded_devname, int n, char *buf);
-static int xsane_encode_devname(const char *devname, int n, char *buf);
-void null_print_func(gchar *msg);
-static void xsane_gimp_advance(void);
-#endif
-static void xsane_read_image_data(gpointer data, gint source, GdkInputCondition cond);
-static RETSIGTYPE xsane_sigpipe_handler(int signal);
-static int xsane_test_multi_scan(void);
-void xsane_scan_done(SANE_Status status);
-void xsane_cancel(void);
-static void xsane_start_scan(void);
-void xsane_scan_dialog(GtkWidget * widget, gpointer call_data);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int xsane_generate_dummy_filename()
-{
- /* returns TRUE if file is a temporary file */
-
- if (xsane.dummy_filename)
- {
- free(xsane.dummy_filename);
- }
-
- if ( (xsane.xsane_mode == XSANE_COPY) || (xsane.xsane_mode == XSANE_FAX) || /* we have to do a conversion */
- ( (xsane.xsane_mode == XSANE_SCAN) && (xsane.xsane_output_format != XSANE_PNM) &&
- (xsane.xsane_output_format != XSANE_RAW16) && (xsane.xsane_output_format != XSANE_RGBA) ) )
- {
- char filename[PATH_MAX];
-
- xsane_back_gtk_make_path(sizeof(filename), filename, 0, 0, "conversion-", dialog->dev_name, ".ppm", XSANE_PATH_TMP);
- xsane.dummy_filename = strdup(filename);
- return TRUE;
- }
- else /* no conversion following, save directly to the selected filename */
- {
- xsane.dummy_filename = strdup(xsane.output_filename);
- return FALSE;
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#ifdef HAVE_LIBGIMP_GIMP_H
-static int xsane_decode_devname(const char *encoded_devname, int n, char *buf)
-{
- char *dst, *limit;
- const char *src;
- char ch, val;
-
- limit = buf + n;
- for (src = encoded_devname, dst = buf; *src; ++dst)
- {
- if (dst >= limit)
- {
- return -1;
- }
-
- ch = *src++;
- /* don't use the ctype.h macros here since we don't want to allow anything non-ASCII here... */
- if (ch != '-')
- {
- *dst = ch;
- }
- else /* decode */
- {
- ch = *src++;
- if (ch == '-')
- {
- *dst = ch;
- }
- else
- {
- if (ch >= 'a' && ch <= 'f')
- {
- val = (ch - 'a') + 10;
- }
- else
- {
- val = (ch - '0');
- }
- val <<= 4;
-
- ch = *src++;
- if (ch >= 'a' && ch <= 'f')
- {
- val |= (ch - 'a') + 10;
- }
- else
- {
- val |= (ch - '0');
- }
-
- *dst = val;
-
- ++src; /* simply skip terminating '-' for now... */
- }
- }
- }
-
- if (dst >= limit)
- {
- return -1;
- }
-
- *dst = '\0';
- return 0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int xsane_encode_devname(const char *devname, int n, char *buf)
-{
- static const char hexdigit[] = "0123456789abcdef";
- char *dst, *limit;
- const char *src;
- char ch;
-
- limit = buf + n;
- for (src = devname, dst = buf; *src; ++src)
- {
- if (dst >= limit)
- {
- return -1;
- }
-
- ch = *src;
- /* don't use the ctype.h macros here since we don't want to allow anything non-ASCII here... */
- if ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
- {
- *dst++ = ch;
- }
- else /* encode */
- {
- if (dst + 4 >= limit)
- {
- return -1;
- }
-
- *dst++ = '-';
- if (ch == '-')
- {
- *dst++ = '-';
- }
- else
- {
- *dst++ = hexdigit[(ch >> 4) & 0x0f];
- *dst++ = hexdigit[(ch >> 0) & 0x0f];
- *dst++ = '-';
- }
- }
- }
-
- if (dst >= limit)
- {
- return -1;
- }
-
- *dst = '\0';
- return 0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_gimp_query(void)
-{
- static GParamDef args[] =
- {
- {PARAM_INT32, "run_mode", "Interactive, non-interactive"},
- };
- static GParamDef *return_vals = NULL;
- static int nargs = sizeof(args) / sizeof(args[0]);
- static int nreturn_vals = 0;
- char mpath[1024];
- char name[1024];
- size_t len;
- int i, j;
-
- snprintf(name, sizeof(name), "%s", prog_name);
-#ifdef GIMP_CHECK_VERSION
-# if GIMP_CHECK_VERSION(1,1,9)
- snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_DIALOG);
-# else
- snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_DIALOG_OLD);
-# endif
-#else
- snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_DIALOG_OLD);
-#endif
- gimp_install_procedure(name,
- XSANE_GIMP_INSTALL_BLURB,
- XSANE_GIMP_INSTALL_HELP,
- XSANE_AUTHOR,
- XSANE_COPYRIGHT,
- XSANE_DATE,
- mpath,
- 0, /* "RGB, GRAY", */
- PROC_EXTENSION,
- nargs, nreturn_vals,
- args, return_vals);
-
- sane_init(&xsane.sane_backend_versioncode, (void *) xsane_authorization_callback);
- if (SANE_VERSION_MAJOR(xsane.sane_backend_versioncode) != SANE_V_MAJOR)
- {
- fprintf(stderr, "\n\n"
- "%s %s:\n"
- " %s\n"
- " %s %d\n"
- " %s %d\n"
- "%s\n\n",
- prog_name, ERR_ERROR,
- ERR_MAJOR_VERSION_NR_CONFLICT,
- ERR_XSANE_MAJOR_VERSION, SANE_V_MAJOR,
- ERR_BACKEND_MAJOR_VERSION, SANE_VERSION_MAJOR(xsane.sane_backend_versioncode),
- ERR_PROGRAM_ABORTED);
- return;
- }
-
- sane_get_devices(&devlist, SANE_FALSE);
-
- for (i = 0; devlist[i]; ++i)
- {
- snprintf(name, sizeof(name), "%s-", prog_name);
- if (xsane_encode_devname(devlist[i]->name, sizeof(name) - 6, name + 6) < 0)
- {
- continue; /* name too long... */
- }
-
-#ifdef GIMP_CHECK_VERSION
-# if GIMP_CHECK_VERSION(1,1,9)
- snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU);
-# else
- snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_OLD);
-# endif
-#else
- snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_OLD);
-#endif
- len = strlen(mpath);
- for (j = 0; devlist[i]->name[j]; ++j)
- {
- if (devlist[i]->name[j] == '/')
- mpath[len++] = '\'';
- else
- mpath[len++] = devlist[i]->name[j];
- }
- mpath[len++] = '\0';
-
- gimp_install_procedure(name,
- XSANE_GIMP_INSTALL_BLURB,
- XSANE_GIMP_INSTALL_HELP,
- XSANE_AUTHOR,
- XSANE_COPYRIGHT,
- XSANE_DATE,
- mpath,
- "RGB, GRAY",
- PROC_EXTENSION,
- nargs, nreturn_vals,
- args, return_vals);
- }
- sane_exit();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_gimp_run(char *name, int nparams, GParam * param, int *nreturn_vals, GParam ** return_vals)
-{
- static GParam values[2];
- GRunModeType run_mode;
- char devname[1024];
- char *args[2];
- int nargs;
-
- run_mode = param[0].data.d_int32;
- xsane.mode = XSANE_GIMP_EXTENSION;
-
- *nreturn_vals = 1;
- *return_vals = values;
-
- values[0].type = PARAM_STATUS;
- values[0].data.d_status = STATUS_CALLING_ERROR;
-
- nargs = 0;
- args[nargs++] = "xsane";
-
- seldev = -1;
- if (strncmp(name, "xsane-", 6) == 0)
- {
- if (xsane_decode_devname(name + 6, sizeof(devname), devname) < 0)
- {
- return; /* name too long */
- }
- args[nargs++] = devname;
- }
-
- switch (run_mode)
- {
- case RUN_INTERACTIVE:
- xsane_interface(nargs, args);
- values[0].data.d_status = STATUS_SUCCESS;
- break;
-
- case RUN_NONINTERACTIVE:
- /* Make sure all the arguments are there! */
- break;
-
- case RUN_WITH_LAST_VALS:
- /* Possibly retrieve data */
- break;
-
- default:
- break;
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void null_print_func(gchar *msg)
-{
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_gimp_advance(void)
-{
- if (++xsane.x >= xsane.param.pixels_per_line)
- {
- int tile_height = gimp_tile_height();
-
- xsane.x = 0;
- ++xsane.y;
- if (xsane.y % tile_height == 0)
- {
- gimp_pixel_rgn_set_rect(&xsane.region, xsane.tile, 0, xsane.y - tile_height, xsane.param.pixels_per_line, tile_height);
- if (xsane.param.format >= SANE_FRAME_RED && xsane.param.format <= SANE_FRAME_BLUE)
- {
- int height;
-
- xsane.tile_offset %= 3;
-
- if (!xsane.first_frame) /* get the data for the existing tile: */
- {
- height = tile_height;
-
- if (xsane.y + height >= xsane.param.lines)
- {
- height = xsane.param.lines - xsane.y;
- }
-
- gimp_pixel_rgn_get_rect(&xsane.region, xsane.tile, 0, xsane.y, xsane.param.pixels_per_line, height);
- }
- }
- else
- {
- xsane.tile_offset = 0;
- }
- }
- }
-}
-
-#endif /* HAVE_LIBGIMP_GIMP_H */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_read_image_data(gpointer data, gint source, GdkInputCondition cond)
-{
- SANE_Handle dev = xsane_back_gtk_dialog_get_device (dialog);
- SANE_Status status;
- SANE_Int len;
- int i;
- char buf[255];
-
- if ( (xsane.param.depth == 1) || (xsane.param.depth == 8) )
- {
- static unsigned char buf8[32768];
-
- while (1)
- {
- status = sane_read(dev, (SANE_Byte *) buf8, sizeof(buf8), &len);
- if (status == SANE_STATUS_EOF)
- {
- if (!xsane.param.last_frame)
- {
- xsane_start_scan();
- break; /* leave while loop */
- }
-
- xsane_scan_done(SANE_STATUS_EOF); /* image complete, stop scanning */
- return;
- }
-
- if (status != SANE_STATUS_GOOD)
- {
- xsane_scan_done(status); /* status = return of sane_read */
- snprintf(buf, sizeof(buf), "%s %s.", ERR_DURING_READ, XSANE_STRSTATUS(status));
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- if (!len)
- {
- break; /* out of data for now, leave while loop */
- }
-
- xsane.bytes_read += len;
- xsane_progress_update(xsane.progress, xsane.bytes_read / (gfloat) xsane.num_bytes);
-
- if (xsane.input_tag < 0)
- {
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- }
-
- switch (xsane.param.format)
- {
- case SANE_FRAME_GRAY:
- if (xsane.mode == XSANE_STANDALONE)
- {
- int i;
- char val;
-
- if ((!xsane.scanner_gamma_gray) && (xsane.param.depth > 1))
- {
- for (i=0; i < len; ++i)
- {
- val = xsane.gamma_data[(int) buf8[i]];
- fwrite(&val, 1, 1, xsane.out);
- }
- }
- else
- {
- fwrite(buf8, 1, len, xsane.out);
- }
- }
-#ifdef HAVE_LIBGIMP_GIMP_H
- else /* GIMP MODE GRAY 8 bit */
- {
- switch (xsane.param.depth)
- {
- case 1:
- for (i = 0; i < len; ++i)
- {
- u_char mask;
- int j;
-
- mask = buf8[i];
- for (j = 7; j >= 0; --j)
- {
- u_char gl = (mask & (1 << j)) ? 0x00 : 0xff;
- xsane.tile[xsane.tile_offset++] = gl;
- xsane_gimp_advance();
- if (xsane.x == 0)
- {
- break;
- }
- }
- }
- break;
-
- case 8:
- if (!xsane.scanner_gamma_gray)
- {
- for (i = 0; i < len; ++i)
- {
- xsane.tile[xsane.tile_offset++] = xsane.gamma_data[(int) buf8[i]];
- xsane_gimp_advance();
- }
- }
- else
- {
- for (i = 0; i < len; ++i)
- {
- xsane.tile[xsane.tile_offset++] = buf8[i];
- xsane_gimp_advance();
- }
- }
- break;
- }
- }
-#endif /* HAVE_LIBGIMP_GIMP_H */
- break;
-
- case SANE_FRAME_RGB:
- if (xsane.mode == XSANE_STANDALONE)
- {
- int i;
- char val;
-
- if (!xsane.scanner_gamma_color) /* gamma correction by xsane */
- {
- for (i=0; i < len; ++i)
- {
- if (dialog->pixelcolor == 0)
- {
- val = xsane.gamma_data_red[(int) buf8[i]];
- dialog->pixelcolor++;
- }
- else if (dialog->pixelcolor == 1)
- {
- val = xsane.gamma_data_green[(int) buf8[i]];
- dialog->pixelcolor++;
- }
- else
- {
- val = xsane.gamma_data_blue[(int) buf8[i]];
- dialog->pixelcolor = 0;
- }
- fwrite(&val, 1, 1, xsane.out);
- }
- }
- else /* gamma correction has been done by scanner */
- {
- fwrite(buf8, 1, len, xsane.out);
- }
- }
-#ifdef HAVE_LIBGIMP_GIMP_H
- else /* GIMP MODE RGB 8 bit */
- {
- switch (xsane.param.depth)
- {
- case 1:
- if (xsane.param.format == SANE_FRAME_RGB)
- {
- goto bad_depth;
- }
- for (i = 0; i < len; ++i)
- {
- u_char mask;
- int j;
-
- mask = buf8[i];
- for (j = 0; j < 8; ++j)
- {
- u_char gl = (mask & 1) ? 0xff : 0x00;
- mask >>= 1;
- xsane.tile[xsane.tile_offset++] = gl;
- xsane_gimp_advance();
- if (xsane.x == 0)
- break;
- }
- }
- break;
-
- case 8:
- if (!xsane.scanner_gamma_color) /* gamma correction by xsane */
- {
- for (i = 0; i < len; ++i)
- {
- if (xsane.tile_offset % 3 == 0)
- {
- xsane.tile[xsane.tile_offset++] = xsane.gamma_data_red[(int) buf8[i]];
- }
- else if (xsane.tile_offset % 3 == 1)
- {
- xsane.tile[xsane.tile_offset++] = xsane.gamma_data_green[(int) buf8[i]];
- }
- else
- {
- xsane.tile[xsane.tile_offset++] = xsane.gamma_data_blue[(int) buf8[i]];
- }
-
- if (xsane.tile_offset % 3 == 0)
- {
- xsane_gimp_advance();
- }
- }
- }
- else /* gamma correction by scanner */
- {
- for (i = 0; i < len; ++i)
- {
- xsane.tile[xsane.tile_offset++] = buf8[i];
- if (xsane.tile_offset % 3 == 0)
- {
- xsane_gimp_advance();
- }
- }
- }
- break;
-
- default:
- goto bad_depth;
- break;
- }
- }
-#endif /* HAVE_LIBGIMP_GIMP_H */
- break;
-
- case SANE_FRAME_RED:
- case SANE_FRAME_GREEN:
- case SANE_FRAME_BLUE:
- if (xsane.mode == XSANE_STANDALONE)
- {
- if (!xsane.scanner_gamma_color) /* gamma correction by xsane */
- {
- char val;
- SANE_Int *gamma;
-
- if (xsane.param.format == SANE_FRAME_RED)
- {
- gamma = xsane.gamma_data_red;
- }
- else if (xsane.param.format == SANE_FRAME_GREEN)
- {
- gamma = xsane.gamma_data_green;
- }
- else
- {
- gamma = xsane.gamma_data_blue;
- }
-
- for (i = 0; i < len; ++i)
- {
- val = gamma[(int) buf8[i]];
- fwrite(&val, 1, 1, xsane.out);
- fseek(xsane.out, 2, SEEK_CUR);
- }
- }
- else /* gamma correction by scanner */
- {
- for (i = 0; i < len; ++i)
- {
- fwrite(&buf8[i], 1, 1, xsane.out);
- fseek(xsane.out, 2, SEEK_CUR);
- }
- }
- }
-#ifdef HAVE_LIBGIMP_GIMP_H
- else /* GIMP MODE RED, GREEN, BLUE (3PASS) 8 bit */
- {
- switch (xsane.param.depth)
- {
- case 1:
- for (i = 0; i < len; ++i)
- {
- u_char mask;
- int j;
-
- mask = buf8[i];
- for (j = 0; j < 8; ++j)
- {
- u_char gl = (mask & 1) ? 0xff : 0x00;
- mask >>= 1;
- xsane.tile[xsane.tile_offset] = gl;
- xsane.tile_offset += 3;
- xsane_gimp_advance();
- if (xsane.x == 0)
- {
- break;
- }
- }
- }
- break;
-
- case 8:
- if (!xsane.scanner_gamma_color) /* gamma correction by xsane */
- {
- SANE_Int *gamma;
-
- if (xsane.param.format == SANE_FRAME_RED)
- {
- gamma = xsane.gamma_data_red;
- }
- else if (xsane.param.format == SANE_FRAME_GREEN)
- {
- gamma = xsane.gamma_data_green;
- }
- else
- {
- gamma = xsane.gamma_data_blue;
- }
-
- for (i = 0; i < len; ++i)
- {
- xsane.tile[xsane.tile_offset] = gamma[(int) buf8[i]];
- xsane.tile_offset += 3;
- xsane_gimp_advance();
- }
- }
- else /* gamma correction by scanner */
- {
- for (i = 0; i < len; ++i)
- {
- xsane.tile[xsane.tile_offset] = buf8[i];
- xsane.tile_offset += 3;
- xsane_gimp_advance();
- }
- }
- break;
-
- default:
- goto bad_depth;
- break;
- }
- }
-#endif /* HAVE_LIBGIMP_GIMP_H */
- break;
-
-#ifdef SUPPORT_RGBA
- case SANE_FRAME_RGBA: /* Scanning including Infrared channel */
- if (xsane.mode == XSANE_STANDALONE)
- {
- int i;
- char val;
-
- if (!xsane.scanner_gamma_color) /* gamma correction by xsane */
- {
- for (i=0; i < len; ++i)
- {
- if (dialog->pixelcolor == 0)
- {
- val = xsane.gamma_data_red[(int) buf8[i]];
- dialog->pixelcolor++;
- }
- else if (dialog->pixelcolor == 1)
- {
- val = xsane.gamma_data_green[(int) buf8[i]];
- dialog->pixelcolor++;
- }
- else if (dialog->pixelcolor == 2)
- {
- val = xsane.gamma_data_blue[(int) buf8[i]];
- dialog->pixelcolor++;
- }
- else
- {
- val = buf8[i]; /* no gamma table for infrared channel */
- dialog->pixelcolor = 0;
- }
- fwrite(&val, 1, 1, xsane.out);
- }
- }
- else /* gamma correction has been done by scanner */
- {
- fwrite(buf8, 1, len, xsane.out);
- }
- }
-#ifdef HAVE_LIBGIMP_GIMP_H
- else /* GIMP MODE RGBA 8 bit */
- {
- int i;
-
-
- switch (xsane.param.depth)
- {
- case 8:
- if (!xsane.scanner_gamma_color) /* gamma correction by xsane */
- {
- for (i=0; i < len; ++i)
- {
- if (xsane.tile_offset % 4 == 0)
- {
- xsane.tile[xsane.tile_offset++] = xsane.gamma_data_red[(int) buf8[i]];
- }
- else if (xsane.tile_offset % 4 == 1)
- {
- xsane.tile[xsane.tile_offset++] = xsane.gamma_data_green[(int) buf8[i]];
- }
- else if (xsane.tile_offset % 4 == 2)
- {
- xsane.tile[xsane.tile_offset++] = xsane.gamma_data_blue[(int) buf8[i]];
- }
- else
- {
- xsane.tile[xsane.tile_offset++] = buf8[i]; /* no gamma table for infrared channel */
- }
-
- if (xsane.tile_offset % 4 == 0)
- {
- xsane_gimp_advance();
- }
- }
- }
- else /* gamma correction has been done by scanner */
- {
- for (i = 0; i < len; ++i)
- {
- xsane.tile[xsane.tile_offset++] = buf8[i];
- if (xsane.tile_offset % 4 == 0)
- {
- xsane_gimp_advance();
- }
- }
- }
- break;
-
- default:
- goto bad_depth;
- break;
- }
- }
-#endif /* HAVE_LIBGIMP_GIMP_H */
- break;
-#endif
-
- default:
- xsane_scan_done(-1); /* -1 = error */
- fprintf(stderr, "xsane_read_image_data: %s %d\n", ERR_BAD_FRAME_FORMAT, xsane.param.format);
- return;
- break;
- }
- }
- }
- else if ( xsane.param.depth == 16 )
- {
- static guint16 buf16[32768];
- char buf[255];
- char last = 0;
- int offset = 0;
-
- while (1)
- {
- if (offset) /* if we have had an odd number of bytes */
- {
- buf16[0] = last;
- status = sane_read(dev, (SANE_Byte *) (buf16 + 1), sizeof(buf16) - 1, &len);
- if (len)
- {
- len++;
- }
- }
- else /* last read we had an even number of bytes */
- {
- status = sane_read(dev, (SANE_Byte *) buf16, sizeof(buf16), &len);
- }
-
- if (len % 2) /* odd number of bytes */
- {
- len--;
- last = buf16[len];
- offset = 1;
- }
- else /* even number of bytes */
- {
- offset = 0;
- }
-
- if (status == SANE_STATUS_EOF)
- {
- if (!xsane.param.last_frame)
- {
- xsane_start_scan();
- break; /* leave while loop */
- }
-
- xsane_scan_done(SANE_STATUS_EOF); /* image complete, stop scanning */
- return;
- }
-
- if (status != SANE_STATUS_GOOD)
- {
- xsane_scan_done(status); /* status = return of sane_read */
- snprintf(buf, sizeof(buf), "%s %s.", ERR_DURING_READ, XSANE_STRSTATUS(status));
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- if (!len) /* nothing read */
- {
- break; /* out of data for now, leave while loop */
- }
-
- xsane.bytes_read += len;
- xsane_progress_update(xsane.progress, xsane.bytes_read / (gfloat) xsane.num_bytes);
-
- if (xsane.input_tag < 0)
- {
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- }
-
- switch (xsane.param.format)
- {
- case SANE_FRAME_GRAY:
- if (xsane.mode == XSANE_STANDALONE)
- {
- int i;
- guint16 val;
-
- if (!xsane.scanner_gamma_gray) /* gamma correction by xsane */
- {
- for (i=0; i < len/2; ++i)
- {
- val = xsane.gamma_data[buf16[i]];
- fwrite(&val, 2, 1, xsane.out);
- }
- }
- else /* gamma correction by scanner */
- {
- fwrite(buf16, 2, len/2, xsane.out);
- }
- }
- break;
-
- case SANE_FRAME_RGB:
- if (xsane.mode == XSANE_STANDALONE)
- {
- int i;
- guint16 val;
-
- if (!xsane.scanner_gamma_color) /* gamma correction by xsane */
- {
- for (i=0; i < len/2; ++i)
- {
- if (dialog->pixelcolor == 0)
- {
- val = xsane.gamma_data_red[buf16[i]];
- dialog->pixelcolor++;
- }
- else if (dialog->pixelcolor == 1)
- {
- val = xsane.gamma_data_green[buf16[i]];
- dialog->pixelcolor++;
- }
- else
- {
- val = xsane.gamma_data_blue[buf16[i]];
- dialog->pixelcolor = 0;
- }
- fwrite(&val, 2, 1, xsane.out);
- }
- }
- else /* gamma correction by scanner */
- {
- fwrite(buf16, 2, len/2, xsane.out);
- }
- }
- break;
-
- case SANE_FRAME_RED:
- case SANE_FRAME_GREEN:
- case SANE_FRAME_BLUE:
- if (xsane.mode == XSANE_STANDALONE)
- {
- for (i = 0; i < len/2; ++i)
- {
- fwrite(buf16 + i*2, 2, 1, xsane.out);
- fseek(xsane.out, 4, SEEK_CUR);
- }
- }
- break;
-
-#ifdef SUPPORT_RGBA
- case SANE_FRAME_RGBA:
- if (xsane.mode == XSANE_STANDALONE)
- {
- int i;
- guint16 val;
-
- if (!xsane.scanner_gamma_color)
- {
- for (i=0; i < len/2; ++i)
- {
- if (dialog->pixelcolor == 0)
- {
- val = xsane.gamma_data_red[buf16[i]];
- dialog->pixelcolor++;
- }
- else if (dialog->pixelcolor == 1)
- {
- val = xsane.gamma_data_green[buf16[i]];
- dialog->pixelcolor++;
- }
- else if (dialog->pixelcolor == 2)
- {
- val = xsane.gamma_data_blue[buf16[i]];
- dialog->pixelcolor++;
- }
- else
- {
- val = buf16[i]; /* no gamma table for infrared channel */
- dialog->pixelcolor = 0;
- }
- fwrite(&val, 2, 1, xsane.out);
- }
- }
- else
- {
- fwrite(buf16, 2, len/2, xsane.out);
- }
- }
- break;
-#endif
-
- default:
- xsane_scan_done(-1); /* -1 = error */
- fprintf(stderr, "xsane_read_image_data: %s %d\n", ERR_BAD_FRAME_FORMAT, xsane.param.format);
- return;
- break;
- }
- }
- }
- else
- {
- xsane_scan_done(-1); /* -1 = error */
- snprintf(buf, sizeof(buf), "%s %d.", ERR_BAD_DEPTH, xsane.param.depth);
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- return;
-
- /* ---------------------- */
-
-#ifdef HAVE_LIBGIMP_GIMP_H
-bad_depth:
-
- xsane_scan_done(-1); /* -1 = error */
- snprintf(buf, sizeof(buf), "%s %d.", ERR_BAD_DEPTH, xsane.param.depth);
- xsane_back_gtk_error(buf, TRUE);
- return;
-#endif
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static RETSIGTYPE xsane_sigpipe_handler(int signal)
-/* this is to catch a broken pipe while writing to printercommand */
-{
- xsane_cancel_save(0);
- xsane.broken_pipe = 1;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int xsane_test_multi_scan(void)
-{
- char *set;
- SANE_Status status;
- const SANE_Option_Descriptor *opt;
-
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.scansource);
- if (opt)
- {
- if (SANE_OPTION_IS_ACTIVE(opt->cap))
- {
- if (opt->constraint_type == SANE_CONSTRAINT_STRING_LIST)
- {
- set = malloc(opt->size);
- status = sane_control_option(dialog->dev, dialog->well_known.scansource, SANE_ACTION_GET_VALUE, set, 0);
-
- if (status == SANE_STATUS_GOOD)
- {
- if (!strcmp(set, SANE_NAME_DOCUMENT_FEEDER))
- {
- return TRUE;
- }
- }
- free(set);
- }
- }
- }
-
-#if 0 /* this is planned for the next sane-standard */
- if (xsane.param.bitfield & XSANE_PARAM_STATUS_MORE_IMAGES)
- {
- return TRUE;
- }
-#endif
-
- return FALSE;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_scan_done(SANE_Status status)
-{
- if (xsane.input_tag >= 0)
- {
- gdk_input_remove(xsane.input_tag);
- xsane.input_tag = -1;
- }
-
- if (xsane.progress) /* remove progressbar */
- {
- xsane_progress_free(xsane.progress);
- xsane.progress = 0;
- }
-
- while(gtk_events_pending()) /* let gtk remove the progress bar and update everything that needs it */
- {
- gtk_main_iteration();
- }
-
-
- /* we have to free the gamma tables if we used software gamma correction */
-
- if (xsane.gamma_data)
- {
- free(xsane.gamma_data);
- xsane.gamma_data = 0;
- }
-
- if (xsane.gamma_data_red)
- {
- free(xsane.gamma_data_red);
- free(xsane.gamma_data_green);
- free(xsane.gamma_data_blue);
-
- xsane.gamma_data_red = 0;
- xsane.gamma_data_green = 0;
- xsane.gamma_data_blue = 0;
- }
-
- if (xsane.out) /* close file - this is dummy_file but if there is no conversion it is the wanted file */
- {
- fclose(xsane.out);
- xsane.out = 0;
- }
-
- if ( (status == SANE_STATUS_GOOD) || (status == SANE_STATUS_EOF) ) /* no error, do conversion etc. */
- {
- if (xsane.mode == XSANE_STANDALONE)
- {
- if ( (xsane.xsane_mode == XSANE_SCAN) && (xsane.xsane_output_format != XSANE_PNM) &&
- (xsane.xsane_output_format != XSANE_RAW16) && (xsane.xsane_output_format != XSANE_RGBA) )
- {
- FILE *outfile;
- FILE *infile;
- char buf[256];
-
- /* open progressbar */
- snprintf(buf, sizeof(buf), PROGRESS_SAVING);
- xsane.progress = xsane_progress_new(PROGRESS_CONVERTING_DATA, buf, (GtkSignalFunc) xsane_cancel_save, 0);
- xsane_progress_update(xsane.progress, 0);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- infile = fopen(xsane.dummy_filename, "r");
- if (infile != 0)
- {
- fseek(infile, xsane.header_size, SEEK_SET);
-
-#ifdef HAVE_LIBTIFF
- if (xsane.xsane_output_format == XSANE_TIFF) /* routines that want to have filename for saving */
- {
- if (xsane.param.depth != 1)
- {
- remove(xsane.output_filename);
- umask(preferences.image_umask); /* define image file permissions */
- xsane_save_tiff(xsane.output_filename, infile, xsane.xsane_color, xsane.param.depth, xsane.param.pixels_per_line,
- xsane.param.lines, preferences.tiff_compression_nr, preferences.jpeg_quality);
- umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
- }
- else
- {
- remove(xsane.output_filename);
- umask(preferences.image_umask); /* define image file permissions */
- xsane_save_tiff(xsane.output_filename, infile, xsane.xsane_color, xsane.param.depth, xsane.param.pixels_per_line,
- xsane.param.lines, preferences.tiff_compression_1_nr, preferences.jpeg_quality);
- umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
- }
- }
- else /* routines that want to have filedescriptor for saving */
-#endif
- {
- remove(xsane.output_filename);
- umask(preferences.image_umask); /* define image file permissions */
- outfile = fopen(xsane.output_filename, "w");
- umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
-
- if (outfile != 0)
- {
- switch(xsane.xsane_output_format)
- {
-#ifdef HAVE_LIBJPEG
- case XSANE_JPEG:
- xsane_save_jpeg(outfile, infile, xsane.xsane_color, xsane.param.depth, xsane.param.pixels_per_line,
- xsane.param.lines, preferences.jpeg_quality);
- break;
-#endif
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
- case XSANE_PNG:
- if (xsane.param.depth <= 8)
- {
- xsane_save_png(outfile, infile, xsane.xsane_color, xsane.param.depth, xsane.param.pixels_per_line,
- xsane.param.lines, preferences.png_compression);
- }
- else
- {
- xsane_save_png_16(outfile, infile, xsane.xsane_color, xsane.param.depth, xsane.param.pixels_per_line,
- xsane.param.lines, preferences.png_compression);
- }
- break;
-#endif
-#endif
-
- case XSANE_PNM16:
- xsane_save_pnm_16(outfile, infile, xsane.xsane_color, xsane.param.depth, xsane.param.pixels_per_line,
- xsane.param.lines);
- break;
-
- case XSANE_PS: /* save postscript, use original size */
- {
- float imagewidth = xsane.param.pixels_per_line/xsane.resolution_x; /* width in inch */
- float imageheight = xsane.param.lines/xsane.resolution_y; /* height in inch */
-
- if (preferences.psrotate) /* rotate: landscape */
- {
- xsane_save_ps(outfile, infile,
- xsane.xsane_color /* gray, color */,
- xsane.param.depth /* bits */,
- xsane.param.pixels_per_line, xsane.param.lines, /* pixel_width, pixel_height */
- (preferences.printer[preferences.printernr]->bottomoffset +
- preferences.printer[preferences.printernr]->height) * 36.0/MM_PER_INCH - imagewidth * 36.0, /* left edge */
- (preferences.printer[preferences.printernr]->leftoffset +
- preferences.printer[preferences.printernr]->width) * 36.0/MM_PER_INCH - imageheight * 36.0, /* bottom edge */
- imagewidth, imageheight,
- (preferences.printer[preferences.printernr]->leftoffset +
- preferences.printer[preferences.printernr]->width ) * 72.0/MM_PER_INCH, /* paperwidth */
- (preferences.printer[preferences.printernr]->bottomoffset +
- preferences.printer[preferences.printernr]->height) * 72.0/MM_PER_INCH, /* paperheight */
- 1 /* landscape */);
- }
- else /* do not rotate: portrait */
- {
- xsane_save_ps(outfile, infile,
- xsane.xsane_color /* gray, color */,
- xsane.param.depth /* bits */,
- xsane.param.pixels_per_line, xsane.param.lines, /* pixel_width, pixel_height */
- (preferences.printer[preferences.printernr]->leftoffset +
- preferences.printer[preferences.printernr]->width) * 36.0/MM_PER_INCH - imagewidth * 36.0,
- (preferences.printer[preferences.printernr]->bottomoffset +
- preferences.printer[preferences.printernr]->height) * 36.0/MM_PER_INCH - imageheight * 36.0,
- imagewidth, imageheight,
- (preferences.printer[preferences.printernr]->leftoffset +
- preferences.printer[preferences.printernr]->width ) * 72.0/MM_PER_INCH, /* paperwidth */
- (preferences.printer[preferences.printernr]->bottomoffset +
- preferences.printer[preferences.printernr]->height) * 72.0/MM_PER_INCH, /* paperheight */
- 0 /* portrait */);
- }
- }
- break;
-
-
- default:
- snprintf(buf, sizeof(buf),"%s", ERR_UNKNOWN_SAVING_FORMAT);
- xsane_back_gtk_error(buf, TRUE);
- break;
- }
- fclose(outfile);
- }
- else
- {
- char buf[256];
-
- snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.output_filename, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- }
- }
- fclose(infile);
- remove(xsane.dummy_filename);
- }
- else
- {
- char buf[256];
- snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.output_filename, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- }
- xsane_progress_free(xsane.progress);
- xsane.progress = 0;
-
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- }
- else if (xsane.xsane_mode == XSANE_COPY)
- {
- FILE *outfile;
- FILE *infile;
- char buf[256];
-
- xsane_update_int(xsane.copy_number_entry, &xsane.copy_number); /* get number of copies */
- if (xsane.copy_number < 1)
- {
- xsane.copy_number = 1;
- }
-
- /* open progressbar */
- snprintf(buf, sizeof(buf), PROGRESS_CONVERTING_PS);
- xsane.progress = xsane_progress_new(PROGRESS_CONVERTING_DATA, buf, (GtkSignalFunc) xsane_cancel_save, 0);
- xsane_progress_update(xsane.progress, 0);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- xsane.broken_pipe = 0;
- infile = fopen(xsane.dummy_filename, "r");
-
- snprintf(buf, sizeof(buf), "%s %s%d", preferences.printer[preferences.printernr]->command,
- preferences.printer[preferences.printernr]->copy_number_option,
- xsane.copy_number);
- outfile = popen(buf, "w");
-/* outfile = popen(preferences.printer[preferences.printernr]->command, "w"); */
- if ((outfile != 0) && (infile != 0)) /* copy mode, use zoom size */
- {
- struct SIGACTION act;
- float imagewidth = xsane.param.pixels_per_line/(float)preferences.printer[preferences.printernr]->resolution; /* width in inch */
- float imageheight = xsane.param.lines/(float)preferences.printer[preferences.printernr]->resolution; /* height in inch */
-
- memset (&act, 0, sizeof (act)); /* define broken pipe handler */
- act.sa_handler = xsane_sigpipe_handler;
- sigaction (SIGPIPE, &act, 0);
-
-
- fseek(infile, xsane.header_size, SEEK_SET);
-
- if (preferences.psrotate) /* rotate: landscape */
- {
- xsane_save_ps(outfile, infile,
- xsane.xsane_color /* gray, color */,
- xsane.param.depth /* bits */,
- xsane.param.pixels_per_line, xsane.param.lines, /* pixel_width, pixel_height */
- (preferences.printer[preferences.printernr]->bottomoffset +
- preferences.printer[preferences.printernr]->height) * 36.0/MM_PER_INCH - imagewidth * 36.0, /* left edge */
- (preferences.printer[preferences.printernr]->leftoffset +
- preferences.printer[preferences.printernr]->width) * 36.0/MM_PER_INCH - imageheight * 36.0, /* bottom edge */
- imagewidth, imageheight,
- (preferences.printer[preferences.printernr]->leftoffset +
- preferences.printer[preferences.printernr]->width ) * 72.0/MM_PER_INCH, /* paperwidth */
- (preferences.printer[preferences.printernr]->bottomoffset +
- preferences.printer[preferences.printernr]->height) * 72.0/MM_PER_INCH, /* paperheight */
- 1 /* landscape */);
- }
- else /* do not rotate: portrait */
- {
- xsane_save_ps(outfile, infile,
- xsane.xsane_color /* gray, color */,
- xsane.param.depth /* bits */,
- xsane.param.pixels_per_line, xsane.param.lines, /* pixel_width, pixel_height */
- (preferences.printer[preferences.printernr]->leftoffset +
- preferences.printer[preferences.printernr]->width) * 36.0/MM_PER_INCH - imagewidth * 36.0, /* left edge */
- (preferences.printer[preferences.printernr]->bottomoffset +
- preferences.printer[preferences.printernr]->height) * 36.0/MM_PER_INCH - imageheight * 36.0, /* bottom edge */
- imagewidth, imageheight,
- (preferences.printer[preferences.printernr]->leftoffset +
- preferences.printer[preferences.printernr]->width ) * 72.0/MM_PER_INCH, /* paperwidth */
- (preferences.printer[preferences.printernr]->bottomoffset +
- preferences.printer[preferences.printernr]->height) * 72.0/MM_PER_INCH, /* paperheight */
- 0 /* portrait */);
- }
- }
- else
- {
- char buf[256];
-
- if (!infile)
- {
- snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.output_filename, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- }
- else if (!outfile)
- {
- xsane_back_gtk_error(ERR_FAILED_PRINTER_PIPE, TRUE);
- }
- }
-
- if (xsane.broken_pipe)
- {
- snprintf(buf, sizeof(buf), "%s \"%s\"", ERR_FAILED_EXEC_PRINTER_CMD, preferences.printer[preferences.printernr]->command);
- xsane_back_gtk_error(buf, TRUE);
- }
-
- xsane_progress_free(xsane.progress);
- xsane.progress = 0;
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- if (infile)
- {
- fclose(infile);
- remove(xsane.dummy_filename);
- }
-
- if (outfile)
- {
- pclose(outfile);
- }
- }
- else if (xsane.xsane_mode == XSANE_FAX)
- {
- FILE *outfile;
- FILE *infile;
- char buf[256];
-
- /* open progressbar */
- snprintf(buf, sizeof(buf), PROGRESS_SAVING_FAX);
- xsane.progress = xsane_progress_new(PROGRESS_CONVERTING_DATA, buf, (GtkSignalFunc) xsane_cancel_save, 0);
- xsane_progress_update(xsane.progress, 0);
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- infile = fopen(xsane.dummy_filename, "r");
- if (infile != 0)
- {
- fseek(infile, xsane.header_size, SEEK_SET);
-
- umask(preferences.image_umask); /* define image file permissions */
- outfile = fopen(xsane.fax_filename, "w");
- umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
- if (outfile != 0)
- {
- float imagewidth, imageheight;
-
- imagewidth = xsane.param.pixels_per_line/xsane.resolution_x; /* width in inch */
- imageheight = xsane.param.lines/xsane.resolution_y; /* height in inch */
-
-/* disabled ( 0 * ...) in the moment */
- if (0 * preferences.psrotate) /* rotate: landscape */
- {
- xsane_save_ps(outfile, infile,
- xsane.xsane_color /* gray, color */,
- xsane.param.depth /* bits */,
- xsane.param.pixels_per_line, xsane.param.lines, /* pixel_width, pixel_height */
- (preferences.fax_bottomoffset + preferences.fax_height) * 36.0/MM_PER_INCH - imagewidth * 36.0, /* left edge */
- (preferences.fax_leftoffset + preferences.fax_width) * 36.0/MM_PER_INCH - imageheight * 36.0, /* bottom edge */
- imagewidth, imageheight,
- (preferences.fax_leftoffset + preferences.fax_width ) * 72.0/MM_PER_INCH, /* paperwidth */
- (preferences.fax_bottomoffset + preferences.fax_height) * 72.0/MM_PER_INCH, /* paperheight */
- 1 /* landscape */);
- }
- else /* do not rotate: portrait */
- {
- xsane_save_ps(outfile, infile,
- xsane.xsane_color /* gray, color */,
- xsane.param.depth /* bits */,
- xsane.param.pixels_per_line, xsane.param.lines, /* pixel_width, pixel_height */
- (preferences.fax_leftoffset + preferences.fax_width) * 36.0/MM_PER_INCH - imagewidth * 36.0,
- (preferences.fax_bottomoffset + preferences.fax_height) * 36.0/MM_PER_INCH - imageheight * 36.0,
- imagewidth, imageheight,
- (preferences.fax_leftoffset + preferences.fax_width ) * 72.0/MM_PER_INCH, /* paperwidth */
- (preferences.fax_bottomoffset + preferences.fax_height) * 72.0/MM_PER_INCH, /* paperheight */
- 0 /* portrait */);
- }
- fclose(outfile);
- }
- else
- {
- char buf[256];
-
- snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.fax_filename, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- }
-
- fclose(infile);
- remove(xsane.dummy_filename);
- }
- else
- {
- char buf[256];
- snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.fax_filename, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- }
- xsane_progress_free(xsane.progress);
- xsane.progress = 0;
-
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- }
- }
-#ifdef HAVE_LIBGIMP_GIMP_H
- else
- {
- int remaining;
-
- /* GIMP mode */
- if (xsane.y > xsane.param.lines)
- {
- xsane.y = xsane.param.lines;
- }
-
- remaining = xsane.y % gimp_tile_height();
- if (remaining)
- {
- gimp_pixel_rgn_set_rect(&xsane.region, xsane.tile, 0, xsane.y - remaining, xsane.param.pixels_per_line, remaining);
- }
- gimp_drawable_flush(xsane.drawable);
- gimp_display_new(xsane.image_ID);
- gimp_drawable_detach(xsane.drawable);
- free(xsane.tile);
- xsane.tile = 0;
- }
-#endif /* HAVE_LIBGIMP_GIMP_H */
-
- xsane.header_size = 0;
-
- if ( (preferences.increase_filename_counter) && (xsane.xsane_mode == XSANE_SCAN) && (xsane.mode == XSANE_STANDALONE) )
- {
- xsane_increase_counter_in_filename(preferences.filename, preferences.skip_existing_numbers);
- gtk_entry_set_text(GTK_ENTRY(xsane.outputfilename_entry), (char *) preferences.filename);
- }
- else if (xsane.xsane_mode == XSANE_FAX)
- {
- GtkWidget *list_item;
- char *page;
- char *extension;
-
- page = strdup(strrchr(xsane.fax_filename,'/')+1);
- extension = strrchr(page, '.');
- if (extension)
- {
- *extension = 0;
- }
- list_item = gtk_list_item_new_with_label(page);
- gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page));
- gtk_container_add(GTK_CONTAINER(xsane.fax_list), list_item);
- gtk_widget_show(list_item);
-
- xsane_increase_counter_in_filename(xsane.fax_filename, preferences.skip_existing_numbers);
- xsane_fax_project_save();
- free(page);
- }
- }
- else /* an error occured, remove the dummy_file */
- {
- if (xsane.dummy_filename) /* remove corrupt file */
- {
- remove(xsane.dummy_filename);
- }
- }
-
- free(xsane.dummy_filename); /* no dummy_filename, needed if an error occurs */
- xsane.dummy_filename = 0;
-
- if (xsane.output_filename)
- {
- free(xsane.output_filename);
- xsane.output_filename = 0;
- }
-
- if ( ( (status == SANE_STATUS_GOOD) || (status == SANE_STATUS_EOF) ) && (xsane_test_multi_scan()) )
- {
- /* multi scan (eg ADF): scan again */
- /* stopped when: */
- /* a) xsane_test_multi_scan returns false */
- /* b) sane_start returns SANE_STATUS_NO_DOCS */
- /* c) an error occurs */
-
- gtk_signal_emit_by_name(xsane.start_button, "clicked"); /* press START button */
- }
- else /* last scan: update histogram */
- {
- xsane_set_sensitivity(TRUE); /* reactivate buttons etc */
- sane_cancel(xsane_back_gtk_dialog_get_device(dialog)); /* stop scanning */
- xsane_update_histogram();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_cancel(void)
-{
- sane_cancel(xsane_back_gtk_dialog_get_device(dialog));
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_start_scan(void)
-{
- SANE_Status status;
- SANE_Handle dev = xsane_back_gtk_dialog_get_device(dialog);
- const char *frame_type = 0;
- char buf[256];
- int fd;
-
- xsane_clear_histogram(&xsane.histogram_raw);
- xsane_clear_histogram(&xsane.histogram_enh);
- xsane_set_sensitivity(FALSE);
-
-#ifdef HAVE_LIBGIMP_GIMP_H
- if (xsane.mode == XSANE_GIMP_EXTENSION && xsane.tile)
- {
- int height, remaining;
-
- /* write the last tile of the frame to the GIMP region: */
-
- if (xsane.y > xsane.param.lines) /* sanity check */
- {
- xsane.y = xsane.param.lines;
- }
-
- remaining = xsane.y % gimp_tile_height();
- if (remaining)
- {
- gimp_pixel_rgn_set_rect(&xsane.region, xsane.tile, 0, xsane.y - remaining, xsane.param.pixels_per_line, remaining);
- }
-
- /* initialize the tile with the first tile of the GIMP region: */
-
- height = gimp_tile_height();
- if (height >= xsane.param.lines)
- {
- height = xsane.param.lines;
- }
- gimp_pixel_rgn_get_rect(&xsane.region, xsane.tile, 0, 0, xsane.param.pixels_per_line, height);
- }
-#endif /* HAVE_LIBGIMP_GIMP_H */
-
- xsane.x = xsane.y = 0;
-
- status = sane_start(dev);
-
- if (status == SANE_STATUS_NO_DOCS) /* ADF out of docs */
- {
- xsane_scan_done(status); /* ok, stop multi image scan */
- return;
- }
- else if (status != SANE_STATUS_GOOD) /* error */
- {
- xsane_scan_done(status);
- snprintf(buf, sizeof(buf), "%s %s", ERR_FAILED_START_SCANNER, XSANE_STRSTATUS(status));
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- status = sane_get_parameters(dev, &xsane.param);
- if (status != SANE_STATUS_GOOD)
- {
- xsane_scan_done(status);
- snprintf(buf, sizeof(buf), "%s %s", ERR_FAILED_GET_PARAMS, XSANE_STRSTATUS(status));
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- xsane.num_bytes = xsane.param.lines * xsane.param.bytes_per_line;
- xsane.bytes_read = 0;
-
- switch (xsane.param.format)
- {
- case SANE_FRAME_RGB: frame_type = "RGB"; break;
- case SANE_FRAME_RED: frame_type = "red"; break;
- case SANE_FRAME_GREEN: frame_type = "green"; break;
- case SANE_FRAME_BLUE: frame_type = "blue"; break;
- case SANE_FRAME_GRAY: frame_type = "gray"; break;
-#ifdef SUPPORT_RGBA
- case SANE_FRAME_RGBA: frame_type = "RGBA"; break;
-#endif
- default: frame_type = "unknown"; break;
- }
-
- if (xsane.mode == XSANE_STANDALONE)
- { /* We are running in standalone mode */
- if (xsane_generate_dummy_filename()) /* create filename the scanned data is saved to */
- {
- /* temporary file */
- umask(0177); /* creare temporary file with "-rw-------" permissions */
- }
- else
- {
- /* no temporary file */
- umask(preferences.image_umask); /* define image file permissions */
- }
-
- if (!xsane.header_size) /* first pass of multi pass scan */
- {
- remove(xsane.dummy_filename); /* remove existing file */
- xsane.out = fopen(xsane.dummy_filename, "w");
- umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
-
- if (!xsane.out) /* error while opening the dummy_file for writing */
- {
- xsane_scan_done(-1); /* -1 = error */
- snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.output_filename, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- switch (xsane.param.format)
- {
- case SANE_FRAME_RGB:
- case SANE_FRAME_RED:
- case SANE_FRAME_GREEN:
- case SANE_FRAME_BLUE:
- switch (xsane.param.depth)
- {
- case 8: /* color 8 bit mode, write ppm header */
- fprintf(xsane.out, "P6\n# SANE data follows\n%d %d\n255\n", xsane.param.pixels_per_line, xsane.param.lines);
- break;
-
- default: /* color, but not 8 bit mode, write as raw data because this is not defined in pnm */
- fprintf(xsane.out, "SANE_RGB_RAW\n%d %d\n65535\n", xsane.param.pixels_per_line, xsane.param.lines);
- break;
- }
- break;
-
- case SANE_FRAME_GRAY:
- switch (xsane.param.depth)
- {
- case 1: /* 1 bit lineart mode, write pbm header */
- fprintf(xsane.out, "P4\n# SANE data follows\n%d %d\n", xsane.param.pixels_per_line, xsane.param.lines);
- break;
-
- case 8: /* 8 bit grayscale mode, write pgm header */
- fprintf(xsane.out, "P5\n# SANE data follows\n%d %d\n255\n", xsane.param.pixels_per_line, xsane.param.lines);
- break;
-
- default: /* grayscale mode but not 1 or 8 bit, write as raw data because this is not defined in pnm */
- fprintf(xsane.out, "SANE_GRAYSCALE_RAW\n%d %d\n65535\n", xsane.param.pixels_per_line, xsane.param.lines);
- break;
- }
- break;
-
-#ifdef SUPPORT_RGBA
- case SANE_FRAME_RGBA:
- switch (xsane.param.depth)
- {
- case 8: /* 8 bit RGBA mode */
- fprintf(xsane.out, "SANE_RGBA\n%d %d\n255\n", xsane.param.pixels_per_line, xsane.param.lines);
- break;
-
- default: /* 16 bit RGBA mode */
- fprintf(xsane.out, "SANE_RGBA\n%d %d\n65535\n", xsane.param.pixels_per_line, xsane.param.lines);
- break;
- }
- break;
-#endif
-
- default:
- /* unknown file format, do not write header */
- break;
- }
- fflush(xsane.out);
- xsane.header_size = ftell(xsane.out);
- }
-
- if (xsane.param.format >= SANE_FRAME_RED && xsane.param.format <= SANE_FRAME_BLUE)
- {
- fseek(xsane.out, xsane.header_size + xsane.param.format - SANE_FRAME_RED, SEEK_SET);
- }
-
- if (xsane.xsane_mode == XSANE_SCAN)
- {
- snprintf(buf, sizeof(buf), PROGRESS_RECEIVING_SCAN, _(frame_type), xsane.output_filename);
- }
- else if (xsane.xsane_mode == XSANE_COPY)
- {
- snprintf(buf, sizeof(buf), PROGRESS_RECEIVING_COPY, _(frame_type));
- }
- else if (xsane.xsane_mode == XSANE_FAX)
- {
- snprintf(buf, sizeof(buf), PROGRESS_RECEIVING_FAX, _(frame_type));
- }
- }
-#ifdef HAVE_LIBGIMP_GIMP_H
- else
- {
- size_t tile_size;
-
- /* We are running under the GIMP */
-
- xsane.tile_offset = 0;
- tile_size = xsane.param.pixels_per_line * gimp_tile_height();
-
- switch(xsane.param.format)
- {
- case SANE_FRAME_RGB:
- case SANE_FRAME_RED:
- case SANE_FRAME_BLUE:
- case SANE_FRAME_GREEN:
- tile_size *= 3; /* 24 bits/pixel RGB */
- break;
-#ifdef SUPPORT_RGBA
- case SANE_FRAME_RGBA:
- tile_size *= 4; /* 32 bits/pixel RGBA */
- break;
-#endif
- default:
- break;
- }
-
- if (xsane.tile)
- {
- xsane.first_frame = 0;
- }
- else
- {
- GImageType image_type = RGB;
- GDrawableType drawable_type = RGB_IMAGE;
- gint32 layer_ID;
-
- if (xsane.param.format == SANE_FRAME_GRAY)
- {
- image_type = GRAY;
- drawable_type = GRAY_IMAGE;
- }
-#ifdef SUPPORT_RGBA
- else if (xsane.param.format == SANE_FRAME_RGBA)
- {
- image_type = RGB;
- drawable_type = RGBA_IMAGE; /* interpret infrared as alpha */
- }
-#endif
-
-
- xsane.image_ID = gimp_image_new(xsane.param.pixels_per_line, xsane.param.lines, image_type);
-
-/* the following is supported since gimp-1.1.? */
-#ifdef GIMP_HAVE_RESOLUTION_INFO
- if (xsane.resolution_x > 0)
- {
- gimp_image_set_resolution(xsane.image_ID, xsane.resolution_x ,xsane.resolution_y);
- }
-/* gimp_image_set_unit(xsane.image_ID, unit?); */
-#endif
-
- layer_ID = gimp_layer_new(xsane.image_ID, "Background",
- xsane.param.pixels_per_line,
- xsane.param.lines,
- drawable_type, 100, NORMAL_MODE);
- gimp_image_add_layer(xsane.image_ID, layer_ID, 0);
-
- xsane.drawable = gimp_drawable_get(layer_ID);
- gimp_pixel_rgn_init(&xsane.region, xsane.drawable, 0, 0,
- xsane.drawable->width,
- xsane.drawable->height, TRUE, FALSE);
- xsane.tile = g_new(guchar, tile_size);
- xsane.first_frame = 1;
- }
-
- if (xsane.param.format >= SANE_FRAME_RED && xsane.param.format <= SANE_FRAME_BLUE)
- {
- xsane.tile_offset = xsane.param.format - SANE_FRAME_RED;
- }
-
- snprintf(buf, sizeof(buf), PROGRESS_RECEIVING_GIMP, _(frame_type));
- }
-#endif /* HAVE_LIBGIMP_GIMP_H */
-
- dialog->pixelcolor = 0;
-
- if (xsane.progress)
- {
- xsane_progress_free(xsane.progress);
- }
- xsane.progress = xsane_progress_new(PROGRESS_SCANNING, buf, (GtkSignalFunc) xsane_cancel, 0);
-
- xsane.input_tag = -1;
-
- if (sane_set_io_mode(dev, SANE_TRUE) == SANE_STATUS_GOOD && sane_get_select_fd(dev, &fd) == SANE_STATUS_GOOD)
- {
- xsane.input_tag = gdk_input_add(fd, GDK_INPUT_READ, xsane_read_image_data, 0);
- }
- else
- {
- xsane_read_image_data(0, -1, GDK_INPUT_READ);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* Invoked when the scan button is pressed */
-/* or by scan_done if automatic document feeder is selected */
-void xsane_scan_dialog(GtkWidget * widget, gpointer call_data)
-{
- char buf[256];
-
- sane_get_parameters(dialog->dev, &xsane.param); /* update xsane.param */
-
- if (xsane.output_filename)
- {
- free(xsane.output_filename);
- xsane.output_filename = 0;
- }
-
- if (xsane.filetype)
- {
- char buffer[256];
-
- snprintf(buffer, sizeof(buffer), "%s%s", preferences.filename, xsane.filetype);
- xsane.output_filename = strdup(buffer);
- }
- else
- {
- xsane.output_filename = strdup(preferences.filename);
- }
-
- if (xsane.mode == XSANE_STANDALONE) /* We are running in standalone mode */
- {
- char *extension;
-
- if ( (xsane.xsane_mode == XSANE_SCAN) && (preferences.overwrite_warning) ) /* test if filename already used */
- {
- FILE *testfile;
-
- testfile = fopen(xsane.output_filename, "r");
- if (testfile) /* filename used: skip */
- {
- char buf[256];
-
- fclose(testfile);
- snprintf(buf, sizeof(buf), "File %s already exists\n", xsane.output_filename);
- if (xsane_back_gtk_decision(ERR_HEADER_WARNING, (gchar **) warning_xpm, buf, BUTTON_OVERWRITE, BUTTON_CANCEL, TRUE /* wait */) == FALSE)
- {
- return;
- }
- }
- }
-
-
- extension = strrchr(xsane.output_filename, '.');
- if (extension)
- {
- extension++; /* skip "." */
- }
-
- xsane.xsane_output_format = XSANE_UNKNOWN;
-
- if (xsane.param.depth <= 8)
- {
- if (extension)
- {
- if ( (!strcasecmp(extension, "pnm")) || (!strcasecmp(extension, "ppm")) ||
- (!strcasecmp(extension, "pgm")) || (!strcasecmp(extension, "pbm")) )
- {
- xsane.xsane_output_format = XSANE_PNM;
- }
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
- else if (!strcasecmp(extension, "png"))
- {
- xsane.xsane_output_format = XSANE_PNG;
- }
-#endif
-#endif
-#ifdef HAVE_LIBJPEG
- else if ( (!strcasecmp(extension, "jpg")) || (!strcasecmp(extension, "jpeg")) )
- {
- xsane.xsane_output_format = XSANE_JPEG;
- }
-#endif
- else if (!strcasecmp(extension, "ps"))
- {
- xsane.xsane_output_format = XSANE_PS;
- }
-#ifdef HAVE_LIBTIFF
- else if ( (!strcasecmp(extension, "tif")) || (!strcasecmp(extension, "tiff")) )
- {
- xsane.xsane_output_format = XSANE_TIFF;
- }
-#endif
-#ifdef SUPPORT_RGBA
- else if (!strcasecmp(extension, "rgba"))
- {
- xsane.xsane_output_format = XSANE_RGBA;
- }
-#endif
- }
- }
- else /* depth >8 bpp */
- {
- if (extension)
- {
- if (!strcasecmp(extension, "raw"))
- {
- xsane.xsane_output_format = XSANE_RAW16;
- }
- else if ( (!strcasecmp(extension, "pnm")) || (!strcasecmp(extension, "ppm")) ||
- (!strcasecmp(extension, "pgm")) || (!strcasecmp(extension, "pbm")) )
- {
- xsane.xsane_output_format = XSANE_PNM16;
- }
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
- else if (!strcasecmp(extension, "png"))
- {
- xsane.xsane_output_format = XSANE_PNG;
- }
-#endif
-#endif
-#ifdef SUPPORT_RGBA
- else if (!strcasecmp(extension, "rgba"))
- {
- xsane.xsane_output_format = XSANE_RGBA;
- }
-#endif
- }
- }
-
- if (xsane.xsane_mode == XSANE_SCAN)
- {
- if (xsane.xsane_output_format == XSANE_UNKNOWN)
- {
- if (extension)
- {
- snprintf(buf, sizeof(buf), "Unsupported %d-bit output format: %s", xsane.param.depth, extension);
- }
- else
- {
- snprintf(buf, sizeof(buf), "%s", ERR_NO_OUTPUT_FORMAT);
- }
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-#ifdef SUPPORT_RGBA
- else if ((xsane.xsane_output_format == XSANE_RGBA) && (xsane.param.format != SANE_FRAME_RGBA))
- {
- snprintf(buf, sizeof(buf), "No RGBA data format !!!"); /* user selected output format RGBA, scanner uses other format */
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-#endif
- }
-#ifdef SUPPORT_RGBA
- else if (xsane.param.format == SANE_FRAME_RGBA) /* no scanmode but format=rgba */
- {
- snprintf(buf, sizeof(buf), "Special format RGBA only supported in scan mode !!!");
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-#endif
-
-#ifdef SUPPORT_RGBA
- if (xsane.param.format == SANE_FRAME_RGBA)
- {
- if ( (xsane.xsane_output_format != XSANE_RGBA) && (xsane.xsane_output_format != XSANE_PNG) )
- {
- snprintf(buf, sizeof(buf), "Image data of type SANE_FRAME_RGBA\ncan only be saved in rgba or png format");
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
- }
-#endif
-
- if (xsane.xsane_mode == XSANE_FAX)
- {
- mkdir(preferences.fax_project, 7*64 + 0*8 + 0);
- }
- }
-#ifdef HAVE_LIBGIMP_GIMP_H
- else /* We are running in gimp mode */
- {
- if ((xsane.param.depth != 1) && (xsane.param.depth != 8)) /* not support bit depth ? */
- {
- snprintf(buf, sizeof(buf), "%s %d.", ERR_GIMP_BAD_DEPTH, xsane.param.depth);
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
- }
-#endif
-
- if (xsane.dummy_filename) /* no dummy filename defined - necessary if an error occurs */
- {
- free(xsane.dummy_filename);
- xsane.dummy_filename = 0;
- }
-
- if (xsane.param.depth > 1) /* if depth > 1 use gamma correction */
- {
- int size;
- int gamma_gray_size, gamma_red_size, gamma_green_size, gamma_blue_size;
- int gamma_gray_max, gamma_red_max, gamma_green_max, gamma_blue_max;
- const SANE_Option_Descriptor *opt;
-
- size = (int) pow(2, xsane.param.depth);
- gamma_gray_size = size;
- gamma_red_size = size;
- gamma_green_size = size;
- gamma_blue_size = size;
-
- size--;
- gamma_gray_max = size;
- gamma_red_max = size;
- gamma_green_max = size;
- gamma_blue_max = size;
-
- if (xsane.scanner_gamma_gray) /* gamma table for gray available */
- {
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.gamma_vector);
- gamma_gray_size = opt->size / sizeof(opt->type);
- gamma_gray_max = opt->constraint.range->max;
- }
-
- if (xsane.scanner_gamma_color) /* gamma table for red, green and blue available */
- {
- double gamma_red, gamma_green, gamma_blue;
-
- /* ok, scanner color gamma function is supported, so we do all conversions about that */
- /* we do not need any gamma tables while scanning, so we can free them after sending */
- /* the data to the scanner */
-
- /* if also gray gamma function is supported, set this to 1.0 to get the right colors */
- if (xsane.scanner_gamma_gray)
- {
- xsane.gamma_data = malloc(gamma_gray_size * sizeof(SANE_Int));
- xsane_create_gamma_curve(xsane.gamma_data, 0, 1.0, 0.0, 0.0, gamma_gray_size, gamma_gray_max);
- xsane_back_gtk_update_vector(dialog, dialog->well_known.gamma_vector, xsane.gamma_data);
- free(xsane.gamma_data);
- xsane.gamma_data = 0;
- }
-
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.gamma_vector_r);
- gamma_red_size = opt->size / sizeof(opt->type);
- gamma_red_max = opt->constraint.range->max;
-
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.gamma_vector_g);
- gamma_green_size = opt->size / sizeof(opt->type);
- gamma_green_max = opt->constraint.range->max;
-
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.gamma_vector_b);
- gamma_blue_size = opt->size / sizeof(opt->type);
- gamma_blue_max = opt->constraint.range->max;
-
- xsane.gamma_data_red = malloc(gamma_red_size * sizeof(SANE_Int));
- xsane.gamma_data_green = malloc(gamma_green_size * sizeof(SANE_Int));
- xsane.gamma_data_blue = malloc(gamma_blue_size * sizeof(SANE_Int));
-
- if (xsane.xsane_mode == XSANE_COPY)
- {
- gamma_red = xsane.gamma * xsane.gamma_red * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_red;
- gamma_green = xsane.gamma * xsane.gamma_green * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_green;
- gamma_blue = xsane.gamma * xsane.gamma_blue * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_blue;
- }
- else
- {
- gamma_red = xsane.gamma * xsane.gamma_red;
- gamma_green = xsane.gamma * xsane.gamma_green;
- gamma_blue = xsane.gamma * xsane.gamma_blue;
- }
-
- xsane_create_gamma_curve(xsane.gamma_data_red, xsane.negative,
- gamma_red,
- xsane.brightness + xsane.brightness_red,
- xsane.contrast + xsane.contrast_red, gamma_red_size, gamma_red_max);
-
- xsane_create_gamma_curve(xsane.gamma_data_green, xsane.negative,
- gamma_green,
- xsane.brightness + xsane.brightness_green,
- xsane.contrast + xsane.contrast_green, gamma_green_size, gamma_green_max);
-
- xsane_create_gamma_curve(xsane.gamma_data_blue, xsane.negative,
- gamma_blue,
- xsane.brightness + xsane.brightness_blue,
- xsane.contrast + xsane.contrast_blue , gamma_blue_size, gamma_blue_max);
-
- xsane_back_gtk_update_vector(dialog, dialog->well_known.gamma_vector_r, xsane.gamma_data_red);
- xsane_back_gtk_update_vector(dialog, dialog->well_known.gamma_vector_g, xsane.gamma_data_green);
- xsane_back_gtk_update_vector(dialog, dialog->well_known.gamma_vector_b, xsane.gamma_data_blue);
-
- free(xsane.gamma_data_red);
- free(xsane.gamma_data_green);
- free(xsane.gamma_data_blue);
-
- xsane.gamma_data_red = 0;
- xsane.gamma_data_green = 0;
- xsane.gamma_data_blue = 0;
- }
- else if (xsane.scanner_gamma_gray) /* only scanner gray gamma function available */
- {
- double gamma;
- /* ok, the scanner only supports gray gamma function */
- /* if we are doing a grayscale scan everyting is ok, */
- /* for a color scan the software has to do the gamma correction set by the component slider */
-
- if (xsane.xsane_mode == XSANE_COPY)
- {
- gamma = xsane.gamma * preferences.printer[preferences.printernr]->gamma;
- }
- else
- {
- gamma = xsane.gamma;
- }
-
- xsane.gamma_data = malloc(gamma_gray_size * sizeof(SANE_Int));
- xsane_create_gamma_curve(xsane.gamma_data, xsane.negative,
- gamma, xsane.brightness, xsane.contrast,
- gamma_gray_size, gamma_gray_max);
-
- xsane_back_gtk_update_vector(dialog, dialog->well_known.gamma_vector, xsane.gamma_data);
- free(xsane.gamma_data);
- xsane.gamma_data = 0;
-
- if (xsane.xsane_color) /* ok, we are doing a colorscan */
- {
- /* we have to create color gamma table for software conversion */
- /* but we only have to use color slider values, because gray slider value */
- /* is used by scanner gray gamma */
-
- double gamma_red, gamma_green, gamma_blue;
-
- xsane.gamma_data_red = malloc(gamma_red_size * sizeof(SANE_Int));
- xsane.gamma_data_green = malloc(gamma_green_size * sizeof(SANE_Int));
- xsane.gamma_data_blue = malloc(gamma_blue_size * sizeof(SANE_Int));
-
- if (xsane.xsane_mode == XSANE_COPY)
- {
- gamma_red = xsane.gamma_red * preferences.printer[preferences.printernr]->gamma_red;
- gamma_green = xsane.gamma_green * preferences.printer[preferences.printernr]->gamma_green;
- gamma_blue = xsane.gamma_blue * preferences.printer[preferences.printernr]->gamma_blue;
- }
- else
- {
- gamma_red = xsane.gamma_red;
- gamma_green = xsane.gamma_green;
- gamma_blue = xsane.gamma_blue;
- }
-
- xsane_create_gamma_curve(xsane.gamma_data_red, 0,
- gamma_red, xsane.brightness_red, xsane.contrast_red,
- gamma_red_size, gamma_red_max);
-
- xsane_create_gamma_curve(xsane.gamma_data_green, 0,
- gamma_green, xsane.brightness_green, xsane.contrast_green,
- gamma_green_size, gamma_green_max);
-
- xsane_create_gamma_curve(xsane.gamma_data_blue, 0,
- gamma_blue, xsane.brightness_blue, xsane.contrast_blue,
- gamma_blue_size, gamma_blue_max);
-
- /* gamma tables are freed after scan */
- }
-
- }
- else /* scanner does not support any gamma correction */
- {
- /* ok, we have to do it on our own */
-
- if (xsane.xsane_color == 0) /* no color scan */
- {
- double gamma;
-
- if (xsane.xsane_mode == XSANE_COPY)
- {
- gamma = xsane.gamma * preferences.printer[preferences.printernr]->gamma;
- }
- else
- {
- gamma = xsane.gamma;
- }
-
- xsane.gamma_data = malloc(gamma_gray_size * sizeof(SANE_Int));
- xsane_create_gamma_curve(xsane.gamma_data, xsane.negative,
- gamma, xsane.brightness, xsane.contrast,
- gamma_gray_size, gamma_gray_max);
-
- /* gamma table is freed after scan */
- }
- else /* color scan */
- {
- double gamma_red, gamma_green, gamma_blue;
- /* ok, we have to combin gray and color slider values */
-
- xsane.gamma_data_red = malloc(gamma_red_size * sizeof(SANE_Int));
- xsane.gamma_data_green = malloc(gamma_green_size * sizeof(SANE_Int));
- xsane.gamma_data_blue = malloc(gamma_blue_size * sizeof(SANE_Int));
-
- if (xsane.xsane_mode == XSANE_COPY)
- {
- gamma_red = xsane.gamma * xsane.gamma_red * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_red;
- gamma_green = xsane.gamma * xsane.gamma_green * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_green;
- gamma_blue = xsane.gamma * xsane.gamma_blue * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_blue;
- }
- else
- {
- gamma_red = xsane.gamma * xsane.gamma_red;
- gamma_green = xsane.gamma * xsane.gamma_green;
- gamma_blue = xsane.gamma * xsane.gamma_blue;
- }
-
- xsane_create_gamma_curve(xsane.gamma_data_red, xsane.negative,
- gamma_red,
- xsane.brightness + xsane.brightness_red,
- xsane.contrast + xsane.contrast_red, gamma_red_size, gamma_red_max);
-
- xsane_create_gamma_curve(xsane.gamma_data_green, xsane.negative,
- gamma_green,
- xsane.brightness + xsane.brightness_green,
- xsane.contrast + xsane.contrast_green, gamma_green_size, gamma_green_max);
-
- xsane_create_gamma_curve(xsane.gamma_data_blue, xsane.negative,
- gamma_blue,
- xsane.brightness + xsane.brightness_blue,
- xsane.contrast + xsane.contrast_blue , gamma_blue_size, gamma_blue_max);
-
- /* gamma tables are freed after scan */
- }
-
- }
- }
-
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- xsane_start_scan();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
diff --git a/frontend/xsane-setup.c b/frontend/xsane-setup.c
deleted file mode 100644
index 637ea91..0000000
--- a/frontend/xsane-setup.c
+++ /dev/null
@@ -1,1565 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane-setup.c
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#include "xsane.h"
-#include "xsane-back-gtk.h"
-#include "xsane-front-gtk.h"
-#include "xsane-preferences.h"
-#include "xsane-preview.h"
-#include "xsane-save.h"
-#include "xsane-text.h"
-#include "xsane-gamma.h"
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
-#include <png.h>
-#include <zlib.h>
-#endif
-#endif
-
-#ifdef HAVE_LIBTIFF
-#include <tiff.h>
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#define XSANE_GTK_NAME_IMAGE_PERMISSIONS "gtk_toggle_button_image_permissions"
-#define XSANE_GTK_NAME_DIRECTORY_PERMISSIONS "gtk_toggle_button_directory_permissions"
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-struct XsaneSetup xsane_setup;
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* forward declarations: */
-
-void xsane_new_printer(void);
-void xsane_update_int(GtkWidget *widget, int *val);
-
-static void xsane_update_bool(GtkWidget *widget, int *val);
-static void xsane_update_scale(GtkWidget *widget, double *val);
-static void xsane_update_double(GtkWidget *widget, double *val);
-static void xsane_setup_printer_update(void);
-static void xsane_setup_printer_callback(GtkWidget *widget, gpointer data);
-static void xsane_setup_printer_menu_build(GtkWidget *option_menu);
-static void xsane_setup_printer_apply_changes(GtkWidget *widget, gpointer data);
-static void xsane_setup_printer_new(GtkWidget *widget, gpointer data);
-static void xsane_setup_printer_delete(GtkWidget *widget, gpointer data);
-static void xsane_setup_display_apply_changes(GtkWidget *widget, gpointer data);
-static void xsane_setup_saving_apply_changes(GtkWidget *widget, gpointer data);
-static void xsane_setup_fax_apply_changes(GtkWidget *widget, gpointer data);
-static void xsane_setup_options_ok_callback(GtkWidget *widget, gpointer data);
-
-void xsane_setup_dialog(GtkWidget *widget, gpointer data);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_new_printer(void)
-{
- preferences.printernr = preferences.printerdefinitions++;
-
- preferences.printer[preferences.printernr] = calloc(sizeof(Preferences_printer_t), 1);
-
- preferences.printer[preferences.printernr]->name = strdup(PRINTERNAME);
- preferences.printer[preferences.printernr]->command = strdup(PRINTERCOMMAND);
- preferences.printer[preferences.printernr]->copy_number_option = strdup(PRINTERCOPYNUMBEROPTION);
- preferences.printer[preferences.printernr]->resolution = 300;
- preferences.printer[preferences.printernr]->width = 203.2;
- preferences.printer[preferences.printernr]->height = 294.6;
- preferences.printer[preferences.printernr]->leftoffset = 3.5;
- preferences.printer[preferences.printernr]->bottomoffset = 3.5;
- preferences.printer[preferences.printernr]->gamma = 1.0;
- preferences.printer[preferences.printernr]->gamma_red = 1.0;
- preferences.printer[preferences.printernr]->gamma_green = 1.0;
- preferences.printer[preferences.printernr]->gamma_blue = 1.0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_update_int(GtkWidget *widget, int *val)
-{
- char *start, *end;
- int v;
-
- start = gtk_entry_get_text(GTK_ENTRY(widget));
- if (!start)
- return;
-
- v = (int) strtol(start, &end, 10);
- if (end > start && v > 0)
- {
- *val = v;
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_update_bool(GtkWidget *widget, int *val)
-{
- *val = (GTK_TOGGLE_BUTTON(widget)->active != 0);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_update_scale(GtkWidget *widget, double *val)
-{
- *val = GTK_ADJUSTMENT(widget)->value;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_update_double(GtkWidget *widget, double *val)
-{
- char *start, *end;
- double v;
-
- start = gtk_entry_get_text(GTK_ENTRY(widget));
- if (!start)
- return;
-
- v = strtod(start, &end);
- if (end > start && v > 0.0)
- {
- *val = v;
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_setup_printer_update()
-{
- char buf[256];
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_name_entry),
- (char *) preferences.printer[preferences.printernr]->name);
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_command_entry),
- (char *) preferences.printer[preferences.printernr]->command);
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_copy_number_option_entry),
- (char *) preferences.printer[preferences.printernr]->copy_number_option);
-
- snprintf(buf, sizeof(buf), "%d", preferences.printer[preferences.printernr]->resolution);
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_resolution_entry), buf);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.printer[preferences.printernr]->width);
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_width_entry), buf);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.printer[preferences.printernr]->height);
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_height_entry), buf);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.printer[preferences.printernr]->leftoffset);
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_leftoffset_entry), buf);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.printer[preferences.printernr]->bottomoffset);
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_bottomoffset_entry), buf);
- snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma);
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_entry), buf);
- snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_red);
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_red_entry), buf);
- snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_green);
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_green_entry), buf);
- snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_blue);
- gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_blue_entry), buf);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_setup_printer_callback(GtkWidget *widget, gpointer data)
-{
- preferences.printernr = (int) data;
- xsane_setup_printer_update();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_setup_printer_menu_build(GtkWidget *option_menu)
-{
- GtkWidget *printer_menu, *printer_item;
- int i;
-
- printer_menu = gtk_menu_new();
-
- for (i=0; i < preferences.printerdefinitions; i++)
- {
- printer_item = gtk_menu_item_new_with_label(preferences.printer[i]->name);
- gtk_container_add(GTK_CONTAINER(printer_menu), printer_item);
- gtk_signal_connect(GTK_OBJECT(printer_item), "activate", (GtkSignalFunc) xsane_setup_printer_callback, (void *) i);
- gtk_widget_show(printer_item);
- }
-
- gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), printer_menu);
- gtk_option_menu_set_history(GTK_OPTION_MENU(option_menu), preferences.printernr);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_setup_printer_apply_changes(GtkWidget *widget, gpointer data)
-{
- GtkWidget *option_menu = (GtkWidget *) data;
-
- if (preferences.printer[preferences.printernr]->name)
- {
- free((void *) preferences.printer[preferences.printernr]->name);
- }
- preferences.printer[preferences.printernr]->name = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.printer_name_entry)));
-
- if (preferences.printer[preferences.printernr]->command)
- {
- free((void *) preferences.printer[preferences.printernr]->command);
- }
- preferences.printer[preferences.printernr]->command = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.printer_command_entry)));
-
- if (preferences.printer[preferences.printernr]->copy_number_option)
- {
- free((void *) preferences.printer[preferences.printernr]->copy_number_option);
- }
- preferences.printer[preferences.printernr]->copy_number_option =
- strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.printer_copy_number_option_entry)));
-
- xsane_update_int(xsane_setup.printer_resolution_entry, &preferences.printer[preferences.printernr]->resolution);
-
- xsane_update_double(xsane_setup.printer_width_entry, &preferences.printer[preferences.printernr]->width);
- xsane_update_double(xsane_setup.printer_height_entry, &preferences.printer[preferences.printernr]->height);
- xsane_update_double(xsane_setup.printer_leftoffset_entry, &preferences.printer[preferences.printernr]->leftoffset);
- xsane_update_double(xsane_setup.printer_bottomoffset_entry, &preferences.printer[preferences.printernr]->bottomoffset);
-
- xsane_update_double(xsane_setup.printer_gamma_entry, &preferences.printer[preferences.printernr]->gamma);
- xsane_update_double(xsane_setup.printer_gamma_red_entry, &preferences.printer[preferences.printernr]->gamma_red);
- xsane_update_double(xsane_setup.printer_gamma_green_entry, &preferences.printer[preferences.printernr]->gamma_green);
- xsane_update_double(xsane_setup.printer_gamma_blue_entry, &preferences.printer[preferences.printernr]->gamma_blue);
-
- if (option_menu)
- {
- xsane_setup_printer_menu_build(option_menu);
- }
-
- xsane_define_maximum_output_size();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_setup_printer_new(GtkWidget *widget, gpointer data)
-{
- GtkWidget *option_menu = (GtkWidget *) data;
-
- xsane_new_printer();
- xsane_setup_printer_update();
-
- xsane_setup_printer_menu_build(option_menu);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_setup_printer_delete(GtkWidget *widget, gpointer data)
-{
- GtkWidget *option_menu = (GtkWidget *) data;
- int i;
-
- preferences.printerdefinitions--;
-
- i = preferences.printernr;
- while (i < preferences.printerdefinitions)
- {
- memcpy(preferences.printer[i], preferences.printer[i+1], sizeof(Preferences_printer_t));
- i++;
- }
-
- if (preferences.printernr >= preferences.printerdefinitions)
- {
- preferences.printernr--;
- }
-
- if (preferences.printerdefinitions == 0)
- {
- xsane_new_printer();
- preferences.printernr = 0;
- }
-
- xsane_setup_printer_update();
-
- xsane_setup_printer_menu_build(option_menu);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#ifdef HAVE_LIBTIFF
-static void xsane_setup_tiff_compression_callback(GtkWidget *widget, gpointer data)
-{
- xsane_setup.tiff_compression_nr = (int) data;
-}
-
-/* -------------------------------------- */
-
-static void xsane_setup_tiff_compression_1_callback(GtkWidget *widget, gpointer data)
-{
- xsane_setup.tiff_compression_1_nr = (int) data;
-}
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_setup_display_apply_changes(GtkWidget *widget, gpointer data)
-{
- xsane_update_bool(xsane_setup.main_window_fixed_button, &preferences.main_window_fixed);
- xsane_update_bool(xsane_setup.preview_preserve_button, &preferences.preserve_preview);
- xsane_update_bool(xsane_setup.preview_own_cmap_button, &preferences.preview_own_cmap);
-
- xsane_update_double(xsane_setup.preview_gamma_entry, &preferences.preview_gamma);
- xsane_update_double(xsane_setup.preview_gamma_red_entry, &preferences.preview_gamma_red);
- xsane_update_double(xsane_setup.preview_gamma_green_entry, &preferences.preview_gamma_green);
- xsane_update_double(xsane_setup.preview_gamma_blue_entry, &preferences.preview_gamma_blue);
-
- preferences.doc_viewer = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.doc_viewer_entry)));
-
- xsane_update_gamma();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_setup_saving_apply_changes(GtkWidget *widget, gpointer data)
-{
-#ifdef HAVE_LIBJPEG
- xsane_update_scale(xsane_setup.jpeg_image_quality_scale, &preferences.jpeg_quality);
-#else
-#ifdef HAVE_LIBTIFF
- xsane_update_scale(xsane_setup.jpeg_image_quality_scale, &preferences.jpeg_quality);
-#endif
-#endif
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
- xsane_update_scale(xsane_setup.pnm_image_compression_scale, &preferences.png_compression);
-#endif
-#endif
-
-#ifdef HAVE_LIBTIFF
- preferences.tiff_compression_nr = xsane_setup.tiff_compression_nr;
- preferences.tiff_compression_1_nr = xsane_setup.tiff_compression_1_nr;
-#endif
-
- xsane_update_bool(xsane_setup.overwrite_warning_button, &preferences.overwrite_warning);
- xsane_update_bool(xsane_setup.increase_filename_counter_button, &preferences.increase_filename_counter);
- xsane_update_bool(xsane_setup.skip_existing_numbers_button, &preferences.skip_existing_numbers);
- preferences.image_umask = 0777 - xsane_setup.image_permissions;
- preferences.directory_umask = 0777 - xsane_setup.directory_permissions;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_setup_fax_apply_changes(GtkWidget *widget, gpointer data)
-{
- if (preferences.fax_command)
- {
- free((void *) preferences.fax_command);
- }
- preferences.fax_command = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_command_entry)));
- preferences.fax_receiver_option = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_receiver_option_entry)));
- preferences.fax_postscript_option = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_postscript_option_entry)));
- preferences.fax_normal_option = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_normal_option_entry)));
- preferences.fax_fine_option = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_fine_option_entry)));
- preferences.fax_viewer = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_viewer_entry)));
-
- xsane_update_double(xsane_setup.fax_leftoffset_entry, &preferences.fax_leftoffset);
- xsane_update_double(xsane_setup.fax_bottomoffset_entry, &preferences.fax_bottomoffset);
- xsane_update_double(xsane_setup.fax_width_entry, &preferences.fax_width);
- xsane_update_double(xsane_setup.fax_height_entry, &preferences.fax_height);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_setup_options_ok_callback(GtkWidget *widget, gpointer data)
-{
- xsane_setup_printer_apply_changes(0, 0);
- xsane_setup_display_apply_changes(0, 0);
- xsane_setup_saving_apply_changes(0, 0);
- xsane_setup_fax_apply_changes(0, 0);
-
- xsane_pref_save();
-
- gtk_widget_destroy((GtkWidget *)data); /* => xsane_destroy_setup_dialog_callback */
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_destroy_setup_dialog_callback(GtkWidget *widget, gpointer data)
-{
- xsane_set_sensitivity(TRUE);
- xsane_back_gtk_refresh_dialog(dialog);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_close_setup_dialog_callback(GtkWidget *widget, gpointer data)
-{
- gtk_widget_destroy((GtkWidget *)data); /* => xsane_destroy_setup_dialog_callback */
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_permission_toggled(GtkWidget *widget, gpointer data)
-{
- int mask = (int) data;
- int *permission = 0;
- gchar *name = gtk_widget_get_name(widget);
-
- if (!strcmp(name, XSANE_GTK_NAME_IMAGE_PERMISSIONS))
- {
- permission = &xsane_setup.image_permissions;
- }
- else if (!strcmp(name, XSANE_GTK_NAME_DIRECTORY_PERMISSIONS))
- {
- permission = &xsane_setup.directory_permissions;
- }
-
- if (permission)
- {
- if (GTK_TOGGLE_BUTTON(widget)->active) /* set bit */
- {
- *permission = *permission | mask;
- }
- else /* erase bit */
- {
- *permission = *permission & (0777-mask);
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_permission_box(GtkWidget *parent, gchar *name, gchar *description, int *permission,
- int header, int x_sensitivity, int user_sensitivity)
-{
- GtkWidget *hbox, *button, *label, *hspace;
-
-
- if (header)
- {
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(parent), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new("user");
- gtk_widget_set_usize(label, 75, 0);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- label = gtk_label_new("group");
- gtk_widget_set_usize(label, 75, 0);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- label = gtk_label_new("all");
- gtk_widget_set_usize(label, 75, 0);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- gtk_widget_show(hbox);
- }
-
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(parent), hbox, FALSE, FALSE, 2);
-
- button = gtk_toggle_button_new_with_label("r");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 256 );
- gtk_widget_set_usize(button, 21, 0);
- gtk_widget_set_name(button, name);
- gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 256);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
- gtk_widget_show(button);
- gtk_widget_set_sensitive(button, user_sensitivity);
-
- button = gtk_toggle_button_new_with_label("w");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 128 );
- gtk_widget_set_usize(button, 21, 0);
- gtk_widget_set_name(button, name);
- gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 128);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
- gtk_widget_show(button);
- gtk_widget_set_sensitive(button, user_sensitivity);
-
- button = gtk_toggle_button_new_with_label("x");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 64 );
- gtk_widget_set_usize(button, 21, 0);
- gtk_widget_set_name(button, name);
- gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 64);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
- gtk_widget_show(button);
- gtk_widget_set_sensitive(button, x_sensitivity & user_sensitivity);
-
-
-
- hspace = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), hspace, FALSE, FALSE, 6);
- gtk_widget_show(hspace);
-
-
-
- button = gtk_toggle_button_new_with_label("r");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 32 );
- gtk_widget_set_usize(button, 21, 0);
- gtk_widget_set_name(button, name);
- gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 32);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
- gtk_widget_show(button);
-
- button = gtk_toggle_button_new_with_label("w");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 16 );
- gtk_widget_set_usize(button, 21, 0);
- gtk_widget_set_name(button, name);
- gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 16);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
- gtk_widget_show(button);
-
- button = gtk_toggle_button_new_with_label("x");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 8 );
- gtk_widget_set_usize(button, 21, 0);
- gtk_widget_set_name(button, name);
- gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 8);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
- gtk_widget_show(button);
- gtk_widget_set_sensitive(button, x_sensitivity);
-
-
-
- hspace = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), hspace, FALSE, FALSE, 6);
- gtk_widget_show(hspace);
-
-
-
- button = gtk_toggle_button_new_with_label("r");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 4 );
- gtk_widget_set_usize(button, 21, 0);
- gtk_widget_set_name(button, name);
- gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 4);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
- gtk_widget_show(button);
-
- button = gtk_toggle_button_new_with_label("w");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 2 );
- gtk_widget_set_usize(button, 21, 0);
- gtk_widget_set_name(button, name);
- gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 2);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
- gtk_widget_show(button);
-
- button = gtk_toggle_button_new_with_label("x");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 1 );
- gtk_widget_set_usize(button, 21, 0);
- gtk_widget_set_name(button, name);
- gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 1);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
- gtk_widget_show(button);
- gtk_widget_set_sensitive(button, x_sensitivity);
-
-
-
- hspace = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(hbox), hspace, FALSE, FALSE, 5);
- gtk_widget_show(hspace);
-
-
-
- label = gtk_label_new(description);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- gtk_widget_show(hbox);
-
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_setup_dialog(GtkWidget *widget, gpointer data)
-{
- GtkWidget *setup_dialog, *setup_vbox, *vbox, *hbox, *button, *label, *text, *frame, *notebook;
- GtkWidget *printer_option_menu;
- char buf[64];
-
-#ifdef HAVE_LIBTIFF
- GtkWidget *tiff_compression_option_menu, *tiff_compression_menu, *tiff_compression_item;
- int i, select = 1;
-
- typedef struct tiff_compression_t
- {
- char *name;
- int number;
- } tiff_compression;
-
-#define TIFF_COMPRESSION_NUMBER 3
-#define TIFF_COMPRESSION1_NUMBER 6
-
- tiff_compression tiff_compression_strings[TIFF_COMPRESSION_NUMBER];
- tiff_compression tiff_compression1_strings[TIFF_COMPRESSION1_NUMBER];
-
- tiff_compression_strings[0].name = MENU_ITEM_TIFF_COMP_NONE;
- tiff_compression_strings[0].number = COMPRESSION_NONE;
- tiff_compression_strings[1].name = MENU_ITEM_TIFF_COMP_JPEG;
- tiff_compression_strings[1].number = COMPRESSION_JPEG;
- tiff_compression_strings[2].name = MENU_ITEM_TIFF_COMP_PACKBITS;
- tiff_compression_strings[2].number = COMPRESSION_PACKBITS;
-
- tiff_compression1_strings[0].name = MENU_ITEM_TIFF_COMP_NONE;
- tiff_compression1_strings[0].number = COMPRESSION_NONE;
- tiff_compression1_strings[1].name = MENU_ITEM_TIFF_COMP_CCITTRLE;
- tiff_compression1_strings[1].number = COMPRESSION_CCITTRLE;
- tiff_compression1_strings[2].name = MENU_ITEM_TIFF_COMP_CCITFAX3;
- tiff_compression1_strings[2].number = COMPRESSION_CCITTFAX3;
- tiff_compression1_strings[3].name = MENU_ITEM_TIFF_COMP_CCITFAX4;
- tiff_compression1_strings[3].number = COMPRESSION_CCITTFAX4;
- tiff_compression1_strings[4].name = MENU_ITEM_TIFF_COMP_JPEG;
- tiff_compression1_strings[4].number = COMPRESSION_JPEG;
- tiff_compression1_strings[5].name = MENU_ITEM_TIFF_COMP_PACKBITS;
- tiff_compression1_strings[5].number = COMPRESSION_PACKBITS;
-
-#endif /* HAVE_LIBTIFF */
-
- xsane_set_sensitivity(FALSE);
-
- setup_dialog = gtk_dialog_new();
- snprintf(buf, sizeof(buf), "%s %s", prog_name, WINDOW_SETUP);
- gtk_window_set_title(GTK_WINDOW(setup_dialog), buf);
- gtk_signal_connect(GTK_OBJECT(setup_dialog), "destroy", (GtkSignalFunc) xsane_destroy_setup_dialog_callback, setup_dialog);
- xsane_set_window_icon(setup_dialog, 0);
-
- setup_vbox = GTK_DIALOG(setup_dialog)->vbox;
-
- notebook = gtk_notebook_new();
- gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP);
- gtk_box_pack_start(GTK_BOX(setup_vbox), notebook, FALSE, FALSE, 0);
- gtk_widget_show(notebook);
-
-
-
-
- /* Printer options notebook page */
-
- setup_vbox = gtk_vbox_new(FALSE, 5);
-
- label = gtk_label_new(NOTEBOOK_COPY_OPTIONS);
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
- gtk_widget_show(setup_vbox);
-
- frame = gtk_frame_new(0);
- gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
- gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
- gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
- gtk_widget_show(frame);
-
- vbox = gtk_vbox_new(FALSE, 1);
- gtk_container_add(GTK_CONTAINER(frame), vbox);
- gtk_widget_show(vbox);
-
-
-
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_SEL);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- printer_option_menu = gtk_option_menu_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, printer_option_menu, DESC_PRINTER_SETUP);
- gtk_box_pack_end(GTK_BOX(hbox), printer_option_menu, FALSE, FALSE, 2);
- gtk_widget_show(printer_option_menu);
- gtk_widget_show(hbox);
-
- xsane_setup_printer_menu_build(printer_option_menu);
-
- /* printername : */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_NAME);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PRINTER_NAME);
- gtk_widget_set_usize(text, 250, 0);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.printer[preferences.printernr]->name);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_name_entry = text;
-
- /* printcommand : */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_CMD);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PRINTER_COMMAND);
- gtk_widget_set_usize(text, 250, 0);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.printer[preferences.printernr]->command);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_command_entry = text;
-
- /* copy number option : */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_COPY_NR_OPT);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_COPY_NUMBER_OPTION);
- gtk_widget_set_usize(text, 250, 0);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.printer[preferences.printernr]->copy_number_option);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_copy_number_option_entry = text;
-
- /* printerresolution : */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_RES);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PRINTER_RESOLUTION);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%d", preferences.printer[preferences.printernr]->resolution);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_resolution_entry = text;
-
-
- xsane_separator_new(vbox, 2);
-
-
- /* printer width: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_WIDTH);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PRINTER_WIDTH);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.printer[preferences.printernr]->width);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_width_entry = text;
-
- /* printer height: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_HEIGHT);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PRINTER_HEIGHT);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.printer[preferences.printernr]->height);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_height_entry = text;
-
- /* printer left offset : */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_LEFT);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PRINTER_LEFTOFFSET);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.printer[preferences.printernr]->leftoffset);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_leftoffset_entry = text;
-
- /* printer bottom offset : */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_BOTTOM);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PRINTER_BOTTOMOFFSET);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.printer[preferences.printernr]->bottomoffset);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_bottomoffset_entry = text;
-
-
- xsane_separator_new(vbox, 2);
-
-
- /* printer gamma: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_GAMMA);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PRINTER_GAMMA);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_gamma_entry = text;
-
- /* printer gamma red: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_GAMMA_RED);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PRINTER_GAMMA_RED);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_red);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_gamma_red_entry = text;
-
- /* printer gamma green: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_GAMMA_GREEN);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PRINTER_GAMMA_GREEN);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_green);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_gamma_green_entry = text;
-
- /* printer gamma blue: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_PRINTER_GAMMA_BLUE);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PRINTER_GAMMA_BLUE);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_blue);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.printer_gamma_blue_entry = text;
-
-
- xsane_separator_new(vbox, 4);
-
- /* "apply" "add printer" "delete printer" */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- button = gtk_button_new_with_label(BUTTON_APPLY);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_printer_apply_changes, printer_option_menu);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- button = gtk_button_new_with_label(BUTTON_ADD_PRINTER);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_printer_new, printer_option_menu);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- button = gtk_button_new_with_label(BUTTON_DELETE_PRINTER);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_printer_delete, printer_option_menu);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- gtk_widget_show(hbox);
-
-
-
-
- /* Saving options notebook page */
-
- setup_vbox = gtk_vbox_new(FALSE, 5);
-
- label = gtk_label_new(NOTEBOOK_SAVING_OPTIONS);
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
- gtk_widget_show(setup_vbox);
-
- frame = gtk_frame_new(0);
- gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
- gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
- gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
- gtk_widget_show(frame);
-
- vbox = gtk_vbox_new(FALSE, 1);
- gtk_container_add(GTK_CONTAINER(frame), vbox);
- gtk_widget_show(vbox);
-
- xsane_setup.image_permissions = 0777-preferences.image_umask;
- xsane_permission_box(vbox, XSANE_GTK_NAME_IMAGE_PERMISSIONS, "Image-file permissions", &xsane_setup.image_permissions,
- TRUE /* header */, FALSE /* x sens */, FALSE /* user sens */);
-
- xsane_setup.directory_permissions = 0777-preferences.directory_umask;
- xsane_permission_box(vbox, XSANE_GTK_NAME_DIRECTORY_PERMISSIONS, "Directory permissions", &xsane_setup.directory_permissions,
- FALSE /* header */, TRUE /* x sens */, FALSE /* user sens */);
-
- xsane_separator_new(vbox, 4);
-
-
- /* overwrite warning */
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
- button = gtk_check_button_new_with_label(RADIO_BUTTON_OVERWRITE_WARNING);
- xsane_back_gtk_set_tooltip(dialog->tooltips, button, DESC_OVERWRITE_WARNING);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.overwrite_warning);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
- gtk_widget_show(button);
- gtk_widget_show(hbox);
- xsane_setup.overwrite_warning_button = button;
-
- /* increase filename counter */
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
- button = gtk_check_button_new_with_label(RADIO_BUTTON_INCREASE_COUNTER);
- xsane_back_gtk_set_tooltip(dialog->tooltips, button, DESC_INCREASE_COUNTER);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.increase_filename_counter);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
- gtk_widget_show(button);
- gtk_widget_show(hbox);
- xsane_setup.increase_filename_counter_button = button;
-
- /* increase filename counter */
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
- button = gtk_check_button_new_with_label(RADIO_BUTTON_SKIP_EXISTING_NRS);
- xsane_back_gtk_set_tooltip(dialog->tooltips, button, DESC_SKIP_EXISTING);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.skip_existing_numbers);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
- gtk_widget_show(button);
- gtk_widget_show(hbox);
- xsane_setup.skip_existing_numbers_button = button;
-
-#ifdef HAVE_LIBJPEG
- xsane_separator_new(vbox, 4);
-#else
-#ifdef HAVE_LIBTIFF
- xsane_separator_new(vbox, 4);
-#else
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
- xsane_separator_new(vbox, 4);
-#endif
-#endif
-#endif
-#endif
-
-#ifdef HAVE_LIBJPEG
- xsane_scale_new(GTK_BOX(vbox), TEXT_SETUP_JPEG_QUALITY, DESC_JPEG_QUALITY, 0.0, 100.0, 1.0, 1.0, 0.0, 0,
- &preferences.jpeg_quality, (GtkObject **) &xsane_setup.jpeg_image_quality_scale, 0, TRUE);
-#else
-#ifdef HAVE_LIBTIFF
- xsane_scale_new(GTK_BOX(vbox), TEXT_SETUP_JPEG_QUALITY, DESC_JPEG_QUALITY, 0.0, 100.0, 1.0, 1.0, 0.0, 0,
- &preferences.jpeg_quality, (GtkObject **) &xsane_setup.jpeg_image_quality_scale, 0, TRUE);
-#endif
-#endif
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
- xsane_scale_new(GTK_BOX(vbox), TEXT_SETUP_PNG_COMPRESSION, DESC_PNG_COMPRESSION, 0.0, Z_BEST_COMPRESSION, 1.0, 1.0, 0.0, 0,
- &preferences.png_compression, (GtkObject **) &xsane_setup.pnm_image_compression_scale, 0, TRUE);
-#endif
-#endif
-
-#ifdef HAVE_LIBTIFF
- /* TIFF MULTI BIT IMAGES COMPRESSION */
-
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-
- label = gtk_label_new(TEXT_SETUP_TIFF_COMPRESSION);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- tiff_compression_option_menu = gtk_option_menu_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, tiff_compression_option_menu, DESC_TIFF_COMPRESSION);
- gtk_box_pack_end(GTK_BOX(hbox), tiff_compression_option_menu, FALSE, FALSE, 2);
- gtk_widget_show(tiff_compression_option_menu);
- gtk_widget_show(hbox);
-
- tiff_compression_menu = gtk_menu_new();
-
- for (i=1; i <= TIFF_COMPRESSION_NUMBER; i++)
- {
- tiff_compression_item = gtk_menu_item_new_with_label(tiff_compression_strings[i-1].name);
- gtk_container_add(GTK_CONTAINER(tiff_compression_menu), tiff_compression_item);
- gtk_signal_connect(GTK_OBJECT(tiff_compression_item), "activate",
- (GtkSignalFunc) xsane_setup_tiff_compression_callback, (void *) tiff_compression_strings[i-1].number);
- gtk_widget_show(tiff_compression_item);
- if (tiff_compression_strings[i-1].number == preferences.tiff_compression_nr)
- {
- select = i-1;
- }
- }
-
-
- gtk_option_menu_set_menu(GTK_OPTION_MENU(tiff_compression_option_menu), tiff_compression_menu);
- gtk_option_menu_set_history(GTK_OPTION_MENU(tiff_compression_option_menu), select);
- xsane_setup.tiff_compression_nr = preferences.tiff_compression_nr;
-
-
- /* TIFF ONE BIT IMAGES COMPRESSION */
-
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-
- label = gtk_label_new(TEXT_SETUP_TIFF_COMPRESSION_1);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- tiff_compression_option_menu = gtk_option_menu_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, tiff_compression_option_menu, DESC_TIFF_COMPRESSION_1);
- gtk_box_pack_end(GTK_BOX(hbox), tiff_compression_option_menu, FALSE, FALSE, 2);
- gtk_widget_show(tiff_compression_option_menu);
- gtk_widget_show(hbox);
-
- tiff_compression_menu = gtk_menu_new();
-
- for (i=1; i <= TIFF_COMPRESSION1_NUMBER; i++)
- {
- tiff_compression_item = gtk_menu_item_new_with_label(tiff_compression1_strings[i-1].name);
- gtk_container_add(GTK_CONTAINER(tiff_compression_menu), tiff_compression_item);
- gtk_signal_connect(GTK_OBJECT(tiff_compression_item), "activate",
- (GtkSignalFunc) xsane_setup_tiff_compression_1_callback, (void *) tiff_compression1_strings[i-1].number);
- gtk_widget_show(tiff_compression_item);
- if (tiff_compression1_strings[i-1].number == preferences.tiff_compression_1_nr)
- {
- select = i-1;
- }
- }
-
- gtk_option_menu_set_menu(GTK_OPTION_MENU(tiff_compression_option_menu), tiff_compression_menu);
- gtk_option_menu_set_history(GTK_OPTION_MENU(tiff_compression_option_menu), select);
-
- xsane_setup.tiff_compression_1_nr = preferences.tiff_compression_1_nr;
-
-#endif
-
- xsane_separator_new(vbox, 4);
-
-
- /* apply button */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- button = gtk_button_new_with_label(BUTTON_APPLY);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_saving_apply_changes, 0);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- gtk_widget_show(hbox);
-
-
-
-
-
- /* Display options notebook page */
-
- setup_vbox = gtk_vbox_new(FALSE, 5);
-
- label = gtk_label_new(NOTEBOOK_DISPLAY_OPTIONS);
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
- gtk_widget_show(setup_vbox);
-
- frame = gtk_frame_new(0);
- gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
- gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
- gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
- gtk_widget_show(frame);
-
- vbox = gtk_vbox_new(FALSE, 1);
- gtk_container_add(GTK_CONTAINER(frame), vbox);
- gtk_widget_show(vbox);
-
- /* main window fixed: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
- button = gtk_check_button_new_with_label(RADIO_BUTTON_WINDOW_FIXED);
- xsane_back_gtk_set_tooltip(dialog->tooltips, button, DESC_MAIN_WINDOW_FIXED);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.main_window_fixed);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
- gtk_widget_show(button);
- gtk_widget_show(hbox);
- xsane_setup.main_window_fixed_button = button;
-
-
- /* preserve preview image: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
- button = gtk_check_button_new_with_label(RADIO_BUTTON_PRESERVE_PRVIEW);
- xsane_back_gtk_set_tooltip(dialog->tooltips, button, DESC_PREVIEW_PRESERVE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.preserve_preview);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
- gtk_widget_show(button);
- gtk_widget_show(hbox);
- xsane_setup.preview_preserve_button = button;
-
-
- /* private colormap: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
- button = gtk_check_button_new_with_label(RADIO_BUTTON_PRIVATE_COLORMAP);
- xsane_back_gtk_set_tooltip(dialog->tooltips, button, DESC_PREVIEW_COLORMAP);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.preview_own_cmap);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
- gtk_widget_show(button);
- gtk_widget_show(hbox);
- xsane_setup.preview_own_cmap_button = button;
-
-
- xsane_separator_new(vbox, 2);
-
-
- /* preview gamma correction value: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show(hbox);
-
- label = gtk_label_new(TEXT_SETUP_PREVIEW_GAMMA);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- snprintf(buf, sizeof(buf), "%1.2f", preferences.preview_gamma);
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PREVIEW_GAMMA);
- gtk_widget_set_usize(text, 50, 0);
- gtk_entry_set_text(GTK_ENTRY(text), buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- xsane_setup.preview_gamma_entry = text;
-
- /* red preview gamma correction value: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show(hbox);
-
- label = gtk_label_new(TEXT_SETUP_PREVIEW_GAMMA_RED);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- snprintf(buf, sizeof(buf), "%1.2f", preferences.preview_gamma_red);
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PREVIEW_GAMMA_RED);
- gtk_widget_set_usize(text, 50, 0);
- gtk_entry_set_text(GTK_ENTRY(text), buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- xsane_setup.preview_gamma_red_entry = text;
-
- /* green preview gamma correction value: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show(hbox);
-
- label = gtk_label_new(TEXT_SETUP_PREVIEW_GAMMA_GREEN);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- snprintf(buf, sizeof(buf), "%1.2f", preferences.preview_gamma_green);
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PREVIEW_GAMMA_GREEN);
- gtk_widget_set_usize(text, 50, 0);
- gtk_entry_set_text(GTK_ENTRY(text), buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- xsane_setup.preview_gamma_green_entry = text;
-
- /* blue preview gamma correction value: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show(hbox);
-
- label = gtk_label_new(TEXT_SETUP_PREVIEW_GAMMA_BLUE);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- snprintf(buf, sizeof(buf), "%1.2f", preferences.preview_gamma_blue);
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_PREVIEW_GAMMA_BLUE);
- gtk_widget_set_usize(text, 50, 0);
- gtk_entry_set_text(GTK_ENTRY(text), buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- xsane_setup.preview_gamma_blue_entry = text;
-
-
- xsane_separator_new(vbox, 2);
-
-
- /* docviewer */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_HELPFILE_VIEWER);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_DOC_VIEWER);
- gtk_widget_set_usize(text, 250, 0);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.doc_viewer);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.doc_viewer_entry = text;
-
-
- xsane_separator_new(vbox, 4);
-
-
- /* apply button */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- button = gtk_button_new_with_label(BUTTON_APPLY);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_display_apply_changes, 0);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- gtk_widget_show(hbox);
-
-
-
-
- /* Fax options notebook page */
-
- setup_vbox = gtk_vbox_new(FALSE, 5);
-
- label = gtk_label_new(NOTEBOOK_FAX_OPTIONS);
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
- gtk_widget_show(setup_vbox);
-
- frame = gtk_frame_new(0);
- gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
- gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
- gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
- gtk_widget_show(frame);
-
- vbox = gtk_vbox_new(FALSE, 1);
- gtk_container_add(GTK_CONTAINER(frame), vbox);
- gtk_widget_show(vbox);
-
- /* faxcommand : */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_FAX_COMMAND);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAX_COMMAND);
- gtk_widget_set_usize(text, 250, 0);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_command);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.fax_command_entry = text;
-
-
- /* fax receiver option: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_FAX_RECEIVER_OPTION);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAX_RECEIVER_OPT);
- gtk_widget_set_usize(text, 50, 0);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_receiver_option);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.fax_receiver_option_entry = text;
-
-
-/* fax postscript option: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_FAX_POSTSCRIPT_OPT);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAX_POSTSCRIPT_OPT);
- gtk_widget_set_usize(text, 50, 0);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_postscript_option);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.fax_postscript_option_entry = text;
-
-
- /* fax normal mode option : */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_FAX_NORMAL_MODE_OPT);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAX_NORMAL_OPT);
- gtk_widget_set_usize(text, 50, 0);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_normal_option);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.fax_normal_option_entry = text;
-
-
- /* fax fine mode option : */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_FAX_FINE_MODE_OPT);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAX_FINE_OPT);
- gtk_widget_set_usize(text, 50, 0);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_fine_option);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.fax_fine_option_entry = text;
-
-
- xsane_separator_new(vbox, 2);
-
-
- /* faxviewer */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_FAX_VIEWER);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAX_VIEWER);
- gtk_widget_set_usize(text, 250, 0);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_viewer);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.fax_viewer_entry = text;
-
-
- xsane_separator_new(vbox, 4);
-
- /* fax width: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_FAX_WIDTH);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAX_WIDTH);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.fax_width);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.fax_width_entry = text;
-
- /* fax height: */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_FAX_HEIGHT);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAX_HEIGHT);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.fax_height);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.fax_height_entry = text;
-
- /* fax left offset : */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_FAX_LEFT);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAX_LEFTOFFSET);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.fax_leftoffset);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.fax_leftoffset_entry = text;
-
- /* fax bottom offset : */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- label = gtk_label_new(TEXT_SETUP_FAX_BOTTOM);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show(label);
-
- text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAX_BOTTOMOFFSET);
- gtk_widget_set_usize(text, 50, 0);
- snprintf(buf, sizeof(buf), "%3.2f", preferences.fax_bottomoffset);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
- xsane_setup.fax_bottomoffset_entry = text;
-
- xsane_separator_new(vbox, 4);
-
- /* apply button */
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- button = gtk_button_new_with_label(BUTTON_APPLY);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_fax_apply_changes, 0);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- gtk_widget_show(hbox);
-
-
-
-
- /* fill in action area: */
- hbox = GTK_DIALOG(setup_dialog)->action_area;
-
- button = gtk_button_new_with_label(BUTTON_OK);
- GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_options_ok_callback, setup_dialog);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_grab_default(button);
- gtk_widget_show(button);
-
- button = gtk_button_new_with_label(BUTTON_CANCEL);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_close_setup_dialog_callback, setup_dialog);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- gtk_widget_show(setup_dialog);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/frontend/xsane-text.h b/frontend/xsane-text.h
deleted file mode 100644
index 5cc3367..0000000
--- a/frontend/xsane-text.h
+++ /dev/null
@@ -1,417 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane-text.h
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* ------------------------------------------------------------------------ */
-
-#ifndef XSANE_TEXT_H
-#define XSANE_TEXT_H
-
-#define XSANE_STRSTATUS(status) _(sane_strstatus(status))
-#define _BGT(text) dgettext(xsane.backend, text)
-
-#define WINDOW_ABOUT _("About")
-#define WINDOW_AUTHORIZE _("authorization")
-#define WINDOW_INFO _("info")
-#define WINDOW_BATCH_SCAN _("batch scan")
-#define WINDOW_FAX_PROJECT _("fax project")
-#define WINDOW_FAX_RENAME _("rename fax page")
-#define WINDOW_SETUP _("setup")
-#define WINDOW_HISTOGRAM _("Histogram")
-#define WINDOW_STANDARD_OPTIONS _("Standard options")
-#define WINDOW_ADVANCED_OPTIONS _("Advanced options")
-#define WINDOW_DEVICE_SELECTION _("device selection")
-#define WINDOW_PREVIEW _("Preview")
-#define WINDOW_OUTPUT_FILENAME _("output filename")
-#define WINDOW_SAVE_SETTINGS _("save device settings")
-#define WINDOW_LOAD_SETTINGS _("load device settings")
-
-#define MENU_FILE _("File")
-#define MENU_PREFERENCES _("Preferences")
-#define MENU_VIEW _("View")
-#define MENU_HELP _("Help")
-
-#define MENU_ITEM_ABOUT _("About")
-#define MENU_ITEM_INFO _("Info")
-#define MENU_ITEM_EXIT _("Exit")
-
-#define FRAME_RAW_IMAGE _("Raw image")
-#define FRAME_ENHANCED_IMAGE _("Enhanced image")
-
-#define BUTTON_START _("Start")
-#define BUTTON_OK _("Ok")
-#define BUTTON_APPLY _("Apply")
-#define BUTTON_CANCEL _("Cancel")
-#define BUTTON_CLOSE _("Close")
-#define BUTTON_OVERWRITE _("Overwrite")
-#define BUTTON_ADD_AREA _("Add area")
-#define BUTTON_DELETE _("Delete")
-#define BUTTON_SHOW _("Show")
-#define BUTTON_RENAME _("Rename")
-#define BUTTON_CREATE_PROJECT _("Create project")
-#define BUTTON_SEND_PROJECT _("Send project")
-#define BUTTON_DELETE_PROJECT _("Delete project")
-#define BUTTON_ADD_PRINTER _("Add printer")
-#define BUTTON_DELETE_PRINTER _("Delete printer")
-#define BUTTON_PREVIEW_ACQUIRE _("Acquire Preview")
-#define BUTTON_PREVIEW_CANCEL _("Cancel Preview")
-
-#define RADIO_BUTTON_FINE_MODE _("Fine mode")
-#define RADIO_BUTTON_OVERWRITE_WARNING _("Overwrite warning")
-#define RADIO_BUTTON_INCREASE_COUNTER _("Increase filename counter")
-#define RADIO_BUTTON_SKIP_EXISTING_NRS _("Skip existing numbers")
-#define RADIO_BUTTON_WINDOW_FIXED _("Main window size fixed")
-#define RADIO_BUTTON_PRESERVE_PRVIEW _("Preserve preview image")
-#define RADIO_BUTTON_PRIVATE_COLORMAP _("Use private colormap")
-
-#define TEXT_AVAILABLE_DEVICES _("Available devices:")
-#define TEXT_XSANE_OPTIONS _("XSane options")
-#define TEXT_XSANE_MODE _("XSane mode")
-#define TEXT_SCANNER_BACKEND _("Scanner and backend:")
-#define TEXT_VENDOR _("Vendor:")
-#define TEXT_MODEL _("Model:")
-#define TEXT_TYPE _("Type:")
-#define TEXT_DEVICE _("Device:")
-#define TEXT_LOADED_BACKEND _("Loaded backend:")
-#define TEXT_SANE_VERSION _("Sane version:")
-#define TEXT_RECENT_VALUES _("Recent values:")
-#define TEXT_GAMMA_CORR_BY _("Gamma correction by:")
-#define TEXT_SCANNER _("scanner")
-#define TEXT_SOFTWARE_XSANE _("software (xsane)")
-#define TEXT_NONE _("none")
-#define TEXT_GAMMA_INPUT_DEPTH _("Gamma input depth:")
-#define TEXT_GAMMA_OUTPUT_DEPTH _("Gamma output depth:")
-#define TEXT_SCANNER_OUTPUT_DEPTH _("Scanner output depth:")
-#define TEXT_OUTPUT_FORMATS _("XSane output formats:")
-#define TEXT_8BIT_FORMATS _("8 bit output formats:")
-#define TEXT_16BIT_FORMATS _("16 bit output formats:")
-#define TEXT_AUTHORIZATION_REQ _("Authorization required for")
-#define TEXT_USERNAME _("Username :")
-#define TEXT_PASSWORD _("Password :")
-#define TEXT_INVALID_PARAMS _("Invalid parameters.")
-#define TEXT_VERSION _("version:")
-#define TEXT_PACKAGE _("package")
-#define TEXT_WITH_GIMP_SUPPORT _("with GIMP support")
-#define TEXT_WITHOUT_GIMP_SUPPORT _("without GIMP support")
-#define TEXT_GIMP_VERSION _("compiled with GIMP-")
-#define TEXT_UNKNOWN _("unknown")
-#define TEXT_EMAIL _("Email:")
-#define TEXT_FILE _("File:")
-
-#define TEXT_INFO_BOX _("0x0: 0KB")
-
-#define TEXT_SETUP_PRINTER_SEL _("Printer selection:")
-#define TEXT_SETUP_PRINTER_NAME _("Name:")
-#define TEXT_SETUP_PRINTER_CMD _("Command:")
-#define TEXT_SETUP_COPY_NR_OPT _("Copy number option:")
-#define TEXT_SETUP_PRINTER_RES _("Resolution (dpi):")
-#define TEXT_SETUP_PRINTER_WIDTH _("Width [mm]:")
-#define TEXT_SETUP_PRINTER_HEIGHT _("Height [mm]:")
-#define TEXT_SETUP_PRINTER_LEFT _("Left offset [mm]:")
-#define TEXT_SETUP_PRINTER_BOTTOM _("Bottom offset [mm]:")
-#define TEXT_SETUP_PRINTER_GAMMA _("Printer gamma value:")
-#define TEXT_SETUP_PRINTER_GAMMA_RED _("Printer gamma red:")
-#define TEXT_SETUP_PRINTER_GAMMA_GREEN _("Printer gamma green:")
-#define TEXT_SETUP_PRINTER_GAMMA_BLUE _("Printer gamma blue:")
-#define TEXT_SETUP_JPEG_QUALITY _("JPEG image quality")
-#define TEXT_SETUP_PNG_COMPRESSION _("PNG image compression")
-#define TEXT_SETUP_TIFF_COMPRESSION _("TIFF multi bit image compression")
-#define TEXT_SETUP_TIFF_COMPRESSION_1 _("TIFF lineart image compression")
-#define TEXT_SETUP_PREVIEW_GAMMA _("Preview gamma:")
-#define TEXT_SETUP_PREVIEW_GAMMA_RED _("Preview gamma red:")
-#define TEXT_SETUP_PREVIEW_GAMMA_GREEN _("Preview gamma green:")
-#define TEXT_SETUP_PREVIEW_GAMMA_BLUE _("Preview gamma blue:")
-#define TEXT_SETUP_HELPFILE_VIEWER _("Helpfile viewer (HTML):")
-#define TEXT_SETUP_FAX_COMMAND _("Command:")
-#define TEXT_SETUP_FAX_RECEIVER_OPTION _("Receiver option:")
-#define TEXT_SETUP_FAX_POSTSCRIPT_OPT _("Postscriptfile option:")
-#define TEXT_SETUP_FAX_NORMAL_MODE_OPT _("Normal mode option:")
-#define TEXT_SETUP_FAX_FINE_MODE_OPT _("Fine mode option:")
-#define TEXT_SETUP_FAX_VIEWER _("Viewer (Postscript):")
-#define TEXT_SETUP_FAX_WIDTH _("Width [mm]:")
-#define TEXT_SETUP_FAX_HEIGHT _("Height [mm]:")
-#define TEXT_SETUP_FAX_LEFT _("Left offset [mm]:")
-#define TEXT_SETUP_FAX_BOTTOM _("Bottom offset [mm]:")
-
-#define NOTEBOOK_COPY_OPTIONS _("Copy options")
-#define NOTEBOOK_SAVING_OPTIONS _("Saving options")
-#define NOTEBOOK_DISPLAY_OPTIONS _("Display options")
-#define NOTEBOOK_FAX_OPTIONS _("Fax options")
-
-#define MENU_ITEM_SCAN _("Scan")
-#define MENU_ITEM_COPY _("Copy")
-#define MENU_ITEM_FAX _("Fax")
-
-#define MENU_ITEM_SHOW_TOOLTIPS _("Show tooltips")
-#define MENU_ITEM_SHOW_PREVIEW _("Show preview")
-#define MENU_ITEM_SHOW_HISTOGRAM _("Show histogram")
-#define MENU_ITEM_SHOW_STANDARDOPTIONS _("Show standard options")
-#define MENU_ITEM_SHOW_ADVANCEDOPTIONS _("Show advanced options")
-
-#define MENU_ITEM_SETUP _("Setup")
-#define MENU_ITEM_LENGTH_UNIT _("Length unit")
-#define SUBMENU_ITEM_LENGTH_MILLIMETERS _("millimeters")
-#define SUBMENU_ITEM_LENGTH_CENTIMETERS _("centimeters")
-#define SUBMENU_ITEM_LENGTH_INCHES _("inches")
-#define MENU_ITEM_UPDATE_POLICY _("Update policy")
-#define SUBMENU_ITEM_POLICY_CONTINUOUS _("continuous")
-#define SUBMENU_ITEM_POLICY_DISCONTINU _("discontinuous")
-#define SUBMENU_ITEM_POLICY_DELAYED _("delayed")
-#define MENU_ITEM_SHOW_RESOLUTIONLIST _("Show resolution list")
-#define MENU_ITEM_PAGE_ROTATE _("Rotate postscript")
-#define MENU_ITEM_SAVE_DEVICE_SETTINGS _("Save device settings")
-#define MENU_ITEM_LOAD_DEVICE_SETTINGS _("Load device settings")
-
-#define MENU_ITEM_XSANE_DOC _("Xsane doc")
-#define MENU_ITEM_BACKEND_DOC _("Backend doc")
-#define MENU_ITEM_AVAILABLE_BACKENDS _("Available backends")
-#define MENU_ITEM_SCANTIPS _("Scantips")
-#define MENU_ITEM_PROBLEMS _("Problems?")
-
-#define MENU_ITEM_TIFF_COMP_NONE _("no compression")
-#define MENU_ITEM_TIFF_COMP_CCITTRLE _("CCITT 1D Huffman compression")
-#define MENU_ITEM_TIFF_COMP_CCITFAX3 _("CCITT Group 3 Fax compression")
-#define MENU_ITEM_TIFF_COMP_CCITFAX4 _("CCITT Group 4 Fax compression")
-#define MENU_ITEM_TIFF_COMP_JPEG _("JPEG DCT compression")
-#define MENU_ITEM_TIFF_COMP_PACKBITS _("pack bits")
-
-#define MENU_ITEM_FILETYPE_JPEG _(".jpeg")
-#define MENU_ITEM_FILETYPE_PNG _(".png")
-#define MENU_ITEM_FILETYPE_PNM _(".pnm")
-#define MENU_ITEM_FILETYPE_PS _(".ps")
-#define MENU_ITEM_FILETYPE_RAW _(".raw")
-#define MENU_ITEM_FILETYPE_TIFF _(".tiff")
-#define MENU_ITEM_FILETYPE_BY_EXT _("by ext")
-
-#define PROGRESS_SAVING _("Saving image")
-#define PROGRESS_SAVING_FAX _("Saving fax image")
-#define PROGRESS_CONVERTING_DATA _("Converting data....")
-#define PROGRESS_CONVERTING_PS _("Converting to postscript")
-#define PROGRESS_SCANNING _("Scanning")
-#define PROGRESS_RECEIVING_SCAN _("Receiving %s data for `%s'...")
-#define PROGRESS_RECEIVING_COPY _("Receiving %s data for photocopy ...")
-#define PROGRESS_RECEIVING_FAX _("Receiving %s data for fax ...")
-#define PROGRESS_RECEIVING_GIMP _("Receiving %s data for GIMP...")
-
-
-#define DESC_XSANE_MODE _("Use XSane for SCANning, photoCOPYing, FAXing...")
-
-#define DESC_BROWSE_FILENAME _("Browse for image filename")
-#define DESC_FILENAME _("Filename for scanned image")
-#define DESC_FILETYPE _("Filename extension and type of image format")
-#define DESC_FAXPROJECT _("Enter name of fax project")
-#define DESC_FAXPAGENAME _("Enter new name for faxpage")
-#define DESC_FAXRECEIVER _("Enter receiver phone number or address")
-
-#define DESC_PRINTER_SELECT _("Select printer definition")
-
-#define DESC_RESOLUTION _("Set scan resolution")
-#define DESC_RESOLUTION_X _("Set scan resolution for x direction")
-#define DESC_RESOLUTION_Y _("Set scan resolution for y direction")
-#define DESC_ZOOM _("Set zoomfactor")
-#define DESC_ZOOM_X _("Set zoomfactor for x direction")
-#define DESC_ZOOM_Y _("Set zoomfactor for y direction")
-#define DESC_COPY_NUMBER _("Set number of copies")
-
-#define DESC_NEGATIVE _("Negative: Invert colors for scanning negatives\n" \
- "e.g. swap black and white")
-
-#define DESC_GAMMA _("Set gamma value")
-#define DESC_GAMMA_R _("Set gamma value for red component")
-#define DESC_GAMMA_G _("Set gamma value for green component")
-#define DESC_GAMMA_B _("Set gamma value for blue component")
-
-#define DESC_BRIGHTNESS _("Set brightness")
-#define DESC_BRIGHTNESS_R _("Set brightness for red component")
-#define DESC_BRIGHTNESS_G _("Set brightness for green component")
-#define DESC_BRIGHTNESS_B _("Set brightness for blue component")
-
-#define DESC_CONTRAST _("Set contrast")
-#define DESC_CONTRAST_R _("Set contrast for red component")
-#define DESC_CONTRAST_G _("Set contrast for green component")
-#define DESC_CONTRAST_B _("Set contrast for blue component")
-
-#define DESC_RGB_DEFAULT _("RGB default: Set enhancement values for red, green and blue to default values:\n" \
- " gamma = 1.0\n" \
- " brightness = 0\n" \
- " contrast = 0")
-
-#define DESC_ENH_AUTO _("Autoadjust gamma, brightness and contrast in dependance of selected area")
-#define DESC_ENH_DEFAULT _("Set default enhancement values:\n" \
- "gamma = 1.0\n" \
- "brightness = 0\n" \
- "contrast = 0")
-#define DESC_ENH_RESTORE _("Restore enhancement values from preferences")
-#define DESC_ENH_STORE _("Store active enhancement values to preferences")
-
-#define DESC_HIST_INTENSITY _("Show histogram of intensity/gray")
-#define DESC_HIST_RED _("Show histogram of red component")
-#define DESC_HIST_GREEN _("Show histogram of green component")
-#define DESC_HIST_BLUE _("Show histogram of blue component")
-#define DESC_HIST_PIXEL _("Display histogram with lines instead of pixels")
-#define DESC_HIST_LOG _("Show logarithm of pixelcount")
-
-#define DESC_PRINTER_SETUP _("Select definition to change")
-#define DESC_PRINTER_NAME _("Define a name for the selection of this definition")
-#define DESC_PRINTER_COMMAND _("Enter command to be executed in copy mode (e.g. \"lpr -\")")
-#define DESC_COPY_NUMBER_OPTION _("Enter option for copy numbers")
-#define DESC_PRINTER_RESOLUTION _("Resolution with which images are printed and saved in postscript")
-#define DESC_PRINTER_WIDTH _("Width of printable area in mm")
-#define DESC_PRINTER_HEIGHT _("Height of printable area in mm")
-#define DESC_PRINTER_LEFTOFFSET _("Left offset from the edge of the paper to the printable area in mm")
-#define DESC_PRINTER_BOTTOMOFFSET _("Bottom offset from the edge of the paper to the printable area in mm")
-#define DESC_PRINTER_GAMMA _("Additional gamma value for photocopy")
-#define DESC_PRINTER_GAMMA_RED _("Additional gamma value for red component for photocopy")
-#define DESC_PRINTER_GAMMA_GREEN _("Additional gamma value for green component for photocopy")
-#define DESC_PRINTER_GAMMA_BLUE _("Additional gamma value for blue component for photocopy")
-#define DESC_JPEG_QUALITY _("Quality in percent if image is saved as jpeg or tiff with jpeg compression")
-#define DESC_PNG_COMPRESSION _("Compression if image is saved as png")
-#define DESC_TIFF_COMPRESSION _("Compression type if multi bit image is saved as tiff")
-#define DESC_TIFF_COMPRESSION_1 _("Compression type if lineart image is saved as tiff")
-#define DESC_OVERWRITE_WARNING _("Warn before overwriting an existing file")
-#define DESC_INCREASE_COUNTER _("If the filename is of the form \"name-001.ext\" " \
- "(where the number of digits is free) " \
- "the number is increased after a scan is finished")
-#define DESC_SKIP_EXISTING _("If filename counter is automatically increased, used numbers are skipped")
-#define DESC_MAIN_WINDOW_FIXED _("Use fixed main window size or scrolled, resizable main window")
-#define DESC_PREVIEW_PRESERVE _("Preserve preview image for next program start")
-#define DESC_PREVIEW_COLORMAP _("Use an own colormap for preview if display depth is 8 bpp")
-#define DESC_PREVIEW_GAMMA _("Set gamma correction value for preview image")
-#define DESC_PREVIEW_GAMMA_RED _("Set gamma correction value for red component of preview image")
-#define DESC_PREVIEW_GAMMA_GREEN _("Set gamma correction value for green component of preview image")
-#define DESC_PREVIEW_GAMMA_BLUE _("Set gamma correction value for blue component of preview image")
-#define DESC_DOC_VIEWER _("Enter command to be executed to display helpfiles, must be a html-viewer!")
-
-#define DESC_FAX_COMMAND _("Enter command to be executed in fax mode")
-#define DESC_FAX_RECEIVER_OPT _("Enter option to specify receiver")
-#define DESC_FAX_POSTSCRIPT_OPT _("Enter option to specify postscript files following")
-#define DESC_FAX_NORMAL_OPT _("Enter option to specify normal mode (low resolution)")
-#define DESC_FAX_FINE_OPT _("Enter option to specify fine mode (high resolution)")
-#define DESC_FAX_VIEWER _("Enter command to be executed to view a fax")
-#define DESC_FAX_FINE_MODE _("Use high vertical resolution (196 lpi instead of 98 lpi)")
-#define DESC_FAX_WIDTH _("Width of printable area in mm")
-#define DESC_FAX_HEIGHT _("Height of printable area in mm")
-#define DESC_FAX_LEFTOFFSET _("Left offset from the edge of the paper to the printable area in mm")
-#define DESC_FAX_BOTTOMOFFSET _("Bottom offset from the edge of the paper to the printable area in mm")
-
-#define DESC_PIPETTE_WHITE _("Pick white point")
-#define DESC_PIPETTE_GRAY _("Pick gray point")
-#define DESC_PIPETTE_BLACK _("Pick black point")
-
-#define DESC_ZOOM_FULL _("Use full scanarea")
-#define DESC_ZOOM_OUT _("Zoom 20% out")
-#define DESC_ZOOM_IN _("Zoom into selected area")
-#define DESC_ZOOM_UNDO _("Undo last zoom")
-
-#define DESC_FULL_PREVIEW_AREA _("Select visible area")
-
-
-#define ERR_HOME_DIR _("Failed to determine home directory:")
-#define ERR_FILENAME_TOO_LONG _("Filename too long")
-#define ERR_SET_OPTION _("Failed to set value of option")
-#define ERR_GET_OPTION _("Failed to obtain value of option")
-#define ERR_OPTION_COUNT _("Error obtaining option count")
-#define ERR_DEVICE_OPEN_FAILED _("Failed to open device")
-#define ERR_NO_DEVICES _("no devices available")
-#define ERR_DURING_READ _("Error during read:")
-#define ERR_DURING_SAVE _("Error during save:")
-#define ERR_BAD_DEPTH _("Can't handle depth")
-#define ERR_GIMP_BAD_DEPTH _("GIMP can't handle depth")
-#define ERR_UNKNOWN_SAVING_FORMAT _("Unknown file format for saving")
-#define ERR_OPEN_FAILED _("Failed to open")
-#define ERR_FAILED_PRINTER_PIPE _("Failed to open pipe for executing printercommand")
-#define ERR_FAILED_EXEC_PRINTER_CMD _("Failed to execute printercommand:")
-#define ERR_FAILED_START_SCANNER _("Failed to start scanner:")
-#define ERR_FAILED_GET_PARAMS _("Failed to get parameters:")
-#define ERR_NO_OUTPUT_FORMAT _("No output format given")
-#define ERR_NO_MEM _("out of memory")
-#define ERR_LIBTIFF _("LIBTIFF reports error")
-#define ERR_LIBPNG _("LIBPNG reports error")
-#define ERR_UNKNOWN_TYPE _("unknown type")
-#define ERR_UNKNOWN_CONSTRAINT_TYPE _("unknown constraint type")
-#define ERR_FAILD_EXEC_DOC_VIEWER _("Failed to execute documentation viewer:")
-#define ERR_FAILD_EXEC_FAX_VIEWER _("Failed to execute fax viewer:")
-#define ERR_FAILED_EXEC_FAX_CMD _("Failed to execute faxcommand:")
-#define ERR_BAD_FRAME_FORMAT _("bad frame format")
-#define ERR_FAILED_SET_RESOLUTION _("unable to set resolution")
-
-#define ERR_ERROR _("error")
-#define ERR_MAJOR_VERSION_NR_CONFLICT _("Sane major version number mismatch!")
-#define ERR_XSANE_MAJOR_VERSION _("xsane major version =")
-#define ERR_BACKEND_MAJOR_VERSION _("backend major version =")
-#define ERR_PROGRAM_ABORTED _("*** PROGRAM ABORTED ***")
-
-#define ERR_FAILED_ALLOCATE_IMAGE _("Failed to allocate image memory:")
-#define ERR_PREVIEW_BAD_DEPTH _("Preview cannot handle bit depth")
-#define ERR_GIMP_SUPPORT_MISSING _("GIMP support missing")
-
-#define WARN_COUNTER_OVERFLOW _("Filename counter overflow")
-#define WARN_NO_VALUE_CONSTRAINT _("warning: option has no value constraint")
-
-#define ERR_BUTTON_OK _("Ok")
-#define ERR_HEADER_ERROR _("Error")
-#define ERR_HEADER_WARNING _("Warning")
-
-#define ERR_FAILED_CREATE_FILE _("Failed to create file:")
-#define ERR_LOAD_DEVICE_SETTINGS _("Error while loading device settings:")
-#define ERR_NO_DRC_FILE _("is not a device-rc-file !!!")
-#define ERR_NETSCAPE_EXECUTE_FAIL _("Failed to execute netscape!")
-#define ERR_SENDFAX_RECEIVER_MISSING _("Send fax: no receiver defined")
-
-#define ERR_CREATED_FOR_DEVICE _("has been created for device")
-#define ERR_USED_FOR_DEVICE _("you want to use it for device")
-#define ERR_MAY_CAUSE_PROBLEMS _("this may cause problems!")
-
-#define TEXT_USAGE _("Usage:")
-#define TEXT_USAGE_OPTIONS _("[OPTION]... [DEVICE]")
-#define TEXT_HELP _(\
-"Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\
-\n\
--h, --help display this help message and exit\n\
--v, --version print version information\n\
-\n\
--d, --device-settings file load device settings from file (without \".drc\")\n\
-\n\
--s, --scan start with scan-mode active\n\
--c, --copy start with copy-mode active\n\
--f, --fax start with fax-mode active\n\
--n, --no-mode-selection disable menu for xsane mode selection\n\
-\n\
--F, --Fixed fixed main window size (overwrite preferences value)\n\
--R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\
-\n\
---display X11-display redirect output to X11-display\n\
---no-xshm do not use shared memory images\n\
---sync request a synchronous connection with the X11 server\
-")
-
-/* strings for gimp plugin */
-
-#define XSANE_GIMP_INSTALL_BLURB _("Front-end to the SANE interface")
-#define XSANE_GIMP_INSTALL_HELP _("This function provides access to scanners and other image acquisition devices through the SANE (Scanner Access Now Easy) interface.")
-
-/* Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/" */
-#define XSANE_GIMP_MENU_DIALOG _("<Toolbox>/File/Acquire/XSane: Device dialog...")
-#define XSANE_GIMP_MENU _("<Toolbox>/File/Acquire/XSane: ")
-#define XSANE_GIMP_MENU_DIALOG_OLD _("<Toolbox>/Xtns/XSane/Device dialog...")
-#define XSANE_GIMP_MENU_OLD _("<Toolbox>/Xtns/XSane/")
-
-#endif
diff --git a/frontend/xsane.c b/frontend/xsane.c
deleted file mode 100644
index 89a54a0..0000000
--- a/frontend/xsane.c
+++ /dev/null
@@ -1,4829 +0,0 @@
-/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
-
- xsane.c
-
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
- This file is part of the XSANE package.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#include "xsane.h"
-#include "xsane-back-gtk.h"
-#include "xsane-front-gtk.h"
-#include "xsane-preview.h"
-#include "xsane-save.h"
-#include "xsane-gamma.h"
-#include "xsane-setup.h"
-#include "xsane-scan.h"
-#include "xsane-rc-io.h"
-#include "xsane-device-preferences.h"
-#include "xsane-preferences.h"
-#include "xsane-icons.h"
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
-#include <png.h>
-#include <zlib.h>
-#endif
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-char *path_sane_tmp = NULL;
-extern int errno;
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-struct option long_options[] =
-{
- {"help", no_argument, 0, 'h'},
- {"version", no_argument, 0, 'v'},
- {"device-settings", required_argument, 0, 'd'},
- {"scan", no_argument, 0, 's'},
- {"copy", no_argument, 0, 'c'},
- {"no-mode-selection", no_argument, 0, 'n'},
- {"fax", no_argument, 0, 'f'},
- {"Fixed", no_argument, 0, 'F'},
- {"Resizeable", no_argument, 0, 'R'},
- {0, }
-};
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-int xsane_back_gtk_message_dialog_active = 0;
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-const char *prog_name = 0;
-const char *device_text = 0;
-GtkWidget *choose_device_dialog = 0;
-GSGDialog *dialog = 0;
-const SANE_Device **devlist = 0;
-gint seldev = -1; /* The selected device */
-gint ndevs; /* The number of available devices */
-struct Xsane xsane;
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-int xsane_scanmode_number[] = { XSANE_SCAN, XSANE_COPY, XSANE_FAX };
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#define XSANE_GTK_NAME_RESOLUTION "GtkMenuResolution"
-#define XSANE_GTK_NAME_X_RESOLUTION "GtkMenuXResolution"
-#define XSANE_GTK_NAME_Y_RESOLUTION "GtkMenuYResolution"
-
-#define XSANE_GTK_NAME_ZOOM "GtkMenuZoom"
-#define XSANE_GTK_NAME_X_ZOOM "GtkMenuXZoom"
-#define XSANE_GTK_NAME_Y_ZOOM "GtkMenuYZoom"
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* forward declarations: */
-
-static int xsane_option_defined(char *string);
-static int xsane_parse_options(char *options, char *argv[]);
-static void xsane_update_param(GSGDialog *dialog, void *arg);
-static void xsane_zoom_update(GtkAdjustment *adj_data, double *val);
-static void xsane_resolution_scale_update(GtkAdjustment *adj_data, double *val);
-static void xsane_gamma_changed(GtkAdjustment *adj_data, double *val);
-static void xsane_modus_callback(GtkWidget *xsane_parent, int *num);
-static void xsane_filetype_callback(GtkWidget *widget, gpointer data);
-static void xsane_outputfilename_changed_callback(GtkWidget *widget, gpointer data);
-static void xsane_browse_filename_callback(GtkWidget *widget, gpointer data);
-static void xsane_outputfilename_new(GtkWidget *vbox);
-static void xsane_faxreceiver_changed_callback(GtkWidget *widget, gpointer data);
-static void xsane_faxproject_changed_callback(GtkWidget *widget, gpointer data);
-static void xsane_fax_fine_mode_callback(GtkWidget * widget);
-static void xsane_enhancement_rgb_default_callback(GtkWidget * widget);
-static void xsane_enhancement_negative_callback(GtkWidget * widget);
-static void xsane_auto_enhancement_callback(GtkWidget * widget);
-static void xsane_show_standard_options_callback(GtkWidget * widget);
-static void xsane_show_advanced_options_callback(GtkWidget * widget);
-static void xsane_show_histogram_callback(GtkWidget * widget);
-static void xsane_printer_callback(GtkWidget *widget, gpointer data);
-static void xsane_update_preview(GSGDialog *dialog, void *arg);
-void xsane_pref_save(void);
-static void xsane_pref_restore(void);
-static void xsane_quit(void);
-static void xsane_exit(void);
-static gint xsane_standard_option_win_delete(GtkWidget *widget, gpointer data);
-static gint xsane_advanced_option_win_delete(GtkWidget *widget, gpointer data);
-static gint xsane_scan_win_delete(GtkWidget *w, gpointer data);
-static gint xsane_preview_window_destroyed(GtkWidget *widget, gpointer call_data);
-static void xsane_show_preview_callback(GtkWidget * widget, gpointer call_data);
-static GtkWidget *xsane_files_build_menu(void);
-static void xsane_set_pref_unit_callback(GtkWidget *widget, gpointer data);
-static void xsane_set_update_policy_callback(GtkWidget *widget, gpointer data);
-static gint xsane_close_info_callback(GtkWidget *widget, gpointer data);
-static void xsane_info_dialog(GtkWidget *widget, gpointer data);
-static void xsane_about_dialog(GtkWidget *widget, gpointer data);
-static SANE_Status xsane_get_area_value(int option, float *val, SANE_Int *unit);
-#ifdef XSANE_TEST
-static void xsane_batch_scan_delete_callback(GtkWidget *widget, gpointer list);
-static void xsane_batch_scan_add_callback(GtkWidget *widget, gpointer list);
-static void xsane_batch_scan_dialog(GtkWidget *widget, gpointer data);
-#endif
-static void xsane_fax_dialog(void);
-static void xsane_fax_dialog_close(void);
-static void xsane_fax_project_delete(void);
-void xsane_fax_project_save(void);
-static void xsane_fax_project_load(void);
-static void xsane_fax_project_create(void);
-static void xsane_pref_toggle_tooltips(GtkWidget *widget, gpointer data);
-static void xsane_show_doc(GtkWidget *widget, gpointer data);
-static void xsane_fax_entrys_swap(GtkWidget *list_item_1, GtkWidget *list_item_2);
-static void xsane_fax_entry_move_up_callback(GtkWidget *widget, gpointer list);
-static void xsane_fax_entry_move_down_callback(GtkWidget *widget, gpointer list);
-static void xsane_fax_entry_rename_callback(GtkWidget *widget, gpointer list);
-static void xsane_fax_entry_delete_callback(GtkWidget *widget, gpointer list);
-static void xsane_fax_show_callback(GtkWidget *widget, gpointer data);
-static void xsane_fax_send(void);
-static GtkWidget *xsane_view_build_menu(void);
-static GtkWidget *xsane_pref_build_menu(void);
-static GtkWidget *xsane_help_build_menu(void);
-static void xsane_device_dialog(void);
-static void xsane_choose_dialog_ok_callback(void);
-static void xsane_select_device_by_key_callback(GtkWidget * widget, gpointer data);
-static void xsane_select_device_by_mouse_callback(GtkWidget * widget, GdkEventButton *event, gpointer data);
-static gint32 xsane_choose_device(void);
-static void xsane_usage(void);
-static void xsane_init(int argc, char **argv);
-void xsane_interface(int argc, char **argv);
-int main(int argc, char ** argv);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int xsane_option_defined(char *string)
-{
- if (string)
- {
- while (*string == ' ') /* skip spaces */
- {
- string++;
- }
- if (*string != 0)
- {
- return 1;
- }
- }
- return 0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int xsane_parse_options(char *options, char *argv[])
-{
- int optpos = 0;
- int bufpos = 0;
- int arg = 0;
- char buf[256];
-
- while (options[optpos] != 0)
- {
- switch(options[optpos])
- {
- case ' ':
- buf[bufpos] = 0;
- argv[arg++] = strdup(buf);
- bufpos = 0;
- optpos++;
- break;
-
- case '\"':
- optpos++; /* skip " */
- while ((options[optpos] != 0) && (options[optpos] != '\"'))
- {
- buf[bufpos++] = options[optpos++];
- }
- optpos++; /* skip " */
- break;
-
- default:
- buf[bufpos++] = options[optpos++];
- break;
- }
- }
- buf[bufpos] = 0;
- argv[arg++] = strdup(buf);
- return arg;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* Update the info line with the latest size information and update histogram. */
-static void xsane_update_param(GSGDialog *dialog, void *arg)
-{
- SANE_Parameters params;
- gchar buf[200];
-
- if (!xsane.info_label)
- {
- return;
- }
-
- if (xsane.block_update_param) /* if we change more than one value, we only want to update all once */
- {
- return;
- }
-
- if (sane_get_parameters(xsane_back_gtk_dialog_get_device(dialog), &params) == SANE_STATUS_GOOD)
- {
- float size = params.bytes_per_line * params.lines;
- const char *unit = "B";
-
- if (params.format >= SANE_FRAME_RED && params.format <= SANE_FRAME_BLUE)
- {
- size *= 3.0;
- }
-
- if (size >= 1024.0 * 1024.0)
- {
- size /= 1024.0 * 1024.0;
- unit = "MB";
- }
- else if (size >= 1024.0)
- {
- size /= 1024.0;
- unit = "KB";
- }
- snprintf(buf, sizeof(buf), "(%d x %d): %5.1f %s", params.pixels_per_line, params.lines, size, unit);
-
- if (params.format == SANE_FRAME_GRAY)
- {
- xsane.xsane_color = 0;
- }
-#ifdef SUPPORT_RGBA
- else if (params.format == SANE_FRAME_RGBA)
- {
- xsane.xsane_color = 4;
- }
-#endif
- else /* RGB */
- {
- xsane.xsane_color = 3;
- }
- }
- else
- {
- snprintf(buf, sizeof(buf), TEXT_INVALID_PARAMS);
- }
-
- gtk_label_set(GTK_LABEL(xsane.info_label), buf);
-
-
- if (xsane.preview)
- {
- preview_update_surface(xsane.preview, 0);
- }
-
- xsane_update_histogram();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_gamma_changed(GtkAdjustment *adj_data, double *val)
-{
- *val = adj_data->value;
- xsane_enhancement_by_gamma();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_modus_callback(GtkWidget *xsane_parent, int *num)
-{
-
- if (xsane.filetype) /* add extension to filename */
- {
- char buffer[256];
-
- snprintf(buffer, sizeof(buffer), "%s%s", preferences.filename, xsane.filetype);
- free(preferences.filename);
- free(xsane.filetype);
- xsane.filetype = 0;
- preferences.filename = strdup(buffer);
- }
-
- xsane.xsane_mode = *num;
- xsane_refresh_dialog(dialog);
-
- if (xsane.xsane_mode != XSANE_FAX)
- {
- xsane_fax_dialog_close();
- gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE);
- }
-
- xsane_define_maximum_output_size();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_filetype_callback(GtkWidget *widget, gpointer data)
-{
- if (data)
- {
- char *extension, *filename;
-
- extension = strrchr(preferences.filename, '.');
-
- if ((extension) && (extension != preferences.filename))
- {
- if ( (!strcasecmp(extension, ".pnm")) || (!strcasecmp(extension, ".raw"))
- || (!strcasecmp(extension, ".png")) || (!strcasecmp(extension, ".ps"))
- || (!strcasecmp(extension, ".rgba"))
- || (!strcasecmp(extension, ".tiff")) || (!strcasecmp(extension, ".tif"))
- || (!strcasecmp(extension, ".jpg")) || (!strcasecmp(extension, ".jpeg"))
- ) /* remove filetype extension */
- {
- filename = preferences.filename;
- *extension = 0; /* remove extension */
- preferences.filename = strdup(filename); /* filename without extension */
- free(filename); /* free unused memory */
- }
- }
- }
- else if (xsane.filetype)
- {
- char buffer[256];
-
- snprintf(buffer, sizeof(buffer), "%s%s", preferences.filename, xsane.filetype);
- free(preferences.filename);
- free(xsane.filetype);
- xsane.filetype = 0;
- preferences.filename = strdup(buffer);
- }
-
- if (data)
- {
- xsane.filetype = strdup((char *) data); /* set extension for filename */
- }
-
- gtk_entry_set_text(GTK_ENTRY(xsane.outputfilename_entry), preferences.filename);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_outputfilename_changed_callback(GtkWidget *widget, gpointer data)
-{
- if (preferences.filename)
- {
- free((void *) preferences.filename);
- }
- preferences.filename = strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
-}
-
-/* ----------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_browse_filename_callback(GtkWidget *widget, gpointer data)
-{
- char filename[1024];
- char windowname[256];
-
- xsane_set_sensitivity(FALSE);
-
- if (xsane.filetype) /* set filetype to "by ext." */
- {
- char buffer[256];
-
- snprintf(buffer, sizeof(buffer), "%s%s", preferences.filename, xsane.filetype);
- free(preferences.filename);
- free(xsane.filetype);
- xsane.filetype = 0;
- preferences.filename = strdup(buffer);
- }
-
- if (preferences.filename) /* make sure a correct filename is defined */
- {
- strncpy(filename, preferences.filename, sizeof(filename));
- filename[sizeof(filename) - 1] = '\0';
- }
- else /* no filename given, take standard filename */
- {
- strcpy(filename, OUTFILENAME);
- }
-
- snprintf(windowname, sizeof(windowname), "%s %s %s", prog_name, WINDOW_OUTPUT_FILENAME, device_text);
-
- umask(preferences.directory_umask); /* define new file permissions */
- xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, TRUE);
- umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
-
- gtk_entry_set_text(GTK_ENTRY(xsane.outputfilename_entry), filename);
-
- if (preferences.filename)
- {
- free((void *) preferences.filename);
- }
-
- xsane_set_sensitivity(TRUE);
-
- preferences.filename = strdup(filename);
-
- gtk_option_menu_set_history(GTK_OPTION_MENU(xsane.filetype_option_menu), 0); /* set menu to "by ext" */
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_outputfilename_new(GtkWidget *vbox)
-{
- GtkWidget *hbox;
- GtkWidget *text;
- GtkWidget *button;
- GtkWidget *xsane_filetype_menu, *xsane_filetype_item;
-
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
-
- button = xsane_button_new_with_pixmap(hbox, file_xpm, DESC_BROWSE_FILENAME, (GtkSignalFunc) xsane_browse_filename_callback, 0);
-
- text = gtk_entry_new_with_max_length(255);
- gtk_widget_set_usize(text, 80, 0); /* set minimum size */
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FILENAME);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.filename);
- gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4);
- gtk_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_outputfilename_changed_callback, 0);
-
- xsane.outputfilename_entry = text;
-
- xsane_filetype_menu = gtk_menu_new();
-
- xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_BY_EXT);
- gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
- gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
- (GtkSignalFunc) xsane_filetype_callback, NULL);
- gtk_widget_show(xsane_filetype_item);
-
-#ifdef HAVE_LIBJPEG
- xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_JPEG);
- gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
- gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
- (GtkSignalFunc) xsane_filetype_callback, MENU_ITEM_FILETYPE_JPEG);
- gtk_widget_show(xsane_filetype_item);
-#endif
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
- xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PNG);
- gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
- gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
- (GtkSignalFunc) xsane_filetype_callback, MENU_ITEM_FILETYPE_PNG);
- gtk_widget_show(xsane_filetype_item);
-#endif
-#endif
-
- xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PNM);
- gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
- gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
- (GtkSignalFunc) xsane_filetype_callback, MENU_ITEM_FILETYPE_PNM);
- gtk_widget_show(xsane_filetype_item);
-
- xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PS);
- gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
- gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
- (GtkSignalFunc) xsane_filetype_callback, MENU_ITEM_FILETYPE_PS);
- gtk_widget_show(xsane_filetype_item);
-
- xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_RAW);
- gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
- gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
- (GtkSignalFunc) xsane_filetype_callback, MENU_ITEM_FILETYPE_RAW);
- gtk_widget_show(xsane_filetype_item);
-
-#ifdef HAVE_LIBTIFF
- xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_TIFF);
- gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
- gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
- (GtkSignalFunc) xsane_filetype_callback, MENU_ITEM_FILETYPE_TIFF);
- gtk_widget_show(xsane_filetype_item);
-#endif
-
- xsane.filetype_option_menu = gtk_option_menu_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, xsane.filetype_option_menu, DESC_FILETYPE);
- gtk_box_pack_end(GTK_BOX(hbox), xsane.filetype_option_menu, FALSE, FALSE, 2);
- gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane.filetype_option_menu), xsane_filetype_menu);
- gtk_option_menu_set_history(GTK_OPTION_MENU(xsane.filetype_option_menu), 0);
- gtk_widget_show(xsane.filetype_option_menu);
-
- gtk_widget_show(text);
- gtk_widget_show(hbox);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_faxreceiver_changed_callback(GtkWidget *widget, gpointer data)
-{
- if (xsane.fax_receiver)
- {
- free((void *) xsane.fax_receiver);
- }
- xsane.fax_receiver = strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
-
- xsane_fax_project_save();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_faxproject_changed_callback(GtkWidget *widget, gpointer data)
-{
- if (preferences.fax_project)
- {
- free((void *) preferences.fax_project);
- }
- preferences.fax_project = strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
-
- xsane_fax_project_load();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_fine_mode_callback(GtkWidget * widget)
-{
- xsane.fax_fine_mode = (GTK_TOGGLE_BUTTON(widget)->active != 0);
-
- if (xsane.fax_fine_mode)
- {
- xsane.resolution = 196;
- xsane.resolution_x = 98;
- xsane.resolution_y = 196;
- }
- else
- {
- xsane.resolution = 98;
- xsane.resolution_x = 98;
- xsane.resolution_y = 98;
- }
-
- xsane_set_all_resolutions();
-
- xsane_update_param(dialog, 0);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_enhancement_rgb_default_callback(GtkWidget * widget)
-{
- xsane.enhancement_rgb_default = (GTK_TOGGLE_BUTTON(widget)->active != 0);
-
- if (xsane.enhancement_rgb_default)
- {
- xsane.gamma_red = 1.0;
- xsane.gamma_green = 1.0;
- xsane.gamma_blue = 1.0;
-
- xsane.brightness_red = 0.0;
- xsane.brightness_green = 0.0;
- xsane.brightness_blue = 0.0;
-
- xsane.contrast_red = 0.0;
- xsane.contrast_green = 0.0;
- xsane.contrast_blue = 0.0;
-
- xsane.slider_red.value[0] = 0.0;
- xsane.slider_red.value[1] = 50.0;
- xsane.slider_red.value[2] = 100.0;
-
- xsane.slider_green.value[0] = 0.0;
- xsane.slider_green.value[1] = 50.0;
- xsane.slider_green.value[2] = 100.0;
-
- xsane.slider_blue.value[0] = 0.0;
- xsane.slider_blue.value[1] = 50.0;
- xsane.slider_blue.value[2] = 100.0;
- }
- else
- {
- xsane.slider_red.value[0] = xsane.slider_gray.value[0];
- xsane.slider_red.value[1] = xsane.slider_gray.value[1];
- xsane.slider_red.value[2] = xsane.slider_gray.value[2];
-
- xsane.slider_green.value[0] = xsane.slider_gray.value[0];
- xsane.slider_green.value[1] = xsane.slider_gray.value[1];
- xsane.slider_green.value[2] = xsane.slider_gray.value[2];
-
- xsane.slider_blue.value[0] = xsane.slider_gray.value[0];
- xsane.slider_blue.value[1] = xsane.slider_gray.value[1];
- xsane.slider_blue.value[2] = xsane.slider_gray.value[2];
- }
-
- xsane_update_sliders();
- xsane_update_gamma();
- xsane_refresh_dialog(dialog);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_enhancement_negative_callback(GtkWidget * widget)
-{
- double v0;
-
- if (xsane.negative != (GTK_TOGGLE_BUTTON(widget)->active != 0));
- {
- v0 = xsane.slider_gray.value[0];
- xsane.slider_gray.value[0] = 100.0 - xsane.slider_gray.value[2];
- xsane.slider_gray.value[1] = 100.0 - xsane.slider_gray.value[1];
- xsane.slider_gray.value[2] = 100.0 - v0;
-
- if (!xsane.enhancement_rgb_default)
- {
- v0 = xsane.slider_red.value[0];
- xsane.slider_red.value[0] = 100.0 - xsane.slider_red.value[2];
- xsane.slider_red.value[1] = 100.0 - xsane.slider_red.value[1];
- xsane.slider_red.value[2] = 100.0 - v0;
-
- v0 = xsane.slider_green.value[0];
- xsane.slider_green.value[0] = 100.0 - xsane.slider_green.value[2];
- xsane.slider_green.value[1] = 100.0 - xsane.slider_green.value[1];
- xsane.slider_green.value[2] = 100.0 - v0;
-
- v0 = xsane.slider_blue.value[0];
- xsane.slider_blue.value[0] = 100.0 - xsane.slider_blue.value[2];
- xsane.slider_blue.value[1] = 100.0 - xsane.slider_blue.value[1];
- xsane.slider_blue.value[2] = 100.0 - v0;
- }
- }
-
- xsane.negative = (GTK_TOGGLE_BUTTON(widget)->active != 0);
-
- xsane_update_sliders();
- xsane_enhancement_by_histogram();
- xsane_update_gamma();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_auto_enhancement_callback(GtkWidget * widget)
-{
- xsane_calculate_histogram();
-
- xsane.slider_gray.value[0] = xsane.auto_black;
- xsane.slider_gray.value[1] = xsane.auto_gray;
- xsane.slider_gray.value[2] = xsane.auto_white;
-
- if (xsane.enhancement_rgb_default) /* set same values for color components */
- {
- xsane.slider_red.value[0] = xsane.auto_black;
- xsane.slider_red.value[1] = xsane.auto_gray;
- xsane.slider_red.value[2] = xsane.auto_white;
-
- xsane.slider_green.value[0] = xsane.auto_black;
- xsane.slider_green.value[1] = xsane.auto_gray;
- xsane.slider_green.value[2] = xsane.auto_white;
-
- xsane.slider_blue.value[0] = xsane.auto_black;
- xsane.slider_blue.value[1] = xsane.auto_gray;
- xsane.slider_blue.value[2] = xsane.auto_white;
- }
- else /* set different values for each color component */
- {
- xsane.slider_red.value[0] = xsane.auto_black_red;
- xsane.slider_red.value[1] = xsane.auto_gray_red;
- xsane.slider_red.value[2] = xsane.auto_white_red;
-
- xsane.slider_green.value[0] = xsane.auto_black_green;
- xsane.slider_green.value[1] = xsane.auto_gray_green;
- xsane.slider_green.value[2] = xsane.auto_white_green;
-
- xsane.slider_blue.value[0] = xsane.auto_black_blue;
- xsane.slider_blue.value[1] = xsane.auto_gray_blue;
- xsane.slider_blue.value[2] = xsane.auto_white_blue;
- }
-
- xsane_enhancement_by_histogram();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_show_standard_options_callback(GtkWidget * widget)
-{
- preferences.show_standard_options = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
- if (preferences.show_standard_options)
- {
- gtk_widget_show(xsane.standard_options_shell);
- }
- else
- {
- gtk_widget_hide(xsane.standard_options_shell);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_show_advanced_options_callback(GtkWidget * widget)
-{
- preferences.show_advanced_options = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
- if (preferences.show_advanced_options)
- {
- gtk_widget_show(xsane.advanced_options_shell);
- }
- else
- {
- gtk_widget_hide(xsane.advanced_options_shell);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_show_resolution_list_callback(GtkWidget *widget)
-{
- preferences.show_resolution_list = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
- xsane_refresh_dialog(0);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_page_rotate_callback(GtkWidget *widget)
-{
- preferences.psrotate = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
- xsane_define_maximum_output_size();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_show_histogram_callback(GtkWidget * widget)
-{
- preferences.show_histogram = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
- if (preferences.show_histogram)
- {
- xsane_update_histogram();
- gtk_widget_show(xsane.histogram_dialog);
- }
- else
- {
- gtk_widget_hide(xsane.histogram_dialog);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_printer_callback(GtkWidget *widget, gpointer data)
-{
- preferences.printernr = (int) data;
- xsane_back_gtk_refresh_dialog(dialog);
- xsane_define_maximum_output_size();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_resolution_scale_update(GtkAdjustment *adj_data, double *val)
-{
-#if 1
-/* gtk does not make sure that the value is quantisized correct */
- float diff, old, new, quant;
-
- quant = adj_data->step_increment;
-
- if (quant != 0)
- {
- new = adj_data->value;
- old = *val;
- diff = quant*((int) ((new - old)/quant));
-
- *val = old + diff;
- adj_data->value = *val;
- }
-#else
- *val = adj_data->value;
-#endif
-
- xsane_set_all_resolutions();
-
- xsane_update_param(dialog, 0);
- xsane.zoom = xsane.resolution / preferences.printer[preferences.printernr]->resolution;
- xsane.zoom_x = xsane.resolution_x / preferences.printer[preferences.printernr]->resolution;
- xsane.zoom_y = xsane.resolution_y / preferences.printer[preferences.printernr]->resolution;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_resolution_list_callback(GtkWidget *widget, gpointer data)
-{
- GSGMenuItem *menu_item = data;
- GSGDialogElement *elem = menu_item->elem;
- GSGDialog *dialog = elem->dialog;
- SANE_Word val;
- gchar *name = gtk_widget_get_name(widget->parent);
-
- sscanf(menu_item->label, "%d", &val);
-
- if (!strcmp(name, XSANE_GTK_NAME_RESOLUTION))
- {
- xsane.resolution = val;
- xsane.resolution_x = val;
- xsane.resolution_y = val;
-
- xsane_set_resolution(dialog->well_known.dpi, xsane.resolution);
- xsane_set_resolution(dialog->well_known.dpi_x, xsane.resolution_x);
- xsane_set_resolution(dialog->well_known.dpi_y, xsane.resolution_y);
-
- xsane.zoom = xsane.resolution / preferences.printer[preferences.printernr]->resolution;
- xsane.zoom_x = xsane.resolution_x / preferences.printer[preferences.printernr]->resolution;
- xsane.zoom_y = xsane.resolution_y / preferences.printer[preferences.printernr]->resolution;
- }
- else if (!strcmp(name, XSANE_GTK_NAME_X_RESOLUTION))
- {
- xsane.resolution = val;
- xsane.resolution_x = val;
- xsane_set_resolution(dialog->well_known.dpi_x, xsane.resolution_x);
- xsane.zoom = xsane.resolution / preferences.printer[preferences.printernr]->resolution;
- }
- else if (!strcmp(name, XSANE_GTK_NAME_Y_RESOLUTION))
- {
- xsane.resolution_y = val;
- xsane_set_resolution(dialog->well_known.dpi_y, xsane.resolution_y);
- xsane.zoom = xsane.resolution / preferences.printer[preferences.printernr]->resolution;
- }
-
- xsane_update_param(dialog, 0);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int xsane_resolution_widget_new(GtkWidget *parent, int well_known_option, double *resolution, const char *image_xpm[],
- const gchar *desc, const gchar *widget_name)
-{
- GtkObject *resolution_widget;
- const SANE_Option_Descriptor *opt;
-
- opt = sane_get_option_descriptor(dialog->dev, well_known_option);
-
- if (!opt)
- {
- return -1; /* options does not exist */
- }
- else
- {
- if (SANE_OPTION_IS_ACTIVE(opt->cap))
- {
- switch (opt->constraint_type)
- {
- case SANE_CONSTRAINT_RANGE:
- {
- SANE_Word quant=0;
- SANE_Word min=0;
- SANE_Word max=0;
- SANE_Word val=0;
-
- gtk_widget_set_sensitive(xsane.show_resolution_list_widget, TRUE);
- sane_control_option(dialog->dev, well_known_option, SANE_ACTION_GET_VALUE, &val, 0);
-
- switch (opt->type)
- {
- case SANE_TYPE_INT:
- min = opt->constraint.range->min;
- max = opt->constraint.range->max;
- quant = opt->constraint.range->quant;
- break;
-
- case SANE_TYPE_FIXED:
- min = SANE_UNFIX(opt->constraint.range->min);
- max = SANE_UNFIX(opt->constraint.range->max);
- quant = SANE_UNFIX(opt->constraint.range->quant);
- val = SANE_UNFIX(val);
- break;
-
- default:
- fprintf(stderr, "zoom_scale_update: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
- }
-
- if (quant == 0)
- {
- quant = 1;
- }
-
- if (!(*resolution)) /* no prefered value */
- {
- *resolution = val; /* set backend predefined value */
- }
-
- if (!preferences.show_resolution_list) /* user wants slider */
- {
- xsane_scale_new_with_pixmap(GTK_BOX(parent), image_xpm, desc,
- min, max, quant, quant, 0.0, 0, resolution, &resolution_widget,
- well_known_option, xsane_resolution_scale_update, SANE_OPTION_IS_SETTABLE(opt->cap));
- }
- else /* user wants list instead of slider */
- {
- SANE_Int max_items = 20;
- char **str_list;
- char str[16];
- int i;
- int j = 0;
- SANE_Word wanted_res;
- SANE_Word val = max;
- int res = max;
- double mul;
-
- sane_control_option(dialog->dev, well_known_option, SANE_ACTION_GET_VALUE, &wanted_res, 0);
- if (opt->type == SANE_TYPE_FIXED)
- {
- wanted_res = (int) SANE_UNFIX(wanted_res);
- }
-
- if (*resolution) /* prefered value */
- {
- wanted_res = *resolution; /* set frontend prefered value */
- }
-
- str_list = malloc((max_items + 1) * sizeof(str_list[0]));
-
- sprintf(str, "%d", max);
- str_list[j++] = strdup(str);
-
- i=9;
- while ((j < max_items) && (res > 50) && (res > min) && (i > 0))
- {
- mul = ((double) i) / (i+1);
- res = (int) (max * mul);
- if (res/mul == max)
- {
- sprintf(str, "%d", res);
- str_list[j++] = strdup(str);
- if (res >= wanted_res)
- {
- val = res;
- }
- }
- i--;
- }
-
- i = 3;
- while ((j < max_items) && (res > 50) && (res > min))
- {
- mul = 1.0/i;
- res = max * mul;
- if (res/mul == max)
- {
- sprintf(str, "%d", res);
- str_list[j++] = strdup(str);
- if (res >= wanted_res)
- {
- val = res;
- }
- }
- i++;
- }
-
- str_list[j] = 0;
- sprintf(str, "%d", (int) val);
-
- xsane_option_menu_new_with_pixmap(GTK_BOX(parent), image_xpm, desc, str_list, str, &resolution_widget, well_known_option,
- xsane_resolution_list_callback, SANE_OPTION_IS_SETTABLE(opt->cap), widget_name);
-
- free(str_list);
- *resolution = val;
- xsane_set_resolution(well_known_option, *resolution);
- }
- }
- break;
-
- case SANE_CONSTRAINT_WORD_LIST:
- {
- /* use a "list-selection" widget */
- SANE_Int items;
- char **str_list;
- char str[16];
- int j;
- SANE_Word val=0;
-
- gtk_widget_set_sensitive(xsane.show_resolution_list_widget, FALSE);
-
- items = opt->constraint.word_list[0];
- str_list = malloc((items + 1) * sizeof(str_list[0]));
- switch (opt->type)
- {
- case SANE_TYPE_INT:
- for (j = 0; j < items; ++j)
- {
- sprintf(str, "%d", opt->constraint.word_list[j + 1]);
- str_list[j] = strdup(str);
- }
- str_list[j] = 0;
- sane_control_option(dialog->dev, well_known_option, SANE_ACTION_GET_VALUE, &val, 0);
- sprintf(str, "%d", (int) val);
- break;
-
- case SANE_TYPE_FIXED:
- for (j = 0; j < items; ++j)
- {
- sprintf(str, "%d", (int) SANE_UNFIX(opt->constraint.word_list[j + 1]));
- str_list[j] = strdup(str);
- }
- str_list[j] = 0;
- sane_control_option(dialog->dev, well_known_option, SANE_ACTION_GET_VALUE, &val, 0);
- sprintf(str, "%d", (int) SANE_UNFIX(val));
- break;
-
- default:
- fprintf(stderr, "resolution_word_list_creation: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
- }
-
-
- xsane_option_menu_new_with_pixmap(GTK_BOX(parent), image_xpm, desc,
- str_list, str, &resolution_widget, well_known_option,
- xsane_resolution_list_callback, SANE_OPTION_IS_SETTABLE(opt->cap), widget_name);
- free(str_list);
- }
- break;
-
- default:
- break;
- } /* constraint type */
-
- return 0; /* everything is ok */
-
- } /* if resolution option active */
-
- return 1; /* not active */
-
- } /* if (opt) */
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_zoom_update(GtkAdjustment *adj_data, double *val)
-{
- *val=adj_data->value;
-
- /* update all resolutions */
- xsane.resolution = xsane.zoom * preferences.printer[preferences.printernr]->resolution;
- xsane.resolution_x = xsane.zoom_x * preferences.printer[preferences.printernr]->resolution;
- xsane.resolution_y = xsane.zoom_y * preferences.printer[preferences.printernr]->resolution;
-
- xsane_set_all_resolutions();
-
- xsane_update_param(dialog, 0);
-
- xsane_define_maximum_output_size();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static int xsane_zoom_widget_new(GtkWidget *parent, int well_known_option, double *zoom, double resolution,
- const char *image_xpm[], const gchar *desc)
-{
- const SANE_Option_Descriptor *opt;
- double output_resolution = preferences.printer[preferences.printernr]->resolution;
-
- opt = sane_get_option_descriptor(dialog->dev, well_known_option);
- if (!opt)
- {
- return -1; /* option not available */
- }
- else
- {
- if (SANE_OPTION_IS_ACTIVE(opt->cap))
- {
- double min = 0.0;
- double max = 0.0;
- SANE_Word val = 0.0;
-
- sane_control_option(dialog->dev, well_known_option, SANE_ACTION_GET_VALUE, &val, 0);
-
- switch (opt->constraint_type)
- {
- case SANE_CONSTRAINT_RANGE:
- switch (opt->type)
- {
- case SANE_TYPE_INT:
- min = ((double) opt->constraint.range->min) / output_resolution;
- max = ((double) opt->constraint.range->max) / output_resolution;
- break;
-
- case SANE_TYPE_FIXED:
- min = SANE_UNFIX(opt->constraint.range->min) / output_resolution;
- max = SANE_UNFIX(opt->constraint.range->max) / output_resolution;
- val = SANE_UNFIX(val);
- break;
-
- default:
- fprintf(stderr, "zoom_scale_update: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
- }
- break;
-
- case SANE_CONSTRAINT_WORD_LIST:
- xsane_get_bounds(opt, &min, &max);
- min = min / output_resolution;
- max = max / output_resolution;
- break;
-
- default:
- fprintf(stderr, "zoom_scale_update: %s %d\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
- }
-
- if (resolution == 0) /* no prefered value */
- {
- resolution = val; /* set backend predefined value */
- }
-
- *zoom = resolution / output_resolution;
-
- xsane_scale_new_with_pixmap(GTK_BOX(parent), image_xpm, desc, min, max, 0.01, 0.01, 0.1, 2,
- zoom, &xsane.zoom_widget, well_known_option, xsane_zoom_update,
- SANE_OPTION_IS_SETTABLE(opt->cap));
-
- return 0; /* everything is ok */
- }
- return 1; /* option not active */
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-GtkWidget *xsane_update_xsane_callback()
-{
- /* creates the XSane option window */
-
- GtkWidget *xsane_vbox, *xsane_hbox;
- GtkWidget *xsane_modus_menu;
- GtkWidget *xsane_modus_item;
- GtkWidget *xsane_modus_option_menu;
- GtkWidget *xsane_vbox_xsane_modus;
- GtkWidget *xsane_hbox_xsane_modus;
- GtkWidget *xsane_label;
- GtkWidget *xsane_text;
- GtkWidget *xsane_hbox_xsane_enhancement;
- GtkWidget *xsane_frame;
- GtkWidget *xsane_button;
- gchar buf[200];
-
- /* xsane main options */
-
- xsane_hbox = gtk_hbox_new(FALSE, 2);
- gtk_widget_show(xsane_hbox);
- xsane_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
- gtk_widget_show(xsane_vbox);
-/* gtk_box_pack_start(GTK_BOX(xsane_hbox), xsane_vbox, FALSE, FALSE, 0); */ /* make scales fixed */
- gtk_box_pack_start(GTK_BOX(xsane_hbox), xsane_vbox, TRUE, TRUE, 0); /* make scales sizeable */
-
- /* XSane Frame */
-
- xsane_frame = gtk_frame_new(TEXT_XSANE_OPTIONS);
- gtk_container_set_border_width(GTK_CONTAINER(xsane_frame), 4);
- gtk_frame_set_shadow_type(GTK_FRAME(xsane_frame), GTK_SHADOW_ETCHED_IN);
-/* gtk_box_pack_start(GTK_BOX(xsane_vbox), xsane_frame, FALSE, FALSE, 0); */ /* fixed frameheight */
- gtk_box_pack_start(GTK_BOX(xsane_vbox), xsane_frame, TRUE, TRUE, 0); /* sizeable framehight */
- gtk_widget_show(xsane_frame);
-
-/* xsane_vbox_xsane_modus = gtk_vbox_new(FALSE, 5); */
- xsane_vbox_xsane_modus = gtk_vbox_new(FALSE, 1);
- gtk_container_add(GTK_CONTAINER(xsane_frame), xsane_vbox_xsane_modus);
- gtk_widget_show(xsane_vbox_xsane_modus);
-
-/* scan copy fax selection */
-
- if ( (xsane.mode == XSANE_STANDALONE) && (xsane.mode_selection) ) /* display xsane mode selection menu */
- {
- xsane_hbox_xsane_modus = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(xsane_hbox_xsane_modus), 2);
- gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), xsane_hbox_xsane_modus, FALSE, FALSE, 0);
-
- xsane_label = gtk_label_new(TEXT_XSANE_MODE);
- gtk_box_pack_start(GTK_BOX(xsane_hbox_xsane_modus), xsane_label, FALSE, FALSE, 2);
- gtk_widget_show(xsane_label);
-
- xsane_modus_menu = gtk_menu_new();
-
- xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_SCAN);
- gtk_widget_set_usize(xsane_modus_item, 60, 0);
- gtk_container_add(GTK_CONTAINER(xsane_modus_menu), xsane_modus_item);
- gtk_signal_connect(GTK_OBJECT(xsane_modus_item), "activate",
- (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_SCAN]);
- gtk_widget_show(xsane_modus_item);
-
- xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_COPY);
- gtk_container_add(GTK_CONTAINER(xsane_modus_menu), xsane_modus_item);
- gtk_signal_connect(GTK_OBJECT(xsane_modus_item), "activate",
- (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_COPY]);
- gtk_widget_show(xsane_modus_item);
-
- xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_FAX);
- gtk_container_add(GTK_CONTAINER(xsane_modus_menu), xsane_modus_item);
- gtk_signal_connect(GTK_OBJECT(xsane_modus_item), "activate",
- (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_FAX]);
- gtk_widget_show(xsane_modus_item);
-
- xsane_modus_option_menu = gtk_option_menu_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, xsane_modus_option_menu, DESC_XSANE_MODE);
- gtk_box_pack_end(GTK_BOX(xsane_hbox_xsane_modus), xsane_modus_option_menu, FALSE, FALSE, 2);
- gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane_modus_option_menu), xsane_modus_menu);
- gtk_option_menu_set_history(GTK_OPTION_MENU(xsane_modus_option_menu), xsane.xsane_mode);
- gtk_widget_show(xsane_modus_option_menu);
- gtk_widget_show(xsane_hbox_xsane_modus);
-
- dialog->xsanemode_widget = xsane_modus_option_menu;
- }
-
- {
- GtkWidget *pixmapwidget;
- GdkBitmap *mask;
- GdkPixmap *pixmap;
- GtkWidget *hbox;
- const SANE_Option_Descriptor *opt;
-
-
- /* colormode */
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.scanmode);
- if (opt)
- {
- if (SANE_OPTION_IS_ACTIVE(opt->cap))
- {
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
- gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), hbox, FALSE, FALSE, 2);
-
- pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) colormode_xpm);
- pixmapwidget = gtk_pixmap_new(pixmap, mask);
- gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
- gdk_pixmap_unref(pixmap);
- gtk_widget_show(pixmapwidget);
-
- switch (opt->constraint_type)
- {
- case SANE_CONSTRAINT_STRING_LIST:
- {
- char *set;
- SANE_Status status;
-
- /* use a "list-selection" widget */
- set = malloc(opt->size);
- status = sane_control_option(dialog->dev, dialog->well_known.scanmode, SANE_ACTION_GET_VALUE, set, 0);
-
- xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, dialog->well_known.scanmode,
- _BGT(opt->desc), 0, SANE_OPTION_IS_SETTABLE(opt->cap), 0);
- }
- break;
-
- default:
- fprintf(stderr, "scanmode_selection: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
- }
- gtk_widget_show(hbox);
- }
- }
-
-
- /* input selection */
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.scansource);
- if (opt)
- {
- if (SANE_OPTION_IS_ACTIVE(opt->cap))
- {
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
- gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), hbox, FALSE, FALSE, 2);
-
- pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) scanner_xpm);
- pixmapwidget = gtk_pixmap_new(pixmap, mask);
- gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
- gdk_pixmap_unref(pixmap);
- gtk_widget_show(pixmapwidget);
-
- switch (opt->constraint_type)
- {
- case SANE_CONSTRAINT_STRING_LIST:
- {
- char *set;
- SANE_Status status;
-
- /* use a "list-selection" widget */
- set = malloc(opt->size);
- status = sane_control_option(dialog->dev, dialog->well_known.scansource, SANE_ACTION_GET_VALUE, set, 0);
-
- xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, dialog->well_known.scansource,
- _BGT(opt->desc), 0, SANE_OPTION_IS_SETTABLE(opt->cap), 0);
- }
- break;
-
- default:
- fprintf(stderr, "scansource_selection: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
- }
- gtk_widget_show(hbox);
- }
- }
-
- }
-
- if (xsane.xsane_mode == XSANE_SCAN)
- {
- xsane.copy_number_entry = 0;
-
- if (xsane.mode == XSANE_STANDALONE)
- {
- xsane_outputfilename_new(xsane_vbox_xsane_modus);
- }
-
- /* resolution selection */
- if (!xsane_resolution_widget_new(xsane_vbox_xsane_modus, dialog->well_known.dpi_x, &xsane.resolution_x, resolution_x_xpm,
- DESC_RESOLUTION_X, XSANE_GTK_NAME_X_RESOLUTION)) /* draw x resolution widget if possible */
- {
- xsane_resolution_widget_new(xsane_vbox_xsane_modus, dialog->well_known.dpi_y, &xsane.resolution_y, resolution_y_xpm,
- DESC_RESOLUTION_Y, XSANE_GTK_NAME_Y_RESOLUTION); /* ok, also draw y resolution widget */
- }
- else /* no x resolution, so lets draw common resolution widget */
- {
- xsane_resolution_widget_new(xsane_vbox_xsane_modus, dialog->well_known.dpi, &xsane.resolution, resolution_xpm,
- DESC_RESOLUTION, XSANE_GTK_NAME_RESOLUTION);
- }
- }
- else if (xsane.xsane_mode == XSANE_COPY)
- {
- GtkWidget *pixmapwidget, *hbox, *xsane_printer_option_menu, *xsane_printer_menu, *xsane_printer_item;
- GdkBitmap *mask;
- GdkPixmap *pixmap;
- int i;
-
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
- gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), hbox, FALSE, FALSE, 2);
-
- pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) printer_xpm);
- pixmapwidget = gtk_pixmap_new(pixmap, mask);
- gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
- gdk_pixmap_unref(pixmap);
- gtk_widget_show(pixmapwidget);
-
- xsane_printer_menu = gtk_menu_new();
-
- for (i=0; i < preferences.printerdefinitions; i++)
- {
- xsane_printer_item = gtk_menu_item_new_with_label(preferences.printer[i]->name);
- gtk_container_add(GTK_CONTAINER(xsane_printer_menu), xsane_printer_item);
- gtk_signal_connect(GTK_OBJECT(xsane_printer_item), "activate", (GtkSignalFunc) xsane_printer_callback, (void *) i);
- gtk_widget_show(xsane_printer_item);
- }
-
- xsane_printer_option_menu = gtk_option_menu_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, xsane_printer_option_menu, DESC_PRINTER_SELECT);
- gtk_box_pack_end(GTK_BOX(hbox), xsane_printer_option_menu, FALSE, FALSE, 2);
- gtk_widget_show(xsane_printer_option_menu);
- gtk_widget_show(hbox);
-
- gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane_printer_option_menu), xsane_printer_menu);
- gtk_option_menu_set_history(GTK_OPTION_MENU(xsane_printer_option_menu), preferences.printernr);
-
- /* number of copies */
- xsane_text = gtk_entry_new();
- xsane_back_gtk_set_tooltip(dialog->tooltips, xsane_text, DESC_COPY_NUMBER);
- gtk_widget_set_usize(xsane_text, 25, 0);
- snprintf(buf, sizeof(buf), "%d", xsane.copy_number);
- gtk_entry_set_text(GTK_ENTRY(xsane_text), (char *) buf);
- gtk_box_pack_end(GTK_BOX(hbox), xsane_text, FALSE, FALSE, 10);
- gtk_widget_show(xsane_text);
- gtk_widget_show(hbox);
- xsane.copy_number_entry = xsane_text;
-
- /* zoom selection */
- if (!xsane_zoom_widget_new(xsane_vbox_xsane_modus, dialog->well_known.dpi_x, &xsane.zoom_x,
- xsane.resolution_x, zoom_x_xpm, DESC_ZOOM_X))
- {
- xsane_zoom_widget_new(xsane_vbox_xsane_modus, dialog->well_known.dpi_y, &xsane.zoom_y,
- xsane.resolution_y, zoom_y_xpm, DESC_ZOOM_Y);
- }
- else
- {
- xsane_zoom_widget_new(xsane_vbox_xsane_modus, dialog->well_known.dpi, &xsane.zoom,
- xsane.resolution, zoom_xpm, DESC_ZOOM);
- }
- }
- else /* XSANE_FAX */
- {
- const SANE_Option_Descriptor *opt;
-
- xsane.copy_number_entry = 0;
- xsane.resolution = 98;
- xsane.resolution_x = 98;
- xsane.resolution_y = 98;
-
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.dpi);
- if (!opt)
- {
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.dpi_x);
- }
-
- if (opt)
- {
- if (SANE_OPTION_IS_ACTIVE(opt->cap))
- {
- xsane_button = gtk_check_button_new_with_label(RADIO_BUTTON_FINE_MODE);
- xsane_back_gtk_set_tooltip(dialog->tooltips, xsane_button, DESC_FAX_FINE_MODE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xsane_button), xsane.fax_fine_mode);
- gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), xsane_button, FALSE, FALSE, 2);
- gtk_widget_show(xsane_button);
- gtk_signal_connect(GTK_OBJECT(xsane_button), "clicked", (GtkSignalFunc) xsane_fax_fine_mode_callback, 0);
-
- if (xsane.fax_fine_mode)
- {
- xsane.resolution = 196;
- xsane.resolution_x = 98;
- xsane.resolution_y = 196;
- }
-
- xsane_set_all_resolutions();
- }
- }
- xsane_fax_dialog();
- }
-
- /* test if scanner gamma table is selected */
-
- xsane.scanner_gamma_gray = FALSE;
- if (dialog->well_known.gamma_vector >0)
- {
- const SANE_Option_Descriptor *opt;
-
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.gamma_vector);
- if (SANE_OPTION_IS_ACTIVE(opt->cap))
- {
- xsane.scanner_gamma_gray = TRUE;
- }
- }
-
- xsane.scanner_gamma_color = FALSE;
- if (dialog->well_known.gamma_vector_r >0)
- {
- const SANE_Option_Descriptor *opt;
-
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.gamma_vector_r);
- if (SANE_OPTION_IS_ACTIVE(opt->cap))
- {
- xsane.scanner_gamma_color = TRUE;
- }
- }
-
-
-
- /* XSane Frame Enhancement */
-
- sane_get_parameters(dialog->dev, &xsane.param); /* update xsane.param */
-
- if (xsane.param.depth == 1)
- {
- return(xsane_hbox);
- }
-
- xsane.slider_gray.active = XSANE_SLIDER_ACTIVE; /* mark slider active */
-
- if ( (xsane.xsane_color) && (!xsane.enhancement_rgb_default) )
- {
- xsane_separator_new(xsane_vbox_xsane_modus, 2);
- }
-
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), Gamma_xpm, DESC_GAMMA,
- XSANE_GAMMA_MIN, XSANE_GAMMA_MAX, 0.01, 0.01, 0.0, 2,
- &xsane.gamma, &xsane.gamma_widget, 0, xsane_gamma_changed, TRUE);
- if ( (xsane.xsane_color) && (!xsane.enhancement_rgb_default) )
- {
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), Gamma_red_xpm, DESC_GAMMA_R,
- XSANE_GAMMA_MIN, XSANE_GAMMA_MAX, 0.01, 0.01, 0.0, 2,
- &xsane.gamma_red , &xsane.gamma_red_widget, 0, xsane_gamma_changed, TRUE);
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), Gamma_green_xpm, DESC_GAMMA_G,
- XSANE_GAMMA_MIN, XSANE_GAMMA_MAX, 0.01, 0.01, 0.0, 2,
- &xsane.gamma_green, &xsane.gamma_green_widget, 0, xsane_gamma_changed, TRUE);
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), Gamma_blue_xpm, DESC_GAMMA_B,
- XSANE_GAMMA_MIN, XSANE_GAMMA_MAX, 0.01, 0.01, 0.0, 2,
- &xsane.gamma_blue , &xsane.gamma_blue_widget, 0, xsane_gamma_changed, TRUE);
-
- xsane_separator_new(xsane_vbox_xsane_modus, 2);
- }
-
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), brightness_xpm, DESC_BRIGHTNESS,
- XSANE_BRIGHTNESS_MIN, XSANE_BRIGHTNESS_MAX, 1.0, 1.0, 0.0, 0,
- &xsane.brightness, &xsane.brightness_widget, 0, xsane_gamma_changed, TRUE);
- if ( (xsane.xsane_color) && (!xsane.enhancement_rgb_default) )
- {
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), brightness_red_xpm, DESC_BRIGHTNESS_R,
- XSANE_BRIGHTNESS_MIN, XSANE_BRIGHTNESS_MAX, 1.0, 1.0, 0.0, 0,
- &xsane.brightness_red , &xsane.brightness_red_widget, 0, xsane_gamma_changed, TRUE);
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), brightness_green_xpm, DESC_BRIGHTNESS_G,
- XSANE_BRIGHTNESS_MIN, XSANE_BRIGHTNESS_MAX, 1.0, 1.0, 0.0, 0,
- &xsane.brightness_green, &xsane.brightness_green_widget, 0, xsane_gamma_changed, TRUE);
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), brightness_blue_xpm, DESC_BRIGHTNESS_B,
- XSANE_BRIGHTNESS_MIN, XSANE_BRIGHTNESS_MAX, 1.0, 1.0, 0.0, 0,
- &xsane.brightness_blue, &xsane.brightness_blue_widget, 0, xsane_gamma_changed, TRUE);
-
- xsane_separator_new(xsane_vbox_xsane_modus, 2);
- }
-
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), contrast_xpm, DESC_CONTRAST,
- XSANE_CONTRAST_GRAY_MIN, XSANE_CONTRAST_MAX, 1.0, 1.0, 0.0, 0,
- &xsane.contrast, &xsane.contrast_widget, 0, xsane_gamma_changed, TRUE);
- if ( (xsane.xsane_color) && (!xsane.enhancement_rgb_default) )
- {
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), contrast_red_xpm, DESC_CONTRAST_R,
- XSANE_CONTRAST_MIN, XSANE_CONTRAST_MAX, 1.0, 1.0, 0.0, 0,
- &xsane.contrast_red , &xsane.contrast_red_widget, 0, xsane_gamma_changed, TRUE);
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), contrast_green_xpm, DESC_CONTRAST_G,
- XSANE_CONTRAST_MIN, XSANE_CONTRAST_MAX, 1.0, 1.0, 0.0, 0,
- &xsane.contrast_green, &xsane.contrast_green_widget, 0, xsane_gamma_changed, TRUE);
- xsane_scale_new_with_pixmap(GTK_BOX(xsane_vbox_xsane_modus), contrast_blue_xpm, DESC_CONTRAST_B,
- XSANE_CONTRAST_MIN, XSANE_CONTRAST_MAX, 1.0, 1.0, 0.0, 0,
- &xsane.contrast_blue, &xsane.contrast_blue_widget, 0, xsane_gamma_changed, TRUE);
- }
-
- xsane_separator_new(xsane_vbox_xsane_modus, 2);
-
- /* create lower button box (rgb default, negative ,... */
- xsane_hbox_xsane_enhancement = gtk_hbox_new(TRUE, 4);
- gtk_container_set_border_width(GTK_CONTAINER(xsane_hbox_xsane_enhancement), 4);
- gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), xsane_hbox_xsane_enhancement, FALSE, FALSE, 0);
- gtk_widget_show(xsane_hbox_xsane_enhancement);
-
- if (xsane.xsane_color)
- {
- xsane_toggle_button_new_with_pixmap(xsane_hbox_xsane_enhancement, rgb_default_xpm, DESC_RGB_DEFAULT,
- &xsane.enhancement_rgb_default, xsane_enhancement_rgb_default_callback);
- }
-
- xsane_toggle_button_new_with_pixmap(xsane_hbox_xsane_enhancement, negative_xpm, DESC_NEGATIVE,
- &xsane.negative, xsane_enhancement_negative_callback);
-
- xsane_button_new_with_pixmap(xsane_hbox_xsane_enhancement, enhance_xpm, DESC_ENH_AUTO,
- xsane_auto_enhancement_callback, 0);
-
- xsane_button_new_with_pixmap(xsane_hbox_xsane_enhancement, default_enhancement_xpm, DESC_ENH_DEFAULT,
- xsane_enhancement_restore_default, 0);
-
- xsane_button_new_with_pixmap(xsane_hbox_xsane_enhancement, restore_enhancement_xpm, DESC_ENH_RESTORE,
- xsane_enhancement_restore, 0);
-
- xsane_button_new_with_pixmap(xsane_hbox_xsane_enhancement, store_enhancement_xpm, DESC_ENH_STORE,
- xsane_enhancement_store, 0);
-
- xsane_update_histogram();
-
- return(xsane_hbox);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_update_preview(GSGDialog *dialog, void *arg)
-{
- if (xsane.preview)
- {
- preview_update_surface(xsane.preview, 0);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_pref_save(void)
-{
- char filename[PATH_MAX];
- int fd;
-
- /* first save xsane-specific preferences: */
- xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane", 0, ".rc", XSANE_PATH_LOCAL_SANE);
- umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
- fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
- if (fd < 0)
- {
- char buf[256];
-
- snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_CREATE_FILE, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
- preferences_save(fd);
- close(fd);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_pref_restore(void)
-{
- char filename[PATH_MAX];
- int fd;
-
- xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane", 0, ".rc", XSANE_PATH_LOCAL_SANE);
- fd = open(filename, O_RDONLY);
-
- if (fd >= 0)
- {
- preferences_restore(fd);
- close(fd);
- }
- else /* no local sane file, look for system file */
- {
- xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane", 0, ".rc", XSANE_PATH_SYSTEM);
- fd = open(filename, O_RDONLY);
-
- if (fd >= 0)
- {
- preferences_restore(fd);
- close(fd);
- }
- }
-
- if (!preferences.filename)
- {
- preferences.filename = strdup(OUTFILENAME);
- }
-
- if (preferences.printerdefinitions == 0)
- {
- xsane_new_printer();
- }
-
- if (!preferences.fax_project)
- {
- preferences.fax_project = strdup(FAXPROJECT);
- }
-
- if (!preferences.fax_command)
- {
- preferences.fax_command = strdup(FAXCOMMAND);
- }
-
- if (!preferences.fax_receiver_option)
- {
- preferences.fax_receiver_option = strdup(FAXRECEIVEROPT);
- }
-
- if (!preferences.fax_postscript_option)
- {
- preferences.fax_postscript_option = strdup(FAXPOSTSCRIPTOPT);
- }
-
- if (!preferences.fax_normal_option)
- {
- preferences.fax_normal_option = strdup(FAXNORMALOPT);
- }
-
- if (!preferences.fax_fine_option)
- {
- preferences.fax_fine_option = strdup(FAXFINEOPT);
- }
-
- if (!preferences.fax_viewer)
- {
- preferences.fax_viewer = strdup(FAXVIEWER);
- }
-
- if (!preferences.doc_viewer)
- {
- preferences.doc_viewer = strdup(DOCVIEWER);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_quit(void)
-{
- if (xsane.preview)
- {
- Preview *preview = xsane.preview;
- xsane.preview = 0;
- preview_destroy(preview);
- }
-
- while (xsane_back_gtk_message_dialog_active)
- {
- gtk_main_iteration();
- }
-
- if (dialog && xsane_back_gtk_dialog_get_device(dialog))
- {
- sane_close(xsane_back_gtk_dialog_get_device(dialog));
- }
-
- sane_exit();
- gtk_main_quit();
-
- if (xsane.preview_gamma_data_red)
- {
- free(xsane.preview_gamma_data_red);
- free(xsane.preview_gamma_data_green);
- free(xsane.preview_gamma_data_blue);
-
- xsane.preview_gamma_data_red = 0;
- xsane.preview_gamma_data_green = 0;
- xsane.preview_gamma_data_blue = 0;
- }
-
-#ifdef HAVE_LIBGIMP_GIMP_H
- if (xsane.mode == XSANE_GIMP_EXTENSION)
- {
- gimp_quit();
- }
-#endif
- exit(0);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_exit(void) /* this is called when xsane exits before gtk_main is called */
-{
- while (xsane_back_gtk_message_dialog_active)
- {
- gtk_main_iteration();
- }
-
- sane_exit();
-
-#ifdef HAVE_LIBGIMP_GIMP_H
- if (xsane.mode == XSANE_GIMP_EXTENSION)
- {
- gimp_quit();
- }
-#endif
- exit(0);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static gint xsane_standard_option_win_delete(GtkWidget *widget, gpointer data)
-{
- gtk_widget_hide(widget);
- preferences.show_standard_options = FALSE;
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_standard_options_widget), preferences.show_standard_options);
- return TRUE;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static gint xsane_advanced_option_win_delete(GtkWidget *widget, gpointer data)
-{
- gtk_widget_hide(widget);
- preferences.show_advanced_options = FALSE;
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_advanced_options_widget), preferences.show_advanced_options);
- return TRUE;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* Invoked when window manager's "delete" (or "close") function is invoked. */
-static gint xsane_scan_win_delete(GtkWidget *w, gpointer data)
-{
- xsane_scan_done(-1); /* stop scanner when still scanning */
-
- if (xsane.filetype) /* add extension to filename */
- {
- char buffer[256];
-
- snprintf(buffer, sizeof(buffer), "%s%s", preferences.filename, xsane.filetype);
- free(preferences.filename);
- free(xsane.filetype);
- xsane.filetype = 0;
- preferences.filename = strdup(buffer);
- }
-
- xsane_pref_save();
- xsane_quit();
- return FALSE;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static gint xsane_preview_window_destroyed(GtkWidget *widget, gpointer call_data)
-{
- gtk_widget_hide(widget);
- xsane.show_preview = FALSE;
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_preview_widget), FALSE);
- return TRUE;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_show_preview_callback(GtkWidget * widget, gpointer call_data)
-{
- if (GTK_CHECK_MENU_ITEM(widget)->active)
- {
- gtk_widget_show(xsane.preview->top);
- xsane.show_preview = TRUE;
- }
- else
- {
- gtk_widget_hide(xsane.preview->top);
- xsane.show_preview = FALSE;
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static GtkWidget *xsane_files_build_menu(void)
-{
- GtkWidget *menu, *item;
-
- menu = gtk_menu_new();
-
- item = gtk_menu_item_new();
- gtk_container_add(GTK_CONTAINER(menu), item);
- gtk_widget_show(item);
-
-
- /* XSane about dialog */
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_ABOUT);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_about_dialog, 0);
- gtk_widget_show(item);
-
-
- /* XSane info dialog */
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_INFO);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_info_dialog, 0);
- gtk_widget_show(item);
-
-
- /* Exit */
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_EXIT);
- gtk_container_add(GTK_CONTAINER(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_scan_win_delete, 0);
- gtk_widget_show(item);
-
- return menu;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_set_pref_unit_callback(GtkWidget *widget, gpointer data)
-{
- const char *unit = data;
- double unit_conversion_factor = 1.0;
-
- gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.length_unit_mm), (GtkSignalFunc) xsane_set_pref_unit_callback, "mm");
- gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.length_unit_cm), (GtkSignalFunc) xsane_set_pref_unit_callback, "cm");
- gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.length_unit_in), (GtkSignalFunc) xsane_set_pref_unit_callback, "in");
-
- if (strcmp(unit, "mm") == 0)
- {
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_mm), TRUE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_cm), FALSE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_in), FALSE);
- }
- else if (strcmp(unit, "cm") == 0)
- {
- unit_conversion_factor = 10.0;
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_mm), FALSE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_cm), TRUE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_in), FALSE);
- }
- else if (strcmp(unit, "in") == 0)
- {
- unit_conversion_factor = 25.4;
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_mm), FALSE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_cm), FALSE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_in), TRUE);
- }
-
- gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.length_unit_mm), (GtkSignalFunc) xsane_set_pref_unit_callback, "mm");
- gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.length_unit_cm), (GtkSignalFunc) xsane_set_pref_unit_callback, "cm");
- gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.length_unit_in), (GtkSignalFunc) xsane_set_pref_unit_callback, "in");
-
- preferences.length_unit = unit_conversion_factor;
-
- xsane_refresh_dialog(dialog);
- if (xsane.preview)
- {
- preview_area_resize(xsane.preview->window);
- }
-
- xsane_pref_save();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_set_update_policy_callback(GtkWidget *widget, gpointer data)
-{
- GtkUpdateType policy = (GtkUpdateType) data;
-
- gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.update_policy_continu), (GtkSignalFunc) xsane_set_update_policy_callback,
- (void *) GTK_UPDATE_CONTINUOUS);
- gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.update_policy_discont), (GtkSignalFunc) xsane_set_update_policy_callback,
- (void *) GTK_UPDATE_DISCONTINUOUS);
- gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.update_policy_delayed), (GtkSignalFunc) xsane_set_update_policy_callback,
- (void *) GTK_UPDATE_DELAYED);
-
- if (policy == GTK_UPDATE_CONTINUOUS)
- {
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_continu), TRUE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_discont), FALSE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_delayed), FALSE);
- }
- else if (policy == GTK_UPDATE_DISCONTINUOUS)
- {
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_continu), FALSE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_discont), TRUE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_delayed), FALSE);
- }
- else if (policy == GTK_UPDATE_DELAYED)
- {
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_continu), FALSE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_discont), FALSE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_delayed), TRUE);
- }
-
- gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.update_policy_continu), (GtkSignalFunc) xsane_set_update_policy_callback,
- (void *) GTK_UPDATE_CONTINUOUS);
- gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.update_policy_discont), (GtkSignalFunc) xsane_set_update_policy_callback,
- (void *) GTK_UPDATE_DISCONTINUOUS);
- gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.update_policy_delayed), (GtkSignalFunc) xsane_set_update_policy_callback,
- (void *) GTK_UPDATE_DELAYED);
-
- preferences.gtk_update_policy = policy;
- xsane_pref_save();
-
- xsane_back_gtk_refresh_dialog(dialog);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static gint xsane_close_info_callback(GtkWidget *widget, gpointer data)
-{
- GtkWidget *dialog = data;
-
- gtk_widget_destroy(dialog);
-
- xsane_set_sensitivity(TRUE);
-
- xsane_update_histogram();
-
- return FALSE;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_info_dialog(GtkWidget *widget, gpointer data)
-{
- GtkWidget *info_dialog, *vbox, *button, *label, *frame, *framebox, *hbox, *table;
- char buf[256];
- char *bufptr;
-
- sane_get_parameters(dialog->dev, &xsane.param); /* update xsane.param */
-
- info_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
- gtk_window_set_position(GTK_WINDOW(info_dialog), GTK_WIN_POS_CENTER);
- gtk_window_set_policy(GTK_WINDOW(info_dialog), FALSE, FALSE, FALSE);
- gtk_signal_connect(GTK_OBJECT(info_dialog), "destroy", GTK_SIGNAL_FUNC(xsane_close_info_callback), info_dialog);
- snprintf(buf, sizeof(buf), "%s %s %s", prog_name, WINDOW_INFO, device_text);
- gtk_window_set_title(GTK_WINDOW(info_dialog), buf);
-
- xsane_set_window_icon(info_dialog, 0);
-
- vbox = gtk_vbox_new(/* not homogeneous */ FALSE, 5);
- gtk_container_add(GTK_CONTAINER(info_dialog), vbox);
- gtk_widget_show(vbox);
-
- frame = gtk_frame_new(TEXT_SCANNER_BACKEND);
- gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
- gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5);
- gtk_widget_show(frame);
-
- framebox = gtk_vbox_new(/* not homogeneous */ FALSE, 0);
- gtk_container_add(GTK_CONTAINER(frame), framebox);
- gtk_widget_show(framebox);
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(framebox), hbox, TRUE, TRUE, 5);
- gtk_widget_show(hbox);
-
- table = gtk_table_new(6, 2, FALSE);
- gtk_box_pack_start(GTK_BOX(hbox), table, FALSE, FALSE, 5);
- gtk_widget_show(table);
-
- snprintf(buf, sizeof(buf), TEXT_VENDOR);
- label = xsane_info_table_text_new(table, buf, 0, 0);
- snprintf(buf, sizeof(buf), "%s", devlist[seldev]->vendor);
- label = xsane_info_table_text_new(table, buf, 1, 0);
-
- snprintf(buf, sizeof(buf), TEXT_MODEL);
- label = xsane_info_table_text_new(table, buf, 0, 1);
- snprintf(buf, sizeof(buf), "%s", devlist[seldev]->model);
- label = xsane_info_table_text_new(table, buf, 1, 1);
-
- snprintf(buf, sizeof(buf), TEXT_TYPE);
- label = xsane_info_table_text_new(table, buf, 0, 2);
- snprintf(buf, sizeof(buf), "%s", devlist[seldev]->type);
- label = xsane_info_table_text_new(table, buf, 1, 2);
-
- snprintf(buf, sizeof(buf), TEXT_DEVICE);
- label = xsane_info_table_text_new(table, buf, 0, 3);
- bufptr = strrchr(devlist[seldev]->name, ':');
- if (bufptr)
- {
- snprintf(buf, sizeof(buf), "%s", bufptr+1);
- }
- else
- {
- snprintf(buf, sizeof(buf), devlist[seldev]->name);
- }
- label = xsane_info_table_text_new(table, buf, 1, 3);
-
- snprintf(buf, sizeof(buf), "%s", devlist[seldev]->name);
- bufptr = strrchr(buf, ':');
- if (bufptr)
- {
- *bufptr = 0;
- label = xsane_info_table_text_new(table, buf, 1, 4);
- snprintf(buf, sizeof(buf), TEXT_LOADED_BACKEND);
- label = xsane_info_table_text_new(table, buf, 0, 4);
- }
-
- snprintf(buf, sizeof(buf), TEXT_SANE_VERSION);
- label = xsane_info_table_text_new(table, buf, 0, 5);
- snprintf(buf, sizeof(buf), "%d.%d build %d",SANE_VERSION_MAJOR(xsane.sane_backend_versioncode),
- SANE_VERSION_MINOR(xsane.sane_backend_versioncode),
- SANE_VERSION_BUILD(xsane.sane_backend_versioncode));
- label = xsane_info_table_text_new(table, buf, 1, 5);
-
-
- frame = gtk_frame_new(TEXT_RECENT_VALUES);
- gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
- gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5);
- gtk_widget_show(frame);
-
- framebox = gtk_vbox_new(/* not homogeneous */ FALSE, 0);
- gtk_container_add(GTK_CONTAINER(frame), framebox);
- gtk_widget_show(framebox);
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(framebox), hbox, TRUE, TRUE, 5);
- gtk_widget_show(hbox);
-
- table = gtk_table_new(4, 2, FALSE);
- gtk_box_pack_start(GTK_BOX(hbox), table, FALSE, FALSE, 5);
- gtk_widget_show(table);
-
- if ((xsane.xsane_color) && (xsane.scanner_gamma_color)) /* color gamma correction by scanner */
- {
- const SANE_Option_Descriptor *opt;
-
- snprintf(buf, sizeof(buf), TEXT_GAMMA_CORR_BY);
- label = xsane_info_table_text_new(table, buf, 0, 0);
- snprintf(buf, sizeof(buf), TEXT_SCANNER);
- label = xsane_info_table_text_new(table, buf, 1, 0);
-
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.gamma_vector_r);
-
- snprintf(buf, sizeof(buf), TEXT_GAMMA_INPUT_DEPTH);
- label = xsane_info_table_text_new(table, buf, 0, 1);
- snprintf(buf, sizeof(buf), "%d bit", (int) (0.5 + log((double)opt->size / sizeof(opt->type)) / log(2.0)));
- label = xsane_info_table_text_new(table, buf, 1, 1);
-
- snprintf(buf, sizeof(buf), TEXT_GAMMA_OUTPUT_DEPTH);
- label = xsane_info_table_text_new(table, buf, 0, 2);
- snprintf(buf, sizeof(buf), "%d bit", (int) (0.5 + log(opt->constraint.range->max+1.0) / log(2.0)));
- label = xsane_info_table_text_new(table, buf, 1, 2);
- }
- else if ((!xsane.xsane_color) && (xsane.scanner_gamma_gray)) /* gray gamma correction by scanner */
- {
- const SANE_Option_Descriptor *opt;
-
- snprintf(buf, sizeof(buf), TEXT_GAMMA_CORR_BY);
- label = xsane_info_table_text_new(table, buf, 0, 0);
- snprintf(buf, sizeof(buf), TEXT_SCANNER);
- label = xsane_info_table_text_new(table, buf, 1, 0);
-
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.gamma_vector);
-
- snprintf(buf, sizeof(buf), TEXT_GAMMA_INPUT_DEPTH);
- label = xsane_info_table_text_new(table, buf, 0, 1);
- snprintf(buf, sizeof(buf), "%d bit", (int) (0.5 + log((double)opt->size / sizeof(opt->type)) / log(2.0)));
- label = xsane_info_table_text_new(table, buf, 1, 1);
-
- snprintf(buf, sizeof(buf), TEXT_GAMMA_OUTPUT_DEPTH);
- label = xsane_info_table_text_new(table, buf, 0, 2);
- snprintf(buf, sizeof(buf), "%d bit", (int) (0.5 + log(opt->constraint.range->max+1.0) / log(2.0)));
- label = xsane_info_table_text_new(table, buf, 1, 2);
- }
- else if (xsane.param.depth != 1) /* gamma correction by xsane */
- {
- snprintf(buf, sizeof(buf), TEXT_GAMMA_CORR_BY);
- label = xsane_info_table_text_new(table, buf, 0, 0);
- snprintf(buf, sizeof(buf), TEXT_SOFTWARE_XSANE);
- label = xsane_info_table_text_new(table, buf, 1, 0);
-
- snprintf(buf, sizeof(buf), TEXT_GAMMA_INPUT_DEPTH);
- label = xsane_info_table_text_new(table, buf, 0, 1);
- snprintf(buf, sizeof(buf), "%d bit", xsane.param.depth);
- label = xsane_info_table_text_new(table, buf, 1, 1);
-
- snprintf(buf, sizeof(buf), TEXT_GAMMA_OUTPUT_DEPTH);
- label = xsane_info_table_text_new(table, buf, 0, 2);
-/* snprintf(buf, sizeof(buf), "%d bit", 8); */
- snprintf(buf, sizeof(buf), "%d bit", xsane.param.depth);
- label = xsane_info_table_text_new(table, buf, 1, 2);
- }
- else /* no gamma enhancement */
- {
- snprintf(buf, sizeof(buf), TEXT_GAMMA_CORR_BY);
- label = xsane_info_table_text_new(table, buf, 0, 0);
- snprintf(buf, sizeof(buf), TEXT_NONE);
- label = xsane_info_table_text_new(table, buf, 1, 0);
-
- snprintf(buf, sizeof(buf), TEXT_GAMMA_INPUT_DEPTH);
- label = xsane_info_table_text_new(table, buf, 0, 1);
- snprintf(buf, sizeof(buf), TEXT_NONE);
- label = xsane_info_table_text_new(table, buf, 1, 1);
-
- snprintf(buf, sizeof(buf), TEXT_GAMMA_OUTPUT_DEPTH);
- label = xsane_info_table_text_new(table, buf, 0, 2);
- snprintf(buf, sizeof(buf), TEXT_NONE);
- label = xsane_info_table_text_new(table, buf, 1, 2);
- }
-
- snprintf(buf, sizeof(buf), TEXT_SCANNER_OUTPUT_DEPTH);
- label = xsane_info_table_text_new(table, buf, 0, 3);
- snprintf(buf, sizeof(buf), "%d bit", xsane.param.depth);
- label = xsane_info_table_text_new(table, buf, 1, 3);
-
- frame = gtk_frame_new(TEXT_OUTPUT_FORMATS);
- gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
- gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5);
- gtk_widget_show(frame);
-
- framebox = gtk_vbox_new(/* not homogeneous */ FALSE, 0);
- gtk_container_add(GTK_CONTAINER(frame), framebox);
- gtk_widget_show(framebox);
-
- hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(framebox), hbox, TRUE, TRUE, 5);
- gtk_widget_show(hbox);
-
- table = gtk_table_new(2, 2, FALSE);
- gtk_box_pack_start(GTK_BOX(hbox), table, FALSE, FALSE, 5);
- gtk_widget_show(table);
-
- snprintf(buf, sizeof(buf), TEXT_8BIT_FORMATS);
- label = xsane_info_table_text_new(table, buf, 0, 0);
-
- bufptr=buf;
-
-#ifdef HAVE_LIBJPEG
- sprintf(bufptr, "JPEG, ");
- bufptr += strlen(bufptr);
-#endif
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
- sprintf(bufptr, "PNG, ");
- bufptr += strlen(bufptr);
-#endif
-#endif
-
- sprintf(bufptr, "PNM, ");
- bufptr += strlen(bufptr);
-
- sprintf(bufptr, "PS, ");
- bufptr += strlen(bufptr);
-
-#ifdef SUPPORT_RGBA
- sprintf(bufptr, "RGBA, ");
- bufptr += strlen(bufptr);
-#endif
-
-#ifdef HAVE_LIBTIFF
- sprintf(bufptr, "TIFF, ");
- bufptr += strlen(bufptr);
-#endif
-
- bufptr--;
- bufptr--;
- *bufptr = 0; /* erase last comma */
-
- label = xsane_info_table_text_new(table, buf, 1, 0);
-
- snprintf(buf, sizeof(buf), TEXT_16BIT_FORMATS);
- label = xsane_info_table_text_new(table, buf, 0, 1);
-
- bufptr=buf;
-
-#ifdef HAVE_LIBPNG
-#ifdef HAVE_LIBZ
- sprintf(bufptr, "PNG, ");
- bufptr += strlen(bufptr);
-#endif
-#endif
-
- sprintf(bufptr, "PNM, ");
- bufptr += strlen(bufptr);
-
- sprintf(bufptr, "RAW, ");
- bufptr += strlen(bufptr);
-
-#ifdef SUPPORT_RGBA
- sprintf(bufptr, "RGBA, ");
- bufptr += strlen(bufptr);
-#endif
-
- bufptr--;
- bufptr--;
- *bufptr = 0; /* erase last comma */
-
- label = xsane_info_table_text_new(table, buf, 1, 1);
-
-/* gtk_label_set((GtkLabel *)label, "HALLO"); */
-
- button = gtk_button_new_with_label(BUTTON_CLOSE);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_close_info_callback, info_dialog);
- gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
- gtk_widget_show(button);
-
- gtk_widget_show(info_dialog);
-
- xsane_clear_histogram(&xsane.histogram_raw);
- xsane_clear_histogram(&xsane.histogram_enh);
-
- xsane_set_sensitivity(FALSE);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_about_dialog(GtkWidget *widget, gpointer data)
-{
- GtkWidget *about_dialog, *vbox, *button, *label;
- char buf[256];
- GtkWidget *pixmapwidget;
- GdkBitmap *mask;
- GdkPixmap *pixmap;
- GtkStyle *style;
- GdkColor *bg_trans;
-
-
- about_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
- gtk_window_set_position(GTK_WINDOW(about_dialog), GTK_WIN_POS_CENTER);
- gtk_window_set_policy(GTK_WINDOW(about_dialog), FALSE, FALSE, FALSE);
- gtk_signal_connect(GTK_OBJECT(about_dialog), "destroy", GTK_SIGNAL_FUNC(xsane_close_info_callback), about_dialog);
- snprintf(buf, sizeof(buf), "%s %s", WINDOW_ABOUT, prog_name);
- gtk_window_set_title(GTK_WINDOW(about_dialog), buf);
-
- xsane_set_window_icon(about_dialog, 0);
-
- vbox = gtk_vbox_new(/* not homogeneous */ FALSE, 5);
- gtk_container_add(GTK_CONTAINER(about_dialog), vbox);
- gtk_widget_show(vbox);
-
- /* xsane logo */
- gtk_widget_realize(about_dialog);
-
- style = gtk_widget_get_style(about_dialog);
- bg_trans = &style->bg[GTK_STATE_NORMAL];
-
- snprintf(buf, sizeof(buf), "%s/xsane-logo.xpm", STRINGIFY(PATH_SANE_DATA_DIR));
- pixmap = gdk_pixmap_create_from_xpm(about_dialog->window, &mask, bg_trans, buf);
- pixmapwidget = gtk_pixmap_new(pixmap, mask);
- gtk_box_pack_start(GTK_BOX(vbox), pixmapwidget, FALSE, FALSE, 2);
- gtk_widget_show(pixmapwidget);
- gdk_pixmap_unref(pixmap);
-
- xsane_separator_new(vbox, 5);
-
- snprintf(buf, sizeof(buf), "XSane %s %s\n", TEXT_VERSION, XSANE_VERSION);
- label = gtk_label_new(buf);
- gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
- gtk_widget_show(label);
-
- snprintf(buf, sizeof(buf), "(c) %s %s\n", XSANE_DATE, XSANE_COPYRIGHT);
- label = gtk_label_new(buf);
- gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
- gtk_widget_show(label);
-
- snprintf(buf, sizeof(buf), "%s %s\n", TEXT_EMAIL, XSANE_EMAIL);
- label = gtk_label_new(buf);
- gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
- gtk_widget_show(label);
-
- button = gtk_button_new_with_label(BUTTON_CLOSE);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_close_info_callback, about_dialog);
- gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
- gtk_widget_show(button);
-
- gtk_widget_show(about_dialog);
-
- xsane_clear_histogram(&xsane.histogram_raw);
- xsane_clear_histogram(&xsane.histogram_enh);
-
- xsane_set_sensitivity(FALSE);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static SANE_Status xsane_get_area_value(int option, float *val, SANE_Int *unit)
-{
- const SANE_Option_Descriptor *opt;
- SANE_Handle dev;
- SANE_Word word;
-
- if (option <= 0)
- {
- return -1;
- }
-
- if (sane_control_option(dialog->dev, option, SANE_ACTION_GET_VALUE, &word, 0) == SANE_STATUS_GOOD)
- {
- dev = dialog->dev;
- opt = sane_get_option_descriptor(dev, option);
-
- if (unit)
- {
- *unit = opt->unit;
- }
-
- if (val)
- {
- if (opt->type == SANE_TYPE_FIXED)
- {
- *val = (float) word / 65536.0;
- }
- else
- {
- *val = (float) word;
- }
- }
-
- return 0;
- }
- else if (val)
- {
- *val = 0;
- }
- return -2;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-#ifdef XSANE_TEST
-static void xsane_batch_scan_delete_callback(GtkWidget *widget, gpointer list)
-{
- gtk_list_remove_items(GTK_LIST(list), GTK_LIST(list)->selection);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_batch_scan_add_callback(GtkWidget *widget, gpointer list)
-{
- GtkWidget *list_item;
- float tlx, tly, brx, bry;
- SANE_Int unit;
- char buf[255];
-
-
- xsane_get_area_value(dialog->well_known.coord[0], &tlx, &unit);
- xsane_get_area_value(dialog->well_known.coord[1], &tly, &unit);
- xsane_get_area_value(dialog->well_known.coord[2], &brx, &unit);
- xsane_get_area_value(dialog->well_known.coord[3], &bry, &unit);
-
- if (unit == SANE_UNIT_MM)
- {
- snprintf(buf, sizeof(buf), " top left (%7.2fmm, %7.2fmm), bottom right (%7.2fmm, %7.2fmm)", tlx, tly, brx, bry);
- }
- else
- {
- snprintf(buf, sizeof(buf), " top left (%5.0fpx, %5.0fpx), bottom right (%5.0fpx, %5.0fpx)", tlx, tly, brx, bry);
- }
-
- list_item = gtk_list_item_new_with_label(buf);
- gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(buf));
- gtk_container_add(GTK_CONTAINER(list), list_item);
- gtk_widget_show(list_item);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_batch_scan_dialog(GtkWidget *widget, gpointer data)
-{
- GtkWidget *batch_scan_dialog, *batch_scan_vbox, *hbox, *button, *scrolled_window, *list;
- char buf[64];
-
- batch_scan_dialog = gtk_dialog_new();
- snprintf(buf, sizeof(buf), "%s %s", prog_name, WINDOW_BATCH_SCAN);
- gtk_window_set_title(GTK_WINDOW(batch_scan_dialog), buf);
-
- batch_scan_vbox = GTK_DIALOG(batch_scan_dialog)->vbox;
-
- scrolled_window = gtk_scrolled_window_new(0, 0);
- gtk_widget_set_usize(scrolled_window, 400, 200);
- gtk_container_add(GTK_CONTAINER(batch_scan_vbox), scrolled_window);
- gtk_widget_show(scrolled_window);
-
- list = gtk_list_new();
-
- gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), list);
-
- gtk_widget_show(list);
-
-
- /* fill in action area: */
- hbox = GTK_DIALOG(batch_scan_dialog)->action_area;
-
- button = gtk_button_new_with_label(BUTTON_OK);
- GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_close_dialog_callback, batch_scan_dialog);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_grab_default(button);
- gtk_widget_show(button);
-
- button = gtk_button_new_with_label(BUTTON_ADD_AREA);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_batch_scan_add_callback, list);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- button = gtk_button_new_with_label(BUTTON_DELETE);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_batch_scan_delete_callback, list);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- gtk_widget_show(batch_scan_dialog);
-}
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_dialog_delete()
-{
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_dialog()
-{
- GtkWidget *fax_dialog, *fax_scan_vbox, *fax_project_vbox, *hbox, *fax_project_exists_hbox, *button;
- GtkWidget *scrolled_window, *list;
- char buf[64];
- GtkWidget *pixmapwidget, *text;
- GdkBitmap *mask;
- GdkPixmap *pixmap;
-
-
- if (xsane.fax_dialog)
- {
- return; /* window already is open */
- }
-
- fax_dialog = gtk_dialog_new();
- snprintf(buf, sizeof(buf), "%s %s", prog_name, WINDOW_FAX_PROJECT);
- gtk_window_set_title(GTK_WINDOW(fax_dialog), buf);
- gtk_signal_connect(GTK_OBJECT(fax_dialog), "delete_event", (GtkSignalFunc) xsane_fax_dialog_delete, 0);
- xsane_set_window_icon(fax_dialog, 0);
-
- fax_scan_vbox = GTK_DIALOG(fax_dialog)->vbox;
-
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
- gtk_box_pack_start(GTK_BOX(fax_scan_vbox), hbox, FALSE, FALSE, 2);
-
- pixmap = gdk_pixmap_create_from_xpm_d(xsane.shell->window, &mask, xsane.bg_trans, (gchar **) fax_xpm);
- pixmapwidget = gtk_pixmap_new(pixmap, mask);
- gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
- gdk_pixmap_unref(pixmap);
-
- text = gtk_entry_new_with_max_length(128);
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAXPROJECT);
- gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_project);
- gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4);
- gtk_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_faxproject_changed_callback, 0);
-
- xsane.fax_project_entry = text;
-
- gtk_widget_show(pixmapwidget);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
-
- fax_project_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(fax_scan_vbox), fax_project_vbox, TRUE, TRUE, 0);
- gtk_widget_show(fax_project_vbox);
-
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
- gtk_box_pack_start(GTK_BOX(fax_project_vbox), hbox, FALSE, FALSE, 2);
-
- gtk_widget_realize(fax_dialog);
-
- pixmap = gdk_pixmap_create_from_xpm_d(fax_dialog->window, &mask, xsane.bg_trans, (gchar **) faxreceiver_xpm);
- pixmapwidget = gtk_pixmap_new(pixmap, mask);
- gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
- gdk_pixmap_unref(pixmap);
-
- text = gtk_entry_new_with_max_length(128);
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAXRECEIVER);
- gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4);
- gtk_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_faxreceiver_changed_callback, 0);
-
- xsane.fax_receiver_entry = text;
-
- gtk_widget_show(pixmapwidget);
- gtk_widget_show(text);
- gtk_widget_show(hbox);
-
-
- scrolled_window = gtk_scrolled_window_new(0, 0);
- gtk_widget_set_usize(scrolled_window, 200, 100);
- gtk_container_add(GTK_CONTAINER(fax_project_vbox), scrolled_window);
- gtk_widget_show(scrolled_window);
-
- list = gtk_list_new();
-/* gtk_list_set_selection_mode(list, GTK_SELECTION_BROWSE); */
-
- gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), list);
-
- gtk_widget_show(list);
-
- xsane.fax_list = list;
-
-
- hbox = gtk_hbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
- gtk_box_pack_start(GTK_BOX(fax_project_vbox), hbox, FALSE, FALSE, 2);
-
- button = gtk_button_new_with_label(BUTTON_SHOW);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_show_callback, list);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- button = gtk_button_new_with_label(BUTTON_RENAME);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_callback, list);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- button = gtk_button_new_with_label(BUTTON_DELETE);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_delete_callback, list);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- xsane_button_new_with_pixmap(hbox, move_up_xpm, 0, (GtkSignalFunc) xsane_fax_entry_move_up_callback, list);
- xsane_button_new_with_pixmap(hbox, move_down_xpm, 0, (GtkSignalFunc) xsane_fax_entry_move_down_callback, list);
-
- gtk_widget_show(hbox);
-
- xsane.fax_project_box = fax_project_vbox;
-
- /* fill in action area: */
- hbox = GTK_DIALOG(fax_dialog)->action_area;
-
- fax_project_exists_hbox = gtk_hbox_new(FALSE, 2);
- gtk_box_pack_start(GTK_BOX(hbox), fax_project_exists_hbox, TRUE, TRUE, 0);
-
- button = gtk_button_new_with_label(BUTTON_SEND_PROJECT);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_send, 0);
- gtk_box_pack_start(GTK_BOX(fax_project_exists_hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- button = gtk_button_new_with_label(BUTTON_DELETE_PROJECT);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_project_delete, 0);
- gtk_box_pack_start(GTK_BOX(fax_project_exists_hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- gtk_widget_show(fax_project_exists_hbox);
- xsane.fax_project_exists = fax_project_exists_hbox;
-
- button = gtk_button_new_with_label(BUTTON_CREATE_PROJECT);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_project_create, 0);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- xsane.fax_project_not_exists = button;
-
- xsane.fax_dialog = fax_dialog;
-
- xsane_fax_project_load();
-
- gtk_widget_show(fax_dialog);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_dialog_close()
-{
- if (xsane.fax_dialog == 0)
- {
- return;
- }
-
- gtk_widget_destroy(xsane.fax_dialog);
-
- xsane.fax_dialog = 0;
- xsane.fax_list = 0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_project_load()
-{
- FILE *projectfile;
- char page[256];
- char buf[256];
- GtkWidget *list_item;
- int i;
- char c;
-
- gtk_signal_disconnect_by_func(GTK_OBJECT(xsane.fax_receiver_entry), GTK_SIGNAL_FUNC(xsane_faxreceiver_changed_callback), 0);
- gtk_list_remove_items(GTK_LIST(xsane.fax_list), GTK_LIST(xsane.fax_list)->children);
-
- snprintf(buf, sizeof(buf), "%s/project-list", preferences.fax_project);
- projectfile = fopen(buf, "r");
-
- if ((!projectfile) || (feof(projectfile)))
- {
- snprintf(buf, sizeof(buf), "%s/page-001.ps", preferences.fax_project);
- xsane.fax_filename=strdup(buf);
-
- xsane.fax_receiver=strdup("");
- gtk_entry_set_text(GTK_ENTRY(xsane.fax_receiver_entry), (char *) xsane.fax_receiver);
-
- gtk_widget_set_sensitive(xsane.fax_project_box, FALSE);
- gtk_widget_hide(xsane.fax_project_exists);
- gtk_widget_show(xsane.fax_project_not_exists);
- gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE);
- }
- else
- {
- i=0;
- c=0;
- while ((i<255) && (c != 10) && (c != EOF)) /* first line is receiver phone number or address */
- {
- c = fgetc(projectfile);
- page[i++] = c;
- }
- page[i-1] = 0;
-
- xsane.fax_receiver=strdup(page);
- gtk_entry_set_text(GTK_ENTRY(xsane.fax_receiver_entry), (char *) xsane.fax_receiver);
-
-
- i=0;
- c=0;
- while ((i<255) && (c != 10) && (c != EOF)) /* second line is next fax filename */
- {
- c = fgetc(projectfile);
- page[i++] = c;
- }
- page[i-1] = 0;
-
- snprintf(buf, sizeof(buf), "%s/%s", preferences.fax_project, page);
- xsane.fax_filename=strdup(buf);
-
- while (!feof(projectfile))
- {
- i=0;
- c=0;
-
- while ((i<255) && (c != 10) && (c != EOF))
- {
- c = fgetc(projectfile);
- page[i++] = c;
- }
- page[i-1]=0;
-
- if (c > 1)
- {
- list_item = gtk_list_item_new_with_label(page);
- gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page));
- gtk_container_add(GTK_CONTAINER(xsane.fax_list), list_item);
- gtk_widget_show(list_item);
- }
- }
- gtk_widget_set_sensitive(xsane.fax_project_box, TRUE);
- gtk_widget_show(xsane.fax_project_exists);
- gtk_widget_hide(xsane.fax_project_not_exists);
- gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE);
- }
-
- if (projectfile)
- {
- fclose(projectfile);
- }
-
- gtk_signal_connect(GTK_OBJECT(xsane.fax_receiver_entry), "changed", (GtkSignalFunc) xsane_faxreceiver_changed_callback, 0);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_project_delete()
-{
- char *page;
- char file[256];
- GList *list = (GList *) GTK_LIST(xsane.fax_list)->children;
- GtkObject *list_item;
-
- while (list)
- {
- list_item = GTK_OBJECT(list->data);
- page = strdup((char *) gtk_object_get_data(list_item, "list_item_data"));
- xsane_convert_text_to_filename(&page);
- snprintf(file, sizeof(file), "%s/%s.ps", preferences.fax_project, page);
- free(page);
- remove(file);
- list = list->next;
- }
- snprintf(file, sizeof(file), "%s/project-list", preferences.fax_project);
- remove(file);
- snprintf(file, sizeof(file), "%s", preferences.fax_project);
- rmdir(file);
-
- xsane_fax_project_load();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_fax_project_save()
-{
- FILE *projectfile;
- char *page;
- char buf[256];
- GList *list = (GList *) GTK_LIST(xsane.fax_list)->children;
- GtkObject *list_item;
-
- umask(preferences.directory_umask); /* define new file permissions */
- mkdir(preferences.fax_project, 0777); /* make sure directory exists */
-
- snprintf(buf, sizeof(buf), "%s/project-list", preferences.fax_project);
- umask(preferences.image_umask); /* define image file permissions */
- projectfile = fopen(buf, "w");
- umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
-
- if (xsane.fax_receiver)
- {
- fprintf(projectfile, "%s\n", xsane.fax_receiver); /* first line is receiver phone number or address */
- }
- else
- {
- fprintf(projectfile, "\n");
- }
-
- if (xsane.fax_filename)
- {
- fprintf(projectfile, "%s\n", strrchr(xsane.fax_filename, '/')+1); /* second line is next fax filename */
- }
- else
- {
- fprintf(projectfile, "\n");
- }
-
-
- while (list)
- {
- list_item = GTK_OBJECT(list->data);
- page = (char *) gtk_object_get_data(list_item, "list_item_data");
- fprintf(projectfile, "%s\n", page);
- list = list->next;
- }
- fclose(projectfile);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_project_create()
-{
- if (strlen(preferences.fax_project))
- {
- xsane_fax_project_save();
- xsane_fax_project_load();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_pref_toggle_tooltips(GtkWidget *widget, gpointer data)
-{
- preferences.tooltips_enabled = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
- xsane_back_gtk_set_tooltips(dialog, preferences.tooltips_enabled);
- xsane_pref_save();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_show_doc_via_nsr(GtkWidget *widget, gpointer data) /* show via netscape remote */
-{
- char *name = (char *) data;
- char buf[256];
- FILE *ns_pipe;
- pid_t pid;
- char *arg[3];
-
- snprintf(buf, sizeof(buf), "netscape -no-about-splash -remote \"openFile(%s/%s-doc.html)\" 2>&1", STRINGIFY(PATH_SANE_DATA_DIR), name);
- ns_pipe = popen(buf, "r");
-
- if (ns_pipe)
- {
- while (!feof(ns_pipe))
- {
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- fgetc(ns_pipe); /* remove char from pipe */
- }
-
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- if (pclose(ns_pipe)) /* netscape not running, start it */
- {
- snprintf(buf, sizeof(buf), "%s/%s-doc.html", STRINGIFY(PATH_SANE_DATA_DIR), name);
- arg[0] = "netscape";
- arg[1] = buf;
- arg[2] = 0;
-
- pid = fork();
-
- if (pid == 0) /* new process */
- {
- execvp(arg[0], arg); /* does not return if successfully */
- fprintf(stderr, "%s %s\n", ERR_FAILD_EXEC_DOC_VIEWER, preferences.doc_viewer);
- _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
- }
- }
- }
- else /* execution failed */
- {
- snprintf(buf, sizeof(buf), "%s", ERR_NETSCAPE_EXECUTE_FAIL);
- xsane_back_gtk_error(buf, TRUE);
- }
-
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_show_doc(GtkWidget *widget, gpointer data)
-{
- char *name = (char *) data;
- char buf[256];
- pid_t pid;
- char *arg[3];
-
- if (!strcmp(preferences.doc_viewer, DOCVIEWERNETSCAPEREMOTE))
- {
- xsane_show_doc_via_nsr(widget, data);
- }
- else
- {
- snprintf(buf, sizeof(buf), "%s/%s-doc.html", STRINGIFY(PATH_SANE_DATA_DIR), name);
- arg[0] = preferences.doc_viewer;
- arg[1] = buf;
- arg[2] = 0;
-
- pid = fork();
-
- if (pid == 0) /* new process */
- {
- execvp(arg[0], arg); /* does not return if successfully */
- fprintf(stderr, "%s %s\n", ERR_FAILD_EXEC_DOC_VIEWER, preferences.doc_viewer);
- _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_entrys_swap(GtkWidget *list_item_1, GtkWidget *list_item_2)
-{
- char *text1;
- char *text2;
-
- text1 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_1), "list_item_data");
- text2 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_2), "list_item_data");
-
- gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item_1))->data), text2);
- gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item_2))->data), text1);
- gtk_object_set_data(GTK_OBJECT(list_item_1), "list_item_data", text2);
- gtk_object_set_data(GTK_OBJECT(list_item_2), "list_item_data", text1);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_entry_move_up_callback(GtkWidget *widget, gpointer list)
-{
- GList *select;
- GList *item = GTK_LIST(list)->children;
- GtkWidget *list_item_1;
- GtkWidget *list_item_2;
- int position;
- int newpos;
-
- select = GTK_LIST(list)->selection;
- if (select)
- {
- list_item_1 = select->data;
-
- position = gtk_list_child_position(GTK_LIST(list), list_item_1);
- position--; /* move up */
- newpos = position;
-
- if (position >= 0)
- {
- while (position>0)
- {
- item = item->next;
- position--;
- }
-
- list_item_2 = item->data;
- if (list_item_2)
- {
- xsane_fax_entrys_swap(list_item_1, list_item_2);
- gtk_list_select_item(GTK_LIST(list), newpos);
- xsane_fax_project_save();
- }
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_entry_move_down_callback(GtkWidget *widget, gpointer list)
-{
- GList *select;
- GList *item = GTK_LIST(list)->children;
- GtkWidget *list_item_1;
- GtkWidget *list_item_2;
- int position;
- int newpos;
-
- select = GTK_LIST(list)->selection;
- if (select)
- {
- list_item_1 = select->data;
-
- position = gtk_list_child_position(GTK_LIST(list), list_item_1);
- position++; /* move down */
- newpos = position;
-
- while ((position>0) && (item))
- {
- item = item->next;
- position--;
- }
-
- if (item)
- {
- list_item_2 = item->data;
- if (list_item_2)
- {
- xsane_fax_entrys_swap(list_item_1, list_item_2);
- gtk_list_select_item(GTK_LIST(list), newpos);
- xsane_fax_project_save();
- }
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-int xsane_fax_entry_rename;
-
-static void xsane_fax_entry_rename_button_callback(GtkWidget *widget, gpointer data)
-{
- xsane_fax_entry_rename = (int) data;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_entry_rename_callback(GtkWidget *widget, gpointer list)
-{
- GtkWidget *list_item;
- GList *select;
- char *oldpage;
- char *newpage;
- char oldfile[256];
- char newfile[256];
-
- select = GTK_LIST(list)->selection;
- if (select)
- {
- GtkWidget *rename_dialog;
- GtkWidget *text;
- GtkWidget *button;
- GtkWidget *vbox, *hbox;
- char buf[256];
-
- list_item = select->data;
- oldpage = strdup((char *) gtk_object_get_data(GTK_OBJECT(list_item), "list_item_data"));
-
- xsane_set_sensitivity(FALSE);
-
- rename_dialog = gtk_dialog_new();
- gtk_window_set_position(GTK_WINDOW(rename_dialog), GTK_WIN_POS_CENTER);
- gtk_window_set_policy(GTK_WINDOW(rename_dialog), FALSE, FALSE, FALSE);
- snprintf(buf, sizeof(buf), "%s %s", prog_name, WINDOW_FAX_RENAME);
- gtk_window_set_title(GTK_WINDOW(rename_dialog), buf);
- gtk_signal_connect(GTK_OBJECT(rename_dialog), "delete_event", (GtkSignalFunc) xsane_fax_entry_rename_button_callback, (void *) -1);
- gtk_widget_show(rename_dialog);
-
- vbox = GTK_DIALOG(rename_dialog)->vbox;
-
- text = gtk_entry_new_with_max_length(64);
- xsane_back_gtk_set_tooltip(dialog->tooltips, text, DESC_FAXPAGENAME);
- gtk_entry_set_text(GTK_ENTRY(text), oldpage);
- gtk_widget_set_usize(text, 300, 0);
- gtk_box_pack_start(GTK_BOX(vbox), text, TRUE, TRUE, 4);
- gtk_widget_show(text);
-
-
- hbox = GTK_DIALOG(rename_dialog)->action_area;
-
- button = gtk_button_new_with_label("OK");
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_button_callback, (void *) 1);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- button = gtk_button_new_with_label("Cancel");
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_button_callback, (void *) -1);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
-
- xsane_fax_entry_rename = 0;
-
- while (xsane_fax_entry_rename == 0)
- {
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
- }
-
- newpage = strdup(gtk_entry_get_text(GTK_ENTRY(text)));
-
- if (xsane_fax_entry_rename == 1)
- {
- gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item))->data), newpage);
- gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(newpage));
-
- xsane_convert_text_to_filename(&oldpage);
- xsane_convert_text_to_filename(&newpage);
- snprintf(oldfile, sizeof(oldfile), "%s/%s.ps", preferences.fax_project, oldpage);
- snprintf(newfile, sizeof(newfile), "%s/%s.ps", preferences.fax_project, newpage);
-
- rename(oldfile, newfile);
-
- xsane_fax_project_save();
- }
-
- free(oldpage);
- free(newpage);
-
- gtk_widget_destroy(rename_dialog);
-
- xsane_set_sensitivity(TRUE);
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_entry_delete_callback(GtkWidget *widget, gpointer list)
-{
- GtkObject *list_item;
- GList *select;
- char *page;
- char file[256];
-
- select = GTK_LIST(list)->selection;
- if (select)
- {
- list_item = GTK_OBJECT(select->data);
- page = strdup((char *) gtk_object_get_data(list_item, "list_item_data"));
- xsane_convert_text_to_filename(&page);
- snprintf(file, sizeof(file), "%s/%s.ps", preferences.fax_project, page);
- free(page);
- remove(file);
- gtk_widget_destroy(GTK_WIDGET(list_item));
- xsane_fax_project_save();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_show_callback(GtkWidget *widget, gpointer list)
-{
- GtkObject *list_item;
- GList *select;
- pid_t pid;
- char *arg[100];
- char *page;
- char buf[256];
- int argnr;
-
- select = GTK_LIST(list)->selection;
- if (select)
- {
- argnr = xsane_parse_options(preferences.fax_viewer, arg);
-
- list_item = GTK_OBJECT(select->data);
- page = (char *) gtk_object_get_data(list_item, "list_item_data");
- page = strdup(page);
- xsane_convert_text_to_filename(&page);
- snprintf(buf, sizeof(buf), "%s/%s.ps", preferences.fax_project, page);
- free(page);
- arg[argnr++] = buf;
- arg[argnr] = 0;
-
- pid = fork();
-
- if (pid == 0) /* new process */
- {
- execvp(arg[0], arg); /* does not return if successfully */
- fprintf(stderr, "%s %s\n", ERR_FAILD_EXEC_FAX_VIEWER, preferences.fax_viewer);
- _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_fax_send()
-{
- char *page;
- GList *list = (GList *) GTK_LIST(xsane.fax_list)->children;
- GtkObject *list_item;
- pid_t pid;
- char *arg[1000];
- char buf[256];
- int argnr = 0;
- int i;
-
- if (list)
- {
- if (!xsane_option_defined(xsane.fax_receiver))
- {
- snprintf(buf, sizeof(buf), "%s\n", ERR_SENDFAX_RECEIVER_MISSING);
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- argnr = xsane_parse_options(preferences.fax_command, arg);
-
- if (xsane.fax_fine_mode) /* fine mode */
- {
- if (xsane_option_defined(preferences.fax_fine_option))
- {
- arg[argnr++] = strdup(preferences.fax_fine_option);
- }
- }
- else /* normal mode */
- {
- if (xsane_option_defined(preferences.fax_normal_option))
- {
- arg[argnr++] = strdup(preferences.fax_normal_option);
- }
- }
-
- if (xsane_option_defined(preferences.fax_receiver_option))
- {
- arg[argnr++] = strdup(preferences.fax_receiver_option);
- }
- arg[argnr++] = strdup(xsane.fax_receiver);
-
- if (xsane_option_defined(preferences.fax_postscript_option))
- {
- arg[argnr++] = strdup(preferences.fax_postscript_option);
- }
-
- while ((list) && (argnr<999)) /* add pages to options */
- {
- list_item = GTK_OBJECT(list->data);
- page = strdup((char *) gtk_object_get_data(list_item, "list_item_data"));
- xsane_convert_text_to_filename(&page);
- snprintf(buf, sizeof(buf), "%s/%s.ps", preferences.fax_project, page);
- free(page);
- arg[argnr++] = strdup(buf);
- list = list->next;
- }
-
- arg[argnr] = 0;
-
- pid = fork();
-
- if (pid == 0) /* new process */
- {
- execvp(arg[0], arg); /* does not return if successfully */
- fprintf(stderr, "%s %s\n", ERR_FAILED_EXEC_FAX_CMD, preferences.fax_command);
- _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
- }
-
- for (i=0; i<argnr; i++)
- {
- free(arg[i]);
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static GtkWidget *xsane_view_build_menu(void)
-{
- GtkWidget *menu, *item;
-
- menu = gtk_menu_new();
-
-
- /* show tooltips */
-
- item = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_TOOLTIPS);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), preferences.tooltips_enabled);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
- gtk_signal_connect(GTK_OBJECT(item), "toggled", (GtkSignalFunc) xsane_pref_toggle_tooltips, 0);
-
-
- /* insert separator: */
-
- item = gtk_menu_item_new();
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
-
-
- /* show preview */
-
- xsane.show_preview_widget = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_PREVIEW);
- gtk_menu_append(GTK_MENU(menu), xsane.show_preview_widget);
- gtk_widget_show(xsane.show_preview_widget);
- gtk_signal_connect(GTK_OBJECT(xsane.show_preview_widget), "toggled", (GtkSignalFunc) xsane_show_preview_callback, 0);
-
- /* show histogram */
-
- xsane.show_histogram_widget = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_HISTOGRAM);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_histogram_widget), preferences.show_histogram);
- gtk_menu_append(GTK_MENU(menu), xsane.show_histogram_widget);
- gtk_widget_show(xsane.show_histogram_widget);
- gtk_signal_connect(GTK_OBJECT(xsane.show_histogram_widget), "toggled", (GtkSignalFunc) xsane_show_histogram_callback, 0);
-
-
- /* show standard options */
-
- xsane.show_standard_options_widget = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_STANDARDOPTIONS);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_standard_options_widget), preferences.show_standard_options);
- gtk_menu_append(GTK_MENU(menu), xsane.show_standard_options_widget);
- gtk_widget_show(xsane.show_standard_options_widget);
- gtk_signal_connect(GTK_OBJECT(xsane.show_standard_options_widget), "toggled", (GtkSignalFunc) xsane_show_standard_options_callback, 0);
-
-
- /* show advanced options */
-
- xsane.show_advanced_options_widget = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_ADVANCEDOPTIONS);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_advanced_options_widget), preferences.show_advanced_options);
- gtk_menu_append(GTK_MENU(menu), xsane.show_advanced_options_widget);
- gtk_widget_show(xsane.show_advanced_options_widget);
- gtk_signal_connect(GTK_OBJECT(xsane.show_advanced_options_widget), "toggled",
- (GtkSignalFunc) xsane_show_advanced_options_callback, 0);
-
- return menu;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static GtkWidget *xsane_pref_build_menu(void)
-{
- GtkWidget *menu, *item, *submenu, *subitem;
-
- menu = gtk_menu_new();
-
-
- /* XSane setup dialog */
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_SETUP);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_setup_dialog, 0);
- gtk_widget_show(item);
-
- /* insert separator: */
-
- item = gtk_menu_item_new();
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
-
-
-#ifdef XSANE_TEST
- /* XSane batch scan dialog */
-
- item = gtk_menu_item_new_with_label("Batch scan");
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_batch_scan_dialog, 0);
- gtk_widget_show(item);
-
- /* insert separator: */
-
- item = gtk_menu_item_new();
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
-#endif
-
-
- /* length unit */
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_LENGTH_UNIT);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
-
- submenu = gtk_menu_new();
-
- subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_LENGTH_MILLIMETERS);
- gtk_menu_append(GTK_MENU(submenu), subitem);
- if (preferences.length_unit == 1.0)
- {
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
- }
- gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_pref_unit_callback, "mm");
- gtk_widget_show(subitem);
- xsane.length_unit_mm = subitem;
-
- subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_LENGTH_CENTIMETERS);
- gtk_menu_append(GTK_MENU(submenu), subitem);
- if (preferences.length_unit == 10.0)
- {
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
- }
- gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_pref_unit_callback, "cm");
- gtk_widget_show(subitem);
- xsane.length_unit_cm = subitem;
-
- subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_LENGTH_INCHES);
- gtk_menu_append(GTK_MENU(submenu), subitem);
- if (preferences.length_unit == 25.4)
- {
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
- }
- gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_pref_unit_callback, "in");
- gtk_widget_show(subitem);
- xsane.length_unit_in = subitem;
-
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
-
- xsane.length_unit_widget = item;
-
-
- /* insert separator: */
-
- item = gtk_menu_item_new();
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
-
- /* update policy */
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_UPDATE_POLICY);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
-
- submenu = gtk_menu_new();
-
- subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_POLICY_CONTINUOUS);
- gtk_menu_append(GTK_MENU(submenu), subitem);
- if (preferences.gtk_update_policy == GTK_UPDATE_CONTINUOUS)
- {
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
- }
- gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_update_policy_callback, (void *) GTK_UPDATE_CONTINUOUS);
- gtk_widget_show(subitem);
- xsane.update_policy_continu = subitem;
-
- subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_POLICY_DISCONTINU);
- gtk_menu_append(GTK_MENU(submenu), subitem);
- if (preferences.gtk_update_policy == GTK_UPDATE_DISCONTINUOUS)
- {
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
- }
- gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_update_policy_callback, (void *) GTK_UPDATE_DISCONTINUOUS);
- gtk_widget_show(subitem);
- xsane.update_policy_discont = subitem;
-
- subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_POLICY_DELAYED);
- gtk_menu_append(GTK_MENU(submenu), subitem);
- if (preferences.gtk_update_policy == GTK_UPDATE_DELAYED)
- {
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
- }
- gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_update_policy_callback, (void *) GTK_UPDATE_DELAYED);
- gtk_widget_show(subitem);
- xsane.update_policy_delayed = subitem;
-
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
-
-
- /* insert separator: */
-
- item = gtk_menu_item_new();
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
-
-
- /* show resolution list */
-
- xsane.show_resolution_list_widget = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_RESOLUTIONLIST);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_resolution_list_widget), preferences.show_resolution_list);
- gtk_menu_append(GTK_MENU(menu), xsane.show_resolution_list_widget);
- gtk_widget_show(xsane.show_resolution_list_widget);
- gtk_signal_connect(GTK_OBJECT(xsane.show_resolution_list_widget), "toggled",
- (GtkSignalFunc) xsane_show_resolution_list_callback, 0);
-
-
- /* insert separator: */
-
- item = gtk_menu_item_new();
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
-
-
- /* page orientation */
-
- item = gtk_check_menu_item_new_with_label(MENU_ITEM_PAGE_ROTATE);
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), preferences.psrotate);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
- gtk_signal_connect(GTK_OBJECT(item), "toggled", (GtkSignalFunc) xsane_page_rotate_callback, 0);
-
-
-
- /* insert separator: */
-
- item = gtk_menu_item_new();
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
-
- /* Save device setting */
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_SAVE_DEVICE_SETTINGS);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_device_preferences_save, 0);
- gtk_widget_show(item);
-
- /* Load device setting */
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_LOAD_DEVICE_SETTINGS);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_device_preferences_load, 0);
- gtk_widget_show(item);
-
- return menu;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static GtkWidget *xsane_help_build_menu(void)
-{
- GtkWidget *menu, *item;
-
- menu = gtk_menu_new();
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_XSANE_DOC);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_show_doc, (void *) "sane-xsane");
- gtk_widget_show(item);
-
- item = gtk_menu_item_new();
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
-
- if (xsane.backend)
- {
- item = gtk_menu_item_new_with_label(MENU_ITEM_BACKEND_DOC);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_show_doc, (void *) xsane.backend);
- gtk_widget_show(item);
- }
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_AVAILABLE_BACKENDS);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_show_doc, (void *) "sane-backends");
- gtk_widget_show(item);
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_PROBLEMS);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_show_doc, (void *) "sane-problems");
- gtk_widget_show(item);
-
- item = gtk_menu_item_new();
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_widget_show(item);
-
- item = gtk_menu_item_new_with_label(MENU_ITEM_SCANTIPS);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_show_doc, (void *) "sane-scantips");
- gtk_widget_show(item);
-
- return menu;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_panel_build(GSGDialog *dialog)
-{
- GtkWidget *xsane_hbox;
- GtkWidget *standard_hbox, *standard_vbox;
- GtkWidget *advanced_hbox, *advanced_vbox;
- GtkWidget *parent, *vbox, *button, *label;
- const SANE_Option_Descriptor *opt;
- SANE_Handle dev = dialog->dev;
- double dval, dmin, dmax, dquant;
- char *buf, str[16], title[256];
- GSGDialogElement *elem;
- SANE_Word quant, val;
- SANE_Status status;
- SANE_Int num_words;
- char **str_list;
- int i, j;
- int num_vector_opts = 0;
- int *vector_opts;
-
- xsane_hbox = 0;
-
- /* reset well-known options: */
- dialog->well_known.scanmode = -1;
- dialog->well_known.scansource = -1;
- dialog->well_known.preview = -1;
- dialog->well_known.dpi = -1;
- dialog->well_known.dpi_x = -1;
- dialog->well_known.dpi_y = -1;
- dialog->well_known.coord[xsane_back_gtk_TL_X] = -1;
- dialog->well_known.coord[xsane_back_gtk_TL_Y] = -1;
- dialog->well_known.coord[xsane_back_gtk_BR_X] = -1;
- dialog->well_known.coord[xsane_back_gtk_BR_Y] = -1;
- dialog->well_known.gamma_vector = -1;
- dialog->well_known.gamma_vector_r = -1;
- dialog->well_known.gamma_vector_g = -1;
- dialog->well_known.gamma_vector_b = -1;
- dialog->well_known.bit_depth = -1;
-
-
- /* standard options */
- standard_hbox = gtk_hbox_new(FALSE, 2);
- gtk_widget_show(standard_hbox);
- standard_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
- gtk_widget_show(standard_vbox);
-/* gtk_box_pack_start(GTK_BOX(standard_hbox), standard_vbox, FALSE, FALSE, 0); */ /* make frame fixed */
- gtk_box_pack_start(GTK_BOX(standard_hbox), standard_vbox, TRUE, TRUE, 0); /* make frame sizeable */
-
- /* advanced options */
- advanced_hbox = gtk_hbox_new(FALSE, 2);
- gtk_widget_show(advanced_hbox);
- advanced_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
- gtk_widget_show(advanced_vbox);
-/* gtk_box_pack_start(GTK_BOX(advanced_hbox), advanced_vbox, FALSE, FALSE, 0); */ /* make frame fixed */
- gtk_box_pack_start(GTK_BOX(advanced_hbox), advanced_vbox, TRUE, TRUE, 0); /* make frame sizeable */
-
-
- vector_opts = alloca(dialog->num_elements * sizeof (int));
-
- parent = standard_vbox;
- for (i = 1; i < dialog->num_elements; ++i)
- {
- opt = sane_get_option_descriptor (dev, i);
- if (!SANE_OPTION_IS_ACTIVE(opt->cap))
- continue;
-
- /* pick up well-known options as we go: */
- if (opt->name)
- {
- if (strcmp(opt->name, SANE_NAME_PREVIEW) == 0 && opt->type == SANE_TYPE_BOOL)
- {
- dialog->well_known.preview = i;
- continue;
- }
- else if (strcmp(opt->name, SANE_NAME_SCAN_RESOLUTION) == 0
- && opt->unit == SANE_UNIT_DPI && (opt->type == SANE_TYPE_INT || opt->type == SANE_TYPE_FIXED))
- dialog->well_known.dpi = i;
- else if (strcmp(opt->name, SANE_NAME_SCAN_X_RESOLUTION) == 0
- && opt->unit == SANE_UNIT_DPI && (opt->type == SANE_TYPE_INT || opt->type == SANE_TYPE_FIXED))
- dialog->well_known.dpi_x = i;
- else if (strcmp(opt->name, SANE_NAME_SCAN_Y_RESOLUTION) == 0
- && opt->unit == SANE_UNIT_DPI && (opt->type == SANE_TYPE_INT || opt->type == SANE_TYPE_FIXED))
- dialog->well_known.dpi_y = i;
- else if (strcmp (opt->name, SANE_NAME_SCAN_MODE) == 0)
- dialog->well_known.scanmode = i;
- else if (strcmp (opt->name, SANE_NAME_SCAN_SOURCE) == 0)
- dialog->well_known.scansource = i;
- else if (strcmp (opt->name, SANE_NAME_SCAN_TL_X) == 0)
- dialog->well_known.coord[xsane_back_gtk_TL_X] = i;
- else if (strcmp (opt->name, SANE_NAME_SCAN_TL_Y) == 0)
- dialog->well_known.coord[xsane_back_gtk_TL_Y] = i;
- else if (strcmp (opt->name, SANE_NAME_SCAN_BR_X) == 0)
- dialog->well_known.coord[xsane_back_gtk_BR_X] = i;
- else if (strcmp (opt->name, SANE_NAME_SCAN_BR_Y) == 0)
- dialog->well_known.coord[xsane_back_gtk_BR_Y] = i;
- else if (strcmp (opt->name, SANE_NAME_GAMMA_VECTOR) == 0)
- dialog->well_known.gamma_vector = i;
- else if (strcmp (opt->name, SANE_NAME_GAMMA_VECTOR_R) == 0)
- dialog->well_known.gamma_vector_r = i;
- else if (strcmp (opt->name, SANE_NAME_GAMMA_VECTOR_G) == 0)
- dialog->well_known.gamma_vector_g = i;
- else if (strcmp (opt->name, SANE_NAME_GAMMA_VECTOR_B) == 0)
- dialog->well_known.gamma_vector_b = i;
- else if (strcmp (opt->name, SANE_NAME_BIT_DEPTH) == 0)
- dialog->well_known.bit_depth = i;
- }
-
- elem = dialog->element + i;
- elem->dialog = dialog;
-
-
- if (opt->unit == SANE_UNIT_NONE)
- {
- snprintf(title, sizeof(title), "%s", _BGT(opt->title));
- }
- else
- {
- snprintf(title, sizeof(title), "%s [%s]", _BGT(opt->title), xsane_back_gtk_unit_string(opt->unit));
- }
-
- switch (opt->type)
- {
- case SANE_TYPE_GROUP:
- /* group a set of options */
- vbox = standard_vbox;
- if (opt->cap & SANE_CAP_ADVANCED)
- {
- vbox = advanced_vbox;
- }
- parent = xsane_back_gtk_group_new(vbox, title);
- elem->widget = parent;
- break;
-
- case SANE_TYPE_BOOL:
- assert(opt->size == sizeof(SANE_Word));
- status = sane_control_option(dialog->dev, i, SANE_ACTION_GET_VALUE, &val, 0);
- if (status != SANE_STATUS_GOOD)
- {
- goto get_value_failed;
- }
- xsane_back_gtk_button_new(parent, title, val, elem, dialog->tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
- gtk_widget_show(parent->parent);
- break;
-
- case SANE_TYPE_INT:
- if (opt->size != sizeof(SANE_Word))
- {
- vector_opts[num_vector_opts++] = i;
- break;
- }
- status = sane_control_option(dialog->dev, i, SANE_ACTION_GET_VALUE, &val, 0);
- if (status != SANE_STATUS_GOOD)
- {
- goto get_value_failed;
- }
-
- switch (opt->constraint_type)
- {
- case SANE_CONSTRAINT_RANGE:
- if ( (strcmp(opt->name, SANE_NAME_SCAN_RESOLUTION) ) && /* do not show resolution */
- (strcmp(opt->name, SANE_NAME_SCAN_X_RESOLUTION)) && /* do not show x-resolution */
- (strcmp(opt->name, SANE_NAME_SCAN_Y_RESOLUTION)) ) /* do not show y-resolution */
- {
- /* use a scale */
- quant = opt->constraint.range->quant;
- if (quant == 0)
- quant = 1;
- xsane_back_gtk_scale_new(parent, title, val, opt->constraint.range->min, opt->constraint.range->max, quant,
- (opt->cap & SANE_CAP_AUTOMATIC), elem, dialog->tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
- gtk_widget_show(parent->parent);
- }
- break;
-
- case SANE_CONSTRAINT_WORD_LIST:
- if ( (strcmp(opt->name, SANE_NAME_SCAN_RESOLUTION) ) && /* do not show resolution */
- (strcmp(opt->name, SANE_NAME_SCAN_X_RESOLUTION)) && /* do not show x-resolution */
- (strcmp(opt->name, SANE_NAME_SCAN_Y_RESOLUTION)) ) /* do not show y-resolution */
- {
- /* use a "list-selection" widget */
- num_words = opt->constraint.word_list[0];
- str_list = malloc((num_words + 1) * sizeof(str_list[0]));
- for (j = 0; j < num_words; ++j)
- {
- sprintf(str, "%d", opt->constraint.word_list[j + 1]);
- str_list[j] = strdup(str);
- }
- str_list[j] = 0;
- sprintf(str, "%d", val);
- xsane_back_gtk_option_menu_new(parent, title, str_list, str, elem, dialog->tooltips, _BGT(opt->desc),
- SANE_OPTION_IS_SETTABLE(opt->cap));
- free(str_list);
- gtk_widget_show(parent->parent);
- }
- break;
-
- default:
- fprintf(stderr, "xsane_panel_build: %s %d!\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
- break;
- }
- break;
-
- case SANE_TYPE_FIXED:
- if (opt->size != sizeof (SANE_Word))
- {
- vector_opts[num_vector_opts++] = i;
- break;
- }
- status = sane_control_option(dialog->dev, i, SANE_ACTION_GET_VALUE, &val, 0);
- if (status != SANE_STATUS_GOOD)
- {
- goto get_value_failed;
- }
-
- switch (opt->constraint_type)
- {
- case SANE_CONSTRAINT_RANGE:
- if ( (strcmp(opt->name, SANE_NAME_SCAN_RESOLUTION) ) && /* do not show resolution */
- (strcmp(opt->name, SANE_NAME_SCAN_X_RESOLUTION)) && /* do not show x-resolution */
- (strcmp(opt->name, SANE_NAME_SCAN_Y_RESOLUTION)) ) /* do not show y-resolution */
- {
- /* use a scale */
- quant = opt->constraint.range->quant;
- if (quant == 0)
- quant = 1;
- dval = SANE_UNFIX(val);
- dmin = SANE_UNFIX(opt->constraint.range->min);
- dmax = SANE_UNFIX(opt->constraint.range->max);
- dquant = SANE_UNFIX(quant);
- if (opt->unit == SANE_UNIT_MM)
- {
- dval /= preferences.length_unit;
- dmin /= preferences.length_unit;
- dmax /= preferences.length_unit;
- dquant /= preferences.length_unit;
- }
- xsane_back_gtk_scale_new(parent, title, dval, dmin, dmax, dquant, (opt->cap & SANE_CAP_AUTOMATIC), elem,
- dialog->tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
- gtk_widget_show(parent->parent);
- }
- break;
-
- case SANE_CONSTRAINT_WORD_LIST:
- if ( (strcmp(opt->name, SANE_NAME_SCAN_RESOLUTION) ) && /* do not show resolution */
- (strcmp(opt->name, SANE_NAME_SCAN_X_RESOLUTION)) && /* do not show x-resolution */
- (strcmp(opt->name, SANE_NAME_SCAN_Y_RESOLUTION)) ) /* do not show y-resolution */
- {
- /* use a "list-selection" widget */
- num_words = opt->constraint.word_list[0];
- str_list = malloc ((num_words + 1) * sizeof (str_list[0]));
- for (j = 0; j < num_words; ++j)
- {
- sprintf(str, "%g", SANE_UNFIX(opt->constraint.word_list[j + 1]));
- str_list[j] = strdup (str);
- }
- str_list[j] = 0;
- sprintf(str, "%g", SANE_UNFIX (val));
- xsane_back_gtk_option_menu_new(parent, title, str_list, str, elem, dialog->tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
- free (str_list);
- gtk_widget_show(parent->parent);
- }
- break;
-
- default:
- fprintf(stderr, "xsane_panel_build: %s %d!\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
- break;
- }
- break;
-
- case SANE_TYPE_STRING:
- buf = malloc (opt->size);
- status = sane_control_option(dialog->dev, i, SANE_ACTION_GET_VALUE, buf, 0);
- if (status != SANE_STATUS_GOOD)
- {
- free (buf);
- goto get_value_failed;
- }
-
- switch (opt->constraint_type)
- {
- case SANE_CONSTRAINT_STRING_LIST:
- if ( (strcmp (opt->name, SANE_NAME_SCAN_MODE) != 0) && /* do not show scanmode */
- (strcmp (opt->name, SANE_NAME_SCAN_SOURCE) != 0) ) /* do not show scansource */
- {
- /* use a "list-selection" widget */
- xsane_back_gtk_option_menu_new(parent, title, (char **) opt->constraint.string_list, buf,
- elem, dialog->tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
- gtk_widget_show (parent->parent);
- }
- break;
-
- case SANE_CONSTRAINT_NONE:
- xsane_back_gtk_text_entry_new(parent, title, buf, elem, dialog->tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
- gtk_widget_show (parent->parent);
- break;
-
- default:
- fprintf(stderr, "xsane_panel_build: %s %d!\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
- break;
- }
- free (buf);
- break;
-
- case SANE_TYPE_BUTTON:
- button = gtk_button_new();
- gtk_signal_connect(GTK_OBJECT (button), "clicked", (GtkSignalFunc) xsane_back_gtk_push_button_callback, elem);
- xsane_back_gtk_set_tooltip(dialog->tooltips, button, _BGT(opt->desc));
-
- label = gtk_label_new(title);
- gtk_container_add(GTK_CONTAINER (button), label);
-
- gtk_box_pack_start(GTK_BOX (parent), button, FALSE, TRUE, 0);
-
- gtk_widget_show(label);
- gtk_widget_show(button);
-
- gtk_widget_set_sensitive(button, SANE_OPTION_IS_SETTABLE(opt->cap));
-
- elem->widget = button;
- gtk_widget_show(parent->parent);
- break;
-
- default:
- fprintf(stderr, "xsane_panel_build: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
- break;
- }
- continue;
-
- get_value_failed:
- {
- char msg[256];
-
- sprintf(msg, "%s %s: %s.", ERR_GET_OPTION, opt->name, XSANE_STRSTATUS(status));
- xsane_back_gtk_error(msg, TRUE);
- }
- }
-
- if ((dialog->well_known.dpi_x == -1) && (dialog->well_known.dpi_y != -1))
- {
- dialog->well_known.dpi_x = dialog->well_known.dpi;
- }
-
- xsane_hbox = xsane_update_xsane_callback();
-
- gtk_container_add(GTK_CONTAINER(dialog->xsane_window), xsane_hbox);
- gtk_container_add(GTK_CONTAINER(dialog->standard_window), standard_hbox);
- gtk_container_add(GTK_CONTAINER(dialog->advanced_window), advanced_hbox);
-
- dialog->xsane_hbox = xsane_hbox;
- dialog->standard_hbox = standard_hbox;
- dialog->advanced_hbox = advanced_hbox;
-
- xsane_update_histogram();
-/*
- xsane_draw_slider_level(&xsane.slider_gray);
- xsane_draw_slider_level(&xsane.slider_red);
- xsane_draw_slider_level(&xsane.slider_green);
- xsane_draw_slider_level(&xsane.slider_blue);
-*/
- xsane_update_sliders();
-
- if (xsane.length_unit_widget)
- {
- int unit;
-
- status = xsane_get_area_value(dialog->well_known.coord[0], 0, &unit);
-
- if ( (unit == SANE_UNIT_PIXEL) || (status) )
- {
- gtk_widget_set_sensitive(xsane.length_unit_widget, FALSE);
- }
- else
- {
- gtk_widget_set_sensitive(xsane.length_unit_widget, TRUE);
- }
- }
-
- /* now add in vector editor, if necessary: */
-/*
- if (num_vector_opts)
- vector_new (dialog, custom_gamma_vbox, num_vector_opts, vector_opts);
-*/
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-/* Create the main dialog box. */
-
-static void xsane_device_dialog(void)
-{
- GtkWidget *hbox, *button, *frame, *infobox;
- GtkWidget *main_dialog_window, *standard_dialog_window, *advanced_dialog_window;
- GtkWidget *menubar, *menubar_item;
- const gchar *devname;
- char buf[256];
- char windowname[255];
- char devicetext[255];
- char *textptr;
- GtkWidget *xsane_window;
- GtkWidget *xsane_vbox_main;
- GtkWidget *xsane_vbox_standard;
- GtkWidget *xsane_vbox_advanced;
- GdkColormap *colormap;
- SANE_Int num_elements;
- SANE_Status status;
- SANE_Handle dev;
-
-
- devname = devlist[seldev]->name;
-
- status = sane_open(devname, &dev);
- if (status != SANE_STATUS_GOOD)
- {
- snprintf(buf, sizeof(buf), "%s `%s':\n %s.", ERR_DEVICE_OPEN_FAILED, devname, XSANE_STRSTATUS(status));
- xsane_back_gtk_error(buf, TRUE);
- return;
- }
-
- if (sane_control_option(dev, 0, SANE_ACTION_GET_VALUE, &num_elements, 0) != SANE_STATUS_GOOD)
- {
- xsane_back_gtk_error(ERR_OPTION_COUNT, TRUE);
- sane_close(dev);
- return;
- }
-
- snprintf(buf, sizeof(buf), "%s", devlist[seldev]->name); /* generate "sane-BACKENDNAME" */
- textptr = strrchr(buf, ':'); /* format is midend:midend:midend:backend:device or backend:device */
- if (textptr)
- {
- *textptr = 0; /* erase ":device" at end of text */
- textptr = strrchr(buf, ':');
- if (textptr) /* midend:backend:device */
- {
- textptr++;
- }
- else /* backend:device */
- {
- textptr = buf;
- }
-
- xsane.backend = malloc(strlen(textptr)+6);
- sprintf(xsane.backend, "sane-%s", textptr); /* add "sane-" */
-
- bindtextdomain(xsane.backend, LOCALEDIR); /* set path for backend translation texts */
- }
-
- /* create device-text for window titles */
-
- snprintf(devicetext, sizeof(devicetext), "%s", devlist[seldev]->model);
- textptr = devicetext + strlen(devicetext);
- while (*(textptr-1) == ' ') /* erase spaces at end of text */
- {
- textptr--;
- }
-
- *textptr = ':';
- textptr++;
- *textptr = 0;
-
- if (!strncmp(devname, "net:", 4)) /* network device ? */
- {
- sprintf(textptr, "net:");
- textptr = devicetext + strlen(devicetext);
- }
-
- snprintf(buf, sizeof(buf), ":%s", devname);
- snprintf(buf, sizeof(buf), "/%s", (strrchr(buf, ':')+1));
- sprintf(textptr, (strrchr(buf, '/')+1));
-
- device_text = strdup(devicetext);
-
-
- /* if no preferences filename is given on commandline create one from devicenaname */
-
- if (!xsane.device_set_filename)
- {
- if (!strcmp(devlist[seldev]->vendor, TEXT_UNKNOWN))
- {
- snprintf(buf, sizeof(buf), "%s", devlist[seldev]->name);
- }
- else
- {
- snprintf(buf, sizeof(buf), "%s:%s", devlist[seldev]->vendor, devlist[seldev]->model);
- }
- xsane.device_set_filename = strdup(buf); /* set preferences filename */
- }
-
-
- xsane_pref_restore(); /* restore preferences */
-
- if (xsane.main_window_fixed == -1) /* no command line option given */
- {
- xsane.main_window_fixed = preferences.main_window_fixed;
- }
-
-
- /* create the xsane dialog box */
-
- xsane.shell = gtk_dialog_new();
- gtk_widget_set_uposition(xsane.shell, XSANE_SHELL_POS_X, XSANE_SHELL_POS_Y);
- sprintf(windowname, "%s %s %s", prog_name, XSANE_VERSION, device_text);
- gtk_window_set_title(GTK_WINDOW(xsane.shell), (char *) windowname);
- gtk_signal_connect(GTK_OBJECT(xsane.shell), "delete_event", GTK_SIGNAL_FUNC(xsane_scan_win_delete), 0);
-
- xsane_set_window_icon(xsane.shell, 0);
-
- /* set the main vbox */
-
- xsane_window = GTK_DIALOG(xsane.shell)->vbox;
- gtk_widget_show(xsane_window); /* normally not necessary, but to be sure */
-
- /* create the menubar */
-
- menubar = gtk_menu_bar_new();
- gtk_box_pack_start(GTK_BOX(xsane_window), menubar, FALSE, FALSE, 0);
-
- /* "Files" submenu: */
- menubar_item = gtk_menu_item_new_with_label(MENU_FILE);
- gtk_container_add(GTK_CONTAINER(menubar), menubar_item);
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_item), xsane_files_build_menu());
- gtk_widget_show(menubar_item);
-
- /* "Preferences" submenu: */
- menubar_item = gtk_menu_item_new_with_label(MENU_PREFERENCES);
- gtk_container_add(GTK_CONTAINER(menubar), menubar_item);
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_item), xsane_pref_build_menu());
- gtk_widget_show(menubar_item);
-
- /* "View" submenu: */
- menubar_item = gtk_menu_item_new_with_label(MENU_VIEW);
- gtk_container_add(GTK_CONTAINER(menubar), menubar_item);
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_item), xsane_view_build_menu());
- gtk_widget_show(menubar_item);
-
-
- /* "Help" submenu: */
- menubar_item = gtk_menu_item_new_with_label(MENU_HELP);
- gtk_container_add(GTK_CONTAINER(menubar), menubar_item);
- gtk_menu_item_right_justify((GtkMenuItem *) menubar_item);
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_item), xsane_help_build_menu());
- gtk_widget_show(menubar_item);
-
- gtk_widget_show(menubar);
-
- if (xsane.main_window_fixed) /* fixed window: use it like it is */
- {
- /* shrink grow auto_shrink */
- gtk_window_set_policy(GTK_WINDOW(xsane.shell), FALSE, FALSE, TRUE); /* auto size */
-
- xsane_vbox_main = gtk_vbox_new(TRUE, 5); /* we need this to set the wanted borders */
- gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_main), 5);
- gtk_container_add(GTK_CONTAINER(xsane_window), xsane_vbox_main);
- }
- else /* scrolled window: create a scrolled window and put it into the xsane dialog box */
- {
- gtk_window_set_default_size(GTK_WINDOW(xsane.shell), XSANE_SHELL_WIDTH, XSANE_SHELL_HEIGHT); /* set default size */
-
- /* shrink grow auto_shrink */
- gtk_window_set_policy(GTK_WINDOW(xsane.shell), TRUE, TRUE, FALSE); /* allow resizing */
-
- xsane.main_dialog_scrolled = gtk_scrolled_window_new(0, 0);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(xsane.main_dialog_scrolled),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-
- gtk_container_add(GTK_CONTAINER(xsane_window), xsane.main_dialog_scrolled);
- gtk_widget_show(xsane.main_dialog_scrolled);
-
- xsane_vbox_main = gtk_vbox_new(TRUE, 5);
- gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_main), 5);
- gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(xsane.main_dialog_scrolled), xsane_vbox_main);
- }
-
- /* create a subwindow so the standard dialog keeps its position on rebuilds: */
- main_dialog_window = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(xsane_vbox_main), main_dialog_window, TRUE, TRUE, 0);
- gtk_widget_show(main_dialog_window);
-
- gtk_widget_show(xsane_vbox_main);
-
-
- /* create the scanner standard options dialog box */
-
- xsane.standard_options_shell = gtk_window_new(GTK_WINDOW_DIALOG);
- gtk_widget_set_uposition(xsane.standard_options_shell, XSANE_STD_OPTIONS_POS_X, XSANE_STD_OPTIONS_POS_Y);
- sprintf(windowname, "%s %s", WINDOW_STANDARD_OPTIONS, device_text);
- gtk_window_set_title(GTK_WINDOW(xsane.standard_options_shell), (char *) windowname);
-
- /* shrink grow auto_shrink */
- gtk_window_set_policy(GTK_WINDOW(xsane.standard_options_shell), FALSE, FALSE, TRUE);
- gtk_signal_connect(GTK_OBJECT(xsane.standard_options_shell), "delete_event",
- GTK_SIGNAL_FUNC(xsane_standard_option_win_delete), 0);
-
- xsane_set_window_icon(xsane.standard_options_shell, 0);
-
- xsane_vbox_standard = gtk_vbox_new(TRUE, 5);
- gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_standard), 5);
- gtk_container_add(GTK_CONTAINER(xsane.standard_options_shell), xsane_vbox_standard);
- gtk_widget_show(xsane_vbox_standard);
-
- /* create a subwindow so the standard dialog keeps its position on rebuilds: */
- standard_dialog_window = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(xsane_vbox_standard), standard_dialog_window, TRUE, TRUE, 0);
- gtk_widget_show(standard_dialog_window);
-
-
-
- /* create the scanner advanced options dialog box */
-
- xsane.advanced_options_shell = gtk_window_new(GTK_WINDOW_DIALOG);
- gtk_widget_set_uposition(xsane.advanced_options_shell, XSANE_ADV_OPTIONS_POS_X, XSANE_ADV_OPTIONS_POS_Y);
- sprintf(windowname, "%s %s",WINDOW_ADVANCED_OPTIONS, device_text);
- gtk_window_set_title(GTK_WINDOW(xsane.advanced_options_shell), (char *) windowname);
-
- /* shrink grow auto_shrink */
- gtk_window_set_policy(GTK_WINDOW(xsane.advanced_options_shell), FALSE, FALSE, TRUE);
- gtk_signal_connect(GTK_OBJECT(xsane.advanced_options_shell), "delete_event",
- GTK_SIGNAL_FUNC(xsane_advanced_option_win_delete), 0);
-
- xsane_set_window_icon(xsane.advanced_options_shell, 0);
-
- xsane_vbox_advanced = gtk_vbox_new(TRUE, 5);
- gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_advanced), 5);
- gtk_container_add(GTK_CONTAINER(xsane.advanced_options_shell), xsane_vbox_advanced);
- gtk_widget_show(xsane_vbox_advanced);
-
- /* create a subwindow so the advanced dialog keeps its position on rebuilds: */
- advanced_dialog_window = gtk_hbox_new(/* homogeneous */ FALSE, 0);
- gtk_box_pack_start(GTK_BOX(xsane_vbox_advanced), advanced_dialog_window, TRUE, TRUE, 0);
- gtk_widget_show(advanced_dialog_window);
-
-
- dialog = malloc(sizeof (*dialog));
- if (!dialog)
- {
- printf("Could not create dialog\n");
- return;
- }
-
- /* fill in dialog structure */
-
- memset(dialog, 0, sizeof(*dialog));
-
- dialog->xsane_window = main_dialog_window;
- dialog->standard_window = standard_dialog_window;
- dialog->advanced_window = advanced_dialog_window;
- dialog->dev = dev;
- dialog->dev_name = strdup(devname);
- dialog->num_elements = num_elements;
- dialog->option_reload_callback = xsane_update_preview;
- dialog->option_reload_arg = 0;
- dialog->param_change_callback = xsane_update_param;
- dialog->param_change_arg = 0;
-
- dialog->element = malloc(num_elements * sizeof(dialog->element[0]));
- memset(dialog->element, 0, num_elements * sizeof(dialog->element[0]));
-
-
-
-
- /* realize xsane main dialog */
- /* normally a realize should be ok, but then
- the default size of the scrollwed window is ignored
- so we use a widget_show in that case */
-
- if (xsane.main_window_fixed)
- {
- gtk_widget_realize(xsane.shell);
- }
- else
- {
- gtk_widget_show(xsane.shell);
- /* the disadavantage of this is that the main window does
- not have the focus when every window is shown */
- }
-
-
- /* define tooltips colors */
-
- dialog->tooltips = gtk_tooltips_new();
- colormap = gdk_window_get_colormap(xsane.shell->window);
-
-/* I don`t know why the following does not work with gtk-1.2.x */
-/* but the gimp has the same problems ;-) */
- /* use black as foreground: */
- dialog->tooltips_fg.red = 0;
- dialog->tooltips_fg.green = 0;
- dialog->tooltips_fg.blue = 0;
- gdk_color_alloc(colormap, &dialog->tooltips_fg);
-
- /* postit yellow (khaki) as background: */
- dialog->tooltips_bg.red = 61669;
- dialog->tooltips_bg.green = 59113;
- dialog->tooltips_bg.blue = 35979;
- gdk_color_alloc(colormap, &dialog->tooltips_bg);
-
-/* as long as gtk_tooltips_set_colors() does not work : */
-#if 1
- gtk_tooltips_force_window(dialog->tooltips);
- {
- GtkStyle *current_style = gtk_style_copy(gtk_widget_get_style(dialog->tooltips->tip_window));
-
- current_style->bg[GTK_STATE_NORMAL] = dialog->tooltips_bg;
- current_style->fg[GTK_STATE_NORMAL] = dialog->tooltips_fg;
- gtk_widget_set_style(dialog->tooltips->tip_window, current_style);
- }
-#else
- gtk_tooltips_set_colors(dialog->tooltips, &dialog->tooltips_bg, &dialog->tooltips_fg);
-#endif
- xsane_back_gtk_set_tooltips(dialog, preferences.tooltips_enabled);
-
-
-
- /* create histogram dialog and set colors */
- xsane_create_histogram_dialog(device_text); /* create the histogram dialog */
-
-
- /* The bottom row of info and start button */
-
-#if 0
- hbox = GTK_DIALOG(xsane.shell)->action_area;
-#endif
-
- hbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_end(GTK_BOX(GTK_DIALOG(xsane.shell)->action_area), hbox, TRUE, TRUE, 0);
- gtk_widget_show(hbox);
-
- /* Info frame */
- frame = gtk_frame_new(0);
- gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
-#if 0
- gtk_box_pack_start(GTK_BOX(hbox), frame, FALSE, FALSE, 0);
-#endif
- gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
- gtk_widget_show(frame);
-
- infobox = gtk_hbox_new(FALSE, 5);
- gtk_container_set_border_width(GTK_CONTAINER(infobox), 2);
- gtk_container_add(GTK_CONTAINER(frame), infobox);
- gtk_widget_show(infobox);
-
- xsane.info_label = gtk_label_new(TEXT_INFO_BOX);
- gtk_box_pack_start(GTK_BOX(infobox), xsane.info_label, FALSE, FALSE, 0);
-#if 0
- gtk_box_pack_start(GTK_BOX(infobox), xsane.info_label, TRUE, TRUE, 0);
-#endif
- gtk_widget_show(xsane.info_label);
-
-
- /* The Scan button */
- button = gtk_button_new_with_label(BUTTON_START);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_scan_dialog, 0);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
- xsane.start_button = GTK_OBJECT(button);
-
-
- /* create backend dependend options */
- xsane_panel_build(dialog);
-
-
- /* create preview dialog */
- xsane.preview = preview_new(dialog);
- gtk_signal_connect(GTK_OBJECT(xsane.preview->top), "delete_event", GTK_SIGNAL_FUNC(xsane_preview_window_destroyed), 0);
-
-
- xsane_device_preferences_restore(); /* restore device-settings */
-
- xsane_update_param(dialog, 0);
-
- gtk_widget_realize(xsane.standard_options_shell); /* is needed for saving window geometry */
- gtk_widget_realize(xsane.advanced_options_shell);
-
- if (preferences.show_standard_options)
- {
- gtk_widget_show(xsane.standard_options_shell);
- }
-
- if (preferences.show_advanced_options)
- {
- gtk_widget_show(xsane.advanced_options_shell);
- }
-
- gtk_widget_show(xsane.shell); /* call as last so focus is on it */
-
- while (gtk_events_pending())
- {
- gtk_main_iteration();
- }
-
- xsane_device_preferences_restore(); /* restore device-settings */
-
- xsane_update_sliders();
-
- if (xsane.show_preview)
- {
- gtk_widget_show(xsane.preview->top);
- }
- else
- {
- gtk_widget_hide(xsane.preview->top);
- }
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_preview_widget), xsane.show_preview);
-
- xsane_set_all_resolutions(); /* make sure resolution, resolution_x and resolution_y are up to date */
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_choose_dialog_ok_callback(void)
-{
- gtk_signal_disconnect_by_func(GTK_OBJECT(choose_device_dialog), GTK_SIGNAL_FUNC(xsane_quit), 0);
- gtk_widget_destroy(choose_device_dialog);
- xsane_device_dialog();
-
- if (!dialog)
- {
- xsane_quit();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_select_device_by_key_callback(GtkWidget * widget, gpointer data)
-{
- seldev = (long) data;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_select_device_by_mouse_callback(GtkWidget * widget, GdkEventButton *event, gpointer data)
-{
- seldev = (long) data;
- if (event->type == GDK_2BUTTON_PRESS && event->button == 1)
- {
- xsane_choose_dialog_ok_callback();
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static gint32 xsane_choose_device(void)
-{
- GtkWidget *main_vbox, *vbox, *hbox, *button, *device_frame, *device_vbox, *pixmapwidget;
- GdkBitmap *mask;
- GdkPixmap *pixmap;
- GtkStyle *style;
- GdkColor *bg_trans;
- GSList *owner;
- gint i;
- const SANE_Device *adev;
- char buf[256];
- char vendor[9];
- char model[17];
- char type[20];
- int j;
-
- choose_device_dialog = gtk_dialog_new();
- gtk_window_set_position(GTK_WINDOW(choose_device_dialog), GTK_WIN_POS_CENTER);
- gtk_window_set_policy(GTK_WINDOW(choose_device_dialog), FALSE, FALSE, FALSE);
- gtk_signal_connect(GTK_OBJECT(choose_device_dialog), "destroy", GTK_SIGNAL_FUNC(xsane_quit), 0);
- snprintf(buf, sizeof(buf), "%s %s", prog_name, WINDOW_DEVICE_SELECTION);
- gtk_window_set_title(GTK_WINDOW(choose_device_dialog), buf);
-
- main_vbox = GTK_DIALOG(choose_device_dialog)->vbox;
-
- vbox = gtk_vbox_new(FALSE, 5);
- gtk_container_set_border_width(GTK_CONTAINER(vbox), 3);
- gtk_box_pack_start(GTK_BOX(main_vbox), vbox, TRUE, TRUE, 0);
- gtk_widget_show(vbox);
-
- /* xsane logo */
- gtk_widget_realize(choose_device_dialog);
-
- style = gtk_widget_get_style(choose_device_dialog);
- bg_trans = &style->bg[GTK_STATE_NORMAL];
-
- snprintf(buf, sizeof(buf), "%s/xsane-logo.xpm", STRINGIFY(PATH_SANE_DATA_DIR));
- pixmap = gdk_pixmap_create_from_xpm(choose_device_dialog->window, &mask, bg_trans, buf);
- pixmapwidget = gtk_pixmap_new(pixmap, mask);
- gtk_box_pack_start(GTK_BOX(vbox), pixmapwidget, FALSE, FALSE, 2);
- gtk_widget_show(pixmapwidget);
- gdk_pixmap_unref(pixmap);
-
- xsane_set_window_icon(choose_device_dialog, (gchar **) 0);
-
- xsane_separator_new(vbox, 5);
-
-
- /* list the drivers with radiobuttons */
- device_frame = gtk_frame_new(TEXT_AVAILABLE_DEVICES);
- gtk_box_pack_start(GTK_BOX(vbox), device_frame, FALSE, FALSE, 2);
- gtk_widget_show(device_frame);
-
- device_vbox = gtk_vbox_new(FALSE, 5);
- gtk_container_set_border_width(GTK_CONTAINER(device_vbox), 3);
- gtk_container_add(GTK_CONTAINER(device_frame), device_vbox);
-
- owner = 0;
- for (i = 0; i < ndevs; i++)
- {
- adev = devlist[i];
-
- strncpy(vendor, adev->vendor, sizeof(vendor)-1);
- vendor[sizeof(vendor)-1] = 0;
- for (j = strlen(vendor); j < sizeof(vendor)-1; j++)
- {
- vendor[j] = ' ';
- }
-
- strncpy(model, adev->model, sizeof(model)-1);
- model[sizeof(model)-1] = 0;
- for (j = strlen(model); j < sizeof(model)-1; j++)
- {
- model[j] = ' ';
- }
-
- strncpy(type, _(adev->type), sizeof(type)-1); /* allow translation of device type */
- type[sizeof(type)-1] = 0;
- for (j = strlen(type); j < sizeof(type)-1; j++)
- {
- type[j] = ' ';
- }
-
- snprintf(buf, sizeof(buf), "%s %s %s [%s]", vendor, model, type, adev->name);
- button = gtk_radio_button_new_with_label(owner, (char *) buf);
- gtk_signal_connect(GTK_OBJECT(button), "button_press_event",
- (GtkSignalFunc) xsane_select_device_by_mouse_callback, (void *) (long) i);
- gtk_signal_connect(GTK_OBJECT(button), "clicked",
- (GtkSignalFunc) xsane_select_device_by_key_callback, (void *) (long) i);
- gtk_box_pack_start(GTK_BOX(device_vbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
- owner = gtk_radio_button_group(GTK_RADIO_BUTTON(button));;
- }
- gtk_widget_show(device_vbox);
-
- /* The bottom row of buttons */
- hbox = GTK_DIALOG(choose_device_dialog)->action_area;
-
- /* The OK button */
- button = gtk_button_new_with_label(BUTTON_OK);
- GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_choose_dialog_ok_callback, 0);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_grab_default(button);
- gtk_widget_show(button);
-
- /* The Cancel button */
- button = gtk_button_new_with_label(BUTTON_CANCEL);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_quit, 0);
- gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- gtk_widget_show(choose_device_dialog);
-
- return 0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_usage(void)
-{
- printf("%s %s %s\n", TEXT_USAGE, prog_name, TEXT_USAGE_OPTIONS);
- printf("\n%s\n\n", TEXT_HELP);
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_init(int argc, char **argv)
-{
- char filename[PATH_MAX];
- struct stat st;
-
- gtk_init(&argc, &argv);
-#ifdef HAVE_LIBGIMP_GIMP_H
- gtk_rc_parse(gimp_gtkrc());
-
- gdk_set_use_xshm(gimp_use_xshm());
-#endif
-
- xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane-style", 0, ".rc", XSANE_PATH_LOCAL_SANE);
- if (stat(filename, &st) >= 0)
- {
- gtk_rc_parse(filename);
- }
- else /* no local xsane-style.rc, look for system file */
- {
- xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane-style", 0, ".rc", XSANE_PATH_SYSTEM);
- if (stat(filename, &st) >= 0)
- {
- gtk_rc_parse(filename);
- }
- }
-
- sane_init(&xsane.sane_backend_versioncode, (void *) xsane_authorization_callback);
- if (SANE_VERSION_MAJOR(xsane.sane_backend_versioncode) != SANE_V_MAJOR)
- {
- fprintf(stderr, "\n\n"
- "%s %s:\n"
- " %s\n"
- " %s %d\n"
- " %s %d\n"
- "%s\n\n",
- prog_name, ERR_ERROR,
- ERR_MAJOR_VERSION_NR_CONFLICT,
- ERR_XSANE_MAJOR_VERSION, SANE_V_MAJOR,
- ERR_BACKEND_MAJOR_VERSION, SANE_VERSION_MAJOR(xsane.sane_backend_versioncode),
- ERR_PROGRAM_ABORTED);
- return;
- }
-
- if (argc > 1)
- {
- int ch;
-
- while((ch = getopt_long(argc, argv, "cd:fghnsvFR", long_options, 0)) != EOF)
- {
- switch(ch)
- {
- case 'g': /* This options is set when xsane is called from the */
- /* GIMP. If xsane is compiled without GIMP support */
- /* then you get the error message when GIMP does */
- /* query or tries to start the xsane plugin! */
-#ifndef HAVE_LIBGIMP_GIMP_H
- printf("%s: %s\n", argv[0], ERR_GIMP_SUPPORT_MISSING);
- exit(0);
-#endif
- break;
-
- case 'v': /* --version */
-#ifdef HAVE_LIBGIMP_GIMP_H
- printf("%s-%s, %s \"%s\", SANE-%d.%d, %s, %s%s\n",
- prog_name,
- XSANE_VERSION,
- TEXT_PACKAGE,
- PACKAGE_VERSION,
- SANE_VERSION_MAJOR(xsane.sane_backend_versioncode),
- SANE_VERSION_MINOR(xsane.sane_backend_versioncode),
- TEXT_WITH_GIMP_SUPPORT,
- TEXT_GIMP_VERSION,
- GIMP_VERSION);
-#else
- printf("%s-%s, %s \"%s\", SANE-%d.%d, %s\n",
- prog_name,
- XSANE_VERSION,
- TEXT_PACKAGE,
- PACKAGE_VERSION,
- SANE_VERSION_MAJOR(xsane.sane_backend_versioncode),
- SANE_VERSION_MINOR(xsane.sane_backend_versioncode),
- TEXT_WITHOUT_GIMP_SUPPORT);
-#endif
- exit(0);
-
- case 'd': /* --device-settings */
- xsane.device_set_filename = strdup(optarg);
- break;
-
- case 's': /* --scan */
- xsane.xsane_mode = XSANE_SCAN;
- break;
-
- case 'c': /* --copy */
- xsane.xsane_mode = XSANE_COPY;
- break;
-
- case 'n': /* --No-modes-election */
- xsane.mode_selection = 0;
- break;
-
- case 'f': /* --fax */
- xsane.xsane_mode = XSANE_FAX;
- break;
-
- case 'F': /* --Fixed */
- xsane.main_window_fixed = 1;
- break;
-
- case 'R': /* --Resizeable */
- xsane.main_window_fixed = 0;
- break;
-
- case 'h': /* --help */
- default:
- xsane_usage();
- exit(0);
- }
- }
- }
-
- sane_get_devices(&devlist, SANE_FALSE /* local and network devices */);
-
- /* if devicename is given try to identify it, if not found, open device list */
- if (optind < argc)
- {
- int ndevs;
-
- for (ndevs = 0; devlist[ndevs]; ++ndevs)
- {
- if (!strncmp(devlist[ndevs]->name, argv[argc - 1], strlen(argv[argc - 1])))
- {
- seldev = ndevs;
- break;
- }
- }
-
- if ((seldev < 0) && (argc > 1))
- {
- static SANE_Device dev;
- static const SANE_Device *device_list[] = { &dev, 0 };
-
- memset(&dev, 0, sizeof(dev));
- dev.name = argv[argc - 1];
- dev.vendor = TEXT_UNKNOWN;
- dev.type = TEXT_UNKNOWN;
- dev.model = TEXT_UNKNOWN;
-
- devlist = device_list;
- seldev = 0;
- }
- }
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-void xsane_interface(int argc, char **argv)
-{
- xsane.info_label = 0;
-
- xsane_init(argc, argv); /* initialize xsane variables if command line option is given, set seldev */
-
- for (ndevs = 0; devlist[ndevs]; ++ndevs); /* count available devices */
-
- if (seldev >= 0) /* device name is given on cammand line */
- {
- xsane_device_dialog(); /* open device seldev */
-
- if (!dialog)
- {
- xsane_exit();
- }
- }
- else /* no device name given on command line */
- {
- if (ndevs > 0) /* devices available */
- {
- seldev = 0;
- if (ndevs == 1)
- {
- xsane_device_dialog(); /* open device seldev */
- if (!dialog)
- {
- xsane_exit();
- }
- }
- else
- {
- xsane_choose_device(); /* open device selection window and get device */
- }
- }
- else /* ndevs == 0, no devices available */
- {
- char buf[256];
-
- snprintf(buf, sizeof(buf), "%s: %s\n", prog_name, ERR_NO_DEVICES);
- xsane_back_gtk_error(buf, TRUE);
- xsane_exit();
- }
- }
-
- gtk_main();
- sane_exit();
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-int main(int argc, char **argv)
-{
- int len;
- char *login;
- struct stat st;
-
- dialog = 0;
- memset(&xsane, 0, sizeof(xsane)); /* set all values in xsane to 0 */
-
- /* Create directory PATH_SANE_TMP/xsane-$uid */
- login = getlogin ();
- if (login == NULL) {
- if ((login = (char *)malloc (10)) == NULL)
- return 1;
- snprintf (login, 10, "%d", getuid ());
- }
-
- len = strlen (login) + strlen (PATH_SANE_TMP) + 8;
- if ((path_sane_tmp = (char *)malloc (len)) == NULL)
- return 1;
- sprintf (path_sane_tmp, "%s/xsane-%s", PATH_SANE_TMP, login);
-
- if (lstat (path_sane_tmp, &st)) {
- if (errno == ENOENT) {
- if (mkdir (path_sane_tmp, 0700))
- return 1; /* Can't create dir, huh? */
- } else
- return 1; /* Can't stat, huh? */
- } else {
- if (st.st_uid != getuid()) {
- fprintf (stderr, "%s not owned by you, security problem?\n", path_sane_tmp);
- return 1;
- }
- }
-
- umask(XSANE_DEFAULT_UMASK); /* define permissions of new files */
-
- xsane.sensitivity = TRUE;
-
- xsane.main_window_fixed = -1; /* no command line option given, use preferences or fixed */
-
- xsane.mode = XSANE_STANDALONE;
- xsane.xsane_mode = XSANE_SCAN;
- xsane.xsane_output_format = XSANE_PNM;
- xsane.mode_selection = 1; /* enable selection of xsane mode */
-
- xsane.input_tag = -1; /* no input tag */
-
- xsane.histogram_lines = 1;
-
- xsane.zoom = 1.0;
- xsane.zoom_x = 1.0;
- xsane.zoom_y = 1.0;
- xsane.resolution = 0.0;
- xsane.resolution_x = 0.0;
- xsane.resolution_y = 0.0;
- xsane.copy_number = 1;
-
- xsane.gamma = 1.0;
- xsane.gamma_red = 1.0;
- xsane.gamma_green = 1.0;
- xsane.gamma_blue = 1.0;
- xsane.brightness = 0.0;
- xsane.brightness_red = 0.0;
- xsane.brightness_green = 0.0;
- xsane.brightness_blue = 0.0;
- xsane.contrast = 0.0;
- xsane.contrast_red = 0.0;
- xsane.contrast_green = 0.0;
- xsane.contrast_blue = 0.0;
- xsane.slider_gray.value[2] = 100.0;
- xsane.slider_gray.value[1] = 50.0;
- xsane.slider_gray.value[0] = 0.0;
- xsane.slider_red.value[2] = 100.0;
- xsane.slider_red.value[1] = 50.0;
- xsane.slider_red.value[0] = 0.0;
- xsane.slider_green.value[2] = 100.0;
- xsane.slider_green.value[1] = 50.0;
- xsane.slider_green.value[0] = 0.0;
- xsane.slider_blue.value[2] = 100.0;
- xsane.slider_blue.value[1] = 50.0;
- xsane.slider_blue.value[0] = 0.0;
- xsane.auto_white = 100.0;
- xsane.auto_gray = 50.0;
- xsane.auto_black = 0.0;
-
- xsane.histogram_red = 1;
- xsane.histogram_green = 1;
- xsane.histogram_blue = 1;
- xsane.histogram_int = 1;
- xsane.histogram_log = 1;
-
- xsane.xsane_color = TRUE;
- xsane.scanner_gamma_color = FALSE;
- xsane.scanner_gamma_gray = FALSE;
- xsane.enhancement_rgb_default = TRUE;
-
- prog_name = strrchr(argv[0], '/');
- if (prog_name)
- {
- ++prog_name;
- }
- else
- {
- prog_name = argv[0];
- }
-#if 0
- bindtextdomain(PACKAGE, LOCALEDIR);
- textdomain(PACKAGE);
-#endif
- bindtextdomain(prog_name, LOCALEDIR);
- textdomain(prog_name);
-
-#ifdef HAVE_LIBGIMP_GIMP_H
- {
- GPrintFunc old_print_func;
- int result;
-
- /* Temporarily install a print function that discards all output.
- This is to avoid annoying "you must run this program under
- gimp" messages when xsane gets invoked in stand-alone
- mode. */
- old_print_func = g_set_print_handler((GPrintFunc) null_print_func);
-
- /* gimp_main() returns 1 if xsane wasn't invoked by GIMP */
- result = gimp_main(argc, argv);
- g_set_message_handler(old_print_func);
- if (result)
- {
- xsane_interface(argc, argv);
- }
- }
-#else
- xsane_interface(argc, argv);
-#endif
- return 0;
-}
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/include/config.h b/include/config.h
new file mode 100644
index 0000000..ed6a027
--- /dev/null
+++ b/include/config.h
@@ -0,0 +1,298 @@
+/* include/config.h. Generated automatically by configure. */
+#ifndef SANE_CONFIG_H
+#define SANE_CONFIG_H
+
+/* Define if on AIX 3.
+ System headers sometimes define this.
+ We just want to avoid a redefinition error message. */
+#ifndef _ALL_SOURCE
+/* #undef _ALL_SOURCE */
+#endif
+
+/* Define if using alloca.c. */
+/* #undef C_ALLOCA */
+
+/* Define to empty if the keyword does not work. */
+/* #undef const */
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+ This function is required for alloca.c support on those systems. */
+/* #undef CRAY_STACKSEG_END */
+
+/* Define if you have alloca, as a function or macro. */
+#define HAVE_ALLOCA 1
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
+#define HAVE_ALLOCA_H 1
+
+/* Define if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Define as __inline if that's what the C compiler calls it. */
+/* #undef inline */
+
+/* Define if on MINIX. */
+/* #undef _MINIX */
+
+/* Define to `long' if <sys/types.h> doesn't define. */
+/* #undef off_t */
+
+/* Define if the system does not provide POSIX.1 features except
+ with this defined. */
+/* #undef _POSIX_1_SOURCE */
+
+/* Define if you need to in order for stat and other things to work. */
+/* #undef _POSIX_SOURCE */
+
+/* Define to `unsigned' if <sys/types.h> doesn't define. */
+/* #undef size_t */
+
+/* Define to `unsigned char' if <sys/types.h> doesn't define. */
+/* #undef u_char */
+
+/* Define to `unsigned int' if <sys/types.h> doesn't define. */
+/* #undef u_int */
+
+/* Define to `unsigned long' if <sys/types.h> doesn't define. */
+/* #undef u_long */
+
+/* Define to `long' if <sys/types.h> doesn't define. */
+/* #undef ssize_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef pid_t */
+
+/* Define scsireq_t as `struct scsireq' if necessary. */
+/* #undef scsireq_t */
+
+/* Define to the return type of signal handlers. */
+#define RETSIGTYPE void
+
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
+ */
+/* #undef STACK_DIRECTION */
+
+/* Define if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if NLS is requested. */
+#define ENABLE_NLS 1
+
+/* Define as 1 if you have catgets and don't want to use GNU gettext. */
+/* #undef HAVE_CATGETS */
+
+/* Define as 1 if you have gettext and don't want to use GNU gettext. */
+#define HAVE_GETTEXT 1
+
+/* Define if your locale.h file contains LC_MESSAGES. */
+#define HAVE_LC_MESSAGES 1
+
+/* Define to 1 if you have the stpcpy function. */
+#define HAVE_STPCPY 1
+
+/* Define to the name of the distribution. */
+#define PACKAGE "xsane"
+
+/* The concatenation of the strings PACKAGE, "-", and VERSION. */
+#define PACKAGE_VERSION "xsane-0.84"
+
+/* Define to the version of the distribution. */
+#define VERSION "0.84"
+
+/* Define if you have the __argz_count function. */
+#define HAVE___ARGZ_COUNT 1
+
+/* Define if you have the __argz_next function. */
+#define HAVE___ARGZ_NEXT 1
+
+/* Define if you have the __argz_stringify function. */
+#define HAVE___ARGZ_STRINGIFY 1
+
+/* Define if you have the atexit function. */
+#define HAVE_ATEXIT 1
+
+/* Define if you have the dcgettext function. */
+#define HAVE_DCGETTEXT 1
+
+/* Define if you have the getcwd function. */
+#define HAVE_GETCWD 1
+
+/* Define if you have the getpagesize function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define if you have the lstat function. */
+#define HAVE_LSTAT 1
+
+/* Define if you have the mkdir function. */
+#define HAVE_MKDIR 1
+
+/* Define if you have the munmap function. */
+#define HAVE_MUNMAP 1
+
+/* Define if you have the putenv function. */
+#define HAVE_PUTENV 1
+
+/* Define if you have the scsireq_enter function. */
+/* #undef HAVE_SCSIREQ_ENTER */
+
+/* Define if you have the sigprocmask function. */
+#define HAVE_SIGPROCMASK 1
+
+/* Define if you have the setenv function. */
+#define HAVE_SETENV 1
+
+/* Define if you have the setlocale function. */
+#define HAVE_SETLOCALE 1
+
+/* Define if you have the snprintf function. */
+#define HAVE_SNPRINTF 1
+
+/* Define if you have the stpcpy function. */
+#define HAVE_STPCPY 1
+
+/* Define if you have the strcasecmp function. */
+#define HAVE_STRCASECMP 1
+
+/* Define if you have the strchr function. */
+#define HAVE_STRCHR 1
+
+/* Define if you have the strdup function. */
+#define HAVE_STRDUP 1
+
+/* Define if you have the strncasecmp function. */
+#define HAVE_STRNCASECMP 1
+
+/* Define if you have the strndup function. */
+#define HAVE_STRNDUP 1
+
+/* Define if you have the strftime function. */
+#define HAVE_STRFTIME 1
+
+/* Define if you have the strstr function. */
+#define HAVE_STRSTR 1
+
+/* Define if you have the strsep function. */
+#define HAVE_STRSEP 1
+
+/* Define if you have the strtod function. */
+#define HAVE_STRTOD 1
+
+/* Define if you have the valloc function. */
+/* #undef HAVE_VALLOC */
+
+/* Ignore HAVE_USLEEP under Apollo Domain because the usleep()
+ implementation in the Sys5.3 environment is broken. */
+#ifndef apollo
+ /* Define if you have the usleep function. */
+# define HAVE_USLEEP 1
+#endif
+
+/* Define if you have the <argz.h> header file. */
+#define HAVE_ARGZ_H 1
+
+/* Define if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define if you have the <libintl.h> header file. */
+/* #undef HAVE_LIBINTL_H */
+
+/* Define if you have the <libc.h> header file. */
+/* #undef HAVE_LIBC_H */
+
+/* Define if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define if you have the <malloc.h> header file. */
+#define HAVE_MALLOC_H 1
+
+/* Define if you have the <nl_types.h> header file. */
+#define HAVE_NL_TYPES_H 1
+
+/* Define if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define if you have the <sys/select.h> header file. */
+/* #undef HAVE_SYS_SELECT_H */
+
+/* Define if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define if you have the <sys/io.h> header file. */
+/* #undef HAVE_SYS_IO_H */
+
+/* Define if you have the <asm/io.h> header file. */
+/* #undef HAVE_ASM_IO_H */
+
+/* Define if you have the <scsi.h> header file. */
+/* #undef HAVE_SCSI_H */
+
+/* Define if you have the <scsi/sg.h> header file. */
+/* #undef HAVE_SCSI_SG_H */
+
+/* Define if you have the "/usr/src/linux/include/scsi/sg.h" header file. */
+/* #undef HAVE__USR_SRC_LINUX_INCLUDE_SCSI_SG_H */
+
+/* Define if you have the <sys/dsreq.h> header file. */
+/* #undef HAVE_SYS_DSREQ_H */
+
+/* Define if you have the <os2.h> header file. */
+/* #undef HAVE_OS2_H */
+
+/* Define if you have sys/types.h. OS/2 wants them before select.h, etc. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define if you have the <values.h> header file. */
+#define HAVE_VALUES_H 1
+
+/* Define if you have the i library (-li). */
+/* #undef HAVE_LIBI */
+
+/* Define if you have the intl library (-lintl). */
+/* #undef HAVE_LIBINTL */
+
+/* Define if you have the m library (-lm). */
+#define HAVE_LIBM 1
+
+/* Define if you have the <dlfcn.h> header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Define if you have the GIMP header files and library. */
+#define HAVE_LIBGIMP_GIMP_H 1
+
+/* Define if you have the GIMPfeatures header file. */
+#define HAVE_LIBGIMP_GIMPFEATURES_H 1
+
+/* Define if you have libjpeg. */
+#define HAVE_LIBJPEG 1
+
+/* Define if you have libz. */
+#define HAVE_LIBZ 1
+
+/* Define if you have libpng. */
+#define HAVE_LIBPNG 1
+
+/* Define if you have libtiff. */
+#define HAVE_LIBTIFF 1
+
+#ifndef HAVE_STRNCASECMP
+ /* OS/2 needs this */
+# define strncasecmp(a, b, c) strnicmp(a, b, c)
+#endif
+
+#if defined (__sun) && defined (__GNUC__)
+# define _POSIX_SOURCE
+# define __EXTENSIONS__
+#endif
+
+#endif /* SANE_CONFIG_H */
diff --git a/include/sane/config.h.in b/include/config.h.in
index 28fffdc..16a6f57 100644
--- a/include/sane/config.h.in
+++ b/include/config.h.in
@@ -112,6 +112,9 @@
/* Define if you have the __argz_stringify function. */
#undef HAVE___ARGZ_STRINGIFY
+/* Define if you have the atexit function. */
+#undef HAVE_ATEXIT
+
/* Define if you have the dcgettext function. */
#undef HAVE_DCGETTEXT
@@ -121,11 +124,8 @@
/* Define if you have the getpagesize function. */
#undef HAVE_GETPAGESIZE
-/* Define if you have the atexit function. */
-#undef HAVE_ATEXIT
-
-/* Define if you have the ioperm function. */
-#undef HAVE_IOPERM
+/* Define if you have the lstat function. */
+#undef HAVE_LSTAT
/* Define if you have the mkdir function. */
#undef HAVE_MKDIR
@@ -148,6 +148,9 @@
/* Define if you have the setlocale function. */
#undef HAVE_SETLOCALE
+/* Define if you have the snprintf function. */
+#undef HAVE_SNPRINTF
+
/* Define if you have the stpcpy function. */
#undef HAVE_STPCPY
@@ -181,9 +184,6 @@
/* Define if you have the valloc function. */
#undef HAVE_VALLOC
-/* Define if you have the snprintf function. */
-#undef HAVE_SNPRINTF
-
/* Ignore HAVE_USLEEP under Apollo Domain because the usleep()
implementation in the Sys5.3 environment is broken. */
#ifndef apollo
@@ -242,45 +242,9 @@
/* Define if you have the <sys/dsreq.h> header file. */
#undef HAVE_SYS_DSREQ_H
-/* Define if you have the <sys/scsi.h> header file. */
-#undef HAVE_SYS_SCSI_H
-
-/* Define if you have the <sys/scsi/targets/scgio.h> header file. */
-#undef HAVE_SYS_SCSI_TARGETS_SCGIO_H
-
-/* Define if you have the <sys/scsi/sgdefs.h> header file. */
-#undef HAVE_SYS_SCSI_SGDEFS_H
-
-/* Define if you have the <sys/scsicmd.h> header file. */
-#undef HAVE_SYS_SCSICMD_H
-
-/* Define if you have the <sys/scsiio.h> header file. */
-#undef HAVE_SYS_SCSIIO_H
-
-/* Define if you have the <sys/scanio.h> header file. */
-#undef HAVE_SYS_SCANIO_H
-
-/* Define if you have the <apollo/scsi.h> header file. */
-#undef HAVE_APOLLO_SCSI_H
-
-/* Define if you have the <bsd/dev/scsireg.h> header file. */
-#undef HAVE_BSD_DEV_SCSIREG_H
-
-/* Define if you have the <io/cam/cam.h> header file. */
-#undef HAVE_IO_CAM_CAM_H
-
-/* Define if you have the <camlib.h> header file. */
-#undef HAVE_CAMLIB_H
-
-/* Define if you have the <gscdds.h> header file. */
-#undef HAVE_GSCDDS_H
-
/* Define if you have the <os2.h> header file. */
#undef HAVE_OS2_H
-/* Define if you have EMX's sys/hw.h headers. */
-#undef HAVE_SYS_HW_H
-
/* Define if you have sys/types.h. OS/2 wants them before select.h, etc. */
#undef HAVE_SYS_TYPES_H
@@ -302,15 +266,6 @@
/* Define if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
-/* Define if you have the dlopen function. */
-#undef HAVE_DLOPEN
-
-/* Define if you have the <dl.h> header file. */
-#undef HAVE_DL_H
-
-/* Define if you have the shl_load function. */
-#undef HAVE_SHL_LOAD
-
/* Define if you have the GIMP header files and library. */
#undef HAVE_LIBGIMP_GIMP_H
diff --git a/include/md5.h b/include/md5.h
new file mode 100644
index 0000000..0290521
--- /dev/null
+++ b/include/md5.h
@@ -0,0 +1,145 @@
+/* md5.h - Declaration of functions and data types used for MD5 sum
+ computing library functions.
+ Copyright (C) 1995, 1996, 1999 Free Software Foundation, Inc.
+ NOTE: The canonical source of this file is maintained with the GNU C
+ Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifndef _MD5_H
+#define _MD5_H 1
+
+#include <stdio.h>
+
+#if defined HAVE_LIMITS_H || _LIBC
+# include <limits.h>
+#endif
+
+/* The following contortions are an attempt to use the C preprocessor
+ to determine an unsigned integral type that is 32 bits wide. An
+ alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
+ doing that would require that the configure script compile and *run*
+ the resulting executable. Locally running cross-compiled executables
+ is usually not possible. */
+
+#ifdef _LIBC
+# include <sys/types.h>
+typedef u_int32_t md5_uint32;
+#else
+# if defined __STDC__ && __STDC__
+# define UINT_MAX_32_BITS 4294967295U
+# else
+# define UINT_MAX_32_BITS 0xFFFFFFFF
+# endif
+
+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
+ This should be valid for all systems GNU cares about because
+ that doesn't include 16-bit systems, and only modern systems
+ (that certainly have <limits.h>) have 64+-bit integral types. */
+
+# ifndef UINT_MAX
+# define UINT_MAX UINT_MAX_32_BITS
+# endif
+
+# if UINT_MAX == UINT_MAX_32_BITS
+typedef unsigned int md5_uint32;
+# else
+# if USHRT_MAX == UINT_MAX_32_BITS
+typedef unsigned short md5_uint32;
+# else
+# if ULONG_MAX == UINT_MAX_32_BITS
+typedef unsigned long md5_uint32;
+# else
+ /* The following line is intended to evoke an error.
+ Using #error is not portable enough. */
+"Cannot determine unsigned 32-bit data type."
+# endif
+# endif
+# endif
+#endif
+#undef __P
+#if defined (__STDC__) && __STDC__
+#define __P(x) x
+#else
+#define __P(x) ()
+#endif
+/* Structure to save state of computation between the single steps. */
+ struct md5_ctx
+{
+ md5_uint32 A;
+ md5_uint32 B;
+ md5_uint32 C;
+ md5_uint32 D;
+
+ md5_uint32 total[2];
+ md5_uint32 buflen;
+ char buffer[128];
+};
+
+/*
+ * The following three functions are build up the low level used in
+ * the functions `md5_stream' and `md5_buffer'.
+ */
+
+/* Initialize structure containing state of computation.
+ (RFC 1321, 3.3: Step 3) */
+extern void md5_init_ctx __P ((struct md5_ctx * ctx));
+
+/* Starting with the result of former calls of this function (or the
+ initialization function update the context for the next LEN bytes
+ starting at BUFFER.
+ It is necessary that LEN is a multiple of 64!!! */
+extern void md5_process_block __P ((const void *buffer, size_t len,
+ struct md5_ctx * ctx));
+
+/* Starting with the result of former calls of this function (or the
+ initialization function update the context for the next LEN bytes
+ starting at BUFFER.
+ It is NOT required that LEN is a multiple of 64. */
+extern void md5_process_bytes __P ((const void *buffer, size_t len,
+ struct md5_ctx * ctx));
+
+/* Process the remaining bytes in the buffer and put result from CTX
+ in first 16 bytes following RESBUF. The result is always in little
+ endian byte order, so that a byte-wise output yields to the wanted
+ ASCII representation of the message digest.
+
+ IMPORTANT: On some systems it is required that RESBUF be correctly
+ aligned for a 32 bits value. */
+extern void *md5_finish_ctx __P ((struct md5_ctx * ctx, void *resbuf));
+
+
+/* Put result from CTX in first 16 bytes following RESBUF. The result is
+ always in little endian byte order, so that a byte-wise output yields
+ to the wanted ASCII representation of the message digest.
+
+ IMPORTANT: On some systems it is required that RESBUF is correctly
+ aligned for a 32 bits value. */
+extern void *md5_read_ctx __P ((const struct md5_ctx * ctx, void *resbuf));
+
+
+/* Compute MD5 message digest for bytes read from STREAM. The
+ resulting message digest number will be written into the 16 bytes
+ beginning at RESBLOCK. */
+extern int md5_stream __P ((FILE * stream, void *resblock));
+
+/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The
+ result is always in little endian byte order, so that a byte-wise
+ output yields to the wanted ASCII representation of the message
+ digest. */
+extern void *md5_buffer
+__P ((const char *buffer, size_t len, void *resblock));
+
+#endif
diff --git a/include/sane/sanei_backend.h b/include/sane/sanei_backend.h
deleted file mode 100644
index 588e2d0..0000000
--- a/include/sane/sanei_backend.h
+++ /dev/null
@@ -1,116 +0,0 @@
-#include <sane/sanei_debug.h>
-
-#ifdef HAVE_SYS_HW_H
- /* OS/2 i/o-port access compatibility macros: */
-# define inb(p) _inp8 (p)
-# define outb(v,p) _outp8 ((p),(v))
-# define ioperm(b,l,o) _portaccess ((b),(b)+(l)-1)
-# define HAVE_IOPERM 1
-#endif
-
-#ifndef O_NONBLOCK
-# ifdef O_NDELAY
-# define O_NONBLOCK O_NDELAY
-# else
-# define O_NONBLOCK FNDELAY /* last resort */
-# endif
-#endif
-
-#ifndef __GLIBC__
-# ifndef u_int8_t
-# define u_int8_t unsigned char
-# endif
-# ifndef u_int16_t
-# define u_int16_t unsigned short
-# endif
-# ifndef u_int32_t
-# define u_int32_t unsigned int
-# endif
-#endif
-
-#ifdef HAVE_SIGPROCMASK
-# define SIGACTION sigaction
-#else
-
-/* Just enough backwards compatibility that we get by in the backends
- without making handstands. */
-# ifdef sigset_t
-# undef sigset_t
-# endif
-# ifdef sigemptyset
-# undef sigemptyset
-# endif
-# ifdef sigfillset
-# undef sigfillset
-# endif
-# ifdef sigaddset
-# undef sigaddset
-# endif
-# ifdef sigdelset
-# undef sigdelset
-# endif
-# ifdef sigprocmask
-# undef sigprocmask
-# endif
-# ifdef SIG_BLOCK
-# undef SIG_BLOCK
-# endif
-# ifdef SIG_UNBLOCK
-# undef SIG_UNBLOCK
-# endif
-# ifdef SIG_SETMASK
-# undef SIG_SETMASK
-# endif
-
-# define sigset_t int
-# define sigemptyset(set) do { *(set) = 0; } while (0)
-# define sigfillset(set) do { *(set) = ~0; } while (0)
-# define sigaddset(set,signal) do { *(set) |= sigmask (signal); } while (0)
-# define sigdelset(set,signal) do { *(set) &= ~sigmask (signal); } while (0)
-# define sigaction(sig,new,old) sigvec (sig,new,old)
-
- /* Note: it's not safe to just declare our own "struct sigaction" since
- some systems (e.g., some versions of OpenStep) declare that structure,
- but do not implement sigprocmask(). Hard to believe, aint it? */
-# define SIGACTION sigvec
-# define SIG_BLOCK 1
-# define SIG_UNBLOCK 2
-# define SIG_SETMASK 3
-#endif /* !HAVE_SIGPROCMASK */
-
-/* Declare the entry points: */
-
-extern SANE_Status ENTRY(init) (SANE_Int *, SANE_Auth_Callback);
-extern SANE_Status ENTRY(get_devices) (const SANE_Device ***, SANE_Bool);
-extern SANE_Status ENTRY(open) (SANE_String_Const, SANE_Handle *);
-extern const SANE_Option_Descriptor *
- ENTRY(get_option_descriptor) (SANE_Handle, SANE_Int);
-extern SANE_Status ENTRY(control_option) (SANE_Handle, SANE_Int, SANE_Action,
- void *, SANE_Word *);
-extern SANE_Status ENTRY(get_parameters) (SANE_Handle, SANE_Parameters *);
-extern SANE_Status ENTRY(start) (SANE_Handle);
-extern SANE_Status ENTRY(read) (SANE_Handle, SANE_Byte *, SANE_Int,
- SANE_Int *);
-extern SANE_Status ENTRY(set_io_mode) (SANE_Handle, SANE_Bool);
-extern SANE_Status ENTRY(get_select_fd) (SANE_Handle, SANE_Int *);
-extern void ENTRY(cancel) (SANE_Handle);
-extern void ENTRY(close) (SANE_Handle);
-extern void ENTRY(exit) (void);
-
-#ifndef STUBS
-/* Now redirect sane_* calls to backend's functions: */
-
-#define sane_init(a,b) ENTRY(init) (a,b)
-#define sane_get_devices(a,b) ENTRY(get_devices) (a,b)
-#define sane_open(a,b) ENTRY(open) (a,b)
-#define sane_get_option_descriptor(a,b) ENTRY(get_option_descriptor) (a,b)
-#define sane_control_option(a,b,c,d,e) ENTRY(control_option) (a,b,c,d,e)
-#define sane_get_parameters(a,b) ENTRY(get_parameters) (a,b)
-#define sane_start(a) ENTRY(start) (a)
-#define sane_read(a,b,c,d) ENTRY(read) (a,b,c,d)
-#define sane_set_io_mode(a,b) ENTRY(set_io_mode) (a,b)
-#define sane_get_select_fd(a,b) ENTRY(get_select_fd) (a,b)
-#define sane_cancel(a) ENTRY(cancel) (a)
-#define sane_close(a) ENTRY(close) (a)
-#define sane_exit(a) ENTRY(exit) (a)
-#endif /* STUBS */
diff --git a/include/sane/sanei_config.h b/include/sane/sanei_config.h
deleted file mode 100644
index ac64007..0000000
--- a/include/sane/sanei_config.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* sane - Scanner Access Now Easy.
- Copyright (C) 1997 Jeffrey S. Freedman
- This file is part of the SANE package.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA.
-
- As a special exception, the authors of SANE give permission for
- additional uses of the libraries contained in this release of SANE.
-
- The exception is that, if you link a SANE library with other files
- to produce an executable, this does not by itself cause the
- resulting executable to be covered by the GNU General Public
- License. Your use of that executable is in no way restricted on
- account of linking the SANE library code into it.
-
- This exception does not, however, invalidate any other reasons why
- the executable file might be covered by the GNU General Public
- License.
-
- If you submit changes to SANE to the maintainers to be included in
- a subsequent release, you agree by submitting the changes that
- those changes may be distributed with this exception intact.
-
- If you write modifications of your own for SANE, it is your choice
- whether to permit this exception to apply to your modifications.
- If you do not wish that, delete this exception notice.
-
- This file provides generic configuration support. */
-
-#ifndef sanei_config_h
-
-#include <stdio.h>
-
-extern FILE *sanei_config_open (const char *name);
-extern const char *sanei_config_skip_whitespace (const char *str);
-/* Scan a string constant from the string pointed to by STR and return
- a malloced copy of it in *STRING_CONST (it's the responsibility of
- the caller to free the returned string at an appropriate time).
- Whitespace in front of the string constant is ignored. Whitespace
- can be included in the string constant by enclosing it in
- double-quotes. A return val of NULL indicates that no string
- constant was found. */
-extern const char *sanei_config_get_string (const char *str,
- char **string_const);
-
-/* A convenience function to support expanding device name patterns
- into a list of devices. Apart from a normal device name
- (such as /dev/sdb), this function currently supports SCSI
- device specifications of the form:
-
- scsi VENDOR MODEL TYPE BUS CHANNEL ID LUN
-
- Where VENDOR is the desired vendor name. MODEL is the desired
- MODEL name. TYPE is the desired device type. All of these can be
- set to * to match anything. To include whitespace in these
- strings, enclose them in double-quotes ("). BUS, ID, and LUN are
- the desired SCSI bus, id, and logical-unit numbers. These can be
- set to * or simply omitted to match anything. */
-extern void sanei_config_attach_matching_devices (const char *name,
- SANE_Status (*attach)
- (const char *dev));
-
-#endif /* sanei_config_h */
diff --git a/include/sane/stamp-h b/include/sane/stamp-h
deleted file mode 100644
index 9788f70..0000000
--- a/include/sane/stamp-h
+++ /dev/null
@@ -1 +0,0 @@
-timestamp
diff --git a/include/sane/sanei_signal.h b/include/sanei_signal.h
index 0033c1c..0033c1c 100644
--- a/include/sane/sanei_signal.h
+++ b/include/sanei_signal.h
diff --git a/intl/Makefile.in b/intl/Makefile.in
index 35fb837..fb112fe 100644
--- a/intl/Makefile.in
+++ b/intl/Makefile.in
@@ -79,7 +79,7 @@ DISTFILES.gettext = libintl.glibc intlh.inst.in
.c.lo:
$(LIBTOOL) --mode=compile $(COMPILE) $<
-INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib -I$(top_srcdir)/include/sane
+INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib -I$(top_srcdir)/include
all: all-@USE_INCLUDED_LIBINTL@
@@ -150,7 +150,7 @@ uninstall:
info dvi:
-$(OBJECTS): ../include/sane/config.h libgettext.h
+$(OBJECTS): ../include/config.h libgettext.h
bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
diff --git a/intl/libintl.h b/intl/libintl.h
new file mode 120000
index 0000000..d783e7b
--- /dev/null
+++ b/intl/libintl.h
@@ -0,0 +1 @@
+.././intl/libgettext.h \ No newline at end of file
diff --git a/lib/Makefile.in b/lib/Makefile.in
index a8ecbf6..93bd545 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -39,10 +39,10 @@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
@SET_MAKE@
-LIBLIB_OBJS = alloca.o getopt.o getopt1.o sigprocmask.o strndup.o \
- strdup.o strsep.o snprintf.o usleep.o
-LIBLIB_LTOBJS = alloca.lo getopt.lo getopt1.lo sigprocmask.lo strndup.lo \
- strdup.lo strsep.lo snprintf.lo usleep.lo
+LIBLIB_OBJS = alloca.o getopt.o getopt1.o strndup.o \
+ strdup.o strsep.o snprintf.o usleep.o md5.o
+LIBLIB_LTOBJS = alloca.lo getopt.lo getopt1.lo strndup.lo \
+ strdup.lo strsep.lo snprintf.lo usleep.lo md5.lo
TARGETS = $(LIBLIB_OBJS)
TARGETS = liblib.a
@@ -60,6 +60,8 @@ liblib.a: $(LIBLIB_OBJS)
install: all
+uninstall:
+
check:
depend:
diff --git a/lib/md5.c b/lib/md5.c
new file mode 100644
index 0000000..b8b2369
--- /dev/null
+++ b/lib/md5.c
@@ -0,0 +1,419 @@
+/* md5.c - Functions to compute MD5 message digest of files or memory blocks
+ according to the definition of MD5 in RFC 1321 from April 1992.
+ Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+ NOTE: The canonical source of this file is maintained with the GNU C
+ Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+/* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+
+#if STDC_HEADERS || defined _LIBC
+# include <stdlib.h>
+# include <string.h>
+#else
+# ifndef HAVE_MEMCPY
+# define memcpy(d, s, n) bcopy ((s), (d), (n))
+# endif
+#endif
+
+#include "md5.h"
+
+#ifdef _LIBC
+# include <endian.h>
+# if __BYTE_ORDER == __BIG_ENDIAN
+# define WORDS_BIGENDIAN 1
+# endif
+#endif
+
+#ifdef WORDS_BIGENDIAN
+# define SWAP(n) \
+ (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
+#else
+# define SWAP(n) (n)
+#endif
+
+
+/* This array contains the bytes used to pad the buffer to the next
+ 64-byte boundary. (RFC 1321, 3.1: Step 1) */
+static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ };
+
+
+/* Initialize structure containing state of computation.
+ (RFC 1321, 3.3: Step 3) */
+void
+md5_init_ctx (ctx)
+ struct md5_ctx *ctx;
+{
+ ctx->A = 0x67452301;
+ ctx->B = 0xefcdab89;
+ ctx->C = 0x98badcfe;
+ ctx->D = 0x10325476;
+
+ ctx->total[0] = ctx->total[1] = 0;
+ ctx->buflen = 0;
+}
+
+/* Put result from CTX in first 16 bytes following RESBUF. The result
+ must be in little endian byte order.
+
+ IMPORTANT: On some systems it is required that RESBUF is correctly
+ aligned for a 32 bits value. */
+void *
+md5_read_ctx (ctx, resbuf)
+ const struct md5_ctx *ctx;
+ void *resbuf;
+{
+ ((md5_uint32 *) resbuf)[0] = SWAP (ctx->A);
+ ((md5_uint32 *) resbuf)[1] = SWAP (ctx->B);
+ ((md5_uint32 *) resbuf)[2] = SWAP (ctx->C);
+ ((md5_uint32 *) resbuf)[3] = SWAP (ctx->D);
+
+ return resbuf;
+}
+
+/* Process the remaining bytes in the internal buffer and the usual
+ prolog according to the standard and write the result to RESBUF.
+
+ IMPORTANT: On some systems it is required that RESBUF is correctly
+ aligned for a 32 bits value. */
+void *
+md5_finish_ctx (ctx, resbuf)
+ struct md5_ctx *ctx;
+ void *resbuf;
+{
+ /* Take yet unprocessed bytes into account. */
+ md5_uint32 bytes = ctx->buflen;
+ size_t pad;
+
+ /* Now count remaining bytes. */
+ ctx->total[0] += bytes;
+ if (ctx->total[0] < bytes)
+ ++ctx->total[1];
+
+ pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
+ memcpy (&ctx->buffer[bytes], fillbuf, pad);
+
+ /* Put the 64-bit file length in *bits* at the end of the buffer. */
+ *(md5_uint32 *) & ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3);
+ *(md5_uint32 *) & ctx->buffer[bytes + pad + 4] =
+ SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29));
+
+ /* Process last bytes. */
+ md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
+
+ return md5_read_ctx (ctx, resbuf);
+}
+
+/* Compute MD5 message digest for bytes read from STREAM. The
+ resulting message digest number will be written into the 16 bytes
+ beginning at RESBLOCK. */
+int
+md5_stream (stream, resblock)
+ FILE *stream;
+ void *resblock;
+{
+ /* Important: BLOCKSIZE must be a multiple of 64. */
+#define BLOCKSIZE 4096
+ struct md5_ctx ctx;
+ char buffer[BLOCKSIZE + 72];
+ size_t sum;
+
+ /* Initialize the computation context. */
+ md5_init_ctx (&ctx);
+
+ /* Iterate over full file contents. */
+ while (1)
+ {
+ /* We read the file in blocks of BLOCKSIZE bytes. One call of the
+ computation function processes the whole buffer so that with the
+ next round of the loop another block can be read. */
+ size_t n;
+ sum = 0;
+
+ /* Read block. Take care for partial reads. */
+ do
+ {
+ n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
+
+ sum += n;
+ }
+ while (sum < BLOCKSIZE && n != 0);
+ if (n == 0 && ferror (stream))
+ return 1;
+
+ /* If end of file is reached, end the loop. */
+ if (n == 0)
+ break;
+
+ /* Process buffer with BLOCKSIZE bytes. Note that
+ BLOCKSIZE % 64 == 0
+ */
+ md5_process_block (buffer, BLOCKSIZE, &ctx);
+ }
+
+ /* Add the last bytes if necessary. */
+ if (sum > 0)
+ md5_process_bytes (buffer, sum, &ctx);
+
+ /* Construct result in desired memory. */
+ md5_finish_ctx (&ctx, resblock);
+ return 0;
+}
+
+/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The
+ result is always in little endian byte order, so that a byte-wise
+ output yields to the wanted ASCII representation of the message
+ digest. */
+void *
+md5_buffer (buffer, len, resblock)
+ const char *buffer;
+ size_t len;
+ void *resblock;
+{
+ struct md5_ctx ctx;
+
+ /* Initialize the computation context. */
+ md5_init_ctx (&ctx);
+
+ /* Process whole buffer but last len % 64 bytes. */
+ md5_process_bytes (buffer, len, &ctx);
+
+ /* Put result in desired memory area. */
+ return md5_finish_ctx (&ctx, resblock);
+}
+
+
+void
+md5_process_bytes (buffer, len, ctx)
+ const void *buffer;
+ size_t len;
+ struct md5_ctx *ctx;
+{
+ /* When we already have some bits in our internal buffer concatenate
+ both inputs first. */
+ if (ctx->buflen != 0)
+ {
+ size_t left_over = ctx->buflen;
+ size_t add = 128 - left_over > len ? len : 128 - left_over;
+
+ memcpy (&ctx->buffer[left_over], buffer, add);
+ ctx->buflen += add;
+
+ if (left_over + add > 64)
+ {
+ md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
+ /* The regions in the following copy operation cannot overlap. */
+ memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
+ (left_over + add) & 63);
+ ctx->buflen = (left_over + add) & 63;
+ }
+
+ buffer = (const char *) buffer + add;
+ len -= add;
+ }
+
+ /* Process available complete blocks. */
+ if (len > 64)
+ {
+ md5_process_block (buffer, len & ~63, ctx);
+ buffer = (const char *) buffer + (len & ~63);
+ len &= 63;
+ }
+
+ /* Move remaining bytes in internal buffer. */
+ if (len > 0)
+ {
+ memcpy (ctx->buffer, buffer, len);
+ ctx->buflen = len;
+ }
+}
+
+
+/* These are the four functions used in the four steps of the MD5 algorithm
+ and defined in the RFC 1321. The first function is a little bit optimized
+ (as found in Colin Plumbs public domain implementation). */
+/* #define FF(b, c, d) ((b & c) | (~b & d)) */
+#define FF(b, c, d) (d ^ (b & (c ^ d)))
+#define FG(b, c, d) FF (d, b, c)
+#define FH(b, c, d) (b ^ c ^ d)
+#define FI(b, c, d) (c ^ (b | ~d))
+
+/* Process LEN bytes of BUFFER, accumulating context into CTX.
+ It is assumed that LEN % 64 == 0. */
+
+void
+md5_process_block (buffer, len, ctx)
+ const void *buffer;
+ size_t len;
+ struct md5_ctx *ctx;
+{
+ md5_uint32 correct_words[16];
+ const md5_uint32 *words = buffer;
+ size_t nwords = len / sizeof (md5_uint32);
+ const md5_uint32 *endp = words + nwords;
+ md5_uint32 A = ctx->A;
+ md5_uint32 B = ctx->B;
+ md5_uint32 C = ctx->C;
+ md5_uint32 D = ctx->D;
+
+ /* First increment the byte count. RFC 1321 specifies the possible
+ length of the file up to 2^64 bits. Here we only compute the
+ number of bytes. Do a double word increment. */
+ ctx->total[0] += len;
+ if (ctx->total[0] < len)
+ ++ctx->total[1];
+
+ /* Process all bytes in the buffer with 64 bytes in each round of
+ the loop. */
+ while (words < endp)
+ {
+ md5_uint32 *cwp = correct_words;
+ md5_uint32 A_save = A;
+ md5_uint32 B_save = B;
+ md5_uint32 C_save = C;
+ md5_uint32 D_save = D;
+
+ /* First round: using the given function, the context and a constant
+ the next context is computed. Because the algorithms processing
+ unit is a 32-bit word and it is determined to work on words in
+ little endian byte order we perhaps have to change the byte order
+ before the computation. To reduce the work for the next steps
+ we store the swapped words in the array CORRECT_WORDS. */
+
+#define OP(a, b, c, d, s, T) \
+ do \
+ { \
+ a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T; \
+ ++words; \
+ CYCLIC (a, s); \
+ a += b; \
+ } \
+ while (0)
+
+ /* It is unfortunate that C does not provide an operator for
+ cyclic rotation. Hope the C compiler is smart enough. */
+#define CYCLIC(w, s) (w = (w << s) | (w >> (32 - s)))
+
+ /* Before we start, one word to the strange constants.
+ They are defined in RFC 1321 as
+
+ T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64
+ */
+
+ /* Round 1. */
+ OP (A, B, C, D, 7, 0xd76aa478);
+ OP (D, A, B, C, 12, 0xe8c7b756);
+ OP (C, D, A, B, 17, 0x242070db);
+ OP (B, C, D, A, 22, 0xc1bdceee);
+ OP (A, B, C, D, 7, 0xf57c0faf);
+ OP (D, A, B, C, 12, 0x4787c62a);
+ OP (C, D, A, B, 17, 0xa8304613);
+ OP (B, C, D, A, 22, 0xfd469501);
+ OP (A, B, C, D, 7, 0x698098d8);
+ OP (D, A, B, C, 12, 0x8b44f7af);
+ OP (C, D, A, B, 17, 0xffff5bb1);
+ OP (B, C, D, A, 22, 0x895cd7be);
+ OP (A, B, C, D, 7, 0x6b901122);
+ OP (D, A, B, C, 12, 0xfd987193);
+ OP (C, D, A, B, 17, 0xa679438e);
+ OP (B, C, D, A, 22, 0x49b40821);
+
+ /* For the second to fourth round we have the possibly swapped words
+ in CORRECT_WORDS. Redefine the macro to take an additional first
+ argument specifying the function to use. */
+#undef OP
+#define OP(f, a, b, c, d, k, s, T) \
+ do \
+ { \
+ a += f (b, c, d) + correct_words[k] + T; \
+ CYCLIC (a, s); \
+ a += b; \
+ } \
+ while (0)
+
+ /* Round 2. */
+ OP (FG, A, B, C, D, 1, 5, 0xf61e2562);
+ OP (FG, D, A, B, C, 6, 9, 0xc040b340);
+ OP (FG, C, D, A, B, 11, 14, 0x265e5a51);
+ OP (FG, B, C, D, A, 0, 20, 0xe9b6c7aa);
+ OP (FG, A, B, C, D, 5, 5, 0xd62f105d);
+ OP (FG, D, A, B, C, 10, 9, 0x02441453);
+ OP (FG, C, D, A, B, 15, 14, 0xd8a1e681);
+ OP (FG, B, C, D, A, 4, 20, 0xe7d3fbc8);
+ OP (FG, A, B, C, D, 9, 5, 0x21e1cde6);
+ OP (FG, D, A, B, C, 14, 9, 0xc33707d6);
+ OP (FG, C, D, A, B, 3, 14, 0xf4d50d87);
+ OP (FG, B, C, D, A, 8, 20, 0x455a14ed);
+ OP (FG, A, B, C, D, 13, 5, 0xa9e3e905);
+ OP (FG, D, A, B, C, 2, 9, 0xfcefa3f8);
+ OP (FG, C, D, A, B, 7, 14, 0x676f02d9);
+ OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a);
+
+ /* Round 3. */
+ OP (FH, A, B, C, D, 5, 4, 0xfffa3942);
+ OP (FH, D, A, B, C, 8, 11, 0x8771f681);
+ OP (FH, C, D, A, B, 11, 16, 0x6d9d6122);
+ OP (FH, B, C, D, A, 14, 23, 0xfde5380c);
+ OP (FH, A, B, C, D, 1, 4, 0xa4beea44);
+ OP (FH, D, A, B, C, 4, 11, 0x4bdecfa9);
+ OP (FH, C, D, A, B, 7, 16, 0xf6bb4b60);
+ OP (FH, B, C, D, A, 10, 23, 0xbebfbc70);
+ OP (FH, A, B, C, D, 13, 4, 0x289b7ec6);
+ OP (FH, D, A, B, C, 0, 11, 0xeaa127fa);
+ OP (FH, C, D, A, B, 3, 16, 0xd4ef3085);
+ OP (FH, B, C, D, A, 6, 23, 0x04881d05);
+ OP (FH, A, B, C, D, 9, 4, 0xd9d4d039);
+ OP (FH, D, A, B, C, 12, 11, 0xe6db99e5);
+ OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8);
+ OP (FH, B, C, D, A, 2, 23, 0xc4ac5665);
+
+ /* Round 4. */
+ OP (FI, A, B, C, D, 0, 6, 0xf4292244);
+ OP (FI, D, A, B, C, 7, 10, 0x432aff97);
+ OP (FI, C, D, A, B, 14, 15, 0xab9423a7);
+ OP (FI, B, C, D, A, 5, 21, 0xfc93a039);
+ OP (FI, A, B, C, D, 12, 6, 0x655b59c3);
+ OP (FI, D, A, B, C, 3, 10, 0x8f0ccc92);
+ OP (FI, C, D, A, B, 10, 15, 0xffeff47d);
+ OP (FI, B, C, D, A, 1, 21, 0x85845dd1);
+ OP (FI, A, B, C, D, 8, 6, 0x6fa87e4f);
+ OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0);
+ OP (FI, C, D, A, B, 6, 15, 0xa3014314);
+ OP (FI, B, C, D, A, 13, 21, 0x4e0811a1);
+ OP (FI, A, B, C, D, 4, 6, 0xf7537e82);
+ OP (FI, D, A, B, C, 11, 10, 0xbd3af235);
+ OP (FI, C, D, A, B, 2, 15, 0x2ad7d2bb);
+ OP (FI, B, C, D, A, 9, 21, 0xeb86d391);
+
+ /* Add the starting values of the context. */
+ A += A_save;
+ B += B_save;
+ C += C_save;
+ D += D_save;
+ }
+
+ /* Put checksum in context given as argument. */
+ ctx->A = A;
+ ctx->B = B;
+ ctx->C = C;
+ ctx->D = D;
+}
diff --git a/lib/sigprocmask.c b/lib/sigprocmask.c
deleted file mode 100644
index 263c281..0000000
--- a/lib/sigprocmask.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-#include <config.h>
-
-#include <errno.h>
-
-#ifndef HAVE_SIGPROCMASK
-
-#define sigprocmask SOMETHINGELSE
-#include <signal.h>
-#undef sigprocmask
-
-int
-sigprocmask (int how, int *new, int *old)
-{
- int o, n = *new;
-
- switch (how)
- {
- case 1: o = sigblock (n); break;
- case 2: o = sigsetmask (sigblock (0) & ~n); break;
- case 3: o = sigsetmask (n); break;
- default:
- errno = EINVAL;
- return -1;
- }
- if (old)
- *old = o;
- return 0;
-}
-
-#endif /* !HAVE_SIGPROCMASK */
diff --git a/po/Makefile.in b/po/Makefile.in
index 726140e..ff8ca90 100644
--- a/po/Makefile.in
+++ b/po/Makefile.in
@@ -1,29 +1,70 @@
-PACKAGE = xsane
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Adopted for #define'd messages by Stanislav Brabec <utx@penguin.cz>
+#
+# This file file be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+@SET_MAKE@
-VPATH = @srcdir@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
-top_builddir = ..
+VPATH = @srcdir@
prefix = @prefix@
-datadir = @datadir@
-
+exec_prefix = @exec_prefix@
+datadir = $(prefix)/@DATADIRNAME@
localedir = $(datadir)/locale
gnulocaledir = $(prefix)/share/locale
gettextsrcdir = $(prefix)/share/gettext/po
+subdir = po
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
+MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
-GMSGFMT = @GMSGFMT@
+CC = @CC@
+GENCAT = @GENCAT@
+GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
MSGFMT = @MSGFMT@
+XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
+MSGMERGE = PATH=../src:$$PATH msgmerge
+
+DEFS = @DEFS@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+
+INCLUDES = -I.. -I$(top_srcdir)/intl
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+SOURCES =
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+DISTFILES = ChangeLog Makefile.in xsane-pot.sed sane-text.h $(PACKAGE).pot \
+$(POFILES) $(GMOFILES) $(SOURCES)
+
+POTFILES = $(top_srcdir)/src/xsane-text.h $(srcdir)/sane-text.h
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
INSTOBJEXT = @INSTOBJEXT@
-.SUFFIXES: .po .gmo .mo
+.SUFFIXES:
+.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
+
+.c.o:
+ $(COMPILE) $<
+
+.po.pox:
+ $(MAKE) $(PACKAGE).pot
+ $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
.po.mo:
$(MSGFMT) -o $@ $<
@@ -32,10 +73,37 @@ INSTOBJEXT = @INSTOBJEXT@
file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
&& rm -f $$file && $(GMSGFMT) -o $$file $<
-all: $(CATALOGS)
-
-install: all
- $(MKINSTALLDIRS) $(datadir);
+.po.cat:
+ sed -f ../intl/po2msg.sed < $< > $*.msg \
+ && rm -f $@ && $(GENCAT) $@ $*.msg
+
+
+all: all-@USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+$(srcdir)/$(PACKAGE).pot: $(srcdir)/xsane-pot.sed $(srcdir)/sane-text.h $(POTFILES)
+ cat $(POTFILES) | \
+ sed -e 's@#define \([^ (]*\)\([ ]\)@/* \1 */\2@' -f $(srcdir)/xsane-pot.sed | \
+ $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+ --language=C --no-location \
+ --add-comments --keyword=_ --keyword=N_ - \
+ && test ! -f $(PACKAGE).po \
+ || ( rm -f $(srcdir)/$(PACKAGE).pot \
+ && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+install-data-no: all
+install-data-yes: all
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $(datadir); \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $(datadir); \
+ fi
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
@@ -45,29 +113,39 @@ install: all
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
dir=$$destdir/$$lang/LC_MESSAGES; \
- $(MKINSTALLDIRS) $$dir; \
+ if test -r "$(MKINSTALLDIRS)"; then \
+ $(MKINSTALLDIRS) $$dir; \
+ else \
+ $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
+ fi; \
if test -r $$cat; then \
$(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
else \
$(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
- echo "installing $(srcdir)/$$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
fi; \
if test -r $$cat.m; then \
$(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
else \
if test -r $(srcdir)/$$cat.m ; then \
- $(INSTALL_DATA) $(srcdir)/$$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
- echo "installing $(srcdir)/$$cat as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+ $(INSTALL_DATA) $(srcdir)/$$cat.m \
+ $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+ echo "installing $(srcdir)/$$cat as" \
+ "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
else \
true; \
fi; \
fi; \
done
+# Define this as empty until I found a useful application.
+installcheck:
+
uninstall:
- catalogs='$(CATALOGS)';
+ catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
@@ -78,14 +156,55 @@ uninstall:
done
rm -f $(gettextsrcdir)/po-Makefile.in
-clean:
- rm -f core core.*
+check: all
+
+dvi info tags TAGS ID:
+
+mostlyclean:
+ rm -f core core.* *.pox $(PACKAGE).po *.old.po
+ rm -fr *.o
+
+clean: mostlyclean
distclean: clean
- rm -f Makefile
+ rm -f Makefile *.mo *.msg *.cat *.cat.m
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f $(GMOFILES)
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: update-po $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ for file in $$dists; do \
+ ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+ || cp -p $(srcdir)/$$file $(distdir); \
+ done
+
+update-po: Makefile
+ $(MAKE) $(PACKAGE).pot
+ PATH=`pwd`/../src:$$PATH; \
+ cd $(srcdir); \
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ mv $$lang.po $$lang.old.po; \
+ echo "$$lang:"; \
+ if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$cat failed!"; \
+ rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
-maintainer-clean: clean
- rm -f *.mo *.gmo
+Makefile: Makefile.in ../config.status
+ cd .. \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
+ $(SHELL) ./config.status
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/po/Makefile.in.bak b/po/Makefile.in.bak
deleted file mode 100644
index 272b056..0000000
--- a/po/Makefile.in.bak
+++ /dev/null
@@ -1,92 +0,0 @@
-PACKAGE = xsane
-
-VPATH = @srcdir@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ..
-
-prefix = @prefix@
-datadir = @datadir@
-
-localedir = $(datadir)/locale
-gnulocaledir = $(prefix)/share/locale
-gettextsrcdir = $(prefix)/share/gettext/po
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-
-GMSGFMT = @GMSGFMT@
-MSGFMT = @MSGFMT@
-
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-INSTOBJEXT = @INSTOBJEXT@
-
-.SUFFIXES: .po .gmo .mo
-
-.po.mo:
- $(MSGFMT) -o $@ $<
-
-.po.gmo:
- file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
- && rm -f $$file && $(GMSGFMT) -o $$file $<
-
-all: $(CATALOGS)
-
-install: all
- $(MKINSTALLDIRS) $(datadir);
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- case "$$cat" in \
- *.gmo) destdir=$(gnulocaledir);; \
- *) destdir=$(localedir);; \
- esac; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- dir=$$destdir/$$lang/LC_MESSAGES; \
- $(MKINSTALLDIRS) $$dir; \
- if test -r $$cat; then \
- $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
- echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
- else \
- $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
- echo "installing $(srcdir)/$$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
- fi; \
- if test -r $$cat.m; then \
- $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
- echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
- else \
- if test -r $(srcdir)/$$cat.m ; then \
- $(INSTALL_DATA) $(srcdir)/$$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
- echo "installing $(srcdir)/$$cat as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
- else \
- true; \
- fi; \
- fi; \
- done
-
-uninstall:
- catalogs='$(CATALOGS)';
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
- done
- rm -f $(gettextsrcdir)/po-Makefile.in
-
-clean:
- rm -f core core.*
-
-distclean: clean
- rm -f Makefile
-
-maintainer-clean: distclean
- rm -f *.mo *.gmo
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/po/README b/po/README
new file mode 100644
index 0000000..d5ac25c
--- /dev/null
+++ b/po/README
@@ -0,0 +1,72 @@
+
+SHORT DESCRIPTION:
+------------------
+
+XSane uses gettext for supporting translation into different languages.
+
+- To remake the *.po files when the original texts have changed or new texts have been added:
+ make update-po
+- To create the translation tables:
+ make
+- Using "u" (untranslated) and "f" (fuzzy) in emacs po-mode for updating strings.
+- if you use other editors, search for keyword "fuzzy" and for \"\"
+- when you translated fuzzy fields, remove the "fuzzy" marker, otherwise the
+ translation will NOT be used
+
+
+SELECT YOUR LANGUAGE:
+---------------------
+
+set environment variable LANG to your language
+(eg. export LANG=german) and call xsane
+You have to set the correct keyword. When you select
+LANG=fr you will select the french translated texts but
+not the correct fonts. Setting LANG=french works fine.
+
+Note that some texts are stored in the preferences file
+ ~/.sane/xsane/xsane.rc
+When you select another language you may want to remove
+this file to also get these texts translated.
+
+Note that backend dependant texts may not be translated because
+there is possibly no translation table for selected language
+for the backend you use.
+
+
+NEW TRANSLATIONS:
+-----------------
+
+To create a new translation for a new language
+copy xsane.pot to "language".po and edit "language".po
+
+The field TEXT_TRANSLATION_INFO is meant for you to enter
+your Name and Email-Adress, e.g.:
+ "English translation\n"
+ "by your name\n"
+ "Email: your.email@address.domain\n"
+
+Note that it is NOT allowed to translate the menu paths of the gimp!
+
+To test/install your new translation:
+ - edit xsane-0.*/configure, search for ALL_LINGUAS and add "language"
+ - enter xsane-0.*, do
+ - make distclean
+ - ./configure
+ - make
+ - make install
+
+If you want to make your translation public
+please send your "language".po file to:
+Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+
+
+
+THANKS:
+-------
+
+Thanks to Stanislav Brabec <utx@k332.feld.cvut.cz> for his sed scripts
+and Changes in Makefile.in to simplify the rebuild of *.po files
+
+
+Bye
+Oliver Rauch
diff --git a/po/README.ADD_NEW_LANGUAGE b/po/README.ADD_NEW_LANGUAGE
deleted file mode 100644
index da658fa..0000000
--- a/po/README.ADD_NEW_LANGUAGE
+++ /dev/null
@@ -1,69 +0,0 @@
-
-How to add a new language to xsane:
------------------------------------
-
-SHORT DESCRIPTION:
-------------------
-
-XSane uses gettext for supporting translation into different languages.
-*** BUT ***:
-I don`t use the standard routines to create the empty translation(*.po) file.
-My way is more flexible when changes in the original textes are made:
-
-All texts that are printed from xsane are #DEFINEd in xsane-text.h.
-Every text that is added to xsane will be added in frontend/xsane-text.h
-AND in po/newlanguage.in.in.
-
-******* Please don`t edit or create a *.po file by hand! ********
-
-The files *.po are created form the files *.po.in . In xsane and in the
-*.po.in files we use the #defined labels of the text instead of the text.
-This way the original text can be changed without all language files
-have to be changed!
-
-po.in2po uses the gcc preprocessor to replace the #defined labels by the
-original (up to date) text and creates the *.po files.
-
-make_newlanguage.po.in creates the file newlanguage.po.in, the gcc preprocessor
-is used to add the recent original texts as comments.
-
-
-
-WHAT DO YOU HAVE TO DO TO CREATE ADD A NEW LANGUAGE?
-----------------------------------------------------
-
-Take the file newlanguage.po.in and copy it to "language".po.in
-where "language" is the abbrevation that represents you language
-(eg. fr.po.in for french, de.po.in for german,...).
-
-Edit the file "language".po.in and type in the translation
-in the lines:
-msgstr "text"
-
-If that is done:
- - if you have gcc installed, call po.in2po "language"
- - if you don`t have gcc see if you have a C preprocessor you can use
- if not, I will transform it for you
-
-now change to the xsane directory and do
-edit configure.in and add "language" to ALL_LINGUAS, then do
- make distclean
- ./configure
- make
-and as root
- make install
-
-(You have to install xsane, otherwise the language files will not be found!)
-
-set environment variable LANG to your language
-(eg. export LANG=de) and call xsane
-
-If you want to make your translation public
-please send your "language".po.in file to:
-Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
-If you have any problems please also contact
-me on the email-address above!
-
-Bye
-Oliver Rauch
-
diff --git a/po/README.UPDATE_LANGUAGE b/po/README.UPDATE_LANGUAGE
deleted file mode 100644
index 1a18a6b..0000000
--- a/po/README.UPDATE_LANGUAGE
+++ /dev/null
@@ -1,8 +0,0 @@
-To update the lines
-#original text: "*"
-in file.po.in call remake_language.po.in file[.po.in]
-
-To update file.po call
-po.in2po file
-
-
diff --git a/po/add-0.37.po.in b/po/add-0.37.po.in
deleted file mode 100644
index 943dcfa..0000000
--- a/po/add-0.37.po.in
+++ /dev/null
@@ -1,56 +0,0 @@
-#original text: "Saving image"
-msgid PROGRESS_SAVING
-msgstr ""
-
-#original text: "Saving fax image"
-msgid PROGRESS_SAVING_FAX
-msgstr ""
-
-#original text: "Converting data...."
-msgid PROGRESS_CONVERTING_DATA
-msgstr ""
-
-#original text: "Converting to postscript"
-msgid PROGRESS_CONVERTING_PS
-msgstr ""
-
-#original text: "Scanning"
-msgid PROGRESS_SCANNING
-msgstr ""
-
-#original text: "Receiving %s data for `%s'..."
-msgid PROGRESS_RECEIVING_SCAN
-msgstr ""
-
-#original text: "Receiving %s data for photocopy ..."
-msgid PROGRESS_RECEIVING_COPY
-msgstr ""
-
-#original text: "Receiving %s data for fax ..."
-msgid PROGRESS_RECEIVING_FAX
-msgstr ""
-
-#original text: "Receiving %s data for GIMP..."
-msgid PROGRESS_RECEIVING_GIMP
-msgstr ""
-
-
-
-msgid "flatbed scanner"
-msgstr ""
-
-msgid "frame grabber"
-msgstr ""
-
-msgid "handheld scanner"
-msgstr ""
-
-msgid "still camera"
-msgstr ""
-
-msgid "video camera"
-msgstr ""
-
-msgid "virtual device"
-msgstr ""
-
diff --git a/po/add-0.38.po.in b/po/add-0.38.po.in
deleted file mode 100644
index 6f95e72..0000000
--- a/po/add-0.38.po.in
+++ /dev/null
@@ -1,48 +0,0 @@
-#original text: "View"
-msgid MENU_VIEW
-msgstr ""
-
-#original text: "Email:"
-msgid TEXT_EMAIL
-msgstr ""
-
-#original text: "with GIMP support, compiled with GIMP-"
-msgid TEXT_WITH_GIMP_SUPPORT
-msgstr ""
-
-#original text: "without GIMP support"
-msgid TEXT_WITHOUT_GIMP_SUPPORT
-msgstr ""
-
-#original text: "compiled with GIMP-"
-msgid TEXT_GIMP_VERSION
-msgstr ""
-
-#original text: "GIMP can't handle depth"
-msgid ERR_GIMP_BAD_DEPTH
-msgstr ""
-
-#original text: "Front-end to the SANE interface"
-msgid XSANE_GIMP_INSTALL_BLURB
-msgstr ""
-
-#original text: "This function provides access to scanners and other image acquisition devices through the SANE (Scanner Access Now Easy) interface."
-msgid XSANE_GIMP_INSTALL_HELP
-msgstr ""
-
-#original text: "<Toolbox>/File/Acquire/XSane: "
-msgid XSANE_GIMP_MENU
-msgstr ""
-
-#original text: "<Toolbox>/Xtns/XSane/"
-msgid XSANE_GIMP_MENU_OLD
-msgstr ""
-
-#original text: "<Toolbox>/File/Acquire/XSane: Device dialog..."
-msgid XSANE_GIMP_MENU_DIALOG
-msgstr ""
-
-#original text: "<Toolbox>/Xtns/XSane/Device dialog..."
-msgid XSANE_GIMP_MENU_DIALOG_OLD
-msgstr ""
-
diff --git a/po/add-0.40.po.in b/po/add-0.40.po.in
deleted file mode 100644
index 3b443fe..0000000
--- a/po/add-0.40.po.in
+++ /dev/null
@@ -1,40 +0,0 @@
-#original text: "Overwrite"
-msgid BUTTON_OVERWRITE
-msgstr ""
-
-#original text: "File:"
-msgid TEXT_FILE
-msgstr ""
-
-#original text: "Failed to create file:"
-msgid ERR_FAILED_CREATE_FILE
-msgstr ""
-
-#original text: "Error while loading device settings:"
-msgid ERR_LOAD_DEVICE_SETTINGS
-msgstr ""
-
-#original text: "is not a device-rc-file !!!"
-msgid ERR_NO_DRC_FILE
-msgstr ""
-
-#original text: "Failed to execute netscape!"
-msgid ERR_NETSCAPE_EXECUTE_FAIL
-msgstr ""
-
-#original text: "Send fax: no receiver defined"
-msgid ERR_SENDFAX_RECEIVER_MISSING
-msgstr ""
-
-#original text: "has been created for device"
-msgid ERR_CREATED_FOR_DEVICE
-msgstr ""
-
-#original text: "you want to use it for device"
-msgid ERR_USED_FOR_DEVICE
-msgstr ""
-
-#original text: "this may cause problems!"
-msgid ERR_MAY_CAUSE_PROBLEMS
-msgstr ""
-
diff --git a/po/add-0.44.po.in b/po/add-0.44.po.in
deleted file mode 100644
index 2553218..0000000
--- a/po/add-0.44.po.in
+++ /dev/null
@@ -1,9 +0,0 @@
-
-#original text: "Copy options"
-msgid NOTEBOOK_COPY_OPTIONS
-msgstr ""
-
-#original text: "Problems?"
-msgid MENU_ITEM_PROBLEMS
-msgstr ""
-
diff --git a/po/add-0.47.po.in b/po/add-0.47.po.in
deleted file mode 100644
index 77c197a..0000000
--- a/po/add-0.47.po.in
+++ /dev/null
@@ -1,5 +0,0 @@
-
-#original text: "Create project"
-msgid BUTTON_CREATE_PROJECT
-msgstr ""
-
diff --git a/po/cs.gmo b/po/cs.gmo
index b29f57f..598b172 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index faa03d0..6a3a3fc 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,1594 +1,2380 @@
+# Czech translation for XSane.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Stanislav Brabec <utx@penguin.cz>, 2000-2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: XSANE 0.84\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2002-01-14 18:03+0100\n"
+"Last-Translator: Stanislav Brabec <utx@penguin.cz>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr "cs"
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr "(c)"
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "O programu"
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "O překladu"
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "autorizace"
+#. WINDOW_LICENSE
+msgid "license"
+msgstr "licence"
+#. WINDOW_INFO
+msgid "info"
+msgstr "informace"
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "dávkové skenování"
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "faxový projekt"
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "přejmenovat faxovou stránku"
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr "zadat ps-soubor pro fax"
+#. WINDOW_MAIL_PROJECT
+msgid "mail project"
+msgstr "poštovní projekt"
+#. WINDOW_MAIL_RENAME
+msgid "rename mail image"
+msgstr "přejmenovat obrázek do pošty"
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr "vložit soubor do pošty"
+#. WINDOW_PRESET_AREA_RENAME
+msgid "rename preset area"
+msgstr "přejmenovat předvolenou oblast"
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "nastavení"
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "Histogram"
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "Gama křivka"
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "Standardní volby"
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "Rozšířené volby"
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "výběr zařízení"
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "Náhled"
+#. WINDOW_VIEWER
+msgid "Viewer"
+msgstr "Prohlížeč"
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+msgid "Viewer: select output filename"
+msgstr "Prohlížeč: zvolte výstupní soubor"
+#. WINDOW_OCR_OUTPUT_FILENAME
+msgid "Select output filename for OCR text file"
+msgstr "Zvolte jméno výstupního souboru s rozpoznaným textem"
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "výběr jména výstupního souboru"
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "zápis nastavení zařízení"
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "čtení nastavení zařízení"
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "změna pracovního adresáře"
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "výběr pomocného adresáře"
+#. WINDOW_SCALE
+msgid "Scale image"
+msgstr "Změna velikosti obrázku"
+#. WINDOW_DESPECKLE
+msgid "Despeckle image"
+msgstr "Vyčistit obrázek"
+#. WINDOW_BLUR
+msgid "Blur image"
+msgstr "Rozostřit obrázek"
+#. WINDOW_STORE_MEDIUM
+msgid "Store medium definition"
+msgstr "Uložit definici média"
+#. MENU_FILE
+msgid "File"
+msgstr "Soubor"
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "Nastavení"
+#. MENU_VIEW
+msgid "View"
+msgstr "Pohled"
+#. MENU_HELP
+msgid "Help"
+msgstr "Nápověda"
+#. MENU_FILTERS
+msgid "Filters"
+msgstr "Filtry"
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "O XSane"
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr "Informace"
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "Konec"
+#. MENU_ITEM_SAVE_IMAGE
+msgid "Save image"
+msgstr "Zápis obrázku"
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "Zavřít"
+#. MENU_ITEM_CLONE
+msgid "Clone"
+msgstr "Duplikovat"
+#. MENU_ITEM_SCALE
+msgid "Scale"
+msgstr "Změna velikosti"
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr "Vyčistit"
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr "Rozostření"
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr "Původní obrázek"
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr "Zpracovaný obrázek"
+#. BUTTON_START
+msgid "Start"
+msgstr "Start"
+#. BUTTON_OK
+msgid "Ok"
+msgstr "OK"
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr "Přijmout"
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr "Nepřijmout"
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr "Použít"
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr "Zrušit"
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr "Redukovat"
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "Pokračovat na vlastní riziko"
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "Procházet"
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr "Přepsat"
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr "Přidat oblast"
+#. BUTTON_PAGE_DELETE
+msgid "Delete page"
+msgstr "Smazat stránku"
+#. BUTTON_PAGE_SHOW
+msgid "Show page"
+msgstr "Zobrazit stránku"
+#. BUTTON_PAGE_RENAME
+msgid "Rename page"
+msgstr "Přejmenovat stránku"
+#. BUTTON_IMAGE_DELETE
+msgid "Delete image"
+msgstr "Smazat obrázek"
+#. BUTTON_IMAGE_SHOW
+msgid "Show image"
+msgstr "Ukázat obrázek"
+#. BUTTON_IMAGE_RENAME
+msgid "Rename image"
+msgstr "Přejmenovat obrázek"
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr "Vložit soubor"
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr "Vytvořit projekt"
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr "Odeslat projekt"
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr "Smazat projekt"
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr "Přidat tiskárnu"
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr "Odebrat tiskárnu"
+#. BUTTON_PREVIEW_ACQUIRE
+msgid "Acquire preview"
+msgstr "Sejmout náhled"
+#. BUTTON_PREVIEW_CANCEL
+msgid "Cancel preview"
+msgstr "Zrušit náhled"
+#. BUTTON_DISCARD_IMAGE
+msgid "Discard image"
+msgstr "Zahodit obrázek"
+#. BUTTON_DISCARD_ALL_IMAGES
+msgid "Discard all images"
+msgstr "Zahodit všechny obrázky"
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr "Nezavírat"
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr "Spřáhnout změnu velikosti"
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr "Nalézt režim"
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr "HTML pošta"
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr "Při skončení zapsat předvolby zařízení"
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr "Varování o přepsání"
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr "Přeskočit existující jména souborů"
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr "Redukovat 16bitový obrázek na 8bitový"
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr "Pevná velikost hlavního okna"
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "Zakázat pro gimp gama náhledu"
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr "Použít vlastní barevnou mapu"
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "Automaticky upravit gama"
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+msgid "Preselect scanarea"
+msgstr "Předvolba skenovací plochy"
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr "Automatická korekce barev"
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr "Authentifikace POP3"
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "procházejí se zařízení"
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr "Dostupná zařízení:"
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr "Předvolby XSane"
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr "Režim XSane"
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr "Krok"
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr "Typ"
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr "Skener a ovladač:"
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr "Výrobce:"
+#. TEXT_MODEL
+msgid "Model:"
+msgstr "Model:"
+#. TEXT_TYPE
+msgid "Type:"
+msgstr "Typ:"
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr "Zařízení:"
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr "Zavedený ovladač:"
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr "Verze Sane:"
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr "Aktuální hodnoty:"
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr "Gama korekce provádí:"
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr "skener"
+#. TEXT_SOFTWARE_XSANE
+msgid "software (XSane)"
+msgstr "software (XSane)"
+#. TEXT_NONE
+msgid "none"
+msgstr "nikdo"
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr "Vstupní hloubka gama:"
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr "Výstupní hloubka gama:"
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr "Výstupní hloubka skeneru:"
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr "Výstupní formáty xsane:"
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr "8bitové výstupní formáty:"
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr "16bitové výstupní formáty:"
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"GIMP nepodporuje hloubku 16 bitů/barvu.\n"
+"Chcete redukovat hloubku na 8 bitů/barvu?"
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Tento výstupní formát nepodporuje hloubku 16 bitů/barvu.\n"
+"Chcete redukovat hloubku na 8 bitů/barvu?<"
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr "Je vyžadovaná autorizace"
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr "Přenos hesla je bezpečný"
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr "Ovladač vyžaduje heslo jako obyčejný text"
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr "Uživatel:"
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr "Heslo:"
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr "Neplatné parametry."
+#. TEXT_VERSION
+msgid "version:"
+msgstr "verze:"
+#. TEXT_PACKAGE
+msgid "package"
+msgstr "balík"
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr "s podporou programu GIMP"
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr "bez podpory programu GIMP"
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "kompilováno s GTK-"
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr "kompilováno s GIMP-"
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr "neznámý"
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"Program XSane je šiřitelný v souladu s Obecnou veřejnou licencí GNU\n"
+"publikovanou Free Software Foundation; buď licencí verze 2 nebo\n"
+"(dle vaši volby) jakoukoliv novější.\n"
+"\n"
+"Tento program je šířen v naději, že bude užitečný, avšak\n"
+"BEZ JAKÉKOLI ZÁRUKY; neposkytují se ani odvozené záruky\n"
+"PRODEJNOSTI anebo VHODNOSTI PRO URČITÝ ÚČEL.\n"
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr "E-mail:"
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr "Domovská stránka:"
+#. TEXT_FILE
+msgid "File:"
+msgstr "Soubor:"
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr "Překlad:"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+"Stanislav Brabec\n"
+"e-mail: utx@penguin.cz\n"
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr "0 × 0: 0 KB"
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr "Skenované stránky: "
+#. TEXT_MAIL_TEXT
+msgid "Email text:"
+msgstr "Text e-mailu:"
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr "Přílohy:"
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr "Stav projektu:"
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr "Název média:"
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+"Velikost v pixelech: %d × %d, bitů/barvu: %d, barev: %d, %1.0f dpi × %1.0f "
+"dpi, %1.1f %s"
+#. TEXT_X_SCALE_FACTOR
+msgid "X-Scale factor:"
+msgstr "Faktoru změny velikosti X:"
+#. TEXT_Y_SCALE_FACTOR
+msgid "Y-Scale factor:"
+msgstr "Faktoru změny velikosti Y:"
+#. TEXT_DESPECKLE_RADIUS
+msgid "Despeckle radius:"
+msgstr "Poloměr pro vyčistění:"
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr "Poloměr rozostření:"
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr "Výběr tiskárny:"
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr "Jméno:"
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr "Příkaz:"
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr "Volba počtu kopií:"
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "Rozlišení čárové grafiky (dpi):"
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "Rozlišení v šedích (dpi):"
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "Rozlišení v barvě (dpi):"
+#. TEXT_SETUP_PRINTER_WIDTH
+msgid "Width"
+msgstr "Šířka"
+#. TEXT_SETUP_PRINTER_HEIGHT
+msgid "Height"
+msgstr "Výška"
+#. TEXT_SETUP_PRINTER_LEFT
+msgid "Left offset"
+msgstr "Levý posun"
+#. TEXT_SETUP_PRINTER_BOTTOM
+msgid "Bottom offset"
+msgstr "Spodní posun"
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr "Gama hodnota tiskárny:"
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr "Červená gama tiskárny:"
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr "Zelená gama tiskárny:"
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr "Modrá gama tiskárny:"
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "Pomocný adresář"
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "Práva obrázkového souboru"
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "Práva adresáře"
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr "Kvalita JPEG obrázku"
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr "Komprese PNG obrázku"
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr "Délka čítače jména souboru"
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "Komprese 16bitových TIFF obrázků"
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "Komprese 8bitových TIFF obrázků"
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr "Komprese TIFF čárové grafiky"
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "Převzorkování náhledu:"
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr "Gama náhledu:"
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr "Červená gama náhledu:"
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr "Zelená gama náhledu:"
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr "Modrá gama náhledu:"
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "Volba prahu:"
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr "Režim automatického podavače dokumentů:"
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr "Náhled rozsahu pipety"
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "Minimum prahu:"
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "Maximum prahu:"
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "Činitel prahu:"
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "Posun prahu:"
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "Jméno skenovacího režimu v šedích:"
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "Prohlížeč souboru nápovědy (HTML):"
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr "Volba příjemce:"
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr "Volby postscriptového souboru:"
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr "Volby normálního režimu:"
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr "Volby režimu vysokého rozlišení:"
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr "Prohlížeč (Postscript):"
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr "SMTP server:"
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr "SMTP port:"
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr "Od:"
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr "Odpovědět na:"
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr "POP3 server:"
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr "POP3 port:"
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr "POP3 uživatel:"
+#. TEXT_SETUP_POP3_PASS
+msgid "POP3 password:"
+msgstr "POP3 heslo:"
+#. TEXT_SETUP_MAIL_VIEWER
+msgid "Viewer (png):"
+msgstr "Prohlížeč (png):"
+#. TEXT_SETUP_OCR_COMMAND
+msgid "OCR Command:"
+msgstr "Příkaz OCR:"
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+msgid "Inputfile option:"
+msgstr "Volba pro vstupní soubor:"
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+msgid "Outputfile option:"
+msgstr "Volba pro výstupní soubor:"
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr "uživatel"
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr "skupina"
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr "všichni"
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr "Zápis"
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr "Obrázek"
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "Kopírování"
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr "Faxování"
+#. NOTEBOOK_MAIL_OPTIONS
+msgid "Mail"
+msgstr "Pošta"
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr "OCR"
+#. NOTEBOOK_DISPLAY_OPTIONS
+msgid "Display"
+msgstr "Zobrazování"
+#. NOTEBOOK_ENHANCE_OPTIONS
+msgid "Enhancement"
+msgstr "Vylepšení"
+#. MENU_ITEM_MAIL
+msgid "Email"
+msgstr "E-mail"
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr "Zobrazovat tipy"
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr "Zobrazovat náhled"
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr "Zobrazovat histogram"
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "Zobrazit gama křivku"
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr "Zobrazovat standardní volby"
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr "Zobrazovat rozšířené volby"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#nls translation file for xsane
-#language: czech (cs)
-
-#original text: "About"
-msgid "About"
-msgstr "O programu"
-
-#original text: "authorization"
-msgid "authorization"
-msgstr "autorizace"
-
-#original text: "info"
-msgid "info"
-msgstr "informace"
-
-#original text: "batch scan"
-msgid "batch scan"
-msgstr "dávkové skenování"
-
-#original text: "fax project"
-msgid "fax project"
-msgstr "faxový projekt"
-
-#original text: "rename fax page"
-msgid "rename fax page"
-msgstr "přejmenovat faxovou stránku"
-
-#original text: "setup"
-msgid "setup"
-msgstr "nastavení"
-
-#original text: "Histogram"
-msgid "Histogram"
-msgstr "Histogram"
-
-#original text: "Standard options"
-msgid "Standard options"
-msgstr "Standardní volby"
-
-#original text: "Advanced options"
-msgid "Advanced options"
-msgstr "Rozšířené volby"
-
-#original text: "device selection"
-msgid "device selection"
-msgstr "výběr zařízení"
-
-#original text: "Preview"
-msgid "Preview"
-msgstr "Náhled"
-
-#original text: "output filename"
-msgid "output filename"
-msgstr "jméno výstupního souboru"
-
-#original text: "save device settings"
-msgid "save device settings"
-msgstr "zapsat nastavení zařízení"
-
-#original text: "load device settings"
-msgid "load device settings"
-msgstr "načíst nastavení zařízení"
-
-#original text: "File"
-msgid "File"
-msgstr "Soubor"
-
-#original text: "Preferences"
-msgid "Preferences"
+#. MENU_ITEM_SETUP
+msgid "Setup"
msgstr "Nastavení"
-#original text: "View"
-msgid "View"
-msgstr "Pohled"
-
-#original text: "Help"
-msgid "Help"
-msgstr "Nápověda"
-
-#original text: "About"
-msgid "About"
-msgstr "O programu"
-
-#original text: "Info"
-msgid "Info"
-msgstr "Informace"
-
-#original text: "Exit"
-msgid "Exit"
-msgstr "Konec"
-
-#original text: "Raw image"
-msgid "Raw image"
-msgstr "Původní obrázek"
-
-#original text: "Enhanced image"
-msgid "Enhanced image"
-msgstr "Zpracovaný obrázek"
-
-#original text: "Start"
-msgid "Start"
-msgstr "Start"
-
-#original text: "Ok"
-msgid "Ok"
-msgstr "OK"
-
-#original text: "Apply"
-msgid "Apply"
-msgstr "Použít"
-
-#original text: "Cancel"
-msgid "Cancel"
-msgstr "Zrušit"
-
-#original text: "Close"
-msgid "Close"
-msgstr "Zavřít"
-
-#original text: "Overwrite"
-msgid "Overwrite"
-msgstr "Přepsat"
-
-#original text: "Add area"
-msgid "Add area"
-msgstr "Přidat oblast"
-
-#original text: "Delete"
-msgid "Delete"
-msgstr "Smazat"
-
-#original text: "Show"
-msgid "Show"
-msgstr "Ukázat"
-
-#original text: "Rename"
-msgid "Rename"
-msgstr "Přejmenovat"
-
-#original text: "Send project"
-msgid "Send project"
-msgstr "Odeslat projekt"
-
-#original text: "Delete project"
-msgid "Delete project"
-msgstr "Smazat projekt"
-
-#original text: "Add printer"
-msgid "Add printer"
-msgstr "Přidat tiskárnu"
-
-#original text: "Delete printer"
-msgid "Delete printer"
-msgstr "Odebrat tiskárnu"
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr "Délková jednotka"
-#original text: "Acquire Preview"
-msgid "Acquire Preview"
-msgstr "Sejmout náhled"
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr "milimetry"
-#original text: "Cancel Preview"
-msgid "Cancel Preview"
-msgstr "Zrušit náhled"
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr "centimetry"
-#original text: "Fine mode"
-msgid "Fine mode"
-msgstr "Nalézt režim"
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr "palce"
-#original text: "Overwrite warning"
-msgid "Overwrite warning"
-msgstr "Varování o přepsání"
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "Metoda aktualizace"
-#original text: "Increase filename counter"
-msgid "Increase filename counter"
-msgstr "Zvýšit čítač jména souboru"
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "souvislá"
-#original text: "Skip existing numbers"
-msgid "Skip existing numbers"
-msgstr "Přeskočit existující čísla"
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "nesouvislá"
-#original text: "Main window size fixed"
-msgid "Main window size fixed"
-msgstr "Pevná velikost hlavního okna"
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "zpožděná"
-#original text: "Preserve preview image"
-msgid "Preserve preview image"
-msgstr "Zachovat náhledový obrázek"
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "Zobrazovat seznam rozlišení"
-#original text: "Use private colormap"
-msgid "Use private colormap"
-msgstr "Použít vlastní barevnou mapu"
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "Rotovat postscript"
-#original text: "Available devices:"
-msgid "Available devices:"
-msgstr "Dostupná zařízení:"
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr "Zapsat nastavení zařízení"
-#original text: "XSane options"
-msgid "XSane options"
-msgstr "Předvolby XSane"
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr "Načíst nastavení zařízení"
-#original text: "XSane mode"
-msgid "XSane mode"
-msgstr "Režim XSane"
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "Změnit adresář"
-#original text: "Scanner and backend:"
-msgid "Scanner and backend:"
-msgstr "Skener a ovladač:"
+#. MENU_ITEM_XSANE_LICENSE
+msgid "License"
+msgstr "Licence"
-#original text: "Vendor:"
-msgid "Vendor:"
-msgstr "Výrobce:"
-
-#original text: "Model:"
-msgid "Model:"
-msgstr "Model:"
+#. MENU_ITEM_XSANE_DOC
+msgid "XSane doc"
+msgstr "Dokumentace XSane"
-#original text: "Type:"
-msgid "Type:"
-msgstr "Typ:"
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr "Dokumentace rozhraní zařízení"
-#original text: "Device:"
-msgid "Device:"
-msgstr "Zařízení:"
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr "Dostupná rozhraní zařízení"
-#original text: "Loaded backend:"
-msgid "Loaded backend:"
-msgstr "Zavedený ovladač:"
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr "Skenovací tipy"
-#original text: "Sane version:"
-msgid "Sane version:"
-msgstr "Verze Sane:"
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr "Problémy?"
-#original text: "Recent values:"
-msgid "Recent values:"
-msgstr "Současné hodnoty:"
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr "neaktivní"
-#original text: "Gamma correction by:"
-msgid "Gamma correction by:"
-msgstr "Gama korekce provádí:"
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr "žádná komprese"
-#original text: "scanner"
-msgid "scanner"
-msgstr "skener"
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr "Huffmanova komprese CCITT 1D"
-#original text: "software (xsane)"
-msgid "software (xsane)"
-msgstr "software (xsane)"
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr "Komprese CCITT Group 3 Fax"
-#original text: "none"
-msgid "none"
-msgstr "nikdo"
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr "Komprese CCITT Group 4 Fax"
-#original text: "Gamma input depth:"
-msgid "Gamma input depth:"
-msgstr "Vstupní hloubka gama:"
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr "Komprese JPEG DCT"
-#original text: "Gamma output depth:"
-msgid "Gamma output depth:"
-msgstr "Výstupní hloubka gama:"
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr "bitové pakování"
-#original text: "Scanner output depth:"
-msgid "Scanner output depth:"
-msgstr "Výstupní hloubka skeneru:"
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "Okno standardních voleb (čárová grafika)"
-#original text: "XSane output formats:"
-msgid "XSane output formats:"
-msgstr "Výstupní formáty xsane:"
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "Hlavní okno XSane (čárová grafika)"
-#original text: "8 bit output formats:"
-msgid "8 bit output formats:"
-msgstr "8bitové výstupní formáty:"
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "Hlavní okno XSane (šedi -> čárová grafika)"
-#original text: "16 bit output formats:"
-msgid "16 bit output formats:"
-msgstr "16bitové výstupní formáty:"
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr "(nic)"
-#original text: "Authorization required for"
-msgid "Authorization required for"
-msgstr "Je vyžadovaná autorizace"
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "Přípona"
-#original text: "Username :"
-msgid "Username :"
-msgstr "Uživatel: "
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr "Přidat výběr do seznamu"
-#original text: "Password :"
-msgid "Password :"
-msgstr "Heslo: "
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr "Přejmenovat definici"
-#original text: "Invalid parameters."
-msgid "Invalid parameters."
-msgstr "Neplatné parametry."
+#. MENU_ITEM_PRESET_AREA_DELETE
+msgid "Delete definition"
+msgstr "Smazat definici"
-#original text: "version:"
-msgid "version:"
-msgstr "verze:"
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr "Přesun výš"
-#original text: "package"
-msgid "package"
-msgstr "balík"
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr "Přesun níž"
-#original text: "with GIMP support"
-msgid "with GIMP support"
-msgstr "s podporou programu GIMP"
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "Skenuje se"
-#original text: "without GIMP support"
-msgid "without GIMP support"
-msgstr "bez podpory programu GIMP"
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "Přijímají se data typu %s"
-#original text: "compiled with GIMP-"
-msgid "compiled with GIMP-"
-msgstr "kompilováno s programem GIMP-"
+#. PROGRESS_TRANSFERING_DATA
+msgid "Transfering image"
+msgstr "Obrázek se přenáší"
-#original text: "unknown"
-msgid "unknown"
-msgstr "neznámý"
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr "Obrázek se rotuje"
-#original text: "Email:"
-msgid "Email:"
-msgstr "E-mail:"
+#. PROGRESS_MIRRORING_DATA
+msgid "Mirroring image"
+msgstr "Obrázek se zrcadlí"
-#original text: "File:"
-msgid "File:"
-msgstr "Soubor:"
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr "Obrázek se komprimuje"
-#original text: "0x0: 0KB"
-msgid "0x0: 0KB"
-msgstr "0 × 0: 0 KB"
+#. PROGRESS_CONVERTING_DATA
+msgid "Converting image"
+msgstr "Obrázek se převádí"
-#original text: "Printer selection:"
-msgid "Printer selection:"
-msgstr "Výběr tiskárny:"
+#. PROGRESS_SAVING_DATA
+msgid "Saving image"
+msgstr "Obrázek se zapisuje"
-#original text: "Name:"
-msgid "Name:"
-msgstr "Jméno:"
+#. PROGRESS_CLONING_DATA
+msgid "Cloning image"
+msgstr "Duplikuje se obrázek"
-#original text: "Command:"
-msgid "Command:"
-msgstr "Příkaz:"
+#. PROGRESS_SCALING_DATA
+msgid "Scaling image"
+msgstr "Mění se velikost obrázku"
-#original text: "Copy number option:"
-msgid "Copy number option:"
-msgstr "Volba počtu kopií:"
+#. PROGRESS_DESPECKLING_DATA
+msgid "Despeckling image"
+msgstr "Obrázek se vyčisťuje"
-#original text: "Resolution (dpi):"
-msgid "Resolution (dpi):"
-msgstr "Rozlišení (dpi):"
+#. PROGRESS_BLURING_DATA
+msgid "Bluring image"
+msgstr "Obrázek se rozostřuje"
-#original text: "Width (1/72 inch):"
-msgid "Width (1/72 inch):"
-msgstr "Šířka (1/72 palce):"
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr "Zahájit skenování <Ctrl-Vstup>"
-#original text: "Height (1/72 inch):"
-msgid "Height (1/72 inch):"
-msgstr "Výška (1/72 palce):"
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr "Zrušit skenování <Esc>"
-#original text: "Left offset (1/72 inch):"
-msgid "Left offset (1/72 inch):"
-msgstr "Levý posun (1/72 palce):"
+#. DESC_PREVIEW_ACQUIRE
+msgid "Acquire preview scan <Alt-p>"
+msgstr "Získat náhledový sken <Alt-p>"
-#original text: "Bottom offset (1/72 inch):"
-msgid "Bottom offset (1/72 inch):"
-msgstr "Spodní posun (1/72 palce):"
+#. DESC_PREVIEW_CANCEL
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "Zrušit náhledový sken <Alt-ESC>"
-#original text: "Printer gamma value:"
-msgid "Printer gamma value:"
-msgstr "Gama hodnota tiskárny:"
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+"uložit-<Ctrl-s>, zobrazit-<Ctrl-v>, fotokopie-<Ctrl-c>, fax-<Ctrl-f> nebo "
+"pošta-<Ctrl-m>"
-#original text: "Printer gamma red:"
-msgid "Printer gamma red:"
-msgstr "Červená gama tiskárny:"
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr "Zvolte typ zdrojového média"
-#original text: "Printer gamma green:"
-msgid "Printer gamma green:"
-msgstr "Zelená gama tiskárny:"
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr "Hodnota, která se přidá k čítači jména souboru po skenování"
-#original text: "Printer gamma blue:"
-msgid "Printer gamma blue:"
-msgstr "Modrá gama tiskárny:"
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr "Vyhledat jméno souboru"
-#original text: "JPEG image quality"
-msgid "JPEG image quality"
-msgstr "Kvalita JPEG obrázku"
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr "Jméno souboru pro skenovaný obrázek"
-#original text: "PNG image compression"
-msgid "PNG image compression"
-msgstr "Komprese PNG obrázku"
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr ""
+"Typ formátu obrázku, vhodná koncovka je ke jménu souboru doplněná automaticky"
-#original text: "TIFF multi bit image compression"
-msgid "TIFF multi bit image compression"
-msgstr "Komprese vícebitových TIFF obrázků"
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr "Zadání jména faxového projektu"
-#original text: "TIFF lineart image compression"
-msgid "TIFF lineart image compression"
-msgstr "Komprese jednobarevných TIFF obrázků"
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr "Zadání jména faxové strany"
-#original text: "Preview gamma:"
-msgid "Preview gamma:"
-msgstr "Gama náhledu:"
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr "Zadání telefonního čísla nebo adresy příjemce"
-#original text: "Preview gamma red:"
-msgid "Preview gamma red:"
-msgstr "Červená gama náhledu:"
+#. DESC_MAILPROJECT
+msgid "Enter name of mail project"
+msgstr "Zadání jména poštovního projektu"
-#original text: "Preview gamma green:"
-msgid "Preview gamma green:"
-msgstr "Zelená gama náhledu:"
+#. DESC_MAILIMAGENAME
+msgid "Enter new name for mail image"
+msgstr "Zadejte nové jméno obrázku do pošty"
-#original text: "Preview gamma blue:"
-msgid "Preview gamma blue:"
-msgstr "Modrá gama náhledu:"
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr "Zadejte e-mailovou adresu"
-#original text: "Helpfile viewer (HTML):"
-msgid "Helpfile viewer (HTML):"
-msgstr "Prohlížeč souboru nápovědy (HTML):"
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr "Zadejte předmět zprávy"
-#original text: "Command:"
-msgid "Command:"
-msgstr "Příkaz:"
+#. DESC_PRESET_AREA_NAME
+msgid "Enter new name for preset area"
+msgstr "Zadejte nové jméno pro předvolenou oblast"
-#original text: "Receiver option:"
-msgid "Receiver option:"
-msgstr "Volba příjemce:"
+#. DESC_PRINTER_SELECT
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "Volba definice tiskárny <Přeřaďovač-F1/F2/...>"
-#original text: "Postscriptfile option:"
-msgid "Postscriptfile option:"
-msgstr "Volby postscriptového souboru:"
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr "Nastavení rozlišení skenování"
-#original text: "Normal mode option:"
-msgid "Normal mode option:"
-msgstr "Volby normálního režimu:"
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "Nastavení rozlišení ve směru x"
-#original text: "Fine mode option:"
-msgid "Fine mode option:"
-msgstr "Volby režimu vysokého rozlišení:"
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "Nastavení rozlišení ve směru y"
-#original text: "Viewer (Postscript):"
-msgid "Viewer (Postscript):"
-msgstr "Prohlížeč (Postscript):"
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr "Nastavení faktoru změny velikosti"
-#original text: "Saving options"
-msgid "Saving options"
-msgstr "Volby zápisu"
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "Nastavení faktoru změny velikosti ve směru x"
-#original text: "Display options"
-msgid "Display options"
-msgstr "Volby zobrazování"
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "Nastavení faktoru změny velikosti ve směru y"
-#original text: "Fax options"
-msgid "Fax options"
-msgstr "Volby faxu"
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr "Nastavení počtu kopií"
-#original text: "Scan"
-msgid "Scan"
-msgstr "Skenování"
+#. DESC_NEGATIVE
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr "Negativ: Invertuje barvy pro skenování negativů <Přeřaďovač-n>"
-#original text: "Copy"
-msgid "Copy"
-msgstr "Kopírování"
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr "Nastavení gama hodnoty"
-#original text: "Fax"
-msgid "Fax"
-msgstr "Faxování"
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr "Nastavení gama hodnoty červené komponenty"
-#original text: "Setup"
-msgid "Setup"
-msgstr "Nastavení"
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr "Nastavení gama hodnoty zelené komponenty"
-#original text: "Show tooltips"
-msgid "Show tooltips"
-msgstr "Ukazovat tipy"
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr "Nastavení gama hodnoty modré komponenty"
-#original text: "Show preview"
-msgid "Show preview"
-msgstr "Ukazovat náhled"
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr "Nastavení jasu"
-#original text: "Show histogram"
-msgid "Show histogram"
-msgstr "Ukazovat histogram"
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr "Nastavení jasu červené komponenty"
-#original text: "Show standard options"
-msgid "Show standard options"
-msgstr "Ukazovat standardní volby"
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr "Nastavení jasu zelené komponenty"
-#original text: "Show advanced options"
-msgid "Show advanced options"
-msgstr "Ukazovat rozšířené volby"
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr "Nastavení jasu modré komponenty"
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr "Nastavení kontrastu"
-#original text: "Show resolution list"
-msgid "Show resolution list"
-msgstr "Ukazovat seznam rozlišení"
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr "Nastavení kontrastu červené komponenty"
-#original text: "Length unit"
-msgid "Length unit"
-msgstr "Délková jednotka"
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr "Nastavení kontrastu zelené komponenty"
-#original text: "millimeters"
-msgid "millimeters"
-msgstr "milimetry"
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr "Nastavení kontrastu modré komponenty"
-#original text: "centimeters"
-msgid "centimeters"
-msgstr "centimetry"
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "Nastavení prahu"
+
+#. DESC_RGB_DEFAULT
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"Implicitní RGB: Nastavení implicitních hodnot pro zpracování červené, zelené "
+"a modré <Přeřaďovač-b>:\n"
+" gama = 1.0\n"
+" jas = 0\n"
+" kontrast = 0"
+
+#. DESC_ENH_AUTO
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr "Automatické nastavení gamy, jasu a kontrastu <Přeřaďovač-e>"
+
+#. DESC_ENH_DEFAULT
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"Nastavení implicitních hodnot zpracování <Přeřaďovač-d>:\n"
+"gama = 1.0\n"
+"jas = 0\n"
+"kontrast = 0"
-#original text: "inches"
-msgid "inches"
-msgstr "palce"
+#. DESC_ENH_RESTORE
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "Obnovení hodnot zpracování z předvoleb <Přeřaďovač-r>"
-#original text: "Save device settings"
-msgid "Save device settings"
-msgstr "Zapsat nastavení zařízení"
+#. DESC_ENH_STORE
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr "Uložení aktivních hodnot zpracování do předvoleb <Přeřaďovač-m>"
-#original text: "Load device settings"
-msgid "Load device settings"
-msgstr "Načíst nastavení zařízení"
+#. DESC_HIST_INTENSITY
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "Zobrazit histogram intenzity/šedí <Alt-i>"
-#original text: "Xsane doc"
-msgid "Xsane doc"
-msgstr "Dokumentace Xsane"
+#. DESC_HIST_RED
+msgid "Show histogram of red component <Alt-r>"
+msgstr "Zobrazit histogram červené komponenty <Alt-r>"
-#original text: "Backend doc"
-msgid "Backend doc"
-msgstr "Dokumentace rozhraní zařízení"
+#. DESC_HIST_GREEN
+msgid "Show histogram of green component <Alt-g>"
+msgstr "Zobrazit histogram zelené komponenty <Alt-g>"
-#original text: "Available backends"
-msgid "Available backends"
-msgstr "Dospupná rozhraní zařízení"
+#. DESC_HIST_BLUE
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "Zobrazit histogram modré komponenty <Alt-b>"
-#original text: "Scantips"
-msgid "Scantips"
-msgstr "Skenovací tipy"
+#. DESC_HIST_PIXEL
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr "Režim zobrazování: zobrazit čárový histogram místo bodového <Alt-m>"
-#original text: "no compression"
-msgid "no compression"
-msgstr "žádná komprese"
+#. DESC_HIST_LOG
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "Zobrazit logaritmy počtů pixelů <Alt-l>"
-#original text: "CCITT 1D Huffman compression"
-msgid "CCITT 1D Huffman compression"
-msgstr "Huffmanova komprese CCITT 1D"
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr "Volba definice ke změně"
-#original text: "CCITT Group 3 Fax compression"
-msgid "CCITT Group 3 Fax compression"
-msgstr "Komprese CCITT Group 3 Fax"
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr "Zadání jména pro výběr této definice"
-#original text: "CCITT Group 4 Fax compression"
-msgid "CCITT Group 4 Fax compression"
-msgstr "Komprese CCITT Group 4 Fax"
+#. DESC_PRINTER_COMMAND
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr ""
+"Zadání příkazu, který má být vyvolán v režimu kopírování (např. \"lpr\")"
-#original text: "JPEG DCT compression"
-msgid "JPEG DCT compression"
-msgstr "Komprese JPEG DCT"
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr "Zadání volby počtu kopií"
-#original text: "pack bits"
-msgid "pack bits"
-msgstr "bitové pakování"
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr ""
+"Rozlišení, ve kterém bude čárová grafika tisknuta a zapisována do postscriptu"
-#original text: "by ext"
-msgid "by ext"
-msgstr "podle přípony"
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr ""
+"Rozlišení, ve kterém budou obrázky v šedích tisknuty a zapisovány do "
+"postscriptu"
-#original text: "Saving image"
-msgid "Saving image"
-msgstr "Zapisuje se obrázek"
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr ""
+"Rozlišení, ve kterém budou obrázky v barvě tisknuty a zapisovány do "
+"postscriptu"
-#original text: "Saving fax image"
-msgid "Saving fax image"
-msgstr "Zapisuje se faxový obrázek"
+#. DESC_PRINTER_WIDTH
+msgid "Width of printable area"
+msgstr "Šířka tisknutelné plochy"
-#original text: "Converting data...."
-msgid "Converting data...."
-msgstr "Konvertují se data..."
+#. DESC_PRINTER_HEIGHT
+msgid "Height of printable area"
+msgstr "Výška tisknutelné plochy"
-#original text: "Converting to postscript"
-msgid "Converting to postscript"
-msgstr "Konvertuje se do Postscriptu"
+#. DESC_PRINTER_LEFTOFFSET
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr "Posun od levého okraje papíru do tisknutelné plochy"
-#original text: "Scanning"
-msgid "Scanning"
-msgstr "Skenuje se"
+#. DESC_PRINTER_BOTTOMOFFSET
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "Posun od spodního okraje papíru do tisknutelné plochy"
-#original text: "Receiving %s data for `%s'..."
-msgid "Receiving %s data for `%s'..."
-msgstr "Snímají se data typu %s pro `%s'..."
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr "Dodatečná gama hodnota pro fotokopii"
-#original text: "Receiving %s data for photocopy ..."
-msgid "Receiving %s data for photocopy ..."
-msgstr "Snímají se data typu %s pro fotokopii..."
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr "Dodatečná gama hodnota pro červenou komponentu pro fotokopii"
-#original text: "Receiving %s data for fax ..."
-msgid "Receiving %s data for fax ..."
-msgstr "Snímají se data typu %s pro fax..."
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr "Dodatečná gama hodnota pro zelenou komponentu pro fotokopii"
-#original text: "Receiving %s data for GIMP..."
-msgid "Receiving %s data for GIMP..."
-msgstr "Snímají se data typu %s pro GIMP..."
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr "Dodatečná gama hodnota pro modrou komponentu pro fotokopii"
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "Cesta k pomocnému adresáři"
-#original text: "Use XSane for SCANning, photoCOPYing, FAXing..."
-msgid "Use XSane for SCANning, photoCOPYing, FAXing..."
-msgstr "XSane slouží pro skenování, kopírování, faxování..."
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "Vyhledat pomocný adresář"
-#original text: "Browse for image filename"
-msgid "Browse for image filename"
-msgstr "Hledání jména souboru"
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr ""
+"Kvalita v procentech, je-li obrázek zapisován jako jpeg nebo tiff s jpeg "
+"kompresí"
-#original text: "Filename for scanned image"
-msgid "Filename for scanned image"
-msgstr "Jméno souboru pro skenovaný obrázek"
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr "Komprese, je-li obrázek zapisován jako png"
-#original text: "Filename extension and type of image format"
-msgid "Filename extension and type of image format"
-msgstr "Přípona jména souboru a typ obrázkového formátu"
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr "Minimální délka čítače ve jménu souboru"
-#original text: "Enter name of fax project"
-msgid "Enter name of fax project"
-msgstr "Zadání jméno faxového projektu"
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "Typ komprese, je-li obrázek zapisován jako 16bitový TIFF"
-#original text: "Enter new name for faxpage"
-msgid "Enter new name for faxpage"
-msgstr "Zadání jména faxové strany"
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "Typ komprese, je-li obrázek zapisován jako 8bitový TIFF"
-#original text: "Enter receiver phone number or address"
-msgid "Enter receiver phone number or address"
-msgstr "Zadání telefonního čísla nebo adresy příjemce"
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "Typ komprese, je-li obrázek zapisován jako TIFF čárová grafika"
-#original text: "Select printer definition"
-msgid "Select printer definition"
-msgstr "Volba definice tiskárny"
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr ""
+"Při skončení zapsat do standardního souboru předvolby závislé na zařízení"
-#original text: "Set scan resolution"
-msgid "Set scan resolution"
-msgstr "Nastavení rozlišení skenování"
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "Varování před přepsáním existujícího souboru"
-#original text: "Set zoomfactor"
-msgid "Set zoomfactor"
-msgstr "Nastavení faktoru změny velikosti"
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr ""
+"Je-li čítač souborů automaticky zvětšován, použitá čísla jsou přeskočena"
-#original text: "Set number of copies"
-msgid "Set number of copies"
-msgstr "Nastavení počtu kopií"
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr ""
+"Pošle-li skener obrázek s 16 bity/barvu, zapsat obrázek v 8 bitech/barvu"
-#original text: "Negative: Invert colors for scanning negatives\n" "e.g. swap black and white"
-msgid "Negative: Invert colors for scanning negatives\n" "e.g. swap black and white"
-msgstr "Negativ: Invertuje barvy pro skenování negativů\n" "např. přehodá černou a bílou"
+#. DESC_PSFILE_WIDTH
+msgid "Width of paper for postscript files"
+msgstr "Šířka papíru pro postscriptové soubory"
-#original text: "Set gamma value"
-msgid "Set gamma value"
-msgstr "Nastavení gama hodnoty"
+#. DESC_PSFILE_HEIGHT
+msgid "Height of paper for postscript files"
+msgstr "Výška papíru pro postscriptové soubory"
-#original text: "Set gamma value for red component"
-msgid "Set gamma value for red component"
-msgstr "Nastavení gama hodnoty červené komponenty"
+#. DESC_PSFILE_LEFTOFFSET
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Posun od levého okraje papíru do tisknutelné plochy pro postscriptové soubory"
-#original text: "Set gamma value for green component"
-msgid "Set gamma value for green component"
-msgstr "Nastavení gama hodnoty zelené komponenty"
+#. DESC_PSFILE_BOTTOMOFFSET
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Posun od spodního okraje papíru do tisknutelné plochy pro postscriptové "
+"soubory"
-#original text: "Set gamma value for blue component"
-msgid "Set gamma value for blue component"
-msgstr "Nastavení gama hodnoty modré komponenty"
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr ""
+"Užití pevné velikosti hlavního okna nebo okna s posuvníky a proměnnou "
+"velikostí"
-#original text: "Set brightness"
-msgid "Set brightness"
-msgstr "Nastavení jasu"
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr "Zakázat gama náhledu, běží-li XSane jako gimp modul"
-#original text: "Set brightness for red component"
-msgid "Set brightness for red component"
-msgstr "Nastavení jasu červené komponenty"
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr "Použití vlastní barevné mapy náhledu, je-li obrazová hloubka 8"
-#original text: "Set brightness for green component"
-msgid "Set brightness for green component"
-msgstr "Nastavení jasu zelené komponenty"
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr "Hodnota, kterou se násobí rozlišení náhledu"
-#original text: "Set brightness for blue component"
-msgid "Set brightness for blue component"
-msgstr "Nastavení jasu modré komponenty"
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr "Nastavení gama korekce pro náhledový obrázek"
-#original text: "Set contrast"
-msgid "Set contrast"
-msgstr "Nastavení kontrastu"
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr "Nastavení gama korekce pro červenou komponentu náhledového obrázku"
-#original text: "Set contrast for red component"
-msgid "Set contrast for red component"
-msgstr "Nastavení kontrastu červené komponenty"
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr "Nastavení gama korekce pro zelenou komponentu náhledového obrázku"
-#original text: "Set contrast for green component"
-msgid "Set contrast for green component"
-msgstr "Nastavení kontrastu zelené komponenty"
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr "Nastavení gama korekce pro modrou komponentu náhledového obrázku"
-#original text: "Set contrast for blue component"
-msgid "Set contrast for blue component"
-msgstr "Nastavení kontrastu modré komponenty"
+#. DESC_LINEART_MODE
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "Definuje způsob, kterým má XSane pracovat s volbou prahu"
-#original text: "RGB default: Set enhancement values for red, green and blue to default values:\n" " gamma = 1.0\n" " brightness = 0\n" " contrast = 0"
-msgid "RGB default: Set enhancement values for red, green and blue to default values:\n" " gamma = 1.0\n" " brightness = 0\n" " contrast = 0"
-msgstr "Implicitní RGB: Nastavení hodnot pro zpracování červené, zelené a modré:\n" " gama = 1.0\n" " jas = 0\n" " kontrast = 0"
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr ""
+"Zadání skenovacího režimu šedí. Tento režim je použit pro náhledový sken "
+"čárové grafiky, je-li zapnut převod z šedí do čárové grafiky"
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "Minimální hodnota prahu v %"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "Maximální hodnota prahu v %"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Činitel, který nastaví shodný rozsah prahů XSane a rozsah prahů skeneru"
-#original text: "Autoadjust gamma, brightness and contrast in dependance of selected area"
-msgid "Autoadjust gamma, brightness and contrast in dependance of selected area"
-msgstr "Automatické nastavení gamy, jasu a kontrastu v závislosti na vybrané oblasti"
+#. DESC_PREVIEW_THRESHOLD_OFF
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr "Posun, který nastaví shodný rozsah prahů XSane a rozsah prahů skeneru"
-#original text: "Set default enhancement values:\n" "gamma = 1.0\n" "brightness = 0\n" "contrast = 0"
-msgid "Set default enhancement values:\n" "gamma = 1.0\n" "brightness = 0\n" "contrast = 0"
-msgstr "Nastavení implicitních hodnot zpracování:\n" "gama = 1.0\n" "jas = 0\n" "kontrast = 0"
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+"Výběr skenovacího zdroje pro automatický podavač dokumentů. Je-li zvolen, "
+"XSane skenuje, dokud nenastane stav \"došel papír\" nebo chyba."
-#original text: "Restore enhancement values from preferences"
-msgid "Restore enhancement values from preferences"
-msgstr "Obnovit hodnoty zpracování z předvoleb"
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr ""
+"rozměry čtverce, který je použit ke zprůměrování barvy pro barevnou pipetu"
-#original text: "Store active enhancement values to preferences"
-msgid "Store active enhancement values to preferences"
-msgstr "Uložit hodnoty zpracování z předvoleb"
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr ""
+"Nastavení příkazu k zobrazení souborů nápovědy, musí být html prohlížeč!"
-#original text: "Show histogram of intensity/gray"
-msgid "Show histogram of intensity/gray"
-msgstr "Zobrazit histogram intenzity / šedi"
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr "Je-li tlačítko automatické úpravy stisknuto, změní gama hodnotu"
-#original text: "Show histogram of red component"
-msgid "Show histogram of red component"
-msgstr "Zobrazit histogram červené komponenty"
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr "Po naskenování náhledu vybere skenovací oblast"
-#original text: "Show histogram of green component"
-msgid "Show histogram of green component"
-msgstr "Zobrazit histogram zelené komponenty"
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr "Po naskenování náhledu provede barevnou korekci"
-#original text: "Show histogram of blue component"
-msgid "Show histogram of blue component"
-msgstr "Zobrazit histogram modré komponenty"
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr "Nastavení příkazu prováděného ve faxovém režimu"
-#original text: "Display histogram with lines instead of pixels"
-msgid "Display histogram with lines instead of pixels"
-msgstr "Zoprazit čárový histogram místo plošného"
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr "Nastavení volby určující příjemce"
-#original text: "Show logarithm of pixelcount"
-msgid "Show logarithm of pixelcount"
-msgstr "Zobrazit logaritmy počtů pixelů"
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr "Nastavení volby k zadání postscriptových souborů"
-#original text: "Select definition to change"
-msgid "Select definition to change"
-msgstr "Volba definice ke změně"
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr "Nastavení volby k určení normálního režimu (nízké rozlišení)"
-#original text: "Define a name for the selection of this definition"
-msgid "Define a name for the selection of this definition"
-msgstr "Zadání jména pro výběr této definice"
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr "Nastavení volby k určení kvalitního režimu (velké rozlišení)"
-#original text: "Enter command to be executed in copy mode (e.g. \"lpr -\")"
-msgid "Enter command to be executed in copy mode (e.g. \"lpr -\")"
-msgstr "Zadání příkazu, který má být vyvolán v režimu kopírování (např. \"lpr -\")"
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr "Nastavení příkazu k zobrazení faxu"
-#original text: "Enter option for copy numbers"
-msgid "Enter option for copy numbers"
-msgstr "Zadání volby počtu kopií"
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr ""
+"Užití vysokého svislého rozlišení při odesílání faxu (196 dpi namísto 98 dpi)"
-#original text: "Resolution with which images are printed and saved in postscript"
-msgid "Resolution with which images are printed and saved in postscript"
-msgstr "Rozlišení, ve kterém budou obrázky tisknuty a zapisovány do postscriptu"
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr "IP adresa nebo doména SMTP serveru"
-#original text: "Width of printable area in 1/72 inch"
-msgid "Width of printable area in 1/72 inch"
-msgstr "Šířka tisknutelné plochy v dvaasedmdesátinách palce"
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr "port pro spojení se SMTP serverem"
-#original text: "Height of printable area in 1/72 inch"
-msgid "Height of printable area in 1/72 inch"
-msgstr "Výška tisknutelné plochy v dvaasedmdesátinách palce"
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr "zadejte svou e-mailovou adresu"
-#original text: "Left offset from the edge of the paper to the printable area in 1/72 inch"
-msgid "Left offset from the edge of the paper to the printable area in 1/72 inch"
-msgstr "Posun od levého okraje papíru do tisknutelné plochy v dvaasedmdesátinách palce"
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr "zadejte svou e-mailovou adresu pro odpovědi"
-#original text: "Bottom offset from the edge of the paper to the printable area in 1/72 inch"
-msgid "Bottom offset from the edge of the paper to the printable area in 1/72 inch"
-msgstr "Posun od spodního okraje papíru do tisknutelné plochy v dvaasedmdesátinách palce"
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr "Authentifikace na POP3 serveru před odesláním mailu"
-#original text: "Additional gamma value for photocopy"
-msgid "Additional gamma value for photocopy"
-msgstr "Dodatečná gama hodnota pro fotokopii"
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr "IP adresa nebo jméno doména POP3 serveru"
-#original text: "Additional gamma value for red component for photocopy"
-msgid "Additional gamma value for red component for photocopy"
-msgstr "Dodatečná gama hodnota pro červenou komponentu pro fotokopii"
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr "port pro připojení k POP3 serveru"
-#original text: "Additional gamma value for green component for photocopy"
-msgid "Additional gamma value for green component for photocopy"
-msgstr "Dodatečná gama hodnota pro zelenou komponentu pro fotokopii"
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr "uživatelské jméno pro POP3 server"
-#original text: "Additional gamma value for blue component for photocopy"
-msgid "Additional gamma value for blue component for photocopy"
-msgstr "Dodatečná gama hodnota pro modrou komponentu pro fotokopii"
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr "heslo pro POP3 server"
-#original text: "Quality in percent if image is saved as jpeg or tiff with jpeg compression"
-msgid "Quality in percent if image is saved as jpeg or tiff with jpeg compression"
-msgstr "Kvalita v procentech, je-li obrázek zapisován jako jpeg nebo tiff s jpeg kompresí"
+#. DESC_MAIL_VIEWER
+msgid "Enter command to be executed to view a mail image"
+msgstr "Zadání příkazu, který má být vyvolán při zobrazení obrázku v mailu"
-#original text: "Compression if image is saved as png"
-msgid "Compression if image is saved as png"
-msgstr "Typ komprese, je-li obrázek zapisován jako png"
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr "Mail je posílán v režimu html, obrázky jsou zobrazovány přímo"
-#original text: "Compression type if multi bit image is saved as tiff"
-msgid "Compression type if multi bit image is saved as tiff"
-msgstr "Typ komprese, je-li obrázek zapisován jako vícebitový TIFF"
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr "Zadejte příkaz pro spuštění ocr programu"
-#original text: "Compression type if lineart image is saved as tiff"
-msgid "Compression type if lineart image is saved as tiff"
-msgstr "Typ komprese, je-li obrázek zapisován jako jednobarevný TIFF"
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr "Zadejte volbu ocr programu pro zadání vstupního souboru"
-#original text: "Warn before overwriting an existing file"
-msgid "Warn before overwriting an existing file"
-msgstr "Varování před přepsáním existujícího souboru"
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr "Zadejte volbu ocr programu pro zadání výstupního souboru"
-#original text: "If the filename is of the form \"name-001.ext\" " "(where the number of digits is free) " "the number is increased after a scan is finished"
-msgid "If the filename is of the form \"name-001.ext\" " "(where the number of digits is free) " "the number is increased after a scan is finished"
-msgstr "Je-li jméno souboru ve tvaru \"jméno-001.příp\" (počet číslic je libovolný), číslo je o skenování zvětšeno"
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr "čtení"
-#original text: "If filename counter is automatically increased, used numbers are skipped"
-msgid "If filename counter is automatically increased, used numbers are skipped"
-msgstr "Je-li čítač souborů automaticky zvětšován, použitá čísla jsou přeskočena"
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr "zápis"
-#original text: "Use fixed main window size or scrolled, resizable main window"
-msgid "Use fixed main window size or scrolled, resizable main window"
-msgstr "Užití pevné velikosti hlavního okna nebo okna s posuvníky a proměnnou velikostí"
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr "spuštění"
-#original text: "Preserve preview image for next program start"
-msgid "Preserve preview image for next program start"
-msgstr "Zachování náhledu pro příští spuštění programu"
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr "Nasátí bílého bodu"
-#original text: "Use an own colormap for preview if display depth is 8 bpp"
-msgid "Use an own colormap for preview if display depth is 8 bpp"
-msgstr "Použití vlastní barevné mapy náhledu, je-li obrazová hloubka 8"
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr "Nasátí šedého bodu"
-#original text: "Set gamma correction value for preview image"
-msgid "Set gamma correction value for preview image"
-msgstr "Nastavení gama korekce pro náhledová obrázek"
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr "Nasátí černého bodu"
-#original text: "Set gamma correction value for red component of preview image"
-msgid "Set gamma correction value for red component of preview image"
-msgstr "Nastavení gama korekce pro červenou komponentu náhledového obrázku"
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr "Užití plné skenovací plochy"
-#original text: "Set gamma correction value for green component of preview image"
-msgid "Set gamma correction value for green component of preview image"
-msgstr "Nastavení gama korekce pro zelenou komponentu náhledového obrázku"
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr "Vzdálení o 20 %"
-#original text: "Set gamma correction value for blue component of preview image"
-msgid "Set gamma correction value for blue component of preview image"
-msgstr "Nastavení gama korekce pro modrou komponentu náhledového obrázku"
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr "Přiblížení zvolenou oblast"
-#original text: "Enter command to be executed to display helpfiles, must be a html-viewer!"
-msgid "Enter command to be executed to display helpfiles, must be a html-viewer!"
-msgstr "Nastevení příkazu k zobrazení souborů nápovědy, musí být html prohlížeč!"
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr "Vrácení posledního přiblížení"
-#original text: "Enter command to be executed in fax mode"
-msgid "Enter command to be executed in fax mode"
-msgstr "Nastevení příkazu prováděného ve faxovém režimu"
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr "Volba viditelné oblasti"
-#original text: "Enter option to specify receiver"
-msgid "Enter option to specify receiver"
-msgstr "Nastevení volby určující příjemce"
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr "Automatický výběr skenovací plochy"
-#original text: "Enter option to specify postscript files following"
-msgid "Enter option to specify postscript files following"
-msgstr "Nastevení volby k zadání postscriptových souborů"
+#. DESC_DELETE_IMAGES
+msgid "Delete preview image cache"
+msgstr "Smazat paměť náhledu"
-#original text: "Enter option to specify normal mode (low resolution)"
-msgid "Enter option to specify normal mode (low resolution)"
-msgstr "Nastavení volby k určení normálního režimu (nízké rozlišení)"
+#. DESC_PRESET_AREA
+msgid "Preset area"
+msgstr "Předvolená oblast"
-#original text: "Enter option to specify fine mode (high resolution)"
-msgid "Enter option to specify fine mode (high resolution)"
-msgstr "Nastavení volby k určení kvalitního režimu (velké rozlišení)"
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr "Rotace náhledu a skenování"
-#original text: "Enter command to be executed to view a fax"
-msgid "Enter command to be executed to view a fax"
-msgstr "Nastavení příkazu k zobrazení faxu"
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr "Optické rozpoznávání znaků"
-#original text: "Use high vertical resolution (196 lpi instead of 98 lpi)"
-msgid "Use high vertical resolution (196 lpi instead of 98 lpi)"
-msgstr "Užití vysokého svislého rozlišení (196 dpi namísto 98 dpi)"
+#. DESC_VIEWER_CLONE
+msgid "Clone image"
+msgstr "Duplikovat obrázek"
-#original text: "Pick white point"
-msgid "Pick white point"
-msgstr "Nasátí bílého bodu"
+#. DESC_VIEWER_ROTATE90
+msgid "Rotate image 90 degree"
+msgstr "Rotovat obrázek o 90 stupňů"
-#original text: "Pick gray point"
-msgid "Pick gray point"
-msgstr "Nasátí šedého bodu"
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr "Rotovat obrázek o 180 stupňů"
-#original text: "Pick black point"
-msgid "Pick black point"
-msgstr "Nasátí černého bodu"
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr "Rotovat obrázek o 270 stupňů"
-#original text: "Use full scanarea"
-msgid "Use full scanarea"
-msgstr "Užití plné skenovací plochy"
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr "Zrcadlit obrázek kolem svislé osy"
-#original text: "Zoom 20% out"
-msgid "Zoom 20% out"
-msgstr "Vzdálení o 20 %"
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr "Zrcadlit obrázek kolem vodorovné osy"
-#original text: "Zoom into selected area"
-msgid "Zoom into selected area"
-msgstr "Přiblížení zvolenou oblast"
+#. DESC_VIEWER_ZOOM
+msgid "Zoom image"
+msgstr "Zvětšit obrázek"
-#original text: "Undo last zoom"
-msgid "Undo last zoom"
-msgstr "Vrácení posledního přiblížení"
+#. DESC_STORE_MEDIUM
+msgid "Store medium"
+msgstr "Uložit médium"
-#original text: "Select visible area"
-msgid "Select visible area"
-msgstr "Volba viditelné oblasti"
+#. DESC_DELETE_MEDIUM
+msgid "Delete active medium"
+msgstr "Smazat aktivní médium"
-#original text: "Failed to determine home directory:"
-msgid "Failed to determine home directory:"
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
msgstr "Selhalo určení domovského adresáře:"
-#original text: "Filename too long"
-msgid "Filename too long"
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "Selhala změna pracovního adresáře na"
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
msgstr "Jméno souboru je příliš dlouhé"
-#original text: "Failed to set value of option"
-msgid "Failed to set value of option"
+#. ERR_CREATE_TEMP_FILE
+msgid "Could not create temporary file"
+msgstr "Nelze vytvořit dočasný soubor"
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
msgstr "Selhalo nastavení hodnoty volby"
-#original text: "Failed to obtain value of option"
-msgid "Failed to obtain value of option"
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
msgstr "Selhalo získání hodnoty volby"
-#original text: "Error obtaining option count"
-msgid "Error obtaining option count"
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
msgstr "Selhalo získání počtu voleb"
-#original text: "Failed to open device"
-msgid "Failed to open device"
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
msgstr "Otevření zařízení selhalo"
-#original text: "no devices available"
-msgid "no devices available"
+#. ERR_NO_DEVICES
+msgid "no devices available"
msgstr "nejsou k dispozici žádná zařízení"
-#original text: "Error during read:"
-msgid "Error during read:"
+#. ERR_DURING_READ
+msgid "Error during read:"
msgstr "Chyba během čtení:"
-#original text: "Error during save:"
-msgid "Error during save:"
+#. ERR_DURING_SAVE
+msgid "Error during save:"
msgstr "Chyba během zápisu:"
-#original text: "Can't handle depth"
-msgid "Can't handle depth"
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
msgstr "Nelze zpracovat hloubku"
-#original text: "GIMP can't handle depth"
-msgid "GIMP can't handle depth"
-msgstr "GIMP neumí zpracovat hloubku"
+#. ERR_GIMP_BAD_DEPTH
+#, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP nepodporuje hloubku %d bitů/barvu"
-#original text: "Unknown file format for saving"
-msgid "Unknown file format for saving"
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
msgstr "Neznámý formát souboru pro zápis"
-#original text: "Failed to open"
-msgid "Failed to open"
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
msgstr "Otevření selhalo"
-#original text: "Failed to open pipe for executing printercommand"
-msgid "Failed to open pipe for executing printercommand"
+#. ERR_CREATE_SECURE_FILE
+msgid "Could not create secure file (may be a link does exist):"
+msgstr "Nelze vytvořit bezpečný soubor (možná, že existuje odkaz):"
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
msgstr "Otevření roury ke spuštění příkazu tiskárny selhalo"
-#original text: "Failed to execute printercommand:"
-msgid "Failed to execute printercommand:"
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
msgstr "Spuštění příkazu tiskárny selhalo"
-#original text: "Failed to start scanner:"
-msgid "Failed to start scanner:"
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
msgstr "Spuštění skeneru selhalo"
-#original text: "Failed to get parameters:"
-msgid "Failed to get parameters:"
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
msgstr "Získání parametrů selhalo:"
-#original text: "No output format given"
-msgid "No output format given"
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
msgstr "Nebyl zadán výstupní formát"
-#original text: "out of memory"
-msgid "out of memory"
+#. ERR_NO_MEM
+msgid "out of memory"
msgstr "nedostatek paměti"
-#original text: "LIBTIFF reports error"
-msgid "LIBTIFF reports error"
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr "Ovladač poslal více dat, než bylo definováno v parametrech"
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
msgstr "LIBTIFF hlásí chybu"
-#original text: "LIBPNG reports error"
-msgid "LIBPNG reports error"
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
msgstr "LIBPNG hlásí chybu"
-#original text: "unknown type"
-msgid "unknown type"
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
msgstr "neznámý typ"
-#original text: "unknown constraint type"
-msgid "unknown constraint type"
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
msgstr "neznámý požadovaný typ"
-#original text: "Failed to execute documentation viewer:"
-msgid "Failed to execute documentation viewer:"
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
msgstr "Spuštění prohlížeče dokumentace selhalo"
-#original text: "Failed to execute fax viewer:"
-msgid "Failed to execute fax viewer:"
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
msgstr "Spuštění faxového prohlížeče selhalo"
-#original text: "Failed to execute faxcommand:"
-msgid "Failed to execute faxcommand:"
+#. ERR_FAILED_EXEC_FAX_CMD
+msgid "Failed to execute fax command:"
msgstr "Spuštění faxového příkazu selhalo:"
-#original text: "bad frame format"
-msgid "bad frame format"
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+msgid "Failed to execute mail image viewer:"
+msgstr "Spuštění prohlížeče obrázků v poště selhalo"
+
+#. ERR_FAILED_EXEC_OCR_CMD
+msgid "Failed to execute ocr command:"
+msgstr "Spuštění ocr příkazu selhalo:"
+
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
msgstr "špatný formát rámce"
-#original text: "unable to set resolution"
-msgid "unable to set resolution"
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
msgstr "nepodařilo se nastavit rozlišení"
-#original text: "error"
-msgid "error"
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr "Soubor s hesly (%s) je nebezpečný, použijte práva x00\n"
+
+#. ERR_ERROR
+msgid "error"
msgstr "chyba"
-#original text: "Sane major version number mismatch!"
-msgid "Sane major version number mismatch!"
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
msgstr "Hlavní číslo verze Sane nesouhlasí!"
-#original text: "xsane major version ="
-msgid "xsane major version ="
-msgstr "hlavní číslo verze xsane ="
+#. ERR_XSANE_MAJOR_VERSION
+msgid "XSane major version ="
+msgstr "Hlavní číslo verze XSane ="
-#original text: "backend major version ="
-msgid "backend major version ="
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
msgstr "hlavní číslo verze ovladače ="
-#original text: "*** PROGRAM ABORTED ***"
-msgid "*** PROGRAM ABORTED ***"
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
msgstr "*** PROGRAM ZRUŠEN ***"
-#original text: "Failed to allocate image memory:"
-msgid "Failed to allocate image memory:"
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
msgstr "Selhalo získání paměti pro obrázek:"
-#original text: "Preview cannot handle bit depth"
-msgid "Preview cannot handle bit depth"
-msgstr "Náhled neumí obsloužit bitovou hloubku"
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr "Náhled nepodporuje bitovou hloubku"
-#original text: "GIMP support missing"
-msgid "GIMP support missing"
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
msgstr "Chybí podpora programu GIMP"
-#original text: "Filename counter overflow"
-msgid "Filename counter overflow"
-msgstr "Přetečení čítače jména souboru"
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr "Nelze vytvořit pracovní náhledové soubory"
-#original text: "warning: option has no value constraint"
-msgid "warning: option has no value constraint"
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr "Nelze vytvořit jména náhledových souborů"
+
+#. ERR_CREATE_FAX_PROJECT
+msgid "Could not create faxproject"
+msgstr "Nelze vytvořit faxový projekt"
+
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr "Podtečení čítače jména souboru"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
msgstr "varování: volba nezískala žádnou hodnotu"
-#original text: "Ok"
-msgid "Ok"
-msgstr "OK"
+#. WARN_XSANE_AS_ROOT
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+"Spouštíte XSane jako SUPERUŽIVATEL, což je velmi NEBEZPEČNÉ!\n"
+"\n"
+"Neposílejte chybová hlášení, budete-li mít problémy\n"
+"při běhu XSane pod superuživatelem:\n"
+"JSTE OSAMĚLÍ!"
-#original text: "Error"
-msgid "Error"
+#. ERR_HEADER_ERROR
+msgid "Error"
msgstr "Chyba"
-#original text: "Warning"
-msgid "Warning"
+#. ERR_HEADER_WARNING
+msgid "Warning"
msgstr "Varování"
-#original text: "Failed to create file:"
-msgid "Failed to create file:"
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "Informace"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
msgstr "Vytvoření souboru selhalo"
-#original text: "Error while loading device settings:"
-msgid "Error while loading device settings:"
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
msgstr "Chyba během čtení nastavení zařízení:"
-#original text: "is not a device-rc-file !!!"
-msgid "is not a device-rc-file !!!"
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
msgstr "není soubor-záznamu-zařízení!!!"
-#original text: "Failed to execute netscape!"
-msgid "Failed to execute netscape!"
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
msgstr "Spuštění Netscape selhalo!"
-#original text: "Send fax: no receiver defined"
-msgid "Send fax: no receiver defined"
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
msgstr "Odeslání faxu: není definován příjemce"
-#original text: "has been created for device"
-msgid "has been created for device"
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
msgstr "byl vytvořen pro zařízení"
-#original text: "you want to use it for device"
-msgid "you want to use it for device"
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
msgstr "má být použit pro zařízení"
-#original text: "this may cause problems!"
-msgid "this may cause problems!"
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
msgstr "to může způsobit problémy!"
-#original text: "Usage:"
-msgid "Usage:"
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr "Není zapsáno %d obrázků"
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "Soubor %s již existuje"
+
+#. ERR_FILE_NOT_EXISTS
+#, c-format
+msgid "File %s does not exist"
+msgstr "Soubor %s neexistuje"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, c-format
+msgid "File %s is not a postscript file"
+msgstr "Soubor %s není postscriptový soubor"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "Nepodporované %dbitové výstupní formáty: %s"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr "obrázek z prohlížeče není zapsán"
+
+#. TEXT_USAGE
+msgid "Usage:"
msgstr "Užití:"
-#original text: "[OPTION]... [DEVICE]"
-msgid "[OPTION]... [DEVICE]"
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
msgstr "[VOLBA]... [ZAŘÍZENÍ]"
-#original text: "Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\n-h, --help display this help message and exit\n-v, --version print version information\n\n-d, --device-settings file load device settings from file (without \".drc\")\n\n-s, --scan start with scan-mode active\n-c, --copy start with copy-mode active\n-f, --fax start with fax-mode active\n-n, --no-mode-selection disable menu for xsane mode selection\n\n-F, --Fixed fixed main window size (overwrite preferences value)\n-R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\n--display X11-display redirect output to X11-display\n--no-xshm do not use shared memory images\n--sync request a synchronous connection with the X11 server"
-msgid "Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\n-h, --help display this help message and exit\n-v, --version print version information\n\n-d, --device-settings file load device settings from file (without \".drc\")\n\n-s, --scan start with scan-mode active\n-c, --copy start with copy-mode active\n-f, --fax start with fax-mode active\n-n, --no-mode-selection disable menu for xsane mode selection\n\n-F, --Fixed fixed main window size (overwrite preferences value)\n-R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\n--display X11-display redirect output to X11-display\n--no-xshm do not use shared memory images\n--sync request a synchronous connection with the X11 server"
+#. TEXT_HELP
+#, fuzzy
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
msgstr ""
-"Spuštění grafického rozhraní pro přístup k SANE zarízením.\n"
+"Spuštění grafického rozhraní pro přístup k SANE zařízením.\n"
"(SANE = Scanner Access Now Easy - přístup ke skeneru je nyní snadný)\n"
"\n"
-"-h, --help vypíše tuto nápovědu a skončí\n"
-"-v, --version vypíše označení verze\n"
+"Formát [ZAŘÍZENÍ] je jméno_ovladače:jméno_zařízení (např. "
+"umax:/dev/scanner).\n"
+"[VOLBA]... může být kombinací následujících položek:\n"
+" -h, --help vypíše tuto nápovědu a skončí\n"
+" -v, --version vypíše označení verze\n"
+" -l, --license vypíše informace o licenci\n"
"\n"
-"-d, --device-settings soubor načte nastavení zařízení ze souboru (bez \".drc\")\n"
+" -d, --device-settings soubor načte nastavení zařízení ze souboru (bez "
+"\".drc\")\n"
"\n"
-"-s, --scan spustí se s aktivním režimem skenování\n"
-"-c, --copy spustí se s aktivním režimem kopírování\n"
-"-f, --fax spustí se s aktivním režimem faxování\n"
-"-n, --no-mode-selection zakáže menu volby xsane režimu\n"
+" -s, --save spustí se v režimu zípisu\n"
+" -V, --viewer spustí se v režimu prohlížeče (implicitní)\n"
+" -c, --copy spustí se v režimu kopírování\n"
+" -f, --fax spustí se v režimu faxování\n"
+" -m, --mail spustí se v režimu pošty\n"
+" -n, --no-mode-selection zakáže menu volby režimu XSane\n"
"\n"
-"-F, --Fixed použije pevnou velikost hlavního okna\n"
-" (přepíše hodnotu předvolby)\n"
-"-R, --Resizeable použije hlavní okno s posuvníky a proměnnou velikostí\n"
-" (přepíše hodnotu předvolby)\n"
+" -F, --Fixed použije pevnou velikost hlavního okna\n"
+" (přepíše hodnotu předvolby)\n"
+" -R, --Resizeable použije hlavní okno s posuvníky a proměnnou "
+"velikostí\n"
+" (přepíše hodnotu předvolby)\n"
+" -p, --print-filenames vypíše jména souborů s vytvořenými obrázky\n"
+" -N, --force-filename name vnutí jméno souboru a vypne volbu jména "
+"souboru\n"
"\n"
-"--display X11-displej přesměruje výstup na X11-displej\n"
-"--no-xshm nepoužije sdílené paměťové obrazy\n"
-"--sync vyžádá synchronní spojení s X11 serverem"
+" --display X11-displej přesměruje výstup na X11-displej\n"
+" --no-xshm nepoužije sdílené paměťové obrazy\n"
+" --sync vyžádá synchronní spojení s X11 serverem"
-#original text: "Front-end to the SANE interface"
-msgid "Front-end to the SANE interface"
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
msgstr "Uživatelský program k rozhraní SANE"
-#original text: "This function provides access to scanners and other image acquisition devices through the SANE (Scanner Access Now Easy) interface."
-msgid "This function provides access to scanners and other image acquisition devices through the SANE (Scanner Access Now Easy) interface."
-msgstr "Tato funkce nabízí přes rozhrani SANE (Scanner Access Now Easy - přístup ke skeneru je nyní snadný) přístup ke skenerům a jiným zařízením ke snímání obrázků"
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+"Tato funkce nabízí přes rozhrani SANE (Scanner Access Now Easy - přístup ke "
+"skeneru je nyní snadný) přístup ke skenerům a jiným zařízením ke snímání "
+"obrázků"
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr "<Toolbox>/File/Acquire/XSane: Dialog zařízení..."
+
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
+msgstr "<Toolbox>/File/Acquire/XSane: "
+
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr "<Toolbox>/Xtns/XSane/Dialog zařízení..."
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
+msgstr "<Toolbox>/Xtns/XSane/"
+
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr "plná velikost"
-#original text: "<Toolbox>/File/Acquire/XSane: "
-msgid "<Toolbox>/File/Acquire/XSane: "
-msgstr "<Toolbox>/Soubor/Získat/XSane: "
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr "ČSN A3 stoj."
-#original text: "<Toolbox>/Xtns/XSane/"
-msgid "<Toolbox>/Xtns/XSane/"
-msgstr "<Toolbox>/Rozš./XSane/"
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr "ČSN A3 lež."
-#original text: "<Toolbox>/File/Acquire/XSane: Device dialog..."
-msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
-msgstr "<Toolbox>/Soubor/Získat/XSane: Dialog zařízení..."
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr "ČSN A4 stoj."
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr "ČSN A4 lež."
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr "ČSN A5 stoj."
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr "ČSN A5 lež."
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
+msgstr "13cm × 18cm"
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
+msgstr "18cm × 13cm"
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
+msgstr "10cm × 15cm"
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
+msgstr "15cm × 10cm"
+
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr "9cm × 13cm"
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr "13cm × 9cm"
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr "legal stoj."
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr "legal lež."
+
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr "letter stoj."
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr "letter lež."
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr "Plný rozsah"
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr "Diapozitiv"
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+msgid "Standard negative"
+msgstr "Standardní negativní"
-#original text: "<Toolbox>/Xtns/XSane/Device dialog..."
-msgid "<Toolbox>/Xtns/XSane/Device dialog..."
-msgstr "<Toolbox>/Rozš./XSane/Dialog zařízení..."
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr "Agfa negativní"
-#original text: "flatbed scanner"
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr "Agfa negativní XRG 200-4"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr "Agfa negativní HDC 100"
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+msgid "Fuji negative"
+msgstr "Fuji negativní"
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr "Kodak negativní"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+msgid "Konica negative"
+msgstr "Konica negativní"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+msgid "Konica negative VX 100"
+msgstr "Konica negativní VX 100"
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr "Rossmann negativní HR 100"
+
+#. Sane backend messages
msgid "flatbed scanner"
msgstr "plošný skener"
-#original text: "frame grabber"
msgid "frame grabber"
msgstr "snímač políček"
-#original text: "handheld scanner"
msgid "handheld scanner"
msgstr "ruční ckener"
-#original text: "still camera"
msgid "still camera"
msgstr "digitální fotoaparát"
-#original text: "video camera"
msgid "video camera"
msgstr "videokamera"
-#original text: "virtual device"
msgid "virtual device"
msgstr "virtuální zařízení"
-
-#original text: "Success"
msgid "Success"
msgstr "Úspěch"
-#original text: "Operation not supported"
msgid "Operation not supported"
msgstr "Operace není podporovaná"
-#original text: "Operation was cancelled"
msgid "Operation was cancelled"
msgstr "Operace byla zrušena"
-#original text: "Device busy"
msgid "Device busy"
msgstr "Zařízení je v používání"
-#original text: "Invalid argument"
msgid "Invalid argument"
msgstr "Neplatný argument"
-#original text: "End of file reached"
msgid "End of file reached"
msgstr "Dosažen konec souboru"
-#original text: "Document feeder jammed"
msgid "Document feeder jammed"
msgstr "Zmačkaný papír v podavači"
-#original text: "Document feeder out of documents"
msgid "Document feeder out of documents"
msgstr "V podavači došly dokumenty"
-#original text: "Scanner cover is open"
msgid "Scanner cover is open"
msgstr "Víko skeneru je otevřeno"
-#original text: "Error during device I/O"
msgid "Error during device I/O"
msgstr "Chyba během V/V zařízení"
-#original text: "Out of memory"
msgid "Out of memory"
msgstr "Nedostatek paměti"
-#original text: "Access to resource has been denied"
msgid "Access to resource has been denied"
msgstr "Přístup ke zdroji byl odmítnut"
+#~ msgid ""
+#~ "Use XSane for: SCANning-<Ctrl-s> photoCOPYing-<Ctrl-c> FAXing-<Ctrl-f>"
+#~ msgstr ""
+#~ "XSane slouží pro: SKENování-<Ctrl-s> KOPírování-<Ctrl-c> FAXování-<Ctrl-f>"
+
+#~ msgid "Width of paper for postscript"
+#~ msgstr "Šířka papíru pro postscript"
+
+#~ msgid "Height of paper for postscript"
+#~ msgstr "Výška papíru pro postscript"
+
+#~ msgid "Left offset for postscript"
+#~ msgstr "Levý posun pro postscript"
+
+#~ msgid "Bottom offset for postscript"
+#~ msgstr "Spodní posun pro postscript"
+
+#~ msgid "Copy options"
+#~ msgstr "Volby kopírování"
+
+#~ msgid "Saving options"
+#~ msgstr "Volby zápisu"
+
+#~ msgid "Fax options"
+#~ msgstr "Volby faxu"
+
+#~ msgid "Reduce scan area"
+#~ msgstr "Redukce skenovací plochy"
diff --git a/po/cs.po.in b/po/cs.po.in
deleted file mode 100644
index 46d8dbd..0000000
--- a/po/cs.po.in
+++ /dev/null
@@ -1,1239 +0,0 @@
-#include "../frontend/xsane-text.h"
-#define _(x) x
-
-#nls translation file for xsane
-#language: czech (cs)
-#by Stanislav Brabec <utx@k332.feld.cvut.cz>
-
-#original text: "About"
-msgid WINDOW_ABOUT
-msgstr "O programu"
-
-#original text: "authorization"
-msgid WINDOW_AUTHORIZE
-msgstr "autorizace"
-
-#original text: "info"
-msgid WINDOW_INFO
-msgstr "informace"
-
-#original text: "batch scan"
-msgid WINDOW_BATCH_SCAN
-msgstr "dávkové skenování"
-
-#original text: "fax project"
-msgid WINDOW_FAX_PROJECT
-msgstr "faxový projekt"
-
-#original text: "rename fax page"
-msgid WINDOW_FAX_RENAME
-msgstr "přejmenovat faxovou stránku"
-
-#original text: "setup"
-msgid WINDOW_SETUP
-msgstr "nastavení"
-
-#original text: "Histogram"
-msgid WINDOW_HISTOGRAM
-msgstr "Histogram"
-
-#original text: "Standard options"
-msgid WINDOW_STANDARD_OPTIONS
-msgstr "Standardní volby"
-
-#original text: "Advanced options"
-msgid WINDOW_ADVANCED_OPTIONS
-msgstr "Rozšířené volby"
-
-#original text: "device selection"
-msgid WINDOW_DEVICE_SELECTION
-msgstr "výběr zařízení"
-
-#original text: "Preview"
-msgid WINDOW_PREVIEW
-msgstr "Náhled"
-
-#original text: "output filename"
-msgid WINDOW_OUTPUT_FILENAME
-msgstr "jméno výstupního souboru"
-
-#original text: "save device settings"
-msgid WINDOW_SAVE_SETTINGS
-msgstr "zapsat nastavení zařízení"
-
-#original text: "load device settings"
-msgid WINDOW_LOAD_SETTINGS
-msgstr "načíst nastavení zařízení"
-
-#original text: "File"
-msgid MENU_FILE
-msgstr "Soubor"
-
-#original text: "Preferences"
-msgid MENU_PREFERENCES
-msgstr "Nastavení"
-
-#original text: "View"
-msgid MENU_VIEW
-msgstr "Pohled"
-
-#original text: "Help"
-msgid MENU_HELP
-msgstr "Nápověda"
-
-#original text: "About"
-msgid MENU_ITEM_ABOUT
-msgstr "O programu"
-
-#original text: "Info"
-msgid MENU_ITEM_INFO
-msgstr "Informace"
-
-#original text: "Exit"
-msgid MENU_ITEM_EXIT
-msgstr "Konec"
-
-#original text: "Raw image"
-msgid FRAME_RAW_IMAGE
-msgstr "Původní obrázek"
-
-#original text: "Enhanced image"
-msgid FRAME_ENHANCED_IMAGE
-msgstr "Zpracovaný obrázek"
-
-#original text: "Start"
-msgid BUTTON_START
-msgstr "Start"
-
-#original text: "Ok"
-msgid BUTTON_OK
-msgstr "OK"
-
-#original text: "Apply"
-msgid BUTTON_APPLY
-msgstr "Použít"
-
-#original text: "Cancel"
-msgid BUTTON_CANCEL
-msgstr "Zrušit"
-
-#original text: "Close"
-msgid BUTTON_CLOSE
-msgstr "Zavřít"
-
-#original text: "Overwrite"
-msgid BUTTON_OVERWRITE
-msgstr "Přepsat"
-
-#original text: "Add area"
-msgid BUTTON_ADD_AREA
-msgstr "Přidat oblast"
-
-#original text: "Delete"
-msgid BUTTON_DELETE
-msgstr "Smazat"
-
-#original text: "Show"
-msgid BUTTON_SHOW
-msgstr "Ukázat"
-
-#original text: "Rename"
-msgid BUTTON_RENAME
-msgstr "Přejmenovat"
-
-#original text: "Send project"
-msgid BUTTON_SEND_PROJECT
-msgstr "Odeslat projekt"
-
-#original text: "Delete project"
-msgid BUTTON_DELETE_PROJECT
-msgstr "Smazat projekt"
-
-#original text: "Add printer"
-msgid BUTTON_ADD_PRINTER
-msgstr "Přidat tiskárnu"
-
-#original text: "Delete printer"
-msgid BUTTON_DELETE_PRINTER
-msgstr "Odebrat tiskárnu"
-
-#original text: "Acquire Preview"
-msgid BUTTON_PREVIEW_ACQUIRE
-msgstr "Sejmout náhled"
-
-#original text: "Cancel Preview"
-msgid BUTTON_PREVIEW_CANCEL
-msgstr "Zrušit náhled"
-
-#original text: "Fine mode"
-msgid RADIO_BUTTON_FINE_MODE
-msgstr "Nalézt režim"
-
-#original text: "Overwrite warning"
-msgid RADIO_BUTTON_OVERWRITE_WARNING
-msgstr "Varování o přepsání"
-
-#original text: "Increase filename counter"
-msgid RADIO_BUTTON_INCREASE_COUNTER
-msgstr "Zvýšit čítač jména souboru"
-
-#original text: "Skip existing numbers"
-msgid RADIO_BUTTON_SKIP_EXISTING_NRS
-msgstr "Přeskočit existující čísla"
-
-#original text: "Main window size fixed"
-msgid RADIO_BUTTON_WINDOW_FIXED
-msgstr "Pevná velikost hlavního okna"
-
-#original text: "Preserve preview image"
-msgid RADIO_BUTTON_PRESERVE_PRVIEW
-msgstr "Zachovat náhledový obrázek"
-
-#original text: "Use private colormap"
-msgid RADIO_BUTTON_PRIVATE_COLORMAP
-msgstr "Použít vlastní barevnou mapu"
-
-#original text: "Available devices:"
-msgid TEXT_AVAILABLE_DEVICES
-msgstr "Dostupná zařízení:"
-
-#original text: "XSane options"
-msgid TEXT_XSANE_OPTIONS
-msgstr "Předvolby XSane"
-
-#original text: "XSane mode"
-msgid TEXT_XSANE_MODE
-msgstr "Režim XSane"
-
-#original text: "Scanner and backend:"
-msgid TEXT_SCANNER_BACKEND
-msgstr "Skener a ovladač:"
-
-#original text: "Vendor:"
-msgid TEXT_VENDOR
-msgstr "Výrobce:"
-
-#original text: "Model:"
-msgid TEXT_MODEL
-msgstr "Model:"
-
-#original text: "Type:"
-msgid TEXT_TYPE
-msgstr "Typ:"
-
-#original text: "Device:"
-msgid TEXT_DEVICE
-msgstr "Zařízení:"
-
-#original text: "Loaded backend:"
-msgid TEXT_LOADED_BACKEND
-msgstr "Zavedený ovladač:"
-
-#original text: "Sane version:"
-msgid TEXT_SANE_VERSION
-msgstr "Verze Sane:"
-
-#original text: "Recent values:"
-msgid TEXT_RECENT_VALUES
-msgstr "Současné hodnoty:"
-
-#original text: "Gamma correction by:"
-msgid TEXT_GAMMA_CORR_BY
-msgstr "Gama korekce provádí:"
-
-#original text: "scanner"
-msgid TEXT_SCANNER
-msgstr "skener"
-
-#original text: "software (xsane)"
-msgid TEXT_SOFTWARE_XSANE
-msgstr "software (xsane)"
-
-#original text: "none"
-msgid TEXT_NONE
-msgstr "nikdo"
-
-#original text: "Gamma input depth:"
-msgid TEXT_GAMMA_INPUT_DEPTH
-msgstr "Vstupní hloubka gama:"
-
-#original text: "Gamma output depth:"
-msgid TEXT_GAMMA_OUTPUT_DEPTH
-msgstr "Výstupní hloubka gama:"
-
-#original text: "Scanner output depth:"
-msgid TEXT_SCANNER_OUTPUT_DEPTH
-msgstr "Výstupní hloubka skeneru:"
-
-#original text: "XSane output formats:"
-msgid TEXT_OUTPUT_FORMATS
-msgstr "Výstupní formáty xsane:"
-
-#original text: "8 bit output formats:"
-msgid TEXT_8BIT_FORMATS
-msgstr "8bitové výstupní formáty:"
-
-#original text: "16 bit output formats:"
-msgid TEXT_16BIT_FORMATS
-msgstr "16bitové výstupní formáty:"
-
-#original text: "Authorization required for"
-msgid TEXT_AUTHORIZATION_REQ
-msgstr "Je vyžadovaná autorizace"
-
-#original text: "Username :"
-msgid TEXT_USERNAME
-msgstr "Uživatel: "
-
-#original text: "Password :"
-msgid TEXT_PASSWORD
-msgstr "Heslo: "
-
-#original text: "Invalid parameters."
-msgid TEXT_INVALID_PARAMS
-msgstr "Neplatné parametry."
-
-#original text: "version:"
-msgid TEXT_VERSION
-msgstr "verze:"
-
-#original text: "package"
-msgid TEXT_PACKAGE
-msgstr "balík"
-
-#original text: "with GIMP support"
-msgid TEXT_WITH_GIMP_SUPPORT
-msgstr "s podporou programu GIMP"
-
-#original text: "without GIMP support"
-msgid TEXT_WITHOUT_GIMP_SUPPORT
-msgstr "bez podpory programu GIMP"
-
-#original text: "compiled with GIMP-"
-msgid TEXT_GIMP_VERSION
-msgstr "kompilováno s programem GIMP-"
-
-#original text: "unknown"
-msgid TEXT_UNKNOWN
-msgstr "neznámý"
-
-#original text: "Email:"
-msgid TEXT_EMAIL
-msgstr "E-mail:"
-
-#original text: "File:"
-msgid TEXT_FILE
-msgstr "Soubor:"
-
-#original text: "0x0: 0KB"
-msgid TEXT_INFO_BOX
-msgstr "0 × 0: 0 KB"
-
-#original text: "Printer selection:"
-msgid TEXT_SETUP_PRINTER_SEL
-msgstr "Výběr tiskárny:"
-
-#original text: "Name:"
-msgid TEXT_SETUP_PRINTER_NAME
-msgstr "Jméno:"
-
-#original text: "Command:"
-msgid TEXT_SETUP_PRINTER_CMD
-msgstr "Příkaz:"
-
-#original text: "Copy number option:"
-msgid TEXT_SETUP_COPY_NR_OPT
-msgstr "Volba počtu kopií:"
-
-#original text: "Resolution (dpi):"
-msgid TEXT_SETUP_PRINTER_RES
-msgstr "Rozlišení (dpi):"
-
-#original text: "Width (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_WIDTH
-msgstr "Šířka (1/72 palce):"
-
-#original text: "Height (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_HEIGHT
-msgstr "Výška (1/72 palce):"
-
-#original text: "Left offset (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_LEFT
-msgstr "Levý posun (1/72 palce):"
-
-#original text: "Bottom offset (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_BOTTOM
-msgstr "Spodní posun (1/72 palce):"
-
-#original text: "Printer gamma value:"
-msgid TEXT_SETUP_PRINTER_GAMMA
-msgstr "Gama hodnota tiskárny:"
-
-#original text: "Printer gamma red:"
-msgid TEXT_SETUP_PRINTER_GAMMA_RED
-msgstr "Červená gama tiskárny:"
-
-#original text: "Printer gamma green:"
-msgid TEXT_SETUP_PRINTER_GAMMA_GREEN
-msgstr "Zelená gama tiskárny:"
-
-#original text: "Printer gamma blue:"
-msgid TEXT_SETUP_PRINTER_GAMMA_BLUE
-msgstr "Modrá gama tiskárny:"
-
-#original text: "JPEG image quality"
-msgid TEXT_SETUP_JPEG_QUALITY
-msgstr "Kvalita JPEG obrázku"
-
-#original text: "PNG image compression"
-msgid TEXT_SETUP_PNG_COMPRESSION
-msgstr "Komprese PNG obrázku"
-
-#original text: "TIFF multi bit image compression"
-msgid TEXT_SETUP_TIFF_COMPRESSION
-msgstr "Komprese vícebitových TIFF obrázků"
-
-#original text: "TIFF lineart image compression"
-msgid TEXT_SETUP_TIFF_COMPRESSION_1
-msgstr "Komprese jednobarevných TIFF obrázků"
-
-#original text: "Preview gamma:"
-msgid TEXT_SETUP_PREVIEW_GAMMA
-msgstr "Gama náhledu:"
-
-#original text: "Preview gamma red:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_RED
-msgstr "Červená gama náhledu:"
-
-#original text: "Preview gamma green:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_GREEN
-msgstr "Zelená gama náhledu:"
-
-#original text: "Preview gamma blue:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_BLUE
-msgstr "Modrá gama náhledu:"
-
-#original text: "Helpfile viewer (HTML):"
-msgid TEXT_SETUP_HELPFILE_VIEWER
-msgstr "Prohlížeč souboru nápovědy (HTML):"
-
-#original text: "Command:"
-msgid TEXT_SETUP_FAX_COMMAND
-msgstr "Příkaz:"
-
-#original text: "Receiver option:"
-msgid TEXT_SETUP_FAX_RECEIVER_OPTION
-msgstr "Volba příjemce:"
-
-#original text: "Postscriptfile option:"
-msgid TEXT_SETUP_FAX_POSTSCRIPT_OPT
-msgstr "Volby postscriptového souboru:"
-
-#original text: "Normal mode option:"
-msgid TEXT_SETUP_FAX_NORMAL_MODE_OPT
-msgstr "Volby normálního režimu:"
-
-#original text: "Fine mode option:"
-msgid TEXT_SETUP_FAX_FINE_MODE_OPT
-msgstr "Volby režimu vysokého rozlišení:"
-
-#original text: "Viewer (Postscript):"
-msgid TEXT_SETUP_FAX_VIEWER
-msgstr "Prohlížeč (Postscript):"
-
-#original text: "Saving options"
-msgid NOTEBOOK_SAVING_OPTIONS
-msgstr "Volby zápisu"
-
-#original text: "Display options"
-msgid NOTEBOOK_DISPLAY_OPTIONS
-msgstr "Volby zobrazování"
-
-#original text: "Fax options"
-msgid NOTEBOOK_FAX_OPTIONS
-msgstr "Volby faxu"
-
-#original text: "Scan"
-msgid MENU_ITEM_SCAN
-msgstr "Skenování"
-
-#original text: "Copy"
-msgid MENU_ITEM_COPY
-msgstr "Kopírování"
-
-#original text: "Fax"
-msgid MENU_ITEM_FAX
-msgstr "Faxování"
-
-#original text: "Setup"
-msgid MENU_ITEM_SETUP
-msgstr "Nastavení"
-
-#original text: "Show tooltips"
-msgid MENU_ITEM_SHOW_TOOLTIPS
-msgstr "Ukazovat tipy"
-
-#original text: "Show preview"
-msgid MENU_ITEM_SHOW_PREVIEW
-msgstr "Ukazovat náhled"
-
-#original text: "Show histogram"
-msgid MENU_ITEM_SHOW_HISTOGRAM
-msgstr "Ukazovat histogram"
-
-#original text: "Show standard options"
-msgid MENU_ITEM_SHOW_STANDARDOPTIONS
-msgstr "Ukazovat standardní volby"
-
-#original text: "Show advanced options"
-msgid MENU_ITEM_SHOW_ADVANCEDOPTIONS
-msgstr "Ukazovat rozšířené volby"
-
-
-#original text: "Show resolution list"
-msgid MENU_ITEM_SHOW_RESOLUTIONLIST
-msgstr "Ukazovat seznam rozlišení"
-
-#original text: "Length unit"
-msgid MENU_ITEM_LENGTH_UNIT
-msgstr "Délková jednotka"
-
-#original text: "millimeters"
-msgid SUBMENU_ITEM_LENGTH_MILLIMETERS
-msgstr "milimetry"
-
-#original text: "centimeters"
-msgid SUBMENU_ITEM_LENGTH_CENTIMETERS
-msgstr "centimetry"
-
-#original text: "inches"
-msgid SUBMENU_ITEM_LENGTH_INCHES
-msgstr "palce"
-
-#original text: "Save device settings"
-msgid MENU_ITEM_SAVE_DEVICE_SETTINGS
-msgstr "Zapsat nastavení zařízení"
-
-#original text: "Load device settings"
-msgid MENU_ITEM_LOAD_DEVICE_SETTINGS
-msgstr "Načíst nastavení zařízení"
-
-#original text: "Xsane doc"
-msgid MENU_ITEM_XSANE_DOC
-msgstr "Dokumentace Xsane"
-
-#original text: "Backend doc"
-msgid MENU_ITEM_BACKEND_DOC
-msgstr "Dokumentace rozhraní zařízení"
-
-#original text: "Available backends"
-msgid MENU_ITEM_AVAILABLE_BACKENDS
-msgstr "Dospupná rozhraní zařízení"
-
-#original text: "Scantips"
-msgid MENU_ITEM_SCANTIPS
-msgstr "Skenovací tipy"
-
-#original text: "no compression"
-msgid MENU_ITEM_TIFF_COMP_NONE
-msgstr "žádná komprese"
-
-#original text: "CCITT 1D Huffman compression"
-msgid MENU_ITEM_TIFF_COMP_CCITTRLE
-msgstr "Huffmanova komprese CCITT 1D"
-
-#original text: "CCITT Group 3 Fax compression"
-msgid MENU_ITEM_TIFF_COMP_CCITFAX3
-msgstr "Komprese CCITT Group 3 Fax"
-
-#original text: "CCITT Group 4 Fax compression"
-msgid MENU_ITEM_TIFF_COMP_CCITFAX4
-msgstr "Komprese CCITT Group 4 Fax"
-
-#original text: "JPEG DCT compression"
-msgid MENU_ITEM_TIFF_COMP_JPEG
-msgstr "Komprese JPEG DCT"
-
-#original text: "pack bits"
-msgid MENU_ITEM_TIFF_COMP_PACKBITS
-msgstr "bitové pakování"
-
-#original text: "by ext"
-msgid MENU_ITEM_FILETYPE_BY_EXT
-msgstr "podle přípony"
-
-#original text: "Saving image"
-msgid PROGRESS_SAVING
-msgstr "Zapisuje se obrázek"
-
-#original text: "Saving fax image"
-msgid PROGRESS_SAVING_FAX
-msgstr "Zapisuje se faxový obrázek"
-
-#original text: "Converting data...."
-msgid PROGRESS_CONVERTING_DATA
-msgstr "Konvertují se data..."
-
-#original text: "Converting to postscript"
-msgid PROGRESS_CONVERTING_PS
-msgstr "Konvertuje se do Postscriptu"
-
-#original text: "Scanning"
-msgid PROGRESS_SCANNING
-msgstr "Skenuje se"
-
-#original text: "Receiving %s data for `%s'..."
-msgid PROGRESS_RECEIVING_SCAN
-msgstr "Snímají se data typu %s pro `%s'..."
-
-#original text: "Receiving %s data for photocopy ..."
-msgid PROGRESS_RECEIVING_COPY
-msgstr "Snímají se data typu %s pro fotokopii..."
-
-#original text: "Receiving %s data for fax ..."
-msgid PROGRESS_RECEIVING_FAX
-msgstr "Snímají se data typu %s pro fax..."
-
-#original text: "Receiving %s data for GIMP..."
-msgid PROGRESS_RECEIVING_GIMP
-msgstr "Snímají se data typu %s pro GIMP..."
-
-
-#original text: "Use XSane for SCANning, photoCOPYing, FAXing..."
-msgid DESC_XSANE_MODE
-msgstr "XSane slouží pro skenování, kopírování, faxování..."
-
-#original text: "Browse for image filename"
-msgid DESC_BROWSE_FILENAME
-msgstr "Hledání jména souboru"
-
-#original text: "Filename for scanned image"
-msgid DESC_FILENAME
-msgstr "Jméno souboru pro skenovaný obrázek"
-
-#original text: "Filename extension and type of image format"
-msgid DESC_FILETYPE
-msgstr "Přípona jména souboru a typ obrázkového formátu"
-
-#original text: "Enter name of fax project"
-msgid DESC_FAXPROJECT
-msgstr "Zadání jméno faxového projektu"
-
-#original text: "Enter new name for faxpage"
-msgid DESC_FAXPAGENAME
-msgstr "Zadání jména faxové strany"
-
-#original text: "Enter receiver phone number or address"
-msgid DESC_FAXRECEIVER
-msgstr "Zadání telefonního čísla nebo adresy příjemce"
-
-#original text: "Select printer definition"
-msgid DESC_PRINTER_SELECT
-msgstr "Volba definice tiskárny"
-
-#original text: "Set scan resolution"
-msgid DESC_RESOLUTION
-msgstr "Nastavení rozlišení skenování"
-
-#original text: "Set zoomfactor"
-msgid DESC_ZOOM
-msgstr "Nastavení faktoru změny velikosti"
-
-#original text: "Set number of copies"
-msgid DESC_COPY_NUMBER
-msgstr "Nastavení počtu kopií"
-
-#original text: "Negative: Invert colors for scanning negatives\n" "e.g. swap black and white"
-msgid DESC_NEGATIVE
-msgstr "Negativ: Invertuje barvy pro skenování negativů\n" "např. přehodá černou a bílou"
-
-#original text: "Set gamma value"
-msgid DESC_GAMMA
-msgstr "Nastavení gama hodnoty"
-
-#original text: "Set gamma value for red component"
-msgid DESC_GAMMA_R
-msgstr "Nastavení gama hodnoty červené komponenty"
-
-#original text: "Set gamma value for green component"
-msgid DESC_GAMMA_G
-msgstr "Nastavení gama hodnoty zelené komponenty"
-
-#original text: "Set gamma value for blue component"
-msgid DESC_GAMMA_B
-msgstr "Nastavení gama hodnoty modré komponenty"
-
-#original text: "Set brightness"
-msgid DESC_BRIGHTNESS
-msgstr "Nastavení jasu"
-
-#original text: "Set brightness for red component"
-msgid DESC_BRIGHTNESS_R
-msgstr "Nastavení jasu červené komponenty"
-
-#original text: "Set brightness for green component"
-msgid DESC_BRIGHTNESS_G
-msgstr "Nastavení jasu zelené komponenty"
-
-#original text: "Set brightness for blue component"
-msgid DESC_BRIGHTNESS_B
-msgstr "Nastavení jasu modré komponenty"
-
-#original text: "Set contrast"
-msgid DESC_CONTRAST
-msgstr "Nastavení kontrastu"
-
-#original text: "Set contrast for red component"
-msgid DESC_CONTRAST_R
-msgstr "Nastavení kontrastu červené komponenty"
-
-#original text: "Set contrast for green component"
-msgid DESC_CONTRAST_G
-msgstr "Nastavení kontrastu zelené komponenty"
-
-#original text: "Set contrast for blue component"
-msgid DESC_CONTRAST_B
-msgstr "Nastavení kontrastu modré komponenty"
-
-#original text: "RGB default: Set enhancement values for red, green and blue to default values:\n" " gamma = 1.0\n" " brightness = 0\n" " contrast = 0"
-msgid DESC_RGB_DEFAULT
-msgstr "Implicitní RGB: Nastavení hodnot pro zpracování červené, zelené a modré:\n" " gama = 1.0\n" " jas = 0\n" " kontrast = 0"
-
-#original text: "Autoadjust gamma, brightness and contrast in dependance of selected area"
-msgid DESC_ENH_AUTO
-msgstr "Automatické nastavení gamy, jasu a kontrastu v závislosti na vybrané oblasti"
-
-#original text: "Set default enhancement values:\n" "gamma = 1.0\n" "brightness = 0\n" "contrast = 0"
-msgid DESC_ENH_DEFAULT
-msgstr "Nastavení implicitních hodnot zpracování:\n" "gama = 1.0\n" "jas = 0\n" "kontrast = 0"
-
-#original text: "Restore enhancement values from preferences"
-msgid DESC_ENH_RESTORE
-msgstr "Obnovit hodnoty zpracování z předvoleb"
-
-#original text: "Store active enhancement values to preferences"
-msgid DESC_ENH_STORE
-msgstr "Uložit hodnoty zpracování z předvoleb"
-
-#original text: "Show histogram of intensity/gray"
-msgid DESC_HIST_INTENSITY
-msgstr "Zobrazit histogram intenzity / šedi"
-
-#original text: "Show histogram of red component"
-msgid DESC_HIST_RED
-msgstr "Zobrazit histogram červené komponenty"
-
-#original text: "Show histogram of green component"
-msgid DESC_HIST_GREEN
-msgstr "Zobrazit histogram zelené komponenty"
-
-#original text: "Show histogram of blue component"
-msgid DESC_HIST_BLUE
-msgstr "Zobrazit histogram modré komponenty"
-
-#original text: "Display histogram with lines instead of pixels"
-msgid DESC_HIST_PIXEL
-msgstr "Zoprazit čárový histogram místo plošného"
-
-#original text: "Show logarithm of pixelcount"
-msgid DESC_HIST_LOG
-msgstr "Zobrazit logaritmy počtů pixelů"
-
-#original text: "Select definition to change"
-msgid DESC_PRINTER_SETUP
-msgstr "Volba definice ke změně"
-
-#original text: "Define a name for the selection of this definition"
-msgid DESC_PRINTER_NAME
-msgstr "Zadání jména pro výběr této definice"
-
-#original text: "Enter command to be executed in copy mode (e.g. \"lpr -\")"
-msgid DESC_PRINTER_COMMAND
-msgstr "Zadání příkazu, který má být vyvolán v režimu kopírování (např. \"lpr -\")"
-
-#original text: "Enter option for copy numbers"
-msgid DESC_COPY_NUMBER_OPTION
-msgstr "Zadání volby počtu kopií"
-
-#original text: "Resolution with which images are printed and saved in postscript"
-msgid DESC_PRINTER_RESOLUTION
-msgstr "Rozlišení, ve kterém budou obrázky tisknuty a zapisovány do postscriptu"
-
-#original text: "Width of printable area in 1/72 inch"
-msgid DESC_PRINTER_WIDTH
-msgstr "Šířka tisknutelné plochy v dvaasedmdesátinách palce"
-
-#original text: "Height of printable area in 1/72 inch"
-msgid DESC_PRINTER_HEIGHT
-msgstr "Výška tisknutelné plochy v dvaasedmdesátinách palce"
-
-#original text: "Left offset from the edge of the paper to the printable area in 1/72 inch"
-msgid DESC_PRINTER_LEFTOFFSET
-msgstr "Posun od levého okraje papíru do tisknutelné plochy v dvaasedmdesátinách palce"
-
-#original text: "Bottom offset from the edge of the paper to the printable area in 1/72 inch"
-msgid DESC_PRINTER_BOTTOMOFFSET
-msgstr "Posun od spodního okraje papíru do tisknutelné plochy v dvaasedmdesátinách palce"
-
-#original text: "Additional gamma value for photocopy"
-msgid DESC_PRINTER_GAMMA
-msgstr "Dodatečná gama hodnota pro fotokopii"
-
-#original text: "Additional gamma value for red component for photocopy"
-msgid DESC_PRINTER_GAMMA_RED
-msgstr "Dodatečná gama hodnota pro červenou komponentu pro fotokopii"
-
-#original text: "Additional gamma value for green component for photocopy"
-msgid DESC_PRINTER_GAMMA_GREEN
-msgstr "Dodatečná gama hodnota pro zelenou komponentu pro fotokopii"
-
-#original text: "Additional gamma value for blue component for photocopy"
-msgid DESC_PRINTER_GAMMA_BLUE
-msgstr "Dodatečná gama hodnota pro modrou komponentu pro fotokopii"
-
-#original text: "Quality in percent if image is saved as jpeg or tiff with jpeg compression"
-msgid DESC_JPEG_QUALITY
-msgstr "Kvalita v procentech, je-li obrázek zapisován jako jpeg nebo tiff s jpeg kompresí"
-
-#original text: "Compression if image is saved as png"
-msgid DESC_PNG_COMPRESSION
-msgstr "Typ komprese, je-li obrázek zapisován jako png"
-
-#original text: "Compression type if multi bit image is saved as tiff"
-msgid DESC_TIFF_COMPRESSION
-msgstr "Typ komprese, je-li obrázek zapisován jako vícebitový TIFF"
-
-#original text: "Compression type if lineart image is saved as tiff"
-msgid DESC_TIFF_COMPRESSION_1
-msgstr "Typ komprese, je-li obrázek zapisován jako jednobarevný TIFF"
-
-#original text: "Warn before overwriting an existing file"
-msgid DESC_OVERWRITE_WARNING
-msgstr "Varování před přepsáním existujícího souboru"
-
-#original text: "If the filename is of the form \"name-001.ext\" " "(where the number of digits is free) " "the number is increased after a scan is finished"
-msgid DESC_INCREASE_COUNTER
-msgstr "Je-li jméno souboru ve tvaru \"jméno-001.příp\" (počet číslic je libovolný), číslo je o skenování zvětšeno"
-
-#original text: "If filename counter is automatically increased, used numbers are skipped"
-msgid DESC_SKIP_EXISTING
-msgstr "Je-li čítač souborů automaticky zvětšován, použitá čísla jsou přeskočena"
-
-#original text: "Use fixed main window size or scrolled, resizable main window"
-msgid DESC_MAIN_WINDOW_FIXED
-msgstr "Užití pevné velikosti hlavního okna nebo okna s posuvníky a proměnnou velikostí"
-
-#original text: "Preserve preview image for next program start"
-msgid DESC_PREVIEW_PRESERVE
-msgstr "Zachování náhledu pro příští spuštění programu"
-
-#original text: "Use an own colormap for preview if display depth is 8 bpp"
-msgid DESC_PREVIEW_COLORMAP
-msgstr "Použití vlastní barevné mapy náhledu, je-li obrazová hloubka 8"
-
-#original text: "Set gamma correction value for preview image"
-msgid DESC_PREVIEW_GAMMA
-msgstr "Nastavení gama korekce pro náhledová obrázek"
-
-#original text: "Set gamma correction value for red component of preview image"
-msgid DESC_PREVIEW_GAMMA_RED
-msgstr "Nastavení gama korekce pro červenou komponentu náhledového obrázku"
-
-#original text: "Set gamma correction value for green component of preview image"
-msgid DESC_PREVIEW_GAMMA_GREEN
-msgstr "Nastavení gama korekce pro zelenou komponentu náhledového obrázku"
-
-#original text: "Set gamma correction value for blue component of preview image"
-msgid DESC_PREVIEW_GAMMA_BLUE
-msgstr "Nastavení gama korekce pro modrou komponentu náhledového obrázku"
-
-#original text: "Enter command to be executed to display helpfiles, must be a html-viewer!"
-msgid DESC_DOC_VIEWER
-msgstr "Nastevení příkazu k zobrazení souborů nápovědy, musí být html prohlížeč!"
-
-#original text: "Enter command to be executed in fax mode"
-msgid DESC_FAX_COMMAND
-msgstr "Nastevení příkazu prováděného ve faxovém režimu"
-
-#original text: "Enter option to specify receiver"
-msgid DESC_FAX_RECEIVER_OPT
-msgstr "Nastevení volby určující příjemce"
-
-#original text: "Enter option to specify postscript files following"
-msgid DESC_FAX_POSTSCRIPT_OPT
-msgstr "Nastevení volby k zadání postscriptových souborů"
-
-#original text: "Enter option to specify normal mode (low resolution)"
-msgid DESC_FAX_NORMAL_OPT
-msgstr "Nastavení volby k určení normálního režimu (nízké rozlišení)"
-
-#original text: "Enter option to specify fine mode (high resolution)"
-msgid DESC_FAX_FINE_OPT
-msgstr "Nastavení volby k určení kvalitního režimu (velké rozlišení)"
-
-#original text: "Enter command to be executed to view a fax"
-msgid DESC_FAX_VIEWER
-msgstr "Nastavení příkazu k zobrazení faxu"
-
-#original text: "Use high vertical resolution (196 lpi instead of 98 lpi)"
-msgid DESC_FAX_FINE_MODE
-msgstr "Užití vysokého svislého rozlišení (196 dpi namísto 98 dpi)"
-
-#original text: "Pick white point"
-msgid DESC_PIPETTE_WHITE
-msgstr "Nasátí bílého bodu"
-
-#original text: "Pick gray point"
-msgid DESC_PIPETTE_GRAY
-msgstr "Nasátí šedého bodu"
-
-#original text: "Pick black point"
-msgid DESC_PIPETTE_BLACK
-msgstr "Nasátí černého bodu"
-
-#original text: "Use full scanarea"
-msgid DESC_ZOOM_FULL
-msgstr "Užití plné skenovací plochy"
-
-#original text: "Zoom 20% out"
-msgid DESC_ZOOM_OUT
-msgstr "Vzdálení o 20 %"
-
-#original text: "Zoom into selected area"
-msgid DESC_ZOOM_IN
-msgstr "Přiblížení zvolenou oblast"
-
-#original text: "Undo last zoom"
-msgid DESC_ZOOM_UNDO
-msgstr "Vrácení posledního přiblížení"
-
-#original text: "Select visible area"
-msgid DESC_FULL_PREVIEW_AREA
-msgstr "Volba viditelné oblasti"
-
-#original text: "Failed to determine home directory:"
-msgid ERR_HOME_DIR
-msgstr "Selhalo určení domovského adresáře:"
-
-#original text: "Filename too long"
-msgid ERR_FILENAME_TOO_LONG
-msgstr "Jméno souboru je příliš dlouhé"
-
-#original text: "Failed to set value of option"
-msgid ERR_SET_OPTION
-msgstr "Selhalo nastavení hodnoty volby"
-
-#original text: "Failed to obtain value of option"
-msgid ERR_GET_OPTION
-msgstr "Selhalo získání hodnoty volby"
-
-#original text: "Error obtaining option count"
-msgid ERR_OPTION_COUNT
-msgstr "Selhalo získání počtu voleb"
-
-#original text: "Failed to open device"
-msgid ERR_DEVICE_OPEN_FAILED
-msgstr "Otevření zařízení selhalo"
-
-#original text: "no devices available"
-msgid ERR_NO_DEVICES
-msgstr "nejsou k dispozici žádná zařízení"
-
-#original text: "Error during read:"
-msgid ERR_DURING_READ
-msgstr "Chyba během čtení:"
-
-#original text: "Error during save:"
-msgid ERR_DURING_SAVE
-msgstr "Chyba během zápisu:"
-
-#original text: "Can't handle depth"
-msgid ERR_BAD_DEPTH
-msgstr "Nelze zpracovat hloubku"
-
-#original text: "GIMP can't handle depth"
-msgid ERR_GIMP_BAD_DEPTH
-msgstr "GIMP neumí zpracovat hloubku"
-
-#original text: "Unknown file format for saving"
-msgid ERR_UNKNOWN_SAVING_FORMAT
-msgstr "Neznámý formát souboru pro zápis"
-
-#original text: "Failed to open"
-msgid ERR_OPEN_FAILED
-msgstr "Otevření selhalo"
-
-#original text: "Failed to open pipe for executing printercommand"
-msgid ERR_FAILED_PRINTER_PIPE
-msgstr "Otevření roury ke spuštění příkazu tiskárny selhalo"
-
-#original text: "Failed to execute printercommand:"
-msgid ERR_FAILED_EXEC_PRINTER_CMD
-msgstr "Spuštění příkazu tiskárny selhalo"
-
-#original text: "Failed to start scanner:"
-msgid ERR_FAILED_START_SCANNER
-msgstr "Spuštění skeneru selhalo"
-
-#original text: "Failed to get parameters:"
-msgid ERR_FAILED_GET_PARAMS
-msgstr "Získání parametrů selhalo:"
-
-#original text: "No output format given"
-msgid ERR_NO_OUTPUT_FORMAT
-msgstr "Nebyl zadán výstupní formát"
-
-#original text: "out of memory"
-msgid ERR_NO_MEM
-msgstr "nedostatek paměti"
-
-#original text: "LIBTIFF reports error"
-msgid ERR_LIBTIFF
-msgstr "LIBTIFF hlásí chybu"
-
-#original text: "LIBPNG reports error"
-msgid ERR_LIBPNG
-msgstr "LIBPNG hlásí chybu"
-
-#original text: "unknown type"
-msgid ERR_UNKNOWN_TYPE
-msgstr "neznámý typ"
-
-#original text: "unknown constraint type"
-msgid ERR_UNKNOWN_CONSTRAINT_TYPE
-msgstr "neznámý požadovaný typ"
-
-#original text: "Failed to execute documentation viewer:"
-msgid ERR_FAILD_EXEC_DOC_VIEWER
-msgstr "Spuštění prohlížeče dokumentace selhalo"
-
-#original text: "Failed to execute fax viewer:"
-msgid ERR_FAILD_EXEC_FAX_VIEWER
-msgstr "Spuštění faxového prohlížeče selhalo"
-
-#original text: "Failed to execute faxcommand:"
-msgid ERR_FAILED_EXEC_FAX_CMD
-msgstr "Spuštění faxového příkazu selhalo:"
-
-#original text: "bad frame format"
-msgid ERR_BAD_FRAME_FORMAT
-msgstr "špatný formát rámce"
-
-#original text: "unable to set resolution"
-msgid ERR_FAILED_SET_RESOLUTION
-msgstr "nepodařilo se nastavit rozlišení"
-
-#original text: "error"
-msgid ERR_ERROR
-msgstr "chyba"
-
-#original text: "Sane major version number mismatch!"
-msgid ERR_MAJOR_VERSION_NR_CONFLICT
-msgstr "Hlavní číslo verze Sane nesouhlasí!"
-
-#original text: "xsane major version ="
-msgid ERR_XSANE_MAJOR_VERSION
-msgstr "hlavní číslo verze xsane ="
-
-#original text: "backend major version ="
-msgid ERR_BACKEND_MAJOR_VERSION
-msgstr "hlavní číslo verze ovladače ="
-
-#original text: "*** PROGRAM ABORTED ***"
-msgid ERR_PROGRAM_ABORTED
-msgstr "*** PROGRAM ZRUŠEN ***"
-
-#original text: "Failed to allocate image memory:"
-msgid ERR_FAILED_ALLOCATE_IMAGE
-msgstr "Selhalo získání paměti pro obrázek:"
-
-#original text: "Preview cannot handle bit depth"
-msgid ERR_PREVIEW_BAD_DEPTH
-msgstr "Náhled neumí obsloužit bitovou hloubku"
-
-#original text: "GIMP support missing"
-msgid ERR_GIMP_SUPPORT_MISSING
-msgstr "Chybí podpora programu GIMP"
-
-#original text: "Filename counter overflow"
-msgid WARN_COUNTER_OVERFLOW
-msgstr "Přetečení čítače jména souboru"
-
-#original text: "warning: option has no value constraint"
-msgid WARN_NO_VALUE_CONSTRAINT
-msgstr "varování: volba nezískala žádnou hodnotu"
-
-#original text: "Ok"
-msgid ERR_BUTTON_OK
-msgstr "OK"
-
-#original text: "Error"
-msgid ERR_HEADER_ERROR
-msgstr "Chyba"
-
-#original text: "Warning"
-msgid ERR_HEADER_WARNING
-msgstr "Varování"
-
-#original text: "Failed to create file:"
-msgid ERR_FAILED_CREATE_FILE
-msgstr "Vytvoření souboru selhalo"
-
-#original text: "Error while loading device settings:"
-msgid ERR_LOAD_DEVICE_SETTINGS
-msgstr "Chyba během čtení nastavení zařízení:"
-
-#original text: "is not a device-rc-file !!!"
-msgid ERR_NO_DRC_FILE
-msgstr "není soubor-záznamu-zařízení!!!"
-
-#original text: "Failed to execute netscape!"
-msgid ERR_NETSCAPE_EXECUTE_FAIL
-msgstr "Spuštění Netscape selhalo!"
-
-#original text: "Send fax: no receiver defined"
-msgid ERR_SENDFAX_RECEIVER_MISSING
-msgstr "Odeslání faxu: není definován příjemce"
-
-#original text: "has been created for device"
-msgid ERR_CREATED_FOR_DEVICE
-msgstr "byl vytvořen pro zařízení"
-
-#original text: "you want to use it for device"
-msgid ERR_USED_FOR_DEVICE
-msgstr "má být použit pro zařízení"
-
-#original text: "this may cause problems!"
-msgid ERR_MAY_CAUSE_PROBLEMS
-msgstr "to může způsobit problémy!"
-
-#original text: "Usage:"
-msgid TEXT_USAGE
-msgstr "Užití:"
-
-#original text: "[OPTION]... [DEVICE]"
-msgid TEXT_USAGE_OPTIONS
-msgstr "[VOLBA]... [ZAŘÍZENÍ]"
-
-#original text: "Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\n-h, --help display this help message and exit\n-v, --version print version information\n\n-d, --device-settings file load device settings from file (without \".drc\")\n\n-s, --scan start with scan-mode active\n-c, --copy start with copy-mode active\n-f, --fax start with fax-mode active\n-n, --no-mode-selection disable menu for xsane mode selection\n\n-F, --Fixed fixed main window size (overwrite preferences value)\n-R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\n--display X11-display redirect output to X11-display\n--no-xshm do not use shared memory images\n--sync request a synchronous connection with the X11 server"
-msgid TEXT_HELP
-msgstr ""
-"Spuštění grafického rozhraní pro přístup k SANE zarízením.\n"
-"(SANE = Scanner Access Now Easy - přístup ke skeneru je nyní snadný)\n"
-"\n"
-"-h, --help vypíše tuto nápovědu a skončí\n"
-"-v, --version vypíše označení verze\n"
-"\n"
-"-d, --device-settings soubor načte nastavení zařízení ze souboru (bez \".drc\")\n"
-"\n"
-"-s, --scan spustí se s aktivním režimem skenování\n"
-"-c, --copy spustí se s aktivním režimem kopírování\n"
-"-f, --fax spustí se s aktivním režimem faxování\n"
-"-n, --no-mode-selection zakáže menu volby xsane režimu\n"
-"\n"
-"-F, --Fixed použije pevnou velikost hlavního okna\n"
-" (přepíše hodnotu předvolby)\n"
-"-R, --Resizeable použije hlavní okno s posuvníky a proměnnou velikostí\n"
-" (přepíše hodnotu předvolby)\n"
-"\n"
-"--display X11-displej přesměruje výstup na X11-displej\n"
-"--no-xshm nepoužije sdílené paměťové obrazy\n"
-"--sync vyžádá synchronní spojení s X11 serverem"
-
-#original text: "Front-end to the SANE interface"
-msgid XSANE_GIMP_INSTALL_BLURB
-msgstr "Uživatelský program k rozhraní SANE"
-
-#original text: "This function provides access to scanners and other image acquisition devices through the SANE (Scanner Access Now Easy) interface."
-msgid XSANE_GIMP_INSTALL_HELP
-msgstr "Tato funkce nabízí přes rozhrani SANE (Scanner Access Now Easy - přístup ke skeneru je nyní snadný) přístup ke skenerům a jiným zařízením ke snímání obrázků"
-
-#original text: "<Toolbox>/File/Acquire/XSane: "
-msgid XSANE_GIMP_MENU
-msgstr "<Toolbox>/Soubor/Získat/XSane: "
-
-#original text: "<Toolbox>/Xtns/XSane/"
-msgid XSANE_GIMP_MENU_OLD
-msgstr "<Toolbox>/Rozš./XSane/"
-
-#original text: "<Toolbox>/File/Acquire/XSane: Device dialog..."
-msgid XSANE_GIMP_MENU_DIALOG
-msgstr "<Toolbox>/Soubor/Získat/XSane: Dialog zařízení..."
-
-#original text: "<Toolbox>/Xtns/XSane/Device dialog..."
-msgid XSANE_GIMP_MENU_DIALOG_OLD
-msgstr "<Toolbox>/Rozš./XSane/Dialog zařízení..."
-
-#original text: "flatbed scanner"
-msgid "flatbed scanner"
-msgstr "plošný skener"
-
-#original text: "frame grabber"
-msgid "frame grabber"
-msgstr "snímač políček"
-
-#original text: "handheld scanner"
-msgid "handheld scanner"
-msgstr "ruční ckener"
-
-#original text: "still camera"
-msgid "still camera"
-msgstr "digitální fotoaparát"
-
-#original text: "video camera"
-msgid "video camera"
-msgstr "videokamera"
-
-#original text: "virtual device"
-msgid "virtual device"
-msgstr "virtuální zařízení"
-
-
-#original text: "Success"
-msgid "Success"
-msgstr "Úspěch"
-
-#original text: "Operation not supported"
-msgid "Operation not supported"
-msgstr "Operace není podporovaná"
-
-#original text: "Operation was cancelled"
-msgid "Operation was cancelled"
-msgstr "Operace byla zrušena"
-
-#original text: "Device busy"
-msgid "Device busy"
-msgstr "Zařízení je v používání"
-
-#original text: "Invalid argument"
-msgid "Invalid argument"
-msgstr "Neplatný argument"
-
-#original text: "End of file reached"
-msgid "End of file reached"
-msgstr "Dosažen konec souboru"
-
-#original text: "Document feeder jammed"
-msgid "Document feeder jammed"
-msgstr "Zmačkaný papír v podavači"
-
-#original text: "Document feeder out of documents"
-msgid "Document feeder out of documents"
-msgstr "V podavači došly dokumenty"
-
-#original text: "Scanner cover is open"
-msgid "Scanner cover is open"
-msgstr "Víko skeneru je otevřeno"
-
-#original text: "Error during device I/O"
-msgid "Error during device I/O"
-msgstr "Chyba během V/V zařízení"
-
-#original text: "Out of memory"
-msgid "Out of memory"
-msgstr "Nedostatek paměti"
-
-#original text: "Access to resource has been denied"
-msgid "Access to resource has been denied"
-msgstr "Přístup ke zdroji byl odmítnut"
-
diff --git a/po/de.gmo b/po/de.gmo
index ddb7063..de6e627 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index c6bf87d..48f91f7 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,1596 +1,2371 @@
+# German translation for XSane.
+# Copyright (C) 1999-2002 Oliver Rauch
+# Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: XSANE 0.84\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2000-01-21 15:51+01:00\n"
+"Last-Translator: Oliver Rauch <Oliver.Rauch@rauch-domain.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr "de"
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr "Š"
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "Über"
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "Über Übersetzung"
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "Autorisation"
+#. WINDOW_LICENSE
+msgid "license"
+msgstr "Lizenz"
+#. WINDOW_INFO
+msgid "info"
+msgstr "Informationen"
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "Stapel Scan"
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "Faxprojekt"
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "Faxseite umbenennen"
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr "ps-Datei einfügen in Fax"
+#. WINDOW_MAIL_PROJECT
+msgid "mail project"
+msgstr "Mailprojekt"
+#. WINDOW_MAIL_RENAME
+msgid "rename mail image"
+msgstr "E-Mail Bild umbenennen"
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr "Bild in E-Mail einfügen"
+#. WINDOW_PRESET_AREA_RENAME
+msgid "rename preset area"
+msgstr "Bereichsvoreinstellung umbenennen"
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "Konfiguration"
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "Histogramm"
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "Gamma Kurve"
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "Standard Optionen"
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "Erweiterte Optionen"
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "Geräteauswahl"
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "Vorschau"
+#. WINDOW_VIEWER
+msgid "Viewer"
+msgstr "Betrachter"
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+msgid "Viewer: select output filename"
+msgstr "Betrachter: Ausgabedatei auswählen"
+#. WINDOW_OCR_OUTPUT_FILENAME
+msgid "Select output filename for OCR text file"
+msgstr "Dateinamen für OCR Text auswählen"
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "Ausgabedatei auswählen"
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "Speichere Geräteeinstellungen"
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "Lade Geräteeinstellungen"
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "Temporäres Verzeichnis wechseln"
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "temporäres Verzeichnis auswählen"
+#. WINDOW_SCALE
+msgid "Scale image"
+msgstr "Bild skalieren"
+#. WINDOW_DESPECKLE
+msgid "Despeckle image"
+msgstr "Flecken entfernen"
+#. WINDOW_BLUR
+msgid "Blur image"
+msgstr "Bild weichzeichnen"
+#. WINDOW_STORE_MEDIUM
+msgid "Store medium definition"
+msgstr "Mediumdefinition speichern"
+#. MENU_FILE
+msgid "File"
+msgstr "Datei"
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "Einstellungen"
+#. MENU_VIEW
+msgid "View"
+msgstr "Ansicht"
+#. MENU_HELP
+msgid "Help"
+msgstr "Hilfe"
+#. MENU_FILTERS
+msgid "Filters"
+msgstr "Filter"
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "Über XSane"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#nls translation file for xsane
-#language: german (de)
-#by Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
-
-#original text: "About"
-msgid "About"
-msgstr "Über"
-
-#original text: "authorization"
-msgid "authorization"
-msgstr "Autorisation"
-
-#original text: "info"
-msgid "info"
+#. MENU_ITEM_INFO
+msgid "Info"
msgstr "Informationen"
-#original text: "batch scan"
-msgid "batch scan"
-msgstr "Stapel Scan"
-
-#original text: "fax project"
-msgid "fax project"
-msgstr "Faxprojekt"
-
-#original text: "rename fax page"
-msgid "rename fax page"
-msgstr "Faxseite umbenennen"
-
-#original text: "setup"
-msgid "setup"
-msgstr "Konfiguration"
-
-#original text: "Histogram"
-msgid "Histogram"
-msgstr "Histogramm"
-
-#original text: "Standard options"
-msgid "Standard options"
-msgstr "Standard Optionen"
-
-#original text: "Advanced options"
-msgid "Advanced options"
-msgstr "Erweiterte Optionen"
-
-#original text: "device selection"
-msgid "device selection"
-msgstr "Geräteauswahl"
-
-#original text: "Preview"
-msgid "Preview"
-msgstr "Vorschau"
-
-#original text: "output filename"
-msgid "output filename"
-msgstr "Ausgabedatei"
-
-#original text: "save device settings"
-msgid "save device settings"
-msgstr "Speichere Geräteeinstellungen"
-
-#original text: "load device settings"
-msgid "load device settings"
-msgstr "Lade Geräteeinstellungen"
-
-#original text: "File"
-msgid "File"
-msgstr "Datei"
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "Beenden"
-#original text: "Preferences"
-msgid "Preferences"
-msgstr "Einstellungen"
+#. MENU_ITEM_SAVE_IMAGE
+msgid "Save image"
+msgstr "Bild speichern"
-#original text: "View"
-msgid "View"
-msgstr "Ansicht"
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "Schließen"
-#original text: "Help"
-msgid "Help"
-msgstr "Hilfe"
+#. MENU_ITEM_CLONE
+msgid "Clone"
+msgstr "Klonen"
-#original text: "About"
-msgid "About"
-msgstr "Über"
+#. MENU_ITEM_SCALE
+msgid "Scale"
+msgstr "Skalieren"
-#original text: "Info"
-msgid "Info"
-msgstr "Informationen"
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr "Entflecken"
-#original text: "Exit"
-msgid "Exit"
-msgstr "Beenden"
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr "Weichzeichnen"
-#original text: "Raw image"
-msgid "Raw image"
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
msgstr "Rohbild"
-#original text: "Enhanced image"
-msgid "Enhanced image"
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
msgstr "Verbessertes Bild"
-#original text: "Start"
-msgid "Start"
+#. BUTTON_START
+msgid "Start"
msgstr "Start"
-#original text: "Ok"
-msgid "Ok"
+#. BUTTON_OK
+msgid "Ok"
msgstr "OK"
-#original text: "Apply"
-msgid "Apply"
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr "Akzeptieren"
+
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr "Nicht akzeptieren"
+
+#. BUTTON_APPLY
+msgid "Apply"
msgstr "Anwenden"
-#original text: "Cancel"
-msgid "Cancel"
+#. BUTTON_CANCEL
+msgid "Cancel"
msgstr "Abbrechen"
-#original text: "Close"
-msgid "Close"
-msgstr "Schließen"
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr "Reduzieren"
-#original text: "Overwrite"
-msgid "Overwrite"
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "Auf eigenes Risiko fortfahren"
+
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "Durchsuchen"
+
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
msgstr "Überschreiben"
-#original text: "Add area"
-msgid "Add area"
+#. BUTTON_ADD_AREA
+msgid "Add area"
msgstr "Bereich hinzufügen"
-#original text: "Delete"
-msgid "Delete"
-msgstr "Löschen"
+#. BUTTON_PAGE_DELETE
+msgid "Delete page"
+msgstr "Seite löschen"
+
+#. BUTTON_PAGE_SHOW
+msgid "Show page"
+msgstr "Seite anzeigen"
+
+#. BUTTON_PAGE_RENAME
+msgid "Rename page"
+msgstr "Seite umbenennen"
+
+#. BUTTON_IMAGE_DELETE
+msgid "Delete image"
+msgstr "Bild löschen"
-#original text: "Show"
-msgid "Show"
-msgstr "Anzeigen"
+#. BUTTON_IMAGE_SHOW
+msgid "Show image"
+msgstr "Bild anzeigen"
-#original text: "Rename"
-msgid "Rename"
-msgstr "Umbenennen"
+#. BUTTON_IMAGE_RENAME
+msgid "Rename image"
+msgstr "Bild umbenennen"
-#original text: "Create project"
-msgid "Create project"
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr "Datei einfügen"
+
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
msgstr "Projekt erstellen"
-#original text: "Send project"
-msgid "Send project"
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
msgstr "Projekt senden"
-#original text: "Delete project"
-msgid "Delete project"
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
msgstr "Projekt löschen"
-#original text: "Add printer"
-msgid "Add printer"
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
msgstr "Drucker hinzufügen"
-#original text: "Delete printer"
-msgid "Delete printer"
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
msgstr "Drucker löschen"
-#original text: "Acquire Preview"
-msgid "Acquire Preview"
+#. BUTTON_PREVIEW_ACQUIRE
+msgid "Acquire preview"
msgstr "Vorschauscan"
-#original text: "Cancel Preview"
-msgid "Cancel Preview"
+#. BUTTON_PREVIEW_CANCEL
+msgid "Cancel preview"
msgstr "Vorschauscan abbrechen"
-#original text: "Fine mode"
-msgid "Fine mode"
+#. BUTTON_DISCARD_IMAGE
+msgid "Discard image"
+msgstr "Bild verwerfen"
+
+#. BUTTON_DISCARD_ALL_IMAGES
+msgid "Discard all images"
+msgstr "alle Bilder verwerfen"
+
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr "nicht schliessen"
+
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr "Verbinde Skalierung"
+
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
msgstr "Fein-Modus"
-#original text: "Overwrite warning"
-msgid "Overwrite warning"
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr "HTML mail"
+
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr "Geräteeinstellungen beim Verlassen speichern"
+
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
msgstr "Überschreibwarnung"
-#original text: "Increase filename counter"
-msgid "Increase filename counter"
-msgstr "Dateinamenzähler erhöhen"
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr "Existierende Dateinamen überspringen"
-#original text: "Skip existing numbers"
-msgid "Skip existing numbers"
-msgstr "Existierende Werte überspringen"
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr "Reduziere 16 Bit Bild auf 8 Bit"
-#original text: "Main window size fixed"
-msgid "Main window size fixed"
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
msgstr "Feste Hauptfenstergröße"
-#original text: "Preserve preview image"
-msgid "Preserve preview image"
-msgstr "Behalte Vorschaubild"
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "Vorschau-Gamma für Gimp deaktivieren"
-#original text: "Use private colormap"
-msgid "Use private colormap"
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
msgstr "Benutze eigene Farbpalette"
-#original text: "Available devices:"
-msgid "Available devices:"
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "Automatische Gammakorrektur"
+
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+msgid "Preselect scanarea"
+msgstr "Scanbereich automatisch wählen"
+
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr "Automatische Farbkorrektur"
+
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr "POP3 Authentifizierung"
+
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "Suche nach Geräten"
+
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
msgstr "Erreichbare Geräte:"
-#original text: "XSane options"
-msgid "XSane options"
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
msgstr "XSane Optionen"
-#original text: "XSane mode"
-msgid "XSane mode"
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
msgstr "XSane Modus"
-#original text: "Scanner and backend:"
-msgid "Scanner and backend:"
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr "Schritt"
+
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr "Typ"
+
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
msgstr "Scanner und Backends"
-#original text: "Vendor:"
-msgid "Vendor:"
+#. TEXT_VENDOR
+msgid "Vendor:"
msgstr "Hersteller:"
-#original text: "Model:"
-msgid "Model:"
+#. TEXT_MODEL
+msgid "Model:"
msgstr "Modell:"
-#original text: "Type:"
-msgid "Type:"
+#. TEXT_TYPE
+msgid "Type:"
msgstr "Typ:"
-#original text: "Device:"
-msgid "Device:"
+#. TEXT_DEVICE
+msgid "Device:"
msgstr "Gerät:"
-#original text: "Loaded backend:"
-msgid "Loaded backend:"
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
msgstr "Geladenes Backend:"
-#original text: "Sane version:"
-msgid "Sane version:"
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
msgstr "sane Version:"
-#original text: "Recent values:"
-msgid "Recent values:"
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
msgstr "Aktuelle Werte:"
-#original text: "Gamma correction by:"
-msgid "Gamma correction by:"
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
msgstr "Gammakorrektur durch:"
-#original text: "scanner"
-msgid "scanner"
+#. TEXT_SCANNER
+msgid "scanner"
msgstr "Scanner"
-#original text: "software (xsane)"
-msgid "software (xsane)"
-msgstr "Software (xsane)"
+#. TEXT_SOFTWARE_XSANE
+msgid "software (XSane)"
+msgstr "Software (XSane)"
-#original text: "none"
-msgid "none"
+#. TEXT_NONE
+msgid "none"
msgstr "keine"
-#original text: "Gamma input depth:"
-msgid "Gamma input depth:"
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
msgstr "Bittiefe Gammaeingabe:"
-#original text: "Gamma output depth:"
-msgid "Gamma output depth:"
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
msgstr "Bittiefe Gammaausgabe:"
-#original text: "Scanner output depth:"
-msgid "Scanner output depth:"
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
msgstr "Bittieffe Scannerausgabe:"
-#original text: "XSane output formats:"
-msgid "XSane output formats:"
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
msgstr "XSane Ausgabeformate:"
-#original text: "8 bit output formats:"
-msgid "8 bit output formats:"
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
msgstr "8 Bit Ausgabeformate:"
-#original text: "16 bit output formats:"
-msgid "16 bit output formats:"
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
msgstr "16 Bit Ausgabeformate:"
-#original text: "Authorization required for"
-msgid "Authorization required for"
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Gimp unterstützt die Bittiefe 16Bits/Farbe nicht.\n"
+"Möchten Sie die Bittiefe auf 8 Bits/Farbe reduzieren?"
+
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Die Bittiefe 16Bits/Farbe wird von diesem Ausgabeformat nicht unterstützt.\n"
+"Möchten Sie die Bittiefe auf 8 Bits/Farbe reduzieren?"
+
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
msgstr "Autorisation benötigt für"
-#original text: "Username :"
-msgid "Username :"
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr "Passwortübertragung ist sicher"
+
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr "Backend erbittet unverschlüsseltes Passwort"
+
+#. TEXT_USERNAME
+msgid "Username :"
msgstr "Benutzername:"
-#original text: "Password :"
-msgid "Password :"
+#. TEXT_PASSWORD
+msgid "Password :"
msgstr "Passwort:"
-#original text: "Invalid parameters."
-msgid "Invalid parameters."
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
msgstr "Ungültige Parameter"
-#original text: "version:"
-msgid "version:"
+#. TEXT_VERSION
+msgid "version:"
msgstr "Version:"
-#original text: "package"
-msgid "package"
+#. TEXT_PACKAGE
+msgid "package"
msgstr "Paket"
-#original text: "with GIMP support"
-msgid "with GIMP support"
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
msgstr "mit GIMP-Unterstützung"
-#original text: "without GIMP support"
-msgid "without GIMP support"
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
msgstr "ohne GIMP-Unterstützung"
-#original text: "compiled with GIMP-"
-msgid "compiled with GIMP-"
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "übersetzt mit GTK-"
+
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
msgstr "übersetzt mit GIMP-"
-#original text: "unknown"
-msgid "unknown"
+#. TEXT_UNKNOWN
+msgid "unknown"
msgstr "unbekannt"
-#original text: "Email:"
-msgid "Email:"
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"XSane wird unter den Bedingungen der GNU General Public Licence, wie\n"
+"von der Free Software Foundation veröffentlicht, herausgegeben, entweder\n"
+"Version 2 der Lizenz, oder (wenn Sie wünschen) jeder späteren Version.\n"
+"\n"
+"Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen\n"
+"von Nutzen sein wird, aber OHNE JEDE GEWÄHRLEISTUNG - sogar ohne die "
+"implizite\n"
+"Gewährleistung der MARKTREIFE oder der EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.\n"
+
+#. TEXT_EMAIL
+msgid "Email:"
msgstr "E-Mail:"
-#original text: "File:"
-msgid "File:"
-msgstr "Datei:"
-
-#original text: "0x0: 0KB"
-msgid "0x0: 0KB"
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr "Homepage:"
+
+#. TEXT_FILE
+msgid "File:"
+msgstr "Datei:"
+
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr "Übersetzung:"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+"Übersetzung ins Deutsche\n"
+"von Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
msgstr "0x0: 0KB"
-#original text: "Printer selection:"
-msgid "Printer selection:"
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr "gescannte Seiten: "
+
+#. TEXT_MAIL_TEXT
+msgid "Email text:"
+msgstr "E-Mail Text:"
+
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr "Anhang:"
+
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr "Projekt Status:"
+
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr ""
+
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+"Größe %d x %d Punkte, %d Bit/Farbe, %d Farben, %1.0f dpi x %1.0f dpi, %1.1f "
+"%s"
+
+#. TEXT_X_SCALE_FACTOR
+msgid "X-Scale factor:"
+msgstr "Vergrößerungsfaktor X:"
+
+#. TEXT_Y_SCALE_FACTOR
+msgid "Y-Scale factor:"
+msgstr "Vergrößerungsfaktor Y:"
+
+#. TEXT_DESPECKLE_RADIUS
+msgid "Despeckle radius:"
+msgstr "Entflecken Radius:"
+
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr "Weichzeichnen Radius:"
+
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
msgstr "Druckerauswahl:"
-#original text: "Name:"
-msgid "Name:"
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
msgstr "Name:"
-#original text: "Command:"
-msgid "Command:"
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
msgstr "Befehl:"
-#original text: "Copy number option:"
-msgid "Copy number option:"
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
msgstr "Option for Anzahl der Kopien:"
-#original text: "Resolution (dpi):"
-msgid "Resolution (dpi):"
-msgstr "Auflösung (dpi):"
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "Lineart Auflösung (dpi):"
+
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "Graustufen Auflösung (dpi):"
-#original text: "Width (1/72 inch):"
-msgid "Width [mm]:"
-msgstr "Breite (1/72 Zoll):"
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "Farb-Auflösung (dpi):"
-#original text: "Height (1/72 inch):"
-msgid "Height [mm]:"
-msgstr "Höhe (1/72 Zoll):"
+#. TEXT_SETUP_PRINTER_WIDTH
+msgid "Width"
+msgstr "Breite"
-#original text: "Left offset (1/72 inch):"
-msgid "Left offset [mm]:"
-msgstr "Linker Rand (1/72 Zoll):"
+#. TEXT_SETUP_PRINTER_HEIGHT
+msgid "Height"
+msgstr "Höhe"
-#original text: "Bottom offset (1/72 inch):"
-msgid "Bottom offset [mm]:"
-msgstr "Unterer Rand (1/72 Zoll):"
+#. TEXT_SETUP_PRINTER_LEFT
+msgid "Left offset"
+msgstr "Linker Rand"
-#original text: "Printer gamma value:"
-msgid "Printer gamma value:"
+#. TEXT_SETUP_PRINTER_BOTTOM
+msgid "Bottom offset"
+msgstr "Unterer Rand"
+
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
msgstr "Drucker Gammawert:"
-#original text: "Printer gamma red:"
-msgid "Printer gamma red:"
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
msgstr "Drucker Gammawert rot:"
-#original text: "Printer gamma green:"
-msgid "Printer gamma green:"
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
msgstr "Drucker Gammawert grün:"
-#original text: "Printer gamma blue:"
-msgid "Printer gamma blue:"
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
msgstr "Drucker Gammawert blau:"
-#original text: "JPEG image quality"
-msgid "JPEG image quality"
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "Temporäres Verzeichnis"
+
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "Bilddatei-Rechte"
+
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "Verzeichnisrechte"
+
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
msgstr "JPEG Bildqualität"
-#original text: "PNG image compression"
-msgid "PNG image compression"
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
msgstr "PNG Bildkompression"
-#original text: "TIFF multi bit image compression"
-msgid "TIFF multi bit image compression"
-msgstr "TIFF multibit Bildkompression"
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr "Dateinamenzähler Länge"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "TIFF 16 bit Bildkompression"
-#original text: "TIFF lineart image compression"
-msgid "TIFF lineart image compression"
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "TIFF 8 bit Bildkompression"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
msgstr "TIFF lineart Bildkompression"
-#original text: "Preview gamma:"
-msgid "Preview gamma:"
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "Vorschau Oversampling:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
msgstr "Vorschau Gamma:"
-#original text: "Preview gamma red:"
-msgid "Preview gamma red:"
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
msgstr "Vorschau Gamma rot:"
-#original text: "Preview gamma green:"
-msgid "Preview gamma green:"
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
msgstr "Vorschau Gamma grün:"
-#original text: "Preview gamma blue:"
-msgid "Preview gamma blue:"
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
msgstr "Vorschau Gamma blau:"
-#original text: "Helpfile viewer (HTML):"
-msgid "Helpfile viewer (HTML):"
-msgstr "Hilfedatei Betrachter (HTML):"
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "Schwellwert Option:"
-#original text: "Command:"
-msgid "Command:"
-msgstr "Befehl:"
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr "Modus automatischer Dokumenteneinzug:"
+
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr "Vorschau Bereich Pipette"
+
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "Schwellwert Minimum:"
-#original text: "Receiver option:"
-msgid "Receiver option:"
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "Schwellwert Maximum:"
+
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "Schwellwert Multiplikator:"
+
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "Schwellwert Verschiebung:"
+
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "Name des Scanodus \"Graustufen\":"
+
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "Hilfedatei Betrachter (HTML):"
+
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
msgstr "Option für Empfängernummer"
-#original text: "Postscriptfile option:"
-msgid "Postscriptfile option:"
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
msgstr "Option für Postscriptdatei:"
-#original text: "Normal mode option:"
-msgid "Normal mode option:"
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
msgstr "Option für Normalmodus:"
-#original text: "Fine mode option:"
-msgid "Fine mode option:"
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
msgstr "Option für Feinmodus:"
-#original text: "Viewer (Postscript):"
-msgid "Viewer (Postscript):"
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
msgstr "Betrachter (Postscript):"
-#original text: "Copy options"
-msgid "Copy options"
-msgstr "Photokopie"
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr "SMTP Server:"
+
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr "SMTP Server:"
+
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr "Von:"
-#original text: "Saving options"
-msgid "Saving options"
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr "Antwort an:"
+
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr "POP3 Server:"
+
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr "POP3 Port:"
+
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr "POP3 Benutzer:"
+
+#. TEXT_SETUP_POP3_PASS
+msgid "POP3 password:"
+msgstr "POP3 Passwort:"
+
+#. TEXT_SETUP_MAIL_VIEWER
+msgid "Viewer (png):"
+msgstr "Betrachter (png):"
+
+#. TEXT_SETUP_OCR_COMMAND
+msgid "OCR Command:"
+msgstr "OCR Befehl:"
+
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+msgid "Inputfile option:"
+msgstr "Option für Eingabedatei:"
+
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+msgid "Outputfile option:"
+msgstr "Option für Ausgabedatei:"
+
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr "Benutzer"
+
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr "Gruppe"
+
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr "Alle"
+
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
msgstr "Speichern"
-#original text: "Display options"
-msgid "Display options"
-msgstr "Darstellung"
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr "Bild"
+
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "Photokopie"
-#original text: "Fax options"
-msgid "Fax options"
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
msgstr "Fax"
-#original text: "Scan"
-msgid "Scan"
-msgstr "Scannen"
+#. NOTEBOOK_MAIL_OPTIONS
+msgid "Mail"
+msgstr "E-Mail"
-#original text: "Copy"
-msgid "Copy"
-msgstr "Kopieren"
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr ""
-#original text: "Fax"
-msgid "Fax"
-msgstr "Faxen"
+#. NOTEBOOK_DISPLAY_OPTIONS
+msgid "Display"
+msgstr "Darstellung"
-#original text: "Setup"
-msgid "Setup"
-msgstr "Konfiguration"
+#. NOTEBOOK_ENHANCE_OPTIONS
+msgid "Enhancement"
+msgstr "Verbesserungen"
-#original text: "Show tooltips"
-msgid "Show tooltips"
+#. MENU_ITEM_MAIL
+msgid "Email"
+msgstr "E-Mail"
+
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
msgstr "Zeige Tipps"
-#original text: "Show preview"
-msgid "Show preview"
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
msgstr "Zeige Vorschau"
-#original text: "Show histogram"
-msgid "Show histogram"
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
msgstr "Zeige Histogramm"
-#original text: "Show standard options"
-msgid "Show standard options"
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "Zeige Gammakurve"
+
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
msgstr "Zeige Standardoptionen"
-#original text: "Show advanced options"
-msgid "Show advanced options"
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
msgstr "Zeige erweiterte Optionen"
-#original text: "Show resolution list"
-msgid "Show resolution list"
-msgstr "Zeige Auflösungsliste"
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr "Konfiguration"
-#original text: "Length unit"
-msgid "Length unit"
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
msgstr "Längeneinheit"
-#original text: "millimeters"
-msgid "millimeters"
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
msgstr "Millimeter"
-#original text: "centimeters"
-msgid "centimeters"
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
msgstr "Zentimeter"
-#original text: "inches"
-msgid "inches"
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
msgstr "Zoll"
-#original text: "Save device settings"
-msgid "Save device settings"
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "Aktualisierung"
+
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "kontinuierlich"
+
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "diskontinuierlich"
+
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "verzögert"
+
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "Zeige Auflösungsliste"
+
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "Drehe Postscript"
+
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
msgstr "Speichere Geräteeinstellungen"
-#original text: "Load device settings"
-msgid "Load device settings"
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
msgstr "Lade Geräteeinstellungen"
-#original text: "Xsane doc"
-msgid "Xsane doc"
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "Arbeitsverzeichnis ändern"
+
+#. MENU_ITEM_XSANE_LICENSE
+msgid "License"
+msgstr "Lizenz"
+
+#. MENU_ITEM_XSANE_DOC
+msgid "XSane doc"
msgstr "XSane Anleitung"
-#original text: "Backend doc"
-msgid "Backend doc"
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
msgstr "Backend Anleitung"
-#original text: "Available backends"
-msgid "Available backends"
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
msgstr "Erreichbare Backends"
-#original text: "Scantips"
-msgid "Scantips"
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
msgstr "Scantipps"
-#original text: "Problems?"
-msgid "Problems?"
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
msgstr "Probleme?"
-#original text: "no compression"
-msgid "no compression"
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr "nicht aktiv"
+
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
msgstr "keine Kompression"
-#original text: "CCITT 1D Huffman compression"
-msgid "CCITT 1D Huffman compression"
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
msgstr "CCITT 1D Huffman Kompression"
-#original text: "CCITT Group 3 Fax compression"
-msgid "CCITT Group 3 Fax compression"
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
msgstr "CCITT Gruppe 3 Fax Kompression"
-#original text: "CCITT Group 4 Fax compression"
-msgid "CCITT Group 4 Fax compression"
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
msgstr "CCITT Gruppe 4 Fax Kompression"
-#original text: "JPEG DCT compression"
-msgid "JPEG DCT compression"
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
msgstr "JPEG DCT Kompression"
-#original text: "pack bits"
-msgid "pack bits"
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
msgstr "gepackte Bits"
-#original text: "by ext"
-msgid "by ext"
-msgstr "nach Erw"
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "Standard Optionen Fenster (b/w)"
-#original text: "Saving image"
-msgid "Saving image"
-msgstr "Speichere Bild"
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "XSane Hauptfenster (b/w)"
-#original text: "Saving fax image"
-msgid "Saving fax image"
-msgstr "Speichere Faxbild"
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "XSane Hauptfenster (grau->b/w)"
-#original text: "Converting data...."
-msgid "Converting data...."
-msgstr "Konvertiere Daten..."
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr "(nichts)"
-#original text: "Converting to postscript"
-msgid "Converting to postscript"
-msgstr "Konvertiere nach Postscript"
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "nach Erw"
-#original text: "Scanning"
-msgid "Scanning"
-msgstr "Scanne"
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr "Auswahl zur Liste hinzufuegen"
-#original text: "Receiving %s data for `%s'..."
-msgid "Receiving %s data for `%s'..."
-msgstr "Empfange %s Daten für `%s'..."
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr "Definition umbenennen"
-#original text: "Receiving %s data for photocopy ..."
-msgid "Receiving %s data for photocopy ..."
-msgstr "Empfange %s Daten für Photokopie"
+#. MENU_ITEM_PRESET_AREA_DELETE
+msgid "Delete definition"
+msgstr "Definition löschen"
-#original text: "Receiving %s data for fax ..."
-msgid "Receiving %s data for fax ..."
-msgstr "Empfange %s Daten für Fax ..."
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr "Nach oben schieben"
-#original text: "Receiving %s data for GIMP..."
-msgid "Receiving %s data for GIMP..."
-msgstr "Empfange %s Daten für GIMP..."
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr "Nach unten schieben"
-#original text: "Use XSane for SCANning, photoCOPYing, FAXing..."
-msgid "Use XSane for SCANning, photoCOPYing, FAXing..."
-msgstr "Benutze XSane zum Scannen, Kopieren oder Faxen"
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "Scanne"
-#original text: "Browse for image filename"
-msgid "Browse for image filename"
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "Empfange %s Daten"
+
+#. PROGRESS_TRANSFERING_DATA
+msgid "Transfering image"
+msgstr "Bild übertragen"
+
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr "Bild drehen"
+
+#. PROGRESS_MIRRORING_DATA
+msgid "Mirroring image"
+msgstr "Bild spiegeln"
+
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr "Bild packen"
+
+#. PROGRESS_CONVERTING_DATA
+msgid "Converting image"
+msgstr "Bild konvertieren"
+
+#. PROGRESS_SAVING_DATA
+msgid "Saving image"
+msgstr "Bild speichern"
+
+#. PROGRESS_CLONING_DATA
+msgid "Cloning image"
+msgstr "Bild clonen"
+
+#. PROGRESS_SCALING_DATA
+msgid "Scaling image"
+msgstr "Bild skalieren"
+
+#. PROGRESS_DESPECKLING_DATA
+msgid "Despeckling image"
+msgstr "Flecken entfernen"
+
+#. PROGRESS_BLURING_DATA
+msgid "Bluring image"
+msgstr "Bild weichzeichnen"
+
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr "Scan starten <Ctrl-Enter>"
+
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr "Scan abbrechen <ESC>"
+
+#. DESC_PREVIEW_ACQUIRE
+msgid "Acquire preview scan <Alt-p>"
+msgstr "Vorschauscan <Alt-p>"
+
+#. DESC_PREVIEW_CANCEL
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "Vorschauscan abbrechen <Alt-ESC>"
+
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+"speichern-<Ctrl-s>, betrachten-<Ctrl-v>, kopieren-<Ctrl-c>, faxen-<Ctrl-f> "
+"oder mailen-<Ctrl-m>"
+
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr "Type des Quellmediums auswählen"
+
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr "Wert, der nach einem Scan zum Dateinamenzähler addiert wird"
+
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
msgstr "Suche nach Bild-Dateinamen"
-#original text: "Filename for scanned image"
-msgid "Filename for scanned image"
+#. DESC_FILENAME
+msgid "Filename for scanned image"
msgstr "Dateiname für gescanntes Bild"
-#original text: "Filename extension and type of image format"
-msgid "Filename extension and type of image format"
-msgstr "Dateinamenerweiterung und Format der Bilddatei"
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr ""
+"Dateiformat, die passende Dateinamen-Erweiterung wird autmatisch an den "
+"Dateinamen angehängt"
-#original text: "Enter name of fax project"
-msgid "Enter name of fax project"
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
msgstr "Name des Faxprojekts"
-#original text: "Enter new name for faxpage"
-msgid "Enter new name for faxpage"
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
msgstr "Name der Faxseite eingeben"
-#original text: "Enter receiver phone number or address"
-msgid "Enter receiver phone number or address"
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
msgstr "Telephonnummer des Empfängers eingeben"
-#original text: "Select printer definition"
-msgid "Select printer definition"
-msgstr "Wähle Druckerdefinition"
+#. DESC_MAILPROJECT
+msgid "Enter name of mail project"
+msgstr "Name des Mailprojekts"
+
+#. DESC_MAILIMAGENAME
+msgid "Enter new name for mail image"
+msgstr "neuen Name für E-Mail Bild eingeben"
+
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr "EMail Adresse eingeben"
-#original text: "Set scan resolution"
-msgid "Set scan resolution"
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr "Betreff eingeben"
+
+#. DESC_PRESET_AREA_NAME
+msgid "Enter new name for preset area"
+msgstr "Name der Gebietsvoreinstellung eingeben"
+
+#. DESC_PRINTER_SELECT
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "Wähle Druckerdefinition <Shift-F1/F2/...>"
+
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
msgstr "Bestimmt die Scanauflösung"
-#original text: "Set zoomfactor"
-msgid "Set zoomfactor"
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "Bestimmt die Scanauflösung in X-Richtung"
+
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "Bestimmt die Scanauflösung in Y-Richtung"
+
+#. DESC_ZOOM
+msgid "Set zoomfactor"
msgstr "Bestimmt den Vergrößerungsfaktor"
-#original text: "Set number of copies"
-msgid "Set number of copies"
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "Bestimmt den Vergrößerungsfaktor in X-Richtung"
+
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "Bestimmt den Vergrößerungsfaktor in Y-Richtung"
+
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
msgstr "Bestimmt die Anzahl der Kopien"
-#original text: "Negative: Invert colors for scanning negatives\n" "e.g. swap black and white"
-msgid "Negative: Invert colors for scanning negatives\n" "e.g. swap black and white"
-msgstr "Negativ: Invertiere Farben, zum Scannen von Negativen"
+#. DESC_NEGATIVE
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr "Negativ: Invertiere Farben, zum Scannen von Negativen <Shift-n>"
-#original text: "Set gamma value"
-msgid "Set gamma value"
+#. DESC_GAMMA
+msgid "Set gamma value"
msgstr "Bestimmt Gammawert"
-#original text: "Set gamma value for red component"
-msgid "Set gamma value for red component"
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
msgstr "Bestimmt Gammawert für rote Komponente"
-#original text: "Set gamma value for green component"
-msgid "Set gamma value for green component"
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
msgstr "Bestimmt Gammawert für grüne Komponente"
-#original text: "Set gamma value for blue component"
-msgid "Set gamma value for blue component"
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
msgstr "Bestimmt Gammawert für blaue Komponente"
-#original text: "Set brightness"
-msgid "Set brightness"
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
msgstr "Bestimmt Helligkeit"
-#original text: "Set brightness for red component"
-msgid "Set brightness for red component"
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
msgstr "Bestimmt Helligkeit für rote Komponente"
-#original text: "Set brightness for green component"
-msgid "Set brightness for green component"
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
msgstr "Bestimmt Helligkeit für grüne Komponente"
-#original text: "Set brightness for blue component"
-msgid "Set brightness for blue component"
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
msgstr "Bestimmt Helligkeit für blaue Komponente"
-#original text: "Set contrast"
-msgid "Set contrast"
+#. DESC_CONTRAST
+msgid "Set contrast"
msgstr "Bestimmt Kontrast"
-#original text: "Set contrast for red component"
-msgid "Set contrast for red component"
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
msgstr "Bestimmt Kontrast für rote Komponente"
-#original text: "Set contrast for green component"
-msgid "Set contrast for green component"
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
msgstr "Bestimmt Kontrast für grüne Komponente"
-#original text: "Set contrast for blue component"
-msgid "Set contrast for blue component"
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
msgstr "Bestimmt Kontrast für blaue Komponente"
-#original text: "RGB default: Set enhancement values for red, green and blue to default values:\n" " gamma = 1.0\n" " brightness = 0\n" " contrast = 0"
-msgid "RGB default: Set enhancement values for red, green and blue to default values:\n" " gamma = 1.0\n" " brightness = 0\n" " contrast = 0"
-msgstr "RGB Standard: Setzt Farbverbesserungswerte für rot, grün und blau auf Standardwerte:\n" "Gamma = 1.0\n" "Helligkeit = 0\n" "Kontrast = 0"
-
-#original text: "Autoadjust gamma, brightness and contrast in dependance of selected area"
-msgid "Autoadjust gamma, brightness and contrast in dependance of selected area"
-msgstr "Automatische Berechnung für Gamma, Helligkeit und Kontrast in Abhängigkeit vom ausgewählten Bereich"
-
-#original text: "Set default enhancement values:\n" "gamma = 1.0\n" "brightness = 0\n" "contrast = 0"
-msgid "Set default enhancement values:\n" "gamma = 1.0\n" "brightness = 0\n" "contrast = 0"
-msgstr "Setze Standardwerte für Farbverbesserung:\n" "Gamma = 1.0\n" "Helligkeit = 0\n" "Kontrast = 0"
-
-#original text: "Restore enhancement values from preferences"
-msgid "Restore enhancement values from preferences"
-msgstr "Lade Farbverbesserungswerte aus Einstellungen"
-
-#original text: "Store active enhancement values to preferences"
-msgid "Store active enhancement values to preferences"
-msgstr "Speichere Farbverbesserungswerte in Einstellungen"
-
-#original text: "Show histogram of intensity/gray"
-msgid "Show histogram of intensity/gray"
-msgstr "Zeige Histogramm für Intensität/grau"
-
-#original text: "Show histogram of red component"
-msgid "Show histogram of red component"
-msgstr "Zeige Histogramm für rote Komponente"
-
-#original text: "Show histogram of green component"
-msgid "Show histogram of green component"
-msgstr "Zeige Histogramm für grüne Komponente"
-
-#original text: "Show histogram of blue component"
-msgid "Show histogram of blue component"
-msgstr "Zeige Histogramm für blaue Komponente"
-
-#original text: "Display histogram with lines instead of pixels"
-msgid "Display histogram with lines instead of pixels"
-msgstr "Zeichne Histogramm mit Linien anstatt mit Punkten"
-
-#original text: "Show logarithm of pixelcount"
-msgid "Show logarithm of pixelcount"
-msgstr "Benutze Logarithmus der Pixelzahlen"
-
-#original text: "Select definition to change"
-msgid "Select definition to change"
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "Schwellwert setzen"
+
+#. DESC_RGB_DEFAULT
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"RGB Standard: Setzt Farbverbesserungswerte für rot, grün und blau auf "
+"Standardwerte <Shift-b>:\n"
+"Gamma = 1.0\n"
+"Helligkeit = 0\n"
+"Kontrast = 0"
+
+#. DESC_ENH_AUTO
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr "Automatische Einstellung von Gamma, Helligkeit und Kontrast <Shift-e>"
+
+#. DESC_ENH_DEFAULT
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"Setze Standardwerte für Farbverbesserung <Shift-d>:\n"
+"Gamma = 1.0\n"
+"Helligkeit = 0\n"
+"Kontrast = 0"
+
+#. DESC_ENH_RESTORE
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "Lade Farbverbesserungswerte aus Einstellungen >shift-r>"
+
+#. DESC_ENH_STORE
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr "Speichere Farbverbesserungswerte in Einstellungen <Shift-m>"
+
+#. DESC_HIST_INTENSITY
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "Zeige Histogramm für Intensität/grau <Alt-i>"
+
+#. DESC_HIST_RED
+msgid "Show histogram of red component <Alt-r>"
+msgstr "Zeige Histogramm für rote Komponente <Alt-r>"
+
+#. DESC_HIST_GREEN
+msgid "Show histogram of green component <Alt-g>"
+msgstr "Zeige Histogramm für grüne Komponente <Alt-g>"
+
+#. DESC_HIST_BLUE
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "Zeige Histogramm für blaue Komponente <Alt-b>"
+
+#. DESC_HIST_PIXEL
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr "Zeichne Histogramm mit Linien anstatt mit Punkten <Alt-m>"
+
+#. DESC_HIST_LOG
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "Benutze Logarithmus der Pixelzahlen <Alt-l>"
+
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
msgstr "Auswahl der zu ändernden Definition"
-#original text: "Define a name for the selection of this definition"
-msgid "Define a name for the selection of this definition"
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
msgstr "Namen der Definition"
-#original text: "Enter command to be executed in copy mode (e.g. \"lpr -\")"
-msgid "Enter command to be executed in copy mode (e.g. \"lpr -\")"
-msgstr "Befehl der im Kopiermodus zum Drucken ausgeführt werden soll (z.B. \"lpr -\")"
+#. DESC_PRINTER_COMMAND
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr ""
+"Befehl der im Kopiermodus zum Drucken ausgeführt werden soll (z.B. \"lpr\")"
-#original text: "Enter option for copy numbers"
-msgid "Enter option for copy numbers"
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
msgstr "Option, mit der die Anzahl der Kopien angegeben wird"
-#original text: "Resolution with which images are printed and saved in postscript"
-msgid "Resolution with which images are printed and saved in postscript"
-msgstr "Auflösung, mit der Bilder gedrucht und im Postscriptformat gespeichert werden"
-
-#original text: "Width of printable area in 1/72 inch"
-msgid "Width of printable area in mm"
-msgstr "Breite des druckbaren Bereichs in 1/72 Zoll"
-
-#original text: "Height of printable area in 1/72 inch"
-msgid "Height of printable area in mm"
-msgstr "Höhe des druckbaren Bereichs in 1/72 Zoll"
-
-#original text: "Left offset from the edge of the paper to the printable area in 1/72 inch"
-msgid "Left offset from the edge of the paper to the printable area in mm"
-msgstr "Abstand vom linken Papierrand zum Beginn des druckbaren Bereichs in 1/72 Zoll"
-
-#original text: "Bottom offset from the edge of the paper to the printable area in 1/72 inch"
-msgid "Bottom offset from the edge of the paper to the printable area in mm"
-msgstr "Abstand vom unteren Papierrand zum Beginn des druckbaren Bereichs in 1/72 Zoll"
-
-#original text: "Additional gamma value for photocopy"
-msgid "Additional gamma value for photocopy"
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr ""
+"Auflösung, mit der Lineart-Bilder gedrucht und im Postscriptformat "
+"gespeichert werden"
+
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr ""
+"Auflösung, mit der Graustufen-Bilder gedrucht und im Postscriptformat "
+"gespeichert werden"
+
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr ""
+"Auflösung, mit der Farb-Bilder gedrucht und im Postscriptformat gespeichert "
+"werden"
+
+#. DESC_PRINTER_WIDTH
+msgid "Width of printable area"
+msgstr "Breite des druckbaren Bereichs"
+
+#. DESC_PRINTER_HEIGHT
+msgid "Height of printable area"
+msgstr "Höhe des druckbaren Bereichs"
+
+#. DESC_PRINTER_LEFTOFFSET
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr "Abstand vom linken Papierrand zum Beginn des druckbaren Bereichs"
+
+#. DESC_PRINTER_BOTTOMOFFSET
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "Abstand vom unteren Papierrand zum Beginn des druckbaren Bereichs"
+
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
msgstr "Zusätzlicher Gammawert beim Photokopieren"
-#original text: "Additional gamma value for red component for photocopy"
-msgid "Additional gamma value for red component for photocopy"
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
msgstr "Zusätzlicher Gammawert für rote Komponente beim Photokopieren"
-#original text: "Additional gamma value for green component for photocopy"
-msgid "Additional gamma value for green component for photocopy"
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
msgstr "Zusätzlicher Gammawert für grüne Komponente beim Photokopieren"
-#original text: "Additional gamma value for blue component for photocopy"
-msgid "Additional gamma value for blue component for photocopy"
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
msgstr "Zusätzlicher Gammawert für blaue Komponente beim Photokopieren"
-#original text: "Quality in percent if image is saved as jpeg or tiff with jpeg compression"
-msgid "Quality in percent if image is saved as jpeg or tiff with jpeg compression"
-msgstr "Qualität in Prozent wenn Bild als JPEG oder als TIFF mit JPEG-Kompression gespeichert wird"
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "Pfad zum temporären Verzeichnis"
+
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "Nach temporärem Verzeichnis suchen"
-#original text: "Compression if image is saved as png"
-msgid "Compression if image is saved as png"
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr ""
+"Qualität in Prozent wenn Bild als JPEG oder als TIFF mit JPEG-Kompression "
+"gespeichert wird"
+
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
msgstr "Kompression wenn Bild im PNG-Format gespeichert wird"
-#original text: "Compression type if multi bit image is saved as tiff"
-msgid "Compression type if multi bit image is saved as tiff"
-msgstr "Kompression wenn multibit Bild im TIFF-Format gespeichert wird"
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr "Minimale Laenge des Zaehlers im Dateinamen"
-#original text: "Compression type if lineart image is saved as tiff"
-msgid "Compression type if lineart image is saved as tiff"
-msgstr "Kompression wenn lineart Bild im TIFF-Format gespeichert wird"
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "Kompression wenn 16 bit Bild im TIFF-Format gespeichert wird"
-#original text: "Warn before overwriting an existing file"
-msgid "Warn before overwriting an existing file"
-msgstr "Warne vorm Überschreiben exisitierender Dateien"
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "Kompression wenn 8 bit Bild im TIFF-Format gespeichert wird"
+
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "Kompression wenn lineart Bild im TIFF-Format gespeichert wird"
-#original text: "If the filename is of the form \"name-001.ext\" " "(where the number of digits is free) " "the number is increased after a scan is finished"
-msgid "If the filename is of the form \"name-001.ext\" " "(where the number of digits is free) " "the number is increased after a scan is finished"
-msgstr "... wenn der Dateiname folgender Form ist: \"name-001.erw\""
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr ""
+"Geräteabhängige Einstellungen werden in der Default-Datei beim Beenden von "
+"xsane gespeichert"
-#original text: "If filename counter is automatically increased, used numbers are skipped"
-msgid "If filename counter is automatically increased, used numbers are skipped"
-msgstr "Wenn der Dateinamenzähler automatisch erhöht wird, werden benutzte Dateinummern übersprungen"
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "Warne vorm Überschreiben exisitierender Dateien"
-#original text: "Use fixed main window size or scrolled, resizable main window"
-msgid "Use fixed main window size or scrolled, resizable main window"
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr ""
+"Wenn der Dateinamenzähler automatisch erhöht wird, werden benutzte "
+"Dateinummern übersprungen"
+
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr ""
+"Wenn der Scanner das Bild mit 16 Bits/Farbe liefert wird das Bild mit 8 "
+"Bits/Farbe gespeichert"
+
+#. DESC_PSFILE_WIDTH
+msgid "Width of paper for postscript files"
+msgstr "Breite des druckbaren Bereichs für Postscript"
+
+#. DESC_PSFILE_HEIGHT
+msgid "Height of paper for postscript files"
+msgstr "Höhe des druckbaren Bereichs für Postscript"
+
+#. DESC_PSFILE_LEFTOFFSET
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Abstand vom linken Papierrand zum Beginn des druckbaren Bereichs für "
+"Postsciptdateien"
+
+#. DESC_PSFILE_BOTTOMOFFSET
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Abstand vom unteren Papierrand zum Beginn des druckbaren Bereichs für "
+"Postsciptdateien"
+
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
msgstr "Verwende feste oder veränderbare Hauptfenstergröße"
-#original text: "Preserve preview image for next program start"
-msgid "Preserve preview image for next program start"
-msgstr "Behalte Vorschaubild für nächsten Programmstart"
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr ""
+
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr ""
+"Benutze eigene Farbpalette für Vorschaubild, wenn die Bildschirmfarbtiefe 8 "
+"Bit beträgt"
-#original text: "Use an own colormap for preview if display depth is 8 bpp"
-msgid "Use an own colormap for preview if display depth is 8 bpp"
-msgstr "Benutze eigene Farbpalette für Vorscahubild, wenn die Bildschirmfarbtiefe 8 Bit beträgt"
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr "Wert, mit dem die berechnete Vorschauauflösung multipliziert wird"
-#original text: "Set gamma correction value for preview image"
-msgid "Set gamma correction value for preview image"
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
msgstr "Bestimme Gammwert für Vorschaubild"
-#original text: "Set gamma correction value for red component of preview image"
-msgid "Set gamma correction value for red component of preview image"
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
msgstr "Bestimme Gammwert der roten Komponente für Vorschaubild"
-#original text: "Set gamma correction value for green component of preview image"
-msgid "Set gamma correction value for green component of preview image"
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
msgstr "Bestimme Gammwert der grünen Komponente für Vorschaubild"
-#original text: "Set gamma correction value for blue component of preview image"
-msgid "Set gamma correction value for blue component of preview image"
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
msgstr "Bestimme Gammwert der blauen Komponente für Vorschaubild"
-#original text: "Enter command to be executed to display helpfiles, must be a html-viewer!"
-msgid "Enter command to be executed to display helpfiles, must be a html-viewer!"
-msgstr "Befehl, der ausgeführt werden soll, um Hilfedateien anzuzeigen, muß ein HTML-Betrachter sein!"
-
-#original text: "Enter command to be executed in fax mode"
-msgid "Enter command to be executed in fax mode"
+#. DESC_LINEART_MODE
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "Definiert die Art, wie XSane die Schwellwert-Option behandeln soll"
+
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr ""
+"Name des Graustufen-Scanmodus auswählen. Dieser Scanmodus wird beim "
+"Schwarz-Weiss Vorschauscan verwendet, wenn Umwandlung von Graustufen in "
+"Schwarz/Weiß aktiviert ist."
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "Minimaler Schwellwert des Scanners in %"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "Maximaler Schwellwert des Scanners in %"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Multiplikator um XSane's Schwellwertbereich und den Schwellwertbereich des "
+"Scanners aufeinander abzustimmen"
+
+#. DESC_PREVIEW_THRESHOLD_OFF
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Schwellwertverschiebung um XSane's Schwellwertbereich und den "
+"Schwellwertbereich des Scanners aufeinander abzustimmen"
+
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+"Scanquelle für automatischen Dokumenteneinzug auswählen. Wenn diese "
+"Scanquelle angewählt ist, scannt XSane bis \"kein Papier\" oder ein Fehler "
+"auftritt."
+
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr ""
+"Größe des Quadrats, das zum Mitteln der Farbe für die Pipette Funkiton "
+"benutzt wird"
+
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr ""
+"Befehl, der ausgeführt werden soll, um Hilfedateien anzuzeigen, muß ein "
+"HTML-Betrachter sein!"
+
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr ""
+"Gamma Wert wird angepasst wenn Knopf für automatische Verbesserung gedrückt "
+"wird"
+
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr "Scanbereich nach Vorschauscan automatisch auswählen"
+
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr "Farbkorrektur nach Vorschauscan ausführen"
+
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
msgstr "Befehl, der zum Senden eines Faxprojekts ausgeführt werden soll"
-#original text: "Enter option to specify receiver"
-msgid "Enter option to specify receiver"
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
msgstr "Option, mit der die Empfängertelephonnumer angegeben wird"
-#original text: "Enter option to specify postscript files following"
-msgid "Enter option to specify postscript files following"
-msgstr "Option, mit der angegeben wird, dass der Dateiname einer Postscriptdatei folgt"
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr ""
+"Option, mit der angegeben wird, dass der Dateiname einer Postscriptdatei "
+"folgt"
-#original text: "Enter option to specify normal mode (low resolution)"
-msgid "Enter option to specify normal mode (low resolution)"
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
msgstr "Option, mit der die vertikale Auflösung auf 98 lpi gestellt wird"
-#original text: "Enter option to specify fine mode (high resolution)"
-msgid "Enter option to specify fine mode (high resolution)"
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
msgstr "Option, mit der die vertikale Auflösung auf 196 lpi gestellt wird"
-#original text: "Enter command to be executed to view a fax"
-msgid "Enter command to be executed to view a fax"
-msgstr "Befehl, der ausgeführt werden soll, um Faxseiten(Postscript) anzuzeigen"
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr ""
+"Befehl, der ausgeführt werden soll, um Faxseiten(Postscript) anzuzeigen"
+
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr "Sende Fax mit hoher vertikaler Auflösung (196 lpi anstatt 98 lpi)"
+
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr "IP Adresse oder Domain Name des SMTP Servers"
+
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr "Port, auf dem zum SMTP Server verbunden werden soll"
+
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr "Geben Sie Ihre E-Mail Adresse ein"
+
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr "Geben Sie die E-Mail Adresse für Antworten auf diese Mail ein"
-#original text: "Use high vertical resolution (196 lpi instead of 98 lpi)"
-msgid "Use high vertical resolution (196 lpi instead of 98 lpi)"
-msgstr "Benutze hohe vertikale Auflösung (196 lpi)"
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr ""
+"Authehtifizierung über POP3 Server durchführen bevor mail gesendet wird"
-#original text: "Pick white point"
-msgid "Pick white point"
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr "IP ADresse oder Domain Name des POP3 Servers"
+
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr "Port, auf dem zum POP3 Server verbunden werden soll"
+
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr "Benuter Name für den POP3 Server"
+
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr "Passwort für den POP3 Server"
+
+#. DESC_MAIL_VIEWER
+msgid "Enter command to be executed to view a mail image"
+msgstr "Befehl, der ausgeführt werden soll, um Mail-Bilder anzuzeigen"
+
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr "E-Mail wird im hmtl Modus gesandt"
+
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr ""
+
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr ""
+
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr ""
+
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr "lesen"
+
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr "schreiben"
+
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr "ausführen"
+
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
msgstr "Wähle weißen Punkt"
-#original text: "Pick gray point"
-msgid "Pick gray point"
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
msgstr "Wähle grauen Punkt"
-#original text: "Pick black point"
-msgid "Pick black point"
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
msgstr "Wähle schwarzen Punkt"
-#original text: "Use full scanarea"
-msgid "Use full scanarea"
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
msgstr "Zoomt auf kompletten Scanbereich"
-#original text: "Zoom 20% out"
-msgid "Zoom 20% out"
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
msgstr "Zoomt um 20% heraus"
-#original text: "Zoom into selected area"
-msgid "Zoom into selected area"
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
msgstr "Zoomt in den gewählten Bereich hinein"
-#original text: "Undo last zoom"
-msgid "Undo last zoom"
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
msgstr "letzten Zoom rückgängig machen"
-#original text: "Select visible area"
-msgid "Select visible area"
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
msgstr "Sichtbaren Bereich auswählen"
-#original text: "Failed to determine home directory:"
-msgid "Failed to determine home directory:"
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr "Scanbereich automatisch wählen"
+
+#. DESC_DELETE_IMAGES
+msgid "Delete preview image cache"
+msgstr "Vorschau Speicher loeschen"
+
+#. DESC_PRESET_AREA
+msgid "Preset area"
+msgstr "Bereichsvoreinstellung"
+
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr "Drehe Vorschau und Scan"
+
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr ""
+
+#. DESC_VIEWER_CLONE
+msgid "Clone image"
+msgstr "Bild clonen"
+
+#. DESC_VIEWER_ROTATE90
+msgid "Rotate image 90 degree"
+msgstr "Drehe Bild um 90 Grad"
+
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr "Drehe Bild um 180 Grad"
+
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr "Drehe Bild um 270 Grad"
+
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr "Bild an vertikaler Achse spiegeln"
+
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr "Bild an horizontaler Achse spiegeln"
+
+#. DESC_VIEWER_ZOOM
+msgid "Zoom image"
+msgstr "Bild zoomen"
+
+#. DESC_STORE_MEDIUM
+msgid "Store medium"
+msgstr "Medium speichern"
+
+#. DESC_DELETE_MEDIUM
+msgid "Delete active medium"
+msgstr "Medium löschen"
+
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
msgstr "Konnte Heimatverzeichnis nicht bestimmen"
-#original text: "Filename too long"
-msgid "Filename too long"
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "Konnte Verzeichnis nicht wechseln"
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
msgstr "Dateiname zu lang"
-#original text: "Failed to set value of option"
-msgid "Failed to set value of option"
+#. ERR_CREATE_TEMP_FILE
+msgid "Could not create temporary file"
+msgstr "Konnte temporäre Datei nicht erzeugen"
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
msgstr "Fehler beim Ändern der Option"
-#original text: "Failed to obtain value of option"
-msgid "Failed to obtain value of option"
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
msgstr "Fehler beim Lesen der Option"
-#original text: "Error obtaining option count"
-msgid "Error obtaining option count"
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
msgstr "Konnte Anzahl der Optionen nicht bestimmen"
-#original text: "Failed to open device"
-msgid "Failed to open device"
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
msgstr "Fehler beim Öffnen des Geräts"
-#original text: "no devices available"
-msgid "no devices available"
+#. ERR_NO_DEVICES
+msgid "no devices available"
msgstr "Keine Geräte erreichbar"
-#original text: "Error during read:"
-msgid "Error during read:"
+#. ERR_DURING_READ
+msgid "Error during read:"
msgstr "Fehler beim Lesen:"
-#original text: "Error during save:"
-msgid "Error during save:"
+#. ERR_DURING_SAVE
+msgid "Error during save:"
msgstr "Fehler beim Speichern:"
-#original text: "Can't handle depth"
-msgid "Can't handle depth"
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
msgstr "Nicht unterstützte Bittiefe"
-#original text: "GIMP can't handle depth"
-msgid "GIMP can't handle depth"
-msgstr "GIMP Modus: nicht unterstützt Bittieffe"
+#. ERR_GIMP_BAD_DEPTH
+#, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP unterstützt Bittieffe %d Bits/Farbe nicht"
-#original text: "Unknown file format for saving"
-msgid "Unknown file format for saving"
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
msgstr "Unbekanntes Ausgabedateiformat"
-#original text: "Failed to open"
-msgid "Failed to open"
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
msgstr "Fehler beim Öffnen von"
-#original text: "Failed to open pipe for executing printercommand"
-msgid "Failed to open pipe for executing printercommand"
+#. ERR_CREATE_SECURE_FILE
+msgid "Could not create secure file (may be a link does exist):"
+msgstr ""
+"Konnte keine sichere Datei erzeugen (möglicherweise exisitiert ein Link):"
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
msgstr "Konnte Pipe für Druckbefehl nicht öffnen"
-#original text: "Failed to execute printercommand:"
-msgid "Failed to execute printercommand:"
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
msgstr "Konnte Druckbefehl nicht ausführen"
-#original text: "Failed to start scanner:"
-msgid "Failed to start scanner:"
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
msgstr "Konnte Scanner nicht starten"
-#original text: "Failed to get parameters:"
-msgid "Failed to get parameters:"
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
msgstr "Konnte Parameter nicht lesen"
-#original text: "No output format given"
-msgid "No output format given"
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
msgstr "Kein Ausgabedateiformat angegeben"
-#original text: "out of memory"
-msgid "out of memory"
+#. ERR_NO_MEM
+msgid "out of memory"
msgstr "Kein Speicher"
-#original text: "LIBTIFF reports error"
-msgid "LIBTIFF reports error"
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr "Backend sendet mehr Bilddaten als es in Parametern definiert hat"
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
msgstr "LIBTIFF meldet Fehler"
-#original text: "LIBPNG reports error"
-msgid "LIBPNG reports error"
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
msgstr "LIBPNG meldet Fehler"
-#original text: "unknown type"
-msgid "unknown type"
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
msgstr "unbekannter Typ"
-#original text: "unknown constraint type"
-msgid "unknown constraint type"
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
msgstr "unbekannter verpflichtender Typ"
-#original text: "Failed to execute documentation viewer:"
-msgid "Failed to execute documentation viewer:"
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
msgstr "Konnte Hilfedateibetrachter nicht ausführen:"
-#original text: "Failed to execute fax viewer:"
-msgid "Failed to execute fax viewer:"
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
msgstr "Konnte Faxbetrachter nicht ausführen:"
-#original text: "Failed to execute faxcommand:"
-msgid "Failed to execute faxcommand:"
+#. ERR_FAILED_EXEC_FAX_CMD
+msgid "Failed to execute fax command:"
msgstr "Konnte Faxbefehl nicht ausführen:"
-#original text: "bad frame format"
-msgid "bad frame format"
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+msgid "Failed to execute mail image viewer:"
+msgstr "Konnte E-Mail Bildbetrachter nicht ausführen:"
+
+#. ERR_FAILED_EXEC_OCR_CMD
+msgid "Failed to execute ocr command:"
+msgstr "Konnte OCR-Befehl nicht ausführen:"
+
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
msgstr "unerwartetes FRAME-Format"
-#original text: "unable to set resolution"
-msgid "unable to set resolution"
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
msgstr "konnte Auflösung nicht definieren"
-#original text: "error"
-msgid "error"
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr "Passwortdatei (%s) ist unsicher, benutze Rechte x00\n"
+
+#. ERR_ERROR
+msgid "error"
msgstr "Fehler"
-#original text: "Sane major version number mismatch!"
-msgid "Sane major version number mismatch!"
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
msgstr "Sane Hauptversionsnummern-Konflikt!"
-#original text: "xsane major version ="
-msgid "xsane major version ="
-msgstr "xsane Hauptversionsnummer ="
+#. ERR_XSANE_MAJOR_VERSION
+msgid "XSane major version ="
+msgstr "XSane Hauptversionsnummer ="
-#original text: "backend major version ="
-msgid "backend major version ="
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
msgstr "backend Hauptversionsnummer ="
-#original text: "*** PROGRAM ABORTED ***"
-msgid "*** PROGRAM ABORTED ***"
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
msgstr "*** PROGRAMM ABGEBROCHEN ***"
-#original text: "Failed to allocate image memory:"
-msgid "Failed to allocate image memory:"
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
msgstr "Konnte Bildspeicher nicht allozieren:"
-#original text: "Preview cannot handle bit depth"
-msgid "Preview cannot handle bit depth"
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
msgstr "Vorschau kann Bittiefe nicht handhaben:"
-#original text: "GIMP support missing"
-msgid "GIMP support missing"
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
msgstr "GIMP Unterstützung fehlt"
-#original text: "Filename counter overflow"
-msgid "Filename counter overflow"
-msgstr "Dateinamenzähler übergelaufen"
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr "Konnte temporäre Vorschaudateien nicht erzeugen"
-#original text: "warning: option has no value constraint"
-msgid "warning: option has no value constraint"
-msgstr "Warnung: Option hat keinen vorgeschriebenen Wert"
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr "Konnte Dateinamen für Vorschaudateien nicht erzeugen"
-#original text: "Ok"
-msgid "Ok"
-msgstr "OK"
+#. ERR_CREATE_FAX_PROJECT
+msgid "Could not create faxproject"
+msgstr "Konnte Faxprojekt nicht erstellen"
-#original text: "Error"
-msgid "Error"
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr "Dateinamenzähler Unterlauf"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr "Warnung: Option hat keinen vorgeschriebenen Wert"
+
+#. WARN_XSANE_AS_ROOT
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+"Sie versuchen XSane als ROOT auszuführen,\n"
+"das ist wirklich GEFÄHRLICH!\n"
+"\n"
+"Senden Sie keine Fehlermeldungen wenn Sie Probleme\n"
+"haben während Sie xsane als root ausführen:\n"
+"Sie sind alleine!"
+
+#. ERR_HEADER_ERROR
+msgid "Error"
msgstr "Fehler"
-#original text: "Warning"
-msgid "Warning"
+#. ERR_HEADER_WARNING
+msgid "Warning"
msgstr "Warnung"
-#original text: "Failed to create file:"
-msgid "Failed to create file:"
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "Information"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
msgstr "Fehler beim Erstellen der Datei:"
-#original text: "Error while loading device settings:"
-msgid "Error while loading device settings:"
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
msgstr "Fehler beim Laden der Geräteeinstellungen"
-#original text: "is not a device-rc-file !!!"
-msgid "is not a device-rc-file !!!"
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
msgstr "ist keine Geräteeinstellungs-Datei !!!"
-#original text: "Failed to execute netscape!"
-msgid "Failed to execute netscape!"
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
msgstr "Konnte Netscape nicht aufrufen"
-#original text: "Send fax: no receiver defined"
-msgid "Send fax: no receiver defined"
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
msgstr "Fax senden: kein Empfänger angegeben"
-#original text: "has been created for device"
-msgid "has been created for device"
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
msgstr "wurde erstellt für das Gerät"
-#original text: "you want to use it for device"
-msgid "you want to use it for device"
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
msgstr "wird benutzt für das Gerät"
-#original text: "this may cause problems!"
-msgid "this may cause problems!"
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
msgstr "das kann zu Problemen führen!"
-#original text: "Usage:"
-msgid "Usage:"
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr "Es gibt %d nicht gespeicherte Bilder"
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "Datei %s exisitiert bereits"
+
+#. ERR_FILE_NOT_EXISTS
+#, c-format
+msgid "File %s does not exist"
+msgstr "Datei %s exisitiert nicht"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, c-format
+msgid "File %s is not a postscript file"
+msgstr "Datei %s is keine Postscript Datei"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "Nicht unterstütztes %d-bit Ausgabeformat: %s"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr "Betrachter Bild ist nicht gespeichert"
+
+#. TEXT_USAGE
+msgid "Usage:"
msgstr "Gebrauch:"
-#original text: "[OPTION]... [DEVICE]"
-msgid "[OPTION]... [DEVICE]"
-msgstr "[OPTION]... [GERÄTEDATEI]"
-
-#original text: "Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\n-h, --help display this help message and exit\n-v, --version print version information\n\n-d, --device-settings file load device settings from file (without \".drc\")\n\n-s, --scan start with scan-mode active\n-c, --copy start with copy-mode active\n-f, --fax start with fax-mode active\n-n, --no-mode-selection disable menu for xsane mode selection\n\n-F, --Fixed fixed main window size (overwrite preferences value)\n-R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\n--display X11-display redirect output to X11-display\n--no-xshm do not use shared memory images\n--sync request a synchronous connection with the X11 server"
-msgid "Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\n-h, --help display this help message and exit\n-v, --version print version information\n\n-d, --device-settings file load device settings from file (without \".drc\")\n\n-s, --scan start with scan-mode active\n-c, --copy start with copy-mode active\n-f, --fax start with fax-mode active\n-n, --no-mode-selection disable menu for xsane mode selection\n\n-F, --Fixed fixed main window size (overwrite preferences value)\n-R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\n--display X11-display redirect output to X11-display\n--no-xshm do not use shared memory images\n--sync request a synchronous connection with the X11 server"
-msgstr "" "Startet graphisches Benutzerinterface für SANE (Scanner Access Now Easy)\n" "\n" "-h, --help zeigt diesen Hilfetext\n" "-v, --version gibt Versionsinformation aus\n" "\n" "-d, --device-settings datei lädt Geräteeinstellungen von datei\n" "\n" "-s, --scan starte im Scanmodus\n" "-c, --copy starte im Kopiermodus\n" "-f, --fax starte im Faxmodus\n" "-n, --no-mode-selection deaktiviere Modusauswahl\n" "\n" "-F, --Fixed Hauptfenstergröße ist fest\n" "-R, --Resizeable Hauptfenstergröße ist veränderbar\n" "\n" "--display X11-display lenkt X-Ausgabe auf X11-display um\n" "--no-xshm keine shared memory Bilder benutzen\n" "--sync fordert synchrone Verbindung zum X-Server an"
-
-#original text: "Front-end to the SANE interface"
-msgid "Front-end to the SANE interface"
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr "[OPTION]... [GERÄT]"
+
+#. TEXT_HELP
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
+msgstr ""
+"Startet graphisches Benutzerinterface für SANE (Scanner Access Now Easy)\n"
+"\n"
+"Das Fromat von [GERÄT] ist Backendname:Gerätedatei (z.B. umax:/dev/scanner)\n"
+"[OPTION]... kann eine Kombination aus den folgenden Bezeichnern sein:\n"
+" -h, --help zeigt diesen Hilfetext\n"
+" -v, --version gibt Versionsinformationen aus\n"
+" -l, --license gibt Lizenzinformationen aus\n"
+"\n"
+" -d, --device-settings datei lädt Geräteeinstellungen von datei\n"
+"\n"
+" -V, --viewer starte im Betrachtermodus (default)\n"
+" -s, --save starte im Speichernmodus\n"
+" -c, --copy starte im Kopiermodus\n"
+" -f, --fax starte im Faxmodus\n"
+" -m, --mail starte im E-Mailmodus\n"
+" -n, --no-mode-selection deaktiviere Modusauswahl\n"
+"\n"
+" -M, --Medium-calibration aktiviere Medium Kalibrierungs Modus\n"
+"\n"
+" -F, --Fixed Hauptfenstergröße ist fest\n"
+" -R, --Resizeable Hauptfenstergröße ist veränderbar\n"
+"\n"
+" -p, --print-filenames gibt Dateinamen erzeugter Bilder aus\n"
+" -N, --force-filename name benutze name als Dateinamen,\n"
+" deaktiviere Auswahl für Dateinamen\n"
+"\n"
+" --display X11-display lenkt X-Ausgabe auf X11-display um\n"
+" --no-xshm keine shared memory Bilder benutzen\n"
+" --sync fordert synchrone Verbindung zum X-Server an"
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
msgstr "Frontend zum SANE-Interface"
-#original text: "This function provides access to scanners and other image acquisition devices through the SANE (Scanner Access Now Easy) interface."
-msgid "This function provides access to scanners and other image acquisition devices through the SANE (Scanner Access Now Easy) interface."
-msgstr "Diese Funktion gibt Zugang zu Scannern und anderen bilderzeugenden Geräten durch das SANE (Scanner Access Now Easy) Interface"
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+"Diese Funktion gibt Zugang zu Scannern und anderen bilderzeugenden Geräten "
+"durch das SANE (Scanner Access Now Easy) Interface"
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr "<Toolbox>/File/Acquire/XSane: Geräteauswahl"
-#original text: "<Toolbox>/File/Acquire/XSane: "
-msgid "<Toolbox>/File/Acquire/XSane: "
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
msgstr "<Toolbox>/File/Acquire/XSane: "
-#original text: "<Toolbox>/Xtns/XSane/"
-msgid "<Toolbox>/Xtns/XSane/"
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr "<Toolbox>/Xtns/XSane/Geräteauswahl"
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
msgstr "<Toolbox>/Xtns/XSane/"
-#original text: "<Toolbox>/File/Acquire/XSane: Device dialog..."
-msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
-msgstr "<Toolbox>/File/Acquire/XSane: Geräteauswahl"
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr "volle Größe"
-#original text: "<Toolbox>/Xtns/XSane/Device dialog..."
-msgid "<Toolbox>/Xtns/XSane/Device dialog..."
-msgstr "<Toolbox>/Xtns/XSane/Geräteauswahl"
-
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr "DIN A3 hoch"
+
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr "DIN A3 quer"
+
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr "DIN A4 hoch"
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr "DIN A4 quer"
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr "DIN A5 hoch"
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr "DIN A5 quer"
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
+msgstr ""
-#original text: "flatbed scanner"
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr "legal hoch"
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr "legal quer"
+
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr "letter hoch"
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr "letter quer"
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr "Voller Bereich"
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr "Dia"
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+msgid "Standard negative"
+msgstr "Standard Negativ"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr "Agfa Negativ"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr "Agfa Negativ XRG 200-4"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr "Agfa Negativ HDC 100"
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+msgid "Fuji negative"
+msgstr "Fuji Negativ"
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr "Kodak Negativ"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+msgid "Konica negative"
+msgstr "Konica Negativ"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+msgid "Konica negative VX 100"
+msgstr "Konica Negativ VX 100"
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr "Rossmann Negativ HR 100"
+
+#. Sane backend messages
msgid "flatbed scanner"
msgstr "Flachbettscanner"
-#original text: "frame grabber"
msgid "frame grabber"
msgstr "Framegrabber"
-#original text: "handheld scanner"
msgid "handheld scanner"
msgstr "Handscanner"
-#original text: "still camera"
msgid "still camera"
msgstr "Photokamera"
-#original text: "video camera"
msgid "video camera"
msgstr "Videokamera"
-#original text: "virtual device"
msgid "virtual device"
msgstr "virtuelles Gerät"
-
-
-#original text: "Success"
msgid "Success"
msgstr "Erfolg"
-#original text: "Operation not supported"
msgid "Operation not supported"
msgstr "Operation nicht unterstützt"
-#original text: "Operation was cancelled"
msgid "Operation was cancelled"
msgstr "Operation abgebrochen"
-#original text: "Device busy"
msgid "Device busy"
msgstr "Gerät besetzt"
-#original text: "Invalid argument"
msgid "Invalid argument"
msgstr "Ungültiges Argument"
-#original text: "End of file reached"
msgid "End of file reached"
msgstr "Dateiende erreicht"
-#original text: "Document feeder jammed"
msgid "Document feeder jammed"
msgstr "Dokumenteneinzug blockiert"
-#original text: "Document feeder out of documents"
msgid "Document feeder out of documents"
msgstr "Documenteneinzug ohne Papier"
-#original text: "Scanner cover is open"
msgid "Scanner cover is open"
msgstr "Scannerdeckel ist offen"
-#original text: "Error during device I/O"
msgid "Error during device I/O"
msgstr "Fehler während Geräte I/O"
-#original text: "Out of memory"
msgid "Out of memory"
msgstr "Kein Speicher"
-#original text: "Access to resource has been denied"
msgid "Access to resource has been denied"
msgstr "Zugang zum Gerät wurde verweigert"
+#~ msgid "Store Medium definition"
+#~ msgstr "Mediendefinition speichern"
diff --git a/po/de.po.in b/po/de.po.in
deleted file mode 100644
index 0376a83..0000000
--- a/po/de.po.in
+++ /dev/null
@@ -1,1230 +0,0 @@
-#include "../frontend/xsane-text.h"
-#define _(x) x
-
-#nls translation file for xsane
-#language: german (de)
-#by Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
-
-#original text: "About"
-msgid WINDOW_ABOUT
-msgstr "Über"
-
-#original text: "authorization"
-msgid WINDOW_AUTHORIZE
-msgstr "Autorisation"
-
-#original text: "info"
-msgid WINDOW_INFO
-msgstr "Informationen"
-
-#original text: "batch scan"
-msgid WINDOW_BATCH_SCAN
-msgstr "Stapel Scan"
-
-#original text: "fax project"
-msgid WINDOW_FAX_PROJECT
-msgstr "Faxprojekt"
-
-#original text: "rename fax page"
-msgid WINDOW_FAX_RENAME
-msgstr "Faxseite umbenennen"
-
-#original text: "setup"
-msgid WINDOW_SETUP
-msgstr "Konfiguration"
-
-#original text: "Histogram"
-msgid WINDOW_HISTOGRAM
-msgstr "Histogramm"
-
-#original text: "Standard options"
-msgid WINDOW_STANDARD_OPTIONS
-msgstr "Standard Optionen"
-
-#original text: "Advanced options"
-msgid WINDOW_ADVANCED_OPTIONS
-msgstr "Erweiterte Optionen"
-
-#original text: "device selection"
-msgid WINDOW_DEVICE_SELECTION
-msgstr "Geräteauswahl"
-
-#original text: "Preview"
-msgid WINDOW_PREVIEW
-msgstr "Vorschau"
-
-#original text: "output filename"
-msgid WINDOW_OUTPUT_FILENAME
-msgstr "Ausgabedatei"
-
-#original text: "save device settings"
-msgid WINDOW_SAVE_SETTINGS
-msgstr "Speichere Geräteeinstellungen"
-
-#original text: "load device settings"
-msgid WINDOW_LOAD_SETTINGS
-msgstr "Lade Geräteeinstellungen"
-
-#original text: "File"
-msgid MENU_FILE
-msgstr "Datei"
-
-#original text: "Preferences"
-msgid MENU_PREFERENCES
-msgstr "Einstellungen"
-
-#original text: "View"
-msgid MENU_VIEW
-msgstr "Ansicht"
-
-#original text: "Help"
-msgid MENU_HELP
-msgstr "Hilfe"
-
-#original text: "About"
-msgid MENU_ITEM_ABOUT
-msgstr "Über"
-
-#original text: "Info"
-msgid MENU_ITEM_INFO
-msgstr "Informationen"
-
-#original text: "Exit"
-msgid MENU_ITEM_EXIT
-msgstr "Beenden"
-
-#original text: "Raw image"
-msgid FRAME_RAW_IMAGE
-msgstr "Rohbild"
-
-#original text: "Enhanced image"
-msgid FRAME_ENHANCED_IMAGE
-msgstr "Verbessertes Bild"
-
-#original text: "Start"
-msgid BUTTON_START
-msgstr "Start"
-
-#original text: "Ok"
-msgid BUTTON_OK
-msgstr "OK"
-
-#original text: "Apply"
-msgid BUTTON_APPLY
-msgstr "Anwenden"
-
-#original text: "Cancel"
-msgid BUTTON_CANCEL
-msgstr "Abbrechen"
-
-#original text: "Close"
-msgid BUTTON_CLOSE
-msgstr "Schließen"
-
-#original text: "Overwrite"
-msgid BUTTON_OVERWRITE
-msgstr "Überschreiben"
-
-#original text: "Add area"
-msgid BUTTON_ADD_AREA
-msgstr "Bereich hinzufügen"
-
-#original text: "Delete"
-msgid BUTTON_DELETE
-msgstr "Löschen"
-
-#original text: "Show"
-msgid BUTTON_SHOW
-msgstr "Anzeigen"
-
-#original text: "Rename"
-msgid BUTTON_RENAME
-msgstr "Umbenennen"
-
-#original text: "Create project"
-msgid BUTTON_CREATE_PROJECT
-msgstr "Projekt erstellen"
-
-#original text: "Send project"
-msgid BUTTON_SEND_PROJECT
-msgstr "Projekt senden"
-
-#original text: "Delete project"
-msgid BUTTON_DELETE_PROJECT
-msgstr "Projekt löschen"
-
-#original text: "Add printer"
-msgid BUTTON_ADD_PRINTER
-msgstr "Drucker hinzufügen"
-
-#original text: "Delete printer"
-msgid BUTTON_DELETE_PRINTER
-msgstr "Drucker löschen"
-
-#original text: "Acquire Preview"
-msgid BUTTON_PREVIEW_ACQUIRE
-msgstr "Vorschauscan"
-
-#original text: "Cancel Preview"
-msgid BUTTON_PREVIEW_CANCEL
-msgstr "Vorschauscan abbrechen"
-
-#original text: "Fine mode"
-msgid RADIO_BUTTON_FINE_MODE
-msgstr "Fein-Modus"
-
-#original text: "Overwrite warning"
-msgid RADIO_BUTTON_OVERWRITE_WARNING
-msgstr "Überschreibwarnung"
-
-#original text: "Increase filename counter"
-msgid RADIO_BUTTON_INCREASE_COUNTER
-msgstr "Dateinamenzähler erhöhen"
-
-#original text: "Skip existing numbers"
-msgid RADIO_BUTTON_SKIP_EXISTING_NRS
-msgstr "Existierende Werte überspringen"
-
-#original text: "Main window size fixed"
-msgid RADIO_BUTTON_WINDOW_FIXED
-msgstr "Feste Hauptfenstergröße"
-
-#original text: "Preserve preview image"
-msgid RADIO_BUTTON_PRESERVE_PRVIEW
-msgstr "Behalte Vorschaubild"
-
-#original text: "Use private colormap"
-msgid RADIO_BUTTON_PRIVATE_COLORMAP
-msgstr "Benutze eigene Farbpalette"
-
-#original text: "Available devices:"
-msgid TEXT_AVAILABLE_DEVICES
-msgstr "Erreichbare Geräte:"
-
-#original text: "XSane options"
-msgid TEXT_XSANE_OPTIONS
-msgstr "XSane Optionen"
-
-#original text: "XSane mode"
-msgid TEXT_XSANE_MODE
-msgstr "XSane Modus"
-
-#original text: "Scanner and backend:"
-msgid TEXT_SCANNER_BACKEND
-msgstr "Scanner und Backends"
-
-#original text: "Vendor:"
-msgid TEXT_VENDOR
-msgstr "Hersteller:"
-
-#original text: "Model:"
-msgid TEXT_MODEL
-msgstr "Modell:"
-
-#original text: "Type:"
-msgid TEXT_TYPE
-msgstr "Typ:"
-
-#original text: "Device:"
-msgid TEXT_DEVICE
-msgstr "Gerät:"
-
-#original text: "Loaded backend:"
-msgid TEXT_LOADED_BACKEND
-msgstr "Geladenes Backend:"
-
-#original text: "Sane version:"
-msgid TEXT_SANE_VERSION
-msgstr "sane Version:"
-
-#original text: "Recent values:"
-msgid TEXT_RECENT_VALUES
-msgstr "Aktuelle Werte:"
-
-#original text: "Gamma correction by:"
-msgid TEXT_GAMMA_CORR_BY
-msgstr "Gammakorrektur durch:"
-
-#original text: "scanner"
-msgid TEXT_SCANNER
-msgstr "Scanner"
-
-#original text: "software (xsane)"
-msgid TEXT_SOFTWARE_XSANE
-msgstr "Software (xsane)"
-
-#original text: "none"
-msgid TEXT_NONE
-msgstr "keine"
-
-#original text: "Gamma input depth:"
-msgid TEXT_GAMMA_INPUT_DEPTH
-msgstr "Bittiefe Gammaeingabe:"
-
-#original text: "Gamma output depth:"
-msgid TEXT_GAMMA_OUTPUT_DEPTH
-msgstr "Bittiefe Gammaausgabe:"
-
-#original text: "Scanner output depth:"
-msgid TEXT_SCANNER_OUTPUT_DEPTH
-msgstr "Bittieffe Scannerausgabe:"
-
-#original text: "XSane output formats:"
-msgid TEXT_OUTPUT_FORMATS
-msgstr "XSane Ausgabeformate:"
-
-#original text: "8 bit output formats:"
-msgid TEXT_8BIT_FORMATS
-msgstr "8 Bit Ausgabeformate:"
-
-#original text: "16 bit output formats:"
-msgid TEXT_16BIT_FORMATS
-msgstr "16 Bit Ausgabeformate:"
-
-#original text: "Authorization required for"
-msgid TEXT_AUTHORIZATION_REQ
-msgstr "Autorisation benötigt für"
-
-#original text: "Username :"
-msgid TEXT_USERNAME
-msgstr "Benutzername:"
-
-#original text: "Password :"
-msgid TEXT_PASSWORD
-msgstr "Passwort:"
-
-#original text: "Invalid parameters."
-msgid TEXT_INVALID_PARAMS
-msgstr "Ungültige Parameter"
-
-#original text: "version:"
-msgid TEXT_VERSION
-msgstr "Version:"
-
-#original text: "package"
-msgid TEXT_PACKAGE
-msgstr "Paket"
-
-#original text: "with GIMP support"
-msgid TEXT_WITH_GIMP_SUPPORT
-msgstr "mit GIMP-Unterstützung"
-
-#original text: "without GIMP support"
-msgid TEXT_WITHOUT_GIMP_SUPPORT
-msgstr "ohne GIMP-Unterstützung"
-
-#original text: "compiled with GIMP-"
-msgid TEXT_GIMP_VERSION
-msgstr "übersetzt mit GIMP-"
-
-#original text: "unknown"
-msgid TEXT_UNKNOWN
-msgstr "unbekannt"
-
-#original text: "Email:"
-msgid TEXT_EMAIL
-msgstr "E-Mail:"
-
-#original text: "File:"
-msgid TEXT_FILE
-msgstr "Datei:"
-
-#original text: "0x0: 0KB"
-msgid TEXT_INFO_BOX
-msgstr "0x0: 0KB"
-
-#original text: "Printer selection:"
-msgid TEXT_SETUP_PRINTER_SEL
-msgstr "Druckerauswahl:"
-
-#original text: "Name:"
-msgid TEXT_SETUP_PRINTER_NAME
-msgstr "Name:"
-
-#original text: "Command:"
-msgid TEXT_SETUP_PRINTER_CMD
-msgstr "Befehl:"
-
-#original text: "Copy number option:"
-msgid TEXT_SETUP_COPY_NR_OPT
-msgstr "Option for Anzahl der Kopien:"
-
-#original text: "Resolution (dpi):"
-msgid TEXT_SETUP_PRINTER_RES
-msgstr "Auflösung (dpi):"
-
-#original text: "Width (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_WIDTH
-msgstr "Breite (1/72 Zoll):"
-
-#original text: "Height (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_HEIGHT
-msgstr "Höhe (1/72 Zoll):"
-
-#original text: "Left offset (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_LEFT
-msgstr "Linker Rand (1/72 Zoll):"
-
-#original text: "Bottom offset (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_BOTTOM
-msgstr "Unterer Rand (1/72 Zoll):"
-
-#original text: "Printer gamma value:"
-msgid TEXT_SETUP_PRINTER_GAMMA
-msgstr "Drucker Gammawert:"
-
-#original text: "Printer gamma red:"
-msgid TEXT_SETUP_PRINTER_GAMMA_RED
-msgstr "Drucker Gammawert rot:"
-
-#original text: "Printer gamma green:"
-msgid TEXT_SETUP_PRINTER_GAMMA_GREEN
-msgstr "Drucker Gammawert grün:"
-
-#original text: "Printer gamma blue:"
-msgid TEXT_SETUP_PRINTER_GAMMA_BLUE
-msgstr "Drucker Gammawert blau:"
-
-#original text: "JPEG image quality"
-msgid TEXT_SETUP_JPEG_QUALITY
-msgstr "JPEG Bildqualität"
-
-#original text: "PNG image compression"
-msgid TEXT_SETUP_PNG_COMPRESSION
-msgstr "PNG Bildkompression"
-
-#original text: "TIFF multi bit image compression"
-msgid TEXT_SETUP_TIFF_COMPRESSION
-msgstr "TIFF multibit Bildkompression"
-
-#original text: "TIFF lineart image compression"
-msgid TEXT_SETUP_TIFF_COMPRESSION_1
-msgstr "TIFF lineart Bildkompression"
-
-#original text: "Preview gamma:"
-msgid TEXT_SETUP_PREVIEW_GAMMA
-msgstr "Vorschau Gamma:"
-
-#original text: "Preview gamma red:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_RED
-msgstr "Vorschau Gamma rot:"
-
-#original text: "Preview gamma green:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_GREEN
-msgstr "Vorschau Gamma grün:"
-
-#original text: "Preview gamma blue:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_BLUE
-msgstr "Vorschau Gamma blau:"
-
-#original text: "Helpfile viewer (HTML):"
-msgid TEXT_SETUP_HELPFILE_VIEWER
-msgstr "Hilfedatei Betrachter (HTML):"
-
-#original text: "Command:"
-msgid TEXT_SETUP_FAX_COMMAND
-msgstr "Befehl:"
-
-#original text: "Receiver option:"
-msgid TEXT_SETUP_FAX_RECEIVER_OPTION
-msgstr "Option für Empfängernummer"
-
-#original text: "Postscriptfile option:"
-msgid TEXT_SETUP_FAX_POSTSCRIPT_OPT
-msgstr "Option für Postscriptdatei:"
-
-#original text: "Normal mode option:"
-msgid TEXT_SETUP_FAX_NORMAL_MODE_OPT
-msgstr "Option für Normalmodus:"
-
-#original text: "Fine mode option:"
-msgid TEXT_SETUP_FAX_FINE_MODE_OPT
-msgstr "Option für Feinmodus:"
-
-#original text: "Viewer (Postscript):"
-msgid TEXT_SETUP_FAX_VIEWER
-msgstr "Betrachter (Postscript):"
-
-#original text: "Copy options"
-msgid NOTEBOOK_COPY_OPTIONS
-msgstr "Photokopie"
-
-#original text: "Saving options"
-msgid NOTEBOOK_SAVING_OPTIONS
-msgstr "Speichern"
-
-#original text: "Display options"
-msgid NOTEBOOK_DISPLAY_OPTIONS
-msgstr "Darstellung"
-
-#original text: "Fax options"
-msgid NOTEBOOK_FAX_OPTIONS
-msgstr "Fax"
-
-#original text: "Scan"
-msgid MENU_ITEM_SCAN
-msgstr "Scannen"
-
-#original text: "Copy"
-msgid MENU_ITEM_COPY
-msgstr "Kopieren"
-
-#original text: "Fax"
-msgid MENU_ITEM_FAX
-msgstr "Faxen"
-
-#original text: "Setup"
-msgid MENU_ITEM_SETUP
-msgstr "Konfiguration"
-
-#original text: "Show tooltips"
-msgid MENU_ITEM_SHOW_TOOLTIPS
-msgstr "Zeige Tipps"
-
-#original text: "Show preview"
-msgid MENU_ITEM_SHOW_PREVIEW
-msgstr "Zeige Vorschau"
-
-#original text: "Show histogram"
-msgid MENU_ITEM_SHOW_HISTOGRAM
-msgstr "Zeige Histogramm"
-
-#original text: "Show standard options"
-msgid MENU_ITEM_SHOW_STANDARDOPTIONS
-msgstr "Zeige Standardoptionen"
-
-#original text: "Show advanced options"
-msgid MENU_ITEM_SHOW_ADVANCEDOPTIONS
-msgstr "Zeige erweiterte Optionen"
-
-#original text: "Show resolution list"
-msgid MENU_ITEM_SHOW_RESOLUTIONLIST
-msgstr "Zeige Auflösungsliste"
-
-#original text: "Length unit"
-msgid MENU_ITEM_LENGTH_UNIT
-msgstr "Längeneinheit"
-
-#original text: "millimeters"
-msgid SUBMENU_ITEM_LENGTH_MILLIMETERS
-msgstr "Millimeter"
-
-#original text: "centimeters"
-msgid SUBMENU_ITEM_LENGTH_CENTIMETERS
-msgstr "Zentimeter"
-
-#original text: "inches"
-msgid SUBMENU_ITEM_LENGTH_INCHES
-msgstr "Zoll"
-
-#original text: "Save device settings"
-msgid MENU_ITEM_SAVE_DEVICE_SETTINGS
-msgstr "Speichere Geräteeinstellungen"
-
-#original text: "Load device settings"
-msgid MENU_ITEM_LOAD_DEVICE_SETTINGS
-msgstr "Lade Geräteeinstellungen"
-
-#original text: "Xsane doc"
-msgid MENU_ITEM_XSANE_DOC
-msgstr "XSane Anleitung"
-
-#original text: "Backend doc"
-msgid MENU_ITEM_BACKEND_DOC
-msgstr "Backend Anleitung"
-
-#original text: "Available backends"
-msgid MENU_ITEM_AVAILABLE_BACKENDS
-msgstr "Erreichbare Backends"
-
-#original text: "Scantips"
-msgid MENU_ITEM_SCANTIPS
-msgstr "Scantipps"
-
-#original text: "Problems?"
-msgid MENU_ITEM_PROBLEMS
-msgstr "Probleme?"
-
-#original text: "no compression"
-msgid MENU_ITEM_TIFF_COMP_NONE
-msgstr "keine Kompression"
-
-#original text: "CCITT 1D Huffman compression"
-msgid MENU_ITEM_TIFF_COMP_CCITTRLE
-msgstr "CCITT 1D Huffman Kompression"
-
-#original text: "CCITT Group 3 Fax compression"
-msgid MENU_ITEM_TIFF_COMP_CCITFAX3
-msgstr "CCITT Gruppe 3 Fax Kompression"
-
-#original text: "CCITT Group 4 Fax compression"
-msgid MENU_ITEM_TIFF_COMP_CCITFAX4
-msgstr "CCITT Gruppe 4 Fax Kompression"
-
-#original text: "JPEG DCT compression"
-msgid MENU_ITEM_TIFF_COMP_JPEG
-msgstr "JPEG DCT Kompression"
-
-#original text: "pack bits"
-msgid MENU_ITEM_TIFF_COMP_PACKBITS
-msgstr "gepackte Bits"
-
-#original text: "by ext"
-msgid MENU_ITEM_FILETYPE_BY_EXT
-msgstr "nach Erw"
-
-#original text: "Saving image"
-msgid PROGRESS_SAVING
-msgstr "Speichere Bild"
-
-#original text: "Saving fax image"
-msgid PROGRESS_SAVING_FAX
-msgstr "Speichere Faxbild"
-
-#original text: "Converting data...."
-msgid PROGRESS_CONVERTING_DATA
-msgstr "Konvertiere Daten..."
-
-#original text: "Converting to postscript"
-msgid PROGRESS_CONVERTING_PS
-msgstr "Konvertiere nach Postscript"
-
-#original text: "Scanning"
-msgid PROGRESS_SCANNING
-msgstr "Scanne"
-
-#original text: "Receiving %s data for `%s'..."
-msgid PROGRESS_RECEIVING_SCAN
-msgstr "Empfange %s Daten für `%s'..."
-
-#original text: "Receiving %s data for photocopy ..."
-msgid PROGRESS_RECEIVING_COPY
-msgstr "Empfange %s Daten für Photokopie"
-
-#original text: "Receiving %s data for fax ..."
-msgid PROGRESS_RECEIVING_FAX
-msgstr "Empfange %s Daten für Fax ..."
-
-#original text: "Receiving %s data for GIMP..."
-msgid PROGRESS_RECEIVING_GIMP
-msgstr "Empfange %s Daten für GIMP..."
-
-#original text: "Use XSane for SCANning, photoCOPYing, FAXing..."
-msgid DESC_XSANE_MODE
-msgstr "Benutze XSane zum Scannen, Kopieren oder Faxen"
-
-#original text: "Browse for image filename"
-msgid DESC_BROWSE_FILENAME
-msgstr "Suche nach Bild-Dateinamen"
-
-#original text: "Filename for scanned image"
-msgid DESC_FILENAME
-msgstr "Dateiname für gescanntes Bild"
-
-#original text: "Filename extension and type of image format"
-msgid DESC_FILETYPE
-msgstr "Dateinamenerweiterung und Format der Bilddatei"
-
-#original text: "Enter name of fax project"
-msgid DESC_FAXPROJECT
-msgstr "Name des Faxprojekts"
-
-#original text: "Enter new name for faxpage"
-msgid DESC_FAXPAGENAME
-msgstr "Name der Faxseite eingeben"
-
-#original text: "Enter receiver phone number or address"
-msgid DESC_FAXRECEIVER
-msgstr "Telephonnummer des Empfängers eingeben"
-
-#original text: "Select printer definition"
-msgid DESC_PRINTER_SELECT
-msgstr "Wähle Druckerdefinition"
-
-#original text: "Set scan resolution"
-msgid DESC_RESOLUTION
-msgstr "Bestimmt die Scanauflösung"
-
-#original text: "Set zoomfactor"
-msgid DESC_ZOOM
-msgstr "Bestimmt den Vergrößerungsfaktor"
-
-#original text: "Set number of copies"
-msgid DESC_COPY_NUMBER
-msgstr "Bestimmt die Anzahl der Kopien"
-
-#original text: "Negative: Invert colors for scanning negatives\n" "e.g. swap black and white"
-msgid DESC_NEGATIVE
-msgstr "Negativ: Invertiere Farben, zum Scannen von Negativen"
-
-#original text: "Set gamma value"
-msgid DESC_GAMMA
-msgstr "Bestimmt Gammawert"
-
-#original text: "Set gamma value for red component"
-msgid DESC_GAMMA_R
-msgstr "Bestimmt Gammawert für rote Komponente"
-
-#original text: "Set gamma value for green component"
-msgid DESC_GAMMA_G
-msgstr "Bestimmt Gammawert für grüne Komponente"
-
-#original text: "Set gamma value for blue component"
-msgid DESC_GAMMA_B
-msgstr "Bestimmt Gammawert für blaue Komponente"
-
-#original text: "Set brightness"
-msgid DESC_BRIGHTNESS
-msgstr "Bestimmt Helligkeit"
-
-#original text: "Set brightness for red component"
-msgid DESC_BRIGHTNESS_R
-msgstr "Bestimmt Helligkeit für rote Komponente"
-
-#original text: "Set brightness for green component"
-msgid DESC_BRIGHTNESS_G
-msgstr "Bestimmt Helligkeit für grüne Komponente"
-
-#original text: "Set brightness for blue component"
-msgid DESC_BRIGHTNESS_B
-msgstr "Bestimmt Helligkeit für blaue Komponente"
-
-#original text: "Set contrast"
-msgid DESC_CONTRAST
-msgstr "Bestimmt Kontrast"
-
-#original text: "Set contrast for red component"
-msgid DESC_CONTRAST_R
-msgstr "Bestimmt Kontrast für rote Komponente"
-
-#original text: "Set contrast for green component"
-msgid DESC_CONTRAST_G
-msgstr "Bestimmt Kontrast für grüne Komponente"
-
-#original text: "Set contrast for blue component"
-msgid DESC_CONTRAST_B
-msgstr "Bestimmt Kontrast für blaue Komponente"
-
-#original text: "RGB default: Set enhancement values for red, green and blue to default values:\n" " gamma = 1.0\n" " brightness = 0\n" " contrast = 0"
-msgid DESC_RGB_DEFAULT
-msgstr "RGB Standard: Setzt Farbverbesserungswerte für rot, grün und blau auf Standardwerte:\n" "Gamma = 1.0\n" "Helligkeit = 0\n" "Kontrast = 0"
-
-#original text: "Autoadjust gamma, brightness and contrast in dependance of selected area"
-msgid DESC_ENH_AUTO
-msgstr "Automatische Berechnung für Gamma, Helligkeit und Kontrast in Abhängigkeit vom ausgewählten Bereich"
-
-#original text: "Set default enhancement values:\n" "gamma = 1.0\n" "brightness = 0\n" "contrast = 0"
-msgid DESC_ENH_DEFAULT
-msgstr "Setze Standardwerte für Farbverbesserung:\n" "Gamma = 1.0\n" "Helligkeit = 0\n" "Kontrast = 0"
-
-#original text: "Restore enhancement values from preferences"
-msgid DESC_ENH_RESTORE
-msgstr "Lade Farbverbesserungswerte aus Einstellungen"
-
-#original text: "Store active enhancement values to preferences"
-msgid DESC_ENH_STORE
-msgstr "Speichere Farbverbesserungswerte in Einstellungen"
-
-#original text: "Show histogram of intensity/gray"
-msgid DESC_HIST_INTENSITY
-msgstr "Zeige Histogramm für Intensität/grau"
-
-#original text: "Show histogram of red component"
-msgid DESC_HIST_RED
-msgstr "Zeige Histogramm für rote Komponente"
-
-#original text: "Show histogram of green component"
-msgid DESC_HIST_GREEN
-msgstr "Zeige Histogramm für grüne Komponente"
-
-#original text: "Show histogram of blue component"
-msgid DESC_HIST_BLUE
-msgstr "Zeige Histogramm für blaue Komponente"
-
-#original text: "Display histogram with lines instead of pixels"
-msgid DESC_HIST_PIXEL
-msgstr "Zeichne Histogramm mit Linien anstatt mit Punkten"
-
-#original text: "Show logarithm of pixelcount"
-msgid DESC_HIST_LOG
-msgstr "Benutze Logarithmus der Pixelzahlen"
-
-#original text: "Select definition to change"
-msgid DESC_PRINTER_SETUP
-msgstr "Auswahl der zu ändernden Definition"
-
-#original text: "Define a name for the selection of this definition"
-msgid DESC_PRINTER_NAME
-msgstr "Namen der Definition"
-
-#original text: "Enter command to be executed in copy mode (e.g. \"lpr -\")"
-msgid DESC_PRINTER_COMMAND
-msgstr "Befehl der im Kopiermodus zum Drucken ausgeführt werden soll (z.B. \"lpr -\")"
-
-#original text: "Enter option for copy numbers"
-msgid DESC_COPY_NUMBER_OPTION
-msgstr "Option, mit der die Anzahl der Kopien angegeben wird"
-
-#original text: "Resolution with which images are printed and saved in postscript"
-msgid DESC_PRINTER_RESOLUTION
-msgstr "Auflösung, mit der Bilder gedrucht und im Postscriptformat gespeichert werden"
-
-#original text: "Width of printable area in 1/72 inch"
-msgid DESC_PRINTER_WIDTH
-msgstr "Breite des druckbaren Bereichs in 1/72 Zoll"
-
-#original text: "Height of printable area in 1/72 inch"
-msgid DESC_PRINTER_HEIGHT
-msgstr "Höhe des druckbaren Bereichs in 1/72 Zoll"
-
-#original text: "Left offset from the edge of the paper to the printable area in 1/72 inch"
-msgid DESC_PRINTER_LEFTOFFSET
-msgstr "Abstand vom linken Papierrand zum Beginn des druckbaren Bereichs in 1/72 Zoll"
-
-#original text: "Bottom offset from the edge of the paper to the printable area in 1/72 inch"
-msgid DESC_PRINTER_BOTTOMOFFSET
-msgstr "Abstand vom unteren Papierrand zum Beginn des druckbaren Bereichs in 1/72 Zoll"
-
-#original text: "Additional gamma value for photocopy"
-msgid DESC_PRINTER_GAMMA
-msgstr "Zusätzlicher Gammawert beim Photokopieren"
-
-#original text: "Additional gamma value for red component for photocopy"
-msgid DESC_PRINTER_GAMMA_RED
-msgstr "Zusätzlicher Gammawert für rote Komponente beim Photokopieren"
-
-#original text: "Additional gamma value for green component for photocopy"
-msgid DESC_PRINTER_GAMMA_GREEN
-msgstr "Zusätzlicher Gammawert für grüne Komponente beim Photokopieren"
-
-#original text: "Additional gamma value for blue component for photocopy"
-msgid DESC_PRINTER_GAMMA_BLUE
-msgstr "Zusätzlicher Gammawert für blaue Komponente beim Photokopieren"
-
-#original text: "Quality in percent if image is saved as jpeg or tiff with jpeg compression"
-msgid DESC_JPEG_QUALITY
-msgstr "Qualität in Prozent wenn Bild als JPEG oder als TIFF mit JPEG-Kompression gespeichert wird"
-
-#original text: "Compression if image is saved as png"
-msgid DESC_PNG_COMPRESSION
-msgstr "Kompression wenn Bild im PNG-Format gespeichert wird"
-
-#original text: "Compression type if multi bit image is saved as tiff"
-msgid DESC_TIFF_COMPRESSION
-msgstr "Kompression wenn multibit Bild im TIFF-Format gespeichert wird"
-
-#original text: "Compression type if lineart image is saved as tiff"
-msgid DESC_TIFF_COMPRESSION_1
-msgstr "Kompression wenn lineart Bild im TIFF-Format gespeichert wird"
-
-#original text: "Warn before overwriting an existing file"
-msgid DESC_OVERWRITE_WARNING
-msgstr "Warne vorm Überschreiben exisitierender Dateien"
-
-#original text: "If the filename is of the form \"name-001.ext\" " "(where the number of digits is free) " "the number is increased after a scan is finished"
-msgid DESC_INCREASE_COUNTER
-msgstr "... wenn der Dateiname folgender Form ist: \"name-001.erw\""
-
-#original text: "If filename counter is automatically increased, used numbers are skipped"
-msgid DESC_SKIP_EXISTING
-msgstr "Wenn der Dateinamenzähler automatisch erhöht wird, werden benutzte Dateinummern übersprungen"
-
-#original text: "Use fixed main window size or scrolled, resizable main window"
-msgid DESC_MAIN_WINDOW_FIXED
-msgstr "Verwende feste oder veränderbare Hauptfenstergröße"
-
-#original text: "Preserve preview image for next program start"
-msgid DESC_PREVIEW_PRESERVE
-msgstr "Behalte Vorschaubild für nächsten Programmstart"
-
-#original text: "Use an own colormap for preview if display depth is 8 bpp"
-msgid DESC_PREVIEW_COLORMAP
-msgstr "Benutze eigene Farbpalette für Vorscahubild, wenn die Bildschirmfarbtiefe 8 Bit beträgt"
-
-#original text: "Set gamma correction value for preview image"
-msgid DESC_PREVIEW_GAMMA
-msgstr "Bestimme Gammwert für Vorschaubild"
-
-#original text: "Set gamma correction value for red component of preview image"
-msgid DESC_PREVIEW_GAMMA_RED
-msgstr "Bestimme Gammwert der roten Komponente für Vorschaubild"
-
-#original text: "Set gamma correction value for green component of preview image"
-msgid DESC_PREVIEW_GAMMA_GREEN
-msgstr "Bestimme Gammwert der grünen Komponente für Vorschaubild"
-
-#original text: "Set gamma correction value for blue component of preview image"
-msgid DESC_PREVIEW_GAMMA_BLUE
-msgstr "Bestimme Gammwert der blauen Komponente für Vorschaubild"
-
-#original text: "Enter command to be executed to display helpfiles, must be a html-viewer!"
-msgid DESC_DOC_VIEWER
-msgstr "Befehl, der ausgeführt werden soll, um Hilfedateien anzuzeigen, muß ein HTML-Betrachter sein!"
-
-#original text: "Enter command to be executed in fax mode"
-msgid DESC_FAX_COMMAND
-msgstr "Befehl, der zum Senden eines Faxprojekts ausgeführt werden soll"
-
-#original text: "Enter option to specify receiver"
-msgid DESC_FAX_RECEIVER_OPT
-msgstr "Option, mit der die Empfängertelephonnumer angegeben wird"
-
-#original text: "Enter option to specify postscript files following"
-msgid DESC_FAX_POSTSCRIPT_OPT
-msgstr "Option, mit der angegeben wird, dass der Dateiname einer Postscriptdatei folgt"
-
-#original text: "Enter option to specify normal mode (low resolution)"
-msgid DESC_FAX_NORMAL_OPT
-msgstr "Option, mit der die vertikale Auflösung auf 98 lpi gestellt wird"
-
-#original text: "Enter option to specify fine mode (high resolution)"
-msgid DESC_FAX_FINE_OPT
-msgstr "Option, mit der die vertikale Auflösung auf 196 lpi gestellt wird"
-
-#original text: "Enter command to be executed to view a fax"
-msgid DESC_FAX_VIEWER
-msgstr "Befehl, der ausgeführt werden soll, um Faxseiten(Postscript) anzuzeigen"
-
-#original text: "Use high vertical resolution (196 lpi instead of 98 lpi)"
-msgid DESC_FAX_FINE_MODE
-msgstr "Benutze hohe vertikale Auflösung (196 lpi)"
-
-#original text: "Pick white point"
-msgid DESC_PIPETTE_WHITE
-msgstr "Wähle weißen Punkt"
-
-#original text: "Pick gray point"
-msgid DESC_PIPETTE_GRAY
-msgstr "Wähle grauen Punkt"
-
-#original text: "Pick black point"
-msgid DESC_PIPETTE_BLACK
-msgstr "Wähle schwarzen Punkt"
-
-#original text: "Use full scanarea"
-msgid DESC_ZOOM_FULL
-msgstr "Zoomt auf kompletten Scanbereich"
-
-#original text: "Zoom 20% out"
-msgid DESC_ZOOM_OUT
-msgstr "Zoomt um 20% heraus"
-
-#original text: "Zoom into selected area"
-msgid DESC_ZOOM_IN
-msgstr "Zoomt in den gewählten Bereich hinein"
-
-#original text: "Undo last zoom"
-msgid DESC_ZOOM_UNDO
-msgstr "letzten Zoom rückgängig machen"
-
-#original text: "Select visible area"
-msgid DESC_FULL_PREVIEW_AREA
-msgstr "Sichtbaren Bereich auswählen"
-
-#original text: "Failed to determine home directory:"
-msgid ERR_HOME_DIR
-msgstr "Konnte Heimatverzeichnis nicht bestimmen"
-
-#original text: "Filename too long"
-msgid ERR_FILENAME_TOO_LONG
-msgstr "Dateiname zu lang"
-
-#original text: "Failed to set value of option"
-msgid ERR_SET_OPTION
-msgstr "Fehler beim Ändern der Option"
-
-#original text: "Failed to obtain value of option"
-msgid ERR_GET_OPTION
-msgstr "Fehler beim Lesen der Option"
-
-#original text: "Error obtaining option count"
-msgid ERR_OPTION_COUNT
-msgstr "Konnte Anzahl der Optionen nicht bestimmen"
-
-#original text: "Failed to open device"
-msgid ERR_DEVICE_OPEN_FAILED
-msgstr "Fehler beim Öffnen des Geräts"
-
-#original text: "no devices available"
-msgid ERR_NO_DEVICES
-msgstr "Keine Geräte erreichbar"
-
-#original text: "Error during read:"
-msgid ERR_DURING_READ
-msgstr "Fehler beim Lesen:"
-
-#original text: "Error during save:"
-msgid ERR_DURING_SAVE
-msgstr "Fehler beim Speichern:"
-
-#original text: "Can't handle depth"
-msgid ERR_BAD_DEPTH
-msgstr "Nicht unterstützte Bittiefe"
-
-#original text: "GIMP can't handle depth"
-msgid ERR_GIMP_BAD_DEPTH
-msgstr "GIMP Modus: nicht unterstützt Bittieffe"
-
-#original text: "Unknown file format for saving"
-msgid ERR_UNKNOWN_SAVING_FORMAT
-msgstr "Unbekanntes Ausgabedateiformat"
-
-#original text: "Failed to open"
-msgid ERR_OPEN_FAILED
-msgstr "Fehler beim Öffnen von"
-
-#original text: "Failed to open pipe for executing printercommand"
-msgid ERR_FAILED_PRINTER_PIPE
-msgstr "Konnte Pipe für Druckbefehl nicht öffnen"
-
-#original text: "Failed to execute printercommand:"
-msgid ERR_FAILED_EXEC_PRINTER_CMD
-msgstr "Konnte Druckbefehl nicht ausführen"
-
-#original text: "Failed to start scanner:"
-msgid ERR_FAILED_START_SCANNER
-msgstr "Konnte Scanner nicht starten"
-
-#original text: "Failed to get parameters:"
-msgid ERR_FAILED_GET_PARAMS
-msgstr "Konnte Parameter nicht lesen"
-
-#original text: "No output format given"
-msgid ERR_NO_OUTPUT_FORMAT
-msgstr "Kein Ausgabedateiformat angegeben"
-
-#original text: "out of memory"
-msgid ERR_NO_MEM
-msgstr "Kein Speicher"
-
-#original text: "LIBTIFF reports error"
-msgid ERR_LIBTIFF
-msgstr "LIBTIFF meldet Fehler"
-
-#original text: "LIBPNG reports error"
-msgid ERR_LIBPNG
-msgstr "LIBPNG meldet Fehler"
-
-#original text: "unknown type"
-msgid ERR_UNKNOWN_TYPE
-msgstr "unbekannter Typ"
-
-#original text: "unknown constraint type"
-msgid ERR_UNKNOWN_CONSTRAINT_TYPE
-msgstr "unbekannter verpflichtender Typ"
-
-#original text: "Failed to execute documentation viewer:"
-msgid ERR_FAILD_EXEC_DOC_VIEWER
-msgstr "Konnte Hilfedateibetrachter nicht ausführen:"
-
-#original text: "Failed to execute fax viewer:"
-msgid ERR_FAILD_EXEC_FAX_VIEWER
-msgstr "Konnte Faxbetrachter nicht ausführen:"
-
-#original text: "Failed to execute faxcommand:"
-msgid ERR_FAILED_EXEC_FAX_CMD
-msgstr "Konnte Faxbefehl nicht ausführen:"
-
-#original text: "bad frame format"
-msgid ERR_BAD_FRAME_FORMAT
-msgstr "unerwartetes FRAME-Format"
-
-#original text: "unable to set resolution"
-msgid ERR_FAILED_SET_RESOLUTION
-msgstr "konnte Auflösung nicht definieren"
-
-#original text: "error"
-msgid ERR_ERROR
-msgstr "Fehler"
-
-#original text: "Sane major version number mismatch!"
-msgid ERR_MAJOR_VERSION_NR_CONFLICT
-msgstr "Sane Hauptversionsnummern-Konflikt!"
-
-#original text: "xsane major version ="
-msgid ERR_XSANE_MAJOR_VERSION
-msgstr "xsane Hauptversionsnummer ="
-
-#original text: "backend major version ="
-msgid ERR_BACKEND_MAJOR_VERSION
-msgstr "backend Hauptversionsnummer ="
-
-#original text: "*** PROGRAM ABORTED ***"
-msgid ERR_PROGRAM_ABORTED
-msgstr "*** PROGRAMM ABGEBROCHEN ***"
-
-#original text: "Failed to allocate image memory:"
-msgid ERR_FAILED_ALLOCATE_IMAGE
-msgstr "Konnte Bildspeicher nicht allozieren:"
-
-#original text: "Preview cannot handle bit depth"
-msgid ERR_PREVIEW_BAD_DEPTH
-msgstr "Vorschau kann Bittiefe nicht handhaben:"
-
-#original text: "GIMP support missing"
-msgid ERR_GIMP_SUPPORT_MISSING
-msgstr "GIMP Unterstützung fehlt"
-
-#original text: "Filename counter overflow"
-msgid WARN_COUNTER_OVERFLOW
-msgstr "Dateinamenzähler übergelaufen"
-
-#original text: "warning: option has no value constraint"
-msgid WARN_NO_VALUE_CONSTRAINT
-msgstr "Warnung: Option hat keinen vorgeschriebenen Wert"
-
-#original text: "Ok"
-msgid ERR_BUTTON_OK
-msgstr "OK"
-
-#original text: "Error"
-msgid ERR_HEADER_ERROR
-msgstr "Fehler"
-
-#original text: "Warning"
-msgid ERR_HEADER_WARNING
-msgstr "Warnung"
-
-#original text: "Failed to create file:"
-msgid ERR_FAILED_CREATE_FILE
-msgstr "Fehler beim Erstellen der Datei:"
-
-#original text: "Error while loading device settings:"
-msgid ERR_LOAD_DEVICE_SETTINGS
-msgstr "Fehler beim Laden der Geräteeinstellungen"
-
-#original text: "is not a device-rc-file !!!"
-msgid ERR_NO_DRC_FILE
-msgstr "ist keine Geräteeinstellungs-Datei !!!"
-
-#original text: "Failed to execute netscape!"
-msgid ERR_NETSCAPE_EXECUTE_FAIL
-msgstr "Konnte Netscape nicht aufrufen"
-
-#original text: "Send fax: no receiver defined"
-msgid ERR_SENDFAX_RECEIVER_MISSING
-msgstr "Fax senden: kein Empfänger angegeben"
-
-#original text: "has been created for device"
-msgid ERR_CREATED_FOR_DEVICE
-msgstr "wurde erstellt für das Gerät"
-
-#original text: "you want to use it for device"
-msgid ERR_USED_FOR_DEVICE
-msgstr "wird benutzt für das Gerät"
-
-#original text: "this may cause problems!"
-msgid ERR_MAY_CAUSE_PROBLEMS
-msgstr "das kann zu Problemen führen!"
-
-#original text: "Usage:"
-msgid TEXT_USAGE
-msgstr "Gebrauch:"
-
-#original text: "[OPTION]... [DEVICE]"
-msgid TEXT_USAGE_OPTIONS
-msgstr "[OPTION]... [GERÄTEDATEI]"
-
-#original text: "Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\n-h, --help display this help message and exit\n-v, --version print version information\n\n-d, --device-settings file load device settings from file (without \".drc\")\n\n-s, --scan start with scan-mode active\n-c, --copy start with copy-mode active\n-f, --fax start with fax-mode active\n-n, --no-mode-selection disable menu for xsane mode selection\n\n-F, --Fixed fixed main window size (overwrite preferences value)\n-R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\n--display X11-display redirect output to X11-display\n--no-xshm do not use shared memory images\n--sync request a synchronous connection with the X11 server"
-msgid TEXT_HELP
-msgstr "" "Startet graphisches Benutzerinterface für SANE (Scanner Access Now Easy)\n" "\n" "-h, --help zeigt diesen Hilfetext\n" "-v, --version gibt Versionsinformation aus\n" "\n" "-d, --device-settings datei lädt Geräteeinstellungen von datei\n" "\n" "-s, --scan starte im Scanmodus\n" "-c, --copy starte im Kopiermodus\n" "-f, --fax starte im Faxmodus\n" "-n, --no-mode-selection deaktiviere Modusauswahl\n" "\n" "-F, --Fixed Hauptfenstergröße ist fest\n" "-R, --Resizeable Hauptfenstergröße ist veränderbar\n" "\n" "--display X11-display lenkt X-Ausgabe auf X11-display um\n" "--no-xshm keine shared memory Bilder benutzen\n" "--sync fordert synchrone Verbindung zum X-Server an"
-
-#original text: "Front-end to the SANE interface"
-msgid XSANE_GIMP_INSTALL_BLURB
-msgstr "Frontend zum SANE-Interface"
-
-#original text: "This function provides access to scanners and other image acquisition devices through the SANE (Scanner Access Now Easy) interface."
-msgid XSANE_GIMP_INSTALL_HELP
-msgstr "Diese Funktion gibt Zugang zu Scannern und anderen bilderzeugenden Geräten durch das SANE (Scanner Access Now Easy) Interface"
-
-#original text: "<Toolbox>/File/Acquire/XSane: "
-msgid XSANE_GIMP_MENU
-msgstr "<Toolbox>/File/Acquire/XSane: "
-
-#original text: "<Toolbox>/Xtns/XSane/"
-msgid XSANE_GIMP_MENU_OLD
-msgstr "<Toolbox>/Xtns/XSane/"
-
-#original text: "<Toolbox>/File/Acquire/XSane: Device dialog..."
-msgid XSANE_GIMP_MENU_DIALOG
-msgstr "<Toolbox>/File/Acquire/XSane: Geräteauswahl"
-
-#original text: "<Toolbox>/Xtns/XSane/Device dialog..."
-msgid XSANE_GIMP_MENU_DIALOG_OLD
-msgstr "<Toolbox>/Xtns/XSane/Geräteauswahl"
-
-
-#original text: "flatbed scanner"
-msgid "flatbed scanner"
-msgstr "Flachbettscanner"
-
-#original text: "frame grabber"
-msgid "frame grabber"
-msgstr "Framegrabber"
-
-#original text: "handheld scanner"
-msgid "handheld scanner"
-msgstr "Handscanner"
-
-#original text: "still camera"
-msgid "still camera"
-msgstr "Photokamera"
-
-#original text: "video camera"
-msgid "video camera"
-msgstr "Videokamera"
-
-#original text: "virtual device"
-msgid "virtual device"
-msgstr "virtuelles Gerät"
-
-
-
-#original text: "Success"
-msgid "Success"
-msgstr "Erfolg"
-
-#original text: "Operation not supported"
-msgid "Operation not supported"
-msgstr "Operation nicht unterstützt"
-
-#original text: "Operation was cancelled"
-msgid "Operation was cancelled"
-msgstr "Operation abgebrochen"
-
-#original text: "Device busy"
-msgid "Device busy"
-msgstr "Gerät besetzt"
-
-#original text: "Invalid argument"
-msgid "Invalid argument"
-msgstr "Ungültiges Argument"
-
-#original text: "End of file reached"
-msgid "End of file reached"
-msgstr "Dateiende erreicht"
-
-#original text: "Document feeder jammed"
-msgid "Document feeder jammed"
-msgstr "Dokumenteneinzug blockiert"
-
-#original text: "Document feeder out of documents"
-msgid "Document feeder out of documents"
-msgstr "Documenteneinzug ohne Papier"
-
-#original text: "Scanner cover is open"
-msgid "Scanner cover is open"
-msgstr "Scannerdeckel ist offen"
-
-#original text: "Error during device I/O"
-msgid "Error during device I/O"
-msgstr "Fehler während Geräte I/O"
-
-#original text: "Out of memory"
-msgid "Out of memory"
-msgstr "Kein Speicher"
-
-#original text: "Access to resource has been denied"
-msgid "Access to resource has been denied"
-msgstr "Zugang zum Gerät wurde verweigert"
-
diff --git a/po/del-0.43.po.in b/po/del-0.43.po.in
deleted file mode 100644
index 5d99520..0000000
--- a/po/del-0.43.po.in
+++ /dev/null
@@ -1,2 +0,0 @@
-remove all LZW entries
-
diff --git a/po/del-0.44.po.in b/po/del-0.44.po.in
deleted file mode 100644
index d37c848..0000000
--- a/po/del-0.44.po.in
+++ /dev/null
@@ -1,4 +0,0 @@
-Delete:
-
-NOTEBOOK_PRINTER_OPTION
-
diff --git a/po/del-0.47.po.in b/po/del-0.47.po.in
deleted file mode 100644
index 1b0b679..0000000
--- a/po/del-0.47.po.in
+++ /dev/null
@@ -1,3 +0,0 @@
-DELETE
-
-ERR_NETSCAPE_NOT_RUNNING
diff --git a/po/es.gmo b/po/es.gmo
new file mode 100644
index 0000000..1ca5b1b
--- /dev/null
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..ef998fd
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,2391 @@
+# XSane Spanish .po file
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Gustavo D. Vranjes <gvranjes@abaconet.com.ar>, 2001
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: XSane-0.84\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2002-01-14 22:56GMT\n"
+"Last-Translator: Gustavo D. Vranjes <gvranjes@abaconet.com.ar>\n"
+"Language-Team: Castellano <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.5\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr "es"
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr "(c)"
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "Acerca..."
+
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "Acerca de la traducción..."
+
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "autorización"
+
+#. WINDOW_LICENSE
+msgid "license"
+msgstr "licencia"
+
+#. WINDOW_INFO
+msgid "info"
+msgstr "información"
+
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "Escaneo por lotes"
+
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "proyecto de fax"
+
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "renombrar página de fax"
+
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr "insertar archivo-ps dentro de fax"
+
+#. WINDOW_MAIL_PROJECT
+msgid "mail project"
+msgstr "proyecto de correo electrónico"
+
+#. WINDOW_MAIL_RENAME
+msgid "rename mail image"
+msgstr "renombrar imagen de correo electrónico"
+
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr "insertar archivo dentro de correo electrónico"
+
+#. WINDOW_PRESET_AREA_RENAME
+msgid "rename preset area"
+msgstr "renombrar area de preset"
+
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "configuración"
+
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "Histograma"
+
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "Curva Gamma"
+
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "Opciones estándar"
+
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "Ociones avanzadas"
+
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "selección de dispositivo"
+
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "Vista previa"
+
+#. WINDOW_VIEWER
+msgid "Viewer"
+msgstr "Visor interno"
+
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+msgid "Viewer: select output filename"
+msgstr "Visor: seleccionar archivo de salida"
+
+#. WINDOW_OCR_OUTPUT_FILENAME
+msgid "Select output filename for OCR text file"
+msgstr "Seleccionar nombre de archivo de salida para archivo de texto OCR"
+
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "seleccionar archivo de salida"
+
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "guardar configuración de dispositivo"
+
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "cargar configuración de dispositivo"
+
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "cambiar directorio de trabajo"
+
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "seleccionar directorio temporal"
+
+#. WINDOW_SCALE
+msgid "Scale image"
+msgstr "Redimensionar imagen"
+
+#. WINDOW_DESPECKLE
+msgid "Despeckle image"
+msgstr "Desparasitar imagen"
+
+#. WINDOW_BLUR
+msgid "Blur image"
+msgstr "Desenfocar imagen"
+
+#. WINDOW_STORE_MEDIUM
+msgid "Store medium definition"
+msgstr "Guardar definición de medio"
+
+#. MENU_FILE
+msgid "File"
+msgstr "Archivo"
+
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "Preferencias"
+
+#. MENU_VIEW
+msgid "View"
+msgstr "Ver"
+
+#. MENU_HELP
+msgid "Help"
+msgstr "Ayuda"
+
+#. MENU_FILTERS
+msgid "Filters"
+msgstr "Filtros"
+
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "Acerca de XSane..."
+
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr "Información"
+
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "Salir"
+
+#. MENU_ITEM_SAVE_IMAGE
+msgid "Save image"
+msgstr "Guardar imagen"
+
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "Cerrar"
+
+#. MENU_ITEM_CLONE
+msgid "Clone"
+msgstr "Duplicar"
+
+#. MENU_ITEM_SCALE
+msgid "Scale"
+msgstr "Redimensionar"
+
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr "Desparasitar "
+
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr "Desenfoque"
+
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr "Imagen Cruda"
+
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr "Imagen mejorada"
+
+#. BUTTON_START
+msgid "Start"
+msgstr "Comenzar"
+
+#. BUTTON_OK
+msgid "Ok"
+msgstr "Ok"
+
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr "Aceptar"
+
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr "No aceptar"
+
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr "Aplicar"
+
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr "Cancelar"
+
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr "Reducir"
+
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "Continuar a su propio riesgo"
+
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "Explorar"
+
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr "Sobreescribir"
+
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr "Ańadir area"
+
+#. BUTTON_PAGE_DELETE
+msgid "Delete page"
+msgstr "Borrar página"
+
+#. BUTTON_PAGE_SHOW
+msgid "Show page"
+msgstr "Mostrar página"
+
+#. BUTTON_PAGE_RENAME
+msgid "Rename page"
+msgstr "Renombrar página"
+
+#. BUTTON_IMAGE_DELETE
+msgid "Delete image"
+msgstr "Borrar imagen"
+
+#. BUTTON_IMAGE_SHOW
+msgid "Show image"
+msgstr "Mostrar imagen"
+
+#. BUTTON_IMAGE_RENAME
+msgid "Rename image"
+msgstr "Renombrar imagen"
+
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr "Insertar archivo"
+
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr "Crear proyecto"
+
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr "Enviar proyecto"
+
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr "Borrar proyecto"
+
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr "Ańadir impresora"
+
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr "Borrar impresora"
+
+#. BUTTON_PREVIEW_ACQUIRE
+msgid "Acquire preview"
+msgstr "Adquirir vista previa"
+
+#. BUTTON_PREVIEW_CANCEL
+msgid "Cancel preview"
+msgstr "Cancelar vista previa"
+
+#. BUTTON_DISCARD_IMAGE
+msgid "Discard image"
+msgstr "Descartar imagen"
+
+#. BUTTON_DISCARD_ALL_IMAGES
+msgid "Discard all images"
+msgstr "Descartar todas las imágenes"
+
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr "No cerrar"
+
+#. BUTTON_SCALE_BIND
+#, fuzzy
+msgid "Bind scale"
+msgstr "Atar escala"
+
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr "Modo fino"
+
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr "Correo electrónico HTML"
+
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr "Guardar preferencias de dispositivo al salir"
+
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr "Advertencia de sobreescritura"
+
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr "Omitir nombres de archivos existentes"
+
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr "Reducir imagen de 16 bits a imagen de 8 bits"
+
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr "Tamańo de ventana principal fijo"
+
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "Deshabilitar vista previa de gamma de gimp"
+
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr "Usar mapa de colores privado"
+
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "Automejorar gamma"
+
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+msgid "Preselect scanarea"
+msgstr "Preseleccionar área de escaneado"
+
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr "Autocorregir colores"
+
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr "Autentificación POP3"
+
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "Escaneando dispositivos"
+
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr "Dispositivos disponibles:"
+
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr "Opciones de XSane"
+
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr "Modo de XSane"
+
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr "Paso"
+
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr "Tipo"
+
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr "Escáner y backend:"
+
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr "Vendedor:"
+
+#. TEXT_MODEL
+msgid "Model:"
+msgstr "Modelo:"
+
+#. TEXT_TYPE
+msgid "Type:"
+msgstr "Tipo:"
+
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr "Dispositivo:"
+
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr "Backend cargado:"
+
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr "Versión de Sane:"
+
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr "Valores recientes:"
+
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr "Corrección gamma por:"
+
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr "escáner"
+
+#. TEXT_SOFTWARE_XSANE
+msgid "software (XSane)"
+msgstr "software (XSane)"
+
+#. TEXT_NONE
+msgid "none"
+msgstr "ninguno"
+
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr "Profundidad de entrada de gamma:"
+
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr "Profundidad de salida de gamma:"
+
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr "Profundidad de salida de escáner:"
+
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr "Formatos de salida de XSane:"
+
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr "Formatos de salida de 8 bits:"
+
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr "Formatos de salida de 16 bits:"
+
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Gimp no soporta profundidad de 16 bits/color.\n"
+"żQuire reducir la profundidad a 8 bits/color?"
+
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"La profundidad de 16 bits/color no está soportada en éste formato de "
+"salida.\n"
+"żQuire reducir la profundidad a 8 bits/color?"
+
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr "Se requiere autorización para"
+
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr "La transmisión de contraseńa es segura"
+
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr "Los pedidos de backend requieren contraseńa de texto puro."
+
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr "Nombre de usuario:"
+
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr "Contraseńa:"
+
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr "Parámetros no válidos."
+
+#. TEXT_VERSION
+msgid "version:"
+msgstr "versión:"
+
+#. TEXT_PACKAGE
+msgid "package"
+msgstr "paquete"
+
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr "Con soporte de GIMP"
+
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr "Sin soporte de GIMP"
+
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "compilado con GTK-"
+
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr "compilado con GIMP-"
+
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr "desconocido"
+
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"XSane se distribuye bajo los términos de la Licencia Pública General GNU\n"
+"tal como se la publica por la Free Software Foundation; cualquier versión \n"
+"2 de la Licencia, or (a su opción) cualquier versión posterior\n"
+"\n"
+"Éste programa se distribuye con el deseo que pueda ser útil, pero\n"
+"SIN NINGUNA GARANTÍA; aún sin la garantía implícita de\n"
+"MERCANTILISMO o AJUSTE PARA ALGÚN PROPÓSITO PARTICULAR\n"
+
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr "Correo electrónico:"
+
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr "Página web:"
+
+#. TEXT_FILE
+msgid "File:"
+msgstr "Archivo:"
+
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr "Traducción:"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+"texto traducido al castellano\n"
+"por Gustavo D. Vranjes\n"
+"Correo electrónico gvranjes@abaconet.com.ar\n"
+
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr "0x0: 0KB"
+
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr "Páginas escaneadas:"
+
+#. TEXT_MAIL_TEXT
+msgid "Email text:"
+msgstr "Texto de correo electrónico:"
+
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr "Adjuntos:"
+
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr "Estado del proyecto:"
+
+#. TEXT_MEDIUM_DEFINITION_NAME
+#, fuzzy
+msgid "Medium Name:"
+msgstr "Nombre del medio:"
+
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+"Tamańo %d x %d pixel, %d bit/color, %d colores, %1.0f dpi x %1.0f ppp, %1.1f "
+"%s"
+
+#. TEXT_X_SCALE_FACTOR
+msgid "X-Scale factor:"
+msgstr "Factor de Escala-X:"
+
+#. TEXT_Y_SCALE_FACTOR
+msgid "Y-Scale factor:"
+msgstr "Factor de Escala Y:"
+
+#. TEXT_DESPECKLE_RADIUS
+msgid "Despeckle radius:"
+msgstr "Radio de desparasitado"
+
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr "Radio de desenfoque de imagen:"
+
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr "Selección de impresora:"
+
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr "Nombre:"
+
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr "Comando:"
+
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr "Copiar opción número:"
+
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "Resolución de línea de arte (ppp):"
+
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "Resolución de tonos de gris (ppp):"
+
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "Resolución de color (ppp):"
+
+#. TEXT_SETUP_PRINTER_WIDTH
+msgid "Width"
+msgstr "Anchura"
+
+#. TEXT_SETUP_PRINTER_HEIGHT
+msgid "Height"
+msgstr "Altura"
+
+#. TEXT_SETUP_PRINTER_LEFT
+msgid "Left offset"
+msgstr "Desplazamiento a izquierda"
+
+#. TEXT_SETUP_PRINTER_BOTTOM
+msgid "Bottom offset"
+msgstr "Desplazamiento hacia abajo"
+
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr "Valor de gamma de impresora:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr "Gamma rojo de impresora:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr "Gamma verde de impresora:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr "Gamma azul de impresora:"
+
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "Directorio temporal"
+
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "Permisos de archivo de imagen"
+
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "Permisos de directorio"
+
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr "Calidad de imagen JPEG "
+
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr "Compresión de imagen PNG"
+
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr "Largo del contador de nombre de archivo"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "Compresión de imagen TIFF de 16 bits"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "Compresión de imagen TIFF de 8 bits"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr "Compresión de imagen TIFF de línea de arte"
+
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "Sobremuestra de vista previa:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr "Vista previa de gamma:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr "Vista previa de gamma rojo:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr "Vista previa de gamma verde:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr "Vista previa de gamma azul:"
+
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "Opción de umbral:"
+
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr "Módulo de Alimentación Automática de Documento:"
+
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr "Rango de vista previa de pipeta"
+
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "Umbral mínimo:"
+
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "Umbral máximo:"
+
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "Multiplicador de umbral:"
+
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "Desplazamiento de umbral:"
+
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "Nombre del modo de escaneo en tonos de grises:"
+
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "Visor de archivo de ayuda (HTML):"
+
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr "Opción del receptor:"
+
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr "Opción del archivo post-script:"
+
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr "Opción en modo normal:"
+
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr "Opción en modo fino:"
+
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr "Visor (Postscript):"
+
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr "Servidor SMTP:"
+
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr "puerto SMTP:"
+
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr "De:"
+
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr "Responder a:"
+
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr "Servidor POP3:"
+
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr "puerto POP3:"
+
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr "Usuario POP3:"
+
+#. TEXT_SETUP_POP3_PASS
+msgid "POP3 password:"
+msgstr "Contraseńa POP3:"
+
+#. TEXT_SETUP_MAIL_VIEWER
+msgid "Viewer (png):"
+msgstr "Visor (png):"
+
+#. TEXT_SETUP_OCR_COMMAND
+msgid "OCR Command:"
+msgstr "Comando OCR:"
+
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+msgid "Inputfile option:"
+msgstr "Opción del archivo de entrada:"
+
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+msgid "Outputfile option:"
+msgstr "Opción del archivo de salida:"
+
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr "usuario"
+
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr "grupo"
+
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr "todo"
+
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr "Guarda imagen"
+
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr "Imagen"
+
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "Copia a impresora"
+
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr "Fax"
+
+#. NOTEBOOK_MAIL_OPTIONS
+msgid "Mail"
+msgstr "Correo electrónico"
+
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr "OCR"
+
+#. NOTEBOOK_DISPLAY_OPTIONS
+msgid "Display"
+msgstr "Pantalla"
+
+#. NOTEBOOK_ENHANCE_OPTIONS
+msgid "Enhancement"
+msgstr "Mejora"
+
+#. MENU_ITEM_MAIL
+msgid "Email"
+msgstr "Correo electrónico"
+
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr "Mostrar tooltips"
+
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr "Mostrar vista previa"
+
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr "Mostrar histograma"
+
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "Mostrar curva de gamma"
+
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr "Mostrar opciones estándard"
+
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr "Mostrar opciones avanzadas"
+
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr "Configuración"
+
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr "Unidad de medida"
+
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr "milímetros"
+
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr "centímetros"
+
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr "pulgadas"
+
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "Póliza de actualización"
+
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "continuo"
+
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "discontinuo"
+
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "retrasado"
+
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "Mostrar lista de resoluciones"
+
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "Rotar postscript"
+
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr "Guardar configuración de dispositivo"
+
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr "Cargar configuración de dispositivo"
+
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "Cambiar directorio"
+
+#. MENU_ITEM_XSANE_LICENSE
+msgid "License"
+msgstr "Licencia"
+
+#. MENU_ITEM_XSANE_DOC
+msgid "XSane doc"
+msgstr "Documentos de XSane"
+
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr "Documentos del backend"
+
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr "Backends disponibles"
+
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr "Tips de escaneo"
+
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr "żProblemas?"
+
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr "inactivo"
+
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr "sin compresión"
+
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr "Compresión CCITT 1D Huffman"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr "Compresión CCITT Grupo 3 Fax"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr "Compresión CCITT Grupo 4 Fax"
+
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr "Compresión JPEG DCT"
+
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr "paquetes de bits"
+
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "Ventana de opciones estándar (línea de arte)"
+
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "Ventana principal de XSane (línea de arte)"
+
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "Ventana principal de XSane (escala de grises ->línea de arte)"
+
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr "(ninguno)"
+
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "por extensión"
+
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr "Ańadir selección a la lista"
+
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr "Renombrar definición"
+
+#. MENU_ITEM_PRESET_AREA_DELETE
+msgid "Delete definition"
+msgstr "Borrar definición"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr "Mover arriba"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr "Mover abajo"
+
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "Escaneando"
+
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "Recibiendo datos %s"
+
+#. PROGRESS_TRANSFERING_DATA
+msgid "Transfering image"
+msgstr "Transfiriendo imagen"
+
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr "Rotando imagen"
+
+#. PROGRESS_MIRRORING_DATA
+msgid "Mirroring image"
+msgstr "Espejando imagen"
+
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr "Comprimiendo imagen"
+
+#. PROGRESS_CONVERTING_DATA
+msgid "Converting image"
+msgstr "Convirtiendo imagen"
+
+#. PROGRESS_SAVING_DATA
+msgid "Saving image"
+msgstr "Guardando imagen"
+
+#. PROGRESS_CLONING_DATA
+msgid "Cloning image"
+msgstr "Clonando imagen"
+
+#. PROGRESS_SCALING_DATA
+msgid "Scaling image"
+msgstr "Cambiando tamańo de imagen"
+
+#. PROGRESS_DESPECKLING_DATA
+msgid "Despeckling image"
+msgstr "Desparasitando imagen"
+
+#. PROGRESS_BLURING_DATA
+msgid "Bluring image"
+msgstr "Desenfocando imagen"
+
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr "Comenzar escaneo <Ctrl-Enter>"
+
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr "Cancelar escaneo <ESC>"
+
+#. DESC_PREVIEW_ACQUIRE
+msgid "Acquire preview scan <Alt-p>"
+msgstr "Adquirir vista previa del escaneo <Alt-p>"
+
+#. DESC_PREVIEW_CANCEL
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "Cancelar vista previa del escaneo <Alt-ESC>"
+
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+"guardar-<Ctrl-s>, ver-<Ctrl-v>, fotocopia-<Ctrl-c>, fax-<Ctrl-f> ó "
+"mail-<Ctrl-m>"
+
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr "Seleccionar tipo de fuente de negativo"
+
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr ""
+"Valor que se agrega al contador de nombre de archivo despues de escanear"
+
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr "Explorar nombre de archivo de imagen"
+
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr "Nombre de archivo para la imagen escaneada"
+
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr ""
+"Tipo de formato de imagen, la extensión adecuada se agregará automáticamente "
+" al nombre de archivo"
+
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr "Ingresar nombre del proyecto de fax"
+
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr "Ingrese nuevo nombre para la página de fax"
+
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr "Ingrese número de teléfono del receptor ó dirección"
+
+#. DESC_MAILPROJECT
+msgid "Enter name of mail project"
+msgstr "Ingresar nombre del proyecto de correo electrónico"
+
+#. DESC_MAILIMAGENAME
+msgid "Enter new name for mail image"
+msgstr "Ingresar nuevo nombre para la imagen de correo electrónico"
+
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr "Ingresar dirección de correo electrónico"
+
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr "Ingresar asunto de correo electrónico"
+
+#. DESC_PRESET_AREA_NAME
+msgid "Enter new name for preset area"
+msgstr "Ingresar nuevo nombre para el área de preset"
+
+#. DESC_PRINTER_SELECT
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "Seleccionar definición de impresora <Shift-F1/F2/...>"
+
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr "Establecer resolución de escaneo"
+
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "Establecer resolución de escaneo en la dirección x"
+
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "Establecer resolución de escaneo en la dirección y"
+
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr "Establecer factor de ampliación"
+
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "Establecer factor de ampliación para la dirección x"
+
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "Establecer factor de ampliación para la dirección y"
+
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr "Establecer número de copias"
+
+#. DESC_NEGATIVE
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr "Negativos: Invertir colores para escanear negativos <Shift-n>"
+
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr "Establecer valor de gamma"
+
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr "Establecer valor de gamma para el componente rojo"
+
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr "Establecer valor de gamma para el componente verde"
+
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr "Establecer valor de gamma para el componente azul"
+
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr "Establecer brillo"
+
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr "Establecer brillo para el componente rojo"
+
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr "Establecer brillo para el componente verde"
+
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr "Establecer brillo para el componente azul"
+
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr "Establecer contraste"
+
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr "Establecer contraste para el componente rojo"
+
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr "Establecer contraste para el componente verde"
+
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr "Establecer contraste para el componente azul"
+
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "Establecer umbral"
+
+#. DESC_RGB_DEFAULT
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"RGB por omisión: Establecer valores de mejora para rojo, verde y azul a "
+"valores por omisión <Shift-b>:\n"
+"gamma = 1.0\n"
+"brillo = 0\n"
+"contraste = 0"
+
+#. DESC_ENH_AUTO
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr "Autoajustar gamma, brillo y contraste <Shift-e>"
+
+#. DESC_ENH_DEFAULT
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"Establecer valores de mejora por omisión <Shift-d>:\n"
+"gamma = 1.0\n"
+"brillo = 0\n"
+"contraste = 0"
+
+#. DESC_ENH_RESTORE
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "Restaurar valores de mejora desde preferencias <Shift-r>"
+
+#. DESC_ENH_STORE
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr "Guardar valores de mejora activos a preferencias <Shift-m>"
+
+#. DESC_HIST_INTENSITY
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "Mostrar histograma de intensidad/grises <Alt-i>"
+
+#. DESC_HIST_RED
+msgid "Show histogram of red component <Alt-r>"
+msgstr "Mostrar histograma de componente rojo <Alt-r>"
+
+#. DESC_HIST_GREEN
+msgid "Show histogram of green component <Alt-g>"
+msgstr "Mostrar histograma de componente verde <Alt-g>"
+
+#. DESC_HIST_BLUE
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "Mostrar histograma de componente azul <Alt-b>"
+
+#. DESC_HIST_PIXEL
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr ""
+"Modo de pantalla: mostrar histograma con líneas en vez de pixels <Alt-m>"
+
+#. DESC_HIST_LOG
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "Mostrar logaritmo de la cuenta de pixels <Alt-l>"
+
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr "Seleccionar definición a cambiar"
+
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr "Definir un nombre para la selección de ésta definición"
+
+#. DESC_PRINTER_COMMAND
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr "ingrese comando a ser ejecutado en modo copia (e.g. \"lpr\")"
+
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr "Ingrese opción para el número de copias"
+
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr ""
+"Resolución con la que las imágenes de línea de arte son impresas y guardadas "
+"en postscript"
+
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr ""
+"Resolución con la que las imágenes en tonos de grises son impresas y "
+"guardadas en postscript"
+
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr ""
+"Resolución con la que las imágenes en color son impresas y guardadas en "
+"postscript"
+
+#. DESC_PRINTER_WIDTH
+msgid "Width of printable area"
+msgstr "Anchura de area imprimible"
+
+#. DESC_PRINTER_HEIGHT
+msgid "Height of printable area"
+msgstr "Altura de area imprimible"
+
+#. DESC_PRINTER_LEFTOFFSET
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr ""
+"Deplazamiento a la izquierda desde el borde del papel al área imprimible"
+
+#. DESC_PRINTER_BOTTOMOFFSET
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "Deplazamiento hacia abajo desde el borde del papel al área imprimible"
+
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr "Valor de gamma adicional para fotocopia"
+
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr "Valor de gamma adicional del valor rojo para fotocopia"
+
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr "Valor de gamma adicional del valor verde para fotocopia"
+
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr "Valor de gamma adicional del valor azul para fotocopia"
+
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "Ruta al directorio temporal"
+
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "Explorar para directorio temporal"
+
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr ""
+"Calidad en porcentaje si la imagen es guardada como jpeg ó tiff con "
+"compresión jpeg"
+
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr "Compresión si la imagen es guardada como png"
+
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr "Medida mínima del contador en el nombre de archivo"
+
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "Tipo de compresión si la imagen de 16 bits es guardada como tiff"
+
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "Tipo de compresión si la imagen de 8 bits es guardada como tiff"
+
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "Tipo de compresión si la imagen de línea de arte es guardada como tiff"
+
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr ""
+"Guardar preferencias dependientes del dispositivo en archivo por omisión al "
+"salir de XSane"
+
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "Advertir antes de sobreescribir un archivo existente"
+
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr ""
+"Si el contador de nombre archivo se incrementa automáticamente, los números "
+"presentes son salteados"
+
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr ""
+"Si el escáner envía imágenes de 16 bits/color guardar imágenes con 8 "
+"bits/color"
+
+#. DESC_PSFILE_WIDTH
+msgid "Width of paper for postscript files"
+msgstr "Anchura de papel para archivos postscript"
+
+#. DESC_PSFILE_HEIGHT
+msgid "Height of paper for postscript files"
+msgstr "Altura de papel para archivos postscript"
+
+#. DESC_PSFILE_LEFTOFFSET
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Desplazamiento a la izquierda desde el borde del papel hasta el área usable "
+"para los archivos postscript"
+
+#. DESC_PSFILE_BOTTOMOFFSET
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Desplazamiento hacia abajo desde el borde del papel hasta el área usable "
+"para los archivos postscript"
+
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr ""
+"Usar tamańo de ventana principal fijo ó uno de tamańo variable con scroll"
+
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr ""
+"Deshabilitar el gamma de previsualización cuando XSane funciona como una "
+"extensión de GIMP"
+
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr ""
+"Usar un mapa de colores propio si la profundidad de la pantalla es 8 bpp"
+
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr "Valor con el que la resolución de la vista previa es multiplicado"
+
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr ""
+"Establecer el valor de la corrección gamma para la imagen de previsualización"
+
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr ""
+"Establecer el valor de la corrección gamma para el componente rojo de la "
+"imagen de previsualización"
+
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr ""
+"Establecer el valor de la corrección gamma para el valor verde de la imagen "
+"de previsualización"
+
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr ""
+"Establecer el valor de la corrección gamma para el valor azul de la imagen "
+"de previsualización"
+
+#. DESC_LINEART_MODE
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "Definir la forma en que XSane manejará la opción umbral"
+
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr ""
+"Seleccionar modo de escaneo tonos de grises. Éste modo es usado para "
+"previsualización de línea de arte cuando la transformación de tonos de "
+"grises a línea de arte está habilitada"
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "El mínimo nivel del umbral del escáner en %"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "El máximo nivel del umbral del escáner en %"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Factor de multiplicación para hacer que el rango del umbral de XSane y el "
+"rango del umbral del escáner sean iguales"
+
+#. DESC_PREVIEW_THRESHOLD_OFF
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Desplazamiento para hacer que el rango del umbral de XSane y el rango del "
+"umbral del escáner sean iguales"
+
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+"Seleccionar fuente de escaneo para Alimentador de Documentos Automático. Si "
+"ésta fuente se selecciona XSane escaneará hasta que ocurra un error \"out of "
+"paper\" (sin papel)."
+
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr ""
+"Dimensión del cuadrado que es usado para promediar color para la función "
+"pipeta"
+
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr ""
+"Ingresar comando a ser ejecutado para mostrar archivos de ayuda, Ądebe ser "
+"un visualizador html!"
+
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr "Cambiar valor de gamma cuando el botón de automejora es presionado"
+
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr ""
+"Seleccionar área de escaneo después de que la previsualización ha concluído"
+
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr ""
+"Hacer corrección de color después de que la previsualización ha concluído"
+
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr "Ingresar comando a ser ejecutado en modo de fax"
+
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr "Ingresar opción para especificar un receptor"
+
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr "Ingresar opción para especificar archivos postscript siguientes"
+
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr "Ingresar opción para especificar modo normal (baja resolución)"
+
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr "Ingresar opción para especificar modo fino (alta resolución)"
+
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr "Ingresar comando a ser ejecutado para ver un fax"
+
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr "Enviar fax con resolución vertical alta (196 lpp en vez de 98 lpp)"
+
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr "Dirección IP ó nombre de Dominio del servidor SMTP"
+
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr "puerto a conectar del servidor SMTP"
+
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr "Ingresar su dirección de correo electrónico"
+
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr ""
+"Ingresar dirección de correo electrónico para los correos electrónicos "
+"respondidos"
+
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr "Autentificar en un servidor POP3 antes de enviar el correo electrónico"
+
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr "Dirección IP ó nombre de Dominio del servidor POP3"
+
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr "puerto a conectar al servidor POP3"
+
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr "nombre de usuario para el servidor POP3"
+
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr "contraseńa para el servidor POP3"
+
+#. DESC_MAIL_VIEWER
+msgid "Enter command to be executed to view a mail image"
+msgstr ""
+"Ingrese comando a ser ejecutado para ver una imagen de correo electrónico"
+
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr ""
+"El correo electrónico se envía en modo html, las imágenes se muestran "
+"directamente"
+
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr "Ingresar comando para lanzar programa de OCR"
+
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr ""
+"Ingresar opción para el programa de OCR para definir archivo de entrada"
+
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr "ngresar opción para el programa de OCR para definir archivo de salida"
+
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr "leer"
+
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr "escribir"
+
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr "ejecutar"
+
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr "Tomar punto blanco"
+
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr "Tomar punto gris"
+
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr "Tomar punto negro"
+
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr "Usar área de escaneo completa"
+
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr "Ampliar 20%"
+
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr "Ampliar dentro del área seleccionada"
+
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr "Deshacer última ampliación"
+
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr "Seleccionar area visible"
+
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr "Autoseleccionar área de escaneado"
+
+#. DESC_DELETE_IMAGES
+msgid "Delete preview image cache"
+msgstr "Borrar cache de imagen de previsualización"
+
+#. DESC_PRESET_AREA
+msgid "Preset area"
+msgstr "Área de preset"
+
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr "Rotar previsualización y escanear"
+
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr "Reconocimiento Óptico de Caracteres"
+
+#. DESC_VIEWER_CLONE
+msgid "Clone image"
+msgstr "Clonar imagen"
+
+#. DESC_VIEWER_ROTATE90
+msgid "Rotate image 90 degree"
+msgstr "Rotar imagen 90 grados"
+
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr "Rotar imagen 180 grados"
+
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr "Rotar imagen 270 grados"
+
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr "Espejar imagen sobre el eje vertical"
+
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr "Espejar imagen sobre el eje horizontal"
+
+#. DESC_VIEWER_ZOOM
+msgid "Zoom image"
+msgstr "Ampliar imagen"
+
+#. DESC_STORE_MEDIUM
+msgid "Store medium"
+msgstr "Guardar medio"
+
+#. DESC_DELETE_MEDIUM
+msgid "Delete active medium"
+msgstr "Borrar medio activo"
+
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
+msgstr "Falló al determinar el directorio home:"
+
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "Falló al cambiar el directorio de trabajo a"
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
+msgstr "Archivo demasiado grande"
+
+#. ERR_CREATE_TEMP_FILE
+msgid "Could not create temporary file"
+msgstr "No se puede crear archivos temporales"
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
+msgstr "Falló al definir valor de opción"
+
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
+msgstr "Falló al obtener valor de opción"
+
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
+msgstr "Error al obtener opción de conteo"
+
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
+msgstr "Falló al abrir dispositivo"
+
+#. ERR_NO_DEVICES
+msgid "no devices available"
+msgstr "no hay dispositivos obtenibles"
+
+#. ERR_DURING_READ
+msgid "Error during read:"
+msgstr "Error durante lectura:"
+
+#. ERR_DURING_SAVE
+msgid "Error during save:"
+msgstr "Error durante guardado:"
+
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
+msgstr "No puede manejar la profundidad"
+
+#. ERR_GIMP_BAD_DEPTH
+#, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP no puede manejar la profundidad de %d bits/color"
+
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
+msgstr "Formato de archivo desconocido para guardar"
+
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
+msgstr "Falló al abrir"
+
+#. ERR_CREATE_SECURE_FILE
+msgid "Could not create secure file (may be a link does exist):"
+msgstr "No se puede crear un archivo seguro (puede ser que exista un link):"
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
+msgstr "Falló al abrir tubería para ejecutar comando de impresión"
+
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
+msgstr "Falló al ejecutar comando de impresión:"
+
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
+msgstr "Falló al encender escáner:"
+
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
+msgstr "Falló al tomar parámetros:"
+
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
+msgstr "No se dio formato de salida"
+
+#. ERR_NO_MEM
+msgid "out of memory"
+msgstr "sin memoria"
+
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr ""
+"El Backend envía más datos de imagen que los definidos en los parámetros"
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
+msgstr "LIBTIFF reporta un error"
+
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
+msgstr "LIBPNG reporta un error"
+
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
+msgstr "tipo desconocido"
+
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
+msgstr "Tipo de restricción desconocida"
+
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
+msgstr "Falló al ejecutar visor de documentación:"
+
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
+msgstr "Falló al ejecutar visor de fax:"
+
+#. ERR_FAILED_EXEC_FAX_CMD
+msgid "Failed to execute fax command:"
+msgstr "Falló al ejecutar comando de fax:"
+
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+msgid "Failed to execute mail image viewer:"
+msgstr "Falló al ejecutar visor de imagen de correo electrónico:"
+
+#. ERR_FAILED_EXEC_OCR_CMD
+msgid "Failed to execute ocr command:"
+msgstr "Falló al ejecutar comando de OCR:"
+
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
+msgstr "formato de frame inadecuado"
+
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
+msgstr "No es posible establecer la resolución"
+
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr "El archivo de contraseńa (%s) es inseguro, usar permisos x00\n"
+
+#. ERR_ERROR
+msgid "error"
+msgstr "error"
+
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
+msgstr "ĄEl número de versión principal de Sane no coincide!"
+
+#. ERR_XSANE_MAJOR_VERSION
+msgid "XSane major version ="
+msgstr "Versión principal de XSane = "
+
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
+msgstr "Versión principal de backend = "
+
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
+msgstr "*** PROGRAMA ABORTADO ***"
+
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
+msgstr "Falló al colocar la imagen de memoria:"
+
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr "La vista previa no puede manejar la profundidad de bits"
+
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
+msgstr "No hay soporte de GIMP"
+
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr "No se puede crear archivos temporales de previsualización"
+
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr ""
+"No se puede crear nombres de archivos para archivos de previsualización"
+
+#. ERR_CREATE_FAX_PROJECT
+msgid "Could not create faxproject"
+msgstr "No se pudo crear proyecto de fax"
+
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr "Desborde negativo para el contador de nombres de archivo"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr "advertencia: la opción no tiene restricciones de valor"
+
+#. WARN_XSANE_AS_ROOT
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+"ĄUsted intenta ejecutar XSane como ROOT, es verdaderamente PELIGROSO!\n"
+"\n"
+"Ą No envíe ningún reporte de bugs cuando usted\n"
+"tenga algún problema mientras ejecute XSane as root:\n"
+"USTED ESTÁ SOLO!"
+
+#. ERR_HEADER_ERROR
+msgid "Error"
+msgstr "Error"
+
+#. ERR_HEADER_WARNING
+msgid "Warning"
+msgstr "Aviso"
+
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "Información"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
+msgstr "Falló al crear archivo:"
+
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
+msgstr "Error mientras se cargaban las opciones del dispositivo:"
+
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
+msgstr "ĄĄĄno es un archivo-rc-de-dispositivo!!!"
+
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
+msgstr "ĄFalló al ejecutar Netscape!"
+
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
+msgstr "Envío de fax: no se definió receptor"
+
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
+msgstr "se creó para dispositivo"
+
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
+msgstr "usted quiere usarlo para el dispositivo"
+
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
+msgstr "Ąésto puede causr problemas!"
+
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr "Hay %d imágenes no guardadas"
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "El archivo %s ya existe"
+
+#. ERR_FILE_NOT_EXISTS
+#, c-format
+msgid "File %s does not exist"
+msgstr "El archivo %s no existe"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, c-format
+msgid "File %s is not a postscript file"
+msgstr "El archivo %s no es un archivo postscript"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "Formato de salida de %d-bit no soportado: %s"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr "La imagen del visor no se guardó"
+
+#. TEXT_USAGE
+msgid "Usage:"
+msgstr "Uso:"
+
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr "[OPCIÓN]... [DISPOSITIVO]"
+
+#. TEXT_HELP
+#, fuzzy
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
+msgstr ""
+"Ejecutar interfaz gráfica para acceder a dispositivos SANE[(A)cceso a "
+"e(S)cáner (N)ahora (E)fácil)\n"
+"\n"
+"El formato de [DISPOSITIVO] es nombre:archivo_de_dispositivo de backend "
+"(e.g. umax:/dev/scanner).\n"
+"[OPCIÓN]... puede ser una combinación de los siguientes items:\n"
+" -h, --help mostrar éste mensaje de ayuda y salir\n"
+" -v, --version imprimir información de la versión\n"
+" -l, --license imprimir información de la licencia\n"
+"\n"
+" -d, --device-settings arch. cargar opciones de dispositivo desde archivo "
+"(sin \".drc\")\n"
+"\n"
+" -s, --save comenzar con save-mode activo\n"
+" -V, --viewer comenzar con viewer-mode activo\n"
+" -c, --copy comenzar con copy-mode activo\n"
+" -f, --fax comenzar con fax-mode activo\n"
+" -m, --mail comenzar con mail-mode activo\n"
+" -n, --no-mode-selection no habilitar menu para XSane mode selection\n"
+"\n"
+" -F, --Fixed tamańo de ventana principal fijo (sobreescribe "
+"el valor de preferencias)\n"
+" -R, --Resizeable ventana principal redimensionable, con scroll "
+"(sobreescribe el valor de preferencias)\n"
+"\n"
+" -p, --print-filenames imprimir nombres de archivos de imágenes "
+"creadas por XSane\n"
+" -N, --force-filename nombre forzar nombre de archivo y no habilitar el de "
+"la selección de usuario \n"
+"\n"
+" --display pantalla-X11 redireccionar salida a la pantalla de X11\n"
+" --no-xshm no usar imágenes en memoria compartida\n"
+" --sync requerir una conexión sincrónica con el "
+"servidor X11"
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
+msgstr "Front-end para la interfaz SANE "
+
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+"Ésta función proporciona acceso a escáneres y otros dispositivos de "
+"adquisición de imágenes a través de la interfaz SANE[(A)cceso a e(S)cáner "
+"(N)ahora (E)fácil)"
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr "<Toolbox>/File/Acquire/XSane: Ventana de diálogo de dispositivo..."
+
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
+msgstr "<Toolbox>/File/Acquire/XSane: "
+
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr "<Toolbox>/Xtns/XSane: Ventana de diálogo de dispositivo..."
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
+msgstr "<Toolbox>/Xtns/XSane/"
+
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr "tamańo real"
+
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr "DIN A3 vert."
+
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr "DIN A3 horiz."
+
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr "DIN A4 vert."
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr "DIN A4 horiz."
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr "DIN A5 vert."
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr "DIN A5 horiz."
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
+msgstr "13cm x 18cm"
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
+msgstr "18cm x 13cm"
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
+msgstr "10cm x 15cm"
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
+msgstr "15cm x 10cm"
+
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr "9cm x 13cm"
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr "13cm x 9cm"
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr "legal vert."
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr "legal horiz."
+
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr "carta vert."
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr "carta horiz."
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr "Rango completo"
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr "Diapositiva"
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+msgid "Standard negative"
+msgstr "Negativo estándar"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr "Negativo Agfa"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr "Negativo Agfa XRG 200-4"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr "Negativo Agfa HDC 100"
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+msgid "Fuji negative"
+msgstr "Negativo Fuji"
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr "Negativo Kodak"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+msgid "Konica negative"
+msgstr "Negativo Konica"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+msgid "Konica negative VX 100"
+msgstr "Negativo Konica VX 100"
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr "Negativo Rossmann HR 100"
+
+#. Sane backend messages
+msgid "flatbed scanner"
+msgstr "escáner flatbed"
+
+msgid "frame grabber"
+msgstr "capturador de frames"
+
+msgid "handheld scanner"
+msgstr "escáner manual"
+
+msgid "still camera"
+msgstr "cámara fotográfica"
+
+msgid "video camera"
+msgstr "cámara de video"
+
+msgid "virtual device"
+msgstr "dispositivo virtual"
+
+msgid "Success"
+msgstr "Éxito"
+
+msgid "Operation not supported"
+msgstr "Operación no soportada"
+
+msgid "Operation was cancelled"
+msgstr "Operación cancelada"
+
+msgid "Device busy"
+msgstr "Dispositivo ocupado"
+
+msgid "Invalid argument"
+msgstr "Argumento no válido"
+
+msgid "End of file reached"
+msgstr "Final de archivo alcanzado"
+
+msgid "Document feeder jammed"
+msgstr "Alimentador de Documentos atascado"
+
+msgid "Document feeder out of documents"
+msgstr "Alimentador de Documentos sin documentos"
+
+msgid "Scanner cover is open"
+msgstr "La tapa del Escáner está abierta"
+
+msgid "Error during device I/O"
+msgstr "Error durante E/S de dispositivo"
+
+msgid "Out of memory"
+msgstr "Sin memoria"
+
+msgid "Access to resource has been denied"
+msgstr "Acceso al recurso fue prohibido"
diff --git a/po/fr.gmo b/po/fr.gmo
index b822a3a..f1f6936 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 2db0b52..bab1b03 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,2137 +1,2385 @@
+# French translation for XSane.
+# Copyright (C) 1999-2000
+# Laurent Grawet <laurent.grawet@ibelgique.com>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: XSANE 0.84\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2000-02-09 21:00+01:00\n"
+"Last-Translator: Laurent Grawet <laurent.grawet@ibelgique.com>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr "fr"
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr ""
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "A propos"
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "Concernant la traduction"
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "Autorisation"
+#. WINDOW_LICENSE
+msgid "license"
+msgstr "Licence"
+#. WINDOW_INFO
+msgid "info"
+msgstr "Info"
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "Numérisation par lots"
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "Projet fax"
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "Renommer la page de fax"
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr "Importer un fichier ps dans un fax"
+#. WINDOW_MAIL_PROJECT
+msgid "mail project"
+msgstr "Projet e-mail"
+#. WINDOW_MAIL_RENAME
+msgid "rename mail image"
+msgstr "Renommer l'image du message"
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr "Insérer un fichier dans le message"
+#. WINDOW_PRESET_AREA_RENAME
+msgid "rename preset area"
+msgstr "Renommer l'aire de présélection"
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "Configuration"
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "Histogramme"
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "Courbe gamma"
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "Options standard"
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "Options avancées"
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "Sélection de périphérique"
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "Aperçu"
+#. WINDOW_VIEWER
+msgid "Viewer"
+msgstr "Visionneuse"
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+msgid "Viewer: select output filename"
+msgstr "Visionneuse: Choisissez le nom du fichier de sortie"
+#. WINDOW_OCR_OUTPUT_FILENAME
+msgid "Select output filename for OCR text file"
+msgstr "Choisissez le nom du fichier texte OCR"
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "Choisissez le nom du fichier de sortie"
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "Enregistrer les paramčtres du périphérique"
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "Charger les paramčtres du périphérique"
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "Changer le répertoire de travail"
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "Choisissez un répertoire temporaire"
+#. WINDOW_SCALE
+msgid "Scale image"
+msgstr "Redimensionner l'image"
+#. WINDOW_DESPECKLE
+msgid "Despeckle image"
+msgstr "Déparasiter l'image"
+#. WINDOW_BLUR
+msgid "Blur image"
+msgstr "Adoucir l'image"
+#. WINDOW_STORE_MEDIUM
+msgid "Store medium definition"
+msgstr "Enregister la définition du support"
+#. MENU_FILE
+msgid "File"
+msgstr "Fichier"
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "Préférences"
+#. MENU_VIEW
+msgid "View"
+msgstr "Afficher"
+#. MENU_HELP
+msgid "Help"
+msgstr "Aide"
+#. MENU_FILTERS
+msgid "Filters"
+msgstr "Filtres"
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "A propos de XSane"
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr "Info"
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "Quitter"
+#. MENU_ITEM_SAVE_IMAGE
+msgid "Save image"
+msgstr "Sauver l'image"
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "Fermer"
+#. MENU_ITEM_CLONE
+msgid "Clone"
+msgstr "Cloner"
+#. MENU_ITEM_SCALE
+msgid "Scale"
+msgstr "Redimensioner"
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr "Déparasitage"
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr "Flou"
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr "Image brute"
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr "Image améliorée"
+#. BUTTON_START
+msgid "Start"
+msgstr "Départ"
+#. BUTTON_OK
+msgid "Ok"
+msgstr "Ok"
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr "Accepter"
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr "Refuser"
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr "Appliquer"
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr "Annuler"
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr "Réduire"
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "Continuer ŕ vos propres risques"
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "Parcourir"
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr "Ecraser"
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr "Ajouter une aire"
+#. BUTTON_PAGE_DELETE
+msgid "Delete page"
+msgstr "Effacer la page"
+#. BUTTON_PAGE_SHOW
+msgid "Show page"
+msgstr "Afficher la page"
+#. BUTTON_PAGE_RENAME
+msgid "Rename page"
+msgstr "Renommer la page"
+#. BUTTON_IMAGE_DELETE
+msgid "Delete image"
+msgstr "Effacer l'image"
+#. BUTTON_IMAGE_SHOW
+msgid "Show image"
+msgstr "Afficher l'image"
+#. BUTTON_IMAGE_RENAME
+msgid "Rename image"
+msgstr "Renommer l'image"
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr "Insérer un fichier"
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr "Créer un projet"
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr "Envoyer un projet"
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr "Effacer un projet"
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr "Ajouter une imprimante"
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr "Enlever une imprimante"
+#. BUTTON_PREVIEW_ACQUIRE
+msgid "Acquire preview"
+msgstr "Acquisition de l'aperçu"
+#. BUTTON_PREVIEW_CANCEL
+msgid "Cancel preview"
+msgstr "Annuler l'aperçu"
+#. BUTTON_DISCARD_IMAGE
+msgid "Discard image"
+msgstr "Abandonner l'image"
+#. BUTTON_DISCARD_ALL_IMAGES
+msgid "Discard all images"
+msgstr "Abandonner toutes les images"
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr "Ne pas fermer"
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr "Garder ŕ l'échelle"
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr "Mode fin"
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr "e-mail HTML"
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr "Sauver les paramčtres du périphérique en quittant"
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr "Avertissement en cas d'écrasement"
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr "Sauter les noms de fichiers existants"
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr "Réduire une image 16 bit en 8 bit"
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr "Taille de la fenętre principale fixe"
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "Désactive l'aperçu gamma de Gimp"
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr "Utiliser une palette de couleurs privée"
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "Correction gamma automatique"
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+msgid "Preselect scanarea"
+msgstr "Présélection de l'aire de numérisation"
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr "Correction automatique des couleurs"
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr "Authentification POP3"
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "Recherche de périphériques..."
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr "Périphériques disponibles:"
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr "Options de XSane"
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr "Mode XSane"
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr "Pas"
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr "Type"
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr "Scanner et backend:"
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr "Vendeur:"
+#. TEXT_MODEL
+msgid "Model:"
+msgstr "Modčle:"
+#. TEXT_TYPE
+msgid "Type:"
+msgstr "Type:"
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr "Périphérique:"
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr "Backend chargé:"
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr "Version de Sane:"
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr "Valeurs récentes:"
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr "Correction gamma par:"
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr "scanner"
+#. TEXT_SOFTWARE_XSANE
+msgid "software (XSane)"
+msgstr "logiciel (XSane)"
+#. TEXT_NONE
+msgid "none"
+msgstr "aucun"
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr "Valeur gamma d'entrée:"
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr "Valeur gamma de sortie:"
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr "Mode du scanner:"
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr "Formats de sortie XSane:"
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr "Formats de sortie 8 bits:"
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr "Formats de sortie 16 bits:"
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Gimp ne supporte pas la définition 16 bits/couleur.\n"
+"Voulez-vous réduire la définition ŕ 8 bits/couleur ?"
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"La définition 16 bits/couleur n'est pas supportée par ce format de sortie.\n"
+"Voulez-vous réduire la définition ŕ 8 bits/couleur ?"
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr "Autorisation requise pour"
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr "La transmission de mot de passe est sure"
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr "Mot de passe pour les requętes du backend"
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr "Utilisateur:"
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr "Mot de passe:"
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr "Paramčtres non valides"
+#. TEXT_VERSION
+msgid "version:"
+msgstr "version"
+#. TEXT_PACKAGE
+msgid "package"
+msgstr "paquetage"
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr "avec support GIMP"
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr "sans support GIMP"
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "compilé avec GTK-"
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr "compilé avec GIMP-"
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr "inconnu"
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"XSane est distribué selon les termes de la GNU \"General Public License\"\n"
+"comme publiée par la FSF \"Free Software Foundation\" ; soit la version 2\n"
+"de la Licence, ou (ŕ votre choix) toute version ultérieure.\n"
+"\n"
+"Ce programme est distribué car potentiellement utile, mais SANS AUCUNNE\n"
+"GARANTIE, sans męme les garanties de COMMERCIALISATION ou d'ADAPTATION\n"
+"DANS UN BUT SPECIFIQUE\n"
+
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr "e-mail:"
+
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr "Page d'accueil:"
+
+#. TEXT_FILE
+msgid "File:"
+msgstr "Fichier:"
+
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr "Traduction:"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+"traduit en français\n"
+"par Laurent Grawet\n"
+"E-mail: laurent.grawet@ibelgique.com\n"
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr "0x0: 0KB"
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr "Pages numérisées:"
+#. TEXT_MAIL_TEXT
+msgid "Email text:"
+msgstr "Texte de l'e-mail:"
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr "Pičces attachées:"
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr "Statut du projet:"
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr "Nom du support:"
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+"Taille %d x %d points, %d bit/couleur, %d couleurs, %1.0f dpi x %1.0f dpi, "
+"%1.1f %s"
+#. TEXT_X_SCALE_FACTOR
+msgid "X-Scale factor:"
+msgstr "Change le facteur d'échelle horizontal"
+#. TEXT_Y_SCALE_FACTOR
+msgid "Y-Scale factor:"
+msgstr "Change le facteur d'échelle vertical"
+#. TEXT_DESPECKLE_RADIUS
+msgid "Despeckle radius:"
+msgstr "Niveau de déparasitage:"
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr "Niveau de flou:"
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr "Sélection de l'imprimante:"
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr "Nom:"
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr "Commande:"
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr "Nombre de copies:"
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "Résolution en mode trait (dpi):"
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "Résolution en mode niveaux de gris (dpi):"
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "Résolution en mode couleur (dpi):"
+#. TEXT_SETUP_PRINTER_WIDTH
+msgid "Width"
+msgstr "Largeur"
+#. TEXT_SETUP_PRINTER_HEIGHT
+msgid "Height"
+msgstr "Longueur"
+#. TEXT_SETUP_PRINTER_LEFT
+msgid "Left offset"
+msgstr "Marge gauche"
+#. TEXT_SETUP_PRINTER_BOTTOM
+msgid "Bottom offset"
+msgstr "Marge inférieure"
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr "Gamma de l'imprimante:"
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr "Gamma rouge de l'imprimante:"
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr "Gamma vert de l'imprimante:"
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr "Gamma bleu de l'imprimante:"
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "Répertoire temporaire"
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "Permissions du fichier-image"
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "Permissions du répertoire"
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr "Qualité d'image JPEG"
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr "Compression des images PNG"
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr "Longueur du compteur de noms de fichiers"
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "Compression des images TIFF 16 bit"
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "Compression des images TIFF 8 bit"
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr "Compression des images TIFF mode trait"
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "Suréchantillonage de prévisualisation:"
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr "Gamma de l'aperçu:"
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr "Gamma rouge de l'aperçu:"
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr "Gamma vert de l'aperçu:"
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr "Gamma bleu de l'aperçu:"
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "Option seuil:"
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr "Chargeur automatique de documents:"
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr "Plage de la pipette de l'aperçu"
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "Seuil minimum:"
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "Seuil maximum:"
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "Multiplicateur de seuil:"
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "Décalage de seuil:"
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "Nom du mode de numérisation en niveaux de gris:"
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "Visionneuse de fichiers d'aide (HTML):"
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr "Option de réception:"
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr "Option de fichier PostScript:"
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr "Option du mode normal:"
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr "Option du mode fin:"
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr "Visionneuse (PostScript):"
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr "Serveur SMTP:"
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr "Port SMTP:"
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr "De:"
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr "Répondre ŕ:"
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr "Serveur POP3:"
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr "Port POP3:"
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr "Utilisateur POP3:"
+#. TEXT_SETUP_POP3_PASS
+msgid "POP3 password:"
+msgstr "Mot de passe POP3:"
+#. TEXT_SETUP_MAIL_VIEWER
+msgid "Viewer (png):"
+msgstr "Visionneuse (png):"
+#. TEXT_SETUP_OCR_COMMAND
+msgid "OCR Command:"
+msgstr "Commande OCR:"
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+msgid "Inputfile option:"
+msgstr "Option de fichier d'entrée:"
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+msgid "Outputfile option:"
+msgstr "Option de fichier de sortie:"
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr "utilisateur"
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr "groupe"
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr "tous"
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr "Enregistrer"
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr "Image"
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "Copier"
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr "Faxer"
+#. NOTEBOOK_MAIL_OPTIONS
+msgid "Mail"
+msgstr "Message"
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr "OCR"
+#. NOTEBOOK_DISPLAY_OPTIONS
+msgid "Display"
+msgstr "Affichage"
+#. NOTEBOOK_ENHANCE_OPTIONS
+msgid "Enhancement"
+msgstr "Optimisation"
+#. MENU_ITEM_MAIL
+msgid "Email"
+msgstr "e-mail"
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr "Affichage des bulles d'aide"
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr "Afficher l'aperçu"
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr "Afficher l'histogramme"
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "Afficher la courbe gamma"
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr "Afficher les options standard"
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr "Afficher les options avancées"
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr "Configuration"
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr "Unité de longueur"
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr "millimčtres"
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr "centimčtres"
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr "pouces"
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "Mise ŕ jour"
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "continue"
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "discontinue"
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "retardée"
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "Afficher la liste des résolutions"
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "Rotation PostScript"
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr "Enregistrer les paramčtres du périphérique"
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr "Charger les paramčtres du périphérique"
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "Changer de répertoire"
+#. MENU_ITEM_XSANE_LICENSE
+msgid "License"
+msgstr "Licence"
+#. MENU_ITEM_XSANE_DOC
+msgid "XSane doc"
+msgstr "Doc Xsane"
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr "Doc backend"
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr "Backends disponibles"
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr "Conseils de numérisation"
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr "Problčmes?"
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr "inactif"
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr "pas de compression"
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr "Compression CCITT 1D Huffman"
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr "Compression CCITT Group 3 Fax"
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr "Compression CCITT Group 4 Fax"
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr "Compression JPEG DCT"
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr ""
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "Fenętre d'options standard (mode trait)"
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "Fenętre principale de XSane (mode trait)"
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "Fenętre principale de XSane (niveaux de gris->mode trait)"
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr "(aucun)"
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "par ext"
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr "Ajouter la sélection ŕ la liste"
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr "Renommer la définition"
+#. MENU_ITEM_PRESET_AREA_DELETE
+msgid "Delete definition"
+msgstr "Effacer la définition"
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr "Haut"
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr "Bas"
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "Numérisation..."
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "Réception des données %s..."
+#. PROGRESS_TRANSFERING_DATA
+msgid "Transfering image"
+msgstr "Transfert de l'image..."
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr "Rotation de l'image..."
+#. PROGRESS_MIRRORING_DATA
+msgid "Mirroring image"
+msgstr "Mirroir de l'image..."
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr "Compression de l'image..."
+#. PROGRESS_CONVERTING_DATA
+msgid "Converting image"
+msgstr "Conversion de l'image..."
+#. PROGRESS_SAVING_DATA
+msgid "Saving image"
+msgstr "Sauvegarde de l'image..."
+#. PROGRESS_CLONING_DATA
+msgid "Cloning image"
+msgstr "Clonage de l'image..."
+#. PROGRESS_SCALING_DATA
+msgid "Scaling image"
+msgstr "Redimensionnement de l'image..."
+#. PROGRESS_DESPECKLING_DATA
+msgid "Despeckling image"
+msgstr "Déparasitage de l'image..."
+#. PROGRESS_BLURING_DATA
+msgid "Bluring image"
+msgstr "Flou de l'image..."
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr "Numériser <Ctrl-Enter>"
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr "Annuler la numérisation <ESC>"
+#. DESC_PREVIEW_ACQUIRE
+msgid "Acquire preview scan <Alt-p>"
+msgstr "Acquisition de l'aperçu <Alt-p>"
+#. DESC_PREVIEW_CANCEL
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "Annuler l'aperçu <Alt-ESC>"
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+"sauver-<Ctrl-s>, visionner-<Ctrl-v>, photocopier-<Ctrl-c>, faxer-<Ctrl-f> ou "
+"poster-<Ctrl-m>"
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr "Sélectionne le type de media de la source"
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr "Valeur ajoutée au compteur de noms de fichiers aprčs numérisation"
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr "Parcourir pour un nom d'image"
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr "Nom de fichier pour l'image numérisée"
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr ""
+"Type de format d'image, l'extension de nom de fichier correspondante est "
+"automatiquement ajoutée"
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr "Entrez le nom du projet fax"
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr "Entrez le nouveau nom pour la page de fax"
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr "Entrez le numéro de tél. ou l'adresse du destinataire"
+#. DESC_MAILPROJECT
+msgid "Enter name of mail project"
+msgstr "Entrez le nom du projet e-mail"
+#. DESC_MAILIMAGENAME
+msgid "Enter new name for mail image"
+msgstr "Entrez le nouveau nom pour l'image du message"
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr "Entrez l'adresse e-mail"
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr "Entrez le sujet de l'e-mail"
+#. DESC_PRESET_AREA_NAME
+msgid "Enter new name for preset area"
+msgstr "Entrez un nom pour la présélection"
+#. DESC_PRINTER_SELECT
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "Sélectionne l'imprimante <Shift-F1/F2/...>"
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr "Change la résolution de numérisation"
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "Change la résolution horizontale de numérisation"
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "Change la résolution verticale de numérisation"
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr "Change le facteur de zoom"
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "Change le facteur de zoom horizontal"
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "Change le facteur de zoom vertical"
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr "Entrez le nombre de copies"
+#. DESC_NEGATIVE
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr ""
+"Négatif: Inverse les couleurs pour la numérisation de négatifs <Shift-n>"
+
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr "Change la valeur gamma"
+
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr "Change le gamma pour la composante rouge"
+
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr "Change le gamma pour la composante verte"
+
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr "Change le gamma pour la composante bleue"
+
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr "Change la luminosité"
+
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr "Change la luminosité pour la composante rouge"
+
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr "Change la luminosité pour la composante verte"
+
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr "Change la luminosité pour la composante bleue"
+
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr "Change le contraste"
+
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr "Change le contraste pour la composante rouge"
+
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr "Change le contraste pour la composante verte"
+
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr "Change le contraste pour la composante bleue"
+
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "Change le seuil"
+
+#. DESC_RGB_DEFAULT
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"Défaults RGB: Place les optimisations pour le rouge, vert et bleu ŕ leurs "
+"valeurs par défaut <Shift-b>:\n"
+" gamma = 1.0\n"
+" luminosité = 0\n"
+" contraste = 0"
+
+#. DESC_ENH_AUTO
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr "Ajuste automatiquement gamma, luminosité et contraste <Shift-e>"
+
+#. DESC_ENH_DEFAULT
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"Place les optimisations ŕ leurs valeurs par défaut <Shift-d>:\n"
+" gamma = 1.0\n"
+" luminosité = 0\n"
+" contraste = 0"
+#. DESC_ENH_RESTORE
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "Restaure les optimisations des préférences <Shift-r>"
+#. DESC_ENH_STORE
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr "Enregistre les optimisations actives dans les préférences <Shift-m>"
+#. DESC_HIST_INTENSITY
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "Affiche l'histogramme de l'intensité/gris <Alt-i>"
+#. DESC_HIST_RED
+msgid "Show histogram of red component <Alt-r>"
+msgstr "Affiche l'histogramme de la composante rouge <Alt-r>"
+#. DESC_HIST_GREEN
+msgid "Show histogram of green component <Alt-g>"
+msgstr "Affiche l'histogramme de la composante verte <Alt-g>"
+#. DESC_HIST_BLUE
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "Affiche l'histogramme de la composante bleue <Alt-b>"
+#. DESC_HIST_PIXEL
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr "Affiche l'histogramme avec des lignes ŕ la place des points <Alt-m>"
+#. DESC_HIST_LOG
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "Affiche le logarithme du nombre de points <Alt-l>"
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr "Choisissez la définition ŕ changer"
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr "Entrez un nom pour cette définition"
+#. DESC_PRINTER_COMMAND
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr "Entrez la commande ŕ exécuter en mode copie (par ex.: \"lpr\")"
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr "Entrez l'option du nombre de copies"
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr ""
+"Résolution avec laquelle les images trait doivent ętre enregistrées et "
+"imprimées en PostScript"
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr ""
+"Résolution avec laquelle les images en niveaux de gris doivent ętre "
+"enregistrées et imprimées en PostScript"
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr ""
+"Résolution avec laquelle les images en couleur doivent ętre enregistrées et "
+"imprimées en PostScript"
+#. DESC_PRINTER_WIDTH
+msgid "Width of printable area"
+msgstr "Largeur de la zone imprimable"
+#. DESC_PRINTER_HEIGHT
+msgid "Height of printable area"
+msgstr "Longueur de la zone imprimable"
+#. DESC_PRINTER_LEFTOFFSET
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr "Marge entre le bord gauche du papier et l'aire imprimable"
+#. DESC_PRINTER_BOTTOMOFFSET
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "Marge entre le bord inférieur du papier et l'aire imprimable en mm"
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr "Gamma additionnel pour la photocopie"
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr "Gamma additionnel pour la composante rouge pour la photocopie"
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr "Gamma additionnel pour la composante verte pour la photocopie"
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr "Gamma additionnel pour la composante bleue pour la photocopie"
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "Chemin du répertoire temporaire"
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "Parcourir pour un répertoire temporaire"
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr ""
+"Qualité en pourcentage si l'image est enregistrée en jpeg ou tiff avec "
+"compression jpeg"
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr "Compression si l'image est enregistrée en png"
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr "Longueur minimale du compteur de noms de fichiers"
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "Type de compression si une image 16 bit est enregistrée en tiff"
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "Type de compression si une image 8 bit est enregistrée en tiff"
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "Type de compression si l'image trait est enregistrée en tiff"
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr ""
+"Enregister les paramčtres du scanner dans le fichier par défaut en quittant "
+"XSane"
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "Avertir avant d'écraser un fichier existant"
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr ""
+"Si un compteur de noms de fichiers est utilisé, les nombres déjŕ utilisés "
+"sont évités"
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr ""
+"Si le scanner envoie une image en 16 bits/couleur, sauver l'image en 8 "
+"bits/couleur"
+#. DESC_PSFILE_WIDTH
+msgid "Width of paper for postscript files"
+msgstr "Largeur du papier pour les fichiers PostScript"
+#. DESC_PSFILE_HEIGHT
+msgid "Height of paper for postscript files"
+msgstr "Longueur du papier pour les fichiers PostScript"
+#. DESC_PSFILE_LEFTOFFSET
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Marge entre le bord gauche du papier et l'aire imprimable pour les fichiers "
+"PostScript"
+#. DESC_PSFILE_BOTTOMOFFSET
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Marge entre le bord inférieur du papier et l'aire imprimable pour les "
+"fichiers PostScript"
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr ""
+"Utilise une fenętre principale de taille fixe ou avec défilement, fenętre "
+"principale redimensionable"
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr "Désactive l'aperçu gamma quand XSane fonctionne comme un plugin Gimp"
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr ""
+"Utilise une palette de couleurs privée pour l'aperçu si l'affichage est en "
+"mode 8bits"
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr ""
+"Valeur avec laquelle la résolution de prévisualisation calculée est "
+"multipliée"
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr "Change la correction gamma pour l'image de l'aperçu"
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr ""
+"Change la correction gamma de la composante rouge pour l'image de l'aperçu"
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr ""
+"Change la correction gamma de la composante verte pour l'image de l'aperçu"
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr ""
+"Change la correction gamma de la composante bleue pour l'image de l'aperçu"
+#. DESC_LINEART_MODE
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "Défini la maničre dont XSane doit gérer l'option seuil"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#nls translation file for xsane
-#language: french (fr)
-
-#original text: "About"
-msgid "About"
-msgstr "a propos"
-
-#original text: "authorization"
-msgid "authorization"
-msgstr "authorisation"
-
-#original text: "info"
-msgid "info"
-msgstr "info"
-
-#original text: "batch scan"
-msgid "batch scan"
-msgstr "scan en batch"
-
-#original text: "fax project"
-msgid "fax project"
-msgstr "projet fax"
-
-#original text: "rename fax page"
-msgid "rename fax page"
-msgstr "renommer la page de fax"
-
-#original text: "setup"
-msgid "setup"
-msgstr "Configuration"
-
-#original text: "Histogram"
-msgid "Histogram"
-msgstr "Histogramme"
-
-#original text: "Standard options"
-msgid "Standard options"
-msgstr "Options standards"
-
-#original text: "Advanced options"
-msgid "Advanced options"
-msgstr "Options avancées"
-
-#original text: "device selection"
-msgid "device selection"
-msgstr "sélection de périphérique"
-
-#original text: "Preview"
-msgid "Preview"
-msgstr "aperçu"
-
-#original text: "output filename"
-msgid "output filename"
-msgstr "fichier de sortie"
-
-#original text: "save device settings"
-msgid "save device settings"
-msgstr "enregistrer les paramétres du périphérique"
-
-#original text: "load device settings"
-msgid "load device settings"
-msgstr "charger les paramétres du périphérique"
-
-#original text: "File"
-msgid "File"
-msgstr "Fichier"
-
-#original text: "Preferences"
-msgid "Preferences"
-msgstr "Préférences"
-
-#original text: "Help"
-msgid "Help"
-msgstr "Aide"
-
-#original text: "About"
-msgid "About"
-msgstr "A propos"
-
-#original text: "Info"
-msgid "Info"
-msgstr "Info"
-
-#original text: "Exit"
-msgid "Exit"
-msgstr "Quitter"
-
-#original text: "Raw image"
-msgid "Raw image"
-msgstr "Image brute"
-
-#original text: "Enhanced image"
-msgid "Enhanced image"
-msgstr "Image améliorée"
-
-#original text: "Start"
-msgid "Start"
-msgstr "Départ"
-
-#original text: "Ok"
-msgid "Ok"
-msgstr "Ok"
-
-#original text: "Apply"
-msgid "Apply"
-msgstr "Appliquer"
-
-#original text: "Cancel"
-msgid "Cancel"
-msgstr "Annuler"
-
-#original text: "Close"
-msgid "Close"
-msgstr "Fermer"
-
-#original text: "Add area"
-msgid "Add area"
-msgstr "Ajouter une aire"
-
-#original text: "Delete"
-msgid "Delete"
-msgstr "Affacer"
-
-#original text: "Show"
-msgid "Show"
-msgstr "Montrer"
-
-#original text: "Rename"
-msgid "Rename"
-msgstr "Renommer"
-
-#original text: "Send project"
-msgid "Send project"
-msgstr "Envoyer projet"
-
-#original text: "Delete project"
-msgid "Delete project"
-msgstr "Effacer projet"
-
-#original text: "Add printer"
-msgid "Add printer"
-msgstr "Ajouter une imprimante"
-
-#original text: "Delete printer"
-msgid "Delete printer"
-msgstr "Enlever une imprimante"
-
-#original text: "Acquire Preview"
-msgid "Acquire Preview"
-msgstr "Acquisition de l'aperçu"
-
-#original text: "Cancel Preview"
-msgid "Cancel Preview"
-msgstr "Annuler l'aperçu"
-
-#original text: "Fine mode"
-msgid "Fine mode"
-msgstr "Mode Fin"
-
-#original text: "Overwrite warning"
-msgid "Overwrite warning"
-msgstr "Avertissement en cas d'écrasement"
-
-#original text: "Increase filename counter"
-msgid "Increase filename counter"
-msgstr "Incrémenter le compteur de nom de fichier"
-
-#original text: "Skip existing numbers"
-msgid "Skip existing numbers"
-msgstr "Éviter les nombres existants"
-
-#original text: "Main window size fixed"
-msgid "Main window size fixed"
-msgstr "Taille de la fenętre principale fixe"
-
-#original text: "Preserve preview image"
-msgid "Preserve preview image"
-msgstr "Préserver l'image de l'aperçu"
-
-#original text: "Use private colormap"
-msgid "Use private colormap"
-msgstr "Utiliser une palette de couleurs privée"
-
-#original text: "Available devices:"
-msgid "Available devices:"
-msgstr "Périphériques disponibles:"
-
-#original text: "XSane options"
-msgid "XSane options"
-msgstr "Options de XSane"
-
-#original text: "XSane mode"
-msgid "XSane mode"
-msgstr "Mode XSane"
-
-#original text: "Scanner and backend:"
-msgid "Scanner and backend:"
-msgstr "Scanner et moteur:"
-
-#original text: "Vendor:"
-msgid "Vendor:"
-msgstr "Vendeur:"
-
-#original text: "Model:"
-msgid "Model:"
-msgstr "Modčle:"
-
-#original text: "Type:"
-msgid "Type:"
-msgstr "Type:"
-
-#original text: "Device:"
-msgid "Device:"
-msgstr "Périphérique:"
-
-#original text: "Loaded backend:"
-msgid "Loaded backend:"
-msgstr "Moteur chargé:"
-
-#original text: "Sane version:"
-msgid "Sane version:"
-msgstr "Version de Sane:"
-
-#original text: "Recent values:"
-msgid "Recent values:"
-msgstr "Valeurs récentes:"
-
-#original text: "Gamma correction by:"
-msgid "Gamma correction by:"
-msgstr "Correction Gamma par:"
-
-#original text: "scanner"
-msgid "scanner"
-msgstr "scanner"
-
-#original text: "software (xsane)"
-msgid "software (xsane)"
-msgstr "logiciel (xsane)"
-
-#original text: "none"
-msgid "none"
-msgstr "aucun"
-
-#original text: "Gamma input depth:"
-msgid "Gamma input depth:"
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
msgstr ""
-
-#original text: "Gamma output depth:"
-msgid "Gamma output depth:"
+"Sélection du mode de numérisation en niveaux de gris. Ce mode de "
+"numérisation est utilisé pour la prévisualisation en mode trait quand la "
+"tranformation des niveaux de gris en mode trait est activée."
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "Le niveau de seuil minimum du scanner en %"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "Le niveau de seuil maximum du scanner en %"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
msgstr ""
+"Multiplicateur pour rendre l'échelle de seuil de XSane et du scanner les "
+"męmes"
-#original text: "Scanner output depth:"
-msgid "Scanner output depth:"
+#. DESC_PREVIEW_THRESHOLD_OFF
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
msgstr ""
+"Décalage pour rendre l'échelle de seuil de XSane et du scanner les męmes"
-#original text: "XSane output formats:"
-msgid "XSane output formats:"
-msgstr "Formats de sortie XSane:"
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+"Sélectionnez la source de numérisation pour le chargeur automatique de "
+"documents. Dans ce mode, XSane numérisera jusqu'ŕ l'obtention d'un signal "
+"\"plus de papier\" ou d'une erreur."
-#original text: "8 bit output formats:"
-msgid "8 bit output formats:"
-msgstr "Formats de sortie 8 bits:"
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr ""
+"Dimension du carré utilisée pour déterminer la couleur moyenne pour la "
+"fonction pipette"
-#original text: "16 bit output formats:"
-msgid "16 bit output formats:"
-msgstr "Formats de sortie 16 bits:"
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr ""
+"Entrez la commande a exécuter pour afficher les fichiers d'aide ; doit ętre "
+"capable de lire du html !"
-#original text: "Authorization required for"
-msgid "Authorization required for"
-msgstr "Authorisation requise pour"
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr "Change la valeur gamma quand le bouton d'optimisation auto est pressé"
-#original text: "Username :"
-msgid "Username :"
-msgstr "Utilisateur:"
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr ""
+"Sélectionne l'aire de numérisation une fois la prévisualisation terminée"
-#original text: "Password :"
-msgid "Password :"
-msgstr "Mot de passe:"
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr "Corrige les couleurs une fois la prévisualisation terminée"
-#original text: "Invalid parameters."
-msgid "Invalid parameters."
-msgstr "Paramétres non valides"
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr "Entrez la commande ŕ exécuter en mode fax"
-#original text: "version:"
-msgid "version:"
-msgstr "version"
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr "Entrez l'option ŕ spécifier au destinataire"
-#original text: "package"
-msgid "package"
-msgstr "paquetage"
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr "Entrez l'option ŕ spécifier aux fichiers PostScript"
-#original text: "unknown"
-msgid "unknown"
-msgstr "inconnu"
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr "Entrez l'option ŕ spécifier au mode normal (basse résolution)"
-#original text: "0x0: 0KB"
-msgid "0x0: 0KB"
-msgstr "0x0: 0KB"
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr "Entrez l'option ŕ spécifier au mode fin (haute résolution)"
-#original text: "Printer selection:"
-msgid "Printer selection:"
-msgstr "Sélection de l'imprimante:"
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr "Entrez la commande ŕ ętre exécutée pour voir un fax"
-#original text: "Name:"
-msgid "Name:"
-msgstr "Nom:"
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr ""
+"Envoie un fax avec une résolution verticale élevée (196 lpi ŕ la place de 98 "
+"lpi)"
-#original text: "Command:"
-msgid "Command:"
-msgstr "Commande:"
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr "Adresse IP ou nom de domaine du serveur SMTP"
-#original text: "Copy number option:"
-msgid "Copy number option:"
-msgstr "Option du nombre de copie:"
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr "Port de connexion SMTP"
-#original text: "Resolution (dpi):"
-msgid "Resolution (dpi):"
-msgstr "Résolution (dpi):"
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr "Entrez votre adresse e-mail"
-#original text: "Width (1/72 inch):"
-msgid "Width (1/72 inch):"
-msgstr "Largeur (en 72čme de pouce):"
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr "Entrez l'adresse e-mail de réponse"
-#original text: "Height (1/72 inch):"
-msgid "Height (1/72 inch):"
-msgstr "Hauteur (en 72e de pouce):"
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr "S'authentifier au prčs du serveur POP3 avant d'envoyer le message"
-#original text: "Left offset (1/72 inch):"
-msgid "Left offset (1/72 inch):"
-msgstr "Marge gauche (en 72čme de pouce):"
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr "Adresse IP ou nom de domaine du serveur POP3"
-#original text: "Bottom offset (1/72 inch):"
-msgid "Bottom offset (1/72 inch):"
-msgstr "Marge inférieure (en 72čme de pouce):"
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr "Port de connexion POP3"
-#original text: "Printer gamma value:"
-msgid "Printer gamma value:"
-msgstr "Valeur gamma de l'imprimante:"
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr "Nom d'utilisateur pour le serveur POP3"
-#original text: "Printer gamma red:"
-msgid "Printer gamma red:"
-msgstr "Valeur gamma rouge de l'imprimante:"
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr "Mot de passe pour le serveur POP3"
-#original text: "Printer gamma green:"
-msgid "Printer gamma green:"
-msgstr "Valeur gamma verte de l'imprimante:"
+#. DESC_MAIL_VIEWER
+msgid "Enter command to be executed to view a mail image"
+msgstr "Entrez la commande ŕ ętre exécutée pour voir une image e-mail"
-#original text: "Printer gamma blue:"
-msgid "Printer gamma blue:"
-msgstr "Valeur gamma bleue de l'imprimante:"
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr "Message envoyé en mode html, les images sont affichées directement"
-#original text: "JPEG image quality"
-msgid "JPEG image quality"
-msgstr "Qualité d'image JPEG"
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr "Entrez la commande pour lancer le programme d'OCR"
-#original text: "PNG image compression"
-msgid "PNG image compression"
-msgstr "Compression des images PNG"
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr "Entrez l'option du programme d'OCR pour définir un fichier d'entrée"
-#original text: "TIFF multi bit image compression"
-msgid "TIFF multi bit image compression"
-msgstr "Compression multi-bit des images TIFF"
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr "Entrez l'option du programme d'OCR pour définir un fichier de sortie"
-#original text: "TIFF lineart image compression"
-msgid "TIFF lineart image compression"
-msgstr "Compression d'image TIFF lineart"
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr "lecture"
-#original text: "Preview gamma:"
-msgid "Preview gamma:"
-msgstr "Gamma de l'aperçu:"
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr "écriture"
-#original text: "Preview gamma red:"
-msgid "Preview gamma red:"
-msgstr "Gamma rouge de l'aperçu:"
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr "exécution"
-#original text: "Preview gamma green:"
-msgid "Preview gamma green:"
-msgstr "Gamma vert de l'aperçu:"
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr "Choisissez un point blanc"
-#original text: "Preview gamma blue:"
-msgid "Preview gamma blue:"
-msgstr "Gamma bleu de l'aperçu:"
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr "Choisissez un point gris"
-#original text: "Helpfile viewer (HTML):"
-msgid "Helpfile viewer (HTML):"
-msgstr "Afficheur de fichiers d'aide (HTML):"
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr "Choisissez un point noir"
-#original text: "Command:"
-msgid "Command:"
-msgstr ""
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr "Utilise l'aire de numérisation complčte"
-#original text: "Receiver option:"
-msgid "Receiver option:"
-msgstr "Option de réception:"
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr "Zoom 20% en arričre"
-#original text: "Postscriptfile option:"
-msgid "Postscriptfile option:"
-msgstr "Option fichier PostScript:"
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr "Zoom l'aire sélectionnée"
-#original text: "Normal mode option:"
-msgid "Normal mode option:"
-msgstr "Option du mode normal:"
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr "Annule le dernier zoom"
-#original text: "Fine mode option:"
-msgid "Fine mode option:"
-msgstr "Option du mode fin:"
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr "Sélectionne l'aire visible"
-#original text: "Viewer (Postscript):"
-msgid "Viewer (Postscript):"
-msgstr "Visualisateur (PostScript):"
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr "Sélection automatique de l'aire de numérisation"
-#original text: "Copy options"
-msgid "Copy options"
-msgstr "Options d'impression"
+#. DESC_DELETE_IMAGES
+msgid "Delete preview image cache"
+msgstr "Effacer le cache de l'aperçu"
-#original text: "Saving options"
-msgid "Saving options"
-msgstr "Enregistrement des options"
+#. DESC_PRESET_AREA
+msgid "Preset area"
+msgstr "Aire de présélection"
-#original text: "Display options"
-msgid "Display options"
-msgstr "Options de l'affichage"
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr "Pivote l'aperçu et la numérisation"
-#original text: "Fax options"
-msgid "Fax options"
-msgstr "Options de fax"
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr "Reconnaissance Optique de Caractčres"
-#original text: "Scan"
-msgid "Scan"
-msgstr "Scanner"
+#. DESC_VIEWER_CLONE
+msgid "Clone image"
+msgstr "Cloner l'image"
-#original text: "Copy"
-msgid "Copy"
-msgstr "Copier"
+#. DESC_VIEWER_ROTATE90
+msgid "Rotate image 90 degree"
+msgstr "Rotation ŕ 90° de l'image"
-#original text: "Fax"
-msgid "Fax"
-msgstr "Faxer"
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr "Rotation ŕ 180° de l'image"
-#original text: "Setup"
-msgid "Setup"
-msgstr "Configuration"
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr "Rotation ŕ 270° de l'image"
-#original text: "Show tooltips"
-msgid "Show tooltips"
-msgstr "Affichage des bulles d'aide"
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr "Effet mirroir ŕ axe vertical"
-#original text: "Show preview"
-msgid "Show preview"
-msgstr "Afficher l'aperçu"
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr "Effet mirroir ŕ axe horizontal"
-#original text: "Show histogram"
-msgid "Show histogram"
-msgstr "Afficher l'histogramme"
+#. DESC_VIEWER_ZOOM
+msgid "Zoom image"
+msgstr "Zoom sur l'image"
-#original text: "Show standard options"
-msgid "Show standard options"
-msgstr "Afficher les options standard"
+#. DESC_STORE_MEDIUM
+msgid "Store medium"
+msgstr "Enregistre la définition du support"
-#original text: "Show advanced options"
-msgid "Show advanced options"
-msgstr "Afficher les options avancées"
+#. DESC_DELETE_MEDIUM
+msgid "Delete active medium"
+msgstr "Efface la définition du support"
-#original text: "Show resolution list"
-msgid "Show resolution list"
-msgstr "Afficher la liste des résolutions"
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
+msgstr "Impossible de déterminer le répertoire personnel:"
-#original text: "Length unit"
-msgid "Length unit"
-msgstr "Unité de longueur"
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "Impossible de changer le répertoire de travail en:"
-#original text: "millimeters"
-msgid "millimeters"
-msgstr "millimétres"
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
+msgstr "Nom de fichier trop long"
-#original text: "centimeters"
-msgid "centimeters"
-msgstr "centimétres"
+#. ERR_CREATE_TEMP_FILE
+msgid "Could not create temporary file"
+msgstr "Ne peut créer de fichier temporaire"
-#original text: "inches"
-msgid "inches"
-msgstr "pouces"
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
+msgstr "Echec du changement de la valeur de l'option"
-#original text: "Save device settings"
-msgid "Save device settings"
-msgstr "Enregistrer les paramétres du périphérique"
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
+msgstr "Echec de l'obtention de la valeur de l'option"
-#original text: "Load device settings"
-msgid "Load device settings"
-msgstr "Charger les paramétres du périphérique"
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
+msgstr "Erreur de l'option 'count'"
-#original text: "Xsane doc"
-msgid "Xsane doc"
-msgstr "Doc Xsane"
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
+msgstr "Erreur d'ouverture du périphérique"
-#original text: "Backend doc"
-msgid "Backend doc"
-msgstr "Doc moteur"
+#. ERR_NO_DEVICES
+msgid "no devices available"
+msgstr "Aucun périphérique disponible"
-#original text: "Available backends"
-msgid "Available backends"
-msgstr "Moteurs disponibles"
+#. ERR_DURING_READ
+msgid "Error during read:"
+msgstr "Erreur pendant la lecture"
-#original text: "Scantips"
-msgid "Scantips"
-msgstr "Conseils d'utilisation"
+#. ERR_DURING_SAVE
+msgid "Error during save:"
+msgstr "Erreur pendant la sauvegarde"
-#original text: "no compression"
-msgid "no compression"
-msgstr "pas de compression"
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
+msgstr "Ne supporte pas le mode"
-#original text: "CCITT 1D Huffman compression"
-msgid "CCITT 1D Huffman compression"
-msgstr "Compression CCITT 1D Huffman"
+#. ERR_GIMP_BAD_DEPTH
+#, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP ne supporte pas la profondeur %d bits/color"
-#original text: "CCITT Group 3 Fax compression"
-msgid "CCITT Group 3 Fax compression"
-msgstr "Compression CCITT Group 3 Fax"
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
+msgstr "Format de sauvegarde inconnu"
-#original text: "CCITT Group 4 Fax compression"
-msgid "CCITT Group 4 Fax compression"
-msgstr "Compression CCITT Group 4 Fax"
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
+msgstr "Echec de l'ouverture"
-#original text: "JPEG DCT compression"
-msgid "JPEG DCT compression"
-msgstr "Compression JPEG DCT"
+#. ERR_CREATE_SECURE_FILE
+msgid "Could not create secure file (may be a link does exist):"
+msgstr "Ne peut créer un fichier sécurité (peut-ętre qu'un lien existe déja):"
-#original text: "pack bits"
-msgid "pack bits"
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
msgstr ""
+"Echec lors de l'ouverture du pipe pour exécuter la commande d'impression"
-#original text: "by ext"
-msgid "by ext"
-msgstr "par ext"
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
+msgstr "Echec de l'exécution de la commande d'impression"
-#original text: "Use XSane for SCANning, photoCOPYing, FAXing..."
-msgid "Use XSane for SCANning, photoCOPYing, FAXing..."
-msgstr "Utilisez XSane pour SCANner, photoCOPIER, FAXer..."
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
+msgstr "Echec du démarrage du scanner"
-#original text: "Browse for image filename"
-msgid "Browse for image filename"
-msgstr "Parcourir"
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
+msgstr "Echec lors du chargement des paramčtres"
-#original text: "Filename for scanned image"
-msgid "Filename for scanned image"
-msgstr "Nom de fichier pour l'image scannée"
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
+msgstr "Pas de format de sortie donné"
-#original text: "Filename extension and type of image format"
-msgid "Filename extension and type of image format"
-msgstr "Definir le format de fichier d'image"
+#. ERR_NO_MEM
+msgid "out of memory"
+msgstr "Dépassement de mémoire"
-#original text: "Enter name of fax project"
-msgid "Enter name of fax project"
-msgstr "Entrez le nom du projet fax"
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr "Le backend envoie plus de données image que défini dans les paramčtres"
-#original text: "Enter new name for faxpage"
-msgid "Enter new name for faxpage"
-msgstr "Entrez le nouveau nom pour la page de fax"
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
+msgstr "LIBTIFF a reporté une erreur"
-#original text: "Enter receiver phone number or address"
-msgid "Enter receiver phone number or address"
-msgstr "Entrez l'option ŕ spécifier au destinataire"
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
+msgstr "LIBPNG a reporté une erreur"
-#original text: "Select printer definition"
-msgid "Select printer definition"
-msgstr "Changer la définition de l'imprimante"
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
+msgstr "type inconnu"
-#original text: "Set scan resolution"
-msgid "Set scan resolution"
-msgstr "Changer la résolution du scan"
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
+msgstr "type de restriction inconnu"
-#original text: "Set zoomfactor"
-msgid "Set zoomfactor"
-msgstr "Changer le facteur de zoom"
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
+msgstr "Erreur d'exécution de la visionneuse de documentation"
-#original text: "Set number of copies"
-msgid "Set number of copies"
-msgstr "Entrez l'option du nombre de copies"
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
+msgstr "Erreur d'exécution de la visionneuse de fax"
-#original text: "Negative: Invert colors for scanning negatives\n" "e.g. swap black and white"
-msgid "Negative: Invert colors for scanning negatives\n" "e.g. swap black and white"
-msgstr ""
+#. ERR_FAILED_EXEC_FAX_CMD
+msgid "Failed to execute fax command:"
+msgstr "Erreur d'exécution de la commande de fax:"
-#original text: "Set gamma value"
-msgid "Set gamma value"
-msgstr ""
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+msgid "Failed to execute mail image viewer:"
+msgstr "Erreur d'exécution de la visionneuse d'image:"
-#original text: "Set gamma value for red component"
-msgid "Set gamma value for red component"
-msgstr ""
+#. ERR_FAILED_EXEC_OCR_CMD
+msgid "Failed to execute ocr command:"
+msgstr "Erreur d'exécution de la commande OCR:"
-#original text: "Set gamma value for green component"
-msgid "Set gamma value for green component"
-msgstr ""
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
+msgstr "Mauvais format de frame"
-#original text: "Set gamma value for blue component"
-msgid "Set gamma value for blue component"
-msgstr ""
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
+msgstr "Impossible d'attribuer la résolution"
-#original text: "Set brightness"
-msgid "Set brightness"
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
msgstr ""
+"Le fichier de mot de passe (%s) n'est pas sur, utilisez des droits x00\n"
-#original text: "Set brightness for red component"
-msgid "Set brightness for red component"
-msgstr ""
-
-#original text: "Set brightness for green component"
-msgid "Set brightness for green component"
-msgstr ""
+#. ERR_ERROR
+msgid "error"
+msgstr "Erreur"
-#original text: "Set brightness for blue component"
-msgid "Set brightness for blue component"
-msgstr ""
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
+msgstr "Incohérence dans le numéro de version majeur de Sane!"
-#original text: "Set contrast"
-msgid "Set contrast"
-msgstr ""
+#. ERR_XSANE_MAJOR_VERSION
+msgid "XSane major version ="
+msgstr "Version majeure de XSane ="
-#original text: "Set contrast for red component"
-msgid "Set contrast for red component"
-msgstr ""
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
+msgstr "Version majeure du backend ="
-#original text: "Set contrast for green component"
-msgid "Set contrast for green component"
-msgstr ""
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
+msgstr "*** ARRET DU PROGRAMME ***"
-#original text: "Set contrast for blue component"
-msgid "Set contrast for blue component"
-msgstr ""
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
+msgstr "Erreur d'allocation de mémoire pour l'image"
-#original text: "RGB default: Set enhancement values for red, green and blue to default values:\n" " gamma = 1.0\n" " brightness = 0\n" " contrast = 0"
-msgid "RGB default: Set enhancement values for red, green and blue to default values:\n" " gamma = 1.0\n" " brightness = 0\n" " contrast = 0"
-msgstr ""
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr "La prévisualisation ne supporte pas le mode"
-#original text: "Autoadjust gamma, brightness and contrast in dependance of selected area"
-msgid "Autoadjust gamma, brightness and contrast in dependance of selected area"
-msgstr ""
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
+msgstr "le support pour GIMP est manquant"
-#original text: "Set default enhancement values:\n" "gamma = 1.0\n" "brightness = 0\n" "contrast = 0"
-msgid "Set default enhancement values:\n" "gamma = 1.0\n" "brightness = 0\n" "contrast = 0"
-msgstr ""
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr "Ne peut pas créer de fichiers temporaires de prévisualisation"
-#original text: "Restore enhancement values from preferences"
-msgid "Restore enhancement values from preferences"
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
msgstr ""
-
-#original text: "Store active enhancement values to preferences"
-msgid "Store active enhancement values to preferences"
+"Ne peut pas créer de noms de fichiers pour les fichiers de prévisualisation"
+
+#. ERR_CREATE_FAX_PROJECT
+msgid "Could not create faxproject"
+msgstr "Ne peut créer un projet fax"
+
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr "Repositionnement du compteur de noms de fichiers"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr "Attention: l'option n'a pas de restriction"
+
+#. WARN_XSANE_AS_ROOT
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
msgstr ""
+"Vous exécutez XSane en tant que ROOT, c'est réellement DANGEREUX !\n"
+"\n"
+"N'envoyez pas de rapports de bug si vous rencontrez\n"
+"des problčmes en utilisant XSane en tant que root:\n"
+"VOUS ETES SEUL !"
+
+#. ERR_HEADER_ERROR
+msgid "Error"
+msgstr "Erreur"
-#original text: "Show histogram of intensity/gray"
-msgid "Show histogram of intensity/gray"
-msgstr "Afficher l'histogramme de l'intensité/gris"
-
-#original text: "Show histogram of red component"
-msgid "Show histogram of red component"
-msgstr "Afficher l'histogramme du composant rouge"
-
-#original text: "Show histogram of green component"
-msgid "Show histogram of green component"
-msgstr "Afficher l'histogramme du composant vert"
-
-#original text: "Show histogram of blue component"
-msgid "Show histogram of blue component"
-msgstr "Afficher l'histogramme du composant bleu"
-
-#original text: "Display histogram with lines instead of pixels"
-msgid "Display histogram with lines instead of pixels"
-msgstr "Afficher l'histogramme avec des lignes ŕ la place des pixels"
-
-#original text: "Show logarithm of pixelcount"
-msgid "Show logarithm of pixelcount"
-msgstr "Afficher le logarithme du nombre de pixels"
-
-#original text: "Select definition to change"
-msgid "Select definition to change"
-msgstr "Choisissez la définition ŕ changer"
-
-#original text: "Define a name for the selection of this definition"
-msgid "Define a name for the selection of this definition"
-msgstr "Définissez un nom pour la sélection de cette définition"
-
-#original text: "Enter command to be executed in copy mode (e.g. \"lpr -\")"
-msgid "Enter command to be executed in copy mode (e.g. \"lpr -\")"
-msgstr "Entrez la commande a exécuter en mode copie (par ex.: \"lpr -\")"
-
-#original text: "Enter option for copy numbers"
-msgid "Enter option for copy numbers"
-msgstr "Entrez l'option du nombre de copies"
-
-#original text: "Resolution with which images are printed and saved in postscript"
-msgid "Resolution with which images are printed and saved in postscript"
-msgstr "Résolution ŕ laquelle les images doivent ętre enregistrées et imprimées en PostScript"
-
-#original text: "Width of printable area in 1/72 inch"
-msgid "Width of printable area in 1/72 inch"
-msgstr "Largeur de la zone imprimable en 72čme de pouce"
-
-#original text: "Height of printable area in 1/72 inch"
-msgid "Height of printable area in 1/72 inch"
-msgstr "Hauteur de la zone imprimable en 72čme de pouce"
-
-#original text: "Left offset from the edge of the paper to the printable area in 1/72 inch"
-msgid "Left offset from the edge of the paper to the printable area in 1/72 inch"
-msgstr "Décallage entre le bord gauche du papier et l'aire imprimable en 72čme de pouce"
-
-#original text: "Bottom offset from the edge of the paper to the printable area in 1/72 inch"
-msgid "Bottom offset from the edge of the paper to the printable area in 1/72 inch"
-msgstr "Décallage entre le bord inférieur du papier et l'aire imprimable en 72čme de pouce"
-
-#original text: "Additional gamma value for photocopy"
-msgid "Additional gamma value for photocopy"
-msgstr "Gamma additionnel pour photocopie"
-
-#original text: "Additional gamma value for red component for photocopy"
-msgid "Additional gamma value for red component for photocopy"
-msgstr "Gamma additionnel pour la composante rouge pour photocopie"
-
-#original text: "Additional gamma value for green component for photocopy"
-msgid "Additional gamma value for green component for photocopy"
-msgstr "Gamma additionnel pour la composante verte pour photocopie"
-
-#original text: "Additional gamma value for blue component for photocopy"
-msgid "Additional gamma value for blue component for photocopy"
-msgstr "Gamma additionnel pour la composante bleue pour photocopie"
-
-#original text: "Quality in percent if image is saved as jpeg or tiff with jpeg compression"
-msgid "Quality in percent if image is saved as jpeg or tiff with jpeg compression"
-msgstr "Qualité en pourcentage si l'image est enregistrée en jpeg ou tiff avec compression jpeg"
-
-#original text: "Compression if image is saved as png"
-msgid "Compression if image is saved as png"
-msgstr "Compression si l'image est enregistrée en png"
-
-#original text: "Compression type if multi bit image is saved as tiff"
-msgid "Compression type if multi bit image is saved as tiff"
-msgstr "Type de compression si l'image multi-bit est enregistrée en tiff"
-
-#original text: "Compression type if lineart image is saved as tiff"
-msgid "Compression type if lineart image is saved as tiff"
-msgstr "Type de compression si l'image lineart est enregistrée en tiff"
-
-#original text: "Warn before overwriting an existing file"
-msgid "Warn before overwriting an existing file"
-msgstr "Avertir avant d'écraser un fichier existant"
+#. ERR_HEADER_WARNING
+msgid "Warning"
+msgstr "Avertissement"
-#original text: "If the filename is of the form \"name-001.ext\" " "(where the number of digits is free) " "the number is increased after a scan is finished"
-msgid "If the filename is of the form \"name-001.ext\" " "(where the number of digits is free) " "the number is increased after a scan is finished"
-msgstr "Si le nom de fichier est de la forme \"nom-001.ext\" (oů le nombre de " "chiffres est libre), le nom est incrémenté lorsque le scan est terminé"
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "Information"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
+msgstr "Erreur de création de fichier"
+
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
+msgstr "Erreur lors du chargement des paramčtres du périphérique"
+
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
+msgstr "n'est pas un fichier périphérique-rc"
+
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
+msgstr "Echec de l'exécution de Netscape"
+
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
+msgstr "Envoi fax: pas de destinataire définit"
+
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
+msgstr "a été créé pour le périphérique"
+
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
+msgstr "vous voulez l'utiliser comme périphérique"
+
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
+msgstr "cela peut occasionner des problčmes!"
+
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr "Il y a %d images non sauvées"
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "Le fichier %s existe déja"
+
+#. ERR_FILE_NOT_EXISTS
+#, c-format
+msgid "File %s does not exist"
+msgstr "Le fichier %s n'existe pas"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, c-format
+msgid "File %s is not a postscript file"
+msgstr "Le fichier %s n'est pas un fichier PostScript"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "Format de sortie %d-bit non supporté: %s"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr "L'image de la visionneuse n'est pas sauvegardée"
+
+#. TEXT_USAGE
+msgid "Usage:"
+msgstr "Usage:"
-#original text: "If filename counter is automatically increased, used numbers are skipped"
-msgid "If filename counter is automatically increased, used numbers are skipped"
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr "[OPTION]... [PERIPHERIQUE]"
+
+#. TEXT_HELP
+#, fuzzy
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
msgstr ""
-
-#original text: "Use fixed main window size or scrolled, resizable main window"
-msgid "Use fixed main window size or scrolled, resizable main window"
-msgstr "Si un compteur de noms de fichiers est utilisé, les nombres déjŕ utilisés sont évités"
-
-#original text: "Preserve preview image for next program start"
-msgid "Preserve preview image for next program start"
-msgstr "Préserver l'image de l'aperçu pour le prochain démarrage"
-
-#original text: "Use an own colormap for preview if display depth is 8 bpp"
-msgid "Use an own colormap for preview if display depth is 8 bpp"
-msgstr "Utiliser une palette de couleurs privée pour l'aperçu si l'affichage est en mode 8bits"
-
-#original text: "Set gamma correction value for preview image"
-msgid "Set gamma correction value for preview image"
-msgstr "Changer la valeur de la correction gamma pour l'image de l'aperçu"
-
-#original text: "Set gamma correction value for red component of preview image"
-msgid "Set gamma correction value for red component of preview image"
-msgstr "Changer la valeur de la correction gamma pour le composant rouge pour l'image de l'aperçu"
-
-#original text: "Set gamma correction value for green component of preview image"
-msgid "Set gamma correction value for green component of preview image"
-msgstr "Changer la valeur de la correction gamma pour le composant vert pour l'image de l'aperçu"
-
-#original text: "Set gamma correction value for blue component of preview image"
-msgid "Set gamma correction value for blue component of preview image"
-msgstr "Changer la valeur de la correction gamma pour le composant bleue pour l'image de l'aperçu"
-
-#original text: "Enter command to be executed to display helpfiles, must be a html-viewer!"
-msgid "Enter command to be executed to display helpfiles, must be a html-viewer!"
-msgstr "Entrez la commande a exécuter pour afficher les fichiers d'aide; doit ętre capable de lire du html"
-
-#original text: "Enter command to be executed in fax mode"
-msgid "Enter command to be executed in fax mode"
-msgstr "Entrez la commande ŕ exécuter en mode fax"
-
-#original text: "Enter option to specify receiver"
-msgid "Enter option to specify receiver"
-msgstr "Entrez l'option ŕ spécifier au destinataire"
-
-#original text: "Enter option to specify postscript files following"
-msgid "Enter option to specify postscript files following"
-msgstr "Entrez l'option ŕ spécifier aux fichiers PostScript suivant"
-
-#original text: "Enter option to specify normal mode (low resolution)"
-msgid "Enter option to specify normal mode (low resolution)"
-msgstr "Entrez l'option ŕ spécifier au mode normal (basse résolution)"
-
-#original text: "Enter option to specify fine mode (high resolution)"
-msgid "Enter option to specify fine mode (high resolution)"
-msgstr "Entrez l'option ŕ spécifier au mode fin (haute résolution)"
-
-#original text: "Enter command to be executed to view a fax"
-msgid "Enter command to be executed to view a fax"
-msgstr "Entrez la commande ŕ ętre exécuter pour voir un fax"
-
-#original text: "Use high vertical resolution (196 lpi instead of 98 lpi)"
-msgid "Use high vertical resolution (196 lpi instead of 98 lpi)"
-msgstr "Utiliser une plus grande résolution verticale (196 lpi ŕ la place de 98 lpi)"
-
-#original text: "Pick white point"
-msgid "Pick white point"
-msgstr "Choisissez un point blanc"
-
-#original text: "Pick gray point"
-msgid "Pick gray point"
-msgstr "Choisissez un point gris"
-
-#original text: "Pick black point"
-msgid "Pick black point"
-msgstr "Choisissez un point noir"
-
-#original text: "Use full scanarea"
-msgid "Use full scanarea"
-msgstr "Utiliser l'aire de scan complčte"
-
-#original text: "Zoom 20% out"
-msgid "Zoom 20% out"
-msgstr "Zoomer 20% en arričre"
-
-#original text: "Zoom into selected area"
-msgid "Zoom into selected area"
-msgstr "Zoomer l'aire sélectionnée"
-
-#original text: "Undo last zoom"
-msgid "Undo last zoom"
-msgstr "Annuler le dernier zoom"
-
-#original text: "Select visible area"
-msgid "Select visible area"
-msgstr "Sélectionner l'aire visible"
-
-#original text: "Failed to determine home directory:"
-msgid "Failed to determine home directory:"
-msgstr "Impossible de déterminer le répertoire personnel"
-
-#original text: "Filename too long"
-msgid "Filename too long"
-msgstr "Nom de fichier trop long"
-
-#original text: "Failed to set value of option"
-msgid "Failed to set value of option"
-msgstr "Échec du changement de la valeur de l'option"
-
-#original text: "Failed to obtain value of option"
-msgid "Failed to obtain value of option"
-msgstr "Échec de l'obtention de la valeur de l'option"
-
-#original text: "Error obtaining option count"
-msgid "Error obtaining option count"
-msgstr "Erreur de l'option 'count'"
-
-#original text: "Failed to open device"
-msgid "Failed to open device"
+"Démarre l'interface graphique pour accéder aux périphériques de SANE "
+"(Scanner Access Now Easy).\n"
+"\n"
+"Le format de [PERIPHERIQUE] est : nom_du_backend:fichier_périphérique\n"
+"(ex : umax:/dev/scanner).\n"
+"[OPTION]... peut ętre une des combinaisons suivantes :\n"
+"\n"
+"-h, --help affiche ce message d'aide et quitte\n"
+"-v, --version donne des informations sur la version\n"
+"-l, --license affiche des informations sur la licence\n"
+"\n"
+"-d, --device-settings file charge la configuration d'un périphérique ŕ\n"
+" partir d'un fichier (sans \".drc\")\n"
+"\n"
+"-V, --viewer démarre en mode visionneuse (défaut)\n"
+"-s, --save démarre en mode sauvegarde\n"
+"-c, --copy démarre en mode copie\n"
+"-f, --fax démarre en mode fax\n"
+"-m, --mail start with mail-mode active\n"
+"-n, --no-mode-selection désactive le menu de sélection de mode\n"
+"\n"
+"-F, --Fixed fixe la taille de la fenętre principale (sans\n"
+" tenir compte des préférences)\n"
+"-R, --Resizeable taille de la fenętre principale variable (sans\n"
+" tenir compte des préférences)\n"
+"-p, --print-filenames affiche le nom des images créées par XSane\n"
+"-N, --force-filename name force le nom de fichier et désactive la "
+"sélection\n"
+" utilisateur\n"
+"--display affichage-X11 redirige l'affichage vers un autre affichage "
+"X11\n"
+"--no-xshm n'utilise pas la mémoire partagée\n"
+"--sync demande une connexion synchrone avec le serveur "
+"X"
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
+msgstr "Front-end pour l'interface SANE"
+
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
msgstr ""
+"Cette fonction permet l'accčs aux scanners et autres périphériques "
+"d'acquisition d'images ŕ travers SANE (Scanner Access Now Easy)"
-#original text: "no devices available"
-msgid "no devices available"
-msgstr "aucun périphérique disponible"
-
-#original text: "Error during read:"
-msgid "Error during read:"
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
msgstr ""
-#original text: "Error during save:"
-msgid "Error during save:"
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
msgstr ""
-#original text: "Can't handle depth"
-msgid "Can't handle depth"
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
msgstr ""
-#original text: "Unknown file format for saving"
-msgid "Unknown file format for saving"
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
msgstr ""
-#original text: "Failed to open"
-msgid "Failed to open"
-msgstr ""
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr "Taille maximum"
-#original text: "Failed to open pipe for executing printercommand"
-msgid "Failed to open pipe for executing printercommand"
-msgstr ""
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr "DIN A3 portrait"
-#original text: "Failed to execute printercommand:"
-msgid "Failed to execute printercommand:"
-msgstr ""
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr "DIN A3 paysage"
-#original text: "Failed to start scanner:"
-msgid "Failed to start scanner:"
-msgstr ""
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr "DIN A4 portrait"
-#original text: "Failed to get parameters:"
-msgid "Failed to get parameters:"
-msgstr ""
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr "DIN A4 paysage"
-#original text: "No output format given"
-msgid "No output format given"
-msgstr ""
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr "DIN A5 portrait"
-#original text: "out of memory"
-msgid "out of memory"
-msgstr ""
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr "DIN A5 paysage"
-#original text: "LIBTIFF reports error"
-msgid "LIBTIFF reports error"
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
msgstr ""
-#original text: "LIBPNG reports error"
-msgid "LIBPNG reports error"
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
msgstr ""
-#original text: "unknown type"
-msgid "unknown type"
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
msgstr ""
-#original text: "unknown constraint type"
-msgid "unknown constraint type"
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
msgstr ""
-#original text: "Failed to execute documentation viewer:"
-msgid "Failed to execute documentation viewer:"
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
msgstr ""
-#original text: "Failed to execute fax viewer:"
-msgid "Failed to execute fax viewer:"
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
msgstr ""
-#original text: "Failed to execute faxcommand:"
-msgid "Failed to execute faxcommand:"
-msgstr ""
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr "Legal portrait"
-#original text: "bad frame format"
-msgid "bad frame format"
-msgstr ""
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr "Legal paysage"
-#original text: "unable to set resolution"
-msgid "unable to set resolution"
-msgstr ""
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr "Letter portrait"
-#original text: "error"
-msgid "error"
-msgstr "Erreur"
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr "Letter paysage"
-#original text: "Sane major version number mismatch!"
-msgid "Sane major version number mismatch!"
-msgstr "Incohérence dans les numéros de version majeur de Sane!"
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr "Pleine échelle"
-#original text: "xsane major version ="
-msgid "xsane major version ="
-msgstr "version majeure de xsane ="
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr "Dia"
-#original text: "backend major version ="
-msgid "backend major version ="
-msgstr "version majeure du moteur ="
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+msgid "Standard negative"
+msgstr "Négatif standard"
-#original text: "*** PROGRAM ABORTED ***"
-msgid "*** PROGRAM ABORTED ***"
-msgstr "*** ARRET DU PROGRAMME ***"
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr "Négatif Agfa"
-#original text: "Failed to allocate image memory:"
-msgid "Failed to allocate image memory:"
-msgstr ""
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr "Négatif Agfa XRG 200-4"
-#original text: "Preview cannot handle bit depth"
-msgid "Preview cannot handle bit depth"
-msgstr ""
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr "Négatif Agfa HDC 100"
-#original text: "GIMP support missing"
-msgid "GIMP support missing"
-msgstr "le support pour GIMP est manquant"
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+msgid "Fuji negative"
+msgstr "Négatif Fuji"
-#original text: "Filename counter overflow"
-msgid "Filename counter overflow"
-msgstr ""
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr "Négatif Kodak"
-#original text: "warning: option has no value constraint"
-msgid "warning: option has no value constraint"
-msgstr ""
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+msgid "Konica negative"
+msgstr "Négatif Konica"
-#original text: "Ok"
-msgid "Ok"
-msgstr ""
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+msgid "Konica negative VX 100"
+msgstr "Négatif Konica VX 100"
-#original text: "Error"
-msgid "Error"
-msgstr "Erreur"
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr "Négatif Rossman HR 100"
-#original text: "Warning"
-msgid "Warning"
-msgstr "Avertissement"
+#. Sane backend messages
+msgid "flatbed scanner"
+msgstr "scanner ŕ plat"
-#original text: "Usage:"
-msgid "Usage:"
-msgstr "Usage:"
+msgid "frame grabber"
+msgstr "carte d'acquisition vidéo"
-#original text: "[OPTION]... [DEVICE]"
-msgid "[OPTION]... [DEVICE]"
-msgstr "[OPTION]... [PÉRIPHÉRIQUE]"
+msgid "handheld scanner"
+msgstr "scanner ŕ main"
-#original text: "Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\n-h, --help display this help message and exit\n-v, --version print version information\n\n-d, --device-settings file load device settings from file (without \".drc\")\n\n-s, --scan start with scan-mode active\n-c, --copy start with copy-mode active\n-f, --fax start with fax-mode active\n-n, --no-mode-selection disable menu for xsane mode selection\n\n-F, --Fixed fixed main window size (overwrite preferences value)\n-R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\n--display X11-display redirect output to X11-display\n--no-xshm do not use shared memory images\n--sync request a synchronous connection with the X11 server"
-msgid "Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\n-h, --help display this help message and exit\n-v, --version print version information\n\n-d, --device-settings file load device settings from file (without \".drc\")\n\n-s, --scan start with scan-mode active\n-c, --copy start with copy-mode active\n-f, --fax start with fax-mode active\n-n, --no-mode-selection disable menu for xsane mode selection\n\n-F, --Fixed fixed main window size (overwrite preferences value)\n-R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\n--display X11-display redirect output to X11-display\n--no-xshm do not use shared memory images\n--sync request a synchronous connection with the X11 server"
-msgstr "" "Démarre l'interface graphique pour accéder ŕ SANE (Scanner Access Now Easy).\n" "\n" "-h, --help affiche ce message d'aide et quitte\n" "-v, --version donne des informations sur la version\n" "\n" "-d, --device-settings file charge la configuration d'un périphérique ŕ\n" " partir d'un fichier (sans \".drc\")\n" "\n" "-s, --scan démarre en mode scan\n" "-c, --copy démarre en mode copie\n" "-f, --fax démarre en mode fax\n" "-n, --no-mode-selection désactive le menu de sélection de mode\n" "\n" "-F, --Fixed fixe la taille de la fenętre principale (sans\n" " tenir compte des préférences)" "-R, --Resizeable taille de la fenętre principale variable (sans\n" " tenir compte des préférences)\n" "--display affichage-X11 redirige l'affichage vers un autre affichage X11\n" "--no-xshm n'utilise pas la mémoire partagée\n" "--sync demande une connexion synchrone avec le serveur X"
+msgid "still camera"
+msgstr "appareil numérique"
+msgid "video camera"
+msgstr "caméra numérique"
+
+msgid "virtual device"
+msgstr "périphérique virtuel"
-#original text: "Success"
msgid "Success"
-msgstr ""
+msgstr "Succčs"
-#original text: "Operation not supported"
msgid "Operation not supported"
-msgstr ""
+msgstr "Opération non supportée"
-#original text: "Operation was cancelled"
msgid "Operation was cancelled"
-msgstr ""
+msgstr "Opération annulée"
-#original text: "Device busy"
msgid "Device busy"
-msgstr ""
+msgstr "Périphérique occupé"
-#original text: "Invalid argument"
msgid "Invalid argument"
-msgstr ""
+msgstr "Argument invalide"
-#original text: "End of file reached"
msgid "End of file reached"
-msgstr ""
+msgstr "Fin de fichier atteinte"
-#original text: "Document feeder jammed"
msgid "Document feeder jammed"
-msgstr ""
+msgstr "Chargeur de documents bloqué"
-#original text: "Document feeder out of documents"
msgid "Document feeder out of documents"
-msgstr ""
+msgstr "Chargeur de documents vide"
-#original text: "Scanner cover is open"
msgid "Scanner cover is open"
-msgstr ""
+msgstr "Le capot du scanner est ouvert"
-#original text: "Error during device I/O"
msgid "Error during device I/O"
-msgstr ""
+msgstr "Erreur d'I/O sur le périphérique"
-#original text: "Out of memory"
msgid "Out of memory"
-msgstr ""
+msgstr "Dépassement de mémoire"
-#original text: "Access to resource has been denied"
msgid "Access to resource has been denied"
-msgstr ""
+msgstr "Accčs ŕ la ressource refusé"
+
+#~ msgid "Store Medium definition"
+#~ msgstr "Enregistrer la définition du support"
+#~ msgid ""
+#~ "Use XSane for: SCANning-<Ctrl-s> photoCOPYing-<Ctrl-c> FAXing-<Ctrl-f>"
+#~ msgstr ""
+#~ "Utilisez XSane pour : SCANNER <Ctrl-s>, photoCOPIER <Ctrl-c>, FAXER <Ctrl-f>"
diff --git a/po/fr.po.in b/po/fr.po.in
deleted file mode 100644
index 4bd7f60..0000000
--- a/po/fr.po.in
+++ /dev/null
@@ -1,1072 +0,0 @@
-#include "../frontend/xsane-text.h"
-#define _(x) x
-
-#nls translation file for xsane
-#language: french (fr)
-#by Vincent Renardias <vincent@ldsol.com>
-
-#original text: "About"
-msgid WINDOW_ABOUT
-msgstr "a propos"
-
-#original text: "authorization"
-msgid WINDOW_AUTHORIZE
-msgstr "authorisation"
-
-#original text: "info"
-msgid WINDOW_INFO
-msgstr "info"
-
-#original text: "batch scan"
-msgid WINDOW_BATCH_SCAN
-msgstr "scan en batch"
-
-#original text: "fax project"
-msgid WINDOW_FAX_PROJECT
-msgstr "projet fax"
-
-#original text: "rename fax page"
-msgid WINDOW_FAX_RENAME
-msgstr "renommer la page de fax"
-
-#original text: "setup"
-msgid WINDOW_SETUP
-msgstr "Configuration"
-
-#original text: "Histogram"
-msgid WINDOW_HISTOGRAM
-msgstr "Histogramme"
-
-#original text: "Standard options"
-msgid WINDOW_STANDARD_OPTIONS
-msgstr "Options standards"
-
-#original text: "Advanced options"
-msgid WINDOW_ADVANCED_OPTIONS
-msgstr "Options avancées"
-
-#original text: "device selection"
-msgid WINDOW_DEVICE_SELECTION
-msgstr "sélection de périphérique"
-
-#original text: "Preview"
-msgid WINDOW_PREVIEW
-msgstr "aperçu"
-
-#original text: "output filename"
-msgid WINDOW_OUTPUT_FILENAME
-msgstr "fichier de sortie"
-
-#original text: "save device settings"
-msgid WINDOW_SAVE_SETTINGS
-msgstr "enregistrer les paramétres du périphérique"
-
-#original text: "load device settings"
-msgid WINDOW_LOAD_SETTINGS
-msgstr "charger les paramétres du périphérique"
-
-#original text: "File"
-msgid MENU_FILE
-msgstr "Fichier"
-
-#original text: "Preferences"
-msgid MENU_PREFERENCES
-msgstr "Préférences"
-
-#original text: "Help"
-msgid MENU_HELP
-msgstr "Aide"
-
-#original text: "About"
-msgid MENU_ITEM_ABOUT
-msgstr "A propos"
-
-#original text: "Info"
-msgid MENU_ITEM_INFO
-msgstr "Info"
-
-#original text: "Exit"
-msgid MENU_ITEM_EXIT
-msgstr "Quitter"
-
-#original text: "Raw image"
-msgid FRAME_RAW_IMAGE
-msgstr "Image brute"
-
-#original text: "Enhanced image"
-msgid FRAME_ENHANCED_IMAGE
-msgstr "Image améliorée"
-
-#original text: "Start"
-msgid BUTTON_START
-msgstr "Départ"
-
-#original text: "Ok"
-msgid BUTTON_OK
-msgstr "Ok"
-
-#original text: "Apply"
-msgid BUTTON_APPLY
-msgstr "Appliquer"
-
-#original text: "Cancel"
-msgid BUTTON_CANCEL
-msgstr "Annuler"
-
-#original text: "Close"
-msgid BUTTON_CLOSE
-msgstr "Fermer"
-
-#original text: "Add area"
-msgid BUTTON_ADD_AREA
-msgstr "Ajouter une aire"
-
-#original text: "Delete"
-msgid BUTTON_DELETE
-msgstr "Affacer"
-
-#original text: "Show"
-msgid BUTTON_SHOW
-msgstr "Montrer"
-
-#original text: "Rename"
-msgid BUTTON_RENAME
-msgstr "Renommer"
-
-#original text: "Send project"
-msgid BUTTON_SEND_PROJECT
-msgstr "Envoyer projet"
-
-#original text: "Delete project"
-msgid BUTTON_DELETE_PROJECT
-msgstr "Effacer projet"
-
-#original text: "Add printer"
-msgid BUTTON_ADD_PRINTER
-msgstr "Ajouter une imprimante"
-
-#original text: "Delete printer"
-msgid BUTTON_DELETE_PRINTER
-msgstr "Enlever une imprimante"
-
-#original text: "Acquire Preview"
-msgid BUTTON_PREVIEW_ACQUIRE
-msgstr "Acquisition de l'aperçu"
-
-#original text: "Cancel Preview"
-msgid BUTTON_PREVIEW_CANCEL
-msgstr "Annuler l'aperçu"
-
-#original text: "Fine mode"
-msgid RADIO_BUTTON_FINE_MODE
-msgstr "Mode Fin"
-
-#original text: "Overwrite warning"
-msgid RADIO_BUTTON_OVERWRITE_WARNING
-msgstr "Avertissement en cas d'écrasement"
-
-#original text: "Increase filename counter"
-msgid RADIO_BUTTON_INCREASE_COUNTER
-msgstr "Incrémenter le compteur de nom de fichier"
-
-#original text: "Skip existing numbers"
-msgid RADIO_BUTTON_SKIP_EXISTING_NRS
-msgstr "Éviter les nombres existants"
-
-#original text: "Main window size fixed"
-msgid RADIO_BUTTON_WINDOW_FIXED
-msgstr "Taille de la fenętre principale fixe"
-
-#original text: "Preserve preview image"
-msgid RADIO_BUTTON_PRESERVE_PRVIEW
-msgstr "Préserver l'image de l'aperçu"
-
-#original text: "Use private colormap"
-msgid RADIO_BUTTON_PRIVATE_COLORMAP
-msgstr "Utiliser une palette de couleurs privée"
-
-#original text: "Available devices:"
-msgid TEXT_AVAILABLE_DEVICES
-msgstr "Périphériques disponibles:"
-
-#original text: "XSane options"
-msgid TEXT_XSANE_OPTIONS
-msgstr "Options de XSane"
-
-#original text: "XSane mode"
-msgid TEXT_XSANE_MODE
-msgstr "Mode XSane"
-
-#original text: "Scanner and backend:"
-msgid TEXT_SCANNER_BACKEND
-msgstr "Scanner et moteur:"
-
-#original text: "Vendor:"
-msgid TEXT_VENDOR
-msgstr "Vendeur:"
-
-#original text: "Model:"
-msgid TEXT_MODEL
-msgstr "Modčle:"
-
-#original text: "Type:"
-msgid TEXT_TYPE
-msgstr "Type:"
-
-#original text: "Device:"
-msgid TEXT_DEVICE
-msgstr "Périphérique:"
-
-#original text: "Loaded backend:"
-msgid TEXT_LOADED_BACKEND
-msgstr "Moteur chargé:"
-
-#original text: "Sane version:"
-msgid TEXT_SANE_VERSION
-msgstr "Version de Sane:"
-
-#original text: "Recent values:"
-msgid TEXT_RECENT_VALUES
-msgstr "Valeurs récentes:"
-
-#original text: "Gamma correction by:"
-msgid TEXT_GAMMA_CORR_BY
-msgstr "Correction Gamma par:"
-
-#original text: "scanner"
-msgid TEXT_SCANNER
-msgstr "scanner"
-
-#original text: "software (xsane)"
-msgid TEXT_SOFTWARE_XSANE
-msgstr "logiciel (xsane)"
-
-#original text: "none"
-msgid TEXT_NONE
-msgstr "aucun"
-
-#original text: "Gamma input depth:"
-msgid TEXT_GAMMA_INPUT_DEPTH
-msgstr ""
-
-#original text: "Gamma output depth:"
-msgid TEXT_GAMMA_OUTPUT_DEPTH
-msgstr ""
-
-#original text: "Scanner output depth:"
-msgid TEXT_SCANNER_OUTPUT_DEPTH
-msgstr ""
-
-#original text: "XSane output formats:"
-msgid TEXT_OUTPUT_FORMATS
-msgstr "Formats de sortie XSane:"
-
-#original text: "8 bit output formats:"
-msgid TEXT_8BIT_FORMATS
-msgstr "Formats de sortie 8 bits:"
-
-#original text: "16 bit output formats:"
-msgid TEXT_16BIT_FORMATS
-msgstr "Formats de sortie 16 bits:"
-
-#original text: "Authorization required for"
-msgid TEXT_AUTHORIZATION_REQ
-msgstr "Authorisation requise pour"
-
-#original text: "Username :"
-msgid TEXT_USERNAME
-msgstr "Utilisateur:"
-
-#original text: "Password :"
-msgid TEXT_PASSWORD
-msgstr "Mot de passe:"
-
-#original text: "Invalid parameters."
-msgid TEXT_INVALID_PARAMS
-msgstr "Paramétres non valides"
-
-#original text: "version:"
-msgid TEXT_VERSION
-msgstr "version"
-
-#original text: "package"
-msgid TEXT_PACKAGE
-msgstr "paquetage"
-
-#original text: "unknown"
-msgid TEXT_UNKNOWN
-msgstr "inconnu"
-
-#original text: "0x0: 0KB"
-msgid TEXT_INFO_BOX
-msgstr "0x0: 0KB"
-
-#original text: "Printer selection:"
-msgid TEXT_SETUP_PRINTER_SEL
-msgstr "Sélection de l'imprimante:"
-
-#original text: "Name:"
-msgid TEXT_SETUP_PRINTER_NAME
-msgstr "Nom:"
-
-#original text: "Command:"
-msgid TEXT_SETUP_PRINTER_CMD
-msgstr "Commande:"
-
-#original text: "Copy number option:"
-msgid TEXT_SETUP_COPY_NR_OPT
-msgstr "Option du nombre de copie:"
-
-#original text: "Resolution (dpi):"
-msgid TEXT_SETUP_PRINTER_RES
-msgstr "Résolution (dpi):"
-
-#original text: "Width (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_WIDTH
-msgstr "Largeur (en 72čme de pouce):"
-
-#original text: "Height (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_HEIGHT
-msgstr "Hauteur (en 72e de pouce):"
-
-#original text: "Left offset (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_LEFT
-msgstr "Marge gauche (en 72čme de pouce):"
-
-#original text: "Bottom offset (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_BOTTOM
-msgstr "Marge inférieure (en 72čme de pouce):"
-
-#original text: "Printer gamma value:"
-msgid TEXT_SETUP_PRINTER_GAMMA
-msgstr "Valeur gamma de l'imprimante:"
-
-#original text: "Printer gamma red:"
-msgid TEXT_SETUP_PRINTER_GAMMA_RED
-msgstr "Valeur gamma rouge de l'imprimante:"
-
-#original text: "Printer gamma green:"
-msgid TEXT_SETUP_PRINTER_GAMMA_GREEN
-msgstr "Valeur gamma verte de l'imprimante:"
-
-#original text: "Printer gamma blue:"
-msgid TEXT_SETUP_PRINTER_GAMMA_BLUE
-msgstr "Valeur gamma bleue de l'imprimante:"
-
-#original text: "JPEG image quality"
-msgid TEXT_SETUP_JPEG_QUALITY
-msgstr "Qualité d'image JPEG"
-
-#original text: "PNG image compression"
-msgid TEXT_SETUP_PNG_COMPRESSION
-msgstr "Compression des images PNG"
-
-#original text: "TIFF multi bit image compression"
-msgid TEXT_SETUP_TIFF_COMPRESSION
-msgstr "Compression multi-bit des images TIFF"
-
-#original text: "TIFF lineart image compression"
-msgid TEXT_SETUP_TIFF_COMPRESSION_1
-msgstr "Compression d'image TIFF lineart"
-
-#original text: "Preview gamma:"
-msgid TEXT_SETUP_PREVIEW_GAMMA
-msgstr "Gamma de l'aperçu:"
-
-#original text: "Preview gamma red:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_RED
-msgstr "Gamma rouge de l'aperçu:"
-
-#original text: "Preview gamma green:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_GREEN
-msgstr "Gamma vert de l'aperçu:"
-
-#original text: "Preview gamma blue:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_BLUE
-msgstr "Gamma bleu de l'aperçu:"
-
-#original text: "Helpfile viewer (HTML):"
-msgid TEXT_SETUP_HELPFILE_VIEWER
-msgstr "Afficheur de fichiers d'aide (HTML):"
-
-#original text: "Command:"
-msgid TEXT_SETUP_FAX_COMMAND
-msgstr ""
-
-#original text: "Receiver option:"
-msgid TEXT_SETUP_FAX_RECEIVER_OPTION
-msgstr "Option de réception:"
-
-#original text: "Postscriptfile option:"
-msgid TEXT_SETUP_FAX_POSTSCRIPT_OPT
-msgstr "Option fichier PostScript:"
-
-#original text: "Normal mode option:"
-msgid TEXT_SETUP_FAX_NORMAL_MODE_OPT
-msgstr "Option du mode normal:"
-
-#original text: "Fine mode option:"
-msgid TEXT_SETUP_FAX_FINE_MODE_OPT
-msgstr "Option du mode fin:"
-
-#original text: "Viewer (Postscript):"
-msgid TEXT_SETUP_FAX_VIEWER
-msgstr "Visualisateur (PostScript):"
-
-#original text: "Copy options"
-msgid NOTEBOOK_COPY_OPTIONS
-msgstr "Options d'impression"
-
-#original text: "Saving options"
-msgid NOTEBOOK_SAVING_OPTIONS
-msgstr "Enregistrement des options"
-
-#original text: "Display options"
-msgid NOTEBOOK_DISPLAY_OPTIONS
-msgstr "Options de l'affichage"
-
-#original text: "Fax options"
-msgid NOTEBOOK_FAX_OPTIONS
-msgstr "Options de fax"
-
-#original text: "Scan"
-msgid MENU_ITEM_SCAN
-msgstr "Scanner"
-
-#original text: "Copy"
-msgid MENU_ITEM_COPY
-msgstr "Copier"
-
-#original text: "Fax"
-msgid MENU_ITEM_FAX
-msgstr "Faxer"
-
-#original text: "Setup"
-msgid MENU_ITEM_SETUP
-msgstr "Configuration"
-
-#original text: "Show tooltips"
-msgid MENU_ITEM_SHOW_TOOLTIPS
-msgstr "Affichage des bulles d'aide"
-
-#original text: "Show preview"
-msgid MENU_ITEM_SHOW_PREVIEW
-msgstr "Afficher l'aperçu"
-
-#original text: "Show histogram"
-msgid MENU_ITEM_SHOW_HISTOGRAM
-msgstr "Afficher l'histogramme"
-
-#original text: "Show standard options"
-msgid MENU_ITEM_SHOW_STANDARDOPTIONS
-msgstr "Afficher les options standard"
-
-#original text: "Show advanced options"
-msgid MENU_ITEM_SHOW_ADVANCEDOPTIONS
-msgstr "Afficher les options avancées"
-
-#original text: "Show resolution list"
-msgid MENU_ITEM_SHOW_RESOLUTIONLIST
-msgstr "Afficher la liste des résolutions"
-
-#original text: "Length unit"
-msgid MENU_ITEM_LENGTH_UNIT
-msgstr "Unité de longueur"
-
-#original text: "millimeters"
-msgid SUBMENU_ITEM_LENGTH_MILLIMETERS
-msgstr "millimétres"
-
-#original text: "centimeters"
-msgid SUBMENU_ITEM_LENGTH_CENTIMETERS
-msgstr "centimétres"
-
-#original text: "inches"
-msgid SUBMENU_ITEM_LENGTH_INCHES
-msgstr "pouces"
-
-#original text: "Save device settings"
-msgid MENU_ITEM_SAVE_DEVICE_SETTINGS
-msgstr "Enregistrer les paramétres du périphérique"
-
-#original text: "Load device settings"
-msgid MENU_ITEM_LOAD_DEVICE_SETTINGS
-msgstr "Charger les paramétres du périphérique"
-
-#original text: "Xsane doc"
-msgid MENU_ITEM_XSANE_DOC
-msgstr "Doc Xsane"
-
-#original text: "Backend doc"
-msgid MENU_ITEM_BACKEND_DOC
-msgstr "Doc moteur"
-
-#original text: "Available backends"
-msgid MENU_ITEM_AVAILABLE_BACKENDS
-msgstr "Moteurs disponibles"
-
-#original text: "Scantips"
-msgid MENU_ITEM_SCANTIPS
-msgstr "Conseils d'utilisation"
-
-#original text: "no compression"
-msgid MENU_ITEM_TIFF_COMP_NONE
-msgstr "pas de compression"
-
-#original text: "CCITT 1D Huffman compression"
-msgid MENU_ITEM_TIFF_COMP_CCITTRLE
-msgstr "Compression CCITT 1D Huffman"
-
-#original text: "CCITT Group 3 Fax compression"
-msgid MENU_ITEM_TIFF_COMP_CCITFAX3
-msgstr "Compression CCITT Group 3 Fax"
-
-#original text: "CCITT Group 4 Fax compression"
-msgid MENU_ITEM_TIFF_COMP_CCITFAX4
-msgstr "Compression CCITT Group 4 Fax"
-
-#original text: "JPEG DCT compression"
-msgid MENU_ITEM_TIFF_COMP_JPEG
-msgstr "Compression JPEG DCT"
-
-#original text: "pack bits"
-msgid MENU_ITEM_TIFF_COMP_PACKBITS
-msgstr ""
-
-#original text: "by ext"
-msgid MENU_ITEM_FILETYPE_BY_EXT
-msgstr "par ext"
-
-#original text: "Use XSane for SCANning, photoCOPYing, FAXing..."
-msgid DESC_XSANE_MODE
-msgstr "Utilisez XSane pour SCANner, photoCOPIER, FAXer..."
-
-#original text: "Browse for image filename"
-msgid DESC_BROWSE_FILENAME
-msgstr "Parcourir"
-
-#original text: "Filename for scanned image"
-msgid DESC_FILENAME
-msgstr "Nom de fichier pour l'image scannée"
-
-#original text: "Filename extension and type of image format"
-msgid DESC_FILETYPE
-msgstr "Definir le format de fichier d'image"
-
-#original text: "Enter name of fax project"
-msgid DESC_FAXPROJECT
-msgstr "Entrez le nom du projet fax"
-
-#original text: "Enter new name for faxpage"
-msgid DESC_FAXPAGENAME
-msgstr "Entrez le nouveau nom pour la page de fax"
-
-#original text: "Enter receiver phone number or address"
-msgid DESC_FAXRECEIVER
-msgstr "Entrez l'option ŕ spécifier au destinataire"
-
-#original text: "Select printer definition"
-msgid DESC_PRINTER_SELECT
-msgstr "Changer la définition de l'imprimante"
-
-#original text: "Set scan resolution"
-msgid DESC_RESOLUTION
-msgstr "Changer la résolution du scan"
-
-#original text: "Set zoomfactor"
-msgid DESC_ZOOM
-msgstr "Changer le facteur de zoom"
-
-#original text: "Set number of copies"
-msgid DESC_COPY_NUMBER
-msgstr "Entrez l'option du nombre de copies"
-
-#original text: "Negative: Invert colors for scanning negatives\n" "e.g. swap black and white"
-msgid DESC_NEGATIVE
-msgstr ""
-
-#original text: "Set gamma value"
-msgid DESC_GAMMA
-msgstr ""
-
-#original text: "Set gamma value for red component"
-msgid DESC_GAMMA_R
-msgstr ""
-
-#original text: "Set gamma value for green component"
-msgid DESC_GAMMA_G
-msgstr ""
-
-#original text: "Set gamma value for blue component"
-msgid DESC_GAMMA_B
-msgstr ""
-
-#original text: "Set brightness"
-msgid DESC_BRIGHTNESS
-msgstr ""
-
-#original text: "Set brightness for red component"
-msgid DESC_BRIGHTNESS_R
-msgstr ""
-
-#original text: "Set brightness for green component"
-msgid DESC_BRIGHTNESS_G
-msgstr ""
-
-#original text: "Set brightness for blue component"
-msgid DESC_BRIGHTNESS_B
-msgstr ""
-
-#original text: "Set contrast"
-msgid DESC_CONTRAST
-msgstr ""
-
-#original text: "Set contrast for red component"
-msgid DESC_CONTRAST_R
-msgstr ""
-
-#original text: "Set contrast for green component"
-msgid DESC_CONTRAST_G
-msgstr ""
-
-#original text: "Set contrast for blue component"
-msgid DESC_CONTRAST_B
-msgstr ""
-
-#original text: "RGB default: Set enhancement values for red, green and blue to default values:\n" " gamma = 1.0\n" " brightness = 0\n" " contrast = 0"
-msgid DESC_RGB_DEFAULT
-msgstr ""
-
-#original text: "Autoadjust gamma, brightness and contrast in dependance of selected area"
-msgid DESC_ENH_AUTO
-msgstr ""
-
-#original text: "Set default enhancement values:\n" "gamma = 1.0\n" "brightness = 0\n" "contrast = 0"
-msgid DESC_ENH_DEFAULT
-msgstr ""
-
-#original text: "Restore enhancement values from preferences"
-msgid DESC_ENH_RESTORE
-msgstr ""
-
-#original text: "Store active enhancement values to preferences"
-msgid DESC_ENH_STORE
-msgstr ""
-
-#original text: "Show histogram of intensity/gray"
-msgid DESC_HIST_INTENSITY
-msgstr "Afficher l'histogramme de l'intensité/gris"
-
-#original text: "Show histogram of red component"
-msgid DESC_HIST_RED
-msgstr "Afficher l'histogramme du composant rouge"
-
-#original text: "Show histogram of green component"
-msgid DESC_HIST_GREEN
-msgstr "Afficher l'histogramme du composant vert"
-
-#original text: "Show histogram of blue component"
-msgid DESC_HIST_BLUE
-msgstr "Afficher l'histogramme du composant bleu"
-
-#original text: "Display histogram with lines instead of pixels"
-msgid DESC_HIST_PIXEL
-msgstr "Afficher l'histogramme avec des lignes ŕ la place des pixels"
-
-#original text: "Show logarithm of pixelcount"
-msgid DESC_HIST_LOG
-msgstr "Afficher le logarithme du nombre de pixels"
-
-#original text: "Select definition to change"
-msgid DESC_PRINTER_SETUP
-msgstr "Choisissez la définition ŕ changer"
-
-#original text: "Define a name for the selection of this definition"
-msgid DESC_PRINTER_NAME
-msgstr "Définissez un nom pour la sélection de cette définition"
-
-#original text: "Enter command to be executed in copy mode (e.g. \"lpr -\")"
-msgid DESC_PRINTER_COMMAND
-msgstr "Entrez la commande a exécuter en mode copie (par ex.: \"lpr -\")"
-
-#original text: "Enter option for copy numbers"
-msgid DESC_COPY_NUMBER_OPTION
-msgstr "Entrez l'option du nombre de copies"
-
-#original text: "Resolution with which images are printed and saved in postscript"
-msgid DESC_PRINTER_RESOLUTION
-msgstr "Résolution ŕ laquelle les images doivent ętre enregistrées et imprimées en PostScript"
-
-#original text: "Width of printable area in 1/72 inch"
-msgid DESC_PRINTER_WIDTH
-msgstr "Largeur de la zone imprimable en 72čme de pouce"
-
-#original text: "Height of printable area in 1/72 inch"
-msgid DESC_PRINTER_HEIGHT
-msgstr "Hauteur de la zone imprimable en 72čme de pouce"
-
-#original text: "Left offset from the edge of the paper to the printable area in 1/72 inch"
-msgid DESC_PRINTER_LEFTOFFSET
-msgstr "Décallage entre le bord gauche du papier et l'aire imprimable en 72čme de pouce"
-
-#original text: "Bottom offset from the edge of the paper to the printable area in 1/72 inch"
-msgid DESC_PRINTER_BOTTOMOFFSET
-msgstr "Décallage entre le bord inférieur du papier et l'aire imprimable en 72čme de pouce"
-
-#original text: "Additional gamma value for photocopy"
-msgid DESC_PRINTER_GAMMA
-msgstr "Gamma additionnel pour photocopie"
-
-#original text: "Additional gamma value for red component for photocopy"
-msgid DESC_PRINTER_GAMMA_RED
-msgstr "Gamma additionnel pour la composante rouge pour photocopie"
-
-#original text: "Additional gamma value for green component for photocopy"
-msgid DESC_PRINTER_GAMMA_GREEN
-msgstr "Gamma additionnel pour la composante verte pour photocopie"
-
-#original text: "Additional gamma value for blue component for photocopy"
-msgid DESC_PRINTER_GAMMA_BLUE
-msgstr "Gamma additionnel pour la composante bleue pour photocopie"
-
-#original text: "Quality in percent if image is saved as jpeg or tiff with jpeg compression"
-msgid DESC_JPEG_QUALITY
-msgstr "Qualité en pourcentage si l'image est enregistrée en jpeg ou tiff avec compression jpeg"
-
-#original text: "Compression if image is saved as png"
-msgid DESC_PNG_COMPRESSION
-msgstr "Compression si l'image est enregistrée en png"
-
-#original text: "Compression type if multi bit image is saved as tiff"
-msgid DESC_TIFF_COMPRESSION
-msgstr "Type de compression si l'image multi-bit est enregistrée en tiff"
-
-#original text: "Compression type if lineart image is saved as tiff"
-msgid DESC_TIFF_COMPRESSION_1
-msgstr "Type de compression si l'image lineart est enregistrée en tiff"
-
-#original text: "Warn before overwriting an existing file"
-msgid DESC_OVERWRITE_WARNING
-msgstr "Avertir avant d'écraser un fichier existant"
-
-#original text: "If the filename is of the form \"name-001.ext\" " "(where the number of digits is free) " "the number is increased after a scan is finished"
-msgid DESC_INCREASE_COUNTER
-msgstr "Si le nom de fichier est de la forme \"nom-001.ext\" (oů le nombre de " "chiffres est libre), le nom est incrémenté lorsque le scan est terminé"
-
-#original text: "If filename counter is automatically increased, used numbers are skipped"
-msgid DESC_SKIP_EXISTING
-msgstr ""
-
-#original text: "Use fixed main window size or scrolled, resizable main window"
-msgid DESC_MAIN_WINDOW_FIXED
-msgstr "Si un compteur de noms de fichiers est utilisé, les nombres déjŕ utilisés sont évités"
-
-#original text: "Preserve preview image for next program start"
-msgid DESC_PREVIEW_PRESERVE
-msgstr "Préserver l'image de l'aperçu pour le prochain démarrage"
-
-#original text: "Use an own colormap for preview if display depth is 8 bpp"
-msgid DESC_PREVIEW_COLORMAP
-msgstr "Utiliser une palette de couleurs privée pour l'aperçu si l'affichage est en mode 8bits"
-
-#original text: "Set gamma correction value for preview image"
-msgid DESC_PREVIEW_GAMMA
-msgstr "Changer la valeur de la correction gamma pour l'image de l'aperçu"
-
-#original text: "Set gamma correction value for red component of preview image"
-msgid DESC_PREVIEW_GAMMA_RED
-msgstr "Changer la valeur de la correction gamma pour le composant rouge pour l'image de l'aperçu"
-
-#original text: "Set gamma correction value for green component of preview image"
-msgid DESC_PREVIEW_GAMMA_GREEN
-msgstr "Changer la valeur de la correction gamma pour le composant vert pour l'image de l'aperçu"
-
-#original text: "Set gamma correction value for blue component of preview image"
-msgid DESC_PREVIEW_GAMMA_BLUE
-msgstr "Changer la valeur de la correction gamma pour le composant bleue pour l'image de l'aperçu"
-
-#original text: "Enter command to be executed to display helpfiles, must be a html-viewer!"
-msgid DESC_DOC_VIEWER
-msgstr "Entrez la commande a exécuter pour afficher les fichiers d'aide; doit ętre capable de lire du html"
-
-#original text: "Enter command to be executed in fax mode"
-msgid DESC_FAX_COMMAND
-msgstr "Entrez la commande ŕ exécuter en mode fax"
-
-#original text: "Enter option to specify receiver"
-msgid DESC_FAX_RECEIVER_OPT
-msgstr "Entrez l'option ŕ spécifier au destinataire"
-
-#original text: "Enter option to specify postscript files following"
-msgid DESC_FAX_POSTSCRIPT_OPT
-msgstr "Entrez l'option ŕ spécifier aux fichiers PostScript suivant"
-
-#original text: "Enter option to specify normal mode (low resolution)"
-msgid DESC_FAX_NORMAL_OPT
-msgstr "Entrez l'option ŕ spécifier au mode normal (basse résolution)"
-
-#original text: "Enter option to specify fine mode (high resolution)"
-msgid DESC_FAX_FINE_OPT
-msgstr "Entrez l'option ŕ spécifier au mode fin (haute résolution)"
-
-#original text: "Enter command to be executed to view a fax"
-msgid DESC_FAX_VIEWER
-msgstr "Entrez la commande ŕ ętre exécuter pour voir un fax"
-
-#original text: "Use high vertical resolution (196 lpi instead of 98 lpi)"
-msgid DESC_FAX_FINE_MODE
-msgstr "Utiliser une plus grande résolution verticale (196 lpi ŕ la place de 98 lpi)"
-
-#original text: "Pick white point"
-msgid DESC_PIPETTE_WHITE
-msgstr "Choisissez un point blanc"
-
-#original text: "Pick gray point"
-msgid DESC_PIPETTE_GRAY
-msgstr "Choisissez un point gris"
-
-#original text: "Pick black point"
-msgid DESC_PIPETTE_BLACK
-msgstr "Choisissez un point noir"
-
-#original text: "Use full scanarea"
-msgid DESC_ZOOM_FULL
-msgstr "Utiliser l'aire de scan complčte"
-
-#original text: "Zoom 20% out"
-msgid DESC_ZOOM_OUT
-msgstr "Zoomer 20% en arričre"
-
-#original text: "Zoom into selected area"
-msgid DESC_ZOOM_IN
-msgstr "Zoomer l'aire sélectionnée"
-
-#original text: "Undo last zoom"
-msgid DESC_ZOOM_UNDO
-msgstr "Annuler le dernier zoom"
-
-#original text: "Select visible area"
-msgid DESC_FULL_PREVIEW_AREA
-msgstr "Sélectionner l'aire visible"
-
-#original text: "Failed to determine home directory:"
-msgid ERR_HOME_DIR
-msgstr "Impossible de déterminer le répertoire personnel"
-
-#original text: "Filename too long"
-msgid ERR_FILENAME_TOO_LONG
-msgstr "Nom de fichier trop long"
-
-#original text: "Failed to set value of option"
-msgid ERR_SET_OPTION
-msgstr "Échec du changement de la valeur de l'option"
-
-#original text: "Failed to obtain value of option"
-msgid ERR_GET_OPTION
-msgstr "Échec de l'obtention de la valeur de l'option"
-
-#original text: "Error obtaining option count"
-msgid ERR_OPTION_COUNT
-msgstr "Erreur de l'option 'count'"
-
-#original text: "Failed to open device"
-msgid ERR_DEVICE_OPEN_FAILED
-msgstr ""
-
-#original text: "no devices available"
-msgid ERR_NO_DEVICES
-msgstr "aucun périphérique disponible"
-
-#original text: "Error during read:"
-msgid ERR_DURING_READ
-msgstr ""
-
-#original text: "Error during save:"
-msgid ERR_DURING_SAVE
-msgstr ""
-
-#original text: "Can't handle depth"
-msgid ERR_BAD_DEPTH
-msgstr ""
-
-#original text: "Unknown file format for saving"
-msgid ERR_UNKNOWN_SAVING_FORMAT
-msgstr ""
-
-#original text: "Failed to open"
-msgid ERR_OPEN_FAILED
-msgstr ""
-
-#original text: "Failed to open pipe for executing printercommand"
-msgid ERR_FAILED_PRINTER_PIPE
-msgstr ""
-
-#original text: "Failed to execute printercommand:"
-msgid ERR_FAILED_EXEC_PRINTER_CMD
-msgstr ""
-
-#original text: "Failed to start scanner:"
-msgid ERR_FAILED_START_SCANNER
-msgstr ""
-
-#original text: "Failed to get parameters:"
-msgid ERR_FAILED_GET_PARAMS
-msgstr ""
-
-#original text: "No output format given"
-msgid ERR_NO_OUTPUT_FORMAT
-msgstr ""
-
-#original text: "out of memory"
-msgid ERR_NO_MEM
-msgstr ""
-
-#original text: "LIBTIFF reports error"
-msgid ERR_LIBTIFF
-msgstr ""
-
-#original text: "LIBPNG reports error"
-msgid ERR_LIBPNG
-msgstr ""
-
-#original text: "unknown type"
-msgid ERR_UNKNOWN_TYPE
-msgstr ""
-
-#original text: "unknown constraint type"
-msgid ERR_UNKNOWN_CONSTRAINT_TYPE
-msgstr ""
-
-#original text: "Failed to execute documentation viewer:"
-msgid ERR_FAILD_EXEC_DOC_VIEWER
-msgstr ""
-
-#original text: "Failed to execute fax viewer:"
-msgid ERR_FAILD_EXEC_FAX_VIEWER
-msgstr ""
-
-#original text: "Failed to execute faxcommand:"
-msgid ERR_FAILED_EXEC_FAX_CMD
-msgstr ""
-
-#original text: "bad frame format"
-msgid ERR_BAD_FRAME_FORMAT
-msgstr ""
-
-#original text: "unable to set resolution"
-msgid ERR_FAILED_SET_RESOLUTION
-msgstr ""
-
-#original text: "error"
-msgid ERR_ERROR
-msgstr "Erreur"
-
-#original text: "Sane major version number mismatch!"
-msgid ERR_MAJOR_VERSION_NR_CONFLICT
-msgstr "Incohérence dans les numéros de version majeur de Sane!"
-
-#original text: "xsane major version ="
-msgid ERR_XSANE_MAJOR_VERSION
-msgstr "version majeure de xsane ="
-
-#original text: "backend major version ="
-msgid ERR_BACKEND_MAJOR_VERSION
-msgstr "version majeure du moteur ="
-
-#original text: "*** PROGRAM ABORTED ***"
-msgid ERR_PROGRAM_ABORTED
-msgstr "*** ARRET DU PROGRAMME ***"
-
-#original text: "Failed to allocate image memory:"
-msgid ERR_FAILED_ALLOCATE_IMAGE
-msgstr ""
-
-#original text: "Preview cannot handle bit depth"
-msgid ERR_PREVIEW_BAD_DEPTH
-msgstr ""
-
-#original text: "GIMP support missing"
-msgid ERR_GIMP_SUPPORT_MISSING
-msgstr "le support pour GIMP est manquant"
-
-#original text: "Filename counter overflow"
-msgid WARN_COUNTER_OVERFLOW
-msgstr ""
-
-#original text: "warning: option has no value constraint"
-msgid WARN_NO_VALUE_CONSTRAINT
-msgstr ""
-
-#original text: "Ok"
-msgid ERR_BUTTON_OK
-msgstr ""
-
-#original text: "Error"
-msgid ERR_HEADER_ERROR
-msgstr "Erreur"
-
-#original text: "Warning"
-msgid ERR_HEADER_WARNING
-msgstr "Avertissement"
-
-#original text: "Usage:"
-msgid TEXT_USAGE
-msgstr "Usage:"
-
-#original text: "[OPTION]... [DEVICE]"
-msgid TEXT_USAGE_OPTIONS
-msgstr "[OPTION]... [PÉRIPHÉRIQUE]"
-
-#original text: "Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\n-h, --help display this help message and exit\n-v, --version print version information\n\n-d, --device-settings file load device settings from file (without \".drc\")\n\n-s, --scan start with scan-mode active\n-c, --copy start with copy-mode active\n-f, --fax start with fax-mode active\n-n, --no-mode-selection disable menu for xsane mode selection\n\n-F, --Fixed fixed main window size (overwrite preferences value)\n-R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\n--display X11-display redirect output to X11-display\n--no-xshm do not use shared memory images\n--sync request a synchronous connection with the X11 server"
-msgid TEXT_HELP
-msgstr "" "Démarre l'interface graphique pour accéder ŕ SANE (Scanner Access Now Easy).\n" "\n" "-h, --help affiche ce message d'aide et quitte\n" "-v, --version donne des informations sur la version\n" "\n" "-d, --device-settings file charge la configuration d'un périphérique ŕ\n" " partir d'un fichier (sans \".drc\")\n" "\n" "-s, --scan démarre en mode scan\n" "-c, --copy démarre en mode copie\n" "-f, --fax démarre en mode fax\n" "-n, --no-mode-selection désactive le menu de sélection de mode\n" "\n" "-F, --Fixed fixe la taille de la fenętre principale (sans\n" " tenir compte des préférences)" "-R, --Resizeable taille de la fenętre principale variable (sans\n" " tenir compte des préférences)\n" "--display affichage-X11 redirige l'affichage vers un autre affichage X11\n" "--no-xshm n'utilise pas la mémoire partagée\n" "--sync demande une connexion synchrone avec le serveur X"
-
-
-#original text: "Success"
-msgid "Success"
-msgstr ""
-
-#original text: "Operation not supported"
-msgid "Operation not supported"
-msgstr ""
-
-#original text: "Operation was cancelled"
-msgid "Operation was cancelled"
-msgstr ""
-
-#original text: "Device busy"
-msgid "Device busy"
-msgstr ""
-
-#original text: "Invalid argument"
-msgid "Invalid argument"
-msgstr ""
-
-#original text: "End of file reached"
-msgid "End of file reached"
-msgstr ""
-
-#original text: "Document feeder jammed"
-msgid "Document feeder jammed"
-msgstr ""
-
-#original text: "Document feeder out of documents"
-msgid "Document feeder out of documents"
-msgstr ""
-
-#original text: "Scanner cover is open"
-msgid "Scanner cover is open"
-msgstr ""
-
-#original text: "Error during device I/O"
-msgid "Error during device I/O"
-msgstr ""
-
-#original text: "Out of memory"
-msgid "Out of memory"
-msgstr ""
-
-#original text: "Access to resource has been denied"
-msgid "Access to resource has been denied"
-msgstr ""
-
diff --git a/po/it.gmo b/po/it.gmo
new file mode 100644
index 0000000..1e9cda1
--- /dev/null
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 0000000..e624f3c
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,2546 @@
+# italian translation for XSane
+# Copyright (C) 2000 Colorio Mauro
+# Colorio Mauro <linuxbox@interfree.it>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: XSANE 0.84\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2000-09-29 23:48+0100\n"
+"Last-Translator: Colorio Mauro <linuxbox@interfree.it>\n"
+"Language-Team: Italian <it@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr ""
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr ""
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "Informazioni su"
+
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "Traduzioni:"
+
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "autorizzazione"
+
+#. WINDOW_LICENSE
+#, fuzzy
+msgid "license"
+msgstr "pollici"
+
+#. WINDOW_INFO
+msgid "info"
+msgstr "info"
+
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "scan automatico"
+
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "progetto fax"
+
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "rinomina pagina fax"
+
+#. WINDOW_FAX_INSERT
+#, fuzzy
+msgid "insert ps-file into fax"
+msgstr "Inserire il nome del progetto fax"
+
+#. WINDOW_MAIL_PROJECT
+#, fuzzy
+msgid "mail project"
+msgstr "progetto fax"
+
+#. WINDOW_MAIL_RENAME
+#, fuzzy
+msgid "rename mail image"
+msgstr "rinomina pagina fax"
+
+#. WINDOW_MAIL_INSERT
+#, fuzzy
+msgid "insert file into mail"
+msgstr "Inserire il nome del progetto fax"
+
+#. WINDOW_PRESET_AREA_RENAME
+#, fuzzy
+msgid "rename preset area"
+msgstr "rinomina pagina fax"
+
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "setup"
+
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "Istogramma"
+
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "Curva gamma"
+
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "Opzioni standard"
+
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "Opzioni avanzate"
+
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "selezione dispositivo"
+
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "Anteprima"
+
+#. WINDOW_VIEWER
+#, fuzzy
+msgid "Viewer"
+msgstr "Visualizza"
+
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+#, fuzzy
+msgid "Viewer: select output filename"
+msgstr "selezione nome file output"
+
+#. WINDOW_OCR_OUTPUT_FILENAME
+#, fuzzy
+msgid "Select output filename for OCR text file"
+msgstr "selezione nome file output"
+
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "selezione nome file output"
+
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "salva settaggi dispositivo"
+
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "carica settaggi dispositivo"
+
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "cambia directory di lavoro"
+
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "seleziona directory temporanea"
+
+#. WINDOW_SCALE
+#, fuzzy
+msgid "Scale image"
+msgstr "Immagine Raw"
+
+#. WINDOW_DESPECKLE
+#, fuzzy
+msgid "Despeckle image"
+msgstr "Cancella progetto"
+
+#. WINDOW_BLUR
+#, fuzzy
+msgid "Blur image"
+msgstr "Cancella progetto"
+
+#. WINDOW_STORE_MEDIUM
+#, fuzzy
+msgid "Store medium definition"
+msgstr "Selezionare la definizione da cambiare"
+
+#. MENU_FILE
+msgid "File"
+msgstr "File"
+
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "Impostazioni"
+
+#. MENU_VIEW
+msgid "View"
+msgstr "Visualizza"
+
+#. MENU_HELP
+msgid "Help"
+msgstr "Aiuto"
+
+#. MENU_FILTERS
+#, fuzzy
+msgid "Filters"
+msgstr "File"
+
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "Informazioni su XSane"
+
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr "Info"
+
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "Esci"
+
+#. MENU_ITEM_SAVE_IMAGE
+#, fuzzy
+msgid "Save image"
+msgstr "Immagine Raw"
+
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "Chiudi"
+
+#. MENU_ITEM_CLONE
+#, fuzzy
+msgid "Clone"
+msgstr "Chiudi"
+
+#. MENU_ITEM_SCALE
+#, fuzzy
+msgid "Scale"
+msgstr "Scanner"
+
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr ""
+
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr ""
+
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr "Immagine Raw"
+
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr "Immagine accentuata"
+
+#. BUTTON_START
+msgid "Start"
+msgstr "Avvio"
+
+#. BUTTON_OK
+msgid "Ok"
+msgstr "Ok"
+
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr ""
+
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr ""
+
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr "Applica"
+
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr "Annulla"
+
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr ""
+
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "Continua a tuo rischio"
+
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "Naviga"
+
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr "Sovra scrivi"
+
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr "Aggiungi area"
+
+#. BUTTON_PAGE_DELETE
+#, fuzzy
+msgid "Delete page"
+msgstr "Cancella progetto"
+
+#. BUTTON_PAGE_SHOW
+#, fuzzy
+msgid "Show page"
+msgstr "Visualizza anteprima"
+
+#. BUTTON_PAGE_RENAME
+#, fuzzy
+msgid "Rename page"
+msgstr "rinomina pagina fax"
+
+#. BUTTON_IMAGE_DELETE
+#, fuzzy
+msgid "Delete image"
+msgstr "Cancella progetto"
+
+#. BUTTON_IMAGE_SHOW
+#, fuzzy
+msgid "Show image"
+msgstr "Visualizza anteprima"
+
+#. BUTTON_IMAGE_RENAME
+#, fuzzy
+msgid "Rename image"
+msgstr "rinomina pagina fax"
+
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr ""
+
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr "Crea progetto"
+
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr "Invia progetto"
+
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr "Cancella progetto"
+
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr "Aggiungi stampante"
+
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr "Cancella stampante"
+
+#. BUTTON_PREVIEW_ACQUIRE
+#, fuzzy
+msgid "Acquire preview"
+msgstr "Acquisisci anterpima"
+
+#. BUTTON_PREVIEW_CANCEL
+#, fuzzy
+msgid "Cancel preview"
+msgstr "Annulla anteprima"
+
+#. BUTTON_DISCARD_IMAGE
+#, fuzzy
+msgid "Discard image"
+msgstr "Cancella progetto"
+
+#. BUTTON_DISCARD_ALL_IMAGES
+#, fuzzy
+msgid "Discard all images"
+msgstr "Cancella progetto"
+
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr ""
+
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr ""
+
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr "Modo fine"
+
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr ""
+
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr ""
+
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr "Attenzione sovrascrittura"
+
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+#, fuzzy
+msgid "Skip existing filenames"
+msgstr "Salta numeri esistenti"
+
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr ""
+
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr "Grandezza finestra principale fissa"
+
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "Disabilita l'anteprima gamma di GIMP"
+
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr "Usa mappa colori privata"
+
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "Gamma auto accentuo"
+
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+#, fuzzy
+msgid "Preselect scanarea"
+msgstr "Usa tutta l'area di scan"
+
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr ""
+
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr ""
+
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "ricerca dei dispositivi"
+
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr "Dispositivi disponibili:"
+
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr "Opzioni XSane"
+
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr "Modo XSane"
+
+#. TEXT_FILENAME_COUNTER_STEP
+#, fuzzy
+msgid "Step"
+msgstr "Imposta"
+
+#. TEXT_FILETYPE
+#, fuzzy
+msgid "Type"
+msgstr "Tipo:"
+
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr "Scanner e backend:"
+
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr "Marca:"
+
+#. TEXT_MODEL
+msgid "Model:"
+msgstr "Modello:"
+
+#. TEXT_TYPE
+msgid "Type:"
+msgstr "Tipo:"
+
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr "Dispositivo:"
+
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr "Backend caricato:"
+
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr "Versione Sane:"
+
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr "Valori recenti:"
+
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr "Gamma correction di:"
+
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr "scanner"
+
+#. TEXT_SOFTWARE_XSANE
+#, fuzzy
+msgid "software (XSane)"
+msgstr "software (xsane)"
+
+#. TEXT_NONE
+msgid "none"
+msgstr "nessuno"
+
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr "Profonditŕ gamma input:"
+
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr "Profonditŕ gamma output:"
+
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr "Profonditŕ output scanner:"
+
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr "Formato output XSane"
+
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr "Formati output 8 bit:"
+
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr "Formati output 16 bit:"
+
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr "Autorizzazione richiesta per"
+
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr ""
+
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr ""
+
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr "Utente :"
+
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr "Password :"
+
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr "Parametri invalidi."
+
+#. TEXT_VERSION
+msgid "version:"
+msgstr "versione:"
+
+#. TEXT_PACKAGE
+msgid "package"
+msgstr "pacchetto"
+
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr "con supporto GIMP"
+
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr "senza supporto GIMP"
+
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "compilato con GTK-"
+
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr "compilato con GIMP-"
+
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr "sconosciuto"
+
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr "Email:"
+
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr ""
+
+#. TEXT_FILE
+msgid "File:"
+msgstr "File:"
+
+#. TEXT_TRANSLATION
+#, fuzzy
+msgid "Translation:"
+msgstr "Opzione soglia:"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr "0x0: 0KB"
+
+#. TEXT_ADF_PAGES_SCANNED
+#, fuzzy
+msgid "Scanned pages: "
+msgstr "Pagine scannerizzate:"
+
+#. TEXT_MAIL_TEXT
+#, fuzzy
+msgid "Email text:"
+msgstr "Email:"
+
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr ""
+
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr ""
+
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr ""
+
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+
+#. TEXT_X_SCALE_FACTOR
+#, fuzzy
+msgid "X-Scale factor:"
+msgstr "Impostare il fattore di zoom"
+
+#. TEXT_Y_SCALE_FACTOR
+#, fuzzy
+msgid "Y-Scale factor:"
+msgstr "Impostare il fattore di zoom"
+
+#. TEXT_DESPECKLE_RADIUS
+#, fuzzy
+msgid "Despeckle radius:"
+msgstr "Cancella progetto"
+
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr "Selezione stampante:"
+
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr "Nome:"
+
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr "Comando:"
+
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr "Opzione numero copia:"
+
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "Risoluzione Lineart(dpi):"
+
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "Risoluzione Scala di grigi(dpi):"
+
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "Risoluzione Colore(dpi):"
+
+#. TEXT_SETUP_PRINTER_WIDTH
+#, fuzzy
+msgid "Width"
+msgstr "Larghezza [mm]:"
+
+#. TEXT_SETUP_PRINTER_HEIGHT
+#, fuzzy
+msgid "Height"
+msgstr "Altezza [mm]:"
+
+#. TEXT_SETUP_PRINTER_LEFT
+#, fuzzy
+msgid "Left offset"
+msgstr "Margine sinistro [mm]:"
+
+#. TEXT_SETUP_PRINTER_BOTTOM
+#, fuzzy
+msgid "Bottom offset"
+msgstr "Margine inferiore [mm]:"
+
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr "Valore gamma stampante:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr "Gamma rosso stampante:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr "Gamma verde stampante:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr "Gamma blu stampante:"
+
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "Directory temporanea"
+
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "Permessi file-immagine"
+
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "Permessi directory"
+
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr "Qualitŕ immagine JPEG"
+
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr "Compressione immagine PNG"
+
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+#, fuzzy
+msgid "Filename counter length"
+msgstr "Contatore dei nome file troppo grande"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "Compressione immagine TIFF a 16 bit"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "Compressione immagine TIFF a 8 bit"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr "Compressione immagine TIFF lineart"
+
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "Anteprima oversampling:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr "Gamma anteprima:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr "Gamma rosso anteprima:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr "Gamma verde anteprima:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr "Gamma blue anteprima:"
+
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "Opzione soglia:"
+
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr ""
+
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+#, fuzzy
+msgid "Preview pipette range"
+msgstr "Anteprima oversampling:"
+
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "Soglia minima:"
+
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "Soglia massima:"
+
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "Moltiplicatore soglia:"
+
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "Margine soglia:"
+
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "Nome scanmode scala di grigi"
+
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "Visualizzatore file di help (HTML):"
+
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr "Opzione ricevente:"
+
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr "Opzione file postscript:"
+
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr "Opzione modo normale:"
+
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr "Opzioni modo fine:"
+
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr "Visualizzatore (Postscript):"
+
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr ""
+
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr ""
+
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr ""
+
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_PASS
+#, fuzzy
+msgid "POP3 password:"
+msgstr "Password :"
+
+#. TEXT_SETUP_MAIL_VIEWER
+#, fuzzy
+msgid "Viewer (png):"
+msgstr "Visualizzatore (Postscript):"
+
+#. TEXT_SETUP_OCR_COMMAND
+#, fuzzy
+msgid "OCR Command:"
+msgstr "Comando:"
+
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+#, fuzzy
+msgid "Inputfile option:"
+msgstr "Opzione file postscript:"
+
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+#, fuzzy
+msgid "Outputfile option:"
+msgstr "Opzione file postscript:"
+
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr ""
+
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr ""
+
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr ""
+
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr ""
+
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr ""
+
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "Copia"
+
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr "Fax"
+
+#. NOTEBOOK_MAIL_OPTIONS
+#, fuzzy
+msgid "Mail"
+msgstr "Email:"
+
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr ""
+
+#. NOTEBOOK_DISPLAY_OPTIONS
+#, fuzzy
+msgid "Display"
+msgstr "Opzioni display"
+
+#. NOTEBOOK_ENHANCE_OPTIONS
+#, fuzzy
+msgid "Enhancement"
+msgstr "Opzioni di accentuo"
+
+#. MENU_ITEM_MAIL
+#, fuzzy
+msgid "Email"
+msgstr "Email:"
+
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr "Visualizza suggerimenti"
+
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr "Visualizza anteprima"
+
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr "Visulizza istogramma"
+
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "Visualizza curva gamma"
+
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr "Visualizza opzioni standard"
+
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr "Visualizza opzioni avanzate"
+
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr "Imposta"
+
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr "Unitŕ lunghezza"
+
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr "millimetri"
+
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr "centimetri"
+
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr "pollici"
+
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "Aggiorna politica"
+
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "continuo"
+
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "discontinuo"
+
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "ritardato"
+
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "Visualizza lista risoluzioni"
+
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "Ruota postscript"
+
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr "Salva settaggi dispositivo"
+
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr "Carica settaggi dispositivo"
+
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "Cambia directory"
+
+#. MENU_ITEM_XSANE_LICENSE
+#, fuzzy
+msgid "License"
+msgstr "pollici"
+
+#. MENU_ITEM_XSANE_DOC
+#, fuzzy
+msgid "XSane doc"
+msgstr "Documentazione Xsane"
+
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr "Documentazione Backendc"
+
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr "Backend disponibili"
+
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr "Scantips"
+
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr "Problemi?"
+
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr ""
+
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr "nessuna compressione"
+
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr "Compressione CCITT 1D Huffman"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr "Compressione CCITT Group 3 Fax"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr "Compressione CCITT Group 4 Fax"
+
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr "Compressione JPEG DCT"
+
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr "compressione bit"
+
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "Finestra opzioni standard (lineart)"
+
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "Xsane finestra principale (lineart)"
+
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "Xsane finestra principale (scala di grigi->lineart)"
+
+#. MENU_ITEM_SELECTION_NONE
+#, fuzzy
+msgid "(none)"
+msgstr "nessuno"
+
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "per est"
+
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr ""
+
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr ""
+
+#. MENU_ITEM_PRESET_AREA_DELETE
+#, fuzzy
+msgid "Delete definition"
+msgstr "Selezionare la definizione da cambiare"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr ""
+
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr ""
+
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "Acquisizione"
+
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "Ricezione %s dati"
+
+#. PROGRESS_TRANSFERING_DATA
+#, fuzzy
+msgid "Transfering image"
+msgstr "Salvataggio immagine"
+
+#. PROGRESS_ROTATING_DATA
+#, fuzzy
+msgid "Rotating image"
+msgstr "Salvataggio immagine"
+
+#. PROGRESS_MIRRORING_DATA
+#, fuzzy
+msgid "Mirroring image"
+msgstr "Salvataggio immagine"
+
+#. PROGRESS_PACKING_DATA
+#, fuzzy
+msgid "Packing image"
+msgstr "Salvataggio immagine"
+
+#. PROGRESS_CONVERTING_DATA
+#, fuzzy
+msgid "Converting image"
+msgstr "Conversione dati"
+
+#. PROGRESS_SAVING_DATA
+#, fuzzy
+msgid "Saving image"
+msgstr "Immagine Raw"
+
+#. PROGRESS_CLONING_DATA
+#, fuzzy
+msgid "Cloning image"
+msgstr "Salvataggio immagine"
+
+#. PROGRESS_SCALING_DATA
+#, fuzzy
+msgid "Scaling image"
+msgstr "Immagine Raw"
+
+#. PROGRESS_DESPECKLING_DATA
+#, fuzzy
+msgid "Despeckling image"
+msgstr "Cancella progetto"
+
+#. PROGRESS_BLURING_DATA
+#, fuzzy
+msgid "Bluring image"
+msgstr "Cancella progetto"
+
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr ""
+
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr ""
+
+#. DESC_PREVIEW_ACQUIRE
+#, fuzzy
+msgid "Acquire preview scan <Alt-p>"
+msgstr "Acquisisci anterpima"
+
+#. DESC_PREVIEW_CANCEL
+#, fuzzy
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "Annulla anteprima"
+
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr ""
+
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr ""
+
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr "Navia per nome file immagine"
+
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr "Nome file per immagine acquisita"
+
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr ""
+
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr "Inserire il nome del progetto fax"
+
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr "Inserire il nuovo nome per la pagina del fax"
+
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr "Inserire il numero telefonico o l'indirizzo del ricevente"
+
+#. DESC_MAILPROJECT
+#, fuzzy
+msgid "Enter name of mail project"
+msgstr "Inserire il nome del progetto fax"
+
+#. DESC_MAILIMAGENAME
+#, fuzzy
+msgid "Enter new name for mail image"
+msgstr "Inserire il nuovo nome per la pagina del fax"
+
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr ""
+
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr ""
+
+#. DESC_PRESET_AREA_NAME
+#, fuzzy
+msgid "Enter new name for preset area"
+msgstr "Inserire il nuovo nome per la pagina del fax"
+
+#. DESC_PRINTER_SELECT
+#, fuzzy
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "Selezionare la definizione della stampante"
+
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr "Impostare la risoluzione dello scanner"
+
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "Impostare la risoluzione per la coordinata X"
+
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "Impostare la risoluzione per la coordinata Y"
+
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr "Impostare il fattore di zoom"
+
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "Impostare il fattore di zoom per X"
+
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "Impostare il fattore di zoom per Y"
+
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr "Impostare il numero di copie"
+
+#. DESC_NEGATIVE
+#, fuzzy
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr ""
+"Negativo: Inverte i colori per i negativi\n"
+"es. scambia bianco e nero"
+
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr "Imposta valore gamma"
+
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr "Imposta valore gamma per la componente rossa"
+
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr "Imposta valore gamma per la componente verde"
+
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr "Imposta valore gamma per la componente blu"
+
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr "Imposta brillantezza"
+
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr "Imposta brillantezza per la componente rossa"
+
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr "Imposta brillantezza per la componente verde"
+
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr "Imposta brillantezza per la componente blu"
+
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr "Imposta il contrasto"
+
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr "Imposta il contrasto per la componente rossa"
+
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr "Imposta il contrasto per la componente verde"
+
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr "Imposta il contrasto per la componente blu"
+
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "Imposta soglia"
+
+#. DESC_RGB_DEFAULT
+#, fuzzy
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"Default RGB: Imposta accentuo valori di rosso, verde e blu ai valori \n"
+"di default:\n"
+" gamma = 1.0\n"
+" brillantezza = 0\n"
+" contrasto = 0"
+
+#. DESC_ENH_AUTO
+#, fuzzy
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr ""
+"Autocalibro gamma, brillantezza e contrasto dipendente dall'area selezionata"
+
+#. DESC_ENH_DEFAULT
+#, fuzzy
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"Imposta valori di accentuo automatico:\n"
+"gamma = 1.0\n"
+"brillantezza = 0\n"
+"contrasto = 0"
+
+#. DESC_ENH_RESTORE
+#, fuzzy
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "Ripristina valori di accentuo dalle preferenze"
+
+#. DESC_ENH_STORE
+#, fuzzy
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr "Salva i valori d'accentuo attivo nelle preferenze"
+
+#. DESC_HIST_INTENSITY
+#, fuzzy
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "Visualizza istogramma di intensitŕ/grigio"
+
+#. DESC_HIST_RED
+#, fuzzy
+msgid "Show histogram of red component <Alt-r>"
+msgstr "Visualizza istogramma per la componente rossa"
+
+#. DESC_HIST_GREEN
+#, fuzzy
+msgid "Show histogram of green component <Alt-g>"
+msgstr "Visualizza istogramma per la componente verde"
+
+#. DESC_HIST_BLUE
+#, fuzzy
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "Visualizza istogramma per la componente blu"
+
+#. DESC_HIST_PIXEL
+#, fuzzy
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr "Visualizza istogramma con linee invece di pixel"
+
+#. DESC_HIST_LOG
+#, fuzzy
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "Visualizza algoritmo di conteggio pixel"
+
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr "Selezionare la definizione da cambiare"
+
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr "Definire un nome per la selezione di questa definizione"
+
+#. DESC_PRINTER_COMMAND
+#, fuzzy
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr "Inserire il comando da eseguire nel modo 'copia' (es. \"lpr -\")"
+
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr "Inserire l'opzione per il numero di copie"
+
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr ""
+"Risoluzione con la quale le immagini vengono stampate e salvate in postscript"
+
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr ""
+"Risoluzione con la quale le immagini in scala di grigi vengono stampate e "
+"salvate in postscript"
+
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr ""
+"Risoluzione con la quale le immagini a colori vengono stampate e salvate in "
+"postscript"
+
+#. DESC_PRINTER_WIDTH
+#, fuzzy
+msgid "Width of printable area"
+msgstr "Larghezza dell'area di stampa in mm"
+
+#. DESC_PRINTER_HEIGHT
+#, fuzzy
+msgid "Height of printable area"
+msgstr "Altezza dell'area di stampa in mm"
+
+#. DESC_PRINTER_LEFTOFFSET
+#, fuzzy
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr "Margine sinistro dalla testa della pagina all'area di stampa in mm"
+
+#. DESC_PRINTER_BOTTOMOFFSET
+#, fuzzy
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "Margine inferiore dalla testa della pagina all'area di stampa in mm"
+
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr "Valore gamma addizionale per fotocopia"
+
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr "Valore gamma addizionale della componente rossa per fotocopia"
+
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr "Valore gamma addizionale della componente verde per fotocopia"
+
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr "Valore gamma addizionale della componente blu per fotocopia"
+
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "Percorso directory temp"
+
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "Naviga directory temporanea"
+
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr ""
+"Qualitŕ in percentuale se l'immagine č salvata come jpeg o tiff con "
+"compressione jpeg"
+
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr "Compressione se l'immagine viene salvata come png"
+
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr ""
+
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "Tipo di compressione se l'immagine a 16 bit viene salvata come tiff"
+
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "Tipo di compressione se l'immagine a 8 bit viene salvata come tiff"
+
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "Tipo compressione se l'immagine lineart viene salvata come tiff"
+
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr ""
+
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "Segnale prima di sovrascrivere un file esistente"
+
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr ""
+"Il contatore nomefile viene automaticamente incrementato, i numeri usati "
+"vengono saltati"
+
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr ""
+
+#. DESC_PSFILE_WIDTH
+#, fuzzy
+msgid "Width of paper for postscript files"
+msgstr "Larghezza della carta in mm per i file postscript"
+
+#. DESC_PSFILE_HEIGHT
+#, fuzzy
+msgid "Height of paper for postscript files"
+msgstr "Altezza della carta in mm per i file postscript"
+
+#. DESC_PSFILE_LEFTOFFSET
+#, fuzzy
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Margine sinistro dalla testa della carta all'area utilizzabile in mm per\n"
+"i file postscript"
+
+#. DESC_PSFILE_BOTTOMOFFSET
+#, fuzzy
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Margine inferiore dalla testa della carta all'area utilizzabile in mm per i "
+"file postscript"
+
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr ""
+"Utilizza una grandezza della finestra principale fissa, o scrollabile "
+"ridimensionabile"
+
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+#, fuzzy
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr "Disabilita l'anteprima gamma quando xsane gira come un plugin di gimp"
+
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr ""
+"Usa una propria mappa dei colori per l'anteprima se la profonditŕ del siplay "
+"č 8 bpp"
+
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr ""
+"Valore per il quale viene moltiplicata la risoluzione calcolata per "
+"l'anteprima"
+
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr "Imposta il valore gamma correction per l'immagine di anteprima"
+
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr ""
+"Imposta il valore gamma correction della componente rossa per l'immagine di "
+"anteprima"
+
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr ""
+"Imposta il valore gamma correction della componente verde per l'immagine di "
+"anteprima"
+
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr ""
+"Imposta il valore gamma correction della componente blu per l'immagine di "
+"anteprima"
+
+#. DESC_LINEART_MODE
+#, fuzzy
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "Definisce il modo in cui xsane deve gestire l'opzione soglia"
+
+#. DESC_GRAYSCALE_SCANMODE
+#, fuzzy
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr ""
+"Inserire il nome del modo scaladigrigi - per la trasformazione "
+"dell'anteprima da scala di grigi a lineart"
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "La soglia di livello minima dello scanner in %"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "La soglia di livello massima dello scanner in %"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+#, fuzzy
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Moltiplicatore per eguagliare il range di soglia di xsabe con quello dello "
+"scanner"
+
+#. DESC_PREVIEW_THRESHOLD_OFF
+#, fuzzy
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr "Scarto per eguagliare il range di soglia dello scanner e di xsane"
+
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr ""
+
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr ""
+"Inserire il comando per visualizzare i file di help, dev'essere un "
+"visualizzatore di HTML"
+
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr ""
+"Cambia il valore gamma quando viene premusto il bottone dell'auto accentuo "
+
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr ""
+
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr ""
+
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr "Inderire il comando da eseguire nel modo fax"
+
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr "Inserire l'opzione per il ricevente specifico"
+
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr "Inserire l'opzione da specificare per i seguenti file postscript"
+
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr "Inserire l'opzione per specificare il modo normale (bassa risoluzione)"
+
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr "Inserire l'opzione per specificare il modo fine (alta risoluzione)"
+
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr "Inserire il comando da eseguire per visualizzare un fax"
+
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr "Utilizza un'alta risoluzione verticale (196 lpi invece di 98 lpi)"
+
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr ""
+
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr ""
+
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr ""
+
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr ""
+
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr ""
+
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr ""
+
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr ""
+
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr ""
+
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr ""
+
+#. DESC_MAIL_VIEWER
+#, fuzzy
+msgid "Enter command to be executed to view a mail image"
+msgstr "Inserire il comando da eseguire per visualizzare un fax"
+
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr ""
+
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr ""
+
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr ""
+
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr ""
+
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr ""
+
+#. DESC_PERMISSION_WRITE
+#, fuzzy
+msgid "write"
+msgstr "Sovra scrivi"
+
+#. DESC_PERMISSION_EXECUTE
+#, fuzzy
+msgid "execute"
+msgstr "Cancella"
+
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr "Prende un punto bianco"
+
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr "Prende un punto grigio"
+
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr "Prende un punto nero"
+
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr "Usa tutta l'area di scan"
+
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr "Zoom -20%"
+
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr "Ingrandisce nell'area selezionata"
+
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr "Annulla l'ultimo ingrandimento"
+
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr "Seleziona l'area visibile"
+
+#. DESC_AUTOSELECT_SCANAREA
+#, fuzzy
+msgid "Autoselect scanarea"
+msgstr "Usa tutta l'area di scan"
+
+#. DESC_DELETE_IMAGES
+#, fuzzy
+msgid "Delete preview image cache"
+msgstr "Preserva immagine anteprima"
+
+#. DESC_PRESET_AREA
+#, fuzzy
+msgid "Preset area"
+msgstr "Usa tutta l'area di scan"
+
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr ""
+
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr ""
+
+#. DESC_VIEWER_CLONE
+#, fuzzy
+msgid "Clone image"
+msgstr "Cancella progetto"
+
+#. DESC_VIEWER_ROTATE90
+#, fuzzy
+msgid "Rotate image 90 degree"
+msgstr "Salvataggio immagine"
+
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr ""
+
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr ""
+
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr ""
+
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr ""
+
+#. DESC_VIEWER_ZOOM
+#, fuzzy
+msgid "Zoom image"
+msgstr "Visualizza anteprima"
+
+#. DESC_STORE_MEDIUM
+#, fuzzy
+msgid "Store medium"
+msgstr "Selezionare la definizione da cambiare"
+
+#. DESC_DELETE_MEDIUM
+#, fuzzy
+msgid "Delete active medium"
+msgstr "Selezionare la definizione da cambiare"
+
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
+msgstr "Impossibile determinare la home directory:"
+
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "Impossibile cambiare la directory di lavoro a"
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
+msgstr "Nome file troppo lungo"
+
+#. ERR_CREATE_TEMP_FILE
+#, fuzzy
+msgid "Could not create temporary file"
+msgstr "Crea progetto"
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
+msgstr "Impossibile impostare il valore dell'opzione"
+
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
+msgstr "Impossibile ottenere il valore dell'opzione"
+
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
+msgstr "Errore nell'ottenere l'opzione conto"
+
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
+msgstr "Impossibile aprire il dispositivo"
+
+#. ERR_NO_DEVICES
+msgid "no devices available"
+msgstr "nessun dispositivo disponibile"
+
+#. ERR_DURING_READ
+msgid "Error during read:"
+msgstr "Errore durante la lettura:"
+
+#. ERR_DURING_SAVE
+msgid "Error during save:"
+msgstr "Errore durante il salvataggio:"
+
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
+msgstr "Impossibile gestire la profonditŕ"
+
+#. ERR_GIMP_BAD_DEPTH
+#, fuzzy, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP non puň gestire la profonditŕ"
+
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
+msgstr "Formato di file per il salvataggio sconosciuto"
+
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
+msgstr "Errore di apertura"
+
+#. ERR_CREATE_SECURE_FILE
+msgid "Could not create secure file (may be a link does exist):"
+msgstr ""
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
+msgstr "Impossibile aprire la pipe per eseguire il comando di stampa"
+
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
+msgstr "Impossibile eseguire il comando di stampa"
+
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
+msgstr "Impossibile far partire lo scanner:"
+
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
+msgstr "Impossibile ottenere i parametri:"
+
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
+msgstr "Nessun formato di output "
+
+#. ERR_NO_MEM
+msgid "out of memory"
+msgstr "memoria esaurita"
+
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr ""
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
+msgstr "LIBTIFF ha riportato un errore"
+
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
+msgstr "LIBPNG ha riportato un errore"
+
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
+msgstr "tipo sconosciuto"
+
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
+msgstr "tipo costante sconosciuto"
+
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
+msgstr "Impossibile eseguire il visualizzatore della documentazione:"
+
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
+msgstr "Impossibile eseguire il visualizzatore di fax:"
+
+#. ERR_FAILED_EXEC_FAX_CMD
+#, fuzzy
+msgid "Failed to execute fax command:"
+msgstr "Errore nell'esecuzione del comando fax:"
+
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+#, fuzzy
+msgid "Failed to execute mail image viewer:"
+msgstr "Impossibile eseguire il visualizzatore di fax:"
+
+#. ERR_FAILED_EXEC_OCR_CMD
+#, fuzzy
+msgid "Failed to execute ocr command:"
+msgstr "Errore nell'esecuzione del comando fax:"
+
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
+msgstr "formato frame sbagliato"
+
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
+msgstr "impossibile definire la risoluzione"
+
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr ""
+
+#. ERR_ERROR
+msgid "error"
+msgstr "errore"
+
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
+msgstr "Errore versione maggiore sane!"
+
+#. ERR_XSANE_MAJOR_VERSION
+#, fuzzy
+msgid "XSane major version ="
+msgstr "Versione maggiore xsane ="
+
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
+msgstr "Versione maggiore backend ="
+
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
+msgstr "*** PROGRAMMA ABORTITO ***"
+
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
+msgstr "Impossibile allocare la memoria per l'immagine:"
+
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr "L'anteprima non puň gestire il bit profonditŕ"
+
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
+msgstr "Manca il supporto per GIMP"
+
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr ""
+
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr ""
+
+#. ERR_CREATE_FAX_PROJECT
+#, fuzzy
+msgid "Could not create faxproject"
+msgstr "Crea progetto"
+
+#. WARN_COUNTER_UNDERRUN
+#, fuzzy
+msgid "Filename counter underrun"
+msgstr "Contatore dei nome file troppo grande"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr "attenzione: l'opzione non ha valori costanti"
+
+#. WARN_XSANE_AS_ROOT
+#, fuzzy
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+"Si sta tentando di utilizzare xsane come ROOT, č PERICOLOSO!\n"
+"\n"
+"Non inviare messaggi di errore quando\n"
+"si hanno problemi utilizzando xsane come root:\n"
+"SEI STATO AVVISATO!"
+
+#. ERR_HEADER_ERROR
+msgid "Error"
+msgstr "Errore"
+
+#. ERR_HEADER_WARNING
+msgid "Warning"
+msgstr "Attenzione"
+
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "Informazione"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
+msgstr "Impossibile creare il file:"
+
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
+msgstr "Errore caricando i settaggi del device:"
+
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
+msgstr "non č un file device-rc"
+
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
+msgstr "Esecuzione di netscape fallita!"
+
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
+msgstr "Invio fax: nessun ricevente definito"
+
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
+msgstr "č stato creato per dispositivo"
+
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
+msgstr "si vuole utilizzare questo come dispositivo"
+
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
+msgstr "questo potrebbe causare problemi!"
+
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr ""
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "File %s giŕ esistente"
+
+#. ERR_FILE_NOT_EXISTS
+#, fuzzy, c-format
+msgid "File %s does not exist"
+msgstr "File %s giŕ esistente"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, fuzzy, c-format
+msgid "File %s is not a postscript file"
+msgstr "Larghezza della carta in mm per i file postscript"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "Non supportato il formato %d-bit output: %s"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr ""
+
+#. TEXT_USAGE
+msgid "Usage:"
+msgstr "Utilizzo:"
+
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr "[OPZIONE]...[DISPOSITIVO]"
+
+#. TEXT_HELP
+#, fuzzy
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
+msgstr ""
+"Lancia l'interfaccia grafica per accedere ai dispositivi SANE (Scanner "
+"Access Now Easy) \n"
+"\n"
+"La forma di [DISPOSITIVO] č nomebackend:filedispositivo (es. "
+"umax:/dev/scanner).\n"
+"[OPZIONE]... puň essere una combinazione delle seguenti:\n"
+"-h, --help visualizza questo messaggio di help\n"
+"-v, --version stampa le informazioni sulla versione\n"
+"\n"
+"-d, --device-settings file carica i settaggi del dispositivo (senza "
+"\\\".drc\\\")\n"
+"\n"
+"-s, --scan parte con lo modo-scan attivo\n"
+"-c, --copy parte con il modo-copia attivo\n"
+"-f, --fax parte con il modo fax\n"
+"-n, --no-mode-selection disabilita il menu per la selezione del modo\n"
+"\n"
+"-F, --Fixed grandezza finestra principale fissa (ignora le "
+"preferenze)\n"
+"-R, --Resizeable finestra ridimensionabile, con le scrollbar "
+"(ignora le preferenze)\n"
+"\n"
+"--display X11-display redireziona l'output sul display X11\n"
+"--no-xshm non usa immagini di memoria condivisa\n"
+"--sync richiedi una connessione sincrona con il server "
+"X11"
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
+msgstr "Front-end all'interfaccia di SANE"
+
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+"Questa funzione permette l'accesso a scanner o altri dispositivi\n"
+"di acquisizione immagine che SANE (Scanner Access Now Easy) interfaccia."
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr "<Toolbox>/File/Acquisisci/Xsane: finestra dispositivo..."
+
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
+msgstr "<Toolbox>/File/Acquisisci/Xsane: "
+
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr "<Toolbox>/Xtns/Xsane/Finestra dispositivo..."
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
+msgstr "<Toolbox>/Xtns/XSane/"
+
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_letter_P
+#, fuzzy
+msgid "letter port."
+msgstr "Cancella progetto"
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+#, fuzzy
+msgid "Standard negative"
+msgstr "Opzioni standard"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+msgid "Fuji negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+msgid "Konica negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+msgid "Konica negative VX 100"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr ""
+
+#. Sane backend messages
+msgid "flatbed scanner"
+msgstr "flatbed scanner"
+
+msgid "frame grabber"
+msgstr "frame grabber"
+
+msgid "handheld scanner"
+msgstr "handheld scanner"
+
+msgid "still camera"
+msgstr "still camera"
+
+msgid "video camera"
+msgstr "video camera"
+
+msgid "virtual device"
+msgstr "dispositivo virtuale"
+
+msgid "Success"
+msgstr "Successo"
+
+msgid "Operation not supported"
+msgstr "Operazione non supportata"
+
+msgid "Operation was cancelled"
+msgstr "Operazione interrotta"
+
+msgid "Device busy"
+msgstr "Dispositivo occupato"
+
+msgid "Invalid argument"
+msgstr "Argomento invalido"
+
+msgid "End of file reached"
+msgstr "Raggiunta la fine del file"
+
+msgid "Document feeder jammed"
+msgstr "Alimentatore fogli bloccato"
+
+msgid "Document feeder out of documents"
+msgstr "Alimentatore fogli con fogli esauriti"
+
+msgid "Scanner cover is open"
+msgstr "Il coperchio dello scanner č aperto"
+
+msgid "Error during device I/O"
+msgstr "Errore durante l'I/O sul dispositivo"
+
+msgid "Out of memory"
+msgstr "Memoria esaurita"
+
+msgid "Access to resource has been denied"
+msgstr "Acesso alla risorsa negato"
+
+#, fuzzy
+#~ msgid "Store Medium definition"
+#~ msgstr "Selezionare la definizione da cambiare"
+
+#, fuzzy
+#~ msgid ""
+#~ "Use XSane for: SCANning-<Ctrl-s> photoCOPYing-<Ctrl-c> FAXing-<Ctrl-f>"
+#~ msgstr "Usare XSane per acquisizioni, fotocopie , fax..."
+
+#, fuzzy
+#~ msgid "Width of paper for postscript"
+#~ msgstr "Larghezza della carta per postscript [mm]:"
+
+#, fuzzy
+#~ msgid "Height of paper for postscript"
+#~ msgstr "Altezza della carta per postscript [mm]:"
+
+#, fuzzy
+#~ msgid "Left offset for postscript"
+#~ msgstr "Margine sinistro per postscript [mm]:"
+
+#, fuzzy
+#~ msgid "Bottom offset for postscript"
+#~ msgstr "Margine inferiore per postscript [mm]:"
+
+#, fuzzy
+#~ msgid "Failed to execute mail command:"
+#~ msgstr "Errore nell'esecuzione del comando fax:"
+
+#~ msgid "Copy options"
+#~ msgstr "Copia opzioni"
+
+#~ msgid "Saving options"
+#~ msgstr "Salva opzioni"
+
+#, fuzzy
+#~ msgid "Image options"
+#~ msgstr "Opzioni XSane"
+
+#~ msgid "Fax options"
+#~ msgstr "Opzioni Fax"
+
+#, fuzzy
+#~ msgid "Reduce scan area"
+#~ msgstr "Usa tutta l'area di scan"
+
+#~ msgid ""
+#~ "This program is distributed under the terms\n"
+#~ "of the GNU General Public License\n"
+#~ msgstr ""
+#~ "Questo programma viene distribuito sotto \n"
+#~ "la GNU General Public License (GPL)\n"
+
+#~ msgid "Delete"
+#~ msgstr "Cancella"
+
+#~ msgid "Show"
+#~ msgstr "Mostra"
+
+#~ msgid "Rename"
+#~ msgstr "Rinomina"
+
+#~ msgid "Increase filename counter"
+#~ msgstr "Incrementa contatore nome file"
+
+#~ msgid ""
+#~ "If the filename is of the form \"name-001.ext\" (where the number of digits "
+#~ "is free) the number is increased after a scan is finished"
+#~ msgstr ""
+#~ "Se il nome file č nella forma \"name-001.ext\" (dove il numero di cifre č\n"
+#~ "libero) il numero č incrementato dopo che l'aquisizione č terminata"
+
+#~ msgid "Filename extension and type of image format"
+#~ msgstr "Estensione file e tipo formato dell'immagine"
+
+#, fuzzy
+#~ msgid "Filename counter step"
+#~ msgstr "Contatore dei nome file troppo grande"
+
+#~ msgid "Exit"
+#~ msgstr "Esci"
+
+#~ msgid "Device options"
+#~ msgstr "Opzioni dispositivo"
+
+#~ msgid "Preserve preview image for next program start"
+#~ msgstr ""
+#~ "Preserva l'immagine di anteprima per il prossimo avvio del programma"
diff --git a/po/ja.gmo b/po/ja.gmo
new file mode 100644
index 0000000..a3a21dd
--- /dev/null
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 0000000..adb99e6
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,2329 @@
+# Japanese translation for XSane
+# Copyright (C) 2002
+# Kimizuka Tomokazu <sgtom@pluto.dti.ne.jp>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: XSANE 0.84\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2002-01-17 15:28+0900\n"
+"Last-Translator: Kimizuka Tomokazu <sgtom@pluto.dti.ne.jp>\n"
+"Language-Team: Japanese <Kdeveloper@kde.gr.jp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-JP\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr "¸Ŕ¸ěĽÇĽŁĽěĽŻĽČĽę"
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr ""
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "XSane¤Ë¤Ä¤¤¤Ć"
+
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "ËÝĚő¤Ë¤Ä¤¤¤Ć"
+
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "Ľ˘ĽŻĽťĽš¸˘¸Â"
+
+#. WINDOW_LICENSE
+msgid "license"
+msgstr "ĽéĽ¤ĽťĽóĽš"
+
+#. WINDOW_INFO
+msgid "info"
+msgstr "žđĘó"
+
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "ĽĐĽĂĽÁĽšĽ­ĽăĽó"
+
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "FAXĽ×ĽíĽ¸Ľ§ĽŻĽČ"
+
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "FAXĽÚĄźĽ¸¤ňĽęĽÍĄźĽŕ"
+
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr "PSĽŐĽĄĽ¤Ľë¤ňFAX¤ËÁŢĆţ"
+
+#. WINDOW_MAIL_PROJECT
+msgid "mail project"
+msgstr "ĽáĄźĽëĽ×ĽíĽ¸Ľ§ĽŻĽČ"
+
+#. WINDOW_MAIL_RENAME
+msgid "rename mail image"
+msgstr "ĽáĄźĽëĽ¤ĽáĄźĽ¸¤ňĽęĽÍĄźĽŕ"
+
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr "ĽŐĽĄĽ¤Ľë¤ňĽáĄźĽë¤ËÁŢĆţ"
+
+#. WINDOW_PRESET_AREA_RENAME
+msgid "rename preset area"
+msgstr "Ľ×ĽęĽťĽĂĽČÎΰč¤ňĽęĽÍĄźĽŕ"
+
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "ĽťĽĂĽČĽ˘ĽĂĽ×"
+
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "ĽŇĽšĽČĽ°ĽéĽŕ"
+
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "ĽŹĽóĽŢśĘŔţ"
+
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "ɸ˝ŕĽŞĽ×ĽˇĽçĽó"
+
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "žÜşŮĽŞĽ×ĽˇĽçĽó"
+
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "ĽÇĽĐĽ¤ĽšÁŞÂň"
+
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "Ľ×ĽěĽÓĽĺĄź"
+
+#. WINDOW_VIEWER
+msgid "Viewer"
+msgstr "ĽÓĽĺĄźĽď"
+
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+msgid "Viewer: select output filename"
+msgstr "ĽÓĽĺĄźĽďĄ§˝ĐÎĎĽŐĽĄĽ¤ĽëĚž¤ňÁŞÂň"
+
+#. WINDOW_OCR_OUTPUT_FILENAME
+msgid "Select output filename for OCR text file"
+msgstr "˝ĐÎĎOCRĽĆĽ­ĽšĽČĽŐĽĄĽ¤ĽëĚž¤ňÁŞÂň"
+
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "˝ĐÎĎĽŐĽĄĽ¤ĽëĚž¤ňÁŞÂň"
+
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "ĽÇĽĐĽ¤ĽšŔßÄę¤ňĘݸ"
+
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "ĽÇĽĐĽ¤ĽšŔßÄę¤ňĆÉšţ"
+
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "şîśČĽÇĽŁĽěĽŻĽČĽę¤ňĘŃšš"
+
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "°ěťţĽÇĽŁĽěĽŻĽČĽę¤ňÁŞÂň"
+
+#. WINDOW_SCALE
+msgid "Scale image"
+msgstr "˛čÁü¤ÎłČÂç˝ĚžŽ"
+
+#. WINDOW_DESPECKLE
+msgid "Despeckle image"
+msgstr "˛čÁü¤Î¤ˇ¤ßźč¤ę"
+
+#. WINDOW_BLUR
+msgid "Blur image"
+msgstr "˛čÁü¤ň¤Ë¤¸¤Ţ¤ť¤ë"
+
+#. WINDOW_STORE_MEDIUM
+msgid "Store medium definition"
+msgstr "ż¨ÇޤÎÄęľÁ¤ňĘݸ"
+
+#. MENU_FILE
+msgid "File"
+msgstr "ĽŐĽĄĽ¤Ľë"
+
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "ŔßÄę"
+
+#. MENU_VIEW
+msgid "View"
+msgstr "É˝ź¨"
+
+#. MENU_HELP
+msgid "Help"
+msgstr "ĽŘĽëĽ×"
+
+#. MENU_FILTERS
+msgid "Filters"
+msgstr "ĽŐĽŁĽëĽż"
+
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "XSane¤Ë¤Ä¤¤¤Ć"
+
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr "žđĘó"
+
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "˝ŞÎť"
+
+#. MENU_ITEM_SAVE_IMAGE
+msgid "Save image"
+msgstr "Ľ¤ĽáĄźĽ¸¤ňĘݸ"
+
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "ĘĤ¸¤ë"
+
+#. MENU_ITEM_CLONE
+msgid "Clone"
+msgstr "ĘŁŔ˝"
+
+#. MENU_ITEM_SCALE
+msgid "Scale"
+msgstr "ÇÜΨ"
+
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr "¤ˇ¤ßźč¤ę"
+
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr "¤Ë¤¸¤ß"
+
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr "RawĽ¤ĽáĄźĽ¸"
+
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr "łČÄĽĽ¤ĽáĄźĽ¸"
+
+#. BUTTON_START
+msgid "Start"
+msgstr "ĽšĽżĄźĽČ"
+
+#. BUTTON_OK
+msgid "Ok"
+msgstr "OK"
+
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr "¤Ď¤¤"
+
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr "¤¤¤¤¤¨"
+
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr "Îť˛ň"
+
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr "Ľ­ĽăĽóĽťĽë"
+
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr "˝ĚžŽ"
+
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "ËÜĹö¤ËÂł¤ą¤ë"
+
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "ĽÖĽéĽŚĽş"
+
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr "žĺ˝ń¤­"
+
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr "ÎΰčÄɲĂ"
+
+#. BUTTON_PAGE_DELETE
+msgid "Delete page"
+msgstr "ĽÚĄźĽ¸şď˝ü"
+
+#. BUTTON_PAGE_SHOW
+msgid "Show page"
+msgstr "ĽÚĄźĽ¸¤ňÉ˝ź¨"
+
+#. BUTTON_PAGE_RENAME
+msgid "Rename page"
+msgstr "ĽÚĄźĽ¸¤ňĽęĽÍĄźĽŕ"
+
+#. BUTTON_IMAGE_DELETE
+msgid "Delete image"
+msgstr "˛čÁü¤ňşď˝ü"
+
+#. BUTTON_IMAGE_SHOW
+msgid "Show image"
+msgstr "˛čÁü¤ňÉ˝ź¨"
+
+#. BUTTON_IMAGE_RENAME
+msgid "Rename image"
+msgstr "˛čÁü¤ňĽęĽÍĄźĽŕ"
+
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr "ĽŐĽĄĽ¤Ľë¤ňÁŢĆţ"
+
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr "Ľ×ĽíĽ¸Ľ§ĽŻĽČşîŔŽ"
+
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr "Ľ×ĽíĽ¸Ľ§ĽŻĽČ¤ňÁ÷¤ë"
+
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr "Ľ×ĽíĽ¸Ľ§ĽŻĽČşď˝ü"
+
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr "Ľ×ĽęĽóĽżÄɲĂ"
+
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr "Ľ×ĽęĽóĽżşď˝ü"
+
+#. BUTTON_PREVIEW_ACQUIRE
+msgid "Acquire preview"
+msgstr "Ľ×ĽěĽÓĽĺĄź¤ňźčĆŔ"
+
+#. BUTTON_PREVIEW_CANCEL
+msgid "Cancel preview"
+msgstr "Ľ×ĽěĽÓĽĺĄź¤ňĽ­ĽăĽóĽťĽë"
+
+#. BUTTON_DISCARD_IMAGE
+msgid "Discard image"
+msgstr "˛čÁü¤ňÇË´ţ"
+
+#. BUTTON_DISCARD_ALL_IMAGES
+msgid "Discard all images"
+msgstr "¤š¤Ů¤Ć¤Î˛čÁü¤ňÇË´ţ"
+
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr "ĘĤ¸¤Ę¤¤"
+
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr "ÇÜΨ¤ň¸ÇÄę"
+
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr "ĽŐĽĄĽ¤ĽóĽâĄźĽÉ"
+
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr "HTMLĽáĄźĽë"
+
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr "˝ŞÎťťţ¤ËĽÇĽĐĽ¤ĽšŔßÄę¤ňĘݸ"
+
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr "žĺ˝ń¤­¤ÎˇŮšđ"
+
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr "¸˝şß¤ÎĽŐĽĄĽ¤ĽëĚž¤ňĽšĽ­ĽĂĽ×"
+
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr "16ĽÓĽĂĽČ˛čÁü¤ň8ĽÓĽĂĽČ¤Ë¸şż§"
+
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr "ĽáĽ¤ĽóĽŚĽŁĽóĽÉĽŚ¤ÎĽľĽ¤Ľş¤ň¸ÇÄę"
+
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "GIMP¤ÎĽŹĽóĽŢĽ×ĽěĽÓĽĺĄź¤ňĚľ¸ú˛˝"
+
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr "Ľ×ĽéĽ¤ĽŮĄźĽČĽŤĽéĄźĽŢĽĂĽ×¤ňťČ¤Ś"
+
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "źŤĆ°śŻÄ´ĄĘĽŹĽóĽŢĄË"
+
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+msgid "Preselect scanarea"
+msgstr "ĽšĽ­ĽăĽóÎΰč¤ÎŔčšÔťŘÄę"
+
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr "ż§şĚ¤ÎźŤĆ°ĘäŔľ"
+
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr "POP3ǧžÚ"
+
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "ĽÇĽĐĽ¤Ľš¤ňĽšĽ­ĽăĽó¤ˇ¤Ć¤¤¤Ţ¤š"
+
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr "ĽÇĽĐĽ¤ĽšťČÍѲÄÇ˝Ą§"
+
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr "XSane¤ÎĽŞĽ×ĽˇĽçĽó"
+
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr "XSane¤ÎĽâĄźĽÉ"
+
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr "ĽšĽĆĽĂĽ×"
+
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr "ĽżĽ¤Ľ×"
+
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr "ĽšĽ­ĽăĽĘ¤ČĽĐĽĂĽŻĽ¨ĽóĽÉĄ§"
+
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr "ĽŮĽóĽŔĄ§"
+
+#. TEXT_MODEL
+msgid "Model:"
+msgstr "ľĄźďĄ§"
+
+#. TEXT_TYPE
+msgid "Type:"
+msgstr "ˇżĚžĄ§"
+
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr "ĽÇĽĐĽ¤ĽšĄ§"
+
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr "ĆÉšţ¤Ţ¤ě¤żĽĐĽĂĽŻĽ¨ĽóĽÉĄ§"
+
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr "Sane¤ÎĽĐĄźĽ¸ĽçĽóĄ§"
+
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr "şÇśá¤ÎĂÍĄ§"
+
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr "ĽŹĽóĽŢĽłĽěĽŻĽˇĽçĽóĄ§"
+
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr "ĽšĽ­ĽăĽĘ"
+
+#. TEXT_SOFTWARE_XSANE
+msgid "software (XSane)"
+msgstr "Ľ˝ĽŐĽČĽŚĽ§Ľ˘ĄĘXSaneĄË"
+
+#. TEXT_NONE
+msgid "none"
+msgstr "¤Ę¤ˇ"
+
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr "ĽŹĽóĽŢĆţÎĎżźĹŮĄ§"
+
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr "ĽŹĽóĽŢ˝ĐÎĎżźĹŮĄ§"
+
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr "ĽšĽ­ĽăĽĘ˝ĐÎĎżźĹŮĄ§"
+
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr "XSane˝ĐÎĎĽŐĽŠĄźĽŢĽĂĽČĄ§"
+
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr "8ĽÓĽĂĽČ˝ĐÎĎĽŐĽŠĄźĽŢĽĂĽČĄ§"
+
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr "16ĽÓĽĂĽČ˝ĐÎĎĽŐĽŠĄźĽŢĽĂĽČĄ§"
+
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"GIMP¤Ď16ĽÓĽĂĽČĽŤĽéĄź¤ňĽľĽÝĄźĽČ¤ˇ¤Ć¤¤¤Ţ¤ť¤óĄŁ\n"
+"8ĽÓĽĂĽČĽŤĽéĄź¤Ë¸şż§¤ˇ¤Ţ¤š¤Ť?"
+
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"¤ł¤Î˝ĐÎĎĽŐĽŠĄźĽŢĽĂĽČ¤Ď16ĽÓĽĂĽČĽŤĽéĄź¤ňĽľĽÝĄźĽČ¤ˇ¤Ć¤¤¤Ţ¤ť¤óĄŁ\n"
+"8ĽÓĽĂĽČĽŤĽéĄź¤Ë¸şż§¤ˇ¤Ţ¤š¤Ť?"
+
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr "Ľ˘ĽŻĽťĽš¸˘¸Â¤ŹÉŹÍפǤšĄ§"
+
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr "ĽŃĽšĽďĄźĽÉĆŠ˛áŔ­¤Ď°ÂÁ´¤Ç¤š"
+
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr "ĽĐĽĂĽŻĽ¨ĽóĽÉ¤Ďʿʸ¤ÎĽŃĽšĽďĄźĽÉ¤ňÍ׾ᤡ¤Ć¤¤¤Ţ¤š"
+
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr "ĽćĄźĽśĄźĚžĄ§"
+
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr "ĽŃĽšĽďĄźĽÉĄ§"
+
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr "ÉÔŔľ¤ĘĽŃĽéĽáĄźĽż¤Ç¤š"
+
+#. TEXT_VERSION
+msgid "version:"
+msgstr "ĽĐĄźĽ¸ĽçĽó"
+
+#. TEXT_PACKAGE
+msgid "package"
+msgstr "ĽŃĽĂĽąĄźĽ¸"
+
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr "GIMPĽľĽÝĄźĽČ¤˘¤ę"
+
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr "GIMPĽľĽÝĄźĽČ¤Ę¤ˇ"
+
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "ĽłĽóĽŃĽ¤Ľë¤ľ¤ě¤Ć¤¤¤Ţ¤šĄÄGTK-"
+
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr "ĽłĽóĽŃĽ¤Ľë¤ľ¤ě¤Ć¤¤¤Ţ¤šĄÄGIMP-"
+
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr "̤ĂÎ"
+
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"XSane¤ĎĄ˘Free Software Foundation¤Ź¸řÉ˝¤ˇ¤żGNU°ěČ̸řÍ­ťČÍŃľöÂú\n"
+"¤ÎĄÖĽĐĄźĽ¸ĽçĽóŁ˛Ą×°ż¤¤¤Ď¤˝¤ě°Ęšß¤ÎłĆĽĐĄźĽ¸ĽçĽó¤ÎĂ植¤é¤¤¤ş¤ě¤Ť\n"
+"¤ňÁŞÂň¤ˇĄ˘¤˝¤ÎĽĐĄźĽ¸ĽçĽó¤ŹÄę¤á¤ëžňšŕ¤Ë˝ž¤Ă¤ĆËÜĽ×ĽíĽ°ĽéĽŕ¤ňşĆČŇ\n"
+"Éۤޤż¤ĎĘŃšš¤š¤ë¤ł¤Č¤Ź¤Ç¤­¤Ţ¤šĄŁ\n"
+"ËÜĽ×ĽíĽ°ĽéĽŕ¤ĎÍ­ÍѤȤϝפ¤¤Ţ¤š¤ŹĄ˘ČŇÉۤˤ˘¤ż¤Ă¤Ć¤ĎĄ˘ťÔžěŔ­ľÚ¤Ó\n"
+"ĆĂÄęĚÜĹŞĹŹšçŔ­¤Ë¤Ä¤¤¤Ć¤Î°ĹĚۤÎĘÝžÚ¤ň´Ţ¤á¤ĆĄ˘¤¤¤Ť¤Ę¤ëĘÝžÚ¤âšÔ¤Ę\n"
+"¤¤¤Ţ¤ť¤óĄŁ\n"
+
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr "ĽáĄźĽëĄ§"
+
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr "ĽŰĄźĽŕĽÚĄźĽ¸Ą§"
+
+#. TEXT_FILE
+msgid "File:"
+msgstr "ĽŐĽĄĽ¤ĽëĄ§"
+
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr "ËÝĚőĄ§"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+"ĆüËܸě¤Ř¤ÎËÝĚőźÔĄ§\n"
+"ˇŻÄÍĂΰě\n"
+"ĽáĄźĽë: sgtom@pluto.dti.ne.jp\n"
+
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr "0x0: 0Ľ­ĽíĽĐĽ¤ĽČ"
+
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr "ĽšĽ­ĽăĽó¤ľ¤ě¤żĽÚĄźĽ¸Ą§"
+
+#. TEXT_MAIL_TEXT
+msgid "Email text:"
+msgstr "ĽáĄźĽëĽĆĽ­ĽšĽČĄ§"
+
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr "ĹşÉŐĄ§"
+
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr "Ľ×ĽíĽ¸Ľ§ĽŻĽČ¤ÎžőÂÖĄ§"
+
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr "ż¨ÇŢĚžĄ§"
+
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+
+#. TEXT_X_SCALE_FACTOR
+msgid "X-Scale factor:"
+msgstr "XŔŽĘŹ¤ÎÇÜΨĄ§"
+
+#. TEXT_Y_SCALE_FACTOR
+msgid "Y-Scale factor:"
+msgstr "YŔŽĘŹ¤ÎÇÜΨĄ§"
+
+#. TEXT_DESPECKLE_RADIUS
+msgid "Despeckle radius:"
+msgstr "¤ˇ¤ßźč¤ęČĎ°ĎĄ§"
+
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr "¤Ë¤¸¤ßČĎ°ĎĄ§"
+
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr "Ľ×ĽęĽóĽżÁŞÂňĄ§"
+
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr "ĚžÁ°Ą§"
+
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr "ĽłĽŢĽóĽÉĄ§"
+
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr "Č֚漪Ľ×ĽˇĽçĽó¤ňĽłĽÔĄźĄ§"
+
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "ĽéĽ¤ĽóĽ˘ĄźĽČ˛ňÁüĹŮ(dpi)Ą§"
+
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "Ľ°ĽěĄźĽšĽąĄźĽë˛ňÁüĹŮ(dpi)Ą§"
+
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "ż§˛ňÁüĹŮ(dpi)Ą§"
+
+#. TEXT_SETUP_PRINTER_WIDTH
+msgid "Width"
+msgstr "Éý"
+
+#. TEXT_SETUP_PRINTER_HEIGHT
+msgid "Height"
+msgstr "šâ¤ľ"
+
+#. TEXT_SETUP_PRINTER_LEFT
+msgid "Left offset"
+msgstr "ş¸ĽŞĽŐĽťĽĂĽČ"
+
+#. TEXT_SETUP_PRINTER_BOTTOM
+msgid "Bottom offset"
+msgstr "˛źĽŞĽŐĽťĽĂĽČ"
+
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr "Ľ×ĽęĽóĽżĽŹĽóĽŢĂÍĄ§"
+
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr "Ľ×ĽęĽóĽżĽŹĽóĽŢ ŔÖĄ§"
+
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr "Ľ×ĽęĽóĽżĽŹĽóĽŢ ÎĐĄ§"
+
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr "Ľ×ĽęĽóĽżĽŹĽóĽŢ ŔÄĄ§"
+
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "°ěťţĽÇĽŁĽěĽŻĽČĽę"
+
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "˛čÁüĽŐĽĄĽ¤Ľë¤Îľö˛Ä°Ŕ­"
+
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "ĽÇĽŁĽěĽŻĽČĽę¤Îľö˛Ä°Ŕ­"
+
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr "JPEG˛čÁüÉĘźÁ"
+
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr "PNG˛čÁü°ľ˝Ě"
+
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr "ĽŐĽĄĽ¤ĽëĚžĽŤĽŚĽóĽż¤ÎČĎ°Ď"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "TIFF 16ĽÓĽĂĽČ˛čÁü°ľ˝Ě"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "TIFF 8ĽÓĽĂĽČ˛čÁü°ľ˝Ě"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr "TIFF ĽéĽ¤ĽóĽ˘ĄźĽČ˛čÁü°ľ˝Ě"
+
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "ĽŞĄźĽĐĄźĽľĽóĽ×ĽęĽóĽ°¤ňĽ×ĽěĽÓĽĺĄźĄ§"
+
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr "ĽŹĽóĽŢ¤ňĽ×ĽěĽÓĽĺĄźĄ§"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr "ĽŹĽóĽŢŔÖ¤ňĽ×ĽěĽÓĽĺĄźĄ§"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr "ĽŹĽóĽŢÎФňĽ×ĽěĽÓĽĺĄźĄ§"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr "ĽŹĽóĽŢŔĤňĽ×ĽěĽÓĽĺĄźĄ§"
+
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "ďçĂÍĽŞĽ×ĽˇĽçĽóĄ§"
+
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr "ADF´ŘϢ¤ÎŔßÄꥧ"
+
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr "ĽÔĽÚĽĂĽČČϰϤňĽ×ĽěĽÓĽĺĄź"
+
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "ďçĂͤβź¸ÂĄ§"
+
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "ďçĂͤΞĺ¸ÂĄ§"
+
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "ďçĂͤΞčżôĄ§"
+
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "ďçĂÍ¤ÎĽŞĽŐĽťĽĂĽČĄ§"
+
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "Ľ°ĽěĄźĽšĽąĄźĽë¤ÎĽšĽ­ĽăĽóĽâĄźĽÉĚžĄ§"
+
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "ĽŘĽëĽ×ĽŐĽĄĽ¤ĽëĽÓĽĺĄźĽď(HTML)Ą§"
+
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr "źőżŽĽŞĽ×ĽˇĽçĽóĄ§"
+
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr "PostScriptĽŐĽĄĽ¤Ľë¤ÎĽŞĽ×ĽˇĽçĽóĄ§"
+
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr "ɸ˝ŕĽâĄźĽÉ¤ÎĽŞĽ×ĽˇĽçĽóĄ§"
+
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr "ŔşşŮĽâĄźĽÉ¤ÎĽŞĽ×ĽˇĽçĽóĄ§"
+
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr "ĽÓĽĺĄźĽď(PostScript)Ą§"
+
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr "SMTPĽľĄźĽĐĄ§"
+
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr "SMTPĽÝĄźĽČĄ§"
+
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr "şš˝ĐżÍĄ§"
+
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr "ĘÖżŽŔ襧"
+
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr "POP3ĽľĄźĽĐĄ§"
+
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr "POP3ĽÝĄźĽČĄ§"
+
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr "POP3ĽćĄźĽśĄźĄ§"
+
+#. TEXT_SETUP_POP3_PASS
+msgid "POP3 password:"
+msgstr "POP3ĽŃĽšĽďĄźĽÉĄ§"
+
+#. TEXT_SETUP_MAIL_VIEWER
+msgid "Viewer (png):"
+msgstr "ĽÓĽĺĄźĽď(PNG)Ą§"
+
+#. TEXT_SETUP_OCR_COMMAND
+msgid "OCR Command:"
+msgstr "OCRĽłĽŢĽóĽÉĄ§"
+
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+msgid "Inputfile option:"
+msgstr "ĆţÎĎĽŐĽĄĽ¤ĽëĽŞĽ×ĽˇĽçĽóĄ§"
+
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+msgid "Outputfile option:"
+msgstr "˝ĐÎĎĽŐĽĄĽ¤ĽëĽŞĽ×ĽˇĽçĽóĄ§"
+
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr "ĽćĄźĽśĄź"
+
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr "Ľ°ĽëĄźĽ×"
+
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr "¤š¤Ů¤Ć"
+
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr "Ęݸ"
+
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr "˛čÁü"
+
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "ĽłĽÔĄź"
+
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr "FAX"
+
+#. NOTEBOOK_MAIL_OPTIONS
+msgid "Mail"
+msgstr "ĽáĄźĽë"
+
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr "OCR"
+
+#. NOTEBOOK_DISPLAY_OPTIONS
+msgid "Display"
+msgstr "É˝ź¨"
+
+#. NOTEBOOK_ENHANCE_OPTIONS
+msgid "Enhancement"
+msgstr "śŻÄ´"
+
+#. MENU_ITEM_MAIL
+msgid "Email"
+msgstr "ĽáĄźĽë"
+
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr "ĽÄĄźĽëĽÁĽĂĽ×¤ňÉ˝ź¨"
+
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr "Ľ×ĽěĽÓĽĺĄź¤ňÉ˝ź¨"
+
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr "ĽŇĽšĽČĽ°ĽéĽŕ¤ňÉ˝ź¨"
+
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "ĽŹĽóĽŢśĘŔţ¤ňÉ˝ź¨"
+
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr "ɸ˝ŕĽŞĽ×ĽˇĽçĽó¤ňÉ˝ź¨"
+
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr "žÜşŮĽŞĽ×ĽˇĽçĽó¤ňÉ˝ź¨"
+
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr "ĽťĽĂĽČĽ˘ĽĂĽ×"
+
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr "Äš¤ľ¤ÎĂą°Ě"
+
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr "ĽßĽęĽáĄźĽČĽë"
+
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr "ĽťĽóĽÁĽáĄźĽČĽë"
+
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr "Ľ¤ĽóĽÁ"
+
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "ĽÝĽęĽˇĄź¤ňššżˇ"
+
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "Ϣ³Ū"
+
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "ČóϢ³Ū"
+
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "Ă٤ě¤Ć"
+
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "˛ňÁüĹټ꼚ĽČ¤ňÉ˝ź¨"
+
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "PostScript¤ň˛óĹž"
+
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr "ĽÇĽĐĽ¤ĽšŔßÄę¤ňĘݸ"
+
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr "ĽÇĽĐĽ¤ĽšŔßÄę¤ňĆÉšţ¤ß"
+
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "ĽÇĽŁĽěĽŻĽČĽęĘŃšš"
+
+#. MENU_ITEM_XSANE_LICENSE
+msgid "License"
+msgstr "ĽéĽ¤ĽťĽóĽš"
+
+#. MENU_ITEM_XSANE_DOC
+msgid "XSane doc"
+msgstr "XSane¤Îʸ˝ń"
+
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr "ĽĐĽĂĽŻĽ¨ĽóĽÉ¤Îʸ˝ń"
+
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr "ÍřÍѲÄÇ˝¤ĘĽĐĽĂĽŻĽ¨ĽóĽÉ"
+
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr "ĽšĽ­ĽăĽó¤Ë´Ř¤š¤ëTips"
+
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr "˛ż¤ŤĚäÂę?"
+
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr "ČółčŔ­"
+
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr "°ľ˝Ě¤ˇ¤Ę¤¤"
+
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr "CCITT 1D Huffman °ľ˝Ě"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr "CCITT Group 3 Fax °ľ˝Ě"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr "CCITT Group 4 Fax °ľ˝Ě"
+
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr "JPEG DCT °ľ˝Ě"
+
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr "ĽŃĽĂĽŻĽÓĽĂĽČ"
+
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "ɸ˝ŕĽŞĽ×ĽˇĽçĽóĽŚĽŁĽóĽÉĽŚĄĘĽéĽ¤ĽóĽ˘ĄźĽČĄË"
+
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "XSane ĽáĽ¤ĽóĽŚĽŁĽóĽÉĽŚĄĘĽéĽ¤ĽóĽ˘ĄźĽČĄË"
+
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "XSane ĽáĽ¤ĽóĽŚĽŁĽóĽÉĽŚĄĘĽ°ĽěĄźĽšĽąĄźĽë˘ŞĽéĽ¤ĽóĽ˘ĄźĽČĄË"
+
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr "ĄĘ¤Ę¤ˇĄË"
+
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "łČÄĽťŇ¤´¤Č"
+
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr "ÁŞÂňĆâÍƤň°ěÍ÷¤ËÄɲĂ"
+
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr "ÄęľÁ¤ňĽęĽÍĄźĽŕ"
+
+#. MENU_ITEM_PRESET_AREA_DELETE
+msgid "Delete definition"
+msgstr "ÄęľÁ¤ňşď˝ü"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr "žĺ¤Ř°ÜĆ°"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr "˛ź¤Ř°ÜĆ°"
+
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "ĽšĽ­ĽăĽó¤ˇ¤Ć¤¤¤Ţ¤š"
+
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "ĽÇĄźĽż %s ¤ňźőżŽ¤ˇ¤Ć¤¤¤Ţ¤š"
+
+#. PROGRESS_TRANSFERING_DATA
+msgid "Transfering image"
+msgstr "˛čÁü¤ňĘŃ´šĂć"
+
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr "˛čÁü¤ň˛óĹžĂć"
+
+#. PROGRESS_MIRRORING_DATA
+msgid "Mirroring image"
+msgstr "˛čÁü¤ňśŔąÇĂć"
+
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr "˛čÁü¤ň°ľ˝ĚĂć"
+
+#. PROGRESS_CONVERTING_DATA
+msgid "Converting image"
+msgstr "˛čÁü¤ňĘŃ´šĂć"
+
+#. PROGRESS_SAVING_DATA
+msgid "Saving image"
+msgstr "˛čÁü¤ňĘݸĂć"
+
+#. PROGRESS_CLONING_DATA
+msgid "Cloning image"
+msgstr "˛čÁü¤ňĘŁŔ˝Ăć"
+
+#. PROGRESS_SCALING_DATA
+msgid "Scaling image"
+msgstr "˛čÁü¤ňĽšĽąĄźĽęĽóĽ°Ăć"
+
+#. PROGRESS_DESPECKLING_DATA
+msgid "Despeckling image"
+msgstr "˛čÁü¤Î¤ˇ¤ßźč¤ęĂć"
+
+#. PROGRESS_BLURING_DATA
+msgid "Bluring image"
+msgstr "˛čÁü¤ň¤Ë¤¸¤Ţ¤ťĂć"
+
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr "ĽšĽ­ĽăĽółŤťĎ <Ctrl-Enter>"
+
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr "ĽšĽ­ĽăĽó¤ÎźčžĂ¤ˇ <ESC>"
+
+#. DESC_PREVIEW_ACQUIRE
+msgid "Acquire preview scan <Alt-p>"
+msgstr "ĽšĽ­ĽăĽóĽ×ĽěĽÓĽĺĄź¤ňźčĆŔ <Alt-p>"
+
+#. DESC_PREVIEW_CANCEL
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "ĽšĽ­ĽăĽóĽ×ĽěĽÓĽĺĄź¤ňĽ­ĽăĽóĽťĽë <Alt-ESC>"
+
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr "ÁÇşŕ¤ÎĽáĽÇĽŁĽ˘ĽżĽ¤Ľ×ÁŞÂň"
+
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr "ĽšĽ­ĽăĽó¸ĺ¤Ë˛Ăťť¤ľ¤ě¤ëĽŐĽĄĽ¤ĽëĚžĽŤĽŚĽóĽżĂÍ"
+
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr "˛čÁüĽŐĽĄĽ¤ĽëĚž¤ňĽÖĽéĽŚĽş"
+
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr "ĽšĽ­ĽăĽó¤ˇ¤ż˛čÁü¤ÎĽŐĽĄĽ¤ĽëĚž"
+
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr "˛čÁüĽŐĽŠĄźĽŢĽĂĽČĽżĽ¤Ľ×ĽŐĽĄĽ¤ĽëĚž¤ËźŤĆ°¤Ç¤Ä¤ŻĹŹŔڤʳČÄĽťŇ"
+
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr "FAXĽ×ĽíĽ¸Ľ§ĽŻĽČĚž¤ňĆţÎĎ"
+
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr "FAXĽÚĄźĽ¸¤Ë¤Ä¤ą¤ëĽŐĽĄĽ¤ĽëĚž¤ňĆţÎĎ"
+
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr "FAXźőżŽľĄ¤ÎĹĹĎĂČ֚植Ľ˘ĽÉĽěĽš¤ňĆţÎĎ"
+
+#. DESC_MAILPROJECT
+msgid "Enter name of mail project"
+msgstr "ĽáĄźĽëĽ×ĽíĽ¸Ľ§ĽŻĽČĚž¤ňĆţÎĎ"
+
+#. DESC_MAILIMAGENAME
+msgid "Enter new name for mail image"
+msgstr "żˇľŹĽáĄźĽëĽ¤ĽáĄźĽ¸¤ÎĽŐĽĄĽ¤ĽëĚž¤ňĆţÎĎ"
+
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr "ĽáĄźĽëĽ˘ĽÉĽěĽš¤ňĆţÎĎ"
+
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr "ĽáĄźĽë¤ÎÉ˝Âę¤ňĆţÎĎ"
+
+#. DESC_PRESET_AREA_NAME
+msgid "Enter new name for preset area"
+msgstr "Ľ×ĽęĽťĽĂĽČÎΰč¤Ë¤Ä¤ą¤ëĚžÁ°¤ňżˇľŹĆţÎĎ"
+
+#. DESC_PRINTER_SELECT
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "Ľ×ĽęĽóĽż¤Î˛ňÁüĹ٤ňÁŞÂň <Shift-F1/F2/...>"
+
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr "ĽšĽ­ĽăĽĘ¤Î˛ňÁüĹ٤ňĽťĽĂĽČ"
+
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "ĽšĽ­ĽăĽóťţ¤ÎXŔŽĘŹ¤Î˛ňÁüĹ٤ňĽťĽĂĽČ"
+
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "ĽšĽ­ĽăĽóťţ¤ÎYŔŽĘŹ¤Î˛ňÁüĹ٤ňĽťĽĂĽČ"
+
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr "łČÂçΨ¤ňĽťĽĂĽČ"
+
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "XŔŽĘŹ¤ÎłČÂçΨ¤ňĽťĽĂĽČ"
+
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "XŔŽĘŹ¤ÎłČÂçΨ¤ňĽťĽĂĽČ"
+
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr "ĽłĽÔĄźËçżô¤ňĽťĽĂĽČ"
+
+#. DESC_NEGATIVE
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr "΢žĆ¤­Ą§ż§şĚ¤ň΢žĆ¤­žőÂ֤ǼšĽ­ĽăĽó <Shift-n>"
+
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr "ĽŹĽóĽŢĂͤňĽťĽĂĽČ"
+
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr "ŔÖĽŹĽóĽŢĂͤňĽťĽĂĽČ"
+
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr "ÎĐĽŹĽóĽŢĂͤňĽťĽĂĽČ"
+
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr "ŔÄĽŹĽóĽŢĂͤňĽťĽĂĽČ"
+
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr "ĚŔĹ٤ňĽťĽĂĽČ"
+
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr "ŔÖŔŽĘŹ¤Ř¤ÎĚŔĹ٤ňĽťĽĂĽČ"
+
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr "ÎĐŔŽĘŹ¤Ř¤ÎĚŔĹ٤ňĽťĽĂĽČ"
+
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr "ŔÄŔŽĘŹ¤Ř¤ÎĚŔĹ٤ňĽťĽĂĽČ"
+
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr "ĽłĽóĽČĽéĽšĽČ¤ňĽťĽĂĽČ"
+
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr "ŔÖŔŽĘŹ¤Ř¤ÎĽłĽóĽČĽéĽšĽČ¤ňĽťĽĂĽČ"
+
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr "ÎĐŔŽĘŹ¤Ř¤ÎĽłĽóĽČĽéĽšĽČ¤ňĽťĽĂĽČ"
+
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr "ŔÄŔŽĘŹ¤Ř¤ÎĽłĽóĽČĽéĽšĽČ¤ňĽťĽĂĽČ"
+
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "ďçĂͤňĽťĽĂĽČ"
+
+#. DESC_RGB_DEFAULT
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"RGBĽÇĽŐĽŠĽëĽČĂÍĄ§ŔÖĄŚÎĐĄŚŔĤؤΜŻÄ´ĂͤμǼռŠĽëĽČĂͤňĽťĽĂĽČ <Shift-b>Ą§\n"
+"ĽŹĽóĽŢĂÍ = 1.0\n"
+"ĚŔĹŮ = 0\n"
+"ĽłĽóĽČĽéĽšĽČ = 0"
+
+#. DESC_ENH_AUTO
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr ""
+"ÁŞÂň¤ľ¤ě¤żĽšĽ­ĽăĽóÎΰč¤Ëąţ¤¸¤ĆĄ˘ĽŹĽóĽŢĂÍĄ˘ĚŔĹŮĄ˘ĽłĽóĽČĽéĽšĽČ¤ňźŤĆ°Ä´Ŕ° "
+"<Shift-e>"
+
+#. DESC_ENH_DEFAULT
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"ĽÇĽŐĽŠĽëĽČ¤ÎśŻÄ´ĂͤňĽťĽĂĽČ <Shift-d>:Ą§\n"
+"ĽŹĽóĽŢĂÍ = 1.0\n"
+"ĚŔĹŮ = 0\n"
+"ĽłĽóĽČĽéĽšĽČ = 0"
+
+#. DESC_ENH_RESTORE
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "ŔßÄꤡ¤żśŻÄ´ĂͤňÉü¸ľ <Shift-r>"
+
+#. DESC_ENH_STORE
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr "ŔßÄꤡ¤żśŻÄ´ĂͤňĘݸ <Shift-m>"
+
+#. DESC_HIST_INTENSITY
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "ľąĹŮĄżÇňšőłŹÄ´¤ÎĽŇĽšĽČĽ°ĽéĽŕ¤ňÉ˝ź¨ <Alt-i>"
+
+#. DESC_HIST_RED
+msgid "Show histogram of red component <Alt-r>"
+msgstr "ŔÖŔŽĘŹ¤ÎĽŇĽšĽČĽ°ĽéĽŕ¤ňÉ˝ź¨ <Alt-r>"
+
+#. DESC_HIST_GREEN
+msgid "Show histogram of green component <Alt-g>"
+msgstr "ÎĐŔŽĘŹ¤ÎĽŇĽšĽČĽ°ĽéĽŕ¤ňÉ˝ź¨ <Alt-g>"
+
+#. DESC_HIST_BLUE
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "ŔÄŔŽĘŹ¤ÎĽŇĽšĽČĽ°ĽéĽŕ¤ňÉ˝ź¨ <Alt-b>"
+
+#. DESC_HIST_PIXEL
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr "˛čÁǤÎÂĺ¤ď¤ę¤ËŔţ¤ÇĽŇĽšĽČĽ°ĽéĽŕ¤ňÉ˝ź¨ <Alt-m>"
+
+#. DESC_HIST_LOG
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "˛čÁÇżô¤ňÂĐżô¤ÇÉ˝ź¨ <Alt-l>"
+
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr "ĘŃšš¤š¤ë˛ňÁüĹ٤ÎÁŞÂň"
+
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr "ÁŞÂň¤ˇ¤ż˛ňÁüĹ٤ÎĚžÁ°¤ňÄęľÁ"
+
+#. DESC_PRINTER_COMMAND
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr "ĽłĽÔĄźĽâĄźĽÉ¤Ç¤ÎźÂšÔĽłĽŢĽóĽÉ¤ňĆţÎĎĄĘÎ㥧\"lpr\"ĄË"
+
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr "ĽŞĽ×ĽˇĽçĽóĄ§ĽłĽÔĄźËçżô¤ňĆţÎĎ"
+
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr "ĽéĽ¤ĽóĽ˘ĄźĽČ˛čÁü¤Î˛ňÁüĹ٤ĎPostScript¤Ç°őşţĄŚĘݸ¤ľ¤ě¤Ţ¤š"
+
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr "Ľ°ĽěĄźĽšĽąĄźĽë˛čÁü¤Î˛ňÁüĹ٤ĎPostScript¤Ç°őşţĄŚĘݸ¤ľ¤ě¤Ţ¤š"
+
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr "ĽŤĽéĄź˛čÁü¤Î˛ňÁüĹ٤ĎPostScript¤Ç°őşţĄŚĘݸ¤ľ¤ě¤Ţ¤š"
+
+#. DESC_PRINTER_WIDTH
+msgid "Width of printable area"
+msgstr "°őşţ˛ÄÇ˝ÎΰčÉý"
+
+#. DESC_PRINTER_HEIGHT
+msgid "Height of printable area"
+msgstr "°őşţ˛ÄÇ˝Îΰčšâ¤ľ"
+
+#. DESC_PRINTER_LEFTOFFSET
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr "°őşţ˛ÄÇ˝Îΰč¤ÎÍŃťćĂź¤Ť¤é¤Îş¸ĽŞĽŐĽťĽĂĽČ"
+
+#. DESC_PRINTER_BOTTOMOFFSET
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "°őşţ˛ÄÇ˝Îΰč¤ÎÍŃťćĂź¤Ť¤é¤Î˛źĽŞĽŐĽťĽĂĽČ"
+
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr "žĆ¤­Áý¤ˇ¤Ř¤ÎÄɲüŹĽóĽŢĂÍ"
+
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr "žĆ¤­Áý¤ˇ¤Ř¤ÎŔÖŔŽĘŹÄɲüŹĽóĽŢĂÍ"
+
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr "žĆ¤­Áý¤ˇ¤Ř¤ÎÎĐŔŽĘŹÄɲüŹĽóĽŢĂÍ"
+
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr "žĆ¤­Áý¤ˇ¤Ř¤ÎŔÄŔŽĘŹÄɲüŹĽóĽŢĂÍ"
+
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "°ěťţĽÇĽŁĽěĽŻĽČĽę¤Ř¤ÎĽŃĽš"
+
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "°ěťţĽÇĽŁĽěĽŻĽČĽę¤Îť˛žČ"
+
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr "JPEG°ľ˝Ě¤ÇĘݸ¤ľ¤ě¤żJPEG¤Ţ¤ż¤ĎTIFF˛čÁü¤Î˛čźÁ(%)"
+
+# DESC_PNG_COMPRESSION
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr "˛čÁü¤ŹPNG¤ÇĘݸ¤ľ¤ě¤Ć¤¤¤ě¤Đ°ľ˝Ě"
+
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr "ĽŐĽĄĽ¤ĽëĚž¤ÎĽŤĽŚĽóĽż¤ÎşÇžŽČĎ°Ď"
+
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "16ĽÓĽĂĽČ˛čÁü¤ŹTIFF¤ÇĘݸ¤ľ¤ě¤Ć¤¤¤ëžěšç¤Î°ľ˝ĚĽżĽ¤Ľ×"
+
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "8ĽÓĽĂĽČ˛čÁü¤ŹTIFF¤ÇĘݸ¤ľ¤ě¤Ć¤¤¤ëžěšç¤Î°ľ˝ĚĽżĽ¤Ľ×"
+
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "ĽéĽ¤ĽóĽ˘ĄźĽČ˛čÁü¤ŹTIFF¤ÇĘݸ¤ľ¤ě¤Ć¤¤¤ëžěšç¤Î°ľ˝ĚĽżĽ¤Ľ×"
+
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr "XSane˝ŞÎťťţ¤ËĽÇĽĐĽ¤Ľš°Í¸¤ÎŔßÄę¤ň´űÄęĂͤȤˇ¤ĆĽŐĽĄĽ¤ĽëĘݸ"
+
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "¸˝şß¤ÎĽŐĽĄĽ¤Ľë¤Ëžĺ˝ń¤­¤š¤ëÁ°¤ÎˇŮšđ"
+
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr "ĽŐĽĄĽ¤ĽëĚž¤ÎĽŤĽŚĽóĽż¤ŹźŤĆ°ĹޤËÁý˛Ă¤š¤ëşÝĄ˘ťČÍѺѤߤÎČÖšć¤Ď¤Č¤Đ¤ľ¤ě¤Ţ¤š"
+
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr "˛čÁü¤Ź16ĽÓĽĂĽČĽŤĽéĄź¤ÇĽšĽ­ĽăĽĘ¤Ť¤éÁ÷¤é¤ě¤ż¤éĄ˘8ĽÓĽĂĽČ¤ÇĘݸ"
+
+#. DESC_PSFILE_WIDTH
+msgid "Width of paper for postscript files"
+msgstr "PostScriptĽŐĽĄĽ¤Ľë¤ÎÍŃťćÉý"
+
+#. DESC_PSFILE_HEIGHT
+msgid "Height of paper for postscript files"
+msgstr "PostScriptĽŐĽĄĽ¤Ľë¤ÎÍŃťćšâ¤ľ"
+
+#. DESC_PSFILE_LEFTOFFSET
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr "PostScriptĽŐĽĄĽ¤Ľë¤ÎťČÍѲÄÇ˝Îΰč¤ÎÍŃťćĂź¤Ť¤é¤Îş¸ĽŞĽŐĽťĽĂĽČ"
+
+#. DESC_PSFILE_BOTTOMOFFSET
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr "PostScriptĽŐĽĄĽ¤Ľë¤ÎťČÍѲÄÇ˝Îΰč¤ÎÍŃťćĂź¤Ť¤é¤Î˛źĽŞĽŐĽťĽĂĽČ"
+
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr "ĽáĽ¤ĽóĽŚĽŁĽóĽÉĽŚ¤Ë¸ÇÄ꼾Ľ¤Ľş¤ňťČ¤Ś¤ŤĄ˘ĽšĽŻĽíĄźĽëĄŚĽęĽľĽ¤Ľş˛ÄÇ˝¤Ë¤š¤ë"
+
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr "XSane¤ŹGIMPĽ×ĽéĽ°Ľ¤Ľó¤Č¤ˇ¤ĆĆ°şî¤š¤ëťţ¤ĎĄ˘ĽŹĽóĽŢĽ×ĽěĽÓĽĺĄź¤ňĽŞĽŐ¤Ë¤š¤ë"
+
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr "ĽÇĽŁĽšĽ×ĽěĽ¤˛ňÁüĹ٤Ź8ĽÓĽĂĽČ¤Ę¤éĄ˘Ľ×ĽěĽÓĽĺĄź¤Ë¸ÇÍ­¤ÎĽŤĽéĄźĽŢĽĂĽ×¤ňťČ¤Ś"
+
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr "Ľ×ĽěĽÓĽĺĄź˛ňÁüĹ٤˳ݤą¤é¤ě¤żˇ×ťťĂÍ"
+
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr "Ľ×ĽěĽÓĽĺĄź˛čÁü¤ÎĽŹĽóĽŢĘäŔľĂͤňĽťĽĂĽČ"
+
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr "Ľ×ĽěĽÓĽĺĄź˛čÁü¤ÎŔÖŔŽĘŹ¤ÎĽŹĽóĽŢĘäŔľĂͤňĽťĽĂĽČ"
+
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr "Ľ×ĽěĽÓĽĺĄź˛čÁü¤ÎÎĐŔŽĘŹ¤ÎĽŹĽóĽŢĘäŔľĂͤňĽťĽĂĽČ"
+
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr "Ľ×ĽěĽÓĽĺĄź˛čÁü¤ÎŔÄŔŽĘŹ¤ÎĽŹĽóĽŢĘäŔľĂͤňĽťĽĂĽČ"
+
+#. DESC_LINEART_MODE
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "XSane¤ÎďçĂÍĽŞĽ×ĽˇĽçĽó˝čÍýĘýź°¤ňÄęľÁ"
+
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr "Ľ°ĽěĄźĽšĽąĄźĽë¤ÎĽšĽ­ĽăĽóĽâĄźĽÉ¤ňÁŞÂň¤ˇ¤Ć¤Ż¤Ŕ¤ľ¤¤ĄŁ"
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "ĽšĽ­ĽăĽĘ¤ÎşÇžŽďçĂÍĽěĽŮĽëĄĘ%ĄË"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "ĽšĽ­ĽăĽĘ¤ÎşÇÂçďçĂÍĽěĽŮĽëĄĘ%ĄË"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr "XSane¤ČĽšĽ­ĽăĽĘ¤ÎďçĂÍČϰϤňĹů¤ˇ¤Ż¤š¤ë¤ż¤á¤Îžčżô"
+
+#. DESC_PREVIEW_THRESHOLD_OFF
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr "XSane¤ČĽšĽ­ĽăĽĘ¤ÎďçĂÍČϰϤňĹů¤ˇ¤Ż¤š¤ë¤ż¤á¤ÎĽŞĽŐĽťĽĂĽČ"
+
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+"ADF¤Î¤ż¤á¤ÎĽšĽ­ĽăĽóĽ˝ĄźĽš¤ňÁŞÂň¤ˇ¤Ć¤Ż¤Ŕ¤ľ¤¤ĄŁ¤ł¤ÎĽšĽ­ĽăĽóĽ˝ĄźĽš¤ŹÁŞÂň¤ľ¤ě¤ë¤Č"
+"XSane¤ĎÍŃťćŔڤ줍Ľ¨ĽéĄź¤Ë¤Ę¤ë¤Ţ¤ÇĽšĽ­ĽăĽó¤ň¤ˇ¤Ţ¤š"
+
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr "ĽÔĽÚĽĂĽČľĄÇ˝ÍѤÎɸ˝ŕż§¤ËťČ¤ď¤ě¤ëžŽĘҤÎĚĚŔŃ"
+
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr "ĽŘĽëĽ×ĽŐĽĄĽ¤ĽëÉ˝ź¨ťţ¤ËźÂšÔ¤ľ¤ě¤ëĽłĽŢĽóĽÉ(HTMLĽÓĽĺĄźĽď¤Ç¤š!)¤ňĆţÎĎ"
+
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr "źŤĆ°śŻÄ´ĽÜĽżĽó˛Ą˛źťţ¤ËĽŹĽóĽŢĂͤňĘŃšš"
+
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr "Ľ×ĽěĽÓĽĺĄźĽšĽ­ĽăĽó˝ŞÎť¸ĺ¤ÎĽšĽ­ĽăĽóÎΰč¤ňÁŞÂň"
+
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr "Ľ×ĽěĽÓĽĺĄźĽšĽ­ĽăĽó˝ŞÎť¸ĺ¤Ëż§şĚĘäŔľ¤ňšÔ¤Ś"
+
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr "FAXĽâĄźĽÉ¤ÇźÂšÔ¤ľ¤ě¤ëĽłĽŢĽóĽÉ¤ňĆţÎĎ"
+
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr "FAXźőżŽľĄźąĘĚĽŞĽ×ĽˇĽçĽó¤ňĆţÎĎ"
+
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr "¸ĺÂł¤ÎPostScriptĽŐĽĄĽ¤ĽëźąĘĚĽŞĽ×ĽˇĽçĽó¤ňĆţÎĎ"
+
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr "ɸ˝ŕĽâĄźĽÉĄĘÄă˛ňÁüĹŮĄËźąĘĚĽŞĽ×ĽˇĽçĽó¤ňĆţÎĎ"
+
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr "ŔşşŮĽâĄźĽÉĄĘšâ˛ňÁüĹŮĄËźąĘĚĽŞĽ×ĽˇĽçĽó¤ňĆţÎĎ"
+
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr "FAXť˛žČ¤Î¤ż¤á¤ÎźÂšÔĽłĽŢĽóĽÉ¤ňĆţÎĎ"
+
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr "żâÄžšâ˛ňÁüĹŮĄĘ98lpi¤ËÂ夨¤Ć196lpi¤ÇĄËĽâĄźĽÉ¤ÇFAXÁ÷żŽ"
+
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr "IPĽ˘ĽÉĽěĽš¤Ţ¤ż¤ĎSMTPĽľĄźĽĐ¤ÎĽÉĽáĽ¤ĽóĚž"
+
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr "SMTPĽľĄźĽĐ¤Ř¤ÎŔÜÂłĽÝĄźĽČ"
+
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr "ĽáĄźĽëĽ˘ĽÉĽěĽš¤ňĆţÎϤˇ¤Ć¤Ż¤Ŕ¤ľ¤¤"
+
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr "ĘÖżŽŔ輢ĽÉĽěĽš¤ňĆţÎϤˇ¤Ć¤Ż¤Ŕ¤ľ¤¤"
+
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr "ĽáĄźĽëÁ÷żŽÁ°¤ËPOP3ĽľĄźĽĐ¤ÇǧžÚ"
+
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr "IPĽ˘ĽÉĽěĽš¤Ţ¤ż¤ĎPOP3ĽľĄźĽĐ¤ÎĽÉĽáĽ¤ĽóĚž"
+
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr "POP3ĽľĄźĽĐ¤Ř¤ÎŔÜÂłĽÝĄźĽČ"
+
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr "POP3ĽľĄźĽĐ¤ÎĽćĄźĽśĄźĚž"
+
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr "POP3ĽľĄźĽĐ¤ÎĽŃĽšĽďĄźĽÉ"
+
+#. DESC_MAIL_VIEWER
+msgid "Enter command to be executed to view a mail image"
+msgstr "ĽáĄźĽëĽ¤ĽáĄźĽ¸É˝ź¨¤Î¤ż¤á¤ÎźÂšÔĽłĽŢĽóĽÉ¤ňĆţÎĎ"
+
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr "ĽáĄźĽë¤ĎHTMLĽâĄźĽÉ¤ÇÁ÷¤é¤ěĄ˘˛čÁü¤ĎÄžŔÜÉ˝ź¨¤ľ¤ě¤Ţ¤š"
+
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr "OCRĽ×ĽíĽ°ĽéĽŕ¤ÎłŤťĎĽłĽŢĽóĽÉ¤ňĆţÎĎ"
+
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr "ĆţÎĎĽŐĽĄĽ¤Ľë¤ňÄęľÁ¤š¤ëOCRĽ×ĽíĽ°ĽéĽŕ¤ÎĽŞĽ×ĽˇĽçĽó¤ňĆţÎĎ"
+
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr "˝ĐÎĎĽŐĽĄĽ¤Ľë¤ňÄęľÁ¤š¤ëOCRĽ×ĽíĽ°ĽéĽŕ¤ÎĽŞĽ×ĽˇĽçĽó¤ňĆţÎĎ"
+
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr "ĆÉšţ¤ß"
+
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr "˝ńšţ¤ß"
+
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr "źÂšÔ"
+
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr "ÇňĹŔ¤ňĽÔĽĂĽŻ"
+
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr "łĽĹŔ¤ňĽÔĽĂĽŻ"
+
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr "šőĹŔ¤ňĽÔĽĂĽŻ"
+
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr "ĽšĽ­ĽăĽóÎΰ褚¤Ů¤Ć¤ňťČÍŃ"
+
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr "20%˝ĚžŽ"
+
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr "ÁŞÂňÎΰč¤ňłČÂç"
+
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr "Á°˛ó¤ÎłČÂç¤ň¸ľ¤ËĚᤚ"
+
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr "˛ÄťëÎΰč¤ňÁŞÂň"
+
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr "ĽšĽ­ĽăĽóÎΰč¤ÎźŤĆ°ÁŞÂň"
+
+#. DESC_DELETE_IMAGES
+msgid "Delete preview image cache"
+msgstr "Ľ×ĽěĽÓĽĺĄź˛čÁü¤ÎĽ­ĽăĽĂĽˇĽĺ¤ňşď˝ü"
+
+#. DESC_PRESET_AREA
+msgid "Preset area"
+msgstr "Ľ×ĽęĽťĽĂĽČÎΰč"
+
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr "Ľ×ĽěĽÓĽĺĄź¤ň˛óĹž¤ˇ¤ĆĽšĽ­ĽăĽó"
+
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr "ĽŞĽ×ĽˇĽçĽóʸťú¤Îǧźą"
+
+#. DESC_VIEWER_CLONE
+msgid "Clone image"
+msgstr "˛čÁü¤ňĘŁŔ˝"
+
+#. DESC_VIEWER_ROTATE90
+msgid "Rotate image 90 degree"
+msgstr "˛čÁü¤ň90Ąë˛óĹž"
+
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr "˛čÁü¤ň180Ąë˛óĹž"
+
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr "˛čÁü¤ň270Ąë˛óĹž"
+
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr "żâÄžśŔÁü"
+
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr "żĺĘżśŔÁü"
+
+#. DESC_VIEWER_ZOOM
+msgid "Zoom image"
+msgstr "˛čÁü¤ňłČÂç"
+
+#. DESC_STORE_MEDIUM
+msgid "Store medium"
+msgstr "ż¨ÇޤňĘݸ"
+
+#. DESC_DELETE_MEDIUM
+msgid "Delete active medium"
+msgstr "Ľ˘ĽŻĽĆĽŁĽÖ¤Ęż¨Çޤňşď˝ü"
+
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
+msgstr "ĽŰĄźĽŕĽÇĽŁĽěĽŻĽČĽę¤ÎłÎÄę¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤żĄ§"
+
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "şîśČĽÇĽŁĽěĽŻĽČĽę¤ÎĘŃšš¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤ż"
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
+msgstr "ĽŐĽĄĽ¤ĽëĚž¤ŹÄš¤š¤Ž¤Ţ¤š"
+
+#. ERR_CREATE_TEMP_FILE
+#, fuzzy
+msgid "Could not create temporary file"
+msgstr "°ěťţĽ×ĽěĽÓĽĺĄźĽŐĽĄĽ¤Ľë¤ňşî¤ě¤Ţ¤ť¤ó"
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
+msgstr "ĽŞĽ×ĽˇĽçĽóĂͤμťĽĂĽČ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤ż"
+
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
+msgstr "ĽŞĽ×ĽˇĽçĽóĂͤΟčĆŔ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤ż"
+
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
+msgstr "ĽŞĽ×ĽˇĽçĽóĽŤĽŚĽóĽČ¤ÎźčĆŔĽ¨ĽéĄź¤Ç¤š"
+
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
+msgstr "ĽÇĽĐĽ¤Ľš¤ňłŤ¤ą¤Ţ¤ť¤ó"
+
+#. ERR_NO_DEVICES
+msgid "no devices available"
+msgstr "ĽÇĽĐĽ¤Ľš¤Ź¤˘¤ę¤Ţ¤ť¤ó"
+
+#. ERR_DURING_READ
+msgid "Error during read:"
+msgstr "ĆÉšţ¤ßĽ¨ĽéĄź¤Ç¤šĄ§"
+
+#. ERR_DURING_SAVE
+msgid "Error during save:"
+msgstr "ĘݸĽ¨ĽéĄź¤Ç¤šĄ§"
+
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
+msgstr "żźĹ٤ŹźčĆŔ¤Ç¤­¤Ţ¤ť¤ó"
+
+#. ERR_GIMP_BAD_DEPTH
+#, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP¤Ź%dĽÓĽĂĽČĽŤĽéĄź¤ňźčĆŔ¤Ç¤­¤Ţ¤ť¤ó"
+
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
+msgstr "̤ĂΤÎĘݸĽŐĽŠĄźĽŢĽĂĽČ¤Ç¤š"
+
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
+msgstr "łŤ¤ą¤Ţ¤ť¤ó"
+
+#. ERR_CREATE_SECURE_FILE
+#, fuzzy
+msgid "Could not create secure file (may be a link does exist):"
+msgstr "°ÂÁ´¤ĘĽŐĽĄĽ¤Ľë¤ňşî¤ě¤Ţ¤ť¤óĄĘĽęĽóĽŻŔÚ¤ě¤Ę¤ÉĄËĄ§"
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
+msgstr "Ľ×ĽęĽóĽżĽłĽŢĽóĽÉźÂšÔ¤Î¤ż¤á¤ÎĽŃĽ¤Ľ×¤ňłŤ¤ą¤Ţ¤ť¤ó"
+
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
+msgstr "Ľ×ĽęĽóĽżĽłĽŢĽóĽÉ¤ÎźÂšÔ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤żĄ§"
+
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
+msgstr "ĽšĽ­ĽăĽĘ¤ÎłŤťĎ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤żĄ§"
+
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
+msgstr "ĽŃĽéĽáĄźĽż¤ÎźčĆŔ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤żĄ§"
+
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
+msgstr "˝ĐÎĎĽŐĽŠĄźĽŢĽĂĽČ¤Ź¤˘¤ę¤Ţ¤ť¤ó"
+
+#. ERR_NO_MEM
+msgid "out of memory"
+msgstr "ĽŞĄźĽĐĄźĽŐĽíĄź"
+
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr "ĽĐĽĂĽŻĽ¨ĽóĽÉ¤ŹľŹÄę¤ÎĽŃĽéĽáĄźĽż¤ňÄś¤¨¤ż˛čÁü¤ňÁ÷¤Ă¤Ć¤­¤Ţ¤ˇ¤ż"
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
+msgstr "LIBTIFF¤ŹĽ¨ĽéĄź¤ňĘÖ¤ˇ¤Ć¤­¤Ţ¤ˇ¤ż"
+
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
+msgstr "LIBPNG¤ŹĽ¨ĽéĄź¤ňĘÖ¤ˇ¤Ć¤­¤Ţ¤ˇ¤ż"
+
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
+msgstr "̤ĂΤμżĽ¤Ľ×¤Ç¤š"
+
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
+msgstr "̤ĂΤÎŔŠĚóžňˇď¤Ç¤š"
+
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
+msgstr "ʸ˝ńĽÓĽĺĄźĽď¤ÎźÂšÔ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤żĄ§"
+
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
+msgstr "FAXĽÓĽĺĄźĽď¤ÎźÂšÔ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤żĄ§"
+
+#. ERR_FAILED_EXEC_FAX_CMD
+msgid "Failed to execute fax command:"
+msgstr "FAXĽłĽŢĽóĽÉ¤ÎźÂšÔ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤żĄ§"
+
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+msgid "Failed to execute mail image viewer:"
+msgstr "ĽáĄźĽëĽ¤ĽáĄźĽ¸ĽÓĽĺĄźĽď¤ÎźÂšÔ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤żĄ§"
+
+#. ERR_FAILED_EXEC_OCR_CMD
+msgid "Failed to execute ocr command:"
+msgstr "OCRĽłĽŢĽóĽÉ¤ÎźÂšÔ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤żĄ§"
+
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
+msgstr "ÉÔŔľ¤ĘĽŐĽěĄźĽŕĽŐĽŠĄźĽŢĽĂĽČ¤Ç¤š"
+
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
+msgstr "˛ňÁüĹ٤ňĽťĽĂĽČ¤Ç¤­¤Ţ¤ť¤ó"
+
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr ""
+"ĽŃĽšĽďĄźĽÉĽŐĽĄĽ¤ĽëĄĘ%sĄË¤Ď°ÂÁ´¤Ç¤Ď¤˘¤ę¤Ţ¤ť¤óĄŁľö˛Ä°Ŕ­x00¤ňĹŹÍѤˇ¤Ć¤Ż¤Ŕ¤ľ¤¤\n"
+
+#. ERR_ERROR
+msgid "error"
+msgstr "Ľ¨ĽéĄź"
+
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
+msgstr "Sane¤ÎĽáĽ¸ĽăĄźĽĐĄźĽ¸ĽçĽó¤ÎÉÔŔ°šç¤Ç¤š!"
+
+#. ERR_XSANE_MAJOR_VERSION
+msgid "XSane major version ="
+msgstr "XSane¤ÎĽáĽ¸ĽăĄźĽĐĄźĽ¸ĽçĽó¤Ď"
+
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
+msgstr "ĽĐĽĂĽŻĽ¨ĽóĽÉ¤ÎĽáĽ¸ĽăĄźĽĐĄźĽ¸ĽçĽó¤Ď"
+
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
+msgstr "*** Ľ×ĽíĽ°ĽéĽŕ¤Î°Űžď˝ŞÎť ***"
+
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
+msgstr "˛čÁüĽáĽâĽę¤ÎłäĹö¤Ć¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤żĄ§"
+
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr "Ľ×ĽěĽÓĽĺĄź¤ĎĽÓĽĂĽČżźĹ٤ňźčĆŔ¤Ç¤­¤Ţ¤ť¤ó"
+
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
+msgstr "GIMPĽľĽÝĄźĽČ¤Ź¸Ť¤Ä¤Ť¤ę¤Ţ¤ť¤ó"
+
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr "°ěťţĽ×ĽěĽÓĽĺĄźĽŐĽĄĽ¤Ľë¤ňşî¤ě¤Ţ¤ť¤ó"
+
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr "°ěťţĽ×ĽěĽÓĽĺĄźĽŐĽĄĽ¤ĽëĚž¤ňşî¤ě¤Ţ¤ť¤ó"
+
+#. ERR_CREATE_FAX_PROJECT
+msgid "Could not create faxproject"
+msgstr "FAXĽ×ĽíĽ¸Ľ§ĽŻĽČ¤ňşî¤ě¤Ţ¤ť¤ó"
+
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr "ĽŐĽĄĽ¤ĽëĚžĽŤĽŚĽóĽż¤ÎĽ˘ĽóĽŔĄźĽéĽó¤Ç¤š"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr "ˇŮšđĄ§ĽŞĽ×ĽˇĽçĽó¤ĎŔŠĚóžňˇď¤ÎĂͤňťý¤Ă¤Ć¤¤¤Ţ¤ť¤ó"
+
+#. WARN_XSANE_AS_ROOT
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+"ĽëĄźĽČ¸˘¸Â¤ÇXSane¤ňťČ¤Ś¤Î¤ĎĄ˘¤ż¤¤¤Ř¤ó´í¸ą¤Ç¤š!\n"
+"\n"
+"ĽëĄźĽČ¸˘¸Â¤ÇXSane¤ňĆ°¤Ť¤ˇ¤Ć¤¤¤ë¤Č¤­¤ÎĚäÂę¤Ë¤Ä¤¤¤Ć¤ÎĽĐĽ°Ęóšđ¤ĎĄ˘\n"
+"°ěŔÚÁ÷¤é¤Ę¤¤¤Ç¤Ż¤Ŕ¤ľ¤¤\n"
+"ĄÖ¤˘¤Ę¤ż¤ĎĆȤę¤Ę¤Î¤Ç¤šĄ×¤Ť¤éĄŞ"
+
+#. ERR_HEADER_ERROR
+msgid "Error"
+msgstr "Ľ¨ĽéĄź"
+
+#. ERR_HEADER_WARNING
+msgid "Warning"
+msgstr "ˇŮšđ"
+
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "žđĘó"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
+msgstr "ĽŐĽĄĽ¤Ľë¤ÎşîŔŽ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤żĄ§"
+
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
+msgstr "ĽÇĽĐĽ¤ĽšŔßÄęĆÉšţĂć¤ÎĽ¨ĽéĄź¤Ç¤šĄ§"
+
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
+msgstr "¤ĎĽÇĽĐĽ¤ĽšŔßÄęĽŐĽĄĽ¤Ľë¤Ç¤Ď¤˘¤ę¤Ţ¤ť¤ó!!!"
+
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
+msgstr "Netscape¤ÎźÂšÔ¤ËźşÇÔ¤ˇ¤Ţ¤ˇ¤ż!"
+
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
+msgstr "FAXÁ÷żŽĄ§źőżŽľĄ¤ŹÄęľÁ¤ľ¤ě¤Ć¤¤¤Ţ¤ť¤ó"
+
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
+msgstr "¤ĎĽÇĽĐĽ¤Ľš¤ËÂФˇ¤ĆşîŔŽ¤ľ¤ě¤Ć¤¤¤Ţ¤š"
+
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
+msgstr "ĽÇĽĐĽ¤ĽšÍѤ˝Ȥ¤¤ż¤¤"
+
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
+msgstr "¤ł¤ě¤ĎĚäÂę¤Îźď¤Ë¤Ę¤ë¤Ť¤â!"
+
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr "%d¸Ä¤Î˛čÁü¤ŹĚ¤Ęݸ¤Ç¤š"
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "ĽŐĽĄĽ¤Ľë %s ¤Ď´ű¤Ë¸şß¤ˇ¤Ć¤¤¤Ţ¤š"
+
+#. ERR_FILE_NOT_EXISTS
+#, c-format
+msgid "File %s does not exist"
+msgstr "ĽŐĽĄĽ¤Ľë %s ¤Ď¸şß¤ˇ¤Ţ¤ť¤ó"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, c-format
+msgid "File %s is not a postscript file"
+msgstr "ĽŐĽĄĽ¤Ľë %s ¤ĎPostScriptĽŐĽĄĽ¤Ľë¤Ç¤Ď¤˘¤ę¤Ţ¤ť¤ó"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "%dĽÓĽĂĽČ¤ÇĽľĽÝĄźĽČ¤ľ¤ě¤Ć¤¤¤Ę¤¤˝ĐÎĎĽŐĽŠĄźĽŢĽĂĽČ¤Ç¤šĄ§ %s"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr "ĽÓĽĺĄźĽď¤Î˛čÁü¤ŹĘݸ¤ľ¤ě¤Ć¤¤¤Ţ¤ť¤ó"
+
+#. TEXT_USAGE
+msgid "Usage:"
+msgstr "˝ńź°Ą§"
+
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr "[ĽŞĽ×ĽˇĽçĽó]...[ĽÇĽĐĽ¤Ľš]"
+
+#. TEXT_HELP
+#, fuzzy
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
+msgstr ""
+"ĽšĽżĄźĽČĽ˘ĽĂĽ×Ą§SANE(Scanner Access Now Easy)ĽÇĽĐĽ¤Ľš¤ÎGUI\n"
+"\n"
+"[ĽÇĽĐĽ¤Ľš] ¤ÎĽŐĽŠĄźĽŢĽĂĽČ¤ĎĽĐĽĂĽŻĽ¨ĽóĽÉ¤ÎĚžÁ°¤Ç¤šĄ§ĽÇĽĐĽ¤ĽšĽŐĽĄĽ¤Ľë (Îă "
+"umax:/dev/scanner)ĄŁ\n"
+"[ĽŞĽ×ĽˇĽçĽó]... ¤Ç¤ĎĄ˘°Ę˛ź¤ÎšŕĚܤÎÁȤߚç¤ď¤ť¤Ź˛ÄÇ˝¤Ç¤šĄ§\n"
+" -h, --help ¤ł¤ÎĽŘĽëĽ×ĽáĽĂĽťĄźĽ¸¤ňÉ˝ź¨¤ˇ¤Ć˝ŞÎť¤š¤ë\n"
+" -v, --version ĽĐĄźĽ¸ĽçĽóžÜĘó¤ňÉ˝ź¨¤š¤ë\n"
+" -l, --license ĽéĽ¤ĽťĽóĽšžđĘó¤ňÉ˝ź¨¤š¤ë\n"
+"\n"
+" -d, --device-settings file "
+"ĽÇĽĐĽ¤ĽšŔßÄę¤ňĽŐĽĄĽ¤Ľë¤Ť¤éĆɤߚţ¤ŕĄĘ\".drc\"Č´¤­¤ÇĄË\n"
+"\n"
+" -V, --viewer ĽÓĽĺĄźĽďĽâĄźĽÉ Ľ˘ĽŻĽĆĽŁĽÖ¤ÇľŻĆ°\n"
+" -s, --save ĽťĄźĽÖĽâĄźĽÉ Ľ˘ĽŻĽĆĽŁĽÖ¤ÇľŻĆ°\n"
+" -c, --copy ĽłĽÔĄźĽâĄźĽÉ Ľ˘ĽŻĽĆĽŁĽÖ¤ÇľŻĆ°\n"
+" -f, --fax FAXĽâĄźĽÉ Ľ˘ĽŻĽĆĽŁĽÖ¤ÇľŻĆ°\n"
+" -m, --mail ĽáĄźĽëĽâĄźĽÉ Ľ˘ĽŻĽĆĽŁĽÖ¤ÇľŻĆ°\n"
+" -n, --no-mode-selection XSane¤ÎĽâĄźĽÉÁŞÂňĽáĽËĽĺĄź¤ňĽŞĽŐ¤Ë¤š¤ë\n"
+"\n"
+" -F, --Fixed "
+"ĽáĽ¤ĽóĽŚĽŁĽóĽÉĽŚ¤ÎĽľĽ¤Ľş¤ň¸ÇÄęĄĘŔßÄęĂͤňžĺ˝ń¤­ĄË\n"
+" -R, --Resizeable "
+"ĽáĽ¤ĽóĽŚĽŁĽóĽÉĽŚ¤ňĽšĽŻĽíĄźĽëĄŚĽęĽľĽ¤Ľş˛ÄÇ˝¤Ë¤š¤ëĄĘŔßÄęĂͤňžĺ˝ń¤­ĄË\n"
+"\n"
+" -p, --print-filenames XSane¤ÇşîŔŽ¤ˇ¤ż˛čÁüĽŐĽĄĽ¤ĽëĚž¤ň°őşţ\n"
+" -N, --force-filename name "
+"ĽŐĽĄĽ¤ĽëĚž¤ňśŻŔŠ¤ˇ¤ĆĄ˘ĽćĄźĽśĄźĽŐĽĄĽ¤ĽëĚž¤ÎÁŞÂň¤ňĚľ¸ú¤Ë¤š¤ë\n"
+"\n"
+" --display X11-display X11¤ÎĽÇĽŁĽšĽ×ĽěĽ¤˝ĐÎϤ˼ęĽŔĽ¤ĽěĽŻĽČ¤š¤ë\n"
+" --no-xshm śŚÍ­ĽáĽâĽę¤ÎĽ¤ĽáĄźĽ¸¤ňťČ¤ď¤Ę¤¤\n"
+" --sync X11ĽľĄźĽĐ¤Ř¤ÎĆą´üŔÜÂł¤ňÍ׾ᤚ¤ë"
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
+msgstr "Ľ¤ĽóĽżĄźĽŐĽ§Ľ¤ĽšSANE¤ÎĽŐĽíĽóĽČĽ¨ĽóĽÉ"
+
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+"¤ł¤ÎľĄÇ˝¤ĎĄ˘Ľ¤ĽóĽżĄźĽŐĽ§Ľ¤ĽšSANE(Scanner Access Now "
+"Easy)¤ňÄ̤¸¤ĆĽšĽ­ĽăĽĘ¤ň¤Ď¤¸¤á¤Č¤š¤ë˛čÁüźčšţ¤ßĽÇĽĐĽ¤Ľš¤Ř¤ÎĽ˘ĽŻĽťĽš¤ňÄ󜥤ˇ¤Ţ¤š"
+"ĄŁ"
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr "<Toolbox>/File/Acquire/XSane: ĽÇĽĐĽ¤ĽšĽŔĽ¤Ľ˘ĽíĽ°..."
+
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
+msgstr "<Toolbox>/File/Acquire/XSane: "
+
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr "<Toolbox>/Xtns/XSane/Device dialog..."
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
+msgstr "<Toolbox>/Xtns/XSane/"
+
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr "ĽŐĽëĽľĽ¤Ľş"
+
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr "DIN A3 ˝Ä"
+
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr "DIN A3 ˛Ł"
+
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr "DIN A4 ˝Ä"
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr "DIN A4 ˛Ł"
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr "DIN A5 ˝Ä"
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr "DIN A5 ˛Ł"
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
+msgstr "13cm X 18cm"
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
+msgstr "18cm X 13cm"
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
+msgstr "10cm X 15cm"
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
+msgstr "15cm X 10cm"
+
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr "9cm X 13cm"
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr "13cm X 9cm"
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr "ĽęĄźĽŹĽëĽľĽ¤Ľş ˝Ä"
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr "ĽęĄźĽŹĽëĽľĽ¤Ľş ˛Ł"
+
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr "ĽěĽżĄźĽľĽ¤Ľş ˝Ä"
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr "ĽěĽżĄźĽľĽ¤Ľş ˛Ł"
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr "ĽŐĽëĽěĽóĽ¸"
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr "ĽšĽéĽ¤ĽÉ"
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+msgid "Standard negative"
+msgstr "ɸ˝ŕ¤ÎĽÍĽŹ"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr "Agfa¤ÎĽÍĽŹ"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr "Agfa XRG 200-4"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr "Agfa negative HDC 100"
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+msgid "Fuji negative"
+msgstr "ÉٝμռŁĽëĽŕ¤ÎĽÍĽŹ"
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr "ĽłĽŔĽĂĽŻ¤ÎĽÍĽŹ"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+msgid "Konica negative"
+msgstr "ĽłĽËĽŤ¤ÎĽÍĽŹ"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+msgid "Konica negative VX 100"
+msgstr "ĽłĽËĽŤ VX 100"
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr "Rossmann HR 100"
+
+#. Sane backend messages
+msgid "flatbed scanner"
+msgstr "ĽŐĽéĽĂĽČĽŮĽĂĽÉĽšĽ­ĽăĽĘ"
+
+msgid "frame grabber"
+msgstr "ĽŐĽěĄźĽŕźčšţ¤ß"
+
+msgid "handheld scanner"
+msgstr "ĽĎĽóĽÉĽŘĽëĽÉĽšĽ­ĽăĽĘ"
+
+msgid "still camera"
+msgstr "ĽšĽÁĄźĽëĽŤĽáĽé"
+
+msgid "video camera"
+msgstr "ĽÓĽÇĽŞĽŤĽáĽé"
+
+msgid "virtual device"
+msgstr "˛žÁŰĽÇĽĐĽ¤Ľš"
+
+msgid "Success"
+msgstr "ŔŽ¸ů"
+
+msgid "Operation not supported"
+msgstr "ĽŞĽÚĽěĄźĽˇĽçĽó¤ĎĽľĽÝĄźĽČ¤ľ¤ě¤Ć¤¤¤Ţ¤ť¤ó"
+
+msgid "Operation was cancelled"
+msgstr "ĽŞĽÚĽěĄźĽˇĽçĽó¤Ďźč¤ęžĂ¤ľ¤ě¤Ţ¤ˇ¤ż"
+
+msgid "Device busy"
+msgstr "ĽÇĽĐĽ¤Ľš¤ŹĽÓĽ¸Ąź¤Ç¤š"
+
+msgid "Invalid argument"
+msgstr "ÉÔŔľ¤Ę°úżô¤Ç¤š"
+
+msgid "End of file reached"
+msgstr "ĽŐĽĄĽ¤Ľë˝ŞĂź¤Ţ¤Ç¤­¤Ţ¤ˇ¤ż"
+
+msgid "Document feeder jammed"
+msgstr "ľëťćˇĎĹý¤Ë°Űžď"
+
+msgid "Document feeder out of documents"
+msgstr "Íѝ椏­¤ę¤Ţ¤ť¤ó"
+
+msgid "Scanner cover is open"
+msgstr "ĽšĽ­ĽăĽĘ¤ÎĽŤĽĐĄź¤ŹłŤ¤¤¤Ć¤¤¤Ţ¤š"
+
+msgid "Error during device I/O"
+msgstr "ĽÇĽĐĽ¤ĽšI/OĽ¨ĽéĄź"
+
+msgid "Out of memory"
+msgstr "ĽŞĄźĽĐĄźĽŐĽíĄź"
+
+msgid "Access to resource has been denied"
+msgstr "ĽęĽ˝ĄźĽš¤Ř¤ÎĽ˘ĽŻĽťĽš¤ŹľńČݤľ¤ě¤Ţ¤ˇ¤ż"
diff --git a/po/make_newlanguage.po.in b/po/make_newlanguage.po.in
deleted file mode 100755
index 60e5f0b..0000000
--- a/po/make_newlanguage.po.in
+++ /dev/null
@@ -1,3 +0,0 @@
-gcc -E -P - <newlanguage.po.in.in | sed -e "s/^_/msgid /g" - | cat newlanguage.po.in.header - >newlanguage.po.in
-
-
diff --git a/po/messages b/po/messages
new file mode 100644
index 0000000..0542251
--- /dev/null
+++ b/po/messages
Binary files differ
diff --git a/po/newlanguage.po.in b/po/newlanguage.po.in
deleted file mode 100644
index 580ffa5..0000000
--- a/po/newlanguage.po.in
+++ /dev/null
@@ -1,1567 +0,0 @@
-#include "../frontend/xsane-text.h"
-#define _(x) x
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#nls translation file for xsane
-#language: newlanguage (abbreviation)
-
-#original text: "About"
-msgid WINDOW_ABOUT
-msgstr ""
-
-#original text: "authorization"
-msgid WINDOW_AUTHORIZE
-msgstr ""
-
-#original text: "info"
-msgid WINDOW_INFO
-msgstr ""
-
-#original text: "batch scan"
-msgid WINDOW_BATCH_SCAN
-msgstr ""
-
-#original text: "fax project"
-msgid WINDOW_FAX_PROJECT
-msgstr ""
-
-#original text: "rename fax page"
-msgid WINDOW_FAX_RENAME
-msgstr ""
-
-#original text: "setup"
-msgid WINDOW_SETUP
-msgstr ""
-
-#original text: "Histogram"
-msgid WINDOW_HISTOGRAM
-msgstr ""
-
-#original text: "Standard options"
-msgid WINDOW_STANDARD_OPTIONS
-msgstr ""
-
-#original text: "Advanced options"
-msgid WINDOW_ADVANCED_OPTIONS
-msgstr ""
-
-#original text: "device selection"
-msgid WINDOW_DEVICE_SELECTION
-msgstr ""
-
-#original text: "Preview"
-msgid WINDOW_PREVIEW
-msgstr ""
-
-#original text: "output filename"
-msgid WINDOW_OUTPUT_FILENAME
-msgstr ""
-
-#original text: "save device settings"
-msgid WINDOW_SAVE_SETTINGS
-msgstr ""
-
-#original text: "load device settings"
-msgid WINDOW_LOAD_SETTINGS
-msgstr ""
-
-#original text: "File"
-msgid MENU_FILE
-msgstr ""
-
-#original text: "Preferences"
-msgid MENU_PREFERENCES
-msgstr ""
-
-#original text: "View"
-msgid MENU_VIEW
-msgstr ""
-
-#original text: "Help"
-msgid MENU_HELP
-msgstr ""
-
-#original text: "About"
-msgid MENU_ITEM_ABOUT
-msgstr ""
-
-#original text: "Info"
-msgid MENU_ITEM_INFO
-msgstr ""
-
-#original text: "Exit"
-msgid MENU_ITEM_EXIT
-msgstr ""
-
-#original text: "Raw image"
-msgid FRAME_RAW_IMAGE
-msgstr ""
-
-#original text: "Enhanced image"
-msgid FRAME_ENHANCED_IMAGE
-msgstr ""
-
-#original text: "Start"
-msgid BUTTON_START
-msgstr ""
-
-#original text: "Ok"
-msgid BUTTON_OK
-msgstr ""
-
-#original text: "Apply"
-msgid BUTTON_APPLY
-msgstr ""
-
-#original text: "Cancel"
-msgid BUTTON_CANCEL
-msgstr ""
-
-#original text: "Close"
-msgid BUTTON_CLOSE
-msgstr ""
-
-#original text: "Overwrite"
-msgid BUTTON_OVERWRITE
-msgstr ""
-
-#original text: "Add area"
-msgid BUTTON_ADD_AREA
-msgstr ""
-
-#original text: "Delete"
-msgid BUTTON_DELETE
-msgstr ""
-
-#original text: "Show"
-msgid BUTTON_SHOW
-msgstr ""
-
-#original text: "Rename"
-msgid BUTTON_RENAME
-msgstr ""
-
-#original text: "Create project"
-msgid BUTTON_CREATE_PROJECT
-msgstr ""
-
-#original text: "Send project"
-msgid BUTTON_SEND_PROJECT
-msgstr ""
-
-#original text: "Delete project"
-msgid BUTTON_DELETE_PROJECT
-msgstr ""
-
-#original text: "Add printer"
-msgid BUTTON_ADD_PRINTER
-msgstr ""
-
-#original text: "Delete printer"
-msgid BUTTON_DELETE_PRINTER
-msgstr ""
-
-#original text: "Acquire Preview"
-msgid BUTTON_PREVIEW_ACQUIRE
-msgstr ""
-
-#original text: "Cancel Preview"
-msgid BUTTON_PREVIEW_CANCEL
-msgstr ""
-
-#original text: "Fine mode"
-msgid RADIO_BUTTON_FINE_MODE
-msgstr ""
-
-#original text: "Overwrite warning"
-msgid RADIO_BUTTON_OVERWRITE_WARNING
-msgstr ""
-
-#original text: "Increase filename counter"
-msgid RADIO_BUTTON_INCREASE_COUNTER
-msgstr ""
-
-#original text: "Skip existing numbers"
-msgid RADIO_BUTTON_SKIP_EXISTING_NRS
-msgstr ""
-
-#original text: "Main window size fixed"
-msgid RADIO_BUTTON_WINDOW_FIXED
-msgstr ""
-
-#original text: "Preserve preview image"
-msgid RADIO_BUTTON_PRESERVE_PRVIEW
-msgstr ""
-
-#original text: "Use private colormap"
-msgid RADIO_BUTTON_PRIVATE_COLORMAP
-msgstr ""
-
-#original text: "Available devices:"
-msgid TEXT_AVAILABLE_DEVICES
-msgstr ""
-
-#original text: "XSane options"
-msgid TEXT_XSANE_OPTIONS
-msgstr ""
-
-#original text: "XSane mode"
-msgid TEXT_XSANE_MODE
-msgstr ""
-
-#original text: "Scanner and backend:"
-msgid TEXT_SCANNER_BACKEND
-msgstr ""
-
-#original text: "Vendor:"
-msgid TEXT_VENDOR
-msgstr ""
-
-#original text: "Model:"
-msgid TEXT_MODEL
-msgstr ""
-
-#original text: "Type:"
-msgid TEXT_TYPE
-msgstr ""
-
-#original text: "Device:"
-msgid TEXT_DEVICE
-msgstr ""
-
-#original text: "Loaded backend:"
-msgid TEXT_LOADED_BACKEND
-msgstr ""
-
-#original text: "Sane version:"
-msgid TEXT_SANE_VERSION
-msgstr ""
-
-#original text: "Recent values:"
-msgid TEXT_RECENT_VALUES
-msgstr ""
-
-#original text: "Gamma correction by:"
-msgid TEXT_GAMMA_CORR_BY
-msgstr ""
-
-#original text: "scanner"
-msgid TEXT_SCANNER
-msgstr ""
-
-#original text: "software (xsane)"
-msgid TEXT_SOFTWARE_XSANE
-msgstr ""
-
-#original text: "none"
-msgid TEXT_NONE
-msgstr ""
-
-#original text: "Gamma input depth:"
-msgid TEXT_GAMMA_INPUT_DEPTH
-msgstr ""
-
-#original text: "Gamma output depth:"
-msgid TEXT_GAMMA_OUTPUT_DEPTH
-msgstr ""
-
-#original text: "Scanner output depth:"
-msgid TEXT_SCANNER_OUTPUT_DEPTH
-msgstr ""
-
-#original text: "XSane output formats:"
-msgid TEXT_OUTPUT_FORMATS
-msgstr ""
-
-#original text: "8 bit output formats:"
-msgid TEXT_8BIT_FORMATS
-msgstr ""
-
-#original text: "16 bit output formats:"
-msgid TEXT_16BIT_FORMATS
-msgstr ""
-
-#original text: "Authorization required for"
-msgid TEXT_AUTHORIZATION_REQ
-msgstr ""
-
-#original text: "Username :"
-msgid TEXT_USERNAME
-msgstr ""
-
-#original text: "Password :"
-msgid TEXT_PASSWORD
-msgstr ""
-
-#original text: "Invalid parameters."
-msgid TEXT_INVALID_PARAMS
-msgstr ""
-
-#original text: "version:"
-msgid TEXT_VERSION
-msgstr ""
-
-#original text: "package"
-msgid TEXT_PACKAGE
-msgstr ""
-
-#original text: "with GIMP support"
-msgid TEXT_WITH_GIMP_SUPPORT
-msgstr ""
-
-#original text: "without GIMP support"
-msgid TEXT_WITHOUT_GIMP_SUPPORT
-msgstr ""
-
-#original text: "compiled with GIMP-"
-msgid TEXT_GIMP_VERSION
-msgstr ""
-
-#original text: "unknown"
-msgid TEXT_UNKNOWN
-msgstr ""
-
-#original text: "Email:"
-msgid TEXT_EMAIL
-msgstr ""
-
-#original text: "File:"
-msgid TEXT_FILE
-msgstr ""
-
-#original text: "0x0: 0KB"
-msgid TEXT_INFO_BOX
-msgstr ""
-
-#original text: "Printer selection:"
-msgid TEXT_SETUP_PRINTER_SEL
-msgstr ""
-
-#original text: "Name:"
-msgid TEXT_SETUP_PRINTER_NAME
-msgstr ""
-
-#original text: "Command:"
-msgid TEXT_SETUP_PRINTER_CMD
-msgstr ""
-
-#original text: "Copy number option:"
-msgid TEXT_SETUP_COPY_NR_OPT
-msgstr ""
-
-#original text: "Resolution (dpi):"
-msgid TEXT_SETUP_PRINTER_RES
-msgstr ""
-
-#original text: "Width (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_WIDTH
-msgstr ""
-
-#original text: "Height (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_HEIGHT
-msgstr ""
-
-#original text: "Left offset (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_LEFT
-msgstr ""
-
-#original text: "Bottom offset (1/72 inch):"
-msgid TEXT_SETUP_PRINTER_BOTTOM
-msgstr ""
-
-#original text: "Printer gamma value:"
-msgid TEXT_SETUP_PRINTER_GAMMA
-msgstr ""
-
-#original text: "Printer gamma red:"
-msgid TEXT_SETUP_PRINTER_GAMMA_RED
-msgstr ""
-
-#original text: "Printer gamma green:"
-msgid TEXT_SETUP_PRINTER_GAMMA_GREEN
-msgstr ""
-
-#original text: "Printer gamma blue:"
-msgid TEXT_SETUP_PRINTER_GAMMA_BLUE
-msgstr ""
-
-#original text: "JPEG image quality"
-msgid TEXT_SETUP_JPEG_QUALITY
-msgstr ""
-
-#original text: "PNG image compression"
-msgid TEXT_SETUP_PNG_COMPRESSION
-msgstr ""
-
-#original text: "TIFF multi bit image compression"
-msgid TEXT_SETUP_TIFF_COMPRESSION
-msgstr ""
-
-#original text: "TIFF lineart image compression"
-msgid TEXT_SETUP_TIFF_COMPRESSION_1
-msgstr ""
-
-#original text: "Preview gamma:"
-msgid TEXT_SETUP_PREVIEW_GAMMA
-msgstr ""
-
-#original text: "Preview gamma red:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_RED
-msgstr ""
-
-#original text: "Preview gamma green:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_GREEN
-msgstr ""
-
-#original text: "Preview gamma blue:"
-msgid TEXT_SETUP_PREVIEW_GAMMA_BLUE
-msgstr ""
-
-#original text: "Helpfile viewer (HTML):"
-msgid TEXT_SETUP_HELPFILE_VIEWER
-msgstr ""
-
-#original text: "Command:"
-msgid TEXT_SETUP_FAX_COMMAND
-msgstr ""
-
-#original text: "Receiver option:"
-msgid TEXT_SETUP_FAX_RECEIVER_OPTION
-msgstr ""
-
-#original text: "Postscriptfile option:"
-msgid TEXT_SETUP_FAX_POSTSCRIPT_OPT
-msgstr ""
-
-#original text: "Normal mode option:"
-msgid TEXT_SETUP_FAX_NORMAL_MODE_OPT
-msgstr ""
-
-#original text: "Fine mode option:"
-msgid TEXT_SETUP_FAX_FINE_MODE_OPT
-msgstr ""
-
-#original text: "Viewer (Postscript):"
-msgid TEXT_SETUP_FAX_VIEWER
-msgstr ""
-
-#original text: "Copy options"
-msgid NOTEBOOK_COPY_OPTIONS
-msgstr ""
-
-#original text: "Saving options"
-msgid NOTEBOOK_SAVING_OPTIONS
-msgstr ""
-
-#original text: "Display options"
-msgid NOTEBOOK_DISPLAY_OPTIONS
-msgstr ""
-
-#original text: "Fax options"
-msgid NOTEBOOK_FAX_OPTIONS
-msgstr ""
-
-#original text: "Scan"
-msgid MENU_ITEM_SCAN
-msgstr ""
-
-#original text: "Copy"
-msgid MENU_ITEM_COPY
-msgstr ""
-
-#original text: "Fax"
-msgid MENU_ITEM_FAX
-msgstr ""
-
-#original text: "Setup"
-msgid MENU_ITEM_SETUP
-msgstr ""
-
-#original text: "Show tooltips"
-msgid MENU_ITEM_SHOW_TOOLTIPS
-msgstr ""
-
-#original text: "Show preview"
-msgid MENU_ITEM_SHOW_PREVIEW
-msgstr ""
-
-#original text: "Show histogram"
-msgid MENU_ITEM_SHOW_HISTOGRAM
-msgstr ""
-
-#original text: "Show standard options"
-msgid MENU_ITEM_SHOW_STANDARDOPTIONS
-msgstr ""
-
-#original text: "Show advanced options"
-msgid MENU_ITEM_SHOW_ADVANCEDOPTIONS
-msgstr ""
-
-
-#original text: "Show resolution list"
-msgid MENU_ITEM_SHOW_RESOLUTIONLIST
-msgstr ""
-
-#original text: "Length unit"
-msgid MENU_ITEM_LENGTH_UNIT
-msgstr ""
-
-#original text: "millimeters"
-msgid SUBMENU_ITEM_LENGTH_MILLIMETERS
-msgstr ""
-
-#original text: "centimeters"
-msgid SUBMENU_ITEM_LENGTH_CENTIMETERS
-msgstr ""
-
-#original text: "inches"
-msgid SUBMENU_ITEM_LENGTH_INCHES
-msgstr ""
-
-#original text: "Save device settings"
-msgid MENU_ITEM_SAVE_DEVICE_SETTINGS
-msgstr ""
-
-#original text: "Load device settings"
-msgid MENU_ITEM_LOAD_DEVICE_SETTINGS
-msgstr ""
-
-#original text: "Xsane doc"
-msgid MENU_ITEM_XSANE_DOC
-msgstr ""
-
-#original text: "Backend doc"
-msgid MENU_ITEM_BACKEND_DOC
-msgstr ""
-
-#original text: "Available backends"
-msgid MENU_ITEM_AVAILABLE_BACKENDS
-msgstr ""
-
-#original text: "Scantips"
-msgid MENU_ITEM_SCANTIPS
-msgstr ""
-
-#original text: "Problems?"
-msgid MENU_ITEM_PROBLEMS
-msgstr ""
-
-#original text: "no compression"
-msgid MENU_ITEM_TIFF_COMP_NONE
-msgstr ""
-
-#original text: "CCITT 1D Huffman compression"
-msgid MENU_ITEM_TIFF_COMP_CCITTRLE
-msgstr ""
-
-#original text: "CCITT Group 3 Fax compression"
-msgid MENU_ITEM_TIFF_COMP_CCITFAX3
-msgstr ""
-
-#original text: "CCITT Group 4 Fax compression"
-msgid MENU_ITEM_TIFF_COMP_CCITFAX4
-msgstr ""
-
-#original text: "JPEG DCT compression"
-msgid MENU_ITEM_TIFF_COMP_JPEG
-msgstr ""
-
-#original text: "pack bits"
-msgid MENU_ITEM_TIFF_COMP_PACKBITS
-msgstr ""
-
-#original text: "by ext"
-msgid MENU_ITEM_FILETYPE_BY_EXT
-msgstr ""
-
-#original text: "Saving image"
-msgid PROGRESS_SAVING
-msgstr ""
-
-#original text: "Saving fax image"
-msgid PROGRESS_SAVING_FAX
-msgstr ""
-
-#original text: "Converting data...."
-msgid PROGRESS_CONVERTING_DATA
-msgstr ""
-
-#original text: "Converting to postscript"
-msgid PROGRESS_CONVERTING_PS
-msgstr ""
-
-#original text: "Scanning"
-msgid PROGRESS_SCANNING
-msgstr ""
-
-#original text: "Receiving %s data for `%s'..."
-msgid PROGRESS_RECEIVING_SCAN
-msgstr ""
-
-#original text: "Receiving %s data for photocopy ..."
-msgid PROGRESS_RECEIVING_COPY
-msgstr ""
-
-#original text: "Receiving %s data for fax ..."
-msgid PROGRESS_RECEIVING_FAX
-msgstr ""
-
-#original text: "Receiving %s data for GIMP..."
-msgid PROGRESS_RECEIVING_GIMP
-msgstr ""
-
-
-#original text: "Use XSane for SCANning, photoCOPYing, FAXing..."
-msgid DESC_XSANE_MODE
-msgstr ""
-
-#original text: "Browse for image filename"
-msgid DESC_BROWSE_FILENAME
-msgstr ""
-
-#original text: "Filename for scanned image"
-msgid DESC_FILENAME
-msgstr ""
-
-#original text: "Filename extension and type of image format"
-msgid DESC_FILETYPE
-msgstr ""
-
-#original text: "Enter name of fax project"
-msgid DESC_FAXPROJECT
-msgstr ""
-
-#original text: "Enter new name for faxpage"
-msgid DESC_FAXPAGENAME
-msgstr ""
-
-#original text: "Enter receiver phone number or address"
-msgid DESC_FAXRECEIVER
-msgstr ""
-
-#original text: "Select printer definition"
-msgid DESC_PRINTER_SELECT
-msgstr ""
-
-#original text: "Set scan resolution"
-msgid DESC_RESOLUTION
-msgstr ""
-
-#original text: "Set zoomfactor"
-msgid DESC_ZOOM
-msgstr ""
-
-#original text: "Set number of copies"
-msgid DESC_COPY_NUMBER
-msgstr ""
-
-#original text: "Negative: Invert colors for scanning negatives\n" "e.g. swap black and white"
-msgid DESC_NEGATIVE
-msgstr ""
-
-#original text: "Set gamma value"
-msgid DESC_GAMMA
-msgstr ""
-
-#original text: "Set gamma value for red component"
-msgid DESC_GAMMA_R
-msgstr ""
-
-#original text: "Set gamma value for green component"
-msgid DESC_GAMMA_G
-msgstr ""
-
-#original text: "Set gamma value for blue component"
-msgid DESC_GAMMA_B
-msgstr ""
-
-#original text: "Set brightness"
-msgid DESC_BRIGHTNESS
-msgstr ""
-
-#original text: "Set brightness for red component"
-msgid DESC_BRIGHTNESS_R
-msgstr ""
-
-#original text: "Set brightness for green component"
-msgid DESC_BRIGHTNESS_G
-msgstr ""
-
-#original text: "Set brightness for blue component"
-msgid DESC_BRIGHTNESS_B
-msgstr ""
-
-#original text: "Set contrast"
-msgid DESC_CONTRAST
-msgstr ""
-
-#original text: "Set contrast for red component"
-msgid DESC_CONTRAST_R
-msgstr ""
-
-#original text: "Set contrast for green component"
-msgid DESC_CONTRAST_G
-msgstr ""
-
-#original text: "Set contrast for blue component"
-msgid DESC_CONTRAST_B
-msgstr ""
-
-#original text: "RGB default: Set enhancement values for red, green and blue to default values:\n" " gamma = 1.0\n" " brightness = 0\n" " contrast = 0"
-msgid DESC_RGB_DEFAULT
-msgstr ""
-
-#original text: "Autoadjust gamma, brightness and contrast in dependance of selected area"
-msgid DESC_ENH_AUTO
-msgstr ""
-
-#original text: "Set default enhancement values:\n" "gamma = 1.0\n" "brightness = 0\n" "contrast = 0"
-msgid DESC_ENH_DEFAULT
-msgstr ""
-
-#original text: "Restore enhancement values from preferences"
-msgid DESC_ENH_RESTORE
-msgstr ""
-
-#original text: "Store active enhancement values to preferences"
-msgid DESC_ENH_STORE
-msgstr ""
-
-#original text: "Show histogram of intensity/gray"
-msgid DESC_HIST_INTENSITY
-msgstr ""
-
-#original text: "Show histogram of red component"
-msgid DESC_HIST_RED
-msgstr ""
-
-#original text: "Show histogram of green component"
-msgid DESC_HIST_GREEN
-msgstr ""
-
-#original text: "Show histogram of blue component"
-msgid DESC_HIST_BLUE
-msgstr ""
-
-#original text: "Display histogram with lines instead of pixels"
-msgid DESC_HIST_PIXEL
-msgstr ""
-
-#original text: "Show logarithm of pixelcount"
-msgid DESC_HIST_LOG
-msgstr ""
-
-#original text: "Select definition to change"
-msgid DESC_PRINTER_SETUP
-msgstr ""
-
-#original text: "Define a name for the selection of this definition"
-msgid DESC_PRINTER_NAME
-msgstr ""
-
-#original text: "Enter command to be executed in copy mode (e.g. \"lpr -\")"
-msgid DESC_PRINTER_COMMAND
-msgstr ""
-
-#original text: "Enter option for copy numbers"
-msgid DESC_COPY_NUMBER_OPTION
-msgstr ""
-
-#original text: "Resolution with which images are printed and saved in postscript"
-msgid DESC_PRINTER_RESOLUTION
-msgstr ""
-
-#original text: "Width of printable area in 1/72 inch"
-msgid DESC_PRINTER_WIDTH
-msgstr ""
-
-#original text: "Height of printable area in 1/72 inch"
-msgid DESC_PRINTER_HEIGHT
-msgstr ""
-
-#original text: "Left offset from the edge of the paper to the printable area in 1/72 inch"
-msgid DESC_PRINTER_LEFTOFFSET
-msgstr ""
-
-#original text: "Bottom offset from the edge of the paper to the printable area in 1/72 inch"
-msgid DESC_PRINTER_BOTTOMOFFSET
-msgstr ""
-
-#original text: "Additional gamma value for photocopy"
-msgid DESC_PRINTER_GAMMA
-msgstr ""
-
-#original text: "Additional gamma value for red component for photocopy"
-msgid DESC_PRINTER_GAMMA_RED
-msgstr ""
-
-#original text: "Additional gamma value for green component for photocopy"
-msgid DESC_PRINTER_GAMMA_GREEN
-msgstr ""
-
-#original text: "Additional gamma value for blue component for photocopy"
-msgid DESC_PRINTER_GAMMA_BLUE
-msgstr ""
-
-#original text: "Quality in percent if image is saved as jpeg or tiff with jpeg compression"
-msgid DESC_JPEG_QUALITY
-msgstr ""
-
-#original text: "Compression if image is saved as png"
-msgid DESC_PNG_COMPRESSION
-msgstr ""
-
-#original text: "Compression type if multi bit image is saved as tiff"
-msgid DESC_TIFF_COMPRESSION
-msgstr ""
-
-#original text: "Compression type if lineart image is saved as tiff"
-msgid DESC_TIFF_COMPRESSION_1
-msgstr ""
-
-#original text: "Warn before overwriting an existing file"
-msgid DESC_OVERWRITE_WARNING
-msgstr ""
-
-#original text: "If the filename is of the form \"name-001.ext\" " "(where the number of digits is free) " "the number is increased after a scan is finished"
-msgid DESC_INCREASE_COUNTER
-msgstr ""
-
-#original text: "If filename counter is automatically increased, used numbers are skipped"
-msgid DESC_SKIP_EXISTING
-msgstr ""
-
-#original text: "Use fixed main window size or scrolled, resizable main window"
-msgid DESC_MAIN_WINDOW_FIXED
-msgstr ""
-
-#original text: "Preserve preview image for next program start"
-msgid DESC_PREVIEW_PRESERVE
-msgstr ""
-
-#original text: "Use an own colormap for preview if display depth is 8 bpp"
-msgid DESC_PREVIEW_COLORMAP
-msgstr ""
-
-#original text: "Set gamma correction value for preview image"
-msgid DESC_PREVIEW_GAMMA
-msgstr ""
-
-#original text: "Set gamma correction value for red component of preview image"
-msgid DESC_PREVIEW_GAMMA_RED
-msgstr ""
-
-#original text: "Set gamma correction value for green component of preview image"
-msgid DESC_PREVIEW_GAMMA_GREEN
-msgstr ""
-
-#original text: "Set gamma correction value for blue component of preview image"
-msgid DESC_PREVIEW_GAMMA_BLUE
-msgstr ""
-
-#original text: "Enter command to be executed to display helpfiles, must be a html-viewer!"
-msgid DESC_DOC_VIEWER
-msgstr ""
-
-#original text: "Enter command to be executed in fax mode"
-msgid DESC_FAX_COMMAND
-msgstr ""
-
-#original text: "Enter option to specify receiver"
-msgid DESC_FAX_RECEIVER_OPT
-msgstr ""
-
-#original text: "Enter option to specify postscript files following"
-msgid DESC_FAX_POSTSCRIPT_OPT
-msgstr ""
-
-#original text: "Enter option to specify normal mode (low resolution)"
-msgid DESC_FAX_NORMAL_OPT
-msgstr ""
-
-#original text: "Enter option to specify fine mode (high resolution)"
-msgid DESC_FAX_FINE_OPT
-msgstr ""
-
-#original text: "Enter command to be executed to view a fax"
-msgid DESC_FAX_VIEWER
-msgstr ""
-
-#original text: "Use high vertical resolution (196 lpi instead of 98 lpi)"
-msgid DESC_FAX_FINE_MODE
-msgstr ""
-
-#original text: "Pick white point"
-msgid DESC_PIPETTE_WHITE
-msgstr ""
-
-#original text: "Pick gray point"
-msgid DESC_PIPETTE_GRAY
-msgstr ""
-
-#original text: "Pick black point"
-msgid DESC_PIPETTE_BLACK
-msgstr ""
-
-#original text: "Use full scanarea"
-msgid DESC_ZOOM_FULL
-msgstr ""
-
-#original text: "Zoom 20% out"
-msgid DESC_ZOOM_OUT
-msgstr ""
-
-#original text: "Zoom into selected area"
-msgid DESC_ZOOM_IN
-msgstr ""
-
-#original text: "Undo last zoom"
-msgid DESC_ZOOM_UNDO
-msgstr ""
-
-#original text: "Select visible area"
-msgid DESC_FULL_PREVIEW_AREA
-msgstr ""
-
-#original text: "Failed to determine home directory:"
-msgid ERR_HOME_DIR
-msgstr ""
-
-#original text: "Filename too long"
-msgid ERR_FILENAME_TOO_LONG
-msgstr ""
-
-#original text: "Failed to set value of option"
-msgid ERR_SET_OPTION
-msgstr ""
-
-#original text: "Failed to obtain value of option"
-msgid ERR_GET_OPTION
-msgstr ""
-
-#original text: "Error obtaining option count"
-msgid ERR_OPTION_COUNT
-msgstr ""
-
-#original text: "Failed to open device"
-msgid ERR_DEVICE_OPEN_FAILED
-msgstr ""
-
-#original text: "no devices available"
-msgid ERR_NO_DEVICES
-msgstr ""
-
-#original text: "Error during read:"
-msgid ERR_DURING_READ
-msgstr ""
-
-#original text: "Error during save:"
-msgid ERR_DURING_SAVE
-msgstr ""
-
-#original text: "Can't handle depth"
-msgid ERR_BAD_DEPTH
-msgstr ""
-
-#original text: "GIMP can't handle depth"
-msgid ERR_GIMP_BAD_DEPTH
-msgstr ""
-
-#original text: "Unknown file format for saving"
-msgid ERR_UNKNOWN_SAVING_FORMAT
-msgstr ""
-
-#original text: "Failed to open"
-msgid ERR_OPEN_FAILED
-msgstr ""
-
-#original text: "Failed to open pipe for executing printercommand"
-msgid ERR_FAILED_PRINTER_PIPE
-msgstr ""
-
-#original text: "Failed to execute printercommand:"
-msgid ERR_FAILED_EXEC_PRINTER_CMD
-msgstr ""
-
-#original text: "Failed to start scanner:"
-msgid ERR_FAILED_START_SCANNER
-msgstr ""
-
-#original text: "Failed to get parameters:"
-msgid ERR_FAILED_GET_PARAMS
-msgstr ""
-
-#original text: "No output format given"
-msgid ERR_NO_OUTPUT_FORMAT
-msgstr ""
-
-#original text: "out of memory"
-msgid ERR_NO_MEM
-msgstr ""
-
-#original text: "LIBTIFF reports error"
-msgid ERR_LIBTIFF
-msgstr ""
-
-#original text: "LIBPNG reports error"
-msgid ERR_LIBPNG
-msgstr ""
-
-#original text: "unknown type"
-msgid ERR_UNKNOWN_TYPE
-msgstr ""
-
-#original text: "unknown constraint type"
-msgid ERR_UNKNOWN_CONSTRAINT_TYPE
-msgstr ""
-
-#original text: "Failed to execute documentation viewer:"
-msgid ERR_FAILD_EXEC_DOC_VIEWER
-msgstr ""
-
-#original text: "Failed to execute fax viewer:"
-msgid ERR_FAILD_EXEC_FAX_VIEWER
-msgstr ""
-
-#original text: "Failed to execute faxcommand:"
-msgid ERR_FAILED_EXEC_FAX_CMD
-msgstr ""
-
-#original text: "bad frame format"
-msgid ERR_BAD_FRAME_FORMAT
-msgstr ""
-
-#original text: "unable to set resolution"
-msgid ERR_FAILED_SET_RESOLUTION
-msgstr ""
-
-#original text: "error"
-msgid ERR_ERROR
-msgstr ""
-
-#original text: "Sane major version number mismatch!"
-msgid ERR_MAJOR_VERSION_NR_CONFLICT
-msgstr ""
-
-#original text: "xsane major version ="
-msgid ERR_XSANE_MAJOR_VERSION
-msgstr ""
-
-#original text: "backend major version ="
-msgid ERR_BACKEND_MAJOR_VERSION
-msgstr ""
-
-#original text: "*** PROGRAM ABORTED ***"
-msgid ERR_PROGRAM_ABORTED
-msgstr ""
-
-#original text: "Failed to allocate image memory:"
-msgid ERR_FAILED_ALLOCATE_IMAGE
-msgstr ""
-
-#original text: "Preview cannot handle bit depth"
-msgid ERR_PREVIEW_BAD_DEPTH
-msgstr ""
-
-#original text: "GIMP support missing"
-msgid ERR_GIMP_SUPPORT_MISSING
-msgstr ""
-
-#original text: "Filename counter overflow"
-msgid WARN_COUNTER_OVERFLOW
-msgstr ""
-
-#original text: "warning: option has no value constraint"
-msgid WARN_NO_VALUE_CONSTRAINT
-msgstr ""
-
-#original text: "Ok"
-msgid ERR_BUTTON_OK
-msgstr ""
-
-#original text: "Error"
-msgid ERR_HEADER_ERROR
-msgstr ""
-
-#original text: "Warning"
-msgid ERR_HEADER_WARNING
-msgstr ""
-
-#original text: "Failed to create file:"
-msgid ERR_FAILED_CREATE_FILE
-msgstr ""
-
-#original text: "Error while loading device settings:"
-msgid ERR_LOAD_DEVICE_SETTINGS
-msgstr ""
-
-#original text: "is not a device-rc-file !!!"
-msgid ERR_NO_DRC_FILE
-msgstr ""
-
-#original text: "Failed to execute netscape!"
-msgid ERR_NETSCAPE_EXECUTE_FAIL
-msgstr ""
-
-#original text: "Send fax: no receiver defined"
-msgid ERR_SENDFAX_RECEIVER_MISSING
-msgstr ""
-
-#original text: "has been created for device"
-msgid ERR_CREATED_FOR_DEVICE
-msgstr ""
-
-#original text: "you want to use it for device"
-msgid ERR_USED_FOR_DEVICE
-msgstr ""
-
-#original text: "this may cause problems!"
-msgid ERR_MAY_CAUSE_PROBLEMS
-msgstr ""
-
-#original text: "Usage:"
-msgid TEXT_USAGE
-msgstr ""
-
-#original text: "[OPTION]... [DEVICE]"
-msgid TEXT_USAGE_OPTIONS
-msgstr ""
-
-#original text: "Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\n-h, --help display this help message and exit\n-v, --version print version information\n\n-d, --device-settings file load device settings from file (without \".drc\")\n\n-s, --scan start with scan-mode active\n-c, --copy start with copy-mode active\n-f, --fax start with fax-mode active\n-n, --no-mode-selection disable menu for xsane mode selection\n\n-F, --Fixed fixed main window size (overwrite preferences value)\n-R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\n--display X11-display redirect output to X11-display\n--no-xshm do not use shared memory images\n--sync request a synchronous connection with the X11 server"
-msgid TEXT_HELP
-msgstr ""
-
-#original text: "Front-end to the SANE interface"
-msgid XSANE_GIMP_INSTALL_BLURB
-msgstr ""
-
-#original text: "This function provides access to scanners and other image acquisition devices through the SANE (Scanner Access Now Easy) interface."
-msgid XSANE_GIMP_INSTALL_HELP
-msgstr ""
-
-#original text: "<Toolbox>/File/Acquire/XSane: "
-msgid XSANE_GIMP_MENU
-msgstr ""
-
-#original text: "<Toolbox>/Xtns/XSane/"
-msgid XSANE_GIMP_MENU_OLD
-msgstr ""
-
-#original text: "<Toolbox>/File/Acquire/XSane: Device dialog..."
-msgid XSANE_GIMP_MENU_DIALOG
-msgstr ""
-
-#original text: "<Toolbox>/Xtns/XSane/Device dialog..."
-msgid XSANE_GIMP_MENU_DIALOG_OLD
-msgstr ""
-
-msgid "flatbed scanner"
-msgstr ""
-
-msgid "frame grabber"
-msgstr ""
-
-msgid "handheld scanner"
-msgstr ""
-
-msgid "still camera"
-msgstr ""
-
-msgid "video camera"
-msgstr ""
-
-msgid "virtual device"
-msgstr ""
-
-
-msgid "Success"
-msgstr ""
-
-msgid "Operation not supported"
-msgstr ""
-
-msgid "Operation was cancelled"
-msgstr ""
-
-msgid "Device busy"
-msgstr ""
-
-msgid "Invalid argument"
-msgstr ""
-
-msgid "End of file reached"
-msgstr ""
-
-msgid "Document feeder jammed"
-msgstr ""
-
-msgid "Document feeder out of documents"
-msgstr ""
-
-msgid "Scanner cover is open"
-msgstr ""
-
-msgid "Error during device I/O"
-msgstr ""
-
-msgid "Out of memory"
-msgstr ""
-
-msgid "Access to resource has been denied"
-msgstr ""
-
diff --git a/po/newlanguage.po.in.header b/po/newlanguage.po.in.header
deleted file mode 100644
index bbc768b..0000000
--- a/po/newlanguage.po.in.header
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "../frontend/xsane-text.h"
-#define _(x) x
diff --git a/po/newlanguage.po.in.in b/po/newlanguage.po.in.in
deleted file mode 100644
index 4423ce8..0000000
--- a/po/newlanguage.po.in.in
+++ /dev/null
@@ -1,1211 +0,0 @@
-#include "../frontend/xsane-text.h"
-#define _(x) x
-
-# nls translation file for xsane
-# language: newlanguage (abbreviation)
-
-# original text: WINDOW_ABOUT
-_WINDOW_ABOUT
-msgstr ""
-
-# original text: WINDOW_AUTHORIZE
-_WINDOW_AUTHORIZE
-msgstr ""
-
-# original text: WINDOW_INFO
-_WINDOW_INFO
-msgstr ""
-
-# original text: WINDOW_BATCH_SCAN
-_WINDOW_BATCH_SCAN
-msgstr ""
-
-# original text: WINDOW_FAX_PROJECT
-_WINDOW_FAX_PROJECT
-msgstr ""
-
-# original text: WINDOW_FAX_RENAME
-_WINDOW_FAX_RENAME
-msgstr ""
-
-# original text: WINDOW_SETUP
-_WINDOW_SETUP
-msgstr ""
-
-# original text: WINDOW_HISTOGRAM
-_WINDOW_HISTOGRAM
-msgstr ""
-
-# original text: WINDOW_STANDARD_OPTIONS
-_WINDOW_STANDARD_OPTIONS
-msgstr ""
-
-# original text: WINDOW_ADVANCED_OPTIONS
-_WINDOW_ADVANCED_OPTIONS
-msgstr ""
-
-# original text: WINDOW_DEVICE_SELECTION
-_WINDOW_DEVICE_SELECTION
-msgstr ""
-
-# original text: WINDOW_PREVIEW
-_WINDOW_PREVIEW
-msgstr ""
-
-# original text: WINDOW_OUTPUT_FILENAME
-_WINDOW_OUTPUT_FILENAME
-msgstr ""
-
-# original text: WINDOW_SAVE_SETTINGS
-_WINDOW_SAVE_SETTINGS
-msgstr ""
-
-# original text: WINDOW_LOAD_SETTINGS
-_WINDOW_LOAD_SETTINGS
-msgstr ""
-
-# original text: MENU_FILE
-_MENU_FILE
-msgstr ""
-
-# original text: MENU_PREFERENCES
-_MENU_PREFERENCES
-msgstr ""
-
-# original text: MENU_VIEW
-_MENU_VIEW
-msgstr ""
-
-# original text: MENU_HELP
-_MENU_HELP
-msgstr ""
-
-# original text: MENU_ITEM_ABOUT
-_MENU_ITEM_ABOUT
-msgstr ""
-
-# original text: MENU_ITEM_INFO
-_MENU_ITEM_INFO
-msgstr ""
-
-# original text: MENU_ITEM_EXIT
-_MENU_ITEM_EXIT
-msgstr ""
-
-# original text: FRAME_RAW_IMAGE
-_FRAME_RAW_IMAGE
-msgstr ""
-
-# original text: FRAME_ENHANCED_IMAGE
-_FRAME_ENHANCED_IMAGE
-msgstr ""
-
-# original text: BUTTON_START
-_BUTTON_START
-msgstr ""
-
-# original text: BUTTON_OK
-_BUTTON_OK
-msgstr ""
-
-# original text: BUTTON_APPLY
-_BUTTON_APPLY
-msgstr ""
-
-# original text: BUTTON_CANCEL
-_BUTTON_CANCEL
-msgstr ""
-
-# original text: BUTTON_CLOSE
-_BUTTON_CLOSE
-msgstr ""
-
-# original text: BUTTON_OVERWRITE
-_BUTTON_OVERWRITE
-msgstr ""
-
-# original text: BUTTON_ADD_AREA
-_BUTTON_ADD_AREA
-msgstr ""
-
-# original text: BUTTON_DELETE
-_BUTTON_DELETE
-msgstr ""
-
-# original text: BUTTON_SHOW
-_BUTTON_SHOW
-msgstr ""
-
-# original text: BUTTON_RENAME
-_BUTTON_RENAME
-msgstr ""
-
-# original text: BUTTON_CREATE_PROJECT
-_BUTTON_CREATE_PROJECT
-msgstr ""
-
-# original text: BUTTON_SEND_PROJECT
-_BUTTON_SEND_PROJECT
-msgstr ""
-
-# original text: BUTTON_DELETE_PROJECT
-_BUTTON_DELETE_PROJECT
-msgstr ""
-
-# original text: BUTTON_ADD_PRINTER
-_BUTTON_ADD_PRINTER
-msgstr ""
-
-# original text: BUTTON_DELETE_PRINTER
-_BUTTON_DELETE_PRINTER
-msgstr ""
-
-# original text: BUTTON_PREVIEW_ACQUIRE
-_BUTTON_PREVIEW_ACQUIRE
-msgstr ""
-
-# original text: BUTTON_PREVIEW_CANCEL
-_BUTTON_PREVIEW_CANCEL
-msgstr ""
-
-# original text: RADIO_BUTTON_FINE_MODE
-_RADIO_BUTTON_FINE_MODE
-msgstr ""
-
-# original text: RADIO_BUTTON_OVERWRITE_WARNING
-_RADIO_BUTTON_OVERWRITE_WARNING
-msgstr ""
-
-# original text: RADIO_BUTTON_INCREASE_COUNTER
-_RADIO_BUTTON_INCREASE_COUNTER
-msgstr ""
-
-# original text: RADIO_BUTTON_SKIP_EXISTING_NRS
-_RADIO_BUTTON_SKIP_EXISTING_NRS
-msgstr ""
-
-# original text: RADIO_BUTTON_WINDOW_FIXED
-_RADIO_BUTTON_WINDOW_FIXED
-msgstr ""
-
-# original text: RADIO_BUTTON_PRESERVE_PRVIEW
-_RADIO_BUTTON_PRESERVE_PRVIEW
-msgstr ""
-
-# original text: RADIO_BUTTON_PRIVATE_COLORMAP
-_RADIO_BUTTON_PRIVATE_COLORMAP
-msgstr ""
-
-# original text: TEXT_AVAILABLE_DEVICES
-_TEXT_AVAILABLE_DEVICES
-msgstr ""
-
-# original text: TEXT_XSANE_OPTIONS
-_TEXT_XSANE_OPTIONS
-msgstr ""
-
-# original text: TEXT_XSANE_MODE
-_TEXT_XSANE_MODE
-msgstr ""
-
-# original text: TEXT_SCANNER_BACKEND
-_TEXT_SCANNER_BACKEND
-msgstr ""
-
-# original text: TEXT_VENDOR
-_TEXT_VENDOR
-msgstr ""
-
-# original text: TEXT_MODEL
-_TEXT_MODEL
-msgstr ""
-
-# original text: TEXT_TYPE
-_TEXT_TYPE
-msgstr ""
-
-# original text: TEXT_DEVICE
-_TEXT_DEVICE
-msgstr ""
-
-# original text: TEXT_LOADED_BACKEND
-_TEXT_LOADED_BACKEND
-msgstr ""
-
-# original text: TEXT_SANE_VERSION
-_TEXT_SANE_VERSION
-msgstr ""
-
-# original text: TEXT_RECENT_VALUES
-_TEXT_RECENT_VALUES
-msgstr ""
-
-# original text: TEXT_GAMMA_CORR_BY
-_TEXT_GAMMA_CORR_BY
-msgstr ""
-
-# original text: TEXT_SCANNER
-_TEXT_SCANNER
-msgstr ""
-
-# original text: TEXT_SOFTWARE_XSANE
-_TEXT_SOFTWARE_XSANE
-msgstr ""
-
-# original text: TEXT_NONE
-_TEXT_NONE
-msgstr ""
-
-# original text: TEXT_GAMMA_INPUT_DEPTH
-_TEXT_GAMMA_INPUT_DEPTH
-msgstr ""
-
-# original text: TEXT_GAMMA_OUTPUT_DEPTH
-_TEXT_GAMMA_OUTPUT_DEPTH
-msgstr ""
-
-# original text: TEXT_SCANNER_OUTPUT_DEPTH
-_TEXT_SCANNER_OUTPUT_DEPTH
-msgstr ""
-
-# original text: TEXT_OUTPUT_FORMATS
-_TEXT_OUTPUT_FORMATS
-msgstr ""
-
-# original text: TEXT_8BIT_FORMATS
-_TEXT_8BIT_FORMATS
-msgstr ""
-
-# original text: TEXT_16BIT_FORMATS
-_TEXT_16BIT_FORMATS
-msgstr ""
-
-# original text: TEXT_AUTHORIZATION_REQ
-_TEXT_AUTHORIZATION_REQ
-msgstr ""
-
-# original text: TEXT_USERNAME
-_TEXT_USERNAME
-msgstr ""
-
-# original text: TEXT_PASSWORD
-_TEXT_PASSWORD
-msgstr ""
-
-# original text: TEXT_INVALID_PARAMS
-_TEXT_INVALID_PARAMS
-msgstr ""
-
-# original text: TEXT_VERSION
-_TEXT_VERSION
-msgstr ""
-
-# original text: TEXT_PACKAGE
-_TEXT_PACKAGE
-msgstr ""
-
-# original text: TEXT_WITH_GIMP_SUPPORT
-_TEXT_WITH_GIMP_SUPPORT
-msgstr ""
-
-# original text: TEXT_WITHOUT_GIMP_SUPPORT
-_TEXT_WITHOUT_GIMP_SUPPORT
-msgstr ""
-
-# original text: TEXT_GIMP_VERSION
-_TEXT_GIMP_VERSION
-msgstr ""
-
-# original text: TEXT_UNKNOWN
-_TEXT_UNKNOWN
-msgstr ""
-
-# original text: TEXT_EMAIL
-_TEXT_EMAIL
-msgstr ""
-
-# original text: TEXT_FILE
-_TEXT_FILE
-msgstr ""
-
-# original text: TEXT_INFO_BOX
-_TEXT_INFO_BOX
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_SEL
-_TEXT_SETUP_PRINTER_SEL
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_NAME
-_TEXT_SETUP_PRINTER_NAME
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_CMD
-_TEXT_SETUP_PRINTER_CMD
-msgstr ""
-
-# original text: TEXT_SETUP_COPY_NR_OPT
-_TEXT_SETUP_COPY_NR_OPT
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_RES
-_TEXT_SETUP_PRINTER_RES
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_WIDTH
-_TEXT_SETUP_PRINTER_WIDTH
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_HEIGHT
-_TEXT_SETUP_PRINTER_HEIGHT
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_LEFT
-_TEXT_SETUP_PRINTER_LEFT
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_BOTTOM
-_TEXT_SETUP_PRINTER_BOTTOM
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_GAMMA
-_TEXT_SETUP_PRINTER_GAMMA
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_GAMMA_RED
-_TEXT_SETUP_PRINTER_GAMMA_RED
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_GAMMA_GREEN
-_TEXT_SETUP_PRINTER_GAMMA_GREEN
-msgstr ""
-
-# original text: TEXT_SETUP_PRINTER_GAMMA_BLUE
-_TEXT_SETUP_PRINTER_GAMMA_BLUE
-msgstr ""
-
-# original text: TEXT_SETUP_JPEG_QUALITY
-_TEXT_SETUP_JPEG_QUALITY
-msgstr ""
-
-# original text: TEXT_SETUP_PNG_COMPRESSION
-_TEXT_SETUP_PNG_COMPRESSION
-msgstr ""
-
-# original text: TEXT_SETUP_TIFF_COMPRESSION
-_TEXT_SETUP_TIFF_COMPRESSION
-msgstr ""
-
-# original text: TEXT_SETUP_TIFF_COMPRESSION_1
-_TEXT_SETUP_TIFF_COMPRESSION_1
-msgstr ""
-
-# original text: TEXT_SETUP_PREVIEW_GAMMA
-_TEXT_SETUP_PREVIEW_GAMMA
-msgstr ""
-
-# original text: TEXT_SETUP_PREVIEW_GAMMA_RED
-_TEXT_SETUP_PREVIEW_GAMMA_RED
-msgstr ""
-
-# original text: TEXT_SETUP_PREVIEW_GAMMA_GREEN
-_TEXT_SETUP_PREVIEW_GAMMA_GREEN
-msgstr ""
-
-# original text: TEXT_SETUP_PREVIEW_GAMMA_BLUE
-_TEXT_SETUP_PREVIEW_GAMMA_BLUE
-msgstr ""
-
-# original text: TEXT_SETUP_HELPFILE_VIEWER
-_TEXT_SETUP_HELPFILE_VIEWER
-msgstr ""
-
-# original text: TEXT_SETUP_FAX_COMMAND
-_TEXT_SETUP_FAX_COMMAND
-msgstr ""
-
-# original text: TEXT_SETUP_FAX_RECEIVER_OPTION
-_TEXT_SETUP_FAX_RECEIVER_OPTION
-msgstr ""
-
-# original text: TEXT_SETUP_FAX_POSTSCRIPT_OPT
-_TEXT_SETUP_FAX_POSTSCRIPT_OPT
-msgstr ""
-
-# original text: TEXT_SETUP_FAX_NORMAL_MODE_OPT
-_TEXT_SETUP_FAX_NORMAL_MODE_OPT
-msgstr ""
-
-# original text: TEXT_SETUP_FAX_FINE_MODE_OPT
-_TEXT_SETUP_FAX_FINE_MODE_OPT
-msgstr ""
-
-# original text: TEXT_SETUP_FAX_VIEWER
-_TEXT_SETUP_FAX_VIEWER
-msgstr ""
-
-# original text: NOTEBOOK_COPY_OPTIONS
-_NOTEBOOK_COPY_OPTIONS
-msgstr ""
-
-# original text: NOTEBOOK_SAVING_OPTIONS
-_NOTEBOOK_SAVING_OPTIONS
-msgstr ""
-
-# original text: NOTEBOOK_DISPLAY_OPTIONS
-_NOTEBOOK_DISPLAY_OPTIONS
-msgstr ""
-
-# original text: NOTEBOOK_FAX_OPTIONS
-_NOTEBOOK_FAX_OPTIONS
-msgstr ""
-
-# original text: MENU_ITEM_SCAN
-_MENU_ITEM_SCAN
-msgstr ""
-
-# original text: MENU_ITEM_COPY
-_MENU_ITEM_COPY
-msgstr ""
-
-# original text: MENU_ITEM_FAX
-_MENU_ITEM_FAX
-msgstr ""
-
-# original text: MENU_ITEM_SETUP
-_MENU_ITEM_SETUP
-msgstr ""
-
-# original text: MENU_ITEM_SHOW_TOOLTIPS
-_MENU_ITEM_SHOW_TOOLTIPS
-msgstr ""
-
-# original text: MENU_ITEM_SHOW_PREVIEW
-_MENU_ITEM_SHOW_PREVIEW
-msgstr ""
-
-# original text: MENU_ITEM_SHOW_HISTOGRAM
-_MENU_ITEM_SHOW_HISTOGRAM
-msgstr ""
-
-# original text: MENU_ITEM_SHOW_STANDARDOPTIONS
-_MENU_ITEM_SHOW_STANDARDOPTIONS
-msgstr ""
-
-# original text: MENU_ITEM_SHOW_ADVANCEDOPTIONS
-_MENU_ITEM_SHOW_ADVANCEDOPTIONS
-msgstr ""
-
-
-# original text: MENU_ITEM_SHOW_RESOLUTIONLIST
-_MENU_ITEM_SHOW_RESOLUTIONLIST
-msgstr ""
-
-# original text: MENU_ITEM_LENGTH_UNIT
-_MENU_ITEM_LENGTH_UNIT
-msgstr ""
-
-# original text: SUBMENU_ITEM_LENGTH_MILLIMETERS
-_SUBMENU_ITEM_LENGTH_MILLIMETERS
-msgstr ""
-
-# original text: SUBMENU_ITEM_LENGTH_CENTIMETERS
-_SUBMENU_ITEM_LENGTH_CENTIMETERS
-msgstr ""
-
-# original text: SUBMENU_ITEM_LENGTH_INCHES
-_SUBMENU_ITEM_LENGTH_INCHES
-msgstr ""
-
-# original text: MENU_ITEM_SAVE_DEVICE_SETTINGS
-_MENU_ITEM_SAVE_DEVICE_SETTINGS
-msgstr ""
-
-# original text: MENU_ITEM_LOAD_DEVICE_SETTINGS
-_MENU_ITEM_LOAD_DEVICE_SETTINGS
-msgstr ""
-
-# original text: MENU_ITEM_XSANE_DOC
-_MENU_ITEM_XSANE_DOC
-msgstr ""
-
-# original text: MENU_ITEM_BACKEND_DOC
-_MENU_ITEM_BACKEND_DOC
-msgstr ""
-
-# original text: MENU_ITEM_AVAILABLE_BACKENDS
-_MENU_ITEM_AVAILABLE_BACKENDS
-msgstr ""
-
-# original text: MENU_ITEM_SCANTIPS
-_MENU_ITEM_SCANTIPS
-msgstr ""
-
-# original text: MENU_ITEM_PROBLEMS
-_MENU_ITEM_PROBLEMS
-msgstr ""
-
-# original text: MENU_ITEM_TIFF_COMP_NONE
-_MENU_ITEM_TIFF_COMP_NONE
-msgstr ""
-
-# original text: MENU_ITEM_TIFF_COMP_CCITTRLE
-_MENU_ITEM_TIFF_COMP_CCITTRLE
-msgstr ""
-
-# original text: MENU_ITEM_TIFF_COMP_CCITFAX3
-_MENU_ITEM_TIFF_COMP_CCITFAX3
-msgstr ""
-
-# original text: MENU_ITEM_TIFF_COMP_CCITFAX4
-_MENU_ITEM_TIFF_COMP_CCITFAX4
-msgstr ""
-
-# original text: MENU_ITEM_TIFF_COMP_JPEG
-_MENU_ITEM_TIFF_COMP_JPEG
-msgstr ""
-
-# original text: MENU_ITEM_TIFF_COMP_PACKBITS
-_MENU_ITEM_TIFF_COMP_PACKBITS
-msgstr ""
-
-# original text: MENU_ITEM_FILETYPE_BY_EXT
-_MENU_ITEM_FILETYPE_BY_EXT
-msgstr ""
-
-# original text: PROGRESS_SAVING
-_PROGRESS_SAVING
-msgstr ""
-
-# original text: PROGRESS_SAVING_FAX
-_PROGRESS_SAVING_FAX
-msgstr ""
-
-# original text: PROGRESS_CONVERTING_DATA
-_PROGRESS_CONVERTING_DATA
-msgstr ""
-
-# original text: PROGRESS_CONVERTING_PS
-_PROGRESS_CONVERTING_PS
-msgstr ""
-
-# original text: PROGRESS_SCANNING
-_PROGRESS_SCANNING
-msgstr ""
-
-# original text: PROGRESS_RECEIVING_SCAN
-_PROGRESS_RECEIVING_SCAN
-msgstr ""
-
-# original text: PROGRESS_RECEIVING_COPY
-_PROGRESS_RECEIVING_COPY
-msgstr ""
-
-# original text: PROGRESS_RECEIVING_FAX
-_PROGRESS_RECEIVING_FAX
-msgstr ""
-
-# original text: PROGRESS_RECEIVING_GIMP
-_PROGRESS_RECEIVING_GIMP
-msgstr ""
-
-
-# original text: DESC_XSANE_MODE
-_DESC_XSANE_MODE
-msgstr ""
-
-# original text: DESC_BROWSE_FILENAME
-_DESC_BROWSE_FILENAME
-msgstr ""
-
-# original text: DESC_FILENAME
-_DESC_FILENAME
-msgstr ""
-
-# original text: DESC_FILETYPE
-_DESC_FILETYPE
-msgstr ""
-
-# original text: DESC_FAXPROJECT
-_DESC_FAXPROJECT
-msgstr ""
-
-# original text: DESC_FAXPAGENAME
-_DESC_FAXPAGENAME
-msgstr ""
-
-# original text: DESC_FAXRECEIVER
-_DESC_FAXRECEIVER
-msgstr ""
-
-# original text: DESC_PRINTER_SELECT
-_DESC_PRINTER_SELECT
-msgstr ""
-
-# original text: DESC_RESOLUTION
-_DESC_RESOLUTION
-msgstr ""
-
-# original text: DESC_ZOOM
-_DESC_ZOOM
-msgstr ""
-
-# original text: DESC_COPY_NUMBER
-_DESC_COPY_NUMBER
-msgstr ""
-
-# original text: DESC_NEGATIVE
-_DESC_NEGATIVE
-msgstr ""
-
-# original text: DESC_GAMMA
-_DESC_GAMMA
-msgstr ""
-
-# original text: DESC_GAMMA_R
-_DESC_GAMMA_R
-msgstr ""
-
-# original text: DESC_GAMMA_G
-_DESC_GAMMA_G
-msgstr ""
-
-# original text: DESC_GAMMA_B
-_DESC_GAMMA_B
-msgstr ""
-
-# original text: DESC_BRIGHTNESS
-_DESC_BRIGHTNESS
-msgstr ""
-
-# original text: DESC_BRIGHTNESS_R
-_DESC_BRIGHTNESS_R
-msgstr ""
-
-# original text: DESC_BRIGHTNESS_G
-_DESC_BRIGHTNESS_G
-msgstr ""
-
-# original text: DESC_BRIGHTNESS_B
-_DESC_BRIGHTNESS_B
-msgstr ""
-
-# original text: DESC_CONTRAST
-_DESC_CONTRAST
-msgstr ""
-
-# original text: DESC_CONTRAST_R
-_DESC_CONTRAST_R
-msgstr ""
-
-# original text: DESC_CONTRAST_G
-_DESC_CONTRAST_G
-msgstr ""
-
-# original text: DESC_CONTRAST_B
-_DESC_CONTRAST_B
-msgstr ""
-
-# original text: DESC_RGB_DEFAULT
-_DESC_RGB_DEFAULT
-msgstr ""
-
-# original text: DESC_ENH_AUTO
-_DESC_ENH_AUTO
-msgstr ""
-
-# original text: DESC_ENH_DEFAULT
-_DESC_ENH_DEFAULT
-msgstr ""
-
-# original text: DESC_ENH_RESTORE
-_DESC_ENH_RESTORE
-msgstr ""
-
-# original text: DESC_ENH_STORE
-_DESC_ENH_STORE
-msgstr ""
-
-# original text: DESC_HIST_INTENSITY
-_DESC_HIST_INTENSITY
-msgstr ""
-
-# original text: DESC_HIST_RED
-_DESC_HIST_RED
-msgstr ""
-
-# original text: DESC_HIST_GREEN
-_DESC_HIST_GREEN
-msgstr ""
-
-# original text: DESC_HIST_BLUE
-_DESC_HIST_BLUE
-msgstr ""
-
-# original text: DESC_HIST_PIXEL
-_DESC_HIST_PIXEL
-msgstr ""
-
-# original text: DESC_HIST_LOG
-_DESC_HIST_LOG
-msgstr ""
-
-# original text: DESC_PRINTER_SETUP
-_DESC_PRINTER_SETUP
-msgstr ""
-
-# original text: DESC_PRINTER_NAME
-_DESC_PRINTER_NAME
-msgstr ""
-
-# original text: DESC_PRINTER_COMMAND
-_DESC_PRINTER_COMMAND
-msgstr ""
-
-# original text: DESC_COPY_NUMBER_OPTION
-_DESC_COPY_NUMBER_OPTION
-msgstr ""
-
-# original text: DESC_PRINTER_RESOLUTION
-_DESC_PRINTER_RESOLUTION
-msgstr ""
-
-# original text: DESC_PRINTER_WIDTH
-_DESC_PRINTER_WIDTH
-msgstr ""
-
-# original text: DESC_PRINTER_HEIGHT
-_DESC_PRINTER_HEIGHT
-msgstr ""
-
-# original text: DESC_PRINTER_LEFTOFFSET
-_DESC_PRINTER_LEFTOFFSET
-msgstr ""
-
-# original text: DESC_PRINTER_BOTTOMOFFSET
-_DESC_PRINTER_BOTTOMOFFSET
-msgstr ""
-
-# original text: DESC_PRINTER_GAMMA
-_DESC_PRINTER_GAMMA
-msgstr ""
-
-# original text: DESC_PRINTER_GAMMA_RED
-_DESC_PRINTER_GAMMA_RED
-msgstr ""
-
-# original text: DESC_PRINTER_GAMMA_GREEN
-_DESC_PRINTER_GAMMA_GREEN
-msgstr ""
-
-# original text: DESC_PRINTER_GAMMA_BLUE
-_DESC_PRINTER_GAMMA_BLUE
-msgstr ""
-
-# original text: DESC_JPEG_QUALITY
-_DESC_JPEG_QUALITY
-msgstr ""
-
-# original text: DESC_PNG_COMPRESSION
-_DESC_PNG_COMPRESSION
-msgstr ""
-
-# original text: DESC_TIFF_COMPRESSION
-_DESC_TIFF_COMPRESSION
-msgstr ""
-
-# original text: DESC_TIFF_COMPRESSION_1
-_DESC_TIFF_COMPRESSION_1
-msgstr ""
-
-# original text: DESC_OVERWRITE_WARNING
-_DESC_OVERWRITE_WARNING
-msgstr ""
-
-# original text: DESC_INCREASE_COUNTER
-_DESC_INCREASE_COUNTER
-msgstr ""
-
-# original text: DESC_SKIP_EXISTING
-_DESC_SKIP_EXISTING
-msgstr ""
-
-# original text: DESC_MAIN_WINDOW_FIXED
-_DESC_MAIN_WINDOW_FIXED
-msgstr ""
-
-# original text: DESC_PREVIEW_PRESERVE
-_DESC_PREVIEW_PRESERVE
-msgstr ""
-
-# original text: DESC_PREVIEW_COLORMAP
-_DESC_PREVIEW_COLORMAP
-msgstr ""
-
-# original text: DESC_PREVIEW_GAMMA
-_DESC_PREVIEW_GAMMA
-msgstr ""
-
-# original text: DESC_PREVIEW_GAMMA_RED
-_DESC_PREVIEW_GAMMA_RED
-msgstr ""
-
-# original text: DESC_PREVIEW_GAMMA_GREEN
-_DESC_PREVIEW_GAMMA_GREEN
-msgstr ""
-
-# original text: DESC_PREVIEW_GAMMA_BLUE
-_DESC_PREVIEW_GAMMA_BLUE
-msgstr ""
-
-# original text: DESC_DOC_VIEWER
-_DESC_DOC_VIEWER
-msgstr ""
-
-# original text: DESC_FAX_COMMAND
-_DESC_FAX_COMMAND
-msgstr ""
-
-# original text: DESC_FAX_RECEIVER_OPT
-_DESC_FAX_RECEIVER_OPT
-msgstr ""
-
-# original text: DESC_FAX_POSTSCRIPT_OPT
-_DESC_FAX_POSTSCRIPT_OPT
-msgstr ""
-
-# original text: DESC_FAX_NORMAL_OPT
-_DESC_FAX_NORMAL_OPT
-msgstr ""
-
-# original text: DESC_FAX_FINE_OPT
-_DESC_FAX_FINE_OPT
-msgstr ""
-
-# original text: DESC_FAX_VIEWER
-_DESC_FAX_VIEWER
-msgstr ""
-
-# original text: DESC_FAX_FINE_MODE
-_DESC_FAX_FINE_MODE
-msgstr ""
-
-# original text: DESC_PIPETTE_WHITE
-_DESC_PIPETTE_WHITE
-msgstr ""
-
-# original text: DESC_PIPETTE_GRAY
-_DESC_PIPETTE_GRAY
-msgstr ""
-
-# original text: DESC_PIPETTE_BLACK
-_DESC_PIPETTE_BLACK
-msgstr ""
-
-# original text: DESC_ZOOM_FULL
-_DESC_ZOOM_FULL
-msgstr ""
-
-# original text: DESC_ZOOM_OUT
-_DESC_ZOOM_OUT
-msgstr ""
-
-# original text: DESC_ZOOM_IN
-_DESC_ZOOM_IN
-msgstr ""
-
-# original text: DESC_ZOOM_UNDO
-_DESC_ZOOM_UNDO
-msgstr ""
-
-# original text: DESC_FULL_PREVIEW_AREA
-_DESC_FULL_PREVIEW_AREA
-msgstr ""
-
-# original text: ERR_HOME_DIR
-_ERR_HOME_DIR
-msgstr ""
-
-# original text: ERR_FILENAME_TOO_LONG
-_ERR_FILENAME_TOO_LONG
-msgstr ""
-
-# original text: ERR_SET_OPTION
-_ERR_SET_OPTION
-msgstr ""
-
-# original text: ERR_GET_OPTION
-_ERR_GET_OPTION
-msgstr ""
-
-# original text: ERR_OPTION_COUNT
-_ERR_OPTION_COUNT
-msgstr ""
-
-# original text: ERR_DEVICE_OPEN_FAILED
-_ERR_DEVICE_OPEN_FAILED
-msgstr ""
-
-# original text: ERR_NO_DEVICES
-_ERR_NO_DEVICES
-msgstr ""
-
-# original text: ERR_DURING_READ
-_ERR_DURING_READ
-msgstr ""
-
-# original text: ERR_DURING_SAVE
-_ERR_DURING_SAVE
-msgstr ""
-
-# original text: ERR_BAD_DEPTH
-_ERR_BAD_DEPTH
-msgstr ""
-
-# original text: ERR_GIMP_BAD_DEPTH
-_ERR_GIMP_BAD_DEPTH
-msgstr ""
-
-# original text: ERR_UNKNOWN_SAVING_FORMAT
-_ERR_UNKNOWN_SAVING_FORMAT
-msgstr ""
-
-# original text: ERR_OPEN_FAILED
-_ERR_OPEN_FAILED
-msgstr ""
-
-# original text: ERR_FAILED_PRINTER_PIPE
-_ERR_FAILED_PRINTER_PIPE
-msgstr ""
-
-# original text: ERR_FAILED_EXEC_PRINTER_CMD
-_ERR_FAILED_EXEC_PRINTER_CMD
-msgstr ""
-
-# original text: ERR_FAILED_START_SCANNER
-_ERR_FAILED_START_SCANNER
-msgstr ""
-
-# original text: ERR_FAILED_GET_PARAMS
-_ERR_FAILED_GET_PARAMS
-msgstr ""
-
-# original text: ERR_NO_OUTPUT_FORMAT
-_ERR_NO_OUTPUT_FORMAT
-msgstr ""
-
-# original text: ERR_NO_MEM
-_ERR_NO_MEM
-msgstr ""
-
-# original text: ERR_LIBTIFF
-_ERR_LIBTIFF
-msgstr ""
-
-# original text: ERR_LIBPNG
-_ERR_LIBPNG
-msgstr ""
-
-# original text: ERR_UNKNOWN_TYPE
-_ERR_UNKNOWN_TYPE
-msgstr ""
-
-# original text: ERR_UNKNOWN_CONSTRAINT_TYPE
-_ERR_UNKNOWN_CONSTRAINT_TYPE
-msgstr ""
-
-# original text: ERR_FAILD_EXEC_DOC_VIEWER
-_ERR_FAILD_EXEC_DOC_VIEWER
-msgstr ""
-
-# original text: ERR_FAILD_EXEC_FAX_VIEWER
-_ERR_FAILD_EXEC_FAX_VIEWER
-msgstr ""
-
-# original text: ERR_FAILED_EXEC_FAX_CMD
-_ERR_FAILED_EXEC_FAX_CMD
-msgstr ""
-
-# original text: ERR_BAD_FRAME_FORMAT
-_ERR_BAD_FRAME_FORMAT
-msgstr ""
-
-# original text: ERR_FAILED_SET_RESOLUTION
-_ERR_FAILED_SET_RESOLUTION
-msgstr ""
-
-# original text: ERR_ERROR
-_ERR_ERROR
-msgstr ""
-
-# original text: ERR_MAJOR_VERSION_NR_CONFLICT
-_ERR_MAJOR_VERSION_NR_CONFLICT
-msgstr ""
-
-# original text: ERR_XSANE_MAJOR_VERSION
-_ERR_XSANE_MAJOR_VERSION
-msgstr ""
-
-# original text: ERR_BACKEND_MAJOR_VERSION
-_ERR_BACKEND_MAJOR_VERSION
-msgstr ""
-
-# original text: ERR_PROGRAM_ABORTED
-_ERR_PROGRAM_ABORTED
-msgstr ""
-
-# original text: ERR_FAILED_ALLOCATE_IMAGE
-_ERR_FAILED_ALLOCATE_IMAGE
-msgstr ""
-
-# original text: ERR_PREVIEW_BAD_DEPTH
-_ERR_PREVIEW_BAD_DEPTH
-msgstr ""
-
-# original text: ERR_GIMP_SUPPORT_MISSING
-_ERR_GIMP_SUPPORT_MISSING
-msgstr ""
-
-# original text: WARN_COUNTER_OVERFLOW
-_WARN_COUNTER_OVERFLOW
-msgstr ""
-
-# original text: WARN_NO_VALUE_CONSTRAINT
-_WARN_NO_VALUE_CONSTRAINT
-msgstr ""
-
-# original text: ERR_BUTTON_OK
-_ERR_BUTTON_OK
-msgstr ""
-
-# original text: ERR_HEADER_ERROR
-_ERR_HEADER_ERROR
-msgstr ""
-
-# original text: ERR_HEADER_WARNING
-_ERR_HEADER_WARNING
-msgstr ""
-
-# original text: ERR_FAILED_CREATE_FILE
-_ERR_FAILED_CREATE_FILE
-msgstr ""
-
-# original text: ERR_LOAD_DEVICE_SETTINGS
-_ERR_LOAD_DEVICE_SETTINGS
-msgstr ""
-
-# original text: ERR_NO_DRC_FILE
-_ERR_NO_DRC_FILE
-msgstr ""
-
-# original text: ERR_NETSCAPE_EXECUTE_FAIL
-_ERR_NETSCAPE_EXECUTE_FAIL
-msgstr ""
-
-# original text: ERR_SENDFAX_RECEIVER_MISSING
-_ERR_SENDFAX_RECEIVER_MISSING
-msgstr ""
-
-# original text: ERR_CREATED_FOR_DEVICE
-_ERR_CREATED_FOR_DEVICE
-msgstr ""
-
-# original text: ERR_USED_FOR_DEVICE
-_ERR_USED_FOR_DEVICE
-msgstr ""
-
-# original text: ERR_MAY_CAUSE_PROBLEMS
-_ERR_MAY_CAUSE_PROBLEMS
-msgstr ""
-
-# original text: TEXT_USAGE
-_TEXT_USAGE
-msgstr ""
-
-# original text: TEXT_USAGE_OPTIONS
-_TEXT_USAGE_OPTIONS
-msgstr ""
-
-# original text: TEXT_HELP
-_TEXT_HELP
-msgstr ""
-
-# original text: XSANE_GIMP_INSTALL_BLURB
-_XSANE_GIMP_INSTALL_BLURB
-msgstr ""
-
-# original text: XSANE_GIMP_INSTALL_HELP
-_XSANE_GIMP_INSTALL_HELP
-msgstr ""
-
-# original text: XSANE_GIMP_MENU
-_XSANE_GIMP_MENU
-msgstr ""
-
-# original text: XSANE_GIMP_MENU_OLD
-_XSANE_GIMP_MENU_OLD
-msgstr ""
-
-# original text: XSANE_GIMP_MENU_DIALOG
-_XSANE_GIMP_MENU_DIALOG
-msgstr ""
-
-# original text: XSANE_GIMP_MENU_DIALOG_OLD
-_XSANE_GIMP_MENU_DIALOG_OLD
-msgstr ""
-
-_"flatbed scanner"
-msgstr ""
-
-_"frame grabber"
-msgstr ""
-
-_"handheld scanner"
-msgstr ""
-
-_"still camera"
-msgstr ""
-
-_"video camera"
-msgstr ""
-
-_"virtual device"
-msgstr ""
-
-
-_"Success"
-msgstr ""
-
-_"Operation not supported"
-msgstr ""
-
-_"Operation was cancelled"
-msgstr ""
-
-_"Device busy"
-msgstr ""
-
-_"Invalid argument"
-msgstr ""
-
-_"End of file reached"
-msgstr ""
-
-_"Document feeder jammed"
-msgstr ""
-
-_"Document feeder out of documents"
-msgstr ""
-
-_"Scanner cover is open"
-msgstr ""
-
-_"Error during device I/O"
-msgstr ""
-
-_"Out of memory"
-msgstr ""
-
-_"Access to resource has been denied"
-msgstr ""
-
diff --git a/po/nl.gmo b/po/nl.gmo
new file mode 100644
index 0000000..dd0b226
--- /dev/null
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 0000000..adc76d4
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,2347 @@
+# Translations for XSane English->Dutch
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# W. Sinke <sinke@wirehub.nl>, 2001, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: xsane 0.84\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2002-01-15 01:10+0100\n"
+"Last-Translator: Wim Sinke <sinke@wirehub.nl>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr "nl"
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr "Š"
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "Over"
+
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "Over vertaling"
+
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "authorizatie"
+
+#. WINDOW_LICENSE
+msgid "license"
+msgstr "licentie"
+
+#. WINDOW_INFO
+msgid "info"
+msgstr "Informatie"
+
+# Goed genoeg?
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "batch scan"
+
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "faxproject"
+
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "Faxpagina hernoemen"
+
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr "ps-bestand in fax voegen"
+
+#. WINDOW_MAIL_PROJECT
+msgid "mail project"
+msgstr "mailproject"
+
+#. WINDOW_MAIL_RENAME
+msgid "rename mail image"
+msgstr "e-mail afbeelding hernoemen"
+
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr "voeg bestand in e-mail"
+
+#. WINDOW_PRESET_AREA_RENAME
+msgid "rename preset area"
+msgstr "vooringesteld gebied hernoemen"
+
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "configuratie"
+
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "Histogram"
+
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "Gammakromme"
+
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "Standaard opties"
+
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "Geavanceerde opties"
+
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "Apparaat selectie"
+
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "Voorbeeld"
+
+#. WINDOW_VIEWER
+msgid "Viewer"
+msgstr "Bekijken"
+
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+msgid "Viewer: select output filename"
+msgstr "Bekijken: kies uitvoernaam"
+
+#. WINDOW_OCR_OUTPUT_FILENAME
+msgid "Select output filename for OCR text file"
+msgstr "Kies uitvoerbestand voor herkende tekst"
+
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "kies uitvoernaam"
+
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "Apparaatinstellingen bewaren"
+
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "Apparaatinstellingen laden"
+
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "verander werkmap"
+
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "selecteer tijdelijke map"
+
+#. WINDOW_SCALE
+msgid "Scale image"
+msgstr "Schaal afbeelding"
+
+#. WINDOW_DESPECKLE
+msgid "Despeckle image"
+msgstr "Vlekken wegwerken"
+
+#. WINDOW_BLUR
+msgid "Blur image"
+msgstr "Afbeelding vervagen"
+
+#. WINDOW_STORE_MEDIUM
+#, fuzzy
+msgid "Store medium definition"
+msgstr "Definitie hernoemen"
+
+#. MENU_FILE
+msgid "File"
+msgstr "Bestand"
+
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "Instellingen"
+
+#. MENU_VIEW
+msgid "View"
+msgstr "Bekijk"
+
+#. MENU_HELP
+msgid "Help"
+msgstr "Help"
+
+#. MENU_FILTERS
+msgid "Filters"
+msgstr "Filters"
+
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "Over XSane"
+
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr "Informatie"
+
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "Stoppen"
+
+#. MENU_ITEM_SAVE_IMAGE
+msgid "Save image"
+msgstr "Bewaar afbeelding"
+
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "Sluiten"
+
+#. MENU_ITEM_CLONE
+msgid "Clone"
+msgstr "Kloon"
+
+#. MENU_ITEM_SCALE
+msgid "Scale"
+msgstr "Schaal"
+
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr "Ontvlekken"
+
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr "Vervagen"
+
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr "Ruwe afbeelding"
+
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr "Verbeterde afbeelding"
+
+#. BUTTON_START
+msgid "Start"
+msgstr "Start"
+
+#. BUTTON_OK
+msgid "Ok"
+msgstr "OK"
+
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr "Accepteren"
+
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr "Niet accepteren"
+
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr "Uitvoeren"
+
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr "Afbreken"
+
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr "Reduceren"
+
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "Doorgaan op eigen risico"
+
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "Doorzoeken"
+
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr "Overschrijven"
+
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr "Gebied toevoegen"
+
+#. BUTTON_PAGE_DELETE
+msgid "Delete page"
+msgstr "Pagina verwijderen"
+
+#. BUTTON_PAGE_SHOW
+msgid "Show page"
+msgstr "Pagina bekijken"
+
+#. BUTTON_PAGE_RENAME
+msgid "Rename page"
+msgstr "Pagina hernoemen"
+
+#. BUTTON_IMAGE_DELETE
+msgid "Delete image"
+msgstr "Afbeelding verwijderen"
+
+#. BUTTON_IMAGE_SHOW
+msgid "Show image"
+msgstr "Afbeelding bekijken"
+
+#. BUTTON_IMAGE_RENAME
+msgid "Rename image"
+msgstr "Afbeelding hernoemen"
+
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr "Bestand invoegen"
+
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr "Project beginnen"
+
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr "Project versturen"
+
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr "Project verwijderen"
+
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr "Printer toevoegen"
+
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr "Printer verwijderen"
+
+#. BUTTON_PREVIEW_ACQUIRE
+msgid "Acquire preview"
+msgstr "Voorbeeldscan maken"
+
+#. BUTTON_PREVIEW_CANCEL
+msgid "Cancel preview"
+msgstr "Voorbeeldscan afbreken"
+
+#. BUTTON_DISCARD_IMAGE
+msgid "Discard image"
+msgstr "Afbeelding verwijderen"
+
+#. BUTTON_DISCARD_ALL_IMAGES
+msgid "Discard all images"
+msgstr "Alle afbeeldingen verwijderen"
+
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr "Niet sluiten"
+
+# TBD
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr "Bind scale"
+
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr "Fijne modus"
+
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr "HTML e-mail"
+
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr "Apparaatinstellingen bewaren bij verlaten"
+
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr "Overschrijfalarm"
+
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr "Bestaande bestandnamen overslaan"
+
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr "16 bits afbeelding reduceren naar 8 bits"
+
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr "Vaste hoofdvenstergrootte"
+
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "Preview-gamma voor Gimp deactiveren"
+
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr "Gebruik eigen kleurenpallet"
+
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "Automatisch gamma verbeteren"
+
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+msgid "Preselect scanarea"
+msgstr "Automatisch scangebied selecteren"
+
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr "Automatisch kleuren verbeteren"
+
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr "POP3 legalisatie"
+
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "Zoeken naar apparaten"
+
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr "Bruikbare apparaten:"
+
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr "XSane opties"
+
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr "XSane doel"
+
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr "Stap"
+
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr "Type"
+
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr "Scanner en backend:"
+
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr "Gemaakt door:"
+
+#. TEXT_MODEL
+msgid "Model:"
+msgstr "Model:"
+
+#. TEXT_TYPE
+msgid "Type:"
+msgstr "Type:"
+
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr "Apparaat:"
+
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr "Geladen backend:"
+
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr "Sane versie:"
+
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr "Recente waarden:"
+
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr "Gammakorrectie door:"
+
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr "scanner"
+
+#. TEXT_SOFTWARE_XSANE
+msgid "software (XSane)"
+msgstr "software (XSane)"
+
+#. TEXT_NONE
+msgid "none"
+msgstr "geen"
+
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr "Bits in gamma invoer:"
+
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr "Bits in gamma uitvoer:"
+
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr "Bits in scanner uitvoer:"
+
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr "XSane uitvoerformaten:"
+
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr "8 bits uitvoerformaten:"
+
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr "16 bits uitvoerformaten:"
+
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Gimp kan geen 16 bits kleurdiepte aan.\n"
+"Wil je de diepte reduceren naar 8 bits?"
+
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Dit uitvoerformaat kan geen 16 bits kleurdiepte aan.\n"
+"Wil je de diepte reduceren naar 8 bits?"
+
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr "Authorizatie benodigd voor"
+
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr "Paswoordoverdracht is veilig"
+
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr "Backend heeft platte-tekst paswoord nodig"
+
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr "Gebruikersnaam:"
+
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr "Paswoord:"
+
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr "Ongeldige parameters."
+
+#. TEXT_VERSION
+msgid "version:"
+msgstr "versie:"
+
+#. TEXT_PACKAGE
+msgid "package"
+msgstr "pakket"
+
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr "met GIMP ondersteuning"
+
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr "zonder GIMP ondersteuning"
+
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "gecompileerd met GTK-"
+
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr "gecompileerd met GIMP-"
+
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr "onbekend"
+
+# TBD
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"XSane wordt gedistribueerd onder de voorwaarden van de GNU General Public\n"
+"License, zoals gepubliseerd door de Free Software Foundation; hetzij versie "
+"2\n"
+"van de licentie of (naar keuze) iedere latere versie\n"
+"\n"
+"Dit programma wordt gedistribueerd in de hoop dat het nuttig is, maar "
+"ZONDER\n"
+"ENIGE GARANTIE; zelfs zonder de impliciete garantie van VERHANDELBAARHEID of "
+"de\n"
+"BRUIKBAARHEID VOOR EEN SPECIAAL DOEL.\n"
+
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr "E-mail:"
+
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr "Homepage:"
+
+#. TEXT_FILE
+msgid "File:"
+msgstr "Bestand:"
+
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr "Vertaling:"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+"Vertaling naar Nederlands\n"
+"door Wim Sinke\n"
+"E-mail: sinke@wirehub.nl\n"
+
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr "0x0: 0KB"
+
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr "Gescande paginas: "
+
+#. TEXT_MAIL_TEXT
+msgid "Email text:"
+msgstr "E-mail text:"
+
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr "Attachments:"
+
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr "Projectstatus:"
+
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr ""
+
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+"Grootte %d x %d pixel, %d bit/kleur, %d kleuren, %1.0f dpi x %1.0f dpi, "
+"%1.1f %s"
+
+#. TEXT_X_SCALE_FACTOR
+msgid "X-Scale factor:"
+msgstr "Vergroting in x-richting:"
+
+#. TEXT_Y_SCALE_FACTOR
+msgid "Y-Scale factor:"
+msgstr "Vergroting in y-richting"
+
+#. TEXT_DESPECKLE_RADIUS
+msgid "Despeckle radius:"
+msgstr "Ontvlekradius:"
+
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr "Vervagingsradius:"
+
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr "Printerselectie"
+
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr "Naam:"
+
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr "Commando"
+
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr "Aantal kopiëen optie:"
+
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "Zwart-wit resolutie (dpi):"
+
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "Grijswaarde resolutie (dpi):"
+
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "Kleur resolutie (dpi):"
+
+#. TEXT_SETUP_PRINTER_WIDTH
+msgid "Width"
+msgstr "Breedte"
+
+#. TEXT_SETUP_PRINTER_HEIGHT
+msgid "Height"
+msgstr "Hoogte"
+
+#. TEXT_SETUP_PRINTER_LEFT
+msgid "Left offset"
+msgstr "Linker rand"
+
+#. TEXT_SETUP_PRINTER_BOTTOM
+msgid "Bottom offset"
+msgstr "Onderrand"
+
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr "Printer gammawaarde:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr "Printer gammawaarde rood:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr "Printer gammawaarde groen:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr "Printer gammawaarde blauw:"
+
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "Tijdelijke map"
+
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "Bestandspermissies afbeelding"
+
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "Mappermissies"
+
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr "JPEG kwaliteit"
+
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr "PNG compressie"
+
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr "Bestandsnaamteller lengte"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "TIFF 16 bit compressie"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "TIFF 8 bit compressie"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr "TIFF lineart compressie"
+
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "Voorbeeldscan oversampling:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr "Voorbeeldscan gamma:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr "Voorbeeldscan gamma rood:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr "Voorbeeldscan gamma groen:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr "Voorbeeldscan gamma blauw:"
+
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "Drempelwaarde optie:"
+
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr "Automatische document invoer mode:"
+
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr "Voorbeeldscan pipetbereik"
+
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "Drempelwaarde minimum:"
+
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "Drempelwaarde maximum:"
+
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "Drempelwaarde multiplicator:"
+
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "Drempelwaarde verschuiving:"
+
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "Naam van grijswaarde scanmodus:"
+
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "Hulpbestand bekijker (HTML):"
+
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr "Ontvanger optie:"
+
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr "PostScriptbestand optie:"
+
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr "Normale modus optie:"
+
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr "Fijne modus optie:"
+
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr "Bekijkprogramma (PostScript):"
+
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr "SMTP server:"
+
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr "SMTP port:"
+
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr "Van:"
+
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr "Antwoord aan:"
+
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr "POP3 server:"
+
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr "POP3 port:"
+
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr "POP3 gebruiker:"
+
+#. TEXT_SETUP_POP3_PASS
+msgid "POP3 password:"
+msgstr "POP3 paswoord:"
+
+#. TEXT_SETUP_MAIL_VIEWER
+msgid "Viewer (png):"
+msgstr "Bekijkprogramma (png):"
+
+#. TEXT_SETUP_OCR_COMMAND
+msgid "OCR Command:"
+msgstr "Tekstherkennings- (OCR) commando:"
+
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+msgid "Inputfile option:"
+msgstr "Invoeroptie:"
+
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+msgid "Outputfile option:"
+msgstr "Uitvoeroptie:"
+
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr "gebruiker"
+
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr "groep"
+
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr "allemaal"
+
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr "Bewaar"
+
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr "Afbeelding"
+
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "Kopiëren"
+
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr "Fax"
+
+#. NOTEBOOK_MAIL_OPTIONS
+msgid "Mail"
+msgstr "E-mail"
+
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr "Tekstherkenning (OCR)"
+
+#. NOTEBOOK_DISPLAY_OPTIONS
+msgid "Display"
+msgstr "Bekijk"
+
+#. NOTEBOOK_ENHANCE_OPTIONS
+msgid "Enhancement"
+msgstr "Verbetering"
+
+#. MENU_ITEM_MAIL
+msgid "Email"
+msgstr "E-mail"
+
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr "Laat tips zien"
+
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr "Laat preview zien"
+
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr "Laat histogram zien"
+
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "Laat gammakromme zien"
+
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr "Laat standaard opties zien"
+
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr "Laat geavanceerde opties zien"
+
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr "Configuratie"
+
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr "Eenheid voor lengtes"
+
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr "millimeter"
+
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr "centimeter"
+
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr "inch"
+
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "Bijwerken"
+
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "continue"
+
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "niet continue"
+
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "vertraagd"
+
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "Laat resolutie lijst zien"
+
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "Draai PostScript"
+
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr "Bewaar apparaatinstellingen"
+
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr "Laad apparaatinstellingen"
+
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "Verander map"
+
+#. MENU_ITEM_XSANE_LICENSE
+msgid "License"
+msgstr "Licentie"
+
+#. MENU_ITEM_XSANE_DOC
+msgid "XSane doc"
+msgstr "XSane documentatie"
+
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr "Backend documentatie"
+
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr "Beschikbare backends"
+
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr "Scantips"
+
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr "Problemen?"
+
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr "inactief"
+
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr "geen compressie"
+
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr "CCITT 1D Huffman compressie"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr "CCITT Group 3 Fax compressie"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr "CCITT Group 4 Fax compressie"
+
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr "JPEG DCT compressie"
+
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr "gepackte bits"
+
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "Standaard opties venster (z/w)"
+
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "XSane hoofdvenster (z/w)"
+
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "XSane hoofvenster (grijs->z/w)"
+
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr "(geen)"
+
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "zoals extentie"
+
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr "Voeg selectie toe aan lijst"
+
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr "Definitie hernoemen"
+
+#. MENU_ITEM_PRESET_AREA_DELETE
+msgid "Delete definition"
+msgstr "Definitie verwijderen"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr "Naar boven"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr "Naar beneden"
+
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "Aan het scannen"
+
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "Ontvang %s gegevens"
+
+#. PROGRESS_TRANSFERING_DATA
+msgid "Transfering image"
+msgstr "Versturen afbeelding"
+
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr "Draaien afbeelding"
+
+#. PROGRESS_MIRRORING_DATA
+msgid "Mirroring image"
+msgstr "Afbeelding spiegelen"
+
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr "Afbeelding packen"
+
+#. PROGRESS_CONVERTING_DATA
+msgid "Converting image"
+msgstr "Afbeelding converteren"
+
+#. PROGRESS_SAVING_DATA
+msgid "Saving image"
+msgstr "Afbeelding bewaren"
+
+#. PROGRESS_CLONING_DATA
+msgid "Cloning image"
+msgstr "Plaatje kloneren"
+
+#. PROGRESS_SCALING_DATA
+msgid "Scaling image"
+msgstr "Schalen afbeelding"
+
+#. PROGRESS_DESPECKLING_DATA
+msgid "Despeckling image"
+msgstr "Vlekken verwijderen"
+
+#. PROGRESS_BLURING_DATA
+msgid "Bluring image"
+msgstr "Afbeelding vervagen"
+
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr "Start scannen <Ctrl-Enter>"
+
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr "Onderbreek scan <ESC>"
+
+#. DESC_PREVIEW_ACQUIRE
+msgid "Acquire preview scan <Alt-p>"
+msgstr "Voorbeeldafbeelding maken <Alt-p>"
+
+#. DESC_PREVIEW_CANCEL
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "Breek de preview scan af <Alt-ESC>"
+
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+"opslaan-<Ctrl-s>, bekijk-<Ctrl-v>, kopier-<Ctrl-c>, fax-<Ctrl-f> of "
+"mail-<Ctrl-m>"
+
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr "Kies bronmedium type"
+
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr "Waarde die bij de bestandsnaamteller wordt opgeteld na de scan"
+
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr "Kies een bestandsnaam"
+
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr "Bestandsnaam voor gescande afbeelding"
+
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr ""
+"Bestandstype: de gebruikelijke extentie wordt automatisch toegevoegd aan de "
+"bestandsnaam"
+
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr "De naam van het faxproject"
+
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr "Geef de naam van de faxpagina"
+
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr "Geef telefoonnummer of adres van de ontvanger"
+
+#. DESC_MAILPROJECT
+msgid "Enter name of mail project"
+msgstr "De naam van het e-mail project"
+
+#. DESC_MAILIMAGENAME
+msgid "Enter new name for mail image"
+msgstr "De naam van de afbeelding"
+
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr "E-mail adres"
+
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr "E-mail onderwerp"
+
+#. DESC_PRESET_AREA_NAME
+msgid "Enter new name for preset area"
+msgstr "Geef naam voor gebied"
+
+#. DESC_PRINTER_SELECT
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "Kies printerdefinitie <Shift-F1/F2/...>"
+
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr "Kies de scan resolutie"
+
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "Kies de scan resolutie in de x-richting"
+
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "Kies de scan resolutie in de y-richting"
+
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr "Kies vergroting"
+
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "Kies vergroting in x-richting"
+
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "Kies vergroting in y-richting"
+
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr "Aantal kopiën"
+
+#. DESC_NEGATIVE
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr "Negatief: Inverteer de kleuren van een negatief <Shift-n>"
+
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr "Verander de gamma waarde"
+
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr "Verander de gamma waarde voor rood"
+
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr "Verander de gamma waarde voor groen"
+
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr "Verander de gamma waarde voor blauw"
+
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr "Kies helderheid"
+
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr "Kies helderheid voor rood"
+
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr "Kies helderheid voor groen"
+
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr "Kies helderheid voor blauw"
+
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr "Kies contrast"
+
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr "Kies contrast voor rood"
+
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr "Kies contrast voor groen"
+
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr "Kies contrast voor blauw"
+
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "Kies drempelwaarde"
+
+#. DESC_RGB_DEFAULT
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"RGB standaard: Zet de aanpassingswaarden voor rood, groen en blauw op de "
+"standaardwaarden <Shift-b>:\n"
+" gamma = 1.0\n"
+" helderheid = 0\n"
+" contrast = 0"
+
+#. DESC_ENH_AUTO
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr "Automatische aanpassing van gamma, helderheid en contrast <Shift-e>"
+
+#. DESC_ENH_DEFAULT
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"Kies de standaardwaarden <Shift-d>:\n"
+"gamma = 1.0\n"
+"helderheid = 0\n"
+"contrast = 0"
+
+#. DESC_ENH_RESTORE
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "Gebruik aanpassingswaarden van de configuratie <Shift-r>"
+
+#. DESC_ENH_STORE
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr "Bewaar aanpassingswaarden in de configuratie <Shift-m>"
+
+#. DESC_HIST_INTENSITY
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "Histogram van intensiteit zien <Alt-i>"
+
+#. DESC_HIST_RED
+msgid "Show histogram of red component <Alt-r>"
+msgstr "Histogram van rood <Alt-r>"
+
+#. DESC_HIST_GREEN
+msgid "Show histogram of green component <Alt-g>"
+msgstr "Histogram van groen <Alt-g>"
+
+#. DESC_HIST_BLUE
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "Histogram van blauw <Alt-b>"
+
+#. DESC_HIST_PIXEL
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr "Kies tussen lijnen of pixels <Alt-m>"
+
+#. DESC_HIST_LOG
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "Logaritmisch histogram <Alt-l>"
+
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr "Kies definitie om te veranderen"
+
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr "Naam van deze definitie"
+
+#. DESC_PRINTER_COMMAND
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr "Geef het commando dat tijdens het kopiëren uitgevoerd word (\"lpr\")"
+
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr "Optie voor het aantal kopiën"
+
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr "Printresolutie voor zwart wit afbeeldingen"
+
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr "Printresolutie voor grijswaarde afbeeldingen"
+
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr "Printresolutie voor kleurenafbeeldingen"
+
+#. DESC_PRINTER_WIDTH
+msgid "Width of printable area"
+msgstr "Printbreedte"
+
+#. DESC_PRINTER_HEIGHT
+msgid "Height of printable area"
+msgstr "Printhoogte"
+
+#. DESC_PRINTER_LEFTOFFSET
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr "Afstand van rand to printbare gebied"
+
+#. DESC_PRINTER_BOTTOMOFFSET
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "Afstand van rand to printbare gebied"
+
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr "Extra gammacorrectie voor fotokopie"
+
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr "Extra gammacorrectie voor rood voor fotokopie"
+
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr "Extra gammacorrectie voor groen voor fotokopie"
+
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr "Extra gammacorrectie voor blauw voor fotokopie"
+
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "Pad naar tijdelijke map"
+
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "Bekijk de tijdelijke map"
+
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr ""
+"Kwaliteit in procenten als afbeelding als JPEG of TIFF met JPEG compressie "
+"bewaard wordt"
+
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr "Compressie van PNG afbeeldingen"
+
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr "Minimale lengte van bestandenteller"
+
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "Compressie van 16-bits TIFF afbeeldingen"
+
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "Compressie van 8-bits TIFF afbeeldingen"
+
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "Compressie van zwart wit TIFF afbeeldingen"
+
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr ""
+"Bewaar apparaatspecifieke instellingen in standaard bestand als XSane eindigt"
+
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "Geef een waarschuwing voordat een bestaand bestand overschreven wordt"
+
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr ""
+"Gebruikte numbers worden overgeslagen als de bestandsteller automatisch "
+"verhoogd wordt"
+
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr "16-bits kleuren worden bewaard met 8-bits"
+
+#. DESC_PSFILE_WIDTH
+msgid "Width of paper for postscript files"
+msgstr "Breedte van papier in PostScript bestanden"
+
+#. DESC_PSFILE_HEIGHT
+msgid "Height of paper for postscript files"
+msgstr "Hoogte van papier in PostScript bestanden"
+
+#. DESC_PSFILE_LEFTOFFSET
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr "Linker afstand van de rand van het papier"
+
+#. DESC_PSFILE_BOTTOMOFFSET
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr "Onderste afstand van de rand van het papier"
+
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr "Gebruik vaste grootte voor hoofdvenster of gebruik scrollbars"
+
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr ""
+"Schakel voorbeeldscan gamma uit als XSane als Gimp plugin gebruikt wordt"
+
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr "Gebruik eigen kleurenpallet als scherm diepte 8-bpp is"
+
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr ""
+"Waarde waarmee de berekende voorbeeldscan resolutie vermenigvuldigd wordt"
+
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr "Gammacorrectie voor voorbeeldscan"
+
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr "Gammacorrectie voor rood van voorbeeldscan"
+
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr "Gammacorrectie voor groen van voorbeeldscan"
+
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr "Gammacorrectie voor blauw van voorbeeldscan"
+
+#. DESC_LINEART_MODE
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "Hoe moet XSane de drempelwaarde gebruiken"
+
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr ""
+"Kies grijswaarde scanmode. Dit wordt gebruikt voor de zwart wit "
+"voorbeeldscan als de transformatie van grijs naar zwart-wit aanstaat"
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "De minimale drempelwaarde in % van de scanner"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "De maximale drempelwaarde in % van de scanner"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Factor om de drempelwaarde van XSane gelijk te maken aan die van de scanner"
+
+#. DESC_PREVIEW_THRESHOLD_OFF
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Verschuiving om de drempelwaarde van XSane gelijk te maken aan die van de "
+"scanner"
+
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+"Kies bron voor automatische document doorvoer. Indien geselecteerd gaat "
+"XSane door met scannen to een \"papier op\" fout."
+
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr "grootte van het vierkantje waar de pipet het gemiddelde berekent"
+
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr "HTML programma om de helpfiles te bekijken"
+
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr ""
+"Verander gammawaarde als de automatische aanpassings knop ingedrukt wordt"
+
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr "Kies scangebied nadat voorbeeldscan klaar is"
+
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr "Verbeter de kleuren nadat voorbeeldscan klaar is"
+
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr "Geef commando dat in fax-mode uitgevoerd moet worden"
+
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr "Geef optie om ontvanger te specificeren"
+
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr "Geef optie voor de PostScript bestanden"
+
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr "Geef optie voor normale mode (lage resolutie)"
+
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr "Geef optie voor fijne mode (hoge resolutie)"
+
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr "Commando om fax te bekijken"
+
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr "Verstuur hoge resolutie fax (196 lpi inplaats van 98 lpi)"
+
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr "IP-adres of domain name van SMTP server"
+
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr "port om met SMTP server te communiceren"
+
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr "geef je e-mail adres"
+
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr "geef e-mail adres voor antwoord e-mails"
+
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr "Inloggen in POP3 server voor het versturen van e-mail"
+
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr "IP-adres of domain name van POP3 server"
+
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr "port om met POP3 server te communiceren"
+
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr "gebruikersnaam voor POP3 server"
+
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr "paswoord voor POP3 server"
+
+#. DESC_MAIL_VIEWER
+msgid "Enter command to be executed to view a mail image"
+msgstr "Commando om e-mail afbeelding te bekijken"
+
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr "E-mail wordt als HTML verstuurd. Afbeeldingen verschijnen direct"
+
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr "Geef commando om tekstherkenningsprogramma te starten"
+
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr "Geef de optie om een invoerbestand op te geven"
+
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr "Geef de optie om een uitvoerbestand op te geven"
+
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr "lezen"
+
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr "schrijven"
+
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr "uitvoeren"
+
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr "Kies wit punt"
+
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr "Kies grijs punt"
+
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr "Kies zwart punt"
+
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr "Gebruik volledige scangebied"
+
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr "Zoom 20% uit"
+
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr "Zoom in het geselecteerde gebied"
+
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr "Eén zoom terug"
+
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr "Selecteer zichtbare gebied"
+
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr "Automatische selectie"
+
+#. DESC_DELETE_IMAGES
+msgid "Delete preview image cache"
+msgstr "Verwijder voorbeeldscans uit geheugen"
+
+#. DESC_PRESET_AREA
+msgid "Preset area"
+msgstr "Vooringesteld gebied"
+
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr "Draai voorbeeldscan en scan"
+
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr "Tekstherkenning (OCR)"
+
+#. DESC_VIEWER_CLONE
+msgid "Clone image"
+msgstr "Kopiëer afbeelding"
+
+#. DESC_VIEWER_ROTATE90
+msgid "Rotate image 90 degree"
+msgstr "Draai 90 graden"
+
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr "Draai 180 graden"
+
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr "Draai 270 graden"
+
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr "Spiegel in vertikale richting"
+
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr "Spiegel in horizontale richting"
+
+#. DESC_VIEWER_ZOOM
+msgid "Zoom image"
+msgstr "Inzomen"
+
+#. DESC_STORE_MEDIUM
+msgid "Store medium"
+msgstr "Sla medium op"
+
+#. DESC_DELETE_MEDIUM
+msgid "Delete active medium"
+msgstr "Huidige medium verwijderen"
+
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
+msgstr "Kon hoofdmap niet vinden:"
+
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "Kon werkmap niet veranderen in"
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
+msgstr "Bestandsnaam te lang"
+
+#. ERR_CREATE_TEMP_FILE
+msgid "Could not create temporary file"
+msgstr "Kon geen tijdelijk bestand maken"
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
+msgstr "Kon waarde van optie niet veranderen"
+
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
+msgstr "Kon geen waarde van optie verkrijgen"
+
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
+msgstr "Kon aantal opties niet vinden"
+
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
+msgstr "Kon apparaat niet vinden"
+
+#. ERR_NO_DEVICES
+msgid "no devices available"
+msgstr "geen apparaten aanwezig"
+
+#. ERR_DURING_READ
+msgid "Error during read:"
+msgstr "Fout tijden lezen:"
+
+#. ERR_DURING_SAVE
+msgid "Error during save:"
+msgstr "Fout tijdens bewaren:"
+
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
+msgstr "Kan diepte niet aan"
+
+#. ERR_GIMP_BAD_DEPTH
+#, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP kan niet met %d bits per kleur overweg"
+
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
+msgstr "Onbekend bestandstype tijdens bewaren"
+
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
+msgstr "Kon niet openen"
+
+#. ERR_CREATE_SECURE_FILE
+msgid "Could not create secure file (may be a link does exist):"
+msgstr "Kon geen 'secure' bestand maken (misschien mist een link):"
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
+msgstr "Kon geen printercommando openen"
+
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
+msgstr "Kon printercommando niet uitvoeren:"
+
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
+msgstr "Kon scanner niet aanzetten:"
+
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
+msgstr "Kon parameters niet verkrijgen:"
+
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
+msgstr "Geen uitvoerformaat gegeven"
+
+#. ERR_NO_MEM
+msgid "out of memory"
+msgstr "geheugen vol"
+
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr "Backend geeft meer data dan gewenst"
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
+msgstr "LIBTIFF geeft fout"
+
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
+msgstr "LIBPNG geeft fout"
+
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
+msgstr "onbekend type"
+
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
+msgstr "onbekende beperking type"
+
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
+msgstr "Kon documentatie programma niet starten:"
+
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
+msgstr "Kon fax programma niet starten:"
+
+#. ERR_FAILED_EXEC_FAX_CMD
+msgid "Failed to execute fax command:"
+msgstr "Kon fax commando niet uitvoeren:"
+
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+msgid "Failed to execute mail image viewer:"
+msgstr "Kon e-mail afbeelding niet bekijken:"
+
+#. ERR_FAILED_EXEC_OCR_CMD
+msgid "Failed to execute ocr command:"
+msgstr "Kon tekstherkenningscommando niet uitvoeren:"
+
+# TBD
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
+msgstr "slecht frame formaat"
+
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
+msgstr "kon resolutie niet veranderen"
+
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr "Paswoordbestand (%s) in niet veilig, gebruik permissie x00\n"
+
+#. ERR_ERROR
+msgid "error"
+msgstr "fout"
+
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
+msgstr "Sane hoofdversie nummer incorrect!"
+
+#. ERR_XSANE_MAJOR_VERSION
+msgid "XSane major version ="
+msgstr "XSane hoofdversie ="
+
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
+msgstr "backend hoofdversie ="
+
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
+msgstr "*** PROGRAMMA BEĎNDIGD ***"
+
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
+msgstr "Kon geen geheugen voor afbeelding krijgen:"
+
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr "Voorbeeldscan kan niet met deze kleurdiepte werken"
+
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
+msgstr "Geen GIMP ondersteuning"
+
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr "Kon geen tijdelijke voorbeeldscans maken"
+
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr "Kon geen naam maken voor voorbeeldscan"
+
+#. ERR_CREATE_FAX_PROJECT
+msgid "Could not create faxproject"
+msgstr "Kon geen faxproject maken"
+
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr "Bestandsnaamteller te klein"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr "waarschuwing: optie heeft geen waardebeperking"
+
+#. WARN_XSANE_AS_ROOT
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+"Je probeert XSane als ROOT te draaien. Dat is heel GEVAARLIJK!\n"
+"\n"
+"Stuur geen foutmeldingen op als je XSane\n"
+"als root draait.\n"
+"JE STAAT ER ALLEEN VOOR!"
+
+#. ERR_HEADER_ERROR
+msgid "Error"
+msgstr "Fout"
+
+#. ERR_HEADER_WARNING
+msgid "Warning"
+msgstr "Waarschuwing"
+
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "Informatie"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
+msgstr "Kon bestand niet maken:"
+
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
+msgstr "Fout tijdens het laden van apparaatinstellingen:"
+
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
+msgstr "is geen apparaat-rc-bestand!!!"
+
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
+msgstr "Kon netscape niet starten!"
+
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
+msgstr "Zenden fax: geen ontvanger gedefinieerd"
+
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
+msgstr "is gemaakt voor apparaat"
+
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
+msgstr "je wilt het voor apparaat gebruiken"
+
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
+msgstr "dit kan problemen veroorzaken!"
+
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr "Er zijn %d afbeeldingen niet bewaard"
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "Bestand %s bestaat al"
+
+#. ERR_FILE_NOT_EXISTS
+#, c-format
+msgid "File %s does not exist"
+msgstr "Kon bestand %s niet vinden"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, c-format
+msgid "File %s is not a postscript file"
+msgstr "%s is geen PostScript bestand"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "Geen ondersteuning van %d-bits kleuren in het %s formaat"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr "Afbeelding is niet bewaard"
+
+#. TEXT_USAGE
+msgid "Usage:"
+msgstr "Gebruik:"
+
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr "[OPTIE]... [APPARAAT]"
+
+#. TEXT_HELP
+#, fuzzy
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
+msgstr ""
+"Start een grafische gebruikers interface om SANE (Scanner Access Now Easy) "
+"apparaten te gebruiken.\n"
+"\n"
+"Het formaat van [APPARAAT] is backendnaam:apparaatbestand (b.v. "
+"umax:/dev/scanner).\n"
+"[OPTIE]... kan een combinatie zijn van de volgende:\n"
+" -h, --help laat deze tekst zien en stop\n"
+" -v, --version print versie informatie\n"
+" -l, --license print licentie informatie\n"
+"\n"
+" -d, --device-settings bestand laad apparaatinstellingen van bestand (zonder "
+"\".drc\")\n"
+"\n"
+" -V, --viewer begin in bekijk-mode\n"
+" -s, --save begin in save-mode\n"
+" -c, --copy begin in kopieer-mode\n"
+" -f, --fax begin in fax-mode\n"
+" -m, --mail begin in e-mail-mode\n"
+" -n, --no-mode-selection mode mag niet veranderd worden door gebruiker\n"
+"\n"
+" -F, --Fixed vaste grootte hoofdvenster\n"
+" -R, --Resizeable geen vaste grootte hoofdvenster\n"
+"\n"
+" -p, --print-filenames print bestandnamen van XSane\n"
+" -N, --force-filename naam forceer een bestandsnaam\n"
+"\n"
+" --display X11-display output naar X1-display\n"
+" --no-xshm gebruik geen shared memory afbeeldingen\n"
+" --sync vraag synchrone connectie met X server"
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
+msgstr "Front-end voor de SANE interface"
+
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+"Deze functie geeft toegang tot scanners en andere aquisitie apparaten door "
+"de SANE (Scanner Access Now Easy) interface."
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr "<Toolbox>/File/Acquire/XSane: Apparaat kiezen..."
+
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
+msgstr "<Toolbox>/File/Acquire/XSane: "
+
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr "<Toolbox>/Xtns/XSane/Apparaat kiezen..."
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
+msgstr "<Toolbox>/Xtns/XSane/"
+
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr "volledige grootte"
+
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr "DIN A3 port."
+
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr "DIN A3 land."
+
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr "DIN A4 port."
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr "DIN A4 land."
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr "DIN A5 port."
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr "DIN A5 land."
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
+msgstr "13cm x 18cm"
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
+msgstr "18cm x 13cm"
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
+msgstr "10cm x 15cm"
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
+msgstr "15cm x 10cm"
+
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr "9cm x 13cm"
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr "13cm x 9cm"
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr "legal port."
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr "legal land."
+
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr "letter port."
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr "letter land."
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr "Volledig bereik"
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr "Dia"
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+msgid "Standard negative"
+msgstr "Standaard negatief"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr "Agfa negatief"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr "Agfa negatief XRG 200-4"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr "Agfa negatief HDC 100"
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+msgid "Fuji negative"
+msgstr "Fuji negatief"
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr "Kodak negatief"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+msgid "Konica negative"
+msgstr "Konica negatief"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+msgid "Konica negative VX 100"
+msgstr "Konica negatief VX 100"
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr "Rossmann negatief HR 100"
+
+#. Sane backend messages
+msgid "flatbed scanner"
+msgstr "flatbedscanner"
+
+msgid "frame grabber"
+msgstr "framegrabber"
+
+msgid "handheld scanner"
+msgstr "handscanner"
+
+msgid "still camera"
+msgstr "still camera"
+
+msgid "video camera"
+msgstr "videocamera"
+
+msgid "virtual device"
+msgstr "virtueel apparaat"
+
+msgid "Success"
+msgstr "Succes"
+
+msgid "Operation not supported"
+msgstr "Functie niet ondersteund"
+
+msgid "Operation was cancelled"
+msgstr "Functie was onderbroken"
+
+msgid "Device busy"
+msgstr "Apparaat bezig"
+
+msgid "Invalid argument"
+msgstr "Fout argument"
+
+msgid "End of file reached"
+msgstr "Einde van bestand bereikt"
+
+msgid "Document feeder jammed"
+msgstr "Document doorvoer geblokkeerd"
+
+msgid "Document feeder out of documents"
+msgstr "Geen documenten meer"
+
+msgid "Scanner cover is open"
+msgstr "Scanner deksel is open"
+
+msgid "Error during device I/O"
+msgstr "Fout tijdens apparaat communicatie"
+
+msgid "Out of memory"
+msgstr "Geheugen vol"
+
+msgid "Access to resource has been denied"
+msgstr "Geen toegang tot apparaat"
diff --git a/po/po.in2po b/po/po.in2po
deleted file mode 100755
index f202c20..0000000
--- a/po/po.in2po
+++ /dev/null
@@ -1,8 +0,0 @@
-if [ $# != 1 ]
-then
-echo "Usage: po.in2po language-abrevation"
-echo "eg: po.in2po fr"
-exit -1
-fi
-gcc -E -P - <$1.po.in >$1.po
-
diff --git a/po/remake_language.po.in b/po/remake_language.po.in
deleted file mode 100755
index 38c3ed6..0000000
--- a/po/remake_language.po.in
+++ /dev/null
@@ -1,10 +0,0 @@
-if [ $# != 1 ]
-then
-echo "Usage: remake_language.po.in file[.po.in]"
-exit -1
-fi
-cat $1.po.in | sed -e "/#original text/D" -e "/msgid/P" -e "s/msgid /_/g" - | sed -e "s/msgid/#original text:/g" >$1.po.in.tmp
-gcc -E -P - <$1.po.in.tmp | sed -e "s/^_/msgid /g" - | cat newlanguage.po.in.header - >$1.po.in
-rm $1.po.in.tmp
-
-
diff --git a/po/ru.gmo b/po/ru.gmo
new file mode 100644
index 0000000..fe4bb30
--- /dev/null
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 0000000..3ca64c2
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,2366 @@
+# SOME DESCRIPTIVE TITLE.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: XSANE 0.84\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2001-08-10 01:05+0300\n"
+"Last-Translator: John Profic <profic@lrn.ru>\n"
+"Language-Team: RUSSIAN <RU@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=koi8-r\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr "ru"
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr "(c)"
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "ď ĐŇĎÇŇÁÍÍĹ"
+
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "ď ĚĎËÁĚÉÚÁĂÉÉ"
+
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "Á×ÔĎŇÉÚÁĂÉŃ"
+
+#. WINDOW_LICENSE
+msgid "license"
+msgstr "ĚÉĂĹÎÚÉŃ"
+
+#. WINDOW_INFO
+msgid "info"
+msgstr "ÓÔÁÔÉÓÔÉËÁ"
+
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "ĐÁËĹÔÎĎĹ ÓËÁÎÉŇĎ×ÁÎÉĹ"
+
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "ĐĎÄÇĎÔĎ×ËÁ ĆÁËÓÉÍÉĚŘÎĎÇĎ ĐĎÓĚÁÎÉŃ"
+
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "ĐĹŇĹÉÍĹÎĎ×ÁÎÉĹ ĆÁËÓÉÍÉĚŘÎĎĘ ÓÔŇÁÎÉĂŮ"
+
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr "ÄĎÂÁ×ĚĹÎÉĹ PS-ĆÁĘĚÁ × ĆÁËÓ"
+
+#. WINDOW_MAIL_PROJECT
+msgid "mail project"
+msgstr "ÜĚĹËÔŇĎÎÎĎĹ ĐÉÓŘÍĎ"
+
+#. WINDOW_MAIL_RENAME
+msgid "rename mail image"
+msgstr "ĐĹŇĹÉÍĹÎĎ×ÁÔŘ ÉÚĎÂŇÁÖĹÎÉĹ × ĐÉÓŘÍĹ"
+
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr "ÄĎÂÁ×ÉÔŘ ĆÁĘĚ × ĐĎÓĚÁÎÉĹ"
+
+#. WINDOW_PRESET_AREA_RENAME
+msgid "rename preset area"
+msgstr "ĐĹŇĹÉÍĹÎĎ×ÁÎÉĹ ĎÂĚÁÓÔÉ"
+
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "ŐÓÔÁÎĎ×ËÉ"
+
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "őŇĎ×ÎÉ"
+
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "çÁÍÍÁ ËĎŇŇĹËĂÉŃ"
+
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "óÔÁÎÄÁŇÔÎŮĹ ĐÁŇÁÍĹÔŇŮ"
+
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "äĎĐĎĚÎÉÔĹĚŘÎŮĹ ĐÁŇÁÍĹÔŇŮ"
+
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "×ŮÂĎŇ ŐÓÔŇĎĘÓÔ×Á"
+
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "đŇĹÄ×ÁŇÉÔĹĚŘÎĎĹ ÓËÁÎÉŇĎ×ÁÎÉĹ"
+
+#. WINDOW_VIEWER
+msgid "Viewer"
+msgstr "đŇĎÓÍĎÔŇ"
+
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+msgid "Viewer: select output filename"
+msgstr "đŇĎÓÍĎÔŇ: ×ŮÂĹŇÉÔĹ ËĎÎĹŢÎĎĹ ÉÍŃ ĆÁĘĚÁ"
+
+#. WINDOW_OCR_OUTPUT_FILENAME
+msgid "Select output filename for OCR text file"
+msgstr "÷ŮÂĹŇÉÔĹ ËĎÎĹŢÎĎĹ ÉÍŃ ĆÁĘĚÁ ÄĚŃ ŇÁÓĐĎÚÎÁÎÎĎÇĎ ÔĹËÓÔÁ"
+
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "×ŮÂĹŇÉÔĹ ËĎÎĹŢÎĎĹ ÉÍŃ ĆÁĘĚÁ"
+
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "ÓĎČŇÁÎÉÔŘ ĐÁŇÁÍĹÔŇŮ ŐÓÔŇĎĘÓÔ×Á"
+
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "ÚÁÇŇŐÚÉÔŘ ĐÁŇÁÍĹÔŇŮ ŐÓÔŇĎĘÓÔ×Á"
+
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "ÉÚÍĹÎÉÔŘ ŇÁÂĎŢÉĘ ËÁÔÁĚĎÇ"
+
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "ÉÚÍĹÎÉÔŘ ËÁÔÁĚĎÇ ÄĚŃ ×ŇĹÍĹÎÎŮČ ĆÁĘĚĎ×"
+
+#. WINDOW_SCALE
+msgid "Scale image"
+msgstr "íÁÓÝÔÁÂÉŇĎ×ÁÎÉĹ ÉÚÂŇÁÖĹÎÉŃ"
+
+#. WINDOW_DESPECKLE
+msgid "Despeckle image"
+msgstr "őÂŇÁÔŘ ŇÁÓÔŇĎ×ŮĘ ŇÉÓŐÎĎË Ó ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. WINDOW_BLUR
+msgid "Blur image"
+msgstr "ňÁÚÍŮÔŘ ÉÚĎÂŇÁÖĹÎÉĹ"
+
+#. WINDOW_STORE_MEDIUM
+msgid "Store medium definition"
+msgstr "úÁĐÉÓÁÔŘ ÎĎÓÉÔĹĚŘ"
+
+#. MENU_FILE
+msgid "File"
+msgstr "ćÁĘĚ"
+
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "đÁŇÁÍĹÔŇŮ"
+
+#. MENU_VIEW
+msgid "View"
+msgstr "÷ÉÄ"
+
+#. MENU_HELP
+msgid "Help"
+msgstr "đĎÍĎÝŘ"
+
+#. MENU_FILTERS
+msgid "Filters"
+msgstr "ćÉĚŘÔŇŮ"
+
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "ď ĐŇĎÇŇÁÍÍĹ XSane"
+
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr "óÔÁÔÉÓÔÉËÁ"
+
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "÷ŮČĎÄ"
+
+#. MENU_ITEM_SAVE_IMAGE
+msgid "Save image"
+msgstr "óĎČŇÁÎÉÔŘ ÉÚÂŇÁÖĹÎÉĹ"
+
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "úÁËŇŮÔŘ"
+
+#. MENU_ITEM_CLONE
+msgid "Clone"
+msgstr "äŐÂĚÉŇĎ×ÁÔŘ"
+
+#. MENU_ITEM_SCALE
+msgid "Scale"
+msgstr "íÁÓÔÁÂÉŇĎ×ÁÎÉĹ"
+
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr "őÂŇÁÔŘ ŇÁÓÔŇ"
+
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr "ňÁÚÍŮÔÉĹ"
+
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr "éÓČĎÄÎĎĹ ÉÚÂŇÁÖĹÎÉĹ"
+
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr "ďÂŇÁÂĎÔÁÎÎĎĹ ÉÚĎÂŇÁÖĹÎÉĹ"
+
+#. BUTTON_START
+msgid "Start"
+msgstr "óËÁÎÉŇĎ×ÁÔŘ"
+
+#. BUTTON_OK
+msgid "Ok"
+msgstr "äÁ"
+
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr "đŇÉÎŃÔŘ"
+
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr "ďÔËÁÚÁÔŘÓŃ"
+
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr "đŇÉÍĹÎÉÔŘ"
+
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr "ďÔÍĹÎÉÔŘ"
+
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr "őÍĹÎŘŰÉÔŘ"
+
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "đŇĎÄĎĚÖÉÔŘ (ĎĐÁÓÎĎ)"
+
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "ďÂÚĎŇ"
+
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr "đĹŇĹÚÁĐÉÓÁÔŘ"
+
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr "äĎÂÁ×ÉÔŘ ĎÂĚÁÓÔŘ"
+
+#. BUTTON_PAGE_DELETE
+msgid "Delete page"
+msgstr "őÄÁĚÉÔŘ ÓÔŇÁÎÉĂŐ"
+
+#. BUTTON_PAGE_SHOW
+msgid "Show page"
+msgstr "đĎËÁÚÁÔŘ ÓÔŇÁÎÉĂŐ"
+
+#. BUTTON_PAGE_RENAME
+msgid "Rename page"
+msgstr "đĹŇĹÉÍĹÎĎ×ÔŘ ÓÔŇÁÎÉĂŐ"
+
+#. BUTTON_IMAGE_DELETE
+msgid "Delete image"
+msgstr "őÄÁĚÉÔŘ ÉÚĎÂŇÁÖĹÎÉĹ"
+
+#. BUTTON_IMAGE_SHOW
+msgid "Show image"
+msgstr "đĎËÁÚÁÔŘ ÉÚĎÂŇÁÖĹÎÉĹ"
+
+#. BUTTON_IMAGE_RENAME
+msgid "Rename image"
+msgstr "đĹŇĹÉÍĹÎĎ×ÔŘ ÉÚĎÂŇÁÖĹÎÉĹ"
+
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr "÷ÓÔÁ×ÉÔŘ ĆÁĘĚ"
+
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr "óĎÚÄÁÔŘ ĐŇĎĹËÔ"
+
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr "đĎÓĚÁÔŘ ĐŇĎĹËÔ"
+
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr "őÄÁĚÉÔŘ ĐŇĎĹËÔ"
+
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr "äĎÂÁ×ÉÔŘ ĎĐÉÓÁÎÉĹ ĐŇÉÎÔĹŇÁ"
+
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr "őÄÁĚÉÔŘ ĎĐÉÓÁÎÉĹ ĐŇÉÎÔĹŇÁ"
+
+#. BUTTON_PREVIEW_ACQUIRE
+msgid "Acquire preview"
+msgstr "đŇĹÄ×ÁŇÉÔĹĚŘÎĎĹ ÓËÁÎÉŇĎ×ÁÎÉĹ"
+
+#. BUTTON_PREVIEW_CANCEL
+msgid "Cancel preview"
+msgstr "ďÔÍĹÎÉÔŘ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎĹ ÓËÁÎÉŇĎ×ÁÎÉĹ"
+
+#. BUTTON_DISCARD_IMAGE
+msgid "Discard image"
+msgstr "őÄÁĚÉÔŘ ÉÚĎÂŇÁÖĹÎÉĹ"
+
+#. BUTTON_DISCARD_ALL_IMAGES
+msgid "Discard all images"
+msgstr "őÄÁĚÉÔŘ ×ÓĹ ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr "îĹ ÚÁËŇŮ×ÁÔŘ"
+
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr "úÁĆÉËÓÉŇĎ×ÁÔŘ ÍÁÓŰÔÁÂ"
+
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr "ňĹÖÉÍ Fine"
+
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr "ďÔĐŇÁ×ĚŃÔŘ ÔĹËÓÔ ËÁË HTML"
+
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr "óĎČŇÁÎŃÔŘ ĐÁŇÁÍĹÔŇŮ ŐÓÔŇĎĘÓÔ×Á ĐŇÉ ×ŮČĎÄĹ"
+
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr "đŇĹÄŐĐŇĹÖÄÁÔŘ ĐŇÉ ĐĹŇĹÚÁĐÉÓÉ"
+
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr "đŇĎĐŐÓËÁÔŘ ÓŐÝĹÓÔ×ŐŔÝÉĹ"
+
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr "őÍĹÎŘŰÁÔŘ Ă×ĹÔÎĎÓÔŘ 16-ÂÉÔÎŮČ ÉÚĎÂŇÁÖĹÎÉĘ ÄĎ 8 ÂÉÔ"
+
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr "çĚÁ×ÎĎĹ ĎËÎĎ ÎĹ ÍÁÓŰÔÁÂÉŇŐĹÍĎ"
+
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "ďÔËĚŔŢÉÔŘ ÇÁÍÍÁ ËĎŇŇĹËĂÉŔ × ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÍ ÓËÁÎÉŇĎ×ÁÎÉÉ ÄĚŃ GIMP-Á"
+
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr "éÓĐĎĚŘÚĎ×ÁÔŘ ÓĎÂÓÔ×ĹÎÎŐŔ Ă×ĹÔĎ×ŐŔ ÔÁÂĚÉĂŐ"
+
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "á×ÔĎĐĎÄÂĎŇ ÇÁÍÍŮ"
+
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+msgid "Preselect scanarea"
+msgstr "á×ÔĎ×ŮÂĎŇ ĎÂĚÁÓÔÉ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr "á×ÔĎËĎŇŇĹËĂÉŃ Ă×ĹÔÁ"
+
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr "éÓĐĎĚŘÚĎ×ÁÔŘ Á×ÔĎŇÉÚÁĂÉŔ POP3"
+
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "ĐĎÉÓË ŐÓÔŇĎĘÓÔ×"
+
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr "äĎÓÔŐĐÎŮĹ ŐÓÔŇĎĘÓÔ×Á"
+
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr "ďÂÝÉĹ ĐÁŇÁÍĹÔŇŮ"
+
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr "ňĹÖÉÍ"
+
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr "űÁÇ"
+
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr "ćĎŇÍÁÔ"
+
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr "őÓÔŇĎĘÓÔ×Ď É ÄŇÁĘ×ĹŇ:"
+
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr "đĎÓÔÁ×ÝÉË:"
+
+#. TEXT_MODEL
+msgid "Model:"
+msgstr "íĎÄĹĚŘ:"
+
+#. TEXT_TYPE
+msgid "Type:"
+msgstr "ôÉĐ:"
+
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr "őÓÔŇĎĘÓÔ×Ď:"
+
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr "éÓĐĎĚŘÚŐĹÍŮĘ ÄŇÁĘ×ĹŇ:"
+
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr "÷ĹŇÓÉŃ Sane:"
+
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr "đĎÓĚĹÄÎÉĹ ÚÎÁŢĹÎÉŃ"
+
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr "ëĎŇŇĹËĂÉŃ ÇÁÍÍŮ ĎÓŐÝĹÓÔ×ĚŃĹÔÓŃ:"
+
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr "ÓËÁÎĹŇ"
+
+#. TEXT_SOFTWARE_XSANE
+msgid "software (XSane)"
+msgstr "ĐŇĎÇŇÁÍÎĎ (XSane)"
+
+#. TEXT_NONE
+msgid "none"
+msgstr "ÎĹÔ"
+
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr "éÓČĎÄÎÁŃ ÇĚŐÂÉÎÁ ÇÁÍÍŮ:"
+
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr "ňĹÚŐĚŘÔÉŇŐŔÝÁŃ ÇĚŐÂÉÎÁ ÇÁÍÍŮ:"
+
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr "çĚŐÂÉÎÁ Ă×ĹÔÁ ÓËÁÎĹŇÁ:"
+
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr "ćĎŇÍÁÔŮ ĆÁĘĚĎ× XSane:"
+
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr "8-ÂÉÔÎŮĹ ŇĹÚŐĚŘÔÉŇŐŔÝÉĹ ĆĎŇÍÁÔŮ:"
+
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr "16-ÂÉÔÎŮĹ ŇĹÚŐĚŘÔÉŇŐŔÝÉĹ ĆĎŇÁÔŮ:"
+
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"GIMP ÎĹ ĐĎÄÄĹŇÖÉ×ÁĹÔ ÇĚŐÂÉÎŐ × 16 ÂÉÔ ÎÁ Ă×ĹÔ.\n"
+"őÍĹÎŘŰÉÔŘ ÇĚŐÂÉÎŐ ÄĎ 8 ÂÉÔ ÎÁ Ă×ĹÔ?"
+
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"äÁÎÎŮĘ ĆĎŇÍÁÔ ĆÁĘĚÁ ÎĹ ĐĎÄÄĹŇÖÉ×ÁĹÔ ÇĚŐÂÉÎŐ × 16 ÂÉÔ ÎÁ Ă×ĹÔ.\n"
+"őÍĹÎŘŰÉÔŘ ÇĚŐÂÉÎŐ ÄĎ 8 ÂÉÔ ÎÁ Ă×ĹÔ?"
+
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr "ôŇĹÂŐĹÔÓŃ Á×ÔĎŇÉÚÁĂÉŃ ÄĚŃ"
+
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr "đÁŇĎĚŘ ĐŇÉ ĐĹŇĹÄÁŢĹ ŰÉĆŇŐĹÔÓŃ"
+
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr "đÁŇĎĚŘ ĐĹŇĹÄÁĹÔÓŃ ĎÔËŇŮÔŮÍ ÔĹËÓÔĎÍ"
+
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr "éÍŃ ĐĎĚŘÚĎ×ÁÔĹĚŃ :"
+
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr "đÁŇĎĚŘ :"
+
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr "îĹ×ĹŇÎŮĹ ĐÁŇÁÍĹÔŇŮ."
+
+#. TEXT_VERSION
+msgid "version:"
+msgstr "×ĹŇÓÉŃ:"
+
+#. TEXT_PACKAGE
+msgid "package"
+msgstr "ĐÁËĹÔ"
+
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr "Ó ĐĎÄÄĹŇÖËĎĘ GIMP-Á"
+
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr "ĐĎÄÄĹŇÖËÁ GIMP-Á ĎÔÓŐÔÓÔ×ŐĹÔ"
+
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "ÓĎÂŇÁÎĎ Ó GTK-"
+
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr "ÓĎÂŇÁÎĎ Ó GIMP-"
+
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr "ÎĹÉÚ×ĹÓÎĎ"
+
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"XSane ŇÁÓĐŇĎÓÔŇÁÎŃĹÔÓŃ ĐĎ ŐÓĚĎ×ÉŃÍ GNU çĹÎĹŇÁĚŘÎĎĘ ĐŐÂĚÉŢÎĎĘ ĚÉĂĹÎÚÉÉ\n"
+"ĎĐŐÂĚÉËĎ×ÁÎÎĎĘ ćĎÎÄĎÍ Ó×ĎÂĎÄÎĎÇĎ ĐŇĎÇŇÁÍÍÎĎÇĎ ĎÂĹÓĐĹŢĹÎÉŃ ×ĹŇÓÉÉ 2\n"
+"ÉĚÉ (ĐĎ ×ÁŰĹÍŐ ÍÎĹÎÉŔ) ĚŔÂĎĘ ÂĎĚĹĹ ĐĎÚÄÎĹĘ\n"
+"\n"
+"äÁÎÎĎĹ ĐŇĎÇŇÁÍÍÎĎĹ ĎÂĹÓĐĹŢĹÎÉĹ ŇÁÓĐŇĎÓÔŇÁÎŃĹÔÓŃ × ÎÁÄĹÖÄĹ ÎÁ ÔĎ, ŢÔĎ ĎÎĎ\n"
+"ÂŐÄĹÔ ĐĎĚĹÚÎŮÍ, ÎĎ âĺú ěŕâůč çáňáîôéę...\n"
+
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr "áÄŇĹÓ:"
+
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr "äĎÍÁŰÎŃŃ ÓÔŇÁÎÉĂÁ ĐŇĎĹËÔÁ:"
+
+#. TEXT_FILE
+msgid "File:"
+msgstr "ćÁĘĚ:"
+
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr "đĹŇĹ×ĎÄ:"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+"ĐĹŇĹ×ĹĚ ÎÁ ŇŐÓÓËÉĘ ŃÚŮË:\n"
+"John Profic\n"
+"áÄŇĹÓ: profic@lrn.ru\n"
+
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr "0x0: 0ëÂÁĘÔ"
+
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr "óĎÓËÁÎÉŇĎ×ÁÎĎ ÓÔŇÁÎÉĂ: "
+
+#. TEXT_MAIL_TEXT
+msgid "Email text:"
+msgstr "ôĹËÓÔ ĐÉÓŘÍÁ:"
+
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr "éÚĎÂŇÁÖĹÎÉŃ:"
+
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr "óÔÁÔŐÓ ĐŇĎĹËÔÁ:"
+
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr "éÍŃ ÎĎÓÉÔĹĚŃ: "
+
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+"ňÁÚÍĹŇ %d ÎÁ %d ĐÉËÓĹĚĹĘ, %d ÂÉÔ/Ă×ĹÔ, %d Ă×ĹÔĎ×, %1.0f dpi x %1.0f dpi, "
+"%1.1f %s"
+
+#. TEXT_X_SCALE_FACTOR
+msgid "X-Scale factor:"
+msgstr "ő×ĹĚÉŢĹÎÉŃ ĐĎ ĎÓÉ X"
+
+#. TEXT_Y_SCALE_FACTOR
+msgid "Y-Scale factor:"
+msgstr "ő×ĹĚÉŢĹÎÉŃ ĐĎ ĎÓÉ Y"
+
+#. TEXT_DESPECKLE_RADIUS
+msgid "Despeckle radius:"
+msgstr "ňÁÄÉŐÓ ŐÂÉŇÁÎÉŃ ŇÁÓÔŇÁ:"
+
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr "ňÁÄÉŐÓ ŇÁÚÍŮÔÉŃ:"
+
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr "ôĹËŐÝÉĘ ĐŇÉÎÔĹŇ:"
+
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr "éÍŃ:"
+
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr "ëĎÍÍÁÎÄÁ:"
+
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ËĎĚÉŢĹÓÔ×Á ËĎĐÉĘ"
+
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "ňÁÚŇĹŰĹÎÉĹ ĐŇÉ ÓËÁÎÉŇĎ×ÁÎÉÉ ŇÉÓŐÎËÁ (dpi)"
+
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "ňÁÚŇĹŰĹÎÉĹ ĐŇÉ ÓËÁÎÉŇĎ×ÁÎÉÉ Ţ ĆĎÔĎ (dpi)"
+
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "ňÁÚŇĹŰĹÎÉĹ ĐŇÉ ÓËÁÎÉŇĎ×ÁÎÉÉ Ă×ĹÔÎĎÇĎ ĆĎÔĎ (dpi)"
+
+#. TEXT_SETUP_PRINTER_WIDTH
+msgid "Width"
+msgstr "űÉŇÉÎÁ"
+
+#. TEXT_SETUP_PRINTER_HEIGHT
+msgid "Height"
+msgstr "÷ŮÓĎÔÁ"
+
+#. TEXT_SETUP_PRINTER_LEFT
+msgid "Left offset"
+msgstr "ďÔÓÔŐĐ ÓĚĹ×Á"
+
+#. TEXT_SETUP_PRINTER_BOTTOM
+msgid "Bottom offset"
+msgstr "ďÔÓÔŐĐ ÓÎÉÚŐ"
+
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr "úÎÁŢĹÎÉĹ ÇÁÍÍŮ ÄĚŃ ĐŇÉÎÔĹŇÁ:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr "úÎÁŢĹÎÉĹ ËŇÁÓÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ÄĚŃ ĐŇÉÎÔĹŇÁ:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr "úÎÁŢĹÎÉĹ ÚĹĚĹÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ÄĚŃ ĐŇÉÎÔĹŇÁ:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr "úÎÁŢĹÎÉĹ ÓÉÎĹÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ÄĚŃ ĐŇÉÎÔĹŇÁ:"
+
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "÷ŇĹÍĹÎÎŮĘ ËÁÔÁĚĎÇ"
+
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "đŇÁ×Á ÎÁ ĆÁĘĚ ÉÚĎÂŇÁÖĹÎÉĹ"
+
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "đŇÁ×Á ÎÁ ËÁÔÁĚĎÇ"
+
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr "ëÁŢĹÓÔ×Ď JPEG-ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr "óÔĹĐĹÎŘ ÓÖÁÔÉŃ PNG-ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr "äĚÉÎÁ ÓŢĹÔŢÉËÁ ĆÁĘĚĎ×"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "óÖÁÔÉĹ ÄĚŃ 16-ÂÉÔÎĎÇĎ TIFF ÉÚÂŇÁÖĹÎÉŃ"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "óÖÁÔÉĹ ÄĚŃ 8-ÂÉÔÎĎÇĎ TIFF ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr "óÖÁÔÉŃ ÄĚŃ TIFF ŇÉÓŐÎËÁ"
+
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "ő×ĹĚÉŢĹÎÉĹ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr "úÎÁŢĹÎÉĹ ÇÁÍÍŮ ÄĚŃ ĐŇĹÄ×ÁŇÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr "úÎÁŢĹÎÉĹ ËŇÁÓÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ÄĚŃ ĐŇĹÄ×ÁŇÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr "úÎÁŢĹÎÉĹ ÚĹĚĹÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ÄĚŃ ĐŇĹÄ×ÁŇÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr "úÎÁŢĹÎÉĹ ÓÉÎĹÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ÄĚŃ ĐŇĹÄ×ÁŇÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ:"
+
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "ďĐĂÉÉ ŐĐŇÁ×ĚĹÎÉŃ ĐĎŇĎÇĎÍ:"
+
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr "ňĹÖÉÍ Á×ÔĎĐĎÄÁÔŢÉËÁ ÂŐÍÁÇÉ:"
+
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr "ňÁÚÍĹŇ ĐÉĐĹÔËÉ ÄĚŃ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "íÉÎÉÍÁĚŘÎŮĘ ĐĎŇĎÇ:"
+
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "íÁËÓÉÓÁĚŘÎŮĘ ĐĎŇĎÇ:"
+
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "íÎĎÖÉÔĹĚŘ ÄĚŃ ĐĎŇĎÇÁ:"
+
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "óÍĹÝĹÎÉĹ ÄĚŃ ĐĎŇĎÇÁ:"
+
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "éÍŃ ŇĹÖÉÍÁ ÄĚŃ Ţ ĆĎÔĎ"
+
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "đŇĎÓÍĎÔŇÝÉË ÄĎËŐÍĹÎÔÁĂÉÉ (HTML)"
+
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ĐŇÉĹÍÁ:"
+
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ PostScript ĆÁĘĚÁ"
+
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ŇĹÖÉÍÁ Normal"
+
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ŇĹÖÉÍÁ Fine"
+
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr "đŇĎÇŇÁÍÍÁ ĐŇĎÓÍĎÔŇÁ PostScript ĆÁĘĚĎ×:"
+
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr "óĹŇ×ĹŇ SMTP:"
+
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr "đĎŇÔ SMTP:"
+
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr "ďÔ:"
+
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr "ďÔ×ĹŢÁÔŘ ÎÁ:"
+
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr "óĹŇ×ĹŇ POP3:"
+
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr "đĎŇÔ POP3:"
+
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr "đĎĚŘÚĎ×ÁÔĹĚŘ POP3:"
+
+#. TEXT_SETUP_POP3_PASS
+msgid "POP3 password:"
+msgstr "đÁŇĎĚŘ POP3:"
+
+#. TEXT_SETUP_MAIL_VIEWER
+msgid "Viewer (png):"
+msgstr "đŇĎÇŇÁÍÍÁ ĐŇĎÓÍĎÔŇÁ PNG ĆÁĘĚĎ×:"
+
+#. TEXT_SETUP_OCR_COMMAND
+msgid "OCR Command:"
+msgstr "ëĎÍÍÁÎÄÁ ŇÁÓĐĎÚÎÁ×ÁÎÉŃ ÔĹËÓÔÁ:"
+
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+msgid "Inputfile option:"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ÉÓČĎÄÎĎÇĎ ĆÁĘĚÁ"
+
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+msgid "Outputfile option:"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ŇĹÚŐĚŘÔÉŇŐŔÝĹÇĎ ĆÁĘĚÁ"
+
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr "×ĚÁÄĹĚĹĂ"
+
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr "ÇŇŐĐĐÁ"
+
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr "ĐŇĎŢÉĹ"
+
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr "ćÁĘĚ"
+
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr "éÚĎÂŇÁÖĹÎÉĹ"
+
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "ëĎĐÉŇĎ×ÁÎÉĹ"
+
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr "ćÁËÓ"
+
+#. NOTEBOOK_MAIL_OPTIONS
+msgid "Mail"
+msgstr "đÉÓŘÍĎ"
+
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr "ňÁÓĐÁÚÎĎ×ÁÎÉĹ ÔĹËÓÔÁ"
+
+#. NOTEBOOK_DISPLAY_OPTIONS
+msgid "Display"
+msgstr "÷ÉÄ"
+
+#. NOTEBOOK_ENHANCE_OPTIONS
+msgid "Enhancement"
+msgstr "đŇĎŢĹĹ"
+
+#. MENU_ITEM_MAIL
+msgid "Email"
+msgstr "đĎŢÔÁ"
+
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr "đĎËÁÚŮ×ÁÔŘ ×ÓĐĚŮ×ÁŔÝÉĹ ĐĎÄÓËÁÚËÉ"
+
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr "đĎËÁÚÁÔŘ ĎÂĚÁÓÔŘ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ĐŇĎÓÍĎÔŇÁ"
+
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr "đĎËÁÚÁÔŘ ŐŇĎ×ÎÉ"
+
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "đĎËÁÚÁÔŘ ÇÁÍÍÁ ËĎŇŇĹËĂÉŔ"
+
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr "đĎËÁÚÁÔŘ ÓÔÁÎÄÁŇÔÎŮĹ ĐÁŇÁÍĹÔŇŮ"
+
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr "đĎËÁÚÁÔŘ ÄĎĐĎĚÎÉÔĹĚŘÎŮĹ ĐÁŇÁÍĹÔŇŮ"
+
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr "őÓÔÁÎĎ×ËÉ"
+
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr "ĺÄÉÎÉĂŮ ÉÚÍĹŇĹÎÉŃ"
+
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr "ÍÉĚĚÉÍĹÔŇŮ"
+
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr "ÓÁÎÔÉÍĹÔŇŮ"
+
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr "ÄŔĘÍŮ"
+
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "đĎĚÉÔÉËÁ ĎÂÎĎ×ĚĹÎÉĘ"
+
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "ĐĎÓÔĎŃÎÎĎĹ"
+
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "ĐĹŇÉĎÄÉŢĹÓËĎĹ"
+
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "ĎÔĚĎÖĹÎÎĎĹ"
+
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "đĎËÁÚÁÔŘ ÓĐÉÓĎČ ŇÁÚŇĹŰĹÎÉĘ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "đĹŇĹ×ĹŇÎŐÔŘ PostScript"
+
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr "óĎČŇÁÎÉÔŘ ĐÁŇÁÍĹÔŇŮ ŐÓÔŇĎĘÓÔ×Á"
+
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr "úÁÇŇŐÚÉÔŘ ĐÁŇÁÍĹÔŇŮ ŐÓÔŇĎĘÓÔ×Á"
+
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "éÚÍĹÎÉÔŘ ÔĹËŐÝÉĘ ËÁÔÁĚĎÇ"
+
+#. MENU_ITEM_XSANE_LICENSE
+msgid "License"
+msgstr "ěÉĂĹÚÉŃ"
+
+#. MENU_ITEM_XSANE_DOC
+msgid "XSane doc"
+msgstr "äĎËŐÍĹÎÔÁĂÉŃ ĐĎ XSane"
+
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr "äĎËŐÍĹÎÔÁĂÉŃ ĐĎ ÄŇÁĘ×ĹŇÁÍ"
+
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr "äĎÓÔŐĐÎŮĹ ÄŇÁĘ×ĹŇŮ"
+
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr "đĎÄÓËÁÚËÉ ĐĎ ÓËÁÎÉŇĎ×ÁÎÉŔ"
+
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr "đŇĎÂĚĹÍŮ?"
+
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr "ÎĹ ÁËÔÉ×ÎĎ"
+
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr "ÂĹÚ ÓÖÁÔÉŃ"
+
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr "ÓÖÁÔÉĹ CCITT 1D Huffman"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr "ÓÖÁÔÉĹ CCITT Group 3"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr "ÓÖÁÔÉĹ CCITT Group 4"
+
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr "ÓÖÁÔÉĹ JPEG DCT"
+
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr ""
+
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "ďËÎĎ ÓÔÁÎÄÁŇÔÎŮČ ĐÁŇÁÍĹÔŇĎ× (ŇÉÓŐÎĎË)"
+
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "çĚÁ×ÎĎĹ ĎËÎĎ (ŇÉÓŐÎĎË)"
+
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "çĚÁ×ÎĎĹ ĎËÎĎ (Ţ ĆĎÔĎ->ŇÉÓŐÎĎË)"
+
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr "(ÎĹÔ)"
+
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "ĐĎ ŇÁÓŰÉŇĹÎÉŔ"
+
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr "äĎÂÁ×ÉÔŘ ×ŮÄĹĚĹÎÉĹ"
+
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr "đĹŇĹÉÍĹÎĎ×ÁÔŘ ĎÂĚÁÓÔŘ"
+
+#. MENU_ITEM_PRESET_AREA_DELETE
+msgid "Delete definition"
+msgstr "őÄÁĚÉÔŘ ĎÂĚÁÓÔŘ"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr "îÁ ĐĎÚÉĂÉŔ ××ĹŇČ"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr "îÁ ĐĎÚÉĂÉŔ ×ÎÉÚ"
+
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "óËÁÎÉŇĎ×ÁÎÉĹ"
+
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "đŇÉÎÉÍÁŔ ÄÁÎÎŮĹ %s"
+
+#. PROGRESS_TRANSFERING_DATA
+msgid "Transfering image"
+msgstr "đĹŇĹÄÁŢÁ ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr "đĎ×ĎŇĎÔ ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. PROGRESS_MIRRORING_DATA
+msgid "Mirroring image"
+msgstr "ďÔĎÂŇÁÖĹÎÉĹ ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr "óÖÁÔÉĹ ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. PROGRESS_CONVERTING_DATA
+msgid "Converting image"
+msgstr "ëĎÎ×ĹŇÔÉŇĎ×ÁÎÉĹ ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. PROGRESS_SAVING_DATA
+msgid "Saving image"
+msgstr "óĎČŇÁÎĹÎÉĹ ÉÚÂŇÁÖĹÎÉŃ"
+
+#. PROGRESS_CLONING_DATA
+msgid "Cloning image"
+msgstr "äŐÂĚÉŇĎ×ÁÎÉĹÔ ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. PROGRESS_SCALING_DATA
+msgid "Scaling image"
+msgstr "íÁÓÔÁÂÉŇĎ×ÁÎÉĹ ÉÚÂŇÁÖĹÎÉŃ"
+
+#. PROGRESS_DESPECKLING_DATA
+msgid "Despeckling image"
+msgstr "őÂÉŇÁÎÉĹ ŇÁÓÔŇÁ Ó ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. PROGRESS_BLURING_DATA
+msgid "Bluring image"
+msgstr "ňÁÚÍŮÔÉĹ ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr "îÁŢÁÔŘ ÓËÁÎÉŇĎ×ÎÉĹ <Ctrl-Enter>"
+
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr "ďÔÍĹÎÉÔŘ ÓËÁÎÉŇĎ×ÁÎÉĹ <ESC>"
+
+#. DESC_PREVIEW_ACQUIRE
+msgid "Acquire preview scan <Alt-p>"
+msgstr "îÁŢÁÔŘ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎĹ ÓËÁÎÉŇĎ×ÁÎÉĹ <Alt-p>"
+
+#. DESC_PREVIEW_CANCEL
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "ďÔÍĹÎÉÔŘ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎĹ ÓËÁÎÉŇĎ×ÁÎÉĹ <Alt-ESC>"
+
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+"óĎČŇÁÎÉÔŘ-<Ctrl-s>, ĐŇĎÓÍĎÔŇĹÔŘ-<Ctrl-v>, ËĎĐÉŇĎ×ÁÔŘ-<Ctrl-c>, ĎÔĐŇÁ×ÉÔŘ "
+"ĆÁËÓ-<Ctrl-f> ÉĚÉ ĎÔĐŇÁ×ÉÔŘ ĐÉÓŘÍĎ-<Ctrl-m>"
+
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr "ôÉĐ ÎĎÓÉÔĹĚŃ"
+
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr "úÎÁŢĹÎÉĹ, ÎÁ ËĎÔĎŇĎĹ ÉÚÍĹÎŃĹÔÓŃ ÓŢĹÔŢÉË ĐĎÓĚĹ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr "÷ŮÂŇÁÔŘ ÉÍŃ ĆÁĘĚÁ ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr "éÍŃ ĆÁĘĚÁ ÄĚŃ ÓĎČŇÁÎÉŃ ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr ""
+"ćĎŇÍÁÔ ÉÚĎÂŇÁÖĹÎÉŃ, ÎĹĎÂČĎÄÉÍĎĹ ŇÁÓŰÉŇĹÎÉĹ Á×ÔĎÍÁÔÉŢĹÓËÉ ÄĎÂÁ×ĚŃĹÔÓŃ Ë ÉÍĹÎÉ "
+"ĆÁĘĚÁ"
+
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr "éÍŃ ĆÁËÓÁ"
+
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr "éÍŃ ĆÁËÓÉÍÉĚŘÎĎĘ ÓÔŇÁÎÉĂŮ"
+
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr "îĎÍĹŇ ÔĹĚĹĆĎÎÁ ÄĚŃ ĎÔĐŇÁ×ËÉ"
+
+#. DESC_MAILPROJECT
+msgid "Enter name of mail project"
+msgstr "éÍŃ ĐĎŢÔĎ×ĎÇĎ ÓĎĎÂÝĹÎÉŃ"
+
+#. DESC_MAILIMAGENAME
+msgid "Enter new name for mail image"
+msgstr "éÍŃ ĆÁĘĚÁ ÄĚŃ ÉÚĎÂŇÁÖĹÎÉŃ"
+
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr "áÄŇĹÓ ÜĚĹËÔŇĎÎÎĎĘ ĐĎŢÔŮ"
+
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr "ôĹÍÁ ĐÉÓŘÍÁ"
+
+#. DESC_PRESET_AREA_NAME
+msgid "Enter new name for preset area"
+msgstr "îĎ×ĎĹ ÉÍŃ ÄĚŃ ĎÂĚÁÓÔÉ"
+
+#. DESC_PRINTER_SELECT
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "÷ŮÂŇĎ ĎĐÉÓÁÎÉŃ ĐŇÉÎÔŇĹÁ <Shift-F1/F2/...>"
+
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr "÷ŮÂĎŇ ŇÁÚŇĹŰĹÎÉŃ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "ňÁÚŇĹŰĹÎÉŃ ÓËÁÎÉŇĎ×ÁÎÉŃ ĐĎ ĎÓÉ X"
+
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "ňÁÚŇĹŰĹÎÉĹ ÓËÁÎÉŇĎ×ÁÎÉĹ ĐĎ ĎÓÉ Y"
+
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr "đŇĎĂĹÎÔ Ő×ĹĚÉŢĹÎÉŃ"
+
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "đŇĎĂĹÎÔ Ő×ĹĚÉŢĹÎÉŃ ĐĎ ĎÓÉ X"
+
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "đŇĎĂĹÎÔ Ő×ĹĚÉŢĹÎÉŃ ĐĎ ĎÓÉ Y"
+
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr "ëĎĚÉŢĹÓÔ×Ď ËĎĐÉĘ"
+
+#. DESC_NEGATIVE
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr "îĹÇÁÔÉ×: ÉÎ×ĹŇÔÉŇĎ×ÁÔŘ Ă×ĹÔÁ ÄĚŃ ÓËÁÎÉŇĎ×ÁÎÉŃ ÎĹÇÁÔÉ×Ď× <Shift-n>"
+
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr "úÎÁŢĹÎÉĹ ÇÁÍÍŮ"
+
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr "úÎÁŢĹÎÉĹ ÇÁÍÍŮ ÄĚŃ ËŇÁÓÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ"
+
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr "úÎÁŢĹÎÉĹ ÇÁÍÍŮ ÄĚŃ ÚĹĚĹÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ"
+
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr "úÎÁŢĹÎÉĹ ÇÁÍÍŮ ÄĚŃ ÓÉÎĹÇĎ ËĎÍĐĎÎĹÎÔÁ"
+
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr "ńŇËĎÓÔŘ"
+
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr "ńŇËĎÓÔŘ ÄĚŃ ËŇÁÓÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ"
+
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr "ńŇËĎÓÔŘ ÄĚŃ ÚĹĚĹÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ"
+
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr "ńŇËĎÓÔŘ ÄĚŃ ÓÉÎĹÇĎ ËĎÍĐĎÎĹÎÔÁ"
+
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr "ëĎÎÔŇÁÓÔÎĎÓÔŘ"
+
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr "ëĎÎÓÔŇÁÓÔÎĎÓÔŘ ÄĚŃ ËŇÁÓÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ"
+
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr "ëĎÎÓÔŇÁÓÔÎĎÓÔŘ ÄĚŃ ÚĹĚĹÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ"
+
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr "ëĎÎÓÔŇÁÓÔÎĎÓÔŘ ÄĚŃ ÓÉÎĹÇĎ ËĎÍĐĎÎĹÎÔÁ"
+
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "őĐŇÁ×ĚĹÎÉĹ ĐĎŇĎÇĎÍ"
+
+#. DESC_RGB_DEFAULT
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"RGB ĐĎ ŐÍĎĚŢÁÎÉŔ: ËŇÁÓÎŮĘ, ÚĹĚĹÎŮĘ É ÓÉÎÉĘ ËĎÍĐĎÎĹÎÔ = ÚÎÁŢĹÎÉĹ ĐĎ "
+"ŐÍĎĚŢÎÉŔ<Shift-b>:\n"
+"ÇÁÍÍÁ = 1.0\n"
+"ŃŇËĎÓÔŘ = 0\n"
+"ËĎÎÔŇÁÓÔÎĎÓÔŘ = 0"
+
+#. DESC_ENH_AUTO
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr "á×ÔĎÂĎÄÂĎŇ ÚÎÁŢĹÎÉĘ ÇÁÍÍŮ, ÁŇËĎÓÔÉ É ËĎÎÔŇÁÓÔÎĎÓÔÉ <Shift-e>"
+
+#. DESC_ENH_DEFAULT
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"đÁŇÁÍĹÔŇŮ ĐĎ ŐÍĎĚŢÎÉŔ <Shift-d>:\n"
+"ÇÁÍÍÁ = 1.0\n"
+"ŃŇËĎÓÔŘ = 0\n"
+"ËĎÎÔŇÁÓÔÎĎÓÔŘ = 0"
+
+#. DESC_ENH_RESTORE
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "÷ĎÓÓÔÁÎĎ×ĚĹÎÉĹ ÚÎÁŢĹÎÉĘ ÉÚ ĐÁŇÁÍĹÔŇĎ× <Shift-r>"
+
+#. DESC_ENH_STORE
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr "úÁĐÉÓŘ ÚÎÁŢĹÎÉĘ × ĐÁŇÁÍĹÔŇŮ <Shift-m>"
+
+#. DESC_HIST_INTENSITY
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "đĎËÁÚÁÔŘ ŐŇĎ×ÎÉ ÄĚŃ ÉÎÔĹÎÓÉ×ÎĎÓÔÉ/ÓĹŇĎÇĎ <Alt-i>"
+
+#. DESC_HIST_RED
+msgid "Show histogram of red component <Alt-r>"
+msgstr "đĎËÁÚÁÔŘ ŐŇĎ×ÎÉ ÄĚŃ ËŇÁÓÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ <Alt-r>"
+
+#. DESC_HIST_GREEN
+msgid "Show histogram of green component <Alt-g>"
+msgstr "đĎËÁÚÁÔŘ ŐŇĎ×ÎÉ ÄĚŃ ÚĹĚĹÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ <Alt-r>"
+
+#. DESC_HIST_BLUE
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "đĎËÁÚÁÔŘ ŐŇĎ×ÎÉ ÄĚŃ ÓÉÎĹÇĎ ËĎÍĐĎÎĹÎÔÁ <Alt-r>"
+
+#. DESC_HIST_PIXEL
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr "ňĹÖÉÍ ĎÔĎÂŇÁÖĹÎÉŃ: ĐĎËÁÚÁÔŘ ŐŇĎ×ÎÉ Ó ĚÉÎÉŃÍÉ ×ÍĹÓÔĎ ÔĎŢĹË <Alt-m>"
+
+#. DESC_HIST_LOG
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "đĎËÁÚÁÔŘ ĚĎÇÁŇÉĆÍ ĐÉËÓĹĚĹĘ <Alt-l>"
+
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr "ďĐÉÓÁÎÉĹ ÄĚŃ ŇĹÄÁËÔÉŇĎ×ÁÎÉŃ"
+
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr "éÍŃ ÄĚŃ ÄÁÎÎĎÇĎ ĎĐÉÓÁÎÉŃ"
+
+#. DESC_PRINTER_COMMAND
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr ""
+"ëĎÍÍÁÎÄÁ ÄĚŃ ×ŮĐĎĚÎĹÎÉŃ ĐŇÉ ÉÓĐĎĚŘÚĎ×ÁÎÉÉ ŇĹÖÉÍÁ ËĎĐÉŇĎ×ÁÎÉŃ (ÎÁĐŇÉÍĹŇ, "
+"\"lpr\")"
+
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ĎĐŇĹÄĹĚĹÎÉŃ ËĚÉŢĹÓÔ×Á ËĎĐÉĘ"
+
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr "ňÁÚŇĹŰĹÎÉĹ, Ó ËĎÔĎŇŮÍ ŇÉÓŐÎËÉ ĐĹŢÁÔÁŔÔÓŃ É ÓĎČŇÁÎŃŔÔÓŃ × PostScript"
+
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr "ňÁÚŇĹŰĹÎÉĹ, Ó ËĎÔĎŇŮÍ ŢÂ ĆĎÔĎ ĐĹŢÁÔÁŔÔÓŃ É ÓĎČŇÁÎŃŔÔÓŃ × PostScript"
+
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr ""
+"ňÁÚŇĹŰĹÎÉĹ, Ó ËĎÔĎŇŮÍ Ă×ĹÔÎŮĹ ĆĎÔĎ ĐĹŢÁÔÁŔÔÓŃ É ÓĎČŇÁÎŃŔÔÓŃ × PostScript"
+
+#. DESC_PRINTER_WIDTH
+msgid "Width of printable area"
+msgstr "űÉŇÉÎÁ ĎÂĚÁÓÔÉ ĐĹŢÁÔÉ"
+
+#. DESC_PRINTER_HEIGHT
+msgid "Height of printable area"
+msgstr "÷ŮÓĎÔÁ ĎÂĚÁÓÔÉ ĐĹŢÁÔÉ"
+
+#. DESC_PRINTER_LEFTOFFSET
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr "ďÔÓÔŐĐ ÓĚĹ×Á ĎÔ ŐÇĚÁ ÂŐÍÁÇÉ ÄĎ ĎÂĚÁÓÔÉ ĐĹŢÁÔÉ"
+
+#. DESC_PRINTER_BOTTOMOFFSET
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "ďÔÓÔŐĐ ÓÎÉÚŐ ĎÔ ŐÇĚÁ ÂŐÍÁÇÉ ÄĎ ĎÂĚÁÓÔÉ ĐĹŢÁÔÉ"
+
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr "äĎĐĎĚÎÉÔĹĚŘÎĎĹ ÚÎÁŢĹÎÉĹ ÇÁÍÍŮ ĐŇÉ ËĎĐÉŇĎ×ÁÎÉÉ"
+
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr "äĎĐĎĚÎÉÔĹĚŘÎĎĹ ÚÎÁŢĹÎÉĹ ËŇÁÓÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ĐŇÉ ËĎĐÉŇĎ×ÁÎÉÉ"
+
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr "äĎĐĎĚÎÉÔĹĚŘÎĎĹ ÚÎÁŢĹÎÉĹ ÚĹĚĹÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ĐŇÉ ËĎĐÉŇĎ×ÁÎÉÉ"
+
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr "äĎĐĎĚÎÉÔĹĚŘÎĎĹ ÚÎÁŢĹÎÉĹ ÓÉÎĹÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ĐŇÉ ËĎĐÉŇĎ×ÁÎÉÉ"
+
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "đŐÔŘ Ë ËÁÔÁĚĎÇŐ ÄĚŃ ×ŇĹÍĹÎÎŮČ ĆÁĘĚĎ×"
+
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "őËÁÚÁÔŘ ×ŇĹÍĹÎÎŮĘ ËÁÔÁĚĎÇ"
+
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr "ëÁŢĹÓÔ×Ď × ĐŇĎĂĹÎÔÁČ ÄĚŃ ĆĎŇÍÁÔÁ JPEG ÉĚÉ TIFF Ó JPEG ÓÖÁÔÉĹÍ"
+
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr "óÖÁÔÉĹ ÄĚŃ ĆĎŇÍÁÔÁ PNG"
+
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr "íÉÎÉÍÁĚŘÎÁŃ ÄĚÉÎÁ ÓŢĹÔŢÉËÁ × ÉÍĹÎÉ ĆÁĘĚÁ"
+
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "ôÉĐ ÓÖÁÔÉŃ ÄĚŃ ĆĎŇÍÁÔÁ TIFF ĐŇÉ 16 ÂÉÔÎĎĘ ÇĚŐÂÉÎĹ Ă×ĹÔÁ"
+
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "ôÉĐ ÓÖÁÔÉŃ ÄĚŃ ĆĎŇÍÁÔÁ TIFF ĐŇÉ 8 ÂÉÔÎĎĘ ÇĚŐÂÉÎĹ Ă×ĹÔÁ"
+
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "ôÉĐ ÓÖÁÔÉŃ ÄĚŃ ĆĎŇÍÁÔÁ TIFF ĐŇÉ ÓĎČŇÁÎĹÎÉÉ ŇÉÓŐÎËĎ×"
+
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr ""
+"óĎČŇÁÎŃÔŘ ĐÁŇÁÍĹÔŇŮ ŐÓÔŇĎĘÓÔ×Á × ĆÁĘĚĹ ĐĎ ŐÍĎĚŢÁÎÉŔ ĐŇÉ ×ŮČĎÄĹ ÉČ XSane-Á"
+
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "đŇĹÄŐĐŇĹÖÄÁÔŘ ĐĹŇĹÄ ĐĹŇĹÚÁĐÉÓŮ×ÁÎÉĹÍ ÓŐÝĹÓÔ×ŐŔÝĹÇĎ ĆÁĘĚÁ"
+
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr ""
+"đŇÉ ÉÓĐĎĚŘÚĎ×ÁÎÉÉ ÓŢĹÔŢÉËÁ × ÉÍĹÎÉ ĆÁĘĚÁ, ÓĎ×ĐÁÄÁŔÝÉĹ ÎĎÍĹŇÁ ĐŇĎĐŐÓËÁŔÔÓŃ"
+
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr ""
+"đŇÉ ÓËÁÎÉŇĎ×ÁÎÉ Ó 16-ÂÉÔÎĎĘ ÇĚŐÂÉÎĎĘ Ă×ĹÔÁ ŐÍĹÎŘŰÁÔŘ Ă×ĹÔÎĎÓÔŘ ÄĎ 8 ÂÉÔ"
+
+#. DESC_PSFILE_WIDTH
+msgid "Width of paper for postscript files"
+msgstr "űÉŇÉÎÁ ÂŐÍÁÇÉ ÄĚŃ PostScript ĆÁĘĚÁ"
+
+#. DESC_PSFILE_HEIGHT
+msgid "Height of paper for postscript files"
+msgstr "÷ŮÓĎÔÁ ÂŐÍÁÇÉ ÄĚŃ PostScript ĆÁĘĚÁ"
+
+#. DESC_PSFILE_LEFTOFFSET
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr "ďÔÓÔŐĐ ÓĚĹ×Á ĎÔ ŐÇĚÁ ÂŐÍÁÇÉ ÄĎ ĎÂĚÁÓÔÉ ĐĹŢÁÔÉ ÄĚŃ PostScript ĆÁĘĚĎ×"
+
+#. DESC_PSFILE_BOTTOMOFFSET
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr "ďÔÓÔŐĐ ÓÎÉÚŐ ĎÔ ŐÇĚÁ ÂŐÍÁÇÉ ÄĎ ĎÂĚÁÓÔÉ ĐĹŢÁÔÉ ÄĚŃ PostScript ĆÁĘĚĎ×"
+
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr "ňÁÚÍĹŇŮ ÇĚÁ×ÎĎÇĎ ĎËÎÁ ĆÉËÓÉŇĎ×ÁÎŮ ÉĚÉ ÉÚÍĹÎŃĹÍŮ"
+
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr ""
+"ďÔËĚŔŢÁÔŘ ÇÁÍÍÁ ËĎŇŇĹËĂÉŔ ÄĚŃ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ ĐŇÉ ×ŮÚĎ×Ĺ "
+"XSane-Á ËÁË GIMP-ĐĚÁÇÉÎÁ"
+
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr ""
+"éÓĐĎĚŘÚĎ×ÁÔŘ ÓĎÂÓÔ×ĹÎÎŐŔ Ő×ĹÔĎ×ŐŔ ĐÁĚÉÔŇŐ ÄĚŃ ĐŇĹÄ×ŇÉÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ "
+"ĐŇÉ Ă×ĹÔÎĎÓÔÉ ÍĎÎÉÔĎŇÁ × 8 bpp"
+
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr ""
+"úÎÁŢĹÎÉĹ ÎÁ ËĎÔĎŇĎĹ ŐÍÎĎÖÁĹÔÓŃ ×ŮÓŢÉÔÁÎÎĎĹ ŇÁÚŇĹŰĹÎÉĹ ÄĚŃ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ "
+"ÓËÁÎŇĎ×ÁÎÉŃ"
+
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr "úÎÁŢĹÎÉĹ ÇÁÍÍŮ ÄĚŃ ÉÚĎÂŇÁÖĹÎÉŃ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr ""
+"úÎÁŢĹÎÉĹ ËŇÁÓÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ÄĚŃ ÉÚĎÂŇÁÖĹÎÉŃ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ "
+"ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr ""
+"úÎÁŢĹÎÉĹ ÚĹĚĹÎĎÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ÄĚŃ ÉÚĎÂŇÁÖĹÎÉŃ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ "
+"ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr ""
+"úÎÁŢĹÎÉĹ ÓÉÎĹÇĎ ËĎÍĐĎÎĹÎÔÁ ÇÁÍÍŮ ÄĚŃ ÉÚĎÂŇÁÖĹÎÉŃ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ "
+"ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_LINEART_MODE
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "óĐĎÓĎÂ, ËĎÔĎŇŮÍ XSane ÂŐÄĹÔ ÉÓĐĎĚŘÚĎ×ÁÔŘ ĐÁŇÁÍĹÔŇŮ ĐĎŇĎÇÁ"
+
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr ""
+"÷ŮÂĹŇÉÔĹ ŇĹÖÉÍ ÓËÁÎÉŇĎ×ÁÎÉŃ ÄĚŃ Ţ ĆĎÔĎ. üÔĎÔ ŇĹÖÉÍ ÂŐÄĹÔ ÉÓĐĎĚŘÚĎ×ÁÔŘÓŃ ÄĚŃ "
+"ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ĐŇĎÓÍĎÔŇÁ ŇÉÓŐÎËĎ× ĹÓĚÉ ĐŇĹĎÂŇÁÚĎ×ÁÎÉĹ ÉÚ Ţ ĆĎÔĎ × ŇÉÓŐÎĎË "
+"×ËĚŔŢĹÎĎ"
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "íÉÎÉÍÁĚŘÎŮĘ ĐĎŇĎÇ ÄĚŃ ÓËÁÎĹŇÁ × %"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "íÁËÓÉÍÁĚŘÎŮĘ ĐĎŇĎÇ ÄĚŃ ÓËÁÎĹŇÁ × %"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr "íÎĎÖÉÔĹĚŘ ÄĚŃ ŐŇÁ×ÎÉ×ÁÎÉŃ ĐĎŇĎÇĎ× XSane É ÓËÁÎĹŇÁ"
+
+#. DESC_PREVIEW_THRESHOLD_OFF
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr "óÍĹÝĹÎÉĹ ÄĚŃ ŐŇÁ×ÎÉ×ÁÎÉŃ ĐĎŇĎÇĎ× XSane É ÓËÁÎĹŇÁ"
+
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+"éÓÔĎŢÎÉË ÄĚŃ Á×ÔĎÍÁÔÉŢĹÓËĎÇĎ ĐĎÄÁÔŢÉËÁ ÂŐÍÁÇÉ. ĺÓĚÉ ÉÓÔĎŢÎÉË ×ŮÂŇÁÎ XSane "
+"ÂŐÄĹÔ ÓËÁÎÉŇĎ×ÁÔŘ ÄĎ ËĎÎĂÁ ĐÁŢËÉ ÂŐÍÁÇÉ ÉĚÉ ĎŰÉÂËÉ."
+
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr ""
+"ňÁÚÍĹŇŮ Ë×ÁÄŇÁÔÁ, ËĎÔĎŇŮĘ ÉÓĐĎĚŘÚŐĹÔÓŃ ÄĚŃ ĎĐŇĹÄĹĚĹÎÉŃ ÓŇĹÄÎĹÇĎ ÚÎÁŢĹÎÉŃ "
+"Ă×ĹÔÁ × ĆŐÎËĂÉÉ ĐÉĐĹÔËÉ"
+
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr ""
+"ëĎÍÍÁÎÄÁ ÄĚŃ ×ŮĐĎĚÎĹÎÉŃ ĐŇÉ ĐĎËÁÚĹ ĆÁĘĚĎ× ĐĎÍĎÝÉ, ÄĎĚÖÎÁ ŐÍĹÔŘ ĎÔĎÂŇÁÖÁÔŘ "
+"HTML-ĆÁĘĚŮ"
+
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr "éÚÍĹÎŃÔŘ ÚÎÁŢĹÎÉĹ ÇÁÍÍŮ ĐŇÉ ÎÁÖÁÔÉÉ ËÎĎĐËÉ Á×ÔĎÂĎÄÂĎŇÁ ÚÎÁŢĹÎÉĘ"
+
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr ""
+"÷ŮÄĹĚŃÔŘ ĎÂĚÁÓÔŘ ÓËÁÎÉŇĎ×ÁÎÉŃ ĐĎÓĚĹ ÚÁ×ĹŇŰĹÎÉŃ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr ""
+"äĹĚÁÔŘ Ă×ĹÔĎ×ŐŔ ËĎŇŇĹËĂÉŔ ĐĎÓĚĹ ÚÁ×ĹŇŰĹÎÉŃ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr "ëĎÍÁÎÄÁ ÄĚŃ ×ŮĐĎĚÎĹÎÉŃ ĐŇÉ ÉÓĐĎĚŘÚĎ×ÁÎÉÉ ŇĹÖÉÍÁ ĆÁËÓÁ"
+
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ĎĐŇĹÄĹĚĹÎÉŃ ĐĎĚŐŢÁÔĹĚŃ"
+
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ĎĐŇĹÄĹĚĹÎÉŃ ĐĎÓĚĹÄŐŔÝĹÇĎ PostScrip-ĆÁĘĚÁ"
+
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ĎĐŇĹÄĹĚĹÎÉŃ ŇĹÖÉÍÁ Normal (ÎÉÚËĎĹ ŇÁÚŇĹŰĹÎÉĹ)"
+
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ĎĐŇĹÄĹĚĹÎÉŃ ŇĹÖÉÍÁ Fine (×ŮÓĎËĎĹ ŇÁÚŇĹŰĹÎÉĹ)"
+
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr "ëĎÍÍÁÎÄÁ ÄĚŃ ×ŮĐĎĚÎĹÎÉŃ ÄĚŃ ĐŇĎÓÍĎÔŇÁ ĆÁËÓÁ"
+
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr ""
+"ďÔÓŮĚÁÔŘ ĆÁËÓ Ó ×ŮÓĎËÉÍ ×ĹŇÔÉËÁĚŘÎŮÍ ŇÁÚŇĹŰĹÎÉĹÍ (196 lpi ×ÍĹÓÔĎ 98 lpi)"
+
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr "IP-ÁÄŇĹÓ ÉĚÉ ÄĎÍĹÎÎĎĹ ÉÍŃ SMTP ÓĹŇ×ĹŇÁ"
+
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr "đĎŇÔ ÄĚŃ SMTP ÓĹŇ×ĹŇÁ"
+
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr "÷ÁŰ ÜĚĹËÔŇĎÎÎŮĘ ÁÄŇĹÓ"
+
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr "áÄŇĹÓ ÄĚŃ ĎÔ×ĹÔÁ"
+
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr "á×ÔĎŇÉÚÉŇĎ×ÁÔŘÓŃ ÎÁ POP3 ÓĹŇ×ĹŇĹ ĐĹŇĹÄ ĎÔĐŇÁ×ËĎĘ ĐÉÓŘÍÁ"
+
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr "IP ÁÄŇĹÓ ÉĚÉ ÄĎÍĹÎÎĎĹ ÉÍŃ POP3 ÓĹŇ×ĹŇÁ"
+
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr "đĎŇÔ ÄĚŃ POP3 ÓĹŇ×ĹŇÁ"
+
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr "éÍŃ ĐĎĚŘÚĎ×ÁÔĹĚŃ ÄĚŃ POP3 ÓĹŇ×ĹŇÁ"
+
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr "đÁŇĎĚŘ ÄĚŃ POP3 ÓĹŇ×ĹŇÁ"
+
+#. DESC_MAIL_VIEWER
+msgid "Enter command to be executed to view a mail image"
+msgstr "÷×ĹÄÉÔĹ ËĎÍÍÁÎÄŐ ÄĚŃ ×ŮĐĎĚÎĹÎÉŃ ĐŇĎÓÍĎÔŇÁ ĐĎŢÔĎ×ŮČ ×ĚĎÖĹÎÉĘ"
+
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr ""
+"đÉÓŘÍĎ ĎÔĐŇÁ×ĚŃĹÔÓŃ × ×ÉÄĹ HTML-ÄĎËŐÍĹÎÔÁ, ÉÚĎÂŇÁÖĹÎÉŃ ĎÔĎÂŇÁÖÁŔÔÓŃ ÎÁĐŇŃÍŐŔ"
+
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr "÷×ĹÄÉÔĹ ËĎÍÍÁÎÄŐ ÄĚŃ ×ŮĐĎĚÎĹÎÉŃ ŇÁÚĐĎÚÎÁ×ÁÎÉŃ ÔĹËÓÔÁ"
+
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ÉÓČĎÄÎĎÇĎ ĆÁĘĚÁ"
+
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr "đÁŇÁÍĹÔŇ ÄĚŃ ŇĹÚŐĚŘÔÉŇŐŔÝĹÇĎ ĆÁĘĚÁ"
+
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr "ŢÔĹÎÉĹ"
+
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr "ÚÁĐÉÓŘ"
+
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr "×ŮĐĎĚÎĹÎÉĹ"
+
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr "÷ŮÂŇÁÔŘ ÂĹĚŐŔ ÔĎŢËŐ"
+
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr "÷ŮÂŇÁÔŘ ÓĹŇŐŔ ÔĎŢËŐ"
+
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr "÷ŮÂŇÁÔŘ ŢĹŇÎŐŔ ÔĎŢËŐ"
+
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr "éÓĐĎĚŘÚĎ×ÁÔŘ ĐĎĚÎŐŔ ĎÂĚÁÔŘ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr "őÍĹÎŘŰÉÔŘ ÎÁ 20%"
+
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr "ő×ĹĚÉŢÉÔŘ ÄĎ ×ŮÂŇÁÎÎĎĘ ĎÂĚÁÓÔÉ"
+
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr "ďÔÍĹÎÉÔŘ ĐĎÓĚĹÄÎĹĹ ÉÚÍĹÎĹÎÉĹ ÍÁÓŰÔÁÂÁ"
+
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr "÷ŮÂŇÁÔŘ ×ÉÄÉÍŐŔ ĎÂĚÁÓÔŘ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr "á×ÔĎ×ŮÂĎŇ ĎÂĚÁÓÔÉ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_DELETE_IMAGES
+msgid "Delete preview image cache"
+msgstr "őÄÁĚÉÔŘ ËĹŰ ÉÚĎÂŇÁÖĹÎÉĘ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ĐŇĎÓÍĎÔŇÁ"
+
+#. DESC_PRESET_AREA
+msgid "Preset area"
+msgstr "úÁÄÁÎÎŮĹ ĎÂĚÁÓÔÉ"
+
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr "đĎ×ĎŇĎÔ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ É ĎËĎÎŢÁÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr "ňÁÓĐÁÚÎĎ×ÁÎÉĹ ÔĹËÓÔĎ×"
+
+#. DESC_VIEWER_CLONE
+msgid "Clone image"
+msgstr "äŐÂĚÉŇĎ×ÁÔŘ ÉÚĎÂŇÁÖĹÎÉĹ"
+
+#. DESC_VIEWER_ROTATE90
+msgid "Rotate image 90 degree"
+msgstr "đĎ×ĎŇĎÔ ÉÚĎÂŇÁÖĹÎÉŃ ÎÁ 90 ÇŇÁÄŐÓĎ×"
+
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr "đĎ×ĎŇĎÔ ÉÚĎÂŇÁÖĹÎÉŃ ÎÁ 180 ÇŇÁÄŐÓĎ×"
+
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr "đĎ×ĎŇĎÔ ÉÚĎÂŇÁÖĹÎÉŃ ÎÁ 270 ÇŇÁÄŐÓĎ×"
+
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr "ďÔĎÂŇÁÚÉÔŘ ĐĎ ×ĹŇÔÉËÁĚÉ"
+
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr "ďÔĎÂŇÁÚÉÔŘ ĐĎ ÇĎŇÉÚĎÎÔÁĚÉ"
+
+#. DESC_VIEWER_ZOOM
+msgid "Zoom image"
+msgstr "ő×ĹĚÉŢÉÔŘ ÉÚĎÂŇÁÖĹÎÉĹ"
+
+#. DESC_STORE_MEDIUM
+msgid "Store medium"
+msgstr "óĎČŇÁÎÉÔŘ ÔÉĐ ÎĎÓÉÔĹĚŃ"
+
+#. DESC_DELETE_MEDIUM
+msgid "Delete active medium"
+msgstr "őÄÁĚÉÔŘ ÔÉĐ ÎĎÓÉÔĹĚŃ"
+
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ĎĐŇĹÄĹĚÉÔŘ ÄĎÍÁŰÎÉĘ ËÁÔÁĚĎÇ:"
+
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ÉÚÍĹÎÉÔŘ ËÁÔÁĚĎÇ ÎÁ:"
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
+msgstr "éÍŃ ĆÁĘĚÁ ÓĚÉŰËĎÍ ÄĚÉÎÎĎĹ"
+
+#. ERR_CREATE_TEMP_FILE
+msgid "Could not create temporary file"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ÓĎÚÄÁÔŘ ×ŇĹÍĹÎÎŮĘ ĆÁĘĚ"
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ŐÓÔÁÎĎ×ÉÔŘ ÚÎÁŢĹÎÉĹ ĐÁŇÁÍĹÔŇÁ"
+
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ĐĎĚŐŢÉÔŘ ÚÎÁŢĹÎÉĹ ĐÁŇÁÍĹÔŇÁ"
+
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
+msgstr "ďŰÉÂËÁ ĐŇÉ ĐĎÄÓŢĹÔĹ ËĎĚÉŢĹÓÔ×Á ĐÁŇÁÍĹÔŇĎ×"
+
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ĎÔËŇŮÔŘ ŐÓÔŇĎĘÓÔ×Ď"
+
+#. ERR_NO_DEVICES
+msgid "no devices available"
+msgstr "ÎĹÔ ÄĎÓÔŐĐÎŮČ ŐÓÔŇĎĘÓÔ×"
+
+#. ERR_DURING_READ
+msgid "Error during read:"
+msgstr "ďŰÉÂËÁ ×Ď ×ŇĹÍŃ ŢÔĹÎÉŃ:"
+
+#. ERR_DURING_SAVE
+msgid "Error during save:"
+msgstr "ďŰÉÂËÁ ×Ď ×ŇĹÍŃ ÓĎČŇÁÎĹÎÉŃ:"
+
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ĎĐŇĹÄĹĚÉÔŘ ÇĚŐÂÉÎŐ Ă×ĹÔÁ"
+
+#. ERR_GIMP_BAD_DEPTH
+#, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP ÎĹ ĐĎÄÄĹŇÖÉ×ĹÔ ÇĚŐÂÉÎŐ Ă×ĹÔÁ × %s ÂÉÔ ÎÁ Ă×ĹÔ"
+
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
+msgstr "îĹÉÚ×ĹÓÔÎŮĘ ĆĎŇÍÁÔ ĆÁĘĚÁ ÄĚŃ ÚÁĐÉÓÉ"
+
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ĎÔËŇŮÔŘ"
+
+#. ERR_CREATE_SECURE_FILE
+msgid "Could not create secure file (may be a link does exist):"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ÓĎÚÄÁÔŘ ÓĹËŇĹÔÎŮĘ ĆÁĘĚ (×ĎÚÍĎÖÎĎ ÓÓŮĚËÁ ÎĹ ÓŐÝĹÓÔ×ŐĹÔ):"
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ĎÔËŇŮÔŘ ËÁÎÁĚ ÄĚŃ ×ŮĐĎĚÎĹÎÉŃ ËĎÍÍÁÎÄŮ ĐĹŢÁÔÉ"
+
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ×ŮÚ×ÁÔŘ ËĎÍÍÁÎÄŐ ËĎĐÉŇĎ×ÁÎÉŃ:"
+
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ÉÎÉĂÉÁĚÉÚÉŇĎ×ÁÔŘ ÓËÁÎÉŇĎ×ÁÎÉĹ:"
+
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ĐĎĚŐŢÉÔŘ ĐÁŇÁÍĹÔŇŮ:"
+
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
+msgstr "îĹ ÚÁÄÁÎ ĆĎŇÍÁÔ ĆÁĘĚÁ"
+
+#. ERR_NO_MEM
+msgid "out of memory"
+msgstr "ÎĹČ×ÁÔËÁ ĐÁÍŃÔÉ"
+
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr "äŇÁĘ×ĹŇ ĐĎÓĚÁĚ ĐĎĚŘŰĹ ÄÁÎÎŮČ, ŢËÍ ĐĹŇĹÄÁĚ × ĐÁŇÁÍĹÔŇÁČ"
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
+msgstr "LIBTIFF ÓĎĎÂÝÉĚÁ ĎÂ ĎŰÉÂËĹ"
+
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
+msgstr "LIBPNG ÓĎĎÂÝÉĚÁ ĎÂ ĎŰÉÂËĹ"
+
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
+msgstr "ÎĹÉÚ×ĹÓÔÎŮĘ ÔÉĐ"
+
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
+msgstr "ÎĹÉÚ×ĹÓÔÎŮĘ ĐŇÉÎŐÖÄĹÎÎŮĘ ÔÉĐ"
+
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ×ŮÚ×ÁÔŘ ĐŇĎÇŇÁÍÍŐ ÄĚŃ ĐŇĎÓÍĎÔŇÁ ÄĎËŐÍĹÎÔÁĂÉÉ:"
+
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ×ŮÚ×ÁÔŘ ĐŇĎÇŇÁÍÍŐ ÄĚŃ ĐŇĎÓÍĎÔŇÁ ĆÁËÓĎ×:"
+
+#. ERR_FAILED_EXEC_FAX_CMD
+msgid "Failed to execute fax command:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ×ŮĐĎĚÎÉÔŘ ËĎÍÍÁÎÄŐ ĎÔĐŇÁ×ËÉ ĆÁËÓÁ"
+
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+msgid "Failed to execute mail image viewer:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ×ŮÚ×ÁÔŘ ĐŇĎÇŇÁÍÍŐ ÄĚŃ ĐĎŢÔĎ×ŮČ ÉÚĎÂŇÁÖĹÎÉĘ"
+
+#. ERR_FAILED_EXEC_OCR_CMD
+msgid "Failed to execute ocr command:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ×ŮĐĎĚÎÉÔŘ ËĎÍÍÁÎÄŐ ŇÁÓĐĎÚÎÁ×ÁÎÉŃ ÔĹËÓÔÁ:"
+
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
+msgstr "ÎĹĐŇÁ×ÉĚŘÎŮĘ ĆĎŇÍÁÔ ĆÁĘĚÁ"
+
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
+msgstr "ÎĹ×ĎÚÍĎÖÎĎ ŐÓÔÁÎĎ×ÉÔŘ ŇÁÚŇĹŰĹÎÉĹ"
+
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr "ćÁĘĚ ĐÁŇĎĚĹĘ (%s) ÎĹ ÂĹÚĎĐÁÓÔÎŮĘ, ĐŇÁ×Á ÄĎÓÔŐĐÁ x00\n"
+
+#. ERR_ERROR
+msgid "error"
+msgstr "ĎŰÉÂËÁ"
+
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
+msgstr "îĹÄĎĐŐÔÉÍÁŃ ×ĹŇÓÉŃ sane!"
+
+#. ERR_XSANE_MAJOR_VERSION
+msgid "XSane major version ="
+msgstr "÷ĹŇÓÉŃ XSane ="
+
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
+msgstr "÷ĹŇÓÉŃ ÄŇÁĘ×ĹŇÁ ="
+
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
+msgstr "*** đňďçňáííá đňĺň÷áîá***"
+
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ×ŮÄĹĚÉÔŘ ĐÁÍŃÔŘ ÄĚŃ ÉÚĎÂŇÁÖĹÎÉŃ:"
+
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr "ďËÎĎ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ ÎĹ ĐĎÄÄĹŇÖÉ×ĹÔ Ă×ĹÔÎĎÓÔŘ"
+
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
+msgstr "đĎÄÄĹŇÖËÁ GIMP-Á ĎÔÓŐÔÓÔ×ŐĹÔ"
+
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ÓĎÚÄÁÔŘ ×ŇĹÍĹÎÎŮĘ ĆÁĘĚ ÄĚŃ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ÓÇĹÎĹŇÉŇĎ×ÁÔŘ ÉÍŃ ĆÁĘĚÁ ÄĚŃ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ"
+
+#. ERR_CREATE_FAX_PROJECT
+msgid "Could not create faxproject"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ÓĎÚÄÁÔŘ ĐŇĎĹËÔ ĆÁËÓÉÍÉĚŘÎĎÇĎ ÓĎĎÂÝĹÎÉŃ"
+
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr "óŢĹÔŢÉË ÉÍĹÎ ĆÁĘĚĎ× ÎÉÖĹ 0"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr "ĐŇĹÄŐĐŇĹÖÄĹÎÉĹ: ĐÁŇÁÍĹÔŇ ÎĹ ÓĎÄĹŇÖÉÔ ÚÎÁŢĹÎÉŃ"
+
+#. WARN_XSANE_AS_ROOT
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+"÷Ů ÚÁĐŐÓËÁĹÔĹ XSane ËÁË ROOT, ŢÔĎ ďţĺîř ďđáóîď!\n"
+"\n"
+"îĹ ĐŇÉÓŮĚÁĘÔĹ ÓĎĎÂÝĹÎÉŃ Ď ĎŰÉÂËÁČ ËĎÇÄÁ ×Ů\n"
+"ÉÓĐŮÔŮ×ÁĹÔĹ ÎĹËĎÔĎŇŮĹ ĐŇĎÂĚĹÍŮ ĐŇÉ ŇÁÂĎÔĹ Ó XSane-ĎÍ ÉÚ-ĐĎÄ ROOT-Á:\n"
+"÷ů óď ó÷ďéíé đňďâěĺíáíé îáĺäéîĺ!"
+
+#. ERR_HEADER_ERROR
+msgid "Error"
+msgstr "ďŰÉÂËÁ"
+
+#. ERR_HEADER_WARNING
+msgid "Warning"
+msgstr "đŇĹÄŐĐŇĹÖÄĹÎÉĹ"
+
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "éÎĆĎŇÍÁĂÉŃ"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ÓĎÚÄÁÔŘ ĆÁĘĚ:"
+
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ÚÁÇŇŐÚÉÔŘ ĐÁŇÁÍĹÔŮ ŐÓÔŇĎĘÓÔ×Á:"
+
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
+msgstr "ÎĹ Ń×ĚŃĹÔÓŃ ÄĎĐŐÓÔÉÍŮÍ ĆÁĘĚĎÍ ËĎÎĆÉÇŐŇÁĂÉÉ ŐÓÔŇĎĘÓÔ×Á!!!"
+
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
+msgstr "îĹ×ĎÚÍĎÖÎĎ ÚÁĐŐÓÔÉÔŘ netscape!"
+
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
+msgstr "ďÔĐŇÁ×ËÁ ĆÁËÓÁ: ÎĹ ÚÁÄÁÎ ĐĎĚŐŢÁÔĹĚŘ"
+
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
+msgstr "ÂŮĚ ÓĎÚÄÁÎ ÄĚŃ ŐÓÔŇĎĘÓÔ×Á"
+
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
+msgstr "×Ů ČĎÔÉÔĹ ÉÓĐĎĚŘÚĎ×ÁÔŘ ĹÇĎ ÄĚŃ ŐÓÔŇĎĘÓÔ×Á"
+
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
+msgstr "ÜÔĎ ÍĎÖĹÔ ĐŇÉ×ĹÓÔÉ Ë ĐŇĎÂĚĹÍÁÍ!"
+
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr "éÍĹĹÔÓŃ %d ÎĹÓĎČŇÁÎĹÎÎŮČ ÉÚÂŇÁÖĹÎÉĘ"
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "ćÁĘĚ %s ŐÖĹ ÓŐÝĹÓÔ×ŐĹÔ"
+
+#. ERR_FILE_NOT_EXISTS
+#, c-format
+msgid "File %s does not exist"
+msgstr "ćÁĘĚ %s ÎĹ ÓŐÝĹÓÔ×ŐĹÔ"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, c-format
+msgid "File %s is not a postscript file"
+msgstr "ćÁĘĚ %s ÎĹ Ń×ĚŃĹÔÓŃ PosatScript-ĆÁĘĚĎÍ"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "îĹĐĎÄÄĹŇÖÉ×ÁĹÍÁŃ ÇĚŐÂÉÎÁ Ă×ĹÔÁ × %d ÄĚŃ ĆĎŇÍÁÔÁ: %s"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr "ÉÚĎÂŇÁÖĹÎÉĹ ĐŇĹÄ×ÁŇÉÔĹĚŘÎĎÇĎ ÓËÁÎÉŇĎ×ÁÎÉŃ ÎĹ ÓĎČŇÁÎĹÎĎ"
+
+#. TEXT_USAGE
+msgid "Usage:"
+msgstr "éÓĐĎĚŘÚĎ×ÁÎÉĹ:"
+
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr "[đáňáíĺôňů]... [őóôňďęóô÷ď]"
+
+#. TEXT_HELP
+#, fuzzy
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
+msgstr ""
+"úÁĐŐÓËÁĹÔ ÇŇÁĆÉŢĹÓËÉĘ ÉÎÔĹŇĆĹĘÓ Ë ŐÓÔŇĎĘÓÔ×ÁÍ SANE (Scanner Access Now "
+"Easy).\n"
+"\n"
+"ćĎŇÍÁÔ [őóôňďęóô÷ď]: ÄŇÁĘ×ĹŇ:ĆÁĘĚ_ŐÓÔŇĎĘÓÔ×Á (ÎÁĐŇÉÍĹŇ, umax:/dev/scanner).\n"
+"[đáňáíĺôňů]... ĚŔÂÁŃ ËĎÍÂÉÎÁĂÉŃ ÉÚ×ĎÚÍĎÖÎŮČ:\n"
+" -h, --help ×Ů×ĎÄ ÜÔĎÇĎ ÓĎĎÂÝĹÎÉŃ É ×ŮČĎÄ\n"
+" -v, --version ×Ů×ĎÄ ÉÎĆĎŇÍÁĂÉÉ Ď ×ĹŇÓÉÉ\n"
+" -l, --license ×Ů×ĎÄ ÉÎĆĎŇÍÁĂÉÉ Ď ĚÉĂĹÎÚÉÉ\n"
+"\n"
+" -d, --device-settings file ÚÁÇŇŐÚÉÔŘ ĐÁŇÁÍĹÔŇŮ ŐÓÔŇĎĘÓÔ×Á ÉÚ ĆÁĘĚÁ (ÂĹÚ "
+"\".drc\")\n"
+"\n"
+" -V, --viewer ÚÁĐŐÓË × ŇĹÖÉÍĹ ĐŇĎÓÍĎÔŇÁ (ĐĎ ŐÍĎĚŢÁÎÉŔ)\n"
+" -s, --save ÚÁĐŐÓË × ŇĹÖÉÍĹ ÓËÁÎÉŇĎ×ÁÎÉŃ\n"
+" -c, --copy ÚÁĐŐÓË × ŇĹÖÉÍĹ ËĎĐÉŇĎ×ÁÎÉŃ\n"
+" -f, --fax ÚÁĐŐÓË × ŇĹÖÉÍĹ ĆÁËÓÁ\n"
+" -m, --mail ÚÁĐŐÓË × ŇĹÖÉÍĹ ĐĎŢÔŮ\n"
+" -n, --no-mode-selection ĎÔËĚŔŢÉÔŘ ÍĹÎŔ ×ŮÂĎŇÁ ŇĹÖÉÍÁ XSane\n"
+"\n"
+" -F, --Fixed ÇĚÁ×ÎĎĹ ĎËÎĎ ÎĹ ÍÁÓŰÔÁÂÉŇŐĹÍĎ (ĐĹŇĹÚÁĐÉÓŮ×ÁĹÔ "
+"ŐÓÔÁÎĎ×ËÉ)\n"
+" -R, --Resizeable ÇĚÁ×ÎĎĹ ĎËÎĎ ÍÁÓŰÔÁÂÉŇŐĹÍĎ É ĐŇĎËŇŐŢÉ×ÁĹÍĎ "
+"(ĐĹŇĹÚÁĐÉÓŮ×ÁĹÔ ŐÓÔÁÎĎ×ËÉ)\n"
+"\n"
+" -p, --print-filenames ×Ů×ĎÄÉÔŘ ÉÍĹÎÁ ÉÚĎÂŇÁÖĹÎÉĘ ÓĎÚÄÁÎÎŮČ, "
+"XSane-ĎÍ\n"
+" -N, --force-filename name ĐĹŇĹĎĐŇĹÄĹĚÉÔŘ ÉÍŃ ĆÁĘĚÁ É ĎÔËĚŔŢÉÔŘ ĆŐÎËĂÉŔ "
+"×ŮÂĎŇÁ ÉÍĹÎÉ ĆÁĘĚÁ ĐĎĚŘÚĎ×ÁÔĹĚĹÍ\n"
+"\n"
+" --display X11-display ĐĹŇĹÎÁĐŇÁ×ÉÔŘ ×Ů×ĎÄ ÎÁ X11-display\n"
+" --no-xshm ÎĹ ÉÓĐĎĚŘÚĎ×ÁÔŘ ÉÚĎÂŇÁÖĹÎÉĘ × ŇÁÚÄĹĚŃĹÍĎĘ "
+"ĐÁÍŃÔÉ\n"
+" --sync ÚÁĐŇĎÓÉÔŘ ÓÉÎČŇĎÎÎĎĹ ÓĎĹÄÉÎĹÎÉĹ Ó X11 ÓĹŇ×ĹŇĎÍ"
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
+msgstr "çŇÁĆÉŢĹÓËÉĘ ÉÎÔĹŇĆĹĘÓ Ë ÉÎÔĹŇĆĹĘÓŐ SANE"
+
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+"äÁÎÎÁŃ ĆŐÎËĂÉŃ ĐŇĹÄĎÓÔÁ×ĚŃĹÔ ÄĎÓÔŐĐ Ë ÓËÁÎĹŇÁÍ É ÄŇŐÇÉÍ ĐĎÄĎÂÎŮÍŐÓÔŇĎĘÓÔ×ÁÍ "
+"ŢĹŇĹÚ ÉÎÔĹŇĆĹĘÓ SANE (Scanner Acess Now Easy)."
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr "<Toolbox>/File/Acquire/XSane: ÷ŮÂĎŇ ŐÓÔŇĎĘÓÔ×Á..."
+
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
+msgstr "<Toolbox>/File/Acquire/XSane: "
+
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr "<Toolbox>/Xtns/XSane/÷ŮÂĎŇ ŐÓÔŇĎĘÓÔ×Á..."
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
+msgstr "<Toolbox>/Xtns/XSane/"
+
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr "ĐĎĚÎŮĘ ŇÁÚÍĹŇ"
+
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr "A3 ĐĎŇÔŇĹÔ"
+
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr "A3 ÁĚŘÂĎÍ"
+
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr "A4 ĐĎŇÔŇĹÔ"
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr "A4 ÁĚŘÂĎÍ"
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr "A5 ĐĎŇÔŇĹÔ"
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr "A5 ÁĚŘÂĎÍ"
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
+msgstr "13ÓÍ x 18ÓÍ"
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
+msgstr "18ÓÍ x 13ÓÍ"
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
+msgstr "10ÓÍ x 15ÓÍ"
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
+msgstr "15ÓÍ x 10ÓÍ"
+
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr "9ÓÍ x 13ÓÍ"
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr "13ÓÍ x 9ÓÍ"
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr "Legal ĐĎŇÔŇĹÔ"
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr "Legal ÁĚŘÂĎÍ"
+
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr "Letter ĐĎŇÔŇĹÔ"
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr "Letter ÁĚŘÂĎÍ"
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr "đĎĚÎŮĘ ÓĐĹËÔŇ"
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr "óĚÁĘÄ"
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+msgid "Standard negative"
+msgstr "óÔÁÎÄÁŇÔÎŮĘ ÎĹÇÁÔÉ×"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr "îĹÇÁÔÉ× Agfa"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr "îĹÇÁÔÉ× Agfa XRG 200-4"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr "îĹÇÁÔÉ× Agfa HDC 100"
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+msgid "Fuji negative"
+msgstr "îĹÇÁÔÉ× Fuji"
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr "îĹÇÁÔÉ× Kodak"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+msgid "Konica negative"
+msgstr "îĹÇÁÔÉ× Konica"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+msgid "Konica negative VX 100"
+msgstr "îĹÇÁÔÉ× Konica VX 100"
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr "îĹÇÁÔÉ× Rossmann HR 100"
+
+#. Sane backend messages
+msgid "flatbed scanner"
+msgstr "ĐĚÁÎŰĹÔÎŮĘ ÓËÁÎĹŇ"
+
+msgid "frame grabber"
+msgstr "ĆĎÔĎÓËÁÎĹŇ"
+
+msgid "handheld scanner"
+msgstr "ŇŐŢÎĎĘ ÓËÁÎĹŇ"
+
+msgid "still camera"
+msgstr "ĂÉĆŇĎ×ÁŃ ËÁÍĹŇÁ"
+
+msgid "video camera"
+msgstr "×ÉÄĹĎ ËÁÍĹŇÁ"
+
+msgid "virtual device"
+msgstr "×ÉŇÔ. ŐÓÔŇĎĘÓÔ×Ď"
+
+msgid "Success"
+msgstr "őÓĐĹŰÎĎ"
+
+msgid "Operation not supported"
+msgstr "ďĐĹŇÁĂÉŃ ÎĹ ĐĎÄÄĹŇÖÉ×ÁĹÔÓŃ"
+
+msgid "Operation was cancelled"
+msgstr "ďĐĹŇÁĂÉŃ ÂŮĚÁ ĐŇĹŇ×ÁÎÁ"
+
+msgid "Device busy"
+msgstr "őÓÔŇĎĘÓÔ×Ď ÚÁÎŃÔĎ"
+
+msgid "Invalid argument"
+msgstr "îĹ×ĹŇÎŮĘ ÁŇÇŐÍĹÎÔ"
+
+msgid "End of file reached"
+msgstr "äĎÓÔÉÇÎŐÔ ËĎÎĹĂ ĆÁĘĚÁ"
+
+msgid "Document feeder jammed"
+msgstr "á×ÔĎĐĎÄÁÔŢÉË ÄĎËŐÍĹÎÔĎ× ÚÁÖĹ×ÁĚ ÂŐÍÁÇŐ"
+
+msgid "Document feeder out of documents"
+msgstr "á×ÔĎĐĎÄÁÔŢÉË ÄĎËŐÍĹÎÔĎ× ÎĹ ÍĎÖĹÔ ÎÁĘÔÉ ÂŐÍÁÇŐ"
+
+msgid "Scanner cover is open"
+msgstr "ëŇŮŰËÁ ÓËÁÎĹŇÁ ĎÔËŇŮÔÁ"
+
+msgid "Error during device I/O"
+msgstr "ďŰÉÂËÁ ×Ď ×ŇĹÍŃ ××ĎÄÁ-×Ů×ĎÄÁ Ó ŐÓÔŇĎĘÓÔ×ĎÍ"
+
+msgid "Out of memory"
+msgstr "îĹ Č×ÁÔÁĹÔ ĐÁÍŃÔÉ"
+
+msgid "Access to resource has been denied"
+msgstr "äĎÓÔŐĐ Ë ŇĹÓŐŇÓŐ ÚÁĐŇĹÝĹÎ"
+
+#~ msgid "Store Medium definition"
+#~ msgstr "óĎČŇÁÎÉÔŘ ÎĎÓÉÔĹĚŘ"
+
+#~ msgid ""
+#~ "Use XSane for: SCANning-<Ctrl-s> photoCOPYing-<Ctrl-c> FAXing-<Ctrl-f>"
+#~ msgstr ""
+#~ "éÓĐĎĚŘÚŐĘÔĹ XSane ÄĚŃ: ÓËÁÎÉŇĎ×ÁÎÉŃ <Ctrl-s>; ËĎĐÉŇĎ×ÁÎÉŃ <Ctrl-c>; ĎÔĐŇÁ×ËÉ "
+#~ "ĆÁËÓĎ× <Ctrl-f>"
diff --git a/po/sane-text.h b/po/sane-text.h
new file mode 100644
index 0000000..33aa526
--- /dev/null
+++ b/po/sane-text.h
@@ -0,0 +1,19 @@
+/* Sane backend messages */
+_("flatbed scanner")
+_("frame grabber")
+_("handheld scanner")
+_("still camera")
+_("video camera")
+_("virtual device")
+_("Success")
+_("Operation not supported")
+_("Operation was cancelled")
+_("Device busy")
+_("Invalid argument")
+_("End of file reached")
+_("Document feeder jammed")
+_("Document feeder out of documents")
+_("Scanner cover is open")
+_("Error during device I/O")
+_("Out of memory")
+_("Access to resource has been denied")
diff --git a/po/sl.gmo b/po/sl.gmo
new file mode 100644
index 0000000..eb8a288
--- /dev/null
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 0000000..16cb4bb
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,2498 @@
+# Slovenian translation for XSane.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Ales Kosir <ales.kosir@lugos.si>, 2001.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: XSANE 0.84\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2001-02-25 14:06+01:00\n"
+"Last-Translator: Ales Kosir <ales.kosir@lugos.si>\n"
+"Language-Team: Slovenian <sl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr ""
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr "(c)"
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "O programu"
+
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "O prevodu"
+
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "avtorizacija"
+
+#. WINDOW_LICENSE
+#, fuzzy
+msgid "license"
+msgstr "palci"
+
+#. WINDOW_INFO
+msgid "info"
+msgstr "podatki"
+
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "paketno skeniranje"
+
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "fax"
+
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "preimenuj stran s faksom"
+
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr ""
+
+#. WINDOW_MAIL_PROJECT
+#, fuzzy
+msgid "mail project"
+msgstr "fax"
+
+#. WINDOW_MAIL_RENAME
+#, fuzzy
+msgid "rename mail image"
+msgstr "preimenuj stran s faksom"
+
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr ""
+
+#. WINDOW_PRESET_AREA_RENAME
+#, fuzzy
+msgid "rename preset area"
+msgstr "preimenuj stran s faksom"
+
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "nastavi"
+
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "Histogram"
+
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "Krivulja gama"
+
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "Običajne izbire"
+
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "Napredne izbire"
+
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "izbiranje naprave"
+
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "Ogled"
+
+#. WINDOW_VIEWER
+#, fuzzy
+msgid "Viewer"
+msgstr "Pogled"
+
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+#, fuzzy
+msgid "Viewer: select output filename"
+msgstr "izbiranje izhodne datoteke"
+
+#. WINDOW_OCR_OUTPUT_FILENAME
+#, fuzzy
+msgid "Select output filename for OCR text file"
+msgstr "izbiranje izhodne datoteke"
+
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "izbiranje izhodne datoteke"
+
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "shrani nastavitve naprave"
+
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "naloži nastavitve naprave"
+
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "spremeni delovni imenik"
+
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "izberi imenik z začasnimi datotekami"
+
+#. WINDOW_SCALE
+#, fuzzy
+msgid "Scale image"
+msgstr "Surova slika"
+
+#. WINDOW_DESPECKLE
+#, fuzzy
+msgid "Despeckle image"
+msgstr "Zbriši projekt"
+
+#. WINDOW_BLUR
+#, fuzzy
+msgid "Blur image"
+msgstr "Zbriši projekt"
+
+#. WINDOW_STORE_MEDIUM
+#, fuzzy
+msgid "Store medium definition"
+msgstr "Izbor tiskalnika za prilagoditev"
+
+#. MENU_FILE
+msgid "File"
+msgstr "Datoteka"
+
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "Nastavitve"
+
+#. MENU_VIEW
+msgid "View"
+msgstr "Pogled"
+
+#. MENU_HELP
+msgid "Help"
+msgstr "Pomoč"
+
+#. MENU_FILTERS
+#, fuzzy
+msgid "Filters"
+msgstr "Datoteka"
+
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "O programu XSane"
+
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr "Podatki"
+
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "Izhod"
+
+#. MENU_ITEM_SAVE_IMAGE
+#, fuzzy
+msgid "Save image"
+msgstr "Surova slika"
+
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "Zapri"
+
+#. MENU_ITEM_CLONE
+#, fuzzy
+msgid "Clone"
+msgstr "Zapri"
+
+#. MENU_ITEM_SCALE
+#, fuzzy
+msgid "Scale"
+msgstr "Skeniraj"
+
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr ""
+
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr ""
+
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr "Surova slika"
+
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr "Obdelana slika"
+
+#. BUTTON_START
+msgid "Start"
+msgstr "Zagon"
+
+#. BUTTON_OK
+msgid "Ok"
+msgstr "V redu"
+
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr ""
+
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr ""
+
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr "Uporabi"
+
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr "Prekliči"
+
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr ""
+
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "Nadaljevanje je na lastno odgovornost"
+
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "Brskaj"
+
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr "Prepiši"
+
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr "Dodaj območje"
+
+#. BUTTON_PAGE_DELETE
+#, fuzzy
+msgid "Delete page"
+msgstr "Zbriši projekt"
+
+#. BUTTON_PAGE_SHOW
+#, fuzzy
+msgid "Show page"
+msgstr "Prikaži predogled"
+
+#. BUTTON_PAGE_RENAME
+#, fuzzy
+msgid "Rename page"
+msgstr "preimenuj stran s faksom"
+
+#. BUTTON_IMAGE_DELETE
+#, fuzzy
+msgid "Delete image"
+msgstr "Zbriši projekt"
+
+#. BUTTON_IMAGE_SHOW
+#, fuzzy
+msgid "Show image"
+msgstr "Prikaži predogled"
+
+#. BUTTON_IMAGE_RENAME
+#, fuzzy
+msgid "Rename image"
+msgstr "preimenuj stran s faksom"
+
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr ""
+
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr "Ustvari projekt"
+
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr "Pošlji projekt"
+
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr "Zbriši projekt"
+
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr "Dodaj tiskalnik"
+
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr "Odstrani tiskalnik"
+
+#. BUTTON_PREVIEW_ACQUIRE
+#, fuzzy
+msgid "Acquire preview"
+msgstr "Ustvari predogled"
+
+#. BUTTON_PREVIEW_CANCEL
+#, fuzzy
+msgid "Cancel preview"
+msgstr "Odstrani predogled"
+
+#. BUTTON_DISCARD_IMAGE
+#, fuzzy
+msgid "Discard image"
+msgstr "Zbriši projekt"
+
+#. BUTTON_DISCARD_ALL_IMAGES
+#, fuzzy
+msgid "Discard all images"
+msgstr "Zbriši projekt"
+
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr ""
+
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr ""
+
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr "Natančnejše nastavljanje"
+
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr ""
+
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr ""
+
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr "Prepiši opozorilo"
+
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr "Preskoči obstoječe datoteke"
+
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr ""
+
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr "Velikost glavnega okna je popravljena"
+
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "Onemogoči popravljanje gama pri predogledu v gimpu"
+
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr "Uporabi lastno paleto"
+
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "Samodejno izboljšaj faktor gama"
+
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+#, fuzzy
+msgid "Preselect scanarea"
+msgstr "Samodejno določi območje skeniranja"
+
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr ""
+
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr ""
+
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "iskanje naprave"
+
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr "Naprave na voljo:"
+
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr "Izbire XSane"
+
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr "Način delovanja XSane"
+
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr "Korak"
+
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr "Vrsta"
+
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr "Skener in proces v ozadju"
+
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr "Dobavitelj:"
+
+#. TEXT_MODEL
+msgid "Model:"
+msgstr "Model:"
+
+#. TEXT_TYPE
+msgid "Type:"
+msgstr "Vrsta:"
+
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr "Naprava:"
+
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr "Naložen proces v ozadju:"
+
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr "Različica programa sane:"
+
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr "Zadnje vrednosti"
+
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr "Popravek gama:"
+
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr "skener"
+
+#. TEXT_SOFTWARE_XSANE
+#, fuzzy
+msgid "software (XSane)"
+msgstr "programska oprema (xsane)"
+
+#. TEXT_NONE
+msgid "none"
+msgstr "brez"
+
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr "Globina vhoda gama:"
+
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr "Globina izhoda gama:"
+
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr "Globina izhoda skenerja: "
+
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr "Izhodni zapisi programa XSane:"
+
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr "8-bitni izhodni zapisi:"
+
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr "16-bitni izhodni zapisi:"
+
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr "Zahtevana potrditev za"
+
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr "Prenos gesla je varen"
+
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr "Proces v ozadju zahteva nekodirano geslo"
+
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr "Uporabnik:"
+
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr "Geslo:"
+
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr "Neveljavni parametri."
+
+#. TEXT_VERSION
+msgid "version:"
+msgstr "različica:"
+
+#. TEXT_PACKAGE
+msgid "package"
+msgstr "paket"
+
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr "s podporo za GIMP"
+
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr "brez podpore za GIMP"
+
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "preveden s podporo za GTK-"
+
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr "preveden s podporo za GIMP-"
+
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr "neznano"
+
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr "Epošta:"
+
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr "Domača stran:"
+
+#. TEXT_FILE
+msgid "File:"
+msgstr "Datoteka:"
+
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr "Prevod:"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+#, fuzzy
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+"prevod iz angleškega izvirnika\n"
+"Aleš Košir\n"
+"Epošta: ales.kosir@lugos.si\n"
+
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr "0x0: 0KB"
+
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr "Poskenirane strani: "
+
+#. TEXT_MAIL_TEXT
+#, fuzzy
+msgid "Email text:"
+msgstr "Epošta:"
+
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr ""
+
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr ""
+
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr ""
+
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+
+#. TEXT_X_SCALE_FACTOR
+#, fuzzy
+msgid "X-Scale factor:"
+msgstr "Nastavitev stopnje povečave"
+
+#. TEXT_Y_SCALE_FACTOR
+#, fuzzy
+msgid "Y-Scale factor:"
+msgstr "Nastavitev stopnje povečave"
+
+#. TEXT_DESPECKLE_RADIUS
+#, fuzzy
+msgid "Despeckle radius:"
+msgstr "Zbriši projekt"
+
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr "Izbrani tiskalnik:"
+
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr "Ime:"
+
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr "Ukaz:"
+
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr "Število kopij:"
+
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "Ločljivost v črnobelem načinu Lineart (dpi)"
+
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "Ločljivost v sivinskem načinu (dpi):"
+
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "Ločljivost v barvnem načinu (dpi):"
+
+#. TEXT_SETUP_PRINTER_WIDTH
+#, fuzzy
+msgid "Width"
+msgstr "Širina [mm]:"
+
+#. TEXT_SETUP_PRINTER_HEIGHT
+#, fuzzy
+msgid "Height"
+msgstr "Višina [mm]:"
+
+#. TEXT_SETUP_PRINTER_LEFT
+#, fuzzy
+msgid "Left offset"
+msgstr "Levi odmik [mm]:"
+
+#. TEXT_SETUP_PRINTER_BOTTOM
+#, fuzzy
+msgid "Bottom offset"
+msgstr "Odmik spodaj [mm]:"
+
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr "Vrednost gama za tiskalnik:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr "Vrednost gama rdeče barve za tiskalnik:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr "Vrednost gama zelene barve za tiskalnik:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr "Vrednost gama modre barve za tiskalnik:"
+
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "Začasni imenik"
+
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "Dovoljenja dostopa do slikovne datoteke"
+
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "Dovoljenja dostopa do imenika"
+
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr "Kakovost slike v zapisu JPEG"
+
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr "Stopnja stiskanja v zapisu PNG"
+
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr "število znakov pri oštevilčenju slik"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "Stiskanje v 16-bitnem zapisu TIFF"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "Stiskanje v 8-bitnem zapisu TIFF"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr "Stiskanje v načinu Lineart v zapisu TIFF"
+
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "Prekomerno vzorčenje pri predogledu:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr "Faktor gama pri preodgledu:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr "Faktor gama za rdečo barvo pri preodgledu:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr "Faktor gama za zeleno barvo pri preodgledu:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr "Faktor gama za modro barvo pri preodgledu:"
+
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "Izbira praga:"
+
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr "Samodejno podajanje dokumentov:"
+
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr "Velikost območja pri zajemanju barve v predogledu"
+
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "Spodnja vrednost praga:"
+
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "Zgornja vrednost praga:"
+
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "Pomnoževalnik praga:"
+
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "Odmik praga:"
+
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "Ime sivinskega načina skeniranja:"
+
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "Ime programa za prikaz pomoči v zapisu HTML:"
+
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr "Izbira naslovnika:"
+
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr "Izbire pri postscriptni datoteki:"
+
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr "Izbire pri običajnem načinu:"
+
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr "Izbire pri podrobnem načinu:"
+
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr "Ogledovalnik za zapis postscript"
+
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr ""
+
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr ""
+
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr ""
+
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_PASS
+#, fuzzy
+msgid "POP3 password:"
+msgstr "Geslo:"
+
+#. TEXT_SETUP_MAIL_VIEWER
+#, fuzzy
+msgid "Viewer (png):"
+msgstr "Ogledovalnik za zapis postscript"
+
+#. TEXT_SETUP_OCR_COMMAND
+#, fuzzy
+msgid "OCR Command:"
+msgstr "Ukaz:"
+
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+#, fuzzy
+msgid "Inputfile option:"
+msgstr "Izbire pri postscriptni datoteki:"
+
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+#, fuzzy
+msgid "Outputfile option:"
+msgstr "Izbire pri postscriptni datoteki:"
+
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr "uporabnik"
+
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr "skupina"
+
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr "vsi"
+
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr ""
+
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr ""
+
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "Kopiraj"
+
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr "Faks"
+
+#. NOTEBOOK_MAIL_OPTIONS
+#, fuzzy
+msgid "Mail"
+msgstr "Epošta:"
+
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr ""
+
+#. NOTEBOOK_DISPLAY_OPTIONS
+#, fuzzy
+msgid "Display"
+msgstr "Prikaz izbir"
+
+#. NOTEBOOK_ENHANCE_OPTIONS
+#, fuzzy
+msgid "Enhancement"
+msgstr "Izbire za izboljševanje"
+
+#. MENU_ITEM_MAIL
+#, fuzzy
+msgid "Email"
+msgstr "Epošta:"
+
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr "Prikaži namige"
+
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr "Prikaži predogled"
+
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr "Prikaži histogram"
+
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "Prikaži krivuljo gama"
+
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr "Prikaži običajne izbire"
+
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr "Prikaži napredne možnosti"
+
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr "Nastavi"
+
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr "Dolžinska enota"
+
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr "milimetri"
+
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr "centimetri"
+
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr "palci"
+
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "Način osveževanja"
+
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "zvezen"
+
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "nezvezen"
+
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "zakasnjen"
+
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "Prikaži seznam ločljivosti"
+
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "Zasuči postscript"
+
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr "Shrani nastavitve naprave"
+
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr "Naloži nastavitve naprave"
+
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "Spremeni imenik"
+
+#. MENU_ITEM_XSANE_LICENSE
+#, fuzzy
+msgid "License"
+msgstr "palci"
+
+#. MENU_ITEM_XSANE_DOC
+#, fuzzy
+msgid "XSane doc"
+msgstr "Navodila za uporabo XSane"
+
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr "Navodila za uporabo procesa v ozadju"
+
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr "Procesi v ozadju, ki so na voljo"
+
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr "Namigi za skeniranje"
+
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr "Težave?"
+
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr "nedejaven"
+
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr "brez stiskanja"
+
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr "Huffmanovo stiskanje CCITT 1D"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr "Stiskanje za fakse po CCITT Group 3"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr "Stiskanje za fakse po CCITT Group 4"
+
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr "Stiskanje JPEG DCT"
+
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr "stisni bite"
+
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "Okno z običajnimi nastavitvami za način lineart"
+
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "Osrednje okno programa XSane v načinu lineart"
+
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "Osrednje okno programa XSane v načinu sivinski -> lineart"
+
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr "(nobeno)"
+
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "po končnici"
+
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr ""
+
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr ""
+
+#. MENU_ITEM_PRESET_AREA_DELETE
+#, fuzzy
+msgid "Delete definition"
+msgstr "Izbor tiskalnika za prilagoditev"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr ""
+
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr ""
+
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "Skeniram"
+
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "Prejemam %s podatke"
+
+#. PROGRESS_TRANSFERING_DATA
+#, fuzzy
+msgid "Transfering image"
+msgstr "Shranjujem sliko"
+
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr "Sučem sliko"
+
+#. PROGRESS_MIRRORING_DATA
+#, fuzzy
+msgid "Mirroring image"
+msgstr "Sučem sliko"
+
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr "Stiskam sliko"
+
+#. PROGRESS_CONVERTING_DATA
+#, fuzzy
+msgid "Converting image"
+msgstr "Pretvarjam podatke"
+
+#. PROGRESS_SAVING_DATA
+#, fuzzy
+msgid "Saving image"
+msgstr "Surova slika"
+
+#. PROGRESS_CLONING_DATA
+#, fuzzy
+msgid "Cloning image"
+msgstr "Sučem sliko"
+
+#. PROGRESS_SCALING_DATA
+#, fuzzy
+msgid "Scaling image"
+msgstr "Surova slika"
+
+#. PROGRESS_DESPECKLING_DATA
+#, fuzzy
+msgid "Despeckling image"
+msgstr "Zbriši projekt"
+
+#. PROGRESS_BLURING_DATA
+#, fuzzy
+msgid "Bluring image"
+msgstr "Zbriši projekt"
+
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr ""
+
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr ""
+
+#. DESC_PREVIEW_ACQUIRE
+#, fuzzy
+msgid "Acquire preview scan <Alt-p>"
+msgstr "Ustvari predogled"
+
+#. DESC_PREVIEW_CANCEL
+#, fuzzy
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "Odstrani predogled"
+
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr ""
+
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr "Vrednost, za katero se poveča števec datotek po skeniranju"
+
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr "Poženi brskalnik za imena datotek s slikami "
+
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr "Ime datoteke s sliko"
+
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr "Način zapisa; ime datoteke se samodejno dopolni s končnico"
+
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr "Vnesite ime projekta za faks"
+
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr "Vnesite novo ime za stran s faksom"
+
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr "Vnesite telefonsko številko ali naslov prejemnika faksa"
+
+#. DESC_MAILPROJECT
+#, fuzzy
+msgid "Enter name of mail project"
+msgstr "Vnesite ime projekta za faks"
+
+#. DESC_MAILIMAGENAME
+#, fuzzy
+msgid "Enter new name for mail image"
+msgstr "Vnesite novo ime za stran s faksom"
+
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr ""
+
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr ""
+
+#. DESC_PRESET_AREA_NAME
+#, fuzzy
+msgid "Enter new name for preset area"
+msgstr "Vnesite novo ime za stran s faksom"
+
+#. DESC_PRINTER_SELECT
+#, fuzzy
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "Izberite tiskalnik"
+
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr "Nastavitev ločljivosti skeniranja"
+
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "Nastavitev ločljivosti skeniranja v smeri x"
+
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "Nastavitev ločljivosti skeniranja v smeri y"
+
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr "Nastavitev stopnje povečave"
+
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "Nastavitev stopnje povečave v smeri x"
+
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "Nastavitev stopnje povečave v smeri x"
+
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr "Nastavitev števila kopij"
+
+#. DESC_NEGATIVE
+#, fuzzy
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr ""
+"Negativ: invertiranje barv za pripravo negativov\n"
+"na primer z zamenjavo bele in črne barve"
+
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr "Nastavitev vrednosti gama"
+
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr "Nastavitev vrednosti gama za rdečo barvo"
+
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr "Nastavitev vrednosti gama za zeleno barvo"
+
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr "Nastavitev vrednosti gama za modro barvo"
+
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr "Nastavitev svetlosti"
+
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr "Nastavitev svetlosti za rdečo barvo"
+
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr "Nastavitev svetlosti za zeleno barvo"
+
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr "Nastavitev svetlosti za modro barvo"
+
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr "Nastavitev kontrasta"
+
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr "Nastavitev kontrasta za rdečo barvo"
+
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr "Nastavitev kontrasta za zeleno barvo"
+
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr "Nastavitev kontrasta za modro barvo"
+
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "Nastavitev praga"
+
+#. DESC_RGB_DEFAULT
+#, fuzzy
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"Privzete vrednosti za RGB: Nastavitev privzetih vrednosti za rdečo, zeleno "
+"in modro:\n"
+" gama = 1.0\n"
+" svetlost = 0\n"
+" kontrast = 0"
+
+#. DESC_ENH_AUTO
+#, fuzzy
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr ""
+"Samonastavi vrednost gama, svetlost in kontrast v odvisnosti od izbranega "
+"območja"
+
+#. DESC_ENH_DEFAULT
+#, fuzzy
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"Ponastavi vrednosti za obdelavo slike:\n"
+"gama = 1.0\n"
+"svetlost = 0\n"
+"kontrastt = 0"
+
+#. DESC_ENH_RESTORE
+#, fuzzy
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "Obnovi vrednosti za obdelavo slike iz shranjenih vrednosti"
+
+#. DESC_ENH_STORE
+#, fuzzy
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr "Shrani vrednosti za obdelavo slike"
+
+#. DESC_HIST_INTENSITY
+#, fuzzy
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "Prikaz histograma svetlosti in sivin"
+
+#. DESC_HIST_RED
+#, fuzzy
+msgid "Show histogram of red component <Alt-r>"
+msgstr "Prikaz histograma rdeče barve"
+
+#. DESC_HIST_GREEN
+#, fuzzy
+msgid "Show histogram of green component <Alt-g>"
+msgstr "Prikaz histograma zelene barve"
+
+#. DESC_HIST_BLUE
+#, fuzzy
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "Prikaz histograma modre barve"
+
+#. DESC_HIST_PIXEL
+#, fuzzy
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr "Prikaz histograma s stolpci namesto pik"
+
+#. DESC_HIST_LOG
+#, fuzzy
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "Prikaz histograma v logaritemskem merilu"
+
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr "Izbor tiskalnika za prilagoditev"
+
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr "Vnos imena tiskalnika za prilagoditev"
+
+#. DESC_PRINTER_COMMAND
+#, fuzzy
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr "Vnesite ukaz, ki se izvede pri kopiranju (na primer \"lpr -\")"
+
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr "Vnesite število kopij"
+
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr "Ločljivost, v kateri natisnemo in shranimo slike v načinu lineart"
+
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr "Ločljivost, v kateri natisnemo in shranimo slike v načinu grayscale"
+
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr "Ločljivost, v kateri natisnemo in shranimo slike v načinu color"
+
+#. DESC_PRINTER_WIDTH
+#, fuzzy
+msgid "Width of printable area"
+msgstr "Širina območja, ki se natisne [mm]"
+
+#. DESC_PRINTER_HEIGHT
+#, fuzzy
+msgid "Height of printable area"
+msgstr "Višina območja, ki se natisne [mm]"
+
+#. DESC_PRINTER_LEFTOFFSET
+#, fuzzy
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr "Odmik območja, ki se natisne, od levega roba papirja [mm]"
+
+#. DESC_PRINTER_BOTTOMOFFSET
+#, fuzzy
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "Odmik območja, ki se natisne, od spodnjega roba papirja [mm]"
+
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr "Dodatna vrednost gama pri fotokopiranju"
+
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr "Dodatna vrednost gama za rdečo barvo pri fotokopiranju"
+
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr "Dodatna vrednost gama za zeleno barvo pri fotokopiranju"
+
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr "Dodatna vrednost gama za modro barvo pri fotokopiranju"
+
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "Pot do imenika z začasnimi datotekami"
+
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "Pobrskaj za imenikom z začasnimi datotekami"
+
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr ""
+"Kakovost slike v odstotkih, če sliko shranjujemo v zapisih TIFF ali JPEG pri "
+"stiskanju z JPEG"
+
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr "Stopnja stiskanja ob shranjevanju slike v zapisu PNG"
+
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr "Najkrajša dolžina oznake s števcem datotek"
+
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "Vrsta stiskanja pri shranjevanju 16-bitnih slik v zapisu TIFF"
+
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "Vrsta stiskanja pri shranjevanju 8-bitnih slik v zapisu TIFF"
+
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "Vrsta stiskanja pri shranjevanju slik v načinu lineart v zapisu TIFF"
+
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr ""
+
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "Opozori pri pisanju prek obstoječe datoteke"
+
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr "Pri samodejnem povečevanju števca datotek se zasedene oznake preskoči"
+
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr ""
+
+#. DESC_PSFILE_WIDTH
+#, fuzzy
+msgid "Width of paper for postscript files"
+msgstr "Širina papirja pri tiskanju v postscriptnem zapisu [mm]"
+
+#. DESC_PSFILE_HEIGHT
+#, fuzzy
+msgid "Height of paper for postscript files"
+msgstr "Višina papirja pri tiskanju v postscriptnem zapisu [mm]"
+
+#. DESC_PSFILE_LEFTOFFSET
+#, fuzzy
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Odmik slike od levega roba papirja pri tiskanju v postscriptnem zapisu [mm]"
+
+#. DESC_PSFILE_BOTTOMOFFSET
+#, fuzzy
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Odmik slike od levega roba papirja pri tiskanju v postscriptnem zapisu [mm]"
+
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr "Uporabi glavno okno s stalno ali spremenljivo velikostjo."
+
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+#, fuzzy
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr "Onemogoči pretvorbo z gamo, če xsane uporabljamo kot vmesnik za gimp"
+
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr "Uporabi lastno paleto za ogled slike pri 8-bitni globini"
+
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr "Faktor prekomernega vzorčenja"
+
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr "Nastavitev vrednosti gama pri predogledu slike"
+
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr "Nastavitev vrednosti gama za rdečo barvo pri predogledu slike"
+
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr "Nastavitev vrednosti gama za zeleno barvo pri predogledu slike"
+
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr "Nastavitev vrednosti gama za modro barvo pri predogledu slike"
+
+#. DESC_LINEART_MODE
+#, fuzzy
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "Opredelite, kako naj xsane ravna z izbiro praga"
+
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr ""
+"Sivinski način skeniranja. Ta način je v rabi pri preogledu slike,zajete v "
+"načinu lineart, če je omogočen pretvorbaiz sivinskega načina v lineart"
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "Spodnja vrednost praga v %"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "Zgornja vrednost praga v %"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+#, fuzzy
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Pomnoževalnik, s katerim poenotimo območje praga v skenerju in programu xsane"
+
+#. DESC_PREVIEW_THRESHOLD_OFF
+#, fuzzy
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr "Odmik, s katerim poenotimo območje praga v skenerju in programu xsane"
+
+#. DESC_ADF_MODE
+#, fuzzy
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+"Skeniranje s samodejnim podajanjem dokumentov. Program xsane bo zajemal "
+"slike do obvestila \"out of paper\" ali prve napake."
+
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr "Velikost kvadrata, v katerem povprečimo barvo pri zajemu s pipeto."
+
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr "Podajte ukaz, s katerim prikažemo datoteke s pomočjo v zapisu HTML."
+
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr ""
+"Prilagodi vrednost gama pri uporabi gumba za samodejno izboljševanje slike"
+
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr ""
+
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr ""
+
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr "Podajte ukaz za rabo pri pošiljanju faksa"
+
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr "Podajte izbiro, s katero določite prejemnika"
+
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr "Podajte izbiro za določitev spremljajočih datotek v zapisu postscript"
+
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr "Podajte izbiro za običajni način pri nizki ločljivosti"
+
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr "Podajte izbiro za običajni način pri visoki ločljivosti"
+
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr "Podajte ukaz za prikaz faksa"
+
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr "Odpošlji faks v visoki ločljivosti po osi y (196 lpi namesto 98 lpi)"
+
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr ""
+
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr ""
+
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr ""
+
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr ""
+
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr ""
+
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr ""
+
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr ""
+
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr ""
+
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr ""
+
+#. DESC_MAIL_VIEWER
+#, fuzzy
+msgid "Enter command to be executed to view a mail image"
+msgstr "Podajte ukaz za prikaz faksa"
+
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr ""
+
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr ""
+
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr ""
+
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr ""
+
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr "beriljiva"
+
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr "pisljiva"
+
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr "izvedljiva"
+
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr "Izberite točko v beli barvi"
+
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr "Izberite točko v sivi barvi"
+
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr "Izberite točko v črni barvi"
+
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr "Uporabi celotno območje "
+
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr "Približaj za 20 %"
+
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr "Približaj izbrano območje"
+
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr "Prekliči zadnje približanje"
+
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr "Izberi vidno območje"
+
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr "Samodejno določi območje skeniranja"
+
+#. DESC_DELETE_IMAGES
+#, fuzzy
+msgid "Delete preview image cache"
+msgstr "Zasuči preodgled in sliko"
+
+#. DESC_PRESET_AREA
+#, fuzzy
+msgid "Preset area"
+msgstr "Samodejno določi območje skeniranja"
+
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr "Zasuči preodgled in sliko"
+
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr ""
+
+#. DESC_VIEWER_CLONE
+#, fuzzy
+msgid "Clone image"
+msgstr "Zbriši projekt"
+
+#. DESC_VIEWER_ROTATE90
+#, fuzzy
+msgid "Rotate image 90 degree"
+msgstr "Sučem sliko"
+
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr ""
+
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr ""
+
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr ""
+
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr ""
+
+#. DESC_VIEWER_ZOOM
+#, fuzzy
+msgid "Zoom image"
+msgstr "Prikaži predogled"
+
+#. DESC_STORE_MEDIUM
+#, fuzzy
+msgid "Store medium"
+msgstr "Izbor tiskalnika za prilagoditev"
+
+#. DESC_DELETE_MEDIUM
+#, fuzzy
+msgid "Delete active medium"
+msgstr "Izbor tiskalnika za prilagoditev"
+
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
+msgstr "Določitev domačega imenika se ni posrečila:"
+
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "Sprememba domačega imenika se ni posrečila:"
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
+msgstr "Predolgo ime datoteke"
+
+#. ERR_CREATE_TEMP_FILE
+#, fuzzy
+msgid "Could not create temporary file"
+msgstr "Ustvari projekt"
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
+msgstr "Napaka pri nastavitvi vrednosti izbire"
+
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
+msgstr "Napaka pri pridobitvi vrednosti izbire"
+
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
+msgstr "Napaka pri pridobitvi števila izbir"
+
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
+msgstr "Napaka pri odpiranju naprave"
+
+#. ERR_NO_DEVICES
+msgid "no devices available"
+msgstr "na voljo ni nobene naprave"
+
+#. ERR_DURING_READ
+msgid "Error during read:"
+msgstr "Napaka pri branju:"
+
+#. ERR_DURING_SAVE
+msgid "Error during save:"
+msgstr "Napaka pri shranjevanju"
+
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
+msgstr "Napaka pri ravnanju z globino"
+
+#. ERR_GIMP_BAD_DEPTH
+#, fuzzy, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP ne more ravnati z globino"
+
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
+msgstr "Neznan zapis za shranjevanje"
+
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
+msgstr "Napaka pri odpiranju"
+
+#. ERR_CREATE_SECURE_FILE
+msgid "Could not create secure file (may be a link does exist):"
+msgstr ""
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
+msgstr "Napaka pri odpiranju cevovoda za tiskanje"
+
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
+msgstr "Napaka pri izvajanju ukaza za tiskanje"
+
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
+msgstr "Napaka pri zagonu skenerja:"
+
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
+msgstr "Napaka pri pridobivanju parametrov:"
+
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
+msgstr "Izhodni zapis ni podan"
+
+#. ERR_NO_MEM
+msgid "out of memory"
+msgstr "zmanjkalo je pomnilnika"
+
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr ""
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
+msgstr "LIBTIFF sporoča napako"
+
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
+msgstr "LIBPNG sporoča napako"
+
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
+msgstr "neznana vrsta"
+
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
+msgstr "neznana vrsta omejitve"
+
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
+msgstr "Napaka pri zagonu prikazovalnika dokumentacije:"
+
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
+msgstr "Napaka pri zagonu pregledovalnika faksov:"
+
+#. ERR_FAILED_EXEC_FAX_CMD
+#, fuzzy
+msgid "Failed to execute fax command:"
+msgstr "Napaka pri zagonu ukaza za faskiranje:"
+
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+#, fuzzy
+msgid "Failed to execute mail image viewer:"
+msgstr "Napaka pri zagonu pregledovalnika faksov:"
+
+#. ERR_FAILED_EXEC_OCR_CMD
+#, fuzzy
+msgid "Failed to execute ocr command:"
+msgstr "Napaka pri zagonu ukaza za faskiranje:"
+
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
+msgstr "pokravjen zapis okvira"
+
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
+msgstr "ločljivosti ni moč nastaviti"
+
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr "Datoteka z gesli (%s) ni varna, uporabljam dovoljenja x00\n"
+
+#. ERR_ERROR
+msgid "error"
+msgstr "napaka"
+
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
+msgstr "Glavna različica sane se ne ujema"
+
+#. ERR_XSANE_MAJOR_VERSION
+#, fuzzy
+msgid "XSane major version ="
+msgstr "glavna različica xsane ="
+
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
+msgstr "glavna različica programa v ozadju ="
+
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
+msgstr "*** IZVAJANJE PREKINJENO ***"
+
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
+msgstr "Napaka pri dodeljevanju pomnilnika za sliko"
+
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr "Predogled ne podpira bitne globine"
+
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
+msgstr "Manjkajoča podpora za GIMP"
+
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr ""
+
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr ""
+
+#. ERR_CREATE_FAX_PROJECT
+#, fuzzy
+msgid "Could not create faxproject"
+msgstr "Ustvari projekt"
+
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr "Števec datotek je prekoračil obseg"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr "opozorilo: izbira nima omejitve"
+
+#. WARN_XSANE_AS_ROOT
+#, fuzzy
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+"Program xsane ste želleli pognati kot skrbnik, to pa je nevarno!\n"
+"\n"
+"Če pri tem pride do napake, ne po;siljajte sporočil o napakah!\n"
+"Bili ste opozorjeni, znajti se morate sami!"
+
+#. ERR_HEADER_ERROR
+msgid "Error"
+msgstr "Napaka"
+
+#. ERR_HEADER_WARNING
+msgid "Warning"
+msgstr "Opozorilo"
+
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "Obvestilo"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
+msgstr "Napaka pri izdelavi datoteke:"
+
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
+msgstr "Napaka pri nalaganju nastavitev za napravo:"
+
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
+msgstr "ni datoteka s podatki o device-rc"
+
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
+msgstr "Napaka pri zagonu programa netscape"
+
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
+msgstr "Napaka pri pošiljanju faksa: prejemnik ni podan"
+
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
+msgstr "je bila ustvarjena za napravo"
+
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
+msgstr "želeli ste uporabiti napravo"
+
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
+msgstr "to lahko povzroči težave"
+
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr ""
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "Datoteka %s že obstaja"
+
+#. ERR_FILE_NOT_EXISTS
+#, fuzzy, c-format
+msgid "File %s does not exist"
+msgstr "Datoteka %s že obstaja"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, fuzzy, c-format
+msgid "File %s is not a postscript file"
+msgstr "Širina papirja pri tiskanju v postscriptnem zapisu [mm]"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "Nepodprti %d-bitni izhodni zapis: %s"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr ""
+
+#. TEXT_USAGE
+msgid "Usage:"
+msgstr "Uporaba:"
+
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr "[izbire]... [naprava]"
+
+#. TEXT_HELP
+#, fuzzy
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
+msgstr ""
+"Zagon grafičnega uporabniškega vmesnika za dostop do naprav SANE (Scanner "
+"Access Now Easy).\n"
+"\n"
+"Zapis [naprave] je ime programa v ozadju v obliki naprava: (na primer "
+"umax:/dev/scanner).\n"
+"[izbira]... je sestava naslednjih gradnikov:\n"
+" -h, --help prikaže to sporočilo in konča\n"
+" -v, --version izpiše podatke o različici\n"
+"\n"
+" -d, --device-settings datoteka prebere nastavitve o napravi z datoteke "
+"(brez končnice \".drc\")\n"
+"\n"
+" -s, --scan uporabi način za zkeniranje\n"
+" -c, --copy uporabi način za kopiranje\n"
+" -f, --fax uporabi način za pošiljanje faksov\n"
+" -n, --no-mode-selection onemogoči menu za izbiranje načina dela v "
+"xsane\n"
+"\n"
+" -F, --Fixed glavno okno je stalne velikosti (prepiši "
+"zeljene vrednosti)\n"
+" -R, --Resizeable glavno okno je spremenljive velikosti (prepisi "
+"željene vrednosti)\n"
+"\n"
+" -p, --print-filenames izpiši imena datotek, ki jih ustvari xsane\n"
+" -N, --force-filename name vsili imena datotek in onemogoči uporabniška "
+"imena\n"
+"\n"
+" --display X11-display preusmeri izhod na podani prikazovalnik X11\n"
+" --no-xshm ne uporabi slik z deljenim pomnilnikom\n"
+" --sync zahtevaj sinhrono povezavo s strežnikom za X11"
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
+msgstr "Grafični vmesnik do SANE"
+
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+"Ta funkcija omogoča dostop do skenerjev in drugih naprav zazajem slik z "
+"vmesnikom SANE (Scanner Access Now Easy)."
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr "<Toolbox>/File/Acquire/XSane: Pogovor z napravo..."
+
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
+msgstr "<Toolbox>/File/Acquire/XSane:"
+
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr "<Toolbox>/Xtns/XSane/Pogovor z napravo..."
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
+msgstr "<Toolbox>/Xtns/XSane/"
+
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr "polna velikost"
+
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr "vzdolžno A3"
+
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr "prečno A3"
+
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr "vzdolžno A4"
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr "prečno A4"
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr "vzdolžno A5"
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr "prečno A5"
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+#, fuzzy
+msgid "13cm x 18cm"
+msgstr "13 cm x 9 cm"
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+#, fuzzy
+msgid "18cm x 13cm"
+msgstr "9 cm x 13 cm"
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+#, fuzzy
+msgid "10cm x 15cm"
+msgstr "9 cm x 13 cm"
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+#, fuzzy
+msgid "15cm x 10cm"
+msgstr "9 cm x 13 cm"
+
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr "9 cm x 13 cm"
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr "13 cm x 9 cm"
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr "vzdolžno legal"
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr "prečno legal"
+
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr "vzdolžno pisemsko"
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr "prečno pisemsko"
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+#, fuzzy
+msgid "Standard negative"
+msgstr "Običajne izbire"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+#, fuzzy
+msgid "Fuji negative"
+msgstr "nedejaven"
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+#, fuzzy
+msgid "Konica negative"
+msgstr "nedejaven"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+#, fuzzy
+msgid "Konica negative VX 100"
+msgstr "nedejaven"
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr ""
+
+#. Sane backend messages
+msgid "flatbed scanner"
+msgstr "ploski skener"
+
+msgid "frame grabber"
+msgstr "zajemalnik zaslona"
+
+msgid "handheld scanner"
+msgstr "ročni skener"
+
+msgid "still camera"
+msgstr "fotoaparat"
+
+msgid "video camera"
+msgstr "videokamera"
+
+msgid "virtual device"
+msgstr "navidezna naprava"
+
+msgid "Success"
+msgstr "Opravljeno"
+
+msgid "Operation not supported"
+msgstr "Operacija ni podprta"
+
+msgid "Operation was cancelled"
+msgstr "Operacija je bila prekinjena"
+
+msgid "Device busy"
+msgstr "Naprava je zasedena"
+
+msgid "Invalid argument"
+msgstr "Napačen argument"
+
+msgid "End of file reached"
+msgstr "Dosežen konec datoteke"
+
+msgid "Document feeder jammed"
+msgstr "Zastoj v podajalniku dokumentov "
+
+msgid "Document feeder out of documents"
+msgstr "Pomanjkanje dokumentov v podajalniku dokumentov"
+
+msgid "Scanner cover is open"
+msgstr "Pokrov skenerja je odprt"
+
+msgid "Error during device I/O"
+msgstr "Napaka pri branju naprave ali pisanju nanjo"
+
+msgid "Out of memory"
+msgstr "Zmanjkalo je pomnilnika"
+
+msgid "Access to resource has been denied"
+msgstr "Dostop do vira je ni dovoljen."
+
+#, fuzzy
+#~ msgid "Store Medium definition"
+#~ msgstr "Izbor tiskalnika za prilagoditev"
+
+#, fuzzy
+#~ msgid ""
+#~ "Use XSane for: SCANning-<Ctrl-s> photoCOPYing-<Ctrl-c> FAXing-<Ctrl-f>"
+#~ msgstr "Uporabi XSane za skeniranje, fotokopiranje, faksiranje..."
+
+#, fuzzy
+#~ msgid "Width of paper for postscript"
+#~ msgstr "Širina papirja za zapis postscript [mm]:"
+
+#, fuzzy
+#~ msgid "Height of paper for postscript"
+#~ msgstr "Višina papirja za zapis postscript [mm]:"
+
+#, fuzzy
+#~ msgid "Left offset for postscript"
+#~ msgstr "Levi odmik pri zapisu postscript [mm]:"
+
+#, fuzzy
+#~ msgid "Bottom offset for postscript"
+#~ msgstr "Spodnji odmik pri zapisu postscript [mm]:"
+
+#, fuzzy
+#~ msgid "Failed to execute mail command:"
+#~ msgstr "Napaka pri zagonu ukaza za faskiranje:"
+
+#~ msgid "Copy options"
+#~ msgstr "Izbire pri prepisovanju"
+
+#~ msgid "Saving options"
+#~ msgstr "Shranjujem izbire"
+
+#, fuzzy
+#~ msgid "Image options"
+#~ msgstr "Izbire XSane"
+
+#~ msgid "Fax options"
+#~ msgstr "Nastavitve faksa"
+
+#~ msgid "Reduce scan area"
+#~ msgstr "Zmanjšaj območje skeniranja"
+
+#~ msgid "Š"
+#~ msgstr "(C)"
+
+#~ msgid "Delete"
+#~ msgstr "Zbriši"
+
+#~ msgid "Show"
+#~ msgstr "Prikaži"
+
+#~ msgid "Rename"
+#~ msgstr "Preimenuj"
+
+#~ msgid ""
+#~ "This program is distributed under the terms\n"
+#~ "of the GNU General Public License\n"
+#~ msgstr ""
+#~ "Program se razširja pod pogoji,\n"
+#~ "ki jih določa splošno dovoljenje za uporabo GNU General Public License\n"
diff --git a/po/sr.gmo b/po/sr.gmo
new file mode 100644
index 0000000..e081182
--- /dev/null
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 0000000..a389c98
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,2351 @@
+# Serbian translation for XSane.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Rusmir DuĹĄkor <drusmir@gmx.ch>, 2002.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: XSANE 0.76\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2002-01-17 00:47GMT\n"
+"Last-Translator: Rusmir DuĹĄko <drusmir@gmx.ch>\n"
+"Language-Team: srpski <sr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.2\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr "sr"
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr "(c)"
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "O programu"
+
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "O prevodu"
+
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "autorizacija"
+
+#. WINDOW_LICENSE
+msgid "license"
+msgstr "licenca"
+
+#. WINDOW_INFO
+msgid "info"
+msgstr "podatci"
+
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "paketno skeniranje"
+
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "Faks"
+
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "preimenuj stranu sa faksom"
+
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr "unesi ps-fajl u faks"
+
+#. WINDOW_MAIL_PROJECT
+msgid "mail project"
+msgstr "e-poĹĄta"
+
+#. WINDOW_MAIL_RENAME
+msgid "rename mail image"
+msgstr "preimenuj stranu sa e-poĹĄtom"
+
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr "unesi sliku u e-poĹĄtu"
+
+#. WINDOW_PRESET_AREA_RENAME
+msgid "rename preset area"
+msgstr "preimenuj prepodeĹĄavanja"
+
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "Konfiguracija"
+
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "Histogram"
+
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "Gama krivina"
+
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "Standarni izbori"
+
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "Napredni izbori"
+
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "biranje uređaja"
+
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "Pregled"
+
+#. WINDOW_VIEWER
+msgid "Viewer"
+msgstr "Prikazivač"
+
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+msgid "Viewer: select output filename"
+msgstr "Prikazivač: izaberi izlazni naziv fajla"
+
+#. WINDOW_OCR_OUTPUT_FILENAME
+msgid "Select output filename for OCR text file"
+msgstr "Izaberi izlazni naziv fajla za OCR tekst fajl"
+
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "Odredi izlazni naziv fajla"
+
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "Zapamti podešavanja uređaja"
+
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "Učitaj podešavanja uređaja"
+
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "Promeni radnu granu"
+
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "Izaberi privremeni direktorijum"
+
+#. WINDOW_SCALE
+msgid "Scale image"
+msgstr "Skaliraj sliku"
+
+#. WINDOW_DESPECKLE
+msgid "Despeckle image"
+msgstr "Odstrani fleke"
+
+#. WINDOW_BLUR
+msgid "Blur image"
+msgstr "Zamagli sliku"
+
+#. WINDOW_STORE_MEDIUM
+#, fuzzy
+msgid "Store medium definition"
+msgstr "Preimenuj definiciju"
+
+#. MENU_FILE
+msgid "File"
+msgstr "Fajl"
+
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "PodeĹĄavanja"
+
+#. MENU_VIEW
+msgid "View"
+msgstr "Pogled"
+
+#. MENU_HELP
+msgid "Help"
+msgstr "Pomoć"
+
+#. MENU_FILTERS
+msgid "Filters"
+msgstr "Filteri"
+
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "O programu XSane"
+
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr "Informacije"
+
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "Izlaz"
+
+#. MENU_ITEM_SAVE_IMAGE
+msgid "Save image"
+msgstr "Zapamti sliku"
+
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "Zatvori"
+
+#. MENU_ITEM_CLONE
+msgid "Clone"
+msgstr "Kopiraj"
+
+#. MENU_ITEM_SCALE
+msgid "Scale"
+msgstr "Promeni veličinu"
+
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr "odflekati"
+
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr "zamagli"
+
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr "sirova slika"
+
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr "PoboljĹĄana slika"
+
+#. BUTTON_START
+msgid "Start"
+msgstr "Počni"
+
+#. BUTTON_OK
+msgid "Ok"
+msgstr "U redu"
+
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr "Prihvati"
+
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr "Nije prihvaćeno"
+
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr "Primeni"
+
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr "Prekini"
+
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr "Smanji"
+
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "Nastavi na sopstvenu odgovornost"
+
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "PretraĹži"
+
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr "PrepiĹĄi"
+
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr "Dodaj povrĹĄinu"
+
+#. BUTTON_PAGE_DELETE
+msgid "Delete page"
+msgstr "IzbriĹĄi stranu"
+
+#. BUTTON_PAGE_SHOW
+msgid "Show page"
+msgstr "PrikaĹži pregled"
+
+#. BUTTON_PAGE_RENAME
+msgid "Rename page"
+msgstr "Preimenuj stranu"
+
+#. BUTTON_IMAGE_DELETE
+msgid "Delete image"
+msgstr "IzbriĹĄi sliku"
+
+#. BUTTON_IMAGE_SHOW
+msgid "Show image"
+msgstr "PokaĹži sliku"
+
+#. BUTTON_IMAGE_RENAME
+msgid "Rename image"
+msgstr "Preimenuj sliku"
+
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr "Unesi fajl"
+
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr "Uradi projekat"
+
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr "PoĹĄalji projekat"
+
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr "IzbriĹĄi projekat"
+
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr "Dodaj štampač"
+
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr "Odstrani štampač"
+
+#. BUTTON_PREVIEW_ACQUIRE
+msgid "Acquire preview"
+msgstr "Uradi pregled"
+
+#. BUTTON_PREVIEW_CANCEL
+msgid "Cancel preview"
+msgstr "Prekini pregled"
+
+#. BUTTON_DISCARD_IMAGE
+msgid "Discard image"
+msgstr "Odbaci sliku"
+
+#. BUTTON_DISCARD_ALL_IMAGES
+msgid "Discard all images"
+msgstr "Odbaci sve slike"
+
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr "Ne zatvaraj"
+
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr "PoveĹži skaliranja"
+
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr "Tačan modus"
+
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr "HTML e-poĹĄta"
+
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr "Zapamti podešavanja uređaja pri izlazu"
+
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr "PrepiĹĄi upozorenje"
+
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr "Preskoči postojeće nazive fajli"
+
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr "Smanji 16 bitnu sliku na 8 bita"
+
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr "Veličina glavnog prozora je postavljena"
+
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "Onemogući gama pri pregledu u gimpu"
+
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr "Upotrebi privatnu paletu boja"
+
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "Automatsko poboljĹĄanje faktora gama"
+
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+msgid "Preselect scanarea"
+msgstr "Automatsko biranje povrĹĄine skeniranja"
+
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr "Autokorektura boja"
+
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr "POP3 autentifikacija"
+
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "Skeniranje uređaja"
+
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr "Dostupni uređaji"
+
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr "XSane opcije"
+
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr "Način rada XSane"
+
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr "Korak"
+
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr "Vrsta"
+
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr "Skener i backend"
+
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr "Proizvođač:"
+
+#. TEXT_MODEL
+msgid "Model:"
+msgstr "Model:"
+
+#. TEXT_TYPE
+msgid "Type:"
+msgstr "Vrsta:"
+
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr "Uređaj:"
+
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr "Podignut backend:"
+
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr "Sane verzija:"
+
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr "Zadnje vrednosti:"
+
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr "Gama korekcija:"
+
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr "skener"
+
+#. TEXT_SOFTWARE_XSANE
+msgid "software (XSane)"
+msgstr "program (Xsane)"
+
+#. TEXT_NONE
+msgid "none"
+msgstr "bez"
+
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr "Dubina bita ulazne game:"
+
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr "Dubina bita izlazne game:"
+
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr "Dubina bita izlaza skenera: "
+
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr "Xsane izlazni formati:"
+
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr "8-bitni izlazni formati:"
+
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr "16-bitni izlazni formati:"
+
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Gimp ne podrĹžava dubinu 16 bit-a u boji.\n"
+"Da li Ĺželite da smanjite dubinu na 8 bit-a u boji?"
+
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Dubina 16 bit-a u boji nije podrĹžana za ovaj format.\n"
+"Da li Ĺželite da smanjite dubinu na 8 bit-a u boji?"
+
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr "Zahtevana potvrda za"
+
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr "Prenos lozinke je siguran"
+
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr "Backend zahteva neĹĄifrovanu lozinku"
+
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr "Korisnik:"
+
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr "Lozinka:"
+
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr "Nevažeći parametri."
+
+#. TEXT_VERSION
+msgid "version:"
+msgstr "Verzija:"
+
+#. TEXT_PACKAGE
+msgid "package"
+msgstr "paket"
+
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr "sa podrĹĄkom GIMP-a"
+
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr "bez podrĹĄke GIMP-a"
+
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "prevedeno sa podrĹĄkom za GTK-"
+
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr "prevedeno sa podrĹĄkom GIMP-a"
+
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr "nepoznato"
+
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr "E-poĹĄta:"
+
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr "lični Web sajt:"
+
+#. TEXT_FILE
+msgid "File:"
+msgstr "Fajl:"
+
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr "Prevod:"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+"prevod iz engleskog teksta\n"
+"Rusmir DuĹĄko\n"
+"E-poĹĄta: drusmir@gmx.ch\n"
+
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr "0x0: 0KB"
+
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr "Skenirane strane: "
+
+#. TEXT_MAIL_TEXT
+msgid "Email text:"
+msgstr "E-poĹĄta:"
+
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr "Dodatci:"
+
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr "Status projekta:"
+
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr ""
+
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+"Veličina %d x %d piksxel, %d bit/boji, %d boja, %1.0f dpi x %1.0f dpi, "
+"%1.1f %s"
+
+#. TEXT_X_SCALE_FACTOR
+msgid "X-Scale factor:"
+msgstr "Odredi X stepen povećavanja:"
+
+#. TEXT_Y_SCALE_FACTOR
+msgid "Y-Scale factor:"
+msgstr "Odredi Y stepen povećavanja:"
+
+#. TEXT_DESPECKLE_RADIUS
+msgid "Despeckle radius:"
+msgstr "Radijus odflekivanja:"
+
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr "Radijus zamaglivanja:"
+
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr "Izaberi štampač:"
+
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr "Ime:"
+
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr "Komanda:"
+
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr "Opcija sa broj kopija:"
+
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "Rezolucija u crno/belom načinu Lineart (dpi):"
+
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "Rezolucija u sivom (dpi):"
+
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "Rezolucija u boji (dpi):"
+
+#. TEXT_SETUP_PRINTER_WIDTH
+msgid "Width"
+msgstr "Ĺ irina"
+
+#. TEXT_SETUP_PRINTER_HEIGHT
+msgid "Height"
+msgstr "Visina"
+
+#. TEXT_SETUP_PRINTER_LEFT
+msgid "Left offset"
+msgstr "Leva ivica"
+
+#. TEXT_SETUP_PRINTER_BOTTOM
+msgid "Bottom offset"
+msgstr "Donja ivica"
+
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr "Vrednost gama za štampač:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr "Vrednost gama crvene boje za štampač:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr "Vrednost gama zelene boje za štampač:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr "Vrednost gama plave boje za štampač:"
+
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "Privremeni direktorijum"
+
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "Dozvole za fajle slika"
+
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "Dozvole direktorijuma"
+
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr "JPEG kvalitet slike"
+
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr "PNG kompresija slike"
+
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr "Brojač dužine naziva fajla"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "TIFF 16-bitna kompresija slike"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "TIFF 8 bitna kompresija slike"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr "TIFF lineart kompresija slike"
+
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "Prekomerni uzorak pri pregledu:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr "Faktor gama pri pregledu:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr "Faktor gama za crvenu boju pri pregledu:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr "Faktor gama za zelenu boju pri pregledu:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr "Faktor gama za plavu boja pri pregledu:"
+
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "Opcije praga ĹĄuma:"
+
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr "Automatsko uvlačenje dokumenata:"
+
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr "Opsega četkice pri pregledu"
+
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "Minimalni prag ĹĄuma:"
+
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "Maksimum praga ĹĄuma:"
+
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "Umnožavač praga šuma:"
+
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "Promena praga ĹĄuma:"
+
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "Ime sivog načina skeniranja:"
+
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "Prikazivač za pomoć (HTML):"
+
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr "Opcija za broj prijemnika:"
+
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr "Opcije za postscript fajl:"
+
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr "Opcije pri normalnom načinu:"
+
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr "Opcije pri posebnom načinu:"
+
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr "Prikazivač (postscript):"
+
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr "SMTP server"
+
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr "SMTP port:"
+
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr "PoĹĄiljalac:"
+
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr "Adresa za odgovor:"
+
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr "POP3 server:"
+
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr "POP3 port:"
+
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr "POP3 korisnik:"
+
+#. TEXT_SETUP_POP3_PASS
+msgid "POP3 password:"
+msgstr "POP3 lozinka:"
+
+#. TEXT_SETUP_MAIL_VIEWER
+msgid "Viewer (png):"
+msgstr "Prikazivač (png):"
+
+#. TEXT_SETUP_OCR_COMMAND
+msgid "OCR Command:"
+msgstr "OCR komanda:"
+
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+msgid "Inputfile option:"
+msgstr "Opcije za ulazni fajl:"
+
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+msgid "Outputfile option:"
+msgstr "Opcije za izlazni fajl:"
+
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr "korisnik"
+
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr "grupa"
+
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr "svi"
+
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr "Sačuvaj"
+
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr "Slika"
+
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "Kopiraj"
+
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr "Faks"
+
+#. NOTEBOOK_MAIL_OPTIONS
+msgid "Mail"
+msgstr "E-poĹĄta:"
+
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr "OCR"
+
+#. NOTEBOOK_DISPLAY_OPTIONS
+msgid "Display"
+msgstr "Prikaz"
+
+#. NOTEBOOK_ENHANCE_OPTIONS
+msgid "Enhancement"
+msgstr "PoboljĹĄavanje"
+
+#. MENU_ITEM_MAIL
+msgid "Email"
+msgstr "E-poĹĄta:"
+
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr "PrikaĹži savete"
+
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr "PrikaĹži pregled"
+
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr "PrikaĹži histogram"
+
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "PrikaĹži krivinu gama"
+
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr "PrikaĹži standardne izbore"
+
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr "Prikaži napredne mogućnosti"
+
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr "Konfiguracija"
+
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr "DuĹžinska mera"
+
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr "milimetri"
+
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr "centimetri"
+
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr "inči"
+
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "Aktualiziraj"
+
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "neprekidno"
+
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "prekidno"
+
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "zadrĹžano"
+
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "PrikaĹži listu rezolucija"
+
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "Rotiraj postscript"
+
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr "Zapamti podešavanja uređaja"
+
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr "Učitaj podešavanja uređaja"
+
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "Promeni direktorijum"
+
+#. MENU_ITEM_XSANE_LICENSE
+msgid "License"
+msgstr "Licenca"
+
+#. MENU_ITEM_XSANE_DOC
+msgid "XSane doc"
+msgstr "Xsane dokumentacija"
+
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr "Backend dokumentacija"
+
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr "Dostupni backend-i"
+
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr "Saveti za skeniranje"
+
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr "Problemi?"
+
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr "neaktivno"
+
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr "bez kompresije"
+
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr "CCITT 1D Huffman kompresija"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr "CCITT Group 3 Faks kompresija"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr "CCITT Group 4 Faks kompresija"
+
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr "JPEG DCT kompresija"
+
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr "zapakovani biti"
+
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "Standardne opcije prozor (c/b)"
+
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "Xane glavni prozor (c/b)"
+
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "XSane glavni prozor (sivi -> c/b)"
+
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr "(niĹĄta)"
+
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "po nastavku"
+
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr "Dodaj izbor u listu"
+
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr "Preimenuj definiciju"
+
+#. MENU_ITEM_PRESET_AREA_DELETE
+msgid "Delete definition"
+msgstr "IzbriĹĄi definiciju"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr "Pomeri na gore"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr "Pomeri na dole"
+
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "Skeniranje"
+
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "Primam %s podatke"
+
+#. PROGRESS_TRANSFERING_DATA
+msgid "Transfering image"
+msgstr "Sliku preneti"
+
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr "Sliku rotirati"
+
+#. PROGRESS_MIRRORING_DATA
+msgid "Mirroring image"
+msgstr "Sliku ogledati"
+
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr "Sliku kompresovati"
+
+#. PROGRESS_CONVERTING_DATA
+msgid "Converting image"
+msgstr "Podatke konvertovati"
+
+#. PROGRESS_SAVING_DATA
+msgid "Saving image"
+msgstr "Sliku zapamtiti"
+
+#. PROGRESS_CLONING_DATA
+msgid "Cloning image"
+msgstr "Sliku kopirati"
+
+#. PROGRESS_SCALING_DATA
+msgid "Scaling image"
+msgstr "Skaliraj sliku"
+
+#. PROGRESS_DESPECKLING_DATA
+msgid "Despeckling image"
+msgstr "Sliku odflekavati"
+
+#. PROGRESS_BLURING_DATA
+msgid "Bluring image"
+msgstr "Zamagljavam sliku"
+
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr "Startaj skeniranje <Ctrl-Enter>"
+
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr "Prekini skeniranje <ESC>"
+
+#. DESC_PREVIEW_ACQUIRE
+msgid "Acquire preview scan <Alt-p>"
+msgstr "Pregled <Alt-p>"
+
+#. DESC_PREVIEW_CANCEL
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "Prekini pregled <Alt-ESC>"
+
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr "Izaberi izvor medijuma"
+
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr "Vrednost, za koju se povećava brojač fajla posle skeniranja"
+
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr "TraĹži slike po nazivima fajla"
+
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr "Naziv fajla za skeniranu sliku"
+
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr ""
+"Način zapisa; odgovarajući nastavak se automatski dodaje na naziv fajla"
+
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr "Unesi ime projekta za faks"
+
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr "Unesi novo ime za stranu sa faksom"
+
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr "Unesi telefonski broj ili adresu prijemnika"
+
+#. DESC_MAILPROJECT
+msgid "Enter name of mail project"
+msgstr "Unesi ime projekta za E-poĹĄtu"
+
+#. DESC_MAILIMAGENAME
+msgid "Enter new name for mail image"
+msgstr "Unesi novo ime za sliku u E-poĹĄti"
+
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr "Unesi email adresu"
+
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr "Unesi temu od E-poĹĄte"
+
+#. DESC_PRESET_AREA_NAME
+msgid "Enter new name for preset area"
+msgstr "Unesi novo ime za opseg konfiguracija"
+
+#. DESC_PRINTER_SELECT
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "Izaberi štampač"
+
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr "Izaberi rezoluciju skeniranja"
+
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "Izaberi rezoluciju skeniranja u smeru x"
+
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "Izaberi rezoluciju skeniranja u smeru y"
+
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr "Izaberi faktor uveli"
+
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "Izaberi faktor uveli u smeru x"
+
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "Izaberi faktor uveličavanja u smeru y"
+
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr "Izaberite broj kopija"
+
+#. DESC_NEGATIVE
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr "Negativ: invertiraj boje za skeniranje negativa <Shift-n>"
+
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr "Izaberi vrednost gama"
+
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr "Izaberi vrednost gama za crvenu boju"
+
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr "Izaberi vrednost gama za zelenu boju"
+
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr "Izaberi vrednost gama za plavu boju"
+
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr "Izaberi osvetljenje"
+
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr "Izaberi osvetljenje za crvenu boju"
+
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr "Izaberi osvetljenje za zelenu boju"
+
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr "Izaberi osvetljenje za plavu boju"
+
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr "Izaberi kontrast"
+
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr "Izaberi kontrast za crvenu boju"
+
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr "Izaberi kontrast za zelenu boju"
+
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr "Izaberi kontrast za plavu boju"
+
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "Izaberi prag ĹĄuma"
+
+#. DESC_RGB_DEFAULT
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"Podrazumevane vrednosti za RGB: Namesti poboljĹĄane vrednosti za crvenu, "
+"zelenu i plavu na standardne vrednosti <Shift-b>:\n"
+" gama = 1.0\n"
+" svetlost = 0\n"
+" kontrast = 0"
+
+#. DESC_ENH_AUTO
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr "AutopodeĹĄavanje vrednosti gama, osvetljenja i kontrasta <Shift-e>"
+
+#. DESC_ENH_DEFAULT
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"Postavi standardne vrednosti za poboljĹĄanje <Shift-d>:\n"
+"gama = 1.0\n"
+"osvetljenje = 0\n"
+"kontrast = 0"
+
+#. DESC_ENH_RESTORE
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "Obnovi vrednosti za poboljĹĄanje slike iz podeĹĄavanja <Shift-r>"
+
+#. DESC_ENH_STORE
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr ""
+"Zapamti aktivne vrednosti za poboljĹĄanje slike u podeĹĄavanja <Shift-m>"
+
+#. DESC_HIST_INTENSITY
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "Prikaz histograma svetlosti/grao <Alt-i>"
+
+#. DESC_HIST_RED
+msgid "Show histogram of red component <Alt-r>"
+msgstr "Prikaz histograma crvene boje <Alt-r>"
+
+#. DESC_HIST_GREEN
+msgid "Show histogram of green component <Alt-g>"
+msgstr "Prikaz histograma zelene boje <Alt-g>"
+
+#. DESC_HIST_BLUE
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "Prikaz histograma plave boje <Alt-b>"
+
+#. DESC_HIST_PIXEL
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr "Prikaz histograma sa linijama umesto piksela <Alt-m>"
+
+#. DESC_HIST_LOG
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "Prikaz logaritma od broja piksela <Alt-l>"
+
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr "Izaberi definiciju za menjanje"
+
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr "Ime definicije"
+
+#. DESC_PRINTER_COMMAND
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr "Unesi komandu, koja se izvodi pri kopiranju (na primer \"lpr -\")"
+
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr "Unesi opciju za broj kopija"
+
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr "Rezolucija, u kojoj se crno/bele slike ĹĄtampaju i pamte u postscriptu"
+
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr "Rezolucija, u kojoj se sive slike ĹĄtampaju i pamte u postscriptu"
+
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr "Rezolucija, u kojoj se slike u boji ĹĄtampaju i pamte u postscriptu"
+
+#. DESC_PRINTER_WIDTH
+msgid "Width of printable area"
+msgstr "Ĺ irina povrĹĄine za ĹĄtampanje"
+
+#. DESC_PRINTER_HEIGHT
+msgid "Height of printable area"
+msgstr "Visina povrĹĄine za ĹĄtampanje"
+
+#. DESC_PRINTER_LEFTOFFSET
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr "Razmak od levog ruba papira do početka površine za štampanje"
+
+#. DESC_PRINTER_BOTTOMOFFSET
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "Razmak od donjeg ruba papira do početka površine za štampanje"
+
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr "Dodatna vrednost gama pri fotokopiranju"
+
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr "Dodatna vrednost gama za crvenu boju pri fotokopiranju"
+
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr "Dodatna vrednost gama za zelenu boju pri fotokopiranju"
+
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr "Dodatna vrednost gama za plavu boju pri fotokopiranju"
+
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "Put do privremenog direktorijuma"
+
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "PretraĹži privremeni direktorijum"
+
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr ""
+"Kvalitet slike u procentima, ako je slika zapamćena kao JPEG ili TIFF sa "
+"JPEG kompresijom"
+
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr "Kompresija ako je slika zapamćena kao PNG"
+
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr "Najkraća dužina brojača u nazivu fajla"
+
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "Vrsta kompresije ako se 16-bitn-a slika pamti kao TIFF"
+
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "Vrsta kompresije ako se 8-bitn-a slika pamti kao TIFF"
+
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "Vrsta kompresije ako se crno/bela slika pamti kao TIFF"
+
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr ""
+"Pamti odgovarajuće konfiguracije uređaja u podrazumevanoj fajli pri "
+"napuĹĄtanju Xsane-a"
+
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "Upozori pre prepisivanja postojeće fajle"
+
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr ""
+"Ako je brojač naziva fajle automatski povećan, postojeći brojevi se "
+"automatski preskaču"
+
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr ""
+"Ako skener ĹĄalje sliku sa 16 bit-a u boji pamti sliku sa 8 bit-a u boji"
+
+#. DESC_PSFILE_WIDTH
+msgid "Width of paper for postscript files"
+msgstr "Ĺ irina papira pri ĹĄtampanju postcript fajli"
+
+#. DESC_PSFILE_HEIGHT
+msgid "Height of paper for postscript files"
+msgstr "Visina papira pri ĹĄtampanju postscript fajli"
+
+#. DESC_PSFILE_LEFTOFFSET
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr "Odmak slike od levog ruba papira pri ĹĄtampanju postscript fajli"
+
+#. DESC_PSFILE_BOTTOMOFFSET
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr "Odmak slike od donjeg ruba papira pri ĹĄtampanju postscript fajli"
+
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr "Upotrebi fiksiranu ili promenljivu glavnu stranu"
+
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr "Onemogući pregled gama, ako se Xsane upotrebljava kao uložak za Gimp"
+
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr ""
+"Upotrebi svoju paletu boja za pregled ako se koristi dubina ekrana od 8 bpp"
+
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr "Vrednost, sa kojom se pomnožava izračunata rezolucija pregleda"
+
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr "Odredi vrednost gama pri pregledu slike"
+
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr "Odredi vrednost gama za crvenu boju pri pregledu slike"
+
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr "Odredi vrednost gama za zelenu boju pri pregledu slike"
+
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr "Odredi vrednost gama za plavu boju pri pregledu slike"
+
+#. DESC_LINEART_MODE
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "Definišite način, kako Xsane određuje prag šuma"
+
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr ""
+"Selektiraj sivi način skeniranja, Taj način se upotrebljava za crno/bele "
+"slike ako je transformacija iz sive u crno/belu omogućena"
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "Donja vrednost praga ĹĄuma u %"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "Gornja vrednost praga ĹĄuma u %"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr "Umnožavač, koji prag šuma skenera i programa Xsane usklađuje"
+
+#. DESC_PREVIEW_THRESHOLD_OFF
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr "Odmak, koji prag šuma skenera i programa Xsane usklađuje"
+
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+"Odredi izvor skeniranja za automatsko dodavanje dokumenata. Ako je taj izvor "
+"izabran onda Xsane skenira do obaveĹĄtenja \"out of paper\" ili dogreĹĄke."
+
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr ""
+"Veličina kvadrata, koji se koristi da uskladi boju za funkciju pipete."
+
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr "Dajte komandu, sa kojom se prikazuju pomoćni fajlovi HTML!"
+
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr ""
+"Prilagodi vrednost gama pri upotrebi dugmeta za auto poboljĹĄavanje slike"
+
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr "Izaberi povrĹĄinu za skeniranje posle zavrĹĄetka pregleda"
+
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr "Uradi korekciju boje posle zavrĹĄetka pregleda"
+
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr "Dajte komandu koja je potrebna za slanje faksa"
+
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr "Opcija sa kojom sa određuje telefonski broj prijemnika"
+
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr "Opcija sa kojom sa određuje slanje postscript fajlova"
+
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr "Opcija sa kojom sa određuje vertikalna rezolucija od 98 lpi"
+
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr "Opcija sa kojom sa određuje vertikalna rezolucija od 196 lpi"
+
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr "Komanda za prikazivanje faksa"
+
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr "Ĺ alji faks u visokoj rezoluciji po osi y (196 lpi umesto 98 lpi)"
+
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr "IP adresa ili ime domena SMTP servera"
+
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr "port na kojem SMTP server treba da bude povezan"
+
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr "unesite vaĹĄu e-poĹĄtansku adresu"
+
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr "unesite e-poĹĄtansku adresu za odgovore na ovu adresu"
+
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr "Autentifikaciju POP3 servera isvrĹĄiti pre slanja e-poĹĄte"
+
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr "IP adresa ili ime domena POP3 servera"
+
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr "port na kojem POP3 server treba da bude povezan"
+
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr "korisničko ime za POP3 server"
+
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr "lozinka za POP3 server"
+
+#. DESC_MAIL_VIEWER
+msgid "Enter command to be executed to view a mail image"
+msgstr "Komanda za prikaz slike iz e-poĹĄte"
+
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr "e-poĹĄta je poslata u html modusu, slike su prikazane direktno"
+
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr "Komanda za startanje vaĹĄeg OCR programa"
+
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr "Opcija od OCR programa koja definiĹĄe ulazni fajl"
+
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr "Opcija od OCR programa koja definiĹĄe izlazni fajl"
+
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr "čitati"
+
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr "pisati"
+
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr "izvesti"
+
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr "Izberi belu tačku"
+
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr "Izberi sivu tačku"
+
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr "Izberi crnu tačku"
+
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr "Upotrebi celu povrĹĄinu skeniranja"
+
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr "Smanji za 20% "
+
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr "Uvećavaj u izabrano područje"
+
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr "Odbaci zadnje uvećavanje"
+
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr "Izaberi vidnu povrĹĄinu"
+
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr "Automatska selekcija povrĹĄine skeniranja"
+
+#. DESC_DELETE_IMAGES
+msgid "Delete preview image cache"
+msgstr "ObriĹĄi pregled slike"
+
+#. DESC_PRESET_AREA
+msgid "Preset area"
+msgstr "PrepodeĹĄena povrĹĄina skeniranja"
+
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr "Rotiraj pregled i skeniraj"
+
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr "Optical Character Recongnition"
+
+#. DESC_VIEWER_CLONE
+msgid "Clone image"
+msgstr "Kopiraj sliku"
+
+#. DESC_VIEWER_ROTATE90
+msgid "Rotate image 90 degree"
+msgstr "Rotiraj sliku za 90 stepeni"
+
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr "Rotiraj sliku za 180 stepeni"
+
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr "Rotiraj sliku za 270 stepeni"
+
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr "Ogledaj sliku u vertikalnoj osi"
+
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr "Ogledaj sliku u horizontalnoj osi"
+
+#. DESC_VIEWER_ZOOM
+msgid "Zoom image"
+msgstr "Uveličaj sliku"
+
+#. DESC_STORE_MEDIUM
+#, fuzzy
+msgid "Store medium"
+msgstr "Izaberi izvor medijuma"
+
+#. DESC_DELETE_MEDIUM
+#, fuzzy
+msgid "Delete active medium"
+msgstr "IzbriĹĄi sliku"
+
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
+msgstr "Neuspelo učitavanje korisničkog direktorijuma:"
+
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "Neuspelo menjanje radnog direktorijuma do"
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
+msgstr "Naziv fajla je predugačak"
+
+#. ERR_CREATE_TEMP_FILE
+msgid "Could not create temporary file"
+msgstr "Ne mogu da napravim privremeni fajl"
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
+msgstr "GreĹĄka pri promeni opcije"
+
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
+msgstr "Greška pri čitanju opcije"
+
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
+msgstr "Nisam mogao da odredim broj opcija"
+
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
+msgstr "Greška pri otvaranju uređaja"
+
+#. ERR_NO_DEVICES
+msgid "no devices available"
+msgstr "Nijedan uređaj nije dostupan"
+
+#. ERR_DURING_READ
+msgid "Error during read:"
+msgstr "Greška pri čitanju:"
+
+#. ERR_DURING_SAVE
+msgid "Error during save:"
+msgstr "Greška pri pamćenju:"
+
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
+msgstr "NepodrĹžana dubina bita"
+
+#. ERR_GIMP_BAD_DEPTH
+#, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP ne moĹže podrĹžati dubinu od %d bit-a u boji"
+
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
+msgstr "Nepoznat naziv fajla za pamćenje"
+
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
+msgstr "GreĹĄka pri otvaranju"
+
+#. ERR_CREATE_SECURE_FILE
+msgid "Could not create secure file (may be a link does exist):"
+msgstr "Ne mogu napraviti sigurnosnu fajlu (moĹžda je veza koja postoji):"
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
+msgstr "GreĹĄka pri otvaranju cevovoda za ĹĄtampanje"
+
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
+msgstr "GreĹĄka pri izvrĹĄenju komande za ĹĄtampanje"
+
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
+msgstr "GreĹĄka pri startanju skenera:"
+
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
+msgstr "Greška pri čitanju parametara:"
+
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
+msgstr "Izlazni format nija dan"
+
+#. ERR_NO_MEM
+msgid "out of memory"
+msgstr "Ponestalo je memorije"
+
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr ""
+"Backend-i ĹĄalju viĹĄe podatako o slici, nego ĹĄto je definisano u "
+"parametrima"
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
+msgstr "LIBTIFF javlja greĹĄku"
+
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
+msgstr "LIBPNG javlja greĹĄku"
+
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
+msgstr "nopoznata vrsta"
+
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
+msgstr "nepoznata nametnuta vrsta"
+
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
+msgstr "Greška pri izvršenju prikazivača dokumentacije:"
+
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
+msgstr "Greška pri izvršenju prikazivača faksova:"
+
+#. ERR_FAILED_EXEC_FAX_CMD
+msgid "Failed to execute fax command:"
+msgstr "GreĹĄka pri izvrĹĄenju komande za faks:"
+
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+msgid "Failed to execute mail image viewer:"
+msgstr "Greška pri izvršenju prikazivača e-pošte:"
+
+#. ERR_FAILED_EXEC_OCR_CMD
+msgid "Failed to execute ocr command:"
+msgstr "GreĹĄka pri izvrĹĄenju komande za OCR:"
+
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
+msgstr "neočekivan format okvira"
+
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
+msgstr "Nisam mogao rezoluciju definisati"
+
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr "Fajla sa lozinkama (%s) je nesigurna, koristi dozvole x00\n"
+
+#. ERR_ERROR
+msgid "error"
+msgstr "greĹĄka"
+
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
+msgstr "Glavna verzije sane ne odgovara!"
+
+#. ERR_XSANE_MAJOR_VERSION
+msgid "XSane major version ="
+msgstr "XSane glavna verzija ="
+
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
+msgstr "backend glavna verzija ="
+
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
+msgstr "*** PROGRAM JE OBUSTAVLJEN ***"
+
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
+msgstr "GreĹĄka pri dodeljivanju memorije za sliku"
+
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr "Pregled ne nepodrĹžava dubinu bita"
+
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
+msgstr "Nedostaje podrĹžavanje za GIMP"
+
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr "Ne mogu da napravim privremeni fajl za pregled"
+
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr "Ne mogu da napravim naziv fajla za fajlove za pregled"
+
+#. ERR_CREATE_FAX_PROJECT
+msgid "Could not create faxproject"
+msgstr "Ne mogu napraviti faks projekat"
+
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr "Brojač naziva fajla je prekoračio opseg"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr "upozorenje: opcija nema dozvoljenu vrednost"
+
+#. WARN_XSANE_AS_ROOT
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+"Vi pokuĹĄavate da startate Xsane kao ROOT, \n"
+"to je vrlo OPASNO!\n"
+"\n"
+"Ne ĹĄaljite nikakav report greĹĄke ako vi\n"
+"imate bilo koji problem koristeći Xsane kao root\n"
+"Upozoreni ste, morate se sami snaći!"
+
+#. ERR_HEADER_ERROR
+msgid "Error"
+msgstr "GreĹĄka"
+
+#. ERR_HEADER_WARNING
+msgid "Warning"
+msgstr "Upozorenje"
+
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "ObaveĹĄtenje"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
+msgstr "GreĹĄka pri pravljenju fajla:"
+
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
+msgstr "Greška pri učitavanju podešavanja uređaja:"
+
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
+msgstr "nije fajl sa podatcimo o device-rc"
+
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
+msgstr "Greška pri izvršenju pretraživača!"
+
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
+msgstr "GreĹĄka pri slanju faksa: prijemnik nije dat"
+
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
+msgstr "bila je napravljena za uređaj"
+
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
+msgstr "upotrebljavaće se za uređaj"
+
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
+msgstr "to moĹže praviti probleme!"
+
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr "Ima %d nezapamćenih slika"
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "Fajl %s već postoji"
+
+#. ERR_FILE_NOT_EXISTS
+#, c-format
+msgid "File %s does not exist"
+msgstr "Fajl %s ne postoji"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, c-format
+msgid "File %s is not a postscript file"
+msgstr "Fajl %s nije postcript"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "NepodrĹžani %d- bitni izlazni format %s"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr "Slika prikazivača nije zapamćena"
+
+#. TEXT_USAGE
+msgid "Usage:"
+msgstr "Upotreba:"
+
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr "[OPCIJA]... [UREĐAJ]"
+
+#. TEXT_HELP
+#, fuzzy
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
+msgstr ""
+"Startaj grafički korisnički interfejs (GUI) da dobiješ pristup do SANE "
+"(Scanner Access Now Easy) uređaja.\n"
+"\n"
+"Format [UREĐAJ] je ime backend-a: u obliku uređaja (n.pr. "
+"umax:/dev/scanner)\n"
+"[OPCIJA]... može biti kombinacija sledećih stavki:\n"
+" -h, --help pokaži ovaj pomoćni i tekst\n"
+" -v, --version daj informacije o verziji\n"
+" -l, --license daj ifnormacije o licenci\n"
+"\n"
+" -d, --device-settings fajl učitaj podešavanja uređaja iz fajla (bez "
+"nastavka \".drc\")\n"
+"\n"
+" -s, --save startaj u modusu za upisivanje\n"
+" -V, --viewer startaj u modusu za prikazivanje\n"
+" -c, --copy startaj u modusu za kopiranje\n"
+" -f, --fax startaj u modusu za slanje faksa\n"
+" -m, --mail startaj u modusu za e-poĹĄtu\n"
+" -n, --no-mode-selection onemogući izbor modusa\n"
+"\n"
+" -F, --Fixed glavni prozor je stalne veličine (prepiši "
+"podeĹĄavanja)\n"
+" -R, --Resizeable glavni prozor je promenljiv (prepiĹĄi "
+"podeĹĄavanja)\n"
+"\n"
+" -p, --print-filenames prikaĹži nazive fajla napravljene od XSane-a\n"
+" -N, --force-filename name koristi naziv kao naziv fajla i onemogući "
+"korisniku izbor naziva fajla\n"
+"\n"
+" --display X11-display prebaci izlaz na X11-prikaz\n"
+" --no-xshm ne koristi slike koje se dele sa viĹĄe "
+"korisnika\n"
+" --sync zahtevaj sihronu vezu sa X11 serverom"
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
+msgstr "Grafički posrednik do SANE intefejsa"
+
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+"Ta funkcija omogućava dostup do skenera i drugih uređaja za dobijanje "
+"slika pomoću SANE-a (Sccanner Access Now Easy) interfejsa."
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr "<Toolbox>/File/Acquire/XSane: Izbor uređaja..."
+
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
+msgstr "<Toolbox>/File/Acquire/XSane:"
+
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr "<Toolbox>/Xtns/XSane/Izbor uređaja..."
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
+msgstr "<Toolbox>/Xtns/XSane/"
+
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr "cela strana"
+
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr "uspravno A3"
+
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr "vodoravno A3"
+
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr "uspravno A4"
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr "vodoravno A4"
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr "uspravno A5"
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr "vodoravno A5"
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
+msgstr "13 cm x 18 cm"
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
+msgstr "18 cm x 13 cm"
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
+msgstr "10 cm x 15 cm"
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
+msgstr "15cm x 10 cm"
+
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr "9 cm x 13 cm"
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr "13 cm x 9 cm"
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr "uspravno legal"
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr "vodoravno legal"
+
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr "uspravno letter"
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr "vodoravno letter"
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr "pun opseg"
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr "Dia"
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+msgid "Standard negative"
+msgstr "Standardni negativ"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr "Agfa negativ"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+#, fuzzy
+msgid "Agfa negative XRG 200-4"
+msgstr "Agfa negativ"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+#, fuzzy
+msgid "Agfa negative HDC 100"
+msgstr "Agfa negativ"
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+msgid "Fuji negative"
+msgstr "Fuji negativ"
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr "Kodak negativ"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+msgid "Konica negative"
+msgstr "Konica negativ"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+#, fuzzy
+msgid "Konica negative VX 100"
+msgstr "Konica negativ"
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr ""
+
+#. Sane backend messages
+msgid "flatbed scanner"
+msgstr "ravni skener"
+
+msgid "frame grabber"
+msgstr "okvirni snimač"
+
+msgid "handheld scanner"
+msgstr "ručni skener"
+
+msgid "still camera"
+msgstr "fotoaparat"
+
+msgid "video camera"
+msgstr "videokamera"
+
+msgid "virtual device"
+msgstr "virtualni uređaj"
+
+msgid "Success"
+msgstr "UspeĹĄno"
+
+msgid "Operation not supported"
+msgstr "Operacija nije podrĹžana"
+
+msgid "Operation was cancelled"
+msgstr "Operacija je bila prekinuta"
+
+msgid "Device busy"
+msgstr "Uređaj je zauzet"
+
+msgid "Invalid argument"
+msgstr "PogreĹĄan argument"
+
+msgid "End of file reached"
+msgstr "Dostignut je kraj fajla"
+
+msgid "Document feeder jammed"
+msgstr "Zastoj u magazinu dokumenata"
+
+msgid "Document feeder out of documents"
+msgstr "Magazin dokumenta je prazan"
+
+msgid "Scanner cover is open"
+msgstr "Kućište skenera je otvoreno"
+
+msgid "Error during device I/O"
+msgstr "I/O greška na uređaju"
+
+msgid "Out of memory"
+msgstr "Nedostatak memorije"
+
+msgid "Access to resource has been denied"
+msgstr "Dostup do resursa nije dozvoljen"
+
+#~ msgid ""
+#~ "Use XSane for: SCANning-<Ctrl-s> photoCOPYing-<Ctrl-c> FAXing-<Ctrl-f>"
+#~ msgstr ""
+#~ "Upotrebi XSane za skeniranje <Ctrl-s>, fotokopiranje <Ctrl-c>, faksiranje "
+#~ "<Ctrl-f>"
diff --git a/po/sv.gmo b/po/sv.gmo
new file mode 100644
index 0000000..23f54e9
--- /dev/null
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..32591a1
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,2403 @@
+# Swedish translation for XSane.
+# Copyright (C) 1999-2001 Johan Bengtsson
+# Johan Bengtsson
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: XSANE 0.84\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2001-11-11 21:30+01:00\n"
+"Last-Translator: Johan Bengtsson <johanb@lls.se>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr "se"
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr "(c)"
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "Om"
+
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "Om översättningen"
+
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "auktorisering"
+
+#. WINDOW_LICENSE
+msgid "license"
+msgstr "licens"
+
+#. WINDOW_INFO
+msgid "info"
+msgstr "info"
+
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "massinläsning"
+
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "faxprojekt"
+
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "byt namn pĺ faxsida"
+
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr "infoga ps-fil i fax"
+
+#. WINDOW_MAIL_PROJECT
+msgid "mail project"
+msgstr "brevprojekt"
+
+#. WINDOW_MAIL_RENAME
+msgid "rename mail image"
+msgstr "byt namn pĺ brevbild"
+
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr "infoga fil i brev"
+
+#. WINDOW_PRESET_AREA_RENAME
+msgid "rename preset area"
+msgstr "byt namn pĺ det förinställda omrĺdet"
+
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "inställningar"
+
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "Histogram"
+
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "Gammakurva"
+
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "Standardinställningar"
+
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "Avancerade inställningar"
+
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "Enhetsval"
+
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "Förhandsgranskning"
+
+#. WINDOW_VIEWER
+msgid "Viewer"
+msgstr "Visare"
+
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+msgid "Viewer: select output filename"
+msgstr "Visare: välj utmatningsfilnamn"
+
+#. WINDOW_OCR_OUTPUT_FILENAME
+#, fuzzy
+msgid "Select output filename for OCR text file"
+msgstr "till filnamn"
+
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "till filnamn"
+
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "sane enhetsinställningar"
+
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "hämta enhetsinställningar"
+
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "ändra arbetskatalog"
+
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "välj temporär katalog"
+
+#. WINDOW_SCALE
+#, fuzzy
+msgid "Scale image"
+msgstr "Spara bild"
+
+#. WINDOW_DESPECKLE
+msgid "Despeckle image"
+msgstr "Damma av bild"
+
+#. WINDOW_BLUR
+msgid "Blur image"
+msgstr "Sudda till bild"
+
+#. WINDOW_STORE_MEDIUM
+#, fuzzy
+msgid "Store medium definition"
+msgstr "Byt namn pĺ inställning"
+
+#. MENU_FILE
+msgid "File"
+msgstr "Arkiv"
+
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "Inställningar"
+
+#. MENU_VIEW
+msgid "View"
+msgstr "Visa"
+
+#. MENU_HELP
+msgid "Help"
+msgstr "Hjälp"
+
+#. MENU_FILTERS
+msgid "Filters"
+msgstr "Filter"
+
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "Om XSane"
+
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr "Info"
+
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "Avsluta"
+
+#. MENU_ITEM_SAVE_IMAGE
+msgid "Save image"
+msgstr "Spara bild"
+
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "Stäng"
+
+#. MENU_ITEM_CLONE
+#, fuzzy
+msgid "Clone"
+msgstr "Stäng"
+
+#. MENU_ITEM_SCALE
+#, fuzzy
+msgid "Scale"
+msgstr "Spara"
+
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr "Damma av"
+
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr "Sudda till"
+
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr "Obearbetad bild"
+
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr "Bearbetad bild"
+
+#. BUTTON_START
+msgid "Start"
+msgstr "Starta"
+
+#. BUTTON_OK
+msgid "Ok"
+msgstr "Ok"
+
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr "Acceptera"
+
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr "Accepterar inte"
+
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr "Tillämpa"
+
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr "Avbryt"
+
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr "Reducera"
+
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "Fortsätt pĺ egen risk"
+
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "Bläddra"
+
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr "Skriv över"
+
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr "Lägg till omrĺde"
+
+#. BUTTON_PAGE_DELETE
+msgid "Delete page"
+msgstr "Ta bort sida"
+
+#. BUTTON_PAGE_SHOW
+msgid "Show page"
+msgstr "Visa sida"
+
+#. BUTTON_PAGE_RENAME
+msgid "Rename page"
+msgstr "Byt namn pĺ sida"
+
+#. BUTTON_IMAGE_DELETE
+msgid "Delete image"
+msgstr "Ta bort bild"
+
+#. BUTTON_IMAGE_SHOW
+msgid "Show image"
+msgstr "Visa bild"
+
+#. BUTTON_IMAGE_RENAME
+msgid "Rename image"
+msgstr "Byt namn pĺ bild"
+
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr "Infoga fil"
+
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr "Skapa projekt"
+
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr "Skicka projekt"
+
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr "Ta bort projekt"
+
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr "Lägg till skrivare"
+
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr "Ta bort skrivare"
+
+#. BUTTON_PREVIEW_ACQUIRE
+msgid "Acquire preview"
+msgstr "Hämta förhandsgranskning"
+
+#. BUTTON_PREVIEW_CANCEL
+msgid "Cancel preview"
+msgstr "Avbryt förhandsgranskning"
+
+#. BUTTON_DISCARD_IMAGE
+msgid "Discard image"
+msgstr "Ta bort bild"
+
+#. BUTTON_DISCARD_ALL_IMAGES
+msgid "Discard all images"
+msgstr "Ta bort alla bilder"
+
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr "Avsluta inte"
+
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr ""
+
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr "Högkvalitetsläge"
+
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr "HTML brev"
+
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr "Spara inställningar när programmet avslutas"
+
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr "Överskriftsvarning"
+
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr "Hoppa över existerande filnamn"
+
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr "Reducera 16 bits bild till 8 bitar"
+
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr "Fixerad storlek pĺ huvudfönster"
+
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "Koppla bort förhandsgranskningsgamma"
+
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr "Använd egen färgpalett"
+
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "Automatisk gammainställning"
+
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+msgid "Preselect scanarea"
+msgstr "Förval av inläsningsyta"
+
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr "Autokorrigera färger"
+
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr "POP3 autentisering"
+
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "Letar efter enheter..."
+
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr "Tillgängliga enheter:"
+
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr "XSane-inställningar"
+
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr "XSane-läge"
+
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr "Steg"
+
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr "Typ"
+
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr "Bildläsare och drivrutin:"
+
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr "Tillverkare:"
+
+#. TEXT_MODEL
+msgid "Model:"
+msgstr "Modell:"
+
+#. TEXT_TYPE
+msgid "Type:"
+msgstr "Typ:"
+
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr "Enhet:"
+
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr "Laddad drivrutin:"
+
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr "Sane version:"
+
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr "Senaste värden:"
+
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr "Gamma korrektion av:"
+
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr "bildläsare"
+
+#. TEXT_SOFTWARE_XSANE
+msgid "software (XSane)"
+msgstr "mjukvara (XSane)"
+
+#. TEXT_NONE
+msgid "none"
+msgstr "ingen"
+
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr "Gammainmatningsdjup:"
+
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr "Gammautmatningsdjup:"
+
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr "Bildläsarens utmatningsdjup:"
+
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr "XSane utmatningsformat:"
+
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr "8 bits utmatningsformat:"
+
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr "16 bits utmatningsformat:"
+
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Gimp stöder inte 16 bits färgdjup. \n"
+"Vill du reducera till 8 bits färgdjup?"
+
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"16 bits färgdjup stöds inte för detta utmatnings format.\n"
+"Vill du reducera till 8 bits färgdjup?"
+
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr "Tillstĺnd krävs för"
+
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr "Lösenordstransfer är säker"
+
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr "Drivrutin kräver lösenord i klartext"
+
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr "Användarnamn:"
+
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr "Lösenord:"
+
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr "Ogiltiga parametrar."
+
+#. TEXT_VERSION
+msgid "version:"
+msgstr "version:"
+
+#. TEXT_PACKAGE
+msgid "package"
+msgstr "paket"
+
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr "med GIMP-support"
+
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr "utan GIMP-support"
+
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "kompilerad med GTK-"
+
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr "kompilerad med GIMP-"
+
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr "okänd"
+
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"XSane distribueras under och omfattas av GNU General Public License\n"
+"sĺ som den är publicerad av Free Software Foundation; version 2 eller (om du "
+"vill) nĺgon senare\n"
+"version\n"
+"\n"
+"Detta program distribueras med förhoppningen att det skall komma till nytta, "
+"men\n"
+"UTAN NĹGON GARANTI; utan ens nĺgon underförstĺdd garanti för dess\n"
+"HANDELSBARHETET eller DUGLIGHET FÖR NĹGOT SÄRSKILT ÄNDAMĹL.\n"
+
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr "Epost:"
+
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr "Hemsida:"
+
+#. TEXT_FILE
+msgid "File:"
+msgstr "Fil:"
+
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr "Översättning:"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+"Svensk översättning\n"
+"av Johan Bengtsson\n"
+"E-post: johanb@lls.se\n"
+
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr "0x0: 0KB"
+
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr "Inlästa sidor: "
+
+#. TEXT_MAIL_TEXT
+msgid "Email text:"
+msgstr "Epost text:"
+
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr "Bilagor:"
+
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr "Projekt status:"
+
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr ""
+
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+
+#. TEXT_X_SCALE_FACTOR
+#, fuzzy
+msgid "X-Scale factor:"
+msgstr "Ställ in zoomfaktor"
+
+#. TEXT_Y_SCALE_FACTOR
+#, fuzzy
+msgid "Y-Scale factor:"
+msgstr "Ställ in zoomfaktor"
+
+#. TEXT_DESPECKLE_RADIUS
+#, fuzzy
+msgid "Despeckle radius:"
+msgstr "Damma av"
+
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr "Välj skrivare:"
+
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr "Namn:"
+
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr "Kommando:"
+
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr "Flagga för kopienummer:"
+
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "Upplösning i grafikläge (dpi):"
+
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "Upplösning i svartvit läge (dpi):"
+
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "Upplösning i färgläge (dpi):"
+
+#. TEXT_SETUP_PRINTER_WIDTH
+msgid "Width"
+msgstr "Bredd"
+
+#. TEXT_SETUP_PRINTER_HEIGHT
+msgid "Height"
+msgstr "Höjd"
+
+#. TEXT_SETUP_PRINTER_LEFT
+msgid "Left offset"
+msgstr "Vänster marginal"
+
+#. TEXT_SETUP_PRINTER_BOTTOM
+msgid "Bottom offset"
+msgstr "Marginal frĺn botten"
+
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr "Skrivarens gammavärde:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr "Skrivargamma röd:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr "Skrivargamma grön:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr "Skrivargamma blĺ:"
+
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "Temporär katalog"
+
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "Rättigheter för bildfil"
+
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "Rättigheter för katalog"
+
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr "JPEG-bildkvalitet"
+
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr "PNG bildkompression"
+
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr "Filnamnsräknarens längd"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "TIFF 16 bit bildkompression"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "TIFF 8 bit bildkompression"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr "TIFF lineart-bildkompression"
+
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "Översampling vid förhandsgranskning:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr "Förhandsgranskningsgamma:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr "Förhandsgranskningsgamma röd:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr "Förhandsgranskningsgamma grön:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr "Förhandsgranskningsgamma blĺ:"
+
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "Inställning av högkvalitetsläge:"
+
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr "Automatisk Dokument Matar Modus:"
+
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr "Pipettstorlek vid förhandsgranskning"
+
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "Tröskelvärdes minimum:"
+
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "Tröskelvärdes maximum:"
+
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "Tröskelvärdes multiplikator:"
+
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "Tröskelvärdes offset:"
+
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "Namn pĺ scanläge för svartvit"
+
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "Hjälpfilsvisare (HTML):"
+
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr "Flagga för mottagare:"
+
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr "Flagga för postscriptsfil:"
+
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr "Flagga för normalläge:"
+
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr "Flagga för högkvalitetsläge:"
+
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr "Visare (Postscript):"
+
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr "SMTP server"
+
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr "SMTP port"
+
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr "Frĺn:"
+
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr "Svara till:"
+
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr "POP3 server:"
+
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr "POP3 port:"
+
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr "POP3 användare:"
+
+#. TEXT_SETUP_POP3_PASS
+msgid "POP3 password:"
+msgstr "POP3 lösenord:"
+
+#. TEXT_SETUP_MAIL_VIEWER
+msgid "Viewer (png):"
+msgstr "Visare (png):"
+
+#. TEXT_SETUP_OCR_COMMAND
+#, fuzzy
+msgid "OCR Command:"
+msgstr "Kommando:"
+
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+#, fuzzy
+msgid "Inputfile option:"
+msgstr "Flagga för postscriptsfil:"
+
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+#, fuzzy
+msgid "Outputfile option:"
+msgstr "Flagga för postscriptsfil:"
+
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr "Användare"
+
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr "Grupp"
+
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr "Alla"
+
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr "Spara"
+
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr "Bild"
+
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "Kopiera"
+
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr "Faxa"
+
+#. NOTEBOOK_MAIL_OPTIONS
+msgid "Mail"
+msgstr "Post"
+
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr ""
+
+#. NOTEBOOK_DISPLAY_OPTIONS
+msgid "Display"
+msgstr "Visa"
+
+#. NOTEBOOK_ENHANCE_OPTIONS
+msgid "Enhancement"
+msgstr "Bearbetning"
+
+#. MENU_ITEM_MAIL
+msgid "Email"
+msgstr "Epost"
+
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr "Visa ballonghjälp"
+
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr "Visa förhandsgranskning"
+
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr "Visa histogram"
+
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "Visa gammavärdeskurva"
+
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr "Visa standardinställningar"
+
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr "Visa avancerade inställningar"
+
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr "Inställningar"
+
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr "Längdenhet"
+
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr "millimeter"
+
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr "centimeter"
+
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr "tum"
+
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "Uppdateringspolicy"
+
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "kontinuerlig"
+
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "diskontinuerlig"
+
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "fördröjd"
+
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "Visa upplösningslista"
+
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "Rotera postscript"
+
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr "Spara enhetsinställningar"
+
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr "Hämta enhetsinställningar"
+
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "Byt katalog"
+
+#. MENU_ITEM_XSANE_LICENSE
+msgid "License"
+msgstr "Licens"
+
+#. MENU_ITEM_XSANE_DOC
+msgid "XSane doc"
+msgstr "XSane doc"
+
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr "Drivrutin doc"
+
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr "Tillgängliga drivrutiner"
+
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr "Bildinläsningstips"
+
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr "Problem?"
+
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr "inaktiv"
+
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr "ingen kompression"
+
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr "CCITT 1D Huffmankompression"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr "CCITT Grupp 3 faxkompression"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr "CCITT Grupp 4 faxkompression"
+
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr "JPEG DCT kompression"
+
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr "packbits"
+
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "Standardinställningar (grafik)"
+
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "XSane huvudfönster (grafik)"
+
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "XSane huvudfönster (svartvit->grafik)"
+
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr "(ingen)"
+
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "filändelse"
+
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr "Lägg till utvalt omrĺde i listan"
+
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr "Byt namn pĺ inställning"
+
+#. MENU_ITEM_PRESET_AREA_DELETE
+msgid "Delete definition"
+msgstr "Ta bort inställning"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr "Flytta upp"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr "Flytta ner"
+
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "Läser in"
+
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "Tar emot %s data"
+
+#. PROGRESS_TRANSFERING_DATA
+msgid "Transfering image"
+msgstr "För över bild"
+
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr "Roterar bild"
+
+#. PROGRESS_MIRRORING_DATA
+msgid "Mirroring image"
+msgstr "Speglar bild"
+
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr "Packar bild"
+
+#. PROGRESS_CONVERTING_DATA
+msgid "Converting image"
+msgstr "Konverterar data...."
+
+#. PROGRESS_SAVING_DATA
+msgid "Saving image"
+msgstr "Sparar bild"
+
+#. PROGRESS_CLONING_DATA
+msgid "Cloning image"
+msgstr "Klonar bild"
+
+#. PROGRESS_SCALING_DATA
+#, fuzzy
+msgid "Scaling image"
+msgstr "Sparar bild"
+
+#. PROGRESS_DESPECKLING_DATA
+msgid "Despeckling image"
+msgstr "Damma av bild"
+
+#. PROGRESS_BLURING_DATA
+msgid "Bluring image"
+msgstr "Sudda till bild"
+
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr "Starta inläsning <Ctrl-Enter>"
+
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr "Avbryt inläsning <ESC>"
+
+#. DESC_PREVIEW_ACQUIRE
+msgid "Acquire preview scan <Alt-p>"
+msgstr "Hämta in förhandsgranskning <Alt-p>"
+
+#. DESC_PREVIEW_CANCEL
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "Avbryt förhandsgranskning <Alt-ESC>"
+
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr "Välj typ av källmedium"
+
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr "Värde som adderas till filnamnsräknare efter inläsning"
+
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr "Bläddra efter filnamn"
+
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr "Filnamn för inläst bild"
+
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr ""
+"Typ av bildformat, den passande filändelsen läggs automatiskt till filnamnet"
+
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr "Skriv in namn för faxprojekt"
+
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr "Skriv in nytt namn för faxsida"
+
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr "Skriv in mottagarens telefonnummer eller adress"
+
+#. DESC_MAILPROJECT
+msgid "Enter name of mail project"
+msgstr "Skriv in namn för brevprojekt"
+
+#. DESC_MAILIMAGENAME
+msgid "Enter new name for mail image"
+msgstr "Skriv in nytt namn för brevbild"
+
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr "Skriv in epost adress"
+
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr "Skriv in ämne för epost"
+
+#. DESC_PRESET_AREA_NAME
+msgid "Enter new name for preset area"
+msgstr "Skriv in nytt namn för förinställt omrĺde"
+
+#. DESC_PRINTER_SELECT
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "Välj skrivardefinition <Shift-F1/F2/...>"
+
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr "Ställ in bildläsarupplösning"
+
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "Ställ in bildläsarupplösning x inriktning"
+
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "Ställ in bildläsarupplösning"
+
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr "Ställ in zoomfaktor"
+
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "Ställ in zoomfaktor för x riktning"
+
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "Ställ in zoomfaktor för y riktning"
+
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr "Ställ in antal kopior"
+
+#. DESC_NEGATIVE
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr "Negativ: Invertera färger vid inläsning av negativ <Shift-n>"
+
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr "Ställ in gammavärde"
+
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr "Ställ in gammavärde för den röda komponenten"
+
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr "Ställ in gammavärde för den gröna komponenten"
+
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr "Ställ in gammavärde för den blĺa komponenten"
+
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr "Ställ in ljusstyrka"
+
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr "Ställ in ljusstyrka för den röda komponenten"
+
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr "Ställ in ljusstyrka för den gröna komponenten"
+
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr "Ställ in ljusstyrka för den blĺa komponenten"
+
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr "Ställ in kontrast"
+
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr "Ställ in kontrast för den röda komponenten"
+
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr "Ställ in kontrast för den gröna komponenten"
+
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr "Ställ in kontrast för den blĺa komponenten"
+
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "Ställ in tröskelvärde"
+
+#. DESC_RGB_DEFAULT
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"RGB standardvärde: Sätt bearbetningvärdena för rött, grönt och blĺtt till "
+"standardvärden: <Shift-b>:\n"
+" gamma = 1.0\n"
+" ljus = 0\n"
+" kontrast = 0"
+
+#. DESC_ENH_AUTO
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr "Autojustera gamma, ljus och kontrast <Shift-e>"
+
+#. DESC_ENH_DEFAULT
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"Ställ in standarvärden för bearbetning <Shift-d>:\n"
+"gamma = 1.0\n"
+"ljus = 0\n"
+"kontrast = 0"
+
+#. DESC_ENH_RESTORE
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "Ĺterställ korrigeringsvärden <Shift-r>"
+
+#. DESC_ENH_STORE
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr "Spara de aktiva korrigeringsvärdena <Shift-m>"
+
+#. DESC_HIST_INTENSITY
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "Visa histogram för intensitet/grĺvärde <Alt-i>"
+
+#. DESC_HIST_RED
+msgid "Show histogram of red component <Alt-r>"
+msgstr "Visa histogram för den röda komponenten <Alt-r>"
+
+#. DESC_HIST_GREEN
+msgid "Show histogram of green component <Alt-g>"
+msgstr "Visa histogram för den gröna komponenten <Alt-g>"
+
+#. DESC_HIST_BLUE
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "Visa histogram för den blĺa komponenten <Alt-b>"
+
+#. DESC_HIST_PIXEL
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr "Visa histogram med linjer istället för pixlar <Alt-m>"
+
+#. DESC_HIST_LOG
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "Visa pixelantal som logaritm <Alt-l>"
+
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr "Välj inställning som skall ändras"
+
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr "Definiera ett namn för den här inställningen"
+
+#. DESC_PRINTER_COMMAND
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr "Ange ett kommando att exekveras i kopierings läge (m.a.o. \"lpr -\")"
+
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr "Skriv in flagga för kopienummer"
+
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr ""
+"Upplösning med vilken grafiska bilder skrivs ut och sparas i postscript"
+
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr ""
+"Upplösning med vilken svartvita bilder skrivs ut och sparas i postscript"
+
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr "Upplösning med vilken färgbilder skrivs ut och sparas i postscript"
+
+#. DESC_PRINTER_WIDTH
+msgid "Width of printable area"
+msgstr "Utskriftsbara omrĺdets bredd"
+
+#. DESC_PRINTER_HEIGHT
+msgid "Height of printable area"
+msgstr "Utskriftsbara omrĺdets höjd"
+
+#. DESC_PRINTER_LEFTOFFSET
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr ""
+"Marginal frĺn den vänstra sidan av pappret till det utskrivbara omrĺdet"
+
+#. DESC_PRINTER_BOTTOMOFFSET
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "Marginal frĺn botten av pappret till det utskrivbara omrĺdet"
+
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr "Extra gammavärde för fotokopiering"
+
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr "Extra gammavärde för den röda komponenten vid fotokopiering"
+
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr "Extra gammavärde för den gröna komponeneten vid fotokopiering"
+
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr "Extra gammavärde för den blĺa komponeneten vid fotokopiering"
+
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "Sökväg till temporärkatalogen"
+
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "Bläddra efter temporär katalog"
+
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr ""
+"Kvalitet i procent om bilden sparas som jpeg eller tiff med jpeg-kompression"
+
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr "Kompression om bilden sparas som png"
+
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr "Minimum längd för räknaren i filnamn"
+
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "Kompressionstyp om 16-bits bild sparas som tiff"
+
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "Kompressionstyp om 8-bits bild sparas som tiff"
+
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "Kompressionstyp om grafisk bild sparas som tiff"
+
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr "Spara enhetsberoende inställningar i standardfilen när xsane avslutas"
+
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "Varna innan en befintlig fil skrivs över"
+
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr ""
+"Om filnamnsräknaren automatiskt uppdateras, sĺ hoppas använda nummer över"
+
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr "Spara bild med 8/bits färg om bildläsare skickar bild med 16 bits/färg"
+
+#. DESC_PSFILE_WIDTH
+msgid "Width of paper for postscript files"
+msgstr "Pappersbredd för postscript filer"
+
+#. DESC_PSFILE_HEIGHT
+msgid "Height of paper for postscript files"
+msgstr "Pappershöjd för postscript filer"
+
+#. DESC_PSFILE_LEFTOFFSET
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Marginal frĺn den vänstra sidan av pappret till det utskrivbara omrĺdet för "
+"postscriptfiler"
+
+#. DESC_PSFILE_BOTTOMOFFSET
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+"Marginal frĺn botten av pappret till det utskrivbara omrĺdet för "
+"postscriptfiler"
+
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr ""
+"Använd en fixerad storlek för huvudfönstret, eller ett rullbart fönster med "
+"variabel storlek"
+
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr ""
+"Koppla bort förhandsgranskningsgamma när XSane körs som gimp insticksprogram"
+
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr ""
+"Använd egna färginställningar för förhandsgranskning om visningsläget är 8bpp"
+
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr ""
+"Värde som den kalkylerade förhandsgranskningsupplösningen multipliceras med"
+
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr "Ställ in gammakorrigeringsvärde för förhandsgranskningsbild"
+
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr ""
+"Ställ in gammakorrigeringsvärde för den röda komponenten i "
+"förhandsgranskningsbilden"
+
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr ""
+"Ställ in gammakorrigeringsvärde för den gröna komponenten i "
+"förhandsgranskningsbilden"
+
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr ""
+"Ställ in gammakorrigeringsvärde för den blĺa komponenten i "
+"förhandsgranskningsbilden"
+
+#. DESC_LINEART_MODE
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "Tala om hur XSane skall hantera tröskelvärdesinställningen"
+
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr ""
+"Välj svartvit inläsningsläge. Detta läge används för förhandsgranskning i "
+"grafikläge när överföring frĺn svartvit till grafik är inkopplat"
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "Bildläsarens minimala tröskelnivĺ i %"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "Bildläsarens maximala tröskelnivĺ i %"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Multiplikator som synkroniserar tröskelomfĺngen frĺn bildläsaren och XSane"
+
+#. DESC_PREVIEW_THRESHOLD_OFF
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr "Offset som synkroniserar tröskelomfĺngen frĺn bildläsaren och XSane"
+
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+"Välj inläsningskälla för Automatisk Dokument Matare. Om denna\n"
+"inläsningskälla är vald läser XSane in framtill \"out of paper\" eller "
+"felmeddelande."
+
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr ""
+"Storlek pĺ fyrkanten som används för att fĺ fram pipettfunktionens "
+"standarvärde"
+
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr ""
+"Skriv in det kommando som köras för att visa hjälpfiler, det mĺste vara ett "
+"program som kan visa htmlfiler!"
+
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr "Ändra gammavärde när autoexponeringsknappen används"
+
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr "Välj inläsningsomrĺde efter förhandsgranskningen är klar"
+
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr "Gör färgkorrigering efter förhansgranskingen är klar"
+
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr "Kommando som skall köras i fax läge"
+
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr "Flagga för att specificera mottagare"
+
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr "Flagga för att specificera postscript filer följande"
+
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr "Flagga för att specificera normalläge (lĺg upplösning)"
+
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr "Flagga för att ställa in högkvalitetsläge (hög upplösning)"
+
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr "Kommando som körs för att visa ett fax"
+
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr "Skicka fax med hög vertikal upplösning (196 lpi istället för 98 lpi)"
+
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr "SMTP serverns IP adress eller domän"
+
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr "port som kopplar upp mot SMTP server"
+
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr "skriv in din epost adress"
+
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr "skriv in epost adress för besvarad epost"
+
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr "Autentiserna mot POP3 server innan post skickas"
+
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr "POP3 serverns IP adress eller domän"
+
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr "port som kopplar upp mot POP3 server"
+
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr "användarnamn för POP3 server"
+
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr "lösenord för POP3 server"
+
+#. DESC_MAIL_VIEWER
+msgid "Enter command to be executed to view a mail image"
+msgstr "Kommando som körs för att visa en brevbild"
+
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr "Post sänds i htmlläge, bilder visas direkt"
+
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr ""
+
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr ""
+
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr ""
+
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr "läs"
+
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr "skriv"
+
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr "exekvera"
+
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr "Välj vitpunkt"
+
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr "Välj grĺpunkt"
+
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr "Välj svartpunkt"
+
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr "Använd hela inläsningsomrĺdet"
+
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr "Zooma ut 20%"
+
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr "Zooma in det markerade omrĺdet"
+
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr "Ĺngra senaste zoomningen"
+
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr "Markera det synliga omrĺdet"
+
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr "Automatisk val av inläsningsyta"
+
+#. DESC_DELETE_IMAGES
+msgid "Delete preview image cache"
+msgstr "Ta bort förhandsgransknings bildcache"
+
+#. DESC_PRESET_AREA
+msgid "Preset area"
+msgstr "Förinställt omrĺde"
+
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr "Rotera förhandsgranskning och inläsning"
+
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr ""
+
+#. DESC_VIEWER_CLONE
+msgid "Clone image"
+msgstr "Klona bild"
+
+#. DESC_VIEWER_ROTATE90
+msgid "Rotate image 90 degree"
+msgstr "Rotera bild 90 grader"
+
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr "Rotera bild 180 grader"
+
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr "Rotera bild 270 grader"
+
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr "Spegla bild vid vertikal axel"
+
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr "Spegla bild vid horisontell axel"
+
+#. DESC_VIEWER_ZOOM
+msgid "Zoom image"
+msgstr "Zooma bild"
+
+#. DESC_STORE_MEDIUM
+#, fuzzy
+msgid "Store medium"
+msgstr "Byt namn pĺ inställning"
+
+#. DESC_DELETE_MEDIUM
+#, fuzzy
+msgid "Delete active medium"
+msgstr "Ta bort inställning"
+
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
+msgstr "Kunde inte hitta hemkatalogen:"
+
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "Kunde inte ändra arbetskatalog till:"
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
+msgstr "Filnamnet är för lĺngt"
+
+#. ERR_CREATE_TEMP_FILE
+#, fuzzy
+msgid "Could not create temporary file"
+msgstr "Kunde inte skapa temporär förhandsgranskningsfil"
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
+msgstr "Kunde inte sätta värdet för flaggan"
+
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
+msgstr "Kunde inte erhĺlla värdet för flaggan"
+
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
+msgstr "Fel när värdet för flaggan skulle erhĺllas"
+
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
+msgstr "Kunde inte öppna enhet"
+
+#. ERR_NO_DEVICES
+msgid "no devices available"
+msgstr "inga enheter tillgängliga"
+
+#. ERR_DURING_READ
+msgid "Error during read:"
+msgstr "Fel vid inläsning:"
+
+#. ERR_DURING_SAVE
+msgid "Error during save:"
+msgstr "Fel under spararande:"
+
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
+msgstr "Kan inte hantera bilddjup"
+
+#. ERR_GIMP_BAD_DEPTH
+#, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP kan inte hantera bilddjup med %d bits/färg"
+
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
+msgstr "Kan inte spara i det här filformatet"
+
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
+msgstr "Kunde inte öppna"
+
+#. ERR_CREATE_SECURE_FILE
+#, fuzzy
+msgid "Could not create secure file (may be a link does exist):"
+msgstr "Kunde inte skapa filnamn för förhandsgranskningsfiler"
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
+msgstr "Kunde inte öppna rör för att köra skrivarkommando"
+
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
+msgstr "Kunde inte köra skrivarkommando:"
+
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
+msgstr "Kunde inte starta bildläsare:"
+
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
+msgstr "Kunde inte erhĺlla parametrar:"
+
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
+msgstr "Inget utmatningsformat angivet"
+
+#. ERR_NO_MEM
+msgid "out of memory"
+msgstr "slut pĺ minne"
+
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr "Drivrutin skickar mer bilddata än den definierade i sina parametrar"
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
+msgstr "LIBTIFF rapporterar fel"
+
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
+msgstr "LIBPNG rapporterar fel"
+
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
+msgstr "okänd typ"
+
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
+msgstr "unknown constraint type"
+
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
+msgstr "Kunde inte starta dokumentvisare"
+
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
+msgstr "Kunde inte starta faxvisare:"
+
+#. ERR_FAILED_EXEC_FAX_CMD
+msgid "Failed to execute fax command:"
+msgstr "Kunde inte exekvera faxkommando:"
+
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+msgid "Failed to execute mail image viewer:"
+msgstr "Kunde inte starta brevbildsvisare:"
+
+#. ERR_FAILED_EXEC_OCR_CMD
+#, fuzzy
+msgid "Failed to execute ocr command:"
+msgstr "Kunde inte exekvera faxkommando:"
+
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
+msgstr "fel frameformat"
+
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
+msgstr "kunde inte sätta upplösning"
+
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr "Lösenordsfil (%s) har säkerhetsproblem, använd rättighet x00\n"
+
+#. ERR_ERROR
+msgid "error"
+msgstr "fel"
+
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
+msgstr "Save huvudversionsnummer stämmer inte!"
+
+#. ERR_XSANE_MAJOR_VERSION
+msgid "XSane major version ="
+msgstr "XSane huvudversion ="
+
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
+msgstr "drivrutin huvudversion ="
+
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
+msgstr "***PROGRAMMET AVSLUTAT***"
+
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
+msgstr "Kunde inte allokera bild minne:"
+
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr "Förhandsgranskning kan inte hantera bit-djup"
+
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
+msgstr "Stöd för GIMP saknas"
+
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr "Kunde inte skapa temporär förhandsgranskningsfil"
+
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr "Kunde inte skapa filnamn för förhandsgranskningsfiler"
+
+#. ERR_CREATE_FAX_PROJECT
+#, fuzzy
+msgid "Could not create faxproject"
+msgstr "Skapa projekt"
+
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr "Filnamnsräknaren är överbelastad"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr "varning: alternativet har ingen värdebegränsning"
+
+#. WARN_XSANE_AS_ROOT
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+"Du kan försöka köra XSane som root, men det är FARLIGT!\n"
+"\n"
+"Skicka inte in nĺgra bugrapporter om du\n"
+"har nĺgra problem medan du kör XSane som root:\n"
+"DU FĹR KLARA DIG SJÄLV!"
+
+#. ERR_HEADER_ERROR
+msgid "Error"
+msgstr "Fel"
+
+#. ERR_HEADER_WARNING
+msgid "Warning"
+msgstr "Varning"
+
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "Information"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
+msgstr "Kunde inte skapa fil:"
+
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
+msgstr "Fel under hämtning av enhetsinställningar:"
+
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
+msgstr "är inte en device-rc-fil !!!"
+
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
+msgstr "Kunde inte starta Netscape!"
+
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
+msgstr "Skicka fax: ingen mottagare angiven"
+
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
+msgstr "har skapats för enheten"
+
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
+msgstr "du vill använda den för enhet"
+
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
+msgstr "detta kan orsaka problem!"
+
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr "Det finns %d osparade bilder"
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "Fil %s existerar redan"
+
+#. ERR_FILE_NOT_EXISTS
+#, c-format
+msgid "File %s does not exist"
+msgstr "Fil %s existerar inte"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, c-format
+msgid "File %s is not a postscript file"
+msgstr "Fil %s är inte en postskriptfil"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "%d-bit utmatningsformat som inte stöds: %s"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr "visarbild sparas inte"
+
+#. TEXT_USAGE
+msgid "Usage:"
+msgstr "Användning:"
+
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr "[FLAGGA]... [ENHET]"
+
+#. TEXT_HELP
+#, fuzzy
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
+msgstr ""
+"Startar grafiskt användargränssnitt till SANE (Scanner Access Now Easy) "
+"enheter.\n"
+"\n"
+"Formatet för [ENHET] är drivrutinsnamn:enhetsfil (m.a.o. umax:/dev/scanner). "
+"\n"
+"[FLAGGA] ... kan vara en kombination av följande flaggor:\n"
+"-h, --help visa detta hjälpmeddelande och avsluta\n"
+"-v, --version visa versionsinformation\n"
+"-l, --licens visa licensinfomation\n"
+"\n"
+"-d, --device-settings file hämta enhetsinställningar frĺn en fil (utan "
+"\".drc\")\n"
+"\n"
+"-s, --scan starta med bildläsarläge aktivt\n"
+"-c, --copy starta med kopiatorläge aktivt\n"
+"-f, --fax starta med faxläge aktivt\n"
+" -m, --mail starta med postläge aktivt\n"
+"-n, --no-mode-selection visa inte meny för XSane lägesval\n"
+"\n"
+"-F, --Fixed fast storlek pĺ huvudfönster (skriv över "
+"preferensvärde)\n"
+"-R, --Resizeable justerbart fönster med rullningslist (skriv "
+"över preferensvärde)\n"
+"\n"
+" -p, --print-filenames skriv ut filnamn skapade av XSane\n"
+" -N, --force-filename name sätt filnamn och ignorera filnamn som "
+"användaren väljer\n"
+"--display X11-display omdirigera utmatning till X11-display\n"
+"--no-xshm använd inte delat minne\n"
+"--sync kalla pĺ en synkron förbindelse med X11 servern"
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
+msgstr "Grafiskt interface för SANE bildläsarprogram"
+
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+"Den här funktionen ger tillgĺng till bildläsare och andra inläsningsenheter "
+"genom SANE (Scanner Access Now Easy) gränssnittet."
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr "<Toolbox>/File/Acquire/XSane: Enhets dialog..."
+
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
+msgstr "<Toolbox>/File/Acquire/XSane: "
+
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr "<Toolbox>/Xtns/XSane/Enhets dialog..."
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
+msgstr "<Toolbox>/Xtns/XSane/"
+
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr "full storlek"
+
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr "DIN A3 portr."
+
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr "DIN A3 landsk."
+
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr "DIN A4 portr."
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr "DIN A4 landsk."
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr "DIN A5 portr."
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr "DIN A5 landsk."
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
+msgstr "13cm x 18cm"
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
+msgstr "18cm x 13cm"
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
+msgstr "10cm x 15cm"
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
+msgstr "15cm x 10cm"
+
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr "9cm x 13cm"
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr "13cm x 9cm"
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr "legal portr."
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr "legal landsk."
+
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr "letter portr."
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr "letter landsk."
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+#, fuzzy
+msgid "Standard negative"
+msgstr "Standardinställningar"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+#, fuzzy
+msgid "Fuji negative"
+msgstr "inaktiv"
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+#, fuzzy
+msgid "Konica negative"
+msgstr "inaktiv"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+#, fuzzy
+msgid "Konica negative VX 100"
+msgstr "inaktiv"
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr ""
+
+#. Sane backend messages
+msgid "flatbed scanner"
+msgstr "flatbäddsbildläsare"
+
+msgid "frame grabber"
+msgstr "frame grabber"
+
+msgid "handheld scanner"
+msgstr "handhĺllen bildläsare"
+
+msgid "still camera"
+msgstr "stillbildskamera"
+
+msgid "video camera"
+msgstr "videokamera"
+
+msgid "virtual device"
+msgstr "virtuell enhet"
+
+msgid "Success"
+msgstr "Operationen lyckades"
+
+msgid "Operation not supported"
+msgstr "Denna operation stöds inte"
+
+msgid "Operation was cancelled"
+msgstr "Operationen inställd"
+
+msgid "Device busy"
+msgstr "Enheten upptagen"
+
+msgid "Invalid argument"
+msgstr "Felaktigt argument"
+
+msgid "End of file reached"
+msgstr "Slutet pĺ filen är nĺtt"
+
+msgid "Document feeder jammed"
+msgstr "Dokumentmataren har hängt sig"
+
+msgid "Document feeder out of documents"
+msgstr "Dokumentmataren har slut pĺ dokument"
+
+msgid "Scanner cover is open"
+msgstr "Bildläsarlocket är öppet"
+
+msgid "Error during device I/O"
+msgstr "Fel under enhets I/O"
+
+msgid "Out of memory"
+msgstr "Slut pĺ minne"
+
+msgid "Access to resource has been denied"
+msgstr "Tillgĺng till resurs nekas"
+
+#, fuzzy
+#~ msgid "Store Medium definition"
+#~ msgstr "Ta bort inställning"
+
+#~ msgid ""
+#~ "Use XSane for: SCANning-<Ctrl-s> photoCOPYing-<Ctrl-c> FAXing-<Ctrl-f>"
+#~ msgstr ""
+#~ "Läs in bilder-<Ctrl-s>, faxa-<Ctrl-f> och gör fotokopior-<Ctrl-c> med "
+#~ "XSane..."
+
+#~ msgid "Width of paper for postscript"
+#~ msgstr "Pappersbredd för postscript"
+
+#~ msgid "Height of paper for postscript"
+#~ msgstr "Pappershöjd för postscript"
+
+#~ msgid "Left offset for postscript"
+#~ msgstr "Vänster marginal för postscript"
+
+#~ msgid "Bottom offset for postscript"
+#~ msgstr "Marginal frĺn botten för postscript"
+
+#~ msgid "Scan"
+#~ msgstr "Läs in"
+
+#~ msgid "Failed to execute mail command:"
+#~ msgstr "Kunde inte exekvera postkommando:"
diff --git a/po/tr.gmo b/po/tr.gmo
new file mode 100644
index 0000000..f22436b
--- /dev/null
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 0000000..3d8607b
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,2351 @@
+# Turkish Translation for XSane
+# TOGAN MUFTUOGLU <toganm@yahoo.com>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: XSANE 0.84\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: 2002-01-15 09:44GMT+02:00\n"
+"Last-Translator: Togan Muftuoglu <toganm@yahoo.com>\n"
+"Language-Team: Turkish <kde-i18n-tr@kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-9\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.5\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr "tr"
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr "(c)"
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr "Hakkýnda"
+
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr "Tercüme hakkýnda"
+
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr "Otorizasyon"
+
+#. WINDOW_LICENSE
+msgid "license"
+msgstr "lisans"
+
+#. WINDOW_INFO
+msgid "info"
+msgstr "bilgi"
+
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr "sýralý tarama"
+
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr "fax projesi"
+
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr "fax sayfasýný yeniden isimlendir"
+
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr "ps-dosyasýný faxa yerleţtirin"
+
+#. WINDOW_MAIL_PROJECT
+msgid "mail project"
+msgstr "e-posta projesi"
+
+#. WINDOW_MAIL_RENAME
+msgid "rename mail image"
+msgstr "e-posta resmini yeniden isimlendir"
+
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr "dosyayý e-postaya yerleţtirin"
+
+#. WINDOW_PRESET_AREA_RENAME
+msgid "rename preset area"
+msgstr "Önceden belirlenmiţ alaný yeniden isimlendir"
+
+#. WINDOW_SETUP
+msgid "setup"
+msgstr "ayarlar"
+
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr "Histogram"
+
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr "Gamma eđrisi"
+
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr "Standart seçenekler"
+
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr "Geliţmiţ seçenekler"
+
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr "aygýt seçimi"
+
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr "Önizleme"
+
+#. WINDOW_VIEWER
+msgid "Viewer"
+msgstr "Gösterici"
+
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+msgid "Viewer: select output filename"
+msgstr "Gösterici: çýktý dosya adýný seçiniz"
+
+#. WINDOW_OCR_OUTPUT_FILENAME
+msgid "Select output filename for OCR text file"
+msgstr "OCR metin çýktý dosya adýný seçiniz"
+
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr "çýktý dosya adýný seçiniz"
+
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr "aygýt ayarlarýný sakla"
+
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr "aygýt ayarlarýný yükle"
+
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr "çalýţma dizinini deđiţtir"
+
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr "geçici dizini seçin"
+
+#. WINDOW_SCALE
+msgid "Scale image"
+msgstr "Resmi ölçülendir"
+
+#. WINDOW_DESPECKLE
+msgid "Despeckle image"
+msgstr "Resmi beneksizleţtir"
+
+#. WINDOW_BLUR
+msgid "Blur image"
+msgstr "Resmi bulanýklaţtýr"
+
+#. WINDOW_STORE_MEDIUM
+msgid "Store medium definition"
+msgstr "Ortam tanýmýný sakla"
+
+#. MENU_FILE
+msgid "File"
+msgstr "Dosya"
+
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr "Ayarlar..."
+
+#. MENU_VIEW
+msgid "View"
+msgstr "Ýzleme"
+
+#. MENU_HELP
+msgid "Help"
+msgstr "Yardým"
+
+#. MENU_FILTERS
+msgid "Filters"
+msgstr "Filtreler"
+
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr "Xsane hakkýnda"
+
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr "Bilgi"
+
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr "Çýk"
+
+#. MENU_ITEM_SAVE_IMAGE
+msgid "Save image"
+msgstr "Resmi kaydet"
+
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr "Kapat"
+
+#. MENU_ITEM_CLONE
+msgid "Clone"
+msgstr "Klonla"
+
+#. MENU_ITEM_SCALE
+msgid "Scale"
+msgstr "Boyutlandýrma"
+
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr "Beneksizleţtirme"
+
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr "Bulanýklaţtýrma"
+
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr "Ham resim"
+
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr "Geliţmiţ resim"
+
+#. BUTTON_START
+msgid "Start"
+msgstr "Baţla"
+
+#. BUTTON_OK
+msgid "Ok"
+msgstr "Tamam"
+
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr "Kabul et"
+
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr "Reddet"
+
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr "Uygula"
+
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr "Vazgeç"
+
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr "Azalt"
+
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr "Kendi riskiniz altýnda devam edin"
+
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr "Gözat"
+
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr "Üzerine yaz"
+
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr "Bölge ekle"
+
+#. BUTTON_PAGE_DELETE
+msgid "Delete page"
+msgstr "Sayfayý sil"
+
+#. BUTTON_PAGE_SHOW
+msgid "Show page"
+msgstr "Sayfayý göster"
+
+#. BUTTON_PAGE_RENAME
+msgid "Rename page"
+msgstr "Sayfayý yeniden isimlendir"
+
+#. BUTTON_IMAGE_DELETE
+msgid "Delete image"
+msgstr "Resmi sil"
+
+#. BUTTON_IMAGE_SHOW
+msgid "Show image"
+msgstr "Resmi göster"
+
+#. BUTTON_IMAGE_RENAME
+msgid "Rename image"
+msgstr "Resmi yeniden isimlendir"
+
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr "Dosya koy"
+
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr "Proje yarat"
+
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr "Projeyi gönder"
+
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr "Projeyi sil"
+
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr "Yazýcý ekle"
+
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr "Yazýcý sil"
+
+#. BUTTON_PREVIEW_ACQUIRE
+msgid "Acquire preview"
+msgstr "Önizleme iste"
+
+#. BUTTON_PREVIEW_CANCEL
+msgid "Cancel preview"
+msgstr "Önizlemeyi iptal et"
+
+#. BUTTON_DISCARD_IMAGE
+msgid "Discard image"
+msgstr "Resmi sil"
+
+#. BUTTON_DISCARD_ALL_IMAGES
+msgid "Discard all images"
+msgstr "Tüm resimleri sil"
+
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr "Kapatma"
+
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr "Boyutlarý tut"
+
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr "Fine modu"
+
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr "HTML e-posta"
+
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr "Aygýt tercihlerini sakla ve çýk"
+
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr "Üzerine yazma uyarýsý"
+
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr "Varolan dosya isimlerini atla"
+
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr "16 bit resmi 8 bite indirge"
+
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr "Ana pencere boyutu sabitlendi"
+
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr "Gimp önizleme gammasý pasif kýlýndý"
+
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr "Özel renk tablosu kullan"
+
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr "Gamma otomatik düzenlensin"
+
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+msgid "Preselect scanarea"
+msgstr "Tarama alanýný önceden seç"
+
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr "Renkleri otomatik düzelt"
+
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr "POP3 otorizasyon"
+
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr "aygýtlarý arýyor"
+
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr "Varolan aygýtlar"
+
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr "Xsane seçenekleri"
+
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr "Xsane modu"
+
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr "Sayaç"
+
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr "Tip"
+
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr "Tarayýcý ve sürücü:"
+
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr "Üretici:"
+
+#. TEXT_MODEL
+msgid "Model:"
+msgstr "Model:"
+
+#. TEXT_TYPE
+msgid "Type:"
+msgstr "Tip:"
+
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr "Aygýt:"
+
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr "Yüklenen sürücü:"
+
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr "Sane sürümü:"
+
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr "Son deđerler:"
+
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr "Gamma düzeltmesi:"
+
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr "tarayýcý"
+
+#. TEXT_SOFTWARE_XSANE
+msgid "software (XSane)"
+msgstr "yazýlým (Xsane)"
+
+#. TEXT_NONE
+msgid "none"
+msgstr "hiçbiri"
+
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr "Gamma giriţ derinliđi"
+
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr "Gamma çýkýţ derinliđi"
+
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr "Tarayýcý çýktý derinliđi"
+
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr "Xsane çýktý formatlarý: "
+
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr "8 bit çýktý formatlarý:"
+
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr "16 bit formatlarý:"
+
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Gimp 16 bit/renk derinliđini desteklemiyor.\n"
+"Derinliđi 8bit/renk haline getirmek istermisiniz ?"
+
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+"Bu çýktý formatý için 16 bit/renk derinliđi desteklenmiyor\n"
+"Derinliđi 8 bit/renk olarak deđiţtirmek istermisiniz ?"
+
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr "Otorizayon gerekli :"
+
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr "Ţifre yollanmasý güvenli "
+
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr "Sürücü düz-metin ţifre istiyor"
+
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr "Kullanýcý adý:"
+
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr "Ţifre:"
+
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr "Geçersiz parametreler"
+
+#. TEXT_VERSION
+msgid "version:"
+msgstr "sürüm:"
+
+#. TEXT_PACKAGE
+msgid "package"
+msgstr "paket"
+
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr "GIMP desteđi ile"
+
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr "GIMP desteđi olmadan"
+
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr "GTK- ile derlenmiţtir"
+
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr "GIMP- ile derlenmiţtir"
+
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr "bilinmiyor"
+
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+"XSane, Free Software Foundation GNU Genel Kamu Lisansý, \n"
+"lisansýn 2. sürümüne göre veya (sizin tercihiniz olarak)daha sonraki bir \n"
+"bir sürümü, altýnda dađýtýlmaktadýr.\n"
+"\n"
+"Bu program faydalý olacađý umuduyla dađýtýlmaktadýr, ama\n"
+"HÝÇBÝR GARANTÝ ÝÇERMEZ; hatta HERHANGÝ BÝR AMACA \n"
+"UYGUNLUĐU VEYA ÜRÜNLEŢTÝRÝLMESÝNÝ bile.\n"
+
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr "Eposta:"
+
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr "Web adresi"
+
+#. TEXT_FILE
+msgid "File:"
+msgstr "Dosya"
+
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr "Tercüme:"
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+"Türkçe'ye çevrim\n"
+"Togan Müftüođlu\n"
+"E-posta: toganm@yahoo.com\n"
+
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr "0x0:0KB"
+
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr "Taranan sayfalar: "
+
+#. TEXT_MAIL_TEXT
+msgid "Email text:"
+msgstr "Eposta metni"
+
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr "Ekler"
+
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr "Proje durumu"
+
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr "Ortam ismi"
+
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+"Boyut %d x %d piksel, %d bit/color, %d renkler, %1.0f dpi x %1.0f dpi, %1.1f "
+"%s"
+
+#. TEXT_X_SCALE_FACTOR
+msgid "X-Scale factor:"
+msgstr "X ölçek çarpaný"
+
+#. TEXT_Y_SCALE_FACTOR
+msgid "Y-Scale factor:"
+msgstr "Y ökçek çarpanýný ayarla"
+
+#. TEXT_DESPECKLE_RADIUS
+msgid "Despeckle radius:"
+msgstr "Beneksizleţtirme yarýçapý"
+
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr "Bulanýklaţtýrma yarýçapý"
+
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr "Yazýcý seçimi:"
+
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr "Adý:"
+
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr "Komut:"
+
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr "Kopyalanacak sayý seçeneđi:"
+
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr "Lineart çözünürlük (dpi):"
+
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr "Grayscale çözünürlük (dpi):"
+
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr "Renkli çözünürlük (dpi):"
+
+#. TEXT_SETUP_PRINTER_WIDTH
+msgid "Width"
+msgstr "En "
+
+#. TEXT_SETUP_PRINTER_HEIGHT
+msgid "Height"
+msgstr "Yükseklik"
+
+#. TEXT_SETUP_PRINTER_LEFT
+msgid "Left offset"
+msgstr "Sol boţluk "
+
+#. TEXT_SETUP_PRINTER_BOTTOM
+msgid "Bottom offset"
+msgstr "Alt boţluk "
+
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr "Yazýcý gamma deđeri"
+
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr "Yazýcý kýrmýzý gamma: "
+
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr "Yazýcý mavi gamma:"
+
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr "Yazýcý mavi gamma:"
+
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr "Geçici dizin"
+
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr "Resim-dosya izinleri"
+
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr "Dizin izinleri"
+
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr "JPEG resim kalitesi"
+
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr "PNG resim sýkýţtýrmasý"
+
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr "Dosya adý sayac uzunluđu"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr "TIFF 16 bit resim sýkýţtýrmasý"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr "TIFF 8 bit resim sýkýţtýrmasý"
+
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr "TIFF lineart resim sýkýţtýrmasý"
+
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr "Önizleme örnekleme:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr "Önizleme gamma:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr "Önizleme kýrmýzý gamma:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr "Önizleme yeţil gamma:"
+
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr "Önizleme mavi gamma"
+
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr "Threshold seçeneđi"
+
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr "Otomatik Doküman Besleyici modu"
+
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr "Önizleme pipette aralýđý:"
+
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr "Threshold minimum:"
+
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr "Threshold maksimum:"
+
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr "Threshold çarpaný:"
+
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr "Threshold boţluđu:"
+
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr "Grayscale tarama modu komutu:"
+
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr "Yardým dosyasý göstericisi (HTML):"
+
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr "Alýcý seçeneđi:"
+
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr "Postscript dosya seçeneđi"
+
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr "Normal mod seçeneđi"
+
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr "Hassas mod seçeneđi"
+
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr "Ýzleyici (Postscript):"
+
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr "SMTP sunucu"
+
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr "SMTP portu"
+
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr "Kimden"
+
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr "Yanýt Adresi"
+
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr "POP3 Sunucu"
+
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr "POP3 Portu"
+
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr "POP3 kullanýcý:"
+
+#. TEXT_SETUP_POP3_PASS
+msgid "POP3 password:"
+msgstr "POP3 Ţifre:"
+
+#. TEXT_SETUP_MAIL_VIEWER
+msgid "Viewer (png):"
+msgstr "Gösterici (png):"
+
+#. TEXT_SETUP_OCR_COMMAND
+msgid "OCR Command:"
+msgstr "OCR Komutu:"
+
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+msgid "Inputfile option:"
+msgstr "Giren dosya seçeneđi"
+
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+msgid "Outputfile option:"
+msgstr "Çýktý dosya seçeneđi"
+
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr "kullanýcý"
+
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr "grup"
+
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr "hepsi"
+
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr "Kaydet"
+
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr "Resim"
+
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr "Kopyala"
+
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr "Fax"
+
+#. NOTEBOOK_MAIL_OPTIONS
+msgid "Mail"
+msgstr "E-posta:"
+
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr "OCR"
+
+#. NOTEBOOK_DISPLAY_OPTIONS
+msgid "Display"
+msgstr "Göster"
+
+#. NOTEBOOK_ENHANCE_OPTIONS
+msgid "Enhancement"
+msgstr "Geliţtirme "
+
+#. MENU_ITEM_MAIL
+msgid "Email"
+msgstr "E-posta:"
+
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr "Ýpuçlarýný göster"
+
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr "Önizlemeyi göster"
+
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr "Histogramý göster"
+
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr "Gamma eđrisini göster"
+
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr "Standart seçenekleri göster"
+
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr "Geliţmiţ özellikleri göster"
+
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr "Ayarlar"
+
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr "Uzunluk birimi"
+
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr "milimetre"
+
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr "santimetre"
+
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr "inç"
+
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr "Güncelleme yöntemi"
+
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr "sürekli"
+
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr "süreksiz"
+
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr "gecikmeli"
+
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr "Çözünürlük listesini göster"
+
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr "Postscripti döndür"
+
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr "Aygýt ayarlarýný sakla "
+
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr "Aygýt ayarlarýný yükle"
+
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr "Dizin deđiţtir"
+
+#. MENU_ITEM_XSANE_LICENSE
+msgid "License"
+msgstr "lisans"
+
+#. MENU_ITEM_XSANE_DOC
+msgid "XSane doc"
+msgstr "Xsane dökümaný"
+
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr "Sürücü dokümaný"
+
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr "varolan sürücüler"
+
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr "Tarama ipuçlarý"
+
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr "Problemler ?"
+
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr "pasif"
+
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr "sýkýţtýrma yok"
+
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr "CCITT 1D Huffman sýkýţtýrmasý"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr "CCITT Grup 3 Faks sýkýţtýrmasý"
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr "CCITT Grup 4 Faks sýkýţtýrmasý"
+
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr "JPEG DCT sýkýţtýrmasý"
+
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr "bitleri paketle"
+
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr "Standart seçenekleri penceresi (lineart)"
+
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr "XSane ana pencere (lineart)"
+
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr "Xsane ana pencere (grayscale->lineart)"
+
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr "(hiçbiri)"
+
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr "dosya son takýsý"
+
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr "Seçileni listeye ekle"
+
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr "Tenýmý yeniden isimlendir"
+
+#. MENU_ITEM_PRESET_AREA_DELETE
+msgid "Delete definition"
+msgstr "Tanýmý silin"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr "Yukarý taţý"
+
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr "Aţađý taţý"
+
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr "tarýyor"
+
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr "%s data alýyor"
+
+#. PROGRESS_TRANSFERING_DATA
+msgid "Transfering image"
+msgstr "Resmi aktarýyor"
+
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr "Resmi döndürüyor"
+
+#. PROGRESS_MIRRORING_DATA
+msgid "Mirroring image"
+msgstr "Resmin ayna görüntüsünü oluţtur"
+
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr "Resmi sýkýţtýrýyor"
+
+#. PROGRESS_CONVERTING_DATA
+msgid "Converting image"
+msgstr "Resim dönüţtürülüyor "
+
+#. PROGRESS_SAVING_DATA
+msgid "Saving image"
+msgstr "Resim saklanýyor"
+
+#. PROGRESS_CLONING_DATA
+msgid "Cloning image"
+msgstr "Resim çođaltýlýyor"
+
+#. PROGRESS_SCALING_DATA
+msgid "Scaling image"
+msgstr "Resim boyutlandýrýlýyor"
+
+#. PROGRESS_DESPECKLING_DATA
+msgid "Despeckling image"
+msgstr "Resmi beneksizleţtir"
+
+#. PROGRESS_BLURING_DATA
+msgid "Bluring image"
+msgstr "Resmi bulanýklaţtýr"
+
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr "Taramayý baţlat <Ctrl-Enter>"
+
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr "Taramayý iptal et <ESC>"
+
+#. DESC_PREVIEW_ACQUIRE
+msgid "Acquire preview scan <Alt-p>"
+msgstr "Öntarama al <Alt-p>"
+
+#. DESC_PREVIEW_CANCEL
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr "Önizlemeyi iptal et <Alt-ESC>"
+
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+"sakla-<Ctrl-s>, izle-<Ctrl-v>, fotokopi-<Ctrl-c>, fax-<Ctrl-f> "
+"veyamail-<Ctrl-m>"
+
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr "Kaynak ortam tipini seçin"
+
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr "Taramadan sonra dosyaadýsayacýna eklenen deđer"
+
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr "resim dosyasý ara"
+
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr "Taranan resim için ad"
+
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr ""
+"Resim formatýnýn tipi, uygun olan dosya soneki otomatik olarakdosyaya eklenir"
+
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr "faks projesinin adýný girin"
+
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr "Faks sayfasý için ad girin"
+
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr "Alýcýnýn telefon numrasýný veya adresini girin"
+
+#. DESC_MAILPROJECT
+msgid "Enter name of mail project"
+msgstr "E-Posta projesinin adýný girin"
+
+#. DESC_MAILIMAGENAME
+msgid "Enter new name for mail image"
+msgstr "E-Posta resmi için yeni isimgirin"
+
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr "E-posta adresi girin"
+
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr "E-Posta konusu girin"
+
+#. DESC_PRESET_AREA_NAME
+msgid "Enter new name for preset area"
+msgstr "Öncden belirlenen alan için yeni isim gir"
+
+#. DESC_PRINTER_SELECT
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr "Yazýcý tanýmýný seçin <Shift-F1/F2/...>"
+
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr "Tarama çözünürlüđünü ayarla"
+
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr "X yönü için tarama çözünürlüđünü ayarla"
+
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr "Y yönü için taramna çözünürlüđünü ayarla"
+
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr "Zum çarpanýný ayarla"
+
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr "X yönü için Zum çarpanýný ayarla"
+
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr "Y yönü için zum çarpanýný ayarla"
+
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr "Kopya sayýsýný belirle"
+
+#. DESC_NEGATIVE
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr "Negatif: negatifleri taramak için renkleri ters çevir<Shift-n>"
+
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr "Gamma deđerini belirle"
+
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr "Kýrmýzý bileţenlerin gamma deđerini belirle"
+
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr "Yeţil bileţenlerin gamma deđerini belirle"
+
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr "mavi bileţenlerin gamma deđerini belirle"
+
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr "Parlaklýk ayarý"
+
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr "Kýrmýzý bileţen için parlaklýk ayarý"
+
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr "Yeţil bileţen için parlaklýk ayarý"
+
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr "Mavi bileţen için parlaklýk ayarý"
+
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr "Kontrastý ayarla"
+
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr "Kýrmýzý bileţen için kontrastý belirle"
+
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr "Yeţil bileţen için kontrastý belirle"
+
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr "Mavi bileţen için kontrastý belirle"
+
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr "Threshold ayarý"
+
+#. DESC_RGB_DEFAULT
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+"RGB Öntanýmý: kýrmýzý,yeţil ve mavi için geliţtirme deđerlerini öntanýma "
+"ayarladeđerler<Shift-b>:\n"
+" gamma =1.0\n"
+" parlaklýk =0\n"
+" kontrast =0"
+
+#. DESC_ENH_AUTO
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr ""
+"Seçilen alana bađlý olarak gamma, ýţýk ve kontrastý otomatik ayarla<Shift-e>"
+
+#. DESC_ENH_DEFAULT
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+"Geliţmiţ deđerleri ayarla<Shift-d>:\n"
+"gamma =1.0\n"
+"parlaklýk =0\n"
+"kontrast =0n"
+
+#. DESC_ENH_RESTORE
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr "Tercihlerden geliţtirilmiţ deđerleri geri yükle <Shift-r>"
+
+#. DESC_ENH_STORE
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr "Etkin geliţtirilmiţ deđerleri tercihlere yükle <Shift-m>"
+
+#. DESC_HIST_INTENSITY
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr "Yođunluk/gri histogramýný göster<Alt-i>"
+
+#. DESC_HIST_RED
+msgid "Show histogram of red component <Alt-r>"
+msgstr "Kýrmýzý bileţenin histogramýný göster<Alt-r>"
+
+#. DESC_HIST_GREEN
+msgid "Show histogram of green component <Alt-g>"
+msgstr "Yeţil bileţenin histogramýný göster<Alt-g>"
+
+#. DESC_HIST_BLUE
+msgid "Show histogram of blue component <Alt-b>"
+msgstr "Mavi bileţenin histogramýný göster<Alt-b>"
+
+#. DESC_HIST_PIXEL
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr "Histogramý, pikseller yerine çizgilerle göster<Alt-m>"
+
+#. DESC_HIST_LOG
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr "Piksel sayýsýnýn logaritmasýný göster<Alt-l>"
+
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr "Deđiţtirilecek tanýmý seçin"
+
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr "Bu tanýmýn seçimi için bir isim belirleyin"
+
+#. DESC_PRINTER_COMMAND
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr "Kopyalama modunda çalýţtýrýlacak komutu girin (örn. \"lpr \")"
+
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr "Kopya sayýlarý seçeneđini girin"
+
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr ""
+"Lineart resimlerin yazdýrýlmasý ve postscript de saklanmasý için çözünürlük"
+
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr ""
+"Grayscale resimlerin yazdýrýlmasý ve postscript de saklanmasý için çözünürlük"
+
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr ""
+"Renkli resimlerin yazdýrýlmasý ve postscript de saklanmasý için çözünürlük"
+
+#. DESC_PRINTER_WIDTH
+msgid "Width of printable area"
+msgstr "Basýlacak alanýn geniţliđi"
+
+#. DESC_PRINTER_HEIGHT
+msgid "Height of printable area"
+msgstr "Basýlacak alanýn yüksekliđi"
+
+#. DESC_PRINTER_LEFTOFFSET
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr "Kađýdýn sol boţluđundan basýlacak alan "
+
+#. DESC_PRINTER_BOTTOMOFFSET
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr "Kađýdýn alt boţluđundan basýlacak alan "
+
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr "Fotokopi için ilave gamma deđeri"
+
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr "Fotokopi için kýrmýzý bileţenin ilave gamma deđeri"
+
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr "Fotokopi için yeţil bileţenin ilave gamma deđeri"
+
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr "Fotokopi için mavi bileţenin ilave gamma deđeri"
+
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr "Geçici dizin yolu"
+
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr "Geçici dizine göz at"
+
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr ""
+"Eđer jpeg veya jpeg sýkýţtýrmalý tiff olarak saklanacaksa, resmin yüzde "
+"olarak kalitesi"
+
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr "Eđer resim png olarak saklanýrsa sýkýţtýrma"
+
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr "Dosya adý sayacýnýn mimum uzunluđu"
+
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr "Eđer 16 bit resim tiff olarak saklanacaksa sýkýţtýrma tipi"
+
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr "Eđer 8 bit resim tiff olarak saklanacaksa sýkýţtýrma tipi"
+
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr "Eđer lineart resim tiff olarak saklanacaksa sýkýţtýrma tipi"
+
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr "Xsane'den çýkarken öntanýmlý dosyadaki aygýt bađýmlý tercihleri sakla"
+
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr "Varolan dosyanýn üzerine yazarken uyar"
+
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr ""
+"Eđer dosya adý sayacý otomatik olarak artýrýlýyorsa, kullanýlan rakamlar "
+"atlanýr"
+
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr ""
+"Eđer tarayýcý resmi 16 bit/renk olarak yollarsa, resmi 8 bit/renk olarak "
+"sakla"
+
+#. DESC_PSFILE_WIDTH
+msgid "Width of paper for postscript files"
+msgstr "Postscript dosyalar için kađýt eni "
+
+#. DESC_PSFILE_HEIGHT
+msgid "Height of paper for postscript files"
+msgstr "Postscript dosyalar için kađýt boyu "
+
+#. DESC_PSFILE_LEFTOFFSET
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr "Postsrcipt dosyalar için kullanýlabilen alana kađýdýn sol boţluk arasý"
+
+#. DESC_PSFILE_BOTTOMOFFSET
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr "Postsrcipt dosyalar için kullanýlabilen alana kađýdýn alt boţluk arasý"
+
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr ""
+"Sabit ana pencere veya yeniden boyutlandýrýlabilir scrolled ana pencere "
+"kullan"
+
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr "Xsane gimp plugini olarak çalýţtýrýlýrsa önizleme gammasýný iptal et"
+
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr ""
+"Eđer ekran derinliđi 8 bpp ise öngösterim için kiţisel renk tablosunu kullan"
+
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr "Hesaplanmýţ önizleme çözünürlüđünün çarpýldýđý deđer "
+
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr "Öngösterim resmi için gamma düzeltme deđerini ayarla"
+
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr ""
+"Öngösterim resminin kýrmýzý bileţeni için gamma düzeltme deđerini ayarla"
+
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr "Öngösterim resminin yeţil bileţeni için gamma düzeltme deđerini ayarla"
+
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr "Öngösterim resminin mavi bileţeni için gamma düzeltme deđerini ayarla"
+
+#. DESC_LINEART_MODE
+msgid "Define the way XSane shall handle the threshold option"
+msgstr "Xsane'nin threshold seçeneđini nasýl kullanacađýný belirleyin"
+
+# f,uzzy
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr ""
+"Grayscaleden lineart'a dönüţümlü önzizleme için Grayscale modunun adýný girin"
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr "Tarayýcýnýn minimum threshold seviyesi %"
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr "Tarayýcýnýn maksimum threshold seviyesi %"
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Xsane threshold aralýđý ile tarayýcý threshold aralýđýný ayný yapacak çarpan"
+
+#. DESC_PREVIEW_THRESHOLD_OFF
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+"Xsane threshold aralýđý ile tarayýcý threshold aralýđýný ayný yapacak rakam"
+
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+"Otomatik Döküman besyleyici için tarama kaynađýný belirleyiniz. Eđer tarama "
+"kaynađý seçilirse, Xsane hata veya \"kađýt kalmadý\" mesajýna kadar "
+"tarayacaktýr"
+
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr "Pipette fonksiyonu için ortalama renkte kullanýlan karenin boyutlarý"
+
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr ""
+"yardým dosyalarýný göstermek için çalýţtýrýlacak komutu girin, "
+"html-göstericisi olmalýdýr!"
+
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr "otomatik geliţtirme tuţuna basýlýnca gamma deđerini deđiţtir"
+
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr "Önizleme taramasý tamamlandýktan sonra tarama aranýný seç"
+
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr "Önizleme taramasý bittikten sonra renk düzeltmesini yap"
+
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr "Faks modunda çalýţtýrýlacak komutu yazýn"
+
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr "Alýcýyý belirlemek için seçeđeni girin"
+
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr "Postsript dosyalara eklenecek belirleme seçeneđini girin"
+
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr "Normal modu (düţük çözünürlük) belirleyecek seçeneđi girin"
+
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr "Hassas modu (yüksek çözünürlük) belirleyecek seçeneđi girin"
+
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr "Faksý görmek için çalýţtýrýlacak komutu yazýn"
+
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr "Faksý yüksek dikey çözünürlükle (98 lpi yerine 196 lpi ile)gönder"
+
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr "SMTP sunucusunun IP adresi veya Alan Adý"
+
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr "SMTP Sunucusuna bađlanacak port"
+
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr "E-Posta adresinizi yazýn"
+
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr "Yanýtlama Adresini girin "
+
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr "E-posta yollamadan önce POP3 sunucusunda otorizayon yap"
+
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr "POP3 Sunucusunun IP adresini veya Alan Adýný yazýn"
+
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr "POP3 sunusunda bađlanýlacak port"
+
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr "POP3 sunucusundaki kullanýcý adý"
+
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr "POP3 sunucusu için ţifre"
+
+#. DESC_MAIL_VIEWER
+msgid "Enter command to be executed to view a mail image"
+msgstr "E-posta resmini görmek için çalýţtýrýlacak komutu yazýn"
+
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr "E-Posta HTML olarak yollandý, resimler direkt olarak gösterilmekte"
+
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr "OCR prograrýmýn baţlatmak için komutu girin"
+
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr "Çýktý dosyasý için ocr programýnýn seçeneđini belirleyin"
+
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr "Çýktý dosyasý için ocr programýnýn seçeneđini belirleyin"
+
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr "okuma"
+
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr "yazma"
+
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr "çalýţtýrma"
+
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr "Beyaz nokta seç"
+
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr "Gri nokta seç"
+
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr "Siyah nokta seç"
+
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr "Tüm tarama alanýný kullan"
+
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr "% 20 zumla"
+
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr "Seçilen alana zum yap"
+
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr "Son zumu geri al"
+
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr "Görülen alaný belirleyin"
+
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr "Tarama alanýný otomatik seç"
+
+#. DESC_DELETE_IMAGES
+msgid "Delete preview image cache"
+msgstr "Önizleme resim kaţesini sil"
+
+#. DESC_PRESET_AREA
+msgid "Preset area"
+msgstr "Alaný önceden seç"
+
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr "Döndürmek önizlemek ve taramak"
+
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr "Optik karakter okuyucu"
+
+#. DESC_VIEWER_CLONE
+msgid "Clone image"
+msgstr "Resmi çođalt"
+
+#. DESC_VIEWER_ROTATE90
+msgid "Rotate image 90 degree"
+msgstr "Resmi 90 derece döndür"
+
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr "Resmi 180 derece döndür"
+
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr "Resmi 270 derece döndür"
+
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr "Düţey eksenlerde resmi ters görüntüle (ayna etkisi)"
+
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr "Yatay eksenlerde resmi ters görüntüle (ayna etkisi)"
+
+#. DESC_VIEWER_ZOOM
+msgid "Zoom image"
+msgstr "Resmi büyüt"
+
+#. DESC_STORE_MEDIUM
+msgid "Store medium"
+msgstr "Saklama ortamý"
+
+#. DESC_DELETE_MEDIUM
+msgid "Delete active medium"
+msgstr "Aktif ortamý silin"
+
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
+msgstr "Ev dizinini belirlemede hata:"
+
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr "Çalýţma dizinini deđiţtirmede hata"
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
+msgstr "Dosya adý çok uzun"
+
+#. ERR_CREATE_TEMP_FILE
+msgid "Could not create temporary file"
+msgstr "Geçici dosya yaratýlamadý"
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
+msgstr "Seçeneđin deđerini ayarlamada hata"
+
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
+msgstr "Seçeneđin deđerini elde etmede hata"
+
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
+msgstr "Seçenek sayýsýný elde etmede hata"
+
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
+msgstr "Aygýtý açmada hata"
+
+#. ERR_NO_DEVICES
+msgid "no devices available"
+msgstr "Hiçbir aygýt mevcut deđil"
+
+#. ERR_DURING_READ
+msgid "Error during read:"
+msgstr "Okuma esnasýnda hata:"
+
+#. ERR_DURING_SAVE
+msgid "Error during save:"
+msgstr "Saklama esnasýnda hata"
+
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
+msgstr "Derinliđi kullanamaz"
+
+#. ERR_GIMP_BAD_DEPTH
+#, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr "GIMP %d bit /renk derinliđi kullanamaz"
+
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
+msgstr "Saklamak için bilinmeyen format"
+
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
+msgstr "Açmada hata"
+
+#. ERR_CREATE_SECURE_FILE
+msgid "Could not create secure file (may be a link does exist):"
+msgstr "Güvenli dosya yaratýlamadý (belki bađ mevcut deđil)"
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
+msgstr "yazýcý komutunu çalýţtýrmak için pipe açmada hata"
+
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
+msgstr "yazýcý komutunu çalýţtýrmada hata:"
+
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
+msgstr "Tarayýcýyý baţlatmada hata:"
+
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
+msgstr "parametreleri almada hata:"
+
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
+msgstr "Çýktý formatý belirtilmedi"
+
+#. ERR_NO_MEM
+msgid "out of memory"
+msgstr "yetersiz hafýza"
+
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr ""
+"Tarayýcý sürücüsü parametrelerde belirtilenden daha fazla resim datasý "
+"gönderiyor"
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
+msgstr "LIBTIFF hata veriyor"
+
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
+msgstr "LIBPNG hata veriyor"
+
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
+msgstr "bilinmeyen tip"
+
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
+msgstr "bilinmeyen contraint tipi"
+
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
+msgstr "Dokümantasyon göstericisini çalýţtýramadý:"
+
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
+msgstr "Faks göstericisini çalýţtýramadý:"
+
+#. ERR_FAILED_EXEC_FAX_CMD
+msgid "Failed to execute fax command:"
+msgstr "faks komutunu çalýţtýramadý:"
+
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+msgid "Failed to execute mail image viewer:"
+msgstr "E-posta göstericisini çalýţtýramadý:"
+
+#. ERR_FAILED_EXEC_OCR_CMD
+msgid "Failed to execute ocr command:"
+msgstr "ocr komutunu çalýţtýramadý:"
+
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
+msgstr "kötü kare formatý"
+
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
+msgstr "çözünürlüđü ayarlayamadý"
+
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr "Ţifre dosyasý (%s) güvenli deđil, x00 izinlerin kullanýn\n"
+
+#. ERR_ERROR
+msgid "error"
+msgstr "hata"
+
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
+msgstr "Sane sürüm rakamý tutmuyor !"
+
+#. ERR_XSANE_MAJOR_VERSION
+msgid "XSane major version ="
+msgstr "Xsane sürüm ="
+
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
+msgstr "sürücü ana versiyon ="
+
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
+msgstr "*** PROGRAM SONLANDIRILDI***"
+
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
+msgstr "Resim hafýzasý kullanmada hata:"
+
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr "Önizleme bit derinliđini kullanamaz"
+
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
+msgstr "GIMP desteđi kayýp"
+
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr "Geçici önizleme dosyalarý yaratýlamadý"
+
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr "Önizleme dosyalarý için dosya isimleri yaratýlamadý"
+
+#. ERR_CREATE_FAX_PROJECT
+msgid "Could not create faxproject"
+msgstr "Fax projesi yaratýlamadý"
+
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr "Dosya adý sayacý karýţtý"
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr "uyarý: seçeneđin deđeri belirtilmemiţ"
+
+#. WARN_XSANE_AS_ROOT
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+"Xsane'ni ROOT olarak çalýţtýrmak istiyorsunuz, bu TEHLÝKELÝDÝR!\n"
+"\n"
+"Root olarak xsane'i kullanýrken olacak hatalarý \n"
+"lütfen hata raporu olarak yollamayýn\n"
+"TEK BAŢINASINIZ!"
+
+#. ERR_HEADER_ERROR
+msgid "Error"
+msgstr "Hata"
+
+#. ERR_HEADER_WARNING
+msgid "Warning"
+msgstr "Uyarý"
+
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr "Bilgi"
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
+msgstr "Dosya yaratmada hata:"
+
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
+msgstr "Aygýt ayarlarýný yüklemede hata"
+
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
+msgstr "aygýt-rc-dosyasý deđil !!"
+
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
+msgstr "netscape çalýţtýrýlamadý!"
+
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
+msgstr "Faks gönder: alýcý tanýmlanmadý"
+
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
+msgstr "aygýt için yaratýlmýţtýr"
+
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
+msgstr "aygýt için kullanmak istiyorsunuz"
+
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
+msgstr "bu bazý sorunlar yaratabilir!"
+
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr "Saklanmamýţ %d resim var"
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr "%s dosyasý zaten var"
+
+#. ERR_FILE_NOT_EXISTS
+#, c-format
+msgid "File %s does not exist"
+msgstr "%s dosyasý yok"
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, c-format
+msgid "File %s is not a postscript file"
+msgstr "Dosya %s postscript dosyasý deđil"
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr "Desteklenmeyen %d-bit çýktý formatý:%s"
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr "Ýzleme resmi saklanamadý"
+
+#. TEXT_USAGE
+msgid "Usage:"
+msgstr "Kullaným:"
+
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr "[SEÇENEK]...[AYGIT]"
+
+#. TEXT_HELP
+#, fuzzy
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
+msgstr ""
+"SANE (Scanner Access Now Easy) aygýtlarýna ulaţmak için grafik kullanýcý "
+"arayüzünü baţlat.\n"
+"\n"
+"Kullaným ţekli [AYGIT] sürücü:aygýtdosyasý (örn. umax:/dev/scanner).\n"
+"[SEÇENEK]... aţađýdakilerin kombinasyonu olabilir:\n"
+" -h, --help yardým mesajýný göster ve sonlandýr\n"
+" -v, --version sürüm bilgisini göster\n"
+"-l , --licence ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ lisans bilgisini göster\n"
+"\n"
+" -d, --device-settings file aygýt ayarlarýný dosyadan yükle (\".drc\" "
+"olmadan)\n"
+"\n"
+" -V, --viewer ................ izleme modu aktif olarak baţla\n"
+" -s, --save saklama modu aktif olarak baţla\n"
+" -c, --copy kopyalama modu aktif olarak baţla\n"
+" -f, --fax faks modu aktif olarak baţla\n"
+" -m, --mail ................ e-posta modu aktif olarak baţla\n"
+" -n, --no-mode-selection xsane mod seçimi menüsünü pasif kýl\n"
+"\n"
+" -F, --Fixed sabit ana pencere boyutu (tercihler deđerinin "
+"yerine geçer)\n"
+" -R, --Resizeable yeniden boyutlanadirýlabilir, scrolled ana "
+"pencere (tercihler deđerinin yerine geçer)\n"
+"\n"
+"-p, --print-filenames ˇˇˇˇˇˇˇˇˇˇˇˇ Xsane tarafýndan yaratýlan resim "
+"dosyalarýný bas\n"
+"-N, --force-filename name dosyaadýný kulllan ve kullanýcý dosyaad seçimi "
+"iptal et\n"
+" --display X11-display çýktýyý X11-exkranýna yönelndir\n"
+" --no-xshm paylaţýlan hafýza resimleri kullanma\n"
+" --sync X11 sunucu ile senkronize bađlantý iste"
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
+msgstr "Sane arabirimine Ön yüz"
+
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+"Bu fonksiyon tarayýcýlara ve diđer resim yakalama aygýtlarýnaSANE (Scanner "
+"Access Now Easy) arabirimi ile ulaţmayý sađlar."
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr "<Araçkutusu>/Dosya/yakala/Xsane: Aygýt Diyalogu..."
+
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
+msgstr "<Araçkutusu>/Dosya/Yakala/Xsane:"
+
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr "<Araçkutusu>/XTns/Xsane/Aygýt diyalog "
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
+msgstr "<Araçkutusu>/Xtns/XSane/"
+
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr "tam boyut"
+
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr "DIN A3 dikey"
+
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr "DIN A3 yatay"
+
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr "DIN A4 dikey"
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr "DIN A4 yatay"
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr "DIN A5 dikey"
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr "DIN A5 yatay"
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
+msgstr "13cm x 18cm"
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
+msgstr "18cm x 13cm"
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
+msgstr "10cm x 15cm"
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
+msgstr "15cm x 10cm"
+
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr "9cm x 13cm"
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr "13cm x 9cm"
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr "yasal dikey."
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr "yasal yatay"
+
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr "mektup dikey"
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr "mektup yatay"
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr "Tüm alan"
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr "Diapozitif"
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+msgid "Standard negative"
+msgstr "Standart negatif"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr "Agfa negatif"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr "Agfa negatif XRG 200-4"
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr "Agfa negatif HDC 100"
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+msgid "Fuji negative"
+msgstr "Fuji negatif"
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr "Kodak negatif"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+msgid "Konica negative"
+msgstr "Konica negatif"
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+msgid "Konica negative VX 100"
+msgstr "Konica negatif VX 100"
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr "Rossmann negatif HR 100"
+
+#. Sane backend messages
+msgid "flatbed scanner"
+msgstr "flatbed tarayýcý"
+
+msgid "frame grabber"
+msgstr "kare yakalayýcý"
+
+msgid "handheld scanner"
+msgstr "el tarayýcýsý"
+
+msgid "still camera"
+msgstr "fotograf makinesi "
+
+msgid "video camera"
+msgstr "video kamera"
+
+msgid "virtual device"
+msgstr "Sanal aygýt"
+
+msgid "Success"
+msgstr "Baţarý"
+
+msgid "Operation not supported"
+msgstr "Ýţlem desteklenmiyor"
+
+msgid "Operation was cancelled"
+msgstr "Ýţlem iptal edildi"
+
+msgid "Device busy"
+msgstr "Aygýt meţgul"
+
+msgid "Invalid argument"
+msgstr "Geçersiz argüman"
+
+msgid "End of file reached"
+msgstr "Dosya sonuna ulaţýldý"
+
+msgid "Document feeder jammed"
+msgstr "Doküman yükleyici sýkýţtý"
+
+msgid "Document feeder out of documents"
+msgstr "Doküman yükleyici dokümansýz"
+
+msgid "Scanner cover is open"
+msgstr "Tarayýcý kapađý açýk"
+
+msgid "Error during device I/O"
+msgstr "Aygýt I/O hatasý"
+
+msgid "Out of memory"
+msgstr "Yetersiz hafýza"
+
+msgid "Access to resource has been denied"
+msgstr "Kaynađa eriţim reddedildi"
diff --git a/po/xsane-pot.sed b/po/xsane-pot.sed
new file mode 100644
index 0000000..33edcd9
--- /dev/null
+++ b/po/xsane-pot.sed
@@ -0,0 +1,6 @@
+s/WINDOW_ABOUT_TRANSLATION/&, MENU_ITEM_ABOUT_TRANSLATION/
+s/TEXT_SETUP_PRINTER_CMD/&, TEXT_SETUP_FAX_CMD/
+#s/BUTTON_OK/&, BUTTON_OK/
+s@DESC_ZOOM_OUT@xgettext:no-c-format */ /*&@
+s@DESC_PREVIEW_THRESHOLD_MIN@xgettext:no-c-format */ /*&@
+s@DESC_PREVIEW_THRESHOLD_MAX@xgettext:no-c-format */ /*&@
diff --git a/po/xsane.pot b/po/xsane.pot
new file mode 100644
index 0000000..a38cd0a
--- /dev/null
+++ b/po/xsane.pot
@@ -0,0 +1,2260 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-01-22 23:34+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#. Please translate this to the correct directory name (eg. german=>de)
+#. XSANE_LANGUAGE_DIR
+msgid "language_dir"
+msgstr ""
+
+#. XSANE_COPYRIGHT_SIGN
+msgid "(c)"
+msgstr ""
+
+#. can be translated with \251
+#. WINDOW_ABOUT_XSANE
+msgid "About"
+msgstr ""
+
+#. WINDOW_ABOUT_TRANSLATION, MENU_ITEM_ABOUT_TRANSLATION
+msgid "About translation"
+msgstr ""
+
+#. WINDOW_AUTHORIZE
+msgid "authorization"
+msgstr ""
+
+#. WINDOW_LICENSE
+msgid "license"
+msgstr ""
+
+#. WINDOW_INFO
+msgid "info"
+msgstr ""
+
+#. WINDOW_BATCH_SCAN
+msgid "batch scan"
+msgstr ""
+
+#. WINDOW_FAX_PROJECT
+msgid "fax project"
+msgstr ""
+
+#. WINDOW_FAX_RENAME
+msgid "rename fax page"
+msgstr ""
+
+#. WINDOW_FAX_INSERT
+msgid "insert ps-file into fax"
+msgstr ""
+
+#. WINDOW_MAIL_PROJECT
+msgid "mail project"
+msgstr ""
+
+#. WINDOW_MAIL_RENAME
+msgid "rename mail image"
+msgstr ""
+
+#. WINDOW_MAIL_INSERT
+msgid "insert file into mail"
+msgstr ""
+
+#. WINDOW_PRESET_AREA_RENAME
+msgid "rename preset area"
+msgstr ""
+
+#. WINDOW_SETUP
+msgid "setup"
+msgstr ""
+
+#. WINDOW_HISTOGRAM
+msgid "Histogram"
+msgstr ""
+
+#. WINDOW_GAMMA
+msgid "Gamma curve"
+msgstr ""
+
+#. WINDOW_STANDARD_OPTIONS
+msgid "Standard options"
+msgstr ""
+
+#. WINDOW_ADVANCED_OPTIONS
+msgid "Advanced options"
+msgstr ""
+
+#. WINDOW_DEVICE_SELECTION
+msgid "device selection"
+msgstr ""
+
+#. WINDOW_PREVIEW
+msgid "Preview"
+msgstr ""
+
+#. WINDOW_VIEWER
+msgid "Viewer"
+msgstr ""
+
+#. WINDOW_VIEWER_OUTPUT_FILENAME
+msgid "Viewer: select output filename"
+msgstr ""
+
+#. WINDOW_OCR_OUTPUT_FILENAME
+msgid "Select output filename for OCR text file"
+msgstr ""
+
+#. WINDOW_OUTPUT_FILENAME
+msgid "select output filename"
+msgstr ""
+
+#. WINDOW_SAVE_SETTINGS
+msgid "save device settings"
+msgstr ""
+
+#. WINDOW_LOAD_SETTINGS
+msgid "load device settings"
+msgstr ""
+
+#. WINDOW_CHANGE_WORKING_DIR
+msgid "change working directory"
+msgstr ""
+
+#. WINDOW_TMP_PATH
+msgid "select temporary directory"
+msgstr ""
+
+#. WINDOW_SCALE
+msgid "Scale image"
+msgstr ""
+
+#. WINDOW_DESPECKLE
+msgid "Despeckle image"
+msgstr ""
+
+#. WINDOW_BLUR
+msgid "Blur image"
+msgstr ""
+
+#. WINDOW_STORE_MEDIUM
+msgid "Store medium definition"
+msgstr ""
+
+#. MENU_FILE
+msgid "File"
+msgstr ""
+
+#. MENU_PREFERENCES
+msgid "Preferences"
+msgstr ""
+
+#. MENU_VIEW
+msgid "View"
+msgstr ""
+
+#. MENU_HELP
+msgid "Help"
+msgstr ""
+
+#. MENU_FILTERS
+msgid "Filters"
+msgstr ""
+
+#. MENU_ITEM_ABOUT_XSANE
+msgid "About XSane"
+msgstr ""
+
+#. MENU_ITEM_INFO
+msgid "Info"
+msgstr ""
+
+#. MENU_ITEM_QUIT
+msgid "Quit"
+msgstr ""
+
+#. MENU_ITEM_SAVE_IMAGE
+msgid "Save image"
+msgstr ""
+
+#. MENU_ITEM_CLOSE
+msgid "Close"
+msgstr ""
+
+#. MENU_ITEM_CLONE
+msgid "Clone"
+msgstr ""
+
+#. MENU_ITEM_SCALE
+msgid "Scale"
+msgstr ""
+
+#. MENU_ITEM_DESPECKLE
+msgid "Despeckle"
+msgstr ""
+
+#. MENU_ITEM_BLUR
+msgid "Blur"
+msgstr ""
+
+#. FRAME_RAW_IMAGE
+msgid "Raw image"
+msgstr ""
+
+#. FRAME_ENHANCED_IMAGE
+msgid "Enhanced image"
+msgstr ""
+
+#. BUTTON_START
+msgid "Start"
+msgstr ""
+
+#. BUTTON_OK
+msgid "Ok"
+msgstr ""
+
+#. BUTTON_ACCEPT
+msgid "Accept"
+msgstr ""
+
+#. BUTTON_NOT_ACCEPT
+msgid "Not accept"
+msgstr ""
+
+#. BUTTON_APPLY
+msgid "Apply"
+msgstr ""
+
+#. BUTTON_CANCEL
+msgid "Cancel"
+msgstr ""
+
+#. BUTTON_REDUCE
+msgid "Reduce"
+msgstr ""
+
+#. BUTTON_CONT_AT_OWN_RISK
+msgid "Continue at your own risk"
+msgstr ""
+
+#. BUTTON_BROWSE
+msgid "Browse"
+msgstr ""
+
+#. BUTTON_OVERWRITE
+msgid "Overwrite"
+msgstr ""
+
+#. BUTTON_ADD_AREA
+msgid "Add area"
+msgstr ""
+
+#. BUTTON_PAGE_DELETE
+msgid "Delete page"
+msgstr ""
+
+#. BUTTON_PAGE_SHOW
+msgid "Show page"
+msgstr ""
+
+#. BUTTON_PAGE_RENAME
+msgid "Rename page"
+msgstr ""
+
+#. BUTTON_IMAGE_DELETE
+msgid "Delete image"
+msgstr ""
+
+#. BUTTON_IMAGE_SHOW
+msgid "Show image"
+msgstr ""
+
+#. BUTTON_IMAGE_RENAME
+msgid "Rename image"
+msgstr ""
+
+#. BUTTON_FILE_INSERT
+msgid "Insert file"
+msgstr ""
+
+#. BUTTON_CREATE_PROJECT
+msgid "Create project"
+msgstr ""
+
+#. BUTTON_SEND_PROJECT
+msgid "Send project"
+msgstr ""
+
+#. BUTTON_DELETE_PROJECT
+msgid "Delete project"
+msgstr ""
+
+#. BUTTON_ADD_PRINTER
+msgid "Add printer"
+msgstr ""
+
+#. BUTTON_DELETE_PRINTER
+msgid "Delete printer"
+msgstr ""
+
+#. BUTTON_PREVIEW_ACQUIRE
+msgid "Acquire preview"
+msgstr ""
+
+#. BUTTON_PREVIEW_CANCEL
+msgid "Cancel preview"
+msgstr ""
+
+#. BUTTON_DISCARD_IMAGE
+msgid "Discard image"
+msgstr ""
+
+#. BUTTON_DISCARD_ALL_IMAGES
+msgid "Discard all images"
+msgstr ""
+
+#. BUTTON_DO_NOT_CLOSE
+msgid "Do not close"
+msgstr ""
+
+#. BUTTON_SCALE_BIND
+msgid "Bind scale"
+msgstr ""
+
+#. RADIO_BUTTON_FINE_MODE
+msgid "Fine mode"
+msgstr ""
+
+#. RADIO_BUTTON_HTML_MAIL
+msgid "HTML mail"
+msgstr ""
+
+#. RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device preferences at exit"
+msgstr ""
+
+#. RADIO_BUTTON_OVERWRITE_WARNING
+msgid "Overwrite warning"
+msgstr ""
+
+#. RADIO_BUTTON_SKIP_EXISTING_NRS
+msgid "Skip existing filenames"
+msgstr ""
+
+#. RADIO_BUTTON_REDUCE_16BIT_TO_8BIT
+msgid "Reduce 16 bit image to 8 bit"
+msgstr ""
+
+#. RADIO_BUTTON_WINDOW_FIXED
+msgid "Main window size fixed"
+msgstr ""
+
+#. RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable gimp preview gamma"
+msgstr ""
+
+#. RADIO_BUTTON_PRIVATE_COLORMAP
+msgid "Use private colormap"
+msgstr ""
+
+#. RADIO_BUTTON_AUTOENHANCE_GAMMA
+msgid "Autoenhance gamma"
+msgstr ""
+
+#. RADIO_BUTTON_PRESELECT_SCANAREA
+msgid "Preselect scanarea"
+msgstr ""
+
+#. RADIO_BUTTON_AUTOCORRECT_COLORS
+msgid "Autocorrect colors"
+msgstr ""
+
+#. RADIO_BUTTON_POP3_AUTHENTIFICATION
+msgid "POP3 authentification"
+msgstr ""
+
+#. TEXT_SCANNING_DEVICES
+msgid "scanning for devices"
+msgstr ""
+
+#. TEXT_AVAILABLE_DEVICES
+msgid "Available devices:"
+msgstr ""
+
+#. TEXT_XSANE_OPTIONS
+msgid "XSane options"
+msgstr ""
+
+#. TEXT_XSANE_MODE
+msgid "XSane mode"
+msgstr ""
+
+#. TEXT_FILENAME_COUNTER_STEP
+msgid "Step"
+msgstr ""
+
+#. TEXT_FILETYPE
+msgid "Type"
+msgstr ""
+
+#. TEXT_SCANNER_BACKEND
+msgid "Scanner and backend:"
+msgstr ""
+
+#. TEXT_VENDOR
+msgid "Vendor:"
+msgstr ""
+
+#. TEXT_MODEL
+msgid "Model:"
+msgstr ""
+
+#. TEXT_TYPE
+msgid "Type:"
+msgstr ""
+
+#. TEXT_DEVICE
+msgid "Device:"
+msgstr ""
+
+#. TEXT_LOADED_BACKEND
+msgid "Loaded backend:"
+msgstr ""
+
+#. TEXT_SANE_VERSION
+msgid "Sane version:"
+msgstr ""
+
+#. TEXT_RECENT_VALUES
+msgid "Recent values:"
+msgstr ""
+
+#. TEXT_GAMMA_CORR_BY
+msgid "Gamma correction by:"
+msgstr ""
+
+#. TEXT_SCANNER
+msgid "scanner"
+msgstr ""
+
+#. TEXT_SOFTWARE_XSANE
+msgid "software (XSane)"
+msgstr ""
+
+#. TEXT_NONE
+msgid "none"
+msgstr ""
+
+#. TEXT_GAMMA_INPUT_DEPTH
+msgid "Gamma input depth:"
+msgstr ""
+
+#. TEXT_GAMMA_OUTPUT_DEPTH
+msgid "Gamma output depth:"
+msgstr ""
+
+#. TEXT_SCANNER_OUTPUT_DEPTH
+msgid "Scanner output depth:"
+msgstr ""
+
+#. TEXT_OUTPUT_FORMATS
+msgid "XSane output formats:"
+msgstr ""
+
+#. TEXT_8BIT_FORMATS
+msgid "8 bit output formats:"
+msgstr ""
+
+#. TEXT_16BIT_FORMATS
+msgid "16 bit output formats:"
+msgstr ""
+
+#. TEXT_GIMP_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Gimp does not support depth 16 bits/color.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+
+#. TEXT_REDUCE_16BIT_TO_8BIT
+msgid ""
+"Bit depth 16 bits/color is not supported for this output format.\n"
+"Do you want to reduce the depth to 8 bits/color?"
+msgstr ""
+
+#. TEXT_AUTHORIZATION_REQ
+msgid "Authorization required for"
+msgstr ""
+
+#. TEXT_AUTHORIZATION_SECURE
+msgid "Password transmission is secure"
+msgstr ""
+
+#. TEXT_AUTHORIZATION_INSECURE
+msgid "Backend requests plain-text password"
+msgstr ""
+
+#. TEXT_USERNAME
+msgid "Username :"
+msgstr ""
+
+#. TEXT_PASSWORD
+msgid "Password :"
+msgstr ""
+
+#. TEXT_INVALID_PARAMS
+msgid "Invalid parameters."
+msgstr ""
+
+#. TEXT_VERSION
+msgid "version:"
+msgstr ""
+
+#. TEXT_PACKAGE
+msgid "package"
+msgstr ""
+
+#. TEXT_WITH_GIMP_SUPPORT
+msgid "with GIMP support"
+msgstr ""
+
+#. TEXT_WITHOUT_GIMP_SUPPORT
+msgid "without GIMP support"
+msgstr ""
+
+#. TEXT_GTK_VERSION
+msgid "compiled with GTK-"
+msgstr ""
+
+#. TEXT_GIMP_VERSION
+msgid "compiled with GIMP-"
+msgstr ""
+
+#. TEXT_UNKNOWN
+msgid "unknown"
+msgstr ""
+
+#. TEXT_GPL
+msgid ""
+"XSane is distributed under the terms of the GNU General Public License\n"
+"as published by the Free Software Foundation; either version 2 of the\n"
+"License, or (at your option) any later version.\n"
+"\n"
+"This program is distributed in the hope that it will be useful, but\n"
+"WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+msgstr ""
+
+#. TEXT_EMAIL
+msgid "Email:"
+msgstr ""
+
+#. TEXT_HOMEPAGE
+msgid "Homepage:"
+msgstr ""
+
+#. TEXT_FILE
+msgid "File:"
+msgstr ""
+
+#. TEXT_TRANSLATION
+msgid "Translation:"
+msgstr ""
+
+#. Please translate this to something like
+#. translation to YOUR LANGUAGE\n
+#. by YOUR NAME\n
+#. Email: your.name@yourdomain.com\n
+#. TEXT_TRANSLATION_INFO
+msgid ""
+"untranslated original english text\n"
+"by Oliver Rauch\n"
+"Email: Oliver.Rauch@rauch-domain.de\n"
+msgstr ""
+
+#. TEXT_INFO_BOX
+msgid "0x0: 0KB"
+msgstr ""
+
+#. TEXT_ADF_PAGES_SCANNED
+msgid "Scanned pages: "
+msgstr ""
+
+#. TEXT_MAIL_TEXT
+msgid "Email text:"
+msgstr ""
+
+#. TEXT_ATTACHMENTS
+msgid "Attachments:"
+msgstr ""
+
+#. TEXT_MAIL_STATUS
+msgid "Project status:"
+msgstr ""
+
+#. TEXT_MEDIUM_DEFINITION_NAME
+msgid "Medium Name:"
+msgstr ""
+
+#. TEXT_VIEWER_IMAGE_INFO
+#, c-format
+msgid ""
+"Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s"
+msgstr ""
+
+#. TEXT_X_SCALE_FACTOR
+msgid "X-Scale factor:"
+msgstr ""
+
+#. TEXT_Y_SCALE_FACTOR
+msgid "Y-Scale factor:"
+msgstr ""
+
+#. TEXT_DESPECKLE_RADIUS
+msgid "Despeckle radius:"
+msgstr ""
+
+#. TEXT_BLUR_RADIUS
+msgid "Blur radius:"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_SEL
+msgid "Printer selection:"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_NAME
+msgid "Name:"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_CMD, TEXT_SETUP_FAX_CMD
+msgid "Command:"
+msgstr ""
+
+#. TEXT_SETUP_COPY_NR_OPT
+msgid "Copy number option:"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_LINEART_RES
+msgid "Lineart resolution (dpi):"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_GRAYSCALE_RES
+msgid "Grayscale resolution (dpi):"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_COLOR_RES
+msgid "Color resolution (dpi):"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_WIDTH
+msgid "Width"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_HEIGHT
+msgid "Height"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_LEFT
+msgid "Left offset"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_BOTTOM
+msgid "Bottom offset"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_GAMMA
+msgid "Printer gamma value:"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_GAMMA_RED
+msgid "Printer gamma red:"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_GAMMA_GREEN
+msgid "Printer gamma green:"
+msgstr ""
+
+#. TEXT_SETUP_PRINTER_GAMMA_BLUE
+msgid "Printer gamma blue:"
+msgstr ""
+
+#. TEXT_SETUP_TMP_PATH
+msgid "Temporary directory"
+msgstr ""
+
+#. TEXT_SETUP_IMAGE_PERMISSION
+msgid "Image-file permissions"
+msgstr ""
+
+#. TEXT_SETUP_DIR_PERMISSION
+msgid "Directory permissions"
+msgstr ""
+
+#. TEXT_SETUP_JPEG_QUALITY
+msgid "JPEG image quality"
+msgstr ""
+
+#. TEXT_SETUP_PNG_COMPRESSION
+msgid "PNG image compression"
+msgstr ""
+
+#. TEXT_SETUP_FILENAME_COUNTER_LEN
+msgid "Filename counter length"
+msgstr ""
+
+#. TEXT_SETUP_TIFF_COMPRESSION_16
+msgid "TIFF 16 bit image compression"
+msgstr ""
+
+#. TEXT_SETUP_TIFF_COMPRESSION_8
+msgid "TIFF 8 bit image compression"
+msgstr ""
+
+#. TEXT_SETUP_TIFF_COMPRESSION_1
+msgid "TIFF lineart image compression"
+msgstr ""
+
+#. TEXT_SETUP_PREVIEW_OVERSAMPLING
+msgid "Preview oversampling:"
+msgstr ""
+
+#. TEXT_SETUP_PREVIEW_GAMMA
+msgid "Preview gamma:"
+msgstr ""
+
+#. TEXT_SETUP_PREVIEW_GAMMA_RED
+msgid "Preview gamma red:"
+msgstr ""
+
+#. TEXT_SETUP_PREVIEW_GAMMA_GREEN
+msgid "Preview gamma green:"
+msgstr ""
+
+#. TEXT_SETUP_PREVIEW_GAMMA_BLUE
+msgid "Preview gamma blue:"
+msgstr ""
+
+#. TEXT_SETUP_LINEART_MODE
+msgid "Threshold option:"
+msgstr ""
+
+#. TEXT_SETUP_ADF_MODE
+msgid "Automatic Document Feeder Modus:"
+msgstr ""
+
+#. TEXT_SETUP_PREVIEW_PIPETTE_RANGE
+msgid "Preview pipette range"
+msgstr ""
+
+#. TEXT_SETUP_THRESHOLD_MIN
+msgid "Threshold minimum:"
+msgstr ""
+
+#. TEXT_SETUP_THRESHOLD_MAX
+msgid "Threshold maximum:"
+msgstr ""
+
+#. TEXT_SETUP_THRESHOLD_MUL
+msgid "Threshold multiplier:"
+msgstr ""
+
+#. TEXT_SETUP_THRESHOLD_OFF
+msgid "Threshold offset:"
+msgstr ""
+
+#. TEXT_SETUP_GRAYSCALE_SCANMODE
+msgid "Name of grayscale scanmode:"
+msgstr ""
+
+#. TEXT_SETUP_HELPFILE_VIEWER
+msgid "Helpfile viewer (HTML):"
+msgstr ""
+
+#. TEXT_SETUP_FAX_RECEIVER_OPTION
+msgid "Receiver option:"
+msgstr ""
+
+#. TEXT_SETUP_FAX_POSTSCRIPT_OPT
+msgid "Postscriptfile option:"
+msgstr ""
+
+#. TEXT_SETUP_FAX_NORMAL_MODE_OPT
+msgid "Normal mode option:"
+msgstr ""
+
+#. TEXT_SETUP_FAX_FINE_MODE_OPT
+msgid "Fine mode option:"
+msgstr ""
+
+#. TEXT_SETUP_FAX_VIEWER
+msgid "Viewer (Postscript):"
+msgstr ""
+
+#. TEXT_SETUP_SMTP_SERVER
+msgid "SMTP server:"
+msgstr ""
+
+#. TEXT_SETUP_SMTP_PORT
+msgid "SMTP port:"
+msgstr ""
+
+#. TEXT_SETUP_MAIL_FROM
+msgid "From:"
+msgstr ""
+
+#. TEXT_SETUP_MAIL_REPLY_TO
+msgid "Reply to:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_SERVER
+msgid "POP3 server:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_PORT
+msgid "POP3 port:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_USER
+msgid "POP3 user:"
+msgstr ""
+
+#. TEXT_SETUP_POP3_PASS
+msgid "POP3 password:"
+msgstr ""
+
+#. TEXT_SETUP_MAIL_VIEWER
+msgid "Viewer (png):"
+msgstr ""
+
+#. TEXT_SETUP_OCR_COMMAND
+msgid "OCR Command:"
+msgstr ""
+
+#. TEXT_SETUP_OCR_INPUTFILE_OPT
+msgid "Inputfile option:"
+msgstr ""
+
+#. TEXT_SETUP_OCR_OUTPUTFILE_OPT
+msgid "Outputfile option:"
+msgstr ""
+
+#. TEXT_SETUP_PERMISSION_USER
+msgid "user"
+msgstr ""
+
+#. TEXT_SETUP_PERMISSION_GROUP
+msgid "group"
+msgstr ""
+
+#. TEXT_SETUP_PERMISSION_ALL
+msgid "all"
+msgstr ""
+
+#. NOTEBOOK_SAVING_OPTIONS
+msgid "Save"
+msgstr ""
+
+#. NOTEBOOK_IMAGE_OPTIONS
+msgid "Image"
+msgstr ""
+
+#. NOTEBOOK_COPY_OPTIONS
+msgid "Copy"
+msgstr ""
+
+#. NOTEBOOK_FAX_OPTIONS
+msgid "Fax"
+msgstr ""
+
+#. NOTEBOOK_MAIL_OPTIONS
+msgid "Mail"
+msgstr ""
+
+#. NOTEBOOK_OCR_OPTIONS
+msgid "OCR"
+msgstr ""
+
+#. NOTEBOOK_DISPLAY_OPTIONS
+msgid "Display"
+msgstr ""
+
+#. NOTEBOOK_ENHANCE_OPTIONS
+msgid "Enhancement"
+msgstr ""
+
+#. MENU_ITEM_MAIL
+msgid "Email"
+msgstr ""
+
+#. MENU_ITEM_SHOW_TOOLTIPS
+msgid "Show tooltips"
+msgstr ""
+
+#. MENU_ITEM_SHOW_PREVIEW
+msgid "Show preview"
+msgstr ""
+
+#. MENU_ITEM_SHOW_HISTOGRAM
+msgid "Show histogram"
+msgstr ""
+
+#. MENU_ITEM_SHOW_GAMMA
+msgid "Show gamma curve"
+msgstr ""
+
+#. MENU_ITEM_SHOW_STANDARDOPTIONS
+msgid "Show standard options"
+msgstr ""
+
+#. MENU_ITEM_SHOW_ADVANCEDOPTIONS
+msgid "Show advanced options"
+msgstr ""
+
+#. MENU_ITEM_SETUP
+msgid "Setup"
+msgstr ""
+
+#. MENU_ITEM_LENGTH_UNIT
+msgid "Length unit"
+msgstr ""
+
+#. SUBMENU_ITEM_LENGTH_MILLIMETERS
+msgid "millimeters"
+msgstr ""
+
+#. SUBMENU_ITEM_LENGTH_CENTIMETERS
+msgid "centimeters"
+msgstr ""
+
+#. SUBMENU_ITEM_LENGTH_INCHES
+msgid "inches"
+msgstr ""
+
+#. MENU_ITEM_UPDATE_POLICY
+msgid "Update policy"
+msgstr ""
+
+#. SUBMENU_ITEM_POLICY_CONTINUOUS
+msgid "continuous"
+msgstr ""
+
+#. SUBMENU_ITEM_POLICY_DISCONTINU
+msgid "discontinuous"
+msgstr ""
+
+#. SUBMENU_ITEM_POLICY_DELAYED
+msgid "delayed"
+msgstr ""
+
+#. MENU_ITEM_SHOW_RESOLUTIONLIST
+msgid "Show resolution list"
+msgstr ""
+
+#. MENU_ITEM_PAGE_ROTATE
+msgid "Rotate postscript"
+msgstr ""
+
+#. MENU_ITEM_SAVE_DEVICE_SETTINGS
+msgid "Save device settings"
+msgstr ""
+
+#. MENU_ITEM_LOAD_DEVICE_SETTINGS
+msgid "Load device settings"
+msgstr ""
+
+#. MENU_ITEM_CHANGE_WORKING_DIR
+msgid "Change directory"
+msgstr ""
+
+#. MENU_ITEM_XSANE_LICENSE
+msgid "License"
+msgstr ""
+
+#. MENU_ITEM_XSANE_DOC
+msgid "XSane doc"
+msgstr ""
+
+#. MENU_ITEM_BACKEND_DOC
+msgid "Backend doc"
+msgstr ""
+
+#. MENU_ITEM_AVAILABLE_BACKENDS
+msgid "Available backends"
+msgstr ""
+
+#. MENU_ITEM_SCANTIPS
+msgid "Scantips"
+msgstr ""
+
+#. MENU_ITEM_PROBLEMS
+msgid "Problems?"
+msgstr ""
+
+#. MENU_ITEM_COUNTER_LEN_INACTIVE
+msgid "inactive"
+msgstr ""
+
+#. MENU_ITEM_TIFF_COMP_NONE
+msgid "no compression"
+msgstr ""
+
+#. MENU_ITEM_TIFF_COMP_CCITTRLE
+msgid "CCITT 1D Huffman compression"
+msgstr ""
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX3
+msgid "CCITT Group 3 Fax compression"
+msgstr ""
+
+#. MENU_ITEM_TIFF_COMP_CCITFAX4
+msgid "CCITT Group 4 Fax compression"
+msgstr ""
+
+#. MENU_ITEM_TIFF_COMP_JPEG
+msgid "JPEG DCT compression"
+msgstr ""
+
+#. MENU_ITEM_TIFF_COMP_PACKBITS
+msgid "pack bits"
+msgstr ""
+
+#. MENU_ITEM_LINEART_MODE_STANDARD
+msgid "Standard options window (lineart)"
+msgstr ""
+
+#. MENU_ITEM_LINEART_MODE_XSANE
+msgid "XSane main window (lineart)"
+msgstr ""
+
+#. MENU_ITEM_LINEART_MODE_GRAY
+msgid "XSane main window (grayscale->lineart)"
+msgstr ""
+
+#. MENU_ITEM_SELECTION_NONE
+msgid "(none)"
+msgstr ""
+
+#. MENU_ITEM_FILETYPE_BY_EXT
+msgid "by ext"
+msgstr ""
+
+#. MENU_ITEM_PRESET_AREA_ADD_SEL
+msgid "Add selection to list"
+msgstr ""
+
+#. MENU_ITEM_PRESET_AREA_RENAME
+msgid "Rename definiton"
+msgstr ""
+
+#. MENU_ITEM_PRESET_AREA_DELETE
+msgid "Delete definition"
+msgstr ""
+
+#. MENU_OTEM_PRESET_AREA_MOVE_UP
+msgid "Move up"
+msgstr ""
+
+#. MENU_OTEM_PRESET_AREA_MOVE_DWN
+msgid "Move down"
+msgstr ""
+
+#. PROGRESS_SCANNING
+msgid "Scanning"
+msgstr ""
+
+#. PROGRESS_RECEIVING_FRAME_DATA
+#, c-format
+msgid "Receiving %s data"
+msgstr ""
+
+#. PROGRESS_TRANSFERING_DATA
+msgid "Transfering image"
+msgstr ""
+
+#. PROGRESS_ROTATING_DATA
+msgid "Rotating image"
+msgstr ""
+
+#. PROGRESS_MIRRORING_DATA
+msgid "Mirroring image"
+msgstr ""
+
+#. PROGRESS_PACKING_DATA
+msgid "Packing image"
+msgstr ""
+
+#. PROGRESS_CONVERTING_DATA
+msgid "Converting image"
+msgstr ""
+
+#. PROGRESS_SAVING_DATA
+msgid "Saving image"
+msgstr ""
+
+#. PROGRESS_CLONING_DATA
+msgid "Cloning image"
+msgstr ""
+
+#. PROGRESS_SCALING_DATA
+msgid "Scaling image"
+msgstr ""
+
+#. PROGRESS_DESPECKLING_DATA
+msgid "Despeckling image"
+msgstr ""
+
+#. PROGRESS_BLURING_DATA
+msgid "Bluring image"
+msgstr ""
+
+#. DESC_SCAN_START
+msgid "Start scan <Ctrl-Enter>"
+msgstr ""
+
+#. DESC_SCAN_CANCEL
+msgid "Cancel scan <ESC>"
+msgstr ""
+
+#. DESC_PREVIEW_ACQUIRE
+msgid "Acquire preview scan <Alt-p>"
+msgstr ""
+
+#. DESC_PREVIEW_CANCEL
+msgid "Cancel preview scan <Alt-ESC>"
+msgstr ""
+
+#. DESC_XSANE_MODE
+msgid ""
+"save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, fax-<Ctrl-f> or "
+"mail-<Ctrl-m>"
+msgstr ""
+
+#. DESC_XSANE_MEDIUM
+msgid "Select source medium type"
+msgstr ""
+
+#. DESC_FILENAME_COUNTER_STEP
+msgid "Value that is added to filenamecounter after scan"
+msgstr ""
+
+#. DESC_BROWSE_FILENAME
+msgid "Browse for image filename"
+msgstr ""
+
+#. DESC_FILENAME
+msgid "Filename for scanned image"
+msgstr ""
+
+#. DESC_FILETYPE
+msgid ""
+"Type of image format, the suitable filename extension is automatically added "
+"to the filename"
+msgstr ""
+
+#. DESC_FAXPROJECT
+msgid "Enter name of fax project"
+msgstr ""
+
+#. DESC_FAXPAGENAME
+msgid "Enter new name for faxpage"
+msgstr ""
+
+#. DESC_FAXRECEIVER
+msgid "Enter receiver phone number or address"
+msgstr ""
+
+#. DESC_MAILPROJECT
+msgid "Enter name of mail project"
+msgstr ""
+
+#. DESC_MAILIMAGENAME
+msgid "Enter new name for mail image"
+msgstr ""
+
+#. DESC_MAILRECEIVER
+msgid "Enter email address"
+msgstr ""
+
+#. DESC_MAILSUBJECT
+msgid "Enter subject of email"
+msgstr ""
+
+#. DESC_PRESET_AREA_NAME
+msgid "Enter new name for preset area"
+msgstr ""
+
+#. DESC_PRINTER_SELECT
+msgid "Select printerdefinition <Shift-F1/F2/...>"
+msgstr ""
+
+#. DESC_RESOLUTION
+msgid "Set scan resolution"
+msgstr ""
+
+#. DESC_RESOLUTION_X
+msgid "Set scan resolution for x direction"
+msgstr ""
+
+#. DESC_RESOLUTION_Y
+msgid "Set scan resolution for y direction"
+msgstr ""
+
+#. DESC_ZOOM
+msgid "Set zoomfactor"
+msgstr ""
+
+#. DESC_ZOOM_X
+msgid "Set zoomfactor for x direction"
+msgstr ""
+
+#. DESC_ZOOM_Y
+msgid "Set zoomfactor for y direction"
+msgstr ""
+
+#. DESC_COPY_NUMBER
+msgid "Set number of copies"
+msgstr ""
+
+#. DESC_NEGATIVE
+msgid "Negative: Invert colors for scanning negatives <Shift-n>"
+msgstr ""
+
+#. DESC_GAMMA
+msgid "Set gamma value"
+msgstr ""
+
+#. DESC_GAMMA_R
+msgid "Set gamma value for red component"
+msgstr ""
+
+#. DESC_GAMMA_G
+msgid "Set gamma value for green component"
+msgstr ""
+
+#. DESC_GAMMA_B
+msgid "Set gamma value for blue component"
+msgstr ""
+
+#. DESC_BRIGHTNESS
+msgid "Set brightness"
+msgstr ""
+
+#. DESC_BRIGHTNESS_R
+msgid "Set brightness for red component"
+msgstr ""
+
+#. DESC_BRIGHTNESS_G
+msgid "Set brightness for green component"
+msgstr ""
+
+#. DESC_BRIGHTNESS_B
+msgid "Set brightness for blue component"
+msgstr ""
+
+#. DESC_CONTRAST
+msgid "Set contrast"
+msgstr ""
+
+#. DESC_CONTRAST_R
+msgid "Set contrast for red component"
+msgstr ""
+
+#. DESC_CONTRAST_G
+msgid "Set contrast for green component"
+msgstr ""
+
+#. DESC_CONTRAST_B
+msgid "Set contrast for blue component"
+msgstr ""
+
+#. DESC_THRESHOLD
+msgid "Set threshold"
+msgstr ""
+
+#. DESC_RGB_DEFAULT
+msgid ""
+"RGB default: Set enhancement values for red, green and blue to default "
+"values <Shift-b>:\n"
+" gamma = 1.0\n"
+" brightness = 0\n"
+" contrast = 0"
+msgstr ""
+
+#. DESC_ENH_AUTO
+msgid "Autoadjust gamma, brightness and contrast <Shift-e>"
+msgstr ""
+
+#. DESC_ENH_DEFAULT
+msgid ""
+"Set default enhancement values <Shift-d>:\n"
+"gamma = 1.0\n"
+"brightness = 0\n"
+"contrast = 0"
+msgstr ""
+
+#. DESC_ENH_RESTORE
+msgid "Restore enhancement values from preferences <Shift-r>"
+msgstr ""
+
+#. DESC_ENH_STORE
+msgid "Store active enhancement values to preferences <Shift-m>"
+msgstr ""
+
+#. DESC_HIST_INTENSITY
+msgid "Show histogram of intensity/gray <Alt-i>"
+msgstr ""
+
+#. DESC_HIST_RED
+msgid "Show histogram of red component <Alt-r>"
+msgstr ""
+
+#. DESC_HIST_GREEN
+msgid "Show histogram of green component <Alt-g>"
+msgstr ""
+
+#. DESC_HIST_BLUE
+msgid "Show histogram of blue component <Alt-b>"
+msgstr ""
+
+#. DESC_HIST_PIXEL
+msgid "Display mode: show histogram with lines instead of pixels <Alt-m>"
+msgstr ""
+
+#. DESC_HIST_LOG
+msgid "Show logarithm of pixelcount <Alt-l>"
+msgstr ""
+
+#. DESC_PRINTER_SETUP
+msgid "Select definition to change"
+msgstr ""
+
+#. DESC_PRINTER_NAME
+msgid "Define a name for the selection of this definition"
+msgstr ""
+
+#. DESC_PRINTER_COMMAND
+msgid "Enter command to be executed in copy mode (e.g. \"lpr\")"
+msgstr ""
+
+#. DESC_COPY_NUMBER_OPTION
+msgid "Enter option for copy numbers"
+msgstr ""
+
+#. DESC_PRINTER_LINEART_RESOLUTION
+msgid ""
+"Resolution with which lineart images are printed and saved in postscript"
+msgstr ""
+
+#. DESC_PRINTER_GRAYSCALE_RESOLUTION
+msgid ""
+"Resolution with which grayscale images are printed and saved in postscript"
+msgstr ""
+
+#. DESC_PRINTER_COLOR_RESOLUTION
+msgid "Resolution with which color images are printed and saved in postscript"
+msgstr ""
+
+#. DESC_PRINTER_WIDTH
+msgid "Width of printable area"
+msgstr ""
+
+#. DESC_PRINTER_HEIGHT
+msgid "Height of printable area"
+msgstr ""
+
+#. DESC_PRINTER_LEFTOFFSET
+msgid "Left offset from the edge of the paper to the printable area"
+msgstr ""
+
+#. DESC_PRINTER_BOTTOMOFFSET
+msgid "Bottom offset from the edge of the paper to the printable area"
+msgstr ""
+
+#. DESC_PRINTER_GAMMA
+msgid "Additional gamma value for photocopy"
+msgstr ""
+
+#. DESC_PRINTER_GAMMA_RED
+msgid "Additional gamma value for red component for photocopy"
+msgstr ""
+
+#. DESC_PRINTER_GAMMA_GREEN
+msgid "Additional gamma value for green component for photocopy"
+msgstr ""
+
+#. DESC_PRINTER_GAMMA_BLUE
+msgid "Additional gamma value for blue component for photocopy"
+msgstr ""
+
+#. DESC_TMP_PATH
+msgid "Path to temp directory"
+msgstr ""
+
+#. DESC_BUTTON_TMP_PATH_BROWSE
+msgid "Browse for temporary directory"
+msgstr ""
+
+#. DESC_JPEG_QUALITY
+msgid ""
+"Quality in percent if image is saved as jpeg or tiff with jpeg compression"
+msgstr ""
+
+#. DESC_PNG_COMPRESSION
+msgid "Compression if image is saved as png"
+msgstr ""
+
+#. DESC_FILENAME_COUNTER_LEN
+msgid "Minimum length of counter in filename"
+msgstr ""
+
+#. DESC_TIFF_COMPRESSION_16
+msgid "Compression type if 16 bit image is saved as tiff"
+msgstr ""
+
+#. DESC_TIFF_COMPRESSION_8
+msgid "Compression type if 8 bit image is saved as tiff"
+msgstr ""
+
+#. DESC_TIFF_COMPRESSION_1
+msgid "Compression type if lineart image is saved as tiff"
+msgstr ""
+
+#. DESC_SAVE_DEVPREFS_AT_EXIT
+msgid "Save device dependant preferences in default file at exit of xsane"
+msgstr ""
+
+#. DESC_OVERWRITE_WARNING
+msgid "Warn before overwriting an existing file"
+msgstr ""
+
+#. DESC_SKIP_EXISTING
+msgid ""
+"If filename counter is automatically increased, used numbers are skipped"
+msgstr ""
+
+#. DESC_REDUCE_16BIT_TO_8BIT
+msgid "If scanner sends image with 16 bits/color save image with 8 bits/color"
+msgstr ""
+
+#. DESC_PSFILE_WIDTH
+msgid "Width of paper for postscript files"
+msgstr ""
+
+#. DESC_PSFILE_HEIGHT
+msgid "Height of paper for postscript files"
+msgstr ""
+
+#. DESC_PSFILE_LEFTOFFSET
+msgid ""
+"Left offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+
+#. DESC_PSFILE_BOTTOMOFFSET
+msgid ""
+"Bottom offset from the edge of the paper to the usable area for postscript "
+"files"
+msgstr ""
+
+#. DESC_MAIN_WINDOW_FIXED
+msgid "Use fixed main window size or scrolled, resizable main window"
+msgstr ""
+
+#. DESC_DISABLE_GIMP_PREVIEW_GAMMA
+msgid "Disable preview gamma when XSane runs as gimp plugin"
+msgstr ""
+
+#. DESC_PREVIEW_COLORMAP
+msgid "Use an own colormap for preview if display depth is 8 bpp"
+msgstr ""
+
+#. DESC_PREVIEW_OVERSAMPLING
+msgid "Value with that the calculated preview resolution is multiplied"
+msgstr ""
+
+#. DESC_PREVIEW_GAMMA
+msgid "Set gamma correction value for preview image"
+msgstr ""
+
+#. DESC_PREVIEW_GAMMA_RED
+msgid "Set gamma correction value for red component of preview image"
+msgstr ""
+
+#. DESC_PREVIEW_GAMMA_GREEN
+msgid "Set gamma correction value for green component of preview image"
+msgstr ""
+
+#. DESC_PREVIEW_GAMMA_BLUE
+msgid "Set gamma correction value for blue component of preview image"
+msgstr ""
+
+#. DESC_LINEART_MODE
+msgid "Define the way XSane shall handle the threshold option"
+msgstr ""
+
+#. DESC_GRAYSCALE_SCANMODE
+msgid ""
+"Select grayscale scanmode. This scanmode is used for lineart preview scan "
+"when transformation from grayscale to lineart is enabled"
+msgstr ""
+
+#. DESC_PREVIEW_THRESHOLD_MIN
+#, no-c-format
+msgid "The scanner's minimum threshold level in %"
+msgstr ""
+
+#. DESC_PREVIEW_THRESHOLD_MAX
+#, no-c-format
+msgid "The scanner's maximum threshold level in %"
+msgstr ""
+
+#. DESC_PREVIEW_THRESHOLD_MUL
+msgid ""
+"Multiplier to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+
+#. DESC_PREVIEW_THRESHOLD_OFF
+msgid ""
+"Offset to make XSane threshold range and scanner threshold range the same"
+msgstr ""
+
+#. DESC_ADF_MODE
+msgid ""
+"Select scansource for Automatic Document feeder. If this scansource is "
+"selected XSane scans until \"out of paper\" or error."
+msgstr ""
+
+#. DESC_PREVIEW_PIPETTE_RANGE
+msgid "dimension of square that is used to average color for pipette function"
+msgstr ""
+
+#. DESC_DOC_VIEWER
+msgid ""
+"Enter command to be executed to display helpfiles, must be a html-viewer!"
+msgstr ""
+
+#. DESC_AUTOENHANCE_GAMMA
+msgid "Change gamma value when autoenhancement button is pressed"
+msgstr ""
+
+#. DESC_PRESELECT_SCANAREA
+msgid "Select scanarea after preview scan has finished"
+msgstr ""
+
+#. DESC_AUTOCORRECT_COLORS
+msgid "Do color correction after preview scan has finished"
+msgstr ""
+
+#. DESC_FAX_COMMAND
+msgid "Enter command to be executed in fax mode"
+msgstr ""
+
+#. DESC_FAX_RECEIVER_OPT
+msgid "Enter option to specify receiver"
+msgstr ""
+
+#. DESC_FAX_POSTSCRIPT_OPT
+msgid "Enter option to specify postscript files following"
+msgstr ""
+
+#. DESC_FAX_NORMAL_OPT
+msgid "Enter option to specify normal mode (low resolution)"
+msgstr ""
+
+#. DESC_FAX_FINE_OPT
+msgid "Enter option to specify fine mode (high resolution)"
+msgstr ""
+
+#. DESC_FAX_VIEWER
+msgid "Enter command to be executed to view a fax"
+msgstr ""
+
+#. DESC_FAX_FINE_MODE
+msgid "Send fax with high vertical resolution (196 lpi instead of 98 lpi)"
+msgstr ""
+
+#. DESC_SMTP_SERVER
+msgid "IP Address or Domain name of SMTP server"
+msgstr ""
+
+#. DESC_SMTP_PORT
+msgid "port to connect to SMTP server"
+msgstr ""
+
+#. DESC_MAIL_FROM
+msgid "enter your email address"
+msgstr ""
+
+#. DESC_MAIL_REPLY_TO
+msgid "enter email address for replied emails"
+msgstr ""
+
+#. DESC_POP3_AUTHENTIFICATION
+msgid "Authentificate at POP3 server before sending mail"
+msgstr ""
+
+#. DESC_POP3_SERVER
+msgid "IP Address or Domain name of POP3 server"
+msgstr ""
+
+#. DESC_POP3_PORT
+msgid "port to connect to POP3 server"
+msgstr ""
+
+#. DESC_POP3_USER
+msgid "user name for POP3 server"
+msgstr ""
+
+#. DESC_POP3_PASS
+msgid "password for POP3 server"
+msgstr ""
+
+#. DESC_MAIL_VIEWER
+msgid "Enter command to be executed to view a mail image"
+msgstr ""
+
+#. DESC_HTML_MAIL
+msgid "Mail is sent in html mode, images are displayed directly"
+msgstr ""
+
+#. DESC_OCR_COMMAND
+msgid "Enter command to start ocr program"
+msgstr ""
+
+#. DESC_OCR_INPUTFILE_OPT
+msgid "Enter option of the ocr program to define input file"
+msgstr ""
+
+#. DESC_OCR_OUTPUTFILE_OPT
+msgid "Enter option of the ocr program to define output file"
+msgstr ""
+
+#. DESC_PERMISSION_READ
+msgid "read"
+msgstr ""
+
+#. DESC_PERMISSION_WRITE
+msgid "write"
+msgstr ""
+
+#. DESC_PERMISSION_EXECUTE
+msgid "execute"
+msgstr ""
+
+#. DESC_PIPETTE_WHITE
+msgid "Pick white point"
+msgstr ""
+
+#. DESC_PIPETTE_GRAY
+msgid "Pick gray point"
+msgstr ""
+
+#. DESC_PIPETTE_BLACK
+msgid "Pick black point"
+msgstr ""
+
+#. DESC_ZOOM_FULL
+msgid "Use full scanarea"
+msgstr ""
+
+#. DESC_ZOOM_OUT
+#, no-c-format
+msgid "Zoom 20% out"
+msgstr ""
+
+#. DESC_ZOOM_IN
+msgid "Zoom into selected area"
+msgstr ""
+
+#. DESC_ZOOM_UNDO
+msgid "Undo last zoom"
+msgstr ""
+
+#. DESC_FULL_PREVIEW_AREA
+msgid "Select visible area"
+msgstr ""
+
+#. DESC_AUTOSELECT_SCANAREA
+msgid "Autoselect scanarea"
+msgstr ""
+
+#. DESC_DELETE_IMAGES
+msgid "Delete preview image cache"
+msgstr ""
+
+#. DESC_PRESET_AREA
+msgid "Preset area"
+msgstr ""
+
+#. DESC_ROTATION
+msgid "Rotate preview and scan"
+msgstr ""
+
+#. DESC_VIEWER_OCR
+msgid "Optical Character Recognition"
+msgstr ""
+
+#. DESC_VIEWER_CLONE
+msgid "Clone image"
+msgstr ""
+
+#. DESC_VIEWER_ROTATE90
+msgid "Rotate image 90 degree"
+msgstr ""
+
+#. DESC_VIEWER_ROTATE180
+msgid "Rotate image 180 degree"
+msgstr ""
+
+#. DESC_VIEWER_ROTATE270
+msgid "Rotate image 270 degree"
+msgstr ""
+
+#. DESC_VIEWER_MIRROR_X
+msgid "Mirror image at vertical axis"
+msgstr ""
+
+#. DESC_VIEWER_MIRROR_Y
+msgid "Mirror image at horizontal axis"
+msgstr ""
+
+#. DESC_VIEWER_ZOOM
+msgid "Zoom image"
+msgstr ""
+
+#. DESC_STORE_MEDIUM
+msgid "Store medium"
+msgstr ""
+
+#. DESC_DELETE_MEDIUM
+msgid "Delete active medium"
+msgstr ""
+
+#. ERR_HOME_DIR
+msgid "Failed to determine home directory:"
+msgstr ""
+
+#. ERR_CHANGE_WORKING_DIR
+msgid "Failed to change working directory to"
+msgstr ""
+
+#. ERR_FILENAME_TOO_LONG
+msgid "Filename too long"
+msgstr ""
+
+#. ERR_CREATE_TEMP_FILE
+msgid "Could not create temporary file"
+msgstr ""
+
+#. ERR_SET_OPTION
+msgid "Failed to set value of option"
+msgstr ""
+
+#. ERR_GET_OPTION
+msgid "Failed to obtain value of option"
+msgstr ""
+
+#. ERR_OPTION_COUNT
+msgid "Error obtaining option count"
+msgstr ""
+
+#. ERR_DEVICE_OPEN_FAILED
+msgid "Failed to open device"
+msgstr ""
+
+#. ERR_NO_DEVICES
+msgid "no devices available"
+msgstr ""
+
+#. ERR_DURING_READ
+msgid "Error during read:"
+msgstr ""
+
+#. ERR_DURING_SAVE
+msgid "Error during save:"
+msgstr ""
+
+#. ERR_BAD_DEPTH
+msgid "Can't handle depth"
+msgstr ""
+
+#. ERR_GIMP_BAD_DEPTH
+#, c-format
+msgid "GIMP can't handle depth %d bits/color"
+msgstr ""
+
+#. ERR_UNKNOWN_SAVING_FORMAT
+msgid "Unknown file format for saving"
+msgstr ""
+
+#. ERR_OPEN_FAILED
+msgid "Failed to open"
+msgstr ""
+
+#. ERR_CREATE_SECURE_FILE
+msgid "Could not create secure file (may be a link does exist):"
+msgstr ""
+
+#. ERR_FAILED_PRINTER_PIPE
+msgid "Failed to open pipe for executing printercommand"
+msgstr ""
+
+#. ERR_FAILED_EXEC_PRINTER_CMD
+msgid "Failed to execute printercommand:"
+msgstr ""
+
+#. ERR_FAILED_START_SCANNER
+msgid "Failed to start scanner:"
+msgstr ""
+
+#. ERR_FAILED_GET_PARAMS
+msgid "Failed to get parameters:"
+msgstr ""
+
+#. ERR_NO_OUTPUT_FORMAT
+msgid "No output format given"
+msgstr ""
+
+#. ERR_NO_MEM
+msgid "out of memory"
+msgstr ""
+
+#. ERR_TOO_MUCH_DATA
+msgid "Backend sends more image data than it defined in parameters"
+msgstr ""
+
+#. ERR_LIBTIFF
+msgid "LIBTIFF reports error"
+msgstr ""
+
+#. ERR_LIBPNG
+msgid "LIBPNG reports error"
+msgstr ""
+
+#. ERR_UNKNOWN_TYPE
+msgid "unknown type"
+msgstr ""
+
+#. ERR_UNKNOWN_CONSTRAINT_TYPE
+msgid "unknown constraint type"
+msgstr ""
+
+#. ERR_FAILED_EXEC_DOC_VIEWER
+msgid "Failed to execute documentation viewer:"
+msgstr ""
+
+#. ERR_FAILED_EXEC_FAX_VIEWER
+msgid "Failed to execute fax viewer:"
+msgstr ""
+
+#. ERR_FAILED_EXEC_FAX_CMD
+msgid "Failed to execute fax command:"
+msgstr ""
+
+#. ERR_FAILED_EXEC_MAIL_VIEWER
+msgid "Failed to execute mail image viewer:"
+msgstr ""
+
+#. ERR_FAILED_EXEC_OCR_CMD
+msgid "Failed to execute ocr command:"
+msgstr ""
+
+#. ERR_BAD_FRAME_FORMAT
+msgid "bad frame format"
+msgstr ""
+
+#. ERR_FAILED_SET_RESOLUTION
+msgid "unable to set resolution"
+msgstr ""
+
+#. ERR_PASSWORD_FILE_INSECURE
+#, c-format
+msgid "Password file (%s) is insecure, use permission x00\n"
+msgstr ""
+
+#. ERR_ERROR
+msgid "error"
+msgstr ""
+
+#. ERR_MAJOR_VERSION_NR_CONFLICT
+msgid "Sane major version number mismatch!"
+msgstr ""
+
+#. ERR_XSANE_MAJOR_VERSION
+msgid "XSane major version ="
+msgstr ""
+
+#. ERR_BACKEND_MAJOR_VERSION
+msgid "backend major version ="
+msgstr ""
+
+#. ERR_PROGRAM_ABORTED
+msgid "*** PROGRAM ABORTED ***"
+msgstr ""
+
+#. ERR_FAILED_ALLOCATE_IMAGE
+msgid "Failed to allocate image memory:"
+msgstr ""
+
+#. ERR_PREVIEW_BAD_DEPTH
+msgid "Preview cannot handle bit depth"
+msgstr ""
+
+#. ERR_GIMP_SUPPORT_MISSING
+msgid "GIMP support missing"
+msgstr ""
+
+#. ERR_CREATE_PREVIEW_FILE
+msgid "Could not create temporary preview files"
+msgstr ""
+
+#. ERR_CREATE_PREVIEW_FILENAME
+msgid "Could not create filenames for preview files"
+msgstr ""
+
+#. ERR_CREATE_FAX_PROJECT
+msgid "Could not create faxproject"
+msgstr ""
+
+#. WARN_COUNTER_UNDERRUN
+msgid "Filename counter underrun"
+msgstr ""
+
+#. WARN_NO_VALUE_CONSTRAINT
+msgid "warning: option has no value constraint"
+msgstr ""
+
+#. WARN_XSANE_AS_ROOT
+msgid ""
+"You try to run XSane as ROOT, that really is DANGEROUS!\n"
+"\n"
+"Do not send any bug reports when you\n"
+"have any problem while running XSane as root:\n"
+"YOU ARE ALONE!"
+msgstr ""
+
+#. ERR_HEADER_ERROR
+msgid "Error"
+msgstr ""
+
+#. ERR_HEADER_WARNING
+msgid "Warning"
+msgstr ""
+
+#. ERR_HEADER_INFO
+msgid "Information"
+msgstr ""
+
+#. ERR_FAILED_CREATE_FILE
+msgid "Failed to create file:"
+msgstr ""
+
+#. ERR_LOAD_DEVICE_SETTINGS
+msgid "Error while loading device settings:"
+msgstr ""
+
+#. ERR_NO_DRC_FILE
+msgid "is not a device-rc-file !!!"
+msgstr ""
+
+#. ERR_NETSCAPE_EXECUTE_FAIL
+msgid "Failed to execute netscape!"
+msgstr ""
+
+#. ERR_SENDFAX_RECEIVER_MISSING
+msgid "Send fax: no receiver defined"
+msgstr ""
+
+#. ERR_CREATED_FOR_DEVICE
+msgid "has been created for device"
+msgstr ""
+
+#. ERR_USED_FOR_DEVICE
+msgid "you want to use it for device"
+msgstr ""
+
+#. ERR_MAY_CAUSE_PROBLEMS
+msgid "this may cause problems!"
+msgstr ""
+
+#. WARN_UNSAVED_IMAGES
+#, c-format
+msgid "There are %d unsaved images"
+msgstr ""
+
+#. WARN_FILE_EXISTS
+#, c-format
+msgid "File %s already exists"
+msgstr ""
+
+#. ERR_FILE_NOT_EXISTS
+#, c-format
+msgid "File %s does not exist"
+msgstr ""
+
+#. ERR_FILE_NOT_POSTSCRIPT
+#, c-format
+msgid "File %s is not a postscript file"
+msgstr ""
+
+#. ERR_UNSUPPORTED_OUTPUT_FORMAT
+#, c-format
+msgid "Unsupported %d-bit output format: %s"
+msgstr ""
+
+#. WARN_VIEWER_IMAGE_NOT_SAVED
+msgid "viewer image is not saved"
+msgstr ""
+
+#. TEXT_USAGE
+msgid "Usage:"
+msgstr ""
+
+#. TEXT_USAGE_OPTIONS
+msgid "[OPTION]... [DEVICE]"
+msgstr ""
+
+#. TEXT_HELP
+msgid ""
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) "
+"devices.\n"
+"\n"
+"The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n"
+"[OPTION]... can be a combination of the following items:\n"
+" -h, --help display this help message and exit\n"
+" -v, --version print version information\n"
+" -l, --license print license information\n"
+"\n"
+" -d, --device-settings file load device settings from file (without "
+"\".drc\")\n"
+"\n"
+" -V, --viewer start with viewer-mode active (default)\n"
+" -s, --save start with save-mode active\n"
+" -c, --copy start with copy-mode active\n"
+" -f, --fax start with fax-mode active\n"
+" -m, --mail start with mail-mode active\n"
+" -n, --no-mode-selection disable menu for XSane mode selection\n"
+"\n"
+" -M, --Medium-calibration enable medium calibration mode\n"
+"\n"
+" -F, --Fixed fixed main window size (overwrite preferences "
+"value)\n"
+" -R, --Resizeable resizable, scrolled main window (overwrite "
+"preferences value)\n"
+"\n"
+" -p, --print-filenames print image filenames created by XSane\n"
+" -N, --force-filename name force filename and disable user filename "
+"selection\n"
+"\n"
+" --display X11-display redirect output to X11-display\n"
+" --no-xshm do not use shared memory images\n"
+" --sync request a synchronous connection with the X11 "
+"server"
+msgstr ""
+
+#. strings for gimp plugin
+#. XSANE_GIMP_INSTALL_BLURB
+msgid "Front-end to the SANE interface"
+msgstr ""
+
+#. XSANE_GIMP_INSTALL_HELP
+msgid ""
+"This function provides access to scanners and other image acquisition "
+"devices through the SANE (Scanner Access Now Easy) interface."
+msgstr ""
+
+#. Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/"
+#. XSANE_GIMP_MENU_DIALOG
+msgid "<Toolbox>/File/Acquire/XSane: Device dialog..."
+msgstr ""
+
+#. XSANE_GIMP_MENU
+msgid "<Toolbox>/File/Acquire/XSane: "
+msgstr ""
+
+#. XSANE_GIMP_MENU_DIALOG_OLD
+msgid "<Toolbox>/Xtns/XSane/Device dialog..."
+msgstr ""
+
+#. XSANE_GIMP_MENU_OLD
+msgid "<Toolbox>/Xtns/XSane/"
+msgstr ""
+
+#. strings that are used in structures, so it is not allowed to use _()/gettext() here
+#. gettext_noop does mark these texts but does not change the string
+#. MENU_ITEM_SURFACE_FULL_SIZE
+msgid "full size"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A3P
+msgid "DIN A3 port."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A3L
+msgid "DIN A3 land."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A4P
+msgid "DIN A4 port."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A4L
+msgid "DIN A4 land."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A5P
+msgid "DIN A5 port."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_DIN_A5L
+msgid "DIN A5 land."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_13cmx18cm
+msgid "13cm x 18cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_18cmx13cm
+msgid "18cm x 13cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_10cmx15cm
+msgid "10cm x 15cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_15cmx10cm
+msgid "15cm x 10cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_9cmx13cm
+msgid "9cm x 13cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_13cmx9cm
+msgid "13cm x 9cm"
+msgstr ""
+
+#. MENU_ITEM_SURFACE_legal_P
+msgid "legal port."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_legal_L
+msgid "legal land."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_letter_P
+msgid "letter port."
+msgstr ""
+
+#. MENU_ITEM_SURFACE_letter_L
+msgid "letter land."
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_FULL_RANGE
+msgid "Full range"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_SLIDE
+msgid "Slide"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_STANDARD_NEG
+msgid "Standard negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG
+msgid "Agfa negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4
+msgid "Agfa negative XRG 200-4"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100
+msgid "Agfa negative HDC 100"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_FUJI_NEG
+msgid "Fuji negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_KODAK_NEG
+msgid "Kodak negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG
+msgid "Konica negative"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_KONICA_NEG_VX_100
+msgid "Konica negative VX 100"
+msgstr ""
+
+#. MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100
+msgid "Rossmann negative HR 100"
+msgstr ""
+
+#. Sane backend messages
+msgid "flatbed scanner"
+msgstr ""
+
+msgid "frame grabber"
+msgstr ""
+
+msgid "handheld scanner"
+msgstr ""
+
+msgid "still camera"
+msgstr ""
+
+msgid "video camera"
+msgstr ""
+
+msgid "virtual device"
+msgstr ""
+
+msgid "Success"
+msgstr ""
+
+msgid "Operation not supported"
+msgstr ""
+
+msgid "Operation was cancelled"
+msgstr ""
+
+msgid "Device busy"
+msgstr ""
+
+msgid "Invalid argument"
+msgstr ""
+
+msgid "End of file reached"
+msgstr ""
+
+msgid "Document feeder jammed"
+msgstr ""
+
+msgid "Document feeder out of documents"
+msgstr ""
+
+msgid "Scanner cover is open"
+msgstr ""
+
+msgid "Error during device I/O"
+msgstr ""
+
+msgid "Out of memory"
+msgstr ""
+
+msgid "Access to resource has been denied"
+msgstr ""
diff --git a/print-libs b/print-libs
new file mode 100755
index 0000000..b5dfd8b
--- /dev/null
+++ b/print-libs
@@ -0,0 +1,18 @@
+#!/bin/sh
+echo "TEST FOR SANE:"
+find / -name "sane.h" 2>/dev/null
+find / -name "libsane-dll*" 2>/dev/null
+echo ""
+echo "TEST FOR GTK:"
+find / -name "gtk-config" 2>/dev/null
+find / -name "gtk.h" 2>/dev/null
+find / -name "libgtk*" 2>/dev/null
+echo ""
+echo "TEST FOR GDK:"
+find / -name "gdk.h" 2>/dev/null
+find / -name "libgdk*" 2>/dev/null
+echo ""
+echo "TEST FOR GIMP:"
+find / -name "gimp-config" 2>/dev/null
+find / -name "gimp.h" 2>/dev/null
+find / -name "libgimp*" 2>/dev/null
diff --git a/sanei/Makefile b/sanei/Makefile
deleted file mode 100644
index e69de29..0000000
--- a/sanei/Makefile
+++ /dev/null
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644
index 0000000..81074f4
--- /dev/null
+++ b/src/Makefile.in
@@ -0,0 +1,111 @@
+SHELL = /bin/sh
+
+VPATH = @srcdir@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = ..
+
+sane_prefix = @SANE_PREFIX@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+configdir = ${sysconfdir}/sane.d
+sanedatadir = ${datadir}/sane
+xsanedocdir = ${datadir}/sane/xsane/doc
+
+MKINSTALLDIRS = @MKINSTALLDIRS@
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+
+CC = @CC@
+INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include @INCLUDES@
+DEFS = @DEFS@ -DLOCALEDIR=$(datadir)/locale
+CPPFLAGS = @CPPFLAGS@ -DPATH_XSANE_DOC_DIR=\$(xsanedocdir) -DPATH_SANE_DATA_DIR=\$(sanedatadir)
+CFLAGS = @CFLAGS@
+CFLAGS_EXTRA = @SANE_CFLAGS@ @GIMP_CFLAGS@ @GTK_CFLAGS@
+LDFLAGS = @LDFLAGS@ @SANE_LDFLAGS@
+LIBS = @SANE_LIBS@ @GIMP_LIBS@ @GTK_LIBS@ @INTLLIBS@ @LIBS@
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_EXTRA)
+LINK = $(CC) $(LDFLAGS) -o $@
+
+BINPROGS = @BINPROGS@
+
+@SET_MAKE@
+
+PROGRAMS = $(BINPROGS)
+LIBLIB = ../lib/liblib.a
+
+XSANE_OBJS = xsane-back-gtk.o xsane-front-gtk.o xsane-gamma.o \
+ xsane-preview.o xsane-viewer.o \
+ xsane-rc-io.o xsane-device-preferences.o \
+ xsane-preferences.o xsane-setup.o xsane-save.o xsane-scan.o \
+ xsane-icons.o xsane.o
+
+
+.c.o:
+ $(COMPILE) $<
+
+all: $(PROGRAMS)
+
+install: $(PROGRAMS)
+ $(MKINSTALLDIRS) $(bindir) $(sbindir) $(datadir) $(sanedatadir) $(xsanedocdir) $(sanedatadir)/xsane
+ @for program in $(BINPROGS); do \
+ $(INSTALL_PROGRAM) $${program} $(bindir)/$${program}; \
+ done
+ $(INSTALL_DATA) $(srcdir)/xsane-style.rc $(sanedatadir)/xsane/xsane-style.rc
+ $(INSTALL_DATA) $(srcdir)/xsane-startimage.pnm $(sanedatadir)/xsane/xsane-startimage.pnm
+ $(INSTALL_DATA) $(srcdir)/xsane-calibration.pnm $(sanedatadir)/xsane/xsane-calibration.pnm
+ $(INSTALL_DATA) $(srcdir)/xsane-logo.xpm $(sanedatadir)/xsane/xsane-logo.xpm
+ $(INSTALL_DATA) $(srcdir)/xsane-license.txt $(sanedatadir)/xsane/xsane-license.txt
+ @for logo in *-logo.xpm; do \
+ echo installing $(sanedatadir)/xsane/$${logo}; \
+ $(INSTALL_DATA) $(srcdir)/$${logo} $(sanedatadir)/xsane/$${logo}; \
+ done
+
+uninstall:
+ @for program in $(BINPROGS); do \
+ echo uninstalling $(bindir)/$${program}...; \
+ rm -f $(bindir)/$${program}; \
+ done
+ echo uninstalling $(sanedatadir)/xsane/xsane-style.rc...
+ rm -f $(sanedatadir)/xsane/xsane-style.rc
+ echo uninstalling $(sanedatadir)/xsane/xsane-startimage.pnm...
+ rm -f $(sanedatadir)/xsane/xsane-startimage.pnm
+ echo uninstalling $(sanedatadir)/xsane/xsane-calibration.pnm...
+ rm -f $(sanedatadir)/xsane/xsane-calibration.pnm
+ echo uninstalling $(sanedatadir)/xsane/xsane-logo.xpm...
+ rm -f $(sanedatadir)/xsane/xsane-logo.xpm
+ @for logo in *-logo.xpm; do \
+ echo uninstalling $(sanedatadir)/xsane/$${logo}; \
+ rm -f $(sanedatadir)/xsane/$${logo}; \
+ done
+
+xsane: $(XSANE_OBJS) $(LIBLIB)
+ $(LINK) $(XSANE_OBJS) \
+ $(LIBLIB) $(LIBS) $(SANE_LIBS)
+
+
+clean:
+ rm -f *.o *~ .*~ *.bak
+ rm -rf .libs
+
+distclean: clean
+ rm -f Makefile $(PROGRAMS)
+
+depend:
+ makedepend $(INCLUDES) *.c
+
+.PHONY: all install depend clean distclean
diff --git a/src/Makefile.in.WIN32 b/src/Makefile.in.WIN32
new file mode 100644
index 0000000..46619d3
--- /dev/null
+++ b/src/Makefile.in.WIN32
@@ -0,0 +1,83 @@
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = ..
+
+sanedir = @prefix@
+
+bindir = $(sanedir)
+datadir = $(sanedir)'\\'share
+sanedatadir = $(datadir)'\\'sane
+xsanedocdir = ${datadir}'\\'sane'\\'xsane'\\'doc
+
+MKINSTALLDIRS = @MKINSTALLDIRS@
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+
+CC = @CC@ -mwindows
+INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include \
+ @GTK_CFLAGS@ @INCLUDES@ -I/usr/include -I/usr/include/gdk
+DEFS = -D_WIN32 @DEFS@ -DXSANE_FIXED_HOME_PATH=$(sanedir)'\\'home -DTEMP_PATH=c:'\\'temp -DSLASH=92 -DBUGGY_GDK_INPUT_EXCEPTION -DLOCALEDIR=share/locale
+CPPFLAGS = @CPPFLAGS@ -DPATH_XSANE_DOC_DIR=\$(xsanedocdir) -DPATH_SANE_DATA_DIR=\$(sanedatadir)
+CFLAGS = @CFLAGS@ -fnative-struct
+LDFLAGS = @LDFLAGS@
+LIBS = -lintl -lsane @LIBS@
+# GTK_LIBS = @GTK_LIBS@
+# GIMP_LIBS = @GIMP_LIBS@
+GTK_LIBS = -lgtk-1.3 -lgdk-1.3
+GIMP_LIBS = -lgimp-1.2 -lglib-1.3
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
+LINK = $(CC) $(LDFLAGS) -o $@
+
+BINPROGS = @BINPROGS@
+
+@SET_MAKE@
+
+PROGRAMS = $(BINPROGS)
+LIBLIB = ../lib/liblib.a
+
+XSANE_OBJS = xsane-back-gtk.o xsane-front-gtk.o xsane-gamma.o xsane-preview.o \
+ xsane-viewer.o xsane-rc-io.o xsane-device-preferences.o \
+ xsane-preferences.o xsane-setup.o xsane-save.o xsane-scan.o \
+ xsane-icons.o xsane.o
+
+.c.o:
+ $(COMPILE) $<
+
+all: $(PROGRAMS)
+
+install: $(PROGRAMS)
+ $(MKINSTALLDIRS) $(bindir) $(datadir) $(sanedatadir) $(xsanedocdir) $(sanedatadir)/xsane
+ @for program in $(BINPROGS); do \
+ $(INSTALL_PROGRAM) $${program} $(bindir)/$${program}; \
+ done
+ $(INSTALL_DATA) $(srcdir)/xsane-WIN32.txt $(sanedir)/xsane-WIN32.txt
+ $(INSTALL_DATA) $(srcdir)/xsane-style.rc $(sanedatadir)/xsane/xsane-style.rc
+ $(INSTALL_DATA) $(srcdir)/xsane-startimage.pnm $(sanedatadir)/xsane/xsane-startimage.pnm
+ $(INSTALL_DATA) $(srcdir)/xsane-calibration.pnm $(sanedatadir)/xsane/xsane-calibration.pnm
+ $(INSTALL_DATA) $(srcdir)/xsane-logo.xpm $(sanedatadir)/xsane/xsane-logo.xpm
+ $(INSTALL_DATA) $(srcdir)/xsane-license.txt $(sanedatadir)/xsane/xsane-license.txt
+ @for logo in *-logo.xpm; do \
+ echo installing $(sanedatadir)/xsane/$${logo}; \
+ $(INSTALL_DATA) $(srcdir)/$${logo} $(sanedatadir)/xsane/$${logo}; \
+ done
+
+xsane: $(XSANE_OBJS) $(LIBLIB)
+ $(LINK) $(XSANE_OBJS) \
+ $(LIBLIB) $(GIMP_LIBS) $(GTK_LIBS) $(LIBS)
+
+
+clean:
+ rm -f *.o *~ .*~ *.bak
+ rm -rf .libs
+
+distclean: clean
+ rm -f Makefile $(PROGRAMS)
+
+depend:
+ makedepend $(INCLUDES) *.c
+
+.PHONY: all depend clean distclean
diff --git a/src/Mustek-logo.txt b/src/Mustek-logo.txt
new file mode 100644
index 0000000..2e152ec
--- /dev/null
+++ b/src/Mustek-logo.txt
@@ -0,0 +1,17 @@
+From: "Tom" <tom.wang@mustek.com.tw>
+To: "Henning Meier-Geinitz" <henning@meier-geinitz.de>
+
+Hi:
+I discuss with the manager again and he agrees that the order of
+logos is not important.
+You can use the logo you provided and forget my previous mail.
+
+Tom
+
+ Hi:
+ The manager of product design department prefers to reverse the order
+ or SANE logo and Mustek logo.
+ That is, to put the Mustek logo on the left side of SANE logo.
+ How do you think about this suggestion?
+
+ Tom
diff --git a/src/Mustek-logo.xpm b/src/Mustek-logo.xpm
new file mode 100644
index 0000000..b4e9ee7
--- /dev/null
+++ b/src/Mustek-logo.xpm
@@ -0,0 +1,527 @@
+/* XPM */
+static char * sane_mustek_big_xpm[] = {
+"256 48 476 2",
+" c None",
+". c #3AAB6C",
+"+ c #069444",
+"@ c #28A35E",
+"# c #37A969",
+"$ c #029341",
+"% c #3BAB6C",
+"& c #AEA282",
+"* c #D6CAA6",
+"= c #EAE6C6",
+"- c #DED6B2",
+"; c #DACEAA",
+"> c #E6DEBE",
+", c #DED6AE",
+"' c #E6DEC2",
+") c #DAD2AA",
+"! c #BEB68E",
+"~ c #C2B68E",
+"{ c #BEB692",
+"] c #009240",
+"^ c #0D974A",
+"/ c #AAA27E",
+"( c #EAE2C2",
+"_ c #E2DAB6",
+": c #DAD2AE",
+"< c #CABE96",
+"[ c #D6CAA2",
+"} c #CEC29A",
+"| c #D6CEA6",
+"1 c #C6BA92",
+"2 c #D2C69E",
+"3 c #AEA682",
+"4 c #CAC29A",
+"5 c #B2AA82",
+"6 c #1D9E56",
+"7 c #CECAB6",
+"8 c #E6DEBA",
+"9 c #B6AA82",
+"0 c #D2CAA2",
+"a c #AEA67E",
+"b c #22A05A",
+"c c #65BD8C",
+"d c #25A15B",
+"e c #EAE6D2",
+"f c #CEC29E",
+"g c #BAAE86",
+"h c #BEB28A",
+"i c #AA9E7A",
+"j c #BEB28E",
+"k c #AEA27E",
+"l c #A69A7A",
+"m c #968E6E",
+"n c #57B781",
+"o c #5DBA86",
+"p c #C6BA96",
+"q c #DED2AE",
+"r c #CEC69E",
+"s c #BAAE8A",
+"t c #9A8E6E",
+"u c #E2DEC6",
+"v c #E2D6B2",
+"w c #B6AE86",
+"x c #C6BE96",
+"y c #A29676",
+"z c #B6AA86",
+"A c #B2A67E",
+"B c #968E6A",
+"C c #7E7256",
+"D c #F6F2E6",
+"E c #B2A682",
+"F c #665E46",
+"G c #C2BA92",
+"H c #A69A76",
+"I c #A29A76",
+"J c #9E9672",
+"K c #4E4A36",
+"L c #3EAC6F",
+"M c #27A25D",
+"N c #EAE2C6",
+"O c #B2AA86",
+"P c #C2B692",
+"Q c #968A6A",
+"R c #867A5E",
+"S c #564E3A",
+"T c #3A3226",
+"U c #2E2A1E",
+"V c #26261A",
+"W c #221E16",
+"X c #1A1612",
+"Y c #1E1A16",
+"Z c #322E22",
+"` c #3A3626",
+" . c #4A4632",
+".. c #BAB28A",
+"+. c #A29672",
+"@. c #625E46",
+"#. c #BEE3CE",
+"$. c #53B57E",
+"%. c #EAF6EF",
+"&. c #D4ECDE",
+"*. c #71C295",
+"=. c #56523E",
+"-. c #1A1A12",
+";. c #060606",
+">. c #5A523E",
+",. c #16160E",
+"'. c #A6D9BC",
+"). c #9BD4B4",
+"!. c #48B176",
+"~. c #B7E0C9",
+"{. c #B6AE8A",
+"]. c #7E765A",
+"^. c #020206",
+"/. c #8A8262",
+"(. c #A69E7A",
+"_. c #6CC091",
+":. c #5CB985",
+"<. c #E0F1E7",
+"[. c #8DCEA9",
+"}. c #7CC79D",
+"|. c #EEE6CE",
+"1. c #1E1E16",
+"2. c #B4DEC7",
+"3. c #D6EDE0",
+"4. c #CDE9D9",
+"5. c #4FB47B",
+"6. c #16120E",
+"7. c #B8E0C9",
+"8. c #79C59B",
+"9. c #38AA6A",
+"0. c #91D0AC",
+"a. c #5E5642",
+"b. c #EEEAD2",
+"c. c #120E0E",
+"d. c #58B782",
+"e. c #C2E5D1",
+"f. c #76C498",
+"g. c #75C498",
+"h. c #5A563E",
+"i. c #7A7256",
+"j. c #9E9272",
+"k. c #A1D6B8",
+"l. c #C0E4CF",
+"m. c #C5E6D3",
+"n. c #EAE9E9",
+"o. c #E1E1E1",
+"p. c #D6D5D5",
+"q. c #C6C5C5",
+"r. c #858382",
+"s. c #848281",
+"t. c #C1C0C0",
+"u. c #E2DABA",
+"v. c #CABE9A",
+"w. c #72664E",
+"x. c #726A52",
+"y. c #BFE3CE",
+"z. c #5BB984",
+"A. c #6ABF8F",
+"B. c #797776",
+"C. c #4E4B4A",
+"D. c #D8D7D7",
+"E. c #B9B8B8",
+"F. c #B2B0B0",
+"G. c #47B075",
+"H. c #87CBA5",
+"I. c #5FBA87",
+"J. c #6EC192",
+"K. c #B0DDC4",
+"L. c #82765A",
+"M. c #8BCDA8",
+"N. c #44AF73",
+"O. c #E5F3EB",
+"P. c #A9DABE",
+"Q. c #4E4636",
+"R. c #2A261E",
+"S. c #928666",
+"T. c #C0E3CF",
+"U. c #42AE71",
+"V. c #4AB177",
+"W. c #E8E7E7",
+"X. c #26221A",
+"Y. c #A29A8A",
+"Z. c #AAA27A",
+"`. c #9DD5B5",
+" + c #80C8A0",
+".+ c #4BB278",
+"++ c #67BE8D",
+"@+ c #8ACDA7",
+"#+ c #DCDBDB",
+"$+ c #867E5E",
+"%+ c #EEEACE",
+"&+ c #D2C6A2",
+"*+ c #55B680",
+"=+ c #C9E8D6",
+"-+ c #CFEADB",
+";+ c #CAC9C9",
+">+ c #C0BFBF",
+",+ c #D8D8D8",
+"'+ c #A3A2A1",
+")+ c #757372",
+"!+ c #878584",
+"~+ c #B5B4B4",
+"{+ c #DFDFDF",
+"]+ c #9F9D9D",
+"^+ c #A7A5A5",
+"/+ c #D0CFCF",
+"(+ c #D2D1D1",
+"_+ c #82807F",
+":+ c #7B7978",
+"<+ c #777574",
+"[+ c #8C8A89",
+"}+ c #ACABAA",
+"|+ c #ECECEB",
+"1+ c #8A7E62",
+"2+ c #766E52",
+"3+ c #DBEFE4",
+"4+ c #E7E7E6",
+"5+ c #747271",
+"6+ c #D6D6D5",
+"7+ c #868383",
+"8+ c #908E8D",
+"9+ c #9C9A99",
+"0+ c #E2E2E2",
+"a+ c #BCBBBB",
+"b+ c #787575",
+"c+ c #625A46",
+"d+ c #E2DABE",
+"e+ c #9E9676",
+"f+ c #B1DDC4",
+"g+ c #61BB89",
+"h+ c #3CAB6D",
+"i+ c #64BD8B",
+"j+ c #E4E4E4",
+"k+ c #8C8A8A",
+"l+ c #C2C1C0",
+"m+ c #5E5A42",
+"n+ c #3E3A2A",
+"o+ c #9A926E",
+"p+ c #8E8666",
+"q+ c #60BB88",
+"r+ c #68BE8E",
+"s+ c #A8D9BE",
+"t+ c #AADABF",
+"u+ c #8CCEA9",
+"v+ c #7FC89F",
+"w+ c #46B074",
+"x+ c #A2A0A0",
+"y+ c #B5B3B3",
+"z+ c #DED6BE",
+"A+ c #8A8266",
+"B+ c #4A4232",
+"C+ c #464232",
+"D+ c #625A42",
+"E+ c #ABDBC0",
+"F+ c #EBF6F0",
+"G+ c #9AD3B3",
+"H+ c #CBE8D8",
+"I+ c #9A9897",
+"J+ c #A09E9E",
+"K+ c #E9E9E9",
+"L+ c #B9B7B7",
+"M+ c #E6DABA",
+"N+ c #766E56",
+"O+ c #BCE2CD",
+"P+ c #C1E4D0",
+"Q+ c #56B780",
+"R+ c #45AF74",
+"S+ c #B2B0AF",
+"T+ c #AFAEAD",
+"U+ c #E1E0E0",
+"V+ c #767373",
+"W+ c #9E9D9C",
+"X+ c #BBBAB9",
+"Y+ c #E8E8E8",
+"Z+ c #DDDDDD",
+"`+ c #CFCFCE",
+" @ c #9A9998",
+".@ c #D6CAAE",
+"+@ c #CAC29E",
+"@@ c #524A3A",
+"#@ c #121216",
+"$@ c #2632B6",
+"%@ c #222EFA",
+"&@ c #262A92",
+"*@ c #5A5246",
+"=@ c #423E2E",
+"-@ c #4DB37A",
+";@ c #7DC79E",
+">@ c #6BBF90",
+",@ c #83CAA2",
+"'@ c #E6E6E6",
+")@ c #A09F9E",
+"!@ c #BEBDBD",
+"~@ c #DBDBDA",
+"{@ c #C9C8C7",
+"]@ c #A9A7A7",
+"^@ c #ACAAAA",
+"/@ c #CBCACA",
+"(@ c #8E8C8B",
+"_@ c #CABE9E",
+":@ c #CEC6A2",
+"<@ c #222AFA",
+"[@ c #161EFA",
+"}@ c #5E72FE",
+"|@ c #2A36FA",
+"1@ c #5266FE",
+"2@ c #3242FE",
+"3@ c #0E0E0A",
+"4@ c #726A4E",
+"5@ c #95D1AF",
+"6@ c #918F8E",
+"7@ c #C7C6C6",
+"8@ c #999797",
+"9@ c #8A8887",
+"0@ c #EEE6CA",
+"a@ c #0A0A0A",
+"b@ c #2E3AFA",
+"c@ c #7A92FE",
+"d@ c #465AFE",
+"e@ c #6276FE",
+"f@ c #1A22FA",
+"g@ c #3A4AFE",
+"h@ c #3DAC6E",
+"i@ c #7AC69B",
+"j@ c #88CCA6",
+"k@ c #D7D6D6",
+"l@ c #787675",
+"m@ c #7A7877",
+"n@ c #2632FA",
+"o@ c #4252FE",
+"p@ c #4256FE",
+"q@ c #A6BAFE",
+"r@ c #5A6AFE",
+"s@ c #4A5EFE",
+"t@ c #1E22FA",
+"u@ c #4E5AD6",
+"v@ c #94D1AF",
+"w@ c #3FAD6F",
+"x@ c #5EBA86",
+"y@ c #C4C3C3",
+"z@ c #C4C3C2",
+"A@ c #3E4EFE",
+"B@ c #3646FE",
+"C@ c #7286FE",
+"D@ c #E6F6FE",
+"E@ c #FAFAF6",
+"F@ c #BED2FE",
+"G@ c #627AFE",
+"H@ c #AABAFE",
+"I@ c #5A6EFE",
+"J@ c #7EC89E",
+"K@ c #AFDCC3",
+"L@ c #A2D7B9",
+"M@ c #DBDADA",
+"N@ c #D2CAAA",
+"O@ c #5A5642",
+"P@ c #1E26FA",
+"Q@ c #BACEFE",
+"R@ c #9AAEFE",
+"S@ c #667AFE",
+"T@ c #F2EED6",
+"U@ c #F2EEDE",
+"V@ c #BDE2CD",
+"W@ c #93D1AE",
+"X@ c #7F7C7C",
+"Y@ c #BAB9B9",
+"Z@ c #7D7B7A",
+"`@ c #BBBABA",
+" # c #EAE2CE",
+".# c #262EFA",
+"+# c #566AFE",
+"@# c #EEF2F6",
+"## c #F6F6F6",
+"$# c #41AE71",
+"%# c #EDECEC",
+"&# c #B2B1B0",
+"*# c #8C8B8A",
+"=# c #807E7D",
+"-# c #969494",
+";# c #8B8988",
+"># c #888686",
+",# c #9B9999",
+"'# c #A5A4A3",
+")# c #B1B0AF",
+"!# c #6A624A",
+"~# c #96AAFE",
+"{# c #F6FAF6",
+"]# c #7E92FE",
+"^# c #3646FA",
+"/# c #FAFAF2",
+"(# c #8ECEAA",
+"_# c #E9F5EE",
+":# c #BDBCBB",
+"<# c #A3A1A0",
+"[# c #676564",
+"}# c #8E8D8C",
+"|# c #D3D2D2",
+"1# c #C9C8C8",
+"2# c #888685",
+"3# c #B4B3B2",
+"4# c #7E766A",
+"5# c #728AFE",
+"6# c #5A72FE",
+"7# c #BED6FE",
+"8# c #5262FE",
+"9# c #323EFA",
+"0# c #B1DEC5",
+"a# c #A0D6B8",
+"b# c #9ED5B6",
+"c# c #BFBEBD",
+"d# c #AEADAC",
+"e# c #979594",
+"f# c #C0BFBE",
+"g# c #26261E",
+"h# c #4EB37A",
+"i# c #EAEAEA",
+"j# c #B0AEAE",
+"k# c #959392",
+"l# c #524E3A",
+"m# c #3642FE",
+"n# c #E3F3EA",
+"o# c #E8F5ED",
+"p# c #D2D2D1",
+"q# c #A8A7A6",
+"r# c #ADACAB",
+"s# c #A29A7A",
+"t# c #665E6E",
+"u# c #BAB2AA",
+"v# c #867E62",
+"w# c #6E664A",
+"x# c #39AA6B",
+"y# c #B6DFC8",
+"z# c #9FD6B7",
+"A# c #96D2B0",
+"B# c #656262",
+"C# c #7F7D7C",
+"D# c #9C9B9A",
+"E# c #7D7A7A",
+"F# c #939291",
+"G# c #AEA27A",
+"H# c #C6E6D4",
+"I# c #DAEFE3",
+"J# c #D9EEE2",
+"K# c #D7EDE1",
+"L# c #D5EDDF",
+"M# c #D2EBDD",
+"N# c #B6DFC7",
+"O# c #838181",
+"P# c #B7B5B5",
+"Q# c #2E2A22",
+"R# c #D6CEAA",
+"S# c #EAE6CA",
+"T# c #767473",
+"U# c #AEACAC",
+"V# c #ABA9A9",
+"W# c #8D8B8B",
+"X# c #D4D4D3",
+"Y# c #7C7A79",
+"Z# c #CDCDCC",
+"`# c #989696",
+" $ c #A9A8A8",
+".$ c #C3C2C2",
+"+$ c #AAA282",
+"@$ c #827A5A",
+"#$ c #221E1A",
+"$$ c #463E32",
+"%$ c #222216",
+"&$ c #29A35E",
+"*$ c #3A362A",
+"=$ c #423A2E",
+"-$ c #4A4636",
+";$ c #423A2A",
+">$ c #463E2E",
+",$ c #22221A",
+"'$ c #0C9749",
+")$ c #079545",
+" . + @ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # $ % ",
+" & * = - ; > , ' ) ! ~ { ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ",
+" / ( _ = : _ < [ } [ | < | 1 2 3 4 1 [ - < } 5 @ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] 6 ",
+" 7 > 8 - | < 9 ~ 4 0 1 1 < < ~ a ~ < 0 ~ ~ ~ < 1 a 1 } } 3 # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] b c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c d ] ] # ",
+" e > | f < g 1 h i < h j ~ 1 9 ~ g i 1 h g ~ 4 g ~ h k < h g 1 1 l m # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" p = q < < } 1 r 2 s g ~ ~ < } 1 r 2 s ~ s ~ } } 1 < 2 s ~ g 1 } } 1 < } t # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" u v 1 ~ 2 g 4 < r g 9 9 w x g < y 4 g z A ~ < h < < r g g 9 1 } h < < 4 g 5 B C # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" = D 0 A g E h r s g 0 < A g k A r h g 0 < A g k g < h g | < z s k g } ~ g | 1 z k F # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" = 1 G | < < g ~ ~ ~ g j * < 1 g E g A H H z y i I 3 9 h z h 2 < 1 h ~ ~ ~ z ~ < J i K # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] # # ] L L L L L L M ] ] ] ] ] ] ] ] ] ] # L L L L L L # ] ] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" N v * h O P z ~ s z h r h k 9 Q R S T U V W W X Y Z ` .F Q H / ~ h 1 ..9 h r g +.~ g @. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] #.] $. %.] ] ] ] ] ] ] ] ] ] &. *.] ] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" ( _ } ~ r ~ } 4 ~ g * g R =.-.;. >.Q 9 0 4 1 ~ | 1 h | ! } Q ,. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] # '.] ). !.] ] ] ] ] ] ] ] % ~.] ] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" = {.h ~ r s 1 A < g ].X ^. /.} 5 < 1 h ~ (.0 h ~ J X # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] _.:.] <. [.] ] ] ] ] ] ] ] }. ] ] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" |.< ~ ~ / < ~ < < y ^. = | < < g 1 ~ / ~ 1 ~ 1. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] 2.] L 3.] ] ] ] ] ] ] ] 4. 5.] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" > 1 h h i < h g s +.6. = ~ g 1 s j ~ (.< h A ,. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] 7.] 8. . ] ] ] ] ] ] 9. 0.] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" _ : 0 ~ 1 1 < < < s a. _ b.; < 1 1 } 0 h ~ ~ < g c. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] d.*.] e. f.] ] ] ] ] ] g. 3.] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" ) _ ~ z A j 1 9 < 1 g h. 5 /.i.t H ~ 1 < h 9 9 ~ ~ j.;. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] k.9.] l.] ] ] ] ] ] m. 9.] ] ] ] ] ] ] ] ] ] ] n n.o.p. q.r.s.s.s.s.s.s.t. o ] ] # ",
+" u.| 2 g h ~ ~ < 1 v.z w. S x.t 9 [ 0 ~ ~ h Q ^. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] y.] z. ] ] ] ] ] ] A.] ] ] ] ] ] ] ] ] ] ] n B.C.C.C.C.C.C.D. E.C.C.C.C.C.C.C.F. o ] ] # ",
+" * } 1 < < < g 1 ~ h ~ y x. w.Q h < < } a. # ] ] ] ] ] ] ] ] ] ] ] ] ] G.H.] k. I.] ] ] ] J. K.] ] ] ] ] ] ] ] ] ] ] n C.C.C.C.C.C.C.D. E.C.C.C.C.C.C.C.F. o ] ] # ",
+" _ ~ ! < ~ 1 ~ E x [ g (.L. R k < 9 -. # ] ] ] ] ] ] ] ] ] ] ] ] ] M.N.] O. P.] ] ] ] #. ] ] ] ] ] ] ] ] ] ] ] n C.C.C.C.C.C.C.D. E.C.C.C.C.C.C.C.F. o ] ] # ",
+" ; } * z < g s 1 | 2 a H Q.R. S.z t ^. # ] ] ] ] ] ] ] ] ] ] ] ] ] T.] U. ] ] ] ] V.] ] ] ] ] ] ] ] ] ] n W.C.C.C.C.C.C.C.D. E.C.C.C.C.C.C.C.F. o ] ] # ",
+" < r g ~ s 1 h k i.X.^. { 2 2 Y. 0 ( < Z. k . # ] ] ] ] ] ] ] ] ] ] ] ] . `.] + .+] ] ++ @+] ] ] ] ] ] ] ] ] ] n #+C.C.C.C.C.C.C.D. E.C.C.C.C.C.C.C.F. o ] ] # ",
+" h g < s < z $+Y ^. _ %+( > [ 1 | 2 | 0 &+1 9 / } r g / U # ] ] ] ] ] ] ] ] ] ] ] ] f.*+] =+ 0.] ] ~. -+] ] ] ] ] ] ] ] ] ] n ;+>+>+>+>+>+>+>+ >+>+>+>+>+>+>+>+ ,+'+C.C.C.C.)+!+~+ {+>+>+]+C.C.C.C.C.C.C.^+>+>+/+ (+'+_+:+<+:+[+}+|+ E.C.C.C.C.C.C.C.F. >+>+>+>+>+>+>+>+ o ] ] # ",
+" g 0 g 1+X.^. ( _ * 2 } h 1 3 < ~ ~ w ~ < h 3 2+ /.g g x E /. # ] ] ] ] ] ] ] ] ] ] ] ] 7.] ] 3+] ] ] ] ] ] ] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.5+ 6+[+C.C.C.C.C.C.C.C.C.C.7+ E.C.C.C.C.C.C.C.C.C.C.C.C.C.8+ ~+C.C.C.C.C.C.C.C.C.C.9+0+ E.C.C.C.C.C.C.C.F. a+C.C.C.C.C.C.b+ o ] ] # ",
+" h c+^. d+%+u.) < ~ g e+G E ~ g ~ ~ ~ ~ } r h w i. ~ < } } S. # ] ] ] ] ] ] ] ] ] ] ] ] f+] g+ h+I. i+] ] ] ] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.r. C.C.C.C.C.C.C.C.C.C.C.C.C.C. E.C.C.C.C.C.C.C.C.C.C.C.C.C.8+ j+E.C.C.C.C.C.C.C.C.C.C.C.C.C.0+ E.C.C.C.C.C.C.C.F. k+C.C.C.C.C.C.l+ o ] ] # ",
+" = f $+m+S K n+Z n+Z Z Z n+n+K S F ].1+o+/ j.S ~ r ~ h p+m+ # ] ] ] ] ] ] ] ] ] ] ] q+r+] s+ t+u+ v+~. w+ P.] ] ] ] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.r. C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C. E.C.C.C.C.C.C.C.C.C.C.C.C.C.8+ C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.|+ E.C.C.C.C.C.C.C.F. x+C.C.C.C.C.C.y+ o ] ] # ",
+" z+A+X.,. B+C+D+c+ s &+2 | ~ p+ # ] ] ] ] ] ] ] ] ] ] ] E+] ] F+ *+# G+] H+ F+] ] ] ] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.r. I+C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.J+E.C.C.C.C.C.C.C.C.C.C.C.C.C.8+ K+C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C. E.C.C.C.C.C.C.C.F. L+C.C.C.C.C.C.^+ o ] ] # ",
+" M+> P j.g 1 +. Z < 2 ~ < h N+ # ] ] ] ] ] ] ] ] ] ] ] O+] w+ ] ] P+ Q+] }. R+] ] ] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.r. C.C.C.C.C.C.C.S+ K+T+U+C.C.C.C.V+W+E.C.C.C.C.C.C.C.C.C.C.C.C.C.8+ B.C.C.C.C.C.C.C.X+Y+Z+C.C.C.C.C.C.C._+ E.C.C.C.C.C.C.C.F.`+C.C.C.C.C.C. @ o ] ] # ",
+" .@+@@@#@$@%@&@*@(.a _ h < } w =@ # ] ] ] ] ] ] ] ] ] ] -@;@] H. #.] ] >@ ] ] h+ ,@] ] ] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.r. C.C.C.C.C.C.C.C.^+a+#+'@)@!@~@ 9+C.C.C.C.C.C.C.{@ 6+C.C.C.C.C.C.C.]@ ^@C.C.C.C.C.C.C./@ E.C.C.C.C.C.C.C.F.C.C.C.C.C.C.(@ o ] ] # ",
+" _@:@;.<@[@}@|@1@2@[@I H 3@ _ h 2 9 < 4@ # ] ] ] ] ] ] ] ] ] ] 5@L ] -+ f.] ] ] l.] ] ] 3. =+] ] ] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.r. C.C.C.C.C.C.C.C.C.C.C.C.B.6@7@ 9+C.C.C.C.C.C.C.D. 8@C.C.C.C.C.C.C._+J+J+J+J+C.C.C.C.C.C.C.9@ E.C.C.C.C.C.C.C.C.C.C.C.C.C.C.|+ o ] ] # ",
+" 0@a@<@b@<@c@d@e@f@g@[@h x. ) < } g 1 A X. # ] ] ] ] ] ] ] ] ] ] T.] # h@] ] ] ~. i@] ] ] j@ ] ] ] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.r. ^+C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.k@ 9+C.C.C.C.C.C.C.D. l@C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.V+ E.C.C.C.C.C.C.C.C.C.C.C.C.C.C.m@ o ] ] # ",
+" > x.<@<@n@o@p@q@r@s@t@|@u@* Y %+0 A ~ g 9 U # ] ] ] ] ] ] ] ] ] L v@] r+ <.] ] ] ] g+ w@] ] ] U. x@] ] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.r. y@C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C. 9+C.C.C.C.C.C.C.D. C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.)+ E.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.z@ o ] ] # ",
+" b.;.t@A@B@C@D@E@F@G@H@I@|@: ` > ; h 1 h ~ =@ # ] ] ] ] ] ] ] ] ] J@-@] K@ ).] ] ] ] ] O.] ] ] ] ] <. L@] ] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.r. U+C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.M@ 9+C.C.C.C.C.C.C.D. C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.5+ E.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.V+ o ] ] # ",
+" N@q O@ u.^.P@n@d@Q@E@E@E@E@R@S@o@T@Z. U@} 1 1 4 < K # ] ] ] ] ] ] ] ] ] V@] ] d.] ] ] ] ] E+ L@] ] ] ] ] W@ O.] ] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.r. |+X@C.C.C.C.C.C.C.C.C.C.C.C.C.C.Y@ 9+C.C.C.C.C.C.C.D. 5+C.C.C.C.C.C.C.)+)+)+)+)+)+)+)+)+)+)+)+Z@ E.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.`@ o ] ] # ",
+" #( w.^. h ^..#.#+#@#E@E@E@##}@<@<@T@$+ b.&+1 g z 1 K # ] ] ] ] ] ] ] ] ] t+] .+ ] ] ] ] ] ] n x@] ] ] ] ] V. $#] ] ] ] ] ] n _+C.C.C.C.C.C.C.n. 4+C.C.C.C.C.C.C.r. %#&#*#=#C.C.C.C.C.C.C.C.C.C.C.-# 9+C.C.C.C.C.C.C.D. ;#C.C.C.C.C.C.C.a+ I+>#,#'#)#`@7@(+ E.C.C.C.C.C.C.C.C.b+C.C.C.C.C.C.C.C. o ] ] # ",
+" b.N !#^. - R.g@b@n@~#E@E@{#]#^#P@|@T@X /#u.0 1 h k / U # ] ] ] ] ] ] ] ] r+I.] (# P+] ] ] ] ] ] ] ] ] ] ] ] ] ] _# }.] ] ] ] ] ] n s.C.C.C.C.C.C.C./+ :#C.C.C.C.C.C.C.r. <#[#l@C.C.C.}# 4+|#y@)#C.C.C.C.C.C. @ 9+C.C.C.C.C.C.C.:# q.y@ 1#C.C.C.C.C.C.C.2#j+ C.C.C.C.C.C.C.m@ E.C.C.C.C.C.C.C.C. -#C.C.C.C.C.C.C.3# o ] ] # ",
+" = ; (.3@ ; 4#P@o@g@5#6#7#|@8#S@9#<@: ^. d+= 1 A < 1 r i a@ # ] ] ] ] ] ] ] ] 0#] ] 3. i@] ] ] ] ] ] ] a# =+] ] ] ] ] ] ] b# e.] ] ] ] ] ] n 6@C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.r. 5+C.C.C.C.C.C.5+X+,+~@c#C.C.C.C.C.C.C.d# x+C.C.C.C.C.C.C.C.C.C.5+ C.C.C.C.C.C.C.C.e#F.'+C.C.C.C.C.C.C.C.f# E.C.C.C.C.C.C.C.F. K+C.C.C.C.C.C.C.C. o ] ] # ",
+" = = [ 3 g# r K .#d@|@o@+#P@b@[@A@|.K _ = : | 1 < 2 [ p+^. # ] ] ] ] ] ] ] ] 7.] 9. w@] ] ] ] ] ] ] h# ,@] ] ] ] ] ] ] $. ] ] ] ] ] ] n )@C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.r. Y+C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.i# c#C.C.C.C.C.C.C.C.C.C.5+ j#C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.=# E.C.C.C.C.C.C.C.F. k#C.C.C.C.C.C.C.^@ o ] ] # ",
+" : : v.z 1+ Q h l#<@P@<@g@m#[@d@|.p+^. ' ( ~ ~ < z 1 z h 1. # ] ] ] ] ] ] ] *+g.] J. n#] ] ] ] ] ] ] ] ] o# R+] ] ] ] ] ] ] ] d.] ] ] ] ] n p#C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.r. T+C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.q# C.C.C.C.C.C.C.C.C.C.5+ r#C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C. E.C.C.C.C.C.C.C.F. W.C.C.C.C.C.C.C.C. o ] ] # ",
+" < r x ~ 1 s#o+ j.9 y t#<@|@m#u#/#v#^. 8 T@N 0 g z 1 1 < 9 w#^. # ] ] ] ] ] ] ] `.x#] y# z#] ] ] ] ] ] ] ] ] A# F+] ] ] ] ] ] ] ] ] t+ ).] ] ] ] ] n ;+C.C.C.C.C.C.C.C.C.B#C.C.C.C.C.C.r. y@C.C.C.C.C.C.C.C.C.C.C.C.C.C.W+ C#C.C.C.C.C.C.C.C.C.5+ D#C.C.C.C.C.C.C.C.C.C.C.C.C.E# E.C.C.C.C.C.C.C.F. F#C.C.C.C.C.C.C.'+ o ] ] # ",
+" | * h i g G#3 k /.h } 1 ~ ].-.^. > ; : h g g 1 < } g 3 L.^. # ] ] ] ] ] ] ] b#] ] H#-+-+-+-+-+-+z.] ] ] ] ] ] ] ] ] w+I#I#I#I#I#I#t+] ] ] ] ] ] ] ] ] :.J#K#3.L#&.M#N#] ] ] ] ] n (+C.C.C.C.C.C.C.C.:#,#C.C.C.C.C.C.r. X+C.C.C.C.C.C.C.C.C.C.C.O# P#C.C.C.C.C.C.C.C.5+ I+C.C.C.C.C.C.C.C.C.C.C.z@ D#C.C.C.C.C.C.C.F. '@C.C.C.C.C.C.C.C.|# o ] ] # ",
+" ~ v.E 1 H +@} | ; ~ 4 G#l Q# R#S#b._ q ~ ~ < 0 1 2 0 h j i.;. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] n ]@:+B.C.T#O#D. ;+U#d#d#d#d#U#c# p.V#W#_+m@:+X@8+3#X# 6+k#V+:+Y#V+V+[+F. Z#'#V+B._+=#b+m@`#j+ E. $d#d#d#d#d#U#X# (+d#d#d#d#d#d#U#.$ o ] ] # ",
+" 3 9 / 4 I < ~ 1 r } h g * * | 2 | _ - } r _ _ N ; | r } g z 1 x 2 ~ ~ < g l#^. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" t H H a x 1 1 ~ } } h k a 4 4 < < &+[ G z E r < 1 1 r } h k G#1 1 g /.V ^. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" x.y A A s ~ 1 h g 9 h A z g < 1 h ~ 9 s +$z g ~ 1 ~ g 9 g t C Q#^. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] n o ] ] # ",
+" 4@@$j.A E G#1 ~ 4 ~ g g ~ g k < 1 } ~ z E ~ 9 i g t !##$^. # ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] b c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c d ] ] # ",
+" l#2+].j./ h J k k ~ 1 s 1 1 } / k j.t L.$$%$;. ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] &$ ",
+" Q#n+*$=$*$*$-$-$B+;$>$` ,$6.3@ '$] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] )$ ",
+" ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] . "};
diff --git a/src/Plustek-logo.txt b/src/Plustek-logo.txt
new file mode 100644
index 0000000..a2813e0
--- /dev/null
+++ b/src/Plustek-logo.txt
@@ -0,0 +1,18 @@
+AW: Status: USB-Scanner support fuer Linux
+Datum: Mon, 14 Jan 2002 15:00:10 +0100
+Von: "Th. Bittner, Plustek Technology GmbH" <thomas@plustek.de>
+ An: "G. Jaeger" <g.jaeger@earthling.net>
+
+ Sehr geehrter Herr Jaeger!
+
+Wir wünschen Ihnen ebenfalls ein erfolgreiches Jahr 2002.
+Vielen Dank für die Nachricht und die Unterstützung.
+
+Sie können selbstverständlich unser Logo verwenden.
+Wenn Sie dazu Bilder benötigen, teilen Sie mir bitte mit, welche Auflösung und
+welches Dateiformat Sie bevorzugen.
+Ich werde Ihnen gerne die notwendigen Dateien zur verfügung stellen.
+
+Viele Grüße
+
+Thomas Bittner
diff --git a/src/Plustek-logo.xpm b/src/Plustek-logo.xpm
new file mode 100644
index 0000000..21b0897
--- /dev/null
+++ b/src/Plustek-logo.xpm
@@ -0,0 +1,75 @@
+/* XPM */
+static char * plustek_logo_2_xpm[] = {
+"256 48 24 1",
+" c None",
+". c #3A4A52",
+"+ c #3E4E56",
+"@ c #3E4E52",
+"# c #42525A",
+"$ c #46565E",
+"% c #3E4A52",
+"& c #46525A",
+"* c #4A5A62",
+"= c #46565A",
+"- c #723A42",
+"; c #6A2A32",
+"> c #6A2A36",
+", c #6E363E",
+"' c #6E323E",
+") c #6E323A",
+"! c #723642",
+"~ c #6A2E36",
+"{ c #72363E",
+"] c #4A565E",
+"^ c #424E56",
+"/ c #4A5A5E",
+"( c #425256",
+"_ c #763A42",
+" ",
+" . +@ ",
+" ... #... ",
+" .@.@. $....% ",
+" ......+ &..@@..@ ",
+" .@.@@%..%% ..+@...@@. ",
+" .......@@.@# %@...@.....@ ",
+" .@..@........* +............. ",
+" *...@@....%@.%. #%%@.@...@@..@. ",
+" +....@.@.@@@@%%.....@@...@# ",
+" =@.@.......@.@.@...@.. - ",
+" #.........@....... ;;;;;;;;;;;;;;;;;>>;> ;;;;;;;;; ;;;;;;;;> ",
+" =@....@...@.@... ;;;;;;;;;;;;;;;>;;;;;>, ;;;;;;;;, ' ;;;;;;;;; ",
+" @.@@@@.......@@.$ >>>>>>>>>>>>>;;;;;;>>;;) >>>>>>>; !;>;; >>>>>>>;; ",
+"%@$ #.......@.@.@...@@.@= #% ;;;;;;;;;;~~~>;;;>;;;;;;{ ;;;;;;;; ~;;>;>;; ;;;;;;>>; ",
+"...%# @%.+.......@.........@%.# @+.. ;;;;;;;;; ~>;;;;;;;> ;;;;;;>; ;;;;;;;; ;;;;;;;;; ",
+"@.....] ^.+..@....@...@.@.......%.../ +..%@@ ;;;;;;;>> ;;;>>;>;; ;;;;;;;; >;;>;>>> ;;;;;;;;> ",
+".@@%%@.@ #@@..@..@@@@..@ .@@..@.@.%%@.. ^....@.. >>>>>>>;; ;>>;;>;;; ~>>>>>;>> );;;;;;;;;;;;;;;;;>;>;;;;;;;;;;;; ,;;>>;;;) ;>>>>;;>; ~;;;;;;;; ",
+"...@.@.@.@* &.............@ $@@...@....@@@@* &@.@.....@ ;;;;;;;;~ ;;;;;;;;; ;;;;;;;;; ;;;;;;;;; ;;;;;;;; );;;;;;;;;;;;;;;;;;;;;;>;>;;;;;;;;;; );>>>;;>;;>>>>~ ;;;;>>;;; ~;;;;;;;; ",
+"..@........%^ /@.@@..@..@....$ #@..@@......@.( /@.@...@@.... -;;;;;;;>- ;;;;;;>>> ;;;;;>;;> >>>>>>>>- ;>>>>>>> ;>;>>;>>>>>>>>>>>>>>>;;;;;;;;;;;>>>;~ ~;;;;;;;;;;;;;;;;;> ;;;;;;;;; ~;>>>>>>~ ",
+"..........@...@ ..@.....@..@.. +...@.......@.. /..@..@....@@.@ -;;;;;>;> ;>>;>;;;> ;;;;;;;;; ;;;;;;;; ;;;;;;;; ;;;;>;;;;;~~~~~~~~~~>>;;>;>>;>>~~~~~ ;;;;;;;> ;;;;;;;> ;;;;;;>>; ;>;;;;;;~ ",
+"@..@.@.@.@..@...+@%.....@@..@../ @@....@.@...@.@@..@.......@.... ,>>>>>;;; ->>;;>;;;> >>>>;>>;; ;;;;;;;; ;;;;;;;; ;>;;;;;;; -;;;;;>;; ;;;>>;;> >>;;;;;; >>>;;>;;> ~;;;;;;;~ ",
+".@.@.@.@..@.@.....@@.........# @@@...............@.@.....@.@ ~;;;;;>;> >>>;;;;;;;;;~ ;;;;;;;;; ;;;;;;>; ;;;;;;>; ;;;;;;;;; ;>;;;;;; ~;>;;>>; ;>>>>;;; ;;>>;;;;> ,;;;;;;;; ",
+"@............@@..@...@@..@.@ ..@.@.@..@.@@..@...@@...... ~>;;;;;;; ~;;;;;;;;>>' ;;;>;;>>> >>>>>>;; >>>>>>;> ;>>;>>>>; ~;;;;;;;; >>;;;;;~ ;;;;;;;>, ;;;;;;;;; ,>;;>>>>; ",
+" #......@.....@....@..... $.@..@.....@..@....@@.@./ ;;;;>;>;> >>;>>;>~, ;;;;;;;; ;;;;;;>> ;;;;;;;> ,;;;;;;>>; >;>>;>;;; ;;;;;;;;>-- -;;;;>>;;; ;;;;>>;;> ~;>>;;;;> ",
+" +.@.@..@....@......@@( ...@..@..@.......@...] ;>>>;;;>; ~;>,, >>;>>;;; ;;;;;;;; ,;;;;;;;; ;;;;>;;>;) >>;;>;;;; >;;>>;;;;;>;;;;;;;;;;;;;;> >;;>;;>;; ~;;;;;;;; ",
+" @..@.@.....@@....... (...........@.@.....$ ;;;;>;;;~ ;;;;;;;; >;;;>;;> >;;;;>;;~ ~;;;;;;>;; ;;;;;>;>> ;>;;>>;;>;>;;;;;>>>>;;;;;' >>;;;;>;; ;;;;;;;>, ",
+" ....@@..@...@@...@.% &.@.@..@.@@..@...@@.@ ;;;;;;;;> ;>;;>>>> ;>>>;;;; ;>>>>;;;~ ;;;;>;;;;_ ;;;;;;>;; >;;;;;>;, ;;;;;;;;> ,;>>>>;;> ",
+" @..@....@........%.@ =@..@%.@.....@..@...+ ;;>;>;>;, ;;;;;;;> ;;;;>>;> ;;;;;>;;, ~>;;;;;>>! >>;>;;;;; ;;;;;;>;- ;;>>;;>;; ~;;;>;;;~ ",
+" =.@......@+ @+@.@.@ ....@.. &.@..@....@ >>;;;>;; ;>>;;;>; ;;;;;;;;, ;;;;;;;>; ;;;>>;;;; ;;>;;;;;> ;>>;;;;;~ ;>;;>;;;> ~;;;;;;;; ",
+" $@@.... ..@...%.+ ......... $....@. ;;>;;;;; >;;;;;;;; ;;>;;>;>;, >>;;;>;;;> ;>;;>;;;> ;;;>;>>;> ;;>>;;>;; ;;;;>;;;; ;;>>>>;; ",
+" #.@ ....@..@@.= +..@@@..@.. +.@ ;;;;;;>> ;;;>>>;>; >>;;;;>;;>;;;;;>>>;;;>; ) >;;;;;;;; ;;;;>;;;; ;;;>;;>>; ;;;;;;>;; ,;;;;;;>; ",
+" ....@@...@.@/ ^.@....@..@@@ >;>;>;;; >;;;;;;;; ;;>>;;;;;;;;;;;;;;>;;;; >>;>>;;~;;;;;>>>;; ;>;;;;;;;;;;>> ;;;>;;;>;;; -~;; >>;;>;;;> ;;;;>;;;) ",
+" @.@.....@.....& (%...@....@.... ;;;>;;;; ;>;;;>;>> ;;;;;;;>;>;>;;~;;;;>;;> ;;;;;;;;;;>>;;;;>' ~;;;;;>;;>;>;; ~;;;;;;;;>;;;>>;>;;;> ;;>;;;>>; ;;;;;;;;- ",
+" @........@..%.%%...@%............ -~;;;;;>; ;;;;;;;;> ;;>;>;;;>;>~ ;>;;;>;; );;;>;;;>;;>;;;~ ~;>>;>>;>;;>, ;;;;>>;;;>;;;;;>>;, ;;>;;;;;> ,>;;>;;>; ",
+" ..@..@@....@.@@.@...@..@@@..@...@ ,>;;;>>;> ;>>>;>;;; >;>;;>;;; >;;;>;;> >>>;>>>;;;;;~ ~;;;;;;;;;; >;;;;;;;;;;;>;;; ;;;;>;;;; ;;>;>;;;; ",
+" ..@@...@.@.@..@..@..@....@..@@@.@ ,~;;, -,~,, ,,~,,, '~;>>>;~ ",
+" /.....@.........@....@....@..... ",
+" (...@.........@...........$ ",
+" #...@.@@.@...@..@@@..+ ",
+" (.@..@..@..@....@.* ",
+" .....@....@...$ ",
+" ....@.....+ ",
+" $+.@.+ ",
+" + ",
+" ",
+" ",
+" "};
diff --git a/src/UMAX-logo.txt b/src/UMAX-logo.txt
new file mode 100644
index 0000000..c577f51
--- /dev/null
+++ b/src/UMAX-logo.txt
@@ -0,0 +1,15 @@
+From: "Roman Bartkowiak" <rba@umax.de>
+To: <oliver.rauch@wolfsburg.de>
+
+Hallo Herr Rauch,
+
+ich wünsche Ihnen gleichfalls alles gute im neuen Jahr, vor allem
+kooperative Hersteller und klare SDK-Dokumentationen ;-)
+
+Das Umax Logo dürfen Sie natürlich verwenden, solange klar
+ersichtlich ist, daß sich für Umax selbst in Verbindung mit dem Treiber
+keine Verpflichtungen (Support, etc.) ergeben.
+
+Mit freundlichen Grüßen
+Roman Bartkowiak
+Umax Systems GmbH
diff --git a/src/UMAX-logo.xpm b/src/UMAX-logo.xpm
new file mode 100644
index 0000000..c7fbcf5
--- /dev/null
+++ b/src/UMAX-logo.xpm
@@ -0,0 +1,56 @@
+/* XPM */
+static char * umax_logo_xpm[] = {
+"256 48 5 1",
+" c None",
+". c #FF0033",
+"+ c #F41A4B",
+"@ c #F90D3F",
+"# c #EE2858",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" .......... .......... ............ +........... ........... .......... .........@ ",
+" .......... .......... ............# ............ ............ .......... .......... ",
+" .......... .......... ............. ............ ............. .......... @......... ",
+" .......... .......... ............. ............. .............. #.........@ #......... ",
+" .......... .......... .............@ ............. @.............. @.........# .........# ",
+" .......... .......... .............. @............. ...............@ ..........+.........@ ",
+" .......... .......... ..............+ .............. @................ ................... ",
+" .......... .......... ............... #.............. .................@ ................. ",
+" .......... .......... ............... ............... +.................. #............... ",
+" .......... .......... ................ ............... ...................+ @.............# ",
+" .......... .......... ................ @............... +.................... ............@ ",
+" .......... .......... ................+ ................ .......... @.........+ ........... ",
+" .......... .......... ................. +................ #.......... .......... ........... ",
+" .......... .......... ................. ................. .......... ..........# #...........@ ",
+" .......... .......... .................. ................. .......... .......... .............+ ",
+" .......... .......... .......... ............... ......... .......... .......... ............... ",
+" .......... .......... .......... .............. ......... .......... .......... ................. ",
+" .......... .......... .......... ............. ......... ........................... @.................. ",
+" .......... .......... .......... ............ ......... ............................ #.........@.......... ",
+" #.......... ..........@ .......... ........... ......... ............................. .........# @.........@ ",
+" ........... ........... .......... .......... ......... .............................. .........@ ..........# ",
+" #..........................# .......... ......... ......... ............................... .......... .......... ",
+" #........................# .......... ........ ......... .......... ........... @......... .......... ",
+" ...................... .......... +....... ......... @.......... .......... #......... #.......... ",
+" @................@ .......... ...... ......... .......... ..........@ .........# @.........@ ",
+" .......... .......... +..... ......... @.......... .......... .........@ @.........# ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/frontend/cursor/cursor_pipette_black b/src/cursor/cursor_pipette_black
index 9fc4d56..9fc4d56 100644
--- a/frontend/cursor/cursor_pipette_black
+++ b/src/cursor/cursor_pipette_black
diff --git a/frontend/cursor/cursor_pipette_gray b/src/cursor/cursor_pipette_gray
index 7cbea80..7cbea80 100644
--- a/frontend/cursor/cursor_pipette_gray
+++ b/src/cursor/cursor_pipette_gray
diff --git a/frontend/cursor/cursor_pipette_mask b/src/cursor/cursor_pipette_mask
index 36c7757..36c7757 100644
--- a/frontend/cursor/cursor_pipette_mask
+++ b/src/cursor/cursor_pipette_mask
diff --git a/frontend/cursor/cursor_pipette_white b/src/cursor/cursor_pipette_white
index 9952441..9952441 100644
--- a/frontend/cursor/cursor_pipette_white
+++ b/src/cursor/cursor_pipette_white
diff --git a/src/sane-epson-logo.xpm b/src/sane-epson-logo.xpm
new file mode 100644
index 0000000..014c4ab
--- /dev/null
+++ b/src/sane-epson-logo.xpm
@@ -0,0 +1,495 @@
+/* XPM */
+static char * Epson_logo_xpm[] = {
+"256 48 444 2",
+" c None",
+". c #AAA27E",
+"+ c #E6DEBE",
+"@ c #EAE6C6",
+"# c #DED6B2",
+"$ c #CABE96",
+"% c #CABE9A",
+"& c #E2DAB6",
+"* c #D6CEA6",
+"= c #D6CEAA",
+"- c #C6BE96",
+"; c #C6BA92",
+"> c #CAC29A",
+", c #D6CAA6",
+"' c #CEC29A",
+") c #CECAB6",
+"! c #D2C69E",
+"~ c #B6AA82",
+"{ c #D2CAA2",
+"] c #AEA67E",
+"^ c #C2B68E",
+"/ c #AEA682",
+"( c #DED6B6",
+"_ c #B2A682",
+": c #C2BA92",
+"< c #B6AA86",
+"[ c #C2B692",
+"} c #BAAE86",
+"| c #BAAE8A",
+"1 c #AA9E7E",
+"2 c #E2DABE",
+"3 c #CEC69E",
+"4 c #BEB68E",
+"5 c #B2A67E",
+"6 c #BEB28A",
+"7 c #B6AE86",
+"8 c #968E6A",
+"9 c #7E7256",
+"0 c #CF0000",
+"a c #BEB28E",
+"b c #AEA27E",
+"c c #BAB28A",
+"d c #968E6E",
+"e c #4E4A36",
+"f c #EAE2C6",
+"g c #E2D6B2",
+"h c #B2AA86",
+"i c #A69A76",
+"j c #867A5E",
+"k c #4A4232",
+"l c #2E2A1E",
+"m c #26221A",
+"n c #221E16",
+"o c #1E1A16",
+"p c #322E22",
+"q c #423E2E",
+"r c #665E46",
+"s c #9E9272",
+"t c #A29672",
+"u c #625E46",
+"v c #CEC6A2",
+"w c #AAA282",
+"x c #56523E",
+"y c #12120E",
+"z c #968A6A",
+"A c #9A926E",
+"B c #1A1612",
+"C c #EEE6CE",
+"D c #020206",
+"E c #1E1E16",
+"F c #E6DEBA",
+"G c #D2C6A2",
+"H c #3A362A",
+"I c #E6DEC2",
+"J c #16120E",
+"K c #DAD2AA",
+"L c #5A563E",
+"M c #B2AA82",
+"N c #8A8262",
+"O c #060606",
+"P c #BC0612",
+"Q c #A90B23",
+"R c #A60C26",
+"S c #A30D28",
+"T c #8B153F",
+"U c #881541",
+"V c #851644",
+"W c #831746",
+"X c #602267",
+"Y c #5D2369",
+"Z c #5A246C",
+"` c #57246E",
+" . c #323091",
+".. c #2F3194",
+"+. c #1F36A3",
+"@. c #1C37A5",
+"#. c #1938A8",
+"$. c #DED2B2",
+"%. c #A29676",
+"&. c #726A52",
+"*. c #564E3A",
+"=. c #867E62",
+"-. c #7A7256",
+";. c #C90206",
+">. c #C60208",
+",. c #C3030B",
+"'. c #C1040D",
+"). c #BE0510",
+"!. c #BB0612",
+"~. c #B90715",
+"{. c #AE0A1F",
+"]. c #AB0B21",
+"^. c #A80C24",
+"/. c #A30D29",
+"(. c #A00E2B",
+"_. c #90133A",
+":. c #8D143D",
+"<. c #881642",
+"[. c #821747",
+"}. c #801849",
+"|. c #7D194C",
+"1. c #672060",
+"2. c #652062",
+"3. c #622165",
+"4. c #5F2267",
+"5. c #5D236A",
+"6. c #57256F",
+"7. c #542571",
+"8. c #522674",
+"9. c #3F2C85",
+"0. c #3C2D88",
+"a. c #392E8A",
+"b. c #372F8D",
+"c. c #342F8F",
+"d. c #313092",
+"e. c #24349E",
+"f. c #2135A1",
+"g. c #1E36A3",
+"h. c #1C37A6",
+"i. c #1639AB",
+"j. c #A69E7A",
+"k. c #82765A",
+"l. c #1A1A12",
+"m. c #C0040D",
+"n. c #B0091C",
+"o. c #AD0A1F",
+"p. c #A50C26",
+"q. c #921238",
+"r. c #7F1849",
+"s. c #7A1A4E",
+"t. c #6A1F5D",
+"u. c #642062",
+"v. c #512674",
+"w. c #4F2776",
+"x. c #362F8D",
+"y. c #26349C",
+"z. c #23349E",
+"A. c #1B37A6",
+"B. c #564E3E",
+"C. c #3E362A",
+"D. c #BEB692",
+"E. c #A29A8A",
+"F. c #EAE2C2",
+"G. c #928666",
+"H. c #928A6A",
+"I. c #C0040E",
+"J. c #BD0510",
+"K. c #BB0613",
+"L. c #B3081A",
+"M. c #A50D27",
+"N. c #A20D29",
+"O. c #A00E2C",
+"P. c #9D0F2E",
+"Q. c #8F133B",
+"R. c #7F184A",
+"S. c #7C194C",
+"T. c #7A1A4F",
+"U. c #6C1E5B",
+"V. c #691F5E",
+"W. c #642163",
+"X. c #542672",
+"Y. c #4E2777",
+"Z. c #4C2879",
+"`. c #392E8B",
+" + c #333090",
+".+ c #29339A",
+"++ c #2035A1",
+"@+ c #1E36A4",
+"#+ c #1838A9",
+"$+ c #9E9672",
+"%+ c #D6CAA2",
+"&+ c #C50309",
+"*+ c #BA0613",
+"=+ c #B50818",
+"-+ c #A70C24",
+";+ c #9F0E2C",
+">+ c #951236",
+",+ c #8C143D",
+"'+ c #791A4F",
+")+ c #6F1D59",
+"!+ c #4B2879",
+"~+ c #3B2D88",
+"{+ c #382E8B",
+"]+ c #303092",
+"^+ c #2B3297",
+"/+ c #1D36A4",
+"(+ c #1539AB",
+"_+ c #464236",
+":+ c #161212",
+"<+ c #EEEACE",
+"[+ c #B6AE8A",
+"}+ c #827A5E",
+"|+ c #A29A76",
+"1+ c #C2040C",
+"2+ c #BD0511",
+"3+ c #B70716",
+"4+ c #A70C25",
+"5+ c #A40D27",
+"6+ c #A20E2A",
+"7+ c #9C0F2F",
+"8+ c #941236",
+"9+ c #921339",
+"0+ c #8C143E",
+"a+ c #891540",
+"b+ c #711D57",
+"c+ c #6E1D59",
+"d+ c #6C1E5C",
+"e+ c #662061",
+"f+ c #532672",
+"g+ c #512775",
+"h+ c #4B287A",
+"i+ c #48297C",
+"j+ c #3B2D89",
+"k+ c #352F8E",
+"l+ c #2D3195",
+"m+ c #2036A2",
+"n+ c #1A37A7",
+"o+ c #867E5E",
+"p+ c #3A3626",
+"q+ c #3E3A2A",
+"r+ c #5E5642",
+"s+ c #7E765A",
+"t+ c #8E8666",
+"u+ c #5E5A42",
+"v+ c #BF040E",
+"w+ c #A10E2A",
+"x+ c #911339",
+"y+ c #861643",
+"z+ c #6B1E5C",
+"A+ c #502775",
+"B+ c #303193",
+"C+ c #22359F",
+"D+ c #1738A9",
+"E+ c #8A8266",
+"F+ c #E6DABA",
+"G+ c #D6CAAA",
+"H+ c #464232",
+"I+ c #625A46",
+"J+ c #CEC29E",
+"K+ c #C4030A",
+"L+ c #BF050F",
+"M+ c #BC0511",
+"N+ c #BA0614",
+"O+ c #A40D28",
+"P+ c #9E0F2D",
+"Q+ c #8E143C",
+"R+ c #891541",
+"S+ c #701D57",
+"T+ c #6E1E5A",
+"U+ c #681F5F",
+"V+ c #532673",
+"W+ c #4D2878",
+"X+ c #48297D",
+"Y+ c #3A2D89",
+"Z+ c #382E8C",
+"`+ c #2235A0",
+" @ c #1F36A2",
+".@ c #1D37A5",
+"+@ c #1738AA",
+"@@ c #D2C6A6",
+"#@ c #524A3A",
+"$@ c #1E2266",
+"%@ c #222EFA",
+"&@ c #423E6E",
+"*@ c #B90614",
+"=@ c #A10E2B",
+"-@ c #8B143E",
+";@ c #801848",
+">@ c #731C55",
+",@ c #6D1E5A",
+"'@ c #552570",
+")@ c #522673",
+"!@ c #4A287A",
+"~@ c #3D2D87",
+"{@ c #372E8C",
+"]@ c #DED2B6",
+"^@ c #42426A",
+"/@ c #2A32FA",
+"(@ c #4652FE",
+"_@ c #3A4AFE",
+":@ c #4252FE",
+"<@ c #2A36FE",
+"[@ c #86829E",
+"}@ c #928A66",
+"|@ c #C70208",
+"1@ c #BE050F",
+"2@ c #861644",
+"3@ c #7D194B",
+"4@ c #701D58",
+"5@ c #552571",
+"6@ c #4A297B",
+"7@ c #3C2D87",
+"8@ c #3A2E8A",
+"9@ c #2135A0",
+"0@ c #222AFA",
+"a@ c #2632FA",
+"b@ c #4256FE",
+"c@ c #A6BAFE",
+"d@ c #5266FE",
+"e@ c #1E22FA",
+"f@ c #3E4AEA",
+"g@ c #E2DABA",
+"h@ c #C4030B",
+"i@ c #831747",
+"j@ c #721C56",
+"k@ c #6D1E5B",
+"l@ c #671F5F",
+"m@ c #4C2878",
+"n@ c #313091",
+"o@ c #DACEAE",
+"p@ c #5A5642",
+"q@ c #3E52FE",
+"r@ c #C2D2FE",
+"s@ c #FAFAF6",
+"t@ c #C6D2FA",
+"u@ c #A2B6FE",
+"v@ c #4A5EFE",
+"w@ c #E6E2C2",
+"x@ c #726E52",
+"y@ c #E2D6BA",
+"z@ c #4A4632",
+"A@ c #951135",
+"B@ c #931238",
+"C@ c #6F1D58",
+"D@ c #113AB0",
+"E@ c #EAE2CE",
+"F@ c #262EFA",
+"G@ c #566AFE",
+"H@ c #F6F6F6",
+"I@ c #5E72FE",
+"J@ c #F2EED6",
+"K@ c #C60309",
+"L@ c #AB0B22",
+"M@ c #981133",
+"N@ c #6A1F5E",
+"O@ c #4F2777",
+"P@ c #3E2C86",
+"Q@ c #332F8F",
+"R@ c #1339AD",
+"S@ c #103AB0",
+"T@ c #D6CEAE",
+"U@ c #DED2AE",
+"V@ c #564E46",
+"W@ c #323EFE",
+"X@ c #96AAFE",
+"Y@ c #DEEAFA",
+"Z@ c #7E8AFA",
+"`@ c #4E62FE",
+" # c #0E0E0E",
+".# c #F2F2DE",
+"+# c #C80206",
+"@# c #AA0B22",
+"## c #971133",
+"$# c #59246D",
+"%# c #56256F",
+"&# c #23359F",
+"*# c #133AAE",
+"=# c #26261E",
+"-# c #3A3E9A",
+";# c #465AFE",
+"># c #3646FE",
+",# c #161EFA",
+"'# c #969AE6",
+")# c #E6E2BE",
+"!# c #DAD2AE",
+"~# c #C80207",
+"{# c #AF091D",
+"]# c #AD0A20",
+"^# c #971134",
+"/# c #811848",
+"(# c #7C194D",
+"_# c #5C236B",
+":# c #562570",
+"<# c #362F8E",
+"[# c #25349D",
+"}# c #1B37A7",
+"|# c #1539AC",
+"1# c #AA9E7A",
+"2# c #9E9676",
+"3# c #9A8E6E",
+"4# c #6262BA",
+"5# c #3236D6",
+"6# c #3242FE",
+"7# c #4E56EA",
+"8# c #A2AAFA",
+"9# c #827A66",
+"0# c #EEE6CA",
+"a# c #B2091B",
+"b# c #AC0A20",
+"c# c #871643",
+"d# c #841745",
+"e# c #7E184A",
+"f# c #632163",
+"g# c #612266",
+"h# c #5E2268",
+"i# c #5B236B",
+"j# c #3D2C86",
+"k# c #DACEAA",
+"l# c #423E32",
+"m# c #C70207",
+"n# c #C5030A",
+"o# c #B40819",
+"p# c #AF0A1E",
+"q# c #841746",
+"r# c #632164",
+"s# c #602266",
+"t# c #5E2369",
+"u# c #C6BA96",
+"v# c #7E7A62",
+"w# c #DEDABA",
+"x# c #3E3A2E",
+"y# c #AAA27A",
+"z# c #161612",
+"A# c #C90105",
+"B# c #5E5646",
+"C# c #524E3A",
+"D# c #A69A7A",
+"E# c #665A46",
+"F# c #222216",
+"G# c #363226",
+"H# c #4A4636",
+"I# c #463E2E",
+"J# c #0E0E0A",
+"K# c #CB0104",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" . + @ # $ % & * # = - ; > , ' ",
+" ) + # ! ~ - { ; $ ; ] ; { ^ ^ $ ] $ ' / ",
+" @ ( ! % ; ; _ ^ ; ; : ^ < ^ ; $ ^ [ } ^ ; $ | 1 ",
+" 2 ; $ } > 3 } ~ 4 } < > } 5 ; 6 $ 3 } ~ $ 6 $ > 7 8 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ",
+" @ = ; ^ 6 : 6 ; ; 6 ~ a ~ | ~ b ] c 6 ; ; a 6 ; 6 ; ^ d e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ",
+" f g % h a ^ | 6 - b i j k l m n o p q r s . ^ ; } 6 ; t 6 u 0 0 0 0 0 0 0 0 ",
+" @ v ; 3 ; 4 ^ w x x y z | 4 ; > c * : A B 0 0 0 0 0 0 0 ",
+" C $ ^ . ; $ < D @ * $ } ; . ; ^ E 0 0 0 0 0 0 0 ",
+" F G ; } ; ^ } H & I ; ^ ; ; < ; ~ J 0 0 0 0 0 ",
+" K & 6 5 [ ~ $ } L M N N i ; $ } ~ ^ s O 0 0 0 0 0 P Q R S T U V W X Y Z ` ... +.@.#. ",
+" $.3 ^ ; 6 ; ; %.&. *.=.z 4 ; ; -. 0 0 0 0 0 0 ;.>.,.'.).!.~. {.].^.R /.(. _.:.T <.V [.}.|. 1.2.3.4.5.Z 6.7.8. 9.0.a.b.c.d... e.f.g.h.#.i. ",
+" { 4 ; ; | - $ j.k. j b ^ l. 0 0 0 0 0 0 0 >.,.m.).!. n.o.].^.p./.(. q._.:. [.r.|.s. t.1.u.3. 7.v.w. 0.a.x.c.d. y.z.f.g.A.#.i. ",
+" ! { a | ^ : N B.C. D.! E. F.c G.H.D 0 0 0 0 0 0 0 0 ,.I.J.K. L. ^.M.N.O.P. q.Q.:. R.S.T. U.V.1.W. X.v.Y.Z. `.x. +d. .+ ++@+A.#+i. ",
+" 6 } [ $ $+o D F.F.# ; %+* { ; ~ a 3 M l 0 0 0 0 0 0 0 0 0 0 0 0 &+,.I.J.*+ =+ -+M.N.;+P. >+q.Q.,+ R.S.'+ )+U.V.1.W. X.v.Y.!+ ~+{+x. +]+ ^+ ++/+A.#+(+ ",
+" } . _+:+ <+& * $ [+a | ^ ^ 4 ' 4 d }+} : ^ |+ 0 0 0 0 0 0 0 0 &+1+I.2+ 3+ 4+5+6+;+7+ 8+9+Q.0+a+ b+c+d+V.e+ f+g+Y.h+i+ j+{+k+ + l+ m+/+n+#+ ",
+" # o+L e p+q+p p q+e r+s+H.. -. ^ 3 ^ t+u+ 0 0 0 0 0 0 0 &+1+v+2+*+3+ 4+5+w+;+ x+Q.0+a+y+ b+c+z+V.e+ f+A+Y.h+i+ j+{+k+ +B+l+ C+m+/+n+D+ ",
+" E+E F+G+s ^ t H+I+p J+3 ; d 0 0 0 0 0 0 0 K+1+L+M+N+ 4+O+w+P+ x+Q+0+R+y+W S+T+z+U+e+ V+A+W+h+X+ Y+Z+k+ .B+ `+ @.@n++@ ",
+" @@#@$@%@&@j.] G $ : q 0 0 0 0 K+'.L+P *@ Q R O+=@P+ Q+-@R+y+W ;@ >@S+,@z+U+ '@)@A+W+!@ ~@Y+{@k+ . `+ @@.n++@ ",
+" ]@^@/@(@_@:@<@[@q G ! ^ }@ 0 0 0 0 0 |@K+'.1@P Q R S =@P+ T U 2@W }.3@ >@4@,@t.U+ 5@)@w.W+6@ 7@8@{@c. . 9@+.@.#. ",
+" + &.0@a@b@c@d@e@f@, o g@5 6 ~ l 0 0 0 0 0 0 >.h@'.).!. ^.R /.(. <.V i@}.|. j@4@k@t.l@ 5@)@w.m@6@ 7@a.{@c.n@ e.9@g.@.#. ",
+" o@p@ f O /@q@r@s@t@u@v@w@x@ y@^ ; ; z@ 0 0 0 0 0 0 0 >.,.'.).!. ].^.p./.(. A@B@ V [.}.|.s. j@C@k@t.1. 6.7.8.w.Z. 0.a.x.c. e.f.g.A.#. D@ ",
+" E@F.H 6 D F@G@H@s@s@I@0@J@o+ g@; } ; e 0 0 0 0 0 0 K@,.I.). L@^.M.N. M@>+q. [.R.|.T. j@)+U.N@1. 6.X.v.O@Z. P@0.`.x.Q@ z.f.g.A. R@S@ ",
+" @ T@q+ U@V@W@W@X@Y@Z@`@a@w@ # .#> $ ^ . o 0 0 0 0 0 0 0 0 +#&+,.I.J. o.@#^.M. ##>+q.Q. [.R.S. )+U.V.1. $#%#X.v.Y. P@~+`.x. + y.&#++@+A. (+*# ",
+" @ @ : =# 3 -#;#>#G@a@,#'#e )#!#3 $ %+t+D 0 0 0 0 0 0 0 0 0 0 ~#&+1+I.2+ {#]#@#4+ ^#8+9+Q.0+ /#R.(# c+d+V.e+ _#$#:#f+g+ P@j+{+<# [#&#m+/+}##+|# ",
+" { * [ 1#2# z 3#4#5#6#7#8#9#D 0#f 3 6 [ $ i y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ~#&+1+v+2+*+3+=+a#{#b#@# 8+x+Q.0+a+c#d#/#e# z+V.e+f#g#h#i#$#:#f+ j#j+{+k+ C+m+/+n+#+ ",
+" * % 1#~ / b N ; ; %.l.D + k#J+} ^ $ ; / l# m#n#1+L+ 3+o#a#p# Q+0+R+y+q# r#s#t#i# ~@ @.@ ",
+" 6 / 7 > > , ; ~ u#* %+& * v#& f # w#G 6 ; { ; 3 |+x# m#K+1+L+ ",
+" 3#i y#- ; ^ ' 6 ] > > $ %+: < 3 $ ; 3 6 b ; ^ N z# A#|@K+'.L+ ",
+" E+}@|+} } ^ ^ } } ; | ; ^ [+< ^ } } s B#H D A#>.K+'.1@ ",
+" C#-.s < $+b ^ ^ ; $ . D#3#E#F#O ;.>.,.'. ",
+" G#H x#H H#k I#p+o J# ;.>.,.m. ",
+" K#+#K@,.I. ",
+" K#+#&+,. ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/src/sane-hp-logo.xpm b/src/sane-hp-logo.xpm
new file mode 100644
index 0000000..f6e0d28
--- /dev/null
+++ b/src/sane-hp-logo.xpm
@@ -0,0 +1,253 @@
+/* XPM */
+static char * sane_hp_logo_xpm[] = {
+"256 48 202 2",
+" c None",
+". c #123B81",
+"+ c #AAA27E",
+"@ c #E6DEBE",
+"# c #EAE6C6",
+"$ c #DED6B2",
+"% c #CABE96",
+"& c #CABE9A",
+"* c #E2DAB6",
+"= c #D6CEA6",
+"- c #D6CEAA",
+"; c #C6BE96",
+"> c #C6BA92",
+", c #CAC29A",
+"' c #D6CAA6",
+") c #CEC29A",
+"! c #CECAB6",
+"~ c #D2C69E",
+"{ c #B6AA82",
+"] c #D2CAA2",
+"^ c #AEA67E",
+"/ c #C2B68E",
+"( c #AEA682",
+"_ c #DED6B6",
+": c #B2A682",
+"< c #C2BA92",
+"[ c #B6AA86",
+"} c #C2B692",
+"| c #BAAE86",
+"1 c #BAAE8A",
+"2 c #AA9E7E",
+"3 c #E2DABE",
+"4 c #CEC69E",
+"5 c #BEB68E",
+"6 c #B2A67E",
+"7 c #BEB28A",
+"8 c #B6AE86",
+"9 c #968E6A",
+"0 c #7E7256",
+"a c #BEB28E",
+"b c #AEA27E",
+"c c #BAB28A",
+"d c #968E6E",
+"e c #4E4A36",
+"f c #EAE2C6",
+"g c #E2D6B2",
+"h c #B2AA86",
+"i c #A69A76",
+"j c #867A5E",
+"k c #4A4232",
+"l c #2E2A1E",
+"m c #26221A",
+"n c #221E16",
+"o c #1E1A16",
+"p c #322E22",
+"q c #423E2E",
+"r c #665E46",
+"s c #9E9272",
+"t c #A29672",
+"u c #625E46",
+"v c #CEC6A2",
+"w c #AAA282",
+"x c #56523E",
+"y c #12120E",
+"z c #968A6A",
+"A c #9A926E",
+"B c #1A1612",
+"C c #EEE6CE",
+"D c #020206",
+"E c #1E1E16",
+"F c #E6DEBA",
+"G c #D2C6A2",
+"H c #3A362A",
+"I c #E6DEC2",
+"J c #16120E",
+"K c #DAD2AA",
+"L c #5A563E",
+"M c #B2AA82",
+"N c #8A8262",
+"O c #060606",
+"P c #DED2B2",
+"Q c #A29676",
+"R c #726A52",
+"S c #564E3A",
+"T c #867E62",
+"U c #7A7256",
+"V c #A69E7A",
+"W c #82765A",
+"X c #1A1A12",
+"Y c #564E3E",
+"Z c #3E362A",
+"` c #BEB692",
+" . c #A29A8A",
+".. c #EAE2C2",
+"+. c #928666",
+"@. c #928A6A",
+"#. c #9E9672",
+"$. c #D6CAA2",
+"%. c #464236",
+"&. c #161212",
+"*. c #EEEACE",
+"=. c #B6AE8A",
+"-. c #827A5E",
+";. c #A29A76",
+">. c #867E5E",
+",. c #3A3626",
+"'. c #3E3A2A",
+"). c #5E5642",
+"!. c #7E765A",
+"~. c #8E8666",
+"{. c #5E5A42",
+"]. c #8A8266",
+"^. c #E6DABA",
+"/. c #D6CAAA",
+"(. c #464232",
+"_. c #625A46",
+":. c #CEC29E",
+"<. c #D2C6A6",
+"[. c #524A3A",
+"}. c #1E2266",
+"|. c #222EFA",
+"1. c #423E6E",
+"2. c #DED2B6",
+"3. c #42426A",
+"4. c #2A32FA",
+"5. c #4652FE",
+"6. c #3A4AFE",
+"7. c #4252FE",
+"8. c #2A36FE",
+"9. c #86829E",
+"0. c #928A66",
+"a. c #222AFA",
+"b. c #2632FA",
+"c. c #4256FE",
+"d. c #A6BAFE",
+"e. c #5266FE",
+"f. c #1E22FA",
+"g. c #3E4AEA",
+"h. c #E2DABA",
+"i. c #DACEAE",
+"j. c #5A5642",
+"k. c #3E52FE",
+"l. c #C2D2FE",
+"m. c #FAFAF6",
+"n. c #C6D2FA",
+"o. c #A2B6FE",
+"p. c #4A5EFE",
+"q. c #E6E2C2",
+"r. c #726E52",
+"s. c #E2D6BA",
+"t. c #4A4632",
+"u. c #EAE2CE",
+"v. c #262EFA",
+"w. c #566AFE",
+"x. c #F6F6F6",
+"y. c #5E72FE",
+"z. c #F2EED6",
+"A. c #D6CEAE",
+"B. c #DED2AE",
+"C. c #564E46",
+"D. c #323EFE",
+"E. c #96AAFE",
+"F. c #DEEAFA",
+"G. c #7E8AFA",
+"H. c #4E62FE",
+"I. c #0E0E0E",
+"J. c #F2F2DE",
+"K. c #26261E",
+"L. c #3A3E9A",
+"M. c #465AFE",
+"N. c #3646FE",
+"O. c #161EFA",
+"P. c #969AE6",
+"Q. c #E6E2BE",
+"R. c #DAD2AE",
+"S. c #AA9E7A",
+"T. c #9E9676",
+"U. c #9A8E6E",
+"V. c #6262BA",
+"W. c #3236D6",
+"X. c #3242FE",
+"Y. c #4E56EA",
+"Z. c #A2AAFA",
+"`. c #827A66",
+" + c #EEE6CA",
+".+ c #DACEAA",
+"++ c #423E32",
+"@+ c #C6BA96",
+"#+ c #7E7A62",
+"$+ c #DEDABA",
+"%+ c #3E3A2E",
+"&+ c #AAA27A",
+"*+ c #161612",
+"=+ c #5E5646",
+"-+ c #524E3A",
+";+ c #A69A7A",
+">+ c #665A46",
+",+ c #222216",
+"'+ c #363226",
+")+ c #4A4636",
+"!+ c #463E2E",
+"~+ c #0E0E0A",
+" ",
+" . . . . . . ",
+" . . . . . . ",
+" . . . . . . . ",
+" . . . . . . . ",
+" . . . . . . . ",
+" . . . . . . ",
+" . . . . . . . ",
+" + @ # $ % & * = $ - ; > , ' ) . . . . . . . ",
+" ! @ $ ~ { ; ] > % > ^ > ] / / % ^ % ) ( . . . . . . ",
+" # _ ~ & > > : / > > < / [ / > % / } | / > % 1 2 . . . . . . . ",
+" 3 > % | , 4 | { 5 | [ , | 6 > 7 % 4 | { % 7 % , 8 9 0 . . . . . . ",
+" # - > / 7 < 7 > > 7 { a { 1 { b ^ c 7 > > a 7 > 7 > / d e . . . . . . . ",
+" f g & h a / 1 7 ; b i j k l m n o p q r s + / > | 7 > t 7 u . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" # v > 4 > 5 / w x x y z 1 5 > , c = < A B . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" C % / + > % [ D # = % | > + > / E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" F G > | > / | H * I > / > > [ > { J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" K * 7 6 } { % | L M N N i > % | { / s O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" P 4 / > 7 > > Q R S T z 5 > > U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" ] 5 > > 1 ; % V W j b / X . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" ~ ] a 1 / < N Y Z ` ~ . ..c +.@.D . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" 7 | } % #.o D ....$ > $.= ] > { a 4 M l . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" | + %.&. *.* = % =.a 1 / / 5 ) 5 d -.| < / ;. . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" $ >.L e ,.'.p p '.e ).!.@.+ U / 4 / ~.{. . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" ].E ^./.s / t (._.p :.4 > d . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" <.[.}.|.1.V ^ G % < q . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" 2.3.4.5.6.7.8.9.q G ~ / 0. . . . . . . . . . . . . . . . . . . . . . . . . ",
+" @ R a.b.c.d.e.f.g.' o h.6 7 { l . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" i.j. f O 4.k.l.m.n.o.p.q.r. s./ > > t. . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" u...H 7 D v.w.x.m.m.y.a.z.>. h.> | > e . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" # A.'. B.C.D.D.E.F.G.H.b.q.I. J., % / + o . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" # # < K. 4 L.M.N.w.b.O.P.e Q.R.4 % $.~.D . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" ] = } S.T. z U.V.W.X.Y.Z.`.D +f 4 7 } % i y . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" = & S.{ ( b N > > Q X D @ .+:.| / % > ( ++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" 7 ( 8 , , ' > { @+= $.* = #+* f $ $+G 7 > ] > 4 ;.%+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" U.i &+; > / ) 7 ^ , , % $.< [ 4 % > 4 7 b > / N *+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" ].0.;.| | / / | | > 1 > / =.[ / | | s =+H D . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" -+U s [ #.b / / > % + ;+U.>+,+O . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" '+H %+H )+k !+,.o ~+ . . . . . . . . . . . . . . . . . . . . . . ",
+" . . . . . . . ",
+" . . . . . . ",
+" . . . . . . ",
+" . . . . . . . ",
+" . . . . . . ",
+" . . . . . . . ",
+" . . . . . . . ",
+" . . . . . . ",
+" . . . . . . . "};
diff --git a/src/sane-umax-logo.xpm b/src/sane-umax-logo.xpm
new file mode 100644
index 0000000..f8c32c8
--- /dev/null
+++ b/src/sane-umax-logo.xpm
@@ -0,0 +1,557 @@
+/* XPM */
+static char * sane_umax_logo_xpm[] = {
+"256 48 506 2",
+" c None",
+". c #AAA27E",
+"+ c #E6DEBE",
+"@ c #EAE6C6",
+"# c #DED6B2",
+"$ c #CABE96",
+"% c #CABE9A",
+"& c #E2DAB6",
+"* c #D6CEA6",
+"= c #D6CEAA",
+"- c #C6BE96",
+"; c #C6BA92",
+"> c #CAC29A",
+", c #D6CAA6",
+"' c #CEC29A",
+") c #CECAB6",
+"! c #D2C69E",
+"~ c #B6AA82",
+"{ c #D2CAA2",
+"] c #AEA67E",
+"^ c #C2B68E",
+"/ c #AEA682",
+"( c #E5290C",
+"_ c #E4280C",
+": c #E3290E",
+"< c #DE2912",
+"[ c #DA2816",
+"} c #D5281A",
+"| c #D0271E",
+"1 c #CC2722",
+"2 c #C72626",
+"3 c #C3262A",
+"4 c #BE262E",
+"5 c #902157",
+"6 c #8B205B",
+"7 c #87205F",
+"8 c #821F63",
+"9 c #7E1F67",
+"0 c #791E6B",
+"a c #741E6F",
+"b c #701D73",
+"c c #6B1D77",
+"d c #671C7B",
+"e c #621C7F",
+"f c #DED6B6",
+"g c #B2A682",
+"h c #C2BA92",
+"i c #B6AA86",
+"j c #C2B692",
+"k c #BAAE86",
+"l c #BAAE8A",
+"m c #AA9E7E",
+"n c #E2290F",
+"o c #DE2913",
+"p c #D92817",
+"q c #D4281B",
+"r c #D0271F",
+"s c #CB2723",
+"t c #C72627",
+"u c #C2262B",
+"v c #BD252F",
+"w c #B92533",
+"x c #B42537",
+"y c #B0243B",
+"z c #86205F",
+"A c #7D1F67",
+"B c #781E6B",
+"C c #6F1D73",
+"D c #661C7B",
+"E c #611C7F",
+"F c #5D1B84",
+"G c #581B88",
+"H c #E2DABE",
+"I c #CEC69E",
+"J c #BEB68E",
+"K c #B2A67E",
+"L c #BEB28A",
+"M c #B6AE86",
+"N c #968E6A",
+"O c #7E7256",
+"P c #CF271F",
+"Q c #C62627",
+"R c #C1262B",
+"S c #B82533",
+"T c #B42437",
+"U c #AF243B",
+"V c #AA233F",
+"W c #A62343",
+"X c #A12347",
+"Y c #862060",
+"Z c #811F64",
+"` c #7C1F68",
+" . c #781E6C",
+".. c #731E70",
+"+. c #6F1D74",
+"@. c #6A1D78",
+"#. c #651C7C",
+"$. c #611C80",
+"%. c #5C1B84",
+"&. c #531A8C",
+"*. c #BEB28E",
+"=. c #AEA27E",
+"-. c #BAB28A",
+";. c #968E6E",
+">. c #4E4A36",
+",. c #2F2F2F",
+"'. c #C52628",
+"). c #C1262C",
+"!. c #BC2530",
+"~. c #B82534",
+"{. c #B32438",
+"]. c #AE243C",
+"^. c #AA2340",
+"/. c #A52344",
+"(. c #A12248",
+"_. c #9C224C",
+":. c #972250",
+"<. c #932154",
+"[. c #771E6C",
+"}. c #6E1D74",
+"|. c #691D78",
+"1. c #601C80",
+"2. c #5C1B85",
+"3. c #571B89",
+"4. c #521A8D",
+"5. c #4E1A91",
+"6. c #EAE2C6",
+"7. c #E2D6B2",
+"8. c #B2AA86",
+"9. c #A69A76",
+"0. c #867A5E",
+"a. c #4A4232",
+"b. c #2E2A1E",
+"c. c #26221A",
+"d. c #221E16",
+"e. c #1E1A16",
+"f. c #322E22",
+"g. c #423E2E",
+"h. c #665E46",
+"i. c #9E9272",
+"j. c #A29672",
+"k. c #625E46",
+"l. c #B72534",
+"m. c #B22438",
+"n. c #A92340",
+"o. c #A02249",
+"p. c #9B224D",
+"q. c #972151",
+"r. c #922155",
+"s. c #8E2159",
+"t. c #89205D",
+"u. c #842061",
+"v. c #771E6D",
+"w. c #721E71",
+"x. c #6D1D75",
+"y. c #691D79",
+"z. c #641C7D",
+"A. c #601C81",
+"B. c #5B1B85",
+"C. c #561B89",
+"D. c #4D1A91",
+"E. c #491995",
+"F. c #CEC6A2",
+"G. c #AAA282",
+"H. c #56523E",
+"I. c #12120E",
+"J. c #968A6A",
+"K. c #9A926E",
+"L. c #1A1612",
+"M. c #E3280D",
+"N. c #AD243D",
+"O. c #A92341",
+"P. c #A42345",
+"Q. c #9F2249",
+"R. c #962151",
+"S. c #8D2059",
+"T. c #88205D",
+"U. c #7F1F65",
+"V. c #7B1F69",
+"W. c #711E71",
+"X. c #681D79",
+"Y. c #5F1C81",
+"Z. c #5A1B86",
+"`. c #561B8A",
+" + c #511A8E",
+".+ c #4D1A92",
+"++ c #481996",
+"@+ c #43199A",
+"#+ c #EEE6CE",
+"$+ c #020206",
+"%+ c #1E1E16",
+"&+ c #9F224A",
+"*+ c #9A224E",
+"=+ c #962152",
+"-+ c #912156",
+";+ c #8D205A",
+">+ c #88205E",
+",+ c #831F62",
+"'+ c #7F1F66",
+")+ c #7A1E6A",
+"!+ c #761E6E",
+"~+ c #711E72",
+"{+ c #6C1D76",
+"]+ c #681D7A",
+"^+ c #631C7E",
+"/+ c #5F1C82",
+"(+ c #551B8A",
+"_+ c #4C1A92",
+":+ c #3E189E",
+"<+ c #3A18A2",
+"[+ c #E6DEBA",
+"}+ c #D2C6A2",
+"|+ c #3A362A",
+"1+ c #E6DEC2",
+"2+ c #16120E",
+"3+ c #DF2912",
+"4+ c #8C205A",
+"5+ c #87205E",
+"6+ c #7E1F66",
+"7+ c #751E6E",
+"8+ c #701D72",
+"9+ c #671D7A",
+"0+ c #5E1C82",
+"a+ c #591B87",
+"b+ c #551B8B",
+"c+ c #501A8F",
+"d+ c #4C1A93",
+"e+ c #471997",
+"f+ c #42199B",
+"g+ c #3E189F",
+"h+ c #3918A3",
+"i+ c #3517A7",
+"j+ c #DAD2AA",
+"k+ c #5A563E",
+"l+ c #B2AA82",
+"m+ c #8A8262",
+"n+ c #060606",
+"o+ c #5D1C83",
+"p+ c #541B8B",
+"q+ c #4B1A93",
+"r+ c #461997",
+"s+ c #3D189F",
+"t+ c #3417A7",
+"u+ c #2F17AB",
+"v+ c #DED2B2",
+"w+ c #A29676",
+"x+ c #726A52",
+"y+ c #564E3A",
+"z+ c #867E62",
+"A+ c #7A7256",
+"B+ c #E1280E",
+"C+ c #541B8C",
+"D+ c #4F1A90",
+"E+ c #4A1A94",
+"F+ c #461998",
+"G+ c #41199C",
+"H+ c #3D18A0",
+"I+ c #3818A4",
+"J+ c #3317A8",
+"K+ c #2F17AC",
+"L+ c #2A16B0",
+"M+ c #A69E7A",
+"N+ c #82765A",
+"O+ c #1A1A12",
+"P+ c #E0280F",
+"Q+ c #DD2913",
+"R+ c #D82817",
+"S+ c #4E1A90",
+"T+ c #4A1994",
+"U+ c #451998",
+"V+ c #3C18A0",
+"W+ c #3718A4",
+"X+ c #2E17AC",
+"Y+ c #2516B4",
+"Z+ c #564E3E",
+"`+ c #3E362A",
+" @ c #BEB692",
+".@ c #A29A8A",
+"+@ c #EAE2C2",
+"@@ c #928666",
+"#@ c #928A6A",
+"$@ c #DF2810",
+"%@ c #E12910",
+"&@ c #DC2914",
+"*@ c #D82818",
+"=@ c #D3281C",
+"-@ c #CF2720",
+";@ c #CA2724",
+">@ c #451999",
+",@ c #40189D",
+"'@ c #3B18A1",
+")@ c #3718A5",
+"!@ c #3217A9",
+"~@ c #2E17AD",
+"{@ c #2916B1",
+"]@ c #2416B5",
+"^@ c #2015B9",
+"/@ c #9E9672",
+"(@ c #D6CAA2",
+"_@ c #DE2811",
+":@ c #E02910",
+"<@ c #D72818",
+"[@ c #CE2720",
+"}@ c #C92724",
+"|@ c #C0262C",
+"1@ c #441999",
+"2@ c #3F189D",
+"3@ c #3617A5",
+"4@ c #2D17AD",
+"5@ c #2816B1",
+"6@ c #1F15B9",
+"7@ c #1B15BD",
+"8@ c #1914BF",
+"9@ c #464236",
+"0@ c #161212",
+"a@ c #EEEACE",
+"b@ c #B6AE8A",
+"c@ c #827A5E",
+"d@ c #A29A76",
+"e@ c #DD2812",
+"f@ c #E02911",
+"g@ c #DB2915",
+"h@ c #D72819",
+"i@ c #D2281D",
+"j@ c #C92725",
+"k@ c #C42629",
+"l@ c #C0262D",
+"m@ c #BB2531",
+"n@ c #B62535",
+"o@ c #B22439",
+"p@ c #3F189E",
+"q@ c #3617A6",
+"r@ c #3117AA",
+"s@ c #2C16AE",
+"t@ c #2816B2",
+"u@ c #2316B6",
+"v@ c #1F15BA",
+"w@ c #1A15BE",
+"x@ c #867E5E",
+"y@ c #3A3626",
+"z@ c #3E3A2A",
+"A@ c #5E5642",
+"B@ c #7E765A",
+"C@ c #8E8666",
+"D@ c #5E5A42",
+"E@ c #DC2812",
+"F@ c #E4290D",
+"G@ c #DF2911",
+"H@ c #DB2815",
+"I@ c #D62819",
+"J@ c #CD2721",
+"K@ c #C82725",
+"L@ c #B12439",
+"M@ c #A82341",
+"N@ c #3517A6",
+"O@ c #2716B2",
+"P@ c #2315B6",
+"Q@ c #1E15BA",
+"R@ c #8A8266",
+"S@ c #E6DABA",
+"T@ c #D6CAAA",
+"U@ c #464232",
+"V@ c #625A46",
+"W@ c #CEC29E",
+"X@ c #DC2813",
+"Y@ c #D6281A",
+"Z@ c #D1271E",
+"`@ c #C82726",
+" # c #BF262E",
+".# c #B1243A",
+"+# c #AC243E",
+"@# c #A82342",
+"## c #A32346",
+"$# c #9E224A",
+"%# c #952152",
+"&# c #3017AB",
+"*# c #2B16AF",
+"=# c #2716B3",
+"-# c #2215B7",
+";# c #1E15BB",
+"># c #D2C6A6",
+",# c #524A3A",
+"'# c #1E2266",
+")# c #222EFA",
+"!# c #423E6E",
+"~# c #DB2814",
+"{# c #B92532",
+"]# c #A72342",
+"^# c #A22346",
+"/# c #9E224B",
+"(# c #99224F",
+"_# c #952153",
+":# c #2616B3",
+"<# c #1D15BB",
+"[# c #DED2B6",
+"}# c #42426A",
+"|# c #2A32FA",
+"1# c #4652FE",
+"2# c #3A4AFE",
+"3# c #4252FE",
+"4# c #2A36FE",
+"5# c #86829E",
+"6# c #928A66",
+"7# c #DA2814",
+"8# c #DA2715",
+"9# c #942153",
+"0# c #8F2157",
+"a# c #2616B4",
+"b# c #2115B8",
+"c# c #1C15BC",
+"d# c #222AFA",
+"e# c #2632FA",
+"f# c #4256FE",
+"g# c #A6BAFE",
+"h# c #5266FE",
+"i# c #1E22FA",
+"j# c #3E4AEA",
+"k# c #E2DABA",
+"l# c #D92716",
+"m# c #9D224C",
+"n# c #982250",
+"o# c #8F2158",
+"p# c #8A205C",
+"q# c #2015B8",
+"r# c #DACEAE",
+"s# c #5A5642",
+"t# c #3E52FE",
+"u# c #C2D2FE",
+"v# c #FAFAF6",
+"w# c #C6D2FA",
+"x# c #A2B6FE",
+"y# c #4A5EFE",
+"z# c #E6E2C2",
+"A# c #726E52",
+"B# c #E2D6BA",
+"C# c #4A4632",
+"D# c #D82716",
+"E# c #8E2158",
+"F# c #852060",
+"G# c #801F64",
+"H# c #EAE2CE",
+"I# c #262EFA",
+"J# c #566AFE",
+"K# c #F6F6F6",
+"L# c #5E72FE",
+"M# c #F2EED6",
+"N# c #D72717",
+"O# c #801F65",
+"P# c #D6CEAE",
+"Q# c #DED2AE",
+"R# c #564E46",
+"S# c #323EFE",
+"T# c #96AAFE",
+"U# c #DEEAFA",
+"V# c #7E8AFA",
+"W# c #4E62FE",
+"X# c #0E0E0E",
+"Y# c #F2F2DE",
+"Z# c #D72718",
+"`# c #D62718",
+" $ c #E5290D",
+".$ c #761E6D",
+"+$ c #26261E",
+"@$ c #3A3E9A",
+"#$ c #465AFE",
+"$$ c #3646FE",
+"%$ c #161EFA",
+"&$ c #969AE6",
+"*$ c #E6E2BE",
+"=$ c #DAD2AE",
+"-$ c #D52719",
+";$ c #1A14BD",
+">$ c #AA9E7A",
+",$ c #9E9676",
+"'$ c #9A8E6E",
+")$ c #6262BA",
+"!$ c #3236D6",
+"~$ c #3242FE",
+"{$ c #4E56EA",
+"]$ c #A2AAFA",
+"^$ c #827A66",
+"/$ c #EEE6CA",
+"($ c #B52536",
+"_$ c #DACEAA",
+":$ c #423E32",
+"<$ c #D4271A",
+"[$ c #A72341",
+"}$ c #C6BA96",
+"|$ c #7E7A62",
+"1$ c #DEDABA",
+"2$ c #3E3A2E",
+"3$ c #A22347",
+"4$ c #9D224B",
+"5$ c #1914BE",
+"6$ c #AAA27A",
+"7$ c #161612",
+"8$ c #98214E",
+"9$ c #5E5646",
+"0$ c #524E3A",
+"a$ c #A69A7A",
+"b$ c #665A46",
+"c$ c #222216",
+"d$ c #363226",
+"e$ c #4A4636",
+"f$ c #463E2E",
+"g$ c #0E0E0A",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" . + @ # $ % & * # = - ; > , ' ",
+" ) + # ! ~ - { ; $ ; ] ; { ^ ^ $ ] $ ' / ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( _ _ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e ",
+" @ f ! % ; ; g ^ ; ; h ^ i ^ ; $ ^ j k ^ ; $ l m ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( n o p q r s t u v w x y 6 z 8 A B a C c D E F G ",
+" H ; $ k > I k ~ J k i > k K ; L $ I k ~ $ L $ > M N O ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( _ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( q P s Q R v S T U V W X Y Z ` ...+.@.#.$.%.G &. ",
+" @ = ; ^ L h L ; ; L ~ *.~ l ~ =.] -.L ; ; *.L ; L ; ^ ;.>. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. _ ( ( ( ( ( ( ( ( ( ( ( ( ( ,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,. '.).!.~.{.].^./.(._.:.<. ` [...}.|.#.1.2.3.4.5.,.,.,.,.,. ",
+" 6.7.% 8.*.^ l L - =.9.0.a.b.c.d.e.f.g.h.i.. ^ ; k L ; j.L k. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,. l.m.].n./.o.p.q.r.s.t.u. v.w.x.y.z.A.B.C.4.D.E.,.,.,.,.,.,. ",
+" @ F.; I ; J ^ G.H.H.I. J.l J ; > -.* h K.L. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. M.( ( ( ( ( ( ( ( ( ( ( ( ( ,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,. N.O.P.Q.p.R.r.S.T.u.U.V.,.W.x.X.z.Y.Z.`. +.+++@+,.,.,.,.,.,. ",
+" #+$ ^ . ; $ i $+ @ * $ k ; . ; ^ %+ ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,. &+*+=+-+;+>+,+'+)+!+~+{+]+^+/+Z.(+ +_+++@+:+<+,.,.,.,.,. ",
+" [+}+; k ; ^ k |+ & 1+; ^ ; ; i ; ~ 2+ ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( M.( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( : 3+,. -+4+5+,+6+)+7+8+{+9+^+0+a+b+c+d+e+f+g+h+i+,.,.,.,.,. ",
+" j+& L K j ~ $ k k+ l+m+m+9.; $ k ~ ^ i.n+ ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( : < [ } ,.,. 8 9 0 a b c d e o+a+p+c+q+r+f+s+h+t+u+,.,.,.,.,. ",
+" v+I ^ ; L ; ; w+x+ y+z+J.J ; ; A+ ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( B+( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( n o p q r s t ,. a C c D E F G C+D+E+F+G+H+I+J+K+L+,.,.,.,.,.,. ",
+" { J ; ; l - $ M+N+ 0.=.^ O+ ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( P+,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( n Q+R+q P s Q R v ,.,. #.$.%.G &.S+T+U+G+V+W+J+X+L+Y+,.,.,.,.,.,. ",
+" ! { *.l ^ h m+Z+`+ @! .@ +@-. @@#@$+ ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( $@( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( %@&@*@=@-@;@'.).!.~.{.].,. 2.3.4.5.E.>@,@'@)@!@~@{@]@^@,.,.,.,.,.,. ",
+" L k j $ /@e.$+ +@+@# ; (@* { ; ~ *.I l+ b. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( _@,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( :@&@<@=@[@}@'.|@!.l.m.].n./.,.,. D.E.1@2@'@3@!@4@5@]@6@7@8@,.,.,.,.,. ",
+" k . 9@0@ a@& * $ b@*.l ^ ^ J ' J ;.c@k h ^ d@ ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( e@( ( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( f@g@h@i@,.j@k@l@m@n@o@N.O.P.Q.p.R.,. p@<+q@r@s@t@u@v@w@8@8@8@,.,.,.,. ",
+" # x@k+>.y@z@f.f.z@>.A@B@#@. A+ ^ I ^ C@D@ ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( E@( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( F@G@H@I@i@J@K@,.,.m@n@L@N.M@P.&+*+=+-+;+,.,. <+N@r@s@O@P@Q@8@8@8@8@8@8@8@,.,. ",
+" R@%+ S@T@i.^ j. U@V@f. W@I ; ;. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( X@( X@( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( : 3+[ Y@Z@1 `@3 #,.,..#+#@###$#*+%#-+4+5+,+6+,. i+&#*#=#-#;#8@8@8@8@8@8@8@8@8@,.,. ",
+" >#,#'#)#!#M+] }+$ h g. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ~#( ,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( : < [ } | 1 2 3 4 {#,.,.,.]#^#/#(#_#5 6 7 8 9 0 a ,.,. u+*#:#-#<#8@8@8@8@8@8@8@8@8@8@8@8@,. ",
+" [#}#|#1#2#3#4#5#g. }+! ^ 6# ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( 7#( 8#( 8#,.,.,. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. n o p q r s t u v w x y ,.,.,.,.(#9#0#6 z 8 A B a C c D ,. L+a#b#c#8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@,. ",
+" + x+d#e#f#g#h#i#j#, e. k#K L ~ b. ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( l#( ,.,.,. ( ( ( ( ( ( ( ( ( ( ,.( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,. Q+R+q P s Q R v S T U V W X m#n#<.o#p#Y Z ` ...+.@.#.$.%.,.,. Y+q#c#8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@ ",
+" r#s# 6.n+|#t#u#v#w#x#y#z#A# B#^ ; ; C# ( ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( l#( D#( D#,.,.,. ( ( ( ( ( ( ( ( ( ( ,.( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.( ( ( ( ( ( ( ( ( ( ( ,.,.,. =@-@;@'.).!.~.{.].^./.(._.:.<.E#p#F#G#` [...}.|.#.1.2.3.4.5.,. 7@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@ ",
+" H#+@|+ L $+I#J#K#v#v#L#d#M#x@ k#; k ; >. ( ( ( ( ( ( ( ( ( ( ( ( ,.,. ( ( ( ( ( ( ( ( ( ( N#( ,.,.,. ( ( ( ( ( ( ( ( ( ( ,.,.( ( ( ( ( ( ( ( ( ( ( ( ( ,.( ( ( ( ( ( ( ( ( ( :@,.,.,. }@'.|@!.l.m.].n./.o.p.q.r.s.t.u.O#V.v.w.x.y.z.A.B.C.4.D.E.1@,.,. 8@8@8@8@8@8@8@8@8@8@8@,.8@8@8@8@8@8@8@8@8@8@8@,. ",
+" @ P#z@ Q#R#S#S#T#U#V#W#e#z#X# Y#> $ ^ . e. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( Z#( `#( `#,.,.,. ( ( ( ( ( ( ( ( ( ( ,.,.( ( ( ( ( ( ( ( ( ( ( ( ,.,.( ( ( ( ( ( ( $f@g@h@,.,.,.k@l@m@n@o@N.O.P.Q.p.R.r.S.T.u.U.V..$W.x.X.z.Y.Z.`. +.+++@+p@<+,.,. 8@8@8@8@8@8@8@8@8@8@8@,.,.8@8@8@8@8@8@8@8@8@8@8@8@,. ",
+" @ @ h +$ I @$#$$$J#e#%$&$>. *$=$I $ (@C@$+ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( `#( ( `#( -$,.,.,.,. ( ( ( ( ( ( ( ( ( ( ,.,.,.( ( ( ( ( ( ( ( ( ( ( ,.,.( ( ( ( ( F@G@H@I@i@J@,.,.,.m@n@L@N.M@P.&+*+=+-+;+>+,+'+)+!+~+{+]+^+/+Z.(+ +_+++@+:+<+N@r@s@,.,. ;$8@8@8@8@8@8@8@8@8@8@8@,.,.,.8@8@8@8@8@8@8@8@8@8@8@8@,. ",
+" { * j >$,$ J.'$)$!$~${$]$^$$+ /$6.I L j $ 9.I. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,.,.,. ( ( ( ( ( ( ( ( ( ( ,.,.,.( ( ( ( ( ( ( ( ( ( ,.,.,.( ( ( : 3+[ Y@Z@1 `@3 ,.,.($.#+#@###$#*+%#-+4+5+,+6+)+7+8+{+9+^+0+a+b+c+d+e+f+g+h+i+&#*#=#-#,.,. 8@8@8@8@8@8@8@8@8@8@8@8@,.,.,.,.,.8@8@8@8@8@8@8@8@8@8@8@8@ ",
+" * % >$~ / =. m+; ; w+O+$+ + _$W@k ^ $ ; / :$ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( -$( <$( <$,.,.,.,.,.,. ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ( ,.,.,.( : < [ } | 1 2 3 4 [$,.,.+#]#^#/#(#_#5 6 7 8 9 0 ,.,.,.,.,.,.,.,.,.,.r+f+s+h+t+u+*#:#-#<#8@8@,. 8@8@8@8@8@8@8@8@8@8@8@,.,.,.,.,. 8@8@8@8@8@8@8@8@8@8@8@8@ ",
+" L / M > > , ; ~ }$* (@& * |$& 6.# 1$}+L ; { ; I d@2$ ,.( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,.,.,.,.,. ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ( ,.,.,.,.o p q r s t u v w x y ,.W 3$4$(#9#0#6 z 8 A B a ,.,.,.,.,.,.,.,.,.,.,.H+I+J+K+L+a#b#c#8@8@8@8@,.,. 5$8@8@8@8@8@8@8@8@8@8@,.,.,.,.,.,. 8@8@8@8@8@8@8@8@8@8@8@,. ",
+" '$9.6$- ; ^ ' L ] > > $ (@h i I $ ; I L =.; ^ m+7$ ,.,.( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ,.,.,.,.,.,.,.,. ( ( ( ( ( ( ( ( ( ( ,.,.,. ( ( ( ( ( ( ( ,.,.,.,.q P s Q R v S T U 8$W ,.m#n#<.o#p#Y Z ` ...+.@.,.,.,.,.,.,.,.,.,.,.,.,.X+L+Y+q#c#8@8@8@8@8@8@8@,.5$8@8@8@8@8@8@8@8@8@8@,.,.,.,.,.,. 8@8@8@8@8@8@8@8@8@8@8@8@,. ",
+" R@6#d@k k ^ ^ k k ; l ; ^ b@i ^ k k i.9$|+$+ ,.,.,.,.,.,.,.( ( ( ( ( ,.,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,.,. ",
+" 0$A+i.i /@=.^ ^ ; $ . a$'$b$c$n+ ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,. ",
+" d$|+2$|+e$a.f$y@e.g$ ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,. ,.,.,.,.,.,.,.,.,.,.,.,. ",
+" ,.,.,.,.,. ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/src/sane-xsane-logo.xpm b/src/sane-xsane-logo.xpm
new file mode 100644
index 0000000..2960f24
--- /dev/null
+++ b/src/sane-xsane-logo.xpm
@@ -0,0 +1,425 @@
+/* XPM */
+static char * sane_xsane_logo_xpm[] = {
+"256 48 374 2",
+" c None",
+". c #CA0633",
+"+ c #B0062C",
+"@ c #AC062B",
+"# c #A70628",
+"$ c #A40627",
+"% c #9E0625",
+"& c #A20626",
+"* c #9C0624",
+"= c #96102B",
+"- c #870422",
+"; c #860422",
+"> c #7B031C",
+", c #75021C",
+"' c #74021C",
+") c #73021C",
+"! c #6C021C",
+"~ c #640219",
+"{ c #620218",
+"] c #5C0214",
+"^ c #570214",
+"/ c #540214",
+"( c #4C0213",
+"_ c #4D0213",
+": c #470213",
+"< c #420210",
+"[ c #41020F",
+"} c #3C020C",
+"| c #33020C",
+"1 c #36020C",
+"2 c #31020C",
+"3 c #2C020C",
+"4 c #29020B",
+"5 c #1F0207",
+"6 c #1D0207",
+"7 c #130204",
+"8 c #1E0207",
+"9 c #120204",
+"0 c #883648",
+"a c #BC062F",
+"b c #AF062C",
+"c c #AD062B",
+"d c #A90629",
+"e c #A30626",
+"f c #A10626",
+"g c #830420",
+"h c #77021C",
+"i c #79031C",
+"j c #6F021C",
+"k c #66021A",
+"l c #620217",
+"m c #5D0214",
+"n c #5A0214",
+"o c #580214",
+"p c #550214",
+"q c #520214",
+"r c #430211",
+"s c #430210",
+"t c #3F020E",
+"u c #3A020C",
+"v c #37020C",
+"w c #30020C",
+"x c #2F020C",
+"y c #77424E",
+"z c #27020A",
+"A c #220208",
+"B c #240209",
+"C c #771C31",
+"D c #AB062A",
+"E c #A80629",
+"F c #A60628",
+"G c #A30627",
+"H c #9F0625",
+"I c #54363D",
+"J c #7D2B3E",
+"K c #820420",
+"L c #7F031E",
+"M c #70021C",
+"N c #6D021C",
+"O c #753443",
+"P c #660A20",
+"Q c #600216",
+"R c #5D0215",
+"S c #450212",
+"T c #40020F",
+"U c #3B020C",
+"V c #35020C",
+"W c #3F2F32",
+"X c #2A020B",
+"Y c #9D0527",
+"Z c #6F0F24",
+"` c #AE062B",
+" . c #AA0629",
+".. c #9D0624",
+"+. c #980624",
+"@. c #571C2A",
+"#. c #81031F",
+"$. c #7C031C",
+"%. c #78031C",
+"&. c #610217",
+"*. c #5E0216",
+"=. c #500214",
+"-. c #440211",
+";. c #39020C",
+">. c #32020C",
+",. c #350E16",
+"'. c #4A1E28",
+"). c #200207",
+"!. c #1A0206",
+"~. c #180205",
+"{. c #190206",
+"]. c #740F26",
+"^. c #890C26",
+"/. c #8D0523",
+"(. c #80031F",
+"_. c #71021C",
+":. c #763B48",
+"<. c #560214",
+"[. c #510214",
+"}. c #450211",
+"|. c #38020C",
+"1. c #34020C",
+"2. c #3C0E18",
+"3. c #2E020C",
+"4. c #A32240",
+"5. c #721228",
+"6. c #AA062A",
+"7. c #AC062A",
+"8. c #9B0624",
+"9. c #8E0523",
+"0. c #6A021B",
+"a. c #5B0214",
+"b. c #40020E",
+"c. c #3E020D",
+"d. c #3A0E18",
+"e. c #170205",
+"f. c #6E0C21",
+"g. c #A00625",
+"h. c #9A0624",
+"i. c #940624",
+"j. c #880422",
+"k. c #69021B",
+"l. c #67021A",
+"m. c #753746",
+"n. c #5E0215",
+"o. c #4F0214",
+"p. c #390E17",
+"q. c #72162A",
+"r. c #990624",
+"s. c #950624",
+"t. c #423033",
+"u. c #76021C",
+"v. c #6F2636",
+"w. c #530214",
+"x. c #160205",
+"y. c #6B081E",
+"z. c #9D1A37",
+"A. c #A50627",
+"B. c #960624",
+"C. c #482930",
+"D. c #7D031D",
+"E. c #72021C",
+"F. c #650219",
+"G. c #4E0214",
+"H. c #3D020D",
+"I. c #370E17",
+"J. c #150205",
+"K. c #1C0206",
+"L. c #C90633",
+"M. c #711A2C",
+"N. c #930624",
+"O. c #870B26",
+"P. c #6E021C",
+"Q. c #6B021C",
+"R. c #712C3C",
+"S. c #590214",
+"T. c #360E16",
+"U. c #1D0206",
+"V. c #69041A",
+"W. c #8F0523",
+"X. c #35282A",
+"Y. c #C40630",
+"Z. c #711B2D",
+"`. c #A80628",
+" + c #72303F",
+".+ c #601727",
+"++ c #C2062F",
+"@+ c #721C2E",
+"#+ c #B1062C",
+"$+ c #8A0422",
+"%+ c #402F32",
+"&+ c #7C031D",
+"*+ c #5F0216",
+"=+ c #410E1A",
+"-+ c #BF0E37",
+";+ c #95283F",
+">+ c #9F0528",
+",+ c #403033",
+"'+ c #850421",
+")+ c #7E031D",
+"!+ c #7B041D",
+"~+ c #653C45",
+"{+ c #460212",
+"]+ c #380E17",
+"^+ c #3B2E30",
+"/+ c #903046",
+"(+ c #920624",
+"_+ c #7B0922",
+":+ c #7E031E",
+"<+ c #77404C",
+"[+ c #650E21",
+"}+ c #6D303E",
+"|+ c #3F0E19",
+"1+ c #392D2F",
+"2+ c #C80632",
+"3+ c #A00626",
+"4+ c #8C0523",
+"5+ c #74061F",
+"6+ c #68021B",
+"7+ c #3A0E17",
+"8+ c #210208",
+"9+ c #26020A",
+"0+ c #C70632",
+"a+ c #C3062F",
+"b+ c #970624",
+"c+ c #82041F",
+"d+ c #773F4B",
+"e+ c #55252F",
+"f+ c #3E020E",
+"g+ c #411C24",
+"h+ c #C30630",
+"i+ c #BE062D",
+"j+ c #C0062E",
+"k+ c #AE193A",
+"l+ c #BA062F",
+"m+ c #B4062C",
+"n+ c #3C2E31",
+"o+ c #81041F",
+"p+ c #68021A",
+"q+ c #4A0213",
+"r+ c #2D020C",
+"s+ c #200208",
+"t+ c #C1062E",
+"u+ c #C1062F",
+"v+ c #B3062C",
+"w+ c #A20527",
+"x+ c #4D1E28",
+"y+ c #77404D",
+"z+ c #751D31",
+"A+ c #67343F",
+"B+ c #5E1424",
+"C+ c #BF062E",
+"D+ c #BC062C",
+"E+ c #BD062F",
+"F+ c #BC062E",
+"G+ c #AD0629",
+"H+ c #7F0823",
+"I+ c #490213",
+"J+ c #230208",
+"K+ c #C60631",
+"L+ c #C20630",
+"M+ c #AF062B",
+"N+ c #A50628",
+"O+ c #840421",
+"P+ c #552C35",
+"Q+ c #50091A",
+"R+ c #28020A",
+"S+ c #1B0206",
+"T+ c #2C1F21",
+"U+ c #C50631",
+"V+ c #C50630",
+"W+ c #BB062C",
+"X+ c #B6062C",
+"Y+ c #97213B",
+"Z+ c #BA062E",
+"`+ c #910624",
+" @ c #8B0523",
+".@ c #763141",
+"+@ c #461822",
+"@@ c #4B0213",
+"#@ c #400E1A",
+"$@ c #250209",
+"%@ c #B5062C",
+"&@ c #B7062C",
+"*@ c #7F051D",
+"=@ c #561625",
+"-@ c #8A0523",
+";@ c #900523",
+">@ c #3E2F32",
+",@ c #7A031C",
+"'@ c #670B21",
+")@ c #6B021B",
+"!@ c #630219",
+"~@ c #26090E",
+"{@ c #483237",
+"]@ c #85384A",
+"^@ c #8F0521",
+"/@ c #890422",
+"(@ c #402D31",
+"_@ c #753947",
+":@ c #441B24",
+"<@ c #490516",
+"[@ c #28020B",
+"}@ c #BD062D",
+"|@ c #C90632",
+"1@ c #B8062C",
+"2@ c #800723",
+"3@ c #430E1B",
+"4@ c #B9062C",
+"5@ c #763B49",
+"6@ c #753C49",
+"7@ c #682A38",
+"8@ c #C70631",
+"9@ c #900624",
+"0@ c #480213",
+"a@ c #663641",
+"b@ c #BD062C",
+"c@ c #B2062C",
+"d@ c #8D0522",
+"e@ c #A30628",
+"f@ c #763A47",
+"g@ c #603A43",
+"h@ c #140204",
+"i@ c #833848",
+"j@ c #8E0522",
+"k@ c #840420",
+"l@ c #860421",
+"m@ c #3D2E31",
+"n@ c #6E142A",
+"o@ c #490A19",
+"p@ c #2B020B",
+"q@ c #74061D",
+"r@ c #61081B",
+"s@ c #3D0E19",
+"t@ c #78041D",
+"u@ c #6F1C30",
+"v@ c #50202B",
+"w@ c #3B1A20",
+"x@ c #BA062C",
+"y@ c #5B081A",
+"z@ c #230209",
+"A@ c #3B0E18",
+"B@ c #37020E",
+"C@ c #AE062A",
+"D@ c #9D0625",
+"E@ c #733745",
+"F@ c #4D3439",
+"G@ c #3E0E19",
+"H@ c #911831",
+"I@ c #820B23",
+"J@ c #83051F",
+"K@ c #80051F",
+"L@ c #7C051F",
+"M@ c #77041E",
+"N@ c #7B3243",
+"O@ c #82172F",
+"P@ c #77031E",
+"Q@ c #74031E",
+"R@ c #6D031A",
+"S@ c #6B0319",
+"T@ c #670219",
+"U@ c #51111F",
+"V@ c #4C0F1C",
+"W@ c #4F0616",
+"X@ c #430212",
+"Y@ c #410916",
+"Z@ c #603A42",
+"`@ c #3F121C",
+" # c #340912",
+".# c #33020D",
+"+# c #32020D",
+"@# c #2C020B",
+"## c #39151C",
+"$# c #35141A",
+" ",
+" ",
+" ",
+" ",
+" ",
+" . . . . . . . . . . . . . . . + + + + @ # $ $ % & * = - - - ; > > > , ' ' ) ! ~ ~ { ] ] ] ^ / / ( _ : < [ [ } | | 1 2 | | 3 4 5 5 5 5 5 6 7 8 9 ",
+" . . . . . . 0 . . . . . . . . . . a + b c d # $ e f % * * - - - g g > h i ' ' j j ! k { l m ] n o p / q r s < t } u v v | w x y z A B A 5 5 5 8 9 9 ",
+" . . . . . . . . . . . . . . . . C + D E @ F $ G H % * * I J - - K L > h h ' ' M N ! O P ~ Q R ] n o ^ / q S < [ T } } U V | 2 w W X A z 5 5 8 5 8 7 9 ",
+" . . . . . . . Y . . . . . . . . Z + ` E .E $ G ..H * +.@. - #.$.> > %.h , M M j N ! &.l *.] n o p / =. -.[ < t } ;.u 1 | >.w ,. '.).5 5 !.5 ~.{.{. ",
+" . . . . . . . . . . . . . . . . ]. + .E .E $ f & * * +.^. /.> (.> > %.' ' _.N j ! ! :. &.l R ] n o <./ [. }.< [ } } u |.1.| w x 2. 3.5 5 5 8 8 7 ~. ",
+" . . . . . . . . . 4. . . . . . . . 5. ` 6.7.d $ G & % * * 8.9. (.> > > h , ' _._.M ! 0.k *.] ] a.o <./ [. -.< b.c.} ;.v V | >.x d. 5 5 5 8 8 7 e. ",
+" . . . . . . . . . . . . . . . . . f. c D 7.# $ G g.& * * h.i.y j.$.> i , , ' ' ) N ! k.l.m. l n.] n <./ / o. s [ < T } u |.v | w w p. 5 e.!.e.9 9 ",
+" . . . . . . . . . . . . . . . . . q. + D d 6.$ G H f * * r.s.t. > > > i u.' j j N ! l.k v. ~ ] ] ^ o / q w. r [ [ } } |.|.1.| >.w ,. 8 x.7 x.9 ",
+" . . . . . . . . . . . . . . . . . y. z. d D A.$ H f * * 8.B.i.C. D.> > i , ' E._.! ! k.F.~ n.] ^ p / / G. s < H.[ } } ;.1.| 2 3 I. J.8 K.9 ",
+" . . . . . . . . . . . . . . . . . L.M. + 7.D $ $ G % * * h.i.N.O. + > > , , ' P.E.! Q.k ~ ~ R. n.] ^ S./ / _ < < < } } ;.1.| | 2 3 T. 7 U.9 ",
+" . . . . . . . . . . . . . . . . V. + + 7.7.$ $ & % * * h.N.N.W. - > , ' ' N ) ! ! ! k ~ ~ ~ ] S.S./ / / [ < } } ;.} ;.| 2 2 3 ,. X.9 9 ",
+" . . . . . . . . . . . . . . . Y.Z. + + - 7.`.$ $ & * * * s.h.N.N.y - > , ' ' ' ' E.! 0.k ~ ~ ~ + .+S.^ / _ G. : < } } } v |.| x 2 3.,. 5 7 9 ",
+" . . . . . . . . . . . . . . . ++@+ #++ + $ $ H H * * B.s.i.N.$+%+ &+N. , ' ' ) N ! ! k 0.~ ~ { *+ ^ ^ / G._ [ [ [ } ;.|.1.| >.x 3 =+ 5 8 y 9 ",
+" . . . . . . . . . . . . . . -+ ;+ + + >+ $ $ & ..* * B.h.N.N.N.,+ '+)+ !+' ' ' N N ! Q.l.~ ~ &.*+~+ <./ / =.G. {+[ [ } U v 1 | x x 3.]+ 5 5 5 ^+ ",
+" . . . . . . . . . . . . . . /+ + + c c G g.f f * 8.s.s.N.(+W._+ :+> <+ ' ' j ! ! ! l.~ ~ ~ &.n.[+ }+/ q _ G. < T c.} |.v |.| >.w w |+ ).z 5 e.1+ ",
+" . . . . . . . . . . . . . 2+ + + 6.6. $ 3+f g.* +.i.N.N.W.4+j. g > > 5+' j ! ! 0.k.6+~ ~ *+Q ] / / q _ t c.} } U 1.V | w x x 7+ z 8+9+5 5 1+ ",
+" . . . . . . . . . . . 0+0+a+ + c 6.d e % g.* 8.b+i.N.N.(+j.- y (.c+> d+ ) M ! ! 6+l.F.~ &.Q R ] e+ / o._ G. f+t t u |.V | | 2 x 3 g+ A 4 8+5 5 !.1+ ",
+" . . . . . . . . . . h+2+i+j+k+ l++ @ 6.6.6. m+% H * r.B.b+N.(+/.4+- n+ o+> > %. M ) ! ! p+p+~ ~ Q Q R ] ^ G.o.q+ t f+} u |.1 | >.w r+3 ,. 4 s+5 5 5 8 1+ ",
+" . . . . . . . . Y.2+t+u+j+i+v+ + ` .d 6.w+ % * * h.i.N.N.(+4+/.- x+ > > > h y+ z+N ! 6+0.F.~ &.&.R ] n o A+ B+G.q+ f+} } u v V | 2 w r+3 ,. A 5 5 5 8 1+ ",
+" . . . . . . 0+0+Y.++Y.C+C+D+ + 6.d .# $ E+F+G+% * * b+b+N.(+4+9.- - H+ g > h > ' ! ! p+l.6+~ { { m ] a.o ^ ( I+ b.} } u v V | 2 x x 3 7+ J+5 8 8 1+ ",
+" . . . . 0+0+Y.K+++++C+L+D+D+D+ M+D N+$ $ $ e f % * 8.+.s.N.N.(+j.j.W.- O+ > i i ' ' ! ! k.0.~ ~ { &.m ] ^ S.p P+ Q+I+ b.T U v 1.| 2 >.w 3 3 p. R+K.S+1+ T+ ",
+" . . . 2+U+U+t+V+C+C+D+h+D+D+W+X+Y+ Z+D D E $ $ $ f H % * B.r.N.N.`+ @W.- - - - y > ' u.' ' .@ l.k ~ ~ ~ *+&.] ] a.<./ +@ @@ H.} U U 1 | 2 x 3.3 4 #@ $@x.1+ 9 ",
+" . . . j+C+j+U+C+j+D+V+D+D+%@&@W+%@ D D A.A.$ $ f *@: =@d r.i.N.N.-@;@;@;@- - - >@ > ' ' ,@' ' '@)@F.~ { !@&.] ] <./ / / : [ } |.v 1 | >.x r+3 B ,. ~@{@ 9 9 ",
+" . . 2+]@ K+j+j+j+j+D+D+D+D+D+%@+ + 6.$ $ $ $ $ f ^@ B.s.N.N.`+/@- - - - - (@ > > ' ' ' N _@ 0.~ ~ ~ n.] ] ] <.S./ / :@ <@ } } |.| | | w 3 3 3 [@,. 9 9 9 ",
+" }@. |@. . K+D+D+D+D+D+1@D+%@&@&@+ .d $ $ $ f H f s.h.N.N.`+- - - - - - 2@ > ' ' ' ' N N 0.~ ~ { n.] ] n ^ / / / o. } } |.| | | x 3 3 R+3 3@ J.9 9 9 ",
+" . i+0+D+0+ D+}@D+D+4@%@m+1@%@+ + + 7.A.$ $ $ f H f * r.N. @;@- - - - - - - ,@ > ' , ' ) N ! 5@ 6@~ n.n.n.] n ^ / / ( ( ( 7@ } |.|.| | x w 3.3 [@B ,. 9 K.9 9 9 ",
+" C+8@|@D+K+j+ D+D+%@%@1@%@&@&@X++ + .A.$ $ f H f * * N.9@ @W.W.- /@- - - - D.y ,@' ' ' P.! ! ! ~ *.&.n.] S.S.<./ w.o.o.0@ } U |.1 | | w 3 3 $@4 ,. a@S+9 9 9 9 ",
+" j+j+j+U+D+b@D+ &@1@&@c@#+#+c@+ + + 6.$ $ f g.....* +.d@ e@4+9@/@- - - - - - ; &+n+ u.' ' P.) N ! 0.f@ ~ &.R ] a.<.o / / [.G._ @@g@ ;.|.|.1.| 2 w x 3 X 4 ]+ h@7 9 9 9 9 ",
+" U+D+Y.}@D+D+D+i@ v+&@X+v++ v++ + D 6. $ $ $ G H f H * * +.j@ ;@/@-@- - - - - k@L l@m@ ' ' j j ! ! ! k.n@ &.] ] S.S.o / [._ o.q+q+o@ u u V | >.x r+3 p@9+9+p. !.x.7 9 9 9 9 ",
+" D+D+D+D+D+D+W+W+ v+X++ + + + c 6.F 6.$ f 3+3+..* h.b++.`+ ;@ @ @j.- - - - ; > > q@ ' ' _.' ! ! ! l.6+ r@m ] o o / / o.G._ ( : : ;.v 1 | | w x 3 4 9+J+s@ {.~.7 {.9 9 9 9 ",
+" D+&@W+X+&@X+W+&@X+ + + + + ` ` 6. $ & g.g.% * * b+B.B.N. 4+4+j.- - - - - l@(.> t@ ' M M ! ! ! Q.6+F.u@ ] S.o p / / @@=.( @@: : v@ u 1 | 2 2 w r+3 3 $@$@,. w@{.~.9 9 9 9 9 9 ",
+" X+X+W+#+X+c@x@X+X+m+ + + ` ` D D & 3+% % * * h.B.s.N.N. - j.- - - - l@K l@#.> > y M M M ! ! ! 6+l.~ &. y@o o p / =.q @@( : : r S |.1 | >.w 3 3 X X z@$@A@ B@8 ~.{.7 9 9 9 9 9 ",
+" W+#+W+#+m+%@%@#+m++ + + ` 7.E 6. C@3+D@* * * h.b+r.b+N.4+h - - - - - - l@&+$.> i > n+ ' _.j _.! ! k.~ ~ !@E@ <.o / [.[.[.@@: : : }.< F@ |.1 | w w r+3 z 9+$@9+G@ 6 {.e.7 x.9 9 9 9 9 ",
+" #+1@#+&@+ #+#++ + + + + + E 7. g.H@I@J@K@J@K@K@L@L@M@M@ N@O@P@Q@Q@Q@R@R@S@S@S@T@n+ ' ! P.! k.l.k ~ ~ { R <.U@V@W@=.=.q+: : X@-.Y@Z@ |.`@ #| .#+#3.3.@#r+@#>@ ##$#J+J+K.K.!.x.x.x.K. ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/src/xsane-32x32.ico b/src/xsane-32x32.ico
new file mode 100644
index 0000000..4408721
--- /dev/null
+++ b/src/xsane-32x32.ico
Binary files differ
diff --git a/src/xsane-32x32.xpm b/src/xsane-32x32.xpm
new file mode 100644
index 0000000..e695c8f
--- /dev/null
+++ b/src/xsane-32x32.xpm
@@ -0,0 +1,236 @@
+/* XPM */
+static char * xsane_32x32_xpm[] = {
+"32 32 201 2",
+" c None",
+". c #020206",
+"+ c #3E3A2A",
+"@ c #5E5A42",
+"# c #9A926E",
+"$ c #DED6B2",
+"% c #2A36FE",
+"& c #161EFA",
+"* c #B6AE86",
+"= c #323EFE",
+"- c #465AFE",
+"; c #D2CAA2",
+"> c #161612",
+", c #3E4AEA",
+"' c #C6BE96",
+") c #726A52",
+"! c #96AAFE",
+"~ c #3236D6",
+"{ c #7E8AFA",
+"] c #7E765A",
+"^ c #A2B6FE",
+"/ c #A69E7A",
+"( c #F2F2DE",
+"_ c #322E22",
+": c #BEB68E",
+"< c #4E4A36",
+"[ c #3A3E9A",
+"} c #C2D2FE",
+"| c #969AE6",
+"1 c #EAE6C6",
+"2 c #8A8262",
+"3 c #6262BA",
+"4 c #423E6E",
+"5 c #1E2266",
+"6 c #AEA67E",
+"7 c #CEC69E",
+"8 c #E6E2BE",
+"9 c #12120E",
+"0 c #2E2A1E",
+"a c #3646FE",
+"b c #86829E",
+"c c #968E6A",
+"d c #1E22FA",
+"e c #C2BA92",
+"f c #DEEAFA",
+"g c #5A563E",
+"h c #566AFE",
+"i c #222216",
+"j c #D6CEA6",
+"k c #464232",
+"l c #BAB28A",
+"m c #222AFA",
+"n c #DEDABA",
+"o c #9E9672",
+"p c #0E0E0A",
+"q c #928A66",
+"r c #B2A67E",
+"s c #3A4AFE",
+"t c #CAC29A",
+"u c #363226",
+"v c #524E3A",
+"w c #222EFA",
+"x c #A29A8A",
+"y c #DED2AE",
+"z c #726E52",
+"A c #F6F6F6",
+"B c #4E62FE",
+"C c #1E1E16",
+"D c #867E5E",
+"E c #CECAB6",
+"F c #3E52FE",
+"G c #4E56EA",
+"H c #F2EED6",
+"I c #C6BA92",
+"J c #E6DEBA",
+"K c #A29672",
+"L c #AAA27A",
+"M c #B2AA82",
+"N c #C2B68E",
+"O c #D2C69E",
+"P c #A29A76",
+"Q c #5E72FE",
+"R c #423E2E",
+"S c #7A7256",
+"T c #CABE96",
+"U c #A2AAFA",
+"V c #928666",
+"W c #060606",
+"X c #1A1612",
+"Y c #EAE2CE",
+"Z c #BAAE86",
+"` c #867A5E",
+" . c #CEC29A",
+".. c #AEA27E",
+"+. c #DAD2AA",
+"@. c #D6CAA2",
+"#. c #8E8666",
+"$. c #BEB28A",
+"%. c #262EFA",
+"&. c #B6AA82",
+"*. c #625A46",
+"=. c #D6CEAE",
+"-. c #4A4632",
+";. c #56523E",
+">. c #7E7A62",
+",. c #EEE6CE",
+"'. c #564E46",
+"). c #EAE2C2",
+"!. c #BAAE8A",
+"~. c #E6DABA",
+"{. c #3E362A",
+"]. c #4652FE",
+"^. c #A69A76",
+"/. c #1E1A16",
+"(. c #3A3626",
+"_. c #625E46",
+":. c #C2B692",
+"<. c #9A8E6E",
+"[. c #968A6A",
+"}. c #B6AA86",
+"|. c #2632FA",
+"1. c #BEB28E",
+"2. c #E2DABE",
+"3. c #D2C6A6",
+"4. c #E2D6B2",
+"5. c #FAFAF6",
+"6. c #D6CAA6",
+"7. c #CABE9A",
+"8. c #3242FE",
+"9. c #827A5E",
+"0. c #26261E",
+"a. c #4256FE",
+"b. c #1A1A12",
+"c. c #AA9E7A",
+"d. c #5E5642",
+"e. c #2A32FA",
+"f. c #EEE6CA",
+"g. c #16120E",
+"h. c #DACEAA",
+"i. c #4A4232",
+"j. c #E2DAB6",
+"k. c #4A5EFE",
+"l. c #A6BAFE",
+"m. c #42426A",
+"n. c #5266FE",
+"o. c #EEEACE",
+"p. c #9E9272",
+"q. c #524A3A",
+"r. c #AEA682",
+"s. c #D2C6A2",
+"t. c #463E2E",
+"u. c #7E7256",
+"v. c #DED2B6",
+"w. c #E6DEC2",
+"x. c #AAA282",
+"y. c #EAE2C6",
+"z. c #E2D6BA",
+"A. c #564E3A",
+"B. c #221E16",
+"C. c #D6CEAA",
+"D. c #E2DABA",
+"E. c #8A8266",
+"F. c #3A362A",
+"G. c #CEC29E",
+"H. c #82765A",
+"I. c #C6D2FA",
+"J. c #26221A",
+"K. c #4252FE",
+"L. c #665A46",
+"M. c #DACEAE",
+"N. c #827A66",
+"O. c #665E46",
+"P. c #3E3A2E",
+"Q. c #B6AE8A",
+"R. c #BEB692",
+"S. c #CEC6A2",
+"T. c #928A6A",
+"U. c #C6BA96",
+"V. c #A29676",
+"W. c #AAA27E",
+"X. c #DED6B6",
+"Y. c #E6DEBE",
+"Z. c #A69A7A",
+"`. c #968E6E",
+" + c #B2A682",
+".+ c #423E32",
+"++ c #D6CAAA",
+"@+ c #E6E2C2",
+"#+ c #5A5642",
+"$+ c #9E9676",
+"%+ c #867E62",
+"&+ c #B2AA86",
+"*+ c #AA9E7E",
+"=+ c #464236",
+"-+ c #0E0E0E",
+";+ c #DED2B2",
+">+ c #DAD2AE",
+",+ c #4A4636",
+"'+ c #5E5646",
+")+ c #161212",
+"!+ c #564E3E",
+" ",
+" W.Y.1 $ T 7.j.j $ C.' I t 6. . ",
+" E Y.$ O &.' ; I T I 6 I ; N N T 6 T .r. ",
+" 1 X.O 7.I I +N I I e N }.N I T N :.Z N I T !.*+ ",
+" 2.I T Z t 7 Z &.: Z }.t Z r I $.T 7 Z &.T $.T t * c u. ",
+" 1 C.I N $.e $.I I $.&.1.&.!.&...6 l $.I I 1.$.I $.I N `.< ",
+" y.4.7.&+1.N !.$.' ..^.` i.0 J.B./._ R O.p.W.N I Z $.I K $._. ",
+" 1 S.I 7 I : N x.;.;.9 [.!.: I t l j e # X ",
+" ,.T N W.I T }.. 1 j T Z I W.I N C ",
+" J s.I Z I N Z F. j.w.I N I I }.I &.g.",
+" +.j.$.r :.&.T Z g M 2 2 ^.I T Z &.N p.W ",
+" ;+7 N I $.I I V.) A.%+[.: I I S ",
+" ; : I I !.' T / H. ` ..N b. ",
+" O ; 1.!.N e 2 !+{. R.O x ).l V T.. ",
+" $.Z :.T o /.. ).).$ I @.j ; I &. 1.7 M 0 ",
+" Z W.=+)+ o.j.j T Q.1.!.N N : .: `.9.Z e N P ",
+" $ D g < (.+ _ _ + < d.] T.W.S N 7 N #.@ ",
+" E.C ~.++p.N K k *._ G.7 I `. ",
+" 3.q.5 w 4 / 6 s.T e R ",
+" v.m.e.].s K.% b R s.O N q ",
+" Y.) m |.a.l.n.d , 6./. D.r $.&.0 ",
+" M.#+ y.W e.F } 5.I.^ k.@+z z.N I I -.",
+" Y ).F. $.. %.h A 5.5.Q m H D D.I Z I < ",
+" 1 =.+ y '.= = ! f { B |.@+-+ ( t T N W./.",
+" 1 1 e 0. 7 [ - a h |.& | < 8 >+7 T @.#.. ",
+" ; j :.c.$+ [.<.3 ~ 8.G U N.. f.y.7 $.:.T ^.9 ",
+" j 7.c.&.r... 2 I I V.b.. Y.h.G.Z N T I r..+ ",
+" $.r.* t t 6.I &.U.j @.j.j >.j.y.$ n s.$.I ; I 7 P P. ",
+" <.^.L ' I N .$.6 t t T @.e }.7 T I 7 $...I N 2 > ",
+" E.q P Z Z N N Z Z I !.I N Q.}.N Z Z p.'+F.. ",
+" v S p.}.o ..N N I T W.Z.<.L.i W ",
+" u F.P.F.,+i.t.(./.p "};
diff --git a/src/xsane-48x48.ico b/src/xsane-48x48.ico
new file mode 100644
index 0000000..5f609ac
--- /dev/null
+++ b/src/xsane-48x48.ico
Binary files differ
diff --git a/src/xsane-48x48.xpm b/src/xsane-48x48.xpm
new file mode 100644
index 0000000..e063bca
--- /dev/null
+++ b/src/xsane-48x48.xpm
@@ -0,0 +1,272 @@
+/* XPM */
+static char * xsane_48x48_xpm[] = {
+"48 48 221 2",
+" c None",
+". c #AEA282",
+"+ c #D6CAA6",
+"@ c #EAE6C6",
+"# c #DED6B2",
+"$ c #DACEAA",
+"% c #E6DEBE",
+"& c #DED6AE",
+"* c #E6DEC2",
+"= c #DAD2AA",
+"- c #BEB68E",
+"; c #C2B68E",
+"> c #BEB692",
+", c #AAA27E",
+"' c #EAE2C2",
+") c #E2DAB6",
+"! c #DAD2AE",
+"~ c #CABE96",
+"{ c #D6CAA2",
+"] c #CEC29A",
+"^ c #D6CEA6",
+"/ c #C6BA92",
+"( c #D2C69E",
+"_ c #AEA682",
+": c #CAC29A",
+"< c #B2AA82",
+"[ c #CECAB6",
+"} c #E6DEBA",
+"| c #B6AA82",
+"1 c #D2CAA2",
+"2 c #AEA67E",
+"3 c #EAE6D2",
+"4 c #CEC29E",
+"5 c #BAAE86",
+"6 c #BEB28A",
+"7 c #AA9E7A",
+"8 c #BEB28E",
+"9 c #AEA27E",
+"0 c #A69A7A",
+"a c #968E6E",
+"b c #C6BA96",
+"c c #DED2AE",
+"d c #CEC69E",
+"e c #BAAE8A",
+"f c #9A8E6E",
+"g c #E2DEC6",
+"h c #E2D6B2",
+"i c #B6AE86",
+"j c #C6BE96",
+"k c #A29676",
+"l c #B6AA86",
+"m c #B2A67E",
+"n c #968E6A",
+"o c #7E7256",
+"p c #F6F2E6",
+"q c #B2A682",
+"r c #665E46",
+"s c #C2BA92",
+"t c #A69A76",
+"u c #A29A76",
+"v c #9E9672",
+"w c #4E4A36",
+"x c #EAE2C6",
+"y c #B2AA86",
+"z c #C2B692",
+"A c #968A6A",
+"B c #867A5E",
+"C c #564E3A",
+"D c #3A3226",
+"E c #2E2A1E",
+"F c #26261A",
+"G c #221E16",
+"H c #1A1612",
+"I c #1E1A16",
+"J c #322E22",
+"K c #3A3626",
+"L c #4A4632",
+"M c #BAB28A",
+"N c #A29672",
+"O c #625E46",
+"P c #56523E",
+"Q c #1A1A12",
+"R c #060606",
+"S c #5A523E",
+"T c #16160E",
+"U c #B6AE8A",
+"V c #7E765A",
+"W c #020206",
+"X c #8A8262",
+"Y c #A69E7A",
+"Z c #EEE6CE",
+"` c #1E1E16",
+" . c #16120E",
+".. c #5E5642",
+"+. c #EEEAD2",
+"@. c #120E0E",
+"#. c #5A563E",
+"$. c #7A7256",
+"%. c #9E9272",
+"&. c #E2DABA",
+"*. c #CABE9A",
+"=. c #72664E",
+"-. c #726A52",
+";. c #82765A",
+">. c #4E4636",
+",. c #2A261E",
+"'. c #928666",
+"). c #26221A",
+"!. c #A29A8A",
+"~. c #AAA27A",
+"{. c #867E5E",
+"]. c #EEEACE",
+"^. c #D2C6A2",
+"/. c #8A7E62",
+"(. c #766E52",
+"_. c #625A46",
+":. c #E2DABE",
+"<. c #9E9676",
+"[. c #5E5A42",
+"}. c #3E3A2A",
+"|. c #9A926E",
+"1. c #8E8666",
+"2. c #DED6BE",
+"3. c #8A8266",
+"4. c #4A4232",
+"5. c #464232",
+"6. c #625A42",
+"7. c #E6DABA",
+"8. c #766E56",
+"9. c #D6CAAE",
+"0. c #CAC29E",
+"a. c #524A3A",
+"b. c #121216",
+"c. c #2632B6",
+"d. c #222EFA",
+"e. c #262A92",
+"f. c #5A5246",
+"g. c #423E2E",
+"h. c #CABE9E",
+"i. c #CEC6A2",
+"j. c #222AFA",
+"k. c #161EFA",
+"l. c #5E72FE",
+"m. c #2A36FA",
+"n. c #5266FE",
+"o. c #3242FE",
+"p. c #0E0E0A",
+"q. c #726A4E",
+"r. c #EEE6CA",
+"s. c #0A0A0A",
+"t. c #2E3AFA",
+"u. c #7A92FE",
+"v. c #465AFE",
+"w. c #6276FE",
+"x. c #1A22FA",
+"y. c #3A4AFE",
+"z. c #2632FA",
+"A. c #4252FE",
+"B. c #4256FE",
+"C. c #A6BAFE",
+"D. c #5A6AFE",
+"E. c #4A5EFE",
+"F. c #1E22FA",
+"G. c #4E5AD6",
+"H. c #3E4EFE",
+"I. c #3646FE",
+"J. c #7286FE",
+"K. c #E6F6FE",
+"L. c #FAFAF6",
+"M. c #BED2FE",
+"N. c #627AFE",
+"O. c #AABAFE",
+"P. c #5A6EFE",
+"Q. c #D2CAAA",
+"R. c #5A5642",
+"S. c #1E26FA",
+"T. c #BACEFE",
+"U. c #9AAEFE",
+"V. c #667AFE",
+"W. c #F2EED6",
+"X. c #F2EEDE",
+"Y. c #EAE2CE",
+"Z. c #262EFA",
+"`. c #566AFE",
+" + c #EEF2F6",
+".+ c #F6F6F6",
+"++ c #6A624A",
+"@+ c #96AAFE",
+"#+ c #F6FAF6",
+"$+ c #7E92FE",
+"%+ c #3646FA",
+"&+ c #FAFAF2",
+"*+ c #7E766A",
+"=+ c #728AFE",
+"-+ c #5A72FE",
+";+ c #BED6FE",
+">+ c #5262FE",
+",+ c #323EFA",
+"'+ c #26261E",
+")+ c #524E3A",
+"!+ c #3642FE",
+"~+ c #A29A7A",
+"{+ c #665E6E",
+"]+ c #BAB2AA",
+"^+ c #867E62",
+"/+ c #6E664A",
+"(+ c #AEA27A",
+"_+ c #2E2A22",
+":+ c #D6CEAA",
+"<+ c #EAE6CA",
+"[+ c #AAA282",
+"}+ c #827A5A",
+"|+ c #221E1A",
+"1+ c #463E32",
+"2+ c #222216",
+"3+ c #3A362A",
+"4+ c #423A2E",
+"5+ c #4A4636",
+"6+ c #423A2A",
+"7+ c #463E2E",
+"8+ c #22221A",
+" ",
+" . + @ # $ % & * = - ; > ",
+" , ' ) @ ! ) ~ { ] { ^ ~ ^ / ( _ : / { # ~ ] < ",
+" [ % } # ^ ~ | ; : 1 / / ~ ~ ; 2 ; ~ 1 ; ; ; ~ / 2 / ] ] _ ",
+" 3 % ^ 4 ~ 5 / 6 7 ~ 6 8 ; / | ; 5 7 / 6 5 ; : 5 ; 6 9 ~ 6 5 / / 0 a ",
+" b @ c ~ ~ ] / d ( e 5 ; ; ~ ] / d ( e ; e ; ] ] / ~ ( e ; 5 / ] ] / ~ ] f ",
+" g h / ; ( 5 : ~ d 5 | | i j 5 ~ k : 5 l m ; ~ 6 ~ ~ d 5 5 | / ] 6 ~ ~ : 5 < n o ",
+" @ p 1 m 5 q 6 d e 5 1 ~ m 5 9 m d 6 5 1 ~ m 5 9 5 ~ 6 5 ^ ~ l e 9 5 ] ; 5 ^ / l 9 r ",
+" @ / s ^ ~ ~ 5 ; ; ; 5 8 + ~ / 5 q 5 m t t l k 7 u _ | 6 l 6 ( ~ / 6 ; ; ; l ; ~ v 7 w ",
+" x h + 6 y z l ; e l 6 d 6 9 | A B C D E F G G H I J K L r A t , ; 6 / M | 6 d 5 N ; 5 O ",
+" ' ) ] ; d ; ] : ; 5 + 5 B P Q R S A | 1 : / ; ^ / 6 ^ - ] A T ",
+" @ U 6 ; d e / m ~ 5 V H W X ] < ~ / 6 ; Y 1 6 ; v H ",
+" Z ~ ; ; , ~ ; ~ ~ k W @ ^ ~ ~ 5 / ; , ; / ; ` ",
+" % / 6 6 7 ~ 6 5 e N . @ ; 5 / e 8 ; Y ~ 6 m T ",
+" ) ! 1 ; / / ~ ~ ~ e .. ) +.$ ~ / / ] 1 6 ; ; ~ 5 @. ",
+" = ) ; l m 8 / | ~ / 5 #. < X $.f t ; / ~ 6 | | ; ; %.R ",
+" &.^ ( 5 6 ; ; ~ / *.l =. C -.f | { 1 ; ; 6 A W ",
+" + ] / ~ ~ ~ 5 / ; 6 ; k -. =.A 6 ~ ~ ] .. ",
+" ) ; - ~ ; / ; q j { 5 Y ;. B 9 ~ | Q ",
+" $ ] + l ~ 5 e / ^ ( 2 t >.,. '.l f W ",
+" ~ d 5 ; e / 6 9 $.).W > ( ( !. 1 ' ~ ~. 9 L ",
+" 6 5 ~ e ~ l {.I W ) ].' % { / ^ ( ^ 1 ^./ | , ] d 5 , E ",
+" 5 1 5 /.).W ' ) + ( ] 6 / _ ~ ; ; i ; ~ 6 _ (. X 5 5 j q X ",
+" 6 _.W :.].&.= ~ ; 5 <.s q ; 5 ; ; ; ; ] d 6 i $. ; ~ ] ] '. ",
+" @ 4 {.[.C w }.J }.J J J }.}.w C r V /.|., %.C ; d ; 6 1.[. ",
+" 2.3.).T 4.5.6._. e ^.( ^ ; 1. ",
+" 7.% z %.5 / N J ~ ( ; ~ 6 8. ",
+" 9.0.a.b.c.d.e.f.Y 2 ) 6 ~ ] i g. ",
+" h.i.R j.k.l.m.n.o.k.u t p. ) 6 ( | ~ q. ",
+" r.s.j.t.j.u.v.w.x.y.k.6 -. = ~ ] 5 / m ). ",
+" % -.j.j.z.A.B.C.D.E.F.m.G.+ I ].1 m ; 5 | E ",
+" +.R F.H.I.J.K.L.M.N.O.P.m.! K % $ 6 / 6 ; g. ",
+" Q.c R. &.W S.z.v.T.L.L.L.L.U.V.A.W.~. X.] / / : ~ w ",
+" Y.' =.W 6 W Z.Z.`. +L.L.L..+l.j.j.W.{. +.^./ 5 l / w ",
+" +.x ++W # ,.y.t.z.@+L.L.#+$+%+S.m.W.H &+&.1 / 6 9 , E ",
+" @ $ Y p. $ *+S.A.y.=+-+;+m.>+V.,+j.! W :.@ / m ~ / d 7 s. ",
+" @ @ { _ '+ d w Z.v.m.A.`.S.t.k.H.Z w ) @ ! ^ / ~ ( { 1.W ",
+" ! ! *.l /. A 6 )+j.S.j.y.!+k.v.Z 1.W * ' ; ; ~ l / l 6 ` ",
+" ~ d j ; / ~+|. %.| k {+j.m.!+]+&+^+W } W.x 1 5 l / / ~ | /+W ",
+" ^ + 6 7 5 (+_ 9 X 6 ] / ; V Q W % $ ! 6 5 5 / ~ ] 5 _ ;.W ",
+" ; *.q / t 0.] ^ $ ; : (+0 _+ :+<++.) c ; ; ~ 1 / ( 1 6 8 $.R ",
+" _ | , : u ~ ; / d ] 6 5 + + ^ ( ^ ) # ] d ) ) x $ ^ d ] 5 l / j ( ; ; ~ 5 )+W ",
+" f t t 2 j / / ; ] ] 6 9 2 : : ~ ~ ^.{ s l q d ~ / / d ] 6 9 (+/ / 5 X F W ",
+" -.k m m e ; / 6 5 | 6 m l 5 ~ / 6 ; | e [+l 5 ; / ; 5 | 5 f o _+W ",
+" q.}+%.m q (+/ ; : ; 5 5 ; 5 9 ~ / ] ; l q ; | 7 5 f ++|+W ",
+" )+(.V %., 6 v 9 9 ; / e / / ] , 9 %.f ;.1+2+R ",
+" _+}.3+4+3+3+5+5+4.6+7+K 8+ .p. ",
+" "};
diff --git a/src/xsane-WIN32.txt b/src/xsane-WIN32.txt
new file mode 100644
index 0000000..e7476dc
--- /dev/null
+++ b/src/xsane-WIN32.txt
@@ -0,0 +1,123 @@
+README for xsane for win32:
+
+
+This is an early Version of xsane for win32.
+It may have several bugs. It is not tested very well
+but short tests looked very good.
+
+This version supports:
+ - preview scan, preview zoom
+ - scan and save to pnm, ps and raw file, if compiled in also jpeg, png and tiff
+ - handling of all backend options
+ - helpfiles
+ - copy mode (printing via ghostscript, see section "copy mode")
+ - gimp-plugin
+
+
+It does not support:
+ - fax mode (no compatible faxsoftware)
+ - internationalization not set up correct
+
+
+Installation:
+=============
+ - unpack the archiv to c:\
+ that creates the directory c:\Sane with several files
+ you do not need to copy any files, simply call xsane or scanimage
+
+ - Sane MUST BE installed in c:\sane because the paths are hardcoded.
+ Xsane will not work correct if you install it at any other place!
+
+ - make sure you have a directory c:\temp (or whatever you
+ define as temporary directory in xsane's setup)
+
+ - there are two icons (xsane-32x32.ico and xsane-48x48.ico)
+ that you can use if you set a link from xsane.exe to your desktop,
+ for that use right mouse button and change properties of the link,
+ change icon and select "c:\sane\xsane-??x??.ico"
+
+
+Configuration:
+==============
+ edit c:\Sane\etc\sane.d\net.conf
+ and enter a list of NetBEUI names or of IP-addresses
+ of machines you want to connect to. On some Windows
+ system IP-addresses are not accepted; if you experience
+ any problems try the NetBUI names.
+
+example for net.conf:
+myhost1
+myhost2.mydomain.com
+192.168.0.1
+192.169.1.73
+
+ you also can start xsane with host:backend:device given as command line option:
+ xsane 192.168.0.1:umax:/dev/scanner
+or
+ xsane myhost:umax:/dev/scanner
+
+
+Copy-Mode:
+===========
+If you want to use copy mode, you need ghostscript for win32.
+You can download it e.g. from http://www.cs.wisc.edu/~ghost/
+Enter Setup/Copy options:
+enter as Command:
+ c:/gs/gs6.50/bin/gswin32c -sDEVICE=mswinpr2 -dNOPAUSE -
+Pay attention: you have to use "/", don´t use "\".
+With sDEVICE=mswinpr2 you select the Printer Dialog of Windows.
+
+You also can enter DEVICE-name of your printer (e.g. laserjet).
+To get a list of available device names open a dos box,
+and call c:\gs\gs6.50\bin\gswin32c -h
+
+
+Gimp-Plugin:
+===========
+If you want to use xsane as gimp plugin,
+copy xsane.exe and *.dll to the GIMP´s plug-ins driectory
+(e.g. c:\Program Files\GIMP\plug-ins)
+
+
+Support:
+========
+ There is no special support for xsane for win32.
+ I develop xsane on a linux machine and will make a binary version
+ for win32 from time to time.
+
+
+Licence:
+========
+ * xsane and xsane for win32 stand under the terms of
+ the GNU general public licence (GPL).
+ You can find the sourcecode for xsane at:
+ http://www.xsane.org
+
+ * The gtk-libraries that come with xsane also do stand under the terms of the
+ GNU general public licence - GPL (gdk, gtk, glib, gnu-intl, gmodule)
+
+ * cygwin1.dll stands under the term of the GNU general public licence - GPL
+
+ * The sourcecode of xsane can be found at http://www.xsane.org
+
+ * The sourcecode of sane can be found at http://www.mostang.com/sane
+
+ * For any information about cygwin take a look at http://cygwin.com
+
+ * For any information about gtk/gdk for win32 take a look at
+ http://user.sgic.fi/~tml/gimp/win32/
+
+
+Compile it yourself:
+====================
+ * In xsane.WIN32-compilation I wrote down what I did to create xsane.exe
+
+
+Contact:
+========
+ You can contact me via email: Oliver.Rauch@rauch-domain.de
+ but don`t ask for help/support for xsane-win32, I do not have the
+ time to give support to it and want to use my free time to
+ work on the code - please understand that.
+
+Oliver Rauch
diff --git a/frontend/xsane-back-gtk.c b/src/xsane-back-gtk.c
index b77b585..bced94d 100644
--- a/frontend/xsane-back-gtk.c
+++ b/src/xsane-back-gtk.c
@@ -2,8 +2,8 @@
xsane-back-gtk.c
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -24,41 +24,185 @@
#include "xsane.h"
#include "xsane-back-gtk.h"
+#include "xsane-front-gtk.h"
#include "xsane-preferences.h"
-#include "xsane-text.h"
+#include "xsane-gamma.h"
/* ----------------------------------------------------------------------------------------------------------------- */
/* extern declarations */
-extern void xsane_panel_build(GSGDialog *dialog);
+extern void xsane_panel_build(void);
/* ----------------------------------------------------------------------------------------------------------------- */
/* forward declarations: */
-static void xsane_back_gtk_panel_rebuild(GSGDialog *dialog);
+SANE_Status xsane_control_option(SANE_Handle handle, SANE_Int option, SANE_Action action, void *val, SANE_Int *info);
+const SANE_Option_Descriptor *xsane_get_option_descriptor(SANE_Handle handle, SANE_Int option);
+const char *xsane_back_gtk_unit_string(SANE_Unit unit);
+void xsane_back_gtk_set_tooltip(GtkTooltips *tooltips, GtkWidget *widget, const gchar *desc);
+int xsane_back_gtk_make_path(size_t buf_size, char *buf, const char *prog_name, const char *dir_name,
+ const char *prefix, const char *dev_name, const char *postfix, int location);
+void xsane_back_gtk_set_option(int opt_num, void *val, SANE_Action action);
+
+static void xsane_back_gtk_panel_rebuild(void);
void xsane_set_sensitivity(SANE_Int sensitivity);
void xsane_set_window_icon(GtkWidget *gtk_window, gchar **xpm_d);
/* ----------------------------------------------------------------------------------------------------------------- */
+
+void xsane_bound_int(int *value, int min, int max)
+{
+ DBG(DBG_proc3, "xsane_bound_int\n");
+
+ if (min > max)
+ {
+ int help = min;
+ min = max;
+ max = help;
+ }
+
+ if (*value < min)
+ {
+ *value = min;
+ }
+
+ if (*value > max)
+ {
+ *value = max;
+ }
+}
+
+/* ----------------------------------------------------------------------------------------------------------------- */
+
+void xsane_bound_float(float *value, float min, float max)
+{
+ DBG(DBG_proc3, "xsane_bound_float\n");
+
+ if (min > max)
+ {
+ double help = min;
+ min = max;
+ max = help;
+ }
+
+ if (*value < min)
+ {
+ *value = min;
+ }
+
+ if (*value > max)
+ {
+ *value = max;
+ }
+}
+
+/* ----------------------------------------------------------------------------------------------------------------- */
+
+void xsane_bound_double(double *value, double min, double max)
+{
+ DBG(DBG_proc3, "xsane_bound_double\n");
+
+ if (min > max)
+ {
+ double help = min;
+ min = max;
+ max = help;
+ }
+
+ if (*value < min)
+ {
+ *value = min;
+ }
+
+ if (*value > max)
+ {
+ *value = max;
+ }
+}
+
+/* ----------------------------------------------------------------------------------------------------------------- */
+
+/* returns 1 if value is in bounds */
+int xsane_check_bound_double(double value, double min, double max)
+{
+ int in_bounds = 1;
+
+ DBG(DBG_proc3, "xsane_check_bound_double\n");
+
+ if (min > max)
+ {
+ double help = min;
+ min = max;
+ max = help;
+ }
+
+ if (value < min)
+ {
+ in_bounds = 0;
+ }
+
+ if (value > max)
+ {
+ in_bounds = 0;
+ }
+
+ return (in_bounds);
+}
+
+/* ----------------------------------------------------------------------------------------------------------------- */
+
+const SANE_Option_Descriptor *xsane_get_option_descriptor(SANE_Handle handle, SANE_Int option)
+{
+ DBG(DBG_optdesc, "xsane_get_option_descriptor(%d)\n", option);
+
+ if (option >= 0)
+ {
+ return sane_get_option_descriptor(handle, option);
+ }
+ return NULL;
+}
+
+/* ----------------------------------------------------------------------------------------------------------------- */
+
+SANE_Status xsane_control_option(SANE_Handle handle, SANE_Int option, SANE_Action action, void *val, SANE_Int *info)
+{
+ DBG(DBG_proc, "xsane_control_option(option = %d, action = %d)\n", option, action);
+
+ if (option >= 0)
+ {
+ SANE_Status status;
+
+ status = sane_control_option(handle, option, action, val, info);
+ if (status)
+ {
+ DBG(DBG_error, "ERROR: xsane_control_option(option = %d, action = %d) failed\n", option, action);
+ }
+
+ return status;
+ }
+
+ return SANE_STATUS_INVAL;
+}
+
+/* ----------------------------------------------------------------------------------------------------------------- */
const char *xsane_back_gtk_unit_string(SANE_Unit unit)
{
- double d;
+ DBG(DBG_proc, "xsane_back_gtk_unit_string\n");
switch (unit)
{
case SANE_UNIT_NONE: return "none";
- case SANE_UNIT_PIXEL: return "pixel";
+ case SANE_UNIT_PIXEL: return "px";
case SANE_UNIT_BIT: return "bit";
case SANE_UNIT_DPI: return "dpi";
case SANE_UNIT_PERCENT: return "%";
case SANE_UNIT_MM:
- d = preferences.length_unit;
- if (d > 9.9 && d < 10.1)
+ if (preferences.length_unit > 9.9 && preferences.length_unit < 10.1)
{
return "cm";
}
- else if (d > 25.3 && d < 25.5)
+ else if (preferences.length_unit > 25.3 && preferences.length_unit < 25.5)
{
return "in";
}
@@ -70,8 +214,10 @@ const char *xsane_back_gtk_unit_string(SANE_Unit unit)
/* ----------------------------------------------------------------------------------------------------------------- */
-void xsane_back_gtk_set_tooltip(GtkTooltips *tooltips, GtkWidget *widget, const char *desc)
+void xsane_back_gtk_set_tooltip(GtkTooltips *tooltips, GtkWidget *widget, const gchar *desc)
{
+ DBG(DBG_proc, "xsane_back_gtk_set_tooltip\n");
+
if (desc && desc[0])
{
gtk_tooltips_set_tip(tooltips, widget, desc, 0);
@@ -80,74 +226,73 @@ void xsane_back_gtk_set_tooltip(GtkTooltips *tooltips, GtkWidget *widget, const
/* ----------------------------------------------------------------------------------------------------------------- */
-int xsane_back_gtk_make_path(size_t buf_size, char *buf,
- const char *prog_name,
- const char *dir_name,
- const char *prefix, const char *dev_name,
- const char *postfix,
- int location)
+int xsane_back_gtk_make_path(size_t buf_size, char *buf, const char *prog_name, const char *dir_name,
+ const char *prefix, const char *dev_name, const char *postfix, int location)
{
- struct passwd *pw;
- size_t len, extra;
- int i;
+ size_t len, extra;
+ int i;
+
+ DBG(DBG_proc, "xsane_back_gtk_make_path\n");
if (location == XSANE_PATH_LOCAL_SANE) /* make path to local file */
{
- pw = getpwuid(getuid()); /* get homedirectory */
- if (!pw)
+ if (getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)) != NULL)
{
- snprintf(buf, buf_size, "%s %s", ERR_HOME_DIR, strerror(errno));
- xsane_back_gtk_error(buf, FALSE);
- return -1;
+ snprintf(buf, buf_size-2, "%s%c.sane", getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)), SLASH);
+ }
+ else
+ {
+ snprintf(buf, buf_size-2, "%s", STRINGIFY(XSANE_FIXED_HOME_PATH));
}
-
- snprintf(buf, buf_size, "%s/.sane", pw->pw_dir);
mkdir(buf, 0777); /* ensure ~/.sane directory exists */
}
else if (location == XSANE_PATH_SYSTEM) /* make path to system file */
{
- snprintf(buf, buf_size, "%s", STRINGIFY(PATH_SANE_DATA_DIR));
+ snprintf(buf, buf_size-2, "%s", STRINGIFY(PATH_SANE_DATA_DIR));
}
else /* make path to temporary file */
{
- snprintf(buf, buf_size, "%s", path_sane_tmp);
+ snprintf(buf, buf_size-2, "%s", preferences.tmp_path);
}
len = strlen(buf);
+ buf[len++] = SLASH;
+
if (prog_name)
{
extra = strlen(prog_name);
- if (len + extra + 1 >= buf_size)
+ if (len + extra + 2 >= buf_size)
{
goto filename_too_long;
}
- buf[len++] = '/';
memcpy(buf + len, prog_name, extra);
len += extra;
+
buf[len] = '\0';
mkdir(buf, 0777); /* ensure ~/.sane/PROG_NAME directory exists */
+
+ buf[len++] = SLASH; /* OS/2 does not like slash at end of mktemp-path */
}
if (len >= buf_size)
{
goto filename_too_long;
}
- buf[len++] = '/';
-
-
if (dir_name)
{
extra = strlen(dir_name);
- if (len + extra + 1 >= buf_size)
+ if (len + extra + 2 >= buf_size)
{
goto filename_too_long;
}
- buf[len++] = '/';
memcpy(buf + len, dir_name, extra);
len += extra;
+
+ buf[len++] = SLASH;
+
buf[len] = '\0';
mkdir(buf, 0777); /* ensure DIR_NAME directory exists */
}
@@ -157,8 +302,6 @@ int xsane_back_gtk_make_path(size_t buf_size, char *buf,
goto filename_too_long;
}
- buf[len++] = '/';
-
if (prefix)
{
@@ -172,24 +315,6 @@ int xsane_back_gtk_make_path(size_t buf_size, char *buf,
len += extra;
}
- if (location == XSANE_PATH_TMP) /* system tmp dir, add uid */
- {
- char uid_prefix[256];
- uid_t uid;
-
- uid = getuid();
- snprintf(uid_prefix, sizeof(uid_prefix), "%d-", uid);
-
- extra = strlen(uid_prefix);
- if (len + extra >= buf_size)
- {
- goto filename_too_long;
- }
-
- memcpy(buf + len, uid_prefix, extra);
- len += extra;
- }
-
if (dev_name)
{
/* Turn devicename into valid filename by replacing slashes by "_", "_" gets "__", spaces are erased */
@@ -203,10 +328,26 @@ int xsane_back_gtk_make_path(size_t buf_size, char *buf,
switch (dev_name[i])
{
+ case '\\': /* "\" -> "_" */
+ buf[len++] = '_';
+ break;
+
case '/': /* "/" -> "_" */
buf[len++] = '_';
break;
+#ifdef _WIN32
+ case ':': /* ":" -> "_" */
+ buf[len++] = '_';
+ break;
+#endif
+
+#ifdef HAVE_OS2_H
+ case ':': /* ":" -> "_" */
+ buf[len++] = '_';
+ break;
+#endif
+
case ' ': /* erase " " */
break;
@@ -230,47 +371,119 @@ int xsane_back_gtk_make_path(size_t buf_size, char *buf,
memcpy(buf + len, postfix, extra);
len += extra;
}
+
if (len >= buf_size)
+ {
goto filename_too_long;
+ }
+
+ if (location == XSANE_PATH_TMP) /* tmp dir, add uid */
+ {
+ char tmpbuf[256];
+ uid_t uid;
+ int fd;
+
+ uid = getuid();
+ snprintf(tmpbuf, sizeof(tmpbuf), "-%d-", uid);
+
+ extra = strlen(tmpbuf);
+ if (len + extra >= buf_size)
+ {
+ goto filename_too_long;
+ }
+
+ memcpy(buf + len, tmpbuf, extra);
+ len += extra;
+
+ if (len + 7 >= buf_size)
+ {
+ goto filename_too_long;
+ }
+
+ memcpy(buf + len, "XXXXXX", 6); /* create unique filename */
+ len += 6;
+ buf[len] = '\0';
+
+#if 1
+ fd = mkstemp(buf); /* create unique filename and opens/creates the file */
+#else
+ mktemp(buf); /* not safe */
+ umask(0177);
+ fd = open(buf, O_WRONLY | O_EXCL | O_CREAT, 0600);
+ umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
+#endif
+
+ if (fd == -1)
+ {
+ xsane_back_gtk_error(ERR_CREATE_TEMP_FILE, FALSE);
+ return -1;
+ }
+ close(fd); /* will be opened again later */
+ }
+ else
+ {
+ buf[len++] = '\0';
+ }
+
+ DBG(DBG_proc, "path = \"%s\"\n", buf);
- buf[len++] = '\0';
return 0;
+
filename_too_long:
xsane_back_gtk_error(ERR_FILENAME_TOO_LONG, FALSE);
errno = E2BIG;
- return -1;
+ return -1;
}
/* ----------------------------------------------------------------------------------------------------------------- */
-void xsane_back_gtk_set_option(GSGDialog * dialog, int opt_num, void *val, SANE_Action action)
+void xsane_back_gtk_set_option(int opt_num, void *val, SANE_Action action)
{
- SANE_Status status;
- SANE_Int info;
- char buf[256];
+ SANE_Status status;
+ SANE_Int info;
+ char buf[256];
+ int old_colors = xsane.xsane_colors;
+ int update_gamma = FALSE;
- status = sane_control_option(dialog->dev, opt_num, action, val, &info);
+ DBG(DBG_proc, "xsane_back_gtk_set_option\n");
+
+ status = xsane_control_option(xsane.dev, opt_num, action, val, &info);
if (status != SANE_STATUS_GOOD)
{
- snprintf(buf, sizeof(buf), "%s %s: %s.", ERR_SET_OPTION, sane_get_option_descriptor(dialog->dev, opt_num)->name,
+ snprintf(buf, sizeof(buf), "%s %s: %s.", ERR_SET_OPTION, xsane_get_option_descriptor(xsane.dev, opt_num)->name,
XSANE_STRSTATUS(status));
xsane_back_gtk_error(buf, FALSE);
return;
}
- if ((info & SANE_INFO_RELOAD_PARAMS) && dialog->param_change_callback)
+ if (info & SANE_INFO_RELOAD_PARAMS)
{
- (*dialog->param_change_callback) (dialog, dialog->param_change_arg);
+ xsane_update_param(0);
}
if (info & SANE_INFO_RELOAD_OPTIONS)
{
- xsane_back_gtk_panel_rebuild(dialog);
- if (dialog->option_reload_callback)
+ xsane_back_gtk_panel_rebuild();
+
+ if (xsane.preview)
{
- (*dialog->option_reload_callback) (dialog, dialog->option_reload_arg);
+ preview_update_surface(xsane.preview, 0);
}
+
+ update_gamma = TRUE; /* scanner gamma correction may have changed, medium may need update */
+ }
+
+ if (xsane.xsane_colors != old_colors)
+ {
+ /* we have to update gamma tables and histogram because medium settings */
+ /* may have changed */
+ update_gamma = TRUE;
+ }
+
+ if (update_gamma)
+ {
+ xsane_update_gamma_curve(TRUE);
}
}
@@ -278,8 +491,10 @@ void xsane_back_gtk_set_option(GSGDialog * dialog, int opt_num, void *val, SANE_
void xsane_back_gtk_close_dialog_callback(GtkWidget * widget, gpointer data)
{
+ DBG(DBG_proc, "xsane_back_gtk_close_dialog_callback\n");
+
gtk_widget_destroy(data);
- xsane_back_gtk_message_dialog_active = 0;
+ xsane.back_gtk_message_dialog_active = 0;
}
/* ----------------------------------------------------------------------------------------------------------------- */
@@ -289,26 +504,30 @@ static GtkWidget *decision_dialog;
void xsane_back_gtk_decision_callback(GtkWidget * widget, gpointer data)
{
+ DBG(DBG_proc, "xsane_back_gtk_decision_callback\n");
+
gtk_widget_destroy(decision_dialog);
- xsane_back_gtk_message_dialog_active = 0;
+ xsane.back_gtk_message_dialog_active = 0;
decision_flag = (long) data;
}
/* ----------------------------------------------------------------------------------------------------------------- */
-gint xsane_back_gtk_decision(gchar *title, gchar **xpm_d, gchar *message, gchar *oktext, gchar *rejecttext, gint wait)
+gint xsane_back_gtk_decision(gchar *title, gchar **xpm_d, gchar *message, gchar *oktext, gchar *rejecttext, int wait)
{
GtkWidget *main_vbox, *hbox, *label, *button;
GdkPixmap *pixmap;
GdkBitmap *mask;
GtkWidget *pixmapwidget;
- if (xsane_back_gtk_message_dialog_active)
+ DBG(DBG_proc, "xsane_back_gtk_decision\n");
+
+ if (xsane.back_gtk_message_dialog_active)
{
- fprintf(stderr, "%s: %s\n", title, message);
+ DBG(DBG_error0, "%s: %s\n", title, message);
return TRUE;
}
- xsane_back_gtk_message_dialog_active = 1;
+ xsane.back_gtk_message_dialog_active = 1;
decision_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_window_set_position(GTK_WINDOW(decision_dialog), GTK_WIN_POS_MOUSE);
gtk_window_set_title(GTK_WINDOW(decision_dialog), title);
@@ -354,7 +573,7 @@ gint xsane_back_gtk_decision(gchar *title, gchar **xpm_d, gchar *message, gchar
button = gtk_button_new_with_label(oktext);
GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_back_gtk_decision_callback, (void *) 1 /* confirm */);
- gtk_container_add(GTK_CONTAINER(hbox), button);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5);
gtk_widget_grab_default(button);
gtk_widget_show(button);
@@ -363,13 +582,18 @@ gint xsane_back_gtk_decision(gchar *title, gchar **xpm_d, gchar *message, gchar
{
button = gtk_button_new_with_label(rejecttext);
gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_back_gtk_decision_callback, (void *) -1 /* reject */);
- gtk_container_add(GTK_CONTAINER(hbox), button);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5);
gtk_widget_show(button);
}
gtk_widget_show(hbox);
gtk_widget_show(decision_dialog);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
if (!wait)
{
return TRUE;
@@ -397,15 +621,19 @@ gint xsane_back_gtk_decision(gchar *title, gchar **xpm_d, gchar *message, gchar
/* ----------------------------------------------------------------------------------------------------------------- */
-void xsane_back_gtk_message(gchar *title, gchar **icon_xpm, gchar *message, gint wait)
+void xsane_back_gtk_message(gchar *title, gchar **icon_xpm, gchar *message, int wait)
{
- xsane_back_gtk_decision(title, icon_xpm, message, ERR_BUTTON_OK, 0 /* no reject text */, wait);
+ DBG(DBG_proc, "xsane_back_gtk_message\n");
+
+ xsane_back_gtk_decision(title, icon_xpm, message, BUTTON_OK, 0 /* no reject text */, wait);
}
/* ----------------------------------------------------------------------------------------------------------------- */
-void xsane_back_gtk_error(gchar *error, gint wait)
+void xsane_back_gtk_error(gchar *error, int wait)
{
+ DBG(DBG_proc, "xsane_back_gtk_error: %s\n", error);
+
if (wait)
{
SANE_Int old_sensitivity = xsane.sensitivity;
@@ -422,8 +650,10 @@ void xsane_back_gtk_error(gchar *error, gint wait)
/* ----------------------------------------------------------------------------------------------------------------- */
-void xsane_back_gtk_warning(gchar *warning, gint wait)
+void xsane_back_gtk_warning(gchar *warning, int wait)
{
+ DBG(DBG_proc, "xsane_back_gtk_warning: %s\n", warning);
+
if (wait)
{
SANE_Int old_sensitivity = xsane.sensitivity;
@@ -440,50 +670,93 @@ void xsane_back_gtk_warning(gchar *warning, gint wait)
/* ----------------------------------------------------------------------------------------------------------------- */
+void xsane_back_gtk_info(gchar *info, int wait)
+{
+ DBG(DBG_proc, "xsane_back_gtk_info: %s\n", info);
+
+ if (wait)
+ {
+ SANE_Int old_sensitivity = xsane.sensitivity;
+
+ xsane_set_sensitivity(FALSE);
+ xsane_back_gtk_message(ERR_HEADER_INFO, (gchar**) info_xpm, info, wait);
+ xsane_set_sensitivity(old_sensitivity);
+ }
+ else
+ {
+ xsane_back_gtk_message(ERR_HEADER_INFO, (gchar**) info_xpm, info, wait);
+ }
+}
+
+/* ----------------------------------------------------------------------------------------------------------------- */
+
static void xsane_back_gtk_get_filename_button_clicked(GtkWidget *w, gpointer data)
{
- int *clicked = data;
+ int *clicked = data;
+
+ DBG(DBG_proc, "xsane_back_gtk_get_filename_button_clicked\n");
*clicked = 1;
}
/* ----------------------------------------------------------------------------------------------------------------- */
-int xsane_back_gtk_get_filename(const char *label, const char *default_name, size_t max_len, char *filename, int show_fileopts)
+int xsane_back_gtk_get_filename(const char *label, const char *default_name, size_t max_len, char *filename,
+ int show_fileopts, int shorten_path, int hide_file_list)
{
- int cancel = 0, ok = 0, destroy = 0;
- GtkWidget *fileselection;
+ int cancel = 0, ok = 0, destroy = 0;
+ GtkWidget *fileselection;
+ GtkAccelGroup *accelerator_group;
+
+ DBG(DBG_proc, "xsane_back_gtk_get_filename\n");
+
fileselection = gtk_file_selection_new((char *) label);
+ accelerator_group = gtk_accel_group_new();
+ gtk_accel_group_attach(accelerator_group, GTK_OBJECT(fileselection));
gtk_signal_connect(GTK_OBJECT(fileselection),
"destroy", GTK_SIGNAL_FUNC(xsane_back_gtk_get_filename_button_clicked), &destroy);
+
gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fileselection)->cancel_button),
"clicked", (GtkSignalFunc) xsane_back_gtk_get_filename_button_clicked, &cancel);
+ gtk_widget_add_accelerator(GTK_FILE_SELECTION(fileselection)->cancel_button, "clicked",
+ accelerator_group, GDK_Escape, 0, GTK_ACCEL_LOCKED);
+
gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fileselection)->ok_button),
"clicked", (GtkSignalFunc) xsane_back_gtk_get_filename_button_clicked, &ok);
if (default_name)
{
+ DBG(DBG_info, "xsane_back_gtk_get_filename: default_name =%s\n", default_name);
gtk_file_selection_set_filename(GTK_FILE_SELECTION(fileselection), (char *) default_name);
}
+ if (hide_file_list)
+ {
+ DBG(DBG_info, "xsane_back_gtk_get_filename: hiding file-list and delete-file-widget\n");
+ gtk_widget_hide(GTK_FILE_SELECTION(fileselection)->file_list->parent);
+ gtk_widget_hide(GTK_FILE_SELECTION(fileselection)->fileop_del_file);
+ }
+
if (show_fileopts)
{
+ DBG(DBG_info, "xsane_back_gtk_get_filename: showing file-options\n");
gtk_file_selection_show_fileop_buttons(GTK_FILE_SELECTION(fileselection));
}
else
{
+ DBG(DBG_info, "xsane_back_gtk_get_filename: hiding file-options\n");
gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(fileselection));
}
gtk_widget_show(fileselection);
+ DBG(DBG_info, "xsane_back_gtk_get_filename: waiting for user action\n");
while (!cancel && !ok && !destroy)
{
- if (!gtk_events_pending())
+ if (gtk_events_pending())
{
- usleep(100000);
+ gtk_main_iteration();
}
- gtk_main_iteration();
}
if (ok)
@@ -491,18 +764,24 @@ int xsane_back_gtk_get_filename(const char *label, const char *default_name, siz
size_t len, cwd_len;
char *cwd;
+ DBG(DBG_info, "ok button pressed\n");
+
strncpy(filename, gtk_file_selection_get_filename(GTK_FILE_SELECTION(fileselection)), max_len - 1);
filename[max_len - 1] = '\0';
len = strlen(filename);
- cwd = alloca(len + 2);
+
+ cwd = alloca(len + 2); /* alloca => memory is freed on return */
getcwd(cwd, len + 1);
cwd_len = strlen(cwd);
cwd[cwd_len++] = '/';
cwd[cwd_len] = '\0';
- if (strncmp(filename, cwd, cwd_len) == 0)
+
+ DBG(DBG_info, "xsane_back_gtk_get_filename: full path filename = %s\n", filename);
+ if (shorten_path && (strncmp(filename, cwd, cwd_len) == 0))
{
memcpy(filename, filename + cwd_len, len - cwd_len + 1);
+ DBG(DBG_info, "xsane_back_gtk_get_filename: short path filename = %s\n", filename);
}
}
@@ -518,27 +797,28 @@ int xsane_back_gtk_get_filename(const char *label, const char *default_name, siz
static gint xsane_back_gtk_autobutton_update(GtkWidget *widget, GSGDialogElement *elem)
{
- GSGDialog *dialog = elem->dialog;
- int opt_num = elem - dialog->element;
- const SANE_Option_Descriptor *opt;
- SANE_Status status;
- SANE_Word val;
- char buf[256];
-
- opt = sane_get_option_descriptor(dialog->dev, opt_num);
+ int opt_num = elem - xsane.element;
+ const SANE_Option_Descriptor *opt;
+ SANE_Status status;
+ SANE_Word val;
+ char buf[256];
+
+ DBG(DBG_proc, "xsane_back_gtk_autobutton_update\n");
+
+ opt = xsane_get_option_descriptor(xsane.dev, opt_num);
if (GTK_TOGGLE_BUTTON(widget)->active)
{
- xsane_back_gtk_set_option(dialog, opt_num, 0, SANE_ACTION_SET_AUTO);
+ xsane_back_gtk_set_option(opt_num, 0, SANE_ACTION_SET_AUTO);
}
else
{
- status = sane_control_option(dialog->dev, opt_num, SANE_ACTION_GET_VALUE, &val, 0);
+ status = xsane_control_option(xsane.dev, opt_num, SANE_ACTION_GET_VALUE, &val, 0);
if (status != SANE_STATUS_GOOD)
{
snprintf(buf, sizeof(buf), "%s %s: %s.", ERR_GET_OPTION, opt->name, XSANE_STRSTATUS(status));
xsane_back_gtk_error(buf, FALSE);
}
- xsane_back_gtk_set_option(dialog, opt_num, &val, SANE_ACTION_SET_VALUE);
+ xsane_back_gtk_set_option(opt_num, &val, SANE_ACTION_SET_VALUE);
}
return FALSE;
}
@@ -548,7 +828,9 @@ static gint xsane_back_gtk_autobutton_update(GtkWidget *widget, GSGDialogElement
static void xsane_back_gtk_autobutton_new(GtkWidget *parent, GSGDialogElement *elem,
GtkWidget *label, GtkTooltips *tooltips)
{
- GtkWidget *button, *alignment;
+ GtkWidget *button, *alignment;
+
+ DBG(DBG_proc, "xsane_back_gtk_autobutton_new\n");
button = gtk_check_button_new();
gtk_container_set_border_width(GTK_CONTAINER(button), 0);
@@ -570,17 +852,18 @@ static void xsane_back_gtk_autobutton_new(GtkWidget *parent, GSGDialogElement *e
static gint xsane_back_gtk_button_update(GtkWidget * widget, GSGDialogElement * elem)
{
- GSGDialog *dialog = elem->dialog;
- int opt_num = elem - dialog->element;
- const SANE_Option_Descriptor *opt;
- SANE_Word val = SANE_FALSE;
+ int opt_num = elem - xsane.element;
+ const SANE_Option_Descriptor *opt;
+ SANE_Word val = SANE_FALSE;
+
+ DBG(DBG_proc, "xsane_back_gtk_button_update\n");
- opt = sane_get_option_descriptor(dialog->dev, opt_num);
+ opt = xsane_get_option_descriptor(xsane.dev, opt_num);
if (GTK_TOGGLE_BUTTON(widget)->active)
{
val = SANE_TRUE;
}
- xsane_back_gtk_set_option(dialog, opt_num, &val, SANE_ACTION_SET_VALUE);
+ xsane_back_gtk_set_option(opt_num, &val, SANE_ACTION_SET_VALUE);
return FALSE;
}
@@ -590,7 +873,9 @@ static gint xsane_back_gtk_button_update(GtkWidget * widget, GSGDialogElement *
void xsane_back_gtk_button_new(GtkWidget * parent, const char *name, SANE_Word val,
GSGDialogElement * elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable)
{
- GtkWidget *button;
+ GtkWidget *button;
+
+ DBG(DBG_proc, "xsane_back_gtk_button_new\n");
button = gtk_check_button_new_with_label((char *) name);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), val);
@@ -608,14 +893,15 @@ void xsane_back_gtk_button_new(GtkWidget * parent, const char *name, SANE_Word v
static void xsane_back_gtk_scale_update(GtkAdjustment * adj_data, GSGDialogElement * elem)
{
- const SANE_Option_Descriptor *opt;
- GSGDialog *dialog = elem->dialog;
- SANE_Word val, new_val;
- int opt_num;
- double d;
-
- opt_num = elem - dialog->element;
- opt = sane_get_option_descriptor(dialog->dev, opt_num);
+ const SANE_Option_Descriptor *opt;
+ SANE_Word val, new_val;
+ int opt_num;
+ double d;
+
+ DBG(DBG_proc, "xsane_back_gtk_scale_update\n");
+
+ opt_num = elem - xsane.element;
+ opt = xsane_get_option_descriptor(xsane.dev, opt_num);
switch(opt->type)
{
case SANE_TYPE_INT:
@@ -632,12 +918,12 @@ static void xsane_back_gtk_scale_update(GtkAdjustment * adj_data, GSGDialogEleme
break;
default:
- fprintf(stderr, "xsane_back_gtk_scale_update: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
+ DBG(DBG_error, "xsane_back_gtk_scale_update: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
return;
}
- xsane_back_gtk_set_option(dialog, opt_num, &val, SANE_ACTION_SET_VALUE);
- sane_control_option(dialog->dev, opt_num, SANE_ACTION_GET_VALUE, &new_val, 0);
+ xsane_back_gtk_set_option(opt_num, &val, SANE_ACTION_SET_VALUE);
+ xsane_control_option(xsane.dev, opt_num, SANE_ACTION_GET_VALUE, &new_val, 0);
if (new_val != val)
{
val = new_val;
@@ -677,7 +963,9 @@ void xsane_back_gtk_scale_new(GtkWidget * parent, const char *name, gfloat val,
gfloat min, gfloat max, gfloat quant, int automatic,
GSGDialogElement * elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable)
{
- GtkWidget *hbox, *label, *scale;
+ GtkWidget *hbox, *label, *scale;
+
+ DBG(DBG_proc, "xsane_back_gtk_scale_new(%s)\n", name);
hbox = gtk_hbox_new(FALSE, 2);
gtk_container_set_border_width(GTK_CONTAINER(hbox), 0);
@@ -686,7 +974,7 @@ void xsane_back_gtk_scale_new(GtkWidget * parent, const char *name, gfloat val,
label = gtk_label_new((char *) name);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- elem->data = gtk_adjustment_new(val, min, max, quant, 1.0, 0.0);
+ elem->data = gtk_adjustment_new(val, min, max, quant, quant*10, 0.0);
scale = gtk_hscale_new(GTK_ADJUSTMENT(elem->data));
xsane_back_gtk_set_tooltip(tooltips, scale, desc);
gtk_widget_set_usize(scale, 150, 0);
@@ -703,14 +991,15 @@ void xsane_back_gtk_scale_new(GtkWidget * parent, const char *name, gfloat val,
gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_CONTINUOUS);
gtk_scale_set_value_pos(GTK_SCALE(scale), GTK_POS_TOP);
+
if (quant - (int) quant == 0.0)
{
gtk_scale_set_digits(GTK_SCALE(scale), 0);
}
else
{
- /* one place behind decimal point */
- gtk_scale_set_digits(GTK_SCALE(scale), 1);
+ /* set number of digits in dependacne of quantization */
+ gtk_scale_set_digits(GTK_SCALE(scale), (int) log10(1/quant)+0.8);
}
gtk_signal_connect(elem->data, "value_changed", (GtkSignalFunc) xsane_back_gtk_scale_update, elem);
@@ -728,19 +1017,22 @@ void xsane_back_gtk_scale_new(GtkWidget * parent, const char *name, gfloat val,
void xsane_back_gtk_push_button_callback(GtkWidget * widget, gpointer data)
{
- GSGDialogElement *elem = data;
- GSGDialog *dialog = elem->dialog;
- int opt_num;
+ GSGDialogElement *elem = data;
+ int opt_num;
+
+ DBG(DBG_proc, "xsane_back_gtk_push_button_callback\n");
- opt_num = elem - dialog->element;
- xsane_back_gtk_set_option(dialog, opt_num, 0, SANE_ACTION_SET_VALUE);
+ opt_num = elem - xsane.element;
+ xsane_back_gtk_set_option(opt_num, 0, SANE_ACTION_SET_VALUE);
}
/* ----------------------------------------------------------------------------------------------------------------- */
static int xsane_back_gtk_option_menu_lookup(GSGMenuItem menu_items[], const char *string)
{
- int i;
+ int i;
+
+ DBG(DBG_proc, "xsane_back_gtk_option_menu_lookup\n");
for (i = 0; strcmp(menu_items[i].label, string) != 0; ++i);
@@ -751,17 +1043,18 @@ static int xsane_back_gtk_option_menu_lookup(GSGMenuItem menu_items[], const cha
static void xsane_back_gtk_option_menu_callback(GtkWidget * widget, gpointer data)
{
- GSGMenuItem *menu_item = data;
- GSGDialogElement *elem = menu_item->elem;
- const SANE_Option_Descriptor *opt;
- GSGDialog *dialog = elem->dialog;
- int opt_num;
- double dval;
- SANE_Word val;
- void *valp = &val;
-
- opt_num = elem - dialog->element;
- opt = sane_get_option_descriptor(dialog->dev, opt_num);
+ GSGMenuItem *menu_item = data;
+ GSGDialogElement *elem = menu_item->elem;
+ const SANE_Option_Descriptor *opt;
+ int opt_num;
+ double dval;
+ SANE_Word val;
+ void *valp = &val;
+
+ DBG(DBG_proc, "xsane_back_gtk_option_menu_callback\n");
+
+ opt_num = elem - xsane.element;
+ opt = xsane_get_option_descriptor(xsane.dev, opt_num);
switch(opt->type)
{
case SANE_TYPE_INT:
@@ -778,10 +1071,10 @@ static void xsane_back_gtk_option_menu_callback(GtkWidget * widget, gpointer dat
break;
default:
- fprintf(stderr, "xsane_back_gtk_option_menu_callback: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
+ DBG(DBG_error, "xsane_back_gtk_option_menu_callback: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
break;
}
- xsane_back_gtk_set_option(dialog, opt_num, valp, SANE_ACTION_SET_VALUE);
+ xsane_back_gtk_set_option(opt_num, valp, SANE_ACTION_SET_VALUE);
}
/* ----------------------------------------------------------------------------------------------------------------- */
@@ -794,6 +1087,8 @@ void xsane_back_gtk_option_menu_new(GtkWidget *parent, const char *name, char *s
GSGMenuItem *menu_items;
int i, num_items;
+ DBG(DBG_proc, "xsane_back_gtk_option_menu_new(%s)\n", name);
+
hbox = gtk_hbox_new(FALSE, 2);
gtk_container_set_border_width(GTK_CONTAINER(hbox), 0);
gtk_box_pack_start(GTK_BOX(parent), hbox, FALSE, FALSE, 0);
@@ -839,15 +1134,16 @@ void xsane_back_gtk_option_menu_new(GtkWidget *parent, const char *name, char *s
static void xsane_back_gtk_text_entry_callback(GtkWidget *w, gpointer data)
{
- GSGDialogElement *elem = data;
- const SANE_Option_Descriptor *opt;
- GSGDialog *dialog = elem->dialog;
- gchar *text;
- int opt_num;
- char *buf;
+ GSGDialogElement *elem = data;
+ const SANE_Option_Descriptor *opt;
+ gchar *text;
+ int opt_num;
+ char *buf;
+
+ DBG(DBG_proc, "xsane_back_gtk_text_entry_callback\n");
- opt_num = elem - dialog->element;
- opt = sane_get_option_descriptor(dialog->dev, opt_num);
+ opt_num = elem - xsane.element;
+ opt = xsane_get_option_descriptor(xsane.dev, opt_num);
buf = alloca(opt->size);
buf[0] = '\0';
@@ -859,7 +1155,7 @@ static void xsane_back_gtk_text_entry_callback(GtkWidget *w, gpointer data)
}
buf[opt->size - 1] = '\0';
- xsane_back_gtk_set_option(dialog, opt_num, buf, SANE_ACTION_SET_VALUE);
+ xsane_back_gtk_set_option(opt_num, buf, SANE_ACTION_SET_VALUE);
if (strcmp(buf, text) != 0) /* the backend modified the option value; update widget: */
{
@@ -872,7 +1168,9 @@ static void xsane_back_gtk_text_entry_callback(GtkWidget *w, gpointer data)
void xsane_back_gtk_text_entry_new(GtkWidget * parent, const char *name, const char *val, GSGDialogElement *elem,
GtkTooltips *tooltips, const char *desc, SANE_Int settable)
{
- GtkWidget *hbox, *text, *label;
+ GtkWidget *hbox, *text, *label;
+
+ DBG(DBG_proc, "xsane_back_gtk_text_entry_new\n");
hbox = gtk_hbox_new(FALSE, 2);
gtk_container_set_border_width(GTK_CONTAINER(hbox), 0);
@@ -899,9 +1197,11 @@ void xsane_back_gtk_text_entry_new(GtkWidget * parent, const char *name, const c
/* ----------------------------------------------------------------------------------------------------------------- */
-GtkWidget *xsane_back_gtk_group_new(GtkWidget *parent, const char * title)
+GtkWidget *xsane_back_gtk_group_new(GtkWidget *parent, const char *title)
{
- GtkWidget * frame, * vbox;
+ GtkWidget * frame, * vbox;
+
+ DBG(DBG_proc, "xsane_back_gtk_group_new(%s)\n", title);
frame = gtk_frame_new((char *) title);
gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
@@ -917,157 +1217,35 @@ GtkWidget *xsane_back_gtk_group_new(GtkWidget *parent, const char * title)
/* ----------------------------------------------------------------------------------------------------------------- */
#if 0
-static GtkWidget* xsane_back_gtk_curve_new(GSGDialog *dialog, int optnum)
-{
- const SANE_Option_Descriptor * opt;
- gfloat fmin, fmax, val, *vector;
- SANE_Word *optval, min, max;
- GtkWidget *curve, *gamma;
- SANE_Status status;
- SANE_Handle dev;
- int i, optlen;
-
- gamma = gtk_gamma_curve_new();
- curve = GTK_GAMMA_CURVE(gamma)->curve;
- dev = dialog->dev;
-
- opt = sane_get_option_descriptor(dev, optnum);
- optlen = opt->size / sizeof(SANE_Word);
- vector = alloca(optlen * (sizeof(vector[0]) + sizeof(optval[0])));
- optval = (SANE_Word *) (vector + optlen);
-
- min = max = 0;
- switch(opt->constraint_type)
- {
- case SANE_CONSTRAINT_RANGE:
- min = opt->constraint.range->min;
- max = opt->constraint.range->max;
- break;
-
- case SANE_CONSTRAINT_WORD_LIST:
- if (opt->constraint.word_list[0] > 1)
- {
- min = max = opt->constraint.word_list[1];
- for (i = 2; i < opt->constraint.word_list[0]; ++i)
- {
- if (opt->constraint.word_list[i] < min)
- {
- min = opt->constraint.word_list[i];
- }
-
- if (opt->constraint.word_list[i] > max)
- {
- max = opt->constraint.word_list[i];
- }
- }
- }
- break;
-
- default:
- break;
- }
- if (min == max)
- {
- fprintf(stderr, "xsane_back_gtk_curve_new: %s: `%s'\n", WARN_NO_VALUE_CONSTRAINT, opt->name);
- fmin = 0;
- fmax = 255;
- }
- else if (opt->type == SANE_TYPE_FIXED)
- {
- fmin = SANE_UNFIX(min);
- fmax = SANE_UNFIX(max);
- }
- else
- {
- fmin = min;
- fmax = max;
- }
- gtk_curve_set_range(GTK_CURVE(curve), 0, optlen - 1, fmin, fmax);
-
- status = sane_control_option(dev, optnum, SANE_ACTION_GET_VALUE, optval, 0);
- if (status == SANE_STATUS_GOOD)
- {
- for (i = 0; i < optlen; ++i)
- {
- if (opt->type == SANE_TYPE_FIXED)
- {
- val = SANE_UNFIX(optval[i]);
- }
- else
- {
- val = optval[i];
- }
- vector[i] = val;
- }
- gtk_curve_set_vector(GTK_CURVE(curve), optlen, vector);
- }
- else
- {
- gtk_widget_set_sensitive(gamma, FALSE);
- }
-
- return gamma;
-}
-
-/* ----------------------------------------------------------------------------------------------------------------- */
-
-static void xsane_back_gtk_vector_new(GSGDialog * dialog, GtkWidget *vbox, int num_vopts, int *vopts)
+static void tooltips_destroy(void)
{
- GtkWidget *notebook, *label, *curve;
- const SANE_Option_Descriptor *opt;
- int i;
-
- notebook = gtk_notebook_new();
- gtk_container_set_border_width(GTK_CONTAINER(notebook), 4);
- gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0);
-
- for (i = 0; i < num_vopts; ++i)
- {
- opt = sane_get_option_descriptor(dialog->dev, vopts[i]);
-
- label = gtk_label_new((char *) opt->title);
- vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);
- gtk_widget_show(vbox);
- gtk_widget_show(label);
+ DBG(DBG_proc, "tooltips_destroy\n");
- curve = xsane_back_gtk_curve_new(dialog, vopts[i]);
- gtk_container_set_border_width(GTK_CONTAINER(curve), 4);
- gtk_box_pack_start(GTK_BOX(vbox), curve, TRUE, TRUE, 0);
- gtk_widget_show(curve);
-
- dialog->element[vopts[i]].widget = curve;
- }
- gtk_widget_show(notebook);
-}
-#endif
-/* ----------------------------------------------------------------------------------------------------------------- */
-#if 0
-static void tooltips_destroy(GSGDialog * dialog)
-{
- gtk_object_unref(GTK_OBJECT(dialog->tooltips));
- dialog->tooltips = 0;
+ gtk_object_unref(GTK_OBJECT(xsane.tooltips));
+ xsane.tooltips = 0;
}
#endif
/* ----------------------------------------------------------------------------------------------------------------- */
-static void xsane_back_gtk_panel_destroy(GSGDialog * dialog)
+static void xsane_back_gtk_panel_destroy(void)
{
- const SANE_Option_Descriptor *opt;
- GSGDialogElement *elem;
- int i, j;
+ const SANE_Option_Descriptor *opt;
+ GSGDialogElement *elem;
+ int i, j;
+
+ DBG(DBG_proc, "xsane_back_gtk_panel_destroy\n");
- gtk_widget_destroy(dialog->xsane_hbox);
- gtk_widget_destroy(dialog->standard_hbox);
- gtk_widget_destroy(dialog->advanced_hbox);
+ gtk_widget_destroy(xsane.xsane_hbox);
+ gtk_widget_destroy(xsane.standard_hbox);
+ gtk_widget_destroy(xsane.advanced_hbox);
/* free the menu labels of integer/fix-point word-lists: */
- for (i = 0; i < dialog->num_elements; ++i)
+ for (i = 0; i < xsane.num_elements; ++i)
{
- if (dialog->element[i].menu)
+ if (xsane.element[i].menu)
{
- opt = sane_get_option_descriptor(dialog->dev, i);
- elem = dialog->element + i;
+ opt = xsane_get_option_descriptor(xsane.dev, i);
+ elem = xsane.element + i;
if (opt->type != SANE_TYPE_STRING)
{
for (j = 0; j < elem->menu_size; ++j)
@@ -1083,7 +1261,7 @@ static void xsane_back_gtk_panel_destroy(GSGDialog * dialog)
}
}
}
- memset(dialog->element, 0, dialog->num_elements * sizeof(dialog->element[0]));
+ memset(xsane.element, 0, xsane.num_elements * sizeof(xsane.element[0]));
}
/* ----------------------------------------------------------------------------------------------------------------- */
@@ -1094,44 +1272,47 @@ static void xsane_back_gtk_panel_destroy(GSGDialog * dialog)
detecting what exactly changed, we use a brute-force method of
rebuilding the entire dialog. */
-static void xsane_back_gtk_panel_rebuild(GSGDialog * dialog)
+static void xsane_back_gtk_panel_rebuild(void)
{
- xsane_back_gtk_panel_destroy(dialog);
- xsane_panel_build(dialog);
+ DBG(DBG_proc, "xsane_back_gtk_panel_rebuild\n");
+
+ xsane_back_gtk_panel_destroy();
+ xsane_panel_build();
}
/* ----------------------------------------------------------------------------------------------------------------- */
-void xsane_back_gtk_refresh_dialog(GSGDialog *dialog)
+void xsane_back_gtk_refresh_dialog(void)
{
- xsane_back_gtk_panel_rebuild(dialog);
- if (dialog->param_change_callback)
- {
- (*dialog->param_change_callback) (dialog, dialog->param_change_arg);
- }
+ DBG(DBG_proc, "xsane_back_gtk_refresh_dialog\n");
+
+ xsane_back_gtk_panel_rebuild();
+ xsane_update_param(0);
}
/* ----------------------------------------------------------------------------------------------------------------- */
-void xsane_back_gtk_update_scan_window(GSGDialog *dialog)
+void xsane_back_gtk_update_scan_window(void)
{
- const SANE_Option_Descriptor *opt;
- double old_val, new_val;
- GSGDialogElement *elem;
- SANE_Status status;
- SANE_Word word;
- int i, optnum;
- char str[64];
+ const SANE_Option_Descriptor *opt;
+ double old_val, new_val;
+ GSGDialogElement *elem;
+ SANE_Status status;
+ SANE_Word word;
+ int i, optnum;
+ char str[64];
+
+ DBG(DBG_proc, "xsane_back_gtk_update_scan_window\n");
for (i = 0; i < 4; ++i)
{
- if (dialog->well_known.coord[i] > 0)
+ if (xsane.well_known.coord[i] > 0)
{
- optnum = dialog->well_known.coord[i];
- elem = dialog->element + optnum;
- opt = sane_get_option_descriptor(dialog->dev, optnum);
+ optnum = xsane.well_known.coord[i];
+ elem = xsane.element + optnum;
+ opt = xsane_get_option_descriptor(xsane.dev, optnum);
- status = sane_control_option(dialog->dev, optnum, SANE_ACTION_GET_VALUE, &word, 0);
+ status = xsane_control_option(xsane.dev, optnum, SANE_ACTION_GET_VALUE, &word, 0);
if (status != SANE_STATUS_GOOD)
{
continue; /* sliently ignore errors */
@@ -1188,17 +1369,19 @@ void xsane_back_gtk_update_scan_window(GSGDialog *dialog)
/* Ensure sure the device has up-to-date option values. Except for
vectors, all option values are kept current. Vectors are
downloaded into the device during this call. */
-void xsane_back_gtk_sync(GSGDialog *dialog)
+void xsane_back_gtk_sync(void)
{
- const SANE_Option_Descriptor *opt;
- gfloat val, *vector;
- SANE_Word *optval;
- int i, j, optlen;
- GtkWidget *curve;
+ const SANE_Option_Descriptor *opt;
+ gfloat val, *vector;
+ SANE_Word *optval;
+ int i, j, optlen;
+ GtkWidget *curve;
+
+ DBG(DBG_proc, "xsane_back_gtk_sync\n");
- for (i = 1; i < dialog->num_elements; ++i)
+ for (i = 1; i < xsane.num_elements; ++i)
{
- opt = sane_get_option_descriptor(dialog->dev, i);
+ opt = xsane_get_option_descriptor(xsane.dev, i);
if (!SANE_OPTION_IS_ACTIVE(opt->cap))
{
@@ -1221,7 +1404,7 @@ void xsane_back_gtk_sync(GSGDialog *dialog)
optval = alloca(optlen * sizeof(optval[0]));
vector = alloca(optlen * sizeof(vector[0]));
- curve = GTK_GAMMA_CURVE(dialog->element[i].widget)->curve;
+ curve = GTK_GAMMA_CURVE(xsane.element[i].widget)->curve;
gtk_curve_get_vector(GTK_CURVE(curve), optlen, vector);
for (j = 0; j < optlen; ++j)
{
@@ -1236,23 +1419,25 @@ void xsane_back_gtk_sync(GSGDialog *dialog)
}
}
- xsane_back_gtk_set_option(dialog, i, optval, SANE_ACTION_SET_VALUE);
+ xsane_back_gtk_set_option(i, optval, SANE_ACTION_SET_VALUE);
}
}
/* ----------------------------------------------------------------------------------------------------------------- */
-void xsane_back_gtk_update_vector(GSGDialog *dialog, int opt_num, SANE_Int *vector)
+void xsane_back_gtk_update_vector(int opt_num, SANE_Int *vector)
{
- const SANE_Option_Descriptor *opt;
- gfloat val;
- SANE_Word *optval;
- int j, optlen;
+ const SANE_Option_Descriptor *opt;
+ gfloat val;
+ SANE_Word *optval;
+ int j, optlen;
+
+ DBG(DBG_proc, "xsane_back_gtk_update_vector\n");
if (opt_num < 1)
return; /* not defined */
- opt = sane_get_option_descriptor(dialog->dev, opt_num);
+ opt = xsane_get_option_descriptor(xsane.dev, opt_num);
if (!SANE_OPTION_IS_ACTIVE(opt->cap))
{
return; /* inactive */
@@ -1285,57 +1470,58 @@ void xsane_back_gtk_update_vector(GSGDialog *dialog, int opt_num, SANE_Int *vect
}
}
- xsane_back_gtk_set_option(dialog, opt_num, optval, SANE_ACTION_SET_VALUE);
+ xsane_back_gtk_set_option(opt_num, optval, SANE_ACTION_SET_VALUE);
}
/* ----------------------------------------------------------------------------------------------------------------- */
-void xsane_back_gtk_set_tooltips(GSGDialog *dialog, int enable)
+void xsane_back_gtk_set_tooltips(int enable)
{
- if (!dialog->tooltips)
+ DBG(DBG_proc, "xsane_back_gtk_set_tooltips\n");
+
+ if (!xsane.tooltips)
{
return;
}
if (enable)
{
- gtk_tooltips_enable(dialog->tooltips);
+ gtk_tooltips_enable(xsane.tooltips);
}
else
{
- gtk_tooltips_disable(dialog->tooltips);
+ gtk_tooltips_disable(xsane.tooltips);
}
}
/* ----------------------------------------------------------------------------------------------------------------- */
-void xsane_back_gtk_set_sensitivity(GSGDialog *dialog, int sensitive)
+void xsane_back_gtk_set_sensitivity(int sensitive)
{
- const SANE_Option_Descriptor *opt;
- int i;
+ const SANE_Option_Descriptor *opt;
+ int i;
+
+ DBG(DBG_proc, "xsane_back_gtk_set_sensitivity\n");
- for (i = 0; i < dialog->num_elements; ++i)
+ for (i = 0; i < xsane.num_elements; ++i)
{
- opt = sane_get_option_descriptor(dialog->dev, i);
+ opt = xsane_get_option_descriptor(xsane.dev, i);
if (!SANE_OPTION_IS_ACTIVE(opt->cap) || !SANE_OPTION_IS_SETTABLE(opt->cap) ||
- opt->type == SANE_TYPE_GROUP || !dialog->element[i].widget)
+ opt->type == SANE_TYPE_GROUP || !xsane.element[i].widget)
{
continue;
}
if (!(opt->cap & SANE_CAP_ALWAYS_SETTABLE))
{
- gtk_widget_set_sensitive(dialog->element[i].widget, sensitive);
+ gtk_widget_set_sensitive(xsane.element[i].widget, sensitive);
}
}
- if (dialog)
+ if (xsane.xsanemode_widget)
{
- if (dialog->xsanemode_widget)
- {
- gtk_widget_set_sensitive(dialog->xsanemode_widget, sensitive);
- }
+ gtk_widget_set_sensitive(xsane.xsanemode_widget, sensitive);
}
while (gtk_events_pending())
@@ -1347,18 +1533,26 @@ void xsane_back_gtk_set_sensitivity(GSGDialog *dialog, int sensitive)
void xsane_set_sensitivity(SANE_Int sensitivity)
{
+ DBG(DBG_proc, "xsane_set_sensitivity\n");
+
if (xsane.shell)
{
- gtk_widget_set_sensitive(xsane.shell, sensitivity);
+ gtk_widget_set_sensitive(xsane.menubar, sensitivity);
+ gtk_widget_set_sensitive(xsane.xsane_window, sensitivity);
+ gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), sensitivity);
gtk_widget_set_sensitive(xsane.standard_options_shell, sensitivity);
gtk_widget_set_sensitive(xsane.advanced_options_shell, sensitivity);
gtk_widget_set_sensitive(xsane.histogram_dialog, sensitivity);
+
+#ifdef HAVE_WORKING_GTK_GAMMACURVE
+ gtk_widget_set_sensitive(xsane.gamma_dialog, sensitivity);
+#endif
}
if (xsane.preview)
{
gtk_widget_set_sensitive(xsane.preview->button_box, sensitivity); /* button box at top of window */
-#if 0
+#if 1
gtk_widget_set_sensitive(xsane.preview->viewport, sensitivity); /* Preview image selection */
#endif
gtk_widget_set_sensitive(xsane.preview->start, sensitivity); /* Acquire preview button */
@@ -1369,10 +1563,9 @@ void xsane_set_sensitivity(SANE_Int sensitivity)
gtk_widget_set_sensitive(xsane.fax_dialog, sensitivity);
}
- if (dialog)
- {
- xsane_back_gtk_set_sensitivity(dialog, sensitivity);
- }
+#if 0
+ xsane_back_gtk_set_sensitivity(sensitivity);
+#endif
while (gtk_events_pending()) /* make sure set_sensitivity is displayed */
{
@@ -1384,14 +1577,15 @@ void xsane_set_sensitivity(SANE_Int sensitivity)
/* ----------------------------------------------------------------------------------------------------------------- */
-void xsane_back_gtk_destroy_dialog(GSGDialog * dialog)
+void xsane_back_gtk_destroy_dialog(void)
{
- SANE_Handle dev = dialog->dev;
+ SANE_Handle dev = xsane.dev;
- xsane_back_gtk_panel_destroy(dialog);
- free((void *) dialog->dev_name);
- free(dialog->element);
- free(dialog);
+ DBG(DBG_proc, "xsane_back_gtk_destroy_dialog\n");
+
+ xsane_back_gtk_panel_destroy();
+ free((void *) xsane.dev_name);
+ free(xsane.element);
sane_close(dev);
}
@@ -1402,6 +1596,8 @@ void xsane_set_window_icon(GtkWidget *gtk_window, gchar **xpm_d)
GdkPixmap *pixmap;
GdkBitmap *mask;
+ DBG(DBG_proc, "xsane_set_window_icon\n");
+
gtk_widget_realize(gtk_window);
if (xpm_d)
{
diff --git a/src/xsane-back-gtk.h b/src/xsane-back-gtk.h
new file mode 100644
index 0000000..feb52e9
--- /dev/null
+++ b/src/xsane-back-gtk.h
@@ -0,0 +1,91 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-back-gtk.h
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifndef XSANE_BACK_GTK_H
+#define XSANE_BACK_GTK_H
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#include "xsane.h"
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+typedef enum
+ {
+ xsane_back_gtk_TL_X, /* top-left x */
+ xsane_back_gtk_TL_Y, /* top-left y */
+ xsane_back_gtk_BR_X, /* bottom-right x */
+ xsane_back_gtk_BR_Y /* bottom-right y */
+ }
+GSGCornerCoordinates;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+extern int xsane_back_gtk_message_dialog_active;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+extern void xsane_bound_int(int *value, int min, int max);
+extern void xsane_bound_float(float *value, float min, float max);
+extern void xsane_bound_double(double *value, double min, double max);
+extern int xsane_check_bound_double(double value, double min, double max);
+extern const SANE_Option_Descriptor *xsane_get_option_descriptor(SANE_Handle handle, SANE_Int option);
+extern SANE_Status xsane_control_option(SANE_Handle handle, SANE_Int option, SANE_Action action, void *val, SANE_Int *info);
+extern int xsane_back_gtk_make_path(size_t max_len, char *filename_ret, const char *prog_name, const char *dir_name,
+ const char *prefix, const char *dev_name, const char *postfix, int local);
+extern gint xsane_back_gtk_decision(gchar *title, gchar** icon_xpm, gchar *message, gchar *oktext, gchar *rejecttext, int wait);
+extern void xsane_back_gtk_message(gchar *title, gchar** icon_xpm, gchar *message, int wait);
+extern void xsane_back_gtk_error(gchar *error_message, int wait);
+extern void xsane_back_gtk_warning(gchar *warning_message, int wait);
+extern void xsane_back_gtk_info(gchar *info_message, int wait);
+extern int xsane_back_gtk_get_filename(const char *label, const char *default_name, size_t max_len, char *filename,
+ int show_fileopts, int shorten_path, int hide_file_list);
+
+extern void xsane_back_gtk_sync(void);
+extern void xsane_back_gtk_update_vector(int opt_num, SANE_Int *vector);
+extern void xsane_back_gtk_refresh_dialog(void);
+/* extern void xsane_back_gtk_vector_new(GtkWidget *box, int num_vopts, int *vopts); */
+extern void xsane_back_gtk_update_scan_window(void);
+extern void xsane_back_gtk_set_advanced(int advanced);
+extern void xsane_back_gtk_set_tooltips(int enable);
+extern void xsane_back_gtk_set_tooltip(GtkTooltips *tooltips, GtkWidget *widget, const char *desc);
+extern void xsane_back_gtk_set_sensitivity(int sensitive);
+extern void xsane_set_sensitivity(SANE_Int sensitivity);
+extern void xsane_back_gtk_destroy_dialog(void);
+extern void xsane_back_gtk_set_option(int opt_num, void *val, SANE_Action action);
+extern GtkWidget *xsane_back_gtk_group_new (GtkWidget *parent, const char * title);
+extern void xsane_back_gtk_button_new(GtkWidget * parent, const char *name, SANE_Word val,
+ GSGDialogElement *elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable);
+extern void xsane_back_gtk_scale_new(GtkWidget * parent, const char *name, gfloat val,
+ gfloat min, gfloat max, gfloat quant, int automatic,
+ GSGDialogElement *elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable);
+extern void xsane_back_gtk_option_menu_new(GtkWidget *parent, const char *name, char *str_list[],
+ const char *val, GSGDialogElement * elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable);
+extern void xsane_back_gtk_text_entry_new(GtkWidget *parent, const char *name, const char *val,
+ GSGDialogElement *elem, GtkTooltips *tooltips, const char *desc, SANE_Int settable);
+extern void xsane_back_gtk_push_button_callback(GtkWidget * widget, gpointer data);
+extern const char *xsane_back_gtk_unit_string(SANE_Unit unit);
+void xsane_set_window_icon(GtkWidget *gtk_window, gchar **xpm_d);
+
+#endif
diff --git a/src/xsane-calibration-help.pnm b/src/xsane-calibration-help.pnm
new file mode 100644
index 0000000..7bc833f
--- /dev/null
+++ b/src/xsane-calibration-help.pnm
@@ -0,0 +1,155 @@
+P6
+# CREATOR: The GIMP's PNM Filter Version 1.0
+400 547
+255
+˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ \ No newline at end of file
diff --git a/src/xsane-calibration.pnm b/src/xsane-calibration.pnm
new file mode 100644
index 0000000..41c33d4
--- /dev/null
+++ b/src/xsane-calibration.pnm
@@ -0,0 +1,156 @@
+P6
+# surface: 0 0 400 547 400 547
+#time: -1
+400 547
+255
+˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
+
+
+  !!!"""######$$$%%%&&&''''''((()))***++++++,,,---...//////000111222333333444555666666777888999::::::;;;<<<===>>>>>>???@@@AAABBBBBBCCCDDDEEEFFFFFFGGGHHHIIIJJJJJJKKKLLLMMMNNNNNNOOOPPPQQQRRRRRRSSSTTTUUUVVVVVVWWWXXXYYYZZZZZZ[[[\\\]]]^^^^^^___```aaabbbbbbcccdddeeeffffffggghhhiiiiiijjjkkklllmmmmmmnnnooopppqqqqqqrrrssstttuuuuuuvvvwwwxxxyyyyyyzzz{{{|||}}}}}}~~~€€€‚‚‚ƒƒƒ„„„………………†††‡‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘‘‘‘’’’“““”””••••••–––———˜˜˜˜˜˜™™™ššš›››œœœœœœžžžŸŸŸ      ĄĄĄ˘˘˘ŁŁŁ¤¤¤¤¤¤ĽĽĽŚŚŚ§§§¨¨¨¨¨¨ŠŠŠŞŞŞŤŤŤŹŹŹŹŹŹ­­­ŽŽŽŻŻŻ°°°°°°ąąą˛˛˛łłł´´´´´´ľľľśśśˇˇˇ¸¸¸¸¸¸šššşşşťťťźźźźźź˝˝˝žžžżżżŔŔŔŔŔŔÁÁÁÂÂÂĂĂĂÄÄÄÄÄÄĹĹĹĆĆĆÇÇÇČČČČČČÉÉÉĘĘĘËËËĚĚĚĚĚĚÍÍÍÎÎÎĎĎĎĎĎĎĐĐĐŃŃŃŇŇŇÓÓÓÓÓÓÔÔÔŐŐŐÖÖÖ××××××ŘŘŘŮŮŮÚÚÚŰŰŰŰŰŰÜÜÜÝÝÝŢŢŢßßßßßßŕŕŕáááâââăăăăăăäääĺĺĺćććççççççčččéééęęęëëëëëëěěěíííîîîďďďďďďđđđńńńňňňóóóóóóôôôőőőööö÷÷÷÷÷÷řřřůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
diff --git a/src/xsane-calibration.xpm b/src/xsane-calibration.xpm
new file mode 100644
index 0000000..9baf29b
--- /dev/null
+++ b/src/xsane-calibration.xpm
@@ -0,0 +1,807 @@
+/* XPM */
+static char * xsane_calibration_xpm[] = {
+"400 547 257 2",
+" c None",
+". c #FFFFFF",
+"+ c #7F7F7F",
+"@ c #000000",
+"# c #020202",
+"$ c #FDFDFD",
+"% c #040404",
+"& c #FBFBFB",
+"* c #060606",
+"= c #F9F9F9",
+"- c #010101",
+"; c #030303",
+"> c #050505",
+", c #070707",
+"' c #080808",
+") c #090909",
+"! c #0A0A0A",
+"~ c #0B0B0B",
+"{ c #0C0C0C",
+"] c #0D0D0D",
+"^ c #0E0E0E",
+"/ c #0F0F0F",
+"( c #101010",
+"_ c #111111",
+": c #121212",
+"< c #131313",
+"[ c #141414",
+"} c #151515",
+"| c #161616",
+"1 c #171717",
+"2 c #181818",
+"3 c #191919",
+"4 c #1A1A1A",
+"5 c #1B1B1B",
+"6 c #1C1C1C",
+"7 c #1D1D1D",
+"8 c #1E1E1E",
+"9 c #1F1F1F",
+"0 c #202020",
+"a c #212121",
+"b c #222222",
+"c c #232323",
+"d c #242424",
+"e c #252525",
+"f c #262626",
+"g c #272727",
+"h c #282828",
+"i c #292929",
+"j c #2A2A2A",
+"k c #2B2B2B",
+"l c #2C2C2C",
+"m c #2D2D2D",
+"n c #2E2E2E",
+"o c #2F2F2F",
+"p c #303030",
+"q c #313131",
+"r c #323232",
+"s c #333333",
+"t c #343434",
+"u c #353535",
+"v c #363636",
+"w c #373737",
+"x c #383838",
+"y c #393939",
+"z c #3A3A3A",
+"A c #3B3B3B",
+"B c #3C3C3C",
+"C c #3D3D3D",
+"D c #3E3E3E",
+"E c #3F3F3F",
+"F c #404040",
+"G c #414141",
+"H c #424242",
+"I c #434343",
+"J c #444444",
+"K c #454545",
+"L c #464646",
+"M c #474747",
+"N c #484848",
+"O c #494949",
+"P c #4A4A4A",
+"Q c #4B4B4B",
+"R c #4C4C4C",
+"S c #4D4D4D",
+"T c #4E4E4E",
+"U c #4F4F4F",
+"V c #505050",
+"W c #515151",
+"X c #525252",
+"Y c #535353",
+"Z c #545454",
+"` c #555555",
+" . c #565656",
+".. c #575757",
+"+. c #585858",
+"@. c #595959",
+"#. c #5A5A5A",
+"$. c #5B5B5B",
+"%. c #5C5C5C",
+"&. c #5D5D5D",
+"*. c #5E5E5E",
+"=. c #5F5F5F",
+"-. c #606060",
+";. c #616161",
+">. c #626262",
+",. c #636363",
+"'. c #646464",
+"). c #656565",
+"!. c #666666",
+"~. c #676767",
+"{. c #686868",
+"]. c #696969",
+"^. c #6A6A6A",
+"/. c #6B6B6B",
+"(. c #6C6C6C",
+"_. c #6D6D6D",
+":. c #6E6E6E",
+"<. c #6F6F6F",
+"[. c #707070",
+"}. c #717171",
+"|. c #727272",
+"1. c #737373",
+"2. c #747474",
+"3. c #757575",
+"4. c #767676",
+"5. c #777777",
+"6. c #787878",
+"7. c #797979",
+"8. c #7A7A7A",
+"9. c #7B7B7B",
+"0. c #7C7C7C",
+"a. c #7D7D7D",
+"b. c #7E7E7E",
+"c. c #808080",
+"d. c #818181",
+"e. c #828282",
+"f. c #838383",
+"g. c #848484",
+"h. c #858585",
+"i. c #868686",
+"j. c #878787",
+"k. c #888888",
+"l. c #898989",
+"m. c #8A8A8A",
+"n. c #8B8B8B",
+"o. c #8C8C8C",
+"p. c #8D8D8D",
+"q. c #8E8E8E",
+"r. c #8F8F8F",
+"s. c #909090",
+"t. c #919191",
+"u. c #929292",
+"v. c #939393",
+"w. c #949494",
+"x. c #959595",
+"y. c #969696",
+"z. c #979797",
+"A. c #989898",
+"B. c #999999",
+"C. c #9A9A9A",
+"D. c #9B9B9B",
+"E. c #9C9C9C",
+"F. c #9D9D9D",
+"G. c #9E9E9E",
+"H. c #9F9F9F",
+"I. c #A0A0A0",
+"J. c #A1A1A1",
+"K. c #A2A2A2",
+"L. c #A3A3A3",
+"M. c #A4A4A4",
+"N. c #A5A5A5",
+"O. c #A6A6A6",
+"P. c #A7A7A7",
+"Q. c #A8A8A8",
+"R. c #A9A9A9",
+"S. c #AAAAAA",
+"T. c #ABABAB",
+"U. c #ACACAC",
+"V. c #ADADAD",
+"W. c #AEAEAE",
+"X. c #AFAFAF",
+"Y. c #B0B0B0",
+"Z. c #B1B1B1",
+"`. c #B2B2B2",
+" + c #B3B3B3",
+".+ c #B4B4B4",
+"++ c #B5B5B5",
+"@+ c #B6B6B6",
+"#+ c #B7B7B7",
+"$+ c #B8B8B8",
+"%+ c #B9B9B9",
+"&+ c #BABABA",
+"*+ c #BBBBBB",
+"=+ c #BCBCBC",
+"-+ c #BDBDBD",
+";+ c #BEBEBE",
+">+ c #BFBFBF",
+",+ c #C0C0C0",
+"'+ c #C1C1C1",
+")+ c #C2C2C2",
+"!+ c #C3C3C3",
+"~+ c #C4C4C4",
+"{+ c #C5C5C5",
+"]+ c #C6C6C6",
+"^+ c #C7C7C7",
+"/+ c #C8C8C8",
+"(+ c #C9C9C9",
+"_+ c #CACACA",
+":+ c #CBCBCB",
+"<+ c #CCCCCC",
+"[+ c #CDCDCD",
+"}+ c #CECECE",
+"|+ c #CFCFCF",
+"1+ c #D0D0D0",
+"2+ c #D1D1D1",
+"3+ c #D2D2D2",
+"4+ c #D3D3D3",
+"5+ c #D4D4D4",
+"6+ c #D5D5D5",
+"7+ c #D6D6D6",
+"8+ c #D7D7D7",
+"9+ c #D8D8D8",
+"0+ c #D9D9D9",
+"a+ c #DADADA",
+"b+ c #DBDBDB",
+"c+ c #DCDCDC",
+"d+ c #DDDDDD",
+"e+ c #DEDEDE",
+"f+ c #DFDFDF",
+"g+ c #E0E0E0",
+"h+ c #E1E1E1",
+"i+ c #E2E2E2",
+"j+ c #E3E3E3",
+"k+ c #E4E4E4",
+"l+ c #E5E5E5",
+"m+ c #E6E6E6",
+"n+ c #E7E7E7",
+"o+ c #E8E8E8",
+"p+ c #E9E9E9",
+"q+ c #EAEAEA",
+"r+ c #EBEBEB",
+"s+ c #ECECEC",
+"t+ c #EDEDED",
+"u+ c #EEEEEE",
+"v+ c #EFEFEF",
+"w+ c #F0F0F0",
+"x+ c #F1F1F1",
+"y+ c #F2F2F2",
+"z+ c #F3F3F3",
+"A+ c #F4F4F4",
+"B+ c #F5F5F5",
+"C+ c #F6F6F6",
+"D+ c #F7F7F7",
+"E+ c #F8F8F8",
+"F+ c #FAFAFA",
+"G+ c #FCFCFC",
+"H+ c #FEFEFE",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # @ # # # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ . $ $ $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # @ @ @ @ @ @ # # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ . . . . . . $ $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # # # # # # # # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # # # # # # # # # # # # # # # # # # # # # # # # @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % @ @ @ @ @ % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & . . . . . & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & . . . . . . . . . & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & . . . . . . . . . . . & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & . . . . . . . . . . . . . & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & . . . . . . . . . . . . . & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & . . . . . . . . . . . . . . . & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & . . . . . . . . . . . . . . & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & . . . . . . . . . . . . . . & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & . . . . . . . . . . . . . . . & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & . . . . . . . . . . . . . . . & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & . . . . . . . . . . . . . . & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ % % % % % % % % % % % % % % % % % % % % % % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . & & & & & & & & & & & & & & & & & & & & & & & & & & & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * @ @ @ @ @ * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = . . . . . = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * @ @ @ @ @ @ @ @ @ * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = . . . . . . . . . = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = . . . . . . . . . . . = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = . . . . . . . . . . . . = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = . . . . . . . . . . . . . . = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = . . . . . . . . . . . . . . = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = . . . . . . . . . . . . . . . . . = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = . . . . . . . . . . . . . . = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = . . . . . . . . . . . . = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = . . . . . . . . . . . = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * @ @ @ @ @ @ @ @ @ * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = . . . . . . . . . = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * @ @ @ @ @ @ @ * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = . . . . . . . = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * @ @ @ * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = . . . = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ * * * * * * * * @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = = = = = = = = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . @ . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + @ @ - # ; ; % > * , , ' ) ! ~ ~ { ] ^ / / ( _ : < < [ } | 1 1 2 3 4 5 5 6 7 8 9 9 0 a b c c d e f g g h i j k k l m n o o p q r s s t u v v w x y z z A B C D D E F G H H I J K L L M N O P P Q R S T T U V W X X Y Z ` . ...+.@.#.#.$.%.&.*.*.=.-.;.>.>.,.'.).!.!.~.{.].].^./.(._._.:.<.[.}.}.|.1.2.3.3.4.5.6.7.7.8.9.0.a.a.b.+ c.d.d.e.f.g.h.h.i.j.k.l.l.m.n.o.p.p.q.r.s.t.t.u.v.w.x.x.y.z.A.A.B.C.D.E.E.F.G.H.I.I.J.K.L.M.M.N.O.P.Q.Q.R.S.T.U.U.V.W.X.Y.Y.Z.`. +.+.+++@+#+$+$+%+&+*+=+=+-+;+>+,+,+'+)+!+~+~+{+]+^+/+/+(+_+:+<+<+[+}+|+|+1+2+3+4+4+5+6+7+8+8+9+0+a+b+b+c+d+e+f+f+g+h+i+j+j+k+l+m+n+n+o+p+q+r+r+s+t+u+v+v+w+x+y+z+z+A+B+C+D+D+E+= F+& & G+$ H++ + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/frontend/xsane-device-preferences.c b/src/xsane-device-preferences.c
index cce2007..7f6a80e 100644
--- a/frontend/xsane-device-preferences.c
+++ b/src/xsane-device-preferences.c
@@ -2,8 +2,8 @@
xsane-device-preferences.c
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -24,6 +24,7 @@
#include "xsane.h"
#include "xsane-rc-io.h"
+#include "xsane-back-gtk.h"
#include "xsane-front-gtk.h"
#include "xsane-gamma.h"
@@ -46,20 +47,28 @@ static struct
}
desc_xsane_device[] =
{
- {"xsane-main-window-x-position", xsane_rc_pref_int, DPOFFSET(shell_posx)},
- {"xsane-main-window-y-position", xsane_rc_pref_int, DPOFFSET(shell_posy)},
- {"xsane-main-window-width", xsane_rc_pref_int, DPOFFSET(shell_width)},
- {"xsane-main-window-height", xsane_rc_pref_int, DPOFFSET(shell_height)},
+ {"xsane-main-window-x-position", xsane_rc_pref_int, DPOFFSET(shell_posx)},
+ {"xsane-main-window-y-position", xsane_rc_pref_int, DPOFFSET(shell_posy)},
+
+ {"xsane-main-window-width", xsane_rc_pref_int, DPOFFSET(shell_width)},
+ {"xsane-main-window-height", xsane_rc_pref_int, DPOFFSET(shell_height)},
+
{"xsane-standard-options-window-x-position", xsane_rc_pref_int, DPOFFSET(standard_options_shell_posx)},
{"xsane-standard-options-window-y-position", xsane_rc_pref_int, DPOFFSET(standard_options_shell_posy)},
+
{"xsane-advanced-options-window-x-position", xsane_rc_pref_int, DPOFFSET(advanced_options_shell_posx)},
{"xsane-advanced-options-window-y-position", xsane_rc_pref_int, DPOFFSET(advanced_options_shell_posy)},
- {"xsane-histogram-window-x-position", xsane_rc_pref_int, DPOFFSET(histogram_dialog_posx)},
- {"xsane-histogram-window-y-position", xsane_rc_pref_int, DPOFFSET(histogram_dialog_posy)},
- {"xsane-preview-window-x-position", xsane_rc_pref_int, DPOFFSET(preview_dialog_posx)},
- {"xsane-preview-window-y-position", xsane_rc_pref_int, DPOFFSET(preview_dialog_posy)},
- {"xsane-preview-window-width", xsane_rc_pref_int, DPOFFSET(preview_dialog_width)},
- {"xsane-preview-window-height", xsane_rc_pref_int, DPOFFSET(preview_dialog_height)},
+
+ {"xsane-histogram-window-x-position", xsane_rc_pref_int, DPOFFSET(histogram_dialog_posx)},
+ {"xsane-histogram-window-y-position", xsane_rc_pref_int, DPOFFSET(histogram_dialog_posy)},
+
+ {"xsane-gamma-window-x-position", xsane_rc_pref_int, DPOFFSET(gamma_dialog_posx)},
+ {"xsane-gamma-window-y-position", xsane_rc_pref_int, DPOFFSET(gamma_dialog_posy)},
+
+ {"xsane-preview-window-x-position", xsane_rc_pref_int, DPOFFSET(preview_dialog_posx)},
+ {"xsane-preview-window-y-position", xsane_rc_pref_int, DPOFFSET(preview_dialog_posy)},
+ {"xsane-preview-window-width", xsane_rc_pref_int, DPOFFSET(preview_dialog_width)},
+ {"xsane-preview-window-height", xsane_rc_pref_int, DPOFFSET(preview_dialog_height)},
{"xsane-gamma", xsane_rc_pref_double, DPOFFSET(gamma)},
{"xsane-gamma-red", xsane_rc_pref_double, DPOFFSET(gamma_red)},
@@ -76,6 +85,16 @@ desc_xsane_device[] =
{"xsane-contrast-green", xsane_rc_pref_double, DPOFFSET(contrast_green)},
{"xsane-contrast-blue", xsane_rc_pref_double, DPOFFSET(contrast_blue)},
+ {"xsane-lineart-mode", xsane_rc_pref_int, DPOFFSET(lineart_mode)},
+ {"xsane-threshold", xsane_rc_pref_double, DPOFFSET(threshold)},
+ {"xsane-threshold-min", xsane_rc_pref_double, DPOFFSET(threshold_min)},
+ {"xsane-threshold-max", xsane_rc_pref_double, DPOFFSET(threshold_max)},
+ {"xsane-threshold-multiplier", xsane_rc_pref_double, DPOFFSET(threshold_mul)},
+ {"xsane-threshold-offset", xsane_rc_pref_double, DPOFFSET(threshold_off)},
+ {"xsane-grayscale-scanmode", xsane_rc_pref_string, DPOFFSET(grayscale_scanmode)},
+
+ {"xsane-adf-scansource", xsane_rc_pref_string, DPOFFSET(adf_scansource)},
+
{"xsane-enhancement-rgb-default", xsane_rc_pref_int, DPOFFSET(enhancement_rgb_default)},
{"xsane-negative", xsane_rc_pref_int, DPOFFSET(negative)},
{"xsane-show-preview", xsane_rc_pref_int, DPOFFSET(show_preview)},
@@ -83,17 +102,6 @@ desc_xsane_device[] =
/* ---------------------------------------------------------------------------------------------------------------- */
-static void xsane_widget_get_uposition(GtkWidget *gtk_window, gint *x, gint *y)
-{
-#ifdef XSANE_BUGGY_WINDOWMANAGER_WINDOW_POSITION
- gdk_window_get_root_origin(gtk_window->window, x, y);
-#else
- gdk_window_get_deskrelative_origin(gtk_window->window, x, y);
-#endif
-}
-
-/* ---------------------------------------------------------------------------------------------------------------- */
-
static int xsane_device_preferences_load_values(Wire *w, SANE_Handle device)
{
const SANE_Option_Descriptor *opt;
@@ -109,6 +117,8 @@ static int xsane_device_preferences_load_values(Wire *w, SANE_Handle device)
size_t size;
char *buf;
+ DBG(DBG_proc, "xsane_device_preferences_load_values\n");
+
lseek(w->io.fd, 1, SEEK_SET); /* rewind file */
xsane_rc_io_w_flush(w);
@@ -116,7 +126,7 @@ static int xsane_device_preferences_load_values(Wire *w, SANE_Handle device)
keep_going = 0;
- sane_control_option(device, 0, SANE_ACTION_GET_VALUE, &num_options, 0);
+ xsane_control_option(device, 0, SANE_ACTION_GET_VALUE, &num_options, 0);
size = (num_options + BITS_PER_LONG - 1) / BITS_PER_LONG * sizeof(long);
caused_reload = alloca(size);
memset(caused_reload, 0, size);
@@ -138,6 +148,8 @@ static int xsane_device_preferences_load_values(Wire *w, SANE_Handle device)
keep_going = 0;
continue;
}
+
+ /* no keep_gooing: we can exit, all options should be set correct */
return 0;
}
else if (w->status) /* error: skip line */
@@ -150,7 +162,7 @@ static int xsane_device_preferences_load_values(Wire *w, SANE_Handle device)
status = SANE_STATUS_GOOD;
info = 0;
- for (i = 1; (opt = sane_get_option_descriptor(device, i)); ++i) /* search all options */
+ for (i = 1; (opt = xsane_get_option_descriptor(device, i)); ++i) /* search all options */
{
if (!opt->name || strcmp(opt->name, name) != 0) /* test if option names are equal */
{
@@ -159,9 +171,12 @@ static int xsane_device_preferences_load_values(Wire *w, SANE_Handle device)
if (IS_SET(caused_reload, i))
{
- continue; /* option caused a reload, continue search ??? why? ??? */
+ continue; /* option already caused a reload: */
+ /* we expect that this option already is set correct */
+ /* otherwise we could get infinite loops */
}
+ /* name is correct and option did not force a reload: set option */
switch (opt->type)
{
case SANE_TYPE_BOOL:
@@ -170,14 +185,14 @@ static int xsane_device_preferences_load_values(Wire *w, SANE_Handle device)
if (opt->size == sizeof(SANE_Word))
{
xsane_rc_io_w_word(w, &word);
- status = sane_control_option(device, i, SANE_ACTION_SET_VALUE, &word, &info);
+ status = xsane_control_option(device, i, SANE_ACTION_SET_VALUE, &word, &info);
}
- else
+ else /* array */
{
SANE_Int len;
xsane_rc_io_w_array(w, &len, (void **) &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word));
- status = sane_control_option(device, i, SANE_ACTION_SET_VALUE, word_array, &info);
+ status = xsane_control_option(device, i, SANE_ACTION_SET_VALUE, word_array, &info);
w->direction = WIRE_FREE;
xsane_rc_io_w_array(w, &len, (void **) &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word));
w->direction = WIRE_DECODE;
@@ -192,7 +207,7 @@ static int xsane_device_preferences_load_values(Wire *w, SANE_Handle device)
strncpy(buf, str, opt->size);
buf[opt->size - 1] = '\0';
xsane_rc_io_w_free(w, (WireCodecFunc) xsane_rc_io_w_string, &str);
- status = sane_control_option(device, i, SANE_ACTION_SET_VALUE, buf, &info);
+ status = xsane_control_option(device, i, SANE_ACTION_SET_VALUE, buf, &info);
}
break;
@@ -226,14 +241,22 @@ static int xsane_device_preferences_save_values(Wire *w, SANE_Handle device)
SANE_Word word;
int i;
- for (i = 0; (opt = sane_get_option_descriptor(device, i)); ++i)
+ DBG(DBG_proc, "xsane_device_preferences_save_values\n");
+
+ for (i = 0; (opt = xsane_get_option_descriptor(device, i)); ++i)
{
- if ((opt->cap & (SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT)) != (SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT) || !opt->name)
+ if ((opt->cap & (SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT)) !=
+ (SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT) || !opt->name)
/* if we can't query AND set the option, don't bother saving it */
{
continue;
}
+ if (!SANE_OPTION_IS_ACTIVE(opt->cap)) /* option is not active, don`t save it */
+ {
+ continue;
+ }
+
switch (opt->type)
{
case SANE_TYPE_BOOL:
@@ -241,7 +264,7 @@ static int xsane_device_preferences_save_values(Wire *w, SANE_Handle device)
case SANE_TYPE_FIXED:
if (opt->size == sizeof(SANE_Word))
{
- if (sane_control_option(device, i, SANE_ACTION_GET_VALUE, &word, 0) != SANE_STATUS_GOOD)
+ if (xsane_control_option(device, i, SANE_ACTION_GET_VALUE, &word, 0) != SANE_STATUS_GOOD)
{
continue;
}
@@ -272,7 +295,7 @@ static int xsane_device_preferences_save_values(Wire *w, SANE_Handle device)
}
}
- if (sane_control_option(device, i, SANE_ACTION_GET_VALUE, word_array, 0) != SANE_STATUS_GOOD)
+ if (xsane_control_option(device, i, SANE_ACTION_GET_VALUE, word_array, 0) != SANE_STATUS_GOOD)
{
continue;
}
@@ -304,7 +327,7 @@ static int xsane_device_preferences_save_values(Wire *w, SANE_Handle device)
}
}
- if (sane_control_option(device, i, SANE_ACTION_GET_VALUE, str, 0) != SANE_STATUS_GOOD)
+ if (xsane_control_option(device, i, SANE_ACTION_GET_VALUE, str, 0) != SANE_STATUS_GOOD)
{
continue;
}
@@ -344,6 +367,8 @@ void xsane_device_preferences_load_file(char *filename)
SANE_String name;
int i;
+ DBG(DBG_proc, "xsane_device_preferences_load_file\n");
+
/* set geometry and position to standard values */
xsane.shell_posx = XSANE_SHELL_POS_X;
xsane.shell_posy = XSANE_SHELL_POS_Y;
@@ -379,6 +404,16 @@ void xsane_device_preferences_load_file(char *filename)
xsane.contrast_green = 0.0;
xsane.contrast_blue = 0.0;
+ xsane.lineart_mode = 0;
+ xsane.grayscale_scanmode = 0; /* Empty String => keeps "grayscale" */
+ xsane.threshold = 50.0;
+ xsane.threshold_min = 0.0;
+ xsane.threshold_max = 100.0;
+ xsane.threshold_mul = 1.0;
+ xsane.threshold_off = 0.0;
+
+ xsane.adf_scansource = 0; /* Empty String => keeps adf scansource */
+
xsane.enhancement_rgb_default = 1;
xsane.negative = 0;
xsane.show_preview = 1;
@@ -432,7 +467,7 @@ void xsane_device_preferences_load_file(char *filename)
ERR_CREATED_FOR_DEVICE, name,
ERR_USED_FOR_DEVICE, xsane.device_set_filename,
ERR_MAY_CAUSE_PROBLEMS);
- if (xsane_back_gtk_decision(ERR_HEADER_WARNING, (gchar **) error_xpm, buf, ERR_BUTTON_OK, BUTTON_CANCEL, TRUE) == FALSE)
+ if (xsane_back_gtk_decision(ERR_HEADER_WARNING, (gchar **) error_xpm, buf, BUTTON_OK, BUTTON_CANCEL, TRUE) == FALSE)
{ /* cancel */
close(fd);
return;
@@ -524,21 +559,21 @@ void xsane_device_preferences_load_file(char *filename)
w.status = 0;
}
- xsane_device_preferences_load_values(&w, dialog->dev); /* read device preferences */
+ xsane_device_preferences_load_values(&w, xsane.dev); /* read device preferences */
close(fd);
- if (dialog->well_known.dpi > 0)
+ if (xsane.well_known.dpi > 0)
{
const SANE_Option_Descriptor *opt;
- opt = sane_get_option_descriptor(dialog->dev, dialog->well_known.dpi);
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.dpi);
switch (opt->type)
{
case SANE_TYPE_INT:
{
SANE_Int dpi;
- sane_control_option(dialog->dev, dialog->well_known.dpi, SANE_ACTION_GET_VALUE, &dpi, 0);
+ xsane_control_option(xsane.dev, xsane.well_known.dpi, SANE_ACTION_GET_VALUE, &dpi, 0);
xsane.resolution = dpi;
}
break;
@@ -546,18 +581,17 @@ void xsane_device_preferences_load_file(char *filename)
case SANE_TYPE_FIXED:
{
SANE_Fixed dpi;
- sane_control_option(dialog->dev, dialog->well_known.dpi, SANE_ACTION_GET_VALUE, &dpi, 0);
+ xsane_control_option(xsane.dev, xsane.well_known.dpi, SANE_ACTION_GET_VALUE, &dpi, 0);
xsane.resolution = (int) SANE_UNFIX(dpi);
}
break;
default:
- fprintf(stderr, "xsane_pref_load_file: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
+ DBG(DBG_error, "xsane_pref_load_file: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
return;
}
}
}
-
gtk_widget_set_uposition(xsane.shell, xsane.shell_posx, xsane.shell_posy);
gtk_window_set_default_size(GTK_WINDOW(xsane.shell), xsane.shell_width, xsane.shell_height);
gtk_widget_set_uposition(xsane.standard_options_shell, xsane.standard_options_shell_posx, xsane.standard_options_shell_posy);
@@ -566,7 +600,8 @@ void xsane_device_preferences_load_file(char *filename)
gtk_widget_set_uposition(xsane.preview->top, xsane.preview_dialog_posx, xsane.preview_dialog_posy);
gtk_window_set_default_size(GTK_WINDOW(xsane.preview->top), xsane.preview_dialog_width, xsane.preview_dialog_height);
- xsane_refresh_dialog(dialog);
+ xsane_update_param(0);
+ xsane_refresh_dialog();
xsane_enhancement_by_gamma();
}
@@ -574,8 +609,10 @@ void xsane_device_preferences_load_file(char *filename)
void xsane_device_preferences_restore(void)
{
- char filename[PATH_MAX];
- struct stat st;
+ char filename[PATH_MAX];
+ struct stat st;
+
+ DBG(DBG_proc, "xsane_device_preferences_restore\n");
xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, 0, xsane.device_set_filename, ".drc", XSANE_PATH_LOCAL_SANE);
@@ -594,16 +631,24 @@ void xsane_device_preferences_restore(void)
void xsane_device_preferences_load(void)
{
- char filename[PATH_MAX];
- char windowname[256];
+ char filename[PATH_MAX];
+ char windowname[256];
+
+ DBG(DBG_proc, "xsane_device_preferences_load\n");
+ xsane_clear_histogram(&xsane.histogram_raw);
+ xsane_clear_histogram(&xsane.histogram_enh);
xsane_set_sensitivity(FALSE);
- sprintf(windowname, "%s %s %s", prog_name, WINDOW_LOAD_SETTINGS, device_text);
+ sprintf(windowname, "%s %s %s", xsane.prog_name, WINDOW_LOAD_SETTINGS, xsane.device_text);
xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, 0, xsane.device_set_filename, ".drc", XSANE_PATH_LOCAL_SANE);
- xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, FALSE);
- xsane_device_preferences_load_file(filename);
+
+ if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, FALSE, FALSE, FALSE))
+ {
+ xsane_device_preferences_load_file(filename);
+ }
xsane_set_sensitivity(TRUE);
+ xsane_update_histogram(TRUE /* update raw */);
}
/* ---------------------------------------------------------------------------------------------------------------------- */
@@ -612,87 +657,112 @@ void xsane_device_preferences_load(void)
/* ---------------------------------------------------------------------------------------------------------------------- */
-void xsane_device_preferences_save(GtkWidget *widget, gpointer data)
+void xsane_device_preferences_save_file(char *filename)
{
- char filename[PATH_MAX];
- char windowname[256];
int fd;
Wire w;
int i;
- xsane_set_sensitivity(FALSE);
+ if (filename)
+ {
+ DBG(DBG_info, "Saving device preferences to file %s\n", filename);
- sprintf(windowname, "%s %s %s", prog_name, WINDOW_SAVE_SETTINGS, device_text);
- xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, 0, xsane.device_set_filename, ".drc", XSANE_PATH_LOCAL_SANE);
- xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, FALSE);
+ umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
+ fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
+ if (fd < 0)
+ {
+ char buf[256];
- umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
- fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0666);
- if (fd < 0)
- {
- char buf[256];
+ snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_CREATE_FILE, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ xsane_set_sensitivity(TRUE);
+ return;
+ }
- snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_CREATE_FILE, strerror(errno));
- xsane_back_gtk_error(buf, TRUE);
- xsane_set_sensitivity(TRUE);
- return;
- }
+ /* prepare wire */
+ w.io.fd = fd;
+ w.io.read = read;
+ w.io.write = write;
+ xsane_rc_io_w_init(&w);
+ xsane_rc_io_w_set_dir(&w, WIRE_ENCODE);
- /* prepare wire */
- w.io.fd = fd;
- w.io.read = read;
- w.io.write = write;
- xsane_rc_io_w_init(&w);
- xsane_rc_io_w_set_dir(&w, WIRE_ENCODE);
+ XSANE_RC_IO_W_STRINGCONST(&w, "XSANE_DEVICE_RC");
+ xsane_rc_io_w_string(&w, &xsane.device_set_filename);
- XSANE_RC_IO_W_STRINGCONST(&w, "XSANE_DEVICE_RC");
- xsane_rc_io_w_string(&w, &xsane.device_set_filename);
+ XSANE_RC_IO_W_STRINGCONST(&w, "xsane-version");
+ XSANE_RC_IO_W_STRINGCONST(&w, XSANE_VERSION);
- XSANE_RC_IO_W_STRINGCONST(&w, "xsane-version");
- XSANE_RC_IO_W_STRINGCONST(&w, XSANE_VERSION);
+ /* make geometry and position values up to date */
+ xsane_widget_get_uposition(xsane.shell, &xsane.shell_posx, &xsane.shell_posy);
+ gdk_window_get_size(xsane.shell->window, &xsane.shell_width, &xsane.shell_height);
+ gtk_widget_set_uposition(xsane.shell, xsane.shell_posx, xsane.shell_posy); /* geometry used when window closed and opened again */
+ gtk_window_set_default_size(GTK_WINDOW(xsane.shell), xsane.shell_width, xsane.shell_height);
- /* make geometry and position values up to date */
- xsane_widget_get_uposition(xsane.shell, &xsane.shell_posx, &xsane.shell_posy);
-#if 0
-/* other possibillities: */
- gdk_window_get_deskrelative_origin(xsane.shell->window, &xsane.shell_posx, &xsane.shell_posy);
- gdk_window_get_origin(xsane.shell->window, &xsane.shell_posx, &xsane.shell_posy);
- gdk_window_get_position(xsane.shell->window, &xsane.shell_posx, &xsane.shell_posy);
- gdk_window_get_geometry(xsane.shell->window, ?);
-#endif
- gdk_window_get_size(xsane.shell->window, &xsane.shell_width, &xsane.shell_height);
- gtk_widget_set_uposition(xsane.shell, xsane.shell_posx, xsane.shell_posy); /* geometry used when window closed and opened again */
- gtk_window_set_default_size(GTK_WINDOW(xsane.shell), xsane.shell_width, xsane.shell_height);
+ xsane_widget_get_uposition(xsane.standard_options_shell, &xsane.standard_options_shell_posx, &xsane.standard_options_shell_posy);
+ gtk_widget_set_uposition(xsane.standard_options_shell, xsane.standard_options_shell_posx, xsane.standard_options_shell_posy);
- xsane_widget_get_uposition(xsane.standard_options_shell, &xsane.standard_options_shell_posx, &xsane.standard_options_shell_posy);
- gtk_widget_set_uposition(xsane.standard_options_shell, xsane.standard_options_shell_posx, xsane.standard_options_shell_posy);
+ xsane_widget_get_uposition(xsane.advanced_options_shell, &xsane.advanced_options_shell_posx, &xsane.advanced_options_shell_posy);
+ gtk_widget_set_uposition(xsane.advanced_options_shell, xsane.advanced_options_shell_posx, xsane.advanced_options_shell_posy);
- xsane_widget_get_uposition(xsane.advanced_options_shell, &xsane.advanced_options_shell_posx, &xsane.advanced_options_shell_posy);
- gtk_widget_set_uposition(xsane.advanced_options_shell, xsane.advanced_options_shell_posx, xsane.advanced_options_shell_posy);
+ xsane_widget_get_uposition(xsane.histogram_dialog, &xsane.histogram_dialog_posx, &xsane.histogram_dialog_posy);
+ gtk_widget_set_uposition(xsane.histogram_dialog, xsane.histogram_dialog_posx, xsane.histogram_dialog_posy);
- xsane_widget_get_uposition(xsane.histogram_dialog, &xsane.histogram_dialog_posx, &xsane.histogram_dialog_posy);
- gtk_widget_set_uposition(xsane.histogram_dialog, xsane.histogram_dialog_posx, xsane.histogram_dialog_posy);
+ if (xsane.preview)
+ {
+ xsane_widget_get_uposition(xsane.preview->top, &xsane.preview_dialog_posx, &xsane.preview_dialog_posy);
+ gdk_window_get_size(xsane.preview->top->window, &xsane.preview_dialog_width, &xsane.preview_dialog_height);
+ gtk_widget_set_uposition(xsane.preview->top, xsane.preview_dialog_posx, xsane.preview_dialog_posy);
+ gtk_window_set_default_size(GTK_WINDOW(xsane.preview->top), xsane.preview_dialog_width, xsane.preview_dialog_height);
+ }
- if (xsane.preview)
- {
- xsane_widget_get_uposition(xsane.preview->top, &xsane.preview_dialog_posx, &xsane.preview_dialog_posy);
- gdk_window_get_size(xsane.preview->top->window, &xsane.preview_dialog_width, &xsane.preview_dialog_height);
- gtk_widget_set_uposition(xsane.preview->top, xsane.preview_dialog_posx, xsane.preview_dialog_posy);
- gtk_window_set_default_size(GTK_WINDOW(xsane.preview->top), xsane.preview_dialog_width, xsane.preview_dialog_height);
+ xsane_device_preferences_save_values(&w, xsane.dev);
+
+ for (i = 0; i < NELEMS(desc_xsane_device); ++i) /* save device preferences xsane values */
+ {
+ xsane_rc_io_w_string(&w, &desc_xsane_device[i].name);
+ (*desc_xsane_device[i].codec) (&w, &xsane, desc_xsane_device[i].offset);
+ }
+
+ xsane_rc_io_w_flush(&w);
+ close(fd);
}
+}
- xsane_device_preferences_save_values(&w, dialog->dev);
+/* ---------------------------------------------------------------------------------------------------------------------- */
- for (i = 0; i < NELEMS(desc_xsane_device); ++i) /* save device preferences xsane values */
- {
- xsane_rc_io_w_string(&w, &desc_xsane_device[i].name);
- (*desc_xsane_device[i].codec) (&w, &xsane, desc_xsane_device[i].offset);
- }
+void xsane_device_preferences_store(void)
+{
+ char filename[PATH_MAX];
+
+ DBG(DBG_proc, "xsane_device_preferences_store\n");
- xsane_rc_io_w_flush(&w);
- close(fd);
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, 0, xsane.device_set_filename, ".drc", XSANE_PATH_LOCAL_SANE);
+ xsane_device_preferences_save_file(filename);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_device_preferences_save(void)
+{
+ char filename[PATH_MAX];
+ char windowname[256];
+
+ DBG(DBG_proc, "xsane_device_preferences_save\n");
+
+ xsane_clear_histogram(&xsane.histogram_raw);
+ xsane_clear_histogram(&xsane.histogram_enh);
+ xsane_set_sensitivity(FALSE);
+
+ sprintf(windowname, "%s %s %s", xsane.prog_name, WINDOW_SAVE_SETTINGS, xsane.device_text);
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, 0, xsane.device_set_filename, ".drc", XSANE_PATH_LOCAL_SANE);
+
+ if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, FALSE, FALSE, FALSE))
+ {
+ xsane_device_preferences_save_file(filename);
+ }
xsane_set_sensitivity(TRUE);
+ xsane_update_histogram(TRUE /* update raw */);
}
/* ---------------------------------------------------------------------------------------------------------------- */
diff --git a/frontend/xsane-device-preferences.h b/src/xsane-device-preferences.h
index a372f2e..053c2a8 100644
--- a/frontend/xsane-device-preferences.h
+++ b/src/xsane-device-preferences.h
@@ -2,8 +2,8 @@
xsane-device-preferences.h
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -32,7 +32,9 @@
/* ---------------------------------------------------------------------------------------------------------------------- */
-extern void xsane_device_preferences_save(GtkWidget *widget, gpointer data);
+extern void xsane_device_preferences_store(void);
+extern void xsane_device_preferences_save(void);
+extern void xsane_device_preferences_save_file(char *filename);
extern void xsane_device_preferences_restore(void);
extern void xsane_device_preferences_load(void);
extern void xsane_device_preferences_load_file(char *filename);
diff --git a/src/xsane-fixedtext.h b/src/xsane-fixedtext.h
new file mode 100644
index 0000000..2bff8cc
--- /dev/null
+++ b/src/xsane-fixedtext.h
@@ -0,0 +1,50 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-fixedtext.h
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ------------------------------------------------------------------------ */
+
+#ifndef XSANE_FIXEDTEXT_H
+#define XSANE_FIXEDTEXT_H
+
+#ifdef _WIN32
+# define XSANE_FILETYPE_JPEG ".jpg"
+# define XSANE_FILETYPE_TIFF ".tif"
+#else
+# define XSANE_FILETYPE_JPEG ".jpeg"
+# define XSANE_FILETYPE_TIFF ".tiff"
+#endif
+
+#define XSANE_FILETYPE_PNG ".png"
+#define XSANE_FILETYPE_PNM ".pnm"
+#define XSANE_FILETYPE_PS ".ps"
+#define XSANE_FILETYPE_RAW ".raw"
+#define XSANE_FILETYPE_RGBA ".rgba"
+
+#define MENU_ITEM_FILETYPE_JPEG "JPEG"
+#define MENU_ITEM_FILETYPE_TIFF "TIFF"
+#define MENU_ITEM_FILETYPE_PNG "PNG"
+#define MENU_ITEM_FILETYPE_PNM "PNM"
+#define MENU_ITEM_FILETYPE_PS "PostScript"
+#define MENU_ITEM_FILETYPE_RAW "RAW"
+#define MENU_ITEM_FILETYPE_RGBA "RGBA"
+
+#endif
diff --git a/src/xsane-front-gtk.c b/src/xsane-front-gtk.c
new file mode 100644
index 0000000..b4373ed
--- /dev/null
+++ b/src/xsane-front-gtk.c
@@ -0,0 +1,1664 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-front-gtk.c
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#include "xsane.h"
+#include "xsane-back-gtk.h"
+#include "xsane-preferences.h"
+#include "xsane-preview.h"
+#include "xsane-save.h"
+#include "xsane-gamma.h"
+#include "xsane-setup.h"
+#include <md5.h>
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+#include <png.h>
+#include <zlib.h>
+#endif
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* forward declarations: */
+
+int xsane_parse_options(char *options, char *argv[]);
+void xsane_get_bounds(const SANE_Option_Descriptor *opt, double *minp, double *maxp);
+double xsane_find_best_resolution(int well_known_option, double dpi);
+int xsane_set_resolution(int well_known_option, double resolution);
+void xsane_set_all_resolutions(void);
+void xsane_define_maximum_output_size();
+void xsane_close_dialog_callback(GtkWidget *widget, gpointer data);
+void xsane_authorization_button_callback(GtkWidget *widget, gpointer data);
+gint xsane_authorization_callback(SANE_String_Const resource,
+ SANE_Char username[SANE_MAX_USERNAME_LEN],
+ SANE_Char password[SANE_MAX_PASSWORD_LEN]);
+void xsane_progress_cancel(GtkWidget *widget, gpointer data);
+void xsane_progress_new(char *bar_text, char *info, GtkSignalFunc callback, int *cancel_data_pointer);
+void xsane_progress_update(gfloat newval);
+void xsane_progress_clear();
+GtkWidget *xsane_vendor_pixmap_new(GdkWindow *window, GtkWidget *parent);
+GtkWidget *xsane_toggle_button_new_with_pixmap(GdkWindow *window, GtkWidget *parent, const char *xpm_d[], const char *desc,
+ int *state, void *xsane_toggle_button_callback);
+GtkWidget *xsane_button_new_with_pixmap(GdkWindow *window, GtkWidget *parent, const char *xpm_d[], const char *desc,
+ void *xsane_button_callback, gpointer data);
+void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, int option_number, const char *desc,
+ void *option_menu_callback, SANE_Int settable, const gchar *widget_name);
+void xsane_option_menu_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc,
+ char *str_list[], const char *val,
+ GtkObject **data, int option,
+ void *option_menu_callback, SANE_Int settable, const gchar *widget_name);
+void xsane_scale_new(GtkBox *parent, char *labeltext, const char *desc,
+ float min, float max, float quant, float step, float page_step,
+ int digits, double *val, GtkObject **data, void *xsane_scale_callback, SANE_Int settable);
+void xsane_scale_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc,
+ float min, float max, float quant, float step, float page_step, int digits,
+ double *val, GtkObject **data, int option, void *xsane_scale_callback, SANE_Int settable);
+void xsane_separator_new(GtkWidget *xsane_parent, int dist);
+GtkWidget *xsane_info_table_text_new(GtkWidget *table, gchar *text, int row, int colomn);
+GtkWidget *xsane_info_text_new(GtkWidget *parent, gchar *text);
+void xsane_refresh_dialog(void);
+void xsane_set_sensitivity(SANE_Int sensitivity);
+void xsane_update_param(void *arg);
+void xsane_define_output_filename(void);
+int xsane_identify_output_format(char *filename, char **ext);
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_parse_options(char *options, char *argv[])
+{
+ int optpos = 0;
+ int bufpos = 0;
+ int arg = 0;
+ char buf[256];
+
+ DBG(DBG_proc, "xsane_parse_options\n");
+
+ while (options[optpos] != 0)
+ {
+ switch(options[optpos])
+ {
+ case ' ':
+ buf[bufpos] = 0;
+ argv[arg++] = strdup(buf);
+ bufpos = 0;
+ optpos++;
+ break;
+
+ case '\"':
+ optpos++; /* skip " */
+ while ((options[optpos] != 0) && (options[optpos] != '\"'))
+ {
+ buf[bufpos++] = options[optpos++];
+ }
+ optpos++; /* skip " */
+ break;
+
+ default:
+ buf[bufpos++] = options[optpos++];
+ break;
+ }
+ }
+ buf[bufpos] = 0;
+ argv[arg++] = strdup(buf);
+
+ return arg;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_get_bounds(const SANE_Option_Descriptor *opt, double *minp, double *maxp)
+{
+ double min, max;
+ int i;
+
+ DBG(DBG_proc, "xsane_get_bounds\n");
+
+ min = -INF;
+ max = INF;
+ switch (opt->constraint_type)
+ {
+ case SANE_CONSTRAINT_RANGE:
+ min = opt->constraint.range->min;
+ max = opt->constraint.range->max;
+ break;
+
+ case SANE_CONSTRAINT_WORD_LIST:
+ min = INF;
+ max = -INF;
+
+ for (i = 1; i <= opt->constraint.word_list[0]; ++i)
+ {
+ if (opt->constraint.word_list[i] < min)
+ {
+ min = opt->constraint.word_list[i];
+ }
+ if (opt->constraint.word_list[i] > max)
+ {
+ max = opt->constraint.word_list[i];
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ if (opt->type == SANE_TYPE_FIXED)
+ {
+ if (min > -INF && min < INF)
+ {
+ min = SANE_UNFIX (min);
+ }
+ if (max > -INF && max < INF)
+ {
+ max = SANE_UNFIX (max);
+ }
+ }
+ *minp = min;
+ *maxp = max;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+double xsane_find_best_resolution(int well_known_option, double dpi)
+{
+ const SANE_Option_Descriptor *opt;
+ double bestdpi;
+
+ DBG(DBG_proc, "xsane_find_best_resolution\n");
+
+ opt = xsane_get_option_descriptor(xsane.dev, well_known_option);
+
+ if (!opt)
+ {
+ return -1.0; /* option does not exits */
+ }
+
+ if (opt->constraint_type == SANE_CONSTRAINT_RANGE)
+ {
+ double quant=0;
+ double min=0;
+ double max=0;
+
+ switch (opt->type)
+ {
+ case SANE_TYPE_INT:
+ min = opt->constraint.range->min;
+ max = opt->constraint.range->max;
+ quant = opt->constraint.range->quant;
+ break;
+
+ case SANE_TYPE_FIXED:
+ min = SANE_UNFIX(opt->constraint.range->min);
+ max = SANE_UNFIX(opt->constraint.range->max);
+ quant = SANE_UNFIX(opt->constraint.range->quant);
+ break;
+
+ default:
+ DBG(DBG_error, "find_best_resolution: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
+ }
+
+ bestdpi = dpi;
+
+ if (quant != 0) /* make sure selected value fits into quantisation */
+ {
+ int factor;
+ double diff;
+
+ factor = (int) (dpi - min) / quant;
+
+ diff = dpi - min - factor * quant;
+ bestdpi = min + factor * quant;
+
+ if (diff >quant/2.0)
+ {
+ bestdpi += quant;
+ }
+ }
+
+ if (bestdpi < min)
+ {
+ bestdpi = min;
+ }
+
+ if (bestdpi > max)
+ {
+ bestdpi = max;
+ }
+ }
+ else if (opt->constraint_type == SANE_CONSTRAINT_WORD_LIST)
+ {
+ SANE_Word diff;
+ SANE_Word val;
+ int items;
+ int i;
+
+ items = opt->constraint.word_list[0];
+
+ bestdpi = opt->constraint.word_list[1];
+ if (opt->type == SANE_TYPE_FIXED)
+ {
+ bestdpi = SANE_UNFIX(bestdpi);
+ }
+
+ diff = abs(bestdpi - dpi);
+
+ for (i=1; i<=items; i++)
+ {
+ val = opt->constraint.word_list[i];
+ if (opt->type == SANE_TYPE_FIXED)
+ {
+ val = SANE_UNFIX(val);
+ }
+
+ if (abs(val - dpi) < diff)
+ {
+ diff = abs(val - dpi);
+ bestdpi = val;
+ }
+ }
+ }
+ else
+ {
+ DBG(DBG_error, "find_best_resolution: %s %d\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
+ return -1; /* error */
+ }
+
+ return bestdpi;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_set_resolution(int well_known_option, double resolution)
+{
+ const SANE_Option_Descriptor *opt;
+ double bestdpi;
+ SANE_Word dpi;
+
+ DBG(DBG_proc, "xsane_set_resolution\n");
+
+ opt = xsane_get_option_descriptor(xsane.dev, well_known_option);
+
+ if (!opt)
+ {
+ return -1; /* option does not exits */
+ }
+
+ if (!SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ return -1; /* option is not active */
+ }
+
+ bestdpi = xsane_find_best_resolution(well_known_option, resolution);
+
+ if (bestdpi < 0)
+ {
+ DBG(DBG_error, "set_resolution: %s\n", ERR_FAILED_SET_RESOLUTION);
+ return -1;
+ }
+
+ switch (opt->type)
+ {
+ case SANE_TYPE_INT:
+ dpi = bestdpi;
+ break;
+
+ case SANE_TYPE_FIXED:
+ dpi = SANE_FIX(bestdpi);
+ break;
+
+ default:
+ DBG(DBG_error, "set_resolution: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
+ return 1; /* error */
+ }
+
+ xsane_control_option(xsane.dev, well_known_option, SANE_ACTION_SET_VALUE, &dpi, 0);
+ return 0; /* everything is ok */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_set_all_resolutions(void)
+{
+ int printer_resolution;
+
+ DBG(DBG_proc, "xsane_set_all_resolutions\n");
+
+#if 0
+ xsane_set_resolution(xsane.well_known.dpi_y, xsane.resolution_y); /* set y resolution if possible */
+ if (xsane_set_resolution(xsane.well_known.dpi_x, xsane.resolution_x)) /* set x resolution if possible */
+ {
+ xsane_set_resolution(xsane.well_known.dpi, xsane.resolution); /* set common resolution if necessary */
+ xsane.resolution_x = xsane.resolution;
+ xsane.resolution_y = xsane.resolution;
+ }
+#else
+ if (xsane_set_resolution(xsane.well_known.dpi_y, xsane.resolution_y)) /* set y resolution if possible */
+ {
+ xsane_set_resolution(xsane.well_known.dpi, xsane.resolution); /* set common resolution if necessary */
+ xsane.resolution_x = xsane.resolution;
+ xsane.resolution_y = xsane.resolution;
+ }
+ else
+ {
+ xsane_set_resolution(xsane.well_known.dpi_x, xsane.resolution_x); /* set x resolution if possible */
+ }
+#endif
+
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_GRAY:
+ if (xsane.param.depth == 1)
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->lineart_resolution;
+ }
+ else
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->grayscale_resolution;
+ }
+ break;
+
+ case SANE_FRAME_RGB:
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ default:
+ printer_resolution = preferences.printer[preferences.printernr]->color_resolution;
+ break;
+ }
+
+ xsane.zoom = xsane.resolution / printer_resolution;
+ xsane.zoom_x = xsane.resolution_x / printer_resolution;
+ xsane.zoom_y = xsane.resolution_y / printer_resolution;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_define_maximum_output_size()
+{
+ const SANE_Option_Descriptor *opt;
+
+ DBG(DBG_proc, "xsane_define_maximum_output_size\n");
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.coord[0]);
+
+ if ( (opt) && (opt->unit== SANE_UNIT_MM) )
+ {
+ switch(xsane.xsane_mode)
+ {
+ case XSANE_SAVE:
+
+ xsane_define_output_filename();
+ xsane.xsane_output_format = xsane_identify_output_format(xsane.output_filename, 0);
+
+ preview_set_maximum_output_size(xsane.preview, INF, INF);
+ break;
+
+ case XSANE_VIEWER:
+ preview_set_maximum_output_size(xsane.preview, INF, INF);
+ break;
+
+ case XSANE_COPY:
+ if (preferences.psrotate) /* rotate: landscape */
+ {
+ preview_set_maximum_output_size(xsane.preview,
+ preferences.printer[preferences.printernr]->height / xsane.zoom_y,
+ preferences.printer[preferences.printernr]->width / xsane.zoom_x);
+ }
+ else /* do not rotate: portrait */
+ {
+ preview_set_maximum_output_size(xsane.preview,
+ preferences.printer[preferences.printernr]->width / xsane.zoom_x,
+ preferences.printer[preferences.printernr]->height / xsane.zoom_y);
+ }
+ break;
+
+ case XSANE_FAX:
+ preview_set_maximum_output_size(xsane.preview, preferences.fax_width, preferences.fax_height);
+ break;
+
+ case XSANE_MAIL:
+ preview_set_maximum_output_size(xsane.preview, INF, INF);
+ break;
+
+ default:
+ preview_set_maximum_output_size(xsane.preview, INF, INF);
+ }
+ }
+ else
+ {
+ preview_set_maximum_output_size(xsane.preview, INF, INF);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_close_dialog_callback(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *dialog_widget = data;
+
+ DBG(DBG_proc, "xsane_close_dialog_callback\n");
+
+ gtk_widget_destroy(dialog_widget);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int authorization_flag;
+
+void xsane_authorization_button_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_authorization_button_callback\n");
+
+ authorization_flag = (long) data;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+gint xsane_authorization_callback(SANE_String_Const resource,
+ SANE_Char username[SANE_MAX_USERNAME_LEN],
+ SANE_Char password[SANE_MAX_PASSWORD_LEN])
+{
+ GtkWidget *authorize_dialog, *vbox, *hbox, *button, *label;
+ GtkWidget *username_widget, *password_widget;
+ char buf[SANE_MAX_PASSWORD_LEN+SANE_MAX_USERNAME_LEN+128];
+ char *input;
+ char *resource_string;
+ int len;
+ int resource_len;
+ int secure_password_transmission = 0;
+ char password_filename[PATH_MAX];
+ struct stat password_stat;
+ FILE *password_file;
+ unsigned char md5digest[16];
+ int query_user = 1;
+
+ DBG(DBG_proc, "xsane_authorization_callback\n");
+
+ if (strstr(resource, "$MD5$") != NULL) /* secure password authorisation */
+ {
+ DBG(DBG_info, "xsane_authorization_callback: secure (MD5) password transmission requested\n");
+ secure_password_transmission = 1;
+ resource_len = strstr(resource, "$MD5$") - resource;
+ }
+ else
+ {
+ DBG(DBG_info, "xsane_authorization_callback: insecure password transmission requested\n");
+ resource_len = strlen(resource);
+ }
+ resource_string = alloca(resource_len+1);
+ snprintf(resource_string, resource_len+1, "%s", resource);
+
+ xsane_back_gtk_make_path(sizeof(password_filename), password_filename, NULL, NULL, "pass", NULL, NULL, XSANE_PATH_LOCAL_SANE);
+
+ /* if password transmission is secure and file ~/.sane/pass exists and it's permissions are x00 then
+ try to read username and pasword for resource from that file */
+ if ((stat(password_filename, &password_stat) == 0) && (secure_password_transmission))
+ {
+ if ((password_stat.st_mode & 63) != 0) /* 63 = 0x077 */
+ {
+ snprintf(buf, sizeof(buf), ERR_PASSWORD_FILE_INSECURE, password_filename);
+ xsane_back_gtk_error(buf, TRUE);
+ }
+ else /* ok, password file has secure permissions, we can use it */
+ {
+ password_file = fopen(password_filename, "r");
+
+ if (password_file)
+ {
+ DBG(DBG_info, "xsane authorization: opened %s as password file\n", password_filename);
+ /* file format: "username:password:resource" */
+ while (fgets(buf, sizeof(buf), password_file))
+ {
+ char *stored_username;
+ char *stored_password;
+ char *stored_resource;
+ char *marker;
+
+ marker = strrchr(buf, '\n');
+ if (marker)
+ {
+ *marker = 0; /* remove \n at end of read line */
+ }
+
+ marker = strrchr(buf, '\r');
+ if (marker)
+ {
+ *marker = 0; /* remove \r at end of read line (eg for windows file) */
+ }
+
+ marker = strchr(buf, ':');
+ if (marker)
+ {
+ stored_username = buf;
+ *marker = 0; /* set \0 to end of stored_username */
+ stored_password = marker + 1;
+
+ marker = strchr(stored_password, ':');
+ if (marker)
+ {
+ *marker = 0; /* set \0 to end of stored_password */
+ stored_resource = marker + 1;
+
+ if (strcmp(stored_resource, resource_string) == 0) /* password file resource equals requested resource */
+ {
+ strcpy(username, stored_username);
+ strcpy(password, stored_password);
+ query_user = 0;
+ }
+ }
+ }
+ }
+
+ fclose(password_file);
+ }
+ else
+ {
+ DBG(DBG_info, "xsane authorization: could not open existing password file %s\n", password_filename);
+ }
+ }
+ }
+ else
+ {
+ DBG(DBG_info, "xsane authorization: password file %s does not exist\n", password_filename);
+ }
+
+ if (query_user)
+ {
+ authorize_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_position(GTK_WINDOW(authorize_dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_policy(GTK_WINDOW(authorize_dialog), FALSE, FALSE, FALSE);
+ gtk_signal_connect(GTK_OBJECT(authorize_dialog), "delete_event",
+ GTK_SIGNAL_FUNC(xsane_authorization_button_callback), (void *) -1); /* -1 = cancel */
+ snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_AUTHORIZE);
+ gtk_window_set_title(GTK_WINDOW(authorize_dialog), buf);
+ xsane_set_window_icon(authorize_dialog, 0);
+
+ vbox = gtk_vbox_new(/* not homogeneous */ FALSE, 10); /* y-space between all box items */
+ gtk_container_add(GTK_CONTAINER(authorize_dialog), vbox);
+ gtk_widget_show(vbox);
+
+ /* print resourece string */
+ snprintf(buf, sizeof(buf), "\n\n%s %s", TEXT_AUTHORIZATION_REQ, resource_string);
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); /* y-space around authorization text */
+ gtk_widget_show(label);
+
+ /* print securety of password transmission */
+ if (secure_password_transmission)
+ {
+ snprintf(buf, sizeof(buf), "%s\n", TEXT_AUTHORIZATION_SECURE);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), "%s\n", TEXT_AUTHORIZATION_INSECURE);
+ }
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); /* y-space around authorization text */
+ gtk_widget_show(label);
+
+ /* ask for username */
+ hbox = gtk_hbox_new(FALSE, 10); /* x-space between label and input filed */
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); /* y-space around inner items */
+
+ label = gtk_label_new(TEXT_USERNAME);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10); /* x-space around label */
+ gtk_widget_show(label);
+
+ username_widget = gtk_entry_new_with_max_length(SANE_MAX_USERNAME_LEN-1);
+ gtk_widget_set_usize(username_widget, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(username_widget), "");
+ gtk_box_pack_end(GTK_BOX(hbox), username_widget, FALSE, FALSE, 10); /* x-space around input filed */
+ gtk_widget_show(username_widget);
+ gtk_widget_show(hbox);
+
+
+ /* ask for password */
+ hbox = gtk_hbox_new(FALSE, 10); /* x-space between label and input filed */
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); /* y-space around inner items */
+
+ label = gtk_label_new(TEXT_PASSWORD);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10); /* x-space around label */
+ gtk_widget_show(label);
+
+ password_widget = gtk_entry_new_with_max_length(SANE_MAX_PASSWORD_LEN-1);
+ gtk_entry_set_visibility(GTK_ENTRY(password_widget), FALSE); /* make entered text invisible */
+ gtk_widget_set_usize(password_widget, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(password_widget), "");
+ gtk_box_pack_end(GTK_BOX(hbox), password_widget, FALSE, FALSE, 10); /* x-space around input filed */
+ gtk_widget_show(password_widget);
+ gtk_widget_show(hbox);
+
+ /* buttons */
+ hbox = gtk_hbox_new(TRUE, 10); /* x-space between buttons */
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 10); /* y-space around buttons */
+
+ button = gtk_button_new_with_label(BUTTON_OK);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(xsane_authorization_button_callback), (void *) 1);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 10); /* x-space around OK-button */
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_CANCEL);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(xsane_authorization_button_callback), (void *) -1);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 10); /* x-space around cancel-button */
+ gtk_widget_show(button);
+
+ gtk_widget_show(hbox);
+
+ gtk_widget_show(authorize_dialog);
+
+
+ username[0]=0;
+ password[0]=0;
+
+ authorization_flag = 0;
+
+ /* wait for ok or cancel */
+ while (authorization_flag == 0)
+ {
+ gtk_main_iteration();
+ }
+
+ if (authorization_flag == 1) /* 1=ok, -1=cancel */
+ {
+ input = gtk_entry_get_text(GTK_ENTRY(username_widget));
+ len = strlen(input);
+ memcpy(username, input, len);
+ username[len] = 0;
+
+ input = gtk_entry_get_text(GTK_ENTRY(password_widget));
+ len = strlen(input);
+ memcpy(password, input, len);
+ password[len] = 0;
+ }
+ gtk_widget_destroy(authorize_dialog);
+ }
+
+ if (secure_password_transmission)
+ {
+ DBG(DBG_info, "xsane authorization: calculating md5digest of password\n");
+
+ snprintf(buf, sizeof(buf), "%s%s", (strstr(resource, "$MD5$")) + 5, password); /* random string from backend + password */
+ md5_buffer(buf, strlen(buf), md5digest); /* calculate md5digest */
+#if 0 /* makes problems with WIN32 */
+ memset(password, 0, SANE_MAX_PASSWORD_LEN); /* clear password */
+#endif
+
+ sprintf(password, "$MD5$%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
+ md5digest[0], md5digest[1], md5digest[2], md5digest[3],
+ md5digest[4], md5digest[5], md5digest[6], md5digest[7],
+ md5digest[8], md5digest[9], md5digest[10], md5digest[11],
+ md5digest[12], md5digest[13], md5digest[14], md5digest[15]);
+ }
+
+ return TRUE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_progress_cancel(GtkWidget *widget, gpointer data)
+{
+ void *cancel_data_pointer;
+ GtkFunction callback = (GtkFunction) data;
+
+ DBG(DBG_proc, "xsane_progress_cancel\n");
+
+ cancel_data_pointer = gtk_object_get_data(GTK_OBJECT(widget), "progress-cancel-data-pointer");
+
+ (callback)(cancel_data_pointer);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_progress_new(char *bar_text, char *info, GtkSignalFunc callback, int *cancel_data_pointer)
+{
+ DBG(DBG_proc, "xsane_progress_new\n");
+
+ gtk_label_set(GTK_LABEL(xsane.info_label), info);
+ gtk_progress_set_format_string(GTK_PROGRESS(xsane.progress_bar), bar_text);
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.progress_bar), 0.0);
+ gtk_widget_set_sensitive(GTK_WIDGET(xsane.cancel_button), TRUE);
+ gtk_object_set_data(GTK_OBJECT(xsane.cancel_button), "progress-cancel-data-pointer", cancel_data_pointer);
+ gtk_signal_connect(GTK_OBJECT(xsane.cancel_button), "clicked", (GtkSignalFunc) xsane_progress_cancel, callback);
+ xsane.cancel_callback = callback;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_progress_clear()
+{
+ DBG(DBG_proc, "xsane_progress_clear\n");
+
+ /* do not call xsane_update_param() here because it overrites the good scanning parameters with bad guessed ones */
+ gtk_progress_set_format_string(GTK_PROGRESS(xsane.progress_bar), "");
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.progress_bar), 0.0);
+ gtk_widget_set_sensitive(GTK_WIDGET(xsane.cancel_button), FALSE);
+
+ if (xsane.cancel_callback)
+ {
+ gtk_signal_disconnect_by_func(GTK_OBJECT(xsane.cancel_button), (GtkSignalFunc) xsane_progress_cancel, xsane.cancel_callback);
+ xsane.cancel_callback = 0;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_progress_update(gfloat newval)
+{
+ DBG(DBG_proc, "xsane_progress_update\n");
+
+ if (newval < 0.0)
+ {
+ newval = 0.0;
+ }
+
+ if (newval > 1.0)
+ {
+ newval = 1.0;
+ }
+
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(xsane.progress_bar), newval);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* add the scanner vendor´s logo if available */
+/* when the logo is not available use the xsane logo */
+GtkWidget *xsane_vendor_pixmap_new(GdkWindow *window, GtkWidget *parent)
+{
+ char filename[PATH_MAX];
+ GtkWidget *hbox, *vbox;
+ GtkWidget *pixmapwidget = NULL;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap = NULL;
+
+ if (xsane.devlist[xsane.selected_dev]->vendor)
+ {
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", NULL, NULL, xsane.devlist[xsane.selected_dev]->vendor, "-logo.xpm", XSANE_PATH_SYSTEM);
+ pixmap = gdk_pixmap_create_from_xpm(window, &mask, xsane.bg_trans, filename);
+ }
+
+ if (!pixmap) /* vendor logo not available, use backend logo */
+ {
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", NULL, NULL, xsane.backend, "-logo.xpm", XSANE_PATH_SYSTEM);
+ pixmap = gdk_pixmap_create_from_xpm(window, &mask, xsane.bg_trans, filename);
+ }
+
+ if (!pixmap) /* backend logo not available, use xsane logo */
+ {
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", NULL, NULL, "sane-xsane", "-logo.xpm", XSANE_PATH_SYSTEM);
+ pixmap = gdk_pixmap_create_from_xpm(window, &mask, xsane.bg_trans, filename);
+ }
+
+ if (pixmap) /* ok, we have a pixmap, so let´s show it */
+ {
+ vbox = gtk_vbox_new(FALSE, 0);
+ gtk_box_pack_end(GTK_BOX(parent), vbox, FALSE, FALSE, 0);
+ gtk_widget_show(vbox);
+
+ hbox = gtk_hbox_new(TRUE /* homogeneous */ , 2);
+ gtk_container_add(GTK_CONTAINER(vbox), hbox);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 0);
+ gtk_widget_show(hbox);
+
+ pixmapwidget = gtk_pixmap_new(pixmap, mask); /* now add the pixmap */
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE /* expand */, FALSE /* fill */, 2);
+ gdk_pixmap_unref(pixmap);
+ gtk_widget_show(pixmapwidget);
+ }
+
+ return pixmapwidget;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+GtkWidget *xsane_toggle_button_new_with_pixmap(GdkWindow *window, GtkWidget *parent, const char *xpm_d[], const char *desc,
+ int *state, void *xsane_toggle_button_callback)
+{
+ GtkWidget *button;
+ GtkWidget *pixmapwidget;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap;
+
+ DBG(DBG_proc, "xsane_toggle_button_new_with_pixmap\n");
+
+ button = gtk_toggle_button_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, desc);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(window, &mask, xsane.bg_trans, (gchar **) xpm_d);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_container_add(GTK_CONTAINER(button), pixmapwidget);
+ gtk_widget_show(pixmapwidget);
+ gdk_pixmap_unref(pixmap);
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *state);
+ gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_toggle_button_callback, (GtkObject *) state);
+ gtk_box_pack_start(GTK_BOX(parent), button, FALSE, FALSE, 0);
+ gtk_widget_show(button);
+
+ return button;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+GtkWidget *xsane_button_new_with_pixmap(GdkWindow *window, GtkWidget *parent, const char *xpm_d[], const char *desc,
+ void *xsane_button_callback, gpointer data)
+{
+ GtkWidget *button;
+ GtkWidget *pixmapwidget;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap;
+
+ DBG(DBG_proc, "xsane_button_new_with_pixmap\n");
+
+ button = gtk_button_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, desc);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(window, &mask, xsane.bg_trans, (gchar **) xpm_d);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_container_add(GTK_CONTAINER(button), pixmapwidget);
+ gtk_widget_show(pixmapwidget);
+ gdk_pixmap_unref(pixmap);
+
+ if (xsane_button_callback)
+ {
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_button_callback, data);
+ }
+ gtk_box_pack_start(GTK_BOX(parent), button, FALSE, FALSE, 0);
+ gtk_widget_show(button);
+
+ return(button);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_option_menu_lookup(GSGMenuItem menu_items[], const char *string)
+{
+ int i;
+
+ DBG(DBG_proc, "xsane_option_menu_lookup\n");
+
+ for (i = 0; strcmp(menu_items[i].label, string) != 0; ++i);
+ return i;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_option_menu_callback(GtkWidget *widget, gpointer data)
+{
+ GSGMenuItem *menu_item = data;
+ GSGDialogElement *elem = menu_item->elem;
+ const SANE_Option_Descriptor *opt;
+ int opt_num;
+ double dval;
+ SANE_Word val;
+ void *valp = &val;
+
+ DBG(DBG_proc, "xsane_option_menu_callback\n");
+
+ opt_num = elem - xsane.element;
+ opt = xsane_get_option_descriptor(xsane.dev, opt_num);
+ switch (opt->type)
+ {
+ case SANE_TYPE_INT:
+ sscanf(menu_item->label, "%d", &val);
+ break;
+
+ case SANE_TYPE_FIXED:
+ sscanf(menu_item->label, "%lg", &dval);
+ val = SANE_FIX(dval);
+ break;
+
+ case SANE_TYPE_STRING:
+ valp = menu_item->label;
+ break;
+
+ default:
+ DBG(DBG_error, "xsane_option_menu_callback: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
+ break;
+ }
+ xsane_back_gtk_set_option(opt_num, valp, SANE_ACTION_SET_VALUE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, int option_number, const char *desc,
+ void *option_menu_callback, SANE_Int settable, const gchar *widget_name)
+{
+ GtkWidget *option_menu, *menu, *item;
+ GSGMenuItem *menu_items;
+ GSGDialogElement *elem;
+ int i, num_items;
+
+ DBG(DBG_proc, "xsane_option_menu_new\n");
+
+ elem = xsane.element + option_number;
+
+ for (num_items = 0; str_list[num_items]; ++num_items);
+ menu_items = malloc(num_items * sizeof(menu_items[0]));
+
+ menu = gtk_menu_new();
+ if (widget_name)
+ {
+ gtk_widget_set_name(menu, widget_name);
+ }
+
+ for (i = 0; i < num_items; ++i)
+ {
+ item = gtk_menu_item_new_with_label(_BGT(str_list[i]));
+ gtk_container_add(GTK_CONTAINER(menu), item);
+
+ if (option_menu_callback)
+ {
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) option_menu_callback, menu_items + i);
+ }
+ else
+ {
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_option_menu_callback, menu_items + i);
+ }
+
+ gtk_widget_show(item);
+
+ menu_items[i].label = str_list[i];
+ menu_items[i].elem = elem;
+ menu_items[i].index = i;
+ }
+
+ option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, option_menu, desc);
+ gtk_box_pack_end(GTK_BOX(parent), option_menu, FALSE, FALSE, 2);
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(option_menu), xsane_option_menu_lookup(menu_items, val));
+
+ gtk_widget_show(option_menu);
+
+ gtk_widget_set_sensitive(option_menu, settable);
+
+ elem->widget = option_menu;
+ elem->menu_size = num_items;
+ elem->menu = menu_items;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_option_menu_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc,
+ char *str_list[], const char *val,
+ GtkObject **data, int option,
+ void *option_menu_callback, SANE_Int settable, const gchar *widget_name)
+{
+ GtkWidget *hbox;
+ GtkWidget *pixmapwidget;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap;
+
+ DBG(DBG_proc, "xsane_option_menu_new_with_pixmap\n");
+
+ hbox = gtk_hbox_new(FALSE, 5);
+ gtk_box_pack_start(parent, hbox, FALSE, FALSE, 0);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(window, &mask, xsane.bg_trans, (gchar **) xpm_d);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
+ gtk_widget_show(pixmapwidget);
+
+ xsane_option_menu_new(hbox, str_list, val, option, desc, option_menu_callback, settable, widget_name);
+ gtk_widget_show(hbox);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_scale_new(GtkBox *parent, char *labeltext, const char *desc,
+ float min, float max, float quant, float page_step, float page_size,
+ int digits, double *val, GtkObject **data, void *xsane_scale_callback, SANE_Int settable)
+{
+ GtkWidget *hbox;
+ GtkWidget *label;
+ GtkWidget *scale;
+
+ DBG(DBG_proc, "xsane_scale_new\n");
+
+ hbox = gtk_hbox_new(FALSE, 5);
+ gtk_box_pack_start(parent, hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new(labeltext);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+
+ *data = gtk_adjustment_new(*val, min, max, quant, page_step, page_size);
+ scale = gtk_hscale_new(GTK_ADJUSTMENT(*data));
+ xsane_back_gtk_set_tooltip(xsane.tooltips, scale, desc);
+ gtk_widget_set_usize(scale, 201, 0); /* minimum scale with = 201 pixels */
+ gtk_range_set_update_policy(GTK_RANGE(scale), preferences.gtk_update_policy);
+ /* GTK_UPDATE_CONTINUOUS, GTK_UPDATE_DISCONTINUOUS, GTK_UPDATE_DELAYED */
+ gtk_scale_set_value_pos(GTK_SCALE(scale), GTK_POS_TOP);
+ gtk_scale_set_digits(GTK_SCALE(scale), digits);
+ gtk_box_pack_end(GTK_BOX(hbox), scale, FALSE, TRUE, 5); /* make scale not sizeable */
+
+ if (xsane_scale_callback)
+ {
+ gtk_signal_connect(*data, "value_changed", (GtkSignalFunc) xsane_scale_callback, val);
+ }
+
+ gtk_widget_show(label);
+ gtk_widget_show(scale);
+ gtk_widget_show(hbox);
+
+ gtk_widget_set_sensitive(scale, settable);
+
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_scale_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc,
+ float min, float max, float quant, float page_step, float page_size,
+ int digits, double *val, GtkObject **data, int option, void *xsane_scale_callback, SANE_Int settable)
+{
+ GtkWidget *hbox;
+ GtkWidget *scale;
+ GtkWidget *pixmapwidget;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap;
+
+ DBG(DBG_proc, "xsane_scale_new_with_pixmap\n");
+
+ hbox = gtk_hbox_new(FALSE, 5);
+ gtk_box_pack_start(parent, hbox, FALSE, FALSE, 0);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(window, &mask, xsane.bg_trans, (gchar **) xpm_d);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
+
+ *data = gtk_adjustment_new(*val, min, max, quant, page_step, page_size);
+ scale = gtk_hscale_new(GTK_ADJUSTMENT(*data));
+ xsane_back_gtk_set_tooltip(xsane.tooltips, scale, desc);
+ gtk_widget_set_usize(scale, 201, 0); /* minimum scale with = 201 pixels */
+ gtk_range_set_update_policy(GTK_RANGE(scale), preferences.gtk_update_policy);
+ /* GTK_UPDATE_CONTINUOUS, GTK_UPDATE_DISCONTINUOUS, GTK_UPDATE_DELAYED */
+ gtk_scale_set_value_pos(GTK_SCALE(scale), GTK_POS_TOP);
+ gtk_scale_set_digits(GTK_SCALE(scale), digits);
+ gtk_box_pack_end(GTK_BOX(hbox), scale, TRUE, TRUE, 5); /* make scale sizeable */
+
+ if (xsane_scale_callback)
+ {
+ gtk_signal_connect(*data, "value_changed", (GtkSignalFunc) xsane_scale_callback, val);
+ }
+
+ gtk_widget_show(pixmapwidget);
+ gtk_widget_show(scale);
+ gtk_widget_show(hbox);
+
+ gtk_widget_set_sensitive(scale, settable);
+
+ gdk_pixmap_unref(pixmap);
+
+ if (option)
+ {
+ GSGDialogElement *elem;
+
+ elem=xsane.element + option;
+ elem->data = *data;
+ elem->widget = scale;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_separator_new(GtkWidget *xsane_parent, int dist)
+{
+ GtkWidget *xsane_separator;
+
+ DBG(DBG_proc, "xsane_separator_new\n");
+
+ xsane_separator = gtk_hseparator_new();
+ gtk_box_pack_start(GTK_BOX(xsane_parent), xsane_separator, FALSE, FALSE, dist);
+ gtk_widget_show(xsane_separator);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+GtkWidget *xsane_info_table_text_new(GtkWidget *table, gchar *text, int row, int colomn)
+{
+ GtkWidget *hbox, *label;
+
+ DBG(DBG_proc, "xsane_info_table_text_new\n");
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_table_attach_defaults(GTK_TABLE(table), hbox, row, row+1, colomn, colomn+1);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(text);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10);
+ gtk_widget_show(label);
+
+ return label;
+}
+/* ---------------------------------------------------------------------------------------------------------------------- */
+#if 0
+GtkWidget *xsane_info_text_new(GtkWidget *parent, gchar *text)
+{
+ GtkWidget *hbox, *label;
+
+ DBG(DBG_proc, "xsane_info_text_new\n");
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(parent), hbox, TRUE, TRUE, 5);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(text);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10);
+ gtk_widget_show(label);
+
+ return label;
+}
+#endif
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_refresh_dialog(void)
+{
+ DBG(DBG_proc, "xsane_refresh_dialog\n");
+
+ xsane_back_gtk_refresh_dialog();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* Update the info line with the latest size information and update histogram. */
+void xsane_update_param(void *arg)
+{
+ gchar buf[200];
+ const char *unit;
+
+ DBG(DBG_proc, "xsane_update_param\n");
+
+ if (!xsane.info_label)
+ {
+ return;
+ }
+
+ if (xsane.block_update_param) /* if we change more than one value, we only want to update all once */
+ {
+ return;
+ }
+
+ if (xsane.preview)
+ {
+ preview_update_surface(xsane.preview, 0);
+ }
+
+ if (sane_get_parameters(xsane.dev, &xsane.param) == SANE_STATUS_GOOD)
+ {
+ float size = (float) xsane.param.bytes_per_line * (float) xsane.param.lines;
+ int depth = xsane.param.depth;
+
+ if ( (depth == 16) && (preferences.reduce_16bit_to_8bit) )
+ {
+ depth = 8;
+ size /= 2;
+ }
+
+ unit = "B";
+
+ if (xsane.param.format >= SANE_FRAME_RED && xsane.param.format <= SANE_FRAME_BLUE)
+ {
+ size *= 3.0;
+ depth *= 3;
+ }
+ else if (xsane.param.format == SANE_FRAME_RGB)
+ {
+ depth *= 3;
+ }
+#ifdef SUPPORT_RGBA
+ else if (xsane.param.format == SANE_FRAME_RGBA)
+ {
+ depth *= 4;
+ }
+#endif
+
+ if (size >= 1024.0 * 1024.0)
+ {
+ size /= 1024.0 * 1024.0;
+ unit = "MB";
+ }
+ else if (size >= 1024.0)
+ {
+ size /= 1024.0;
+ unit = "KB";
+ }
+ snprintf(buf, sizeof(buf), "%d*%d*%d (%1.1f %s)", xsane.param.pixels_per_line, xsane.param.lines, depth, size, unit);
+
+ if (xsane.param.format == SANE_FRAME_GRAY)
+ {
+ xsane.xsane_colors = 1;
+ }
+#ifdef SUPPORT_RGBA
+ else if (xsane.param.format == SANE_FRAME_RGBA)
+ {
+ xsane.xsane_colors = 4;
+ }
+#endif
+ else /* RGB */
+ {
+ xsane.xsane_colors = 3;
+ }
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), TEXT_INVALID_PARAMS);
+ }
+
+ gtk_label_set(GTK_LABEL(xsane.info_label), buf);
+
+
+ if (xsane.preview->surface_unit == SANE_UNIT_MM)
+ {
+ double dx, dy;
+
+ unit = xsane_back_gtk_unit_string(xsane.preview->surface_unit);
+
+ dx = fabs(xsane.preview->selection.coordinate[2] - xsane.preview->selection.coordinate[0]) / preferences.length_unit;
+ dy = fabs(xsane.preview->selection.coordinate[3] - xsane.preview->selection.coordinate[1]) / preferences.length_unit;
+
+ snprintf(buf, sizeof(buf), "%1.2f %s x %1.2f %s", dx, unit, dy, unit);
+ gtk_progress_set_format_string(GTK_PROGRESS(xsane.progress_bar), buf);
+ }
+
+ xsane_update_histogram(TRUE /* update raw */);
+
+ preview_display_valid(xsane.preview);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_define_output_filename(void)
+{
+ char buffer[256];
+
+ DBG(DBG_proc, "xsane_define_output_filename\n");
+
+ if (xsane.output_filename)
+ {
+ free(xsane.output_filename);
+ xsane.output_filename = 0;
+ }
+
+ if (!xsane.force_filename)
+ {
+ if (xsane.filetype)
+ {
+ snprintf(buffer, sizeof(buffer), "%s%s", preferences.filename, xsane.filetype);
+ xsane.output_filename = strdup(buffer);
+ }
+ else
+ {
+ xsane.output_filename = strdup(preferences.filename);
+ }
+ }
+ else
+ {
+ xsane.output_filename = strdup(xsane.external_filename);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_identify_output_format(char *filename, char **ext)
+{
+ char *extension;
+ int output_format=-1;
+
+ DBG(DBG_proc, "xsane_identify_output_format\n");
+
+ extension = strrchr(filename, '.');
+ if (extension)
+ {
+ extension++; /* skip "." */
+ }
+
+ output_format = XSANE_UNKNOWN;
+
+ if (extension)
+ {
+ if (!strcasecmp(extension, "raw"))
+ {
+ if (xsane.param.depth == 16)
+ {
+ output_format = XSANE_RAW16;
+ }
+ }
+ else if ( (!strcasecmp(extension, "pnm")) || (!strcasecmp(extension, "ppm")) ||
+ (!strcasecmp(extension, "pgm")) || (!strcasecmp(extension, "pbm")) )
+ {
+ if (xsane.param.depth == 16)
+ {
+ output_format = XSANE_PNM16;
+ }
+ else
+ {
+ output_format = XSANE_PNM;
+ }
+ }
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+ else if (!strcasecmp(extension, "png"))
+ {
+ output_format = XSANE_PNG;
+ }
+#endif
+#endif
+#ifdef HAVE_LIBJPEG
+ else if ( (!strcasecmp(extension, "jpg")) || (!strcasecmp(extension, "jpeg")) )
+ {
+ output_format = XSANE_JPEG;
+ }
+#endif
+ else if (!strcasecmp(extension, "ps"))
+ {
+ output_format = XSANE_PS;
+ }
+#ifdef HAVE_LIBTIFF
+ else if ( (!strcasecmp(extension, "tif")) || (!strcasecmp(extension, "tiff")) )
+ {
+ output_format = XSANE_TIFF;
+ }
+#endif
+#ifdef SUPPORT_RGBA
+ else if (!strcasecmp(extension, "rgba"))
+ {
+ output_format = XSANE_RGBA;
+ }
+#endif
+ }
+
+ if (ext)
+ {
+ if (extension)
+ {
+ *ext = strdup(extension);
+ }
+ else
+ {
+ *ext = 0;
+ }
+ }
+
+ return output_format;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_change_working_directory(void)
+{
+ char filename[PATH_MAX];
+ char windowname[256];
+
+ DBG(DBG_proc, "xsane_change_working_directory\n");
+
+ xsane_set_sensitivity(FALSE);
+
+ sprintf(windowname, "%s %s %s", xsane.prog_name, WINDOW_CHANGE_WORKING_DIR, xsane.device_text);
+ if (getcwd(filename, sizeof(filename)))
+ {
+ xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, TRUE, FALSE, TRUE);
+ if (chdir(filename))
+ {
+ char buf[256];
+
+ snprintf(buf, sizeof(buf), "%s %s (%s).", ERR_CHANGE_WORKING_DIR, filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ xsane_set_sensitivity(TRUE);
+ return;
+ }
+ }
+
+ xsane_set_sensitivity(TRUE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int license_flag;
+static GtkWidget *license_dialog = NULL;
+
+static void xsane_license_button_callback(GtkWidget *widget, gpointer data)
+{
+ license_flag = (int) data;
+
+ DBG(DBG_proc ,"xsane_license_button_callback(%d)\n", license_flag);
+
+ gtk_widget_destroy(license_dialog);
+ license_dialog = NULL;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_display_license(int ask_for_accept)
+/* returns FALSE if accepted, TRUE if not accepted */
+{
+ GtkWidget *vbox, *hbox, *button, *label;
+ GtkWidget *text, *vscrollbar;
+ GtkAccelGroup *accelerator_group;
+ char buf[1024];
+ char filename[PATH_MAX];
+ FILE *infile;
+
+ DBG(DBG_proc, "xsane_display_license(%d)\n", ask_for_accept);
+
+ if (license_dialog) /* make sure the dialog is only opend once */
+ {
+ return 0;
+ }
+
+ license_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_widget_set_usize(license_dialog, 550, 580);
+ gtk_window_set_position(GTK_WINDOW(license_dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_policy(GTK_WINDOW(license_dialog), FALSE, TRUE, FALSE);
+ gtk_signal_connect(GTK_OBJECT(license_dialog), "delete_event",
+ GTK_SIGNAL_FUNC(xsane_license_button_callback), (void *) -1); /* -1 = cancel */
+ snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_LICENSE);
+ gtk_window_set_title(GTK_WINDOW(license_dialog), buf);
+ xsane_set_window_icon(license_dialog, 0);
+
+ accelerator_group = gtk_accel_group_new();
+ gtk_accel_group_attach(accelerator_group, GTK_OBJECT(license_dialog));
+
+ vbox = gtk_vbox_new(FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
+ gtk_container_add(GTK_CONTAINER(license_dialog), vbox);
+ gtk_widget_show(vbox);
+
+ /* display XSane copyright message */
+ snprintf(buf, sizeof(buf), "XSane %s %s\n"
+ "%s %s\n"
+ "\n"
+ "%s\n"
+ "%s %s\n"
+ "%s %s\n",
+ TEXT_VERSION, XSANE_VERSION,
+ XSANE_COPYRIGHT_SIGN, XSANE_COPYRIGHT_TXT,
+ TEXT_GPL,
+ TEXT_HOMEPAGE, XSANE_HOMEPAGE,
+ TEXT_EMAIL, XSANE_EMAIL);
+
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
+ gtk_widget_show(label);
+
+ /* add hbox with text and scrollbar to display the license text */
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 4);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);
+ gtk_widget_show(hbox);
+
+ /* Create the GtkText widget */
+ text = gtk_text_new(NULL, NULL);
+ gtk_text_set_editable(GTK_TEXT(text), FALSE); /* text is not editable */
+ gtk_text_set_word_wrap(GTK_TEXT(text), TRUE); /* wrap complete words */
+ gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 0);
+ gtk_widget_show(text);
+
+ /* Add a vertical scrollbar to the GtkText widget */
+ vscrollbar = gtk_vscrollbar_new(GTK_TEXT(text)->vadj);
+ gtk_box_pack_start(GTK_BOX(hbox), vscrollbar, FALSE, FALSE, 0);
+ gtk_widget_show(vscrollbar);
+
+ /* Freeze the text widget, ready for multiple updates */
+ gtk_text_freeze(GTK_TEXT(text));
+
+ /* Load the file text.c into the text window */
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane-license", 0, ".txt", XSANE_PATH_SYSTEM);
+ infile = fopen(filename, "r");
+
+ if (infile)
+ {
+ char buffer[4096];
+ int nchars;
+
+ while (!feof(infile))
+ {
+ nchars = fread(buffer, 1, 4096, infile);
+ gtk_text_insert(GTK_TEXT(text), NULL, NULL, NULL, buffer, nchars);
+ }
+
+ fclose(infile);
+ }
+ else
+ {
+ DBG(DBG_error0, "ERROR: license text not found. Looks like xsane is not installed correct.\n");
+ return TRUE;
+ }
+
+ /* Thaw the text widget, allowing the updates to become visible */
+ gtk_text_thaw(GTK_TEXT(text));
+
+
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 4);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+ if (ask_for_accept) /* show accept + not accept buttons */
+ {
+ button = gtk_button_new_with_label(BUTTON_ACCEPT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_license_button_callback, (void *) 0 /* accept */);
+ gtk_container_add(GTK_CONTAINER(hbox), button);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_NOT_ACCEPT);
+ gtk_widget_add_accelerator(button, "clicked", accelerator_group, GDK_Escape, 0, GTK_ACCEL_LOCKED);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_license_button_callback, (void *) 1 /* not accept */);
+ gtk_container_add(GTK_CONTAINER(hbox), button);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+ }
+ else /* show close button */
+ {
+ button = gtk_button_new_with_label(BUTTON_CLOSE);
+ gtk_widget_add_accelerator(button, "clicked", accelerator_group, GDK_Escape, 0, GTK_ACCEL_LOCKED);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_license_button_callback, (void *) 0 /* ok = accept */);
+ gtk_container_add(GTK_CONTAINER(hbox), button);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+ }
+
+ gtk_widget_show(hbox);
+ gtk_widget_show(vbox);
+ gtk_widget_show(license_dialog);
+
+ if (ask_for_accept == 0) /* do not ask for accept */
+ {
+ return 0;
+ }
+
+ license_flag = -255;
+
+ while(license_flag == -255)
+ {
+ gtk_main_iteration(); /* allow gtk to react to user action */
+ }
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ return license_flag;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_widget_get_uposition(GtkWidget *gtk_window, gint *x, gint *y)
+{
+ if (xsane.get_deskrelative_origin)
+ {
+ DBG(DBG_proc, "xsane_widget_get_uposition(deskrelative)\n");
+ gdk_window_get_deskrelative_origin(gtk_window->window, x, y);
+ }
+ else
+ {
+ DBG(DBG_proc, "xsane_widget_get_uposition(root)\n");
+ gdk_window_get_root_origin(gtk_window->window, x, y);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_widget_test_uposition(GtkWidget *gtk_window)
+{
+ gint x, y, x_orig, y_orig;
+
+ DBG(DBG_proc, "xsane_widget_test_uposition\n");
+
+ gtk_widget_realize(gtk_window);
+
+ while (!GTK_WIDGET_REALIZED(gtk_window) || (gtk_events_pending()))
+ {
+ gtk_main_iteration();
+ }
+
+ xsane_widget_get_uposition(gtk_window, &x, &y);
+ xsane_widget_get_uposition(gtk_window, &x, &y);
+
+ DBG(DBG_info, "xsane_widget_test_uposition: original position = %d, %d\n", x, y);
+
+ x_orig = x;
+ y_orig = y;
+ gtk_widget_set_uposition(gtk_window, x, y);
+
+ xsane_widget_get_uposition(gtk_window, &x, &y);
+ DBG(DBG_info, "xsane_widget_test_uposition: new position = %d, %d\n", x, y);
+
+ if ( (x != x_orig) || (y != y_orig) )
+ {
+ DBG(DBG_proc, "xsane_widget_test_uposition: using deskrelative function\n");
+ xsane.get_deskrelative_origin = 1;
+ }
+ else
+ {
+ DBG(DBG_proc, "xsane_widget_test_uposition: using root function\n");
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/frontend/xsane-front-gtk.h b/src/xsane-front-gtk.h
index 600fa28..b894b06 100644
--- a/frontend/xsane-front-gtk.h
+++ b/src/xsane-front-gtk.h
@@ -2,8 +2,8 @@
xsane-front-gtk.h
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -32,8 +32,10 @@
/* ---------------------------------------------------------------------------------------------------------------------- */
+extern int xsane_parse_options(char *options, char *argv[]);
extern void xsane_get_bounds(const SANE_Option_Descriptor *opt, double *minp, double *maxp);
-extern int xsane_set_resolution(int well_known_option, int resolution);
+extern double xsane_find_best_resolution(int well_known_option, double dpi);
+extern int xsane_set_resolution(int well_known_option, double resolution);
extern void xsane_set_all_resolutions(void);
extern void xsane_define_maximum_output_size();
extern void xsane_close_dialog_callback(GtkWidget *widget, gpointer data);
@@ -42,30 +44,38 @@ extern gint xsane_authorization_callback(SANE_String_Const resource,
SANE_Char username[SANE_MAX_USERNAME_LEN],
SANE_Char password[SANE_MAX_PASSWORD_LEN]);
extern void xsane_progress_cancel(GtkWidget *widget, gpointer data);
-extern XsaneProgress_t *xsane_progress_new(char *title, char *text, GtkSignalFunc callback, gpointer callback_data);
-extern void xsane_progress_free(XsaneProgress_t *p);
-extern void xsane_progress_update(XsaneProgress_t *p, gfloat newval);
-extern void xsane_toggle_button_new_with_pixmap(GtkWidget *parent, const char *xpm_d[], const char *desc,
+extern void xsane_progress_new(char *bar_text, char *info, GtkSignalFunc callback, int *cancel_data_pointer);
+extern void xsane_progress_update(gfloat newval);
+extern void xsane_progress_clear();
+extern GtkWidget *xsane_vendor_pixmap_new(GdkWindow *window, GtkWidget *parent);
+extern GtkWidget *xsane_toggle_button_new_with_pixmap(GdkWindow *window, GtkWidget *parent, const char *xpm_d[], const char *desc,
int *state, void *xsane_toggle_button_callback);
-extern GtkWidget *xsane_button_new_with_pixmap(GtkWidget *parent, const char *xpm_d[], const char *desc,
+extern GtkWidget *xsane_button_new_with_pixmap(GdkWindow *window, GtkWidget *parent, const char *xpm_d[], const char *desc,
void *xsane_button_callback, gpointer data);
extern void xsane_pixmap_new(GtkWidget *parent, char *title, int width, int height, XsanePixmap *hist);
extern void xsane_option_menu_new(GtkWidget *parent, char *str_list[], const char *val, int option_number, const char *desc,
void *option_menu_callback, SANE_Int settable, const gchar *widget_name);
-extern void xsane_option_menu_new_with_pixmap(GtkBox *parent, const char *xpm_d[], const char *desc,
+extern void xsane_option_menu_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc,
char *str_list[], const char *val,
GtkObject **data, int option,
void *option_menu_callback, SANE_Int settable, const gchar *widget_name);
extern void xsane_scale_new(GtkBox *parent, char *labeltext, const char *desc,
- float min, float max, float quant, float step, float xxx,
+ float min, float max, float quant, float page_step, float page_size,
int digits, double *val, GtkObject **data, void *xsane_scale_callback, SANE_Int settable);
-extern void xsane_scale_new_with_pixmap(GtkBox *parent, const char *xpm_d[], const char *desc,
- float min, float max, float quant, float step, float xxx, int digits,
+extern void xsane_scale_new_with_pixmap(GdkWindow *window, GtkBox *parent, const char *xpm_d[], const char *desc,
+ float min, float max, float quant, float page_step, float page_size, int digits,
double *val, GtkObject **data, int option, void *xsane_scale_callback, SANE_Int settable);
extern void xsane_separator_new(GtkWidget *xsane_parent, int dist);
extern GtkWidget *xsane_info_table_text_new(GtkWidget *table, gchar *text, int row, int colomn);
extern GtkWidget *xsane_info_text_new(GtkWidget *parent, gchar *text);
-extern void xsane_refresh_dialog(void *nothing);
+extern void xsane_refresh_dialog(void);
+extern void xsane_update_param(void *arg);
+extern void xsane_define_output_filename(void);
+extern int xsane_identify_output_format(char *filename, char **ext);
+extern void xsane_change_working_directory(void);
+extern int xsane_display_license(int ask_for_accept);
+extern void xsane_widget_get_uposition(GtkWidget *gtk_window, gint *x, gint *y);
+extern void xsane_widget_test_uposition(GtkWidget *gtk_window);
/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/src/xsane-gamma.c b/src/xsane-gamma.c
new file mode 100644
index 0000000..d47f6b7
--- /dev/null
+++ b/src/xsane-gamma.c
@@ -0,0 +1,2504 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-gamma.c
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#include "xsane.h"
+#include "xsane-back-gtk.h"
+#include "xsane-front-gtk.h"
+#include "xsane-preferences.h"
+#include "xsane-preview.h"
+#include "xsane-save.h"
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+#include <png.h>
+#include <zlib.h>
+#endif
+#endif
+
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* forward declarations: */
+
+void xsane_clear_histogram(XsanePixmap *hist);
+static void xsane_draw_histogram_with_points(XsanePixmap *hist,
+ SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue,
+ int show_red, int show_green, int show_blue, int show_inten, double scale);
+static void xsane_draw_histogram_with_lines(XsanePixmap *hist,
+ SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue,
+ int show_red, int show_green, int show_blue, int show_inten, double scale);
+void xsane_draw_slider_level(XsaneSlider *slider);
+static void xsane_set_slider(XsaneSlider *slider, double min, double mid, double max);
+void xsane_update_slider(XsaneSlider *slider);
+void xsane_update_sliders(void);
+static gint xsane_slider_callback(GtkWidget *widget, GdkEvent *event, XsaneSlider *slider);
+void xsane_create_slider(XsaneSlider *slider);
+void xsane_create_histogram(GtkWidget *parent, const char *title, int width, int height, XsanePixmap *hist);
+void xsane_get_free_gamma_curve(gfloat *free_color_gamma_data, SANE_Int *gammadata,
+ int negative, double gamma, double brightness, double contrast,
+ int len, int maxout);
+static void xsane_calculate_auto_enhancement(SANE_Int *count_raw,
+ SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue);
+void xsane_calculate_raw_histogram(void);
+void xsane_calculate_enh_histogram(void);
+void xsane_update_histogram(int update_raw);
+void xsane_histogram_toggle_button_callback(GtkWidget *widget, gpointer data);
+void xsane_create_preview_threshold_curve(u_char *gammadata, double threshold, int numbers);
+void xsane_create_preview_gamma_curve(u_char *gammadata, int negative, double gamma,
+ double brightness, double contrast,
+ double medium_shadow, double medium_highlight, double medium_gamma,
+ int numbers);
+void xsane_create_gamma_curve(SANE_Int *gammadata,
+ int negative, double gamma, double brightness, double contrast,
+ double medium_shadow, double medium_highlight, double medium_gamma,
+ int numbers, int maxout);
+void xsane_update_gamma_curve(int update_raw);
+static void xsane_enhancement_update(void);
+static void xsane_gamma_to_histogram(double *min, double *mid, double *max,
+ double contrast, double brightness, double gamma);
+void xsane_enhancement_by_gamma(void);
+void xsane_enhancement_restore_default(void);
+void xsane_enhancement_restore(void);
+void xsane_enhancement_store(void);
+static int xsane_histogram_to_gamma(XsaneSlider *slider, double *contrast, double contrast_offset, double *brightness, double brightness_offset, double *gamma, double gamma_multiplier);
+void xsane_enhancement_by_histogram(int update_gamma);
+static gint xsane_histogram_win_delete(GtkWidget *widget, gpointer data);
+void xsane_create_histogram_dialog(const char *devicetext);
+#ifdef HAVE_WORKING_GTK_GAMMACURVE
+static gint xsane_gamma_win_delete(GtkWidget *widget, gpointer data);
+#endif
+void xsane_create_gamma_dialog(const char *devicetext);
+void xsane_update_gamma_dialog(void);
+void xsane_set_auto_enhancement(void);
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_clear_histogram(XsanePixmap *hist)
+{
+ GdkRectangle rect;
+
+ DBG(DBG_proc, "xsane_clear_histogram\n");
+
+ if(hist->pixmap)
+ {
+ rect.x=0;
+ rect.y=0;
+ rect.width = HIST_WIDTH;
+ rect.height = HIST_HEIGHT;
+
+ gdk_draw_rectangle(hist->pixmap, xsane.gc_backg, TRUE, 0, 0, HIST_WIDTH, HIST_HEIGHT);
+ gtk_widget_draw(hist->pixmapwid, &rect);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_draw_histogram_with_points(XsanePixmap *hist,
+ SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue,
+ int show_red, int show_green, int show_blue, int show_inten, double scale)
+{
+ GdkRectangle rect;
+ int i;
+ int inten, red, green, blue;
+
+ DBG(DBG_proc, "xsane_draw_histogram_with_points\n");
+
+#define XD 1
+#define YD 2
+
+ if(hist->pixmap)
+ {
+ rect.x=0;
+ rect.y=0;
+ rect.width = HIST_WIDTH;
+ rect.height = HIST_HEIGHT;
+
+ gdk_draw_rectangle(hist->pixmap, xsane.gc_backg, TRUE, 0, 0, HIST_WIDTH, HIST_HEIGHT);
+
+ red = 0;
+ green = 0;
+ blue = 0;
+
+ for (i=0; i < HIST_WIDTH; i++)
+ {
+ inten = show_inten * count[i] * scale;
+
+ if (xsane.xsane_colors > 1)
+ {
+ red = show_red * count_red[i] * scale;
+ green = show_green * count_green[i] * scale;
+ blue = show_blue * count_blue[i] * scale;
+ }
+
+ if (inten > HIST_HEIGHT)
+ inten = HIST_HEIGHT;
+
+ if (red > HIST_HEIGHT)
+ red = HIST_HEIGHT;
+
+ if (green > HIST_HEIGHT)
+ green = HIST_HEIGHT;
+
+ if (blue > HIST_HEIGHT)
+ blue = HIST_HEIGHT;
+
+
+ gdk_draw_rectangle(hist->pixmap, xsane.gc_red, TRUE, i, HIST_HEIGHT - red, XD, YD);
+ gdk_draw_rectangle(hist->pixmap, xsane.gc_green, TRUE, i, HIST_HEIGHT - green, XD, YD);
+ gdk_draw_rectangle(hist->pixmap, xsane.gc_blue, TRUE, i, HIST_HEIGHT - blue, XD, YD);
+ gdk_draw_rectangle(hist->pixmap, xsane.gc_black, TRUE, i, HIST_HEIGHT - inten, XD, YD);
+ }
+
+ gtk_widget_draw(hist->pixmapwid, &rect);
+ }
+}
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_draw_histogram_with_lines(XsanePixmap *hist,
+ SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue,
+ int show_red, int show_green, int show_blue, int show_inten, double scale)
+{
+ GdkRectangle rect;
+ int i, j, k;
+ int inten, red, green, blue;
+ int inten0=0, red0=0, green0=0, blue0=0;
+ int val[4];
+ int val2[4];
+ int color[4];
+ int val_swap;
+ int color_swap;
+
+ DBG(DBG_proc, "xsane_draw_histogram_with_lines\n");
+
+ if (hist->pixmap)
+ {
+ rect.x=0;
+ rect.y=0;
+ rect.width = HIST_WIDTH;
+ rect.height = HIST_HEIGHT;
+
+ gdk_draw_rectangle(hist->pixmap, xsane.gc_backg, TRUE, 0, 0, HIST_WIDTH, HIST_HEIGHT);
+
+ red = 0;
+ green = 0;
+ blue = 0;
+
+ for (i=0; i < HIST_WIDTH; i++)
+ {
+ inten = show_inten * count[i] * scale;
+
+ if (xsane.xsane_colors > 1)
+ {
+ red = show_red * count_red[i] * scale;
+ green = show_green * count_green[i] * scale;
+ blue = show_blue * count_blue[i] * scale;
+ }
+
+ if (inten > HIST_HEIGHT)
+ {
+ inten = HIST_HEIGHT;
+ }
+
+ if (red > HIST_HEIGHT)
+ {
+ red = HIST_HEIGHT;
+ }
+
+ if (green > HIST_HEIGHT)
+ {
+ green = HIST_HEIGHT;
+ }
+
+ if (blue > HIST_HEIGHT)
+ {
+ blue = HIST_HEIGHT;
+ }
+
+ val[0] = red; color[0] = 0;
+ val[1] = green; color[1] = 1;
+ val[2] = blue; color[2] = 2;
+ val[3] = inten; color[3] = 3;
+
+ for (j = 0; j < 3; j++)
+ {
+ for (k = j + 1; k < 4; k++)
+ {
+ if (val[j] < val[k])
+ {
+ val_swap = val[j];
+ color_swap = color[j];
+ val[j] = val[k];
+ color[j] = color[k];
+ val[k] = val_swap;
+ color[k] = color_swap;
+ }
+ }
+ }
+ val2[0] = val[1] + 1;
+ val2[1] = val[2] + 1;
+ val2[2] = val[3] + 1;
+ val2[3] = 0;
+
+ for (j = 0; j < 4; j++)
+ {
+ switch(color[j])
+ {
+ case 0: red0 = val2[j];
+ break;
+ case 1: green0 = val2[j];
+ break;
+ case 2: blue0 = val2[j];
+ break;
+ case 3: inten0 = val2[j];
+ break;
+ }
+ }
+
+
+ gdk_draw_line(hist->pixmap, xsane.gc_red, i, HIST_HEIGHT - red, i, HIST_HEIGHT - red0);
+ gdk_draw_line(hist->pixmap, xsane.gc_green, i, HIST_HEIGHT - green, i, HIST_HEIGHT - green0);
+ gdk_draw_line(hist->pixmap, xsane.gc_blue, i, HIST_HEIGHT - blue, i, HIST_HEIGHT - blue0);
+ gdk_draw_line(hist->pixmap, xsane.gc_black, i, HIST_HEIGHT - inten, i, HIST_HEIGHT - inten0);
+ }
+
+ gtk_widget_draw(hist->pixmapwid, &rect);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_establish_slider(XsaneSlider *slider)
+{
+ int x, y, pos, len;
+ guchar buf[XSANE_SLIDER_WIDTH*3];
+ GdkRectangle rect;
+
+ DBG(DBG_proc, "xsane_establish_slider\n");
+
+ buf[0] = buf[1] = buf[2] = 0;
+ buf[3+0] = buf[3+1] = buf[3+2]= 0;
+
+ for (x = 0; x < 256; x++)
+ {
+ buf[3*x+0+6] = x * slider->r;
+ buf[3*x+1+6] = x * slider->g;
+ buf[3*x+2+6] = x * slider->b;
+ }
+
+ buf[258*3+0] = 255 * slider->r;
+ buf[258*3+1] = 255 * slider->g;
+ buf[258*3+2] = 255 * slider->b;
+
+ buf[259*3+0] = 255 * slider->r;
+ buf[259*3+1] = 255 * slider->g;
+ buf[259*3+2] = 255 * slider->b;
+
+ for (y = 0; y < XSANE_SLIDER_HEIGHT; y++)
+ {
+ pos = slider->position[0]-y/2;
+ len = y;
+ if (pos<-2)
+ {
+ len = len + pos + 2;
+ pos = -2;
+ }
+ pos = pos * 3 + 6;
+
+ for (x = 0; x <= len; x++)
+ {
+ if ((x == 0) || (x == len) || (y == XSANE_SLIDER_HEIGHT-1))
+ {
+ buf[pos++] = 255;
+ buf[pos++] = 255;
+ buf[pos++] = 255;
+ }
+ else
+ {
+ buf[pos++] = 0;
+ buf[pos++] = 0;
+ buf[pos++] = 0;
+ }
+ }
+
+
+ pos = slider->position[1]-y/2;
+ len = y;
+ pos = pos * 3 + 6;
+
+ for (x = 0; x <= len; x++)
+ {
+ if ((x == 0) || (x == len) || (y == XSANE_SLIDER_HEIGHT-1))
+ {
+ buf[pos++] = 255;
+ buf[pos++] = 255;
+ buf[pos++] = 255;
+ }
+ else
+ {
+ buf[pos++] = 128;
+ buf[pos++] = 128;
+ buf[pos++] = 128;
+ }
+ }
+
+
+ pos = slider->position[2]-y/2;
+ len = y;
+ if (pos+len>257)
+ {
+ len = 257 - pos;
+ }
+ pos = pos * 3 + 6;
+
+ for (x=0; x<=len; x++)
+ {
+ if ((x == 0) || (x == len) || (y == XSANE_SLIDER_HEIGHT-1))
+ {
+ buf[pos++] = 0;
+ buf[pos++] = 0;
+ buf[pos++] = 0;
+ }
+ else
+ {
+ buf[pos++] = 255;
+ buf[pos++] = 255;
+ buf[pos++] = 255;
+ }
+ }
+
+ gtk_preview_draw_row(GTK_PREVIEW(slider->preview),buf, 0, y, XSANE_SLIDER_WIDTH);
+ }
+
+ rect.x=0;
+ rect.y=0;
+ rect.width = XSANE_SLIDER_WIDTH;
+ rect.height = XSANE_SLIDER_HEIGHT;
+
+ gtk_widget_draw(slider->preview, &rect);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_draw_slider_level(XsaneSlider *slider)
+{
+ int i;
+ guchar buf[XSANE_SLIDER_WIDTH*3];
+ GdkRectangle rect;
+
+ DBG(DBG_proc, "xsane_draw_slider_level\n");
+
+ buf[0] = buf[1] = buf[2] = 0;
+ buf[3+0] = buf[3+1] = buf[3+2]= 0;
+
+ for (i=0; i<256; i++)
+ {
+ buf[3*i+0+6] = i * slider->r;
+ buf[3*i+1+6] = i * slider->g;
+ buf[3*i+2+6] = i * slider->b;
+ }
+
+ buf[258*3+0] = 255 * slider->r;
+ buf[258*3+1] = 255 * slider->g;
+ buf[258*3+2] = 255 * slider->b;
+
+ buf[259*3+0] = 255 * slider->r;
+ buf[259*3+1] = 255 * slider->g;
+ buf[259*3+2] = 255 * slider->b;
+
+ for (i=0; i<XSANE_SLIDER_HEIGHT; i++)
+ {
+ gtk_preview_draw_row(GTK_PREVIEW(slider->preview),buf, 0, i, XSANE_SLIDER_WIDTH);
+ }
+
+ rect.x=0;
+ rect.y=0;
+ rect.width = XSANE_SLIDER_WIDTH;
+ rect.height = XSANE_SLIDER_HEIGHT;
+
+ gtk_widget_draw(slider->preview, &rect);
+}
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_set_slider(XsaneSlider *slider, double min, double mid, double max)
+{
+ DBG(DBG_proc, "xsane_set_slider\n");
+
+ slider->value[0] = min;
+ slider->value[1] = mid;
+ slider->value[2] = max;
+
+ slider->position[0] = min * 2.55;
+ slider->position[1] = mid * 2.55;
+ slider->position[2] = max * 2.55;
+
+ xsane_establish_slider(slider);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_update_slider(XsaneSlider *slider)
+{
+ DBG(DBG_proc, "xsane_update_slider\n");
+
+ slider->position[0] = 2.55 * slider->value[0];
+ slider->position[1] = 2.55 * slider->value[1];
+ slider->position[2] = 2.55 * slider->value[2];
+
+ xsane_establish_slider(slider);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_update_sliders()
+{
+ DBG(DBG_proc, "xsane_update_sliders\n");
+
+ xsane_update_slider(&xsane.slider_gray);
+
+ if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) )
+ {
+ xsane_update_slider(&xsane.slider_red);
+ xsane_update_slider(&xsane.slider_green);
+ xsane_update_slider(&xsane.slider_blue);
+
+ xsane.slider_gray.active &= ~XSANE_SLIDER_INACTIVE; /* mark slider active */
+ xsane.slider_red.active &= ~XSANE_SLIDER_INACTIVE; /* mark slider active */
+ xsane.slider_green.active &= ~XSANE_SLIDER_INACTIVE; /* mark slider active */
+ xsane.slider_blue.active &= ~XSANE_SLIDER_INACTIVE; /* mark slider active */
+ }
+ else
+ {
+ xsane_draw_slider_level(&xsane.slider_red); /* remove slider */
+ xsane_draw_slider_level(&xsane.slider_green); /* remove slider */
+ xsane_draw_slider_level(&xsane.slider_blue); /* remove slider */
+
+ xsane.slider_red.active = XSANE_SLIDER_INACTIVE; /* mark slider inactive */
+ xsane.slider_green.active = XSANE_SLIDER_INACTIVE; /* mark slider inactive */
+ xsane.slider_blue.active = XSANE_SLIDER_INACTIVE; /* mark slider inactive */
+
+ if (xsane.param.depth == 1)
+ {
+ xsane_draw_slider_level(&xsane.slider_gray); /* remove slider */
+ xsane.slider_gray.active = XSANE_SLIDER_INACTIVE; /* mark slider inactive */
+ }
+ else
+ {
+ xsane.slider_gray.active &= ~XSANE_SLIDER_INACTIVE; /* mark slider active */
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint xsane_slider_hold_event()
+{
+ DBG(DBG_proc, "xsane_slider_hold_event\n");
+
+ xsane_enhancement_by_histogram(TRUE);
+
+ gtk_timeout_remove(xsane.slider_timer);
+ xsane.slider_timer = 0;
+
+ if (xsane.slider_timer_restart)
+ {
+ xsane.slider_timer = gtk_timeout_add(XSANE_CONTINUOUS_HOLD_TIME, xsane_slider_hold_event, 0);
+ xsane.slider_timer_restart = FALSE;
+ }
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint xsane_slider_callback(GtkWidget *widget, GdkEvent *event, XsaneSlider *slider)
+{
+ GdkEventButton *button_event;
+ GdkEventMotion *motion_event;
+ int distance;
+ int i = 0;
+ static int update = FALSE;
+ static int x;
+
+ DBG(DBG_proc, "xsane_slider_callback\n");
+
+ if (slider->active == XSANE_SLIDER_INACTIVE)
+ {
+ return 0;
+ }
+
+ switch(event->type)
+ {
+ case GDK_BUTTON_PRESS:
+ gtk_grab_add(widget);
+ button_event = (GdkEventButton *) event;
+
+ distance = G_MAXINT;
+ for (i=0; i<3; i++)
+ {
+ if (fabs(button_event->x - slider->position[i]) < distance)
+ {
+ slider->active = i + 1;
+ distance = fabs(button_event->x - slider->position[i]);
+ }
+ }
+ if (distance<10)
+ {
+ x = button_event->x;
+ update = TRUE;
+ }
+ else
+ {
+ slider->active = XSANE_SLIDER_ACTIVE;
+ }
+ break;
+
+ case GDK_BUTTON_RELEASE:
+ gtk_grab_remove(widget);
+ xsane_enhancement_by_histogram(TRUE); /* slider->active must be unchanged !!! */
+ slider->active = XSANE_SLIDER_ACTIVE; /* ok, now we can reset it */
+ break;
+
+ case GDK_MOTION_NOTIFY:
+
+ motion_event = (GdkEventMotion *) event;
+ gdk_window_get_pointer(widget->window, &x, 0, 0);
+ update = TRUE;
+ break;
+
+ default:
+ break;
+ }
+
+ if (update)
+ {
+ update = FALSE;
+ switch(slider->active)
+ {
+ case 1:
+ slider->value[0] = (x-XSANE_SLIDER_OFFSET) / 2.55;
+ xsane_bound_double(&slider->value[0], 0.0, slider->value[1] - 1);
+ break;
+
+ case 2:
+ slider->value[1] = (x-XSANE_SLIDER_OFFSET) / 2.55;
+ xsane_bound_double(&slider->value[1], slider->value[0] + 1, slider->value[2] - 1);
+ break;
+
+ case 3:
+ slider->value[2] = (x-XSANE_SLIDER_OFFSET) / 2.55;
+ xsane_bound_double(&slider->value[2], slider->value[1] + 1, 100.0);
+ break;
+
+ default:
+ break;
+ }
+ xsane_set_slider(slider, slider->value[0], slider->value[1], slider->value[2]);
+
+ if (preferences.gtk_update_policy == GTK_UPDATE_CONTINUOUS)
+ {
+ /* call xsane_enhancement_by_histogram by event handler */
+ if (!xsane.slider_timer)
+ {
+ xsane.slider_timer = gtk_timeout_add(XSANE_CONTINUOUS_HOLD_TIME, xsane_slider_hold_event, 0);
+ }
+ else
+ {
+ xsane.slider_timer_restart = TRUE;
+ }
+ }
+ else if (preferences.gtk_update_policy == GTK_UPDATE_DELAYED)
+ {
+ if (xsane.slider_timer) /* hold timer active? then remove it, we had a motion */
+ {
+ gtk_timeout_remove(xsane.slider_timer);
+ }
+ /* call xsane_slider_hold_event if mouse is not moved for ??? ms */
+ xsane.slider_timer = gtk_timeout_add(XSANE_HOLD_TIME, xsane_slider_hold_event, 0);
+ }
+ }
+
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_create_slider(XsaneSlider *slider)
+{
+ DBG(DBG_proc, "xsane_create_slider\n");
+
+ slider->preview = gtk_preview_new(GTK_PREVIEW_COLOR);
+ gtk_preview_size(GTK_PREVIEW(slider->preview), XSANE_SLIDER_WIDTH, XSANE_SLIDER_HEIGHT);
+ gtk_widget_set_events(slider->preview, XSANE_SLIDER_EVENTS);
+ gtk_signal_connect(GTK_OBJECT(slider->preview), "event", GTK_SIGNAL_FUNC(xsane_slider_callback), slider);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_create_histogram(GtkWidget *parent, const char *title, int width, int height, XsanePixmap *hist)
+{
+ GdkBitmap *mask=NULL;
+
+ DBG(DBG_proc, "xsane_create_histogram\n");
+
+ hist->frame = gtk_frame_new(title);
+ hist->pixmap = gdk_pixmap_new(xsane.histogram_dialog->window, width, height, -1);
+ hist->pixmapwid = gtk_pixmap_new(hist->pixmap, mask);
+ gtk_container_add(GTK_CONTAINER(hist->frame), hist->pixmapwid);
+ gdk_draw_rectangle(hist->pixmap, xsane.gc_backg, TRUE, 0, 0, width, height);
+
+ gtk_box_pack_start(GTK_BOX(parent), hist->frame, FALSE, FALSE, 2);
+ gtk_widget_show(hist->pixmapwid);
+ gtk_widget_show(hist->frame);
+ }
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_calculate_auto_enhancement(SANE_Int *count_raw,
+ SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue)
+{ /* calculate white, medium and black values for auto enhancement */
+ int limit, limit_mid;
+ int points, points_mix, points_red, points_green, points_blue;
+ int min, mid, max;
+ int min_red, mid_red, max_red;
+ int min_green, mid_green, max_green;
+ int min_blue, mid_blue, max_blue;
+ int val;
+ int i;
+
+ DBG(DBG_proc, "xsane_calculate_auto_enhancement\n");
+
+ if (xsane.preview)
+ {
+ points = 0;
+ points_mix = 0;
+ points_red = 0;
+ points_green = 0;
+ points_blue = 0;
+
+ for (i=0; i<256; i++)
+ {
+ points += count_raw[i];
+ points_mix += 10 * log(1 + count_raw[i] + count_raw_red[i] + count_raw_green[i] + count_raw_blue[i]);
+ points_red += 10 * log(1 + count_raw_red[i]);
+ points_green += 10 * log(1 + count_raw_green[i]);
+ points_blue += 10 * log(1 + count_raw_blue[i]);
+ }
+
+ limit = 1 + points / 5000;
+
+ /* ----- gray ----- */
+
+ min = -1;
+ val = 0;
+ while ( (val/4 < limit) && (min < 253) )
+ {
+ min++;
+ val += count_raw[min] + count_raw_red[min] + count_raw_green[min] + count_raw_blue[min];
+ }
+
+ max = HIST_WIDTH;
+ val = 0;
+ while ( (val/4 < limit) && (max > min + 1) )
+ {
+ max--;
+ val += count_raw[max] + count_raw_red[max] + count_raw_green[max] + count_raw_blue[max];
+ }
+
+ limit_mid = points_mix / 2.0;
+
+ mid = 0;
+ val = 0;
+ while ( (val < limit_mid) && (mid < max - 1) )
+ {
+ mid++;
+ val += 10 * log(1 + count_raw[mid] + count_raw_red[mid] + count_raw_green[mid] + count_raw_blue[mid]);
+ }
+
+ xsane_bound_int(&mid, min, max);
+
+ /* ----- red ----- */
+
+ min_red = -1;
+ val = 0;
+ while ( (val < limit) && (min_red < 253) )
+ {
+ min_red++;
+ val += count_raw_red[min_red];
+ }
+
+ max_red = HIST_WIDTH;
+ val = 0;
+ while ( (val < limit) && (max_red > min_red + 1) )
+ {
+ max_red--;
+ val += count_raw_red[max_red];
+ }
+
+ limit_mid = points_red / 2.0;
+
+ mid_red = 0;
+ val = 0;
+ while ( (val < limit_mid) && (mid_red < max_red - 1) )
+ {
+ mid_red++;
+ val += 10 * log(1 + count_raw_red[mid_red]);
+ }
+
+ xsane_bound_int(&mid_red, min_red, max_red);
+
+ /* ----- green ----- */
+
+ min_green = -1;
+ val = 0;
+ while ( (val < limit) && (min_green < 253) )
+ {
+ min_green++;
+ val += count_raw_green[min_green];
+ }
+
+ max_green = HIST_WIDTH;
+ val = 0;
+ while ( (val < limit) && (max_green > min_green + 1) )
+ {
+ max_green--;
+ val += count_raw_green[max_green];
+ }
+
+ limit_mid = points_green / 2.0;
+
+ mid_green = 0;
+ val = 0;
+ while ( (val < limit_mid) && (mid_green < max_green - 1) )
+ {
+ mid_green++;
+ val += 10 * log(1 + count_raw_green[mid_green]);
+ }
+
+ xsane_bound_int(&mid_green, min_green, max_green);
+
+ /* ----- blue ----- */
+
+ min_blue = -1;
+ val = 0;
+ while ( (val < limit) && (min_blue < 253) )
+ {
+ min_blue++;
+ val += count_raw_blue[min_blue];
+ }
+
+ max_blue = HIST_WIDTH;
+ val = 0;
+ while ( (val < limit) && (max_blue > min_blue + 1) )
+ {
+ max_blue--;
+ val += count_raw_blue[max_blue];
+ }
+
+ limit_mid = points_blue / 2.0;
+
+ mid_blue = 0;
+ val = 0;
+ while ( (val < limit_mid) && (mid_blue < max_blue - 1) )
+ {
+ mid_blue++;
+ val += 10 * log(1 + count_raw_blue[mid_blue]);
+ }
+
+ xsane_bound_int(&mid_blue, min_blue, max_blue);
+
+ xsane.auto_white = max/2.55;
+ xsane.auto_gray = mid/2.55;
+ xsane.auto_black = min/2.55;
+
+ xsane.auto_white_red = max_red/2.55;
+ xsane.auto_gray_red = mid_red/2.55;
+ xsane.auto_black_red = min_red/2.55;
+
+ xsane.auto_white_green = max_green/2.55;
+ xsane.auto_gray_green = mid_green/2.55;
+ xsane.auto_black_green = min_green/2.55;
+
+ xsane.auto_white_blue = max_blue/2.55;
+ xsane.auto_gray_blue = mid_blue/2.55;
+ xsane.auto_black_blue = min_blue/2.55;
+ }
+
+ DBG(DBG_proc, "xsane.auto_white = %f\n", xsane.auto_white);
+ DBG(DBG_proc, "xsane.auto_gray = %f\n", xsane.auto_gray);
+ DBG(DBG_proc, "xsane.auto_black = %f\n", xsane.auto_black);
+ DBG(DBG_proc, "xsane.auto_white_red = %f\n", xsane.auto_white_red);
+ DBG(DBG_proc, "xsane.auto_gray_red = %f\n", xsane.auto_gray_red);
+ DBG(DBG_proc, "xsane.auto_black_red = %f\n", xsane.auto_black_red);
+ DBG(DBG_proc, "xsane.auto_white_green = %f\n", xsane.auto_white_green);
+ DBG(DBG_proc, "xsane.auto_gray_green = %f\n", xsane.auto_gray_green);
+ DBG(DBG_proc, "xsane.auto_black_green = %f\n", xsane.auto_black_green);
+ DBG(DBG_proc, "xsane.auto_white_blue = %f\n", xsane.auto_white_blue);
+ DBG(DBG_proc, "xsane.auto_gray_blue = %f\n", xsane.auto_gray_blue);
+ DBG(DBG_proc, "xsane.auto_black_blue = %f\n", xsane.auto_black_blue);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_calculate_raw_histogram(void)
+{
+ SANE_Int *count_raw;
+ SANE_Int *count_raw_red;
+ SANE_Int *count_raw_green;
+ SANE_Int *count_raw_blue;
+ int i;
+ int maxval_raw;
+ double scale_raw;
+
+ DBG(DBG_proc, "xsane_calculate_raw_histogram\n");
+
+ /* at first reset auto enhancement values */
+
+ xsane.auto_black = 0.0;
+ xsane.auto_gray = 50.0;
+ xsane.auto_white = 100.0;
+
+ xsane.auto_black_red = 0.0;
+ xsane.auto_gray_red = 50.0;
+ xsane.auto_white_red = 100.0;
+
+ xsane.auto_black_green = 0.0;
+ xsane.auto_gray_green = 50.0;
+ xsane.auto_white_green = 100.0;
+
+ xsane.auto_black_blue = 0.0;
+ xsane.auto_gray_blue = 50.0;
+ xsane.auto_white_blue = 100.0;
+
+ if (xsane.preview) /* preview window exists? */
+ {
+ count_raw = calloc(256, sizeof(SANE_Int));
+ count_raw_red = calloc(256, sizeof(SANE_Int));
+ count_raw_green = calloc(256, sizeof(SANE_Int));
+ count_raw_blue = calloc(256, sizeof(SANE_Int));
+
+ preview_calculate_raw_histogram(xsane.preview, count_raw, count_raw_red, count_raw_green, count_raw_blue);
+
+ if (xsane.param.depth > 1)
+ {
+ xsane_calculate_auto_enhancement(count_raw, count_raw_red, count_raw_green, count_raw_blue);
+ }
+
+ if (xsane.histogram_log) /* logarithmical display */
+ {
+ for (i=0; i<=255; i++)
+ {
+ count_raw[i] = (int) (50*log(1.0 + count_raw[i]));
+ count_raw_red[i] = (int) (50*log(1.0 + count_raw_red[i]));
+ count_raw_green[i] = (int) (50*log(1.0 + count_raw_green[i]));
+ count_raw_blue[i] = (int) (50*log(1.0 + count_raw_blue[i]));
+ }
+ }
+
+ maxval_raw = 1; /* we do not use 0 here because we divide through this varaible later */
+
+ /* first and last 10 values are not used for calculating maximum value */
+ for (i = 10 ; i < HIST_WIDTH - 10; i++)
+ {
+ if (count_raw[i] > maxval_raw) { maxval_raw = count_raw[i]; }
+ if (count_raw_red[i] > maxval_raw) { maxval_raw = count_raw_red[i]; }
+ if (count_raw_green[i] > maxval_raw) { maxval_raw = count_raw_green[i]; }
+ if (count_raw_blue[i] > maxval_raw) { maxval_raw = count_raw_blue[i]; }
+ }
+ scale_raw = 100.0/maxval_raw;
+
+ if (xsane.histogram_lines)
+ {
+ xsane_draw_histogram_with_lines(&xsane.histogram_raw,
+ count_raw, count_raw_red, count_raw_green, count_raw_blue,
+ xsane.histogram_red, xsane.histogram_green, xsane.histogram_blue,
+ xsane.histogram_int, scale_raw);
+ }
+ else
+ {
+ xsane_draw_histogram_with_points(&xsane.histogram_raw,
+ count_raw, count_raw_red, count_raw_green, count_raw_blue,
+ xsane.histogram_red, xsane.histogram_green, xsane.histogram_blue,
+ xsane.histogram_int, scale_raw);
+ }
+
+ free(count_raw_blue);
+ free(count_raw_green);
+ free(count_raw_red);
+ free(count_raw);
+ }
+ else
+ {
+ xsane_clear_histogram(&xsane.histogram_raw);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_calculate_enh_histogram(void)
+{
+ SANE_Int *count_enh;
+ SANE_Int *count_enh_red;
+ SANE_Int *count_enh_green;
+ SANE_Int *count_enh_blue;
+ int i;
+ int maxval_enh;
+ double scale_enh;
+
+ DBG(DBG_proc, "xsane_calculate_enh_histogram\n");
+
+ if (xsane.preview) /* preview window exists? */
+ {
+ count_enh = calloc(256, sizeof(SANE_Int));
+ count_enh_red = calloc(256, sizeof(SANE_Int));
+ count_enh_green = calloc(256, sizeof(SANE_Int));
+ count_enh_blue = calloc(256, sizeof(SANE_Int));
+
+ preview_calculate_enh_histogram(xsane.preview, count_enh, count_enh_red, count_enh_green, count_enh_blue);
+
+ if (xsane.histogram_log) /* logarithmical display */
+ {
+ for (i=0; i<=255; i++)
+ {
+ count_enh[i] = (int) (50*log(1.0 + count_enh[i]));
+ count_enh_red[i] = (int) (50*log(1.0 + count_enh_red[i]));
+ count_enh_green[i] = (int) (50*log(1.0 + count_enh_green[i]));
+ count_enh_blue[i] = (int) (50*log(1.0 + count_enh_blue[i]));
+ }
+ }
+
+ maxval_enh = 1;
+
+ /* first and last 10 values are not used for calculating maximum value */
+ for (i = 10 ; i < HIST_WIDTH - 10; i++)
+ {
+ if (count_enh[i] > maxval_enh) { maxval_enh = count_enh[i]; }
+ if (count_enh_red[i] > maxval_enh) { maxval_enh = count_enh_red[i]; }
+ if (count_enh_green[i] > maxval_enh) { maxval_enh = count_enh_green[i]; }
+ if (count_enh_blue[i] > maxval_enh) { maxval_enh = count_enh_blue[i]; }
+ }
+ scale_enh = 100.0/maxval_enh;
+
+ if (xsane.histogram_lines)
+ {
+ xsane_draw_histogram_with_lines(&xsane.histogram_enh,
+ count_enh, count_enh_red, count_enh_green, count_enh_blue,
+ xsane.histogram_red, xsane.histogram_green, xsane.histogram_blue, xsane.histogram_int, scale_enh);
+ }
+ else
+ {
+ xsane_draw_histogram_with_points(&xsane.histogram_enh,
+ count_enh, count_enh_red, count_enh_green, count_enh_blue,
+ xsane.histogram_red, xsane.histogram_green, xsane.histogram_blue, xsane.histogram_int, scale_enh);
+ }
+
+ free(count_enh_blue);
+ free(count_enh_green);
+ free(count_enh_red);
+ free(count_enh);
+ }
+ else
+ {
+ xsane_clear_histogram(&xsane.histogram_enh);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_update_histogram(int update_raw)
+{
+ DBG(DBG_proc, "xsane_update_histogram\n");
+
+ if (preferences.show_histogram)
+ {
+ if (update_raw)
+ {
+ xsane_calculate_raw_histogram();
+ }
+ xsane_calculate_enh_histogram();
+
+ gtk_widget_show(xsane.histogram_dialog);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_histogram_toggle_button_callback(GtkWidget *widget, gpointer data)
+{
+ int *valuep = data;
+
+ DBG(DBG_proc, "xsane_histogram_toggle_button_callback\n");
+
+ *valuep = (GTK_TOGGLE_BUTTON(widget)->active != 0);
+ xsane_update_histogram(TRUE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_create_preview_threshold_curve(u_char *gammadata, double threshold, int numbers)
+{
+ int i;
+ int maxin = numbers-1;
+ int threshold_level;
+
+ DBG(DBG_proc, "xsane_create_preview_threshold_curve\n");
+
+ xsane_bound_double(&threshold, 0.0, 100.0);
+ threshold_level = maxin * threshold / 100.0;
+
+ for (i=0; i < threshold_level; i++)
+ {
+ gammadata[i] = 0;
+ }
+
+ for (i=threshold_level; i <= maxin; i++)
+ {
+ gammadata[i] = 255;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_create_preview_gamma_curve(u_char *gammadata, int negative, double gamma,
+ double brightness, double contrast,
+ double medium_shadow, double medium_highlight, double medium_gamma,
+ int numbers)
+{
+ int i;
+ double midin;
+ double val;
+ double m;
+ double b;
+ int maxin = numbers-1;
+ double medium_m;
+ double medium_mid;
+
+ medium_m = 100.0/(medium_highlight - medium_shadow);
+ medium_mid = (medium_shadow + medium_highlight)/200.0 * maxin;
+
+ DBG(DBG_proc, "xsane_create_preview_gamma_curve(neg=%d, gam=%3.2f, bri=%3.2f, ctr=%3.2f, nrs=%d)\n",
+ negative, gamma, brightness, contrast, numbers);
+
+ if (contrast < -100.0)
+ {
+ contrast = -100.0;
+ }
+
+ midin = (int)(numbers / 2.0);
+
+ m = 1.0 + contrast/100.0;
+ b = (1.0 + brightness/100.0) * midin;
+
+ if (negative)
+ {
+ for (i=0; i <= maxin; i++)
+ {
+ val = ((double) i);
+
+ /* medium correction */
+ val = (val - medium_mid) * medium_m + midin;
+ xsane_bound_double(&val, 0.0, maxin);
+ val = maxin - val; /* invert */
+ val = maxin * pow( val/maxin, (1.0/medium_gamma) );
+
+ val = val - midin;
+
+ /* user correction */
+ val = val * m + b;
+ xsane_bound_double(&val, 0.0, maxin);
+
+ gammadata[i] = (u_char) (255 * pow( val/maxin, (1.0/gamma) ));
+ }
+ }
+ else /* positive */
+ {
+ for (i=0; i <= maxin; i++)
+ {
+ val = ((double) i);
+
+ /* medium correction */
+ val = (val - medium_mid) * medium_m + midin;
+ xsane_bound_double(&val, 0.0, maxin);
+ val = maxin * pow( val/maxin, (1.0/medium_gamma) );
+
+ val = val - midin;
+
+ /* user correction */
+ val = val * m + b;
+ xsane_bound_double(&val, 0.0, maxin);
+
+ gammadata[i] = (u_char) (255 * pow( val/maxin, (1.0/gamma) ));
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_create_gamma_curve(SANE_Int *gammadata,
+ int negative, double gamma, double brightness, double contrast,
+ double medium_shadow, double medium_highlight, double medium_gamma,
+ int numbers, int maxout)
+{
+ int i;
+ double midin;
+ double val;
+ double m;
+ double b;
+ double medium_m;
+ double medium_mid;
+ int maxin = numbers-1;
+
+ DBG(DBG_proc, "xsane_create_gamma_curve(neg=%d, gam=%3.2f, bri=%3.2f, ctr=%3.2f, "
+ "mshd=%3.2f, mhig=%3.2f, mgam=%3.2f, "
+ "nrs=%d, max=%d)\n",
+ negative, gamma, brightness, contrast,
+ medium_shadow, medium_highlight, medium_gamma,
+ numbers, maxout);
+
+ midin = (int)(numbers / 2.0);
+
+ if (contrast < -100.0)
+ {
+ contrast = -100.0;
+ }
+
+ medium_m = 100.0/(medium_highlight - medium_shadow);
+ medium_mid = (medium_shadow + medium_highlight)/200.0 * maxin;
+
+ m = 1.0 + contrast/100.0;
+ b = (1.0 + brightness/100.0) * midin;
+
+ if (negative)
+ {
+ for (i=0; i <= maxin; i++)
+ {
+ val = ((double) i);
+
+ /* medium correction */
+ val = (val - medium_mid) * medium_m + midin;
+ xsane_bound_double(&val, 0.0, maxin);
+ val = maxin - val; /* invert */
+ val = maxin * pow( val/maxin, (1.0/medium_gamma) );
+
+ val = val - midin;
+
+ /* user correction */
+ val = val * m + b;
+ xsane_bound_double(&val, 0.0, maxin);
+ gammadata[i] = maxout * pow( val/maxin, (1.0/gamma) );
+ }
+ }
+ else /* positive */
+ {
+ for (i=0; i <= maxin; i++)
+ {
+ val = ((double) i);
+
+ /* medium correction */
+ val = (val - medium_mid) * medium_m + midin;
+ xsane_bound_double(&val, 0.0, maxin);
+ val = maxin * pow( val/maxin, (1.0/medium_gamma) );
+
+ val = val - midin;
+
+ /* user correction */
+ val = val * m + b;
+ xsane_bound_double(&val, 0.0, maxin);
+ gammadata[i] = maxout * pow( val/maxin, (1.0/gamma) );
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_update_gamma_curve(int update_raw)
+{
+ DBG(DBG_proc, "xsane_update_gamma_curve\n");
+
+ if (xsane.preview)
+ {
+ if (!xsane.preview_gamma_data_red)
+ {
+ xsane.preview_gamma_size = pow(2, preferences.preview_gamma_input_bits);
+
+ xsane.preview_gamma_data_red = malloc(xsane.preview_gamma_size);
+ xsane.preview_gamma_data_green = malloc(xsane.preview_gamma_size);
+ xsane.preview_gamma_data_blue = malloc(xsane.preview_gamma_size);
+
+ xsane.histogram_gamma_data_red = malloc(xsane.preview_gamma_size);
+ xsane.histogram_gamma_data_green = malloc(xsane.preview_gamma_size);
+ xsane.histogram_gamma_data_blue = malloc(xsane.preview_gamma_size);
+
+ xsane.histogram_medium_gamma_data_red = malloc(xsane.preview_gamma_size);
+ xsane.histogram_medium_gamma_data_green = malloc(xsane.preview_gamma_size);
+ xsane.histogram_medium_gamma_data_blue = malloc(xsane.preview_gamma_size);
+ }
+
+ if (xsane.preview->calibration)
+ {
+ double pgamma_red;
+ double pgamma_green;
+ double pgamma_blue;
+
+ pgamma_red = preferences.preview_gamma * preferences.preview_gamma_red;
+ pgamma_green = preferences.preview_gamma * preferences.preview_gamma_green;
+ pgamma_blue = preferences.preview_gamma * preferences.preview_gamma_blue;
+
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_red, 0, pgamma_red,
+ 0.0, 0.0, 0.0, 100.0, 1.0, xsane.preview_gamma_size);
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_green, 0, pgamma_green,
+ 0.0, 0.0, 0.0, 100.0, 1.0, xsane.preview_gamma_size);
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_blue, 0, pgamma_blue,
+ 0.0, 0.0, 0.0, 100.0, 1.0, xsane.preview_gamma_size);
+ }
+ else if (xsane.param.depth == 1) /* for lineart mode with grayscale preview scan */
+ {
+ xsane_create_preview_threshold_curve(xsane.preview_gamma_data_red, xsane.threshold, xsane.preview_gamma_size);
+ xsane_create_preview_threshold_curve(xsane.preview_gamma_data_green, xsane.threshold, xsane.preview_gamma_size);
+ xsane_create_preview_threshold_curve(xsane.preview_gamma_data_blue, xsane.threshold, xsane.preview_gamma_size);
+
+ xsane_create_preview_threshold_curve(xsane.histogram_gamma_data_red, xsane.threshold, xsane.preview_gamma_size);
+ xsane_create_preview_threshold_curve(xsane.histogram_gamma_data_green, xsane.threshold, xsane.preview_gamma_size);
+ xsane_create_preview_threshold_curve(xsane.histogram_gamma_data_blue, xsane.threshold, xsane.preview_gamma_size);
+ }
+ else /* multi bit mode */
+ {
+ double pgamma_red = 1.0;
+ double pgamma_green = 1.0;
+ double pgamma_blue = 1.0;
+
+ if ((xsane.mode != XSANE_GIMP_EXTENSION) || (!preferences.disable_gimp_preview_gamma))
+ {
+ pgamma_red = preferences.preview_gamma * preferences.preview_gamma_red;
+ pgamma_green = preferences.preview_gamma * preferences.preview_gamma_green;
+ pgamma_blue = preferences.preview_gamma * preferences.preview_gamma_blue;
+ }
+
+
+#ifdef HAVE_WORKING_GTK_GAMMACURVE
+#if 1
+ gtk_curve_get_vector(GTK_CURVE(GTK_GAMMA_CURVE(xsane.gamma_curve_gray)->curve), 65536, xsane.free_gamma_data);
+#if 1
+{
+ int i;
+ for (i=0; i<100; i++)
+ {
+ printf("%1.6f ", xsane.free_gamma_data[i]);
+ if (i / 10.0 == i / 10)
+ {
+ printf("\n");
+ }
+ }
+ printf("\n");
+ for (i=65435; i<65536; i++)
+ {
+ printf("%1.6f ", xsane.free_gamma_data[i]);
+ if (i / 10.0 == i / 10)
+ {
+ printf("\n");
+ }
+ }
+ printf("\n");
+ printf("\n");
+}
+#endif
+ gtk_curve_get_vector(GTK_CURVE(GTK_GAMMA_CURVE(xsane.gamma_curve_red)->curve), 65536, xsane.free_gamma_data_red);
+ gtk_curve_get_vector(GTK_CURVE(GTK_GAMMA_CURVE(xsane.gamma_curve_green)->curve), 65536, xsane.free_gamma_data_green);
+ gtk_curve_get_vector(GTK_CURVE(GTK_GAMMA_CURVE(xsane.gamma_curve_blue)->curve), 65536, xsane.free_gamma_data_blue);
+#endif
+
+ xsane_get_free_gamma_curve(xsane.free_gamma_data_red, xsane.preview_gamma_data_red, xsane.negative,
+ xsane.gamma * xsane.gamma_red * pgamma_red,
+ xsane.brightness + xsane.brightness_red,
+ xsane.contrast + xsane.contrast_red, xsane.preview_gamma_size, 255);
+
+ xsane_get_free_gamma_curve(xsane.free_gamma_data_green, xsane.preview_gamma_data_green, xsane.negative,
+ xsane.gamma * xsane.gamma_green * pgamma_green,
+ xsane.brightness + xsane.brightness_green,
+ xsane.contrast + xsane.contrast_green, xsane.preview_gamma_size, 255);
+
+ xsane_get_free_gamma_curve(xsane.free_gamma_data_blue, xsane.preview_gamma_data_blue, xsane.negative,
+ xsane.gamma * xsane.gamma_blue * pgamma_blue,
+ xsane.brightness + xsane.brightness_blue,
+ xsane.contrast + xsane.contrast_blue , xsane.preview_gamma_size, 255);
+
+
+ xsane_get_free_gamma_curve(xsane.free_gamma_data_red, xsane.histogram_gamma_data_red, xsane.negative,
+ xsane.gamma * xsane.gamma_red,
+ xsane.brightness + xsane.brightness_red,
+ xsane.contrast + xsane.contrast_red, xsane.preview_gamma_size, 255);
+
+ xsane_get_free_gamma_curve(xsane.free_gamma_data_green, xsane.histogram_gamma_data_green, xsane.negative,
+ xsane.gamma * xsane.gamma_green,
+ xsane.brightness + xsane.brightness_green,
+ xsane.contrast + xsane.contrast_green, xsane.preview_gamma_size, 255);
+
+ xsane_get_free_gamma_curve(xsane.free_gamma_data_blue, xsane.histogram_gamma_data_blue, xsane.negative,
+ xsane.gamma * xsane.gamma_blue,
+ xsane.brightness + xsane.brightness_blue,
+ xsane.contrast + xsane.contrast_blue , xsane.preview_gamma_size, 255);
+#else
+ if ( ( ( (xsane.xsane_colors > 1) && xsane.scanner_gamma_color ) || /* color scan and gamma table for red, green and blue available */
+ xsane.scanner_gamma_gray ) && /* grayscale scan and gamma table for gray available */
+ (!xsane.no_preview_medium_gamma) ) /* do not use gamma table when disabled */
+ {
+ DBG(DBG_info, "creating preview gamma tables without medium correction\n");
+
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_red, xsane.negative,
+ xsane.gamma * xsane.gamma_red * pgamma_red,
+ xsane.brightness + xsane.brightness_red,
+ xsane.contrast + xsane.contrast_red,
+ 0.0, 100.0, 1.0,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_green, xsane.negative,
+ xsane.gamma * xsane.gamma_green * pgamma_green,
+ xsane.brightness + xsane.brightness_green,
+ xsane.contrast + xsane.contrast_green,
+ 0.0, 100.0, 1.0,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_blue, xsane.negative,
+ xsane.gamma * xsane.gamma_blue * pgamma_blue,
+ xsane.brightness + xsane.brightness_blue,
+ xsane.contrast + xsane.contrast_blue,
+ 0.0, 100.0, 1.0,
+ xsane.preview_gamma_size);
+
+
+ xsane_create_preview_gamma_curve(xsane.histogram_gamma_data_red, xsane.negative,
+ xsane.gamma * xsane.gamma_red,
+ xsane.brightness + xsane.brightness_red,
+ xsane.contrast + xsane.contrast_red,
+ 0.0, 100.0, 1.0,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_gamma_data_green, xsane.negative,
+ xsane.gamma * xsane.gamma_green,
+ xsane.brightness + xsane.brightness_green,
+ xsane.contrast + xsane.contrast_green,
+ 0.0, 100.0, 1.0,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_gamma_data_blue, xsane.negative,
+ xsane.gamma * xsane.gamma_blue,
+ xsane.brightness + xsane.brightness_blue,
+ xsane.contrast + xsane.contrast_blue,
+ 0.0, 100.0, 1.0,
+ xsane.preview_gamma_size);
+
+ if (update_raw) /* to speed up things here */
+ {
+ xsane_create_preview_gamma_curve(xsane.histogram_medium_gamma_data_red, xsane.negative,
+ 1.0, 0.0, 0.0, 0.0, 100.0, 1.0,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_medium_gamma_data_green, xsane.negative,
+ 1.0, 0.0, 0.0, 0.0, 100.0, 1.0,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_medium_gamma_data_blue, xsane.negative,
+ 1.0, 0.0, 0.0, 0.0, 100.0, 1.0,
+ xsane.preview_gamma_size);
+ }
+ }
+ else if (xsane.xsane_colors > 1) /* color scan, no color scanner gamma tables available */
+ {
+ DBG(DBG_info, "creating preview gamma tables with medium correction\n");
+
+ xsane.medium_changed = FALSE;
+
+ preview_display_valid(xsane.preview);
+
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_red, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_red * pgamma_red,
+ xsane.brightness + xsane.brightness_red,
+ xsane.contrast + xsane.contrast_red,
+ xsane.medium_shadow_red, xsane.medium_highlight_red, xsane.medium_gamma_red,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_green, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_green * pgamma_green,
+ xsane.brightness + xsane.brightness_green,
+ xsane.contrast + xsane.contrast_green,
+ xsane.medium_shadow_green, xsane.medium_highlight_green, xsane.medium_gamma_green,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_blue, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_blue * pgamma_blue,
+ xsane.brightness + xsane.brightness_blue,
+ xsane.contrast + xsane.contrast_blue,
+ xsane.medium_shadow_blue, xsane.medium_highlight_blue, xsane.medium_gamma_blue,
+ xsane.preview_gamma_size);
+
+
+ xsane_create_preview_gamma_curve(xsane.histogram_gamma_data_red, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_red,
+ xsane.brightness + xsane.brightness_red,
+ xsane.contrast + xsane.contrast_red,
+ xsane.medium_shadow_red, xsane.medium_highlight_red, xsane.medium_gamma_red,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_gamma_data_green, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_green,
+ xsane.brightness + xsane.brightness_green,
+ xsane.contrast + xsane.contrast_green,
+ xsane.medium_shadow_green, xsane.medium_highlight_green, xsane.medium_gamma_green,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_gamma_data_blue, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_blue,
+ xsane.brightness + xsane.brightness_blue,
+ xsane.contrast + xsane.contrast_blue,
+ xsane.medium_shadow_blue, xsane.medium_highlight_blue, xsane.medium_gamma_blue,
+ xsane.preview_gamma_size);
+
+
+ if (update_raw) /* to speed up things here */
+ {
+ xsane_create_preview_gamma_curve(xsane.histogram_medium_gamma_data_red, xsane.negative != xsane.medium_negative,
+ 1.0, 0.0, 0.0,
+ xsane.medium_shadow_red, xsane.medium_highlight_red, xsane.medium_gamma_red,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_medium_gamma_data_green, xsane.negative != xsane.medium_negative,
+ 1.0, 0.0, 0.0,
+ xsane.medium_shadow_green, xsane.medium_highlight_green, xsane.medium_gamma_green,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_medium_gamma_data_blue, xsane.negative != xsane.medium_negative,
+ 1.0, 0.0, 0.0,
+ xsane.medium_shadow_blue, xsane.medium_highlight_blue, xsane.medium_gamma_blue,
+ xsane.preview_gamma_size);
+ }
+ }
+ else /* grayscale scan, no gray scanner gamma table available */
+ {
+ DBG(DBG_info, "creating preview gamma tables with medium correction\n");
+
+ xsane.medium_changed = FALSE;
+
+ preview_display_valid(xsane.preview);
+
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_red, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_red * pgamma_red,
+ xsane.brightness + xsane.brightness_red,
+ xsane.contrast + xsane.contrast_red,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_green, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_green * pgamma_green,
+ xsane.brightness + xsane.brightness_green,
+ xsane.contrast + xsane.contrast_green,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.preview_gamma_data_blue, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_blue * pgamma_blue,
+ xsane.brightness + xsane.brightness_blue,
+ xsane.contrast + xsane.contrast_blue,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ xsane.preview_gamma_size);
+
+
+ xsane_create_preview_gamma_curve(xsane.histogram_gamma_data_red, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_red,
+ xsane.brightness + xsane.brightness_red,
+ xsane.contrast + xsane.contrast_red,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_gamma_data_green, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_green,
+ xsane.brightness + xsane.brightness_green,
+ xsane.contrast + xsane.contrast_green,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_gamma_data_blue, xsane.negative != xsane.medium_negative,
+ xsane.gamma * xsane.gamma_blue,
+ xsane.brightness + xsane.brightness_blue,
+ xsane.contrast + xsane.contrast_blue,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ xsane.preview_gamma_size);
+
+
+ if (update_raw) /* to speed up things here */
+ {
+ xsane_create_preview_gamma_curve(xsane.histogram_medium_gamma_data_red, xsane.negative != xsane.medium_negative,
+ 1.0, 0.0, 0.0,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_medium_gamma_data_green, xsane.negative != xsane.medium_negative,
+ 1.0, 0.0, 0.0,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ xsane.preview_gamma_size);
+
+ xsane_create_preview_gamma_curve(xsane.histogram_medium_gamma_data_blue, xsane.negative != xsane.medium_negative,
+ 1.0, 0.0, 0.0,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ xsane.preview_gamma_size);
+ }
+ }
+#endif
+ }
+
+ preview_gamma_correction(xsane.preview, preferences.preview_gamma_input_bits,
+ xsane.preview_gamma_data_red, xsane.preview_gamma_data_green, xsane.preview_gamma_data_blue,
+ xsane.histogram_gamma_data_red, xsane.histogram_gamma_data_green, xsane.histogram_gamma_data_blue,
+ xsane.histogram_medium_gamma_data_red, xsane.histogram_medium_gamma_data_green, xsane.histogram_medium_gamma_data_blue);
+
+ xsane_update_histogram(update_raw);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_enhancement_update(void)
+{
+ guint sig_changed=0;
+
+ DBG(DBG_proc, "xsane_enhancement_update\n");
+
+ if (xsane.param.depth == 1) /* lineart? no gamma */
+ {
+ return;
+ }
+
+ sig_changed = gtk_signal_lookup("changed", GTK_OBJECT_TYPE(xsane.gamma_widget));
+
+ GTK_ADJUSTMENT(xsane.gamma_widget)->value = xsane.gamma;
+ GTK_ADJUSTMENT(xsane.brightness_widget)->value = xsane.brightness;
+ GTK_ADJUSTMENT(xsane.contrast_widget)->value = xsane.contrast;
+
+ if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) )
+ {
+ GTK_ADJUSTMENT(xsane.gamma_red_widget)->value = xsane.gamma_red;
+ GTK_ADJUSTMENT(xsane.gamma_green_widget)->value = xsane.gamma_green;
+ GTK_ADJUSTMENT(xsane.gamma_blue_widget)->value = xsane.gamma_blue;
+
+ GTK_ADJUSTMENT(xsane.brightness_red_widget)->value = xsane.brightness_red;
+ GTK_ADJUSTMENT(xsane.brightness_green_widget)->value = xsane.brightness_green;
+ GTK_ADJUSTMENT(xsane.brightness_blue_widget)->value = xsane.brightness_blue;
+
+ GTK_ADJUSTMENT(xsane.contrast_red_widget)->value = xsane.contrast_red;
+ GTK_ADJUSTMENT(xsane.contrast_green_widget)->value = xsane.contrast_green;
+ GTK_ADJUSTMENT(xsane.contrast_blue_widget)->value = xsane.contrast_blue;
+
+ gtk_signal_emit(xsane.gamma_red_widget, sig_changed);
+ gtk_signal_emit(xsane.gamma_green_widget, sig_changed);
+ gtk_signal_emit(xsane.gamma_blue_widget, sig_changed);
+
+ gtk_signal_emit(xsane.brightness_red_widget, sig_changed);
+ gtk_signal_emit(xsane.brightness_green_widget, sig_changed);
+ gtk_signal_emit(xsane.brightness_blue_widget, sig_changed);
+
+ gtk_signal_emit(xsane.contrast_red_widget, sig_changed);
+ gtk_signal_emit(xsane.contrast_green_widget, sig_changed);
+ gtk_signal_emit(xsane.contrast_blue_widget, sig_changed);
+
+ }
+
+ gtk_signal_emit(xsane.gamma_widget, sig_changed);
+ gtk_signal_emit(xsane.brightness_widget, sig_changed);
+ gtk_signal_emit(xsane.contrast_widget, sig_changed);
+
+ xsane_update_sliders(); /* update histogram slider */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_gamma_to_histogram(double *min, double *mid, double *max,
+ double contrast, double brightness, double gamma)
+{
+ double m;
+ double b;
+
+ DBG(DBG_proc, "xsane_gamma_to_histogram\n");
+
+ m = 1.0 + contrast/100.0;
+ b = (1.0 + brightness/100.0) * 50.0;
+
+ if (m > 0)
+ {
+ *min = 50.0 - b/m;
+ *mid = (100.0 * pow(0.5, gamma)-b) / m + 50.0;
+ *max = (100.0-b)/m + 50.0;
+ }
+ else
+ {
+ *min = 0.0;
+ *mid = 50.0;
+ *max = 100.0;
+ }
+
+ xsane_bound_double(min, 0.0, 98.0);
+ xsane_bound_double(max, *min+1, 100.0);
+ xsane_bound_double(mid, *min+1, *max-1);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_enhancement_by_gamma(void)
+{
+ double min, mid, max;
+ double contrast, brightness, gamma;
+
+ DBG(DBG_proc, "xsane_enhancement_by_gamma\n");
+
+ xsane_gamma_to_histogram(&min, &mid, &max, xsane.contrast, xsane.brightness, xsane.gamma);
+
+ xsane.slider_gray.value[0] = min;
+ xsane.slider_gray.value[1] = mid;
+ xsane.slider_gray.value[2] = max;
+
+
+ /* red */
+ contrast = xsane.contrast + xsane.contrast_red;
+ brightness = xsane.brightness + xsane.brightness_red;
+ gamma = xsane.gamma * xsane.gamma_red;
+
+ if (contrast < -100)
+ {
+ contrast = -100;
+ }
+
+ xsane_gamma_to_histogram(&min, &mid, &max, contrast, brightness, gamma);
+
+
+ xsane.slider_red.value[0] = min;
+ xsane.slider_red.value[1] = mid;
+ xsane.slider_red.value[2] = max;
+
+
+ /* green */
+ contrast = xsane.contrast + xsane.contrast_green;
+ brightness = xsane.brightness + xsane.brightness_green;
+ gamma = xsane.gamma * xsane.gamma_green;
+
+ if (contrast < -100)
+ {
+ contrast = -100;
+ }
+
+ xsane_gamma_to_histogram(&min, &mid, &max, contrast, brightness, gamma);
+
+ xsane.slider_green.value[0] = min;
+ xsane.slider_green.value[1] = mid;
+ xsane.slider_green.value[2] = max;
+
+
+ /* blue */
+ contrast = xsane.contrast + xsane.contrast_blue;
+ brightness = xsane.brightness + xsane.brightness_blue;
+ gamma = xsane.gamma * xsane.gamma_blue;
+
+ if (contrast < -100)
+ {
+ contrast = -100;
+ }
+
+ xsane_gamma_to_histogram(&min, &mid, &max, contrast, brightness, gamma);
+
+ xsane.slider_blue.value[0] = min;
+ xsane.slider_blue.value[1] = mid;
+ xsane.slider_blue.value[2] = max;
+
+
+ xsane_enhancement_update();
+ xsane_update_gamma_curve(FALSE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_enhancement_restore_default()
+{
+ DBG(DBG_proc, "xsane_enhancement_restore_default\n");
+
+ xsane.gamma = 1.0;
+ xsane.gamma_red = 1.0;
+ xsane.gamma_green = 1.0;
+ xsane.gamma_blue = 1.0;
+
+ xsane.brightness = 0.0;
+ xsane.brightness_red = 0.0;
+ xsane.brightness_green = 0.0;
+ xsane.brightness_blue = 0.0;
+
+ xsane.contrast = 0.0;
+ xsane.contrast_red = 0.0;
+ xsane.contrast_green = 0.0;
+ xsane.contrast_blue = 0.0;
+
+ xsane_enhancement_by_gamma();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_enhancement_restore()
+{
+ DBG(DBG_proc, "xsane_enhancement_restore\n");
+
+ xsane.gamma = preferences.xsane_gamma;
+ xsane.gamma_red = preferences.xsane_gamma_red;
+ xsane.gamma_green = preferences.xsane_gamma_green;
+ xsane.gamma_blue = preferences.xsane_gamma_blue;
+
+ xsane.brightness = preferences.xsane_brightness;
+ xsane.brightness_red = preferences.xsane_brightness_red;
+ xsane.brightness_green = preferences.xsane_brightness_green;
+ xsane.brightness_blue = preferences.xsane_brightness_blue;
+
+ xsane.contrast = preferences.xsane_contrast;
+ xsane.contrast_red = preferences.xsane_contrast_red;
+ xsane.contrast_green = preferences.xsane_contrast_green;
+ xsane.contrast_blue = preferences.xsane_contrast_blue;
+
+ xsane.enhancement_rgb_default = preferences.xsane_rgb_default;
+ xsane.negative = preferences.xsane_negative;
+
+ xsane_refresh_dialog();
+ xsane_enhancement_by_gamma();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_enhancement_store()
+{
+ DBG(DBG_proc, "xsane_enhancement_store\n");
+
+ preferences.xsane_gamma = xsane.gamma;
+ preferences.xsane_gamma_red = xsane.gamma_red;
+ preferences.xsane_gamma_green = xsane.gamma_green;
+ preferences.xsane_gamma_blue = xsane.gamma_blue;
+
+ preferences.xsane_brightness = xsane.brightness;
+ preferences.xsane_brightness_red = xsane.brightness_red;
+ preferences.xsane_brightness_green = xsane.brightness_green;
+ preferences.xsane_brightness_blue = xsane.brightness_blue;
+
+ preferences.xsane_contrast = xsane.contrast;
+ preferences.xsane_contrast_red = xsane.contrast_red;
+ preferences.xsane_contrast_green = xsane.contrast_green;
+ preferences.xsane_contrast_blue = xsane.contrast_blue;
+
+ preferences.xsane_rgb_default = xsane.enhancement_rgb_default;
+ preferences.xsane_negative = xsane.negative;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_histogram_to_gamma(XsaneSlider *slider,
+ double *contrast, double contrast_offset,
+ double *brightness, double brightness_offset,
+ double *gamma, double gamma_multiplier)
+{
+ double mid;
+ double range;
+ int correct_bound = ((slider->active == XSANE_SLIDER_ACTIVE) || (slider->active == XSANE_SLIDER_INACTIVE)); /* slider not moved */
+
+ DBG(DBG_proc, "xsane_histogram_to_gamma(correct_bound = %d)\n", correct_bound);
+
+ *contrast = (10000.0 / (slider->value[2] - slider->value[0]) - 100.0);
+ if (correct_bound)
+ {
+ xsane_bound_double(contrast, -100.0 + contrast_offset, xsane.contrast_max + contrast_offset);
+ }
+
+ *brightness = - (slider->value[0] - 50.0) * (*contrast + 100.0)/50.0 - 100.0;
+ if (correct_bound)
+ {
+ xsane_bound_double(brightness, xsane.brightness_min + brightness_offset, xsane.brightness_max + brightness_offset);
+ }
+
+ mid = slider->value[1] - slider->value[0];
+ range = slider->value[2] - slider->value[0];
+
+ *gamma = log(mid/range) / log(0.5);
+ if (correct_bound)
+ {
+ xsane_bound_double(gamma, XSANE_GAMMA_MIN * gamma_multiplier, XSANE_GAMMA_MAX * gamma_multiplier);
+ return 1; /* in bound */
+ }
+ else if (xsane_check_bound_double(*contrast, -100.0 + contrast_offset, xsane.contrast_max + contrast_offset) &&
+ xsane_check_bound_double(*brightness, XSANE_BRIGHTNESS_MIN + brightness_offset, xsane.brightness_max + brightness_offset) &&
+ xsane_check_bound_double(*gamma, XSANE_GAMMA_MIN * gamma_multiplier, XSANE_GAMMA_MAX * gamma_multiplier))
+ {
+ return 1; /* in bound */
+ }
+ return 0; /* out of bound */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_enhancement_by_histogram(int update_gamma)
+{
+ double gray_brightness;
+ double gray_contrast;
+ double gray_gamma;
+ double brightness;
+ double contrast;
+ double gamma;
+
+ DBG(DBG_proc, "xsane_enhancement_by_histogram\n");
+
+ if (xsane_histogram_to_gamma(&xsane.slider_gray, &gray_contrast, 0, &gray_brightness, 0, &gray_gamma, 1.0))
+ {
+ if (update_gamma)
+ {
+ xsane.gamma = gray_gamma;
+ }
+
+ xsane.brightness = gray_brightness;
+ xsane.contrast = gray_contrast;
+ }
+
+ if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) ) /* rgb sliders active */
+ {
+ if ((xsane.slider_gray.active == XSANE_SLIDER_ACTIVE) ||
+ (xsane.slider_gray.active == XSANE_SLIDER_INACTIVE)) /* gray slider not moved */
+ {
+ /* red */
+ if (xsane_histogram_to_gamma(&xsane.slider_red, &contrast, gray_contrast, &brightness, gray_brightness, &gamma, gray_gamma))
+ {
+ if (update_gamma)
+ {
+ xsane.gamma_red = gamma / gray_gamma;
+ }
+ xsane.brightness_red = brightness - gray_brightness;
+ xsane.contrast_red = contrast - gray_contrast;
+ }
+
+ /* green */
+ if (xsane_histogram_to_gamma(&xsane.slider_green, &contrast, gray_contrast, &brightness, gray_brightness, &gamma, gray_gamma))
+ {
+ if (update_gamma)
+ {
+ xsane.gamma_green = gamma / gray_gamma;
+ }
+ xsane.brightness_green = brightness - gray_brightness;
+ xsane.contrast_green = contrast - gray_contrast;
+ }
+
+ /* blue */
+ if (xsane_histogram_to_gamma(&xsane.slider_blue, &contrast, gray_contrast, &brightness, gray_brightness, &gamma, gray_gamma))
+ {
+ if (update_gamma)
+ {
+ xsane.gamma_blue = gamma / gray_gamma;
+ }
+ xsane.brightness_blue = brightness - gray_brightness;
+ xsane.contrast_blue = contrast - gray_contrast;
+ }
+
+ }
+ }
+
+ xsane_enhancement_by_gamma();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint xsane_histogram_win_delete(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_histogram_win_delete\n");
+
+ gtk_widget_hide(widget);
+ preferences.show_histogram = FALSE;
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_histogram_widget), preferences.show_histogram);
+ return TRUE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_create_histogram_dialog(const char *devicetext)
+{
+ char windowname[255];
+ GtkWidget *xsane_color_hbox;
+ GtkWidget *xsane_histogram_vbox;
+ GtkWidget *button;
+ GdkColor color_black;
+ GdkColor color_red;
+ GdkColor color_green;
+ GdkColor color_blue;
+ GdkColor color_backg;
+ GdkColormap *colormap;
+ GtkStyle *style;
+
+ DBG(DBG_proc, "xsane_create_histogram_dialog\n");
+
+ xsane.histogram_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_policy(GTK_WINDOW(xsane.histogram_dialog), FALSE, FALSE, FALSE);
+ gtk_widget_set_uposition(xsane.histogram_dialog, XSANE_HISTOGRAM_POS_X, XSANE_HISTOGRAM_POS_Y);
+ gtk_signal_connect(GTK_OBJECT(xsane.histogram_dialog), "delete_event", GTK_SIGNAL_FUNC(xsane_histogram_win_delete), NULL);
+ sprintf(windowname, "%s %s", WINDOW_HISTOGRAM, devicetext);
+ gtk_window_set_title(GTK_WINDOW(xsane.histogram_dialog), windowname);
+ xsane_set_window_icon(xsane.histogram_dialog, 0);
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(xsane.histogram_dialog));
+
+ xsane_histogram_vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(xsane_histogram_vbox), 5);
+ gtk_container_add(GTK_CONTAINER(xsane.histogram_dialog), xsane_histogram_vbox);
+ gtk_widget_show(xsane_histogram_vbox);
+
+
+ /* set gc for histogram drawing */
+ gtk_widget_realize(xsane.histogram_dialog); /* realize dialog to get colors and style */
+
+ style = gtk_widget_get_style(xsane.histogram_dialog);
+/*
+ style = gtk_rc_get_style(xsane.histogram_dialog);
+ style = gtk_widget_get_default_style();
+*/
+
+ xsane.gc_trans = style->bg_gc[GTK_STATE_NORMAL];
+ xsane.bg_trans = &style->bg[GTK_STATE_NORMAL];
+
+ colormap = gdk_window_get_colormap(xsane.histogram_dialog->window);
+
+ xsane.gc_black = gdk_gc_new(xsane.histogram_dialog->window);
+ color_black.red = 0;
+ color_black.green = 0;
+ color_black.blue = 0;
+ gdk_color_alloc(colormap, &color_black);
+ gdk_gc_set_foreground(xsane.gc_black, &color_black);
+
+ xsane.gc_red = gdk_gc_new(xsane.histogram_dialog->window);
+ color_red.red = 40000;
+ color_red.green = 10000;
+ color_red.blue = 10000;
+ gdk_color_alloc(colormap, &color_red);
+ gdk_gc_set_foreground(xsane.gc_red, &color_red);
+
+ xsane.gc_green = gdk_gc_new(xsane.histogram_dialog->window);
+ color_green.red = 10000;
+ color_green.green = 40000;
+ color_green.blue = 10000;
+ gdk_color_alloc(colormap, &color_green);
+ gdk_gc_set_foreground(xsane.gc_green, &color_green);
+
+ xsane.gc_blue = gdk_gc_new(xsane.histogram_dialog->window);
+ color_blue.red = 10000;
+ color_blue.green = 10000;
+ color_blue.blue = 40000;
+ gdk_color_alloc(colormap, &color_blue);
+ gdk_gc_set_foreground(xsane.gc_blue, &color_blue);
+
+ xsane.gc_backg = gdk_gc_new(xsane.histogram_dialog->window);
+ color_backg.red = 50000;
+ color_backg.green = 50000;
+ color_backg.blue = 50000;
+ gdk_color_alloc(colormap, &color_backg);
+ gdk_gc_set_foreground(xsane.gc_backg, &color_backg);
+
+
+ /* add histogram images and sliders */
+
+ xsane_create_histogram(xsane_histogram_vbox, FRAME_RAW_IMAGE, 256, 100, &(xsane.histogram_raw));
+
+ xsane_separator_new(xsane_histogram_vbox, 0);
+
+ xsane.slider_gray.r = 1;
+ xsane.slider_gray.g = 1;
+ xsane.slider_gray.b = 1;
+ xsane.slider_gray.active = XSANE_SLIDER_ACTIVE;
+ xsane_create_slider(&xsane.slider_gray);
+ gtk_box_pack_start(GTK_BOX(xsane_histogram_vbox), xsane.slider_gray.preview, FALSE, FALSE, 0);
+ gtk_widget_show(xsane.slider_gray.preview);
+ gtk_widget_realize(xsane.slider_gray.preview);
+
+ xsane_separator_new(xsane_histogram_vbox, 0);
+
+ xsane.slider_red.r = 1;
+ xsane.slider_red.g = 0;
+ xsane.slider_red.b = 0;
+ xsane.slider_red.active = XSANE_SLIDER_ACTIVE;
+ xsane_create_slider(&xsane.slider_red);
+ gtk_box_pack_start(GTK_BOX(xsane_histogram_vbox), xsane.slider_red.preview, FALSE, FALSE, 0);
+ gtk_widget_show(xsane.slider_red.preview);
+ gtk_widget_realize(xsane.slider_red.preview);
+
+ xsane_separator_new(xsane_histogram_vbox, 0);
+
+ xsane.slider_green.r = 0;
+ xsane.slider_green.g = 1;
+ xsane.slider_green.b = 0;
+ xsane.slider_green.active = XSANE_SLIDER_ACTIVE;
+ xsane_create_slider(&xsane.slider_green);
+ gtk_box_pack_start(GTK_BOX(xsane_histogram_vbox), xsane.slider_green.preview, FALSE, FALSE, 0);
+ gtk_widget_show(xsane.slider_green.preview);
+ gtk_widget_realize(xsane.slider_green.preview);
+
+ xsane_separator_new(xsane_histogram_vbox, 0);
+
+ xsane.slider_blue.r = 0;
+ xsane.slider_blue.g = 0;
+ xsane.slider_blue.b = 1;
+ xsane.slider_blue.active = XSANE_SLIDER_ACTIVE;
+ xsane_create_slider(&xsane.slider_blue);
+ gtk_box_pack_start(GTK_BOX(xsane_histogram_vbox), xsane.slider_blue.preview, FALSE, FALSE, 0);
+ gtk_widget_show(xsane.slider_blue.preview);
+ gtk_widget_realize(xsane.slider_blue.preview);
+
+ xsane_draw_slider_level(&xsane.slider_gray);
+ xsane_draw_slider_level(&xsane.slider_red);
+ xsane_draw_slider_level(&xsane.slider_green);
+ xsane_draw_slider_level(&xsane.slider_blue);
+
+ xsane_separator_new(xsane_histogram_vbox, 0);
+
+ xsane_create_histogram(xsane_histogram_vbox, FRAME_ENHANCED_IMAGE, 256, 100, &(xsane.histogram_enh));
+
+ xsane_color_hbox = gtk_hbox_new(TRUE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(xsane_color_hbox), 5);
+ gtk_container_add(GTK_CONTAINER(xsane_histogram_vbox), xsane_color_hbox);
+ gtk_widget_show(xsane_color_hbox);
+
+ button = xsane_toggle_button_new_with_pixmap(xsane.histogram_dialog->window, xsane_color_hbox, intensity_xpm, DESC_HIST_INTENSITY,
+ &xsane.histogram_int, xsane_histogram_toggle_button_callback);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_I, GDK_MOD1_MASK, GTK_ACCEL_LOCKED);
+
+ button = xsane_toggle_button_new_with_pixmap(xsane.histogram_dialog->window, xsane_color_hbox, red_xpm, DESC_HIST_RED,
+ &xsane.histogram_red, xsane_histogram_toggle_button_callback);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_R, GDK_MOD1_MASK, GTK_ACCEL_LOCKED);
+
+ button = xsane_toggle_button_new_with_pixmap(xsane.histogram_dialog->window, xsane_color_hbox, green_xpm, DESC_HIST_GREEN,
+ &xsane.histogram_green, xsane_histogram_toggle_button_callback);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_G, GDK_MOD1_MASK, GTK_ACCEL_LOCKED);
+
+ button = xsane_toggle_button_new_with_pixmap(xsane.histogram_dialog->window, xsane_color_hbox, blue_xpm, DESC_HIST_BLUE,
+ &xsane.histogram_blue, xsane_histogram_toggle_button_callback);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_B, GDK_MOD1_MASK, GTK_ACCEL_LOCKED);
+
+ button = xsane_toggle_button_new_with_pixmap(xsane.histogram_dialog->window, xsane_color_hbox, pixel_xpm, DESC_HIST_PIXEL,
+ &xsane.histogram_lines, xsane_histogram_toggle_button_callback);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_M, GDK_MOD1_MASK, GTK_ACCEL_LOCKED);
+
+ button = xsane_toggle_button_new_with_pixmap(xsane.histogram_dialog->window, xsane_color_hbox, log_xpm, DESC_HIST_LOG,
+ &xsane.histogram_log, xsane_histogram_toggle_button_callback);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_L, GDK_MOD1_MASK, GTK_ACCEL_LOCKED);
+
+ gtk_widget_show(xsane_color_hbox);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+#ifdef HAVE_WORKING_GTK_GAMMACURVE
+/* xsane_get_free_gamma_curve transforms gamma table with 65536 entries and value range 0.0-1.0 to requested gamma table */
+/* it combines the color gamma table given by gamma_widget and the gray gamma table (xsane.gamma_curve_gray) */
+void xsane_get_free_gamma_curve(gfloat *free_color_gamma_data, SANE_Int *gammadata,
+ int negative, double gamma, double brightness, double contrast,
+ int len, int maxout)
+{
+ int i;
+ gfloat factor;
+ double midin;
+ double val;
+ double m;
+ double b;
+ int maxin = len-1;
+
+ DBG(DBG_proc, "xsane_get_free_gamma_curve\n");
+ DBG(DBG_proc, "xsane_get_free_gamma_curve(neg=%d, gam=%3.2f, bri=%3.2f, ctr=%3.2f, nrs=%d, max=%d\n",
+ negative, gamma, brightness, contrast, len, maxout);
+
+ if (contrast < -100.0)
+ {
+ contrast = -100.0;
+ }
+
+ midin = (int)(len / 2.0);
+
+ m = 1.0 + contrast/100.0;
+ b = (1.0 + brightness/100.0) * midin;
+
+ factor = 65536.0 / len;
+
+ if (1) /* xxxxxxxxxxxx colors available */
+ {
+ if (negative)
+ {
+ DBG(DBG_proc, "xsane_get_free_gamma_curve: color transformation, negative\n");
+
+ for (i=0; i <= maxin; i++)
+ {
+ val = ((double) (maxin - i)) - midin;
+ val = val * m + b;
+ xsane_bound_double(&val, 0.0, maxin);
+
+ val = maxout * xsane.free_gamma_data[(int) (65535 * free_color_gamma_data[(int) (val * factor)])];
+ val = 0.5 + maxout * pow( val/maxin, (1.0/gamma) );
+ gammadata[i] = val;
+ }
+ }
+ else /* positive */
+ {
+ DBG(DBG_proc, "xsane_get_free_gamma_curve: color transformation, positive\n");
+
+ for (i=0; i <= maxin; i++)
+ {
+ val = ((double) i) - midin;
+ val = val * m + b;
+ xsane_bound_double(&val, 0.0, maxin);
+
+ val = maxout * xsane.free_gamma_data[(int) (65535 * free_color_gamma_data[(int) (val * factor)])];
+ val = 0.5 + maxout * pow( val/maxin, (1.0/gamma) );
+ gammadata[i] = val;
+ }
+ }
+ }
+ else
+ {
+ if (negative)
+ {
+ DBG(DBG_proc, "xsane_get_free_gamma_curve: gray transformation, negative\n");
+
+ for (i=0; i <= maxin; i++)
+ {
+ val = ((double) (maxin - i)) - midin;
+ val = val * m + b;
+ xsane_bound_double(&val, 0.0, maxin);
+
+ val = maxout * xsane.free_gamma_data[(int) (val * factor)];
+ val = 0.5 + maxout * pow( val/maxin, (1.0/gamma) );
+ gammadata[i] = val;
+ }
+ }
+ else /* positive */
+ {
+ DBG(DBG_proc, "xsane_get_free_gamma_curve: gray transformation, positive\n");
+
+ for (i=0; i <= maxin; i++)
+ {
+ val = ((double) i) - midin;
+ val = val * m + b;
+ xsane_bound_double(&val, 0.0, maxin);
+
+ val = maxout * xsane.free_gamma_data[(int) (val * factor)];
+ val = 0.5 + maxout * pow( val/maxin, (1.0/gamma) );
+ gammadata[i] = val;
+ }
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint xsane_gamma_win_delete(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_gamma_win_delete\n");
+
+ gtk_widget_hide(widget);
+ preferences.show_gamma = FALSE;
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_gamma_widget), preferences.show_gamma);
+ return TRUE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+/* xsane_gamma_curve_notebook_page_new creates a notebook page with a gamma curve
+ of 65536 entries and a value range from 0.0-1.0 */
+
+GtkWidget* xsane_gamma_curve_notebook_page_new(GtkWidget *notebook, char *title)
+{
+ gfloat fmin, fmax, *vector;
+ GtkWidget *curve, *gamma, *vbox, *label;
+ int optlen;
+
+ DBG(DBG_proc, "xsane_back_gtk_curve_new\n");
+
+ optlen = 65536;
+ fmin = 0.0;
+ fmax = 1.0;
+
+ label = gtk_label_new((char *) title);
+ vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);
+ gtk_widget_show(vbox);
+ gtk_widget_show(label);
+
+ gamma = gtk_gamma_curve_new();
+ gtk_widget_set_usize(gamma, 0, 256);
+ curve = GTK_GAMMA_CURVE(gamma)->curve;
+
+ vector = alloca(optlen * sizeof(vector[0]));
+
+ gtk_curve_set_range(GTK_CURVE(curve), 0, optlen - 1, fmin, fmax);
+#if 1
+ gtk_curve_maintain_accuracy(GTK_CURVE(curve), 1.0);
+#endif
+
+ gtk_container_set_border_width(GTK_CONTAINER(gamma), 4);
+ gtk_box_pack_start(GTK_BOX(vbox), gamma, TRUE, TRUE, 0);
+ gtk_widget_show(gamma);
+
+ return gamma;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_create_gamma_dialog(const char *devicetext)
+{
+ char windowname[255];
+ GtkWidget *xsane_vbox_gamma, *notebook;
+
+ DBG(DBG_proc, "xsane_create_free_gamma_dialog\n");
+
+ xsane.free_gamma_data = calloc(65536, sizeof(xsane.free_gamma_data[0]));
+ xsane.free_gamma_data_red = calloc(65536, sizeof(xsane.free_gamma_data_red[0]));
+ xsane.free_gamma_data_green = calloc(65536, sizeof(xsane.free_gamma_data_green[0]));
+ xsane.free_gamma_data_blue = calloc(65536, sizeof(xsane.free_gamma_data_green[0]));
+
+ xsane.gamma_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_policy(GTK_WINDOW(xsane.gamma_dialog), FALSE, FALSE, FALSE);
+ gtk_widget_set_uposition(xsane.gamma_dialog, XSANE_GAMMA_POS_X, XSANE_GAMMA_POS_Y);
+ gtk_signal_connect(GTK_OBJECT(xsane.gamma_dialog), "delete_event", GTK_SIGNAL_FUNC(xsane_gamma_win_delete), NULL);
+ sprintf(windowname, "%s %s", WINDOW_GAMMA, devicetext);
+ gtk_window_set_title(GTK_WINDOW(xsane.gamma_dialog), windowname);
+ xsane_set_window_icon(xsane.gamma_dialog, 0);
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(xsane.gamma_dialog));
+
+ xsane_vbox_gamma = gtk_vbox_new(TRUE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_gamma), 5);
+ gtk_container_add(GTK_CONTAINER(xsane.gamma_dialog), xsane_vbox_gamma);
+ gtk_widget_show(xsane_vbox_gamma);
+
+ notebook = gtk_notebook_new();
+ gtk_container_set_border_width(GTK_CONTAINER(notebook), 4);
+ gtk_box_pack_start(GTK_BOX(xsane_vbox_gamma), notebook, TRUE, TRUE, 0);
+ gtk_widget_show(notebook);
+
+ xsane.gamma_curve_gray = xsane_gamma_curve_notebook_page_new(notebook, "Gamma gray");
+ xsane.gamma_curve_red = xsane_gamma_curve_notebook_page_new(notebook, "Gamma red");
+ xsane.gamma_curve_green = xsane_gamma_curve_notebook_page_new(notebook, "Gamma green");
+ xsane.gamma_curve_blue = xsane_gamma_curve_notebook_page_new(notebook, "Gamma blue");
+
+ gtk_curve_get_vector(GTK_CURVE(GTK_GAMMA_CURVE(xsane.gamma_curve_gray)->curve), 65536, xsane.free_gamma_data);
+ gtk_curve_get_vector(GTK_CURVE(GTK_GAMMA_CURVE(xsane.gamma_curve_red)->curve), 65536, xsane.free_gamma_data_red);
+ gtk_curve_get_vector(GTK_CURVE(GTK_GAMMA_CURVE(xsane.gamma_curve_green)->curve), 65536, xsane.free_gamma_data_green);
+ gtk_curve_get_vector(GTK_CURVE(GTK_GAMMA_CURVE(xsane.gamma_curve_blue)->curve), 65536, xsane.free_gamma_data_blue);
+
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_update_gamma_dialog()
+{
+ DBG(DBG_proc, "xsane_update_gamma_dialog\n");
+
+ if (preferences.show_gamma)
+ {
+ gtk_widget_show(xsane.gamma_dialog);
+ }
+}
+#endif
+
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_set_auto_enhancement()
+{
+ DBG(DBG_proc, "xsane_set_auto_enhancement\n");
+ xsane.slider_gray.value[0] = xsane.auto_black;
+ xsane.slider_gray.value[1] = xsane.auto_gray;
+ xsane.slider_gray.value[2] = xsane.auto_white;
+
+ if (xsane.enhancement_rgb_default) /* set same values for color components */
+ {
+ xsane.slider_red.value[0] = xsane.auto_black;
+ xsane.slider_red.value[1] = xsane.auto_gray;
+ xsane.slider_red.value[2] = xsane.auto_white;
+
+ xsane.slider_green.value[0] = xsane.auto_black;
+ xsane.slider_green.value[1] = xsane.auto_gray;
+ xsane.slider_green.value[2] = xsane.auto_white;
+
+ xsane.slider_blue.value[0] = xsane.auto_black;
+ xsane.slider_blue.value[1] = xsane.auto_gray;
+ xsane.slider_blue.value[2] = xsane.auto_white;
+ }
+ else /* set different values for each color component */
+ {
+ xsane.slider_red.value[0] = xsane.auto_black_red;
+ xsane.slider_red.value[1] = xsane.auto_gray_red;
+ xsane.slider_red.value[2] = xsane.auto_white_red;
+
+ xsane.slider_green.value[0] = xsane.auto_black_green;
+ xsane.slider_green.value[1] = xsane.auto_gray_green;
+ xsane.slider_green.value[2] = xsane.auto_white_green;
+
+ xsane.slider_blue.value[0] = xsane.auto_black_blue;
+ xsane.slider_blue.value[1] = xsane.auto_gray_blue;
+ xsane.slider_blue.value[2] = xsane.auto_white_blue;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+void xsane_set_medium(Preferences_medium_t *medium)
+{
+ const SANE_Option_Descriptor *opt;
+ int shadow_gray, shadow_red, shadow_green, shadow_blue;
+ int highlight_gray, highlight_red, highlight_green, highlight_blue;
+
+
+ if (!medium)
+ {
+ DBG(DBG_proc, "xsane_set_medium: no medium given, using default values\n");
+
+ xsane.medium_gamma_gray = 1.0;
+ xsane.medium_gamma_red = 1.0;
+ xsane.medium_gamma_green = 1.0;
+ xsane.medium_gamma_blue = 1.0;
+
+ xsane.medium_shadow_gray = 0.0;
+ xsane.medium_shadow_red = 0.0;
+ xsane.medium_shadow_green = 0.0;
+ xsane.medium_shadow_blue = 0.0;
+
+ xsane.medium_highlight_gray = 100.0;
+ xsane.medium_highlight_red = 100.0;
+ xsane.medium_highlight_green = 100.0;
+ xsane.medium_highlight_blue = 100.0;
+
+ xsane.medium_negative = 0;
+
+ return;
+ }
+
+ DBG(DBG_proc, "xsane_set_medium: setting values for %s\n", medium->name);
+
+ xsane.medium_gamma_red = medium->gamma_red;
+ xsane.medium_gamma_green = medium->gamma_green;
+ xsane.medium_gamma_blue = medium->gamma_blue;
+
+ xsane.medium_shadow_red = medium->shadow_red;
+ xsane.medium_shadow_green = medium->shadow_green;
+ xsane.medium_shadow_blue = medium->shadow_blue;
+
+ xsane.medium_highlight_red = medium->highlight_red;
+ xsane.medium_highlight_green = medium->highlight_green;
+ xsane.medium_highlight_blue = medium->highlight_blue;
+
+ xsane.medium_gamma_gray = medium->gamma_gray;
+ xsane.medium_shadow_gray = medium->shadow_gray;
+ xsane.medium_highlight_gray = medium->highlight_gray;
+
+ xsane.medium_negative = medium->negative;
+
+#if 1
+return;
+#endif
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.shadow);
+ if (!opt)
+ {
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.shadow_r);
+ }
+ else if (!opt)
+ {
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.highlight);
+ }
+ else if (!opt)
+ {
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.highlight_r);
+ }
+ else if (!opt)
+ {
+ DBG(DBG_info, "xsane_set_medium_callback: no shadow/highlight values available\n");
+ return;
+ }
+
+ if (opt->type == SANE_TYPE_FIXED)
+ {
+ shadow_gray = SANE_FIX(medium->shadow_gray);
+ shadow_red = SANE_FIX(medium->shadow_red);
+ shadow_green = SANE_FIX(medium->shadow_green);
+ shadow_blue = SANE_FIX(medium->shadow_blue);
+ highlight_gray = SANE_FIX(medium->highlight_gray);
+ highlight_red = SANE_FIX(medium->highlight_red);
+ highlight_green = SANE_FIX(medium->highlight_green);
+ highlight_blue = SANE_FIX(medium->highlight_blue);
+ }
+ else if (opt->type == SANE_TYPE_INT)
+ {
+ shadow_gray = (int) medium->shadow_gray;
+ shadow_red = (int) medium->shadow_red;
+ shadow_green = (int) medium->shadow_green;
+ shadow_blue = (int) medium->shadow_blue;
+ highlight_gray = (int) medium->highlight_gray;
+ highlight_red = (int) medium->highlight_red;
+ highlight_green = (int) medium->highlight_green;
+ highlight_blue = (int) medium->highlight_blue;
+ }
+ else
+ {
+ DBG(DBG_info, "xsane_set_medium_callback: unknown type of shadow/highlight: %d\n", opt->type);
+ return;
+ }
+
+ /* shadow values */
+ if (!xsane_control_option(xsane.dev, xsane.well_known.shadow, SANE_ACTION_SET_VALUE, &shadow_gray, 0))
+ {
+ xsane.medium_shadow_gray = 0.0; /* we are using hardware shadow */
+ }
+
+ if (!xsane_control_option(xsane.dev, xsane.well_known.shadow_r, SANE_ACTION_SET_VALUE, &shadow_red, 0))
+ {
+ xsane.medium_shadow_red = 0.0; /* we are using hardware shadow */
+ }
+
+ if (!xsane_control_option(xsane.dev, xsane.well_known.shadow_g, SANE_ACTION_SET_VALUE, &shadow_green, 0))
+ {
+ xsane.medium_shadow_green = 0.0; /* we are using hardware shadow */
+ }
+
+ if (!xsane_control_option(xsane.dev, xsane.well_known.shadow_b, SANE_ACTION_SET_VALUE, &shadow_blue, 0))
+ {
+ xsane.medium_shadow_blue = 0.0; /* we are using hardware shadow */
+ }
+
+ /* highlight values */
+ if (!xsane_control_option(xsane.dev, xsane.well_known.highlight, SANE_ACTION_SET_VALUE, &highlight_gray, 0))
+ {
+ xsane.medium_highlight_gray = 100.0; /* we are using hardware highlight */
+ }
+
+ if (!xsane_control_option(xsane.dev, xsane.well_known.highlight_r, SANE_ACTION_SET_VALUE, &highlight_red, 0))
+ {
+ xsane.medium_highlight_red = 100.0; /* we are using hardware highlight */
+ }
+
+ if (!xsane_control_option(xsane.dev, xsane.well_known.highlight_g, SANE_ACTION_SET_VALUE, &highlight_green, 0))
+ {
+ xsane.medium_highlight_green = 100.0; /* we are using hardware highlight */
+ }
+
+ if (!xsane_control_option(xsane.dev, xsane.well_known.highlight_b, SANE_ACTION_SET_VALUE, &highlight_blue, 0))
+ {
+ xsane.medium_highlight_blue = 100.0; /* we are using hardware highlight */
+ }
+
+ xsane_back_gtk_refresh_dialog();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/frontend/xsane-gamma.h b/src/xsane-gamma.h
index ed70175..124b21a 100644
--- a/frontend/xsane-gamma.h
+++ b/src/xsane-gamma.h
@@ -2,8 +2,8 @@
xsane-gamma.h
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -32,17 +32,27 @@ extern void xsane_update_slider(XsaneSlider *slider);
extern void xsane_update_sliders(void);
extern void xsane_create_slider(XsaneSlider *slider);
extern void xsane_create_histogram(GtkWidget *parent, const char *title, int width, int height, XsanePixmap *hist);
-extern void xsane_calculate_histogram(void);
-extern void xsane_update_histogram(void);
+extern void xsane_get_free_gamma_curve(gfloat *free_color_gamma_data, SANE_Int *gammadata,
+ int negative, double gamma, double brightness, double contrast,
+ int len, int maxout);
+extern void xsane_calculate_raw_histogram(void);
+extern void xsane_calculate_end_histogram(void);
+extern void xsane_update_histogram(int update_raw);
extern void xsane_histogram_toggle_button_callback(GtkWidget *widget, gpointer data);
-extern void xsane_create_gamma_curve(SANE_Int *gammadata, int negative, double gamma,
- double brightness, double contrast, int numbers, int maxout);
-extern void xsane_update_gamma(void);
+extern void xsane_create_gamma_curve(SANE_Int *gammadata,
+ int negative, double gamma, double brightness, double contrast,
+ double medium_shadow, double medium_highlight, double medium_gamma,
+ int numbers, int maxout);
+extern void xsane_update_gamma_curve(int update_raw);
extern void xsane_enhancement_by_gamma(void);
extern void xsane_enhancement_restore_default(void);
extern void xsane_enhancement_restore(void);
extern void xsane_enhancement_store(void);
-extern void xsane_enhancement_by_histogram(void);
+extern void xsane_enhancement_by_histogram(int update_gamma);
extern void xsane_create_histogram_dialog(const char *devicetext);
+extern void xsane_create_gamma_dialog(const char *devicetext);
+extern void xsane_update_gamma_dialog(void);
+extern void xsane_set_auto_enhancement(void);
+extern void xsane_set_medium(Preferences_medium_t *medium);
/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/src/xsane-gimp-1_0-compat.h b/src/xsane-gimp-1_0-compat.h
new file mode 100644
index 0000000..363c826
--- /dev/null
+++ b/src/xsane-gimp-1_0-compat.h
@@ -0,0 +1,50 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-gimp-1_0-compat.h
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 2000-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#ifndef XSANE_OLDGIMP_H
+#define XSANE_OLDGIMP_H
+
+#define GimpPlugInInfo GPlugInInfo
+#define GimpParam GParam
+#define GimpParamDef GParamDef
+#define GimpDrawable GDrawable
+#define GimpPixelRgn GPixelRgn
+#define GimpRunModeType GRunModeType
+#define GimpImageType GImageType
+
+#define GIMP_PDB_INT32 PARAM_INT32
+#define GIMP_PDB_STATUS PARAM_STATUS
+#define GIMP_PDB_CALLING_ERROR STATUS_CALLING_ERROR
+#define GIMP_PDB_SUCCESS STATUS_SUCCESS
+#define GIMP_RUN_INTERACTIVE RUN_INTERACTIVE
+#define GIMP_RUN_NONINTERACTIVE RUN_NONINTERACTIVE
+#define GIMP_RUN_WITH_LAST_VALS RUN_WITH_LAST_VALS
+#define GIMP_EXTENSION PROC_EXTENSION
+#define GIMP_RGB RGB
+#define GIMP_RGB_IMAGE RGB_IMAGE
+#define GIMP_GRAY GRAY
+#define GIMP_GRAY_IMAGE GRAY_IMAGE
+#define GIMP_RGBA_IMAGE RGBA_IMAGE
+#define GIMP_NORMAL_MODE NORMAL_MODE
+
+#endif
+
diff --git a/frontend/xsane-icons.c b/src/xsane-icons.c
index 3165ab6..baa5f32 100644
--- a/frontend/xsane-icons.c
+++ b/src/xsane-icons.c
@@ -2,8 +2,8 @@
xsane-icons.c
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -158,6 +158,56 @@ const char *warning_xpm[] =
/* --------------------------------------------------- */
+const char *info_xpm[] =
+{
+"40 40 4 1",
+" c None",
+". c #FFFFFF",
+"+ c #00A000",
+"@ c #000000",
+" ",
+" .. ",
+" .. ",
+" .++. ",
+" .++. ",
+" .++++. ",
+" .++++. ",
+" .++++++. ",
+" .++++++. ",
+" .++++++++. ",
+" .++++++++. ",
+" .++++++++++. ",
+" .++++@@++++. ",
+" .++++@@@@++++. ",
+" .+++@@@@@@+++. ",
+" .++++@@@@@@++++. ",
+" .+++@@@@@@@@+++. ",
+" .++++@@@@@@@@++++. ",
+" .++++@@@@@@@@++++. ",
+" .++++++@@@@@@++++++. ",
+" .++++++@@@@@@++++++. ",
+" .+++++++@@@@@@+++++++. ",
+" .+++++++@@@@@@+++++++. ",
+" .+++++++++@@@@+++++++++. ",
+" .+++++++++@@@@+++++++++. ",
+" .++++++++++@@@@++++++++++. ",
+" .+++++++++++@@+++++++++++. ",
+" .++++++++++++++++++++++++++. ",
+" .++++++++++++++++++++++++++. ",
+" .++++++++++++++++++++++++++++. ",
+" .+++++++++++++@@+++++++++++++. ",
+" .+++++++++++++@@@@+++++++++++++. ",
+" .+++++++++++++@@@@+++++++++++++. ",
+" .+++++++++++++++@@+++++++++++++++. ",
+" .++++++++++++++++++++++++++++++++. ",
+" .++++++++++++++++++++++++++++++++++. ",
+" .++++++++++++++++++++++++++++++++++. ",
+" ..++++++++++++++++++++++++++++++++++.. ",
+" ...................................... ",
+"........................................"
+};
+/* --------------------------------------------------- */
+
const char *file_xpm[] =
{
/* width height num_colors chars_per_pixel */
@@ -192,6 +242,347 @@ const char *file_xpm[] =
/* --------------------------------------------------- */
+const char *ocr_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+"* c #000000",
+". c #303030",
+"- c #505050",
+" none",
+/* pixels */
+" ",
+" ",
+" ***** **** *** ",
+" * * * * * * ",
+" * * * * * ",
+" ***** **** * ",
+" * * * * * ",
+" * * * * * * ",
+" * * **** *** ",
+" ",
+" ",
+" **** ***** ***** ",
+" * * * * ",
+" * * * * ",
+" * * *** **** ",
+" * * * * ",
+" * * * * ",
+" **** ***** * ",
+" ",
+" ",
+};
+
+/* --------------------------------------------------- */
+
+const char *scale_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+". c #000000",
+"* c #808080",
+"- c #a0a0a0",
+" none",
+/* pixels */
+" ",
+" ..........******** ",
+" . . * ",
+" . . * ",
+" . . * ",
+" . . * ",
+" . . * ",
+" . . * ",
+" .......... * ",
+" * - * ",
+" * - * ",
+" * - * ",
+" * - * ",
+" * - * ",
+" * - * ",
+" * -* ",
+" ****************** ",
+" ",
+" ",
+" "
+};
+
+/* --------------------------------------------------- */
+
+const char *despeckle_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+"* c #000000",
+". c #303030",
+"- c #505050",
+" none",
+/* pixels */
+" ",
+" .. .. .. - ",
+" .**. .**. .**. .-- ",
+" .**. .**. .**. --- ",
+" .. .. .. ---- ",
+" ----- ",
+" .. .. .------ ",
+" .**. .**. .------- ",
+" .**. .**. -------- ",
+" .. .. --------- ",
+" ---------- ",
+" .. .----------- ",
+" .**. .------------ ",
+" .**. ------------- ",
+" .. -------------- ",
+" --------------- ",
+" .---------------- ",
+" .----------------- ",
+" ------------------ ",
+" "
+};
+
+
+/* --------------------------------------------------- */
+
+const char *blur_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+"* c #000000",
+"+ c #404040",
+". c #707070",
+" none",
+/* pixels */
+" ",
+" ** ** ** . ",
+" ****************++ ",
+" ***************+++ ",
+" ** ** *+... ",
+" ** ** ++. ",
+" ** ** .++. ",
+" ** ** ..++. ",
+" **********++++++++ ",
+" *********+++++++++ ",
+" ** *+....++... ",
+" ** ++. .++. ",
+" ** .++. .++. ",
+" ** ..++....++... ",
+" ****++++++++++++++ ",
+" ***+++++++++++++++ ",
+" *+....++....++... ",
+" ++. .++. .++. ",
+" .++. .++. .++. ",
+" "
+};
+
+/* --------------------------------------------------- */
+
+const char *clone_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+"* c #000000",
+"+ c #404040",
+". c #808080",
+" none",
+/* pixels */
+" ",
+" ",
+" ******* ",
+" * * ",
+" * ",
+" * ",
+" * * * ",
+" * * * ",
+" * * * ",
+" * * ",
+" * * * ",
+" * * * ",
+" * * * ",
+" * ",
+" * ",
+" * ",
+" * ",
+" ******** ",
+" ",
+" "
+};
+
+/* --------------------------------------------------- */
+
+const char *rotate90_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+"* c #000000",
+"+ c #404040",
+". c #808080",
+" none",
+/* pixels */
+" ",
+" ",
+" ",
+" ******** ",
+" ********* ",
+" ** ",
+" ** ",
+" ** ",
+" ** ",
+" ** ",
+" * ** * ",
+" * ** * ",
+" **** ",
+" ** ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "
+};
+
+/* --------------------------------------------------- */
+
+const char *rotate180_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+"* c #000000",
+"+ c #404040",
+". c #808080",
+" none",
+/* pixels */
+" ",
+" ",
+" ",
+" ******** ",
+" ********* ",
+" ** ",
+" ** ",
+" ** ",
+" ** ",
+" ** ",
+" ** ",
+" ** ",
+" ** ",
+" * ** ",
+" * ** ",
+" ******** ",
+" ******* ",
+" * ",
+" * ",
+" "
+};
+
+/* --------------------------------------------------- */
+
+const char *rotate270_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+"* c #000000",
+"+ c #404040",
+". c #808080",
+" none",
+/* pixels */
+" ",
+" ",
+" ",
+" ******** ",
+" ********* ",
+" ** ",
+" ** ",
+" ** ",
+" ** ",
+" ** ",
+" * ** * ",
+" * ** * ",
+" **** ",
+" ** ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "
+};
+
+/* --------------------------------------------------- */
+
+const char *mirror_x_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+"* c #000000",
+"+ c #505050",
+". c #ffffff",
+" none",
+/* pixels */
+" ",
+" . ",
+" . ",
+" . ",
+" * . + ",
+" * . + ",
+" * * . + + ",
+" * * . + + ",
+" * * . + + ",
+" * * . + + ",
+" * * . + + ",
+" * * . + + ",
+" * *.+ +",
+" *********.+++++++++",
+" . ",
+" . ",
+" . ",
+" . ",
+" . ",
+" "
+};
+
+/* --------------------------------------------------- */
+
+const char *mirror_y_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+"* c #000000",
+"+ c #505050",
+". c #ffffff",
+" none",
+/* pixels */
+" * ",
+" * * ",
+" * * ",
+" * * ",
+" * * ",
+" * * ",
+" * * ",
+" * * ",
+" ********* ",
+" .................. ",
+" +++++++++ ",
+" + + ",
+" + + ",
+" + + ",
+" + + ",
+" + + ",
+" + + ",
+" + + ",
+" + ",
+" "
+};
+
+/* --------------------------------------------------- */
+
const char *fax_xpm[] =
{
/* width height num_colors chars_per_pixel */
@@ -237,20 +628,87 @@ const char *faxreceiver_xpm[] =
/* pixels */
" ",
" ********* ",
-" *****-----* ",
-" ****--------* ",
-" ****-----***-* ",
+" *********** ",
+" ************* ",
+" *********---* ",
+" *******------* ",
+" *****--------* ",
+" *****----***-* ",
" ****----*----* ",
" ***-------**--* ",
" ***------------* ",
" **--------------* ",
" **------------*** ",
" **-----------* ",
-" **----------* ",
" *-------*---* ",
" *--------*** ",
" *----------* ",
-" *----------* ",
+" *---------* ",
+" *------*** ",
+" *----* ",
+};
+
+/* --------------------------------------------------- */
+
+const char *mail_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+"* c #000000",
+". c #ffffff",
+"- c #e0e0e0",
+" none",
+/* pixels */
+" ",
+" ",
+" ",
+" ",
+" ****************** ",
+" **..............** ",
+" *.*............*.* ",
+" *..*..........*..* ",
+" *...*........*...* ",
+" *....*......*....* ",
+" *.....******.....* ",
+" *................* ",
+" *................* ",
+" *................* ",
+" *................* ",
+" ****************** ",
+" ",
+" ",
+" ",
+" "
+};
+
+/* --------------------------------------------------- */
+
+const char *mailreceiver_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 3 1",
+/* colors */
+"* c #000000",
+"- c #e0e0e0",
+" none",
+/* pixels */
+" ",
+" ********* ",
+" *********** ",
+" ************* ",
+" *********---* ",
+" *******------* ",
+" *****--------* ",
+" *****----***-* ",
+" ****----*----* ",
+" ***-------**--* ",
+" ***------------* ",
+" **--------------* ",
+" **------------*** ",
+" **-----------* ",
+" *-------*---* ",
+" *--------*** ",
" *----------* ",
" *---------* ",
" *------*** ",
@@ -259,42 +717,156 @@ const char *faxreceiver_xpm[] =
/* --------------------------------------------------- */
+const char *subject_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 3 1",
+/* colors */
+"* c #000000",
+"- c #303030",
+" none",
+/* pixels */
+" ",
+" ",
+" ****** ** ",
+" *** *** ** ",
+" ** ** ** ",
+" ** ** ",
+" ** ** ",
+" ** ** ",
+" ** ** ",
+" *** ** ",
+" ***** ** ",
+" ** ** ",
+" ** ** ",
+" ** ** ",
+" ** ** ",
+" ",
+" ** ** ",
+" ** ** ",
+" ",
+" ",
+};
+
+/* --------------------------------------------------- */
+
const char *colormode_xpm[] = {
/* width height num_colors chars_per_pixel */
-" 20 20 7 1",
+" 20 20 23 1",
/* colors */
". c #000000",
-"# c #0000ff",
-"a c #00ff00",
-"b c #7f7f7f",
-"d c #ff0000",
-"e c #ffffff",
-" none",
-/* pixels */
-" ",
-" eeeee ",
-" eeeee...... ",
-" eeeee......ddddddd ",
-" eeeee......ddddddd ",
-" eeeee......ddddddd ",
-" eeeee......ddddddd ",
-" eeeeebbbbbbddddddd ",
-" eeeeebbbbbbddddddd ",
-" .....bbbbbbaaaaaaa ",
-" .....bbbbbbaaaaaaa ",
-" .....bbbbbbaaaaaaa ",
-" .....eeeeeeaaaaaaa ",
-" .....eeeeeeaaaaaaa ",
-" .....eeeeee####### ",
-" .....eeeeee####### ",
-" .....eeeeee####### ",
-" eeeeee####### ",
-" ####### ",
+"R c #ff0000",
+"1 c #e04000",
+"2 c #c0800",
+"3 c #a0a000",
+"4 c #80c000",
+"5 c #40e000",
+"G c #00ff00",
+"6 c #00e040",
+"7 c #00c080",
+"8 c #00a0a0",
+"9 c #0080c0",
+"0 c #0040e0",
+"B c #0000ff",
+"a c #202020",
+"b c #404040",
+"c c #606060",
+"d c #808080",
+"e c #a0a0a0",
+"f c #c0c0c0",
+"g c #e0e0e0",
+"h c #ffffff",
+" none",
+/* pixels */
+" ",
+" hhhhh ",
+" hhhhh...... ",
+" hhhhh......RRRRRRR ",
+" hhhhhaaaaaaRRRRRRR ",
+" hhhhhbbbbbb1111111 ",
+" hhhhhbbbbbb2222222 ",
+" hhhhhcccccc3333333 ",
+" hhhhhcccccc4444444 ",
+" .....dddddd5555555 ",
+" .....ddddddGGGGGGG ",
+" .....eeeeeeGGGGGGG ",
+" .....eeeeee6666666 ",
+" .....ffffff7777777 ",
+" .....ffffff8888888 ",
+" .....gggggg9999999 ",
+" .....gggggg0000000 ",
+" hhhhhhBBBBBBB ",
+" BBBBBBB ",
+" "
+};
+
+/* --------------------------------------------------- */
+
+const char *medium_xpm[] = {
+/* width height num_colors chars_per_pixel */
+" 20 20 3 1",
+/* colors */
+". c #000000",
+"# c #a05020",
+" none",
+/* pixels */
+" ",
+" ################ ",
+" ################ ",
+" #..##########..# ",
+" #..##########..# ",
+" ################ ",
+" ################ ",
+" #..##########..# ",
+" #..##########..# ",
+" ################ ",
+" ################ ",
+" #..##########..# ",
+" #..##########..# ",
+" ################ ",
+" ################ ",
+" #..##########..# ",
+" #..##########..# ",
+" ################ ",
+" ################ ",
" "
};
/* --------------------------------------------------- */
+const char *medium_delete_xpm[] = {
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+". c #000000",
+"# c #a05020",
+"* c #000000",
+" none",
+/* pixels */
+"** **",
+"***##############***",
+" ***############*** ",
+" ***##########*** ",
+" #***########***# ",
+" ##***######***## ",
+" ###***####***### ",
+" #..#***##***#..# ",
+" #..##******##..# ",
+" ######****###### ",
+" ######****###### ",
+" #..##******##..# ",
+" #..#***##***#..# ",
+" ###***####***### ",
+" ##***######***## ",
+" #***########***# ",
+" ***##########*** ",
+" ***############** ",
+"***##############** ",
+"** **"
+};
+
+/* --------------------------------------------------- */
+
const char *Gamma_xpm[] =
{
/* width height num_colors chars_per_pixel */
@@ -685,6 +1257,38 @@ const char *contrast_blue_xpm[] =
/* --------------------------------------------------- */
+const char *threshold_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 3 1",
+/* colors */
+". c #000000",
+" none",
+"a c #ffffff",
+/* pixels */
+" ",
+" ",
+" ",
+" . ",
+" . ",
+" . ",
+" . ... . ",
+" . .a... . ",
+" .aa.... ",
+" .aaa..... ",
+" .aaaa...... ",
+" ....aaaa......... ",
+" .aaaa...... ",
+" .aaa..... ",
+" .aa.... ",
+" . .a... . ",
+" . ... . ",
+" . ",
+" . ",
+" . ",
+};
+/* --------------------------------------------------- */
+
const char *rgb_default_xpm[] =
{
/* width height num_colors chars_per_pixel */
@@ -1186,6 +1790,74 @@ const char *full_preview_area_xpm[] =
/* --------------------------------------------------- */
+const char *auto_select_preview_area_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+" none",
+". c #000000",
+"+ c #c0c0c0",
+"a c #ffffff",
+/* pixels */
+" ",
+" ................. ",
+" . . . ",
+" . . . . . ",
+" . ... . ",
+" . . . ",
+" . ....... . ",
+" . . . . ",
+" . . . . . . ",
+" . . . . . . ",
+" ...... ...... ",
+" . . . . . . ",
+" . . . . . . ",
+" . ....... . ",
+" . . . ",
+" . ... . ",
+" . . . . . ",
+" . . . ",
+" ................. ",
+" ",
+};
+
+/* --------------------------------------------------- */
+
+const char *delete_images_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+" none",
+". c #000000",
+"+ c #c0c0c0",
+"a c #ffffff",
+/* pixels */
+" ........ ",
+" .......... ",
+" ............ ",
+" ... .. ... ",
+" ... .. ... ",
+" .............. ",
+" ..... ..... ",
+" .......... ",
+" ........ ",
+" ...... ",
+" ...... ",
+".. ...... ..",
+".... .... ....",
+" ... ... ",
+" ... ... ",
+" .... ",
+" ... ... ",
+" ... ... ",
+".... ....",
+".. ..",
+};
+
+/* --------------------------------------------------- */
+
const char *printer_xpm[] =
{
/* width height num_colors chars_per_pixel */
@@ -1713,6 +2385,142 @@ const char *move_down_xpm[] =
/* --------------------------------------------------- */
+const char *scanning_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+". c #808080",
+"+ c #000000",
+"- c #ffffff",
+" none",
+/* pixels */
+" ",
+" ",
+" ",
+" +++++ ",
+" ++....+ ",
+" ++......+ ",
+" ++........+ ",
+" +..........- ",
+" +..........- ",
+" +..........- ",
+" +..........- ",
+" -........-- ",
+" -......-- ",
+" -....-- ",
+" ----- ",
+" ",
+" ",
+" ",
+" ",
+" ",
+};
+
+/* --------------------------------------------------- */
+
+const char *invalid_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+". c #ff0000",
+"+ c #000000",
+"- c #ffffff",
+" none",
+/* pixels */
+" ",
+" ",
+" ",
+" +++++ ",
+" ++....+ ",
+" ++......+ ",
+" ++........+ ",
+" +..........- ",
+" +..........- ",
+" +..........- ",
+" +..........- ",
+" -........-- ",
+" -......-- ",
+" -....-- ",
+" ----- ",
+" ",
+" ",
+" ",
+" ",
+" ",
+};
+
+/* --------------------------------------------------- */
+
+const char *valid_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+". c #00ff00",
+"+ c #000000",
+"- c #ffffff",
+" none",
+/* pixels */
+" ",
+" ",
+" ",
+" +++++ ",
+" ++....+ ",
+" ++......+ ",
+" ++........+ ",
+" +..........- ",
+" +..........- ",
+" +..........- ",
+" +..........- ",
+" -........-- ",
+" -......-- ",
+" -....-- ",
+" ----- ",
+" ",
+" ",
+" ",
+" ",
+" ",
+};
+
+/* --------------------------------------------------- */
+
+const char *incomplete_xpm[] =
+{
+/* width height num_colors chars_per_pixel */
+" 20 20 4 1",
+/* colors */
+". c #ffff00",
+"+ c #000000",
+"- c #ffffff",
+" none",
+/* pixels */
+" ",
+" ",
+" ",
+" +++++ ",
+" ++....+ ",
+" ++......+ ",
+" ++........+ ",
+" +..........- ",
+" +..........- ",
+" +..........- ",
+" +..........- ",
+" -........-- ",
+" -......-- ",
+" -....-- ",
+" ----- ",
+" ",
+" ",
+" ",
+" ",
+" ",
+};
+
+/* --------------------------------------------------- */
+
const unsigned char cursor_pipette_white[] =
{
0x00, 0x70, 0x00, 0xf8, 0x80, 0xff, 0x00, 0xfe, 0x00, 0x7d, 0x80, 0x38,
@@ -1748,4 +2556,3 @@ const unsigned char cursor_pipette_mask[] =
};
/* --------------------------------------------------- */
-
diff --git a/frontend/xsane-icons.h b/src/xsane-icons.h
index 538f9ea..c4d2ec7 100644
--- a/frontend/xsane-icons.h
+++ b/src/xsane-icons.h
@@ -2,8 +2,8 @@
xsane-icons.h
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -33,10 +33,26 @@
extern const char *xsane_window_icon_xpm[];
extern const char *error_xpm[];
extern const char *warning_xpm[];
+extern const char *info_xpm[];
extern const char *file_xpm[];
+extern const char *ocr_xpm[];
+extern const char *scale_xpm[];
+extern const char *despeckle_xpm[];
+extern const char *blur_xpm[];
+extern const char *clone_xpm[];
+extern const char *rotate90_xpm[];
+extern const char *rotate180_xpm[];
+extern const char *rotate270_xpm[];
+extern const char *mirror_x_xpm[];
+extern const char *mirror_y_xpm[];
extern const char *fax_xpm[];
extern const char *faxreceiver_xpm[];
+extern const char *mail_xpm[];
+extern const char *mailreceiver_xpm[];
+extern const char *subject_xpm[];
extern const char *colormode_xpm[];
+extern const char *medium_xpm[];
+extern const char *medium_delete_xpm[];
extern const char *Gamma_xpm[];
extern const char *Gamma_red_xpm[];
extern const char *Gamma_green_xpm[];
@@ -49,6 +65,7 @@ extern const char *contrast_xpm[];
extern const char *contrast_red_xpm[];
extern const char *contrast_green_xpm[];
extern const char *contrast_blue_xpm[];
+extern const char *threshold_xpm[];
extern const char *rgb_default_xpm[];
extern const char *negative_xpm[];
extern const char *enhance_xpm[];
@@ -63,6 +80,8 @@ extern const char *zoom_out_xpm[];
extern const char *zoom_in_xpm[];
extern const char *zoom_undo_xpm[];
extern const char *full_preview_area_xpm[];
+extern const char *auto_select_preview_area_xpm[];
+extern const char *delete_images_xpm[];
extern const char *printer_xpm[];
extern const char *zoom_xpm[];
extern const char *zoom_x_xpm[];
@@ -79,6 +98,10 @@ extern const char *pixel_xpm[];
extern const char *log_xpm[];
extern const char *move_up_xpm[];
extern const char *move_down_xpm[];
+extern const char *scanning_xpm[];
+extern const char *invalid_xpm[];
+extern const char *valid_xpm[];
+extern const char *incomplete_xpm[];
extern const char cursor_pipette_white[];
extern const char cursor_pipette_gray[];
extern const char cursor_pipette_black[];
diff --git a/src/xsane-license.txt b/src/xsane-license.txt
new file mode 100644
index 0000000..b5ab307
--- /dev/null
+++ b/src/xsane-license.txt
@@ -0,0 +1,108 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+
+ Preamble
+
+The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification follow.
+
+
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
+
+
+1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+
+
+2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+
+2a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
+
+2b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
+
+2c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+
+
+3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
+
+3a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+3b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+3c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
+
+
+4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+
+5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
+
+
+6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
+
+
+7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+
+
+8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+
+9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
+
+
+10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+
+ END OF TERMS AND CONDITIONS
diff --git a/frontend/xsane-logo.xpm b/src/xsane-logo.xpm
index cfe0a03..72f80c1 100644
--- a/frontend/xsane-logo.xpm
+++ b/src/xsane-logo.xpm
@@ -1,5 +1,5 @@
/* XPM */
-static char *xsane_64c[] = {
+static char *xsane_logo[] = {
/* width height ncolors chars_per_pixel */
"256 300 65 1",
/* colors */
@@ -54,7 +54,7 @@ static char *xsane_64c[] = {
"x c #7D7458",
"c c #C6C2B0",
"v c #EBE4C7",
-"b none",
+"b c None",
"n c #171CF9",
"m c #71684F",
"M c #15140F",
diff --git a/src/xsane-preferences.c b/src/xsane-preferences.c
new file mode 100644
index 0000000..4ceec06
--- /dev/null
+++ b/src/xsane-preferences.c
@@ -0,0 +1,536 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-preferences.c
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* --------------------------------------------------------------------- */
+
+#include "xsane.h"
+#include "xsane-preferences.h"
+#include "xsane-rc-io.h"
+
+#ifdef HAVE_LIBTIFF
+# include <tiffio.h>
+#else
+# define COMPRESSION_PACKBITS 32773
+# define COMPRESSION_JPEG 7
+# define COMPRESSION_CCITTFAX3 2
+#endif
+
+/* --------------------------------------------------------------------- */
+
+#define POFFSET(field) ((char *) &((Preferences *) 0)->field - (char *) 0)
+#define PFIELD(p,offset,type) (*((type *)(((char *)(p)) + (offset))))
+
+#define PRTOFFSET(field) ((char *) &((Preferences_printer_t *) 0)->field - (char *) 0)
+#define PAREAOFFSET(field) ((char *) &((Preferences_preset_area_t *) 0)->field - (char *) 0)
+#define PMEDIUMOFFSET(field) ((char *) &((Preferences_medium_t *) 0)->field - (char *) 0)
+
+/* --------------------------------------------------------------------- */
+
+/* *** ATTENTION *** : DO NOT ENTER STRINGS HERE !!! */
+
+Preferences preferences =
+ {
+ 0, /* xsane-version string */
+ 0, /* default path to temporary directory (not defined here) */
+ 0, /* no default filename */
+ 0137, /* image umask (permission mask for -rw-r------) */
+ 0027, /* directory umask (permission mask for -rwxr-x----) */
+ 0, /* no fax project */
+ 0, /* no default faxcommand */
+ 0, /* no default fax receiver option */
+ 0, /* no default fax postscript option */
+ 0, /* no default fax normal option */
+ 0, /* no default fax fine option */
+ 0, /* no fax viewer */
+ 215.70, /* fax_width: width of fax paper in mm */
+ 296.98, /* fax_height: height of fax paper in mm */
+ 0.0, /* fax_leftoffset */
+ 0.0, /* fax_bottomoffset */
+ 0, /* no default from email address */
+ 0, /* no default reply to email address */
+ 0, /* no default smtp server */
+ 25, /* default smtp port */
+ 0, /* no pop3 authentification */
+ 0, /* no default pop3 server */
+ 110, /* default pop3 port */
+ 0, /* no default pop3 user */
+ 0, /* no default pop3 passsword */
+ 0, /* no mail project */
+ 0, /* no mail viewer */
+ 0, /* no default ocrcommand */
+ 0, /* no default ocr input file option */
+ 0, /* no default ocr output file option */
+ 0, /* no doc viewer */
+ 80.0, /* jpeg_quality */
+ 7.0, /* png_compression */
+ COMPRESSION_PACKBITS, /* tiff_compression16_nr */
+ COMPRESSION_JPEG, /* tiff_compression8_nr */
+ COMPRESSION_CCITTFAX3, /* tiff_compression1_nr */
+ 1, /* save_devprefs_at_exit */
+ 1, /* overwrite_warning */
+ 1, /* skip_existing_numbers */
+ 0, /* reduce_16bit_to_8bit */
+ 1, /* filename_counter_step */
+ 4, /* filename_counter_len */
+ 1, /* tooltips enabled */
+ 1, /* (dont) show histogram */
+ 1, /* (dont) show gamma */
+ 1, /* (dont) show standard options */
+ 0, /* (dont) show advanced options */
+ 0, /* (dont) show resolution list */
+ 10.0, /* length unit */
+ 1, /* main window fixed (1) or scrolled (0) */
+ 0, /* preview_own_cmap */
+ 1.5, /* preview_oversampling */
+ 1.0, /* preview_gamma */
+ 1.0, /* preview_gamma_red */
+ 1.0, /* preview_gamma_green */
+ 1.0, /* preview_gamma_blue */
+ 1, /* disable_gimp_preview_gamma */
+ 12, /* preview_gamma_input_bits */
+ 3, /* preview_pipette_range */
+ 1.6, /* gamma */
+ 1.0, /* gamma red */
+ 1.0, /* gamma green */
+ 1.0, /* gamma blue */
+ 0.0, /* brightness */
+ 0.0, /* brightness red */
+ 0.0, /* brightness green */
+ 0.0, /* brightness blue */
+ 0.0, /* contrast */
+ 0.0, /* contrast red */
+ 0.0, /* contrast green */
+ 0.0, /* contrast blue */
+ 1, /* rgb default */
+ 0, /* negative */
+ 1, /* autoenhance_gamma: change gamma value with autoenhance button */
+ 1, /* preselect_scanarea after preview scan */
+ 1, /* auto_correct_colors after preview scan */
+ GTK_UPDATE_DISCONTINUOUS, /* update policy for gtk frontend sliders */
+ 0, /* psrotate: rotate in postscript mode (landscape) */
+ 0, /* preset_area_definitions */
+ 0, /* printernr */
+ 0 /* printerdefinitions */
+ };
+
+/* --------------------------------------------------------------------- */
+
+static struct
+ {
+ SANE_String name;
+ void (*codec) (Wire *w, void *p, long offset);
+ long offset;
+ }
+desc[] =
+ {
+ {"xsane-version", xsane_rc_pref_string, POFFSET(xsane_version_str)},
+ {"tmp-path", xsane_rc_pref_string, POFFSET(tmp_path)},
+ {"filename", xsane_rc_pref_string, POFFSET(filename)},
+ {"image-umask", xsane_rc_pref_int, POFFSET(image_umask)},
+ {"directory-umask", xsane_rc_pref_int, POFFSET(directory_umask)},
+ {"fax-project", xsane_rc_pref_string, POFFSET(fax_project)},
+ {"fax-command", xsane_rc_pref_string, POFFSET(fax_command)},
+ {"fax-receiver-option", xsane_rc_pref_string, POFFSET(fax_receiver_option)},
+ {"fax-postscript-option", xsane_rc_pref_string, POFFSET(fax_postscript_option)},
+ {"fax-normal-option", xsane_rc_pref_string, POFFSET(fax_normal_option)},
+ {"fax-fine-option", xsane_rc_pref_string, POFFSET(fax_fine_option)},
+ {"fax-viewer", xsane_rc_pref_string, POFFSET(fax_viewer)},
+ {"fax-width", xsane_rc_pref_double, POFFSET(fax_width)},
+ {"fax-height", xsane_rc_pref_double, POFFSET(fax_height)},
+ {"fax-left-offset", xsane_rc_pref_double, POFFSET(fax_leftoffset)},
+ {"fax-bottom-offset", xsane_rc_pref_double, POFFSET(fax_bottomoffset)},
+ {"mail-from", xsane_rc_pref_string, POFFSET(mail_from)},
+ {"mail-reply-to", xsane_rc_pref_string, POFFSET(mail_reply_to)},
+ {"mail-smtp-server", xsane_rc_pref_string, POFFSET(mail_smtp_server)},
+ {"mail-smtp-port", xsane_rc_pref_int, POFFSET(mail_smtp_port)},
+ {"mail-pop3-authentification", xsane_rc_pref_int, POFFSET(mail_pop3_authentification)},
+ {"mail-pop3-server", xsane_rc_pref_string, POFFSET(mail_pop3_server)},
+ {"mail-pop3-port", xsane_rc_pref_int, POFFSET(mail_pop3_port)},
+ {"mail-pop3-user", xsane_rc_pref_string, POFFSET(mail_pop3_user)},
+ {"mail-pop3-pass", xsane_rc_pref_string, POFFSET(mail_pop3_pass)},
+ {"mail-project", xsane_rc_pref_string, POFFSET(mail_project)},
+ {"mail-viewert", xsane_rc_pref_string, POFFSET(mail_viewer)},
+ {"ocr-command", xsane_rc_pref_string, POFFSET(ocr_command)},
+ {"ocr-inputfile-option", xsane_rc_pref_string, POFFSET(ocr_inputfile_option)},
+ {"ocr-outputfile-options", xsane_rc_pref_string, POFFSET(ocr_outputfile_option)},
+ {"doc-viewer", xsane_rc_pref_string, POFFSET(doc_viewer)},
+ {"jpeg-quality", xsane_rc_pref_double, POFFSET(jpeg_quality)},
+ {"png-compression", xsane_rc_pref_double, POFFSET(png_compression)},
+ {"tiff-compression16_nr", xsane_rc_pref_int, POFFSET(tiff_compression16_nr)},
+ {"tiff-compression8_nr", xsane_rc_pref_int, POFFSET(tiff_compression8_nr)},
+ {"tiff-compression1_nr", xsane_rc_pref_int, POFFSET(tiff_compression1_nr)},
+ {"save-devprefs-at-exit", xsane_rc_pref_int, POFFSET(save_devprefs_at_exit)},
+ {"overwrite-warning", xsane_rc_pref_int, POFFSET(overwrite_warning)},
+ {"skip-existing-numbers", xsane_rc_pref_int, POFFSET(skip_existing_numbers)},
+ {"reduce-16bit-to8bit", xsane_rc_pref_int, POFFSET(reduce_16bit_to_8bit)},
+ {"filename-counter-step", xsane_rc_pref_int, POFFSET(filename_counter_step)},
+ {"filename-counter-len", xsane_rc_pref_int, POFFSET(filename_counter_len)},
+ {"tool-tips", xsane_rc_pref_int, POFFSET(tooltips_enabled)},
+ {"show-histogram", xsane_rc_pref_int, POFFSET(show_histogram)},
+ {"show-gamma", xsane_rc_pref_int, POFFSET(show_gamma)},
+ {"show-standard-options", xsane_rc_pref_int, POFFSET(show_standard_options)},
+ {"show-advanced-options", xsane_rc_pref_int, POFFSET(show_advanced_options)},
+ {"show-resolution-list", xsane_rc_pref_int, POFFSET(show_resolution_list)},
+ {"length-unit", xsane_rc_pref_double, POFFSET(length_unit)},
+ {"main-window-fixed", xsane_rc_pref_int, POFFSET(main_window_fixed)},
+ {"preview-own-cmap", xsane_rc_pref_int, POFFSET(preview_own_cmap)},
+ {"preview-oversampling", xsane_rc_pref_double, POFFSET(preview_oversampling)},
+ {"preview-gamma", xsane_rc_pref_double, POFFSET(preview_gamma)},
+ {"preview-gamma-red", xsane_rc_pref_double, POFFSET(preview_gamma_red)},
+ {"preview-gamma-green", xsane_rc_pref_double, POFFSET(preview_gamma_green)},
+ {"preview-gamma-blue", xsane_rc_pref_double, POFFSET(preview_gamma_blue)},
+ {"disable-gimp-preview-gamma", xsane_rc_pref_int, POFFSET(disable_gimp_preview_gamma)},
+ {"preview-gamma-input-bits", xsane_rc_pref_int, POFFSET(preview_gamma_input_bits)},
+ {"preview-pipette-range", xsane_rc_pref_int, POFFSET(preview_pipette_range)},
+ {"gamma", xsane_rc_pref_double, POFFSET(xsane_gamma)},
+ {"gamma-red", xsane_rc_pref_double, POFFSET(xsane_gamma_red)},
+ {"gamma-green", xsane_rc_pref_double, POFFSET(xsane_gamma_green)},
+ {"gamma-blue", xsane_rc_pref_double, POFFSET(xsane_gamma_blue)},
+ {"brightness", xsane_rc_pref_double, POFFSET(xsane_brightness)},
+ {"brightness-red", xsane_rc_pref_double, POFFSET(xsane_brightness_red)},
+ {"brightness-green", xsane_rc_pref_double, POFFSET(xsane_brightness_green)},
+ {"brightness-blue", xsane_rc_pref_double, POFFSET(xsane_brightness_blue)},
+ {"contrast", xsane_rc_pref_double, POFFSET(xsane_contrast)},
+ {"contrast-red", xsane_rc_pref_double, POFFSET(xsane_contrast_red)},
+ {"contrast-green", xsane_rc_pref_double, POFFSET(xsane_contrast_green)},
+ {"contrast-blue", xsane_rc_pref_double, POFFSET(xsane_contrast_blue)},
+ {"rgb-default", xsane_rc_pref_int, POFFSET(xsane_rgb_default)},
+ {"negative", xsane_rc_pref_int, POFFSET(xsane_negative)},
+ {"auto-enhance-gamma", xsane_rc_pref_int, POFFSET(auto_enhance_gamma)},
+ {"preselect-scanarea", xsane_rc_pref_int, POFFSET(preselect_scanarea)},
+ {"auto-correct-colors", xsane_rc_pref_int, POFFSET(auto_correct_colors)},
+ {"gtk-update-policy", xsane_rc_pref_int, POFFSET(gtk_update_policy)},
+ {"postscript-rotate", xsane_rc_pref_int, POFFSET(psrotate)},
+ {"preset-area-definitions", xsane_rc_pref_int, POFFSET(preset_area_definitions)},
+ {"medium-definitions", xsane_rc_pref_int, POFFSET(medium_definitions)},
+ {"printernr", xsane_rc_pref_int, POFFSET(printernr)},
+ {"printerdefinitions", xsane_rc_pref_int, POFFSET(printerdefinitions)}
+ };
+
+/* --------------------------------------------------------------------- */
+
+static struct
+ {
+ SANE_String name;
+ void (*codec) (Wire *w, void *p, long offset);
+ long offset;
+ }
+desc_printer[] =
+ {
+ {"printer-name", xsane_rc_pref_string, PRTOFFSET(name)},
+ {"printer-command", xsane_rc_pref_string, PRTOFFSET(command)},
+ {"printer-copy-number-option", xsane_rc_pref_string, PRTOFFSET(copy_number_option)},
+ {"printer-lineart-resolution", xsane_rc_pref_int, PRTOFFSET(lineart_resolution)},
+ {"printer-grayscale-resolution", xsane_rc_pref_int, PRTOFFSET(grayscale_resolution)},
+ {"printer-color-resolution", xsane_rc_pref_int, PRTOFFSET(color_resolution)},
+ {"printer-width", xsane_rc_pref_double, PRTOFFSET(width)},
+ {"printer-height", xsane_rc_pref_double, PRTOFFSET(height)},
+ {"printer-left-offset", xsane_rc_pref_double, PRTOFFSET(leftoffset)},
+ {"printer-bottom-offset", xsane_rc_pref_double, PRTOFFSET(bottomoffset)},
+ {"printer-gamma", xsane_rc_pref_double, PRTOFFSET(gamma)},
+ {"printer-gamma-red", xsane_rc_pref_double, PRTOFFSET(gamma_red)},
+ {"printer-gamma-green", xsane_rc_pref_double, PRTOFFSET(gamma_green)},
+ {"printer-gamma-blue", xsane_rc_pref_double, PRTOFFSET(gamma_blue)}
+ };
+
+/* --------------------------------------------------------------------- */
+
+static struct
+ {
+ SANE_String name;
+ void (*codec) (Wire *w, void *p, long offset);
+ long offset;
+ }
+desc_preset_area[] =
+ {
+ {"preset-area-name", xsane_rc_pref_string, PAREAOFFSET(name)},
+ {"preset-area-xoffset", xsane_rc_pref_double, PAREAOFFSET(xoffset)},
+ {"preset-area-yoffset", xsane_rc_pref_double, PAREAOFFSET(yoffset)},
+ {"preset-area-width", xsane_rc_pref_double, PAREAOFFSET(width)},
+ {"preset-area-height", xsane_rc_pref_double, PAREAOFFSET(height)}
+ };
+
+/* --------------------------------------------------------------------- */
+
+static struct
+ {
+ SANE_String name;
+ void (*codec) (Wire *w, void *p, long offset);
+ long offset;
+ }
+desc_medium[] =
+ {
+ {"medium-name", xsane_rc_pref_string, PMEDIUMOFFSET(name)},
+ {"medium-shadow-gray", xsane_rc_pref_double, PMEDIUMOFFSET(shadow_gray)},
+ {"medium-shadow-red", xsane_rc_pref_double, PMEDIUMOFFSET(shadow_red)},
+ {"medium-shadow-green", xsane_rc_pref_double, PMEDIUMOFFSET(shadow_green)},
+ {"medium-shadow-blue", xsane_rc_pref_double, PMEDIUMOFFSET(shadow_blue)},
+ {"medium-highlight-gray", xsane_rc_pref_double, PMEDIUMOFFSET(highlight_gray)},
+ {"medium-highlight-red", xsane_rc_pref_double, PMEDIUMOFFSET(highlight_red)},
+ {"medium-highlight-green", xsane_rc_pref_double, PMEDIUMOFFSET(highlight_green)},
+ {"medium-highlight-blue", xsane_rc_pref_double, PMEDIUMOFFSET(highlight_blue)},
+ {"medium-gamma-gray", xsane_rc_pref_double, PMEDIUMOFFSET(gamma_gray)},
+ {"medium-gamma-red", xsane_rc_pref_double, PMEDIUMOFFSET(gamma_red)},
+ {"medium-gamma-green", xsane_rc_pref_double, PMEDIUMOFFSET(gamma_green)},
+ {"medium-gamma-blue", xsane_rc_pref_double, PMEDIUMOFFSET(gamma_blue)},
+ {"medium-negative", xsane_rc_pref_int, PMEDIUMOFFSET(negative)}
+ };
+
+/* --------------------------------------------------------------------- */
+
+void preferences_save(int fd)
+{
+ Wire w;
+ int i, n;
+
+ DBG(DBG_proc, "preferences_save\n");
+
+ w.io.fd = fd;
+ w.io.read = read;
+ w.io.write = write;
+ xsane_rc_io_w_init(&w);
+ xsane_rc_io_w_set_dir(&w, WIRE_ENCODE);
+
+ for (i = 0; i < NELEMS(desc); ++i)
+ {
+ DBG(DBG_info2, "saving preferences value for %s\n", desc[i].name);
+ xsane_rc_io_w_string(&w, &desc[i].name);
+ (*desc[i].codec) (&w, &preferences, desc[i].offset);
+ }
+
+ /* save printers */
+
+ n=0;
+
+ while (n < preferences.printerdefinitions)
+ {
+ DBG(DBG_info2, "saving preferences printer definition %s\n", preferences.printer[n]->name);
+ for (i = 0; i < NELEMS(desc_printer); ++i)
+ {
+ xsane_rc_io_w_string(&w, &desc_printer[i].name);
+ (*desc_printer[i].codec) (&w, preferences.printer[n], desc_printer[i].offset);
+ }
+ n++;
+ }
+
+ /* save preset areas */
+
+ n=1; /* start with number 1, number 0 (full size) is not saved */
+
+ while (n < preferences.preset_area_definitions)
+ {
+ DBG(DBG_info2, "saving preferences preset area definition %s\n", preferences.preset_area[n]->name);
+ for (i = 0; i < NELEMS(desc_preset_area); ++i)
+ {
+ xsane_rc_io_w_string(&w, &desc_preset_area[i].name);
+ (*desc_preset_area[i].codec) (&w, preferences.preset_area[n], desc_preset_area[i].offset);
+ }
+ n++;
+ }
+
+ /* save mediums */
+
+ n=0;
+
+ while (n < preferences.medium_definitions)
+ {
+ DBG(DBG_info2, "saving preferences medium definition %s\n", preferences.medium[n]->name);
+ for (i = 0; i < NELEMS(desc_medium); ++i)
+ {
+ xsane_rc_io_w_string(&w, &desc_medium[i].name);
+ (*desc_medium[i].codec) (&w, preferences.medium[n], desc_medium[i].offset);
+ }
+ n++;
+ }
+
+
+
+ xsane_rc_io_w_set_dir(&w, WIRE_DECODE); /* flush it out */
+ xsane_rc_io_w_exit(&w);
+}
+
+/* --------------------------------------------------------------------- */
+
+void preferences_restore(int fd)
+{
+ SANE_String name;
+ Wire w;
+ int i, n;
+
+ DBG(DBG_proc, "preferences_restore\n");
+
+ w.io.fd = fd;
+ w.io.read = read;
+ w.io.write = write;
+ xsane_rc_io_w_init(&w);
+ xsane_rc_io_w_set_dir(&w, WIRE_DECODE);
+
+ while (1)
+ {
+ xsane_rc_io_w_space(&w, 3);
+ if (w.status)
+ {
+ xsane_rc_io_w_exit(&w);
+ return;
+ }
+
+ xsane_rc_io_w_string(&w, &name);
+ if (w.status || !name)
+ {
+ xsane_rc_io_w_exit(&w);
+ return;
+ }
+
+ for (i = 0; i < NELEMS (desc); ++i)
+ {
+ if (strcmp(name, desc[i].name) == 0)
+ {
+ DBG(DBG_info2, "reading preferences value for %s\n", desc[i].name);
+ (*desc[i].codec) (&w, &preferences, desc[i].offset);
+ break;
+ }
+ }
+ if (!strcmp(name, "printerdefinitions"))
+ {
+ break;
+ }
+ }
+
+ preferences.printer = calloc(preferences.printerdefinitions, sizeof(void *));
+ n=0;
+ while (n < preferences.printerdefinitions)
+ {
+ preferences.printer[n] = calloc(sizeof(Preferences_printer_t), 1);
+ for (i = 0; i < NELEMS(desc_printer); ++i)
+ {
+ xsane_rc_io_w_space(&w, 3);
+ if (w.status)
+ {
+ xsane_rc_io_w_exit(&w);
+ return;
+ }
+
+ xsane_rc_io_w_string(&w, &name);
+ if (w.status || !name)
+ {
+ xsane_rc_io_w_exit(&w);
+ return;
+ }
+
+ if (strcmp(name, desc_printer[i].name) == 0)
+ {
+ (*desc_printer[i].codec) (&w, preferences.printer[n], desc_printer[i].offset);
+ }
+ else
+ {
+ break;
+ }
+ }
+ DBG(DBG_info2, "preferences printer definition %s read\n", preferences.printer[n]->name);
+ n++;
+ }
+
+ if (preferences.preset_area_definitions)
+ {
+ preferences.preset_area = calloc(preferences.preset_area_definitions, sizeof(void *));
+
+ preferences.preset_area[0] = calloc(sizeof(Preferences_preset_area_t), 1);
+ preferences.preset_area[0]->name = strdup(_(MENU_ITEM_SURFACE_FULL_SIZE));
+ preferences.preset_area[0]->xoffset = 0.0;
+ preferences.preset_area[0]->yoffset = 0.0;
+ preferences.preset_area[0]->width = INF;
+ preferences.preset_area[0]->height = INF;
+
+ n=1;
+ while (n < preferences.preset_area_definitions)
+ {
+ preferences.preset_area[n] = calloc(sizeof(Preferences_preset_area_t), 1);
+ for (i = 0; i < NELEMS(desc_preset_area); ++i)
+ {
+ xsane_rc_io_w_space(&w, 3);
+ if (w.status)
+ {
+ xsane_rc_io_w_exit(&w);
+ return;
+ }
+
+ xsane_rc_io_w_string(&w, &name);
+ if (w.status || !name)
+ {
+ xsane_rc_io_w_exit(&w);
+ return;
+ }
+
+ if (strcmp(name, desc_preset_area[i].name) == 0)
+ {
+ (*desc_preset_area[i].codec) (&w, preferences.preset_area[n], desc_preset_area[i].offset);
+ }
+ else
+ {
+ break;
+ }
+ }
+ DBG(DBG_info2, "preferences preset area definition %s read\n", preferences.preset_area[n]->name);
+ n++;
+ }
+ }
+
+ if (preferences.medium_definitions)
+ {
+ preferences.medium = calloc(preferences.medium_definitions, sizeof(void *));
+
+ n=0;
+ while (n < preferences.medium_definitions)
+ {
+ preferences.medium[n] = calloc(sizeof(Preferences_medium_t), 1);
+ for (i = 0; i < NELEMS(desc_medium); ++i)
+ {
+ xsane_rc_io_w_space(&w, 3);
+ if (w.status)
+ {
+ xsane_rc_io_w_exit(&w);
+ return;
+ }
+
+ xsane_rc_io_w_string(&w, &name);
+ if (w.status || !name)
+ {
+ xsane_rc_io_w_exit(&w);
+ return;
+ }
+
+ if (strcmp(name, desc_medium[i].name) == 0)
+ {
+ (*desc_medium[i].codec) (&w, preferences.medium[n], desc_medium[i].offset);
+ }
+ else
+ {
+ break;
+ }
+ }
+ DBG(DBG_info2, "preferences medium definition %s read\n", preferences.medium[n]->name);
+ n++;
+ }
+ }
+
+ xsane_rc_io_w_exit(&w);
+}
diff --git a/src/xsane-preferences.h b/src/xsane-preferences.h
new file mode 100644
index 0000000..a6686b5
--- /dev/null
+++ b/src/xsane-preferences.h
@@ -0,0 +1,190 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-preferences.h
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifndef xsane_preferences_h
+#define xsane_preferences_h
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#include <sane/sane.h>
+#include <gtk/gtk.h>
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+typedef struct
+ {
+ char *name; /* user defined printer name */
+ char *command; /* printercommand */
+ char *copy_number_option; /* option to define number of copies */
+ int lineart_resolution; /* printer resolution for lineart mode */
+ int grayscale_resolution; /* printer resolution for grayscale mode */
+ int color_resolution; /* printer resolution for color mode */
+ double width; /* printer width of printable area in mm */
+ double height; /* printer height of printable area in mm */
+ double leftoffset; /* printer left offset in mm */
+ double bottomoffset; /* printer bottom offset in mm */
+ double gamma; /* printer gamma */
+ double gamma_red; /* printer gamma red */
+ double gamma_green; /* printer gamma green */
+ double gamma_blue; /* printer gamma blue */
+ }
+Preferences_printer_t;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+typedef struct
+ {
+ char *name;
+ double xoffset;
+ double yoffset;
+ double width;
+ double height;
+ } Preferences_preset_area_t;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+typedef struct
+{
+ gchar *name;
+ double shadow_gray;
+ double shadow_red;
+ double shadow_green;
+ double shadow_blue;
+ double highlight_gray;
+ double highlight_red;
+ double highlight_green;
+ double highlight_blue;
+ double gamma_gray;
+ double gamma_red;
+ double gamma_green;
+ double gamma_blue;
+ int negative;
+} Preferences_medium_t;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+typedef struct
+ {
+ char *xsane_version_str; /* xsane-version string */
+ char *tmp_path; /* path to temporary directory */
+ char *filename; /* default filename */
+ int image_umask; /* image umask (permisson mask) */
+ int directory_umask; /* directory umask (permisson mask) */
+
+ char *fax_project; /* fax project */
+ char *fax_command; /* faxcommand */
+ char *fax_receiver_option; /* fax receiver option */
+ char *fax_postscript_option; /* fax postscript option */
+ char *fax_normal_option; /* fax normal mode option */
+ char *fax_fine_option; /* fax fine mode option */
+ char *fax_viewer; /* fax viewer */
+ double fax_width; /* width of fax paper in mm */
+ double fax_height; /* height of fax paper in mm */
+ double fax_leftoffset; /* left offset of fax paper in mm */
+ double fax_bottomoffset; /* bottom offset of fax paper in mm */
+
+ char *mail_from; /* email address of sender */
+ char *mail_reply_to; /* email address for replied emails */
+ char *mail_smtp_server; /* ip address or domain name of smtp server */
+ int mail_smtp_port; /* port to connect to smtp sever */
+ int mail_pop3_authentification; /* use pop3 login for authentification */
+ char *mail_pop3_server; /* ip address or domain name of pop3 server */
+ int mail_pop3_port; /* port to connect to pop3 server */
+ char *mail_pop3_user; /* user name for pop3 server */
+ char *mail_pop3_pass; /* password for pop3 server */
+ char *mail_project; /* mail project */
+ char *mail_viewer; /* mail viewer */
+
+ char *ocr_command; /* ocrcommand */
+ char *ocr_inputfile_option; /* option for input file */
+ char *ocr_outputfile_option; /* option for output file */
+
+ char *doc_viewer; /* doc viewer for helpfiles */
+
+ double jpeg_quality; /* quality when saving image as jpeg */
+ double png_compression; /* compression when saving image as pnm */
+ int tiff_compression16_nr; /* compression type nr when saving 16i bit image as tiff */
+ int tiff_compression8_nr; /* compression type nr when saving 8 bit image as tiff */
+ int tiff_compression1_nr; /* compression type nr when saving 1 bit image as tiff */
+ int save_devprefs_at_exit; /* save device preferences at exit */
+ int overwrite_warning; /* warn if file exists */
+ int skip_existing_numbers; /* skip used filenames when automatically increase counter */
+ int reduce_16bit_to_8bit; /* reduce images with 16 bits/color to 8 bits/color */
+ int filename_counter_step; /* filename_counter += filename_counter_step; */
+ int filename_counter_len; /* minimum length of filename_counter */
+
+ int tooltips_enabled; /* should tooltips be disabled? */
+ int show_histogram; /* show histogram ? */
+ int show_gamma; /* show gamma curve ? */
+ int show_standard_options; /* show standard options ? */
+ int show_advanced_options; /* show advanced options ? */
+ int show_resolution_list; /* show resolution list instead of slider ? */
+ double length_unit; /* 1.0==mm, 10.0==cm, 25.4==inches, etc. */
+ int main_window_fixed; /* fixed (1) or scrolled (0) main window */
+ int preview_own_cmap; /* install colormap for preview */
+ double preview_oversampling; /* resolution faktor for previews */
+ double preview_gamma; /* gamma value for previews */
+ double preview_gamma_red; /* red gamma value for previews */
+ double preview_gamma_green; /* green gamma value for previews */
+ double preview_gamma_blue; /* blue gamma value for previews */
+ int disable_gimp_preview_gamma; /* fixed (1) or scrolled (0) main window */
+ int preview_gamma_input_bits; /* handle preview gamma and histogram with # bits */
+ int preview_pipette_range; /* dimension of a square that is used to pick pipette color */
+ double xsane_gamma;
+ double xsane_gamma_red;
+ double xsane_gamma_green;
+ double xsane_gamma_blue;
+ double xsane_brightness;
+ double xsane_brightness_red;
+ double xsane_brightness_green;
+ double xsane_brightness_blue;
+ double xsane_contrast;
+ double xsane_contrast_red;
+ double xsane_contrast_green;
+ double xsane_contrast_blue;
+
+ int xsane_rgb_default;
+ int xsane_negative;
+ int auto_enhance_gamma; /* change gamma value with automatic color correction */
+ int preselect_scanarea; /* automatic selection of scanarea after preview scan */
+ int auto_correct_colors; /* automatic color correction after preview scan */
+ int gtk_update_policy;
+
+ int psrotate; /* rotate by 90 degree in postscript mode - landscape */
+ int printernr; /* number of printers */
+ int printerdefinitions;
+ Preferences_printer_t **printer;
+ int preset_area_definitions;
+ Preferences_preset_area_t **preset_area;
+ int medium_definitions;
+ Preferences_medium_t **medium;
+ }
+Preferences;
+
+extern Preferences preferences;
+
+extern void preferences_save (int fd);
+extern void preferences_restore (int fd);
+
+#endif /* preferences_h */
diff --git a/src/xsane-preview.c b/src/xsane-preview.c
new file mode 100644
index 0000000..da81e3f
--- /dev/null
+++ b/src/xsane-preview.c
@@ -0,0 +1,5997 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-preview.c
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/*
+
+ The preview strategy is as follows:
+ -----------------------------------
+
+ 1) The preview is done on the full scan area or a part of it.
+
+ 2) The preview is zoomable so the user can precisely pick
+ the selection area even for small scans on a large scan
+ surface.
+
+ 3) The preview window is resizeable.
+
+ 4) The preview scan resolution depends on preview window size
+ and the selected preview surface (zoom area).
+
+ 5) We let the user/backend pick whether a preview is in color,
+ grayscale, lineart or what not. The only options that the
+ preview may (temporarily) modify are:
+
+ - resolution (set so the preview fills the window)
+ - scan area options (top-left corner, bottom-right corner)
+ - preview option (to let the backend know we're doing a preview)
+ - gamma table is set to default (gamma=1.0)
+
+ 5) The initial size of the scan surface is determined based on the constraints
+ of the four corner coordinates. Missing constraints are replaced
+ by 0/+INF as appropriate (0 for top-left, +INF for bottom-right coords).
+
+ 6) Given the preview window size and the scan surface size, we
+ select the resolution so the acquired preview image just fits
+ in the preview window. The resulting resolution may be out
+ of range in which case we pick the minum/maximum if there is
+ a range or word-list constraint or a default value if there is
+ no such constraint.
+
+ 7) Once a preview image has been acquired, we know the size of the
+ preview image (in pixels). An initial scale factor is chosen
+ so the image fits into the preview window.
+
+ 8) Surface definitions:
+ device = surface of the scanner
+ image = same oriantation like device
+ preview = rotated (0/90/180/270 degree) device surface
+ window = same oriantation like device, may be different scaling
+
+*/
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#include "xsane.h"
+/* #include <sys/param.h> */
+#include "xsane-back-gtk.h"
+#include "xsane-front-gtk.h"
+#include "xsane-preview.h"
+#include "xsane-preferences.h"
+#include "xsane-gamma.h"
+#include <gdk/gdkkeysyms.h>
+
+
+#ifndef PATH_MAX
+# define PATH_MAX 1024
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* Cut fp conversion routines some slack: */
+#define GROSSLY_DIFFERENT(f1,f2) (fabs ((f1) - (f2)) > 1e-3)
+#define GROSSLY_EQUAL(f1,f2) (fabs ((f1) - (f2)) < 1e-3)
+
+#ifdef __alpha__
+ /* This seems to be necessary for at least some XFree86 3.1.2
+ servers. It's known to be necessary for the XF86_TGA server for
+ Linux/Alpha. Fortunately, it's no great loss so we turn this on
+ by default for now. */
+# define XSERVER_WITH_BUGGY_VISUALS
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static u_char *preview_gamma_data_red = 0;
+static u_char *preview_gamma_data_green = 0;
+static u_char *preview_gamma_data_blue = 0;
+
+static u_char *histogram_gamma_data_red = 0;
+static u_char *histogram_gamma_data_green = 0;
+static u_char *histogram_gamma_data_blue = 0;
+
+/* histogram_medium_gamma_data_* is used when medium correction is done after preview-scan by xsane */
+static u_char *histogram_medium_gamma_data_red = 0;
+static u_char *histogram_medium_gamma_data_green = 0;
+static u_char *histogram_medium_gamma_data_blue = 0;
+
+static int preview_gamma_input_bits;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* forward declarations */
+static void preview_rotate_devicesurface_to_previewsurface(int rotation, float dsurface[4], float *psurface);
+static void preview_rotate_previewsurface_to_devicesurface(int rotation, float psurface[4], float *dsurface);
+static void preview_transform_coordinates_device_to_window(Preview *p, float dcoordinate[4], float *win_coord);
+static void preview_transform_coordinate_window_to_device(Preview *p, float winx, float winy, float *previewx, float *previewy);
+static void preview_transform_coordinate_window_to_image(Preview *p, int winx, int winy, int *imagex, int *imagey);
+static void preview_order_selection(Preview *p);
+static void preview_bound_selection(Preview *p);
+static void preview_draw_rect(Preview *p, GdkWindow *win, GdkGC *gc, float coord[4]);
+static void preview_draw_selection(Preview *p);
+static void preview_update_selection(Preview *p);
+static void preview_establish_selection(Preview *p);
+/* static void preview_update_batch_selection(Preview *p); */
+static void preview_get_scale_device_to_image(Preview *p, float *xscalep, float *yscalep);
+static void preview_get_scale_device_to_window(Preview *p, float *xscalep, float *yscalep);
+static void preview_get_scale_window_to_image(Preview *p, float *xscalep, float *yscalep);
+static void preview_paint_image(Preview *p);
+static void preview_display_partial_image(Preview *p);
+static void preview_display_maybe(Preview *p);
+static void preview_display_image(Preview *p);
+static void preview_save_option(Preview *p, int option, void *save_loc, int *valid);
+static void preview_restore_option(Preview *p, int option, void *saved_value, int valid);
+static void preview_set_option(Preview *p, int option, void *value);
+static void preview_set_option_float(Preview *p, int option, float value);
+static void preview_set_option_val(Preview *p, int option, SANE_Int value);
+static int preview_increment_image_y(Preview *p);
+static void preview_read_image_data(gpointer data, gint source, GdkInputCondition cond);
+static void preview_scan_done(Preview *p, int save_image);
+static void preview_scan_start(Preview *p);
+static int preview_make_image_path(Preview *p, size_t filename_size, char *filename, int level);
+static void preview_restore_image(Preview *p);
+static gint preview_expose_event_handler_start(GtkWidget *window, GdkEvent *event, gpointer data);
+static gint preview_expose_event_handler_end(GtkWidget *window, GdkEvent *event, gpointer data);
+static gint preview_hold_event_handler(gpointer data);
+static gint preview_motion_event_handler(GtkWidget *window, GdkEvent *event, gpointer data);
+static gint preview_button_press_event_handler(GtkWidget *window, GdkEvent *event, gpointer data);
+static gint preview_button_release_event_handler(GtkWidget *window, GdkEvent *event, gpointer data);
+static void preview_start_button_clicked(GtkWidget *widget, gpointer data);
+static void preview_cancel_button_clicked(GtkWidget *widget, gpointer data);
+static void preview_area_correct(Preview *p);
+static void preview_save_image(Preview *p);
+static void preview_delete_images(Preview *p);
+static void preview_zoom_not(GtkWidget *window, gpointer data);
+static void preview_zoom_out(GtkWidget *window, gpointer data);
+static void preview_zoom_in(GtkWidget *window, gpointer data);
+static void preview_zoom_undo(GtkWidget *window, gpointer data);
+static void preview_get_color(Preview *p, int x, int y, int range, int *red, int *green, int *blue);
+static void preview_pipette_white(GtkWidget *window, gpointer data);
+static void preview_pipette_gray(GtkWidget *window, gpointer data);
+static void preview_pipette_black(GtkWidget *window, gpointer data);
+void preview_select_full_preview_area(Preview *p);
+static void preview_full_preview_area_callback(GtkWidget *widget, gpointer call_data);
+static void preview_delete_images_callback(GtkWidget *widget, gpointer call_data);
+static gint preview_preset_area_rename_callback(GtkWidget *widget, GtkWidget *preset_area_widget);
+static gint preview_preset_area_add_callback(GtkWidget *widget, GtkWidget *preset_area_widget);
+static gint preview_preset_area_delete_callback(GtkWidget *widget, GtkWidget *preset_area_widget);
+static gint preview_preset_area_move_up_callback(GtkWidget *widget, GtkWidget *preset_area_widget);
+static gint preview_preset_area_move_down_callback(GtkWidget *widget, GtkWidget *preset_area_widget);
+static gint preview_preset_area_context_menu_callback(GtkWidget *widget, GdkEvent *event);
+static void preview_preset_area_callback(GtkWidget *widget, gpointer call_data);
+static void preview_rotation_callback(GtkWidget *widget, gpointer call_data);
+static void preview_autoselect_scanarea_callback(GtkWidget *window, gpointer data);
+
+void preview_do_gamma_correction(Preview *p);
+void preview_calculate_raw_histogram(Preview *p, SANE_Int *count_raw, SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue);
+void preview_calculate_enh_histogram(Preview *p, SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue);
+void preview_gamma_correction(Preview *p, int gamma_input_bits,
+ u_char *gamma_red, u_char *gamma_green, u_char *gamma_blue,
+ u_char *gamma_red_hist, u_char *gamma_green_hist, u_char *gamma_blue_hist,
+ u_char *medium_gamma_red_hist, u_char *medium_gamma_green_hist, u_char *medium_gamma_blue_hist);
+void preview_area_resize(Preview *p);
+gint preview_area_resize_handler(GtkWidget *widget, GdkEvent *event, gpointer data);
+void preview_update_maximum_output_size(Preview *p);
+void preview_set_maximum_output_size(Preview *p, float width, float height);
+void preview_autoselect_scanarea(Preview *p, float *autoselect_coord);
+void preview_display_valid(Preview *p);
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_rotate_devicesurface_to_previewsurface(int rotation, float dsurface[4], float *psurface)
+{
+ DBG(DBG_proc, "preview_rotate_devicesurface_to_previewsurface(rotation = %d)\n", rotation);
+
+ switch (rotation & 3)
+ {
+ case 0: /* 0 degree */
+ default:
+ *(psurface+0) = dsurface[0];
+ *(psurface+1) = dsurface[1];
+ *(psurface+2) = dsurface[2];
+ *(psurface+3) = dsurface[3];
+ break;
+
+ case 1: /* 90 degree */
+ *(psurface+0) = dsurface[3];
+ *(psurface+1) = dsurface[0];
+ *(psurface+2) = dsurface[1];
+ *(psurface+3) = dsurface[2];
+ break;
+
+ case 2: /* 180 degree */
+ *(psurface+0) = dsurface[2];
+ *(psurface+1) = dsurface[3];
+ *(psurface+2) = dsurface[0];
+ *(psurface+3) = dsurface[1];
+ break;
+
+ case 3: /* 270 degree */
+ *(psurface+0) = dsurface[1];
+ *(psurface+1) = dsurface[2];
+ *(psurface+2) = dsurface[3];
+ *(psurface+3) = dsurface[0];
+ break;
+ }
+
+ if (rotation & 4) /* mirror in x direction */
+ {
+ float help=*(psurface+0);
+
+ *(psurface+0) = *(psurface+2);
+ *(psurface+2) = help;
+ }
+
+ DBG(DBG_info, "device[%3.2f %3.2f %3.2f %3.2f] -> preview[%3.2f %3.2f %3.2f %3.2f]\n",
+ dsurface[0], dsurface[1], dsurface[2], dsurface[3],
+ *(psurface+0), *(psurface+1), *(psurface+2), *(psurface+3));
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_rotate_previewsurface_to_devicesurface(int rotation, float psurface[4], float *dsurface)
+{
+ DBG(DBG_proc, "preview_rotate_previewsurface_to_devicesurface(rotation = %d)\n", rotation);
+
+ switch (rotation)
+ {
+ case 0: /* 0 degree */
+ default:
+ *(dsurface+0) = psurface[0];
+ *(dsurface+1) = psurface[1];
+ *(dsurface+2) = psurface[2];
+ *(dsurface+3) = psurface[3];
+ break;
+
+ case 1: /* 90 degree */
+ *(dsurface+0) = psurface[1];
+ *(dsurface+1) = psurface[2];
+ *(dsurface+2) = psurface[3];
+ *(dsurface+3) = psurface[0];
+ break;
+
+ case 2: /* 180 degree */
+ *(dsurface+0) = psurface[2];
+ *(dsurface+1) = psurface[3];
+ *(dsurface+2) = psurface[0];
+ *(dsurface+3) = psurface[1];
+ break;
+
+ case 3: /* 270 degree */
+ *(dsurface+0) = psurface[3];
+ *(dsurface+1) = psurface[0];
+ *(dsurface+2) = psurface[1];
+ *(dsurface+3) = psurface[2];
+ break;
+
+ case 4: /* 0 degree, x mirror */
+ *(dsurface+0) = psurface[2];
+ *(dsurface+1) = psurface[1];
+ *(dsurface+2) = psurface[0];
+ *(dsurface+3) = psurface[3];
+ break;
+
+ case 5: /* 90 degree, x mirror */
+ *(dsurface+0) = psurface[1];
+ *(dsurface+1) = psurface[0];
+ *(dsurface+2) = psurface[3];
+ *(dsurface+3) = psurface[2];
+ break;
+
+ case 6: /* 180 degree, x mirror */
+ *(dsurface+0) = psurface[0];
+ *(dsurface+1) = psurface[3];
+ *(dsurface+2) = psurface[2];
+ *(dsurface+3) = psurface[1];
+ break;
+
+ case 7: /* 270 degree, x mirror */
+ *(dsurface+0) = psurface[3];
+ *(dsurface+1) = psurface[2];
+ *(dsurface+2) = psurface[1];
+ *(dsurface+3) = psurface[0];
+ break;
+ }
+
+ DBG(DBG_info, "preview[%3.2f %3.2f %3.2f %3.2f] -> device[%3.2f %3.2f %3.2f %3.2f]\n",
+ psurface[0], psurface[1], psurface[2], psurface[3],
+ *(dsurface+0), *(dsurface+1), *(dsurface+2), *(dsurface+3));
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_transform_coordinates_device_to_window(Preview *p, float preview_coord[4], float *win_coord)
+{
+ float minx, maxx, miny, maxy;
+ float xscale, yscale;
+
+ DBG(DBG_proc, "preview_transform_coordinates_device_to_window\n");
+
+ preview_get_scale_device_to_window(p, &xscale, &yscale);
+
+ minx = preview_coord[0];
+ miny = preview_coord[1];
+ maxx = preview_coord[2];
+ maxy = preview_coord[3];
+
+ if (minx > maxx)
+ {
+ float val = minx;
+ minx = maxx;
+ maxx = val;
+ }
+
+ if (miny > maxy)
+ {
+ float val = miny;
+ miny = maxy;
+ maxy = val;
+ }
+
+ switch (p->rotation)
+ {
+ case 0: /* 0 degree */
+ default:
+ *(win_coord+0) = xscale * (minx - p->surface[0]);
+ *(win_coord+1) = yscale * (miny - p->surface[1]);
+ *(win_coord+2) = xscale * (maxx - p->surface[0]);
+ *(win_coord+3) = yscale * (maxy - p->surface[1]);
+ break;
+
+ case 1: /* 90 degree */
+ *(win_coord+0) = xscale * (p->surface[0] - maxx);
+ *(win_coord+1) = yscale * (miny - p->surface[1]);
+ *(win_coord+2) = xscale * (p->surface[0] - minx);
+ *(win_coord+3) = yscale * (maxy - p->surface[1]);
+ break;
+
+ case 2: /* 180 degree */
+ *(win_coord+0) = xscale * (p->surface[0] - maxx);
+ *(win_coord+1) = yscale * (p->surface[1] - maxy);
+ *(win_coord+2) = xscale * (p->surface[0] - minx);
+ *(win_coord+3) = yscale * (p->surface[1] - miny);
+ break;
+
+ case 3: /* 270 degree */
+ *(win_coord+0) = xscale * (minx - p->surface[0]);
+ *(win_coord+1) = yscale * (p->surface[1] - maxy);
+ *(win_coord+2) = xscale * (maxx - p->surface[0]);
+ *(win_coord+3) = yscale * (p->surface[1] - miny);
+ break;
+
+ case 4: /* 0 degree, x mirror */
+ *(win_coord+0) = xscale * (p->surface[0] - maxx);
+ *(win_coord+1) = yscale * (miny - p->surface[1]);
+ *(win_coord+2) = xscale * (p->surface[0] - minx);
+ *(win_coord+3) = yscale * (maxy - p->surface[1]);
+ break;
+
+ case 5: /* 90 degree, x mirror */
+ *(win_coord+0) = xscale * (minx - p->surface[0]);
+ *(win_coord+1) = yscale * (miny - p->surface[1]);
+ *(win_coord+2) = xscale * (maxx - p->surface[0]);
+ *(win_coord+3) = yscale * (maxy - p->surface[1]);
+ break;
+
+ case 6: /* 180 degree, x mirror */
+ *(win_coord+0) = xscale * (minx - p->surface[0]);
+ *(win_coord+1) = yscale * (p->surface[1] - maxy);
+ *(win_coord+2) = xscale * (maxx - p->surface[0]);
+ *(win_coord+3) = yscale * (p->surface[1] - miny);
+ break;
+
+ case 7: /* 270 degree, x mirror */
+ *(win_coord+0) = xscale * (p->surface[0] - maxx);
+ *(win_coord+1) = yscale * (p->surface[1] - maxy);
+ *(win_coord+2) = xscale * (p->surface[0] - minx);
+ *(win_coord+3) = yscale * (p->surface[1] - miny);
+ break;
+ }
+
+ DBG(DBG_info, "preview[%3.2f %3.2f %3.2f %3.2f] -> window[%3.2f %3.2f %3.2f %3.2f]\n",
+ preview_coord[0], preview_coord[1], preview_coord[2], preview_coord[3],
+ *(win_coord+0), *(win_coord+1), *(win_coord+2), *(win_coord+3) );
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_transform_coordinate_window_to_device(Preview *p, float winx, float winy, float *devicex, float *devicey)
+{
+ float xscale, yscale;
+
+ DBG(DBG_proc, "preview_transform_coordinate_window_to_device\n");
+
+ preview_get_scale_device_to_window(p, &xscale, &yscale);
+
+ switch (p->rotation)
+ {
+ case 0: /* 0 degree */
+ default:
+ *devicex = p->surface[0] + winx / xscale;
+ *devicey = p->surface[1] + winy / yscale;
+ break;
+
+ case 1: /* 90 degree */
+ *devicex = p->surface[0] - winx / xscale;
+ *devicey = p->surface[1] + winy / yscale;
+ break;
+
+ case 2: /* 180 degree */
+ *devicex = p->surface[0] - winx / xscale;
+ *devicey = p->surface[1] - winy / yscale;
+ break;
+
+ case 3: /* 270 degree */
+ *devicex = p->surface[0] + winx / xscale;
+ *devicey = p->surface[1] - winy / yscale;
+ break;
+
+ case 4: /* 0 degree, x mirror */
+ *devicex = p->surface[0] - winx / xscale;
+ *devicey = p->surface[1] + winy / yscale;
+ break;
+
+ case 5: /* 90 degree, x mirror */
+ *devicex = p->surface[0] + winx / xscale;
+ *devicey = p->surface[1] + winy / yscale;
+ break;
+
+ case 6: /* 180 degree, x mirror */
+ *devicex = p->surface[0] + winx / xscale;
+ *devicey = p->surface[1] - winy / yscale;
+ break;
+
+ case 7: /* 270 degree, x mirror */
+ *devicex = p->surface[0] - winx / xscale;
+ *devicey = p->surface[1] - winy / yscale;
+ break;
+ }
+
+ DBG(DBG_info, "window[%3.2f %3.2f] -> device[%3.2f %3.2f]\n", winx, winy, *devicex, *devicey);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_transform_coordinate_window_to_image(Preview *p, int winx, int winy, int *imagex, int *imagey)
+{
+ float xscale, yscale;
+
+ DBG(DBG_proc, "preview_transform_coordinate_window_to_image\n");
+
+ preview_get_scale_window_to_image(p, &xscale, &yscale);
+
+ switch (p->rotation)
+ {
+ case 0: /* 0 degree */
+ default:
+ *imagex = winx * xscale;
+ *imagey = winy * yscale;
+ break;
+
+ case 1: /* 90 degree */
+ *imagex = winy * yscale;
+ *imagey = p->image_height - winx * xscale;
+ break;
+
+ case 2: /* 180 degree */
+ *imagex = p->image_width - winx * xscale;
+ *imagey = p->image_height - winy * yscale;
+ break;
+
+ case 3: /* 270 degree */
+ *imagex = p->image_width - winy * yscale;
+ *imagey = winx * xscale;
+ break;
+
+ case 4: /* 0 degree, x mirror */
+ *imagex = p->image_width - winx * xscale;
+ *imagey = winy * yscale;
+ break;
+
+ case 5: /* 90 degree, x mirror */
+ *imagex = winy * yscale;
+ *imagey = winx * xscale;
+ break;
+
+ case 6: /* 180 degree, x mirror */
+ *imagex = winx * xscale;
+ *imagey = p->image_height - winy * yscale;
+ break;
+
+ case 7: /* 270 degree, x mirror */
+ *imagex = p->image_width - winy * yscale;
+ *imagey = p->image_height - winx * xscale;
+ break;
+ }
+
+ DBG(DBG_info, "window[%d %d] -> image[%d %d]\n", winx, winy, *imagex, *imagey);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_order_selection(Preview *p)
+{
+ float tmp_coordinate;
+
+ DBG(DBG_proc, "preview_order_selection\n");
+
+ p->selection.active = ( (p->selection.coordinate[0] != p->selection.coordinate[2]) &&
+ (p->selection.coordinate[1] != p->selection.coordinate[3]) );
+
+
+ if (p->selection.active)
+ {
+
+ if (p->selection.coordinate[p->index_xmin] > p->selection.coordinate[p->index_xmax])
+ {
+ tmp_coordinate = p->selection.coordinate[p->index_xmin];
+ p->selection.coordinate[p->index_xmin] = p->selection.coordinate[p->index_xmax];
+ p->selection.coordinate[p->index_xmax] = tmp_coordinate;
+
+ p->selection_xedge = (p->selection_xedge + 2) & 3;
+ }
+
+ if (p->selection.coordinate[p->index_ymin] > p->selection.coordinate[p->index_ymax])
+ {
+ tmp_coordinate = p->selection.coordinate[p->index_ymin];
+ p->selection.coordinate[p->index_ymin] = p->selection.coordinate[p->index_ymax];
+ p->selection.coordinate[p->index_ymax] = tmp_coordinate;
+
+ p->selection_yedge = (p->selection_yedge + 2) & 3;
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_bound_selection(Preview *p)
+{
+ DBG(DBG_proc, "preview_bound_selection\n");
+
+ p->selection.active = ( (p->selection.coordinate[0] != p->selection.coordinate[2]) &&
+ (p->selection.coordinate[1] != p->selection.coordinate[3]) );
+
+
+ if (p->selection.active)
+ {
+#if 0
+ xsane_bound_float(&p->selection.coordinate[0], p->scanner_surface[0], p->scanner_surface[2]);
+ xsane_bound_float(&p->selection.coordinate[2], p->scanner_surface[0], p->scanner_surface[2]);
+ xsane_bound_float(&p->selection.coordinate[1], p->scanner_surface[1], p->scanner_surface[3]);
+ xsane_bound_float(&p->selection.coordinate[3], p->scanner_surface[1], p->scanner_surface[3]);
+#endif
+ xsane_bound_float(&p->selection.coordinate[0], p->surface[0], p->surface[2]);
+ xsane_bound_float(&p->selection.coordinate[2], p->surface[0], p->surface[2]);
+ xsane_bound_float(&p->selection.coordinate[1], p->surface[1], p->surface[3]);
+ xsane_bound_float(&p->selection.coordinate[3], p->surface[1], p->surface[3]);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_draw_rect(Preview *p, GdkWindow *win, GdkGC *gc, float preview_coord[4])
+{
+ float win_coord[4];
+
+ DBG(DBG_proc, "preview_draw_rect [%3.2f %3.2f %3.2f %3.2f]\n", preview_coord[0], preview_coord[1], preview_coord[2], preview_coord[3]);
+
+ preview_transform_coordinates_device_to_window(p, preview_coord, win_coord);
+ gdk_draw_rectangle(win, gc, FALSE, win_coord[0], win_coord[1], win_coord[2]-win_coord[0] + 1, win_coord[3] - win_coord[1] + 1);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_draw_selection(Preview *p)
+{
+ DBG(DBG_proc, "preview_draw_selection\n");
+
+ if (!p->gc_selection) /* window isn't mapped yet */
+ {
+ return;
+ }
+
+ if ( (p->show_selection == FALSE) || (p->calibration) )
+ {
+ return;
+ }
+
+ if (p->previous_selection.active)
+ {
+ preview_draw_rect(p, p->window->window, p->gc_selection, p->previous_selection.coordinate);
+ }
+
+ if (p->selection.active)
+ {
+ preview_draw_rect(p, p->window->window, p->gc_selection, p->selection.coordinate);
+ }
+
+ p->previous_selection = p->selection;
+
+
+ if (!p->gc_selection_maximum) /* window isn't mapped yet */
+ {
+ return;
+ }
+
+ if (p->previous_selection_maximum.active)
+ {
+ preview_draw_rect(p, p->window->window, p->gc_selection_maximum, p->previous_selection_maximum.coordinate);
+ }
+
+ if (p->selection_maximum.active)
+ {
+ preview_draw_rect(p, p->window->window, p->gc_selection_maximum, p->selection_maximum.coordinate);
+ }
+
+ p->previous_selection_maximum = p->selection_maximum;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_update_selection(Preview *p)
+/* draw selection box as defined in backend */
+{
+ const SANE_Option_Descriptor *opt;
+ SANE_Status status;
+ SANE_Word val;
+ int i, optnum;
+ float coord[4];
+
+ DBG(DBG_proc, "preview_update_selection\n");
+
+ p->previous_selection = p->selection;
+
+ for (i = 0; i < 4; ++i)
+ {
+ optnum = xsane.well_known.coord[i];
+ if (optnum > 0)
+ {
+ opt = xsane_get_option_descriptor(xsane.dev, optnum);
+ status = xsane_control_option(xsane.dev, optnum, SANE_ACTION_GET_VALUE, &val, 0);
+ if (status != SANE_STATUS_GOOD)
+ {
+ continue;
+ }
+ if (opt->type == SANE_TYPE_FIXED)
+ {
+ coord[i] = SANE_UNFIX(val);
+ }
+ else
+ {
+ coord[i] = val;
+ }
+ }
+ else /* backend does not use scanarea options */
+ {
+ switch (i)
+ {
+ case 0:
+ case 1:
+ coord[i] = 0;
+ break;
+
+ case 2:
+ coord[i] = p->preview_width;
+ break;
+
+ case 3:
+ coord[i] = p->preview_height;
+ break;
+ }
+ }
+ }
+
+ preview_rotate_devicesurface_to_previewsurface(p->rotation, coord, p->selection.coordinate);
+
+ p->selection.active = ( (p->selection.coordinate[0] != p->selection.coordinate[2]) &&
+ (p->selection.coordinate[1] != p->selection.coordinate[3]));
+
+ preview_update_maximum_output_size(p);
+ preview_draw_selection(p);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_establish_selection(Preview *p)
+{
+ /* This routine only shall be called if the preview area really is changed. */
+ int i;
+ float coord[4];
+
+ DBG(DBG_proc, "preview_establish_selection\n");
+
+ preview_order_selection(p);
+
+ xsane.block_update_param = TRUE; /* do not change parameters each time */
+
+ preview_rotate_previewsurface_to_devicesurface(p->rotation, p->selection.coordinate, coord);
+
+ for (i = 0; i < 4; ++i)
+ {
+ preview_set_option_float(p, xsane.well_known.coord[i], coord[i]);
+ }
+
+ xsane_back_gtk_update_scan_window();
+
+ xsane.block_update_param = FALSE;
+
+ xsane_update_param(0);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#if 0
+static void preview_update_batch_selection(Preview *p)
+{
+ Batch_selection *batch_selection;
+
+ DBG(DBG_proc, "preview_update_batch_selection\n");
+
+ if (!p->gc_selection) /* window isn't mapped yet */
+ {
+ return;
+ }
+
+ batch_selection = p->batch_selection;
+
+ while (batch_selection)
+ {
+ preview_draw_rect(p, p->window->window, p->gc_selection, batch_selection->coordinate);
+
+ batch_selection = batch_selection->next;
+ }
+}
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_get_scale_device_to_image(Preview *p, float *xscalep, float *yscalep)
+{
+ float device_width, device_height;
+ float xscale = 1.0;
+ float yscale = 1.0;
+
+ device_width = fabs(p->image_surface[2] - p->image_surface[0]);
+ device_height = fabs(p->image_surface[3] - p->image_surface[1]);
+
+ if ( ((p->rotation & 3) == 0) || ((p->rotation & 3) == 2) ) /* 0 or 180 degree */
+ {
+ if ( (device_width >0) && (device_width < INF) )
+ {
+ xscale = p->image_width / device_width;
+ }
+
+ if ( (device_height >0) && (device_height < INF) )
+ {
+ yscale = p->image_height / device_height;
+ }
+ }
+ else /* 90 or 270 degree */
+ {
+ if ( (device_width >0) && (device_width < INF) )
+ {
+ xscale = p->image_height / device_width;
+ }
+
+ if ( (device_height >0) && (device_height < INF) )
+ {
+ yscale = p->image_width / device_height;
+ }
+ }
+
+#if 1
+ if (xscale > yscale)
+ {
+ yscale = xscale;
+ }
+ else
+ {
+ xscale = yscale;
+ }
+#endif
+
+ *xscalep = xscale;
+ *yscalep = yscale;
+
+ DBG(DBG_info, "preview_get_scale_device_to_image: scale = %f, %f\n", xscale, yscale);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_get_scale_device_to_window(Preview *p, float *xscalep, float *yscalep)
+{
+ float device_width, device_height;
+ float xscale = 1.0;
+ float yscale = 1.0;
+
+ /* device_* in device coords */
+ device_width = fabs(p->image_surface[2] - p->image_surface[0]);
+ device_height = fabs(p->image_surface[3] - p->image_surface[1]);
+
+ if ( (device_width >0) && (device_width < INF) )
+ {
+ xscale = p->preview_width / device_width; /* preview width is in window coords */
+ }
+
+ if ( (device_height >0) && (device_height < INF) )
+ {
+ yscale = p->preview_height / device_height; /* preview height is in window coords */
+ }
+
+ /* make sure pixels have square dimension */
+ if (xscale > yscale)
+ {
+ yscale = xscale;
+ }
+ else
+ {
+ xscale = yscale;
+ }
+
+ *xscalep = xscale;
+ *yscalep = yscale;
+
+ DBG(DBG_info, "preview_get_scale_device_to_window: scale = %f, %f\n", xscale, yscale);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_get_scale_window_to_image(Preview *p, float *xscalep, float *yscalep)
+{
+ float xscale = 1.0;
+ float yscale = 1.0;
+
+ switch (p->rotation & 3)
+ {
+ case 0: /* do not rotate - 0 degree */
+ case 2: /* rotate 180 degree */
+ default:
+ if (p->image_width > 0)
+ {
+ xscale = p->image_width / (float) p->preview_width;
+ }
+
+ if (p->image_height > 0)
+ {
+ yscale = p->image_height / (float) p->preview_height;
+ }
+ break;
+
+ case 1: /* rotate 90 degree */
+ case 3: /* rotate 270 degree */
+ if (p->image_height > 0)
+ {
+ xscale = p->image_height / (float) p->preview_width;
+ }
+
+ if (p->image_width > 0)
+ {
+ yscale = p->image_width / (float) p->preview_height;
+ }
+ break;
+
+ }
+
+ /* make sure pixels have square dimension */
+ if (xscale > yscale)
+ {
+ yscale = xscale;
+ }
+ else
+ {
+ xscale = yscale;
+ }
+
+ *xscalep = xscale;
+ *yscalep = yscale;
+
+ DBG(DBG_info, "preview_get_scale_window_to_image: scale = %f, %f\n", xscale, yscale);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_paint_image(Preview *p)
+{
+ float xscale, yscale, src_x, src_y;
+ int dst_x, dst_y, height, x, y, old_y, src_offset, x_direction;
+ int rotation;
+
+ DBG(DBG_proc, "preview_paint_image (rotation=%d)\n", p->rotation);
+
+ if (!p->image_data_enh)
+ {
+ return; /* no image data */
+ }
+
+ memset(p->preview_row, 0x80, 3 * p->preview_window_width);
+
+ old_y = -1;
+ height = 0;
+
+ rotation = p->rotation;
+ if (p->calibration) /* do not rotate calibration image */
+ {
+ p->rotation = 0;
+ xscale=1.0;
+ yscale=1.0;
+ }
+ else
+ {
+ preview_get_scale_window_to_image(p, &xscale, &yscale);
+ }
+
+
+ switch (p->rotation & 3)
+ {
+ case 0: /* do not rotate - 0 degree */
+ default:
+
+ /* don't draw last line unless it's complete: */
+ height = p->image_y; /* last line */
+
+ if (p->image_x == 0 && height < p->image_height)
+ {
+ ++height; /* use last line if it is complete */
+ }
+
+ src_y = 0.0; /* Source Y position index */
+
+ DBG(DBG_info, "preview_height=%d\n", p->preview_height);
+
+ for (dst_y = 0; dst_y < p->preview_height; ++dst_y)
+ {
+ y = (int) (src_y + 0.5);
+ if (y >= height)
+ {
+ break;
+ }
+
+ if (p->rotation & 4) /* mirror in x direction */
+ {
+ src_offset = (y+1) * 3 * p->image_width - 3;
+ x_direction = -1;
+ }
+ else /* not mirrored */
+ {
+ src_offset = y * 3 * p->image_width;
+ x_direction = 1;
+ }
+
+ if (old_y != y) /* create new line ? - not necessary if the same line is used several times */
+ {
+ old_y = y;
+ src_x = 0.0; /* Source X position index */
+
+ for (dst_x = 0; dst_x < p->preview_width; ++dst_x)
+ {
+ x = (int) (src_x + 0.5);
+ if (x >= p->image_width)
+ {
+ break;
+ }
+
+ p->preview_row[3*dst_x + 0] = p->image_data_enh[src_offset + x_direction * 3 * x + 0]; /* R */
+ p->preview_row[3*dst_x + 1] = p->image_data_enh[src_offset + x_direction * 3 * x + 1]; /* G */
+ p->preview_row[3*dst_x + 2] = p->image_data_enh[src_offset + x_direction * 3 * x + 2]; /* B */
+ src_x += xscale; /* calculate new source x position index */
+ }
+ }
+
+ gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, dst_y, p->preview_window_width);
+ src_y += yscale; /* calculate new source y position index */
+ }
+
+ memset(p->preview_row, 0x80, 3*p->preview_window_width);
+ for (; dst_y < p->preview_window_height; ++dst_y)
+ {
+ gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, dst_y, p->preview_window_width);
+ }
+ break;
+
+
+ case 1: /* 90 degree */
+ /* because we run in x direction we have to draw all rows all the time */
+
+ src_y = 0.0;
+
+ DBG(DBG_info, "height=%d\n", height);
+ DBG(DBG_info, "preview_height=%d\n", p->preview_height);
+
+ for (dst_y = 0; dst_y < p->preview_height; ++dst_y)
+ {
+ y = (int) (src_y + 0.5);
+ if (y >= p->image_width)
+ {
+ break;
+ }
+
+ if (p->rotation & 4) /* mirror in x direction */
+ {
+ src_offset = y * 3 + 3 * p->image_width * (p->image_height-1);
+ x_direction = -1;
+ }
+ else /* not mirrored */
+ {
+ src_offset = y * 3;
+ x_direction = 1;
+ }
+
+ if (old_y != y) /* create new line ? - not necessary if the same line is used several times */
+ {
+ old_y = y;
+ src_x = p->image_height - 1;
+
+ for (dst_x = 0; dst_x < p->preview_width; ++dst_x)
+ {
+ x = (int) (src_x + 0.5);
+ if (x < 0)
+ {
+ break;
+ }
+
+ p->preview_row[3*dst_x + 0] = p->image_data_enh[src_offset + x_direction * 3 * x * p->image_width + 0]; /* R */
+ p->preview_row[3*dst_x + 1] = p->image_data_enh[src_offset + x_direction * 3 * x * p->image_width + 1]; /* G */
+ p->preview_row[3*dst_x + 2] = p->image_data_enh[src_offset + x_direction * 3 * x * p->image_width + 2]; /* B */
+ src_x -= xscale;
+ }
+ }
+
+ gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, dst_y, p->preview_window_width);
+ src_y += yscale;
+ }
+
+ memset(p->preview_row, 0x80, 3*p->preview_window_width);
+ for (; dst_y < p->preview_window_height; ++dst_y)
+ {
+ gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, dst_y, p->preview_window_width);
+ }
+ break;
+
+
+ case 2: /* 180 degree */
+
+ /* don't draw last line unless it's complete: */
+ height = p->image_y; /* last line */
+
+ if ( (p->image_x == 0) && (height < p->image_height) )
+ {
+ ++height; /* use last line if it is complete */
+ }
+
+ src_y = 0; /* Source Y position index */
+
+ DBG(DBG_info, "height=%d\n", height);
+ DBG(DBG_info, "preview_height=%d\n", p->preview_height);
+
+ /* it looks like it is necessary to write row 0 at first */
+ memset(p->preview_row, 0x80, 3*p->preview_window_width);
+ gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, 0, p->preview_window_width);
+ for (dst_y = p->preview_height-1; dst_y >=0; --dst_y)
+ {
+ y = (int) (src_y + 0.5);
+ if (y >= height)
+ {
+ break;
+ }
+
+ if (p->rotation & 4) /* mirror in x direction */
+ {
+ src_offset = (y+1) * 3 * p->image_width - 3;
+ x_direction = -1;
+ }
+ else /* not mirrored */
+ {
+ src_offset = y * 3 * p->image_width;
+ x_direction = 1;
+ }
+
+ if (old_y != y) /* create new line ? - not necessary if the same line is used several times */
+ {
+ old_y = y;
+ src_x = p->image_width - 1;
+
+ for (dst_x = 0; dst_x < p->preview_width; ++dst_x)
+ {
+ x = (int) (src_x + 0.5);
+ if (x < 0)
+ {
+ break;
+ }
+
+ p->preview_row[3*dst_x + 0] = p->image_data_enh[src_offset + x_direction * 3 * x + 0]; /* R */
+ p->preview_row[3*dst_x + 1] = p->image_data_enh[src_offset + x_direction * 3 * x + 1]; /* G */
+ p->preview_row[3*dst_x + 2] = p->image_data_enh[src_offset + x_direction * 3 * x + 2]; /* B */
+ src_x -= xscale;
+ }
+ }
+
+ gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, dst_y, p->preview_window_width);
+ src_y += yscale;
+ }
+ dst_y = p->preview_height;
+
+ memset(p->preview_row, 0x80, 3*p->preview_window_width);
+ for (; dst_y < p->preview_window_height; ++dst_y)
+ {
+ gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, dst_y, p->preview_window_width);
+ }
+ break;
+
+
+ case 3: /* 270 degree */
+ /* because we run in x direction we have to draw all rows all the time */
+
+ src_y = 0.0;
+
+ DBG(DBG_info, "preview_height=%d\n", p->preview_height);
+
+ for (dst_y = 0; dst_y < p->preview_height; ++dst_y)
+ {
+ y = (int) (src_y + 0.5);
+ if (y >= p->image_width)
+ {
+ break;
+ }
+
+ if (p->rotation & 4) /* mirror in x direction */
+ {
+ src_offset = (p->image_width - y - 1) * 3 + 3 * p->image_width * (p->image_height - 1);
+ x_direction = -1;
+ }
+ else /* not mirrored */
+ {
+ src_offset = (p->image_width - y - 1) * 3;
+ x_direction = 1;
+ }
+
+ if (old_y != y) /* create new line ? - not necessary if the same line is used several times */
+ {
+ old_y = y;
+ src_x = 0.0;
+
+ for (dst_x = 0; dst_x < p->preview_width; ++dst_x)
+ {
+ x = (int) (src_x + 0.5);
+ if (x >= p->image_height)
+ {
+ break;
+ }
+
+ p->preview_row[3*dst_x + 0] = p->image_data_enh[src_offset + x_direction * 3 * x * p->image_width + 0]; /* R */
+ p->preview_row[3*dst_x + 1] = p->image_data_enh[src_offset + x_direction * 3 * x * p->image_width + 1]; /* G */
+ p->preview_row[3*dst_x + 2] = p->image_data_enh[src_offset + x_direction * 3 * x * p->image_width + 2]; /* B */
+ src_x += xscale;
+ }
+ }
+
+ gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, dst_y, p->preview_window_width);
+ src_y += yscale;
+ }
+
+ memset(p->preview_row, 0x80, 3*p->preview_window_width);
+ for (; dst_y < p->preview_window_height; ++dst_y)
+ {
+ gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, dst_y, p->preview_window_width);
+ }
+ break;
+ }
+
+ if (p->calibration) /* do not rotate calibration image */
+ {
+ p->rotation = rotation;
+ }
+
+ /* image is redrawn, we have no visible selections */
+ p->previous_selection.active = FALSE;
+ p->previous_selection_maximum.active = FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_display_partial_image(Preview *p)
+{
+ DBG(DBG_proc, "preview_display_partial_image\n");
+
+ preview_paint_image(p);
+
+ if (GTK_WIDGET_DRAWABLE(p->window))
+ {
+ GtkPreview *preview = GTK_PREVIEW(p->window);
+ int src_x, src_y;
+
+ src_x = (p->window->allocation.width - preview->buffer_width)/2;
+ src_y = (p->window->allocation.height - preview->buffer_height)/2;
+
+ gtk_preview_put(preview, p->window->window, p->window->style->black_gc, src_x, src_y,
+ 0, 0, p->preview_window_width, p->preview_window_height);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_display_maybe(Preview *p)
+{
+ time_t now;
+
+ DBG(DBG_proc, "preview_display_maybe\n");
+
+ time(&now);
+
+ if (now > p->image_last_time_updated) /* wait at least one secone */
+ {
+ p->image_last_time_updated = now;
+ preview_display_partial_image(p);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_display_image(Preview *p)
+{
+ DBG(DBG_proc, "preview_display_image\n");
+
+ /* if image height was unknown and got larger than expected get missing memory */
+ if (p->params.lines <= 0 && p->image_y < p->image_height)
+ {
+ p->image_height = p->image_y;
+
+ p->image_data_raw = realloc(p->image_data_raw, 6 * p->image_width * p->image_height);
+ p->image_data_enh = realloc(p->image_data_enh, 3 * p->image_width * p->image_height);
+ assert(p->image_data_raw);
+ assert(p->image_data_enh);
+ }
+
+ preview_do_gamma_correction(p);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_save_option(Preview *p, int option, void *save_loc, int *valid)
+{
+ SANE_Status status;
+
+ DBG(DBG_proc, "preview_save_option\n");
+
+ if (option <= 0)
+ {
+ *valid = 0;
+ return;
+ }
+
+ status = xsane_control_option(xsane.dev, option, SANE_ACTION_GET_VALUE, save_loc, 0);
+ *valid = (status == SANE_STATUS_GOOD);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_restore_option(Preview *p, int option, void *saved_value, int valid)
+{
+ const SANE_Option_Descriptor *opt;
+ SANE_Status status;
+ SANE_Handle dev;
+
+ DBG(DBG_proc, "preview_restore_option\n");
+
+ if (!valid)
+ {
+ return;
+ }
+
+ dev = xsane.dev;
+ status = xsane_control_option(dev, option, SANE_ACTION_SET_VALUE, saved_value, 0);
+
+ if (status != SANE_STATUS_GOOD)
+ {
+ char buf[256];
+ opt = xsane_get_option_descriptor(dev, option);
+ snprintf(buf, sizeof(buf), "%s %s: %s.", ERR_SET_OPTION, opt->name, XSANE_STRSTATUS(status));
+ xsane_back_gtk_error(buf, TRUE);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_set_option_float(Preview *p, int option, float value)
+{
+ const SANE_Option_Descriptor *opt;
+ SANE_Handle dev;
+ SANE_Word word;
+
+ DBG(DBG_proc, "preview_set_option_float\n");
+
+ if (option <= 0 || value <= -INF || value >= INF)
+ {
+ return;
+ }
+
+ dev = xsane.dev;
+ opt = xsane_get_option_descriptor(dev, option);
+ if (opt->type == SANE_TYPE_FIXED)
+ {
+ word = SANE_FIX(value);
+ }
+ else
+ {
+ word = value + 0.5;
+ }
+
+ xsane_control_option(dev, option, SANE_ACTION_SET_VALUE, &word, 0);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_set_option(Preview *p, int option, void *value)
+{
+ SANE_Handle dev;
+
+ DBG(DBG_proc, "preview_set_option\n");
+
+ if (option <= 0)
+ {
+ return;
+ }
+
+ dev = xsane.dev;
+ xsane_control_option(dev, option, SANE_ACTION_SET_VALUE, value, 0);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_set_option_val(Preview *p, int option, SANE_Int value)
+{
+ SANE_Handle dev;
+
+ DBG(DBG_proc, "preview_set_option_val\n");
+
+ if (option <= 0)
+ {
+ return;
+ }
+
+ dev = xsane.dev;
+ xsane_control_option(dev, option, SANE_ACTION_SET_VALUE, &value, 0);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int preview_test_image_y(Preview *p)
+{
+ if (p->image_y >= p->image_height) /* make sure backend does not send more data then expected */
+ {
+ char buf[256];
+
+ --p->image_y;
+ preview_scan_done(p, 1);
+ snprintf(buf, sizeof(buf), "%s", ERR_TOO_MUCH_DATA);
+ xsane_back_gtk_error(buf, TRUE);
+ return -1;
+ }
+
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int preview_increment_image_y(Preview *p)
+{
+ size_t extra_size, offset;
+ char buf[256];
+
+ DBG(DBG_proc, "preview_increment_image_y\n");
+
+ p->image_x = 0;
+ ++p->image_y;
+
+ if (p->params.lines <= 0 && p->image_y >= p->image_height) /* backend said it does not know image height */
+ {
+ offset = 3 * p->image_width*p->image_height;
+ extra_size = 3 * 32 * p->image_width;
+ p->image_height += 32;
+
+ p->image_data_raw = realloc(p->image_data_raw, (offset + extra_size) * 2);
+ p->image_data_enh = realloc(p->image_data_enh, offset + extra_size);
+
+ if ( (!p->image_data_enh) || (!p->image_data_raw) )
+ {
+ preview_scan_done(p, 0);
+ snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_ALLOCATE_IMAGE, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ return -1;
+ }
+ memset(p->image_data_enh + offset, 0xff, extra_size);
+ }
+
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_read_image_data(gpointer data, gint source, GdkInputCondition cond)
+{
+ SANE_Status status;
+ Preview *p = data;
+ u_char buf[8192];
+ guint16 *buf16 = (guint16 *) buf;
+ SANE_Handle dev;
+ SANE_Int len;
+ int i, j;
+ int offset = 0;
+ char last = 0;
+
+ DBG(DBG_proc, "preview_read_image_data\n");
+
+ dev = xsane.dev;
+ while (1)
+ {
+ if ((p->params.depth == 1) || (p->params.depth == 8))
+ {
+ status = sane_read(dev, buf, sizeof(buf), &len);
+ }
+ else if (p->params.depth == 16)
+ {
+ if (offset)
+ {
+ buf16[0] = last; /* ATTENTION: that is wrong! */
+ /* use sizeof(buf) here because sizeof(buf16) returns the size of a pointer */
+ status = sane_read(dev, ((SANE_Byte *) buf16) + 1, sizeof(buf) - 1, &len);
+ }
+ else
+ {
+ status = sane_read(dev, (SANE_Byte *) buf16, sizeof(buf), &len);
+ }
+
+ if (len % 2) /* odd number of bytes */
+ {
+ len--;
+ last = buf16[len];
+ offset = 1;
+ }
+ else /* even number of bytes */
+ {
+ offset = 0;
+ }
+ }
+ else /* bad bitdepth */
+ {
+ preview_scan_done(p, 0);
+ snprintf(buf, sizeof(buf), "%s %d.", ERR_PREVIEW_BAD_DEPTH, p->params.depth);
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+
+
+ if (!p->scanning) /* preview scan may have been canceled while sane_read was executed */
+ {
+ return; /* ok, the scan has been canceled */
+ }
+
+
+ if (status != SANE_STATUS_GOOD)
+ {
+ if (status == SANE_STATUS_EOF)
+ {
+ if (p->params.last_frame) /* got all preview image data */
+ {
+ p->invalid = FALSE; /* preview is valid now */
+ preview_scan_done(p, 1); /* scan is done, save image */
+ return; /* ok, all finished */
+ }
+ else
+ {
+ if (p->input_tag >= 0)
+ {
+ gdk_input_remove(p->input_tag);
+ p->input_tag = -1;
+ }
+ preview_scan_start(p);
+ break; /* exit while loop, display_maybe */
+ }
+ }
+ else if (status == SANE_STATUS_CANCELLED)
+ {
+ p->invalid = FALSE; /* preview is valid now - although it is cancled */
+ p->scan_incomplete = TRUE; /* preview is incomplete */
+ preview_scan_done(p, 1); /* save scanned part of the preview */
+ snprintf(buf, sizeof(buf), "%s", XSANE_STRSTATUS(status));
+ xsane_back_gtk_info(buf, TRUE);
+ return;
+ }
+
+ /* not SANE_STATUS_GOOD and not SANE_STATUS_EOF and not SANE_STATUS_CANCELLED */
+ preview_scan_done(p, 0);
+ snprintf(buf, sizeof(buf), "%s %s.", ERR_DURING_READ, XSANE_STRSTATUS(status));
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+
+ if (!len)
+ {
+ break; /* out of data for now */
+ }
+
+ switch (p->params.format)
+ {
+ case SANE_FRAME_RGB:
+ switch (p->params.depth)
+ {
+ case 8:
+ {
+ for (i = 0; i < len; ++i)
+ {
+ if (preview_test_image_y(p))
+ {
+ return; /* backend sends too much image data */
+ }
+
+ p->image_data_raw[p->image_offset] = buf[i] * 256;
+ p->image_data_enh[p->image_offset++] = buf[i];
+
+ if (p->image_offset%3 == 0)
+ {
+ if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0)
+ {
+ return;
+ }
+ }
+ }
+ }
+ break;
+
+ case 16:
+ {
+ for (i = 0; i < len/2; ++i)
+ {
+ if (preview_test_image_y(p))
+ {
+ return; /* backend sends too much image data */
+ }
+
+ p->image_data_raw[p->image_offset] = buf16[i];
+ p->image_data_enh[p->image_offset++] = (u_char) (buf16[i]/256);
+
+ if (p->image_offset%3 == 0)
+ {
+ if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0)
+ {
+ return;
+ }
+ }
+ }
+ }
+ break;
+
+ default:
+ preview_scan_done(p, 0);
+ snprintf(buf, sizeof(buf), "%s %d.", ERR_PREVIEW_BAD_DEPTH, p->params.depth);
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+ break;
+
+ case SANE_FRAME_GRAY:
+ switch (p->params.depth)
+ {
+ case 1:
+ for (i = 0; i < len; ++i)
+ {
+ u_char mask = buf[i];
+
+ if (preview_test_image_y(p))
+ {
+ return; /* backend sends too much image data */
+ }
+
+ for (j = 7; j >= 0; --j)
+ {
+ u_char gl = (mask & (1 << j)) ? 0x00 : 0xff;
+
+ p->image_data_raw[p->image_offset] = gl * 256;
+ p->image_data_enh[p->image_offset++] = gl;
+
+ p->image_data_raw[p->image_offset] = gl * 256;
+ p->image_data_enh[p->image_offset++] = gl;
+
+ p->image_data_raw[p->image_offset] = gl * 256;
+ p->image_data_enh[p->image_offset++] = gl;
+
+ if (++p->image_x >= p->image_width)
+ {
+ if (preview_increment_image_y(p) < 0)
+ {
+ return;
+ }
+ break; /* skip padding bits */
+ }
+ }
+ }
+ break;
+
+ case 8:
+ for (i = 0; i < len; ++i)
+ {
+ u_char gray = buf[i];
+
+ if (preview_test_image_y(p))
+ {
+ return; /* backend sends too much image data */
+ }
+
+ p->image_data_raw[p->image_offset] = gray * 256;
+ p->image_data_enh[p->image_offset++] = gray;
+
+ p->image_data_raw[p->image_offset] = gray * 256;
+ p->image_data_enh[p->image_offset++] = gray;
+
+ p->image_data_raw[p->image_offset] = gray * 256;
+ p->image_data_enh[p->image_offset++] = gray;
+ if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0)
+ {
+ return;
+ }
+ }
+ break;
+
+ case 16:
+ for (i = 0; i < len/2; ++i)
+ {
+ u_char gray = buf16[i]/256;
+
+ if (preview_test_image_y(p))
+ {
+ return; /* backend sends too much image data */
+ }
+
+ p->image_data_raw[p->image_offset] = buf16[i];
+ p->image_data_enh[p->image_offset++] = gray;
+
+ p->image_data_raw[p->image_offset] = buf16[i];
+ p->image_data_enh[p->image_offset++] = gray;
+
+ p->image_data_raw[p->image_offset] = buf16[i];
+ p->image_data_enh[p->image_offset++] = gray;
+
+ if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0)
+ {
+ return;
+ }
+ }
+ break;
+
+ default:
+ preview_scan_done(p, 0);
+ snprintf(buf, sizeof(buf), "%s %d.", ERR_PREVIEW_BAD_DEPTH, p->params.depth);
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+ break;
+
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ switch (p->params.depth)
+ {
+ case 1:
+ for (i = 0; i < len; ++i)
+ {
+ u_char mask = buf[i];
+
+ if (preview_test_image_y(p))
+ {
+ return; /* backend sends too much image data */
+ }
+
+ for (j = 0; j < 8; ++j)
+ {
+ u_char gl = (mask & 1) ? 0xff : 0x00;
+ mask >>= 1;
+
+ p->image_data_raw[p->image_offset] = gl * 256;
+ p->image_data_enh[p->image_offset++] = gl;
+
+ p->image_offset += 3;
+ if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0)
+ {
+ return;
+ }
+ }
+ }
+ break;
+
+ case 8:
+ for (i = 0; i < len; ++i)
+ {
+ if (preview_test_image_y(p))
+ {
+ return; /* backend sends too much image data */
+ }
+
+ p->image_data_raw[p->image_offset] = buf[i] * 256;
+ p->image_data_enh[p->image_offset] = buf[i];
+
+ p->image_offset += 3;
+ if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0)
+ {
+ return;
+ }
+ }
+ break;
+
+ case 16:
+ for (i = 0; i < len/2; ++i)
+ {
+ if (preview_test_image_y(p))
+ {
+ return; /* backend sends too much image data */
+ }
+
+ p->image_data_raw[p->image_offset] = buf16[i];
+ p->image_data_enh[p->image_offset] = (u_char) (buf16[i]/256);
+
+ p->image_offset += 3;
+ if (++p->image_x >= p->image_width && preview_increment_image_y(p) < 0)
+ {
+ return;
+ }
+ }
+ break;
+
+ default:
+ preview_scan_done(p, 0);
+ snprintf(buf, sizeof(buf), "%s %d.", ERR_PREVIEW_BAD_DEPTH, p->params.depth);
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+ break;
+
+ default:
+ preview_scan_done(p, 0);
+ snprintf(buf, sizeof(buf), "%s %d.", ERR_BAD_FRAME_FORMAT, p->params.format);
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+
+ if (p->input_tag < 0)
+ {
+ preview_display_maybe(p);
+ while (gtk_events_pending())
+ {
+ DBG(DBG_info, "preview_read_image_data: calling gtk_main_iteration\n");
+ gtk_main_iteration();
+ }
+ }
+ }
+ preview_display_maybe(p);
+
+ return;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_scan_done(Preview *p, int save_image)
+{
+ int i;
+
+ DBG(DBG_proc, "preview_scan_done\n");
+
+ p->scanning = FALSE;
+
+ if (p->input_tag >= 0)
+ {
+ gdk_input_remove(p->input_tag);
+ p->input_tag = -1;
+ }
+
+ sane_cancel(xsane.dev);
+
+ xsane.block_update_param = TRUE; /* do not change parameters each time */
+
+ preview_restore_option(p, xsane.well_known.dpi, &p->saved_dpi, p->saved_dpi_valid);
+ preview_restore_option(p, xsane.well_known.dpi_x, &p->saved_dpi_x, p->saved_dpi_x_valid);
+ preview_restore_option(p, xsane.well_known.dpi_y, &p->saved_dpi_y, p->saved_dpi_y_valid);
+
+ for (i = 0; i < 4; ++i)
+ {
+ preview_restore_option(p, xsane.well_known.coord[i], &p->saved_coord[i], p->saved_coord_valid[i]);
+ }
+
+ preview_restore_option(p, xsane.well_known.scanmode, &p->saved_scanmode, p->saved_scanmode_valid);
+
+ preview_restore_option(p, xsane.well_known.bit_depth, &p->saved_bit_depth, p->saved_bit_depth_valid);
+
+ preview_set_option_val(p, xsane.well_known.preview, SANE_FALSE);
+
+ gtk_widget_set_sensitive(p->cancel, FALSE);
+ xsane_set_sensitivity(TRUE);
+
+ xsane.block_update_param = FALSE;
+
+ preview_update_selection(p);
+
+ if (save_image)
+ {
+ preview_save_image(p); /* save preview image */
+ preview_display_image(p);
+ }
+
+ preview_update_surface(p, 1); /* if surface was not defined it's necessary to redefine it now */
+
+ xsane_update_histogram(TRUE /* update raw */);
+
+ sane_get_parameters(xsane.dev, &xsane.param); /* update xsane.param */
+
+ if ( (preferences.preselect_scanarea) && (!p->startimage))
+ {
+ preview_autoselect_scanarea(p, p->selection.coordinate); /* get autoselection coordinates */
+ preview_draw_selection(p);
+ preview_establish_selection(p);
+ xsane_update_histogram(TRUE /* update_raw */); /* update histogram (necessary because overwritten by preview_update_surface) */
+ }
+
+ if (preferences.auto_correct_colors)
+ {
+ xsane_calculate_raw_histogram();
+ xsane_set_auto_enhancement();
+ xsane_enhancement_by_histogram(preferences.auto_enhance_gamma);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int preview_get_memory(Preview *p)
+{
+ char buf[256];
+
+ DBG(DBG_proc, "preview_get_memory\n");
+
+ if (p->image_data_enh)
+ {
+ free(p->image_data_enh);
+ p->image_data_enh = 0;
+ }
+
+ if (p->image_data_raw)
+ {
+ free(p->image_data_raw);
+ p->image_data_raw = 0;
+ }
+
+ if (p->preview_row)
+ {
+ free(p->preview_row);
+ p->preview_row = 0;
+ }
+
+ p->image_data_raw = malloc(6 * p->image_width * p->image_height);
+ p->image_data_enh = malloc(3 * p->image_width * p->image_height);
+ p->preview_row = malloc(3 * p->preview_window_width);
+
+ if ( (!p->image_data_raw) || (!p->image_data_enh) || (!p->preview_row) )
+ {
+ if (p->image_data_enh)
+ {
+ free(p->image_data_enh);
+ p->image_data_enh = 0;
+ }
+
+ if (p->image_data_raw)
+ {
+ free(p->image_data_raw);
+ p->image_data_raw = 0;
+ }
+
+ if (p->preview_row)
+ {
+ free(p->preview_row);
+ p->preview_row = 0;
+ }
+
+ DBG(DBG_error, "failed to allocate image buffer: %s", strerror(errno));
+ snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_ALLOCATE_IMAGE, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+
+ return -1; /* error */
+ }
+
+ memset(p->image_data_raw, 0x80, 6*p->image_width*p->image_height); /* clean memory */
+ memset(p->image_data_enh, 0x80, 3*p->image_width*p->image_height); /* clean memory */
+
+ return 0; /* ok */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* preview_scan_start is called 3 times in 3 pass color scanning mode */
+static void preview_scan_start(Preview *p)
+{
+ SANE_Handle dev = xsane.dev;
+ SANE_Status status;
+ char buf[256];
+ int fd, y;
+ int gamma_gray_size = 256; /* set this values to image depth for more than 8bpp input support!!! */
+ int gamma_red_size = 256;
+ int gamma_green_size = 256;
+ int gamma_blue_size = 256;
+ int gamma_gray_max = 255; /* set this to to image depth for more than 8bpp output support */
+ int gamma_red_max = 255;
+ int gamma_green_max = 255;
+ int gamma_blue_max = 255;
+
+ DBG(DBG_proc, "preview_scan_start\n");
+
+ xsane.medium_changed = FALSE;
+
+ preview_display_valid(p);
+
+ p->startimage = 0; /* we start the scan so lets say the startimage is not displayed any more */
+
+ p->image_surface[0] = p->surface[p->index_xmin];
+ p->image_surface[1] = p->surface[p->index_ymin];
+ p->image_surface[2] = p->surface[p->index_xmax];
+ p->image_surface[3] = p->surface[p->index_ymax];
+
+ gtk_widget_set_sensitive(p->cancel, TRUE);
+ xsane_set_sensitivity(FALSE);
+
+ /* clear preview row */
+ memset(p->preview_row, 0xff, 3*p->preview_width);
+
+ for (y = 0; y < p->preview_height; ++y)
+ {
+ gtk_preview_draw_row(GTK_PREVIEW(p->window), p->preview_row, 0, y, p->preview_width);
+ }
+
+ if (p->input_tag >= 0)
+ {
+ gdk_input_remove(p->input_tag);
+ p->input_tag = -1;
+ }
+
+ if (xsane.well_known.gamma_vector >0)
+ {
+ const SANE_Option_Descriptor *opt;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector);
+ if (SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ SANE_Int *gamma_data;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector);
+ gamma_gray_size = opt->size / sizeof(opt->type);
+ gamma_gray_max = opt->constraint.range->max;
+
+ gamma_data = malloc(gamma_gray_size * sizeof(SANE_Int));
+
+ if ((xsane.xsane_colors > 1) || (xsane.no_preview_medium_gamma)) /* color scan or medium preview gamma disabled */
+ {
+ xsane_create_gamma_curve(gamma_data, 0, 1.0, 0.0, 0.0, 0.0, 100.0, 1.0, gamma_gray_size, gamma_gray_max);
+ }
+ else /* grayscale scan */
+ {
+ xsane_create_gamma_curve(gamma_data, xsane.medium_negative, 1.0, 0.0, 0.0,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ gamma_gray_size, gamma_gray_max);
+ }
+
+ xsane_back_gtk_update_vector(xsane.well_known.gamma_vector, gamma_data);
+ free(gamma_data);
+ }
+ }
+
+ if (xsane.well_known.gamma_vector_r >0)
+ {
+ const SANE_Option_Descriptor *opt;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector_r);
+ if (SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ SANE_Int *gamma_data_red, *gamma_data_green, *gamma_data_blue;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector_r);
+ gamma_red_size = opt->size / sizeof(opt->type);
+ gamma_red_max = opt->constraint.range->max;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector_g);
+ gamma_green_size = opt->size / sizeof(opt->type);
+ gamma_green_max = opt->constraint.range->max;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector_b);
+ gamma_blue_size = opt->size / sizeof(opt->type);
+ gamma_blue_max = opt->constraint.range->max;
+
+ gamma_data_red = malloc(gamma_red_size * sizeof(SANE_Int));
+ gamma_data_green = malloc(gamma_green_size * sizeof(SANE_Int));
+ gamma_data_blue = malloc(gamma_blue_size * sizeof(SANE_Int));
+
+ if (xsane.no_preview_medium_gamma) /* do not use medium gamma for preview */
+ {
+ DBG(DBG_info, "preview: not using medium gamma table\n");
+
+ xsane_create_gamma_curve(gamma_data_red, 0, 1.0, 0.0, 0.0, 0.0, 100.0, 1.0, gamma_red_size, gamma_red_max);
+ xsane_create_gamma_curve(gamma_data_green, 0, 1.0, 0.0, 0.0, 0.0, 100.0, 1.0, gamma_green_size, gamma_green_max);
+ xsane_create_gamma_curve(gamma_data_blue, 0, 1.0, 0.0, 0.0, 0.0, 100.0, 1.0, gamma_blue_size, gamma_blue_max);
+ }
+ else /* use medium gamma for preview */
+ {
+ DBG(DBG_info, "preview: using medium gamma table\n");
+
+ xsane_create_gamma_curve(gamma_data_red, xsane.medium_negative, 1.0, 0.0, 0.0,
+ xsane.medium_shadow_red, xsane.medium_highlight_red, xsane.medium_gamma_red,
+ gamma_red_size, gamma_red_max);
+ xsane_create_gamma_curve(gamma_data_green, xsane.medium_negative, 1.0, 0.0, 0.0,
+ xsane.medium_shadow_green, xsane.medium_highlight_green, xsane.medium_gamma_green,
+ gamma_green_size, gamma_green_max);
+ xsane_create_gamma_curve(gamma_data_blue, xsane.medium_negative, 1.0, 0.0, 0.0,
+ xsane.medium_shadow_blue, xsane.medium_highlight_blue, xsane.medium_gamma_blue,
+ gamma_blue_size, gamma_blue_max);
+ }
+
+ xsane_back_gtk_update_vector(xsane.well_known.gamma_vector_r, gamma_data_red);
+ xsane_back_gtk_update_vector(xsane.well_known.gamma_vector_g, gamma_data_green);
+ xsane_back_gtk_update_vector(xsane.well_known.gamma_vector_b, gamma_data_blue);
+
+ free(gamma_data_red);
+ free(gamma_data_green);
+ free(gamma_data_blue);
+ }
+ }
+
+ status = sane_start(dev);
+ if (status != SANE_STATUS_GOOD)
+ {
+ preview_scan_done(p, 0);
+ snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_START_SCANNER, XSANE_STRSTATUS(status));
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+
+ status = sane_get_parameters(dev, &p->params);
+ if (status != SANE_STATUS_GOOD)
+ {
+ preview_scan_done(p, 0);
+ snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_GET_PARAMS, XSANE_STRSTATUS(status));
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+
+ p->image_offset = p->image_x = p->image_y = 0;
+
+ if (p->params.format >= SANE_FRAME_RED && p->params.format <= SANE_FRAME_BLUE)
+ {
+ p->image_offset = p->params.format - SANE_FRAME_RED;
+ }
+
+ if ( (!p->image_data_enh) || (p->params.pixels_per_line != p->image_width)
+ || ( (p->params.lines >= 0) && (p->params.lines != p->image_height) ) )
+ {
+ p->image_width = p->params.pixels_per_line;
+ p->image_height = p->params.lines;
+
+ if (p->image_height < 0)
+ {
+ p->image_height = 32; /* may have to adjust as we go... */
+ }
+
+ if (preview_get_memory(p))
+ {
+ preview_scan_done(p, 0); /* error */
+ snprintf(buf, sizeof(buf), "%s", ERR_NO_MEM);
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+ }
+ else if (p->scanning == FALSE) /* single pass scan or first run in 3 pass mode */
+ {
+ memset(p->image_data_raw, 0x80, 6*p->image_width*p->image_height); /* clean memory */
+ memset(p->image_data_enh, 0x80, 3*p->image_width*p->image_height); /* clean memory */
+ }
+
+ /* we do not have any active selection (image is redrawn while scanning) */
+ p->selection.active = FALSE;
+ p->previous_selection_maximum.active = FALSE;
+
+#ifndef BUGGY_GDK_INPUT_EXCEPTION
+ /* for unix */
+ if ((sane_set_io_mode(dev, SANE_TRUE) == SANE_STATUS_GOOD) && (sane_get_select_fd(dev, &fd) == SANE_STATUS_GOOD))
+ {
+ p->input_tag = gdk_input_add(fd, GDK_INPUT_READ | GDK_INPUT_EXCEPTION, preview_read_image_data, p);
+ }
+ else
+#else
+ /* for win32 */
+ sane_set_io_mode(dev, SANE_FALSE);
+#endif
+ {
+ preview_read_image_data(p, -1, GDK_INPUT_READ);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int preview_make_image_path(Preview *p, size_t filename_size, char *filename, int level)
+{
+ char buf[256];
+
+ DBG(DBG_proc, "preview_make_image_path\n");
+
+ snprintf(buf, sizeof(buf), "preview-level-%d-", level);
+ return xsane_back_gtk_make_path(filename_size, filename, 0, 0, buf, xsane.dev_name, ".ppm", XSANE_PATH_TMP);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int preview_restore_image_from_file(Preview *p, FILE *in, int min_quality, int *min_time)
+{
+ u_int psurface_type, psurface_unit;
+ int image_width, image_height;
+ int xoffset, yoffset, width, height;
+ int max_val;
+ int quality = 0;
+ int x, y;
+ int time;
+ float psurface[4];
+ float dsurface[4];
+ size_t nread;
+ guint16 *imagep;
+ guint16 *imagepx;
+ char buf[255];
+
+ DBG(DBG_proc, "preview_restore_image_from_file\n");
+
+ if (!in)
+ {
+ return min_quality;
+ }
+
+ /* See whether there is a saved preview and load it if present: */
+ if (fscanf(in, "P6\n"
+ "# surface: %g %g %g %g %u %u\n"
+ "# time: %d\n"
+ "%d %d\n%d",
+ psurface + 0, psurface + 1, psurface + 2, psurface + 3,
+ &psurface_type, &psurface_unit,
+ &time,
+ &image_width, &image_height,
+ &max_val) != 10)
+ {
+ DBG(DBG_info, "no preview image\n");
+ return min_quality;
+ }
+
+ fgets(buf, sizeof(buf), in); /* skip newline character. this made a lot of problems in the past, so I skip it this way */
+
+
+ if (min_quality >= 0) /* read real preview */
+ {
+ if ((psurface_type != p->surface_type) || (psurface_unit != p->surface_unit))
+ {
+ DBG(DBG_info, "incompatible surface types %d <> %d\n", psurface_type, p->surface_type);
+ return min_quality;
+ }
+
+ preview_rotate_previewsurface_to_devicesurface(p->rotation, p->surface, dsurface);
+
+
+ DBG(DBG_info, "stored image surface = [%3.2f %3.2f %3.2f %3.2f]\n",
+ psurface[0], psurface[1], psurface[2], psurface[3]);
+ DBG(DBG_info, "preview selection surface = [%3.2f %3.2f %3.2f %3.2f]\n",
+ p->surface[0], p->surface[1], p->surface[2], p->surface[3]);
+ DBG(DBG_info, "preview device surface = [%3.2f %3.2f %3.2f %3.2f]\n",
+ dsurface[0], dsurface[1], dsurface[2], dsurface[3]);
+
+ xoffset = (dsurface[0] - psurface[0])/(psurface[2] - psurface[0]) * image_width;
+ yoffset = (dsurface[1] - psurface[1])/(psurface[3] - psurface[1]) * image_height;
+ width = (dsurface[2] - dsurface[0])/(psurface[2] - psurface[0]) * image_width;
+ height = (dsurface[3] - dsurface[1])/(psurface[3] - psurface[1]) * image_height;
+ quality = width;
+
+ if ((xoffset < 0) || (yoffset < 0) ||
+ (xoffset+width > image_width) || (yoffset+height > image_height) ||
+ (width == 0) || (height == 0))
+ {
+ DBG(DBG_info, "image does not cover wanted surface part\n");
+ return min_quality; /* file does not cover wanted surface part */
+ }
+
+ DBG(DBG_info, "quality = %d\n", quality);
+
+ if ( ((float) min_quality / (quality+1)) > 1.05) /* already loaded image has better quality */
+ {
+ DBG(DBG_info, "already loaded image has higher quality\n");
+ return min_quality;
+ }
+
+ if ( ((float) min_quality / (quality+1)) > 0.95) /* qualities are comparable */
+ {
+ if (*min_time > time) /* take more recent scan */
+ {
+ DBG(DBG_info, "images have comparable quality, already loaded is more up to date\n");
+ return min_quality;
+ }
+ DBG(DBG_info, "images have comparable quality, this image is more up to date\n");
+ }
+ else
+ {
+ DBG(DBG_info, "image has best quality\n");
+ }
+ }
+ else /* read startimage or calibrationimage */
+ {
+ xoffset = 0;
+ yoffset = 0;
+ width = image_width;
+ height = image_height;
+ }
+
+ if (max_val == 65535)
+ {
+ p->params.depth = 16;
+ }
+ else
+ {
+ p->params.depth = 8;
+ }
+
+ p->image_width = width;
+ p->image_height = height;
+
+ if (preview_get_memory(p))
+ {
+ return min_quality; /* error allocating memory */
+ }
+
+ if (p->params.depth == 16)
+ {
+ fseek(in, yoffset * image_width * 6, SEEK_CUR); /* skip unused lines */
+
+ imagep = p->image_data_raw;
+
+ for (y = yoffset; y < yoffset + height; y++)
+ {
+ fseek(in, xoffset * 6, SEEK_CUR); /* skip unused pixel left of area */
+
+ nread = fread(imagep, 6, width, in);
+ imagep += width * 3; /* imagep is a pointer to a 2 byte value, so we use 3 instead 6 here */
+
+ fseek(in, (image_width - width - xoffset) * 6, SEEK_CUR); /* skip unused pixel right of area */
+ }
+ }
+ else /* depth = 8 */
+ {
+ fseek(in, yoffset * image_width * 3, SEEK_CUR); /* skip unused lines */
+
+ imagep = p->image_data_raw;
+
+ for (y = yoffset; y < yoffset + height; y++)
+ {
+ fseek(in, xoffset * 3, SEEK_CUR); /* skip unused pixel left of area */
+
+ imagepx = imagep;
+ for (x = 0; x < width; x++)
+ {
+ *imagepx++ = ((guint16) fgetc(in)) * 256; /* transfrom to 16 bit image with correct byte order */
+ *imagepx++ = ((guint16) fgetc(in)) * 256;
+ *imagepx++ = ((guint16) fgetc(in)) * 256;
+ }
+ imagep += width * 3; /* imagep is a pointer to a 2 byte value, so we use 3 instead 6 here */
+
+ fseek(in, (image_width - width - xoffset) * 3, SEEK_CUR); /* skip unused pixel right of area */
+ }
+ }
+
+ p->image_x = width;
+ p->image_y = height;
+
+ p->image_surface[0] = p->surface[p->index_xmin];
+ p->image_surface[1] = p->surface[p->index_ymin];
+ p->image_surface[2] = p->surface[p->index_xmax];
+ p->image_surface[3] = p->surface[p->index_ymax];
+
+ *min_time = time;
+
+ return quality;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_restore_image(Preview *p)
+{
+ FILE *in;
+ int quality = 0;
+ int time = 0;
+ int level;
+
+ DBG(DBG_proc, "preview_restore_image\n");
+
+ p->startimage = 0;
+
+ if (p->calibration)
+ {
+ char filename[PATH_MAX];
+
+ DBG(DBG_proc, "calibration mode\n");
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane-calibration", 0, ".pnm", XSANE_PATH_SYSTEM);
+ in = fopen(filename, "rb"); /* read binary (b for win32) */
+ if (in)
+ {
+ quality = preview_restore_image_from_file(p, in, -1, &time);
+ fclose(in);
+ }
+ }
+ else
+ {
+ /* See whether there is a saved preview and load it if present: */
+ for(level = 2; level >= 0; level--)
+ {
+ if (p->filename[level])
+ {
+ in = fopen(p->filename[level], "rb"); /* read binary (b for win32) */
+ if (in)
+ {
+ quality = preview_restore_image_from_file(p, in, quality, &time);
+ fclose(in);
+ }
+ }
+ }
+
+ if (quality == 0) /* no image found, read startimage */
+ {
+ char filename[PATH_MAX];
+
+ DBG(DBG_proc, "no suitable image available, using startimage\n");
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane-startimage", 0, ".pnm", XSANE_PATH_SYSTEM);
+ in = fopen(filename, "rb"); /* read binary (b for win32) */
+ if (in)
+ {
+ quality = preview_restore_image_from_file(p, in, -1, &time);
+ fclose(in);
+ }
+ else
+ {
+ guint16 *imagep;
+
+ DBG(DBG_error0, "ERROR: xsane-startimage not found. Looks like xsane is not installed correct.\n");
+
+ p->image_width = 1;
+ p->image_height = 1;
+ p->params.depth = 16;
+
+ preview_get_memory(p);
+
+ imagep = p->image_data_raw;
+ *imagep++ = 65535;
+ *imagep++ = 00000;
+ *imagep++ = 00000;
+
+ p->image_x = p->image_width;
+ p->image_y = p->image_height;
+
+ p->image_surface[0] = p->surface[p->index_xmin];
+ p->image_surface[1] = p->surface[p->index_ymin];
+ p->image_surface[2] = p->surface[p->index_xmax];
+ p->image_surface[3] = p->surface[p->index_ymax];
+ }
+ p->startimage = 1;
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint preview_hold_event_handler(gpointer data)
+{
+ Preview *p = data;
+
+ DBG(DBG_proc, "preview_hold_event_handler\n");
+
+ preview_draw_selection(p);
+ p->gamma_functions_interruptable = TRUE;
+ preview_establish_selection(p);
+ p->gamma_functions_interruptable = FALSE;
+
+ gtk_timeout_remove(p->hold_timer);
+ p->hold_timer = 0;
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint preview_motion_event_handler(GtkWidget *window, GdkEvent *event, gpointer data)
+{
+ Preview *p = data;
+ GdkCursor *cursor;
+ float preview_selection[4];
+ float preview_x, preview_y;
+ float xscale, yscale;
+ int cursornr;
+
+ DBG(DBG_proc, "preview_motion_event_handler\n");
+
+ /* preview selection (device) -> cursor-position (window) */
+ preview_transform_coordinates_device_to_window(p, p->selection.coordinate, preview_selection);
+
+ /* cursor-prosition (window) -> preview coordinate (device) */
+ preview_transform_coordinate_window_to_device(p, event->button.x, event->button.y, &preview_x, &preview_y);
+
+ preview_get_scale_device_to_window(p, &xscale, &yscale);
+
+ if (!p->scanning)
+ {
+ switch (((GdkEventMotion *)event)->state &
+ GDK_Num_Lock & GDK_Caps_Lock & GDK_Shift_Lock & GDK_Scroll_Lock) /* mask all Locks */
+ {
+ case 256: /* left button */
+
+ DBG(DBG_info2, "left button\n");
+
+ if ( (p->selection_drag) || (p->selection_drag_edge) )
+ {
+ p->selection.active = TRUE;
+ p->selection.coordinate[p->selection_xedge] = preview_x;
+ p->selection.coordinate[p->selection_yedge] = preview_y;
+
+ preview_order_selection(p);
+ preview_bound_selection(p);
+
+ if (preferences.gtk_update_policy == GTK_UPDATE_CONTINUOUS)
+ {
+ if (!p->hold_timer) /* hold timer active? then remove it, we had a motion */
+ {
+ p->hold_timer = gtk_timeout_add(XSANE_CONTINUOUS_HOLD_TIME, preview_hold_event_handler, (gpointer *) p);
+ }
+ preview_update_maximum_output_size(p);
+ preview_draw_selection(p);
+ }
+ else if (preferences.gtk_update_policy == GTK_UPDATE_DELAYED)
+ {
+ /* call preview_hold_event_hanlder if mouse is not moved for ??? ms */
+ if (p->hold_timer) /* hold timer active? then remove it, we had a motion */
+ {
+ gtk_timeout_remove(p->hold_timer);
+ p->hold_timer = 0;
+ }
+ p->hold_timer = gtk_timeout_add(XSANE_HOLD_TIME, preview_hold_event_handler, (gpointer *) p);
+ preview_update_maximum_output_size(p);
+ preview_draw_selection(p);
+ }
+ else /* discontinuous */
+ {
+ preview_update_maximum_output_size(p);
+ preview_draw_selection(p); /* only draw selection, do not update backend geometry options */
+ }
+ }
+
+ cursornr = p->cursornr;
+
+ if ( (p->selection_xedge != -1) && (p->selection_yedge != -1) ) /* move corner */
+ {
+ if ( ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) &&
+ (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) && /* left */
+ ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) &&
+ (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) ) /* top */
+ {
+ cursornr = GDK_TOP_LEFT_CORNER;
+ }
+ else if ( ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) &&
+ (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) && /* right */
+ ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) &&
+ (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) ) /* top */
+ {
+ cursornr = GDK_TOP_RIGHT_CORNER;
+ }
+ else if ( ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) &&
+ (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) && /* left */
+ ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) &&
+ (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) ) /* bottom */
+ {
+ cursornr = GDK_BOTTOM_LEFT_CORNER;
+ }
+ else if ( ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) &&
+ (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) && /* right */
+ ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) &&
+ (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) ) /* bottom */
+ {
+ cursornr = GDK_BOTTOM_RIGHT_CORNER;
+ }
+ }
+ else if ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) &&
+ (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) /* left */
+ {
+ if (cursornr == GDK_RIGHT_SIDE)
+ {
+ cursornr = GDK_LEFT_SIDE;
+ }
+ }
+ else if ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) &&
+ (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) /* right */
+ {
+ if (cursornr == GDK_LEFT_SIDE)
+ {
+ cursornr = GDK_RIGHT_SIDE;
+ }
+ }
+ else if ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) &&
+ (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) /* top */
+ {
+ if (cursornr == GDK_BOTTOM_SIDE)
+ {
+ cursornr = GDK_TOP_SIDE;
+ }
+ }
+ else if ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) &&
+ (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) /* bottom */
+ {
+ if (cursornr == GDK_TOP_SIDE)
+ {
+ cursornr = GDK_BOTTOM_SIDE;
+ }
+ }
+
+ if (cursornr != p->cursornr)
+ {
+ cursor = gdk_cursor_new(cursornr); /* set curosr */
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = cursornr;
+ }
+ break;
+
+ case 512: /* middle button */
+ case 1024: /* right button */
+ DBG(DBG_info2, "middle or right button\n");
+
+ if (p->selection_drag)
+ {
+ double dx, dy;
+
+ switch (p->rotation)
+ {
+ case 0: /* 0 degree */
+ default:
+ dx = (p->selection_xpos - event->motion.x) / xscale;
+ dy = (p->selection_ypos - event->motion.y) / yscale;
+ break;
+
+ case 1: /* 90 degree */
+ dx = (event->motion.x - p->selection_xpos) / xscale;
+ dy = (p->selection_ypos - event->motion.y) / yscale;
+ break;
+
+ case 2: /* 180 degree */
+ dx = (event->motion.x - p->selection_xpos) / xscale;
+ dy = (event->motion.y - p->selection_ypos) / yscale;
+ break;
+
+ case 3: /* 270 degree */
+ dx = (p->selection_xpos - event->motion.x) / xscale;
+ dy = (event->motion.y - p->selection_ypos) / yscale;
+ break;
+
+ case 4: /* 0 degree, x mirror */
+ dx = (event->motion.x - p->selection_xpos) / xscale;
+ dy = (p->selection_ypos - event->motion.y) / yscale;
+ break;
+
+ case 5: /* 90 degree, x mirror */
+ dx = (p->selection_xpos - event->motion.x) / xscale;
+ dy = (p->selection_ypos - event->motion.y) / yscale;
+ break;
+
+ case 6: /* 180 degree, x mirror */
+ dx = (p->selection_xpos - event->motion.x) / xscale;
+ dy = (event->motion.y - p->selection_ypos) / yscale;
+ break;
+
+ case 7: /* 270 degree, x mirror */
+ dx = (event->motion.x - p->selection_xpos) / xscale;
+ dy = (event->motion.y - p->selection_ypos) / yscale;
+ break;
+ }
+
+ p->selection_xpos = event->motion.x;
+ p->selection_ypos = event->motion.y;
+
+ if (dx > p->selection.coordinate[p->index_xmin] - p->scanner_surface[p->index_xmin])
+ {
+ dx = p->selection.coordinate[p->index_xmin] - p->scanner_surface[p->index_xmin];
+ }
+
+ if (dy > p->selection.coordinate[p->index_ymin] - p->scanner_surface[p->index_ymin])
+ {
+ dy = p->selection.coordinate[p->index_ymin] - p->scanner_surface[p->index_ymin];
+ }
+
+ if (dx < p->selection.coordinate[p->index_xmax] - p->scanner_surface[p->index_xmax])
+ {
+ dx = p->selection.coordinate[p->index_xmax] - p->scanner_surface[p->index_xmax];
+ }
+
+ if (dy < p->selection.coordinate[p->index_ymax] - p->scanner_surface[p->index_ymax])
+ {
+ dy = p->selection.coordinate[p->index_ymax] - p->scanner_surface[p->index_ymax];
+ }
+
+ p->selection.active = TRUE;
+ p->selection.coordinate[0] -= dx;
+ p->selection.coordinate[1] -= dy;
+ p->selection.coordinate[2] -= dx;
+ p->selection.coordinate[3] -= dy;
+
+ if (preferences.gtk_update_policy == GTK_UPDATE_CONTINUOUS)
+ {
+ if (!p->hold_timer) /* hold timer active? then remove it, we had a motion */
+ {
+ p->hold_timer = gtk_timeout_add(XSANE_CONTINUOUS_HOLD_TIME, preview_hold_event_handler, (gpointer *) p);
+ }
+ preview_update_maximum_output_size(p);
+ preview_draw_selection(p);
+ }
+ else if (preferences.gtk_update_policy == GTK_UPDATE_DELAYED)
+ {
+ if (p->hold_timer) /* hold timer active? then remove it, we had a motion */
+ {
+ gtk_timeout_remove(p->hold_timer);
+ p->hold_timer = 0;
+ }
+ p->hold_timer = gtk_timeout_add (XSANE_HOLD_TIME, preview_hold_event_handler, (gpointer *) p);
+ preview_update_maximum_output_size(p);
+ preview_draw_selection(p);
+ }
+ else /* discontinuous */
+ {
+ preview_update_maximum_output_size(p);
+ preview_draw_selection(p);
+ }
+ }
+ break;
+
+ default:
+ if ( ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) &&
+ (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) && /* left */
+ ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) &&
+ (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) ) /* top */
+ {
+ cursornr = GDK_TOP_LEFT_CORNER;
+ }
+ else if ( ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) &&
+ (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) && /* right */
+ ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) &&
+ (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) ) /* top */
+ {
+ cursornr = GDK_TOP_RIGHT_CORNER;
+ }
+ else if ( ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) &&
+ (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) && /* left */
+ ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) &&
+ (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) ) /* bottom */
+ {
+ cursornr = GDK_BOTTOM_LEFT_CORNER;
+ }
+ else if ( ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) &&
+ (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) && /* right */
+ ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) &&
+ (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) ) /* bottom */
+ {
+ cursornr = GDK_BOTTOM_RIGHT_CORNER;
+ }
+ else if ( ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) &&
+ (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) && /* left */
+ ( (event->button.y > preview_selection[1]) && (event->button.y < preview_selection[3]) ) ) /* in height */
+ {
+ cursornr = GDK_LEFT_SIDE;
+ }
+ else if ( ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) &&
+ (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) && /* right */
+ ( (event->button.y > preview_selection[1]) && (event->button.y < preview_selection[3]) ) ) /* in height */
+ {
+ cursornr = GDK_RIGHT_SIDE;
+ }
+ else if ( ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) &&
+ (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) && /* top */
+ ( (event->button.x > preview_selection[0]) && (event->button.x < preview_selection[2]) ) ) /* in width */
+ {
+ cursornr = GDK_TOP_SIDE;
+ }
+ else if ( ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) &&
+ (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) && /* bottom */
+ ( (event->button.x > preview_selection[0]) && (event->button.x < preview_selection[2]) ) ) /* in width */
+ {
+ cursornr = GDK_BOTTOM_SIDE;
+ }
+ else
+ {
+ cursornr = XSANE_CURSOR_PREVIEW;
+ }
+
+ if ((cursornr != p->cursornr) && (p->cursornr != -1))
+ {
+ cursor = gdk_cursor_new(cursornr); /* set curosr */
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = cursornr;
+ }
+ break;
+ }
+ }
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint preview_button_press_event_handler(GtkWidget *window, GdkEvent *event, gpointer data)
+{
+ Preview *p = data;
+ GdkCursor *cursor;
+ float preview_selection[4];
+ float preview_x, preview_y;
+ int cursornr;
+
+ DBG(DBG_proc, "preview_button_press_event_handler\n");
+
+ /* preview selection (device) -> cursor-position (window) */
+ preview_transform_coordinates_device_to_window(p, p->selection.coordinate, preview_selection);
+
+ /* cursor-prosition (window) -> preview coordinate (device) */
+ preview_transform_coordinate_window_to_device(p, event->button.x, event->button.y, &preview_x, &preview_y);
+
+ if (!p->scanning)
+ {
+ switch (p->mode)
+ {
+ case MODE_PIPETTE_WHITE:
+ {
+ DBG(DBG_info, "pipette white mode\n");
+ if ( ( (((GdkEventButton *)event)->button == 1) || (((GdkEventButton *)event)->button == 2) ) && (p->image_data_raw) ) /* left or middle button */
+ {
+ int r=255, g=255, b=255; /* preset color to white */
+
+ preview_get_color(p, event->button.x, event->button.y, preferences.preview_pipette_range, &r, &g, &b);
+
+ xsane.slider_gray.value[2] = sqrt( (r*r+g*g+b*b) / 3)/2.55;
+
+ if ( (!xsane.enhancement_rgb_default) && (((GdkEventButton *)event)->button == 2) ) /* middle button */
+ {
+ xsane.slider_red.value[2] = r/2.55;
+ xsane.slider_green.value[2] = g/2.55;
+ xsane.slider_blue.value[2] = b/2.55;
+ }
+ else
+ {
+ xsane.slider_red.value[2] = xsane.slider_gray.value[2];
+ xsane.slider_green.value[2] = xsane.slider_gray.value[2];
+ xsane.slider_blue.value[2] = xsane.slider_gray.value[2];
+ }
+
+ if (xsane.slider_gray.value[2] < 2)
+ {
+ xsane.slider_gray.value[2] = 2;
+ }
+ if (xsane.slider_gray.value[1] >= xsane.slider_gray.value[2])
+ {
+ xsane.slider_gray.value[1] = xsane.slider_gray.value[2]-1;
+ if (xsane.slider_gray.value[0] >= xsane.slider_gray.value[1])
+ {
+ xsane.slider_gray.value[0] = xsane.slider_gray.value[1]-1;
+ }
+ }
+
+ if (xsane.slider_red.value[2] < 2)
+ {
+ xsane.slider_red.value[2] = 2;
+ }
+ if (xsane.slider_red.value[1] >= xsane.slider_red.value[2])
+ {
+ xsane.slider_red.value[1] = xsane.slider_red.value[2]-1;
+ if (xsane.slider_red.value[0] >= xsane.slider_red.value[1])
+ {
+ xsane.slider_red.value[0] = xsane.slider_red.value[1]-1;
+ }
+ }
+
+ if (xsane.slider_green.value[2] < 2)
+ {
+ xsane.slider_green.value[2] = 2;
+ }
+ if (xsane.slider_green.value[1] >= xsane.slider_green.value[2])
+ {
+ xsane.slider_green.value[1] = xsane.slider_green.value[2]-1;
+ if (xsane.slider_green.value[0] >= xsane.slider_green.value[1])
+ {
+ xsane.slider_green.value[0] = xsane.slider_green.value[1]-1;
+ }
+ }
+
+ if (xsane.slider_blue.value[2] < 2)
+ {
+ xsane.slider_blue.value[2] = 2;
+ }
+ if (xsane.slider_blue.value[1] >= xsane.slider_blue.value[2])
+ {
+ xsane.slider_blue.value[1] = xsane.slider_blue.value[2]-1;
+ if (xsane.slider_blue.value[0] >= xsane.slider_blue.value[1])
+ {
+ xsane.slider_blue.value[0] = xsane.slider_blue.value[1]-1;
+ }
+ }
+
+ xsane_enhancement_by_histogram(TRUE);
+ }
+
+ p->mode = MODE_NORMAL;
+
+ cursor = gdk_cursor_new(XSANE_CURSOR_PREVIEW);
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = XSANE_CURSOR_PREVIEW;
+ }
+ break;
+
+ case MODE_PIPETTE_GRAY:
+ {
+ DBG(DBG_info, "pipette gray mode\n");
+
+ if ( ( (((GdkEventButton *)event)->button == 1) || (((GdkEventButton *)event)->button == 2) ) && (p->image_data_raw) ) /* left or middle button */
+ {
+ int r=128, g=128, b=128; /* preset color to gray */
+
+ preview_get_color(p, event->button.x, event->button.y, preferences.preview_pipette_range, &r, &g, &b);
+
+ xsane.slider_gray.value[1] = sqrt( (r*r+g*g+b*b) / 3)/2.55;
+
+ if ( (!xsane.enhancement_rgb_default) && (((GdkEventButton *)event)->button == 2) ) /* middle button */
+ {
+ xsane.slider_red.value[1] = r/2.55;
+ xsane.slider_green.value[1] = g/2.55;
+ xsane.slider_blue.value[1] = b/2.55;
+ }
+ else
+ {
+ xsane.slider_red.value[1] = xsane.slider_gray.value[1];
+ xsane.slider_green.value[1] = xsane.slider_gray.value[1];
+ xsane.slider_blue.value[1] = xsane.slider_gray.value[1];
+ }
+
+ if (xsane.slider_gray.value[1] == 0)
+ {
+ xsane.slider_gray.value[1] += 1;
+ }
+ if (xsane.slider_gray.value[1] == 100)
+ {
+ xsane.slider_gray.value[1] -= 1;
+ }
+ if (xsane.slider_gray.value[1] >= xsane.slider_gray.value[2])
+ {
+ xsane.slider_gray.value[2] = xsane.slider_gray.value[1]+1;
+ }
+ if (xsane.slider_gray.value[1] <= xsane.slider_gray.value[0])
+ {
+ xsane.slider_gray.value[0] = xsane.slider_gray.value[1]-1;
+ }
+
+ if (xsane.slider_red.value[1] == 0)
+ {
+ xsane.slider_red.value[1] += 1;
+ }
+ if (xsane.slider_red.value[1] == 100)
+ {
+ xsane.slider_red.value[1] -= 1;
+ }
+ if (xsane.slider_red.value[1] >= xsane.slider_red.value[2])
+ {
+ xsane.slider_red.value[2] = xsane.slider_red.value[1]+1;
+ }
+ if (xsane.slider_red.value[1] <= xsane.slider_red.value[0])
+ {
+ xsane.slider_red.value[0] = xsane.slider_red.value[1]-1;
+ }
+
+ if (xsane.slider_green.value[1] == 0)
+ {
+ xsane.slider_green.value[1] += 1;
+ }
+ if (xsane.slider_green.value[1] == 100)
+ {
+ xsane.slider_green.value[1] -= 1;
+ }
+ if (xsane.slider_green.value[1] >= xsane.slider_green.value[2])
+ {
+ xsane.slider_green.value[2] = xsane.slider_green.value[1]+1;
+ }
+ if (xsane.slider_green.value[1] <= xsane.slider_green.value[0])
+ {
+ xsane.slider_green.value[0] = xsane.slider_green.value[1]-1;
+ }
+
+ if (xsane.slider_blue.value[1] == 0)
+ {
+ xsane.slider_blue.value[1] += 1;
+ }
+ if (xsane.slider_blue.value[1] == 100)
+ {
+ xsane.slider_blue.value[1] -= 1;
+ }
+ if (xsane.slider_blue.value[1] >= xsane.slider_blue.value[2])
+ {
+ xsane.slider_blue.value[2] = xsane.slider_blue.value[1]+1;
+ }
+ if (xsane.slider_blue.value[1] <= xsane.slider_blue.value[0])
+ {
+ xsane.slider_blue.value[0] = xsane.slider_blue.value[1]-1;
+ }
+
+ xsane_enhancement_by_histogram(TRUE);
+ }
+
+ p->mode = MODE_NORMAL;
+
+ cursor = gdk_cursor_new(XSANE_CURSOR_PREVIEW);
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = XSANE_CURSOR_PREVIEW;
+ }
+ break;
+
+ case MODE_PIPETTE_BLACK:
+ {
+ DBG(DBG_info, "pipette black mode\n");
+
+ if ( ( (((GdkEventButton *)event)->button == 1) || (((GdkEventButton *)event)->button == 2) ) &&
+ (p->image_data_raw) ) /* left or middle button */
+ {
+ int r=0, g=0, b=0; /* preset color to black */
+
+ preview_get_color(p, event->button.x, event->button.y, preferences.preview_pipette_range, &r, &g, &b);
+
+ xsane.slider_gray.value[0] = sqrt( (r*r+g*g+b*b) / 3)/2.55;
+
+ if ( (!xsane.enhancement_rgb_default) && (((GdkEventButton *)event)->button == 2) ) /* middle button */
+ {
+ xsane.slider_red.value[0] = r/2.55;
+ xsane.slider_green.value[0] = g/2.55;
+ xsane.slider_blue.value[0] = b/2.55;
+ }
+ else
+ {
+ xsane.slider_red.value[0] = xsane.slider_gray.value[0];
+ xsane.slider_green.value[0] = xsane.slider_gray.value[0];
+ xsane.slider_blue.value[0] = xsane.slider_gray.value[0];
+ }
+
+ if (xsane.slider_gray.value[0] > 98)
+ {
+ xsane.slider_gray.value[0] = 98;
+ }
+ if (xsane.slider_gray.value[1] <= xsane.slider_gray.value[0])
+ {
+ xsane.slider_gray.value[1] = xsane.slider_gray.value[0]+1;
+ if (xsane.slider_gray.value[2] <= xsane.slider_gray.value[1])
+ {
+ xsane.slider_gray.value[2] = xsane.slider_gray.value[1]+1;
+ }
+ }
+
+ if (xsane.slider_red.value[0] > 98)
+ {
+ xsane.slider_red.value[0] = 98;
+ }
+ if (xsane.slider_red.value[1] <= xsane.slider_red.value[0])
+ {
+ xsane.slider_red.value[1] = xsane.slider_red.value[0]+1;
+ if (xsane.slider_red.value[2] <= xsane.slider_red.value[1])
+ {
+ xsane.slider_red.value[2] = xsane.slider_red.value[1]+1;
+ }
+ }
+
+ if (xsane.slider_green.value[0] > 98)
+ {
+ xsane.slider_green.value[0] = 98;
+ }
+ if (xsane.slider_green.value[1] <= xsane.slider_green.value[0])
+ {
+ xsane.slider_green.value[1] = xsane.slider_green.value[0]+1;
+ if (xsane.slider_green.value[2] <= xsane.slider_green.value[1])
+ {
+ xsane.slider_green.value[2] = xsane.slider_green.value[1]+1;
+ }
+ }
+
+ if (xsane.slider_blue.value[0] > 98)
+ {
+ xsane.slider_blue.value[0] = 98;
+ }
+ if (xsane.slider_blue.value[1] <= xsane.slider_blue.value[0])
+ {
+ xsane.slider_blue.value[1] = xsane.slider_blue.value[0]+1;
+ if (xsane.slider_blue.value[2] <= xsane.slider_blue.value[1])
+ {
+ xsane.slider_blue.value[2] = xsane.slider_blue.value[1]+1;
+ }
+ }
+
+ xsane_enhancement_by_histogram(TRUE);
+ }
+
+ p->mode = MODE_NORMAL;
+
+ cursor = gdk_cursor_new(XSANE_CURSOR_PREVIEW);
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = XSANE_CURSOR_PREVIEW;
+ }
+ break;
+
+ case MODE_NORMAL:
+ {
+ DBG(DBG_info, "normal mode\n");
+
+ if (p->show_selection)
+ {
+ switch (((GdkEventButton *)event)->button)
+ {
+ case 1: /* left button: define selection area */
+ DBG(DBG_info, "left button\n");
+
+ p->selection_xedge = -1;
+ if ( (preview_selection[0] - SELECTION_RANGE_OUT < event->button.x) &&
+ (event->button.x < preview_selection[0] + SELECTION_RANGE_IN) ) /* left */
+ {
+ DBG(DBG_info, "-left\n");
+ p->selection_xedge = 0;
+ }
+ else if ( (preview_selection[2] - SELECTION_RANGE_IN < event->button.x) &&
+ (event->button.x < preview_selection[2] + SELECTION_RANGE_OUT) ) /* right */
+ {
+ DBG(DBG_info, "-right\n");
+ p->selection_xedge = 2;
+ }
+
+ p->selection_yedge = -1;
+ if ( (preview_selection[1] - SELECTION_RANGE_OUT < event->button.y) &&
+ (event->button.y < preview_selection[1] + SELECTION_RANGE_IN) ) /* top */
+ {
+ DBG(DBG_info, "-top\n");
+ p->selection_yedge = 1;
+ }
+ else if ( (preview_selection[3] - SELECTION_RANGE_IN < event->button.y) &&
+ (event->button.y < preview_selection[3] + SELECTION_RANGE_OUT) ) /* bottom */
+ {
+ DBG(DBG_info, "-bottom\n");
+ p->selection_yedge = 3;
+ }
+
+ if ( (p->selection_xedge != -1) && (p->selection_yedge != -1) ) /* move corner */
+ {
+ DBG(DBG_info, "-move corner (%f, %f)\n", preview_x, preview_y);
+ p->selection_drag_edge = TRUE;
+ p->selection.coordinate[p->selection_xedge] = preview_x;
+ p->selection.coordinate[p->selection_yedge] = preview_y;
+ preview_draw_selection(p);
+ }
+ else if ( (p->selection_xedge != -1) && (event->button.y > preview_selection[1])
+ && (event->button.y < preview_selection[3]) ) /* move x-edge */
+ {
+ DBG(DBG_info, "-move x-edge %f\n", preview_x);
+ p->selection_drag_edge = TRUE;
+ p->selection.coordinate[p->selection_xedge] = preview_x;
+ preview_draw_selection(p);
+ }
+ else if ( (p->selection_yedge != -1) && (event->button.x > preview_selection[0])
+ && (event->button.x < preview_selection[2]) ) /* move y-edge */
+ {
+ DBG(DBG_info, "-move y-edge %f\n", preview_y);
+ p->selection_drag_edge = TRUE;
+ p->selection.coordinate[p->selection_yedge] = preview_y;
+ preview_draw_selection(p);
+ }
+ else /* select new area */
+ {
+ DBG(DBG_info, "-define new area (%f, %f)\n", preview_x, preview_y);
+ p->selection_xedge = 2;
+ p->selection_yedge = 3;
+ p->selection.coordinate[0] = preview_x;
+ p->selection.coordinate[1] = preview_y;
+ p->selection_drag = TRUE;
+
+ cursornr = GDK_CROSS;
+ cursor = gdk_cursor_new(cursornr); /* set curosr */
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = cursornr;
+ }
+ break;
+
+ case 2: /* middle button */
+ case 3: /* right button */
+ DBG(DBG_info, "middle or right button\n");
+
+ if ( (preview_selection[0]-SELECTION_RANGE_OUT < event->button.x) &&
+ (preview_selection[2]+SELECTION_RANGE_OUT > event->button.x) &&
+ (preview_selection[1]-SELECTION_RANGE_OUT < event->button.y) &&
+ (preview_selection[3]+SELECTION_RANGE_OUT > event->button.y) )
+ {
+ DBG(DBG_info, "move selection area\n");
+ p->selection_drag = TRUE;
+ p->selection_xpos = event->button.x;
+ p->selection_ypos = event->button.y;
+
+ cursornr = GDK_HAND2;
+ cursor = gdk_cursor_new(cursornr); /* set curosr */
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = cursornr;
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint preview_button_release_event_handler(GtkWidget *window, GdkEvent *event, gpointer data)
+{
+ Preview *p = data;
+ GdkCursor *cursor;
+ float preview_selection[4];
+ int cursornr;
+
+ DBG(DBG_proc, "preview_button_release_event_handler\n");
+
+ /* preview selection (device) -> cursor-position (window) */
+ preview_transform_coordinates_device_to_window(p, p->selection.coordinate, preview_selection);
+
+ if (!p->scanning)
+ {
+ if (p->show_selection)
+ {
+ switch (((GdkEventButton *)event)->button)
+ {
+ case 1: /* left button */
+ case 2: /* middle button */
+ case 3: /* right button */
+ if (p->selection_drag)
+ {
+ DBG(DBG_info, "selection finished\n");
+ cursornr = XSANE_CURSOR_PREVIEW;
+ cursor = gdk_cursor_new(cursornr); /* set curosr */
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = cursornr;
+ }
+
+ preview_draw_selection(p);
+ preview_establish_selection(p);
+
+ p->selection_drag_edge = FALSE;
+ p->selection_drag = FALSE;
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+static int expose_event_selection_active, expose_event_selection_maximum_active;
+
+static gint preview_expose_event_handler_start(GtkWidget *window, GdkEvent *event, gpointer data)
+{
+ Preview *p = data;
+ GdkColor color;
+ GdkColormap *colormap;
+
+ DBG(DBG_proc, "preview_expose_event_handler_start\n");
+
+ if (event->type == GDK_EXPOSE)
+ {
+ if (!p->gc_selection)
+ {
+ DBG(DBG_info, "defining line styles for selection and page frames\n");
+ colormap = gdk_window_get_colormap(p->window->window);
+
+ p->gc_selection = gdk_gc_new(p->window->window);
+ gdk_gc_set_function(p->gc_selection, GDK_INVERT);
+ gdk_gc_set_line_attributes(p->gc_selection, 1, GDK_LINE_ON_OFF_DASH, GDK_CAP_BUTT, GDK_JOIN_MITER);
+
+ p->gc_selection_maximum = gdk_gc_new(p->window->window);
+ gdk_gc_set_function(p->gc_selection_maximum, GDK_XOR);
+ gdk_gc_set_line_attributes(p->gc_selection_maximum, 1, GDK_LINE_ON_OFF_DASH, GDK_CAP_BUTT, GDK_JOIN_MITER);
+
+ color.red = 0;
+ color.green = 65535;
+ color.blue = 30000;
+ gdk_color_alloc(colormap, &color);
+ gdk_gc_set_foreground(p->gc_selection_maximum, &color);
+ }
+ else
+ {
+ expose_event_selection_active = p->selection.active;
+ expose_event_selection_maximum_active = p->selection_maximum.active;
+ p->selection_maximum.active = FALSE;
+ p->selection.active = FALSE; /* do not draw new selections */
+ p->selection_maximum.active = FALSE;
+ preview_draw_selection(p); /* undraw selections */
+ }
+ }
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint preview_expose_event_handler_end(GtkWidget *window, GdkEvent *event, gpointer data)
+{
+ Preview *p = data;
+ GdkColor color;
+ GdkColormap *colormap;
+
+ DBG(DBG_proc, "preview_expose_event_handler_end\n");
+
+ if (event->type == GDK_EXPOSE)
+ {
+ if (!p->gc_selection)
+ {
+ DBG(DBG_info, "defining line styles for selection and page frames\n");
+ colormap = gdk_window_get_colormap(p->window->window);
+
+ p->gc_selection = gdk_gc_new(p->window->window);
+ gdk_gc_set_function(p->gc_selection, GDK_INVERT);
+ gdk_gc_set_line_attributes(p->gc_selection, 1, GDK_LINE_ON_OFF_DASH, GDK_CAP_BUTT, GDK_JOIN_MITER);
+
+ p->gc_selection_maximum = gdk_gc_new(p->window->window);
+ gdk_gc_set_function(p->gc_selection_maximum, GDK_XOR);
+ gdk_gc_set_line_attributes(p->gc_selection_maximum, 1, GDK_LINE_ON_OFF_DASH, GDK_CAP_BUTT, GDK_JOIN_MITER);
+
+ color.red = 0;
+ color.green = 65535;
+ color.blue = 30000;
+ gdk_color_alloc(colormap, &color);
+ gdk_gc_set_foreground(p->gc_selection_maximum, &color);
+ }
+ else
+ {
+ p->selection.active = expose_event_selection_active;
+ p->selection_maximum.active = expose_event_selection_maximum_active;
+ preview_draw_selection(p); /* draw selections again */
+ }
+ }
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_start_button_clicked(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "preview_start_button_clicked\n");
+
+ preview_scan(data);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_cancel_button_clicked(GtkWidget *widget, gpointer data)
+{
+ Preview *p = (Preview *) data;
+
+ DBG(DBG_proc, "preview_cancel_button_clicked\n");
+
+ sane_cancel(xsane.dev);
+ gtk_widget_set_sensitive(p->cancel, FALSE); /* disable cancel button */
+
+ /* we have to make sure that xsane does detect that the scan has been cancled */
+ /* but the select_fd does not make sure that preview_read_image_data is called */
+ /* when the select_fd is closed by the backend, so we have to make sure that */
+ /* preview_read_image_data is called */
+ preview_read_image_data(p, -1, GDK_INPUT_READ);
+
+ p->scan_incomplete = TRUE;
+ preview_display_valid(p);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_create_preset_area_menu(Preview *p, int selection)
+{
+ int i;
+ GtkWidget *preset_area_menu, *preset_area_item;
+
+ preset_area_menu = gtk_menu_new();
+
+ for (i = 0; i < preferences.preset_area_definitions; ++i)
+ {
+ preset_area_item = gtk_menu_item_new_with_label(preferences.preset_area[i]->name);
+ gtk_container_add(GTK_CONTAINER(preset_area_menu), preset_area_item);
+ gtk_signal_connect(GTK_OBJECT(preset_area_item), "button_press_event", (GtkSignalFunc) preview_preset_area_context_menu_callback, p);
+ gtk_signal_connect(GTK_OBJECT(preset_area_item), "activate", (GtkSignalFunc) preview_preset_area_callback, p);
+ gtk_object_set_data(GTK_OBJECT(preset_area_item), "Selection", (void *) i);
+ gtk_object_set_data(GTK_OBJECT(preset_area_item), "Preview", (void *) p);
+
+ gtk_widget_show(preset_area_item);
+ }
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(p->preset_area_option_menu), preset_area_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(p->preset_area_option_menu), selection);
+
+ gtk_widget_show(preset_area_menu);
+ gtk_widget_queue_draw(p->preset_area_option_menu);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_generate_preview_filenames(Preview *p)
+{
+ char filename[PATH_MAX];
+ char buf[256];
+ int error_flag = 0;
+ int i;
+
+ DBG(DBG_proc, "preview_generate_preview_filenames\n");
+
+ for(i=0; i<=2; i++) /* create random filenames for previews */
+ {
+ if (preview_make_image_path(p, sizeof(filename), filename, i)>=0)
+ {
+ FILE *testfile;
+
+ testfile = fopen(filename, "wb");
+ if (testfile)
+ {
+ fclose(testfile);
+ p->filename[i] = strdup(filename);/* store filename */
+ DBG(DBG_info, "preview file %s created\n", filename);
+ }
+ else
+ {
+ p->filename[i] = NULL; /* mark filename does not exist */
+ DBG(DBG_error, "ERROR: could not create preview file %s\n", filename);
+ error_flag = 1;
+ }
+ }
+ else
+ {
+ DBG(DBG_error, "ERROR: could not create filename for preview level %d\n", i);
+ p->filename[i] = NULL;
+ error_flag = 2;
+ }
+ }
+
+ if (error_flag == 1)
+ {
+ snprintf(buf, sizeof(buf), ERR_CREATE_PREVIEW_FILE);
+ xsane_back_gtk_error(buf, TRUE);
+ }
+ else if (error_flag == 2)
+ {
+ snprintf(buf, sizeof(buf), ERR_CREATE_PREVIEW_FILENAME);
+ xsane_back_gtk_error(buf, TRUE);
+ }
+
+ return;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+Preview *preview_new(void)
+{
+ GtkWidget *table, *frame;
+ GtkSignalFunc signal_func;
+ GtkWidgetClass *class;
+ GtkWidget *vbox, *hbox;
+ GdkCursor *cursor;
+ GtkWidget *preset_area_option_menu;
+ GtkWidget *rotation_option_menu, *rotation_menu, *rotation_item;
+ GtkWidget *delete_images;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap = NULL;
+ Preview *p;
+ int i;
+ char buf[256];
+
+ DBG(DBG_proc, "preview_new\n");
+
+ p = malloc(sizeof(*p));
+ if (!p)
+ {
+ return 0;
+ }
+ memset(p, 0, sizeof(*p));
+
+ p->mode = MODE_NORMAL; /* no pipette functions etc */
+ p->calibration = 0; /* do not display calibration image */
+ p->input_tag = -1;
+ p->rotation = 0;
+ p->gamma_functions_interruptable = FALSE;
+
+ p->index_xmin = 0;
+ p->index_xmax = 2;
+ p->index_ymin = 1;
+ p->index_ymax = 3;
+
+ p->max_scanner_surface[0] = -INF;
+ p->max_scanner_surface[1] = -INF;
+ p->max_scanner_surface[2] = INF;
+ p->max_scanner_surface[3] = INF;
+
+ p->scanner_surface[0] = -INF;
+ p->scanner_surface[1] = -INF;
+ p->scanner_surface[2] = INF;
+ p->scanner_surface[3] = INF;
+
+ p->surface[0] = -INF;
+ p->surface[1] = -INF;
+ p->surface[2] = INF;
+ p->surface[3] = INF;
+
+ gtk_preview_set_gamma(1.0);
+ gtk_preview_set_install_cmap(preferences.preview_own_cmap);
+
+ preview_generate_preview_filenames(p);
+
+ p->preset_surface[0] = 0;
+ p->preset_surface[1] = 0;
+ p->preset_surface[2] = INF;
+ p->preset_surface[3] = INF;
+
+ p->maximum_output_width = INF; /* full output with */
+ p->maximum_output_height = INF; /* full output height */
+
+ p->preview_colors = -1;
+ p->invalid = TRUE; /* no valid preview */
+
+#ifndef XSERVER_WITH_BUGGY_VISUALS
+ gtk_widget_push_visual(gtk_preview_get_visual());
+#endif
+ gtk_widget_push_colormap(gtk_preview_get_cmap());
+
+ snprintf(buf, sizeof(buf), "%s %s", WINDOW_PREVIEW, xsane.device_text);
+ p->top = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title(GTK_WINDOW(p->top), buf);
+ xsane_set_window_icon(p->top, 0);
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(p->top));
+
+ /* set the main vbox */
+ vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 0);
+ gtk_container_add(GTK_CONTAINER(p->top), vbox);
+ gtk_widget_show(vbox);
+
+ /* set the main hbox */
+ hbox = gtk_hbox_new(FALSE, 0);
+ gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+
+ /* top hbox for icons */
+ p->button_box = gtk_hbox_new(FALSE, 1);
+ gtk_container_set_border_width(GTK_CONTAINER(p->button_box), 1);
+ gtk_box_pack_start(GTK_BOX(vbox), p->button_box, FALSE, FALSE, 0);
+
+ /* White, gray and black pipette button */
+ p->pipette_white = xsane_button_new_with_pixmap(p->top->window, p->button_box, pipette_white_xpm, DESC_PIPETTE_WHITE, (GtkSignalFunc) preview_pipette_white, p);
+ p->pipette_gray = xsane_button_new_with_pixmap(p->top->window, p->button_box, pipette_gray_xpm, DESC_PIPETTE_GRAY, (GtkSignalFunc) preview_pipette_gray, p);
+ p->pipette_black = xsane_button_new_with_pixmap(p->top->window, p->button_box, pipette_black_xpm, DESC_PIPETTE_BLACK, (GtkSignalFunc) preview_pipette_black, p);
+
+ /* Zoom not, zoom out and zoom in button */
+ p->zoom_not = xsane_button_new_with_pixmap(p->top->window, p->button_box, zoom_not_xpm, DESC_ZOOM_FULL, (GtkSignalFunc) preview_zoom_not, p);
+ p->zoom_out = xsane_button_new_with_pixmap(p->top->window, p->button_box, zoom_out_xpm, DESC_ZOOM_OUT, (GtkSignalFunc) preview_zoom_out, p);
+ p->zoom_in = xsane_button_new_with_pixmap(p->top->window, p->button_box, zoom_in_xpm, DESC_ZOOM_IN, (GtkSignalFunc) preview_zoom_in, p);
+ p->zoom_undo = xsane_button_new_with_pixmap(p->top->window, p->button_box, zoom_undo_xpm, DESC_ZOOM_UNDO, (GtkSignalFunc) preview_zoom_undo, p);
+ p->full_area = xsane_button_new_with_pixmap(p->top->window, p->button_box, auto_select_preview_area_xpm, DESC_AUTOSELECT_SCANAREA, (GtkSignalFunc) preview_autoselect_scanarea_callback, p);
+ p->autoselect = xsane_button_new_with_pixmap(p->top->window, p->button_box, full_preview_area_xpm, DESC_FULL_PREVIEW_AREA, (GtkSignalFunc) preview_full_preview_area_callback, p);
+ delete_images = xsane_button_new_with_pixmap(p->top->window, p->button_box, delete_images_xpm, DESC_DELETE_IMAGES, (GtkSignalFunc) preview_delete_images_callback, p);
+
+ gtk_widget_add_accelerator(p->zoom_not, "clicked", xsane.accelerator_group, GDK_KP_Multiply, GDK_MOD1_MASK, GTK_ACCEL_LOCKED); /* Alt keypad_* */
+ gtk_widget_add_accelerator(p->zoom_out, "clicked", xsane.accelerator_group, GDK_KP_Subtract, GDK_MOD1_MASK, GTK_ACCEL_LOCKED); /* Alt keypad_- */
+ gtk_widget_add_accelerator(p->zoom_in, "clicked", xsane.accelerator_group, GDK_KP_Add, GDK_MOD1_MASK, GTK_ACCEL_LOCKED); /* Alt keypad_+ */
+ gtk_widget_add_accelerator(p->zoom_undo, "clicked", xsane.accelerator_group, GDK_KP_Divide, GDK_MOD1_MASK, GTK_ACCEL_LOCKED); /* Alt keypad_/ */
+ gtk_widget_add_accelerator(p->full_area, "clicked", xsane.accelerator_group, GDK_A, GDK_MOD1_MASK, GTK_ACCEL_LOCKED); /* Alt keypad_* */
+ gtk_widget_add_accelerator(p->autoselect, "clicked", xsane.accelerator_group, GDK_V, GDK_MOD1_MASK, GTK_ACCEL_LOCKED); /* Alt keypad_* */
+ gtk_widget_add_accelerator(delete_images, "clicked", xsane.accelerator_group, GDK_KP_Delete, GDK_MOD1_MASK, GTK_ACCEL_LOCKED); /* Alt keypad_* */
+
+ gtk_widget_set_sensitive(p->zoom_not, FALSE); /* no zoom at this point, so no zoom not */
+ gtk_widget_set_sensitive(p->zoom_out, FALSE); /* no zoom at this point, so no zoom out */
+ gtk_widget_set_sensitive(p->zoom_undo, FALSE); /* no zoom at this point, so no zoom undo */
+ gtk_widget_set_sensitive(p->full_area, FALSE); /* no selection */
+ gtk_widget_set_sensitive(p->autoselect, FALSE); /* no selection */
+
+
+ /* select maximum scanarea */
+
+ preset_area_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, preset_area_option_menu, DESC_PRESET_AREA);
+ gtk_box_pack_start(GTK_BOX(p->button_box), preset_area_option_menu, FALSE, FALSE, 0);
+ gtk_widget_show(preset_area_option_menu);
+ p->preset_area_option_menu = preset_area_option_menu;
+ preview_create_preset_area_menu(p, 0); /* build menu and set default to 0=full size */
+
+
+ /* select rotation */
+ rotation_menu = gtk_menu_new();
+
+ for (i = 0; i < 12; ++i)
+ {
+ char buffer[256];
+ int rot;
+
+ if (i<4)
+ {
+ snprintf(buffer, sizeof(buffer), "%03d ", i*90);
+ rot = i;
+ }
+ else if (i<8)
+ {
+ snprintf(buffer, sizeof(buffer), "%03d |", i*90-360);
+ rot = i;
+ }
+ else
+ {
+ snprintf(buffer, sizeof(buffer), "%03d -", i*90-2*360);
+ rot = (((i & 3) + 2) & 3) + 4;
+ }
+ rotation_item = gtk_menu_item_new_with_label(buffer);
+ gtk_container_add(GTK_CONTAINER(rotation_menu), rotation_item);
+ gtk_signal_connect(GTK_OBJECT(rotation_item), "activate", (GtkSignalFunc) preview_rotation_callback, p);
+ gtk_object_set_data(GTK_OBJECT(rotation_item), "Selection", (void *) rot);
+
+ gtk_widget_show(rotation_item);
+ }
+
+ rotation_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, rotation_option_menu, DESC_ROTATION);
+ gtk_box_pack_start(GTK_BOX(p->button_box), rotation_option_menu, FALSE, FALSE, 0);
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(rotation_option_menu), rotation_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(rotation_option_menu), p->rotation); /* set rotation */
+/* xsane_back_gtk_set_tooltip(tooltips, rotation_option_menu, desc); */
+
+ gtk_widget_show(rotation_option_menu);
+ p->rotation_option_menu = rotation_option_menu;
+
+
+ gtk_widget_show(p->button_box);
+
+
+
+ /* construct the preview area (table with sliders & preview window) */
+ table = gtk_table_new(2, 2, /* homogeneous */ FALSE);
+ gtk_table_set_col_spacing(GTK_TABLE(table), 0, 1);
+ gtk_table_set_row_spacing(GTK_TABLE(table), 0, 1);
+ gtk_container_set_border_width(GTK_CONTAINER(table), 1);
+ gtk_box_pack_start(GTK_BOX(vbox), table, /* expand */ TRUE, /* fill */ TRUE, /* padding */ 0);
+
+ /* the empty box in the top-left corner */
+ frame = gtk_frame_new(/* label */ 0);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_OUT);
+ gtk_table_attach(GTK_TABLE(table), frame, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+
+ /* the unit label */
+ p->unit_label = gtk_label_new("cm");
+ gtk_container_add(GTK_CONTAINER(frame), p->unit_label);
+ gtk_widget_show(p->unit_label);
+
+ /* the horizontal ruler */
+ p->hruler = gtk_hruler_new();
+ gtk_table_attach(GTK_TABLE(table), p->hruler, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
+
+ /* the vertical ruler */
+ p->vruler = gtk_vruler_new();
+ gtk_table_attach(GTK_TABLE(table), p->vruler, 0, 1, 1, 2, 0, GTK_FILL, 0, 0);
+
+ /* the preview area */
+ p->window = gtk_preview_new(GTK_PREVIEW_COLOR);
+ gtk_preview_set_expand(GTK_PREVIEW(p->window), TRUE);
+
+ gtk_widget_set_events(p->window, GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
+ GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
+
+ /* the first expose_event is responsible to undraw the selection frame */
+ gtk_signal_connect(GTK_OBJECT(p->window), "expose_event", (GtkSignalFunc) preview_expose_event_handler_start, p);
+ gtk_signal_connect(GTK_OBJECT(p->window), "button_press_event", (GtkSignalFunc) preview_button_press_event_handler, p);
+ gtk_signal_connect(GTK_OBJECT(p->window), "motion_notify_event", (GtkSignalFunc) preview_motion_event_handler, p);
+ gtk_signal_connect(GTK_OBJECT(p->window), "button_release_event", (GtkSignalFunc) preview_button_release_event_handler, p);
+ gtk_signal_connect_after(GTK_OBJECT(p->window), "size_allocate", (GtkSignalFunc) preview_area_resize_handler, p);
+ /* the second expose_event is responsible to redraw the selection frame */
+ gtk_signal_connect_after(GTK_OBJECT(p->window), "expose_event", (GtkSignalFunc) preview_expose_event_handler_end, p);
+
+ /* Connect the motion-notify events of the preview area with the rulers. Nifty stuff! */
+ class = GTK_WIDGET_CLASS(GTK_OBJECT(p->hruler)->klass);
+ signal_func = (GtkSignalFunc) class->motion_notify_event;
+ gtk_signal_connect_object(GTK_OBJECT(p->window), "motion_notify_event", signal_func, GTK_OBJECT(p->hruler));
+ class = GTK_WIDGET_CLASS(GTK_OBJECT(p->vruler)->klass);
+ signal_func = (GtkSignalFunc) class->motion_notify_event;
+ gtk_signal_connect_object(GTK_OBJECT(p->window), "motion_notify_event", signal_func, GTK_OBJECT(p->vruler));
+
+
+ p->viewport = gtk_frame_new(/* label */ 0);
+ gtk_frame_set_shadow_type(GTK_FRAME(p->viewport), GTK_SHADOW_IN);
+ gtk_container_add(GTK_CONTAINER(p->viewport), p->window);
+
+ gtk_table_attach(GTK_TABLE(table), p->viewport, 1, 2, 1, 2,
+ GTK_FILL | GTK_EXPAND | GTK_SHRINK, GTK_FILL | GTK_EXPAND | GTK_SHRINK, 0, 0);
+
+ preview_update_surface(p, 0);
+
+ /* fill in action area: */
+
+ /* the (in)valid pixmaps */
+ pixmap = gdk_pixmap_create_from_xpm_d(p->top->window, &mask, xsane.bg_trans, (gchar **) valid_xpm);
+ p->valid_pixmap = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), p->valid_pixmap, FALSE, FALSE, 0);
+ gtk_widget_show(p->valid_pixmap);
+ gdk_pixmap_unref(pixmap);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(p->top->window, &mask, xsane.bg_trans, (gchar **) scanning_xpm);
+ p->scanning_pixmap = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), p->scanning_pixmap, FALSE, FALSE, 0);
+ gtk_widget_show(p->scanning_pixmap);
+ gdk_pixmap_unref(pixmap);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(p->top->window, &mask, xsane.bg_trans, (gchar **) incomplete_xpm);
+ p->incomplete_pixmap = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), p->incomplete_pixmap, FALSE, FALSE, 0);
+ gtk_widget_show(p->incomplete_pixmap);
+ gdk_pixmap_unref(pixmap);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(p->top->window, &mask, xsane.bg_trans, (gchar **) invalid_xpm);
+ p->invalid_pixmap = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), p->invalid_pixmap, FALSE, FALSE, 0);
+ gtk_widget_show(p->invalid_pixmap);
+ gdk_pixmap_unref(pixmap);
+
+ /* Start button */
+ p->start = gtk_button_new_with_label(BUTTON_PREVIEW_ACQUIRE);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, p->start, DESC_PREVIEW_ACQUIRE);
+ gtk_signal_connect(GTK_OBJECT(p->start), "clicked", (GtkSignalFunc) preview_start_button_clicked, p);
+ gtk_box_pack_start(GTK_BOX(hbox), p->start, TRUE, TRUE, 10);
+ gtk_widget_add_accelerator(p->start, "clicked", xsane.accelerator_group, GDK_P, GDK_MOD1_MASK, GTK_ACCEL_LOCKED); /* Alt P */
+
+ /* Cancel button */
+ p->cancel = gtk_button_new_with_label(BUTTON_PREVIEW_CANCEL);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, p->cancel, DESC_PREVIEW_CANCEL);
+ gtk_signal_connect(GTK_OBJECT(p->cancel), "clicked", (GtkSignalFunc) preview_cancel_button_clicked, p);
+ gtk_box_pack_start(GTK_BOX(hbox), p->cancel, TRUE, TRUE, 10);
+ gtk_widget_add_accelerator(p->cancel, "clicked", xsane.accelerator_group, GDK_Escape, GDK_MOD1_MASK, GTK_ACCEL_LOCKED); /* Alt ESC */
+ gtk_widget_set_sensitive(p->cancel, FALSE);
+
+ gtk_widget_show(p->cancel);
+ gtk_widget_show(p->start);
+ gtk_widget_show(p->viewport);
+ gtk_widget_show(p->window);
+ gtk_widget_show(p->hruler);
+ gtk_widget_show(p->vruler);
+ gtk_widget_show(frame);
+ gtk_widget_show(table);
+ gtk_widget_show(p->top);
+
+ cursor = gdk_cursor_new(XSANE_CURSOR_PREVIEW); /* set default curosr */
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = XSANE_CURSOR_PREVIEW;
+
+ gtk_widget_pop_colormap();
+#ifndef XSERVER_WITH_BUGGY_VISUALS
+ gtk_widget_pop_visual();
+#endif
+
+ preview_update_surface(p, 0);
+
+ preview_display_valid(p);
+
+ return p;
+}
+
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_area_correct(Preview *p)
+{
+ float width, height, max_width, max_height;
+ float aspect;
+
+ DBG(DBG_proc, "preview_area_correct\n");
+
+ if ( ((p->rotation & 3) == 0) || ((p->rotation & 3) == 2) || (p->calibration) )
+ {
+ aspect = p->aspect;
+ }
+ else
+ {
+ aspect = 1.0 / p->aspect;
+ }
+
+ max_width = p->preview_window_width;
+ max_height = p->preview_window_height;
+
+ width = max_width;
+ height = width / aspect;
+
+ if (height > max_height)
+ {
+ height = max_height;
+ width = height * aspect;
+ }
+
+ p->preview_width = width + 0.5;
+ p->preview_height = height + 0.5;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_update_surface(Preview *p, int surface_changed)
+{
+ float val;
+ float width, height;
+ float rotated_preset_surface[4];
+ const SANE_Option_Descriptor *opt;
+ int i;
+ SANE_Value_Type type;
+ SANE_Unit unit;
+ double min, max;
+ int expand_surface = 0;
+
+ DBG(DBG_proc, "preview_update_surface\n");
+
+ unit = SANE_UNIT_PIXEL;
+ type = SANE_TYPE_INT;
+
+ preview_update_selection(p); /* make sure preview selection is up to date */
+
+ p->show_selection = FALSE; /* at first let's say we have no corrdinate selection */
+
+ for (i = 0; i < 4; ++i) /* test if surface (max vals of scanarea) has changed */
+ {
+/* val = (i & 2) ? INF : -INF; */
+ val = (i & 2) ? INF : 0;
+
+ if (xsane.well_known.coord[i] > 0)
+ {
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.coord[i]);
+ assert(opt->unit == SANE_UNIT_PIXEL || opt->unit == SANE_UNIT_MM);
+ unit = opt->unit;
+ type = opt->type;
+ p->show_selection = TRUE; /* ok, we have a coordinate selection */
+
+ xsane_get_bounds(opt, &min, &max);
+
+ if (i & 2)
+ {
+ val = max;
+ }
+ else
+ {
+ val = min;
+ }
+ }
+
+ if (p->orig_scanner_surface[i] != val)
+ {
+ DBG(DBG_info, "preview_update_surface: orig_scanner_surface[%d] has changed\n", i);
+ surface_changed = 2;
+ p->orig_scanner_surface[i] = val;
+ }
+ }
+
+ if (surface_changed == 2) /* redefine all surface subparts */
+ {
+ DBG(DBG_info, "preview_update_surface: rotating surfaces\n");
+
+ /* max_scanner_surface are the rotated coordinates of orig_scanner_surface */
+ preview_rotate_devicesurface_to_previewsurface(p->rotation, p->orig_scanner_surface, p->max_scanner_surface);
+
+ gtk_widget_set_sensitive(p->zoom_not, TRUE); /* allow unzoom */
+ gtk_widget_set_sensitive(p->zoom_undo, FALSE); /* forbid undo zoom */
+
+ expand_surface = 1;
+ for (i = 0; i < 4; i++)
+ {
+ if (p->surface[i] != p->scanner_surface[i])
+ {
+ expand_surface = 0;
+ }
+ }
+ }
+ else
+ {
+ expand_surface = 0;
+ }
+
+
+ /* scanner_surface are the rotated coordinates of the reduced (preset) surface */
+ preview_rotate_devicesurface_to_previewsurface(p->rotation, p->preset_surface, rotated_preset_surface);
+ for (i = 0; i < 4; i++)
+ {
+ val = rotated_preset_surface[i];
+
+ xsane_bound_float(&val, p->max_scanner_surface[i % 2], p->max_scanner_surface[(i % 2) + 2]);
+ if (val != p->scanner_surface[i])
+ {
+ surface_changed = 1;
+ p->scanner_surface[i] = val;
+
+ if (expand_surface)
+ {
+ p->surface[i] = val;
+ }
+ }
+ DBG(DBG_info, "preview_update_surface: scanner_surface[%d] = %3.2f\n", i, val);
+ }
+
+ for (i = 0; i < 4; i++)
+ {
+ val = p->surface[i];
+
+ xsane_bound_float(&val, p->scanner_surface[i % 2], p->scanner_surface[(i % 2) + 2]);
+ if (val != p->surface[i])
+ {
+ surface_changed = 1;
+ p->surface[i] = val;
+ }
+ DBG(DBG_info, "preview_update_surface: surface[%d] = %3.2f\n", i, val);
+ }
+
+/* may be we need to define p->old_surface[i] here too */
+
+ if (p->surface_unit != unit)
+ {
+ surface_changed = 1;
+ p->surface_unit = unit;
+ }
+
+ if (p->show_selection)
+ {
+ gtk_widget_set_sensitive(p->preset_area_option_menu, TRUE); /* enable preset area */
+ gtk_widget_set_sensitive(p->zoom_in, TRUE); /* zoom in is allowed at all */
+ gtk_widget_set_sensitive(p->full_area, TRUE); /* enable selection buttons */
+ gtk_widget_set_sensitive(p->autoselect, TRUE);
+ }
+ else
+ {
+ gtk_widget_set_sensitive(p->preset_area_option_menu, FALSE); /* disable preset area */
+ gtk_widget_set_sensitive(p->zoom_in, FALSE); /* no zoom at all */
+ gtk_widget_set_sensitive(p->zoom_out, FALSE);
+ gtk_widget_set_sensitive(p->zoom_undo, FALSE);
+ gtk_widget_set_sensitive(p->zoom_not, FALSE);
+ gtk_widget_set_sensitive(p->full_area, FALSE); /* no selection */
+ gtk_widget_set_sensitive(p->autoselect, FALSE); /* no selection */
+ }
+
+ if (p->surface_type != type)
+ {
+ surface_changed = 1;
+ p->surface_type = type;
+ }
+
+
+ if (surface_changed)
+ {
+ DBG(DBG_info, "preview_update_surface: surface_changed\n");
+ /* guess the initial preview window size: */
+
+ preview_restore_image(p); /* load scanned image */
+
+ width = p->surface[p->index_xmax] - p->surface[p->index_xmin];
+ height = p->surface[p->index_ymax] - p->surface[p->index_ymin];
+
+ if ( (p->calibration) || (p->startimage) ) /* predefined image should have constant aspect */
+ {
+ p->aspect = fabs(p->image_width/(float) p->image_height);
+ }
+ else if (width >= INF || height >= INF) /* undefined size */
+ {
+ p->aspect = 1.0;
+ }
+ else /* we have a surface size that can be used to calculate the aspect ratio */
+ {
+ if (((p->rotation & 3) == 0) || ((p->rotation & 3) == 2)) /* 0 or 180 degree */
+ {
+ p->aspect = width/height;
+ }
+ else /* 90 or 270 degree */
+ {
+ p->aspect = height/width;
+ }
+ }
+ }
+#if 0
+ else if ( (p->image_height) && (p->image_width) ) /* we have an image so let´s calculate the correct aspect ratio */
+ {
+ p->aspect = fabs(p->image_width/(float) p->image_height);
+ }
+#endif
+
+ DBG(DBG_info, "preview_update_surface: aspect = %f\n", p->aspect);
+
+ if ( (surface_changed) && (p->preview_window_width == 0) ) /* window is new */
+ {
+ DBG(DBG_info, "preview_update_surface: defining size of preview window\n");
+
+ p->preview_window_width = 0.3 * gdk_screen_width();
+ p->preview_window_height = 0.5 * gdk_screen_height();
+ preview_area_correct(p); /* calculate preview_width and height */
+ gtk_widget_set_usize(GTK_WIDGET(p->window), p->preview_width, p->preview_height);
+ }
+ else if (surface_changed) /* establish new surface */
+ {
+ DBG(DBG_info, "preview_update_surface: establish new surface\n");
+ preview_area_correct(p); /* calculate preview_width and height */
+ preview_area_resize(p); /* correct rulers */
+ preview_do_gamma_correction(p); /* draw preview */
+ xsane_update_histogram(TRUE /* update raw */);
+
+ p->previous_selection.active = FALSE;
+ p->previous_selection_maximum.active = FALSE;
+ preview_bound_selection(p); /* make sure selection is not larger than surface */
+ preview_draw_selection(p); /* the selection is overpainted, we have to update it */
+ preview_establish_selection(p); /* send selection to backend, it may be changed */
+ }
+ else /* leave everything like it is */
+ {
+ DBG(DBG_info, "preview_update_surface: surface unchanged\n");
+ preview_update_selection(p);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_scan(Preview *p)
+{
+ double min, max, swidth, sheight, width, height, dpi = 0;
+ const SANE_Option_Descriptor *opt;
+ gint gwidth, gheight;
+ int i;
+ float dsurface[4];
+
+ DBG(DBG_proc, "preview_scan\n");
+
+ /* we are overpainting the image, so we do not have any visible selections */
+ p->previous_selection.active = FALSE;
+ p->previous_selection_maximum.active = FALSE;
+
+ xsane.block_update_param = TRUE; /* do not change parameters each time */
+
+ preview_save_option(p, xsane.well_known.dpi, &p->saved_dpi, &p->saved_dpi_valid);
+ preview_save_option(p, xsane.well_known.dpi_x, &p->saved_dpi_x, &p->saved_dpi_x_valid);
+ preview_save_option(p, xsane.well_known.dpi_y, &p->saved_dpi_y, &p->saved_dpi_y_valid);
+ preview_save_option(p, xsane.well_known.scanmode, &p->saved_scanmode, &p->saved_scanmode_valid);
+
+ for (i = 0; i < 4; ++i)
+ {
+ preview_save_option(p, xsane.well_known.coord[i], &p->saved_coord[i], p->saved_coord_valid + i);
+ }
+
+ preview_save_option(p, xsane.well_known.bit_depth, &p->saved_bit_depth, &p->saved_bit_depth_valid);
+
+#if 0
+ xsane_set_medium(preferences.medium[xsane.medium_nr]); /* make sure medium gamma values are up to date */
+#endif
+
+ /* determine dpi, if necessary: */
+
+ if (xsane.well_known.dpi > 0)
+ {
+ float aspect;
+
+ if ( ((p->rotation & 3) == 0) || ((p->rotation & 3) == 2) )
+ {
+ aspect = p->aspect;
+ }
+ else
+ {
+ aspect = 1.0 / p->aspect;
+ }
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.dpi);
+
+ gwidth = p->preview_width;
+ gheight = p->preview_height;
+
+ height = gheight;
+ width = height * aspect;
+
+ if (width > gwidth)
+ {
+ width = gwidth;
+ height = width / aspect;
+ }
+
+ swidth = fabs(p->surface[xsane_back_gtk_BR_X] - p->surface[xsane_back_gtk_TL_X]);
+
+ if (swidth < INF)
+ {
+ dpi = MM_PER_INCH * width/swidth;
+ }
+ else
+ {
+ sheight = fabs(p->surface[xsane_back_gtk_BR_Y] - p->surface[xsane_back_gtk_TL_Y]);
+ if (sheight < INF)
+ {
+ dpi = MM_PER_INCH * height/sheight;
+ }
+ else
+ {
+ dpi = 18.0;
+ }
+ }
+
+ dpi = dpi * preferences.preview_oversampling; /* faktor for resolution */
+
+ xsane_get_bounds(opt, &min, &max);
+
+ if (dpi < min)
+ {
+ dpi = min;
+ }
+
+ if (dpi > max)
+ {
+ dpi = max;
+ }
+
+ xsane_set_resolution(xsane.well_known.dpi, dpi); /* set resolution to dpi or next higher value that is available */
+ xsane_set_resolution(xsane.well_known.dpi_x, dpi); /* set resolution to dpi or next higher value that is available */
+ xsane_set_resolution(xsane.well_known.dpi_y, dpi); /* set resolution to dpi or next higher value that is available */
+ }
+
+ preview_rotate_previewsurface_to_devicesurface(p->rotation, p->surface, dsurface);
+
+ for (i = 0; i < 4; ++i)
+ {
+ preview_set_option_float(p, xsane.well_known.coord[i], dsurface[i]);
+ }
+
+ preview_set_option_val(p, xsane.well_known.preview, SANE_TRUE);
+
+ if ( (xsane.grayscale_scanmode) && (xsane.param.depth == 1) && (xsane.lineart_mode == XSANE_LINEART_GRAYSCALE) )
+ {
+ preview_set_option(p, xsane.well_known.scanmode, xsane.grayscale_scanmode);
+ }
+
+#if 0
+ if ( (p->saved_bit_depth == 16) && (p->saved_bit_depth_valid) ) /* don't scan with 16 bpp */
+ {
+ preview_set_option_val(p, xsane.well_known.bit_depth, 8);
+ }
+#endif
+
+ xsane.block_update_param = FALSE;
+ p->preview_colors = xsane.xsane_colors;
+ p->scan_incomplete = FALSE;
+ p->invalid = TRUE; /* no valid preview */
+ p->scanning = TRUE;
+
+ preview_display_valid(p);
+
+
+ xsane_clear_histogram(&xsane.histogram_raw);
+ xsane_clear_histogram(&xsane.histogram_enh);
+
+
+ /* OK, all set to go */
+ preview_scan_start(p);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_save_image_file(Preview *p, FILE *out)
+{
+ DBG(DBG_proc, "preview_save_image_file\n");
+
+ if (out)
+ {
+ float dsurface[4];
+
+ preview_rotate_previewsurface_to_devicesurface(p->rotation, p->surface, dsurface);
+
+ /* always save it as a 16 bit PPM image: */
+ fprintf(out, "P6\n"
+ "# surface: %g %g %g %g %u %u\n"
+ "# time: %d\n"
+ "%d %d\n65535\n",
+ dsurface[0], dsurface[1], dsurface[2], dsurface[3],
+ p->surface_type, p->surface_unit,
+ (int) time(NULL),
+ p->image_width, p->image_height);
+
+ fwrite(p->image_data_raw, 6, p->image_width*p->image_height, out);
+ fclose(out);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_save_image(Preview *p)
+{
+ FILE *out;
+ int level=0;
+
+ DBG(DBG_proc, "preview_save_image\n");
+
+ if (!p->image_data_raw)
+ {
+ return;
+ }
+
+ if ( GROSSLY_EQUAL(p->max_scanner_surface[0], p->surface[0]) && /* full device surface */
+ GROSSLY_EQUAL(p->max_scanner_surface[1], p->surface[1]) &&
+ GROSSLY_EQUAL(p->max_scanner_surface[2], p->surface[2]) &&
+ GROSSLY_EQUAL(p->max_scanner_surface[3], p->surface[3]) )
+ {
+ level = 0;
+ }
+ else if ( GROSSLY_EQUAL(p->scanner_surface[0], p->surface[0]) && /* user defined surface */
+ GROSSLY_EQUAL(p->scanner_surface[1], p->surface[1]) &&
+ GROSSLY_EQUAL(p->scanner_surface[2], p->surface[2]) &&
+ GROSSLY_EQUAL(p->scanner_surface[3], p->surface[3]) )
+ {
+ level = 1;
+ }
+ else /* zoom area */
+ {
+ level = 2;
+ }
+
+ if (p->filename[level])
+ {
+ /* save preview image */
+ out = fopen(p->filename[level], "wb"); /* b = binary mode for win32*/
+
+ preview_save_image_file(p, out);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_delete_images(Preview *p)
+{
+ FILE *out;
+ int level=0;
+
+ DBG(DBG_proc, "preview_delete_images_file\n");
+
+ for (level = 0; level<3; level++)
+ {
+ out = fopen(p->filename[level], "wb"); /* b = binary mode for win32*/
+ if (out)
+ fclose(out);
+ }
+ preview_update_surface(p, 1);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_destroy(Preview *p)
+{
+ int level;
+
+ DBG(DBG_proc, "preview_destroy\n");
+
+ if (p->scanning)
+ {
+ preview_scan_done(p, 0); /* don't save partial window */
+ }
+
+ for(level = 0; level <= 2; level++)
+ {
+ if (p->filename[level])
+ {
+ remove(p->filename[level]); /* remove existing preview */
+ }
+ }
+
+ if (p->image_data_enh)
+ {
+ free(p->image_data_enh);
+ p->image_data_enh = 0;
+ }
+
+ if (p->image_data_raw)
+ {
+ free(p->image_data_raw);
+ p->image_data_raw = 0;
+ }
+
+ if (p->preview_row)
+ {
+ free(p->preview_row);
+ p->preview_row = 0;
+ }
+
+ if (p->gc_selection)
+ {
+ gdk_gc_destroy(p->gc_selection);
+ }
+
+ if (p->gc_selection_maximum)
+ {
+ gdk_gc_destroy(p->gc_selection_maximum);
+ }
+
+ if (p->top)
+ {
+ gtk_widget_destroy(p->top);
+ }
+ free(p);
+
+ p = 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_zoom_not(GtkWidget *window, gpointer data)
+{
+ Preview *p=data;
+ int i;
+
+ DBG(DBG_proc, "preview_zoom_not\n");
+
+ for (i=0; i<4; i++)
+ {
+ p->surface[i] = p->scanner_surface[i];
+ }
+
+ preview_update_surface(p, 1);
+ gtk_widget_set_sensitive(p->zoom_not, FALSE); /* forbid unzoom */
+ gtk_widget_set_sensitive(p->zoom_out, FALSE); /* forbid zoom out */
+ gtk_widget_set_sensitive(p->zoom_undo,TRUE); /* allow zoom undo */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_zoom_out(GtkWidget *window, gpointer data)
+{
+ Preview *p=data;
+ int i;
+ float delta_width;
+ float delta_height;
+
+ DBG(DBG_proc, "preview_zoom_out\n");
+
+ for (i=0; i<4; i++)
+ {
+ p->old_surface[i] = p->surface[i];
+ }
+
+ delta_width = (p->surface[p->index_xmax] - p->surface[p->index_xmin]) * 0.2;
+ delta_height = (p->surface[p->index_ymax] - p->surface[p->index_ymin]) * 0.2;
+
+ p->surface[p->index_xmin] -= delta_width;
+ p->surface[p->index_xmax] += delta_width;
+ p->surface[p->index_ymin] -= delta_height;
+ p->surface[p->index_ymax] += delta_height;
+
+ if (p->surface[p->index_xmin] < p->scanner_surface[p->index_xmin])
+ {
+ p->surface[p->index_xmin] = p->scanner_surface[p->index_xmin];
+ }
+
+ if (p->surface[p->index_ymin] < p->scanner_surface[p->index_ymin])
+ {
+ p->surface[p->index_ymin] = p->scanner_surface[p->index_ymin];
+ }
+
+ if (p->surface[p->index_xmax] > p->scanner_surface[p->index_xmax])
+ {
+ p->surface[p->index_xmax] = p->scanner_surface[p->index_xmax];
+ }
+
+ if (p->surface[p->index_ymax] > p->scanner_surface[p->index_ymax])
+ {
+ p->surface[p->index_ymax] = p->scanner_surface[p->index_ymax];
+ }
+
+ preview_update_surface(p, 1);
+ gtk_widget_set_sensitive(p->zoom_not, TRUE); /* allow unzoom */
+ gtk_widget_set_sensitive(p->zoom_undo,TRUE); /* allow zoom undo */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_zoom_in(GtkWidget *window, gpointer data)
+{
+ Preview *p=data;
+ int i;
+
+ DBG(DBG_proc, "preview_zoom_in\n");
+
+ for (i=0; i<4; i++)
+ {
+ p->old_surface[i] = p->surface[i];
+ p->surface[i] = p->selection.coordinate[i];
+ }
+
+ preview_update_surface(p, 1);
+ gtk_widget_set_sensitive(p->zoom_not, TRUE); /* allow unzoom */
+ gtk_widget_set_sensitive(p->zoom_out, TRUE); /* allow zoom out */
+ gtk_widget_set_sensitive(p->zoom_undo,TRUE); /* allow zoom undo */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_zoom_undo(GtkWidget *window, gpointer data)
+{
+ Preview *p=data;
+ int i;
+
+ DBG(DBG_proc, "preview_zoom_undo\n");
+
+ for (i=0; i<4; i++)
+ {
+ p->surface[i] = p->old_surface[i];
+ }
+
+ preview_update_surface(p, 1);
+ gtk_widget_set_sensitive(p->zoom_not, TRUE); /* allow unzoom */
+ gtk_widget_set_sensitive(p->zoom_out, TRUE); /* allow zoom out */
+ gtk_widget_set_sensitive(p->zoom_undo, FALSE); /* forbid zoom undo */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_get_color(Preview *p, int x, int y, int range, int *red, int *green, int *blue)
+{
+ int image_x, image_y;
+ int image_x_min, image_y_min;
+ int image_x_max, image_y_max;
+ int offset;
+ int count = 0;
+
+ DBG(DBG_proc, "preview_get_color\n");
+
+ if (p->image_data_raw)
+ {
+ preview_transform_coordinate_window_to_image(p, x, y, &image_x, &image_y);
+
+ if ( (image_x < p->image_width) && (image_y < p->image_height) )
+ {
+ image_x_min = image_x - range/2;
+ image_y_min = image_y - range/2;
+ image_x_max = image_x + range/2;
+ image_y_max = image_y + range/2;
+
+ xsane_bound_int(&image_x_min, 0, p->image_width - 1);
+ xsane_bound_int(&image_x_max, 0, p->image_width - 1);
+ xsane_bound_int(&image_y_min, 0, p->image_height - 1);
+ xsane_bound_int(&image_y_max, 0, p->image_height - 1);
+
+ *red = 0;
+ *green = 0;
+ *blue = 0;
+
+ for (image_x = image_x_min; image_x <= image_x_max; image_x++)
+ {
+ for (image_y = image_y_min; image_y <= image_y_max; image_y++)
+ {
+ count++;
+
+ offset = 3 * (image_y * p->image_width + image_x);
+
+ if (!xsane.negative) /* positive */
+ {
+ *red += (p->image_data_raw[offset ]) >> 8;
+ *green += (p->image_data_raw[offset + 1]) >> 8;
+ *blue += (p->image_data_raw[offset + 2]) >> 8;
+ }
+ else /* negative */
+ {
+ *red += 255 - (p->image_data_raw[offset ] >> 8);
+ *green += 255 - (p->image_data_raw[offset + 1] >> 8);
+ *blue += 255 - (p->image_data_raw[offset + 2] >> 8);
+ }
+ }
+ }
+
+ *red /= count;
+ *green /= count;
+ *blue /= count;
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_pipette_white(GtkWidget *window, gpointer data)
+{
+ Preview *p=data;
+ GdkCursor *cursor;
+ GdkColor fg;
+ GdkColor bg;
+ GdkPixmap *pixmap;
+ GdkPixmap *mask;
+
+ DBG(DBG_proc, "preview_pipette_white\n");
+
+ p->mode = MODE_PIPETTE_WHITE;
+
+ pixmap = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_white, CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
+ mask = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_mask, CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
+
+ fg.red = 0;
+ fg.green = 0;
+ fg.blue = 0;
+
+ bg.red = 65535;
+ bg.green = 65535;
+ bg.blue = 65535;
+
+ cursor = gdk_cursor_new_from_pixmap(pixmap, mask, &fg, &bg, CURSOR_PIPETTE_HOT_X, CURSOR_PIPETTE_HOT_Y);
+
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = -1;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_pipette_gray(GtkWidget *window, gpointer data)
+{
+ Preview *p=data;
+ GdkCursor *cursor;
+ GdkColor fg;
+ GdkColor bg;
+ GdkPixmap *pixmap;
+ GdkPixmap *mask;
+
+ DBG(DBG_proc, "preview_pipette_gray\n");
+
+ p->mode = MODE_PIPETTE_GRAY;
+
+ pixmap = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_gray, CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
+ mask = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_mask, CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
+
+ fg.red = 0;
+ fg.green = 0;
+ fg.blue = 0;
+
+ bg.red = 65535;
+ bg.green = 65535;
+ bg.blue = 65535;
+
+ cursor = gdk_cursor_new_from_pixmap(pixmap, mask, &fg, &bg, CURSOR_PIPETTE_HOT_X, CURSOR_PIPETTE_HOT_Y);
+
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = -1;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_pipette_black(GtkWidget *window, gpointer data)
+{
+ Preview *p=data;
+ GdkCursor *cursor;
+ GdkColor fg;
+ GdkColor bg;
+ GdkPixmap *pixmap;
+ GdkPixmap *mask;
+
+ DBG(DBG_proc, "preview_pipette_black\n");
+
+ p->mode = MODE_PIPETTE_BLACK;
+
+ pixmap = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_black, CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
+ mask = gdk_bitmap_create_from_data(p->top->window, cursor_pipette_mask , CURSOR_PIPETTE_WIDTH, CURSOR_PIPETTE_HEIGHT);
+
+ fg.red = 0;
+ fg.green = 0;
+ fg.blue = 0;
+
+ bg.red = 65535;
+ bg.green = 65535;
+ bg.blue = 65535;
+
+ cursor = gdk_cursor_new_from_pixmap(pixmap, mask, &fg, &bg, CURSOR_PIPETTE_HOT_X, CURSOR_PIPETTE_HOT_Y);
+
+ gdk_window_set_cursor(p->window->window, cursor);
+ gdk_cursor_destroy(cursor);
+ p->cursornr = -1;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_select_full_preview_area(Preview *p)
+{
+ int i;
+
+ DBG(DBG_proc, "preview_select_full_preview_area\n");
+
+ p->selection.active = TRUE;
+
+ for (i=0; i<4; i++)
+ {
+ p->selection.coordinate[i] = p->surface[i];
+ }
+
+ preview_update_maximum_output_size(p);
+ preview_draw_selection(p);
+ preview_establish_selection(p);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_full_preview_area_callback(GtkWidget *widget, gpointer call_data)
+{
+ Preview *p = call_data;
+
+ DBG(DBG_proc, "preview_full_preview_area_callback\n");
+
+ preview_select_full_preview_area(p);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_delete_images_callback(GtkWidget *widget, gpointer call_data)
+{
+ Preview *p = call_data;
+
+ DBG(DBG_proc, "preview_delete_images_callback\n");
+
+ preview_delete_images(p);
+ p->invalid = TRUE;
+ preview_display_valid(p);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_preset_area_entry_rename;
+
+static void xsane_preset_area_entry_rename_button_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_preset_area_entry_rename\n");
+
+ xsane_preset_area_entry_rename = (int) data;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint preview_preset_area_rename_callback(GtkWidget *widget, GtkWidget *preset_area_widget)
+{
+ int selection;
+ char *oldname;
+ char *newname;
+ Preview *p;
+ GtkWidget *rename_dialog;
+ GtkWidget *text;
+ GtkWidget *button;
+ GtkWidget *vbox, *hbox;
+ GtkWidget *old_preset_area_menu;
+ char buf[256];
+ int old_selection;
+
+
+ DBG(DBG_proc, "preview_preset_area_rename_callback\n");
+
+ selection = (int) gtk_object_get_data(GTK_OBJECT(preset_area_widget), "Selection");
+ p = (Preview *) gtk_object_get_data(GTK_OBJECT(preset_area_widget), "Preview");
+
+ DBG(DBG_info ,"rename %s\n", preferences.preset_area[selection]->name);
+
+ old_preset_area_menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(p->preset_area_option_menu));
+ old_selection = (int) gtk_object_get_data(GTK_OBJECT(gtk_menu_get_active(GTK_MENU(old_preset_area_menu))), "Selection");
+
+ gtk_menu_popdown(GTK_MENU(old_preset_area_menu));
+ /* set menu in correct state, is a bit strange this way but I do not have a better idea */
+ gtk_option_menu_set_history(GTK_OPTION_MENU(p->preset_area_option_menu), old_selection);
+
+ oldname = strdup(preferences.preset_area[selection]->name);
+
+ rename_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ xsane_set_window_icon(rename_dialog, 0);
+
+ /* set rename dialog */
+ gtk_window_set_position(GTK_WINDOW(rename_dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_policy(GTK_WINDOW(rename_dialog), FALSE, FALSE, FALSE);
+ snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_PRESET_AREA_RENAME);
+ gtk_window_set_title(GTK_WINDOW(rename_dialog), buf);
+ gtk_signal_connect(GTK_OBJECT(rename_dialog), "delete_event", (GtkSignalFunc) xsane_preset_area_entry_rename_button_callback, (void *) -1);
+ gtk_widget_show(rename_dialog);
+
+ /* set the main vbox */
+ vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 0);
+ gtk_container_add(GTK_CONTAINER(rename_dialog), vbox);
+ gtk_widget_show(vbox);
+
+ /* set the main hbox */
+ hbox = gtk_hbox_new(FALSE, 0);
+ xsane_separator_new(vbox, 2);
+ gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+ text = gtk_entry_new_with_max_length(64);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRESET_AREA_NAME);
+ gtk_entry_set_text(GTK_ENTRY(text), oldname);
+ gtk_widget_set_usize(text, 300, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), text, TRUE, TRUE, 4);
+ gtk_widget_show(text);
+
+
+ button = gtk_button_new_with_label("OK");
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_preset_area_entry_rename_button_callback, (void *) 1);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label("Cancel");
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_preset_area_entry_rename_button_callback, (void *) -1);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ xsane_preset_area_entry_rename = 0;
+
+ while (xsane_preset_area_entry_rename == 0)
+ {
+ while (gtk_events_pending())
+ {
+ DBG(DBG_info, "preview_preset_area_rename_callback: calling gtk_main_iteration\n");
+ gtk_main_iteration();
+ }
+ }
+
+ newname = strdup(gtk_entry_get_text(GTK_ENTRY(text)));
+
+ if (xsane_preset_area_entry_rename == 1) /* OK button has been pressed */
+ {
+ gtk_option_menu_remove_menu(GTK_OPTION_MENU(p->preset_area_option_menu));
+
+ if (GTK_IS_WIDGET(old_preset_area_menu)) /* the menu normally is closed when we come here */
+ {
+ gtk_widget_destroy(old_preset_area_menu);
+ }
+
+ free(preferences.preset_area[selection]->name);
+ preferences.preset_area[selection]->name = strdup(newname);
+ DBG(DBG_info, "renaming %s to %s\n", oldname, newname);
+
+ preview_create_preset_area_menu(p, old_selection);
+ }
+
+ free(oldname);
+ free(newname);
+
+ gtk_widget_destroy(rename_dialog);
+
+ xsane_set_sensitivity(TRUE);
+
+ return TRUE; /* event is handled */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint preview_preset_area_add_callback(GtkWidget *widget, GtkWidget *preset_area_widget)
+{
+ int selection, i, old_selection = 0;
+ Preview *p;
+ GtkWidget *old_preset_area_menu;
+
+ DBG(DBG_proc, "preview_preset_area_add_callback\n");
+
+ selection = (int) gtk_object_get_data(GTK_OBJECT(preset_area_widget), "Selection");
+ p = (Preview *) gtk_object_get_data(GTK_OBJECT(preset_area_widget), "Preview");
+
+ if (selection < preferences.preset_area_definitions)
+ {
+ char buf[256];
+ float coord[4];
+
+ preferences.preset_area = realloc(preferences.preset_area, (preferences.preset_area_definitions+1) * sizeof(void *));
+
+ /* shift all items after selection */
+ for (i = preferences.preset_area_definitions-1; i > selection; i--)
+ {
+ preferences.preset_area[i+1] = preferences.preset_area[i];
+ }
+
+ /* insert new item behind selected item, name is size in mm */
+ preview_rotate_previewsurface_to_devicesurface(p->rotation, p->selection.coordinate, coord);
+ snprintf(buf, sizeof(buf), "%d mm x %d mm", (int) (coord[2]-coord[0]), (int) (coord[3]-coord[1]));
+ preferences.preset_area[selection+1] = calloc(sizeof(Preferences_preset_area_t), 1);
+ preferences.preset_area[selection+1]->name = strdup(buf);
+ preferences.preset_area[selection+1]->xoffset = coord[0];
+ preferences.preset_area[selection+1]->yoffset = coord[1];
+ preferences.preset_area[selection+1]->width = coord[2] - coord[0];
+ preferences.preset_area[selection+1]->height = coord[3] - coord[1];
+
+ DBG(DBG_proc, "added %s\n", buf);
+
+ preferences.preset_area_definitions++;
+
+ old_preset_area_menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(p->preset_area_option_menu));
+
+ gtk_option_menu_remove_menu(GTK_OPTION_MENU(p->preset_area_option_menu));
+ old_selection = (int) gtk_object_get_data(GTK_OBJECT(gtk_menu_get_active(GTK_MENU(old_preset_area_menu))), "Selection");
+
+ if (old_selection > selection) /* we are moving the selected surface */
+ {
+ old_selection++;
+ }
+
+ gtk_widget_destroy(old_preset_area_menu);
+
+ preview_create_preset_area_menu(p, old_selection);
+ }
+
+ return TRUE; /* event is handled */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint preview_preset_area_delete_callback(GtkWidget *widget, GtkWidget *preset_area_widget)
+{
+ int selection, i, old_selection = 0;
+ Preview *p;
+ GtkWidget *old_preset_area_menu;
+
+ DBG(DBG_proc, "preview_preset_area_delete_callback\n");
+
+ selection = (int) gtk_object_get_data(GTK_OBJECT(preset_area_widget), "Selection");
+ p = (Preview *) gtk_object_get_data(GTK_OBJECT(preset_area_widget), "Preview");
+
+
+ if (selection) /* full size can not be deleted */
+ {
+ DBG(DBG_info ,"deleting %s\n", preferences.preset_area[selection]->name);
+
+ free(preferences.preset_area[selection]);
+
+ for (i=selection; i<preferences.preset_area_definitions-1; i++)
+ {
+ preferences.preset_area[i] = preferences.preset_area[i+1];
+ }
+
+ preferences.preset_area_definitions--;
+
+ old_preset_area_menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(p->preset_area_option_menu));
+
+ gtk_option_menu_remove_menu(GTK_OPTION_MENU(p->preset_area_option_menu));
+ old_selection = (int) gtk_object_get_data(GTK_OBJECT(gtk_menu_get_active(GTK_MENU(old_preset_area_menu))), "Selection");
+
+ if (old_selection == selection) /* we are deleting the selected surface */
+ {
+ old_selection = 0;
+ }
+ else if (old_selection > selection) /* we are deleting the selected surface */
+ {
+ old_selection--;
+ }
+
+ gtk_widget_destroy(old_preset_area_menu);
+
+ preview_create_preset_area_menu(p, old_selection); /* build menu and set default to 0=full size */
+ }
+
+ return TRUE; /* event is handled */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint preview_preset_area_move_up_callback(GtkWidget *widget, GtkWidget *preset_area_widget)
+{
+ int selection, old_selection = 0;
+ Preview *p;
+ GtkWidget *old_preset_area_menu;
+
+ DBG(DBG_proc, "preview_preset_area_move_up_callback\n");
+
+ selection = (int) gtk_object_get_data(GTK_OBJECT(preset_area_widget), "Selection");
+ p = (Preview *) gtk_object_get_data(GTK_OBJECT(preset_area_widget), "Preview");
+
+ if (selection > 1) /* make sure "full area" stays at top */
+ {
+ Preferences_preset_area_t *help_area;
+
+ DBG(DBG_info ,"moving up %s\n", preferences.preset_area[selection]->name);
+
+ help_area = preferences.preset_area[selection-1];
+ preferences.preset_area[selection-1] = preferences.preset_area[selection];
+ preferences.preset_area[selection] = help_area;
+
+ old_preset_area_menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(p->preset_area_option_menu));
+
+ gtk_option_menu_remove_menu(GTK_OPTION_MENU(p->preset_area_option_menu));
+ old_selection = (int) gtk_object_get_data(GTK_OBJECT(gtk_menu_get_active(GTK_MENU(old_preset_area_menu))), "Selection");
+
+ if (old_selection == selection)
+ {
+ old_selection--;
+ }
+ else if (old_selection == selection-1)
+ {
+ old_selection++;
+ }
+
+ gtk_widget_destroy(old_preset_area_menu);
+
+ preview_create_preset_area_menu(p, old_selection); /* build menu and set default to 0=full size */
+ }
+
+ return TRUE; /* event is handled */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint preview_preset_area_move_down_callback(GtkWidget *widget, GtkWidget *preset_area_widget)
+{
+ int selection, old_selection = 0;
+ Preview *p;
+ GtkWidget *old_preset_area_menu;
+
+ DBG(DBG_proc, "preview_preset_area_move_down_callback\n");
+
+ selection = (int) gtk_object_get_data(GTK_OBJECT(preset_area_widget), "Selection");
+ p = (Preview *) gtk_object_get_data(GTK_OBJECT(preset_area_widget), "Preview");
+
+ /* full size can not moved down */
+ if ((selection) && (selection < preferences.preset_area_definitions-1))
+ {
+ Preferences_preset_area_t *help_area;
+
+ DBG(DBG_info ,"moving down %s\n", preferences.preset_area[selection]->name);
+
+ help_area = preferences.preset_area[selection];
+ preferences.preset_area[selection] = preferences.preset_area[selection+1];
+ preferences.preset_area[selection+1] = help_area;
+
+ old_preset_area_menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(p->preset_area_option_menu));
+
+ gtk_option_menu_remove_menu(GTK_OPTION_MENU(p->preset_area_option_menu));
+ old_selection = (int) gtk_object_get_data(GTK_OBJECT(gtk_menu_get_active(GTK_MENU(old_preset_area_menu))), "Selection");
+
+ if (old_selection == selection)
+ {
+ old_selection++;
+ }
+ else if (old_selection == selection+1)
+ {
+ old_selection--;
+ }
+
+ gtk_widget_destroy(old_preset_area_menu);
+
+ preview_create_preset_area_menu(p, old_selection); /* build menu and set default to 0=full size */
+ }
+
+ return TRUE; /* event is handled */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint preview_preset_area_context_menu_callback(GtkWidget *widget, GdkEvent *event)
+{
+ GtkWidget *menu;
+ GtkWidget *menu_item;
+ GdkEventButton *event_button;
+ int selection;
+
+ DBG(DBG_proc, "preview_preset_area_context_menu_callback\n");
+
+ selection = (int) gtk_object_get_data(GTK_OBJECT(widget), "Selection");
+
+ if (event->type == GDK_BUTTON_PRESS)
+ {
+ event_button = (GdkEventButton *) event;
+
+ if (event_button->button == 3)
+ {
+ menu = gtk_menu_new();
+
+ /** add selection */
+ menu_item = gtk_menu_item_new_with_label(MENU_ITEM_PRESET_AREA_ADD_SEL);
+ gtk_widget_show(menu_item);
+ gtk_container_add(GTK_CONTAINER(menu), menu_item);
+ gtk_signal_connect(GTK_OBJECT(menu_item), "activate", (GtkSignalFunc) preview_preset_area_add_callback, widget);
+
+ /* rename preset area */
+ menu_item = gtk_menu_item_new_with_label(MENU_ITEM_PRESET_AREA_RENAME);
+ gtk_widget_show(menu_item);
+ gtk_container_add(GTK_CONTAINER(menu), menu_item);
+ gtk_signal_connect(GTK_OBJECT(menu_item), "activate", (GtkSignalFunc) preview_preset_area_rename_callback, widget);
+
+ if (selection) /* not available for "full area" */
+ {
+ /* delete preset area */
+ menu_item = gtk_menu_item_new_with_label(MENU_ITEM_PRESET_AREA_DELETE);
+ gtk_widget_show(menu_item);
+ gtk_container_add(GTK_CONTAINER(menu), menu_item);
+ gtk_signal_connect(GTK_OBJECT(menu_item), "activate", (GtkSignalFunc) preview_preset_area_delete_callback, widget);
+ }
+
+ if (selection>1) /* available from 3rd item */
+ {
+ /* move up */
+ menu_item = gtk_menu_item_new_with_label(MENU_OTEM_PRESET_AREA_MOVE_UP);
+ gtk_widget_show(menu_item);
+ gtk_container_add(GTK_CONTAINER(menu), menu_item);
+ gtk_signal_connect(GTK_OBJECT(menu_item), "activate", (GtkSignalFunc) preview_preset_area_move_up_callback, widget);
+ }
+
+ if ((selection) && (selection < preferences.preset_area_definitions-1))
+ {
+ /* move down */
+ menu_item = gtk_menu_item_new_with_label(MENU_OTEM_PRESET_AREA_MOVE_DWN);
+ gtk_widget_show(menu_item);
+ gtk_container_add(GTK_CONTAINER(menu), menu_item);
+ gtk_signal_connect(GTK_OBJECT(menu_item), "activate", (GtkSignalFunc) preview_preset_area_move_down_callback, widget);
+ }
+
+ gtk_widget_show(menu);
+ gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, event_button->button, event_button->time);
+
+ return TRUE; /* event is handled */
+ }
+ }
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_preset_area_callback(GtkWidget *widget, gpointer call_data)
+{
+ Preview *p = call_data;
+ int selection;
+
+ DBG(DBG_proc, "preview_preset_area_callback\n");
+
+ selection = (int) gtk_object_get_data(GTK_OBJECT(widget), "Selection");
+
+ p->preset_surface[0] = preferences.preset_area[selection]->xoffset;
+ p->preset_surface[1] = preferences.preset_area[selection]->yoffset;
+ p->preset_surface[2] = preferences.preset_area[selection]->xoffset + preferences.preset_area[selection]->width;
+ p->preset_surface[3] = preferences.preset_area[selection]->yoffset + preferences.preset_area[selection]->height;
+
+ gtk_widget_set_sensitive(p->zoom_not, TRUE); /* allow unzoom */
+ gtk_widget_set_sensitive(p->zoom_undo, FALSE); /* forbid undo zoom */
+
+ preview_update_surface(p, 0);
+ preview_zoom_not(NULL, p);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_rotation_callback(GtkWidget *widget, gpointer call_data)
+{
+ Preview *p = call_data;
+ float rotated_surface[4];
+ int rot;
+
+ DBG(DBG_proc, "preview_rotation_callback\n");
+
+ rot = (int) gtk_object_get_data(GTK_OBJECT(widget), "Selection");
+
+ switch (rot)
+ {
+ case 0: /* 0 degree */
+ default:
+ p->index_xmin = 0;
+ p->index_xmax = 2;
+ p->index_ymin = 1;
+ p->index_ymax = 3;
+ break;
+
+ case 1: /* 90 degree */
+ p->index_xmin = 2;
+ p->index_xmax = 0;
+ p->index_ymin = 1;
+ p->index_ymax = 3;
+ break;
+
+ case 2: /* 180 degree */
+ p->index_xmin = 2;
+ p->index_xmax = 0;
+ p->index_ymin = 3;
+ p->index_ymax = 1;
+ break;
+
+ case 3: /* 270 degree */
+ p->index_xmin = 0;
+ p->index_xmax = 2;
+ p->index_ymin = 3;
+ p->index_ymax = 1;
+ break;
+
+ case 4: /* 0 degree, x mirror */
+ p->index_xmin = 2;
+ p->index_xmax = 0;
+ p->index_ymin = 1;
+ p->index_ymax = 3;
+ break;
+
+ case 5: /* 90 degree, x mirror */
+ p->index_xmin = 0;
+ p->index_xmax = 2;
+ p->index_ymin = 1;
+ p->index_ymax = 3;
+ break;
+
+ case 6: /* 180 degree, x mirror */
+ p->index_xmin = 0;
+ p->index_xmax = 2;
+ p->index_ymin = 3;
+ p->index_ymax = 1;
+ break;
+
+ case 7: /* 270 degree, x mirror */
+ p->index_xmin = 2;
+ p->index_xmax = 0;
+ p->index_ymin = 3;
+ p->index_ymax = 1;
+ }
+
+ /* at first undo mirror function, this is necessary because order does matter */
+ if (p->rotation & 4)
+ {
+ rotated_surface[0] = p->surface[0];
+ rotated_surface[1] = p->surface[1];
+ rotated_surface[2] = p->surface[2];
+ rotated_surface[3] = p->surface[3];
+ preview_rotate_devicesurface_to_previewsurface(4, rotated_surface, p->surface);
+ }
+
+ /* now rotate the selection area and do mirror function (can be done in one step) */
+ rotated_surface[0] = p->surface[0];
+ rotated_surface[1] = p->surface[1];
+ rotated_surface[2] = p->surface[2];
+ rotated_surface[3] = p->surface[3];
+ preview_rotate_devicesurface_to_previewsurface(( ( (rot & 3) - (p->rotation & 3) ) & 3 ) + /* rotation */ (rot & 4)/* x mirror */, rotated_surface, p->surface);
+
+ p->rotation = rot;
+
+ preview_update_selection(p); /* read selection from backend: correct rotation */
+ preview_update_surface(p, 2); /* rotate surfaces */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void preview_autoselect_scanarea_callback(GtkWidget *window, gpointer data)
+{
+ Preview *p=data;
+
+ preview_autoselect_scanarea(p, p->selection.coordinate); /* get autoselection coordinates */
+ preview_draw_selection(p);
+ preview_establish_selection(p);
+ xsane_update_histogram(TRUE /* update raw */); /* update histogram (necessary because overwritten by preview_update_surface */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_do_gamma_correction(Preview *p)
+{
+ int x,y;
+ int offset;
+ u_char *image_data_enhp;
+ guint16 *image_data_rawp;
+ int rotate = 16 - preview_gamma_input_bits;
+
+ DBG(DBG_proc, "preview_do_gamma_correction\n");
+
+ if ((p->image_data_raw) && (p->params.depth > 1) && (preview_gamma_data_red))
+ {
+ if ( (xsane.param.format == SANE_FRAME_RGB) || /* color preview */
+ (xsane.param.format == SANE_FRAME_RED) ||
+ (xsane.param.format == SANE_FRAME_GREEN) ||
+ (xsane.param.format == SANE_FRAME_BLUE) )
+ {
+ for (y=0; y < p->image_height; y++)
+ {
+ offset = 3 * (y * p->image_width);
+
+ image_data_rawp = p->image_data_raw + offset;
+ image_data_enhp = p->image_data_enh + offset;
+
+ for (x=0; x < p->image_width; x++)
+ {
+ *image_data_enhp++ = preview_gamma_data_red [(*image_data_rawp++) >> rotate];
+ *image_data_enhp++ = preview_gamma_data_green[(*image_data_rawp++) >> rotate];
+ *image_data_enhp++ = preview_gamma_data_blue [(*image_data_rawp++) >> rotate];
+ }
+
+ if (p->gamma_functions_interruptable)
+ {
+ while (gtk_events_pending())
+ {
+ DBG(DBG_info, "preview_do_gamma_correction: calling gtk_main_iteration\n");
+ gtk_main_iteration();
+ }
+ }
+ }
+ }
+ else /* grayscale preview */
+ {
+ int level;
+
+ for (y=0; y < p->image_height; y++)
+ {
+ offset = 3 * (y * p->image_width);
+
+ image_data_rawp = p->image_data_raw + offset;
+ image_data_enhp = p->image_data_enh + offset;
+
+ for (x=0; x < p->image_width; x++)
+ {
+ level = ((*image_data_rawp++) + (*image_data_rawp++) + (*image_data_rawp++)) / 3;
+ level >>= rotate;
+ *image_data_enhp++ = preview_gamma_data_red [level]; /* use 12 bit gamma table */
+ *image_data_enhp++ = preview_gamma_data_green[level];
+ *image_data_enhp++ = preview_gamma_data_blue [level];
+ }
+
+ if (p->gamma_functions_interruptable)
+ {
+ while (gtk_events_pending())
+ {
+ DBG(DBG_info, "preview_read_image_data (raw): calling gtk_main_iteration\n");
+ gtk_main_iteration();
+ }
+ }
+ }
+ }
+ }
+
+ if (p->image_data_enh)
+ {
+ preview_display_partial_image(p);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_calculate_raw_histogram(Preview *p, SANE_Int *count_raw, SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue)
+{
+ int x, y;
+ int offset;
+ SANE_Int red_raw, green_raw, blue_raw;
+ SANE_Int min_x, max_x, min_y, max_y;
+ float xscale, yscale;
+ guint16 *image_data_rawp;
+
+ DBG(DBG_proc, "preview_calculate_raw_histogram\n");
+
+ preview_get_scale_device_to_image(p, &xscale, &yscale);
+
+ switch (p->rotation)
+ {
+ case 0: /* 0 degree */
+ default:
+ min_x = (p->selection.coordinate[0] - p->surface[0]) * xscale;
+ min_y = (p->selection.coordinate[1] - p->surface[1]) * yscale;
+ max_x = (p->selection.coordinate[2] - p->surface[0]) * xscale;
+ max_y = (p->selection.coordinate[3] - p->surface[1]) * yscale;
+ break;
+
+ case 1: /* 90 degree */
+ min_x = (p->selection.coordinate[1] - p->surface[1]) * xscale;
+ min_y = (p->selection.coordinate[2] - p->surface[2]) * xscale;
+ max_x = (p->selection.coordinate[3] - p->surface[1]) * xscale;
+ max_y = (p->selection.coordinate[0] - p->surface[2]) * xscale;
+ break;
+
+ case 2: /* 180 degree */
+ min_x = (p->selection.coordinate[2] - p->surface[2]) * xscale;
+ min_y = (p->selection.coordinate[3] - p->surface[3]) * yscale;
+ max_x = (p->selection.coordinate[0] - p->surface[2]) * xscale;
+ max_y = (p->selection.coordinate[1] - p->surface[3]) * yscale;
+ break;
+
+ case 3: /* 270 degree */
+ min_x = (p->selection.coordinate[3] - p->surface[3]) * xscale;
+ min_y = (p->selection.coordinate[0] - p->surface[0]) * yscale;
+ max_x = (p->selection.coordinate[1] - p->surface[3]) * xscale;
+ max_y = (p->selection.coordinate[2] - p->surface[0]) * yscale;
+ break;
+
+ case 4: /* 0 degree, x mirror */
+ min_x = (p->selection.coordinate[2] - p->surface[2]) * xscale;
+ min_y = (p->selection.coordinate[1] - p->surface[1]) * yscale;
+ max_x = (p->selection.coordinate[0] - p->surface[2]) * xscale;
+ max_y = (p->selection.coordinate[3] - p->surface[1]) * yscale;
+ break;
+
+ case 5: /* 90 degree, x mirror */
+ min_x = (p->selection.coordinate[1] - p->surface[1]) * xscale;
+ min_y = (p->selection.coordinate[0] - p->surface[0]) * yscale;
+ max_x = (p->selection.coordinate[3] - p->surface[1]) * xscale;
+ max_y = (p->selection.coordinate[2] - p->surface[0]) * yscale;
+ break;
+
+ case 6: /* 180 degree, x mirror */
+ min_x = (p->selection.coordinate[0] - p->surface[0]) * xscale;
+ min_y = (p->selection.coordinate[3] - p->surface[3]) * yscale;
+ max_x = (p->selection.coordinate[2] - p->surface[0]) * xscale;
+ max_y = (p->selection.coordinate[1] - p->surface[3]) * yscale;
+ break;
+
+ case 7: /* 270 degree, x mirror */
+ min_x = (p->selection.coordinate[3] - p->surface[3]) * xscale;
+ min_y = (p->selection.coordinate[2] - p->surface[2]) * yscale;
+ max_x = (p->selection.coordinate[1] - p->surface[3]) * xscale;
+ max_y = (p->selection.coordinate[0] - p->surface[2]) * yscale;
+ break;
+ }
+
+ if (min_x < 0)
+ {
+ min_x = 0;
+ }
+
+ if (max_x >= p->image_width)
+ {
+ max_x = p->image_width-1;
+ }
+
+ if (min_y < 0)
+ {
+ min_y = 0;
+ }
+
+ if (max_y >= p->image_height)
+ {
+ max_y = p->image_height-1;
+ }
+
+ if ((p->image_data_raw) && (p->params.depth > 1) && (preview_gamma_data_red))
+ {
+ for (y = min_y; y <= max_y; y++)
+ {
+ offset = 3 * (y * p->image_width + min_x);
+ image_data_rawp = p->image_data_raw + offset;
+
+ if (!histogram_medium_gamma_data_red) /* no medium gamma table for histogran */
+ {
+ for (x = min_x; x <= max_x; x++)
+ {
+ red_raw = (*image_data_rawp++) >> 8; /* reduce from 16 to 8 bits */
+ green_raw = (*image_data_rawp++) >> 8;
+ blue_raw = (*image_data_rawp++) >> 8;
+
+ count_raw [(u_char) ((red_raw + green_raw + blue_raw)/3)]++;
+ count_raw_red [red_raw]++;
+ count_raw_green[green_raw]++;
+ count_raw_blue [blue_raw]++;
+ }
+ }
+ else /* use medium gamma table for raw histogram */
+ {
+ int rotate = 16 - preview_gamma_input_bits;
+
+ for (x = min_x; x <= max_x; x++)
+ {
+ red_raw = histogram_medium_gamma_data_red [(*image_data_rawp++) >> rotate];
+ green_raw = histogram_medium_gamma_data_green[(*image_data_rawp++) >> rotate];
+ blue_raw = histogram_medium_gamma_data_blue [(*image_data_rawp++) >> rotate];
+
+ count_raw [(u_char) ((red_raw + green_raw + blue_raw)/3)]++;
+ count_raw_red [red_raw]++;
+ count_raw_green[green_raw]++;
+ count_raw_blue [blue_raw]++;
+ }
+ }
+
+ if (p->gamma_functions_interruptable)
+ {
+ while (gtk_events_pending())
+ {
+ DBG(DBG_info, "preview_calculate_raw_histogram: calling gtk_main_iteration\n");
+ gtk_main_iteration();
+ }
+ }
+ }
+ }
+ else /* no preview image => all colors = 1 */
+ {
+ int i;
+
+ for (i = 1; i <= 254; i++)
+ {
+ count_raw [i] = 0;
+ count_raw_red [i] = 0;
+ count_raw_green[i] = 0;
+ count_raw_blue [i] = 0;
+ }
+
+ count_raw [0] = 10;
+ count_raw_red [0] = 10;
+ count_raw_green[0] = 10;
+ count_raw_blue [0] = 10;
+
+ count_raw [255] = 10;
+ count_raw_red [255] = 10;
+ count_raw_green[255] = 10;
+ count_raw_blue [255] = 10;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_calculate_enh_histogram(Preview *p, SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue)
+{
+ int x, y;
+ int offset;
+ u_char red, green, blue;
+ SANE_Int min_x, max_x, min_y, max_y;
+ float xscale, yscale;
+ guint16 *image_data_rawp;
+ int rotate = 16 - preview_gamma_input_bits;
+
+ DBG(DBG_proc, "preview_calculate_enh_histogram\n");
+
+ preview_get_scale_device_to_image(p, &xscale, &yscale);
+
+ switch (p->rotation)
+ {
+ case 0: /* 0 degree */
+ default:
+ min_x = (p->selection.coordinate[0] - p->surface[0]) * xscale;
+ min_y = (p->selection.coordinate[1] - p->surface[1]) * yscale;
+ max_x = (p->selection.coordinate[2] - p->surface[0]) * xscale;
+ max_y = (p->selection.coordinate[3] - p->surface[1]) * yscale;
+ break;
+
+ case 1: /* 90 degree */
+ min_x = (p->selection.coordinate[1] - p->surface[1]) * xscale;
+ min_y = (p->selection.coordinate[2] - p->surface[2]) * xscale;
+ max_x = (p->selection.coordinate[3] - p->surface[1]) * xscale;
+ max_y = (p->selection.coordinate[0] - p->surface[2]) * xscale;
+ break;
+
+ case 2: /* 180 degree */
+ min_x = (p->selection.coordinate[2] - p->surface[2]) * xscale;
+ min_y = (p->selection.coordinate[3] - p->surface[3]) * yscale;
+ max_x = (p->selection.coordinate[0] - p->surface[2]) * xscale;
+ max_y = (p->selection.coordinate[1] - p->surface[3]) * yscale;
+ break;
+
+ case 3: /* 270 degree */
+ min_x = (p->selection.coordinate[3] - p->surface[3]) * xscale;
+ min_y = (p->selection.coordinate[0] - p->surface[0]) * yscale;
+ max_x = (p->selection.coordinate[1] - p->surface[3]) * xscale;
+ max_y = (p->selection.coordinate[2] - p->surface[0]) * yscale;
+ break;
+
+ case 4: /* 0 degree, x mirror */
+ min_x = (p->selection.coordinate[2] - p->surface[2]) * xscale;
+ min_y = (p->selection.coordinate[1] - p->surface[1]) * yscale;
+ max_x = (p->selection.coordinate[0] - p->surface[2]) * xscale;
+ max_y = (p->selection.coordinate[3] - p->surface[1]) * yscale;
+ break;
+
+ case 5: /* 90 degree, x mirror */
+ min_x = (p->selection.coordinate[1] - p->surface[1]) * xscale;
+ min_y = (p->selection.coordinate[0] - p->surface[0]) * yscale;
+ max_x = (p->selection.coordinate[3] - p->surface[1]) * xscale;
+ max_y = (p->selection.coordinate[2] - p->surface[0]) * yscale;
+ break;
+
+ case 6: /* 180 degree, x mirror */
+ min_x = (p->selection.coordinate[0] - p->surface[0]) * xscale;
+ min_y = (p->selection.coordinate[3] - p->surface[3]) * yscale;
+ max_x = (p->selection.coordinate[2] - p->surface[0]) * xscale;
+ max_y = (p->selection.coordinate[1] - p->surface[3]) * yscale;
+ break;
+
+ case 7: /* 270 degree, x mirror */
+ min_x = (p->selection.coordinate[3] - p->surface[3]) * xscale;
+ min_y = (p->selection.coordinate[2] - p->surface[2]) * yscale;
+ max_x = (p->selection.coordinate[1] - p->surface[3]) * xscale;
+ max_y = (p->selection.coordinate[0] - p->surface[2]) * yscale;
+ break;
+ }
+
+ if (min_x < 0)
+ {
+ min_x = 0;
+ }
+
+ if (max_x >= p->image_width)
+ {
+ max_x = p->image_width-1;
+ }
+
+ if (min_y < 0)
+ {
+ min_y = 0;
+ }
+
+ if (max_y >= p->image_height)
+ {
+ max_y = p->image_height-1;
+ }
+
+ if ((p->image_data_raw) && (p->params.depth > 1) && (preview_gamma_data_red))
+ {
+ for (y = min_y; y <= max_y; y++)
+ {
+ offset = 3 * (y * p->image_width + min_x);
+ image_data_rawp = p->image_data_raw + offset;
+
+ for (x = min_x; x <= max_x; x++)
+ {
+ red = histogram_gamma_data_red [(*image_data_rawp++) >> rotate];
+ green = histogram_gamma_data_green[(*image_data_rawp++) >> rotate];
+ blue = histogram_gamma_data_blue [(*image_data_rawp++) >> rotate];
+
+ count [(u_char) ((red + green + blue)/3)]++;
+ count_red [red]++;
+ count_green[green]++;
+ count_blue [blue]++;
+ }
+
+ if (p->gamma_functions_interruptable)
+ {
+ while (gtk_events_pending())
+ {
+ DBG(DBG_info, "preview_calculate_enh_histogram: calling gtk_main_iteration\n");
+ gtk_main_iteration();
+ }
+ }
+ }
+ }
+ else /* no preview image => all colors = 1 */
+ {
+ int i;
+
+ for (i = 1; i <= 254; i++)
+ {
+ count [i] = 0;
+ count_red [i] = 0;
+ count_green[i] = 0;
+ count_blue [i] = 0;
+ }
+
+ count [0] = 10;
+ count_red [0] = 10;
+ count_green[0] = 10;
+ count_blue [0] = 10;
+
+ count [255] = 10;
+ count_red [255] = 10;
+ count_green[255] = 10;
+ count_blue [255] = 10;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_gamma_correction(Preview *p, int gamma_input_bits,
+ u_char *gamma_red, u_char *gamma_green, u_char *gamma_blue,
+ u_char *gamma_red_hist, u_char *gamma_green_hist, u_char *gamma_blue_hist,
+ u_char *medium_gamma_red_hist, u_char *medium_gamma_green_hist, u_char *medium_gamma_blue_hist)
+{
+ DBG(DBG_proc, "preview_gamma_correction\n");
+
+ preview_gamma_data_red = gamma_red;
+ preview_gamma_data_green = gamma_green;
+ preview_gamma_data_blue = gamma_blue;
+
+ histogram_gamma_data_red = gamma_red_hist;
+ histogram_gamma_data_green = gamma_green_hist;
+ histogram_gamma_data_blue = gamma_blue_hist;
+
+ histogram_medium_gamma_data_red = medium_gamma_red_hist;
+ histogram_medium_gamma_data_green = medium_gamma_green_hist;
+ histogram_medium_gamma_data_blue = medium_gamma_blue_hist;
+
+ preview_gamma_input_bits = gamma_input_bits;
+
+ preview_do_gamma_correction(p);
+ preview_draw_selection(p);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_area_resize(Preview *p)
+{
+ float min_x, max_x, delta_x;
+ float min_y, max_y, delta_y;
+ float xscale, yscale;
+
+ DBG(DBG_proc, "preview_area_resize\n");
+
+ p->preview_window_width = p->window->allocation.width;
+ p->preview_window_height = p->window->allocation.height;
+
+ p->preview_width = p->window->allocation.width;
+ p->preview_height = p->window->allocation.height;
+
+ preview_area_correct(p); /* set preview dimensions (with right aspect) that it fits into the window */
+
+ if (p->preview_row) /* make sure preview_row is large enough for one line of the new size */
+ {
+ p->preview_row = realloc(p->preview_row, 3 * p->preview_window_width);
+ }
+ else
+ {
+ p->preview_row = malloc(3 * p->preview_window_width);
+ }
+
+ /* set the ruler ranges: */
+
+ min_x = p->surface[xsane_back_gtk_TL_X];
+ max_x = p->surface[xsane_back_gtk_BR_X];
+ min_y = p->surface[xsane_back_gtk_TL_Y];
+ max_y = p->surface[xsane_back_gtk_BR_Y];
+
+
+ if (min_x <= -INF)
+ {
+ min_x = 0.0;
+ }
+ if (min_x >= INF)
+ {
+ min_x = p->image_width - 1;
+ }
+
+ if (max_x <= -INF)
+ {
+ max_x = 0.0;
+ }
+ if (max_x >= INF)
+ {
+ max_x = p->image_width - 1;
+ }
+
+ if (min_y <= -INF)
+ {
+ min_y = 0.0;
+ }
+ if (min_y >= INF)
+ {
+ min_y = p->image_height - 1;
+ }
+
+ if (max_y <= -INF)
+ {
+ max_y = 0.0;
+ }
+ if (max_y >= INF)
+ {
+ max_y = p->image_height - 1;
+ }
+
+ /* convert mm to inches if that's what the user wants: */
+
+ if (p->surface_unit == SANE_UNIT_MM)
+ {
+ double factor = 1.0/preferences.length_unit;
+
+ min_x *= factor;
+ max_x *= factor;
+ min_y *= factor;
+ max_y *= factor;
+ }
+
+ preview_get_scale_window_to_image(p, &xscale, &yscale);
+
+ delta_x = max_x - min_x;
+
+ gtk_ruler_set_range(GTK_RULER(p->hruler), min_x, min_x + delta_x*p->preview_window_width/p->preview_width, min_x, /* max_size */ 20);
+
+ delta_y = max_y - min_y;
+
+ gtk_ruler_set_range(GTK_RULER(p->vruler), min_y, min_y + delta_y*p->preview_window_height/p->preview_height, min_y, /* max_size */ 20);
+
+ gtk_label_set_text(GTK_LABEL(p->unit_label), xsane_back_gtk_unit_string(p->surface_unit));
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+gint preview_area_resize_handler(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+ Preview *p = (Preview *) data;
+ DBG(DBG_proc, "preview_area_resize_handler\n");
+
+ preview_area_resize(p);
+ preview_paint_image(p);
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+#if 0
+void preview_update_maximum_output_size(Preview *p)
+{
+ DBG(DBG_proc, "preview_update_maximum_output_size\n");
+
+ if ( (p->maximum_output_width >= INF) || (p->maximum_output_height >= INF) )
+ {
+ if (p->selection_maximum.active)
+ {
+ p->selection_maximum.active = FALSE;
+ }
+ }
+ else
+ {
+ p->previous_selection_maximum = p->selection_maximum;
+
+ p->selection_maximum.active = TRUE;
+ p->selection_maximum.coordinate[0] = (p->selection.coordinate[0] + p->selection.coordinate[2] - p->maximum_output_width )/2.0;
+ p->selection_maximum.coordinate[1] = (p->selection.coordinate[1] + p->selection.coordinate[3] - p->maximum_output_height)/2.0;
+ p->selection_maximum.coordinate[2] = (p->selection.coordinate[0] + p->selection.coordinate[2] + p->maximum_output_width )/2.0;
+ p->selection_maximum.coordinate[3] = (p->selection.coordinate[1] + p->selection.coordinate[3] + p->maximum_output_height)/2.0;
+
+ if (p->selection_maximum.coordinate[0] < p->max_scanner_surface[0])
+ {
+ p->selection_maximum.coordinate[0] = p->max_scanner_surface[0];
+ }
+
+ if (p->selection_maximum.coordinate[1] < p->max_scanner_surface[1])
+ {
+ p->selection_maximum.coordinate[1] = p->max_scanner_surface[1];
+ }
+
+ if (p->selection_maximum.coordinate[2] > p->max_scanner_surface[2])
+ {
+ p->selection_maximum.coordinate[2] = p->max_scanner_surface[2];
+ }
+
+ if (p->selection_maximum.coordinate[3] > p->max_scanner_surface[3])
+ {
+ p->selection_maximum.coordinate[3] = p->max_scanner_surface[3];
+ }
+
+ if ( (p->selection.coordinate[0] < p->selection_maximum.coordinate[0]) ||
+ (p->selection.coordinate[1] < p->selection_maximum.coordinate[1]) ||
+ (p->selection.coordinate[2] > p->selection_maximum.coordinate[2]) ||
+ (p->selection.coordinate[3] > p->selection_maximum.coordinate[3]) )
+ {
+ if (p->selection.coordinate[0] < p->selection_maximum.coordinate[0])
+ {
+ p->selection.coordinate[0] = p->selection_maximum.coordinate[0];
+ }
+
+ if (p->selection.coordinate[1] < p->selection_maximum.coordinate[1])
+ {
+ p->selection.coordinate[1] = p->selection_maximum.coordinate[1];
+ }
+
+ if (p->selection.coordinate[2] > p->selection_maximum.coordinate[2])
+ {
+ p->selection.coordinate[2] = p->selection_maximum.coordinate[2];
+ }
+
+ if (p->selection.coordinate[3] > p->selection_maximum.coordinate[3])
+ {
+ p->selection.coordinate[3] = p->selection_maximum.coordinate[3];
+ }
+ preview_draw_selection(p);
+ preview_establish_selection(p);
+ }
+ }
+}
+#endif
+
+void preview_update_maximum_output_size(Preview *p)
+{
+ if ( (p->maximum_output_width >= INF) || (p->maximum_output_height >= INF) )
+ {
+ if (p->selection_maximum.active)
+ {
+ p->selection_maximum.active = FALSE;
+ }
+ }
+ else
+ {
+ p->previous_selection_maximum = p->selection_maximum;
+
+ p->selection_maximum.active = TRUE;
+ p->selection_maximum.coordinate[p->index_xmin] = p->selection.coordinate[p->index_xmin];
+ p->selection_maximum.coordinate[p->index_ymin] = p->selection.coordinate[p->index_ymin];
+ p->selection_maximum.coordinate[p->index_xmax] = p->selection.coordinate[p->index_xmin] + p->maximum_output_width;
+ p->selection_maximum.coordinate[p->index_ymax] = p->selection.coordinate[p->index_ymin] + p->maximum_output_height;
+
+ if (p->selection_maximum.coordinate[p->index_xmax] > p->max_scanner_surface[p->index_xmax])
+ {
+ p->selection_maximum.coordinate[p->index_xmax] = p->max_scanner_surface[p->index_xmax];
+ }
+
+ if (p->selection_maximum.coordinate[p->index_ymax] > p->max_scanner_surface[p->index_ymax])
+ {
+ p->selection_maximum.coordinate[p->index_ymax] = p->max_scanner_surface[p->index_ymax];
+ }
+
+ if ( (p->selection.coordinate[p->index_xmin] < p->selection_maximum.coordinate[p->index_xmin]) ||
+ (p->selection.coordinate[p->index_ymin] < p->selection_maximum.coordinate[p->index_ymin]) ||
+ (p->selection.coordinate[p->index_xmax] > p->selection_maximum.coordinate[p->index_xmax]) ||
+ (p->selection.coordinate[p->index_ymax] > p->selection_maximum.coordinate[p->index_ymax]) )
+ {
+ if (p->selection.coordinate[p->index_xmax] > p->selection_maximum.coordinate[p->index_xmax])
+ {
+ p->selection.coordinate[p->index_xmax] = p->selection_maximum.coordinate[p->index_xmax];
+ }
+
+ if (p->selection.coordinate[p->index_ymax] > p->selection_maximum.coordinate[p->index_ymax])
+ {
+ p->selection.coordinate[p->index_ymax] = p->selection_maximum.coordinate[p->index_ymax];
+ }
+ preview_draw_selection(p);
+ preview_establish_selection(p);
+ }
+ }
+}
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_set_maximum_output_size(Preview *p, float width, float height)
+{
+ /* witdh and height in device units */
+ DBG(DBG_proc, "preview_set_maximum_output_size\n");
+
+ p->maximum_output_width = width;
+ p->maximum_output_height = height;
+
+ preview_update_maximum_output_size(p);
+ preview_draw_selection(p);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_autoselect_scanarea(Preview *p, float *autoselect_coord)
+{
+ int x, y;
+ int offset;
+ float color;
+ int top, bottom, left, right;
+ float xscale, yscale;
+ long bright_sum = 0;
+ int brightness;
+ int background_white;
+
+ DBG(DBG_proc, "preview_autoselect_scanarea\n");
+
+ /* try to find out background color */
+ /* add color values at the margins */
+ /* and see if it is more black or more white */
+
+ /* upper line */
+ for (x = 0; x < p->image_width; x++)
+ {
+ offset = 3 * x;
+ bright_sum += (p->image_data_enh[offset + 0] + p->image_data_enh[offset + 1] + p->image_data_enh[offset + 2]) / 3.0;
+ }
+
+ /* lower line */
+ for (x = 0; x < p->image_width; x++)
+ {
+ offset = 3 * ( (p->image_height-1) * p->image_width + x);
+ bright_sum += (p->image_data_enh[offset + 0] + p->image_data_enh[offset + 1] + p->image_data_enh[offset + 2]) / 3.0;
+ }
+
+ /* left line */
+ for (y = 0; y < p->image_height; y++)
+ {
+ offset = 3 * y * p->image_width;
+ bright_sum += (p->image_data_enh[offset + 0] + p->image_data_enh[offset + 1] + p->image_data_enh[offset + 2]) / 3.0;
+ }
+
+ /* right line */
+ for (y = 0; y < p->image_height; y++)
+ {
+ offset = 3 * (y * p->image_width + p->image_width - 1);
+ bright_sum += (p->image_data_enh[offset + 0] + p->image_data_enh[offset + 1] + p->image_data_enh[offset + 2]) / 3.0;
+ }
+
+ brightness = bright_sum / (2 * (p->image_width + p->image_height) );
+ DBG(DBG_info, "preview_autoselect_scanarea: average margin brightness is %d\n", brightness);
+
+ if ( brightness > 128 )
+ {
+ DBG(DBG_info, "preview_autoselect_scanarea: background is white\n");
+ background_white = 1;
+ }
+ else
+ {
+ DBG(DBG_info, "preview_autoselect_scanarea: background is black\n");
+ background_white = 0;
+ }
+
+
+ /* search top */
+ top = 0;
+ for (y = 0; y < p->image_height; y++)
+ {
+ for (x = 0; x < p->image_width; x++)
+ {
+ offset = 3 * (y * p->image_width + x);
+ color = (p->image_data_enh[offset + 0] + p->image_data_enh[offset + 1] + p->image_data_enh[offset + 2]) / 3.0;
+ if (background_white)
+ {
+ if (color < 200)
+ {
+ top = y;
+ break;
+ }
+ }
+
+ else if (color > 55 )
+ {
+ top = y;
+ break;
+ }
+ }
+ if (top)
+ {
+ break;
+ }
+ }
+
+
+ /* search bottom */
+ bottom = 0;
+ for (y = p->image_height-1; y > top; y--)
+ {
+ for (x = 0; x < p->image_width; x++)
+ {
+ offset = 3 * (y * p->image_width + x);
+ color = (p->image_data_enh[offset + 0] + p->image_data_enh[offset + 1] + p->image_data_enh[offset + 2]) / 3.0;
+ if (background_white)
+ {
+ if (color < 200)
+ {
+ bottom = y;
+ break;
+ }
+ }
+ else if (color > 55 )
+ {
+ bottom = y;
+ break;
+ }
+ }
+ if (bottom)
+ {
+ break;
+ }
+ }
+
+
+ /* search left */
+ left = 0;
+ for (x = 0; x < p->image_width; x++)
+ {
+ for (y = 0; y < p->image_height; y++)
+ {
+ offset = 3 * (y * p->image_width + x);
+ color = (p->image_data_enh[offset + 0] + p->image_data_enh[offset + 1] + p->image_data_enh[offset + 2]) / 3.0;
+ if (background_white)
+ {
+ if (color < 200)
+ {
+ left = x;
+ break;
+ }
+ }
+ else if (color > 55 )
+ {
+ left = x;
+ break;
+ }
+ }
+ if (left)
+ {
+ break;
+ }
+ }
+
+
+ /* search right */
+ right = 0;
+ for (x = p->image_width-1; x > left; x--)
+ {
+ for (y = 0; y < p->image_height; y++)
+ {
+ offset = 3 * (y * p->image_width + x);
+ color = (p->image_data_enh[offset + 0] + p->image_data_enh[offset + 1] + p->image_data_enh[offset + 2]) / 3.0;
+ if (background_white)
+ {
+ if (color < 200)
+ {
+ right = x;
+ break;
+ }
+ }
+ else if (color > 55 )
+ {
+ right = x;
+ break;
+ }
+ }
+ if (right)
+ {
+ break;
+ }
+ }
+
+ preview_get_scale_device_to_image(p, &xscale, &yscale);
+
+ if (((p->rotation & 3) == 0) || ((p->rotation & 3) == 2)) /* 0 or 180 degree */
+ {
+ *(autoselect_coord+0) = p->image_surface[0] + left / xscale;
+ *(autoselect_coord+2) = p->image_surface[0] + right / xscale;
+ *(autoselect_coord+1) = p->image_surface[1] + top / yscale;
+ *(autoselect_coord+3) = p->image_surface[1] + bottom / yscale;
+ }
+ else /* 90 or 270 degree */
+ {
+ *(autoselect_coord+1) = p->image_surface[1] + left / xscale;
+ *(autoselect_coord+3) = p->image_surface[1] + right / xscale;
+ *(autoselect_coord+0) = p->image_surface[0] + top / yscale;
+ *(autoselect_coord+2) = p->image_surface[0] + bottom / yscale;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void preview_display_valid(Preview *p)
+{
+ DBG(DBG_proc, "preview_display_valid\n");
+
+ if (p->scanning)/* we are just scanning the preview */
+ {
+ DBG(DBG_info, "preview scanning\n");
+
+ gtk_widget_show(p->scanning_pixmap);
+ gtk_widget_hide(p->incomplete_pixmap);
+ gtk_widget_hide(p->valid_pixmap);
+ gtk_widget_hide(p->invalid_pixmap);
+ }
+ else if ((xsane.medium_changed) || (xsane.xsane_colors != p->preview_colors) || (p->invalid) ) /* preview is not valid */
+ {
+ DBG(DBG_info, "preview not vaild\n");
+
+ gtk_widget_show(p->invalid_pixmap);
+ gtk_widget_hide(p->scanning_pixmap);
+ gtk_widget_hide(p->incomplete_pixmap);
+ gtk_widget_hide(p->valid_pixmap);
+ }
+ else if (p->scan_incomplete)/* preview scan has been cancled */
+ {
+ DBG(DBG_info, "preview incomplete\n");
+
+ gtk_widget_show(p->incomplete_pixmap);
+ gtk_widget_hide(p->scanning_pixmap);
+ gtk_widget_hide(p->valid_pixmap);
+ gtk_widget_hide(p->invalid_pixmap);
+ }
+ else /* preview is valid */
+ {
+ DBG(DBG_info, "preview vaild\n");
+
+ gtk_widget_show(p->valid_pixmap);
+ gtk_widget_hide(p->scanning_pixmap);
+ gtk_widget_hide(p->incomplete_pixmap);
+ gtk_widget_hide(p->invalid_pixmap);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/frontend/xsane-preview.h b/src/xsane-preview.h
index fd452ee..ba1321c 100644
--- a/frontend/xsane-preview.h
+++ b/src/xsane-preview.h
@@ -2,8 +2,8 @@
xsane-preview.h
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -28,8 +28,6 @@
/* ------------------------------------------------------------------------------------------------------ */
#include <sys/types.h>
-
-#include <sane/config.h>
#include <sane/sane.h>
#define SELECTION_RANGE_IN 4
@@ -65,25 +63,31 @@ typedef struct
typedef struct
{
int mode;
- GSGDialog *dialog; /* the dialog for this preview */
+ int calibration;
+ int startimage;
int cursornr;
+ guint hold_timer;
+
+ char *filename[3]; /* filenames for preview level 0,1,2 */
+
SANE_Value_Type surface_type;
SANE_Unit surface_unit;
- float surface[4]; /* the corners of the selected surface (device coords) */
- float old_surface[4]; /* the corners of the old selected surface (device coords) */
- float max_scanner_surface[4]; /* the scanner defined corners of the scanner surface (device coords) */
- float scanner_surface[4]; /* the user defined corners of the scanner surface (device coords) */
+ float orig_scanner_surface[4];/* the scanner defined corners of the scanner surface (device coords) */
float image_surface[4]; /* the corners of the surface (device coords) of the scanned image */
+ float max_scanner_surface[4]; /* rotated corners of the scanner surface (window coords) */
+ float preset_surface[4]; /* the corners of the reduced (by user) surface (window coords) */
+ float scanner_surface[4]; /* the user defined corners of the scanner surface (window coords) */
+ float surface[4]; /* the corners of the selected surface (window coords) */
+ float old_surface[4]; /* the corners of the old selected surface (window coords) */
float aspect; /* the aspect ratio of the scan surface */
- float preset_width; /* user selected maximum scan width */
- float preset_height; /* user selected maximum scan height */
-
float maximum_output_width; /* maximum output width (photocopy) */
float maximum_output_height; /* maximum output height (photocopy) */
+ int index_xmin, index_xmax, index_ymin, index_ymax; /* index numbers in dependance of p->rotation */
+
int saved_dpi_valid;
int saved_dpi_x_valid;
int saved_dpi_y_valid;
@@ -96,6 +100,8 @@ typedef struct
SANE_Word saved_custom_gamma;
int saved_bit_depth_valid;
SANE_Word saved_bit_depth;
+ int saved_scanmode_valid;
+ char saved_scanmode[64]; /* I hope that is enough or we will get segaults or strange effects */
/* desired/user-selected preview-window size: */
int preview_width; /* used with for displaying the preview image */
@@ -105,6 +111,9 @@ typedef struct
u_char *preview_row;
int scanning;
+ int scan_incomplete;
+ int invalid;
+ int preview_colors;
time_t image_last_time_updated;
gint input_tag;
SANE_Parameters params;
@@ -113,7 +122,9 @@ typedef struct
int image_y;
int image_width; /* width of preview image in pixels */
int image_height; /* height of preview image in pixel lines */
- u_char *image_data_raw; /* 3 * image_width * image_height bytes */
+ int rotation; /* rotation: 0=0, 1=90, 2=180, 3=270 degree, 4-7= rotation + mirror in x direction */
+ int gamma_functions_interruptable; /* bit that defines if gamma function can be interrupted */
+ guint16 *image_data_raw; /* 3 * image_width * image_height bytes * 2 */
u_char *image_data_enh; /* 3 * image_width * image_height bytes */
GdkGC *gc_selection;
@@ -130,9 +141,12 @@ typedef struct
Tselection selection_maximum; /* maximum selection size (photocopy) */
Tselection previous_selection_maximum; /* previous ... */
+ int show_selection;
+
Batch_selection *batch_selection;
GtkWidget *top; /* top-level widget */
+ GtkWidget *unit_label;
GtkWidget *hruler;
GtkWidget *vruler;
GtkWidget *viewport;
@@ -148,17 +162,26 @@ typedef struct
GtkWidget *zoom_out; /* zoom out button */
GtkWidget *zoom_in; /* zoom in button */
GtkWidget *zoom_undo; /* zoom undo button */
+ GtkWidget *full_area; /* select full scanarea */
+ GtkWidget *autoselect; /* autoselect scanarea */
GtkWidget *preset_area_option_menu; /* menu for selection of preview area */
+ GtkWidget *rotation_option_menu; /* menu for selection of rotation */
+ GtkWidget *scanning_pixmap; /* pixmap that shows preview is in scanning progress */
+ GtkWidget *valid_pixmap; /* pixmap that shows preview is valid */
+ GtkWidget *invalid_pixmap; /* pixmap that shows preview is invalid */
+ GtkWidget *incomplete_pixmap; /* pixmap that shows preview is incomplete */
}
Preview;
/* ------------------------------------------------------------------------------------------------------ */
-extern Preview *preview_new (GSGDialog *dialog); /* Create a new preview based on the info in DIALOG. */
+extern Preview *preview_new(void); /* Create a new preview based on the info in DIALOG. */
+extern void preview_generate_preview_filenames(Preview *p); /* create new preview filenames */
-extern void preview_gamma_correction(Preview *p, /* Do gamma correction on preview data */
- int gamma_red[], int gamma_green[], int gamma_blue[],
- int gamma_red_hist[], int gamma_green_hist[], int gamma_blue_hist[]);
+extern void preview_gamma_correction(Preview *p, int gamma_input_bits,
+ u_char *gamma_red, u_char *gamma_green, u_char *gamma_blue,
+ u_char *gamma_red_hist, u_char *gamma_green_hist, u_char *gamma_blue_hist,
+ u_char *medium_gamma_red_hist, u_char *medium_gamma_green_hist, u_char *medium_gamma_blue_hist);
extern void preview_update_surface(Preview *p, int surface_changed); /* params changed: update preview */
@@ -166,12 +189,13 @@ extern void preview_scan(Preview *p); /* Acquire a preview image and disp
extern void preview_destroy(Preview *p); /* Destroy a preview. */
-extern void preview_calculate_histogram(Preview *p, /* calculate histogram */
- SANE_Int *count_raw, SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue,
- SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue);
+extern void preview_calculate_raw_histogram(Preview *p, SANE_Int *count_raw, SANE_Int *count_raw_red, SANE_Int *count_raw_green, SANE_Int *count_raw_blue);
+extern void preview_calculate_enh_histogram(Preview *p, SANE_Int *count, SANE_Int *count_red, SANE_Int *count_green, SANE_Int *count_blue);
-extern void preview_area_resize(GtkWidget *widget); /* redraw preview rulers */
-void preview_set_maximum_output_size(Preview *p, float width, float height); /* set maximum outut size */
+extern void preview_area_resize(Preview *p); /* redraw preview rulers */
+extern void preview_set_maximum_output_size(Preview *p, float width, float height); /* set maximum outut size */
+extern void preview_select_full_preview_area(Preview *p);
+extern void preview_display_valid(Preview *p);
/* ------------------------------------------------------------------------------------------------------ */
diff --git a/frontend/xsane-rc-io.c b/src/xsane-rc-io.c
index 520e97e..9fe991c 100644
--- a/frontend/xsane-rc-io.c
+++ b/src/xsane-rc-io.c
@@ -2,8 +2,8 @@
xsane-rc-io.c
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -22,17 +22,13 @@
/* ---------------------------------------------------------------------------------------------------------------- */
-#ifdef _AIX
-# include <lalloca.h> /* MUST come first for AIX! */
-#endif
-#include <sane/config.h>
+#include "xsane.h"
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sane/sane.h>
-#include <sane/config.h>
#include <ctype.h>
#include <unistd.h>
@@ -51,6 +47,13 @@ void xsane_rc_io_w_space(Wire *w, size_t howmuch)
int fd = w->io.fd;
ssize_t nread, nwritten;
+ DBG(DBG_wire, "xsane_rc_io_w_space\n");
+
+ if (w->status != 0)
+ {
+ return;
+ }
+
if (w->buffer.curr + howmuch > w->buffer.end)
{
switch (w->direction)
@@ -76,6 +79,12 @@ void xsane_rc_io_w_space(Wire *w, size_t howmuch)
case WIRE_DECODE:
left_over = w->buffer.end - w->buffer.curr;
+
+ if ((signed)left_over < 0)
+ {
+ return;
+ }
+
if (left_over)
{
memcpy(w->buffer.start, w->buffer.curr, left_over);
@@ -121,9 +130,20 @@ void xsane_rc_io_w_array(Wire *w, SANE_Word *len_ptr, void **v, WireCodecFunc w_
char *val;
int i;
+ DBG(DBG_wire, "xsane_rc_io_w_array\n");
+
if (w->direction == WIRE_FREE)
{
- free(*v);
+ if (*len_ptr && *v)
+ {
+ val = *v;
+ for (i = 0; i < *len_ptr; ++i)
+ {
+ (*w_element) (w, val);
+ val += element_size;
+ }
+ free (*v);
+ }
return;
}
@@ -169,12 +189,15 @@ void xsane_rc_io_w_ptr(Wire *w, void **v, WireCodecFunc w_value, size_t value_si
{
SANE_Word is_null;
+ DBG(DBG_wire, "xsane_rc_io_w_ptr\n");
+
if (w->direction == WIRE_FREE)
{
- if (*v)
+ if (*v && value_size)
{
- free(*v);
- }
+ (*w_value) (w, *v);
+ free (*v);
+ }
return;
}
@@ -210,7 +233,9 @@ void xsane_rc_io_w_ptr(Wire *w, void **v, WireCodecFunc w_value, size_t value_si
void xsane_rc_io_w_status(Wire *w, SANE_Status *v)
{
- SANE_Word word = *v;
+ SANE_Word word = *v;
+
+ DBG(DBG_wire, "xsane_rc_io_w_status\n");
xsane_rc_io_w_word(w, &word);
if (w->direction == WIRE_DECODE)
@@ -225,6 +250,8 @@ void xsane_rc_io_w_bool(Wire *w, SANE_Bool *v)
{
SANE_Word word = *v;
+ DBG(DBG_wire, "xsane_rc_io_w_bool\n");
+
xsane_rc_io_w_word(w, &word);
if (w->direction == WIRE_DECODE)
{
@@ -249,6 +276,8 @@ void xsane_rc_io_w_value_type(Wire *w, SANE_Value_Type *v)
{
SANE_Word word = *v;
+ DBG(DBG_wire, "xsane_rc_io_w_value_type\n");
+
xsane_rc_io_w_word(w, &word);
if (w->direction == WIRE_DECODE)
*v = word;
@@ -258,7 +287,9 @@ void xsane_rc_io_w_value_type(Wire *w, SANE_Value_Type *v)
void xsane_rc_io_w_unit(Wire *w, SANE_Unit *v)
{
- SANE_Word word = *v;
+ SANE_Word word = *v;
+
+ DBG(DBG_wire, "xsane_rc_io_w_unit\n");
xsane_rc_io_w_word(w, &word);
if (w->direction == WIRE_DECODE)
@@ -273,6 +304,8 @@ void xsane_rc_io_w_action(Wire *w, SANE_Action *v)
{
SANE_Word word = *v;
+ DBG(DBG_wire, "xsane_rc_io_w_action\n");
+
xsane_rc_io_w_word(w, &word);
if (w->direction == WIRE_DECODE)
{
@@ -286,6 +319,8 @@ void xsane_rc_io_w_frame(Wire *w, SANE_Frame *v)
{
SANE_Word word = *v;
+ DBG(DBG_wire, "xsane_rc_io_w_frame\n");
+
xsane_rc_io_w_word(w, &word);
if (w->direction == WIRE_DECODE)
{
@@ -297,6 +332,8 @@ void xsane_rc_io_w_frame(Wire *w, SANE_Frame *v)
void xsane_rc_io_w_range(Wire *w, SANE_Range *v)
{
+ DBG(DBG_wire, "xsane_rc_io_w_range\n");
+
xsane_rc_io_w_word(w, &v->min);
xsane_rc_io_w_word(w, &v->max);
xsane_rc_io_w_word(w, &v->quant);
@@ -306,6 +343,8 @@ void xsane_rc_io_w_range(Wire *w, SANE_Range *v)
void xsane_rc_io_w_device(Wire *w, SANE_Device *v)
{
+ DBG(DBG_wire, "xsane_rc_io_w_device\n");
+
xsane_rc_io_w_string(w, (SANE_String *) &v->name);
xsane_rc_io_w_string(w, (SANE_String *) &v->vendor);
xsane_rc_io_w_string(w, (SANE_String *) &v->model);
@@ -316,6 +355,8 @@ void xsane_rc_io_w_device(Wire *w, SANE_Device *v)
void xsane_rc_io_w_device_ptr(Wire *w, SANE_Device **v)
{
+ DBG(DBG_wire, "xsane_rc_io_w_device_ptr\n");
+
xsane_rc_io_w_ptr(w, (void **) v, (WireCodecFunc) xsane_rc_io_w_device, sizeof (**v));
}
@@ -325,6 +366,8 @@ void xsane_rc_io_w_option_descriptor(Wire *w, SANE_Option_Descriptor *v)
{
SANE_Word len;
+ DBG(DBG_wire, "xsane_rc_io_w_option_descriptor\n");
+
xsane_rc_io_w_string(w, (SANE_String *) &v->name);
xsane_rc_io_w_string(w, (SANE_String *) &v->title);
xsane_rc_io_w_string(w, (SANE_String *) &v->desc);
@@ -344,13 +387,15 @@ void xsane_rc_io_w_option_descriptor(Wire *w, SANE_Option_Descriptor *v)
break;
case SANE_CONSTRAINT_WORD_LIST:
- if (w->direction == WIRE_ENCODE)
+ if (w->direction != WIRE_DECODE)
+ {
len = v->constraint.word_list[0] + 1;
+ }
xsane_rc_io_w_array(w, &len, (void **) &v->constraint.word_list, w->codec.w_word, sizeof(SANE_Word));
break;
case SANE_CONSTRAINT_STRING_LIST:
- if (w->direction == WIRE_ENCODE)
+ if (w->direction != WIRE_DECODE)
{
for (len = 0; v->constraint.string_list[len]; ++len);
++len; /* send NULL string, too */
@@ -364,6 +409,8 @@ void xsane_rc_io_w_option_descriptor(Wire *w, SANE_Option_Descriptor *v)
void xsane_rc_io_w_option_descriptor_ptr(Wire *w, SANE_Option_Descriptor **v)
{
+ DBG(DBG_wire, "xsane_rc_io_w_option_descriptor_ptr\n");
+
xsane_rc_io_w_ptr(w, (void **) v, (WireCodecFunc) xsane_rc_io_w_option_descriptor, sizeof (**v));
}
@@ -371,6 +418,8 @@ void xsane_rc_io_w_option_descriptor_ptr(Wire *w, SANE_Option_Descriptor **v)
void xsane_rc_io_w_parameters(Wire *w, SANE_Parameters *v)
{
+ DBG(DBG_wire, "xsane_rc_io_w_paramters\n");
+
xsane_rc_io_w_frame(w, &v->format);
xsane_rc_io_w_bool(w, &v->last_frame);
xsane_rc_io_w_word(w, &v->bytes_per_line);
@@ -383,6 +432,8 @@ void xsane_rc_io_w_parameters(Wire *w, SANE_Parameters *v)
void xsane_rc_io_w_flush(Wire *w)
{
+ DBG(DBG_wire, "xsane_rc_io_w_flush\n");
+
w->status = 0;
if (w->direction == WIRE_ENCODE)
@@ -399,6 +450,8 @@ void xsane_rc_io_w_flush(Wire *w)
void xsane_rc_io_w_set_dir(Wire *w, WireDirection dir)
{
+ DBG(DBG_wire, "xsane_rc_io_w_set_dir\n");
+
xsane_rc_io_w_flush(w);
w->direction = dir;
xsane_rc_io_w_flush(w);
@@ -408,6 +461,8 @@ void xsane_rc_io_w_set_dir(Wire *w, WireDirection dir)
void xsane_rc_io_w_call(Wire *w, SANE_Word procnum, WireCodecFunc w_arg, void *arg, WireCodecFunc w_reply, void *reply)
{
+ DBG(DBG_wire, "xsane_rc_io_w_call\n");
+
w->status = 0;
xsane_rc_io_w_set_dir(w, WIRE_ENCODE);
@@ -435,7 +490,9 @@ void xsane_rc_io_w_reply(Wire *w, WireCodecFunc w_reply, void *reply)
void xsane_rc_io_w_free(Wire *w, WireCodecFunc w_reply, void *reply)
{
- WireDirection saved_dir = w->direction;
+ WireDirection saved_dir = w->direction;
+
+ DBG(DBG_wire, "xsane_rc_io_w_free\n");
w->direction = WIRE_FREE;
(*w_reply) (w, reply);
@@ -446,6 +503,8 @@ void xsane_rc_io_w_free(Wire *w, WireCodecFunc w_reply, void *reply)
void xsane_rc_io_w_init(Wire *w)
{
+ DBG(DBG_wire, "xsane_rc_io_w_init\n");
+
w->status = 0;
w->direction = WIRE_ENCODE;
w->buffer.size = 8192;
@@ -462,12 +521,26 @@ void xsane_rc_io_w_init(Wire *w)
/* ---------------------------------------------------------------------------------------------------------------- */
+void xsane_rc_io_w_exit(Wire *w)
+{
+ if (w->buffer.start)
+ {
+ free(w->buffer.start);
+ }
+ w->buffer.start = 0;
+ w->buffer.size = 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------- */
+
static const char *hexdigit = "0123456789abcdef";
/* ---------------------------------------------------------------------------------------------------------------- */
static void xsane_rc_io_skip_ws(Wire *w)
{
+ DBG(DBG_wire, "xsane_rc_io_skip_ws\n");
+
while (1)
{
xsane_rc_io_w_space(w, 1);
@@ -490,6 +563,8 @@ static void xsane_rc_io_skip_ws(Wire *w)
void xsane_rc_io_w_skip_newline(Wire *w)
{
+ DBG(DBG_wire, "xsane_rc_io_skip_newline\n");
+
while (*w->buffer.curr != 10)
{
xsane_rc_io_w_space(w, 1);
@@ -509,6 +584,8 @@ static unsigned xsane_rc_io_get_digit(Wire *w)
{
unsigned digit;
+ DBG(DBG_wire, "xsane_rc_io_get_digit\n");
+
xsane_rc_io_w_space(w, 1);
digit = tolower(*w->buffer.curr++) - '0';
@@ -529,6 +606,8 @@ static unsigned xsane_rc_io_get_digit(Wire *w)
static SANE_Byte xsane_rc_io_get_byte(Wire *w)
{
+ DBG(DBG_wire, "xsane_rc_io_get_byte\n");
+
return xsane_rc_io_get_digit(w) << 4 | xsane_rc_io_get_digit(w);
}
@@ -538,6 +617,8 @@ void xsane_rc_io_w_byte(Wire *w, SANE_Byte *v)
{
SANE_Byte *b = v;
+ DBG(DBG_wire, "xsane_rc_io_w_byte: %d\n", *v);
+
switch (w->direction)
{
case WIRE_ENCODE:
@@ -563,6 +644,8 @@ void xsane_rc_io_w_char(Wire *w, SANE_Char *v)
{
SANE_Char *c = v;
+ DBG(DBG_wire, "xsane_rc_io_w_char: %c\n", *v);
+
switch (w->direction)
{
case WIRE_ENCODE:
@@ -614,6 +697,7 @@ void xsane_rc_io_w_string(Wire *w, SANE_String *s)
char * str, ch;
int done;
+
switch (w->direction)
{
case WIRE_ENCODE:
@@ -622,6 +706,9 @@ void xsane_rc_io_w_string(Wire *w, SANE_String *s)
xsane_rc_io_w_space(w, 1);
*w->buffer.curr++ = '"';
str = *s;
+
+ DBG(DBG_wire, "xsane_rc_io_w_string: encoding %s\n", str);
+
while ((ch = *str++))
{
xsane_rc_io_w_space(w, 2);
@@ -709,6 +796,9 @@ void xsane_rc_io_w_string(Wire *w, SANE_String *s)
while(!done);
str[len - 1] = '\0';
+
+ DBG(DBG_wire, "xsane_rc_io_w_string: decoding %s\n", str);
+
*s = realloc(str, len);
if (*s == 0)
@@ -718,20 +808,7 @@ void xsane_rc_io_w_string(Wire *w, SANE_String *s)
return;
}
}
- else if (ch == '(')
- {
- *s = 0; /* make sure pointer does not point to an invalid address */
- xsane_rc_io_w_space(w, 4);
- if ( *w->buffer.curr++ != 'n'
- || *w->buffer.curr++ != 'i'
- || *w->buffer.curr++ != 'l'
- || *w->buffer.curr++ != ')')
- {
- w->status = EINVAL;
- return;
- }
- }
- else
+ else /* string does not begin with a " */
{
w->status = EINVAL;
*s = 0; /* make sure pointer does not point to an invalid address */
@@ -756,6 +833,8 @@ void xsane_rc_io_w_word(Wire *w, SANE_Word *v)
int i, is_negative = 0;
char buf[16];
+ DBG(DBG_wire, "xsane_rc_io_w_word: %d\n", *v);
+
switch (w->direction)
{
case WIRE_ENCODE:
@@ -828,11 +907,17 @@ void xsane_rc_io_w_word(Wire *w, SANE_Word *v)
void xsane_rc_pref_string(Wire *w, void *p, long offset)
{
- SANE_String string;
+ SANE_String string;
+
+ DBG(DBG_wire, "xsane_rc_pref_string\n");
if (w->direction == WIRE_ENCODE)
{
string = PFIELD(p, offset, char *);
+ if (string)
+ {
+ DBG(DBG_wire, "xsane_rc_pref_string: encoding string = %s\n", string);
+ }
}
xsane_rc_io_w_string(w, &string);
@@ -850,6 +935,11 @@ void xsane_rc_pref_string(Wire *w, void *p, long offset)
}
*field = string ? strdup (string) : 0;
}
+
+ if (string)
+ {
+ DBG(DBG_wire, "xsane_rc_pref_string: decoding string = %s\n", string);
+ }
xsane_rc_io_w_free(w, (WireCodecFunc) xsane_rc_io_w_string, &string);
}
}
@@ -858,11 +948,16 @@ void xsane_rc_pref_string(Wire *w, void *p, long offset)
void xsane_rc_pref_double(Wire *w, void *p, long offset)
{
- SANE_Word word;
+ SANE_Word word;
+ double val = 0;
+
+ DBG(DBG_wire, "xsane_rc_pref_double\n");
if (w->direction == WIRE_ENCODE)
{
- word = SANE_FIX(PFIELD (p, offset, double));
+ val = PFIELD (p, offset, double);
+ DBG(DBG_wire, "xsane_rc_pref_double: encoding double = %f\n", val);
+ word = SANE_FIX(val);
}
xsane_rc_io_w_word (w, &word);
@@ -871,9 +966,11 @@ void xsane_rc_pref_double(Wire *w, void *p, long offset)
{
if (w->status == 0)
{
- PFIELD(p, offset, double) = SANE_UNFIX (word);
+ val = SANE_UNFIX (word);
+ PFIELD(p, offset, double) = val;
}
xsane_rc_io_w_free(w, (WireCodecFunc) xsane_rc_io_w_word, &word);
+ DBG(DBG_wire, "xsane_rc_pref_double: decoding double = %f\n", val);
}
}
@@ -881,7 +978,9 @@ void xsane_rc_pref_double(Wire *w, void *p, long offset)
void xsane_rc_pref_int(Wire *w, void *p, long offset)
{
- SANE_Word word;
+ SANE_Word word;
+
+ DBG(DBG_wire, "xsane_rc_pref_int\n");
if (w->direction == WIRE_ENCODE)
{
diff --git a/frontend/xsane-rc-io.h b/src/xsane-rc-io.h
index 6fd5680..14c2443 100644
--- a/frontend/xsane-rc-io.h
+++ b/src/xsane-rc-io.h
@@ -2,8 +2,8 @@
xsane-rc-io.h
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -87,6 +87,7 @@ Wire;
/* ---------------------------------------------------------------------------------------------------------------- */
extern void xsane_rc_io_w_init(Wire *w);
+extern void xsane_rc_io_w_exit(Wire *w);
extern void xsane_rc_io_w_space(Wire *w, size_t howmuch);
extern void xsane_rc_io_w_skip_newline(Wire *w);
extern void xsane_rc_io_w_void(Wire *w);
diff --git a/src/xsane-save.c b/src/xsane-save.c
new file mode 100644
index 0000000..3c78354
--- /dev/null
+++ b/src/xsane-save.c
@@ -0,0 +1,3466 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-save.c
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#include "xsane.h"
+#include "xsane-preview.h"
+#include "xsane-back-gtk.h"
+#include "xsane-front-gtk.h"
+
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+#ifdef HAVE_LIBJPEG
+#include <jpeglib.h>
+#endif
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+#include <png.h>
+#include <zlib.h>
+#endif
+#endif
+
+#ifdef HAVE_LIBTIFF
+#include <tiffio.h>
+#include <time.h>
+#endif
+
+#ifdef HAVE_MMAP
+#include <unistd.h>
+#include <sys/mman.h>
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef HAVE_LIBGIMP_GIMP_H
+
+#include <libgimp/gimp.h>
+
+static void xsane_gimp_query(void);
+static void xsane_gimp_run(char *name, int nparams, GimpParam * param, int *nreturn_vals, GimpParam ** return_vals);
+
+GimpPlugInInfo PLUG_IN_INFO =
+{
+ NULL, /* init_proc */
+ NULL, /* quit_proc */
+ xsane_gimp_query, /* query_proc */
+ xsane_gimp_run, /* run_proc */
+};
+
+
+static int xsane_decode_devname(const char *encoded_devname, int n,
+char *buf);
+static int xsane_encode_devname(const char *devname, int n, char *buf);
+void null_print_func(gchar *msg);
+
+#endif /* HAVE_LIBGIMP_GIMP_H */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+/* why this routine ?
+ Problem: link attack
+ Bad user wants to overwrite a file (mywork.txt) of good user.
+ File permissions of mywork.txt is 700 so that bad user can not
+ change or overwrite the file. Directory permissions allow bad user
+ to write into directory. Bad user sets symlink from a file that good
+ user will write soon (image.pnm) to mywork.txt.
+ ==> Good user overwrites his own file, he is allowed to do so.
+
+ Solution: remove file.
+ Create outputfile and make sure that it does not exist while creation.
+
+ The file is created with the requested image-file permissions.
+
+ Note: This case is a bit curious because it is only a small part of a larger problem:
+ When other users have write access to the directory they simply can move
+ mywork.txt to image.pnm. If they do it in the right moment the file is
+ overwritten without any notice of good user. If they do it long before xsane
+ wants to write image.pnm then xsane will possibly ask if image.pnm shall be
+ overwritten. So the real solution is to make the direcoty permissions safe!!!
+ But some users asked for this and so I added this.
+
+
+ This routine shall not be called for temporary files because temp files shall not
+ be removed after they have been created safe. (Although a temporary file should
+ not be a symlink so there should be no problem with this)
+*/
+
+int xsane_create_secure_file(const char *filename)
+/* returns 0 on success, -1 on error */
+{
+ int fd;
+
+ DBG(DBG_proc, "xsane_create_secure_file\n");
+
+ remove(filename); /* we need to remove the file because open(..., O_EXCL) will fail otherwise */
+ umask((mode_t) preferences.image_umask); /* define image file permissions */
+ fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0666);
+ umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
+
+ if (fd > 0)
+ {
+ DBG(DBG_info, "file %s is created and secure\n", filename);
+ close(fd);
+ fd = 0;
+ }
+ else
+ {
+ DBG(DBG_info, "could not create secure file %s\n", filename);
+ }
+
+ return fd; /* -1 means file is not safe !!! otherwise 0 */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_cancel_save(int *cancel_save)
+{
+ DBG(DBG_proc, "xsane_cancel_save\n");
+ *cancel_save = 1;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_convert_text_to_filename(char **text)
+{
+ DBG(DBG_proc, "xsane_convert_text_to_filename\n");
+
+ if (text)
+ {
+ char *filename = *text;
+ char buf[256];
+ int buflen=0;
+ int txtlen=0;
+
+ while((filename[txtlen] != 0) && (buflen<253))
+ {
+ switch (filename[txtlen])
+ {
+ case ' ':
+ buf[buflen++] = ':';
+ buf[buflen++] = '_';
+ txtlen++;
+ break;
+
+ case '/':
+ buf[buflen++] = ':';
+ buf[buflen++] = '%';
+ txtlen++;
+ break;
+
+ case '*':
+ buf[buflen++] = ':';
+ buf[buflen++] = '#';
+ txtlen++;
+ break;
+
+ case '?':
+ buf[buflen++] = ':';
+ buf[buflen++] = 'q';
+ txtlen++;
+ break;
+
+ case '\\':
+ buf[buflen++] = ':';
+ buf[buflen++] = '=';
+ txtlen++;
+ break;
+
+ case ';':
+ buf[buflen++] = ':';
+ buf[buflen++] = '!';
+ txtlen++;
+ break;
+
+ case '&':
+ buf[buflen++] = ':';
+ buf[buflen++] = '+';
+ txtlen++;
+ break;
+
+ case '<':
+ buf[buflen++] = ':';
+ buf[buflen++] = 's';
+ txtlen++;
+ break;
+
+ case '>':
+ buf[buflen++] = ':';
+ buf[buflen++] = 'g';
+ txtlen++;
+ break;
+
+ case '|':
+ buf[buflen++] = ':';
+ buf[buflen++] = 'p';
+ txtlen++;
+ break;
+
+ case ':':
+ buf[buflen++] = ':';
+ buf[buflen++] = ':';
+ txtlen++;
+ break;
+
+ default:
+ buf[buflen++] = filename[txtlen++];
+ break;
+ }
+ }
+ buf[buflen] = 0;
+ free(filename);
+ *text = strdup(buf);
+ DBG(DBG_info, "filename = \"%s\"\n", *text);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_update_counter_in_filename(char **filename, int skip, int step, int min_counter_len)
+{
+ FILE *testfile;
+ char *position_point = NULL;
+ char *position_counter;
+ char buf[PATH_MAX];
+ int counter;
+ int counter_len;
+ int set_counter_len = min_counter_len;
+
+ DBG(DBG_proc, "xsane_update_counter_in_filename\n");
+
+ while (1) /* may be we have to skip existing files */
+ {
+ if (!xsane.filetype) /* no filetype: serach "." */
+ {
+ position_point = strrchr(*filename, '.');
+ }
+
+ if (!position_point) /* nothing usable ? */
+ {
+ position_point = *filename + strlen(*filename); /* here is no point, but position - 1 is last character */
+ }
+
+ if (position_point)
+ {
+ position_counter = position_point-1; /* go to last number of counter (if counter exists) */
+
+ /* search non numeric char */
+ while ( (position_counter >= *filename) && (*position_counter >= '0') && (*position_counter <='9') )
+ {
+ position_counter--; /* search fisrt numeric character */
+ }
+
+ position_counter++; /* go to first numeric charcter */
+
+ counter_len = position_point - position_counter;
+
+ if (counter_len) /* we have a counter */
+ {
+ sscanf(position_counter, "%d", &counter);
+ counter += step; /* update counter */
+
+ if (counter < 0)
+ {
+ counter = 0;
+ xsane_back_gtk_warning(WARN_COUNTER_UNDERRUN, TRUE);
+ break; /* last available number ("..999") */
+ }
+
+ *position_counter = 0; /* set end of string mark to counter start */
+
+ if (set_counter_len == 0)
+ {
+ set_counter_len = counter_len;
+ }
+
+ snprintf(buf, sizeof(buf), "%s%0*d%s", *filename, set_counter_len, counter, position_point);
+
+ DBG(DBG_info, "filename = \"%s\"\n", buf);
+
+ free(*filename);
+ *filename = strdup(buf);
+
+ if (skip) /* test if filename already used */
+ {
+ if (xsane.filetype) /* add filetype to filename */
+ {
+ snprintf(buf, sizeof(buf), "%s%s", *filename, xsane.filetype);
+ testfile = fopen(buf, "rb"); /* read binary (b for win32) */
+ }
+ else /* filetype in filename */
+ {
+ testfile = fopen(*filename, "rb"); /* read binary (b for win32) */
+ }
+
+ if (testfile) /* filename used: skip */
+ {
+ fclose(testfile);
+ }
+ else
+ {
+ break; /* filename not used, ok */
+ }
+ }
+ else /* do not test if filename already used */
+ {
+ break; /* filename ok */
+ }
+ }
+ else /* no counter */
+ {
+ break; /* no counter */
+ }
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_read_pnm_header(FILE *infile, Image_info *image_info)
+{
+ int max_val, filetype_nr;
+ char buf[256];
+
+ fgets(buf, sizeof(buf)-1, infile);
+ DBG(DBG_info, "filetype header :%s", buf);
+
+ if (buf[0] == 'P')
+ {
+ filetype_nr = atoi(buf+1); /* get filetype number */
+
+ image_info->resolution_x = 72.0;
+ image_info->resolution_y = 72.0;
+
+ while (strcmp(buf, "# XSANE data follows\n"))
+ {
+ fgets(buf, sizeof(buf)-1, infile);
+
+ if (!strncmp(buf, "# resolution_x =", 17))
+ {
+ sscanf(buf+17, "%lf", &image_info->resolution_x);
+ }
+ else if (!strncmp(buf, "# resolution_y =", 17))
+ {
+ sscanf(buf+17, "%lf", &image_info->resolution_y);
+ }
+ }
+
+ fscanf(infile, "%d %d", &image_info->image_width, &image_info->image_height);
+
+ image_info->depth = 1;
+
+ if (filetype_nr != 4) /* P4 = lineart */
+ {
+ fscanf(infile, "%d", &max_val);
+
+ if (max_val == 255)
+ {
+ image_info->depth = 8;
+ }
+ else if (max_val == 65535)
+ {
+ image_info->depth = 16;
+ }
+ }
+
+ fgetc(infile); /* read exactly one newline character */
+
+
+ image_info->colors = 1;
+
+ if (filetype_nr == 6) /* ppm RGB */
+ {
+ image_info->colors = 3;
+ }
+ }
+#ifdef SUPPORT_RGBA
+ else if (buf[0] == 'S') /* RGBA format */
+ {
+ fscanf(infile, "%d %d\n%d", &image_info->image_width, &image_info->image_height, &max_val);
+ fgetc(infile); /* read exactly one newline character */
+
+ image_info->depth = 1;
+
+ if (max_val == 255)
+ {
+ image_info->depth = 8;
+ }
+ else if (max_val == 65535)
+ {
+ image_info->depth = 16;
+ }
+
+ image_info->colors = 4;
+ }
+#endif
+
+ DBG(DBG_info, "xsane_read_pnm_header: width=%d, height=%d, depth=%d, colors=%d, resolution_x=%f, resolution_y=%f\n",
+ image_info->image_width, image_info->image_height, image_info->depth, image_info->colors,
+ image_info->resolution_x, image_info->resolution_y);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_write_pnm_header(FILE *outfile, Image_info *image_info)
+{
+ fflush(outfile);
+ rewind(outfile);
+
+
+ if (image_info->colors == 1)
+ {
+ switch (image_info->depth)
+ {
+ case 1: /* 1 bit lineart mode, write pbm header */
+ fprintf(outfile, "P4\n"
+ "# XSane settings:\n"
+ "# resolution_x = %6.1f\n"
+ "# resolution_y = %6.1f\n"
+ "# threshold = %4.1f\n"
+ "# XSANE data follows\n"
+ "%05d %05d\n",
+ image_info->resolution_x,
+ image_info->resolution_y,
+ image_info->threshold,
+ image_info->image_width, image_info->image_height);
+ break;
+
+ case 8: /* 8 bit grayscale mode, write pgm header */
+ fprintf(outfile, "P5\n"
+ "# XSane settings:\n"
+ "# resolution_x = %6.1f\n"
+ "# resolution_y = %6.1f\n"
+ "# gamma = %3.2f\n"
+ "# brightness = %4.1f\n"
+ "# contrast = %4.1f\n"
+ "# XSANE data follows\n"
+ "%05d %05d\n"
+ "255\n",
+ image_info->resolution_x,
+ image_info->resolution_y,
+ image_info->gamma,
+ image_info->brightness,
+ image_info->contrast,
+ image_info->image_width, image_info->image_height);
+ break;
+
+ default: /* grayscale mode but not 1 or 8 bit, write as raw data because this is not defined in pnm */
+ fprintf(outfile, "P5\n"
+ "# This file is in a not public defined data format.\n"
+ "# It is a 16 bit gray binary format.\n"
+ "# Some programs can read this as pnm/pgm format.\n"
+ "# XSane settings:\n"
+ "# resolution_x = %6.1f\n"
+ "# resolution_y = %6.1f\n"
+ "# gamma = %3.2f\n"
+ "# brightness = %4.1f\n"
+ "# contrast = %4.1f\n"
+ "# XSANE data follows\n"
+ "%05d %05d\n"
+ "65535\n",
+ image_info->resolution_x,
+ image_info->resolution_y,
+ image_info->gamma,
+ image_info->brightness,
+ image_info->contrast,
+ image_info->image_width, image_info->image_height);
+ break;
+ }
+ }
+ else if (image_info->colors == 3)
+ {
+ switch (image_info->depth)
+ {
+ case 8: /* color 8 bit mode, write ppm header */
+ fprintf(outfile, "P6\n"
+ "# XSane settings:\n"
+ "# resolution_x = %6.1f\n"
+ "# resolution_y = %6.1f\n"
+ "# gamma IRGB = %3.2f %3.2f %3.2f %3.2f\n"
+ "# brightness IRGB = %4.1f %4.1f %4.1f %4.1f\n"
+ "# contrast IRGB = %4.1f %4.1f %4.1f %4.1f\n"
+ "# XSANE data follows\n"
+ "%05d %05d\n255\n",
+ image_info->resolution_x,
+ image_info->resolution_y,
+ image_info->gamma, image_info->gamma_red, image_info->gamma_green, image_info->gamma_blue,
+ image_info->brightness, image_info->brightness_red, image_info->brightness_green, image_info->brightness_blue,
+ image_info->contrast, image_info->contrast_red, image_info->contrast_green, image_info->contrast_blue,
+ image_info->image_width, image_info->image_height);
+ break;
+
+ default: /* color, but not 8 bit mode, write as raw data because this is not defined in pnm */
+ fprintf(outfile, "P6\n"
+ "# This file is in a not public defined data format.\n"
+ "# It is a 16 bit RGB binary format.\n"
+ "# Some programs can read this as pnm/ppm format.\n"
+ "# File created by XSane.\n"
+ "# XSane settings:\n"
+ "# resolution_x = %6.1f\n"
+ "# resolution_y = %6.1f\n"
+ "# gamma IRGB = %3.2f %3.2f %3.2f %3.2f\n"
+ "# brightness IRGB = %4.1f %4.1f %4.1f %4.1f\n"
+ "# contrast IRGB = %4.1f %4.1f %4.1f %4.1f\n"
+ "# XSANE data follows\n"
+ "%05d %05d\n"
+ "65535\n",
+ image_info->resolution_x,
+ image_info->resolution_y,
+ image_info->gamma, image_info->gamma_red, image_info->gamma_green, image_info->gamma_blue,
+ image_info->brightness, image_info->brightness_red, image_info->brightness_green, image_info->brightness_blue,
+ image_info->contrast, image_info->contrast_red, image_info->contrast_green, image_info->contrast_blue,
+ image_info->image_width, image_info->image_height);
+ break;
+ }
+ }
+#ifdef SUPPORT_RGBA
+ else if (image_info->colors == 4)
+ {
+ switch (image_info->depth)
+ {
+ case 8: /* 8 bit RGBA mode */
+ fprintf(outfile, "SANE_RGBA\n%d %d\n255\n", image_info->image_width, image_info->image_height);
+ break;
+
+ default: /* 16 bit RGBA mode */
+ fprintf(outfile, "SANE_RGBA\n%d %d\n65535\n", image_info->image_width, image_info->image_height);
+ break;
+ }
+ }
+#endif
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_save_grayscale_image_as_lineart(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ int x, y, bit;
+ u_char bitval, packed;
+
+ *cancel_save = 0;
+
+ image_info->depth = 1;
+#if 0
+ xsane.depth = 1; /* our new depth is 1 bit/pixel */
+#endif
+
+ xsane_write_pnm_header(outfile, image_info);
+
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ bit = 128;
+ packed = 0;
+
+ for (x = 0; x < image_info->image_width; x++)
+ {
+ bitval = fgetc(imagefile);
+
+ if (!bitval) /* white gets 0 bit, black gets 1 bit */
+ {
+ packed |= bit;
+ }
+
+ if (bit == 1)
+ {
+ fputc(packed, outfile);
+ bit = 128;
+ packed = 0;
+ }
+ else
+ {
+ bit >>= 1;
+ }
+ }
+
+ if (bit != 128)
+ {
+ fputc(packed, outfile);
+ bit = 128;
+ packed = 0;
+ }
+
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height); /* update progress bar */
+ while (gtk_events_pending()) /* give gtk the chance to display the changes */
+ {
+ gtk_main_iteration();
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_info, float x_scale, float y_scale, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ float original_y;
+ int old_original_y;
+ int x, y, i;
+ int original_image_width = image_info->image_width;
+ int new_image_width = image_info->image_width * x_scale;
+ int new_image_height = image_info->image_height * y_scale;
+ unsigned char *original_line;
+ unsigned char *new_line;
+ int bytespp = 1;
+
+ DBG(DBG_proc, "xsane_save_scaled_image\n");
+
+ if (image_info->depth > 8)
+ {
+ bytespp = 2;
+ }
+
+ image_info->image_width = new_image_width;
+ image_info->image_height = new_image_height;
+ image_info->resolution_x *= x_scale;
+ image_info->resolution_y *= y_scale;
+
+ original_line = malloc(original_image_width * image_info->colors * bytespp);
+ if (!original_line)
+ {
+ DBG(DBG_error, "xsane_save_scaled_image: out of memory\n");
+ return -1;
+ }
+
+ new_line = malloc(new_image_width * image_info->colors * bytespp);
+ if (!new_line)
+ {
+ free(original_line);
+ DBG(DBG_error, "xsane_save_scaled_image: out of memory\n");
+ return -1;
+ }
+
+ xsane_write_pnm_header(outfile, image_info);
+
+ original_y = 0.0;
+ old_original_y = -1;
+
+ for (y = 0; y < new_image_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (; ((int) original_y) - old_original_y; old_original_y += 1)
+ {
+ fread(original_line, original_image_width, image_info->colors * bytespp, imagefile); /* read one line */
+ }
+
+ for (x = 0; x < new_image_width; x++)
+ {
+ for (i = 0; i < image_info->colors * bytespp; i++)
+ {
+ new_line[x * image_info->colors * bytespp + i] = original_line[((int) (x / x_scale)) * image_info->colors * bytespp + i];
+ }
+ }
+
+ fwrite(new_line, new_image_width, image_info->colors * bytespp, outfile); /* write one line */
+
+ original_y += 1/y_scale;
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ free(original_line);
+ free(new_line);
+
+ fflush(outfile);
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_save_despeckle_image(FILE *outfile, FILE *imagefile, Image_info *image_info, int radius, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ int x, y, sx, sy, i;
+ int xmin, xmax;
+ int ymin, ymax;
+ int pos0;
+ int count;
+ unsigned char *line_cache;
+ unsigned char *line_cache_ptr;
+ guint16 *color_cache;
+ guint16 *color_cache_ptr;
+ int bytespp = 1;
+ int color_radius = radius * image_info->colors;
+ int color_width = image_info->image_width * image_info->colors;
+
+ if (image_info->depth > 8)
+ {
+ bytespp = 2;
+ }
+
+ pos0 = ftell(imagefile); /* mark position to skip header */
+
+ xsane_write_pnm_header(outfile, image_info);
+
+ line_cache = malloc(color_width * bytespp * (2 * radius + 1));
+ if (!line_cache)
+ {
+ DBG(DBG_error, "xsane_despeckle_image: out of memory\n");
+ return -1;
+ }
+
+ fread(line_cache, color_width * bytespp, (2 * radius + 1), imagefile);
+
+ color_cache = malloc((size_t) sizeof(guint16) * (2*radius+1)*(2*radius+1));
+
+ if (!color_cache)
+ {
+ free(line_cache);
+ DBG(DBG_error, "xsane_despeckle_image: out of memory\n");
+ return -1;
+ }
+
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ ymin = y - radius;
+ ymax = y + radius;
+
+ if (ymin < 0)
+ {
+ ymin = 0;
+ }
+
+ if (ymax > image_info->image_height)
+ {
+ ymax = image_info->image_height;
+ }
+
+ for (x = 0; x < color_width; x++)
+ {
+ xmin = x - color_radius;
+ xmax = x + color_radius;
+
+ if (xmin < 0)
+ {
+ xmin = x % image_info->colors;
+ }
+
+ if (xmax > color_width)
+ {
+ xmax = color_width;
+ }
+
+ count = 0;
+
+ color_cache_ptr = color_cache;
+
+
+ if (bytespp == 1)
+ {
+ for (sy = ymin; sy <= ymax; sy++) /* search area defined by radius - y part */
+ {
+ line_cache_ptr = line_cache + (sy-ymin) * color_width + xmin;
+
+ for (sx = xmin; sx <= xmax; sx+=image_info->colors) /* x part */
+ {
+ *color_cache_ptr = *line_cache_ptr;
+ color_cache_ptr++;
+ line_cache_ptr += image_info->colors;
+ }
+ }
+
+ /* sort color_cache */
+
+ count = color_cache_ptr - color_cache;
+
+ if (count > 1)
+ {
+ int d, j, val;
+
+ for (d = count / 2; d > 0; d = d / 2)
+ {
+ for (i = d; i < count; i++)
+ {
+ for (j = i - d, color_cache_ptr = color_cache + j; j >= 0 && color_cache_ptr[0] > color_cache_ptr[d]; j -= d, color_cache_ptr -= d)
+ {
+ val = color_cache_ptr[0];
+ color_cache_ptr[0] = color_cache_ptr[d];
+ color_cache_ptr[d] = val;
+ };
+ }
+ }
+ }
+
+ fputc((char) (color_cache[count/2]), outfile);
+ }
+ else /* 16 bit/color */
+ {
+ guint16 val16;
+ guint16 *line_cache16 = (guint16 *) line_cache;
+ guint16 *line_cache16_ptr;
+ char *bytes16 = (char *) &val16;
+
+ for (sy = ymin; sy <= ymax; sy++)
+ {
+ line_cache16_ptr = line_cache16 + (sy-ymin) * color_width + xmin;
+
+ for (sx = xmin; sx <= xmax; sx+=image_info->colors)
+ {
+ *color_cache_ptr = *line_cache16_ptr;
+ color_cache_ptr++;
+ line_cache16_ptr += image_info->colors;
+ }
+ }
+
+ /* sort color_cache */
+
+ count = color_cache_ptr - color_cache;
+
+ if (count > 1)
+ {
+ int d,j, val;
+
+ for (d = count / 2; d > 0; d = d / 2)
+ {
+ for (i = d; i < count; i++)
+ {
+ for (j = i - d, color_cache_ptr = color_cache + j; j >= 0 && color_cache_ptr[0] > color_cache_ptr[d]; j -= d, color_cache_ptr -= d)
+ {
+ val = color_cache_ptr[0];
+ color_cache_ptr[0] = color_cache_ptr[d];
+ color_cache_ptr[d] = val;
+ };
+ }
+ }
+ }
+
+ val16 = color_cache[count/2];
+ fputc(bytes16[0], outfile); /* write bytes in machine byte order */
+ fputc(bytes16[1], outfile);
+ }
+ }
+
+ if ((y > radius) && (y < image_info->image_height - radius))
+ {
+ memcpy(line_cache, line_cache + color_width * bytespp,
+ color_width * bytespp * 2 * radius);
+ fread(line_cache + color_width * bytespp * 2 * radius,
+ color_width * bytespp, 1, imagefile);
+ }
+ }
+
+ fflush(outfile);
+
+ free(line_cache);
+ free(color_cache);
+
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info, int radius, GtkProgressBar *progress_bar)
+{
+ int x, y, sx, sy;
+ int xmin, xmax;
+ int ymin, ymax;
+ int pos0;
+ int val, count;
+ unsigned char *line_cache;
+ int bytespp = 1;
+
+ if (image_info->depth > 8)
+ {
+ bytespp = 2;
+ }
+
+ pos0 = ftell(imagefile); /* mark position to skip header */
+
+ xsane_write_pnm_header(outfile, image_info);
+
+ line_cache = malloc(image_info->image_width * image_info->colors * bytespp * (2 * radius + 1));
+ if (!line_cache)
+ {
+ DBG(DBG_error, "xsane_blur_image: out of memory\n");
+ return -1;
+ }
+
+ fread(line_cache, image_info->image_width * image_info->colors * bytespp, (2 * radius + 1), imagefile);
+
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (x = 0; x < image_info->image_width * image_info->colors; x++)
+ {
+ xmin = x - radius * image_info->colors;
+ xmax = x + radius * image_info->colors;
+
+ if (xmin < 0)
+ {
+ xmin = x % image_info->colors;
+ }
+
+ if (xmax > image_info->image_width * image_info->colors)
+ {
+ xmax = image_info->image_width * image_info->colors;
+ }
+
+ ymin = y - radius;
+ ymax = y + radius;
+
+ if (ymin < 0)
+ {
+ ymin = 0;
+ }
+
+ if (ymax > image_info->image_height)
+ {
+ ymax = image_info->image_height;
+ }
+
+ val = 0;
+ count = 0;
+
+ if (bytespp == 1)
+ {
+ for (sy = ymin; sy <= ymax; sy++)
+ {
+ for (sx = xmin; sx <= xmax; sx+=image_info->colors)
+ {
+ val += line_cache[(sy-ymin) * image_info->image_width * image_info->colors + sx];
+ count++;
+ }
+ }
+ fputc((char) (val/count), outfile);
+ }
+ else
+ {
+ guint16 *line_cache16 = (guint16 *) line_cache;
+ guint16 val16;
+ char *bytes16 = (char *) &val16;
+
+ for (sy = ymin; sy <= ymax; sy++)
+ {
+ for (sx = xmin; sx <= xmax; sx+=image_info->colors)
+ {
+ val += line_cache16[(sy-ymin) * image_info->image_width * image_info->colors + sx];
+ count++;
+ }
+ }
+
+ val16 = val / count;
+ fputc(bytes16[0], outfile); /* write bytes in machine byte order */
+ fputc(bytes16[1], outfile);
+ }
+ }
+
+ if ((y > radius) && (y < image_info->image_height - radius))
+ {
+ memcpy(line_cache, line_cache + image_info->image_width * image_info->colors * bytespp,
+ image_info->image_width * image_info->colors * bytespp * 2 * radius);
+ fread(line_cache + image_info->image_width * image_info->colors * bytespp * 2 * radius,
+ image_info->image_width * image_info->colors * bytespp, 1, imagefile);
+ }
+ }
+
+ fflush(outfile);
+ free(line_cache);
+
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_save_rotate_image(FILE *outfile, FILE *imagefile, Image_info *image_info, int rotation, GtkProgressBar *progress_bar, int *cancel_save)
+/* returns true if operation was cancelled */
+{
+ int x, y, pos0, bytespp, i;
+ int pixel_width = image_info->image_width;
+ int pixel_height = image_info->image_height;
+ float resolution_x = image_info->resolution_x;
+ float resolution_y = image_info->resolution_y;
+
+#ifdef HAVE_MMAP
+ char *mmaped_imagefile = NULL;
+#endif
+
+ DBG(DBG_proc, "xsane_save_rotate_image\n");
+
+ *cancel_save = 0;
+
+ pos0 = ftell(imagefile); /* mark position to skip header */
+
+ bytespp = image_info->colors;
+
+ if (image_info->depth > 8)
+ {
+ bytespp *= 2;
+ }
+
+ if (image_info->depth < 8) /* lineart images are expanded to grayscale until transformation is done */
+ {
+ image_info->depth = 8; /* so we have at least 8 bits/pixel here */
+ }
+
+#ifdef HAVE_MMAP
+ mmaped_imagefile = mmap(NULL, pixel_width * pixel_height * bytespp + pos0, PROT_READ, MAP_PRIVATE, fileno(imagefile), 0);
+ if (mmaped_imagefile == (void *) -1) /* mmap failed */
+ {
+ DBG(DBG_info, "xsane_save_rotate_image: unable to memory map image file, using standard file access\n");
+ mmaped_imagefile = NULL;
+ }
+ else
+ {
+ DBG(DBG_info, "xsane_save_rotate_image: using memory mapped image file\n");
+ }
+#endif
+
+ switch (rotation)
+ {
+ default:
+ break;
+
+ case 0: /* 0 degree */
+ xsane_write_pnm_header(outfile, image_info);
+
+ for (y = 0; y < pixel_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / pixel_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (x = 0; x < pixel_width; x++)
+ {
+#ifdef HAVE_MMAP
+ if (mmaped_imagefile)
+ {
+ char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */
+
+ for (i=0; i<bytespp; i++)
+ {
+ fputc(*p++, outfile);
+ }
+ }
+ else
+#endif
+ {
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(fgetc(imagefile), outfile);
+ }
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+ break;
+
+ case 1: /* 90 degree */
+ image_info->image_width = pixel_height;
+ image_info->image_height = pixel_width;
+
+ image_info->resolution_x = resolution_y;
+ image_info->resolution_y = resolution_x;
+
+ xsane_write_pnm_header(outfile, image_info);
+
+ for (x=0; x<pixel_width; x++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) x / pixel_width);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (y=pixel_height-1; y>=0; y--)
+ {
+#ifdef HAVE_MMAP
+ if (mmaped_imagefile)
+ {
+ char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */
+
+ for (i=0; i<bytespp; i++)
+ {
+ fputc(*p++, outfile);
+ }
+ }
+ else
+#endif
+ {
+ fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */
+ for (i=0; i<bytespp; i++)
+ {
+ fputc(fgetc(imagefile), outfile);
+ }
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ break;
+
+ case 2: /* 180 degree */
+ xsane_write_pnm_header(outfile, image_info);
+
+ for (y = pixel_height-1; y >= 0; y--)
+ {
+ gtk_progress_bar_update(progress_bar, (float) (pixel_height - y) / pixel_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (x = pixel_width-1; x >= 0; x--)
+ {
+#ifdef HAVE_MMAP
+ if (mmaped_imagefile)
+ {
+ char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */
+
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(*p++, outfile);
+ }
+ }
+ else
+#endif
+ {
+ fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(fgetc(imagefile), outfile);
+ }
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+ break;
+
+ case 3: /* 270 degree */
+ image_info->image_width = pixel_height;
+ image_info->image_height = pixel_width;
+
+ image_info->resolution_x = resolution_y;
+ image_info->resolution_y = resolution_x;
+
+ xsane_write_pnm_header(outfile, image_info);
+
+ for (x = pixel_width-1; x >= 0; x--)
+ {
+ gtk_progress_bar_update(progress_bar, (float) (pixel_width - x) / pixel_width);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (y = 0; y < pixel_height; y++)
+ {
+#ifdef HAVE_MMAP
+ if (mmaped_imagefile)
+ {
+ char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */
+
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(*p++, outfile);
+ }
+ }
+ else
+#endif
+ {
+ fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(fgetc(imagefile), outfile);
+ }
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+ break;
+
+ case 4: /* 0 degree, x mirror */
+ xsane_write_pnm_header(outfile, image_info);
+
+ for (y = 0; y < pixel_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / pixel_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (x = pixel_width-1; x >= 0; x--)
+ {
+#ifdef HAVE_MMAP
+ if (mmaped_imagefile)
+ {
+ char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */
+
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(*p++, outfile);
+ }
+ }
+ else
+#endif
+ {
+ fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(fgetc(imagefile), outfile);
+ }
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+ break;
+
+ case 5: /* 90 degree, x mirror */
+ image_info->image_width = pixel_height;
+ image_info->image_height = pixel_width;
+
+ image_info->resolution_x = resolution_y;
+ image_info->resolution_y = resolution_x;
+
+ xsane_write_pnm_header(outfile, image_info);
+
+ for (x = 0; x < pixel_width; x++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) x / pixel_width);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (y = 0; y < pixel_height; y++)
+ {
+#ifdef HAVE_MMAP
+ if (mmaped_imagefile)
+ {
+ char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */
+
+ for (i=0; i<bytespp; i++)
+ {
+ fputc(*p++, outfile);
+ }
+ }
+ else
+#endif
+ {
+ fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(fgetc(imagefile), outfile);
+ }
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ break;
+
+ case 6: /* 180 degree, x mirror */
+ xsane_write_pnm_header(outfile, image_info);
+
+ for (y = pixel_height-1; y >= 0; y--)
+ {
+ gtk_progress_bar_update(progress_bar, (float) (pixel_height - y) / pixel_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (x = 0; x < pixel_width; x++)
+ {
+#ifdef HAVE_MMAP
+ if (mmaped_imagefile)
+ {
+ char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */
+
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(*p++, outfile);
+ }
+ }
+ else
+#endif
+ {
+ fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(fgetc(imagefile), outfile);
+ }
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+ break;
+
+ case 7: /* 270 degree, x mirror */
+ image_info->image_width = pixel_height;
+ image_info->image_height = pixel_width;
+
+ image_info->resolution_x = resolution_y;
+ image_info->resolution_y = resolution_x;
+
+ xsane_write_pnm_header(outfile, image_info);
+
+ for (x = pixel_width-1; x >= 0; x--)
+ {
+ gtk_progress_bar_update(progress_bar, (float) (pixel_width - x) / pixel_width);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (y = pixel_height-1; y >= 0; y--)
+ {
+#ifdef HAVE_MMAP
+ if (mmaped_imagefile)
+ {
+ char *p = mmaped_imagefile + pos0 + bytespp * (x + y * pixel_width); /* calculate correct position */
+
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(*p++, outfile);
+ }
+ }
+ else
+#endif
+ {
+ fseek(imagefile, pos0 + bytespp * (x + y * pixel_width), SEEK_SET); /* go to the correct position */
+ for (i = 0; i < bytespp; i++)
+ {
+ fputc(fgetc(imagefile), outfile);
+ }
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+ break;
+ }
+
+#ifdef HAVE_MMAP
+ if (mmaped_imagefile)
+ {
+ munmap(mmaped_imagefile, pos0 + pixel_width * pixel_height * bytespp);
+ }
+#endif
+
+ fflush(outfile);
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_save_ps_create_header(FILE *outfile, Image_info *image_info,
+ int left, int bottom, float width, float height,
+ int paperwidth, int paperheight, int rotate,
+ GtkProgressBar *progress_bar)
+{
+ int degree, position_left, position_bottom, box_left, box_bottom, box_right, box_top;
+
+ DBG(DBG_proc, "xsane_save_ps_create_header\n");
+
+ if (rotate) /* rotate with 90 degrees - eg for landscape mode */
+ {
+ degree = 90;
+ position_left = left;
+ position_bottom = bottom - paperwidth;
+ box_left = paperwidth - bottom - height * 72.0;
+ box_bottom = left;
+ box_right = (int) (box_left + height * 72.0);
+ box_top = (int) (box_bottom + width * 72.0);
+ }
+ else /* do not rotate, eg for portrait mode */
+ {
+ degree = 0;
+ position_left = left;
+ position_bottom = bottom;
+ box_left = left;
+ box_bottom = bottom;
+ box_right = (int) (box_left + width * 72.0);
+ box_top = (int) (box_bottom + height * 72.0);
+ }
+
+ if (image_info->depth == 16)
+ {
+ image_info->depth = 8; /* 16 bits/color are already reduced to 8 bits/color */
+ }
+
+ fprintf(outfile, "%%!PS-Adobe-2.0 EPSF-2.0\n");
+ fprintf(outfile, "%%%%Creator: xsane version %s (sane %d.%d)\n", VERSION,
+ SANE_VERSION_MAJOR(xsane.sane_backend_versioncode),
+ SANE_VERSION_MINOR(xsane.sane_backend_versioncode));
+ fprintf(outfile, "%%%%BoundingBox: %d %d %d %d\n", box_left, box_bottom, box_right, box_top);
+ fprintf(outfile, "%%\n");
+ fprintf(outfile, "/origstate save def\n");
+ fprintf(outfile, "20 dict begin\n");
+
+ if (image_info->depth == 1)
+ {
+ fprintf(outfile, "/pix %d string def\n", (image_info->image_width+7)/8);
+ fprintf(outfile, "/grays %d string def\n", image_info->image_width);
+ fprintf(outfile, "/npixels 0 def\n");
+ fprintf(outfile, "/rgbindx 0 def\n");
+ }
+ else
+ {
+ fprintf(outfile, "/pix %d string def\n", image_info->image_width);
+ }
+
+
+ fprintf(outfile, "%d rotate\n", degree);
+ fprintf(outfile, "%d %d translate\n", position_left, position_bottom);
+ fprintf(outfile, "%f %f scale\n", width * 72.0, height * 72.0);
+ fprintf(outfile, "%d %d %d\n", image_info->image_width, image_info->image_height, image_info->depth);
+ fprintf(outfile, "[%d %d %d %d %d %d]\n", image_info->image_width, 0, 0, -image_info->image_height, 0 , image_info->image_height);
+ fprintf(outfile, "{currentfile pix readhexstring pop}\n");
+
+ if (image_info->colors == 3) /* what about RGBA here ? */
+ {
+ fprintf(outfile, "false 3 colorimage\n");
+ fprintf(outfile, "\n");
+ }
+ else
+ {
+ fprintf(outfile, "image\n");
+ fprintf(outfile, "\n");
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_save_ps_bw(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ int x, y, count;
+ int bytes_per_line = (image_info->image_width+7)/8;
+
+ DBG(DBG_proc, "xsane_save_ps_bw\n");
+
+ *cancel_save = 0;
+
+ count = 0;
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (x = 0; x < bytes_per_line; x++)
+ {
+ fprintf(outfile, "%02x", (fgetc(imagefile) ^ 255));
+ if (++count >= 40)
+ {
+ fprintf(outfile, "\n");
+ count = 0;
+ }
+ }
+
+ fprintf(outfile, "\n");
+ count = 0;
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_save_ps_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ int x, y, count;
+
+ DBG(DBG_proc, "xsane_save_ps_gray\n");
+
+ *cancel_save = 0;
+
+ count = 0;
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ for (x = 0; x < image_info->image_width; x++)
+ {
+ fprintf(outfile, "%02x", fgetc(imagefile));
+ if (++count >=40)
+ {
+ fprintf(outfile, "\n");
+ count = 0;
+ }
+ }
+ fprintf(outfile, "\n");
+ count = 0;
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_save_ps_color(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ int x, y, count;
+
+ DBG(DBG_proc, "xsane_save_ps_color\n");
+
+ *cancel_save = 0;
+
+ count = 0;
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (x = 0; x < image_info->image_width; x++)
+ {
+ fprintf(outfile, "%02x", fgetc(imagefile));
+ fprintf(outfile, "%02x", fgetc(imagefile));
+ fprintf(outfile, "%02x", fgetc(imagefile));
+ if (++count >=10)
+ {
+ fprintf(outfile, "\n");
+ count = 0;
+ }
+ }
+ fprintf(outfile, "\n");
+ count = 0;
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_save_ps(FILE *outfile, FILE *imagefile, Image_info *image_info, int left, int bottom, float width, float height,
+ int paperheight, int paperwidth, int rotate, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ DBG(DBG_proc, "xsane_save_ps\n");
+
+ xsane_save_ps_create_header(outfile, image_info,
+ left, bottom, width, height, paperheight, paperwidth, rotate, progress_bar);
+
+ if (image_info->colors == 1) /* lineart, halftone, grayscale */
+ {
+ if (image_info->depth == 1) /* lineart, halftone */
+ {
+ xsane_save_ps_bw(outfile, imagefile, image_info, progress_bar, cancel_save);
+ }
+ else /* grayscale */
+ {
+ xsane_save_ps_gray(outfile, imagefile, image_info, progress_bar, cancel_save);
+ }
+ }
+ else /* color RGB */
+ {
+ xsane_save_ps_color(outfile, imagefile, image_info, progress_bar, cancel_save);
+ }
+
+ fprintf(outfile, "\n");
+ fprintf(outfile, "showpage\n");
+ fprintf(outfile, "end\n");
+ fprintf(outfile, "origstate restore\n");
+ fprintf(outfile, "\n");
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef HAVE_LIBJPEG
+int xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int quality, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ unsigned char *data;
+ char buf[256];
+ int x,y;
+ int components = 1;
+ struct jpeg_compress_struct cinfo;
+ struct jpeg_error_mgr jerr;
+ JSAMPROW row_pointer[1];
+
+ DBG(DBG_proc, "xsane_save_jpeg\n");
+
+ *cancel_save = 0;
+
+ if (image_info->colors == 3)
+ {
+ components = 3;
+ }
+
+ data = malloc(image_info->image_width * components);
+
+ if (!data)
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM);
+ xsane_back_gtk_error(buf, TRUE);
+ return -1; /* error */
+ }
+
+ cinfo.err = jpeg_std_error(&jerr);
+ jpeg_create_compress(&cinfo);
+ jpeg_stdio_dest(&cinfo, outfile);
+ cinfo.image_width = image_info->image_width;
+ cinfo.image_height = image_info->image_height;
+ cinfo.input_components = components;
+ if (image_info->colors == 3)
+ {
+ cinfo.in_color_space = JCS_RGB;
+ }
+ else
+ {
+ cinfo.in_color_space = JCS_GRAYSCALE;
+ }
+ jpeg_set_defaults(&cinfo);
+
+ jpeg_set_quality(&cinfo, quality, TRUE);
+
+ cinfo.density_unit = 1; /* dpi */
+ cinfo.X_density = image_info->resolution_x;
+ cinfo.Y_density = image_info->resolution_y;
+
+ jpeg_start_compress(&cinfo, TRUE);
+
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ if (image_info->depth == 1)
+ {
+ int byte = 0;
+ int mask = 128;
+
+ for (x = 0; x < image_info->image_width; x++)
+ {
+
+ if ( (x % 8) == 0)
+ {
+ byte = fgetc(imagefile);
+ mask = 128;
+ }
+
+ if (byte & mask)
+ {
+ data[x] = 0;
+ }
+ else
+ {
+ data[x] = 255;
+ }
+ mask >>= 1;
+ }
+ }
+ else
+ {
+ fread(data, components, image_info->image_width, imagefile);
+ }
+
+ row_pointer[0] = data;
+ jpeg_write_scanlines(&cinfo, row_pointer, 1);
+
+ if (*cancel_save)
+ {
+ cinfo.image_height = y; /* correct image height */
+ break;
+ }
+ }
+
+ jpeg_finish_compress(&cinfo);
+ free(data);
+
+ return (*cancel_save);
+}
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef HAVE_LIBTIFF
+int xsane_save_tiff(const char *outfilename, FILE *imagefile, Image_info *image_info, int quality, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ TIFF *tiffile;
+ char *data;
+ char buf[256];
+ int y, w;
+ int components;
+ int compression;
+ int bytes;
+ struct tm *ptm;
+ time_t now;
+
+ DBG(DBG_proc, "xsane_save_tiff\n");
+
+ *cancel_save = 0;
+
+ if (image_info->depth == 1)
+ {
+ compression = preferences.tiff_compression1_nr;
+ }
+ else if (image_info->depth == 8)
+ {
+ compression = preferences.tiff_compression8_nr;
+ }
+ else
+ {
+ compression = preferences.tiff_compression16_nr;
+ }
+
+
+ if (image_info->colors == 3)
+ {
+ components = 3;
+ }
+ else
+ {
+ components = 1;
+ }
+
+ if (image_info->depth <= 8)
+ {
+ bytes = 1;
+ }
+ else
+ {
+ bytes = 2;
+ }
+
+ if (xsane_create_secure_file(outfilename)) /* remove possibly existing symbolic links for security */
+ {
+ snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, outfilename);
+ xsane_back_gtk_error(buf, TRUE);
+ return -1; /* error */
+ }
+
+ tiffile = TIFFOpen(outfilename, "w");
+ if (!tiffile)
+ {
+ snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_OPEN_FAILED, outfilename);
+ xsane_back_gtk_error(buf, TRUE);
+ return -1; /* error */
+ }
+
+#if 0
+ data = malloc(pixel_width * components * bytes);
+#else
+ data = (char *)_TIFFmalloc(image_info->image_width * components * bytes);
+#endif
+
+ if (!data)
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM);
+ xsane_back_gtk_error(buf, TRUE);
+ return -1; /* error */
+ }
+
+ TIFFSetField(tiffile, TIFFTAG_IMAGEWIDTH, image_info->image_width);
+ TIFFSetField(tiffile, TIFFTAG_IMAGELENGTH, image_info->image_height);
+ TIFFSetField(tiffile, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
+ TIFFSetField(tiffile, TIFFTAG_BITSPERSAMPLE, image_info->depth);
+ TIFFSetField(tiffile, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
+ TIFFSetField(tiffile, TIFFTAG_COMPRESSION, compression);
+ TIFFSetField(tiffile, TIFFTAG_SAMPLESPERPIXEL, components);
+ TIFFSetField(tiffile, TIFFTAG_SOFTWARE, "xsane");
+
+ time(&now);
+ ptm = localtime(&now);
+ sprintf(buf, "%04d:%02d:%02d %02d:%02d:%02d", 1900+ptm->tm_year, ptm->tm_mon+1, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
+ TIFFSetField(tiffile, TIFFTAG_DATETIME, buf);
+
+ TIFFSetField(tiffile, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH);
+ TIFFSetField(tiffile, TIFFTAG_XRESOLUTION, image_info->resolution_x);
+ TIFFSetField(tiffile, TIFFTAG_YRESOLUTION, image_info->resolution_y);
+
+ if (compression == COMPRESSION_JPEG)
+ {
+ TIFFSetField(tiffile, TIFFTAG_JPEGQUALITY, quality);
+ TIFFSetField(tiffile, TIFFTAG_JPEGCOLORMODE, JPEGCOLORMODE_RAW); /* should be default, but to be sure */
+ }
+
+ if (image_info->colors == 3)
+ {
+ TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB);
+ }
+ else
+ {
+ if (image_info->depth == 1) /* lineart */
+ {
+ TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISWHITE);
+ }
+ else /* grayscale */
+ {
+ TIFFSetField(tiffile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK);
+ }
+ }
+
+ TIFFSetField(tiffile, TIFFTAG_ROWSPERSTRIP, TIFFDefaultStripSize(tiffile, -1));
+
+ w = TIFFScanlineSize(tiffile);
+
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ fread(data, 1, w, imagefile);
+
+ TIFFWriteScanline(tiffile, data, y, 0);
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ TIFFClose(tiffile);
+#if 0
+ free(data);
+#else
+ _TIFFfree(data);
+#endif
+ return (*cancel_save);
+}
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+int xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ png_structp png_ptr;
+ png_infop png_info_ptr;
+ png_bytep row_ptr;
+ png_color_8 sig_bit;
+ unsigned char *data;
+ char buf[256];
+ int colortype, components, byte_width;
+ int y;
+
+ DBG(DBG_proc, "xsane_save_png\n");
+
+ *cancel_save = 0;
+
+ png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0);
+ if (!png_ptr)
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBTIFF);
+ xsane_back_gtk_error(buf, TRUE);
+ return -1; /* error */
+ }
+
+ png_info_ptr = png_create_info_struct(png_ptr);
+ if (!png_info_ptr)
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBTIFF);
+ xsane_back_gtk_error(buf, TRUE);
+ return -1; /* error */
+ }
+
+ if (setjmp(png_ptr->jmpbuf))
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG);
+ xsane_back_gtk_error(buf, TRUE);
+ png_destroy_write_struct(&png_ptr, (png_infopp) 0);
+ return -1; /* error */
+ }
+
+ byte_width = image_info->image_width;
+
+ if (image_info->colors == 4) /* RGBA */
+ {
+ components = 4;
+ colortype = PNG_COLOR_TYPE_RGB_ALPHA;
+ }
+ else if (image_info->colors == 3) /* RGB */
+ {
+ components = 3;
+ colortype = PNG_COLOR_TYPE_RGB;
+ }
+ else /* gray or black/white */
+ {
+ components = 1;
+ colortype = PNG_COLOR_TYPE_GRAY;
+ }
+
+ png_init_io(png_ptr, outfile);
+ png_set_compression_level(png_ptr, compression);
+ png_set_IHDR(png_ptr, png_info_ptr, image_info->image_width, image_info->image_height, image_info->depth,
+ colortype, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
+
+ if (image_info->colors >=3)
+ {
+ sig_bit.red = image_info->depth;
+ sig_bit.green = image_info->depth;
+ sig_bit.blue = image_info->depth;
+
+ if (image_info->colors == 4)
+ {
+ sig_bit.alpha = image_info->depth;
+ }
+
+ }
+ else
+ {
+ sig_bit.gray = image_info->depth;
+
+ if (image_info->depth == 1)
+ {
+ byte_width = (image_info->image_width+7)/8;
+ png_set_invert_mono(png_ptr);
+ }
+ }
+
+ png_set_sBIT(png_ptr, png_info_ptr, &sig_bit);
+#if defined(PNG_pHYs_SUPPORTED)
+ png_set_pHYs(png_ptr, png_info_ptr,
+ image_info->resolution_x * 100.0 / 2.54,
+ image_info->resolution_y * 100.0 / 2.54, PNG_RESOLUTION_METER);
+#endif
+ png_write_info(png_ptr, png_info_ptr);
+ png_set_shift(png_ptr, &sig_bit);
+
+ data = malloc(image_info->image_width * components);
+
+ if (!data)
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM);
+ xsane_back_gtk_error(buf, TRUE);
+ png_destroy_write_struct(&png_ptr, (png_infopp) 0);
+ return -1; /* error */
+ }
+
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ fread(data, components, byte_width, imagefile);
+
+ row_ptr = data;
+ png_write_rows(png_ptr, &row_ptr, 1);
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ free(data);
+ png_write_end(png_ptr, png_info_ptr);
+ png_destroy_write_struct(&png_ptr, (png_infopp) 0);
+
+ return (*cancel_save);
+}
+#endif
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+int xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ png_structp png_ptr;
+ png_infop png_info_ptr;
+ png_bytep row_ptr;
+ png_color_8 sig_bit; /* should be 16, but then I get a warning about wrong type */
+ unsigned char *data;
+ char buf[256];
+ int colortype, components;
+ int x,y;
+ guint16 val;
+
+ DBG(DBG_proc, "xsane_save_png16\n");
+
+ *cancel_save = 0;
+
+ png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0);
+ if (!png_ptr)
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG);
+ xsane_back_gtk_error(buf, TRUE);
+ return -1; /* error */
+ }
+
+ png_info_ptr = png_create_info_struct(png_ptr);
+ if (!png_info_ptr)
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG);
+ xsane_back_gtk_error(buf, TRUE);
+ return -1; /* error */
+ }
+
+ if (setjmp(png_ptr->jmpbuf))
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG);
+ xsane_back_gtk_error(buf, TRUE);
+ png_destroy_write_struct(&png_ptr, (png_infopp) 0);
+ return -1; /* error */
+ }
+
+ if (image_info->colors == 4) /* RGBA */
+ {
+ components = 4;
+ colortype = PNG_COLOR_TYPE_RGB_ALPHA;
+ }
+ else if (image_info->colors == 3) /* RGB */
+ {
+ components = 3;
+ colortype = PNG_COLOR_TYPE_RGB;
+ }
+ else /* gray or black/white */
+ {
+ components = 1;
+ colortype = PNG_COLOR_TYPE_GRAY;
+ }
+
+ png_init_io(png_ptr, outfile);
+ png_set_compression_level(png_ptr, compression);
+ png_set_IHDR(png_ptr, png_info_ptr, image_info->image_width, image_info->image_height, 16,
+ colortype, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
+
+ sig_bit.red = image_info->depth;
+ sig_bit.green = image_info->depth;
+ sig_bit.blue = image_info->depth;
+ sig_bit.alpha = image_info->depth;
+ sig_bit.gray = image_info->depth;
+
+ png_set_sBIT(png_ptr, png_info_ptr, &sig_bit);
+ png_write_info(png_ptr, png_info_ptr);
+ png_set_shift(png_ptr, &sig_bit);
+ png_set_packing(png_ptr);
+
+ data = malloc(image_info->image_width * components * 2);
+
+ if (!data)
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_NO_MEM);
+ xsane_back_gtk_error(buf, TRUE);
+ png_destroy_write_struct(&png_ptr, (png_infopp) 0);
+ return -1; /* error */
+ }
+
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (x = 0; x < image_info->image_width * components; x++) /* this must be changed in dependance of endianess */
+ {
+ fread(&val, 2, 1, imagefile); /* get data in machine order */
+ data[x*2+0] = val/256; /* write data in network order (MSB first) */
+ data[x*2+1] = val & 255;
+ }
+
+ row_ptr = data;
+ png_write_rows(png_ptr, &row_ptr, 1);
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ free(data);
+ png_write_end(png_ptr, png_info_ptr);
+ png_destroy_write_struct(&png_ptr, (png_infopp) 0);
+
+ return (*cancel_save);
+}
+#endif
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_save_pnm_16_gray(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ int x,y;
+ guint16 val;
+ int count = 0;
+
+ DBG(DBG_proc, "xsane_save_pnm_16_gray\n");
+
+ *cancel_save = 0;
+
+ /* write pgm ascii > 8 bpp */
+ fprintf(outfile, "P2\n# SANE data follows\n%d %d\n65535\n", image_info->image_width, image_info->image_height);
+
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ for (x = 0; x < image_info->image_width; x++)
+ {
+ fread(&val, 2, 1, imagefile); /* get data in machine order */
+ fprintf(outfile, "%d ", val);
+
+ if (++count >= 10)
+ {
+ fprintf(outfile, "\n");
+ count = 0;
+ }
+ }
+ fprintf(outfile, "\n");
+ count = 0;
+
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_save_pnm_16_color(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ int x,y;
+ guint16 val;
+ int count = 0;
+
+ DBG(DBG_proc, "xsane_save_pnm_16_color\n");
+
+ *cancel_save = 0;
+
+ /* write ppm ascii > 8 bpp */
+ fprintf(outfile, "P3\n# SANE data follows\n%d %d\n65535\n", image_info->image_width, image_info->image_height);
+
+ for (y = 0; y < image_info->image_height; y++)
+ {
+ gtk_progress_bar_update(progress_bar, (float) y / image_info->image_height);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ for (x = 0; x < image_info->image_width; x++)
+ {
+ fread(&val, 2, 1, imagefile); /* get data in machine order */
+ fprintf(outfile, "%d ", val);
+
+ fread(&val, 2, 1, imagefile);
+ fprintf(outfile, "%d ", val);
+
+ fread(&val, 2, 1, imagefile);
+ fprintf(outfile, "%d ", val);
+
+ if (++count >= 3)
+ {
+ fprintf(outfile, "\n");
+ count = 0;
+ }
+ }
+ fprintf(outfile, "\n");
+ count = 0;
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_save_pnm_16(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ DBG(DBG_proc, "xsane_save_pnm_16\n");
+
+ if (image_info->colors > 1)
+ {
+ xsane_save_pnm_16_color(outfile, imagefile, image_info, progress_bar, cancel_save);
+ }
+ else
+ {
+ xsane_save_pnm_16_gray(outfile, imagefile, image_info, progress_bar, cancel_save);
+ }
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* 0=ok, <0=error, 1=canceled */
+int xsane_save_image_as_lineart(char *input_filename, char *output_filename, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ FILE *outfile;
+ FILE *infile;
+ char buf[256];
+ Image_info image_info;
+
+ *cancel_save = 0;
+
+ outfile = fopen(output_filename, "wb"); /* b = binary mode for win32 */
+
+ if (outfile == 0)
+ {
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, output_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ return -2;
+ }
+
+ infile = fopen(input_filename, "rb"); /* read binary (b for win32) */
+ if (infile == 0)
+ {
+ char buf[256];
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, input_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+
+ fclose(outfile);
+ remove(output_filename); /* remove already created output file */
+ return -1;
+ }
+
+ xsane_read_pnm_header(infile, &image_info);
+
+ xsane_save_grayscale_image_as_lineart(outfile, infile, &image_info, progress_bar, cancel_save);
+
+ fclose(infile);
+ fclose(outfile);
+
+ if (*cancel_save) /* remove output file if saving has been canceled */
+ {
+ remove(output_filename);
+ }
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+
+int xsane_save_image_as(char *input_filename, char *output_filename, int output_format, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ FILE *outfile;
+ FILE *infile;
+ char buf[256];
+ Image_info image_info;
+
+ infile = fopen(input_filename, "rb"); /* read binary (b for win32) */
+ if (infile == 0)
+ {
+ char buf[256];
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, input_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+
+ return -1;
+ }
+
+ xsane_read_pnm_header(infile, &image_info);
+
+#ifdef HAVE_LIBTIFF
+ if (output_format == XSANE_TIFF) /* routines that want to have filename for saving */
+ {
+ xsane_save_tiff(output_filename, infile, &image_info, preferences.jpeg_quality, progress_bar, cancel_save);
+ }
+ else /* routines that want to have filedescriptor for saving */
+#endif /* HAVE_LIBTIFF */
+ {
+ if (xsane_create_secure_file(output_filename)) /* remove possibly existing symbolic links for security */
+ {
+ snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, output_filename);
+ xsane_back_gtk_error(buf, TRUE);
+ return -1; /* error */
+ }
+
+ outfile = fopen(output_filename, "wb"); /* b = binary mode for win32 */
+
+ if (outfile != 0)
+ {
+ switch(output_format)
+ {
+ case XSANE_PNM:
+ xsane_save_rotate_image(outfile, infile, &image_info, 0, progress_bar, cancel_save);
+ break;
+
+#ifdef HAVE_LIBJPEG
+ case XSANE_JPEG:
+ xsane_save_jpeg(outfile, infile, &image_info, preferences.jpeg_quality, progress_bar, cancel_save);
+ break; /* switch format == XSANE_JPEG */
+#endif
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+ case XSANE_PNG:
+ if (image_info.depth <= 8)
+ {
+ xsane_save_png(outfile, infile, &image_info, preferences.png_compression, progress_bar, cancel_save);
+ }
+ else
+ {
+ xsane_save_png_16(outfile, infile, &image_info, preferences.png_compression, progress_bar, cancel_save);
+ }
+ break; /* switch format == XSANE_PNG */
+#endif
+#endif
+
+ case XSANE_PNM16:
+ xsane_save_pnm_16(outfile, infile, &image_info, progress_bar, cancel_save);
+ break; /* switch fomat == XSANE_PNM16 */
+
+ case XSANE_PS: /* save postscript, use original size */
+ {
+ float imagewidth, imageheight;
+
+ imagewidth = image_info.image_width/image_info.resolution_x; /* width in inch */
+ imageheight = image_info.image_height/image_info.resolution_y; /* height in inch */
+
+ xsane_save_ps(outfile, infile,
+ &image_info,
+ 0.0, /* left edge */
+ 0.0, /* botoom edge */
+ imagewidth, imageheight,
+ 0.0, /* paperwidth */
+ 0.0, /* paperheight */
+ 0 /* portrait */,
+ progress_bar,
+ cancel_save);
+ }
+ break; /* switch format == XSANE_PS */
+
+
+ default:
+ snprintf(buf, sizeof(buf),"%s", ERR_UNKNOWN_SAVING_FORMAT);
+ xsane_back_gtk_error(buf, TRUE);
+
+ fclose(outfile);
+ fclose(infile);
+
+ remove(output_filename); /* no usable output: remove output file */
+
+ return -2;
+ break; /* switch format == default */
+ }
+ fclose(outfile);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, output_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+
+ fclose(infile);
+ return -2;
+ }
+ }
+
+ fclose (infile);
+
+ if (*cancel_save) /* remove output file if saving has been canceled */
+ {
+ remove(output_filename);
+ }
+
+ return (*cancel_save);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef HAVE_LIBGIMP_GIMP_H
+static int xsane_decode_devname(const char *encoded_devname, int n, char *buf)
+{
+ char *dst, *limit;
+ const char *src;
+ char ch, val;
+
+ DBG(DBG_proc, "xsane_decode_devname\n");
+
+ limit = buf + n;
+ for (src = encoded_devname, dst = buf; *src; ++dst)
+ {
+ if (dst >= limit)
+ {
+ return -1;
+ }
+
+ ch = *src++;
+ /* don't use the ctype.h macros here since we don't want to allow anything non-ASCII here... */
+ if (ch != '-')
+ {
+ *dst = ch;
+ }
+ else /* decode */
+ {
+ ch = *src++;
+ if (ch == '-')
+ {
+ *dst = ch;
+ }
+ else
+ {
+ if (ch >= 'a' && ch <= 'f')
+ {
+ val = (ch - 'a') + 10;
+ }
+ else
+ {
+ val = (ch - '0');
+ }
+ val <<= 4;
+
+ ch = *src++;
+ if (ch >= 'a' && ch <= 'f')
+ {
+ val |= (ch - 'a') + 10;
+ }
+ else
+ {
+ val |= (ch - '0');
+ }
+
+ *dst = val;
+
+ ++src; /* simply skip terminating '-' for now... */
+ }
+ }
+ }
+
+ if (dst >= limit)
+ {
+ return -1;
+ }
+
+ *dst = '\0';
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_encode_devname(const char *devname, int n, char *buf)
+{
+ static const char hexdigit[] = "0123456789abcdef";
+ char *dst, *limit;
+ const char *src;
+ char ch;
+
+ DBG(DBG_proc, "xsane_encode_devname\n");
+
+ limit = buf + n;
+ for (src = devname, dst = buf; *src; ++src)
+ {
+ if (dst >= limit)
+ {
+ return -1;
+ }
+
+ ch = *src;
+ /* don't use the ctype.h macros here since we don't want to allow anything non-ASCII here... */
+ if ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
+ {
+ *dst++ = ch;
+ }
+ else /* encode */
+ {
+ if (dst + 4 >= limit)
+ {
+ return -1;
+ }
+
+ *dst++ = '-';
+ if (ch == '-')
+ {
+ *dst++ = '-';
+ }
+ else
+ {
+ *dst++ = hexdigit[(ch >> 4) & 0x0f];
+ *dst++ = hexdigit[(ch >> 0) & 0x0f];
+ *dst++ = '-';
+ }
+ }
+ }
+
+ if (dst >= limit)
+ {
+ return -1;
+ }
+
+ *dst = '\0';
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_gimp_query(void)
+{
+ static GimpParamDef args[] =
+ {
+ {GIMP_PDB_INT32, "run_mode", "Interactive, non-interactive"},
+ };
+ static GimpParamDef *return_vals = NULL;
+ static int nargs = sizeof(args) / sizeof(args[0]);
+ static int nreturn_vals = 0;
+ char mpath[1024];
+ char name[1024];
+ size_t len;
+ int i, j;
+
+ DBG(DBG_proc, "xsane_gimp_query\n");
+
+ snprintf(name, sizeof(name), "%s", xsane.prog_name);
+#ifdef GIMP_CHECK_VERSION
+# if GIMP_CHECK_VERSION(1,1,9)
+ snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_DIALOG);
+# else
+ snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_DIALOG_OLD);
+# endif
+#else
+ snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_DIALOG_OLD);
+#endif
+ gimp_install_procedure(name,
+ XSANE_GIMP_INSTALL_BLURB,
+ XSANE_GIMP_INSTALL_HELP,
+ XSANE_AUTHOR,
+ XSANE_COPYRIGHT,
+ XSANE_DATE,
+ mpath,
+ 0, /* "RGB, GRAY", */
+ GIMP_EXTENSION,
+ nargs, nreturn_vals,
+ args, return_vals);
+
+ sane_init(&xsane.sane_backend_versioncode, (void *) xsane_authorization_callback);
+ if (SANE_VERSION_MAJOR(xsane.sane_backend_versioncode) != SANE_V_MAJOR)
+ {
+ DBG(DBG_error0, "\n\n"
+ "%s %s:\n"
+ " %s\n"
+ " %s %d\n"
+ " %s %d\n"
+ "%s\n\n",
+ xsane.prog_name, ERR_ERROR,
+ ERR_MAJOR_VERSION_NR_CONFLICT,
+ ERR_XSANE_MAJOR_VERSION, SANE_V_MAJOR,
+ ERR_BACKEND_MAJOR_VERSION, SANE_VERSION_MAJOR(xsane.sane_backend_versioncode),
+ ERR_PROGRAM_ABORTED);
+ return;
+ }
+
+ sane_get_devices(&xsane.devlist, SANE_FALSE);
+
+ for (i = 0; xsane.devlist[i]; ++i)
+ {
+ snprintf(name, sizeof(name), "%s-", xsane.prog_name);
+ if (xsane_encode_devname(xsane.devlist[i]->name, sizeof(name) - 6, name + 6) < 0)
+ {
+ continue; /* name too long... */
+ }
+
+#ifdef GIMP_CHECK_VERSION
+# if GIMP_CHECK_VERSION(1,1,9)
+ snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU);
+# else
+ snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_OLD);
+# endif
+#else
+ snprintf(mpath, sizeof(mpath), "%s", XSANE_GIMP_MENU_OLD);
+#endif
+ len = strlen(mpath);
+ for (j = 0; xsane.devlist[i]->name[j]; ++j)
+ {
+ if (xsane.devlist[i]->name[j] == '/')
+ {
+ mpath[len++] = '\'';
+ }
+ else
+ {
+ mpath[len++] = xsane.devlist[i]->name[j];
+ }
+ }
+ mpath[len++] = '\0';
+
+ gimp_install_procedure(name,
+ XSANE_GIMP_INSTALL_BLURB,
+ XSANE_GIMP_INSTALL_HELP,
+ XSANE_AUTHOR,
+ XSANE_COPYRIGHT,
+ XSANE_DATE,
+ mpath,
+ 0, /* "RGB, GRAY", */
+ GIMP_EXTENSION,
+ nargs, nreturn_vals,
+ args, return_vals);
+ }
+
+ sane_exit();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_gimp_run(char *name, int nparams, GimpParam * param, int *nreturn_vals, GimpParam ** return_vals)
+{
+ static GimpParam values[2];
+ GimpRunModeType run_mode;
+ char devname[1024];
+ char *args[2];
+ int nargs;
+
+ DBG(DBG_proc, "xsane_gimp_run\n");
+
+ run_mode = param[0].data.d_int32;
+ xsane.mode = XSANE_GIMP_EXTENSION;
+ xsane.xsane_mode = XSANE_SAVE;
+
+ *nreturn_vals = 1;
+ *return_vals = values;
+
+ values[0].type = GIMP_PDB_STATUS;
+ values[0].data.d_status = GIMP_PDB_CALLING_ERROR;
+
+ nargs = 0;
+ args[nargs++] = "xsane";
+
+ xsane.selected_dev = -1;
+ if (strncmp(name, "xsane-", 6) == 0)
+ {
+ if (xsane_decode_devname(name + 6, sizeof(devname), devname) < 0)
+ {
+ return; /* name too long */
+ }
+ args[nargs++] = devname;
+ }
+
+ switch (run_mode)
+ {
+ case GIMP_RUN_INTERACTIVE:
+ xsane_interface(nargs, args);
+ values[0].data.d_status = GIMP_PDB_SUCCESS;
+ break;
+
+ case GIMP_RUN_NONINTERACTIVE:
+ /* Make sure all the arguments are there! */
+ break;
+
+ case GIMP_RUN_WITH_LAST_VALS:
+ /* Possibly retrieve data */
+ break;
+
+ default:
+ break;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void null_print_func(gchar *msg)
+{
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, int *cancel_save)
+{
+ int remaining;
+ size_t tile_size;
+ GimpImageType image_type = GIMP_GRAY;
+ GimpImageType drawable_type = GIMP_GRAY_IMAGE;
+ gint32 layer_ID;
+ gint32 image_ID;
+ GimpDrawable *drawable;
+ guchar *tile;
+ GimpPixelRgn region;
+ unsigned tile_offset;
+ int i, x, y;
+ Image_info image_info;
+ FILE *imagefile;
+
+ DBG(DBG_info, "xsane_transer_to_gimp\n");
+
+ *cancel_save = 0;
+
+ imagefile = fopen(input_filename, "rb"); /* read binary (b for win32) */
+ if (imagefile == 0)
+ {
+ char buf[256];
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, input_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+
+ return -1;
+ }
+
+ xsane_read_pnm_header(imagefile, &image_info);
+
+ x = 0;
+ y = 0;
+ tile_offset = 0;
+ tile_size = image_info.image_width * gimp_tile_height();
+
+ if (image_info.colors == 3) /* RGB */
+ {
+ tile_size *= 3; /* 24 bits/pixel RGB */
+ image_type = GIMP_RGB;
+ drawable_type = GIMP_RGB_IMAGE;
+ }
+ else if (image_info.colors == 4) /* RGBA */
+ {
+ tile_size *= 4; /* 32 bits/pixel RGBA */
+ image_type = GIMP_RGB;
+ drawable_type = GIMP_RGBA_IMAGE; /* interpret infrared as alpha */
+ }
+ /* colors == 0/1 is predefined */
+
+ image_ID = gimp_image_new(image_info.image_width, image_info.image_height, image_type);
+
+/* the following is supported since gimp-1.1.? */
+#ifdef GIMP_HAVE_RESOLUTION_INFO
+ if (image_info.resolution_x > 0)
+ {
+ gimp_image_set_resolution(image_ID, image_info.resolution_x, image_info.resolution_y);
+ }
+/* gimp_image_set_unit(image_ID, unit?); */
+#endif
+
+ layer_ID = gimp_layer_new(image_ID, "Background", image_info.image_width, image_info.image_height, drawable_type, 100.0, GIMP_NORMAL_MODE);
+ gimp_image_add_layer(image_ID, layer_ID, 0);
+ drawable = gimp_drawable_get(layer_ID);
+ gimp_pixel_rgn_init(&region, drawable, 0, 0, drawable->width, drawable->height, TRUE, FALSE);
+ tile = g_new(guchar, tile_size);
+
+
+ if (image_info.colors == 1) /* gray */
+ {
+ switch (image_info.depth)
+ {
+ case 1: /* 1 bit gray => conversion to 8 bit gray */
+ for (i = 0; i < ( (image_info.image_width + 7) / 8) * image_info.image_height; ++i)
+ {
+ u_char mask;
+ int j;
+
+ mask = fgetc(imagefile);
+ for (j = 7; j >= 0; --j)
+ {
+ u_char gl = (mask & (1 << j)) ? 0x00 : 0xff;
+ tile[tile_offset++] = gl;
+
+ x++;
+
+ if (x >= image_info.image_width)
+ {
+ int tile_height = gimp_tile_height();
+
+ x = 0;
+ y++;
+
+ if (y % tile_height == 0)
+ {
+ gimp_pixel_rgn_set_rect(&region, tile, 0, y - tile_height, image_info.image_width, tile_height);
+ tile_offset = 0;
+ }
+
+ gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ break; /* leave for j loop */
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+ break; /* leave switch depth 1 */
+
+ case 8: /* 8 bit gray */
+ case 16: /* 16 bit gray already has been reduced to 8 bit */
+ for (i = 0; i < image_info.image_width * image_info.image_height; ++i)
+ {
+ tile[tile_offset++] = fgetc(imagefile);
+ x++;
+
+ if (x >= image_info.image_width)
+ {
+ int tile_height = gimp_tile_height();
+
+ x = 0;
+ y++;
+
+ if (y % tile_height == 0)
+ {
+ gimp_pixel_rgn_set_rect(&region, tile, 0, y - tile_height, image_info.image_width, tile_height);
+ tile_offset = 0;
+ }
+
+ gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+ break; /* leave switch depth */
+
+ default: /* bad depth */
+ break; /* default */
+ }
+ }
+ else if (image_info.colors == 3) /* RGB */
+ {
+ switch (image_info.depth)
+ {
+ case 8: /* 8 bit RGB */
+ case 16: /* 16 bit RGB already has been reduced to 8 bit */
+ for (i = 0; i < image_info.image_width * image_info.image_height*3; ++i)
+ {
+ tile[tile_offset++] = fgetc(imagefile);
+ if (tile_offset % 3 == 0)
+ {
+ x++;
+
+ if (x >= image_info.image_width)
+ {
+ int tile_height = gimp_tile_height();
+
+ x = 0;
+ y++;
+
+ if (y % tile_height == 0)
+ {
+ gimp_pixel_rgn_set_rect(&region, tile, 0, y - tile_height, image_info.image_width, tile_height);
+ tile_offset = 0;
+ }
+
+ gtk_progress_bar_update(progress_bar, (float) y / image_info.image_height); /* update progress bar */
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+ break; /* case 8 */
+
+ default: /* bad depth */
+ break; /* default */
+ }
+ }
+#ifdef SUPPORT_RGBA
+ else if (colors == 4) /* RGBA */
+ {
+ int i;
+
+ switch (bits)
+ {
+ case 8: /* 8 bit RGBA */
+ case 16: /* 16 bit RGBA already has been reduced to 8 bit */
+ for (i = 0; i < pixel_width*pixel_height*4; ++i)
+ {
+ tile[tile_offset++] = fgetc(imagefile);
+ if (tile_offset % 4 == 0)
+ {
+ x++;
+
+ if (x >= pixel_width)
+ {
+ int tile_height = gimp_tile_height();
+
+ x = 0;
+ y++;
+
+ if (y % tile_height == 0)
+ {
+ gimp_pixel_rgn_set_rect(&region, tile, 0, y - tile_height, pixel_width, tile_height);
+ tile_offset = 0;
+ }
+
+ gtk_progress_bar_update(progress_bar, (float) y / pixel_height); /* update progress bar */
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+ }
+ }
+
+ if (*cancel_save)
+ {
+ break;
+ }
+ }
+ break;
+
+ default: /* bad depth */
+ break;
+ }
+ }
+#endif
+
+/* scan_done part */
+ if (y > image_info.image_height)
+ {
+ y = image_info.image_height;
+ }
+
+ remaining = y % gimp_tile_height();
+
+ if (remaining)
+ {
+ gimp_pixel_rgn_set_rect(&region, tile, 0, y - remaining, image_info.image_width, remaining);
+ }
+
+ gimp_drawable_flush(drawable);
+ gimp_display_new(image_ID);
+ gimp_drawable_detach(drawable);
+ g_free(tile);
+ tile = 0;
+
+ fclose(imagefile);
+
+ return 0;
+}
+#endif /* HAVE_LIBGIMP_GIMP_H */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+#ifdef XSANE_ACTIVATE_MAIL
+
+/* character base of base64 coding */
+static const char base64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void write_3chars_as_base64(unsigned char c1, unsigned char c2, unsigned char c3, int pads, int fd_socket)
+{
+ char buf[4];
+
+ buf[0] = base64[c1>>2]; /* wirte bits 7-2 of first char */
+ buf[1] = base64[((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4)]; /* write bits 1,0 of first and bits 7-4 of second char */
+
+ if (pads == 2) /* only one byte used */
+ {
+ buf[2] = '='; /* char not used */
+ buf[3] = '='; /* char not used */
+ }
+ else if (pads) /* only two bytes used */
+ {
+ buf[2] = base64[((c2 & 0xF) << 2)]; /* write bits 3-0 of second char */
+ buf[3] = '='; /* char not used */
+ }
+ else
+ {
+ buf[2] = base64[((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)]; /* write bits 3-0 of second and bits 7,6 of third char */
+ buf[3] = base64[c3 & 0x3F]; /* write bits 5-0 of third char as lsb */
+ }
+
+ write(fd_socket, buf, 4);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void write_base64(int fd_socket, FILE *infile)
+{
+ int c1, c2, c3;
+ int pos=0;
+
+ while ((c1 = getc(infile)) != EOF)
+ {
+ c2 = getc(infile);
+ if (c2 == EOF)
+ {
+ write_3chars_as_base64(c1, 0, 0, 2, fd_socket);
+ }
+ else
+ {
+ c3 = getc(infile);
+ if (c3 == EOF)
+ {
+ write_3chars_as_base64(c1, c2, 0, 1, fd_socket);
+ }
+ else
+ {
+ write_3chars_as_base64(c1, c2, c3, 0, fd_socket);
+ }
+ }
+
+ pos += 4;
+ if (pos > 71)
+ {
+ write(fd_socket, "\n", 1);
+
+ pos = 0;
+ }
+ }
+
+ if (pos)
+ {
+ write(fd_socket, "\n", 1);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void write_mail_header(int fd_socket, char *from, char *reply_to, char *to, char *subject, char *boundary, int related)
+{
+ char buf[1024];
+
+ snprintf(buf, sizeof(buf), "From: %s\n", from);
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "Reply-To: %s\n", reply_to);
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "To: %s\n", to);
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "Subject: %s\n", subject);
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "MIME-Version: 1.0\n");
+ write(fd_socket, buf, strlen(buf));
+
+ if (related) /* related means that we need a special link in the html part to display the image */
+ {
+ snprintf(buf, sizeof(buf), "Content-Type: multipart/related;\n");
+ write(fd_socket, buf, strlen(buf));
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), "Content-Type: multipart/mixed;\n");
+ write(fd_socket, buf, strlen(buf));
+ }
+
+ snprintf(buf, sizeof(buf), " boundary=\"%s\"\n\n", boundary);
+ write(fd_socket, buf, strlen(buf));
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void write_mail_footer(int fd_socket, char *boundary)
+{
+ char buf[1024];
+
+ snprintf(buf, sizeof(buf), "--%s--\n", boundary);
+ write(fd_socket, buf, strlen(buf));
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void write_mail_mime_ascii(int fd_socket, char *boundary)
+{
+ char buf[1024];
+
+ snprintf(buf, sizeof(buf), "--%s\n", boundary);
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "Content-Type: text/plain;\n");
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), " charset=\"iso-8859-1\"\n");
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: 8bit\n\n");
+ write(fd_socket, buf, strlen(buf));
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void write_mail_mime_html(int fd_socket, char *boundary)
+{
+ char buf[1024];
+
+ snprintf(buf, sizeof(buf), "--%s\n", boundary);
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "Content-Type: text/html;\n");
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), " charset=\"us-ascii\"\n");
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: 7bit\n\n");
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\">\n");
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "<html>\n");
+ write(fd_socket, buf, strlen(buf));
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void write_mail_attach_image_png(int fd_socket, char *boundary, char *content_id, FILE *infile, char *filename)
+{
+ char buf[1024];
+
+ snprintf(buf, sizeof(buf), "--%s\n", boundary);
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "Content-Type: image/png\n");
+ write(fd_socket, buf, strlen(buf));
+
+ if (content_id)
+ {
+ snprintf(buf, sizeof(buf), "Content-ID: <%s>\n", content_id);
+ write(fd_socket, buf, strlen(buf));
+ }
+
+ snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: base64\n");
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "Content-Disposition: inline;\n");
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), " filename=\"%s\"\n", filename);
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "\n");
+ write(fd_socket, buf, strlen(buf));
+
+ write_base64(fd_socket, infile);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void write_mail_attach_file(int fd_socket, char *boundary, FILE *infile, char *filename)
+{
+ char buf[1024];
+
+ snprintf(buf, sizeof(buf), "--%s\n", boundary);
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "Content-Type: application/octet-stream\n");
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), " name=\"%s\"\n", filename);
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "Content-Transfer-Encoding: base64\n");
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "Content-Disposition: attachment;\n");
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), " filename=\"%s\"\n", filename);
+ write(fd_socket, buf, strlen(buf));
+
+ snprintf(buf, sizeof(buf), "\n");
+ write(fd_socket, buf, strlen(buf));
+
+ write_base64(fd_socket, infile);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* returns fd_socket if sucessfull, < 0 when error occured */
+int open_socket(char *server, int port)
+{
+ int fd_socket;
+ struct sockaddr_in sin;
+ struct hostent *he;
+
+ he = gethostbyname(server);
+ if (!he)
+ {
+ DBG(DBG_error, "open_socket: Could not get hostname of \"%s\"\n", server);
+ return -1;
+ }
+ else
+ {
+ DBG(DBG_info, "open_socket: connecting to \"%s\" = %d.%d.%d.%d\n",
+ he->h_name,
+ (unsigned char) he->h_addr_list[0][0],
+ (unsigned char) he->h_addr_list[0][1],
+ (unsigned char) he->h_addr_list[0][2],
+ (unsigned char) he->h_addr_list[0][3]);
+ }
+
+ if (he->h_addrtype != AF_INET)
+ {
+ DBG(DBG_error, "open_socket: Unknown address family: %d\n", he->h_addrtype);
+ return -1;
+ }
+
+ fd_socket = socket(AF_INET, SOCK_STREAM, 0);
+
+ if (fd_socket < 0)
+ {
+ DBG(DBG_error, "open_socket: Could not create socket: %s\n", strerror(errno));
+ return -1;
+ }
+
+/* setsockopt (dev->ctl, level, TCP_NODELAY, &on, sizeof (on)); */
+
+ sin.sin_port = htons(port);
+ sin.sin_family = AF_INET;
+ memcpy(&sin.sin_addr, he->h_addr_list[0], he->h_length);
+
+ if (connect(fd_socket, &sin, sizeof(sin)))
+ {
+ DBG(DBG_error, "open_socket: Could not connect with port %d of socket: %s\n", ntohs(sin.sin_port), strerror(errno));
+ return -1;
+ }
+
+ DBG(DBG_info, "open_socket: Connected with port %d\n", ntohs(sin.sin_port));
+
+ return fd_socket;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* returns 0 if success */
+/* not only a write routine, also reads data */
+int pop3_login(int fd_socket, char *user, char *passwd)
+{
+ char buf[1024];
+ int len;
+
+ len = read(fd_socket, buf, sizeof(buf));
+ if (len >= 0)
+ {
+ buf[len] = 0;
+ }
+ DBG(DBG_info2, "< %s\n", buf);
+
+ snprintf(buf, sizeof(buf), "USER %s\r\n", user);
+ DBG(DBG_info2, "> USER xxx\n");
+ write(fd_socket, buf, strlen(buf));
+ len = read(fd_socket, buf, sizeof(buf));
+ if (len >= 0)
+ {
+ buf[len] = 0;
+ }
+ DBG(DBG_info2, "< %s\n", buf);
+ if (buf[0] != '+')
+ {
+ return -1;
+ }
+
+ snprintf(buf, sizeof(buf), "PASS %s\r\n", passwd);
+ DBG(DBG_info2, "> PASS xxx\n");
+ write(fd_socket, buf, strlen(buf));
+ len = read(fd_socket, buf, sizeof(buf));
+ if (len >= 0)
+ {
+ buf[len] = 0;
+ }
+ DBG(DBG_info2, "< %s\n", buf);
+ if (buf[0] != '+')
+ {
+ return -1;
+ }
+
+ snprintf(buf, sizeof(buf), "QUIT\r\n");
+ DBG(DBG_info2, "> QUIT\n");
+ write(fd_socket, buf, strlen(buf));
+ len = read(fd_socket, buf, sizeof(buf));
+ if (len >= 0)
+ {
+ buf[len] = 0;
+ }
+ DBG(DBG_info2, "< %s\n", buf);
+
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* not only a write routine, also reads data */
+int write_smtp_header(int fd_socket, char *from, char *to)
+{
+ char buf[1024];
+ int len;
+
+ len = read(fd_socket, buf, sizeof(buf));
+ if (len >= 0)
+ {
+ buf[len] = 0;
+ }
+ DBG(DBG_info2, "< %s\n", buf);
+
+ snprintf(buf, sizeof(buf), "helo localhost\r\n");
+ DBG(DBG_info2, "> %s", buf);
+ write(fd_socket, buf, strlen(buf));
+ len = read(fd_socket, buf, sizeof(buf));
+ if (len >= 0)
+ {
+ buf[len] = 0;
+ }
+ DBG(DBG_info2, "< %s\n", buf);
+
+ snprintf(buf, sizeof(buf), "MAIL FROM: %s\r\n", from);
+ DBG(DBG_info2, "> %s", buf);
+ write(fd_socket, buf, strlen(buf));
+ len = read(fd_socket, buf, sizeof(buf));
+ if (len >= 0)
+ {
+ buf[len] = 0;
+ }
+ DBG(DBG_info2, "< %s\n", buf);
+
+ snprintf(buf, sizeof(buf), "RCPT TO: %s\r\n", to);
+ DBG(DBG_info2, "> %s", buf);
+ write(fd_socket, buf, strlen(buf));
+ len = read(fd_socket, buf, sizeof(buf));
+ if (len >= 0)
+ {
+ buf[len] = 0;
+ }
+ DBG(DBG_info2, "< %s\n", buf);
+
+ snprintf(buf, sizeof(buf), "DATA\r\n");
+ DBG(DBG_info2, "> %s", buf);
+ write(fd_socket, buf, strlen(buf));
+ len = read(fd_socket, buf, sizeof(buf));
+ if (len >= 0)
+ {
+ buf[len] = 0;
+ }
+ DBG(DBG_info2, "< %s\n", buf);
+
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* not only a write routine, also reads data */
+int write_smtp_footer(int fd_socket)
+{
+ char buf[1024];
+ int len;
+
+ snprintf(buf, sizeof(buf), ".\r\n");
+ DBG(DBG_info2, "> %s", buf);
+ write(fd_socket, buf, strlen(buf));
+ len = read(fd_socket, buf, sizeof(buf));
+ if (len >= 0)
+ {
+ buf[len] = 0;
+ }
+ DBG(DBG_info2, "< %s\n", buf);
+
+ snprintf(buf, sizeof(buf), "QUIT\r\n");
+ DBG(DBG_info2, "> %s", buf);
+ write(fd_socket, buf, strlen(buf));
+ len = read(fd_socket, buf, sizeof(buf));
+ if (len >= 0)
+ {
+ buf[len] = 0;
+ }
+ DBG(DBG_info2, "< %s\n", buf);
+
+ return 0;
+}
+
+#endif
+/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/src/xsane-save.h b/src/xsane-save.h
new file mode 100644
index 0000000..ad30dba
--- /dev/null
+++ b/src/xsane-save.h
@@ -0,0 +1,62 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-save.h
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+extern int xsane_create_secure_file(const char *filename);
+extern void xsane_cancel_save();
+extern void xsane_convert_text_to_filename(char **filename);
+extern void xsane_update_counter_in_filename(char **filename, int skip, int step, int min_counter_len);
+extern void xsane_increase_counter_in_filename(char *filename, int skip);
+extern void xsane_read_pnm_header(FILE *infile, Image_info *image_info);
+extern void xsane_write_pnm_header(FILE *outfile, Image_info *image_info);
+extern int xsane_save_grayscale_image_as_lineart(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save);
+extern int xsane_save_scaled_image(FILE *outfile, FILE *imagefile, Image_info *image_info, float x_scale, float y_scale, GtkProgressBar *progress_bar, int *cancel_save);
+extern int xsane_save_despeckle_image(FILE *outfile, FILE *imagefile, Image_info *image_info, int radius, GtkProgressBar *progress_bar, int *cancel_save);
+extern int xsane_save_blur_image(FILE *outfile, FILE *imagefile, Image_info *image_info, int radius, GtkProgressBar *progress_bar, int *cancel_save);
+extern int xsane_save_rotate_image(FILE *outfile, FILE *imagefile, Image_info *image_info, int rotation, GtkProgressBar *progress_bar, int *cancel_save);
+extern void xsane_save_ps(FILE *outfile, FILE *imagefile, Image_info *image_info,
+ int left, int bottom, float width, float height,
+ int paperwidth, int paperheight, int landscape,
+ GtkProgressBar *progress_bar, int *cancel_save);
+extern void xsane_save_jpeg(FILE *outfile, FILE *imagefile, Image_info *image_info, int quality, GtkProgressBar *progress_bar, int *cancel_save);
+extern void xsane_save_tiff(const char *outfilename, FILE *imagefile, Image_info *image_info, int quality, GtkProgressBar *progress_bar, int *cancel_save);
+extern void xsane_save_png(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save);
+extern void xsane_save_png_16(FILE *outfile, FILE *imagefile, Image_info *image_info, int compression, GtkProgressBar *progress_bar, int *cancel_save);
+extern void xsane_save_pnm_16(FILE *outfile, FILE *imagefile, Image_info *image_info, GtkProgressBar *progress_bar, int *cancel_save);
+extern int xsane_save_image_as_lineart(char *input_filename, char *output_filename, GtkProgressBar *progress_bar, int *cancel_save);
+extern int xsane_save_image_as(char *input_filename, char *output_filename, int output_format, GtkProgressBar *progress_bar, int *cancel_save);
+extern void null_print_func(gchar *msg);
+extern int xsane_transfer_to_gimp(char *input_filename, GtkProgressBar *progress_bar, int *cancel_save);
+extern void write_base64(int fd_socket, FILE *infile);
+extern void write_mail_header(int fd_socket, char *from, char *reply_to, char *to, char *subject, char *boundary, int related);
+extern void write_mail_footer(int fd_socket, char *boundary);
+extern void write_mail_mime_ascii(int fd_socket, char *boundary);
+extern void write_mail_mime_html(int fd_socket, char *boundary);
+extern void write_mail_attach_image_png(int fd_socket, char *boundary, char *content_id, FILE *infile, char *filename);
+extern void write_mail_attach_file(int fd_socket, char *boundary, FILE *infile, char *filename);
+extern int open_socket(char *server, int port);
+extern int pop3_login(int fd_socket, char *user, char *passwd);
+extern int write_smtp_header(int fd_socket, char *from, char *to);
+extern int write_smtp_footer(int fd_socket);
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/src/xsane-scan.c b/src/xsane-scan.c
new file mode 100644
index 0000000..a724e3e
--- /dev/null
+++ b/src/xsane-scan.c
@@ -0,0 +1,2179 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-scan.c
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#include "xsane.h"
+#include "xsane-back-gtk.h"
+#include "xsane-front-gtk.h"
+#include "xsane-preferences.h"
+#include "xsane-preview.h"
+#include "xsane-viewer.h"
+#include "xsane-save.h"
+#include "xsane-gamma.h"
+#include "xsane-setup.h"
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+#include <png.h>
+#include <zlib.h>
+#endif
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* forward declarations: */
+
+static int xsane_generate_dummy_filename(int conversion_level);
+static void xsane_read_image_data(gpointer data, gint source, GdkInputCondition cond);
+static RETSIGTYPE xsane_sigpipe_handler(int signal);
+static int xsane_test_multi_scan(void);
+void xsane_scan_done(SANE_Status status);
+void xsane_cancel(void);
+static void xsane_start_scan(void);
+void xsane_scan_dialog(GtkWidget * widget, gpointer call_data);
+static void xsane_create_internal_gamma_tables(void);
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_generate_dummy_filename(int conversion_level)
+/* conversion levels: */
+/* 0 = scan */
+/* 1 = rotate */
+/* 2 = pack */
+{
+ char filename[PATH_MAX];
+ int tempfile = FALSE; /* returns TRUE if file is a temporary file */
+
+ DBG(DBG_proc, "xsane_generate_dummy_filename(conversion_level=%d)\n", conversion_level);
+
+ if (xsane.dummy_filename)
+ {
+ free(xsane.dummy_filename);
+ }
+
+ if ( (conversion_level == 0) && (xsane.preview->rotation) ) /* scan level with rotation */
+ {
+ tempfile = TRUE;
+ }
+
+ if ( (conversion_level == 1) && (xsane.expand_lineart_to_grayscale) ) /* rotation level and expanded lineart*/
+ {
+ tempfile = TRUE;
+ }
+
+ if ( (xsane.xsane_mode == XSANE_COPY) ||
+ (xsane.xsane_mode == XSANE_FAX) ||
+ (xsane.xsane_mode == XSANE_MAIL) ||
+ (xsane.xsane_mode == XSANE_VIEWER) ||
+ ( (xsane.xsane_mode == XSANE_SAVE) && (xsane.xsane_output_format != XSANE_PNM) &&
+ (xsane.xsane_output_format != XSANE_RAW16) && (xsane.xsane_output_format != XSANE_RGBA) ) )
+ {
+ tempfile = TRUE;
+ }
+
+ if (tempfile) /* save to temporary file */
+ {
+ xsane_back_gtk_make_path(sizeof(filename), filename, 0, 0, "conversion-", xsane.dev_name, ".ppm", XSANE_PATH_TMP);
+ xsane.dummy_filename = strdup(filename);
+ DBG(DBG_info, "xsane.dummy_filename = %s\n", xsane.dummy_filename);
+
+ return TRUE;
+ }
+ else /* no conversion following, save directly to the selected filename */
+ {
+ xsane.dummy_filename = strdup(xsane.output_filename);
+ DBG(DBG_info, "xsane.dummy_filename = %s\n", xsane.dummy_filename);
+
+ return FALSE;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_read_image_data(gpointer data, gint source, GdkInputCondition cond)
+{
+ SANE_Handle dev = xsane.dev;
+ SANE_Status status;
+ SANE_Int len;
+ int i, j;
+ char buf[255];
+
+ DBG(DBG_proc, "xsane_read_image_data\n");
+
+ xsane.reading_data = TRUE;
+
+ if ( (xsane.param.depth == 1) || (xsane.param.depth == 8) )
+ {
+ unsigned char buf8[2*32768];
+ unsigned char *buf8ptr;
+
+ DBG(DBG_info, "depth = 1 or 8 bit\n");
+
+ while (1)
+ {
+ if (xsane.cancel_scan)
+ {
+ break; /* leave while loop */
+ }
+
+ status = sane_read(dev, (SANE_Byte *) buf8, sizeof(buf8), &len);
+
+ DBG(DBG_info, "sane_read returned with status %s\n", XSANE_STRSTATUS(status));
+ DBG(DBG_info, "sane_read: len = %d\n", len);
+
+ if (status == SANE_STATUS_EOF)
+ {
+ if (!xsane.param.last_frame)
+ {
+ DBG(DBG_info, "not last frame\n");
+
+ if (xsane.input_tag >= 0)
+ {
+ gdk_input_remove(xsane.input_tag);
+ xsane.input_tag = -1;
+ }
+ xsane_start_scan();
+ break; /* leave while loop */
+ }
+
+ xsane_scan_done(SANE_STATUS_EOF); /* image complete, stop scanning */
+ return;
+ }
+
+ if (status == SANE_STATUS_CANCELLED)
+ {
+ xsane_scan_done(status); /* status = return of sane_read */
+ snprintf(buf, sizeof(buf), "%s.", XSANE_STRSTATUS(status));
+ xsane_back_gtk_warning(buf, TRUE);
+ return;
+ }
+
+ if (status != SANE_STATUS_GOOD)
+ {
+ xsane_scan_done(status); /* status = return of sane_read */
+ snprintf(buf, sizeof(buf), "%s %s.", ERR_DURING_READ, XSANE_STRSTATUS(status));
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+
+ if (!len) /* nothing read */
+ {
+ break; /* out of data for now, leave while loop */
+ }
+
+ xsane.bytes_read += len;
+ xsane_progress_update(xsane.bytes_read / (gfloat) xsane.num_bytes);
+
+ /* it is not allowed to call gtk_main_iteration when we have gdk_input active */
+ /* because xsan_read_image_data will be called several times */
+ if (xsane.input_tag < 0)
+ {
+ while (gtk_events_pending())
+ {
+ DBG(DBG_info, "calling gtk_main_iteration\n");
+ gtk_main_iteration();
+ }
+ }
+
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_GRAY:
+ {
+ int i;
+ u_char val;
+
+ DBG(DBG_info, "grayscale\n");
+
+ if ((!xsane.scanner_gamma_gray) && (xsane.param.depth > 1))
+ {
+ buf8ptr = buf8;
+
+ for (i=0; i < len; ++i) /* do gamma correction by xsane */
+ {
+ *buf8ptr = xsane.gamma_data[(int) (*buf8ptr)];
+ buf8ptr++;
+ }
+
+ fwrite(buf8, 1, len, xsane.out); /* write gamma corrected data */
+ }
+ else if ((xsane.param.depth == 1) && (xsane.expand_lineart_to_grayscale))
+ {
+ unsigned char *expanded_buf8;
+ unsigned char *expanded_buf8ptr;
+
+ /* if we want to do any postprocessing (e.g. rotation) */
+ /* we save lineart images in grayscale mode */
+ /* to speed up transformation and saving the transformed expanded (1bit->1byte) */
+ /* is written in a buffer and saved as full buffer */
+
+ expanded_buf8 = malloc(len * 8); /* one byte for each pixel (bit) */
+ if (!expanded_buf8)
+ {
+ xsane_scan_done(-1); /* -1 = error */
+ snprintf(buf, sizeof(buf), "%s", ERR_NO_MEM);
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+
+ expanded_buf8ptr = expanded_buf8;
+ buf8ptr = buf8;
+
+ for (i = 0; i < len; ++i)
+ {
+ val = *buf8ptr;
+ for (j = 7; j >= 0; --j)
+ {
+ *expanded_buf8ptr = (val & (1 << j)) ? 0x00 : 0xff;
+ expanded_buf8ptr++;
+ }
+ buf8ptr++;
+ }
+ fwrite(expanded_buf8, 1, len*8, xsane.out);
+ free(expanded_buf8);
+ }
+ else /* save direct to the file */
+ {
+ fwrite(buf8, 1, len, xsane.out);
+ }
+ }
+ break; /* SANE_FRAME_GRAY */
+
+ case SANE_FRAME_RGB:
+ {
+ int i;
+
+ DBG(DBG_info, "1 pass color\n");
+
+ if (!xsane.scanner_gamma_color) /* do gamma correction by xsane */
+ {
+ buf8ptr = buf8;
+ for (i=0; i < len; ++i)
+ {
+ if (xsane.pixelcolor == 0)
+ {
+ *buf8ptr = xsane.gamma_data_red[(int) (*buf8ptr)];
+ buf8ptr++;
+ xsane.pixelcolor++;
+ }
+ else if (xsane.pixelcolor == 1)
+ {
+ *buf8ptr = xsane.gamma_data_green[(int) (*buf8ptr)];
+ buf8ptr++;
+ xsane.pixelcolor++;
+ }
+ else
+ {
+ *buf8ptr = xsane.gamma_data_blue[(int) (*buf8ptr)];
+ buf8ptr++;
+ xsane.pixelcolor = 0;
+ }
+ }
+ fwrite(buf8, 1, len, xsane.out); /* write buffer */
+ }
+ else /* gamma correction has been done by scanner */
+ {
+ fwrite(buf8, 1, len, xsane.out); /* write buffer */
+ }
+ }
+ break;
+
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ {
+ DBG(DBG_info, "3 pass color\n");
+
+ if (!xsane.scanner_gamma_color) /* gamma correction by xsane */
+ {
+ char val;
+ SANE_Int *gamma;
+
+ if (xsane.param.format == SANE_FRAME_RED)
+ {
+ gamma = xsane.gamma_data_red;
+ }
+ else if (xsane.param.format == SANE_FRAME_GREEN)
+ {
+ gamma = xsane.gamma_data_green;
+ }
+ else
+ {
+ gamma = xsane.gamma_data_blue;
+ }
+
+ for (i = 0; i < len; ++i)
+ {
+ val = gamma[(int) buf8[i]];
+ fputc(val, xsane.out);
+ fseek(xsane.out, 2, SEEK_CUR);
+ }
+ }
+ else /* gamma correction by scanner */
+ {
+ for (i = 0; i < len; ++i)
+ {
+ fputc(buf8[i], xsane.out);
+ fseek(xsane.out, 2, SEEK_CUR);
+ }
+ }
+ }
+ break;
+
+#ifdef SUPPORT_RGBA
+ case SANE_FRAME_RGBA: /* Scanning including Infrared channel */
+ {
+ int i;
+ char val;
+
+ DBG(DBG_info, "1 pass color+alpha (RGBA)\n");
+
+ if (!xsane.scanner_gamma_color) /* gamma correction by xsane */
+ {
+ buf8ptr = buf8;
+
+ for (i=0; i < len; ++i)
+ {
+ if (xsane.pixelcolor == 0)
+ {
+ *buf8ptr = xsane.gamma_data_red[(int) (*buf8ptr)];
+ buf8ptr++;
+ xsane.pixelcolor++;
+ }
+ else if (xsane.pixelcolor == 1)
+ {
+ *buf8ptr = xsane.gamma_data_green[(int) (*buf8ptr)];
+ buf8ptr++;
+ xsane.pixelcolor++;
+ }
+ else if (xsane.pixelcolor == 2)
+ {
+ *buf8ptr = xsane.gamma_data_blue[(int) (*buf8ptr)];
+ buf8ptr++;
+ xsane.pixelcolor++;
+ }
+ else
+ {
+ /* no gamma table for infrared channel */
+ buf8ptr++;
+ xsane.pixelcolor = 0;
+ }
+ }
+
+ fwrite(buf8, 1, len, xsane.out);
+ }
+ else /* gamma correction has been done by scanner */
+ {
+ fwrite(buf8, 1, len, xsane.out);
+ }
+ }
+ break;
+#endif
+
+ default:
+ xsane_scan_done(-1); /* -1 = error */
+ DBG(DBG_error, "xsane_read_image_data: %s %d\n", ERR_BAD_FRAME_FORMAT, xsane.param.format);
+ return;
+ break;
+ }
+ }
+ }
+ else if ( xsane.param.depth == 16 )
+ {
+ guint16 buf16[32768];
+ guint16 *buf16ptr;
+ unsigned char *buf8 = (unsigned char *) buf16;
+ unsigned char *buf8ptr;
+ char buf[255];
+ char last = 0;
+ int offset = 0;
+
+ DBG(DBG_info, "depth = 16 bit\n");
+
+ while (1)
+ {
+ if (xsane.cancel_scan)
+ {
+ break; /* leave while loop */
+ }
+
+ if (offset) /* if we have had an odd number of bytes */
+ {
+ buf16[0] = last; /* ATTENTION: that is wrong! */
+ status = sane_read(dev, ((SANE_Byte *) buf16) + 1, sizeof(buf16) - 1, &len);
+ if (len)
+ {
+ len++;
+ }
+ }
+ else /* last read we had an even number of bytes */
+ {
+ status = sane_read(dev, (SANE_Byte *) buf16, sizeof(buf16), &len);
+ }
+
+
+ if (!xsane.scanning) /* scan may have been canceled while sane_read was executed */
+ {
+ return; /* ok, the scan has been canceled */
+ }
+
+
+ if (len % 2) /* odd number of bytes */
+ {
+ len--;
+ last = buf16[len];
+ offset = 1;
+ }
+ else /* even number of bytes */
+ {
+ offset = 0;
+ }
+
+ if (status == SANE_STATUS_EOF)
+ {
+ if (!xsane.param.last_frame)
+ {
+ DBG(DBG_info, "not last frame\n");
+ if (xsane.input_tag >= 0)
+ {
+ gdk_input_remove(xsane.input_tag);
+ xsane.input_tag = -1;
+ }
+ xsane_start_scan();
+ break; /* leave while loop */
+ }
+
+ xsane_scan_done(SANE_STATUS_EOF); /* image complete, stop scanning */
+ return;
+ }
+
+ if (status == SANE_STATUS_CANCELLED)
+ {
+ xsane_scan_done(status); /* status = return of sane_read */
+ snprintf(buf, sizeof(buf), "%s.", XSANE_STRSTATUS(status));
+ xsane_back_gtk_warning(buf, TRUE);
+ return;
+ }
+
+ if (status != SANE_STATUS_GOOD)
+ {
+ xsane_scan_done(status); /* status = return of sane_read */
+ snprintf(buf, sizeof(buf), "%s %s.", ERR_DURING_READ, XSANE_STRSTATUS(status));
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+
+ if (!len) /* nothing read */
+ {
+ break; /* out of data for now, leave while loop */
+ }
+
+ xsane.bytes_read += len;
+ xsane_progress_update(xsane.bytes_read / (gfloat) xsane.num_bytes);
+
+ if (xsane.input_tag < 0)
+ {
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+ }
+
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_GRAY:
+ {
+ int i;
+
+ if (xsane.reduce_16bit_to_8bit) /* reduce 16 bit image to 8 bit */
+ {
+ DBG(DBG_info, "reducing 16 bit image to 8 bit\n");
+
+ if (!xsane.scanner_gamma_gray) /* gamma correction by xsane */
+ {
+ buf8ptr = buf8;
+ buf16ptr = buf16;
+
+ for (i=0; i < len/2; ++i)
+ {
+ *buf8ptr = (xsane.gamma_data[(*buf16ptr)]) >> 8; /* reduce to 8 bit */
+ buf8ptr++;
+ buf16ptr++;
+ }
+
+ fwrite(buf8, 1, len/2, xsane.out);
+ }
+ else /* gamma correction by scanner */
+ {
+ buf8ptr = buf8;
+ buf16ptr = buf16;
+
+ for (i=0; i < len/2; ++i)
+ {
+ *buf8ptr = (*buf16ptr) >> 8; /* reduce to 8 bit */
+ buf8ptr++;
+ buf16ptr++;
+ }
+
+ fwrite(buf8, 1, len/2, xsane.out);
+ }
+ }
+ else /* save as 16 bit image */
+ {
+ if (!xsane.scanner_gamma_gray) /* gamma correction by xsane */
+ {
+ buf16ptr = buf16;
+
+ for (i=0; i < len/2; ++i)
+ {
+ *buf16ptr = xsane.gamma_data[(*buf16ptr)];
+ buf16ptr++;
+ }
+ fwrite(buf16, 2, len/2, xsane.out);
+ }
+ else /* gamma correction by scanner */
+ {
+ fwrite(buf16, 2, len/2, xsane.out);
+ }
+ }
+ }
+ break;
+
+ case SANE_FRAME_RGB:
+ {
+ int i;
+
+ if (xsane.reduce_16bit_to_8bit) /* reduce 16 bit image to 8 bit */
+ {
+ DBG(DBG_info, "reducing 16 bit image to 8 bit\n");
+
+ if (!xsane.scanner_gamma_color) /* gamma correction by xsane */
+ {
+ buf8ptr = buf8;
+ buf16ptr = buf16;
+
+ for (i=0; i < len/2; ++i)
+ {
+ if (xsane.pixelcolor == 0)
+ {
+ *buf8ptr = (xsane.gamma_data_red[(*buf16ptr)]) >> 8; /* reduce to 8 bit */
+ buf8ptr++;
+ buf16ptr++;
+ xsane.pixelcolor++;
+ }
+ else if (xsane.pixelcolor == 1)
+ {
+ *buf8ptr = (xsane.gamma_data_green[(*buf16ptr)]) >> 8; /* reduce to 8 bit */
+ buf8ptr++;
+ buf16ptr++;
+ xsane.pixelcolor++;
+ }
+ else
+ {
+ *buf8ptr = (xsane.gamma_data_blue[(*buf16ptr)]) >> 8; /* reduce to 8 bit */
+ buf8ptr++;
+ buf16ptr++;
+ xsane.pixelcolor = 0;
+ }
+ }
+ fwrite(buf8, 1, len/2, xsane.out);
+ }
+ else /* gamma correction by scanner */
+ {
+ buf8ptr = buf8;
+ buf16ptr = buf16;
+
+ for (i=0; i < len/2; ++i)
+ {
+ *buf8ptr = (*buf16ptr) >> 8; /* reduce to 8 bit */
+ buf8ptr++;
+ buf16ptr++;
+ xsane.pixelcolor++;
+ }
+ fwrite(buf8, 1, len/2, xsane.out);
+ }
+ }
+ else /* save as 16 bit image */
+ {
+ if (!xsane.scanner_gamma_color) /* gamma correction by xsane */
+ {
+ buf16ptr = buf16;
+
+ for (i=0; i < len/2; ++i)
+ {
+ if (xsane.pixelcolor == 0)
+ {
+ *buf16ptr = xsane.gamma_data_red[(*buf16ptr)];
+ buf16ptr++;
+ xsane.pixelcolor++;
+ }
+ else if (xsane.pixelcolor == 1)
+ {
+ *buf16ptr = xsane.gamma_data_green[(*buf16ptr)];
+ buf16ptr++;
+ xsane.pixelcolor++;
+ }
+ else
+ {
+ *buf16ptr = xsane.gamma_data_blue[(*buf16ptr)];
+ buf16ptr++;
+ xsane.pixelcolor = 0;
+ }
+ }
+ fwrite(buf16, 2, len/2, xsane.out);
+ }
+ else /* gamma correction by scanner */
+ {
+ fwrite(buf16, 2, len/2, xsane.out);
+ }
+ }
+ }
+ break;
+
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ /* this is incomplete:
+ - missing: gamma correction by xsane
+ - missing: reduction to 8 bit
+ but I do not think there are 3 pass scanners with more
+ than 24 bits/pixel */
+ {
+ for (i = 0; i < len/2; ++i)
+ {
+ fwrite(buf16 + i*2, 2, 1, xsane.out);
+ fseek(xsane.out, 4, SEEK_CUR);
+ }
+ }
+ break;
+
+#ifdef SUPPORT_RGBA
+ case SANE_FRAME_RGBA:
+ {
+ int i;
+ guint16 val;
+
+ if (xsane.reduce_16bit_to_8bit) /* reduce 16 bit image to 8 bit */
+ {
+ DBG(DBG_info, "reducing 16 bit image to 8 bit\n");
+
+ if (!xsane.scanner_gamma_color)
+ {
+ buf8ptr = buf8;
+ buf16ptr = buf16;
+
+ for (i=0; i < len/2; ++i)
+ {
+ if (xsane.pixelcolor == 0)
+ {
+ *buf8ptr = (xsane.gamma_data_red[(*buf16ptr)]) >> 8; /* reduce to 8 bit */
+ buf8ptr++;
+ buf16ptr++;
+ xsane.pixelcolor++;
+ }
+ else if (xsane.pixelcolor == 1)
+ {
+ *buf8ptr = (xsane.gamma_data_green[(*buf16ptr)]) >> 8; /* reduce to 8 bit */
+ buf8ptr++;
+ buf16ptr++;
+ xsane.pixelcolor++;
+ }
+ else if (xsane.pixelcolor == 2)
+ {
+ *buf8ptr = (xsane.gamma_data_blue[(*buf16ptr)]) >> 8; /* reduce to 8 bit */
+ buf8ptr++;
+ buf16ptr++;
+ xsane.pixelcolor++;
+ }
+ else
+ {
+ /* no gamma table for infrared channel */
+ *buf8ptr = (*buf16ptr) >> 8; /* reduce to 8 bit */
+ buf8ptr++;
+ buf16ptr++;
+ xsane.pixelcolor = 0;
+ }
+ }
+
+ fwrite(buf8, 1, len, xsane.out);
+ }
+ else /* gamma correction done by scanner */
+ {
+ buf8ptr = buf8;
+ buf16ptr = buf16;
+
+ for (i=0; i < len/2; ++i)
+ {
+ *buf8ptr = (*buf16ptr) >> 8; /* reduce to 8 bit */
+ buf8ptr++;
+ buf16ptr++;
+ }
+
+ fwrite(buf8, 1, len, xsane.out);
+ }
+ }
+ else /* save as 16 bit image */
+ {
+ if (!xsane.scanner_gamma_color)
+ {
+ buf16ptr = buf16;
+
+ for (i=0; i < len/2; ++i)
+ {
+ if (xsane.pixelcolor == 0)
+ {
+ *buf16ptr = xsane.gamma_data_red[(*buf16ptr)];
+ buf16ptr++;
+ xsane.pixelcolor++;
+ }
+ else if (xsane.pixelcolor == 1)
+ {
+ *buf16ptr = xsane.gamma_data_green[(*buf16ptr)];
+ buf16ptr++;
+ xsane.pixelcolor++;
+ }
+ else if (xsane.pixelcolor == 2)
+ {
+ *buf16ptr = xsane.gamma_data_blue[(*buf16ptr)];
+ buf16ptr++;
+ xsane.pixelcolor++;
+ }
+ else
+ {
+ /* no gamma table for infrared channel */
+ buf16ptr++;
+ xsane.pixelcolor = 0;
+ }
+ }
+
+ fwrite(buf16, 2, len/2, xsane.out);
+ }
+ else /* gamma correction done by scanner */
+ {
+ fwrite(buf16, 2, len/2, xsane.out);
+ }
+ }
+ }
+ break;
+#endif
+
+ default:
+ xsane_scan_done(-1); /* -1 = error */
+ DBG(DBG_error, "xsane_read_image_data: %s %d\n", ERR_BAD_FRAME_FORMAT, xsane.param.format);
+ return;
+ break;
+ }
+ }
+ }
+ else
+ {
+ xsane_scan_done(-1); /* -1 = error */
+ snprintf(buf, sizeof(buf), "%s %d.", ERR_BAD_DEPTH, xsane.param.depth);
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+
+ if (xsane.cancel_scan)
+ {
+ xsane.cancel_scan = FALSE; /* make sure we do not get an infinite loop */
+
+ xsane_read_image_data(0, -1, GDK_INPUT_READ);
+ }
+
+ xsane.reading_data = FALSE;
+
+ return;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static RETSIGTYPE xsane_sigpipe_handler(int signal)
+/* this is to catch a broken pipe while writing to printercommand */
+{
+ DBG(DBG_proc, "xsane_sigpipe_handler\n");
+
+ xsane_cancel_save(&xsane.cancel_save);
+ xsane.broken_pipe = 1;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_test_multi_scan(void)
+{
+ char *set;
+ SANE_Status status;
+ const SANE_Option_Descriptor *opt;
+
+ DBG(DBG_proc, "xsane_test_multi_scan\n");
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scansource);
+ if (opt)
+ {
+ if (SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ if (opt->constraint_type == SANE_CONSTRAINT_STRING_LIST)
+ {
+ set = malloc(opt->size);
+ status = xsane_control_option(xsane.dev, xsane.well_known.scansource, SANE_ACTION_GET_VALUE, set, 0);
+
+ if (status == SANE_STATUS_GOOD)
+ {
+ if (xsane.adf_scansource)
+ {
+ if (!strcmp(set, xsane.adf_scansource))
+ {
+ free(set);
+ return TRUE;
+ }
+ }
+ }
+ free(set);
+ }
+ }
+ }
+
+#if 0 /* this is planned for the next sane-standard */
+ if (xsane.param.bitfield & XSANE_PARAM_STATUS_MORE_IMAGES)
+ {
+ return TRUE;
+ }
+#endif
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_reduce_to_lineart()
+/* returns 1 on abort, 0 on success */
+{
+ char *old_dummy_filename;
+ int abort = 0;
+
+ /* open progressbar */
+ xsane_progress_new(PROGRESS_PACKING_DATA, PROGRESS_TRANSFERING_DATA, (GtkSignalFunc) xsane_cancel_save, &xsane.cancel_save);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ /* on some filesystems it is not allowed to erase an opened file and access the
+ file after that, so we must wait until the file is closed */
+ old_dummy_filename = strdup(xsane.dummy_filename);
+
+ /* temporary file is created with permission 0600 in xsane_generate_dummy_filename */
+ if (!xsane_generate_dummy_filename(2)) /* create filename for packing */
+ {
+ /* no temporary file */
+ if (xsane_create_secure_file(xsane.dummy_filename)) /* remove possibly existing symbolic links for security */
+ {
+ char buf[256];
+
+ snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, xsane.dummy_filename);
+ xsane_back_gtk_error(buf, TRUE);
+ abort = 1; /* abort scanning */
+ }
+ }
+
+ if (!abort)
+ {
+ abort = xsane_save_image_as_lineart(old_dummy_filename, xsane.dummy_filename, xsane.progress_bar, &xsane.cancel_save);
+ }
+
+ if (abort)
+ {
+ xsane_set_sensitivity(TRUE); /* reactivate buttons etc */
+ sane_cancel(xsane.dev); /* stop scanning */
+ xsane_update_histogram(TRUE /* update raw */);
+ xsane_update_param(0);
+ xsane.header_size = 0;
+ return 1;
+ }
+
+ remove(old_dummy_filename); /* remove the unrotated image file */
+ free(old_dummy_filename); /* release memory */
+ xsane_progress_clear();
+
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_scan_done(SANE_Status status)
+{
+ Image_info image_info;
+
+ DBG(DBG_proc, "xsane_scan_done\n");
+
+ if (!xsane.scanning)
+ {
+ return;
+ }
+
+ xsane.reading_data = FALSE;
+ xsane.scanning = FALSE; /* set marker that sane_start is called */
+
+ if (xsane.input_tag >= 0)
+ {
+ gdk_input_remove(xsane.input_tag);
+ xsane.input_tag = -1;
+ }
+
+ xsane_progress_clear(); /* clear progress bar and reset cancel callback */
+
+ while(gtk_events_pending()) /* let gtk remove the progress bar and update everything that needs it */
+ {
+ DBG(DBG_info, "calling gtk_main_iteration\n");
+ gtk_main_iteration();
+ }
+
+
+ /* we have to free the gamma tables if we used software gamma correction */
+
+ if (xsane.gamma_data)
+ {
+ DBG(DBG_info, "freeing gray gamma table\n");
+
+ free(xsane.gamma_data);
+ xsane.gamma_data = 0;
+ }
+
+ if (xsane.gamma_data_red)
+ {
+ DBG(DBG_info, "freeing color gamma tables\n");
+
+ free(xsane.gamma_data_red);
+ free(xsane.gamma_data_green);
+ free(xsane.gamma_data_blue);
+
+ xsane.gamma_data_red = 0;
+ xsane.gamma_data_green = 0;
+ xsane.gamma_data_blue = 0;
+ }
+
+ if (xsane.out) /* close file - this is dummy_file but if there is no conversion it is the wanted file */
+ {
+ int pixel_height = xsane.bytes_read / xsane.param.bytes_per_line;
+
+ /* correct image height if necessary, e.g. when scanning with hand scanner */
+
+ if (xsane.param.lines != pixel_height)
+ {
+ DBG(DBG_info, "correcting image height to %d lines\n", pixel_height);
+ xsane.param.lines = pixel_height;
+
+ image_info.image_width = xsane.param.pixels_per_line;
+ image_info.image_height = pixel_height;
+ image_info.depth = xsane.depth;
+ image_info.colors = xsane.xsane_colors;
+
+ image_info.resolution_x = xsane.resolution_x;
+ image_info.resolution_y = xsane.resolution_y;
+
+ image_info.gamma = xsane.gamma;
+ image_info.gamma_red = xsane.gamma_red;
+ image_info.gamma_green = xsane.gamma_green;
+ image_info.gamma_blue = xsane.gamma_blue;
+
+ image_info.brightness = xsane.brightness;
+ image_info.brightness_red = xsane.brightness_red;
+ image_info.brightness_green = xsane.brightness_green;
+ image_info.brightness_blue = xsane.brightness_blue;
+
+ image_info.contrast = xsane.contrast;
+ image_info.contrast_red = xsane.contrast_red;
+ image_info.contrast_green = xsane.contrast_green;
+ image_info.contrast_blue = xsane.contrast_blue;
+
+ image_info.threshold = xsane.threshold;
+
+
+ xsane_write_pnm_header(xsane.out, &image_info);
+ }
+
+ DBG(DBG_info, "closing output file\n");
+
+ fflush(xsane.out);
+ fclose(xsane.out);
+ xsane.out = 0;
+ }
+
+ if ( (status == SANE_STATUS_GOOD) || (status == SANE_STATUS_EOF) ) /* no error, do conversion etc. */
+ {
+ /* do we have to rotate the image ? */
+ if (xsane.preview->rotation)
+ {
+ char *old_dummy_filename;
+ int abort = 0;
+ FILE *outfile;
+ FILE *infile;
+
+ infile = fopen(xsane.dummy_filename, "rb"); /* read binary (b for win32) */
+ if (infile != 0)
+ {
+ xsane_read_pnm_header(infile, &image_info);
+
+ /* open progressbar */
+ xsane_progress_new(PROGRESS_ROTATING_DATA, PROGRESS_TRANSFERING_DATA, (GtkSignalFunc) xsane_cancel_save, &xsane.cancel_save);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ /* on some filesystems it is not allowed to erase an opened file and access the
+ file after that, so we must wait until the file is closed */
+ old_dummy_filename = strdup(xsane.dummy_filename);
+
+ /* temporary file is created with permission 0600 in xsane_generate_dummy_filename */
+ if (!xsane_generate_dummy_filename(1)) /* create filename for rotation */
+ {
+ /* no temporary file */
+ if (xsane_create_secure_file(xsane.dummy_filename)) /* remove possibly existing symbolic links for security */
+ {
+ char buf[256];
+
+ snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, xsane.dummy_filename);
+ xsane_back_gtk_error(buf, TRUE);
+ abort = 1; /* abort scanning */
+ }
+ }
+
+ if (!abort)
+ {
+ /* rotate image */
+ outfile = fopen(xsane.dummy_filename, "wb"); /* read binary (b for win32) */
+
+ if (outfile)
+ {
+ if (xsane_save_rotate_image(outfile, infile, &image_info, xsane.preview->rotation, xsane.progress_bar, &xsane.cancel_save))
+ {
+ abort = 1;
+ }
+ }
+ else
+ {
+ char buf[256];
+ DBG(DBG_info, "open of file `%s'failed : %s\n", xsane.dummy_filename, strerror(errno));
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.dummy_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ abort = 1;
+ }
+
+ fclose(outfile);
+ }
+
+ fclose(infile);
+ remove(old_dummy_filename); /* remove the unrotated image file */
+
+ free(old_dummy_filename); /* release memory */
+ xsane_progress_clear();
+ }
+ else
+ {
+ char buf[256];
+ DBG(DBG_info, "open of file `%s'failed : %s\n", xsane.dummy_filename, strerror(errno));
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.dummy_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ abort = 1;
+ }
+
+ if (abort)
+ {
+ xsane_set_sensitivity(TRUE); /* reactivate buttons etc */
+ sane_cancel(xsane.dev); /* stop scanning */
+ xsane_update_histogram(TRUE /* update raw */);
+ xsane_update_param(0);
+ xsane.header_size = 0;
+ return;
+ }
+ }
+
+ if (xsane.xsane_mode == XSANE_VIEWER)
+ {
+ xsane_viewer_new(xsane.dummy_filename, xsane.expand_lineart_to_grayscale, 0);
+ xsane.expand_lineart_to_grayscale = 0;
+ }
+
+ /* when we are scanning in lineart mode and we are transforming the image */
+ /* it is saved as grayscale while scanning so we can use the standard transformations */
+ /* but now we have to save the lineart image as packed lineart again */
+ if ((xsane.param.depth == 1) && (xsane.expand_lineart_to_grayscale))
+ {
+ if (xsane_reduce_to_lineart())
+ {
+ return; /* aborted */
+ }
+ }
+
+ if (xsane.xsane_mode == XSANE_SAVE)
+ {
+ if (xsane.print_filenames) /* print created filenames to stdout? */
+ {
+ if (xsane.output_filename[0] != '/') /* relative path */
+ {
+ char pathname[512];
+ getcwd(pathname, sizeof(pathname));
+ printf("XSANE_IMAGE_FILENAME: %s/%s\n", pathname, xsane.output_filename);
+ fflush(stdout);
+ }
+ else /* absolute path */
+ {
+ printf("XSANE_IMAGE_FILENAME: %s\n", xsane.output_filename);
+ fflush(stdout);
+ }
+ }
+
+ if ( ( (xsane.xsane_output_format != XSANE_PNM) && /* these files do not need any transformation */
+ (xsane.xsane_output_format != XSANE_RAW16) &&
+ (xsane.xsane_output_format != XSANE_RGBA) ) ||
+ (xsane.mode == XSANE_GIMP_EXTENSION) )
+ { /* ok, we have to do a transformation */
+
+ /* open progressbar */
+ xsane_progress_new(PROGRESS_CONVERTING_DATA, PROGRESS_TRANSFERING_DATA, (GtkSignalFunc) xsane_cancel_save, &xsane.cancel_save);
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+
+#ifdef HAVE_LIBGIMP_GIMP_H
+ if (xsane.mode == XSANE_GIMP_EXTENSION) /* xsane runs as gimp plugin */
+ {
+ xsane_transfer_to_gimp(xsane.dummy_filename, xsane.progress_bar, &xsane.cancel_save);
+ }
+ else
+#endif /* HAVE_LIBGIMP_GIMP_H */
+ {
+ xsane_save_image_as(xsane.dummy_filename, xsane.output_filename, xsane.xsane_output_format, xsane.progress_bar, &xsane.cancel_save);
+ }
+
+ xsane_progress_clear();
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ remove(xsane.dummy_filename);
+ }
+ }
+ else if (xsane.xsane_mode == XSANE_COPY)
+ {
+ FILE *outfile;
+ FILE *infile;
+ char buf[256];
+
+ DBG(DBG_info, "XSANE_COPY\n");
+
+ xsane_update_int(xsane.copy_number_entry, &xsane.copy_number); /* get number of copies */
+ if (xsane.copy_number < 1)
+ {
+ xsane.copy_number = 1;
+ }
+
+ /* open progressbar */
+ xsane_progress_new(PROGRESS_CONVERTING_DATA, PROGRESS_TRANSFERING_DATA, (GtkSignalFunc) xsane_cancel_save, &xsane.cancel_save);
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ xsane.broken_pipe = 0;
+ infile = fopen(xsane.dummy_filename, "rb"); /* read binary (b for win32) */
+
+ snprintf(buf, sizeof(buf), "%s %s%d", preferences.printer[preferences.printernr]->command,
+ preferences.printer[preferences.printernr]->copy_number_option,
+ xsane.copy_number);
+ outfile = popen(buf, "w");
+/* outfile = popen(preferences.printer[preferences.printernr]->command, "w"); */
+ if ((outfile != 0) && (infile != 0)) /* copy mode, use zoom size */
+ {
+ struct SIGACTION act;
+ float imagewidth, imageheight;
+ int printer_resolution;
+
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_GRAY:
+ if (xsane.depth == 1)
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->lineart_resolution;
+ }
+ else
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->grayscale_resolution;
+ }
+ break; /* switch format == SANE_FRAME_GRAY */
+
+ case SANE_FRAME_RGB:
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ default:
+ printer_resolution = preferences.printer[preferences.printernr]->color_resolution;
+ break; /* switch format == SANE_FRAME_{color} */
+ }
+
+ xsane_read_pnm_header(infile, &image_info);
+
+ imagewidth = image_info.image_width/(float)printer_resolution; /* width in inch */
+ imageheight = image_info.image_height/(float)printer_resolution; /* height in inch */
+
+ memset (&act, 0, sizeof (act)); /* define broken pipe handler */
+ act.sa_handler = xsane_sigpipe_handler;
+ sigaction (SIGPIPE, &act, 0);
+
+
+ if (preferences.psrotate) /* rotate: landscape */
+ {
+ xsane_save_ps(outfile, infile,
+ &image_info,
+ (preferences.printer[preferences.printernr]->bottomoffset +
+ preferences.printer[preferences.printernr]->height) * 36.0/MM_PER_INCH - imagewidth * 36.0, /* left edge */
+ (preferences.printer[preferences.printernr]->leftoffset +
+ preferences.printer[preferences.printernr]->width) * 36.0/MM_PER_INCH - imageheight * 36.0, /* bottom edge */
+ imagewidth, imageheight,
+ (preferences.printer[preferences.printernr]->leftoffset +
+ preferences.printer[preferences.printernr]->width ) * 72.0/MM_PER_INCH, /* paperwidth */
+ (preferences.printer[preferences.printernr]->bottomoffset +
+ preferences.printer[preferences.printernr]->height) * 72.0/MM_PER_INCH, /* paperheight */
+ 1 /* landscape */,
+ xsane.progress_bar,
+ &xsane.cancel_save);
+ }
+ else /* do not rotate: portrait */
+ {
+ xsane_save_ps(outfile, infile,
+ &image_info,
+ (preferences.printer[preferences.printernr]->leftoffset +
+ preferences.printer[preferences.printernr]->width) * 36.0/MM_PER_INCH - imagewidth * 36.0, /* left edge */
+ (preferences.printer[preferences.printernr]->bottomoffset +
+ preferences.printer[preferences.printernr]->height) * 36.0/MM_PER_INCH - imageheight * 36.0, /* bottom edge */
+ imagewidth, imageheight,
+ (preferences.printer[preferences.printernr]->leftoffset +
+ preferences.printer[preferences.printernr]->width ) * 72.0/MM_PER_INCH, /* paperwidth */
+ (preferences.printer[preferences.printernr]->bottomoffset +
+ preferences.printer[preferences.printernr]->height) * 72.0/MM_PER_INCH, /* paperheight */
+ 0 /* portrait */,
+ xsane.progress_bar,
+ &xsane.cancel_save);
+ }
+ }
+ else
+ {
+ char buf[256];
+
+ if (!infile)
+ {
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.output_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ }
+ else if (!outfile)
+ {
+ xsane_back_gtk_error(ERR_FAILED_PRINTER_PIPE, TRUE);
+ }
+ }
+
+ if (xsane.broken_pipe)
+ {
+ snprintf(buf, sizeof(buf), "%s \"%s\"", ERR_FAILED_EXEC_PRINTER_CMD, preferences.printer[preferences.printernr]->command);
+ xsane_back_gtk_error(buf, TRUE);
+ }
+
+ xsane_progress_clear();
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ if (infile)
+ {
+ fclose(infile);
+ remove(xsane.dummy_filename);
+ }
+
+ if (outfile)
+ {
+ pclose(outfile);
+ }
+ }
+ else if (xsane.xsane_mode == XSANE_FAX)
+ {
+ FILE *outfile;
+ FILE *infile;
+
+ /* open progressbar */
+ xsane_progress_new(PROGRESS_CONVERTING_DATA, PROGRESS_TRANSFERING_DATA, (GtkSignalFunc) xsane_cancel_save, &xsane.cancel_save);
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ infile = fopen(xsane.dummy_filename, "rb"); /* read binary (b for win32) */
+ if (infile != 0)
+ {
+ xsane_read_pnm_header(infile, &image_info);
+
+ umask((mode_t) preferences.image_umask); /* define image file permissions */
+ outfile = fopen(xsane.fax_filename, "wb"); /* b = binary mode for win32 */
+ umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
+ if (outfile != 0)
+ {
+ float imagewidth, imageheight;
+
+ imagewidth = image_info.image_width/xsane.resolution_x; /* width in inch */
+ imageheight = image_info.image_height/xsane.resolution_y; /* height in inch */
+
+ DBG(DBG_info, "imagewidth = %f\n", imagewidth);
+ DBG(DBG_info, "imageheight = %f\n", imageheight);
+
+ xsane_save_ps(outfile, infile,
+ &image_info,
+ (preferences.fax_leftoffset + preferences.fax_width) * 36.0/MM_PER_INCH - imagewidth * 36.0,
+ (preferences.fax_bottomoffset + preferences.fax_height) * 36.0/MM_PER_INCH - imageheight * 36.0,
+ imagewidth, imageheight,
+ (preferences.fax_leftoffset + preferences.fax_width ) * 72.0/MM_PER_INCH, /* paperwidth */
+ (preferences.fax_bottomoffset + preferences.fax_height) * 72.0/MM_PER_INCH, /* paperheight */
+ 0 /* portrait */,
+ xsane.progress_bar,
+ &xsane.cancel_save);
+ fclose(outfile);
+ }
+ else
+ {
+ char buf[256];
+
+ DBG(DBG_info, "open of faxfile `%s'failed : %s\n", xsane.fax_filename, strerror(errno));
+
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.fax_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ }
+
+ fclose(infile);
+ remove(xsane.dummy_filename);
+ }
+ else
+ {
+ char buf[256];
+
+ DBG(DBG_info, "open of faxfile `%s'failed : %s\n", xsane.fax_filename, strerror(errno));
+
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.fax_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ }
+ xsane_progress_clear();
+
+ while (gtk_events_pending())
+ {
+ DBG(DBG_info, "calling gtk_main_iteration");
+ gtk_main_iteration();
+ }
+ }
+#ifdef XSANE_ACTIVATE_MAIL
+ else if (xsane.xsane_mode == XSANE_MAIL)
+ {
+ FILE *infile;
+
+ /* open progressbar */
+ xsane_progress_new(PROGRESS_CONVERTING_DATA, PROGRESS_TRANSFERING_DATA, (GtkSignalFunc) xsane_cancel_save, &xsane.cancel_save);
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ infile = fopen(xsane.dummy_filename, "rb"); /* read binary (b for win32) */
+ if (infile != 0)
+ {
+ xsane_read_pnm_header(infile, &image_info);
+
+ xsane_save_image_as(xsane.dummy_filename, xsane.mail_filename, XSANE_PNG, xsane.progress_bar, &xsane.cancel_save);
+
+ fclose(infile);
+ remove(xsane.dummy_filename);
+ }
+ else
+ {
+ char buf[256];
+
+ DBG(DBG_info, "open of mailfile `%s'failed : %s\n", xsane.dummy_filename, strerror(errno));
+
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.dummy_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ }
+ xsane_progress_clear();
+
+ while (gtk_events_pending())
+ {
+ DBG(DBG_info, "calling gtk_main_iteration");
+ gtk_main_iteration();
+ }
+ }
+#endif
+
+ if ( (xsane.xsane_mode == XSANE_SAVE) && (xsane.mode == XSANE_STANDALONE) )
+ {
+ if (!xsane.force_filename) /* user filename selection active */
+ {
+ if (preferences.filename_counter_step) /* increase filename counter ? */
+ {
+ xsane_update_counter_in_filename(&preferences.filename, preferences.skip_existing_numbers,
+ preferences.filename_counter_step, preferences.filename_counter_len);
+ gtk_entry_set_text(GTK_ENTRY(xsane.outputfilename_entry), (char *) preferences.filename); /* update filename in entry */
+ gtk_entry_set_position(GTK_ENTRY(xsane.outputfilename_entry), strlen(preferences.filename)); /* set cursor to right position of filename */
+ }
+ }
+ else /* external filename */
+ {
+ xsane_update_counter_in_filename(&xsane.external_filename, TRUE, 1, 0);
+ }
+ }
+ else if (xsane.xsane_mode == XSANE_FAX)
+ {
+ GtkWidget *list_item;
+ char *page;
+ char *extension;
+
+ page = strdup(strrchr(xsane.fax_filename,'/')+1);
+ extension = strrchr(page, '.');
+ if (extension)
+ {
+ *extension = 0;
+ }
+ list_item = gtk_list_item_new_with_label(page);
+ gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page));
+ gtk_container_add(GTK_CONTAINER(xsane.fax_list), list_item);
+ gtk_widget_show(list_item);
+
+ xsane_update_counter_in_filename(&xsane.fax_filename, TRUE, 1, preferences.filename_counter_len);
+ xsane_fax_project_save();
+ free(page);
+ }
+#ifdef XSANE_ACTIVATE_MAIL
+ else if (xsane.xsane_mode == XSANE_MAIL)
+ {
+ GtkWidget *list_item;
+ char *image;
+ char *extension;
+
+ image = strdup(strrchr(xsane.mail_filename,'/')+1);
+ extension = strrchr(image, '.');
+ if (extension)
+ {
+ *extension = 0;
+ }
+ list_item = gtk_list_item_new_with_label(image);
+ gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(image));
+ gtk_container_add(GTK_CONTAINER(xsane.mail_list), list_item);
+ gtk_widget_show(list_item);
+
+ xsane_update_counter_in_filename(&xsane.mail_filename, TRUE, 1, preferences.filename_counter_len);
+ xsane_mail_project_save();
+ free(image);
+ }
+#endif
+ }
+ else /* an error occured, remove the dummy_file */
+ {
+ if (xsane.dummy_filename) /* remove corrupt file */
+ {
+ remove(xsane.dummy_filename);
+ }
+ }
+
+ free(xsane.dummy_filename); /* no dummy_filename, needed if an error occurs */
+ xsane.dummy_filename = 0;
+
+ if (xsane.output_filename)
+ {
+ free(xsane.output_filename);
+ xsane.output_filename = 0;
+ }
+
+ xsane.header_size = 0;
+
+ if ( ( (status == SANE_STATUS_GOOD) || (status == SANE_STATUS_EOF) ) && (xsane_test_multi_scan()) )
+ {
+ /* multi scan (eg ADF): scan again */
+ /* stopped when: */
+ /* a) xsane_test_multi_scan returns false */
+ /* b) sane_start returns SANE_STATUS_NO_DOCS */
+ /* c) an error occurs */
+
+ xsane.adf_page_counter += 1;
+ gtk_signal_emit_by_name(xsane.start_button, "clicked"); /* press START button */
+ }
+ else /* last scan: update histogram */
+ {
+ xsane_set_sensitivity(TRUE); /* reactivate buttons etc */
+ sane_cancel(xsane.dev); /* stop scanning */
+ xsane_update_histogram(TRUE /* update raw */);
+ xsane_update_param(0);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_cancel(void)
+{
+ DBG(DBG_proc, "xsane_cancel\n");
+
+ if (!xsane.scanning)
+ {
+ return;
+ }
+
+ sane_cancel(xsane.dev);
+
+ /* we have to make sure that xsane does detect that the scan has been cancled */
+ /* but the select_fd does not make sure that preview_read_image_data is called */
+ /* when the select_fd is closed by the backend, so we have to make sure that */
+ /* preview_read_image_data is called */
+
+ if (xsane.reading_data) /* we are still reading data, set flag for cancel */
+ {
+ xsane.cancel_scan = TRUE;
+ }
+ else /* we are not reading image data, so we have to call it now */
+ {
+ xsane_read_image_data(0, -1, GDK_INPUT_READ);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* xsane_start_scan is called 3 times in 3 pass scanning mode */
+static void xsane_start_scan(void)
+{
+ SANE_Status status;
+ SANE_Handle dev = xsane.dev;
+ const char *frame_type = 0;
+ char buf[256];
+ int fd;
+ Image_info image_info;
+
+ DBG(DBG_proc, "xsane_start_scan\n");
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ status = sane_start(dev);
+ DBG(DBG_info, "sane_start returned with status %s\n", XSANE_STRSTATUS(status));
+
+ if ((status == SANE_STATUS_NO_DOCS) && (xsane.adf_page_counter>0)) /* ADF out of docs but not first page */
+ {
+ xsane_scan_done(status); /* ok, stop multi image scan */
+ snprintf(buf, sizeof(buf), "%s %d", TEXT_ADF_PAGES_SCANNED, xsane.adf_page_counter);
+ xsane_back_gtk_info(buf, FALSE);
+ xsane.adf_page_counter = 0;
+ return;
+ }
+ else if (status != SANE_STATUS_GOOD) /* error */
+ {
+ xsane_scan_done(status);
+ snprintf(buf, sizeof(buf), "%s %s", ERR_FAILED_START_SCANNER, XSANE_STRSTATUS(status));
+ xsane_back_gtk_error(buf, TRUE);
+ xsane.adf_page_counter = 0;
+ return;
+ }
+
+ status = sane_get_parameters(dev, &xsane.param);
+ if (status != SANE_STATUS_GOOD)
+ {
+ xsane_scan_done(status);
+ snprintf(buf, sizeof(buf), "%s %s", ERR_FAILED_GET_PARAMS, XSANE_STRSTATUS(status));
+ xsane_back_gtk_error(buf, TRUE);
+ xsane.adf_page_counter = 0;
+ return;
+ }
+
+ xsane.depth = xsane.param.depth; /* bit depth for saving, can be changed: 1->8, 16->8 */
+
+ xsane.num_bytes = xsane.param.lines * xsane.param.bytes_per_line;
+ xsane.bytes_read = 0;
+ xsane.expand_lineart_to_grayscale = 0;
+
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_RGB: frame_type = "RGB"; break;
+ case SANE_FRAME_RED: frame_type = "red"; break;
+ case SANE_FRAME_GREEN: frame_type = "green"; break;
+ case SANE_FRAME_BLUE: frame_type = "blue"; break;
+ case SANE_FRAME_GRAY: frame_type = "gray"; break;
+#ifdef SUPPORT_RGBA
+ case SANE_FRAME_RGBA: frame_type = "RGBA"; break;
+#endif
+ default: frame_type = "unknown"; break;
+ }
+
+ if ( (xsane.param.depth == 1) && (xsane.preview->rotation) )
+ {
+ xsane.expand_lineart_to_grayscale = 1; /* We want to do transformation with lineart scan, so we save it as grayscale */
+ }
+
+ if ((xsane.xsane_mode == XSANE_VIEWER) && (xsane.param.depth == 1))
+ {
+ xsane.expand_lineart_to_grayscale = 1; /* we are using the viewer, lineart is not supported, so create grayscale */
+ }
+
+ if (!xsane.header_size) /* first pass of multi pass scan or single pass scan */
+ {
+ xsane_create_internal_gamma_tables(); /* create gamma tables that are not supported by scanner */
+
+ /* temporary file is created with permission 0600 in xsane_generate_dummy_filename */
+ if (!xsane_generate_dummy_filename(0)) /* create filename the scanned data is saved to */
+ {
+ /* no temporary file */
+ if (xsane_create_secure_file(xsane.dummy_filename)) /* remove possibly existing symbolic links for security */
+ {
+ snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, xsane.dummy_filename);
+ xsane_scan_done(-1); /* -1 = error */
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+ }
+
+ xsane.out = fopen(xsane.dummy_filename, "wb"); /* b = binary mode for win32 */
+
+ if (!xsane.out) /* error while opening the dummy_file for writing */
+ {
+ xsane_scan_done(-1); /* -1 = error */
+ DBG(DBG_info, "open of file `%s'failed : %s\n", xsane.dummy_filename, strerror(errno));
+ snprintf(buf, sizeof(buf), "%s `%s': %s", ERR_OPEN_FAILED, xsane.dummy_filename, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+
+ if ( (xsane.expand_lineart_to_grayscale) || (xsane.reduce_16bit_to_8bit) )
+ {
+ xsane.depth = 8;
+ }
+
+ image_info.image_width = xsane.param.pixels_per_line;
+ image_info.image_height = xsane.param.lines;
+ image_info.depth = xsane.depth;
+ image_info.colors = xsane.xsane_colors;
+
+ image_info.resolution_x = xsane.resolution_x;
+ image_info.resolution_y = xsane.resolution_y;
+
+ image_info.gamma = xsane.gamma;
+ image_info.gamma_red = xsane.gamma_red;
+ image_info.gamma_green = xsane.gamma_green;
+ image_info.gamma_blue = xsane.gamma_blue;
+
+ image_info.brightness = xsane.brightness;
+ image_info.brightness_red = xsane.brightness_red;
+ image_info.brightness_green = xsane.brightness_green;
+ image_info.brightness_blue = xsane.brightness_blue;
+
+ image_info.contrast = xsane.contrast;
+ image_info.contrast_red = xsane.contrast_red;
+ image_info.contrast_green = xsane.contrast_green;
+ image_info.contrast_blue = xsane.contrast_blue;
+
+ image_info.threshold = xsane.threshold;
+
+ xsane_write_pnm_header(xsane.out, &image_info);
+
+ fflush(xsane.out);
+ xsane.header_size = ftell(xsane.out); /* store header size for 3 pass scan */
+ }
+
+ if (xsane.param.format >= SANE_FRAME_RED && xsane.param.format <= SANE_FRAME_BLUE)
+ {
+/* correct this using read_pnm_header */
+ fseek(xsane.out, xsane.header_size + xsane.param.format - SANE_FRAME_RED, SEEK_SET);
+ }
+
+ xsane.pixelcolor = 0;
+
+ snprintf(buf, sizeof(buf), PROGRESS_RECEIVING_FRAME_DATA, _(frame_type));
+ xsane_progress_new(buf, PROGRESS_SCANNING, (GtkSignalFunc) xsane_cancel, NULL);
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ xsane.input_tag = -1;
+
+#ifndef BUGGY_GDK_INPUT_EXCEPTION
+ /* for unix */
+ if ((sane_set_io_mode(dev, SANE_TRUE) == SANE_STATUS_GOOD) && (sane_get_select_fd(dev, &fd) == SANE_STATUS_GOOD))
+ {
+ DBG(DBG_info, "gdk_input_add\n");
+ xsane.input_tag = gdk_input_add(fd, GDK_INPUT_READ | GDK_INPUT_EXCEPTION, xsane_read_image_data, 0);
+ }
+ else
+#else
+ /* for win32 */
+ sane_set_io_mode(dev, SANE_FALSE);
+#endif
+ {
+ xsane_read_image_data(0, -1, GDK_INPUT_READ);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* Invoked when the scan button is pressed */
+/* or by scan_done if automatic document feeder is selected */
+void xsane_scan_dialog(GtkWidget * widget, gpointer call_data)
+{
+ char buf[256];
+ const SANE_Option_Descriptor *opt;
+
+ DBG(DBG_proc, "xsane_scan_dialog\n");
+
+ xsane.reduce_16bit_to_8bit = preferences.reduce_16bit_to_8bit; /* reduce 16 bit image to 8 bit ? */
+
+ sane_get_parameters(xsane.dev, &xsane.param); /* update xsane.param */
+
+ if ( (xsane.mode == XSANE_STANDALONE) && (xsane.xsane_mode == XSANE_SAVE) )
+ {
+ /* correct length of filename counter if it is shorter than minimum length */
+ if (!xsane.force_filename)
+ {
+ xsane_update_counter_in_filename(&preferences.filename, FALSE, 0, preferences.filename_counter_len);
+ gtk_entry_set_text(GTK_ENTRY(xsane.outputfilename_entry), preferences.filename);
+ }
+ }
+
+ xsane_define_output_filename(); /* make xsane.output_filename up to date */
+
+ /* test if file exists, may be we have to output an overwrite warning */
+ if (xsane.mode == XSANE_STANDALONE) /* We are running in standalone mode */
+ {
+ char *extension;
+
+ if ( (xsane.xsane_mode == XSANE_SAVE) && (preferences.overwrite_warning) ) /* test if filename already used */
+ {
+ FILE *testfile;
+
+ testfile = fopen(xsane.output_filename, "rb"); /* read binary (b for win32) */
+ if (testfile) /* filename used: skip */
+ {
+ char buf[256];
+
+ fclose(testfile);
+ snprintf(buf, sizeof(buf), WARN_FILE_EXISTS, xsane.output_filename);
+ if (xsane_back_gtk_decision(ERR_HEADER_WARNING, (gchar **) warning_xpm, buf, BUTTON_OVERWRITE, BUTTON_CANCEL, TRUE /* wait */) == FALSE)
+ {
+ return;
+ }
+ }
+ }
+
+ xsane.xsane_output_format = xsane_identify_output_format(xsane.output_filename, &extension);
+
+ if (xsane.xsane_mode == XSANE_SAVE)
+ {
+ if (xsane.xsane_output_format == XSANE_UNKNOWN)
+ {
+ if (extension)
+ {
+ snprintf(buf, sizeof(buf), ERR_UNSUPPORTED_OUTPUT_FORMAT, xsane.param.depth, extension);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), "%s", ERR_NO_OUTPUT_FORMAT);
+ }
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+ else if ( ( ( (xsane.xsane_output_format == XSANE_JPEG) && xsane.param.depth == 16) ||
+ ( (xsane.xsane_output_format == XSANE_PS) && xsane.param.depth == 16) ) &&
+ ( !xsane.reduce_16bit_to_8bit) )
+
+ {
+ snprintf(buf, sizeof(buf), TEXT_REDUCE_16BIT_TO_8BIT);
+ if (xsane_back_gtk_decision(ERR_HEADER_INFO, (gchar **) info_xpm, buf, BUTTON_REDUCE, BUTTON_CANCEL, TRUE /* wait */) == FALSE)
+ {
+ return;
+ }
+ xsane.reduce_16bit_to_8bit = TRUE;
+ }
+
+#ifdef SUPPORT_RGBA
+ else if ((xsane.xsane_output_format == XSANE_RGBA) && (xsane.param.format != SANE_FRAME_RGBA))
+ {
+ snprintf(buf, sizeof(buf), "No RGBA data format !!!"); /* user selected output format RGBA, scanner uses other format */
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+#endif
+ }
+#ifdef SUPPORT_RGBA
+ else if (xsane.param.format == SANE_FRAME_RGBA) /* no scanmode but format=rgba */
+ {
+ snprintf(buf, sizeof(buf), "Special format RGBA only supported in scan mode !!!");
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+#endif
+
+#ifdef SUPPORT_RGBA
+ if (xsane.param.format == SANE_FRAME_RGBA)
+ {
+ if ( (xsane.xsane_output_format != XSANE_RGBA) && (xsane.xsane_output_format != XSANE_PNG) )
+ {
+ snprintf(buf, sizeof(buf), "Image data of type SANE_FRAME_RGBA\ncan only be saved in rgba or png format");
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+ }
+#endif
+
+ if (xsane.xsane_mode == XSANE_FAX)
+ {
+ mkdir(preferences.fax_project, 7*64 + 0*8 + 0);
+ }
+
+ if (extension)
+ {
+ free(extension);
+ }
+ }
+#ifdef HAVE_LIBGIMP_GIMP_H
+ else /* We are running in gimp mode */
+ {
+ if ((xsane.param.depth != 1) && (xsane.param.depth != 8)) /* not support bit depth ? */
+ {
+ if (!xsane.reduce_16bit_to_8bit) /* ask if reduce 16 to 8 bit */
+ {
+ if (xsane.param.depth == 16)
+ {
+ snprintf(buf, sizeof(buf), TEXT_GIMP_REDUCE_16BIT_TO_8BIT);
+ if (xsane_back_gtk_decision(ERR_HEADER_INFO, (gchar **) info_xpm, buf, BUTTON_REDUCE, BUTTON_CANCEL, TRUE /* wait */) == FALSE)
+ {
+ return;
+ }
+ xsane.reduce_16bit_to_8bit = TRUE;
+ }
+ else /* unsupported bit depth */
+ {
+ snprintf(buf, sizeof(buf), ERR_GIMP_BAD_DEPTH, xsane.param.depth);
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+ }
+ }
+ }
+#endif
+
+ if (xsane.dummy_filename) /* no dummy filename defined - necessary if an error occurs */
+ {
+ free(xsane.dummy_filename);
+ xsane.dummy_filename = 0;
+ }
+
+ /* create scanner gamma tables, xsane internal gamma tables are created after sane_start */
+ if ( (xsane.xsane_colors > 1) && /* color scan */
+ xsane.scanner_gamma_color ) /* gamma table for red, green and blue available */
+ {
+ double gamma_red, gamma_green, gamma_blue;
+ int gamma_red_size, gamma_green_size, gamma_blue_size;
+ int gamma_red_max, gamma_green_max, gamma_blue_max;
+
+ /* ok, scanner color gamma function is supported, so we do all conversions about that */
+ /* we do not need any gamma tables while scanning, so we can free them after sending */
+ /* the data to the scanner */
+
+ /* if also gray gamma function is supported, set this to 1.0 to get the right colors */
+ if (xsane.scanner_gamma_gray)
+ {
+ int gamma_gray_size;
+ int gamma_gray_max;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector);
+ gamma_gray_size = opt->size / sizeof(opt->type);
+ gamma_gray_max = opt->constraint.range->max;
+
+ xsane.gamma_data = malloc(gamma_gray_size * sizeof(SANE_Int));
+ xsane_create_gamma_curve(xsane.gamma_data, 0, 1.0, 0.0, 0.0, 0.0, 100.0, 1.0, gamma_gray_size, gamma_gray_max);
+ xsane_back_gtk_update_vector(xsane.well_known.gamma_vector, xsane.gamma_data);
+ free(xsane.gamma_data);
+ xsane.gamma_data = 0;
+ }
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector_r);
+ gamma_red_size = opt->size / sizeof(opt->type);
+ gamma_red_max = opt->constraint.range->max;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector_g);
+ gamma_green_size = opt->size / sizeof(opt->type);
+ gamma_green_max = opt->constraint.range->max;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector_b);
+ gamma_blue_size = opt->size / sizeof(opt->type);
+ gamma_blue_max = opt->constraint.range->max;
+
+ xsane.gamma_data_red = malloc(gamma_red_size * sizeof(SANE_Int));
+ xsane.gamma_data_green = malloc(gamma_green_size * sizeof(SANE_Int));
+ xsane.gamma_data_blue = malloc(gamma_blue_size * sizeof(SANE_Int));
+
+ if (xsane.xsane_mode == XSANE_COPY)
+ {
+ gamma_red = xsane.gamma * xsane.gamma_red * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_red;
+ gamma_green = xsane.gamma * xsane.gamma_green * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_green;
+ gamma_blue = xsane.gamma * xsane.gamma_blue * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_blue;
+ }
+ else
+ {
+ gamma_red = xsane.gamma * xsane.gamma_red;
+ gamma_green = xsane.gamma * xsane.gamma_green;
+ gamma_blue = xsane.gamma * xsane.gamma_blue;
+ }
+
+ xsane_create_gamma_curve(xsane.gamma_data_red, xsane.negative != xsane.medium_negative,
+ gamma_red,
+ xsane.brightness + xsane.brightness_red,
+ xsane.contrast + xsane.contrast_red,
+ xsane.medium_shadow_red, xsane.medium_highlight_red, xsane.medium_gamma_red,
+ gamma_red_size, gamma_red_max);
+
+ xsane_create_gamma_curve(xsane.gamma_data_green, xsane.negative != xsane.medium_negative,
+ gamma_green,
+ xsane.brightness + xsane.brightness_green,
+ xsane.contrast + xsane.contrast_green,
+ xsane.medium_shadow_green, xsane.medium_highlight_green, xsane.medium_gamma_green,
+ gamma_green_size, gamma_green_max);
+
+ xsane_create_gamma_curve(xsane.gamma_data_blue, xsane.negative != xsane.medium_negative,
+ gamma_blue,
+ xsane.brightness + xsane.brightness_blue,
+ xsane.contrast + xsane.contrast_blue,
+ xsane.medium_shadow_blue, xsane.medium_highlight_blue, xsane.medium_gamma_blue,
+ gamma_blue_size, gamma_blue_max);
+
+ xsane_back_gtk_update_vector(xsane.well_known.gamma_vector_r, xsane.gamma_data_red);
+ xsane_back_gtk_update_vector(xsane.well_known.gamma_vector_g, xsane.gamma_data_green);
+ xsane_back_gtk_update_vector(xsane.well_known.gamma_vector_b, xsane.gamma_data_blue);
+
+ free(xsane.gamma_data_red);
+ free(xsane.gamma_data_green);
+ free(xsane.gamma_data_blue);
+
+ xsane.gamma_data_red = 0;
+ xsane.gamma_data_green = 0;
+ xsane.gamma_data_blue = 0;
+ }
+ else if (xsane.scanner_gamma_gray) /* only scanner gray gamma function available or grayscale scan */
+ {
+ /* ok, the scanner only supports gray gamma function */
+ /* if we are doing a grayscale scan everyting is ok, */
+ /* for a color scan the software has to do the gamma correction set by the component slider */
+
+ double gamma;
+ int gamma_gray_size;
+ int gamma_gray_max;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector);
+ gamma_gray_size = opt->size / sizeof(opt->type);
+ gamma_gray_max = opt->constraint.range->max;
+
+ if (xsane.xsane_mode == XSANE_COPY)
+ {
+ gamma = xsane.gamma * preferences.printer[preferences.printernr]->gamma;
+ }
+ else
+ {
+ gamma = xsane.gamma;
+ }
+
+ xsane.gamma_data = malloc(gamma_gray_size * sizeof(SANE_Int));
+
+ if (xsane.xsane_colors > 1) /* color scan */
+ {
+ xsane_create_gamma_curve(xsane.gamma_data, xsane.negative,
+ gamma, xsane.brightness, xsane.contrast,
+ 0.0, 100.0, 1.0, /* medium correction is done by xsane internal gamma correction */
+ gamma_gray_size, gamma_gray_max);
+ }
+ else
+ {
+ xsane_create_gamma_curve(xsane.gamma_data, xsane.negative != xsane.medium_negative,
+ gamma, xsane.brightness, xsane.contrast,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ gamma_gray_size, gamma_gray_max);
+ }
+
+ xsane_back_gtk_update_vector(xsane.well_known.gamma_vector, xsane.gamma_data);
+ free(xsane.gamma_data);
+ xsane.gamma_data = 0;
+ }
+
+ xsane_clear_histogram(&xsane.histogram_raw);
+ xsane_clear_histogram(&xsane.histogram_enh);
+ xsane_set_sensitivity(FALSE);
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ xsane.reading_data = FALSE;
+
+ xsane.scanning = TRUE; /* set marker that scan has been initiated */
+
+ xsane_start_scan();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_create_internal_gamma_tables(void)
+{
+ int size, maxval;
+
+ size = (int) pow(2, xsane.param.depth);
+ maxval = size-1;
+
+ if (xsane.xsane_colors > 1) /* color scan */
+ {
+ if ( (!xsane.scanner_gamma_color) && (xsane.scanner_gamma_gray) )
+ {
+ /* we have to create color gamma table for software conversion */
+ /* but we only have to use color slider values, because gray slider value */
+ /* is used by scanner gray gamma */
+
+ double gamma_red, gamma_green, gamma_blue;
+
+ DBG(DBG_info, "creating xsane internal color gamma tables with size %d\n", size);
+
+ xsane.gamma_data_red = malloc(size * sizeof(SANE_Int));
+ xsane.gamma_data_green = malloc(size * sizeof(SANE_Int));
+ xsane.gamma_data_blue = malloc(size * sizeof(SANE_Int));
+
+ if (xsane.xsane_mode == XSANE_COPY)
+ {
+ gamma_red = xsane.gamma_red * preferences.printer[preferences.printernr]->gamma_red;
+ gamma_green = xsane.gamma_green * preferences.printer[preferences.printernr]->gamma_green;
+ gamma_blue = xsane.gamma_blue * preferences.printer[preferences.printernr]->gamma_blue;
+ }
+ else
+ {
+ gamma_red = xsane.gamma_red;
+ gamma_green = xsane.gamma_green;
+ gamma_blue = xsane.gamma_blue;
+ }
+
+ xsane_create_gamma_curve(xsane.gamma_data_red, xsane.medium_negative,
+ gamma_red, xsane.brightness_red, xsane.contrast_red,
+ xsane.medium_shadow_red, xsane.medium_highlight_red, xsane.medium_gamma_red,
+ size, maxval);
+
+ xsane_create_gamma_curve(xsane.gamma_data_green, xsane.medium_negative,
+ gamma_green, xsane.brightness_green, xsane.contrast_green,
+ xsane.medium_shadow_green, xsane.medium_highlight_green, xsane.medium_gamma_green,
+ size, maxval);
+
+ xsane_create_gamma_curve(xsane.gamma_data_blue, xsane.medium_negative,
+ gamma_blue, xsane.brightness_blue, xsane.contrast_blue,
+ xsane.medium_shadow_blue, xsane.medium_highlight_blue, xsane.medium_gamma_blue,
+ size, maxval);
+
+ /* gamma tables are freed after scan */
+ }
+ else if ( (!xsane.scanner_gamma_color) && (!xsane.scanner_gamma_gray) ) /* no scanner gamma table */
+ {
+ double gamma_red, gamma_green, gamma_blue;
+ /* ok, we have to combin gray and color slider values */
+
+ DBG(DBG_info, "creating xsane internal complete gamma tables with size %d\n", size);
+
+ xsane.gamma_data_red = malloc(size * sizeof(SANE_Int));
+ xsane.gamma_data_green = malloc(size * sizeof(SANE_Int));
+ xsane.gamma_data_blue = malloc(size * sizeof(SANE_Int));
+
+ if (xsane.xsane_mode == XSANE_COPY)
+ {
+ gamma_red = xsane.gamma * xsane.gamma_red * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_red;
+ gamma_green = xsane.gamma * xsane.gamma_green * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_green;
+ gamma_blue = xsane.gamma * xsane.gamma_blue * preferences.printer[preferences.printernr]->gamma * preferences.printer[preferences.printernr]->gamma_blue;
+ }
+ else
+ {
+ gamma_red = xsane.gamma * xsane.gamma_red;
+ gamma_green = xsane.gamma * xsane.gamma_green;
+ gamma_blue = xsane.gamma * xsane.gamma_blue;
+ }
+
+ xsane_create_gamma_curve(xsane.gamma_data_red, xsane.negative != xsane.medium_negative,
+ gamma_red,
+ xsane.brightness + xsane.brightness_red,
+ xsane.contrast + xsane.contrast_red,
+ xsane.medium_shadow_red, xsane.medium_highlight_red, xsane.medium_gamma_red,
+ size, maxval);
+
+ xsane_create_gamma_curve(xsane.gamma_data_green, xsane.negative != xsane.medium_negative,
+ gamma_green,
+ xsane.brightness + xsane.brightness_green,
+ xsane.contrast + xsane.contrast_green,
+ xsane.medium_shadow_green, xsane.medium_highlight_green, xsane.medium_gamma_green,
+ size, maxval);
+
+ xsane_create_gamma_curve(xsane.gamma_data_blue, xsane.negative != xsane.medium_negative,
+ gamma_blue,
+ xsane.brightness + xsane.brightness_blue,
+ xsane.contrast + xsane.contrast_blue,
+ xsane.medium_shadow_blue, xsane.medium_highlight_blue, xsane.medium_gamma_blue,
+ size, maxval);
+
+ /* gamma tables are freed after scan */
+ }
+ }
+ else /* grayscale scan */
+ {
+ if (!xsane.scanner_gamma_gray) /* no gray scanner gamma table */
+ {
+ double gamma;
+
+ DBG(DBG_info, "creating xsane internal gray gamma table with size %d\n", size);
+
+ if (xsane.xsane_mode == XSANE_COPY)
+ {
+ gamma = xsane.gamma * preferences.printer[preferences.printernr]->gamma;
+ }
+ else
+ {
+ gamma = xsane.gamma;
+ }
+
+ xsane.gamma_data = malloc(size * sizeof(SANE_Int));
+ xsane_create_gamma_curve(xsane.gamma_data, xsane.negative != xsane.medium_negative,
+ gamma, xsane.brightness, xsane.contrast,
+ xsane.medium_shadow_gray, xsane.medium_highlight_gray, xsane.medium_gamma_gray,
+ size, maxval);
+
+ /* gamma table is freed after scan */
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
diff --git a/frontend/xsane-scan.h b/src/xsane-scan.h
index 75c5ff8..db2259c 100644
--- a/frontend/xsane-scan.h
+++ b/src/xsane-scan.h
@@ -2,8 +2,8 @@
xsane-scan.h
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -22,12 +22,10 @@
/* ---------------------------------------------------------------------------------------------------------------------- */
-#include "sane/config.h"
#include <sane/sane.h>
/* ---------------------------------------------------------------------------------------------------------------------- */
-extern void null_print_func(gchar *msg);
extern void xsane_scan_done(SANE_Status status);
extern void xsane_cancel(void);
extern void xsane_scan_dialog(GtkWidget * widget, gpointer call_data);
diff --git a/src/xsane-setup.c b/src/xsane-setup.c
new file mode 100644
index 0000000..be15672
--- /dev/null
+++ b/src/xsane-setup.c
@@ -0,0 +1,3064 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-setup.c
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#include "xsane.h"
+#include "xsane-back-gtk.h"
+#include "xsane-front-gtk.h"
+#include "xsane-preferences.h"
+#include "xsane-device-preferences.h"
+#include "xsane-preview.h"
+#include "xsane-save.h"
+#include "xsane-gamma.h"
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+#include <png.h>
+#include <zlib.h>
+#endif
+#endif
+
+#ifdef HAVE_LIBTIFF
+#include <tiff.h>
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#define XSANE_GTK_NAME_IMAGE_PERMISSIONS "gtk_toggle_button_image_permissions"
+#define XSANE_GTK_NAME_DIRECTORY_PERMISSIONS "gtk_toggle_button_directory_permissions"
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+struct XsaneSetup xsane_setup;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* forward declarations: */
+
+void xsane_new_printer(void);
+void xsane_update_int(GtkWidget *widget, int *val);
+
+static void xsane_update_bool(GtkWidget *widget, int *val);
+static void xsane_update_scale(GtkWidget *widget, double *val);
+static int xsane_update_double(GtkWidget *widget, double *val);
+static void xsane_setup_printer_update(void);
+static void xsane_setup_printer_callback(GtkWidget *widget, gpointer data);
+static void xsane_setup_printer_menu_build(GtkWidget *option_menu);
+static void xsane_setup_printer_apply_changes(GtkWidget *widget, gpointer data);
+static void xsane_setup_printer_new(GtkWidget *widget, gpointer data);
+static void xsane_setup_printer_delete(GtkWidget *widget, gpointer data);
+static void xsane_setup_display_apply_changes(GtkWidget *widget, gpointer data);
+static void xsane_setup_saving_apply_changes(GtkWidget *widget, gpointer data);
+static void xsane_setup_image_apply_changes(GtkWidget *widget, gpointer data);
+static void xsane_setup_fax_apply_changes(GtkWidget *widget, gpointer data);
+#ifdef XSANE_ACTIVATE_MAIL
+static void xsane_setup_mail_apply_changes(GtkWidget *widget, gpointer data);
+#endif
+static void xsane_setup_ocr_apply_changes(GtkWidget *widget, gpointer data);
+static void xsane_setup_options_ok_callback(GtkWidget *widget, gpointer data);
+
+static void xsane_printer_notebook(GtkWidget *notebook);
+static void xsane_saving_notebook(GtkWidget *notebook);
+static void xsane_image_notebook(GtkWidget *notebook);
+static void xsane_fax_notebook(GtkWidget *notebook);
+#ifdef XSANE_ACTIVATE_MAIL
+static void xsane_mail_notebook(GtkWidget *notebook);
+#endif
+static void xsane_display_notebook(GtkWidget *notebook);
+static void xsane_enhance_notebook_sensitivity(int lineart_mode);
+static void xsane_setup_lineart_mode_callback(GtkWidget *widget, gpointer data);
+static void xsane_enhance_notebook(GtkWidget *notebook);
+
+void xsane_setup_dialog(GtkWidget *widget, gpointer data);
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int device_options_changed = 0;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+
+void xsane_new_printer(void)
+{
+ void *newprinters;
+
+ DBG(DBG_proc, "xsane_new_printer\n");
+
+ newprinters = realloc(preferences.printer, (preferences.printerdefinitions+1) * sizeof(void *));
+
+ if (newprinters) /* realloc returns NULL if failed, in this case the old memory keeps alive */
+ {
+ preferences.printer = newprinters;
+
+ preferences.printer[preferences.printerdefinitions] = calloc(sizeof(Preferences_printer_t), 1);
+
+ if (preferences.printer[preferences.printerdefinitions])
+ {
+ preferences.printernr = preferences.printerdefinitions;
+ preferences.printerdefinitions++;
+
+ preferences.printer[preferences.printernr]->name = strdup(PRINTERNAME);
+ preferences.printer[preferences.printernr]->command = strdup(PRINTERCOMMAND);
+ preferences.printer[preferences.printernr]->copy_number_option = strdup(PRINTERCOPYNUMBEROPTION);
+ preferences.printer[preferences.printernr]->lineart_resolution = 300;
+ preferences.printer[preferences.printernr]->grayscale_resolution = 150;
+ preferences.printer[preferences.printernr]->color_resolution = 150;
+ preferences.printer[preferences.printernr]->width = 203.2;
+ preferences.printer[preferences.printernr]->height = 294.6;
+ preferences.printer[preferences.printernr]->leftoffset = 3.5;
+ preferences.printer[preferences.printernr]->bottomoffset = 3.5;
+ preferences.printer[preferences.printernr]->gamma = 1.0;
+ preferences.printer[preferences.printernr]->gamma_red = 1.0;
+ preferences.printer[preferences.printernr]->gamma_green = 1.0;
+ preferences.printer[preferences.printernr]->gamma_blue = 1.0;
+ }
+ else
+ {
+ DBG(DBG_error, "could not allocate memory for new printer definition\n");
+ }
+ }
+ else
+ {
+ DBG(DBG_error, "could not allocate memory for new printer definition\n");
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_update_int(GtkWidget *widget, int *val)
+{
+ char *start, *end;
+ int v;
+
+ DBG(DBG_proc, "xsane_update_init\n");
+
+ start = gtk_entry_get_text(GTK_ENTRY(widget));
+ if (!start)
+ return;
+
+ v = (int) strtol(start, &end, 10);
+ if (end > start)
+ {
+ *val = v;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_update_bool(GtkWidget *widget, int *val)
+{
+ DBG(DBG_proc, "xsane_update_bool\n");
+
+ *val = (GTK_TOGGLE_BUTTON(widget)->active != 0);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_update_scale(GtkWidget *widget, double *val)
+{
+ DBG(DBG_proc, "xsane_update_scale\n");
+
+ *val = GTK_ADJUSTMENT(widget)->value;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_update_geometry_double(GtkWidget *widget, double *val, double length_multiplier)
+{
+ char *start, *end;
+ double v;
+
+ DBG(DBG_proc, "xsane_update_geometry_double\n");
+
+ start = gtk_entry_get_text(GTK_ENTRY(widget));
+ if (!start)
+ {
+ return;
+ }
+
+ v = strtod(start, &end);
+ if (end > start)
+ {
+ *val = v * length_multiplier;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* returns 0 if value is unchaned */
+static int xsane_update_double(GtkWidget *widget, double *val)
+{
+ char *start, *end;
+ double v;
+ int value_changed = 0;
+
+ DBG(DBG_proc, "xsane_update_double\n");
+
+ start = gtk_entry_get_text(GTK_ENTRY(widget));
+ if (!start)
+ {
+ return 0;
+ }
+
+ v = strtod(start, &end);
+ if (end > start)
+ {
+ value_changed = (fabs(*val - v) >= 0.001);
+ *val = v;
+ }
+
+ return value_changed;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_printer_update()
+{
+ char buf[256];
+
+ DBG(DBG_proc, "xsane_setup_printer_update\n");
+
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_name_entry),
+ (char *) preferences.printer[preferences.printernr]->name);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_command_entry),
+ (char *) preferences.printer[preferences.printernr]->command);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_copy_number_option_entry),
+ (char *) preferences.printer[preferences.printernr]->copy_number_option);
+
+ snprintf(buf, sizeof(buf), "%d", preferences.printer[preferences.printernr]->lineart_resolution);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_lineart_resolution_entry), buf);
+ snprintf(buf, sizeof(buf), "%d", preferences.printer[preferences.printernr]->grayscale_resolution);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_grayscale_resolution_entry), buf);
+ snprintf(buf, sizeof(buf), "%d", preferences.printer[preferences.printernr]->color_resolution);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_color_resolution_entry), buf);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.printer[preferences.printernr]->width / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_width_entry), buf);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.printer[preferences.printernr]->height / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_height_entry), buf);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.printer[preferences.printernr]->leftoffset / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_leftoffset_entry), buf);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.printer[preferences.printernr]->bottomoffset / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_bottomoffset_entry), buf);
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_entry), buf);
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_red);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_red_entry), buf);
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_green);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_green_entry), buf);
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_blue);
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_blue_entry), buf);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_printer_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_printer_callback\n");
+
+ preferences.printernr = (int) data;
+ xsane_setup_printer_update();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_printer_menu_build(GtkWidget *option_menu)
+{
+ GtkWidget *printer_menu, *printer_item;
+ int i;
+
+ DBG(DBG_proc, "xsane_setup_printer_menu_build\n");
+
+ printer_menu = gtk_menu_new();
+
+ for (i=0; i < preferences.printerdefinitions; i++)
+ {
+ printer_item = gtk_menu_item_new_with_label(preferences.printer[i]->name);
+ gtk_container_add(GTK_CONTAINER(printer_menu), printer_item);
+ gtk_signal_connect(GTK_OBJECT(printer_item), "activate", (GtkSignalFunc) xsane_setup_printer_callback, (void *) i);
+ gtk_widget_show(printer_item);
+ }
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), printer_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(option_menu), preferences.printernr);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_printer_apply_changes(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *option_menu = (GtkWidget *) data;
+
+ DBG(DBG_proc, "xsane_setup_printer_apply_changes\n");
+
+ if (preferences.printer[preferences.printernr]->name)
+ {
+ free((void *) preferences.printer[preferences.printernr]->name);
+ }
+ preferences.printer[preferences.printernr]->name = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.printer_name_entry)));
+
+ if (preferences.printer[preferences.printernr]->command)
+ {
+ free((void *) preferences.printer[preferences.printernr]->command);
+ }
+ preferences.printer[preferences.printernr]->command = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.printer_command_entry)));
+
+ if (preferences.printer[preferences.printernr]->copy_number_option)
+ {
+ free((void *) preferences.printer[preferences.printernr]->copy_number_option);
+ }
+ preferences.printer[preferences.printernr]->copy_number_option =
+ strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.printer_copy_number_option_entry)));
+
+ xsane_update_int(xsane_setup.printer_lineart_resolution_entry, &preferences.printer[preferences.printernr]->lineart_resolution);
+ xsane_update_int(xsane_setup.printer_grayscale_resolution_entry, &preferences.printer[preferences.printernr]->grayscale_resolution);
+ xsane_update_int(xsane_setup.printer_color_resolution_entry, &preferences.printer[preferences.printernr]->color_resolution);
+
+ xsane_update_geometry_double(xsane_setup.printer_width_entry, &preferences.printer[preferences.printernr]->width, preferences.length_unit);
+ xsane_update_geometry_double(xsane_setup.printer_height_entry, &preferences.printer[preferences.printernr]->height, preferences.length_unit);
+ xsane_update_geometry_double(xsane_setup.printer_leftoffset_entry, &preferences.printer[preferences.printernr]->leftoffset, preferences.length_unit);
+ xsane_update_geometry_double(xsane_setup.printer_bottomoffset_entry, &preferences.printer[preferences.printernr]->bottomoffset, preferences.length_unit);
+
+ xsane_update_double(xsane_setup.printer_gamma_entry, &preferences.printer[preferences.printernr]->gamma);
+ xsane_update_double(xsane_setup.printer_gamma_red_entry, &preferences.printer[preferences.printernr]->gamma_red);
+ xsane_update_double(xsane_setup.printer_gamma_green_entry, &preferences.printer[preferences.printernr]->gamma_green);
+ xsane_update_double(xsane_setup.printer_gamma_blue_entry, &preferences.printer[preferences.printernr]->gamma_blue);
+
+ if (option_menu)
+ {
+ xsane_setup_printer_menu_build(option_menu);
+ }
+
+ xsane_define_maximum_output_size();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_printer_new(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *option_menu = (GtkWidget *) data;
+
+ DBG(DBG_proc, "xsane_setup_printer_new\n");
+
+ xsane_new_printer();
+ xsane_setup_printer_update();
+
+ xsane_setup_printer_menu_build(option_menu);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_printer_delete(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *option_menu = (GtkWidget *) data;
+ int i;
+
+ DBG(DBG_proc, "xsane_setup_printer_delete\n");
+
+ preferences.printerdefinitions--;
+
+ i = preferences.printernr;
+ while (i < preferences.printerdefinitions)
+ {
+ memcpy(preferences.printer[i], preferences.printer[i+1], sizeof(Preferences_printer_t));
+ i++;
+ }
+
+ if (preferences.printernr >= preferences.printerdefinitions)
+ {
+ preferences.printernr--;
+ }
+
+ if (preferences.printerdefinitions == 0)
+ {
+ xsane_new_printer();
+ preferences.printernr = 0;
+ }
+
+ xsane_setup_printer_update();
+
+ xsane_setup_printer_menu_build(option_menu);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_filename_counter_len_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_filename_counter_len_callback\n");
+
+ xsane_setup.filename_counter_len = (int) data;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef HAVE_LIBTIFF
+static void xsane_setup_tiff_compression16_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_tiff_compression16_callback\n");
+
+ xsane_setup.tiff_compression16_nr = (int) data;
+}
+
+/* -------------------------------------- */
+
+static void xsane_setup_tiff_compression8_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_tiff_compression8_callback\n");
+
+ xsane_setup.tiff_compression8_nr = (int) data;
+}
+
+/* -------------------------------------- */
+
+static void xsane_setup_tiff_compression1_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_tiff_compression1_callback\n");
+ xsane_setup.tiff_compression1_nr = (int) data;
+}
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_display_apply_changes(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_display_apply_changes\n");
+
+ xsane_update_bool(xsane_setup.main_window_fixed_button, &preferences.main_window_fixed);
+ xsane_update_bool(xsane_setup.preview_own_cmap_button, &preferences.preview_own_cmap);
+
+ xsane_update_double(xsane_setup.preview_gamma_entry, &preferences.preview_gamma);
+ xsane_update_double(xsane_setup.preview_gamma_red_entry, &preferences.preview_gamma_red);
+ xsane_update_double(xsane_setup.preview_gamma_green_entry, &preferences.preview_gamma_green);
+ xsane_update_double(xsane_setup.preview_gamma_blue_entry, &preferences.preview_gamma_blue);
+ xsane_update_bool(xsane_setup.disable_gimp_preview_gamma_button, &preferences.disable_gimp_preview_gamma);
+
+ xsane_update_double(xsane_setup.preview_oversampling_entry, &preferences.preview_oversampling);
+
+ if (preferences.doc_viewer)
+ {
+ free((void *) preferences.doc_viewer);
+ }
+ preferences.doc_viewer = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.doc_viewer_entry)));
+
+ xsane_update_gamma_curve(TRUE /* update raw */);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_enhance_apply_changes(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_enhance_apply_changes\n");
+
+ device_options_changed |= (xsane.lineart_mode != xsane_setup.lineart_mode);
+ xsane.lineart_mode = xsane_setup.lineart_mode;
+
+ device_options_changed |= xsane_update_double(xsane_setup.preview_threshold_min_entry, &xsane.threshold_min);
+ device_options_changed |= xsane_update_double(xsane_setup.preview_threshold_max_entry, &xsane.threshold_max);
+ device_options_changed |= xsane_update_double(xsane_setup.preview_threshold_mul_entry, &xsane.threshold_mul);
+ device_options_changed |= xsane_update_double(xsane_setup.preview_threshold_off_entry, &xsane.threshold_off);
+
+ if (xsane.grayscale_scanmode)
+ {
+ if (xsane_setup.grayscale_scanmode)
+ {
+ device_options_changed |= (strcmp(xsane_setup.grayscale_scanmode, xsane.grayscale_scanmode));
+ }
+ else
+ {
+ device_options_changed |= 1;
+ }
+
+ free((void *) xsane.grayscale_scanmode);
+ xsane.grayscale_scanmode = NULL;
+ }
+ else if (xsane_setup.grayscale_scanmode)
+ {
+ device_options_changed |= 1;
+ }
+
+ if (xsane_setup.grayscale_scanmode)
+ {
+ xsane.grayscale_scanmode = strdup(xsane_setup.grayscale_scanmode);
+ }
+
+
+ if (xsane.adf_scansource)
+ {
+ if (xsane_setup.adf_scansource)
+ {
+ device_options_changed |= (strcmp(xsane_setup.adf_scansource, xsane.adf_scansource));
+ }
+ else
+ {
+ device_options_changed |= 1;
+ }
+
+ free((void *) xsane.adf_scansource);
+ xsane.adf_scansource = NULL;
+ }
+ else if (xsane_setup.adf_scansource)
+ {
+ device_options_changed |= 1;
+ }
+
+ if (xsane_setup.adf_scansource)
+ {
+ xsane.adf_scansource = strdup(xsane_setup.adf_scansource);
+ }
+
+ preferences.preview_pipette_range = xsane_setup.preview_pipette_range;
+
+ xsane_update_bool(xsane_setup.auto_enhance_gamma_button, &preferences.auto_enhance_gamma);
+ xsane_update_bool(xsane_setup.preselect_scanarea_button, &preferences.preselect_scanarea);
+ xsane_update_bool(xsane_setup.auto_correct_colors_button, &preferences.auto_correct_colors);
+
+ xsane_update_gamma_curve(TRUE /* update raw */);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_saving_apply_changes(GtkWidget *widget, gpointer data)
+{
+ int level;
+
+ DBG(DBG_proc, "xsane_setup_saving_apply_changes\n");
+
+ preferences.filename_counter_len = xsane_setup.filename_counter_len;
+
+ if (strcmp(preferences.tmp_path, gtk_entry_get_text(GTK_ENTRY(xsane_setup.tmp_path_entry))))
+ {
+ for(level = 0; level <= 2; level++)
+ {
+ if (xsane.preview->filename[level])
+ {
+ remove(xsane.preview->filename[level]); /* remove existing preview files */
+ }
+ }
+
+ if (preferences.tmp_path)
+ {
+ free((void *) preferences.tmp_path);
+ }
+
+ preferences.tmp_path = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.tmp_path_entry)));
+
+ preview_generate_preview_filenames(xsane.preview);
+ }
+
+ xsane_update_bool(xsane_setup.save_devprefs_at_exit_button, &preferences.save_devprefs_at_exit);
+ xsane_update_bool(xsane_setup.overwrite_warning_button, &preferences.overwrite_warning);
+ xsane_update_bool(xsane_setup.skip_existing_numbers_button, &preferences.skip_existing_numbers);
+
+ preferences.image_umask = 0777 - xsane_setup.image_permissions;
+ preferences.directory_umask = 0777 - xsane_setup.directory_permissions;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_image_apply_changes(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_image_apply_changes\n");
+
+#ifdef HAVE_LIBJPEG
+ xsane_update_scale(xsane_setup.jpeg_image_quality_scale, &preferences.jpeg_quality);
+#else
+#ifdef HAVE_LIBTIFF
+ xsane_update_scale(xsane_setup.jpeg_image_quality_scale, &preferences.jpeg_quality);
+#endif
+#endif
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+ xsane_update_scale(xsane_setup.pnm_image_compression_scale, &preferences.png_compression);
+#endif
+#endif
+
+#ifdef HAVE_LIBTIFF
+ preferences.tiff_compression16_nr = xsane_setup.tiff_compression16_nr;
+ preferences.tiff_compression8_nr = xsane_setup.tiff_compression8_nr;
+ preferences.tiff_compression1_nr = xsane_setup.tiff_compression1_nr;
+#endif
+
+ xsane_update_bool(xsane_setup.reduce_16bit_to_8bit_button, &preferences.reduce_16bit_to_8bit);
+
+ xsane_define_maximum_output_size();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_fax_apply_changes(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_fax_apply_changes\n");
+
+ if (preferences.fax_command)
+ {
+ free((void *) preferences.fax_command);
+ }
+ preferences.fax_command = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_command_entry)));
+ preferences.fax_receiver_option = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_receiver_option_entry)));
+ preferences.fax_postscript_option = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_postscript_option_entry)));
+ preferences.fax_normal_option = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_normal_option_entry)));
+ preferences.fax_fine_option = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_fine_option_entry)));
+ preferences.fax_viewer = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.fax_viewer_entry)));
+
+ xsane_update_geometry_double(xsane_setup.fax_leftoffset_entry, &preferences.fax_leftoffset, preferences.length_unit);
+ xsane_update_geometry_double(xsane_setup.fax_bottomoffset_entry, &preferences.fax_bottomoffset, preferences.length_unit);
+ xsane_update_geometry_double(xsane_setup.fax_width_entry, &preferences.fax_width, preferences.length_unit);
+ xsane_update_geometry_double(xsane_setup.fax_height_entry, &preferences.fax_height, preferences.length_unit);
+
+ xsane_define_maximum_output_size();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef XSANE_ACTIVATE_MAIL
+static void xsane_setup_mail_apply_changes(GtkWidget *widget, gpointer data)
+{
+ int i;
+
+ DBG(DBG_proc, "xsane_setup_mail_apply_changes\n");
+
+ preferences.mail_from = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_from_entry)));
+ preferences.mail_reply_to = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_reply_to_entry)));
+ preferences.mail_smtp_server = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_smtp_server_entry)));
+ preferences.mail_pop3_server = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_pop3_server_entry)));
+ preferences.mail_pop3_user = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_pop3_user_entry)));
+ preferences.mail_pop3_pass = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_pop3_pass_entry)));
+ preferences.mail_viewer = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_viewer_entry)));
+
+ /* make sure password is not stored in ascii text */
+ /* this is very simple but better than nothing */
+ for (i=0; i<strlen(preferences.mail_pop3_pass); i++)
+ {
+ preferences.mail_pop3_pass[i] ^= 0x53;
+ }
+
+ xsane_update_bool(xsane_setup.mail_pop3_authentification_entry, &preferences.mail_pop3_authentification);
+ xsane_update_int(xsane_setup.mail_smtp_port_entry, &preferences.mail_smtp_port);
+ xsane_update_int(xsane_setup.mail_pop3_port_entry, &preferences.mail_pop3_port);
+}
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_ocr_apply_changes(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_ocr_apply_changes\n");
+
+ if (preferences.ocr_command)
+ {
+ free((void *) preferences.ocr_command);
+ }
+ preferences.ocr_command = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.ocr_command_entry)));
+
+ if (preferences.ocr_inputfile_option)
+ {
+ free((void *) preferences.ocr_inputfile_option);
+ }
+ preferences.ocr_inputfile_option = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.ocr_inputfile_option_entry)));
+
+ if (preferences.ocr_outputfile_option)
+ {
+ free((void *) preferences.ocr_outputfile_option);
+ }
+ preferences.ocr_outputfile_option = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.ocr_outputfile_option_entry)));
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_options_ok_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_options_ok_callback\n");
+
+ xsane_setup_printer_apply_changes(0, 0);
+ xsane_setup_display_apply_changes(0, 0);
+ xsane_setup_enhance_apply_changes(0, 0);
+ xsane_setup_saving_apply_changes(0, 0);
+ xsane_setup_image_apply_changes(0, 0);
+ xsane_setup_fax_apply_changes(0, 0);
+#ifdef XSANE_ACTIVATE_MAIL
+ xsane_setup_mail_apply_changes(0, 0);
+#endif
+ xsane_setup_ocr_apply_changes(0, 0);
+
+ if (xsane_setup.grayscale_scanmode)
+ {
+ free((void *) xsane_setup.grayscale_scanmode);
+ xsane_setup.grayscale_scanmode = NULL;
+ }
+
+ if (xsane_setup.adf_scansource)
+ {
+ free((void *) xsane_setup.adf_scansource);
+ xsane_setup.adf_scansource = NULL;
+ }
+
+
+ xsane_pref_save();
+
+ gtk_widget_destroy((GtkWidget *)data); /* => xsane_destroy_setup_dialog_callback */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* this routine is called when the setup dialog window is closed, no matter */
+/* if "OK", "CANCEL" or the window manager destroy button has been pressed */
+void xsane_destroy_setup_dialog_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_destroy_setup_dialog_callback\n");
+
+ if (device_options_changed)
+ {
+ xsane_device_preferences_save();
+ }
+
+ xsane_set_sensitivity(TRUE);
+
+ xsane.preview->calibration = 0;
+ xsane_back_gtk_refresh_dialog();
+ preview_update_surface(xsane.preview, 1);
+ xsane_update_gamma_curve(TRUE /* update raw */);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_close_setup_dialog_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_close_setup_dialog_callback\n");
+
+ gtk_widget_destroy((GtkWidget *)data); /* => xsane_destroy_setup_dialog_callback */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_permission_toggled(GtkWidget *widget, gpointer data)
+{
+ int mask = (int) data;
+ int *permission = 0;
+ gchar *name = gtk_widget_get_name(widget);
+
+ DBG(DBG_proc, "xsane_permission_toggled\n");
+
+ if (!strcmp(name, XSANE_GTK_NAME_IMAGE_PERMISSIONS))
+ {
+ permission = &xsane_setup.image_permissions;
+ }
+ else if (!strcmp(name, XSANE_GTK_NAME_DIRECTORY_PERMISSIONS))
+ {
+ permission = &xsane_setup.directory_permissions;
+ }
+
+ if (permission)
+ {
+ if (GTK_TOGGLE_BUTTON(widget)->active) /* set bit */
+ {
+ *permission = *permission | mask;
+ }
+ else /* erase bit */
+ {
+ *permission = *permission & (0777-mask);
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_permission_box(GtkWidget *parent, gchar *name, gchar *description, int *permission,
+ int header, int x_sensitivity, int user_sensitivity)
+{
+ GtkWidget *hbox, *button, *label, *hspace;
+
+ DBG(DBG_proc, "xsane_permission_box\n");
+
+ if (header)
+ {
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(parent), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_PERMISSION_USER);
+ gtk_widget_set_usize(label, 75, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ label = gtk_label_new(TEXT_SETUP_PERMISSION_GROUP);
+ gtk_widget_set_usize(label, 75, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ label = gtk_label_new(TEXT_SETUP_PERMISSION_ALL);
+ gtk_widget_set_usize(label, 75, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ gtk_widget_show(hbox);
+ }
+
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(parent), hbox, FALSE, FALSE, 2);
+
+ button = gtk_toggle_button_new_with_label("r");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 256 );
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_READ);
+ gtk_widget_set_usize(button, 21, 0);
+ gtk_widget_set_name(button, name);
+ gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 256);
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
+ gtk_widget_show(button);
+ gtk_widget_set_sensitive(button, user_sensitivity);
+
+ button = gtk_toggle_button_new_with_label("w");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 128 );
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_WRITE);
+ gtk_widget_set_usize(button, 21, 0);
+ gtk_widget_set_name(button, name);
+ gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 128);
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
+ gtk_widget_show(button);
+ gtk_widget_set_sensitive(button, user_sensitivity);
+
+ button = gtk_toggle_button_new_with_label("x");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 64 );
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_EXECUTE);
+ gtk_widget_set_usize(button, 21, 0);
+ gtk_widget_set_name(button, name);
+ gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 64);
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
+ gtk_widget_show(button);
+ gtk_widget_set_sensitive(button, x_sensitivity & user_sensitivity);
+
+
+
+ hspace = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), hspace, FALSE, FALSE, 6);
+ gtk_widget_show(hspace);
+
+
+
+ button = gtk_toggle_button_new_with_label("r");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 32 );
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_READ);
+ gtk_widget_set_usize(button, 21, 0);
+ gtk_widget_set_name(button, name);
+ gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 32);
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
+ gtk_widget_show(button);
+
+ button = gtk_toggle_button_new_with_label("w");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 16 );
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_WRITE);
+ gtk_widget_set_usize(button, 21, 0);
+ gtk_widget_set_name(button, name);
+ gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 16);
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
+ gtk_widget_show(button);
+
+ button = gtk_toggle_button_new_with_label("x");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 8 );
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_EXECUTE);
+ gtk_widget_set_usize(button, 21, 0);
+ gtk_widget_set_name(button, name);
+ gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 8);
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
+ gtk_widget_show(button);
+ gtk_widget_set_sensitive(button, x_sensitivity);
+
+
+
+ hspace = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), hspace, FALSE, FALSE, 6);
+ gtk_widget_show(hspace);
+
+
+
+ button = gtk_toggle_button_new_with_label("r");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 4 );
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_READ);
+ gtk_widget_set_usize(button, 21, 0);
+ gtk_widget_set_name(button, name);
+ gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 4);
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
+ gtk_widget_show(button);
+
+ button = gtk_toggle_button_new_with_label("w");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 2 );
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_WRITE);
+ gtk_widget_set_usize(button, 21, 0);
+ gtk_widget_set_name(button, name);
+ gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 2);
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
+ gtk_widget_show(button);
+
+ button = gtk_toggle_button_new_with_label("x");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *permission & 1 );
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PERMISSION_EXECUTE);
+ gtk_widget_set_usize(button, 21, 0);
+ gtk_widget_set_name(button, name);
+ gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_permission_toggled, (void *) 1);
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
+ gtk_widget_show(button);
+ gtk_widget_set_sensitive(button, x_sensitivity);
+
+
+
+ hspace = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), hspace, FALSE, FALSE, 5);
+ gtk_widget_show(hspace);
+
+
+
+ label = gtk_label_new(description);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ gtk_widget_show(hbox);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_printer_notebook(GtkWidget *notebook)
+{
+ GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *text, *frame;
+ GtkWidget *printer_option_menu;
+ char buf[64];
+
+ DBG(DBG_proc, "xsane_printer_notebook\n");
+
+ /* Printer options notebook page */
+
+ setup_vbox = gtk_vbox_new(FALSE, 5);
+
+ label = gtk_label_new(NOTEBOOK_COPY_OPTIONS);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
+ gtk_widget_show(setup_vbox);
+
+ frame = gtk_frame_new(0);
+ gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+ gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
+ gtk_widget_show(frame);
+
+ vbox = gtk_vbox_new(FALSE, 1);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
+ gtk_widget_show(vbox);
+
+
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new(TEXT_SETUP_PRINTER_SEL);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ printer_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, printer_option_menu, DESC_PRINTER_SETUP);
+ gtk_box_pack_end(GTK_BOX(hbox), printer_option_menu, FALSE, FALSE, 2);
+ gtk_widget_show(printer_option_menu);
+ gtk_widget_show(hbox);
+
+ xsane_setup_printer_menu_build(printer_option_menu);
+
+ /* printername : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_PRINTER_NAME);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_NAME);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.printer[preferences.printernr]->name);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_name_entry = text;
+
+ /* printcommand : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_PRINTER_CMD);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_COMMAND);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.printer[preferences.printernr]->command);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_command_entry = text;
+
+ /* copy number option : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_COPY_NR_OPT);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_COPY_NUMBER_OPTION);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.printer[preferences.printernr]->copy_number_option);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_copy_number_option_entry = text;
+
+
+ xsane_separator_new(vbox, 2);
+
+
+ /* printer lineart resolution : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_PRINTER_LINEART_RES);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_LINEART_RESOLUTION);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%d", preferences.printer[preferences.printernr]->lineart_resolution);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_lineart_resolution_entry = text;
+
+
+ /* printer grayscale resolution : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_PRINTER_GRAYSCALE_RES);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_GRAYSCALE_RESOLUTION);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%d", preferences.printer[preferences.printernr]->grayscale_resolution);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_grayscale_resolution_entry = text;
+
+
+ /* printer color resolution : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_PRINTER_COLOR_RES);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_COLOR_RESOLUTION);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%d", preferences.printer[preferences.printernr]->color_resolution);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_color_resolution_entry = text;
+
+
+ xsane_separator_new(vbox, 2);
+
+
+ /* printer width: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ snprintf(buf, sizeof(buf), "%s [%s]:", TEXT_SETUP_PRINTER_WIDTH, xsane_back_gtk_unit_string(SANE_UNIT_MM));
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_WIDTH);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.printer[preferences.printernr]->width / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_width_entry = text;
+
+ /* printer height: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ snprintf(buf, sizeof(buf), "%s [%s]:", TEXT_SETUP_PRINTER_HEIGHT, xsane_back_gtk_unit_string(SANE_UNIT_MM));
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_HEIGHT);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.printer[preferences.printernr]->height / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_height_entry = text;
+
+ /* printer left offset : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ snprintf(buf, sizeof(buf), "%s [%s]:", TEXT_SETUP_PRINTER_LEFT, xsane_back_gtk_unit_string(SANE_UNIT_MM));
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_LEFTOFFSET);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.printer[preferences.printernr]->leftoffset / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_leftoffset_entry = text;
+
+ /* printer bottom offset : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ snprintf(buf, sizeof(buf), "%s [%s]:", TEXT_SETUP_PRINTER_BOTTOM, xsane_back_gtk_unit_string(SANE_UNIT_MM));
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_BOTTOMOFFSET);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.printer[preferences.printernr]->bottomoffset / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_bottomoffset_entry = text;
+
+
+ xsane_separator_new(vbox, 2);
+
+
+ /* printer gamma: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_PRINTER_GAMMA);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_GAMMA);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_gamma_entry = text;
+
+ /* printer gamma red: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_PRINTER_GAMMA_RED);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_GAMMA_RED);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_red);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_gamma_red_entry = text;
+
+ /* printer gamma green: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_PRINTER_GAMMA_GREEN);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_GAMMA_GREEN);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_green);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_gamma_green_entry = text;
+
+ /* printer gamma blue: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_PRINTER_GAMMA_BLUE);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRINTER_GAMMA_BLUE);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_blue);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.printer_gamma_blue_entry = text;
+
+
+ xsane_separator_new(vbox, 4);
+
+ /* "apply" "add printer" "delete printer" */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ button = gtk_button_new_with_label(BUTTON_APPLY);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_printer_apply_changes, printer_option_menu);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_ADD_PRINTER);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_printer_new, printer_option_menu);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_DELETE_PRINTER);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_printer_delete, printer_option_menu);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(hbox);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_browse_tmp_path_callback(GtkWidget *widget, gpointer data)
+{
+ gchar *old_tmp_path;
+ char tmp_path[256];
+ char windowname[256];
+
+ DBG(DBG_proc, "xsane_setup_browse_tmp_path_callback\n");
+
+ old_tmp_path = gtk_entry_get_text(GTK_ENTRY(xsane_setup.tmp_path_entry));
+ strncpy(tmp_path, old_tmp_path, sizeof(tmp_path));
+
+ snprintf(windowname, sizeof(windowname), "%s %s", xsane.prog_name, WINDOW_TMP_PATH);
+ xsane_back_gtk_get_filename(windowname, tmp_path, sizeof(tmp_path), tmp_path, TRUE, FALSE, TRUE);
+
+ gtk_entry_set_text(GTK_ENTRY(xsane_setup.tmp_path_entry), tmp_path);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_saving_notebook(GtkWidget *notebook)
+{
+ GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *text, *frame;
+ GtkWidget *filename_counter_len_option_menu, *filename_counter_len_menu, *filename_counter_len_item;
+ char buf[64];
+ int i, select = 1;
+
+ DBG(DBG_proc, "xsane_saving_notebook\n");
+
+ /* Saving options notebook page */
+ setup_vbox = gtk_vbox_new(FALSE, 5);
+
+ label = gtk_label_new(NOTEBOOK_SAVING_OPTIONS);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
+ gtk_widget_show(setup_vbox);
+
+ frame = gtk_frame_new(0);
+ gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+ gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
+ gtk_widget_show(frame);
+
+ vbox = gtk_vbox_new(FALSE, 1);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
+ gtk_widget_show(vbox);
+
+
+
+ /* tmp path : */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_TMP_PATH);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new_with_max_length(255);
+ gtk_widget_set_usize(text, 70, 0); /* set minimum size */
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_TMP_PATH);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.tmp_path);
+ gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4);
+ gtk_widget_show(text);
+ xsane_setup.tmp_path_entry = text;
+
+ button = gtk_button_new_with_label(BUTTON_BROWSE);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_browse_tmp_path_callback, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 2);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_BUTTON_TMP_PATH_BROWSE);
+ gtk_widget_show(button);
+
+ gtk_widget_show(hbox);
+
+
+ xsane_separator_new(vbox, 4);
+
+
+ /* permissions */
+ xsane_setup.image_permissions = 0777-preferences.image_umask;
+ xsane_permission_box(vbox, XSANE_GTK_NAME_IMAGE_PERMISSIONS, TEXT_SETUP_IMAGE_PERMISSION, &xsane_setup.image_permissions,
+ TRUE /* header */, FALSE /* x sens */, FALSE /* user sens */);
+
+ xsane_setup.directory_permissions = 0777-preferences.directory_umask;
+ xsane_permission_box(vbox, XSANE_GTK_NAME_DIRECTORY_PERMISSIONS, TEXT_SETUP_DIR_PERMISSION, &xsane_setup.directory_permissions,
+ FALSE /* header */, TRUE /* x sens */, FALSE /* user sens */);
+
+ xsane_separator_new(vbox, 4);
+
+
+ /* overwrite warning */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_OVERWRITE_WARNING);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_OVERWRITE_WARNING);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.overwrite_warning);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
+ gtk_widget_show(button);
+ gtk_widget_show(hbox);
+ xsane_setup.overwrite_warning_button = button;
+
+ /* skip existing numbers */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_SKIP_EXISTING_NRS);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_SKIP_EXISTING);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.skip_existing_numbers);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
+ gtk_widget_show(button);
+ gtk_widget_show(hbox);
+ xsane_setup.skip_existing_numbers_button = button;
+
+ /* filename counter length */
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new(TEXT_SETUP_FILENAME_COUNTER_LEN);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ filename_counter_len_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, filename_counter_len_option_menu, DESC_FILENAME_COUNTER_LEN);
+ gtk_box_pack_end(GTK_BOX(hbox), filename_counter_len_option_menu, FALSE, FALSE, 2);
+ gtk_widget_show(filename_counter_len_option_menu);
+ gtk_widget_show(hbox);
+
+ filename_counter_len_menu = gtk_menu_new();
+
+ for (i=0; i <= 10; i++)
+ {
+ if (i)
+ {
+ snprintf(buf, sizeof(buf), "%d", i);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), MENU_ITEM_COUNTER_LEN_INACTIVE);
+ }
+ filename_counter_len_item = gtk_menu_item_new_with_label(buf);
+ gtk_container_add(GTK_CONTAINER(filename_counter_len_menu), filename_counter_len_item);
+ gtk_signal_connect(GTK_OBJECT(filename_counter_len_item), "activate",
+ (GtkSignalFunc) xsane_setup_filename_counter_len_callback, (void *) i);
+ gtk_widget_show(filename_counter_len_item);
+ if (preferences.filename_counter_len == i)
+ {
+ select = i;
+ }
+ }
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(filename_counter_len_option_menu), filename_counter_len_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(filename_counter_len_option_menu), select);
+ xsane_setup.filename_counter_len = preferences.filename_counter_len;
+
+
+ xsane_separator_new(vbox, 4);
+
+
+ /* save device preferences at exit */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_SAVE_DEVPREFS_AT_EXIT);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.save_devprefs_at_exit);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
+ gtk_widget_show(button);
+ gtk_widget_show(hbox);
+ xsane_setup.save_devprefs_at_exit_button = button;
+
+
+ xsane_separator_new(vbox, 4);
+
+
+
+
+ /* apply button */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ button = gtk_button_new_with_label(BUTTON_APPLY);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_saving_apply_changes, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(hbox);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_image_notebook(GtkWidget *notebook)
+{
+ GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *frame;
+ int i, select = 1;
+
+#ifdef HAVE_LIBTIFF
+ GtkWidget *tiff_compression_option_menu, *tiff_compression_menu, *tiff_compression_item;
+
+ typedef struct tiff_compression_t
+ {
+ char *name;
+ int number;
+ } tiff_compression;
+
+#define TIFF_COMPRESSION16_NUMBER 2
+#define TIFF_COMPRESSION8_NUMBER 3
+#define TIFF_COMPRESSION1_NUMBER 6
+
+ tiff_compression tiff_compression16_strings[TIFF_COMPRESSION16_NUMBER];
+ tiff_compression tiff_compression8_strings[TIFF_COMPRESSION8_NUMBER];
+ tiff_compression tiff_compression1_strings[TIFF_COMPRESSION1_NUMBER];
+
+ tiff_compression16_strings[0].name = MENU_ITEM_TIFF_COMP_NONE;
+ tiff_compression16_strings[0].number = COMPRESSION_NONE;
+ tiff_compression16_strings[1].name = MENU_ITEM_TIFF_COMP_PACKBITS;
+ tiff_compression16_strings[1].number = COMPRESSION_PACKBITS;
+
+ tiff_compression8_strings[0].name = MENU_ITEM_TIFF_COMP_NONE;
+ tiff_compression8_strings[0].number = COMPRESSION_NONE;
+ tiff_compression8_strings[1].name = MENU_ITEM_TIFF_COMP_JPEG;
+ tiff_compression8_strings[1].number = COMPRESSION_JPEG;
+ tiff_compression8_strings[2].name = MENU_ITEM_TIFF_COMP_PACKBITS;
+ tiff_compression8_strings[2].number = COMPRESSION_PACKBITS;
+
+ tiff_compression1_strings[0].name = MENU_ITEM_TIFF_COMP_NONE;
+ tiff_compression1_strings[0].number = COMPRESSION_NONE;
+ tiff_compression1_strings[1].name = MENU_ITEM_TIFF_COMP_CCITTRLE;
+ tiff_compression1_strings[1].number = COMPRESSION_CCITTRLE;
+ tiff_compression1_strings[2].name = MENU_ITEM_TIFF_COMP_CCITFAX3;
+ tiff_compression1_strings[2].number = COMPRESSION_CCITTFAX3;
+ tiff_compression1_strings[3].name = MENU_ITEM_TIFF_COMP_CCITFAX4;
+ tiff_compression1_strings[3].number = COMPRESSION_CCITTFAX4;
+ tiff_compression1_strings[4].name = MENU_ITEM_TIFF_COMP_JPEG;
+ tiff_compression1_strings[4].number = COMPRESSION_JPEG;
+ tiff_compression1_strings[5].name = MENU_ITEM_TIFF_COMP_PACKBITS;
+ tiff_compression1_strings[5].number = COMPRESSION_PACKBITS;
+
+#endif /* HAVE_LIBTIFF */
+
+ DBG(DBG_proc, "xsane_image_notebook\n");
+
+ /* Image options notebook page */
+ setup_vbox = gtk_vbox_new(FALSE, 5);
+
+ label = gtk_label_new(NOTEBOOK_IMAGE_OPTIONS);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
+ gtk_widget_show(setup_vbox);
+
+ frame = gtk_frame_new(0);
+ gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+ gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
+ gtk_widget_show(frame);
+
+ vbox = gtk_vbox_new(FALSE, 1);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
+ gtk_widget_show(vbox);
+
+
+ /* reduce 16bit to 8bit */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_REDUCE_16BIT_TO_8BIT);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_REDUCE_16BIT_TO_8BIT);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.reduce_16bit_to_8bit);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
+ gtk_widget_show(button);
+ gtk_widget_show(hbox);
+ xsane_setup.reduce_16bit_to_8bit_button = button;
+
+
+#ifdef HAVE_LIBJPEG
+ xsane_separator_new(vbox, 4);
+#else
+#ifdef HAVE_LIBTIFF
+ xsane_separator_new(vbox, 4);
+#else
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+ xsane_separator_new(vbox, 4);
+#endif
+#endif
+#endif
+#endif
+
+#ifdef HAVE_LIBJPEG
+ xsane_scale_new(GTK_BOX(vbox), TEXT_SETUP_JPEG_QUALITY, DESC_JPEG_QUALITY, 0.0, 100.0, 1.0, 10.0, 0.0, 0,
+ &preferences.jpeg_quality, (GtkObject **) &xsane_setup.jpeg_image_quality_scale, 0, TRUE);
+#else
+#ifdef HAVE_LIBTIFF
+ xsane_scale_new(GTK_BOX(vbox), TEXT_SETUP_JPEG_QUALITY, DESC_JPEG_QUALITY, 0.0, 100.0, 1.0, 10.0, 0.0, 0,
+ &preferences.jpeg_quality, (GtkObject **) &xsane_setup.jpeg_image_quality_scale, 0, TRUE);
+#endif
+#endif
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+ xsane_scale_new(GTK_BOX(vbox), TEXT_SETUP_PNG_COMPRESSION, DESC_PNG_COMPRESSION, 0.0, Z_BEST_COMPRESSION, 1.0, 10.0, 0.0, 0,
+ &preferences.png_compression, (GtkObject **) &xsane_setup.pnm_image_compression_scale, 0, TRUE);
+#endif
+#endif
+
+#ifdef HAVE_LIBTIFF
+ /* TIFF 16 BIT IMAGES COMPRESSION */
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new(TEXT_SETUP_TIFF_COMPRESSION_16);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ tiff_compression_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, tiff_compression_option_menu, DESC_TIFF_COMPRESSION_16);
+ gtk_box_pack_end(GTK_BOX(hbox), tiff_compression_option_menu, FALSE, FALSE, 2);
+ gtk_widget_show(tiff_compression_option_menu);
+ gtk_widget_show(hbox);
+
+ tiff_compression_menu = gtk_menu_new();
+
+ for (i=1; i <= TIFF_COMPRESSION16_NUMBER; i++)
+ {
+ tiff_compression_item = gtk_menu_item_new_with_label(tiff_compression16_strings[i-1].name);
+ gtk_container_add(GTK_CONTAINER(tiff_compression_menu), tiff_compression_item);
+ gtk_signal_connect(GTK_OBJECT(tiff_compression_item), "activate",
+ (GtkSignalFunc) xsane_setup_tiff_compression16_callback, (void *) tiff_compression16_strings[i-1].number);
+ gtk_widget_show(tiff_compression_item);
+ if (tiff_compression16_strings[i-1].number == preferences.tiff_compression16_nr)
+ {
+ select = i-1;
+ }
+ }
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(tiff_compression_option_menu), tiff_compression_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(tiff_compression_option_menu), select);
+ xsane_setup.tiff_compression16_nr = preferences.tiff_compression16_nr;
+
+
+ /* TIFF 8 BIT IMAGES COMPRESSION */
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new(TEXT_SETUP_TIFF_COMPRESSION_8);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ tiff_compression_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, tiff_compression_option_menu, DESC_TIFF_COMPRESSION_8);
+ gtk_box_pack_end(GTK_BOX(hbox), tiff_compression_option_menu, FALSE, FALSE, 2);
+ gtk_widget_show(tiff_compression_option_menu);
+ gtk_widget_show(hbox);
+
+ tiff_compression_menu = gtk_menu_new();
+
+ for (i=1; i <= TIFF_COMPRESSION8_NUMBER; i++)
+ {
+ tiff_compression_item = gtk_menu_item_new_with_label(tiff_compression8_strings[i-1].name);
+ gtk_container_add(GTK_CONTAINER(tiff_compression_menu), tiff_compression_item);
+ gtk_signal_connect(GTK_OBJECT(tiff_compression_item), "activate",
+ (GtkSignalFunc) xsane_setup_tiff_compression8_callback, (void *) tiff_compression8_strings[i-1].number);
+ gtk_widget_show(tiff_compression_item);
+ if (tiff_compression8_strings[i-1].number == preferences.tiff_compression8_nr)
+ {
+ select = i-1;
+ }
+ }
+
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(tiff_compression_option_menu), tiff_compression_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(tiff_compression_option_menu), select);
+ xsane_setup.tiff_compression8_nr = preferences.tiff_compression8_nr;
+
+
+ /* TIFF 1 BIT IMAGES COMPRESSION */
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new(TEXT_SETUP_TIFF_COMPRESSION_1);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ tiff_compression_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, tiff_compression_option_menu, DESC_TIFF_COMPRESSION_1);
+ gtk_box_pack_end(GTK_BOX(hbox), tiff_compression_option_menu, FALSE, FALSE, 2);
+ gtk_widget_show(tiff_compression_option_menu);
+ gtk_widget_show(hbox);
+
+ tiff_compression_menu = gtk_menu_new();
+
+ for (i=1; i <= TIFF_COMPRESSION1_NUMBER; i++)
+ {
+ tiff_compression_item = gtk_menu_item_new_with_label(tiff_compression1_strings[i-1].name);
+ gtk_container_add(GTK_CONTAINER(tiff_compression_menu), tiff_compression_item);
+ gtk_signal_connect(GTK_OBJECT(tiff_compression_item), "activate",
+ (GtkSignalFunc) xsane_setup_tiff_compression1_callback, (void *) tiff_compression1_strings[i-1].number);
+ gtk_widget_show(tiff_compression_item);
+ if (tiff_compression1_strings[i-1].number == preferences.tiff_compression1_nr)
+ {
+ select = i-1;
+ }
+ }
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(tiff_compression_option_menu), tiff_compression_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(tiff_compression_option_menu), select);
+ xsane_setup.tiff_compression1_nr = preferences.tiff_compression1_nr;
+
+#endif
+
+
+ xsane_separator_new(vbox, 4);
+
+
+ /* apply button */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ button = gtk_button_new_with_label(BUTTON_APPLY);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_image_apply_changes, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(hbox);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_notebook(GtkWidget *notebook)
+{
+ GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *text, *frame;
+ char buf[64];
+
+ DBG(DBG_proc, "xsane_fax_notebook\n");
+
+ /* Fax options notebook page */
+
+ setup_vbox = gtk_vbox_new(FALSE, 5);
+
+ label = gtk_label_new(NOTEBOOK_FAX_OPTIONS);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
+ gtk_widget_show(setup_vbox);
+
+ frame = gtk_frame_new(0);
+ gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+ gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
+ gtk_widget_show(frame);
+
+ vbox = gtk_vbox_new(FALSE, 1);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
+ gtk_widget_show(vbox);
+
+ /* faxcommand : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_FAX_COMMAND);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAX_COMMAND);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_command);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.fax_command_entry = text;
+
+
+ /* fax receiver option: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_FAX_RECEIVER_OPTION);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAX_RECEIVER_OPT);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_receiver_option);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.fax_receiver_option_entry = text;
+
+
+/* fax postscript option: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_FAX_POSTSCRIPT_OPT);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAX_POSTSCRIPT_OPT);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_postscript_option);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.fax_postscript_option_entry = text;
+
+
+ /* fax normal mode option : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_FAX_NORMAL_MODE_OPT);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAX_NORMAL_OPT);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_normal_option);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.fax_normal_option_entry = text;
+
+
+ /* fax fine mode option : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_FAX_FINE_MODE_OPT);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAX_FINE_OPT);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_fine_option);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.fax_fine_option_entry = text;
+
+
+ xsane_separator_new(vbox, 2);
+
+
+ /* faxviewer */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_FAX_VIEWER);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAX_VIEWER);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_viewer);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.fax_viewer_entry = text;
+
+
+ xsane_separator_new(vbox, 4);
+
+ /* fax width: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ snprintf(buf, sizeof(buf), "%s [%s]:", TEXT_SETUP_FAX_WIDTH, xsane_back_gtk_unit_string(SANE_UNIT_MM));
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAX_WIDTH);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.fax_width / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.fax_width_entry = text;
+
+ /* fax height: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ snprintf(buf, sizeof(buf), "%s [%s]:", TEXT_SETUP_FAX_HEIGHT, xsane_back_gtk_unit_string(SANE_UNIT_MM));
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAX_HEIGHT);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.fax_height / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.fax_height_entry = text;
+
+ /* fax left offset : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ snprintf(buf, sizeof(buf), "%s [%s]:", TEXT_SETUP_FAX_LEFT, xsane_back_gtk_unit_string(SANE_UNIT_MM));
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAX_LEFTOFFSET);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.fax_leftoffset / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.fax_leftoffset_entry = text;
+
+ /* fax bottom offset : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ snprintf(buf, sizeof(buf), "%s [%s]:", TEXT_SETUP_FAX_BOTTOM, xsane_back_gtk_unit_string(SANE_UNIT_MM));
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAX_BOTTOMOFFSET);
+ gtk_widget_set_usize(text, 80, 0);
+ snprintf(buf, sizeof(buf), "%4.3f", preferences.fax_bottomoffset / preferences.length_unit);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.fax_bottomoffset_entry = text;
+
+ xsane_separator_new(vbox, 4);
+
+ /* apply button */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ button = gtk_button_new_with_label(BUTTON_APPLY);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_fax_apply_changes, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(hbox);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_pop3_authentification_callback(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *pop3_vbox = (GtkWidget *) data;
+
+ gtk_widget_set_sensitive(pop3_vbox, (GTK_TOGGLE_BUTTON(widget)->active != 0));
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef XSANE_ACTIVATE_MAIL
+static void xsane_mail_notebook(GtkWidget *notebook)
+{
+ GtkWidget *setup_vbox, *vbox, *pop3_vbox, *hbox, *button, *label, *text, *frame;
+ char buf[64];
+ char *password;
+ int i;
+
+ DBG(DBG_proc, "xsane_mail_notebook\n");
+
+ /* Mail options notebook page */
+
+ setup_vbox = gtk_vbox_new(FALSE, 5);
+
+ label = gtk_label_new(NOTEBOOK_MAIL_OPTIONS);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
+ gtk_widget_show(setup_vbox);
+
+ frame = gtk_frame_new(0);
+ gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+ gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
+ gtk_widget_show(frame);
+
+ vbox = gtk_vbox_new(FALSE, 1);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
+ gtk_widget_show(vbox);
+
+
+ /* from */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_MAIL_FROM);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAIL_FROM);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_from);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.mail_from_entry = text;
+
+
+ /* reply to */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_MAIL_REPLY_TO);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAIL_REPLY_TO);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_reply_to);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.mail_reply_to_entry = text;
+
+
+ xsane_separator_new(vbox, 2);
+
+
+ /* smtp server */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_SMTP_SERVER);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_SMTP_SERVER);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_smtp_server);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.mail_smtp_server_entry = text;
+
+
+ /* smtp port */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_SMTP_PORT);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_SMTP_PORT);
+ gtk_widget_set_usize(text, 50, 0);
+ snprintf(buf, sizeof(buf), "%d", preferences.mail_smtp_port);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.mail_smtp_port_entry = text;
+
+
+ xsane_separator_new(vbox, 2);
+
+
+ /* create vbox for pop3 settings */
+ pop3_vbox = gtk_vbox_new(FALSE, 5);
+ gtk_widget_show(pop3_vbox);
+
+ /* pop3 authentification */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_POP3_AUTHENTIFICATION);
+ gtk_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_setup_pop3_authentification_callback, (void *) pop3_vbox);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_POP3_AUTHENTIFICATION);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.mail_pop3_authentification);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
+ gtk_widget_show(button);
+ gtk_widget_show(hbox);
+ xsane_setup.mail_pop3_authentification_entry = button;
+
+ /* place vbox for pop3 settings after check_button */
+ gtk_box_pack_start(GTK_BOX(vbox), pop3_vbox, FALSE, FALSE, 2);
+ gtk_widget_set_sensitive(pop3_vbox, (GTK_TOGGLE_BUTTON(button)->active != 0));
+
+ /* pop3 server */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_POP3_SERVER);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_SERVER);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_pop3_server);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.mail_pop3_server_entry = text;
+
+
+ /* pop3 port */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_POP3_PORT);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_PORT);
+ gtk_widget_set_usize(text, 50, 0);
+ snprintf(buf, sizeof(buf), "%d", preferences.mail_pop3_port);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.mail_pop3_port_entry = text;
+
+
+ /* pop3 username */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_POP3_USER);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_USER);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_pop3_user);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.mail_pop3_user_entry = text;
+
+
+ /* pop3 password */
+ password = strdup(preferences.mail_pop3_pass);
+
+ for (i=0; i<strlen(password); i++)
+ {
+ password[i] ^= 0x53;
+ }
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_POP3_PASS);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_PASS);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) password);
+ gtk_entry_set_visibility(GTK_ENTRY(text), 0);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.mail_pop3_pass_entry = text;
+
+ free(password);
+
+
+ xsane_separator_new(vbox, 2);
+
+
+ /* mailviewer */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_MAIL_VIEWER);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAIL_VIEWER);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_viewer);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.mail_viewer_entry = text;
+
+
+ xsane_separator_new(vbox, 4);
+
+ /* apply button */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ button = gtk_button_new_with_label(BUTTON_APPLY);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_mail_apply_changes, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(hbox);
+}
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_ocr_notebook(GtkWidget *notebook)
+{
+ GtkWidget *setup_vbox, *vbox, *hbox, *label, *text, *frame;
+
+ DBG(DBG_proc, "xsane_ocr_notebook\n");
+
+ /* OCR options notebook page */
+
+ setup_vbox = gtk_vbox_new(FALSE, 5);
+
+ label = gtk_label_new(NOTEBOOK_OCR_OPTIONS);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
+ gtk_widget_show(setup_vbox);
+
+ frame = gtk_frame_new(0);
+ gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+ gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
+ gtk_widget_show(frame);
+
+ vbox = gtk_vbox_new(FALSE, 1);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
+ gtk_widget_show(vbox);
+
+ /* ocrcommand : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_OCR_COMMAND);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_OCR_COMMAND);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.ocr_command);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.ocr_command_entry = text;
+
+
+ /* ocrinputfileoption : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_OCR_INPUTFILE_OPT);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_OCR_INPUTFILE_OPT);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.ocr_inputfile_option);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.ocr_inputfile_option_entry = text;
+
+
+ /* ocroutputfileoption : */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_OCR_OUTPUTFILE_OPT);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_OCR_OUTPUTFILE_OPT);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.ocr_outputfile_option);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.ocr_outputfile_option_entry = text;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_display_notebook(GtkWidget *notebook)
+{
+ GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *text, *frame;
+ char buf[64];
+
+ DBG(DBG_proc, "xsane_display_notebook\n");
+
+ /* Display options notebook page */
+
+ setup_vbox = gtk_vbox_new(FALSE, 5);
+
+ label = gtk_label_new(NOTEBOOK_DISPLAY_OPTIONS);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
+ gtk_widget_show(setup_vbox);
+
+ frame = gtk_frame_new(0);
+ gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+ gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
+ gtk_widget_show(frame);
+
+ vbox = gtk_vbox_new(FALSE, 1);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
+ gtk_widget_show(vbox);
+
+ /* main window fixed: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_WINDOW_FIXED);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_MAIN_WINDOW_FIXED);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.main_window_fixed);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
+ gtk_widget_show(button);
+ gtk_widget_show(hbox);
+ xsane_setup.main_window_fixed_button = button;
+
+ /* private colormap: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_PRIVATE_COLORMAP);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PREVIEW_COLORMAP);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.preview_own_cmap);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
+ gtk_widget_show(button);
+ gtk_widget_show(hbox);
+ xsane_setup.preview_own_cmap_button = button;
+
+
+ xsane_separator_new(vbox, 2);
+
+
+/* preview oversampling value: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_SETUP_PREVIEW_OVERSAMPLING);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.preview_oversampling);
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PREVIEW_OVERSAMPLING);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ xsane_setup.preview_oversampling_entry = text;
+
+
+ xsane_separator_new(vbox, 2);
+
+
+ /* preview gamma correction value: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_SETUP_PREVIEW_GAMMA);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.preview_gamma);
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PREVIEW_GAMMA);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ xsane_setup.preview_gamma_entry = text;
+
+ /* red preview gamma correction value: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_SETUP_PREVIEW_GAMMA_RED);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.preview_gamma_red);
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PREVIEW_GAMMA_RED);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ xsane_setup.preview_gamma_red_entry = text;
+
+ /* green preview gamma correction value: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_SETUP_PREVIEW_GAMMA_GREEN);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.preview_gamma_green);
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PREVIEW_GAMMA_GREEN);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ xsane_setup.preview_gamma_green_entry = text;
+
+ /* blue preview gamma correction value: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_SETUP_PREVIEW_GAMMA_BLUE);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ snprintf(buf, sizeof(buf), "%1.2f", preferences.preview_gamma_blue);
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PREVIEW_GAMMA_BLUE);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ xsane_setup.preview_gamma_blue_entry = text;
+
+ /* disable preview gamma for gimp plugin: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_DISABLE_GIMP_PREVIEW_GAMMA);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.disable_gimp_preview_gamma);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
+ gtk_widget_show(button);
+ gtk_widget_show(hbox);
+ xsane_setup.disable_gimp_preview_gamma_button = button;
+
+
+ xsane_separator_new(vbox, 2);
+
+
+ /* docviewer */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_HELPFILE_VIEWER);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_DOC_VIEWER);
+ gtk_widget_set_usize(text, 250, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.doc_viewer);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+ xsane_setup.doc_viewer_entry = text;
+
+
+ xsane_separator_new(vbox, 4);
+
+
+ /* apply button */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ button = gtk_button_new_with_label(BUTTON_APPLY);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_display_apply_changes, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(hbox);
+
+ preview_update_surface(xsane.preview, 1);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_enhance_notebook_sensitivity(int lineart_mode)
+{
+ int sensitivity_val = FALSE;
+ int sensitivity_mode = FALSE;
+
+ DBG(DBG_proc, "xsane_enhance_notebook_sensitivity\n");
+
+ if (lineart_mode == XSANE_LINEART_XSANE)
+ {
+ sensitivity_val = TRUE;
+ }
+
+ if (lineart_mode == XSANE_LINEART_GRAYSCALE)
+ {
+ sensitivity_val = TRUE;
+ sensitivity_mode = TRUE;
+ }
+
+ gtk_widget_set_sensitive(xsane_setup.preview_threshold_min_entry, sensitivity_val);
+ gtk_widget_set_sensitive(xsane_setup.preview_threshold_max_entry, sensitivity_val);
+ gtk_widget_set_sensitive(xsane_setup.preview_threshold_mul_entry, sensitivity_val);
+ gtk_widget_set_sensitive(xsane_setup.preview_threshold_off_entry, sensitivity_val);
+ gtk_widget_set_sensitive(xsane_setup.preview_grayscale_scanmode_widget, sensitivity_mode);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_lineart_mode_callback(GtkWidget *widget, gpointer data)
+{
+ xsane_setup.lineart_mode = (int) data;
+ xsane_enhance_notebook_sensitivity(xsane_setup.lineart_mode);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_grayscale_mode_callback(GtkWidget *widget, gpointer data)
+{
+ if (xsane_setup.grayscale_scanmode)
+ {
+ free(xsane_setup.grayscale_scanmode);
+ xsane_setup.grayscale_scanmode = NULL;
+ }
+
+ xsane_setup.grayscale_scanmode = strdup( (char *) data);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_preview_pipette_range_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_setup_preview_pipette_range_callback\n");
+
+ xsane_setup.preview_pipette_range = (int) data;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_setup_adf_mode_callback(GtkWidget *widget, gpointer data)
+{
+ if (xsane_setup.adf_scansource)
+ {
+ free(xsane_setup.adf_scansource);
+ xsane_setup.adf_scansource = NULL;
+ }
+
+ if (data)
+ {
+ xsane_setup.adf_scansource = strdup( (char *) data);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_enhance_notebook(GtkWidget *notebook)
+{
+ GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *text, *frame;
+ GtkWidget *lineart_mode_option_menu, *lineart_mode_menu, *lineart_mode_item;
+ GtkWidget *adf_option_menu, *adf_menu, *adf_item;
+ GtkWidget *gray_option_menu, *gray_menu, *gray_item;
+ GtkWidget *preview_pipette_range_option_menu, *preview_pipette_range_menu, *preview_pipette_range_item;
+ const SANE_Option_Descriptor *opt;
+ char buf[64];
+ int i, j, select = 1;
+
+ typedef struct lineart_mode_t
+ {
+ char *name;
+ int number;
+ } lineart_mode;
+
+#define LINEART_MODE_NUMBER 3
+ lineart_mode lineart_mode_strings[LINEART_MODE_NUMBER];
+
+ DBG(DBG_proc, "xsane_enhance_notebook\n");
+
+ /* enhancement options notebook page */
+
+ setup_vbox = gtk_vbox_new(FALSE, 5);
+
+ label = gtk_label_new(NOTEBOOK_ENHANCE_OPTIONS);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label);
+ gtk_widget_show(setup_vbox);
+
+ frame = gtk_frame_new(0);
+ gtk_container_set_border_width(GTK_CONTAINER(frame), 4);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+ gtk_box_pack_start(GTK_BOX(setup_vbox), frame, TRUE, TRUE, 0); /* sizeable framehight */
+ gtk_widget_show(frame);
+
+ vbox = gtk_vbox_new(FALSE, 1);
+ gtk_container_add(GTK_CONTAINER(frame), vbox);
+ gtk_widget_show(vbox);
+
+ /* lineart modus menu */
+ lineart_mode_strings[0].name = MENU_ITEM_LINEART_MODE_STANDARD;
+ lineart_mode_strings[0].number = XSANE_LINEART_STANDARD;
+ lineart_mode_strings[1].name = MENU_ITEM_LINEART_MODE_XSANE;
+ lineart_mode_strings[1].number = XSANE_LINEART_XSANE;
+ lineart_mode_strings[2].name = MENU_ITEM_LINEART_MODE_GRAY;
+ lineart_mode_strings[2].number = XSANE_LINEART_GRAYSCALE;
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new(TEXT_SETUP_LINEART_MODE);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ lineart_mode_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, lineart_mode_option_menu, DESC_LINEART_MODE);
+ gtk_box_pack_end(GTK_BOX(hbox), lineart_mode_option_menu, FALSE, FALSE, 2);
+ gtk_widget_show(lineart_mode_option_menu);
+ gtk_widget_show(hbox);
+
+ lineart_mode_menu = gtk_menu_new();
+
+ for (i=1; i <= LINEART_MODE_NUMBER; i++)
+ {
+ lineart_mode_item = gtk_menu_item_new_with_label(lineart_mode_strings[i-1].name);
+ gtk_container_add(GTK_CONTAINER(lineart_mode_menu), lineart_mode_item);
+ gtk_signal_connect(GTK_OBJECT(lineart_mode_item), "activate",
+ (GtkSignalFunc) xsane_setup_lineart_mode_callback, (void *) lineart_mode_strings[i-1].number);
+ gtk_widget_show(lineart_mode_item);
+ if (lineart_mode_strings[i-1].number == xsane.lineart_mode)
+ {
+ select = i-1;
+ }
+ }
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(lineart_mode_option_menu), lineart_mode_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(lineart_mode_option_menu), select);
+ xsane_setup.lineart_mode = xsane.lineart_mode;
+
+
+ /* threshold minimum value: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_SETUP_THRESHOLD_MIN);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ snprintf(buf, sizeof(buf), "%1.2f", xsane.threshold_min);
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PREVIEW_THRESHOLD_MIN);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ xsane_setup.preview_threshold_min_entry = text;
+
+
+ /* threshold maximum value: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_SETUP_THRESHOLD_MAX);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ snprintf(buf, sizeof(buf), "%1.2f", xsane.threshold_max);
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PREVIEW_THRESHOLD_MAX);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ xsane_setup.preview_threshold_max_entry = text;
+
+
+ /* threshold multiplier value: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_SETUP_THRESHOLD_MUL);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ snprintf(buf, sizeof(buf), "%1.2f", xsane.threshold_mul);
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PREVIEW_THRESHOLD_MUL);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ xsane_setup.preview_threshold_mul_entry = text;
+
+
+ /* threshold offset value: */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_SETUP_THRESHOLD_OFF);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ snprintf(buf, sizeof(buf), "%1.2f", xsane.threshold_off);
+ text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PREVIEW_THRESHOLD_OFF);
+ gtk_widget_set_usize(text, 80, 0);
+ gtk_entry_set_text(GTK_ENTRY(text), buf);
+ gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2);
+ gtk_widget_show(text);
+ xsane_setup.preview_threshold_off_entry = text;
+
+
+ /* grayscale scanmode name */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ label = gtk_label_new(TEXT_SETUP_GRAYSCALE_SCANMODE);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ if (xsane.grayscale_scanmode)
+ {
+ xsane_setup.grayscale_scanmode = strdup(xsane.grayscale_scanmode);
+ }
+ else
+ {
+ xsane_setup.grayscale_scanmode = NULL;
+ }
+
+ select = 0;
+ gray_menu = gtk_menu_new();
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scanmode);
+ if (opt)
+ {
+ if (SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ switch (opt->constraint_type)
+ {
+ case SANE_CONSTRAINT_STRING_LIST:
+ {
+ char *set;
+ SANE_Status status;
+
+ /* use a "list-selection" widget */
+ set = malloc(opt->size);
+ status = xsane_control_option(xsane.dev, xsane.well_known.scanmode, SANE_ACTION_GET_VALUE, set, 0);
+
+ for (i=0; opt->constraint.string_list[i]; i++)
+ {
+ gray_item = gtk_menu_item_new_with_label(_BGT(opt->constraint.string_list[i]));
+ gtk_container_add(GTK_CONTAINER(gray_menu), gray_item);
+ gtk_signal_connect(GTK_OBJECT(gray_item), "activate", (GtkSignalFunc) xsane_setup_grayscale_mode_callback, (void *) opt->constraint.string_list[i]);
+ gtk_widget_show(gray_item);
+
+ if (xsane.grayscale_scanmode)
+ {
+ if (!strcmp(opt->constraint.string_list[i], xsane.grayscale_scanmode))
+ {
+ select = i;
+ }
+ }
+ }
+ }
+ break;
+
+ default:
+ DBG(DBG_error, "grayscale_scanmode_selection: %s %d\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
+ }
+ }
+ }
+
+ gray_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, gray_option_menu, DESC_GRAYSCALE_SCANMODE);
+ gtk_box_pack_end(GTK_BOX(hbox), gray_option_menu, FALSE, FALSE, 2);
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(gray_option_menu), gray_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(gray_option_menu), select);
+ gtk_widget_show(hbox);
+
+ gtk_widget_show(gray_option_menu);
+ xsane_setup.preview_grayscale_scanmode_widget = gray_option_menu;
+
+
+ xsane_separator_new(vbox, 2);
+
+ /* autoenhance gamma */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_AUTOENHANCE_GAMMA);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_AUTOENHANCE_GAMMA);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.auto_enhance_gamma);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
+ gtk_widget_show(button);
+ gtk_widget_show(hbox);
+ xsane_setup.auto_enhance_gamma_button = button;
+
+ /* autoselect scanarea */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_PRESELECT_SCANAREA);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PRESELECT_SCANAREA);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.preselect_scanarea);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
+ gtk_widget_show(button);
+ gtk_widget_show(hbox);
+ xsane_setup.preselect_scanarea_button = button;
+
+ /* autocorrect colors */
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_AUTOCORRECT_COLORS);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_AUTOCORRECT_COLORS);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.auto_correct_colors);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2);
+ gtk_widget_show(button);
+ gtk_widget_show(hbox);
+ xsane_setup.auto_correct_colors_button = button;
+
+
+ /* preview pipette range */
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new(TEXT_SETUP_PREVIEW_PIPETTE_RANGE);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ preview_pipette_range_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, preview_pipette_range_option_menu, DESC_PREVIEW_PIPETTE_RANGE);
+ gtk_box_pack_end(GTK_BOX(hbox), preview_pipette_range_option_menu, FALSE, FALSE, 2);
+ gtk_widget_show(preview_pipette_range_option_menu);
+ gtk_widget_show(hbox);
+
+ preview_pipette_range_menu = gtk_menu_new();
+
+ j=1;
+ for (i=0; i<=3; i++)
+ {
+ snprintf(buf, sizeof(buf), "%d x %d pixel", j, j);
+ preview_pipette_range_item = gtk_menu_item_new_with_label(buf);
+ gtk_container_add(GTK_CONTAINER(preview_pipette_range_menu), preview_pipette_range_item);
+ gtk_signal_connect(GTK_OBJECT(preview_pipette_range_item), "activate",
+ (GtkSignalFunc) xsane_setup_preview_pipette_range_callback, (void *) j);
+ gtk_widget_show(preview_pipette_range_item);
+ if (preferences.preview_pipette_range == j)
+ {
+ select = i;
+ }
+ j+=2;
+ }
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(preview_pipette_range_option_menu), preview_pipette_range_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(preview_pipette_range_option_menu), select);
+ xsane_setup.preview_pipette_range = preferences.preview_pipette_range;
+
+
+ xsane_separator_new(vbox, 4);
+
+
+ /* ADF modus menu */
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+ label = gtk_label_new(TEXT_SETUP_ADF_MODE);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ if (xsane.adf_scansource)
+ {
+ xsane_setup.adf_scansource = strdup(xsane.adf_scansource);
+ }
+ else
+ {
+ xsane_setup.adf_scansource = NULL;
+ }
+
+ select = 0;
+ adf_menu = gtk_menu_new();
+
+ adf_item = gtk_menu_item_new_with_label(MENU_ITEM_SELECTION_NONE);
+ gtk_container_add(GTK_CONTAINER(adf_menu), adf_item);
+ gtk_signal_connect(GTK_OBJECT(adf_item), "activate", (GtkSignalFunc) xsane_setup_adf_mode_callback, NULL);
+ gtk_widget_show(adf_item);
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scansource);
+ if (opt)
+ {
+ if (SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ switch (opt->constraint_type)
+ {
+ case SANE_CONSTRAINT_STRING_LIST:
+ {
+ char *set;
+ SANE_Status status;
+
+ /* use a "list-selection" widget */
+ set = malloc(opt->size);
+ status = xsane_control_option(xsane.dev, xsane.well_known.scansource, SANE_ACTION_GET_VALUE, set, 0);
+
+ for (i=0; opt->constraint.string_list[i]; i++)
+ {
+ adf_item = gtk_menu_item_new_with_label(_BGT(opt->constraint.string_list[i]));
+ gtk_container_add(GTK_CONTAINER(adf_menu), adf_item);
+ gtk_signal_connect(GTK_OBJECT(adf_item), "activate", (GtkSignalFunc) xsane_setup_adf_mode_callback, (void *) opt->constraint.string_list[i]);
+
+ gtk_widget_show(adf_item);
+
+ if (xsane.adf_scansource)
+ {
+ if (!strcmp(opt->constraint.string_list[i], xsane.adf_scansource))
+ {
+ select = i+1;
+ }
+ }
+ }
+ }
+ break;
+
+ default:
+ DBG(DBG_error, "adf_scansource_selection: %s %d\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
+ }
+ }
+ }
+
+ adf_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, adf_option_menu, DESC_ADF_MODE);
+ gtk_box_pack_end(GTK_BOX(hbox), adf_option_menu, FALSE, FALSE, 2);
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(adf_option_menu), adf_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(adf_option_menu), select);
+ gtk_widget_show(hbox);
+
+ gtk_widget_show(adf_option_menu);
+
+
+ xsane_separator_new(vbox, 4);
+
+
+ /* apply button */
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ button = gtk_button_new_with_label(BUTTON_APPLY);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_enhance_apply_changes, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ xsane_enhance_notebook_sensitivity(xsane_setup.lineart_mode);
+
+ gtk_widget_show(hbox);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_setup_dialog(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *setup_dialog, *setup_vbox, *hbox, *button, *notebook;
+ char buf[64];
+
+ DBG(DBG_proc, "xsane_setup_dialog\n");
+
+ device_options_changed = 0;
+
+ xsane_clear_histogram(&xsane.histogram_raw);
+ xsane_clear_histogram(&xsane.histogram_enh);
+ xsane_set_sensitivity(FALSE);
+
+ xsane.preview->calibration = 1; /* show monitor calibration image */
+
+ setup_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_position(GTK_WINDOW(setup_dialog), GTK_WIN_POS_MOUSE);
+
+ snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_SETUP);
+ gtk_window_set_title(GTK_WINDOW(setup_dialog), buf);
+ gtk_signal_connect(GTK_OBJECT(setup_dialog), "destroy", (GtkSignalFunc) xsane_destroy_setup_dialog_callback, setup_dialog);
+ xsane_set_window_icon(setup_dialog, 0);
+
+ /* set the main vbox */
+ setup_vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(setup_vbox), 0);
+ gtk_container_add(GTK_CONTAINER(setup_dialog), setup_vbox);
+ gtk_widget_show(setup_vbox);
+
+ notebook = gtk_notebook_new();
+ gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP);
+ gtk_box_pack_start(GTK_BOX(setup_vbox), notebook, FALSE, FALSE, 0);
+ gtk_widget_show(notebook);
+
+
+ xsane_saving_notebook(notebook);
+ xsane_image_notebook(notebook);
+ xsane_printer_notebook(notebook);
+ xsane_fax_notebook(notebook);
+#ifdef XSANE_ACTIVATE_MAIL
+ xsane_mail_notebook(notebook);
+#endif
+ xsane_ocr_notebook(notebook);
+ xsane_display_notebook(notebook);
+ xsane_enhance_notebook(notebook);
+
+
+ /* set the main hbox */
+ hbox = gtk_hbox_new(FALSE, 0);
+ xsane_separator_new(setup_vbox, 2);
+ gtk_box_pack_end(GTK_BOX(setup_vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+
+ button = gtk_button_new_with_label(BUTTON_OK);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_options_ok_callback, setup_dialog);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_CANCEL);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_close_setup_dialog_callback, setup_dialog);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(setup_dialog);
+
+ xsane_update_gamma_curve(TRUE /* update raw */);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/frontend/xsane-setup.h b/src/xsane-setup.h
index 411faa8..efb17f9 100644
--- a/frontend/xsane-setup.h
+++ b/src/xsane-setup.h
@@ -2,8 +2,8 @@
xsane-setup.h
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
diff --git a/src/xsane-startimage.pnm b/src/xsane-startimage.pnm
new file mode 100644
index 0000000..4ccf5e7
--- /dev/null
+++ b/src/xsane-startimage.pnm
@@ -0,0 +1,332 @@
+P6
+# surface: 0 0 400 547 400 547
+# time: -1
+400 547
+255
+888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888999::::::;;;;;;::::::<<<======>>>>>>======<<<<<<<<<;;;:::::::::::9::9999999999888888998888999;;;>>>AAAFFFIIIKKKLLLKKKIIIGGGEEECCCBBBAAABBBCCCEEEIIIMMMPPPQQQPPPNNNLLLIIIFFFBBBBBB@@@???>>>===>>>>>>===;;;<<<;;;:::999999888777777888777888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúú÷÷÷ôôôńńńďďďďďďďďďńńńňňňôôôöööööö÷÷÷řřřúúúűűűüüüüüüţţţţţţţţţţţţ˙˙˙˙˙˙ţţţţţţ˙˙˙˙˙˙ţţţ˙˙˙˙˙˙˙˙˙ţţţýýýűűűůůů÷÷÷öööőőőöööőőőöööőőőôôôóóóóóóóóóôôôôôôőőő÷÷÷ůůůůůůúúúűűűűűűűűűüüüüüüýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýüüüüüüűűűúúúúúúůůůúúúúúúűűűűűűüüüýýýýýýýýýýýýýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţýýýúúůööőööőůůůűűűüüüüüüüüüüüüýýýýýýţţţţţţţţţţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţţţţţţţţţţţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüűűűűúúúúúúűűűűűűüüüüüüüüüüüüýýýţţţţţţţţţţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüűűűúúúôôóěěëěëęíěëîíěđđďńńńóóóôôôôôôóóóňňńđďîííěëéččćäĺăáăáßßŢÚŇĐČÍĘÂŇŃĘŮ×ŇŰÚŐÝŰ×ÝÜŘÜŰŘÜŰ×ŰÚÖÜÚÖßŢÚăâßçćäëëéđďîňňńöööűűűüüüýýýýýýýýýýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüüüüüűűűúúúúúúűűűűűűüüüýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüűűűúúúööőčçĺŢÝÚÚŮŐ×ÖŃÎÍĹČĹťČĆźĘÇžĚÉÂĐÍČÔŇÍ×ÖŇÚŘŐŰŮŐŮŘÓ×ŐÎŇĐÇÎËŔÉĆşĹ³ÿ°Á˝­żťŠŔş˘ŔşŁŔť§ŔźŠŔťŠżş¨˝¸¨ťśŚš´Łˇ˛Ÿľ°ľŻœśąŸ¸ł˘ťˇ§Á˝°ÇĂš×ŐĎäăŕéčćíěęďďîóňńőőôůřřűűűüüüüüüüüüüüüüüüüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúůřř÷řř÷đďîçćăĺäáĺäáĺäâćĺăçćäçćăääáßßŰŮŘÓÓŇĚÎÍÇĘČÂĹÄ˝ÁżśşˇŠšľ¤şľ¤şľŁťľ˘ž¸˘žšŁźśŁş´Ąˇą ľ°žłŽœłŽœľ°œśąœşłžˇžÂťŸÄ˝ Ćż Çż Čż ÉŔ ÍĹŁŃČŚÎĆĽĚĤĚÄĽÍÄŚÍĹŚÍŧÎĹŚÍĹĽĚÄŁÉŔŸÄşš˝´•š°’ˇŻ“ˇ°–šłŸžšŤÄŔ´ĘĆ˝ĎĚÄ×ŐÎŕßÚěëéđďîńńđňňńóóňôôóőőô÷÷öůůůúúúűűűűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţţţţţţţţţţţţţţţţţţýűűúř÷÷őőóôôňóóńňńďđďíííęéčĺŮ×ŃĐÎĆĚĘÂĘÇžÁž°˝¸¨˝¸§˝¸§˝¸ŚźˇĽşśŁ¸ł ˇ˛ˇą›ˇą™¸ą™š˛™ş´šťľšžˇ›ÄźžĚĤŃɨŇĘŠŃÉŠŃÉŠĐȨĎȧÎǧÍŤËĂĄËĂĄĎÇĽŇÉĽŇɤǪ̋ŮĎŹÚŃŹŘÎŞŘΊŮĐŤÚŃŤŰŃŹÝÔ°ßÖ˛ßŐ˛ßÖłßÖ´ßÖłßÖłŢŐ˛ÚŃ­×ΊÔĘĽĎĹ ÍÞĚœɿ™Äş–¸•Ŕś”źł•ş˛•šą–šą˜š˛™źśĄČĂ´ĚÉťÎËżĐĚÁĎĚÂĐÍĂŇÎĹÖÓĚŰŮÓßŢŮăâŢććâëęčńńđôóóőőôůůůüüüţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýýýýýýýýýýúúúőőôóňńńđđđďďďîîîîěíěëëęčéčćäăßÖÔÍÎËÂÉĆťĆĂśĂŔłÁ˝ŻžťŤ˝šŠşśĽśąšś°˜ˇ°—¸ą—źľ˜ÂşœĂťĂźžĂźžĂźĂźÄźœĆ˝ČżžĚĂĄĐČĽÔ˨ÖÍŞ×ĎŹŮĐŹŮĐŤÚĐŤŰŇŽÝÔ°ÜÔ°ÜÓŽÜÔŻŢŐąŢŐąÝÔŻÚŇŹÚĐŤŰŃŹÚĐŤŮĎŠÜÓ­ŢŐąŢŐąÝÔŽŰŃŹÚĐŞÜŇ­ßÖ˛ŕŘ´áŮśăÚšĺÝ˝äŰťŕ׾ŕŘľŢŐ˛ŮĎŞ×ͨ×ͧÓĘŁŇɢŇČĄÎĜÍ›ÎÜËÁšÄš“ż´ź˛ŽźąŽťąťąŽť˛’źł•ş˛•¸°”¸°”¸°•¸ą˜şłœ˝ˇ˘Ŕť¨ÁźŞÂ˝ŹČÄľŃĎÄÔŃÇŮÖÎčĺŕđďíóóń÷÷öűűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýýýýýýýýýýýýýýýýýýýýýýýýýüüüőőőîîíëęčéčćçćäĺăáŰŮÔŇĎČÎËĂĘĆ˝ÇĝƸĂŔľÁ˝˛žş­şśŠ¸˛Łś°›ľŽ—śŽ”ś­“śŽ“ˇŻ’¸°’šą’ťł’Á¸–Ç˝™ČŔ›ËžĎĆŁŐĚŠŘĐ­ÚŇ°ÚŇ°ŘĐ­ŘĐ­ÚŃŽÚŃŽŮĐ­ŰŇŽŢÖ˛ßÖłßÖ˛ŢÖ˛ŢŐąŰŇŽÚŃŹŰŇ­ÜÓ°ÜÔŻÝÔ°ŕ׳áŮľŕŘľŕŘ´ÝÔ°ÚŃŤÚĐŞÚĐŞŘĎŞÝÓŽßÖąßÖąßÖąŢÔŻÚĐŞÜÓ­ßײŢÖąáŘśćŢ˝çßżĺÝźâŮśŢŐ˛ÚŇ­ŮĐŤŰŇ­ÜÓ­×ĎŞÔˤŇÇ ÎÜĎĞĐƞËŔ™Ĺş’ÂśŔľŽż´żłÁśÂ¸‘ż´Ž˝ą‹źąŒ˝ąŒť°ŠšŽ‰ş°Œť˛ť˛ťąşąŽť˛‘ťł—ş˛—şłšÄż­ÎÉźŇÎĂăáŰëęćńđî÷÷őůůůűűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýűűűúúúúúúúúůöööđđďííëëëéęéčééçééçččçččćççäääâŢÝŮÎĚÄĆÚÿłÁź°ŔťŽžšŞźˇĽźśĄťľ źśŸźśžžˇžż¸żšŔšœÁ¸œÁ¸šÄźšČž›Čž›Éž›Éż›ËÁœĚÁœĚœÎĞŃǢÔĘĽ×ΨŰŇŽß׾ŕءá١áءáŘśß׳ß׳ß׳ŕ×´á١ăŰşĺÜźă۸áŘľŢÖ˛ÝÔ°ŰŇŽŰŇ­ÜÓŻÝÔŻŘͨŮĎŞăÚšćŢ˝ĺÝ˝ćŢźáŘśÜÓŻÝÔŻŰŇ­ŘĎŠÚŃŹŰÓŽÚŃŤŰŇ­ŰŇ­ŮĎŠÜÓ­áŘłŕŘ´áŮśăŰšäÜşĺÝźĺÝźß×´ŮŃŹÚŇŹÝÔŻÝÔŻŘΨŐËĽÓɢŃƞĎĜÍ›ʿ˜Ęž–ËŔšĘż˜Ĺş“ż´˝˛‹ž˛Œ˝˛‹ŔľÄš‘ø‘ÁľŽÁľÄ¸‘Ĺš’ø‘Ĺš‘Ćť“Ćť”Á¸’ž´˝łŽşąšŻ‘¸Ż’ŔšĽÄżŹĎËžŘÖĚŢÝŐćĺŕďîëöőőřřřůůůúúúűűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţýüüüüüüüüüüüüüüüűűűűűűúúúöööďďíěëčééĺćĺáâŕÜŘ×ĎĎÍÂËČźÇġÄŔ˛Á˝ŽžşŞťˇŠšľ§ˇł¤ś˛˘ś˛ źˇ ŔťĄÁťĄÂťĄĂťĄĂťĄĹ˝˘Ę¤ÎĆŚŃɧÓʧÓĘŚÔËŚŐ̧ÖΊÖΨÓʤŇȢŇÇĄŃÇĄÓɢÖĚŚ×ͧŐËĽÔËĽÖĚŚŘĎŠÚŃŤŰŇ­ŢŐąăÜťćŢżĺŢ˝âÚ¸âŮľáŮ´ŕŘłß׳âŮśćŢ˝čŕÁćßžĺÜşáŘ´ŰÓŽŮĎŞŘĎŠŮĐŞŰÓ­ÝÔŻŘΊŘÎŞŕŘśäÜźćŢžćŢžäÜťáÚ¸áŮśÝÔŻŘΨ×Ψ×ΧÔˤÖÍŚŮĐŞŰŇŹŢŐ°âŮ´âŮľä۸äÜşáŘśß׳ßÖ´ÜÓŻŮŃŤÚŃŹŰŇ­ŰŇŤÖˤŐĘŁÖ̤ÖĚĽÓČĄÎÛ˿˜ĚŔ˜ĎĝĐŝĚÁ™Ĺš’ÁśŔľŔ´Ä¸‘Éž–Č˝•Ćť“Ĺş’Ćť“Çť“Čź”Ęž–ĚÁ™ÎĜÎĝÎÜĚÁšČź”Áśż´˝˛ŽšŻş°’š°•šą—ť´Äż­ĎËżÔĐĆŮÖÍÜŰÔëęçďďíňňđöööűűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüúúúúúůůůůôóňňňńňňđńńďđđîďîíííëëëéééćßÝŘŃĎĹĚÉ˝ČŸĹ³ÿ°ÁźŞŔť¤Áť˘Áş Ăť Ĺ˝ĄČŔŁĘĂŚĚŨÍƨÎÇŠĐÉŠÓĚŤÖĎŹ×Ď­×ĎŹÖÎŞÖÍŞ×ÎŤŘĐ­ŰŇ­ÜÓŽÜŇ­ŮĎŠÖĚŚ×ĚŚŘĎŠŘĎŞ×ĎŠÖ̧ŐËĽÔËĽÔʤÔĘŁÖĚŚŘĎŠŘĎŠŘΨŮĐŠÝÔŻÜÓŽÝÔŻăŰťćßżćŢžăŰšâÚśáŮľŢÖąŢÖąâŮśćŢ˝çßŔäÜšâŮľßŐąŘͨÓɢŇÇ ÔʤŘĎŠŰŇ­ÝÔŻÝÔŻÜÓŻßÖ˛ăÚˇă۸ĺÝťćŢ˝ă۸ŢŐŻŘϨÖĚĽÓɢŃƞÓɢŮĎŠßÖąáŘ´âŮľâŮľĺÜşĺŢ˝ß×´×ΊÔʤÔʤÖĚŚ×Ψ×ͧŐˤŇǟÓČĄ×ÍŚŰŃŤŮĎŠŇČĄÍÁšĘž—ËŔ˜ÍšÎÛÍšËŔ˜Éž–Çź”Çť”É˝•Ęż—ËŔ˜ËŔ˜Čź•Çť“ËŔ˜ÍÁ™ÍšĎĝĐŞĐŞĎĜËŔ˜Çź”Çź”Çť”ĸ’¡‘żľ˝˛Žťąşąš°“ˇŻ“ˇŻ•ˇŻ—ÄŔ°ÉšĎĚŔÜŰÓćĺâíěęőôóúúůüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűöööîíęęęçééćčçäŰŮÓ×ŐĎÓŇËĐÎĆÍĚÂĚĘŔĘÇźÇáÄŔ˛ŔťŠÁťŁĆżĽČÁŚÉçĘĂŚËÄĽÍĆĽŃÉŚÓËŞ×ĎŻÜÔłŢÖśßלß׾ß׾ŢÖłÜÔ°ŰÓŽŰÓŽŰŇ­ÚŇ­ŮĐŤŮĎŞŰŇŹÝÔ°ÜÓ­ÚĐŤÚŃŤŰŃŤÚŃŹÚĐŤŮĎŠŮĐŞÜÓŽŘΨÔĘŁŐËĽŐˤÔÉŁÓɢÖĚŚŮŃŹŰŇ­ÜÓŽÜÓŻÚŃŹŮĐŞÝÔ°ßÖ´á١ĺÝťĺÝťăÚśŕŘłŕ׳âŮľäŰšĺÜşâŮľŢŐ°ŮĎŠŃƞĚÁšÍÁšŇČ ŘΨÚŃŹÜÓŻŢÖłâٸâÚˇâŮľâŮľŕ×´ß׳áŘ´ŕײÜÓ­ÖĚĽĎŝÍšŃƟŘΨŕײâŮľâŮľâŮľáŮśß׾ÚŇ­ÔĘŁĐŞĐƞĎŞĚÁ›ÎÝŃƟĐŝŇČ ŐˤÖĚĽÓČĄÎÜÍšÎÛĐŝĐŝĎĜÎÛʿ—Çť“Čź”Čź”Çť“øĆť“ÍšÎÜÍšËŔ˜Ëż—Ëż˜ÍšÎÜĐŞĐŞÎĝ̛͚ĚÁ™Ęž—Ęž—Ęž—Ćş“Ĺš‘á‘żłŽťŻ‹¸­‰ˇŹˆľŤŠ˛ŠŠ˛ŞľŽ–ş´ŸÁ˝ŤÓĐĆáßŮęéĺóóńůůůűűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýřř÷ďîěĺĺŕŰŮŇĐÍÂĚÉźÉĹšĹÁłżťŠżš¤żšŁżş˘żş˘Ŕş˘Âź˘Ĺ˝˘ÉÁŁÎĆŚ×έßÖľŕ١ß×´ÝÔ°ÜŇ­ŢŐąŕŘ´ŕײâŮľäŰşäÜťâÚ¸ŕŘ´âÚˇáŮśÝŐąŰŇ­ÚŃŤŮĐŞŮĐŤŮŃŤŮĎŞÜÓ­ŢÖąÚŃŤÖͧÖ̧ÚŃŤßÖąßÖ˛ÝÔŽŰŇŹÜÓ­×ĚŚŃƟŃĆ ÓČĄÓÉĄŇČ ÖËĽŰÓŽŢŐąÝÔŻŘĎŠÖÍŚÖĚŚŘΧŘĎŠŰÓŽäÜťĺÝťŕŘ´ßÖąŕײáŘ´âŮľâŮ´ßײÚĐŤÓɢÍÁšËŔ˜ÎÛÓČĄ×ͧŘĎŞŮĐŤÝŐąĺÜźâÚ¸ßŐ°ÜÓ­ŮĐŠŘΨÜŇ­ŢÔŽŰŃŤÔÉŁÎÛÎÛŇČĄŘΨÜŇŹŢÔŽŢÔŻÝÓ­ŮĎŞÖͧŘϨÖ˼ѪΛ˿˜Çź”Ęż—ÎÛΚЪŇČ ĎĜɾ–Ćş“Ęż—ŃƟÔĘŁÓÉĄŃƟÎÜȼ”ÂśŽĂˇĹš‘Ćş“¡Ćť“ĎĜŇČĄĐŞʾ—Čź”Čź”ËŔ˜ÍšĎĜŇČ ÓČ ŃƟĐŝĎŞĎŝĎĝÎÜʿ—Ćş’ᐿłŒź°Š˝ąŠžłŒž˛‹şŻˆšŽ‡ˇ­‡ˇŹ‡ľŤˆľŹ¸ąšÂźŞÔĐĹâŕŮëęćôóńřř÷üüüýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýüüüűűűůůůööőíěęßÝŘŃÎÄĘÇšÄŔ­Â˝¨Ă˝ĽĆżĽÉÁĽÍŧÔËŹŘĎŻŮŃąŰÓ´ÝÔ´ŢŐ˛ÝŐ˛ß×´áŘľâ١áŘśŕ×´áŘľáŘ´ŕŘłăŰšäÜťâŮśâŮľâÚˇâ١ß׳ŢÖ˛äÜťĺÝźŕŘľÝÔ°ÚŇ­ÚŃ­ŘĐŞŘΨŘĐŞÝÔŻŕײÜÔŻÖͧÓȢŐËĽŰŇŹŕ׳áŘ´ßŐ°ŮĐŞÔʢĎĜ˿—ĚÁ™ĐŝŇČĄŘΨÝÔŻÜÔŻ×ĎŠÓÉĄÓÉĄŐˤ×Ί×ΨŘΨÝÔ°ŢÖ˛ŰÓŽÚĐŤÜÓ­áŘłáŘ´ßײŰŇ­ÖĚĽŃƟĎĜŃƟÓɢŐˤÖĚĽ×ÍŚ×ÍŚŮĐŤŢŐąÜŇ­×ÍŚÔɢÔĘŁÖĚĽ×ĚŚŐˤŇÇ ĐŞŃƞÓɢÖĚŚÖͧÔɢŐˤ×ÍŚÓÉĄĎÜÎÜŘΨŮĎŠĐŞĚŔ˜Ęž–ĚÁ™ÎÛΚʾ–ĚŔ˜ÎÛËŔ˜Ä¸‘Ŕ´Çź”ŃƞÔĘŁŐËŁÔɢĎŝɽ•Áľź°‰żłŒĆş’Éž–ÎÛŇÇ ŃǟΚɽ–Čź”Éž–ĚŔ˜ÎÛĐŝŇÇ ŇÇ ĎĜĚÁšÎĝŐËĽŐËĽŃÇ ÍÛɽ–Ĺš’ŔľŽÂśÄš‘Äš‘ÂśÂśŽÁľŽŔľŽŔľŽž˛ŒšŽ‰śŤ‡´Ť‰¸°”˝ś ÇÁ°ŐŃĹáßŘíěéńđîőôňůřřűűúüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţýýýúúúóóňîíěéčćäăŕŢÜÖŃÎÄDz½¨ÄžĽČÁĽÍŧŃĘŞŘĐŻÜÓąŕ׾â١â١â١âÚšăŰşäÜťăŰşäÜťĺÝťä۸áŘľŕŘľäÜşĺÝşâŮśáŘśŕءáŮľä۸ĺÜťâŮśŢÔ°ÜÓŽäÜźçßżâ١ÝŐąÜÓŻÝŐ°ŰŇ­×ΨÓɢŮĎŠŕײßײÚĐŤŐˤÖÍŚŰÓ­áŘłâŮľáŘłÝÓŽÖËĽÎÛǻ“Çť“ĚŔ˜ĐŝÔĘŁÖĚŚŐĚĽÓɢĐŝĎĜĐŝŇɢŃÇ ĐŞŇÇĄÖËĽŘĎŠŰŇŹŢŐ°áŘłŢŐ°ÚĐŤŐËĽÓɢŇČ ĐƞÓɢÖͧÔĘŁÔɢÖˤÖĚĽŐËĽÔÉŁÓȢŇČ ÓČĄŐĘŁŐËŁÓÉĄĎĝ͚ЪÓČĄŇČ ŃÇ ĐşĐŝŇČ ÔĘŁĐŞʿ—Č˝•Óɢ×ĚŚĐŝ˿—Ęž–ÎÛĎĜĚÁ™ĂˇÇť“ÍšÍÁ™Çź”øÇź”ΚŃǟŐĘŁŐËŁÓČĄÎÛź’š­†š­†Ŕ´ŒÇť”ĚÁšÍ›ĚÁšĘż—Č˝•Čź”Č˝•Ęż—ËŔ˜ĚŔ™ÍšÎÛĎĜĎĝÔĘŁÚŃŹŘΨÓɢĐŝÎÛËŔ™Ćť“É˝•ĚÁšÉž–Çź”Č˝•Čź”Ĺš’øÁśŽŔ´żłŒ˝˛‹ť°Šˇ­‰ˇ­š°”ÁšŁÉòÍČşÔĐÄăáÚéčăîíéôóňúůůüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýýýüüüűúúřůů÷ř÷÷öööňňńćĺâÜÚÔÔŇÉÎĘżČĜĿŽÂť¤ÂźĄĘ¤ÔĚŤÜÔłŢÖľŢÖłß×´áŘśäÜťĺÝźăŰšáŘśŕ׾ăŰšćßżçŕÂčŕÁçŢżä۸âŮľăÚˇćŢ˝ćŢ˝áŘ´ÝÔŻÝÔŻáŘ´äŰšĺÜťâŮśÝÔŻŰŃ­ăŰşçßżäŰşŕŘľŢÖ˛ŢŐąÜÓŽÖͧÍ›ÔȢŢŐ°áŘłŢŐ°ŮĐŞŮĐŤÜÓŽŢŐ°ÝÔ°ÝÓŽÜŇ­ÖĚŚĎÜȼ•Ćť“É˝•ÍšĐŝĎĝÍšʿ—É˝–Č˝•Ęž—ĎĜÎÛʾ—Çź”Ęż—ĐƟŘϨŢÔŻŢŐ°ÚŃŤŐˤŃǟŇÇ ÓɢŇǟÓɢÔËĽĐƟĐŝŇČĄÔʢŃƟËŔ˜ĚŔ˜ĎĜÔʢŐËŁÓɢĐŝĚÁ™ĚŔ˜ĐŞŇÇ ÎÛʿ—É˝–ÎÛŃƟŇÇ Đĝɞ–Ćť“ĐŞÔĘŁŃƟĎĜÍšĚÁ™Íšɾ–źąŠÁśĚÁ™ĐŞÎĜËŔ˜Ëż˜ÍÁ™ĎĜĐƞŃǟĐƟÎÜȽ•ź°‰¸­†źą‰ĂˇÉ˝•Éž–Çť”Ĺš‘áĹš‘Çť“Ęż—Ëż—Ęž–Čź”Č˝•ËŔ˜ŃƞŮϨŢŐ°ŰŃŤŐʤŇǟŃǟŃƞÍÁšĎÜŃƟĚÁ™Ęż—͚͚ɽ–Ĺš‘Ĺš‘Ĺš’Äš’Äš‘᏿łŒ˝˛‹ź°ŠşŻ‹¸Žˇ­ŽśŽ‘˝ˇŸżşŚĂžŹŇĎĂâáŰěëčőôóůřřüűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýűűűööőńńďđďíđďěěëčĺăŢăâÝŕŢŮÜÚÔŐŇÉČĜÞŞĂ˝ĽÄ˝ŁĹž˘ČŔ˘ÍĹĽÔĚŤŰÓąß׾âÚšĺŢżäÝ˝âÚˇâ١ăÚ¸äŰšăÚ¸âÚśáŮśăÚ¸ĺÜťčáĂçßżä۸ăÚśâŮľâŮľăÚśŕŘ´ÜÔŻÚŇ­ŰÓŽßÖ˛ÝÔŻÜÓ­ßÖąŢŐ°ŰÓŽŕ×´ĺÝťçŕŔçŕÁăŰşÚŃŹŘΧÔĘŁĚŔ™ĐŝŘΨßÖ°ŕ׳ßÖąÜÓŽŮĐŤ×ΧŇÇ ĎĜŃƟĐŞÎÜĎŝÍšʾ—ÍÁ™ĎĜĚÁ™Ä¸‘ťŻˆ¸­†żłŒÉ˝–ŃƟŃƟĚÁ™Ŕľź°‰żłĘż˜ÔɢÖĚĽ×ĚŚÔĘŁĐŞĐŞŃǟÓɢĐƞĚÁ™Éž–Ęž–ËŔ˜ÎÛÎÛʾ—Éž–ĚÁ™ÓɢÓČĄĎĜ˿˜Ëż—ÍšĎĜÍšɽ•Ä¸Äš‘Ëż—ËŔ˜ËŔ˜Íš˿—É˝–ĐŞŐĘŁŐˤŮĎŠŐĘĽČź•Çť“Äš’ľŤ†ť°ŠÉž—ÓÉŁŐĚŚÓɢŇČĄŇǟĎĜɾ–Ĺš‘Äš‘øÄ¸Ćť“ĸ‘ÁľŽĆş’Ęž–Ęž–Âśš­†ˇŤ„ťŻˆÄ¸‘ÎĜĐŞĚÁ™Ĺš‘żł‹żłŒČ˝•ŐˤÝÓŽÚŃŤÖĚĽÔɢĐŞÎÛŃƟŇÇ Ďŝʿ˜Ëż—ÎÛĎĜĚÁ™Éž–Éž–Ęž–Ęž–É˝•Ĺš’ÁľŽÁľÄ¸Ĺš‘Ŕ´ŒşŽ‡ľŞ„˛¨„ŻĽ‚ŹŁŽŚˆ´­”żşŚÍĘ˝ŮÖÎęéćóňđőőó÷ööřřřúúúüüüţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűööőďďěččăŕßŘÚŘĎŘÖÍ×ÔËÓĐĹĚČşČÄľĹÁ°ÄžŤÂ˝§Ä˝ŁËäĎĆĽÔËŠŘĎ­ŮŃŽŢÖ´âÚšâŰšăŰšĺÝźçßŔćßżäÜťáŘśáŮśĺÝźĺÝźćŢźćŢžćŢžçŕŔéâÄäÜťßŐąŕ׳âŮľáŘ´ŢŐ°ŰŃŹŮĐŞŘĎŠŘĎŠŘĎŠ×ͧ×ͧŰŃŤŰŇ­ŰŇ­ÜÓ­ŢŐąáŘśäÜťâ١ŮĎŠÖĚĽÓɢĚŔ˜ĎĜÖĚĽÚĐŤÜÓ­ÜŇ­ÚŃŤ×ΨŐˤÎÛɾ–Ęż—Čź•Ćş“Ęž—ËŔ™ĚÁ™ÎÛĚÁ™Çť“žł‹śŞƒł§ťŻˆĹš‘Ëż˜ĎĜÎÛż´Œ´¨‚ł¨‚ÁľŽËŔ˜ÍšŇǟÔʢŃƞĐƞŇČ ŇČ ÎÛȽ•Ĺš‘Çť“Ęż—ĚŔ˜ÍšĐŞĐŞĐŞÓɢÎÛƻ“Çť”Éž–Ëż—Éž–Ĺş’ÁľŽž˛Š˝ąŠŔ´ÂśÄš‘Çť“Čź”Č˝•Ęż—͚Ъ×ͧŐˤɽ–Čź”Ćť“ˇ­‡ť°ŠČ˝•ŃÇ ÔĘŁŇČĄŃƞĎĝÎÛɽ•ĂˇŔ´ž˛‹ž˛ŠÂśÄ¸Ĺš‘É˝•É˝•Ă¸˝ąŠľŞƒąŚˇŹ†ÁśŽÉž—ĎĜÎÜ÷¸­†śŤ…ż´ĚÁšÓÉŁÖËĽŐˤÓɢÔɢÔĘŁÓČĄŃƟÎÛȼ”Ęž–ĐŝÎÛÍ›ĐƟŃǟŃÇ ĐŞĚÁšÇź”ĸĂˇÄ¸Ăˇž˛‹¸­†´Ş„˛¨ƒ°ŚąĽ€°Ľ€­˘­¤ƒ°¨Œś°™ÇĂłĐÍŔŐŇÇŰŘĐâŕÚíěéňńđ÷÷÷űűűýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüřř÷ôôňääŢŢÝŐŐÔÉĎÍŔËȸÉŲÇÂŽĂżŤÂźŚÁşŁÄ˝˘Ę¤ÍĹĽŃÉŠÖÍŤÖÍŠÖͨÜŇŽŕ׳ŕ×´âÚ¸ĺÝ˝ćŢżćŢžĺÝźäÜťĺÝźäÜťß׳ŕŘľçßŔéáĂéâĂéáĂéáÂéáÂčáÂâ١ÜÓŽŕŘłâŮśßÖąÚĐŞŐĚĽŐˤÓĘŁŇČĄŃƟŇÇ ÓɢÔĘŁÖͧŘĎŞ×Χ×ĚŚŮϨŢÔ°ŢŐąÚĐŞ×ΧÔʤÎÛĐŞŐĘŁÔĘŁÔĘŁŐˤŐĘŁÔʤÔĘŁÎÛȼ”Ćş’Áľź°‰żł‹Äš‘Ęż—ĚŔ™Çź”ÂśŽ˝ąŠš­†śŞ„şŽ‡żł‹ÁľÇź”ĘŔ™ŔľľŠƒąŚ˝ą‹Ĺš‘Ĺš‘Ęż˜ĐŞĐŝĐŝĐŞĐŝĚŔ™Ćş’áĹş’ËŔ˜ĚŔ™ÎÜÔʤÔĘŁŇČĄŇČĄĘż˜ÂˇÇť”Ęž–Čź”ᐞ˛ŠťŻˆš­†ˇŤ„śŞ„şŽ‡żł‹ÁľÄ¸Ćť“Ĺš‘Ćş’Ęž–ŃƟŇČĄĚšĚÁšĘż˜ŔľŽÂˇČ˝•Ęż˜ĚÁšÍšËŔ˜ËŔ˜Íšʾ–ĸŔ´Œź°ˆš­†š­†ž˛‹Ĺš‘Č˝•Ä¸‘˝ąŠşŽ‡ˇŹ…łŠ„¸­‡žł‹ż´ŒĆť”ĘŔ™ÁľŽˇŹ†´Ş…źą‹Äš‘É˝•Í›ĐƞŃƞŐˤŘΨŇČ ĎĜĚÁ™Ćş’Éž–ŃƟĎĜĎĝÖĚŚŘΨÖͧÔĘŁĐŞËŔ˜Ëż˜Č˝•Ä¸Ŕ´Œź°ˆ¸Ź…śŤ…ľŞ„˛Ś˛§ł¨‚˛§ąĽ€°ĽŽ¤°§ˆ˛Š´Ź‘śŻ•ťľŸĆ²ŇĎĹçĺáńđî÷ööűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüůůřôôňęéćŢÝ×ŮŘĎÔŇÇËȡĘĆ´ÉÄŻÉĂŤÉèɧÉÂĽÎǧŇĘŞŐĚŤÖÍŤŮĐ­ŰÓŻÝŐąŢŐ°ÝÔŻÜÓŻßÖ˛áŘ´áŘ´ßÖ˛ß×´ćŢżâÚšßÖłäÜťăÚšÝÔ°ŰŇ­ŢŐ˛äŰščŕÁčáĂĺÝźäÜşäÜşäÜšâŮľŕŘ´äÜťâ١ÚĐŞÔɢŃƞĎŝʿ˜É˝–͚͚ĚÁ™ÍÁ™ŃƟŐˤÓÉĄÓÉĄÖĚŚÚŃŤÝÔŻŢÔŻŰŇ­ŘĐŞÖͧŐËĽÓÉĄËŔ™ËŔ˜ĎĜÎÛĎĝÓČĄÎÛƺ’żłŒ˝ąŠź°ˆˇŤ„ťŻˆÁľŽŔľżłŒŔľÂśŽĂˇÁľŽž˛‹ťŻˆşŽ‡ťŻˆź°ŠÁľŽÁľŽżłŒŔ´ÂśŽÁľÁľŽÄš’ËŔ˜Çź•Ă¸‘Ëż˜Éž–øÁľĂ¸Éž–ĎĜĐŞÍ›ĚÁšĚÁ™ĚÁ™ÍšÎÜĐƞÎÛǻ”żłŒťŻˆź°ˆˇŤ„ľŠ‚şŽ†ťŻ‡ťŻˆżłŒÄ¸Çť“Çť“Çť“É˝–ΛŇČ ÔʤŇÇĄĎĜÎÜÍÛʾ—ż´Ŕ´ŽČ˝•É˝•Ëż—ÍÁ™Čź”Áľź°‰š­†ˇŤ„´¨‚š­†žł‹ź°‰ťŻˆ˝ąŠž˛Šżł‹ż´˝˛‹şŽ‡śŤ„ˇŹ…ť°ŠÁľŽÁśŔľĂ¸Ĺš‘áÂśÄš’ĚÁ™ĚÁšËŔ™Í›Íšʾ–Çť“Ęž–ĎŝŇÇ ÔɢÖĚĽÔĘŁÓÉĄŐˤÔĘŁÔɢ×ͧÓÉŁĘż˜Ŕ´ź°‰˝˛ŠşŻˆ¸Ź†ˇŤ…ľŠ‚ł¨‚ľŞ„ˇŤ…ˇŤ…ľŠƒ˛¨‚ąŚ‚ą§ąŚ‚ąŚƒą§‡´­’ĂžŹŇÎĂÜÚÓëęç÷öőűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýůůůńńđäăßÚŮŇŇĐĹÍĘźËĆľËƲĘĆ°ĚĆ­ÎČŹĎČŤŃĘŞÔĚŤ×ĎŽÚŇ°ßÖłßÖłß×´ßÖ˛ŢÔ°ÝŐąßÖ˛ŢÖ˛ÝÔŻÜÓŽßÖąă۸ĺÝźáŘľŢÖąäÜşß×´ŰŇŽăŰšâ١ÜÓŽÚŇ­ÜÓŻß׳äÜşäÜşßÖąŢŐ°ßײáŘ´ŕײŢÔ°ŢŐ˛ÚŃ­ÓɢÍÁšÉ˝•Č˝•Ĺş’Ćş’Ęž–Č˝•Çť“ĚÁ™ŃǟŐĘŁÓÉĄÔĘŁ×ΨŮŃŤŰŇ­ÜÓ­ŮĎŞ×ͧŘΨÔʤĐŞËŔ™ĚŔ™ÎÛÍÁ™ÎÛŃƟÍšǻ”¡żłŒşŽ‡ą§´ŠƒťŻˆź°ˆż´ŒÄš‘Ĺş’ĸÂśŽŔ´Œž˛‹ź°ˆš­†š­‡Ŕ´Ŕ´ťŻ‰˝ąŠĂˇÇť”øÂśČ˝•Âś˝ąŠÇť”Č˝•Ä¸ÁľĂˇČź•ĎÜĎĜȼ”Čź”Ëż—ËŔ˜Í›ĎĝÎÛËŔ˜Ćş“ź°‰ˇŤ…ťŻ‡ˇŤ„ˇŤ„˝ąŠź°ˆşŽ‡ÁľÇť“Ęż—Ëż—ĚÁ™ÎÛĐŞÔʢÖͧÓɢŃƞÔĘŁŃǟʿ˜ÂśĂˇÉž–Ëż—ĚÁ™Íšǻ“Ŕ´Œž˛‹ťŻˆˇŤ„ąŚ€˛§‚śŤ…ˇŹ…ź°ˆÁľŽÁľŔ´ŒÁľŔ´Œ˝ąŠ¸Ź…ˇŤ„š­†ÁľÁśžłÁśĆş’Čź•Ĺş’Ĺš’Éž–Ćş’ĸ‘Í›ĎĜËŔ˜É˝•Ëż—ĎĜÓÉĄŐËŁÓÉĄŃƟŃƞÔĘŁŐĘŁÔʢÖËĽÔÉŁÍšÁľŽťŻˆž˛‹˝ąŠź°‰ź°‰š­†śŞƒťŻ‡ž˛‹żłŒ˝ąŠťŻˆşŻˆźąŠ˝ą‹ťŻˆšŽ‡śŞ†´Ş‰ľ­’źľžĚČşŕŢ×ęéĺńđîřř÷üüűţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúúďďîăâßÔÓËËÇşĘĆľÎČłĐĘłÔÎłŐĎłÖϲ×ĐąŮĐŻŮŃŽÜÓ°áŘśăŰşâÚ¸ŕ×´ŢÖłâÚšĺÝ˝âŮľŕ׳ŕ×´ÝŐ°ŮĐŤŘΊÝÔŻćŢźęăĆćŢžáŘľáŘ´ÝÔ°ŰŇŽÝÖ´ß×´ßÖąŰŇ­ŮĐŤÚŃ­ŢŐąŢŐ°ŮĎŠŘĎŠÚŃŤÝÓŻÚĐŤŐËĽÓČĄŃƟĎĜǻ“ÂśŽĂˇĂˇÄš‘Çť“Ćş’Çť”ĎĝÔɢŐËŁŐĘŁÖÍŚŘĐŞÚŇŹŮĐŤÖÍŚÓČĄŃƟÓČĄĐŞÍšŃÇ ÓÉĄŃƟĎÜÍšĚÁ™Ęž—É˝–Ęž–ᐚŽ‡°Ś‚˛§ƒ¸Ź†ź°ˆÂˇČ˝•Ĺš‘żł‹ź°‰Ŕ´Ä¸Ŕ´Œž˛Šž˛ŠżłŒšŽ‡ł§‚şŽ‡Çź”ĎŝĚÁ™Çź”Ćş“ÁľŽ˝ąŠĂ¸Çť“Ćş’áĂˇÇť“ĚŔ˜ËŔ˜Ćş’Çź”Ëż˜ĚÁ™Ęż—Čź”Äš‘Ĺš‘ĸ‘şŽˆľŠƒ¸Ź…ˇŤ„ˇŤ…˝ą‰˝ąŠž˛ŠÄš‘Ęž–ÍÁ™ÎÛŃƞÔɢŐˤŐˤÔĘŁŃƟĐŝŇČ ĎĝËŔ˜ĚŔ™ÎÜĎĝÎÜÍÁ™ËŔ˜Ćş’áĹš‘Ŕ´¸­†ą§‚ŻĽą¨ƒˇ­‡Ŕ´Ĺš‘ĸżł‹ź°‰Ŕ´ŒĂˇŔ´Œž˛Šżł‹Ŕ´ŒťąŠś­ˆźą‹Č˝•ĐŞĐŝĚÁ™Čź”ĸÄš‘ĚÁšĎĝÍÁ™Ęž–Éž–ĚÁ™ŃƟÓČĄĐƞÎÛÎÜŃÇ ŃƞÎÛĚŔ™ÍÁ™ĚŔ™ÁśŽşŽ‡şŻˆť°‰˝ąŠž˛‹˝ąŠ˝ąŠÂˇĆş’Çť“Ćť“Ĺş’ĸ‘Ćť”Ĺş“ÁľŽžł‹˝˛Šť°‰ˇŹ‡ľŞˆśŽ’ŔşĽÇ°ŇÎÂâŕÚíëčňńď÷öőůř÷űűúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűůůůńńđçćäÔŇĚÉĆťČĹ´ŃËľÖĎśÚÓˇÝÖˇßסŕظŕŘśŕŘľŕ׳ßÖ˛ßÖ˛âÚ¸ćßžĺÝťßÖłÜÓŻâÚšçßŔŕŘ´ÝŐ°ÝŐ°ŢÖ˛ŕ×´áŘśáŮśäŰšćßžäÜşŕŘłŰŇŹŮĐŠÖÎŞÓĚ°ÖĎąÚŇŽÖͧÓɢÔĘŁ×ͧŮĎŠÖĚĽŇÇĄĐŞŃƟĎĝÍšËŔ˜ÎÛĎĝ̒żł‹Âśź˛ŒšŻ‰ÁśŽÉ˝•Í›ÎÛĎĝŃƟŇǟÓʢ×ΧŮŃŤŘĎŠŇČĄÎÛËŔ˜ĚÁšÍÁšÎĜŐĚĽŘϨŐËĽĎĝǼ”áÄš‘Čź”Éž–ĸźą‰śŤ„ľŞ„ˇŤ…ˇŤ„ź°ˆĂˇÂśŽž˛ŠťŻˆŔ´Ä¸‘ž˛ŠťŻˆź°ˆž˛‹Ŕ´ŔľŽĂˇËż˜ŇČ ÎÛǻ“ĸĂˇÂśŽżłŒÂśÇť“Ćş’ĸÄ¸Çź”Ęž–Éž–Ĺš’ÂśÄ¸‘ĸĂˇÁľĂˇĹš‘ź°‰¸Ź…şŽ‡ł¨‚°¤š­‡ÁľŽĆť“Çź”É˝•ËŔ˜ÎšŇǟŐˤÖĚĽÓɢÎÜĚŔ™Ëż˜ĚÁšÍÁšÎÛŃÇ ÔʤÔʤĎĝǼ”¡ĂˇÇť“Ęż—Ĺš‘˝ąŠšŽˆ¸Ž‡ˇ­‡´Ş…ť°ŠĹš’Ćş’ÁľŽťŻˆž˛ŠÂśŽŔ´ŒŔ´ŒŔ´ŒŔ´ŒŔśŽÂˇ‘ĸ‘Ëż˜ÓÉĄŇČ ÍÁ™Ĺş’ĸÄ¸ŔľŽÄ¸‘É˝•Č˝•Ĺš’áČź•ÍšÎÛʿ—Ćť“Çź”Çť”Ćş“Čź”Ëż—ĚÁ™Ä¸‘˝ą‰ź°‰ˇŹ†śŹ†žłŒĹş’Ęž—Ęż—Éž–É˝•Ęż—͚͛ÎĜĚÁšĆş’¡Ŕ´ž˛‹ťŻˆťŻˆš­‰ˇŹŠś­Œšą–Ă˝ŠÍÉş×ÓČßŰÓăâŰëęćôóńýýü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüűűú÷÷÷óóňçćäÜÜ×ÍĚĂĹÂľĆÂąĎË´ŮÓ¸áŮťâÚşâÚ¸ăŰšćßżĺÝźăÚˇĺÜşćŢźäÜşáŮśăŰšçŕÁäÜşÜÓŻŘΊÜÓ°áٸŢŐ˛ŰŇ­ÚŃŤÝÓŽáŘľäÜťă۸áŘłŢŐ°ŢŐŻŰŃŤÓȢÎÜ̝ĚŨŇËŹÖÎŞĎŞʾ–Ęż™ÍÄĄÍŤȿšĆť”Ĺš‘áÄ¸Ä¸ÂśŽĆş“Ęż˜Âˇ˝ąŠŔ´ş°ŠšŻ‰Ă¸‘ËŔ˜ĎĜ˿—É˝•ËŔ˜ĎĜŇČ ÓɢÔĘŁĐĆ Čž–Äš‘Ĺš‘ËŔ˜ÎÛĐŝÔʤÔËĽĐÇ ĚÁ™Ä¸ž˛ŠÁľĆş’É˝•Ĺš‘Ŕ´Œž˛‹žł‹žł‹š­‡ťŻˆÁľÁľź°‰śŤ†ť°‰Áľž˛‹ťŻˆşŽ‡ž˛ŠĹš‘Ëż—ËŔ˜ÍšŃƟĚŔ˜Ä¸żł‹˝˛‹˝˛ŒźąŠÂśŽČź”Ĺš’żłŒ˝ą‰ÁľÄ¸Ŕ´Žź°‰š­†şŽ‡ź°ˆ˝ą‰ťŻˆž˛ŠÁľ˝ąŠź°ˆź°ˆśŤ…ľŞ„żłŒĆť“Ëż—É˝•Çť“Çť“ĚÁ™ĐƞÓČĄÓɢÎĜŹ’ÁľÂśĘż—ÎÛĎŝŇÇ ŇČĄĐĆ ĚÁ™Ä¸ž˛ŠżłŒĹš’ËŔ˜Çź”ÁľŔ´ŒÂśŽÁśˇŹ‡¸ŽˆÄš‘Ćş’ŔľˇŹ†ˇŤ…ťŻ‡żł‹żł‹ž˛ŠŔ´ŒÄ¸Č˝•É˝•ĚÁ™ŃƟÎÜȼ”ÂśŽž˛ŠşŽˆ¸Ź…žłŒČź”Çť“żł‹š­†żł‹Ä¸‘¸‘Áśżł‹ź°ˆ˝ą‰Ŕ´ŒÂśŽÄš‘Ćş“Äš‘ÂśŽżłŒšŻ‰šŻ‰Ă¸‘ËŔ˜ĎĝÎÛʿ—Çź”ÍÁšŃƞŃƟŃƟÍ›Ź’ż´ŽžłŒÁľŽÁľŽÁľŽÂˇÁľŽť°Š¸­‡ľŹŠľŤ¸°•ť´›Â˝ŤÉšŐŇČäâÜóóđüüűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúúöőőóňńëëčŕßŰ×ŐÎČĹšĆÂłÉĹłÓθÜÖźŕŮťăÜ˝äÝ˝äŰşăŰšçßžęăĆćŕżäÜşčŕŔęâĂéŕÁäÜşäÜşćßżŕŮśŘĎŞÓɢÔʤŮĎŞŢÔ°ŰŇ­×ΨÖͨŘĐŹÜÔ°ß׳ŢŐ°ŮĎŠŘΧÔÉŁĘż—áĂ¸‘ĎĹ ŐͨÔËŚĘŔ˜Ă¸Ä¸’Ć˝ŸÁşŸś­‹šŽˆ˝ąŠťŻˆź°‰ź°‰¸Ź…ťŻˆÁľŔ´Œž˛Š˝ąŠŔľŽĆť“Ëż—ËŔ˜Ęž–Čź”Ĺš‘Ĺš’Í›ŃƟÎÛĚÁ™Çź”ż´˝˛ŠÂśÎÜŃƟĎĜĎĜʾ—Äš‘ĸ‘ĸÁľŽÂśŽĹš‘Éž–Ćť“ÂśŽĹš‘Č˝•É˝–øÁľŽÄ¸ÁľŽšŽˆą§‚łŠ„ťŻ‰ÂśŔ´ŒťŻˆž˛ŠĂˇČź”ËŔ˜ÎÛÍšǼ”Ŕ´ŒšŽ‡´Ş„´Ş…˝˛‹Ĺş’Č˝•ÁľŽš­†ˇŤ…ź°‰ťŻˆąĽ€˛§ľŠƒł§´¨‚śŞƒľŠ‚śŞ„şŽ‡˝ą‰ź°‰ź°‰żłŒĹš’Éž–Ęž–Č˝•Čź”Ĺš‘ĸĘž–ΛÍÛÎÛʾ—žł‹şŽ‡˝˛‹Í›ŃƞĎĜÎÛɾ—ĸ‘ĸ‘øŔ´ž˛‹ÁľŽÉž–Çť“ÁľÁľĆť“É˝•ż´˝˛‹Ä¸‘ᏻ°‰ą§ƒ°Ľ€ľŠ‚˝ą‰ž˛Šź°‰ž˛ŠŔ´ĂˇĆş’Ëż—ÍÁšÉ˝•Ăˇž˛‹ľŠƒąĽ€ťŻ‰Ĺš’Éž–Ĺş’˝ą‰ˇŤ„ź°ˆźąŠ´Ş…¸­‡ťŻˆľŠƒˇŤ…ź°‰ťŻˆťŻˆž˛‹ÂśŽÄ¸ÂśŽĂˇĆť”ËŔ˜ĚŔ˜ËŔ˜Îšʾ–Çť“ÎÜŃƞÎÛÎÛʾ—ŔľşŻŠťąŒĆť”Éž–Č˝•Ćş“ÁľŽź°‰šŽ‡ľŤ…˛¨ƒ°ŚƒŻŚƒ°§‰łŹ‘¸˛›ÄżąÖÓÉçĺŕňńîůřřýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüűűűôôóëëčŢÜ×ÖÔĚÍĘżÄÁ˛ĂżŽÉÄ°ÖѸŕÚŔäÝÁăÜťŕŘśŕŮśäÝźčŕÂéâĹęâĹčáÁĺÝťäÜšéáÁëäĆęâĂĺÝťâŮśŕŘśŰÓŻÖͧÓɢĐƞŃƟŘΨŮĎŠŐ˧ĐČŠŃĘŞ×ÎŞŰÓ­ŰŇŹ×ͧÖĚĽĎŞŔ´Ŕ´Çź•ŇÇ ŃÇ Ěšʿ—Çť“Ĺš“Äš—˝ł“˛¨„ł§śŞƒ´¨‚˛Ś€˛ŚˇŤ„ź°ˆżł‹˝ąŠ˝ąŠÁśŽÇź”ËŔ˜Ëż—Éž–Čź”Čź”ĸÂśĆť“Çť”ĸ‘Ĺş’Çť”Ćť“Çź•Ęż˜ÍšÎÜÍšɽ•Ŕ´š­†š­†żłŒĆť“É˝•Č˝•Ćť“áÂśŽĆş’ËŔ˜Íšȼ”ĸÂśŽź°‰śŞ„˛¨ƒą§‚ľŞ…¡Ăˇž˛‹żłŒÁľÄ¸Čź”Éž–Çť“Ĺş’Ŕľ´Ş…łŠ„şŻ‰Äš‘Ćş“¡ÁľŽŔ´ž˛‹żłŒťŻˆł§˛Ś€˛ŚŽŁ­˘~ŽŁ}˛§¸Ź…ťŻ‡š­†şŽ‡Ŕ´Ĺš‘Čź”Ęž–Çť“Ĺš‘Ćş’ĸÂśŽÇź”Ćş“ÁľŽĹş’Čź•ĂˇĂ¸‘Çź•ĚÁšÍÁšĘż—Çź”Ŕ´š­†ˇŹ‡źą‹ĂˇĹš‘Ĺş’Ćş“áÁľÄ¸Éž–ĚÁ™Ćş’ÂśÂśŽżł‹šŽ‡łŠƒąŚ€ł§˝ą‰ÁľŔ´˝ąŠ˝ąŠÁľÇź”Ęż—Çź”Čź”Ăš‘ˇ­ˆ´Šƒ¸­†Ä¸‘Čź”Ćť“Ĺš‘ÂśŽżłŒżłŒťŻˆ˛§ł§ľŠƒŻĽ€°ŚłŠƒł¨‚š­†żłŒŔ´ŒÁľĹš‘É˝•ÍÁ™ĎÛΚÍÁ™ÎÛĚÁ™Ęż—ĚÁ™Éž—Ĺš’Çź”Éž–Ćť”Ćź—Çž™Ęż˜Ęž–Č˝•Ĺš‘żł‹ˇŹ…°ĽŻ¤ł¨‚łŠƒ°Ś€ŤĄ}ŠŸ}Š €Ź¤ŠľŽ™Â˝­ÎĘžáŢŮńđí÷÷öüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýůůůňňńëëçŮ×ŃÍĘżÄŔŻÄżŞČÂŞĐĘąŮŐ˝âÜŔçŕĂéâĆĺŢżáŮśÜÓŻŰÓŻáÚ¸ęâĆíćĚěĺĘçßżäÜťĺÝťčŕŔéâĹéâÄäŰşßÖ˛ÜÔŻŮĐŞÖ̤ÔɢĐŝĎÜÔĘŁÖˤŇɤĚŨĎÇŠŐ̧ŮĐŞŮĐŞ×ÍŚŐËŁÎÜż´ĂˇĚÁ™ĐŞʿ—¡Çť”Éž–Çť“Âśź°‰ľŠƒ˛Ś€ąĽŻ¤~Ť |Ť |ľŞƒź°ˆź°ˆź°‰Ŕ´Ćş’Č˝•Č˝•Çť“Čź”Ęž–Ęž–Ĺş’ÁľżłŒž˛‹ž˛‹Ă¸Č˝•Ęż—Í›ÍÛʾ—ĚŔ˜ĚÁ™Ćş’ź°ˆ´¨‚ąĽšŽ‡Çť”ĚÁ™ËŔ˜Ćş’ĸĹş’Č˝•ĚÁ™Íšʾ–Ćş’ᏻŻˆśŞƒśŤ„´Š„śŹ†Äš’Ĺš‘Ŕ´Ŕ´ŒÂśŽÄš‘Čź”É˝•Çť”Çť”ø‘¸ŻŠť°ŠĂˇÉž–ĸ‘źą‰Ŕ´ŒÄ¸Ä¸żłŒź°ˆš­†ł¨‚Ž¤Ş }¨ž{Šž{˛Ś€š­†ź°ˆ¸Ź…ťŻˆÄ¸Ĺš‘Ĺš‘Çť“Ĺš‘ĸĆş’ĸÁľĂˇżłŒťŻˆÁśŽÇť“Ćş“Éž—ĚÁšĘž–É˝•É˝•Ä¸‘ťŻˆ˛Ś€Ž¤ľŤ†ÂˇČ˝•Č˝•Ä¸ĂˇĹš‘Čź”ËŔ˜ĚŔ˜Éž–Ĺš‘ÂśŽž˛ŠşŽ†¸Ź…ˇŤ„š­†Ŕ´ŒĹš‘Ĺš‘żł‹ž˛‹Äš‘Ëż—ĚÁ™Č˝•Ęž—Ćź”¸Ż‰ş°‰ÂˇÉž–Ćť“ÁľÂśŽÄ¸‘ĸÁľťŻˆľŠƒ˛Ś€ŻĽŹ˘Ş˘ŹŁ°Ś€¸Ź…żł‹˝ąŠżłŒĆş’Éž–Ëż—ËŔ˜ÍšĎÛĎĜÎÛĚŔ˜Č˝•Ăˇż´ŒÄš‘Ëż—ĚšĐĆ ŃÇĄĘż˜É˝•É˝•Ä¸˝ą‰´¨‚ŠŸzŞŸ{ľŠƒ¸­…ł¨‚Ž˘~Ź |ŠžzŚœzŚœ|¨Ÿ‚ŤŁ‰źśĽËČťŰŘĐëéćóóńůůůýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţüüűůůřőőóééĺ×ÖÎËČ˝ĆÁŽÉĂŤĐÉŻŘĐłáÚťäÜžăÜžçŕÁéăĆëĺÉéâĹâÚšŰŇ­ÚŃ­ŢŐ˛ăŰšçŕÁęăÄéáÂęâĂéáÂĺÝźćŢžçßŔŕŘľÜÓŻÝÔŻŮĐŠÔĘŁŇÇ ŇČ ÔʢŐĘŁÓČĄĐŞÎĞĐÇĄŐËĽ×Ψ×ΨŐˤÓÉĄĎŝĚŔ™Ęž—É˝–É˝•Âˇ˝ą‰ż´ŒÄ¸Ä¸‘żłŒťŻˆ˝ą‰¸Ź…ąŚ€­¤Ť˘~Ť˘~°Ľ€´¨‚ˇŤ…żłŒĹš‘Ĺş’ÁľŽżłŒÁľŽÇť“ËŔ˜ĚÁ™Çť“ż´ŒťŻˆ˝ą‰ĂˇĆş’Ĺš‘ÂśÂˇÄ¸‘Çť“Ëż—ÍÁ™Č˝•Ŕ´Œ¸Ź…ł§ˇŤ„Ŕ´Ĺš‘Č˝•ËŔ˜ĚÁ™ÍšÎÛÎÛÍšʾ–É˝•Č˝•Ăˇ˝ąŠťŻˆź°‰ŔľŽĘž—Çź”ÂśŽŔ´ŒĹš‘ËŔ˜Í™ÎÛĐŞĚÁšÉž–Éž—Čź•Çť“Çť“ŔľşŽ‡şŽ‡ž˛Šž˛‹š­†¸Ź…źą‰śŤ†­Ł¨ž{¨ž{ŤĄ~°¤ľŠƒşŽ‡ź°‰Ŕ´ŒÄ¸ÁľżłŒĹš‘Ćş“Ćş’Çť“ĸżł‹ź°‰ž˛ŠÂśŽĹš‘Äš‘ÁľŽžł‹Ŕ´ŒĆş’Ęż—ËŔ˜Čź”ž˛‹´¨ąĽľŞ„ž˛‹ÁśŽĂˇĆş’Éž–ÍÁ™ÎÛĚÁ™Ęž–Čź”Çť“Ĺš‘ÂśŽž˛Šź°ˆżłŒÄ¸Ćş’Çť“Ćş’ÁľŽÄš‘ËŔ˜ÍšĎĜĐŞÍšɾ–Ĺş“Ĺş“Çť“Çť“ÂśŽťŻˆťŻˆž˛Šżł‹ź°‰ťŻˆź°‰ˇŤ…ąŚ€­Ł€Ť˘ŹŁ€˛¨‚śŞƒˇŤ„ź°‰ÁľŽĆş’Ĺš‘áÄ¸Č˝•ÍšÍšËŔ˜Čź”áÂśŽĹš’Éž–Ëż˜Č˝•Éž–Ęž—Čź•Ęż—ËŔ˜É˝•Áľ¸­†ŻĽ€ŻĽ€śŤ„ˇŤ…śŞ„ˇŤ„ˇŤ…´¨ƒŻŁ~ŞŸ{§œyĽšxĽœ}§ž‚˛Ş“żşŠŃÎĂćĺŕôôóűűúýýüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýűűűřřřňňđččäÝÜŐÍËŔĆ°ÉĂŤŇËŽÜÔľŕŮšáÚšäÜťăŰšăÚščŕÁęăÇěĺÉęäÇĺÝ˝ßŐąÝŐ°ÝÔ°ÝÓŽßŐąâ١ćÝ˝ęăĆëĺČĺÝťâÚˇŕŘśŮĐŹÔʤÔʤÓɢÓČĄÓČĄŐĘŁŐËŁÓČĄĎĜĚÁ™ĚŔ˜ÎÛŃƟĎĞÍÜĎŝŇČĄÔĘŁŇČ Í›ǻ”ÂśŽž˛‹˝ąŠżł‹ž˛‹ź°‰ź°‰ż´ŒĹš’ÁśťŻ‰łŠƒŻĽ€Ž¤€˛§š­†żłŒÂˇÂśŔ´Ŕ´Ŕ´Ŕ´ŒÁśŽÄ¸‘Ćş“¡ź°ˆˇŤ„¸Ź…ž˛‹Ŕ´Œ˝ąŠš­†şŽ‡˝ąŠĂˇÇź”Ęż—Č˝•ÂśŽşŽ‡¸Ź…¸Ź…š­…ź°‰ÁľŽÇź”ÎĜÓɢĐƞΚ˿—Ćť“ĸĂ¸Ä¸Ä¸Äš‘Ćş“Č˝•Ęż—Čź”ĸÂśŽĆş’ĚÁ™Ęż—Ęż—ÎÛĎĝĐŞŃƟĚŔ˜Ä¸‘Ŕ´ťŻ‡ˇŤ„ź°‰˝ąŠš­†¸Ź…˝ą‰Ä¸žłśŤ†˛§‚°Ľ€Ž¤˛§š­†żł‹Ŕ´ŒŔ´ŒŔ´ŒŔ´Ŕ´Ŕ´ÂśŽÄ¸Ä¸Ŕ´ź°ˆˇŤ„¸Ź…ž˛‹Ŕ´Œ˝ąŠˇ­‡ˇŹ…şŽ‡ÂśŽÇź”Ęż—Č˝•ÂśŽşŽ‡¸Ź…š­†ťŻˆź°ˆž˛ŠÄ¸ĚŔ˜ŇǟŇČ ĎŝËŔ˜Çť“ÂśÁľÂśÄ¸Äš‘Ćş“Čź”Čź”Ćş’ĸÁľĆş’ĚÁ™Ęż—Ęż—ÎÛĎĝĐŞĐƟĚÁ›Çť”ÁľŽź°‰şŽ‡˝ąŠ˝ąŠš­†şŽ‡ž˛‹ÂśŽŔ´ŒťŻˆłŠƒŻĽ€Ž¤°ŚśŤ…ź°‰ÁľĂˇŔ´Ŕ´ŒŔ´ŒÁľÄ¸Ćť“Äš‘øÂśŽź°‰ź°‰ĂˇĆş’ø‘ź˛Œż´ĂˇÄ¸Çź”Ëż—ËŔ˜Ĺş’˝ąŠ¸­‡ˇŹ†ˇŹ…ľŠƒśŞƒš­†ź°‰źą‰¸Ź‡śŞ„ąĽŤĄ|§zĽ›xĽ›zĽœ~Ż§ŽĹÁ˛ŮÖÎĺăŢîíëöőôűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüúúůööőňňńććâŮŮŃËȟŰÉĂŹÔÍąÝŐśŕءâŰšáŮšŕ١ăŰšăÚ¸â۸çŕŔčŕĂčáĂęâÄćßżáŘ´ŢŐ°ŰŃŹŘΨŘΨŰŇŹŕ׳ćßŔęăÇäÜşßÖ˛ŮŃŹÓÉŁÍšËŔ˜ÎÛŇǟÓɢÓɢŇÇ ĎĝĚŔ˜Čź”É˝•ĚŔ˜ĚÁšÇź—Ćť•Ëż˜ŇɢÖͧÓɢĚÁ™Äš‘˝ąŠ˝ą‰ž˛‹˝˛Š¸Ź†´¨ƒşŽ‡Ă¸ËŔ˜Éž–ÂśşŽ‡ľŠƒ´¨‚š­†ÁľŽÇź”ĸ‘ž˛Šź°ˆŔ´ĂˇÁľ˝˛Š˝ą‰Ŕ´ž˛‹¸Ź†´¨‚ľŠ‚¸Ź†ťŻˆşŽ‡śŞƒśŞƒşŽ†ž˛ŠÁľÄš‘Çť“ᏻŻˆşŻˆ¸Ź†ľŠ‚¸Ź…ž˛ŠÂˇĚ›ÓʤŃǟÍšȼ”ĸżł‹ź°‰ÂśŽČ˝•ËŔ˜ĚŔ™Ëż—É˝•Çť“Ĺš‘ĸÇť“Éž–Ĺş’ĸĘž–ĐŝÓɢÓČĄĘż—Ŕ´ŒťŻˆˇŤ„ˇŤ„˝ąŠź°‰ľŠ‚¸Ź…ÂśĘż—Ĺş’ž˛‹ź°‰ˇŤ…ł¨¸Ź…żł‹ĂˇÁľ˝ą‰ťŻˆŔ´ÂśŽ˝ąŠž˛ŠŔ´ŒÂśŽž˛Š¸Ź†´¨‚ľŠ‚¸Ź…şŽ‡¸­†łŠ„ľŞ„š­†˝ąŠÁľĹš‘Çť“ĸŔ´Œ˝ąŠšŽ‡¸Ź†š­†˝ąŠÂśŽĘż—ŃƟÓɢŃƟĚÁ™Ćş’żł‹ź°‰ÂśŽÉ˝•ĚÁ™Ęž–Çť“Čź”ĸŔ´ŒÁľĆť“Ęż—Ćş’ĸĘž–ĐŝÔĘŁŐËĽÎĝŹ‘˝ąŠťŻ‡ź°‰Ŕ´Œź°‰ľŠ‚š­†ÁľÇť“Çť“ÂśşŽ‡´¨‚˛§ą§‚¸ŽˆÁśŽÄ¸ÁľŽź°‰ž˛ŠŔ´ŒŔ´ŒÁľÁľ˝ąŠž˛Š˝ąŠ¸Ź…ˇŤ„˝ąŠŔ´źąŠľŤ†šŻ‰Ŕ´ŒżłŒÂśŽĆş“Ëż˜Č˝•ÂśŽžł‹ťŻˆˇŤ„śŞƒ¸Ź…ź°‰żłŒÂśŽÂśżłš­‡ąŚŹĄ}Šžz§œxŚ›xĽšyŞĄ„˛Ş“żš§ŇÎĹâŕŰďîě÷÷öüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýúúů÷ööńđîëéçßÝ×ŐÓËĘČşÇÄąÎČ°ŮÓˇáÚťăÜźâŰťáÚ¸äÜşćŢžçŕÁçŕÁăŰşß׳áŮśŕÖ˛ŢŐ˛ĺŢžäÝźÜÓŽÓÉŁŃƟÖĚĽŰŃŹÝÔŽÚŃŤÜÓŻß×´ŕŘ´ÜÓŽ×ÍŚŃÇ ĚÁ™Ëż—ĎĝŇČĄĐŝʿ—Čź•ĚÁ™É˝•Ĺş’Ęż—ĚŔ˜Éž™ÇžĄČŔŁÍÝŇČĄÓɢĚÁ™Ä¸˝ąŠž˛Šżł‹˝˛ŠľŤ†ŽĽŻŚ¸­‡Ä¸Ëż—Čź”ÁľşŽ‡š­†ź°ˆÁľÄ¸Ä¸ÂśŽž˛ŠşŽ‡ž˛ŠÁľŔ´ŒżłŒżł‹ĂˇżłŒşŽ†ˇŤ„ˇŤ…şŽ‡żłŒÂśŽž˛ŠşŽ‡¸Ź…š­†¸Ź…şŽ‡Ĺş’Çť“ž˛‹ľŤ…˛¨ƒˇŹ…żł‹Ä¸‘Çť“Éž–ÍÛŃÇ ÎÜɽ•Ćş’ÁľŽź°‰ÂśŽÇź”É˝•Ćť“Äš‘Ćş’ÂśŔ´Çź”Č˝•Äš‘ÂśŽĹş’ĚŔ˜ĎĜĐŝĎĜź’ź°‰˝ą‰˝ą‰ťŻˆ¸Ź…´¨˛Ś€śŞƒż´ŒÉ˝–ĸ‘ťŻˆşŽ†ˇŤ…¸Ź„żłŒĂˇÁľŽž˛‹şŽ‡š­†ž˛ŠÁľżł‹żłŒÁľĂˇżłŒşŽ†ˇŤ„ˇŤ…š­†ź°ˆżł‹ŔľźąŠ¸Ź…ľŠ‚ˇŤ„˝ąŠÄ¸Ä¸żłŒśŹ†ą§‚´¨‚˝ąŠÄ¸‘Ćş’Ćş’Čź”ÎÛΚʾ–Çź”ÁľŽźą‰ÂśŽĘž–ĚÁ™Čź”ĸĹš‘ÁľŽž˛ŠĂˇČź”Čź”ĸĹş’ĚŔ™ĎĜĐŞĐŞǼ”ž˛‹ž˛ŠŔ´Ŕ´şŽˆ´¨˛Ś€śŞƒżłŒČ˝•Çť“ÁľşŽ‡ˇŤ„ˇŤ…˝˛‹żłŒ˝ąŠ˝ąŠ˝ąŠž˛‹żłŒŔ´ŒÁľĂˇÄ¸żłŒž˛‹ž˛‹š­†¸Ź…ťŻ‡ž˛ŠŔ´ŔľŽŔľżł‹ťŻ‡şŽ‡ž˛ŠĹš’Čź”Ĺš‘żł‹¸Ź…śŞƒź°‰Ä¸‘Çź”Ĺş’ĸČź•Ĺš’ž˛‹¸­‡łŠƒŻĽ€ŽŁ~­˘}Ź |§œy¤™xŚœ~Ž§Ž˝¸§ÍÉ˝ßÝŘěěęőőôűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúôóňęéćăâŢŘÖÎĐÎĂČĹśÇĂŻÍČ°ŘÓśâÜżäÝżäŢžćßŔćßŔçßŔčáÂčŕÁçßżćŢžâÚ¸ÝŐ°ÚŃŤŮĎŠÚŃŹŕŘľŢŐłÖͧĐǟŃÇ ×ͧŰŇŹŰŇŹŮĐŞŘĎŠŘĎŠŮĎŠ×ĚŚÓČĄĐƞΚĚÁ™ÎÛÎÜĚŔ™Çź”ĸÄš‘Ćş“Čź•ĚÁ™ĚÁ™Éž˜Ë¢ÎĹŚÎĝËŔ™Éž—Ęž–ø˝ą‰ź°‰ź°‰ťŻˆľŞ„°Ś‚˛¨‚¸­†ż´ŒĹş’ĸżł‹š­†ł§‚ąŚťŻ‰ĂˇĆş’Çť“ᐞ˛Šž˛‹ÁľĂˇŔ´Œ˝ą‰ťąŠť°ŠťŻˆš­†ťŻˆżł‹ÂśÄ¸Ăˇ˝ąŠˇŹ…ł¨ƒł¨‚ˇŤ…ÂśĂ¸źąŠˇŹ†¸­‡żłŒĆş“Ęž–Č˝•Éž–ĚŔ™ÎÜ˿˜Ćş’Çť“Ĺš‘ÁľŽÂśĹš‘Çť“ĸŔ´Œž˛‹Ŕ´Ä¸‘ËŔ˜Ęż—Ćş’Čź”ĚŔ™Í›ɾ–Çť”Éž–ĸ˝ąŠź°ˆťŻ‡¸Ź…ľŠƒ´¨´¨´¨‚şŽ‡Ä¸‘ÁśŽź°ˆ¸Ź…ąĽŽ˘}ˇŹ…Ŕ´ŒĂˇĹš’¡˝˛Šž˛‹ÁľĂˇŔ´Œ˝ą‰ťąŠť°ŠťŻˆš­†ťŻˆž˛‹Ŕ´ŒÁľĂˇŔ´ŒşŽ‡˛Ś€˛Ś€ˇŤ„Ŕ´ŒÁľź°‰ˇŹ†śŤ†ť°‰Ä¸Ęž–Č˝•Çź”Č˝•ÍšĚŔ˜É˝•Ęž–Ćť“ÂśŽÄ¸‘Čź”Čź”Ćş’áÁľŽŔ´ÁľŽÇź”Ęž–Čź”Çť“Ëż˜ĎĝËŔ˜Čź•ĚÁ™Çź”żłŒşŽˆšŽˆšŻ‰śŤ…´¨´¨´¨‚şŽ‡Ä¸‘Âś˝ą‰ťŻˆśŞƒ˛§š­‡żłŒÂˇÄš’ĸ‘ÁľŔ´ŒŔ´ŒŔ´ŒÂśŽÁśŽşŻ‰šŽ‡ťŻˆşŽ†ťŻˆżł‹ÂśŽÄ¸Ä¸ÂśŽž˛ŠˇŤ„śŞ„şŽ‡ÁľÄ¸Ăˇżł‹ťŻˆ˝ąŠĆş“ÍšĚÁ™Éž–Čź”Éž–Ćş’ÁľżłŒť°‰ˇŹ†´Šƒ˛§ŻĽŤĄ|¨yĽšw¤™wŚ­ĽŒ˝¸§ĎĘŔáŢŮîíëőőôřřřűúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýőôôííęŕßŮÓĐĆĘÇšĹÁŽĆÁŞĐËąŰÖźâÜżĺßÂäŢÁâŰťäÝ˝éâÄéâÄëäÇěćËçßŔâŮśáŘľŕ׳ÝÔŻŐˤŐˤÖͨŐͨŃČŁĎŞŃÇ ÔĘŁŐĚŚÖͧŘΨŘĎŞÖͧÔÉŁĐŝĎÜÎĜÎÛÎÛÍšĚŔ˜É˝–Çť“Ćş’ĸž˛ŠĂ¸ĚÁ™ÎÛÍÁ™ËŔ˜ĐşŃÇĄĚÁšÄš‘¡ËŔ˜Çź”żł‹şŽ‡š­†şŽ‡š­†śŤ„ľŠƒˇŤ„ťŻ‡žł‹žł‹ť°‰ľŠƒŞžzŁ˜uąĽ€ż´Č˝•ËŔ˜Čź•ĂˇÂśŽĂˇÄ¸żłŒšŽ‡´Ş…ˇ­‡˝ąŠź°ˆž˛ŠĂˇÂśŽÁľĂˇž˛‹ˇŹ…˛¨ƒłŠƒśŤ„šŽ‡šŽ‡¸­†şŻˆżł‹ĂˇÉž–ÍÁ™Ęż—Ęż—ËŔ˜É˝–Ĺş’ĸĆş’Çť“Ćş’ĸĂˇĹš‘Ꮮ˛ŠˇŹ…ż´ËŔ™ĎĜÍš˿—ĎĝŃƟĚÁ™ĂˇŔ´Çź”Ćş’Ŕ´ŒşŽ‡śŞƒ´¨‚ˇŤ„ˇŹ…ľŞƒł¨‚ˇŤ„ž˛‹žłŒťŻˆľŠƒŠžy˘—tŹĄ|şŽ‡Ä¸‘ËŔ™ĘŔ˜ĂˇÁśŽĂˇÄš‘Ŕ´ŒšŽ‡łŠ„ˇ­‡˝ąŠź°ˆž˛ŠĂˇÁľżł‹ž˛‹żł‹˝ą‰ľŠ‚˛Ś€ł§¸Ź…š­†ˇŤ…ťŻˆŔ´ŒĂˇÉ˝–ĚŔ˜Ęż—Ëż—ĚÁ™ËŔ˜Éž–Č˝•ĚŔ˜ËŔ˜Čź”Çť“Ćş’ÂśŽĂˇĂˇ˝ą‰Ŕ´Çź”ĚÁ™ĚÁ™Ęż—ĚŔ˜ĎĝĎŝŒŔ´ĚÁ™ËŔ˜Ăˇ¸Ź…ą§ą§ƒśŤ…¸Ź…ľŞƒł¨‚ˇŤ„ž˛‹ť°‰¸Ź†š­†ąŚ€ŞŸzŻŁ~ťŻ‰Çź”ÎÜËÁ™Ä¸ĂˇÂśŔľŔ´Œž˛‹ľŤ†ľŤ…š­†š­†ž˛ŠÄ¸Ćş’ĸŔ´Œżł‹˝ąŠśŞƒśŞƒš­†şŽ‡ťŻˆ˝ąŠž˛‹ÁľÄ¸‘ĚÁšŃǟÍÁšĚÁ™ĚÁ™Čź”øÂśŽÄ¸Ä¸Ŕ´ŒťŻˆśŤ„ą§‚Ż¤ŹĄ|ĽšwĽšv¤šw¤šy§ž€Ż§š´ĄÍÉžŰŮÓćĺâěëęöőôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúđđîŕßŮÔŇÉĘǸĆÁŹČ¨ĐÉŽÚÔˇâßÇćĺĐćŕĂçŕÁčâÄćŕÁčáĂéâÄçßżçŕÁéâĆăŰťÜÓŻÚĐŤÚĐŞŮĎŞ×ͧŇȢËÁšŔˇ’žľĹş“ÍÁšÎÜËŔ™ĐƞŐËĽÖĚŚŇÇ ĚÁ™Çť“Çź”Ęž–Ęż—Ęż—Ëż—ĚŔ˜Č˝•Ŕ´Ŕ´Ŕ´ťŻˆĂˇÍšĎĜÎÛΚĐŝÍšƻ“ĸÇť”Ďŝʿ—Ŕ´ŒşŽ‡ťŻ‡˝ą‰˝ą‰śŤ„ŻŁ~˛Ś¸Ź…şŽ‡ľŤ…°Ś‚Ť |Ś›w¤™uŽ˘}¸Ź…žł‹ĂˇÇť“Éž–Ęż—Çź”Ŕ´˝ąŠž˛Šžłż´ż´Œž˛‹żł‹Áľž˛ŠťŻˆź°‰şŽ‡şŽ‡źą‹š­‡ąĽ€¨y¨ž{ŻĽśŤ…š­†şŽˆĹš’ÎÛÍÁ™É˝•Ĺš‘áÄ¸Ĺš‘Çť“Čź”Čź”Ćş’ᐿł‹żł‹ž˛Šš­†ÂśÍÛŇÇ ĐƟÎÛĐŝÍšƺ“ŔľÂˇÍšËŔ™Ä¸ź°ˆˇŤ…ˇŤ„ťŻ‡¸­†˛§‚ł¨‚¸Ź…˝˛Š¸Žˆą§‚Ť |Ś›w¤˜uŹ {ľŠƒ˝ąŠĂ¸Çť“Ćş’Čź”Č˝•Ă¸Ŕ´Œ˝ąŠşŻ‰źąŠżł‹ž˛‹żł‹Áľž˛Šš­†ˇŤ„ťŻ‡ž˛ŠťŻˆ¸Ź…ł§Šžy§œx­Ą}¸Ź…żł‹żł‹Äš‘Ęż—ĚÁ™ËŔ˜É˝•ÂˇÁľŽÄ¸Ëż—ĚÁ™É˝•Čź”ĸ‘ž˛Šżł‹Ŕ´ŒťŻˆÂśËŔ˜ĎÛÎÛÍšÎÛĚÁšĆť”žł‹ż´ŒÎÜÎÛƺ’şŽ‡ľŞƒśŤ…˝˛‹ť°‰˛¨ƒł¨‚¸Ź…˝ąŠˇŹ†ŻĽ­˘~ŠžzŚ›xŞ }˛§‚ťŻ‰Ćş“Ęž—Çź”Ëż˜ËŔ˜ĂˇŔ´ŒŔ´Œž´žłŒž˛Š˝ąŠżł‹ÂśŽÂśŽž˛‹¸Ź…ťŻ‡ž˛Šź°ˆź°ˆš­†Ť {¨œyŻŁ~š­‡żł‹ż´ŒČ˝–ĐŞŃǟĐŞĚÁ™Âśżł‹ÁľĹš‘Çť“Ĺš‘Áľź°‰ˇŤ…ł¨Ż¤~ŞŸ|Ş {Ť {ŠžzŚ›x¤™xŁ™zŞŁˆ´ŽšĹÁľŇĐĘÚ×Ôčçĺřř÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýřřřđđďçćâŮ×ĐĚÉťÇÂŹÉçĐɨŰÔ˛ĺŢżčâĆéçÓééÖčăÇęâÄëäĆëäÇéâÄçßżä۸âÚˇá١ŰŇŽŐĚĽÔʢŐËŁŐˤĐÇ Ç˝–ź˛ŒśŹ‡ť°ŠĂˇÁśž˛Œż´ŒČ˝•ŃƞŇȠΛȽ•Ćť“Ĺş’Ĺš‘Çť“Çť“Ćş’Éž–Çź”żł‹ž˛ŠÁľÄ¸‘Čź•ĚŔ™ĎÛÎÛÍÁ™ĚÁ™Çź”Ŕ´ŒŔ´ŒĹš’Í›ʾ—ᏽąŠżł‹Áľżł‹ľŠƒ­Ą}˛Ś€¸Ź…šŽ†ł¨ƒŹ˘~ŠžzŠyŠžyŤŸz­˘|˛§ź°‰Ćş’ËŔ˜ÎÛĚÁ™Ă¸ŔľÁľĂˇÁľŽž˛‹żł‹Ŕ´Œżł‹š­†ľŠ‚śŞƒşŽ‡ž˛Š˝ąŠł§‚§œxĄ—t¨ž{˛¨„ł¨‚°¤ł§Ŕ´ĚŔ˜ÎÛɾ–ĸĹš‘ĸĂˇÄ¸Ćş’Čź”Éž–Ćş“ž˛‹ž˛ŠŔ´ŒÁľŽĆť“ËŔ˜Í›ÍšĚÁ™ĚÁ™Ćť“˝ąŠ˝ą‰Ä¸Í›ÍÁ™Ćş“żł‹ž˛‹Ŕ´ž˛‹śŤ…ŻĽąŚ¸Ź…˝ą‰śŤ…­Ł~ŠžzŠyŠžyŤŸz­˘|˛§ź°‰Ĺš‘Çź”Ęż—Ëż—Çť“áÁľÂśŽŔ´Œž˛Šżł‹Ŕ´Œżł‹š­†´¨˛Ś€¸Ź…żł‹ź°‰´Š‚Ť {¤˜u§›xŽ˘~ł§‚´ŠƒľŞ„žłÉ˝•Íšʾ–Ĺš‘ÂśŔľÁśŽĆť“É˝•Čź”Čź”ĸ‘ž˛Šž˛Šżł‹żłŒĹš’ËŔ˜ĚÁ™ĚÁ™ĚÁ™ĚÁ™Ćť“˝ąŠşŽ‡Ŕ´ĚÁšÍÁ™Ćş“żł‹ž˛‹ŔľÁľŽşŻˆ°ŚąŚš­†żł‹ˇŹ†­ŁŠžzŠyŠžzŠ }ŠŸ|Ť {şŽ‡Ćş’Čź•ËŔ˜ËŔ™Çź”Äš‘øÄ¸ÁľŽž˛‹żł‹Ŕ´Œżł‹ť°‰śŤ„ł§¸Ź…żł‹żł‹¸­†ŽŁ~¤šwĽ›xŽŁ~ľŞ„śŤ…śŤ…ż´ŽËż˜ŃǟĐŝ˿—ĸ‘ÂśĂˇÄ¸Ćş’Çť“Ĺš‘Áľź°‰š­†śŞ„ą§‚˛¨‚ł¨°¤ŹĄ{¨xŁ˜u –sŸ–v¤œ‚Ş˘°Ş›żť˛ŐÓÎíěęúůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúňňđçćăŰŮÓŇĎÄÉĹľČĂ­ÎÇŞÖĎ­ÜÔ˛ăÜźčâĹéăĆěçÎîéŇíčÍěĺÉęăĹčáĂćŢžä۸ăÚśßŐąÚĐŞŐˤŇÇ ŃǟÔɢÓČĄČ˝–ťą‹˛Š„¸ŽˆÂˇĆş“šŽˆł§‚ź°‰ĂˇÉ˝•ËŔ˜Ëż˜Ęž–ĚŔ˜É˝•Ĺš‘Çť“Ćş’áÄ¸Ä¸ÂśĂˇÇť”ÎÜĚÁ™Éž–ÍÁ™ËŔ˜Çť”Çť“ÂśťŻˆşŽ‡żłŒČź”Č˝•Ćş’áÄ¸Ĺš‘żł‹śŞƒ˛Ś€´¨‚¸Ź…şŽ‡ľŞƒąĽŻ¤~ŻŁ~Ž˘}Šžz§œyŹĄ}ť°‰Ćş’Čź”ĚÁ™ĎÜËŔ˜Ĺš’Ŕ´Œżł‹˝ą‰ź°ˆżłŒÁľżł‹š­†´¨‚ľŠ‚˝ąŠÂśŽš­†ŤŸ{ –tĽœy˛Š„źą‹´¨ƒŽ˘~´¨ƒžłŒÇź”Ęż—Éž–Č˝•ĚŔ˜Ćť“Ŕ´ŒÁľÄ¸Ćť“Čź•Ćť”ÂśÂˇĹš’Ęž—Ęž–Čź”Ĺš‘Ĺš’Çť“Ćş“Ŕ´¸Ź…şŽ‡ÂśŽÉ˝•Ęž–Čź”ÂśĹš‘Çź”Ŕ´ˇŤ„˛Ś€°ĽľŠ‚şŻˆśŤ„ąĽ€Ż¤~ŻŁ~Ž˘}Šžz§œyŹĄ}ť°‰Ćş’Çť“Č˝•Ęž–ËŔ˜Ćş’ÁľÂśŽżłŒź°ˆżł‹Áľżł‹şŽ†ľŠ‚´¨şŽ‡żł‹ť°ˆ­˘}˘—u¨y˛§¸Ź…˛ŚŽŁ˛¨„ź˛ŒÇť“Éž–Çť“Äš‘Éž–Čź”áĂˇĆş’Çť“Ĺš’áÁľÂśÄš‘Ćş’Çť“Čź”É˝•É˝•Čź”Ćť“ż´ˇŤ…š­†Ŕ´Čź•Ęž–Čź”ÂśĹš‘Čź•ÁľŽ¸Ź…ł§ąĽśŞ„žłŒ¸­‡°ĽŻ¤~ŻŁ~ŽŁ~Ť˘~Ľœy¤™v´ŠƒÄ¸Ćş’Ĺş’Çť“Ęż—Č˝•Äš‘Áľ˝ą‰ťŻˆżł‹ÁľżłŒˇ­ˆ˛¨ƒł¨‚şŽ‡Ŕ´ŒŔ´Œ˛ŚŁ™vĽœyŻĽ¸­†ľŤ…ą¨„˛Š„ş°‰Ä¸‘Ęż—Ëż—Ęž–ĚÁ™Ëż—Čź”Ĺš‘Ćş’Çť“ĸ‘ÁľŽŔ´Ŕľż´ŒşŻˆşŽ‡š­†śŞ„ąĽ€ŹĄ|ĽšvŸ”q›o™o˜pš’xĄš†ŻŠ›ČĹ˝ŕŢŰđđîúúůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ˙˙˙üüü÷÷÷îíëâŕŰÔŃČĘƸÉÄŻĚĆ­ÓĚ­ŮŃŻŢÖłăÜťčáĂęäÇęăÇíćÍďčĐíçËéâÄĺÜťŕ׾ŕ׳âŮľâŮľŢÖąÚŃŤ×ΧŐËĽÔʢŐËŁÔʢÍÛ˝łŽ°§ƒśŹ†ż´ŒĂ¸ž˛ŒŔ´ŽÇť•Ä¸‘ž˛‹ž˛‹Äš’ĚŔ˜ÎÛĚÁ™Ęż—ËŔ˜Éž–ĸşŽˆťŻŠĘż˜ŃĆ ÓȢÎÜǻ“áĘž–Ćť”˝ąŠź°‰ź°‰şŽ†ťŻ‡Ŕ´Éž–Ęž–É˝•É˝•Ëż—Ęž–ÂśŽşŽ†śŞƒ´¨˛Ś€°¤€˛Ś€ľŠ‚ľŠ‚ľŠ‚ł§ŹĄ}ŤĄ}˛Śź°‰ÁľŽÁľŽĘż—ŃƞËŔ˜ĂˇťŻˆ¸Ź…š­†ž˛‹Ĺš’Ćş’ÁľżłŒ˝ąŠź°ˆÁľĆş’¡´Š…Ś{¨ }˛Š„ź°‰ťŻ‰˝ą‹ÁľŽŔľŽ˝˛‹şą‹ŔśÉž–ĐŞÎÛȼ•Č˝•Çť“ÂśťŻ‰ť°ŠĆť”Ě›ÎĞËŔ™Çť“ĸÄ¸Âśž˛‹ťŻˆşŽ‡şŽ‡şŽ‡żłŒÉž–ĚÁ™Ëż—Çť“Çź”É˝•Äš‘˝ą‰śŞƒ˛ŚąŚ€ł¨ƒ´ŠƒľŠ‚ľŠ‚ľŠ‚ł§ŹĄ}ŤĄ}˛Śź°‰ĂˇÄ¸Č˝•ËŔ˜Ęž–ᐟ°‰şŽ‡š­†ťŻˆĂ¸Ćş’ÂśŽÂśŽŔ´ź°‰Ŕ´ŒĹš‘ĸ‘ľŤ†§ž{Ş }˛¨‚š­‡şŻˆźą‹żľż´Žž˛‹˝˛ŠŔľŽĆş’ĚÁ™ĚÁ™Ęž–Éž–É˝•Ćş’ťŻ‰¸­‡ĂˇÍœŃÇĄĘž—Ćş’Ĺš‘Ćş’Ćş’¡ťą‹ˇ­‡š­†¸Ź…ť°‰Č˝•ĚÁ™Ëż—Çť“Çź”É˝•Äš‘żł‹şŽ†´¨‚˛Ś´Ş…˛¨ƒąŚ´¨ľŠ‚ł¨‚­¤€ŞĄ}ŽŁ~ťŻˆÄ¸Ä¸Ćť“Éž–Éž–Äš‘żł‹ź°ˆşŽ†ťŻˆĂ¸Ćş’ÁśŽŔśž´Žť°‰Ŕ´ŒĹš‘Ćť“š­‡Šžz§œyŻ¤š­‡źąŠžłżśŔľŽżł‹ž˛‹ÂśÉž–ЪЪ͚͚͛Ƚ–¸­‡ł§‚ÁśĘŔ™ÍœĹ‘ź°‰ˇŤ„ˇŤ„ľŠƒŻ¤Ł˜u›o™n•Šj’ˆh’ˆi’‰m—wĽ ¸´¨ĎÍĆčçĺřřřýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüř÷÷ňńńčçĺŘÖĎĘČťČIJĐÉ°ŰÓ˛ŕŘśâ١á١ăŰşćßżćßŔčáÂëăĆěĺČëĺČéáÂĺÝťáŘ´ŰŃŤÜÓŽáŘ´âŮľßÖ˛ŰÓŽŰÓŽŰÓŽÚĐŞÚĐŞŮĎŠÖĚŚĹź–śŹ‡şŻˆž˛‹ÁśŽČź”ÎÜĐƞǼ”ź°ˆśŞ„ť°ŠÄş”ĚšĎĜĎĜĐƞÍÞƼšş°źą‹Í›×ÍŚŘΊĐŞƺ“ŔľÄš‘ż´ˇŤ„š­†ťŻˆşŽ‡ž˛ŠÂˇĹš’Ĺş’Ćş’Çź”É˝–Éž–Ĺš‘żłŒťŻˆš­†´¨ƒŻ¤°Ľ´ŠƒˇŤ…ˇŤ„´ŠƒąŚ˛§ƒˇŤ…şŽ‡ťŻˆźą‰Ĺş’Ęż˜Ĺš‘Ŕ´ź°‰¸Ź…ťŻˆÂˇÉž–Ęž–Çť“É˝–ËŔ™ËŔ™ĚÁšÎÜÎĜÁˇ‘łŠ…ą§ƒľŞ…ť°‰Ä¸ËŔ˜ĚÁ™Ĺš’şŻˆą§‚śŹ‡ÁśÍ›ĐŞĎĜĎĜËŔ˜Ä¸¸Ź‡şŽˆĘż˜ÓɢÔʤÎÛɽ•Ĺš‘᏿ł‹şŽ‡¸Ź…şŽ‡ź°‰ź°ˆ˝˛ŠÄ¸‘Č˝•Č˝•Ĺš‘ĸ‘Ćş’Çť“ᏼ°ˆš­…ľŞ„˛¨ƒł¨ƒľŞƒ¸Ź…ˇŤ„´ŠƒąŚą§‚śŞ„ťŻ‡ž˛Šżł‹Ĺš’Č˝•Ä¸żł‹ťŻ‡š­†şŽ‡ž˛‹Çź”Ęž–Çť“Ęż—Í›ËŔ™ĚÁšÎÜĎ޹“´Ş…ą§ƒ´Ş„šŽ‡ĂˇËŔ˜ĚÁ™Ĺš’ź°ˆľŠƒ¸Ź†żłÉ˝–ΚĎÛΚĚŔ˜Čź”şŻ‰¸­‡Çź•ŇÇĄÖËŚĎÜɽ•Ĺš‘áÁľ˝˛Š¸­ˆˇ­‡ť°ˆš­†şŽ‡Äš‘Č˝•Çź”Ćş’Ĺš‘ĸĆş’ĸž˛Š¸Ź…´Šƒ˛¨ƒąŚ€ąŚ´¨‚ľŠƒ´Šƒą§˛§ƒˇŹ…˝ąŠŔ´Œż´ŒĹš’Čź•Ä¸Ŕ´˝ąŠťŻˆź°ˆżłŒÇź”Ęž–Çť“Ęż—Í›ËŔ™ËŔ™Î›ŃÇ Ćť•¸Ź†°¤€ąŚ€š­†ĂˇËŔ˜ÍÁ™Éž–ÁľˇŤ…šŽ‡ÁśËÁšĐŞŃǟŇČĄŇÇ ËŔ˜ˇŹ‡˛§‚Ĺş“ĐƟÓʤÍÛŒ˝ą‹š­‡śŤ„˛Ś€§›wŸ”rŸ•r™Žm”‰i’ˆg†fŽ„g‡m˜‘{ŠĽ•ÁžśŢÜŮđďîřřřüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýřř÷ďďíŕŢÚŃĎĆČÄľÍČłŮÓ¸ŢלáŘľă۸ĺÝźćŢżĺÝ˝ăÚšŕŘśâŰščŕÁćŢžăŰšäŰšăÚˇáŘłŰÓŽÜÔŻŕ׳áŘłŢŐ°ŰÓŽÝÔ°ŕײŕ׳ŕײßÖąŘĐŞË›ŔľŽÂśŽÂśŽĂˇĚÁšŇÇ ĐŝËŔ˜Ă¸şŽ‡śŤ†š°‹Éż˜ĐŝĐƞÓČĄĎÇĽÉÂŚČżžÉž—Ëż˜ĎÜŇČĄÔʤÎĝƺ“Ŕľź°‰ťŻˆÁľŽÂśŽź°‰Ŕ´ŒÁľŽşŻˆź°‰Ŕ´Œ˝ąŠž˛‹ŔľĂˇĂˇÁľÂśŽÂśŽź°‰´Ş…ą§‚ľŞ„ľŠƒ´¨ľŠƒľŞ„śŞ„ľŠƒ¸Ź…˝ąŠ˝ąŠźą‰˝ąŠÁľŽÄ¸Ŕ´ŒÁľŽĆş’Čź”Ęž–ĚÁ™ĐŞŐˤÚĐŤŮĐŤ×ΨÔĘŁĘż—ž´ŒźąŠ˝ąŠŔľČź”ΚÎÛ˿—ÂśľŞ„ą§‚ś­ˆĹť”ÍšĎĜĎĜÎÛĚÁ™Çť”Çť“ÍšĐŝŃǟŇÇ Đŝʿ—Âśź°‰ťŻˆÁľÁľŽź°‰ź°‰ź°‰šŽ‡˝ąŠÁľ˝ąŠ˝ąŠŔ´ĂˇÄ¸ÁľÂśŽÂśŽ˝ąŠˇŤ…´¨‚śŞ„ľŠƒ´¨ľŠƒł¨‚ąŚ€śŞ„şŻ‡ťŻˆž˛ŠŔ´Œ˝˛Šž˛‹Ŕ´ĂˇĹš‘Ćť“Čź”Ęż—ĚÁ™ÎšŇČĄŮĎŞŮĐŤŘĎŞ×ΊËÁ›ż´ťąŠşŻˆť°ˆĆş“ÎÛÎÛʿ—ᐺŽ‡ł§‚ł¨ƒĂ¸‘ĚÁ™ÎÛĚŔ˜ËŔ˜ĚŔ™Čź•Çť”ĚÁ™Í›ÎÛŇÇ ĐŞʿ—Âśź°‰ź°‰ÁśŽÁśŽź°‰ź°ˆ˝ą‰˝ąŠ˝ąŠ˝ąŠżł‹ž˛Š˝ąŠÁśŽÁľŽ˝ą‰˝ą‰ž˛‹źąŠˇŤ…˛Ś€˛Ś˛Ś€ł§ľŞƒľŞƒľŠƒľŠƒˇŤ„şŽ‡ž˛ŠŔ´Œž˛‹ÁľŽÄ¸‘ÁľÂśŽĹš’Čź”Ęž–ĚÁ™ÍšŇČĄŮĎŠŘΨÖÍŚŰŃŹŇÇĄÄš‘˝ąŠşŽ‡ź°‰Ĺş’ΚĎĜÎÛȽ•ť°‰ľŞ…ľŹ‡ÁˇĚÁšÓČĄŇǟĎŝÍ›ǻ”Ĺš’ĚÁ™ĎĝŃǟŇÇ ŃƟĚÁšŔľŽ¸Ź†´Š‚ł§Ż¤§z –s˜Žl”‰i’ˆh…e„d„g’Šq ›ˆť¸ŽŇĐËĺăáňńđůůřüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýřř÷ěëéÜÚŐÍĘžÉĹ´ÔθŕŮżçŕĂćßÁäÜşćßžčáĂăÚşßÖ˛ŢÔ°ŕŘśäÝźäÜťŢŐąÜŇŽäŰşĺÜşŕ׳ŘΨŘĎŠÜÓŽÚĐŞŘΨŘĎŠÚŃŤÝÔŻáŘ´âŮľŕ׳ŮĎŠÍݦŽŔ´ŒŔ´ŒÂśËŔ™ŃƟĎŝĎĝËŔ˜ŔľżľŽÄť•ĎŞÓČĄÓČĄŇČ ĐƢĚÄŁÍÄ Íšʾ–ĚŔ˜ĎĝĐşÎĜĚŔ™Éž—Çź”Ćť“Éž–Ćť“żł‹ž˛‹żł‹ž˛‹żł‹ž˛ŠşŽ‡ˇŤ…ľŤ†¸­‡ž˛‹ĂˇÇť“Ćş’Áľť°‰śŤ…´Š‚śŞƒ¸Ź„ľŠ‚ąĽ°ĽˇŤ…ž˛‹ž˛‹š­†¸Ź…ÂśČ˝•Éž–áÄ¸Çť“Čź”É˝•ËŔ˜ÍšÓȢŰŇ­ÜÓŻŮŃŹŐĚĽĚÁ™ÁľŽ˝ąŠ˝ąŠÁľÇť“ÍÁ™ĎĜŃƟËÁš˝˛‹ťąŠÁˇ‘ËÁšĎĝĎĜĎĜĎĜĎĜÍšĚŔ˜ĚŔ˜ÍšĎĜÎÜÍšËŔ˜Éž–Ĺş“áÇź”Ćť“żł‹ź°ˆź°‰˝ąŠÁľÂśŽťŻˆ¸Ź…¸Ź…şŽ‡ž˛‹ĂˇÇť“Ćş’Áľź°ˆ¸Ź…ľŠ‚śŞƒ¸Ź…¸Ź…ŻŁ~ŠyľŞ„żłŒ˝ą‰š­†şŻˆÂˇĆť“Çź”Ĺš‘Çť“Ęż—Éž–Ëż—ΚÍÁ™ĐŞŮĎŠÝÔŻÝŐ°ÚŃŹÎĞÁśŽ˝ą‰şŽ‡ź°ˆĆť“ĎĜĎĜĎĝĚÁ™Ăˇž˛ŒżłČ˝•ĎĜŃƟÎÛĚŔ˜ĚŔ™ÎÛĎĝĎĜΚ͚ŃƞĎĜËŔ˜Éž–Ĺş“ĸĘż—Éž–żłŒź°ˆ˝ą‰Ŕ´Œżł‹˝ą‰ź°ˆşŽ‡¸Ź†¸­‡ť°ŠŔ´ĂˇÄ¸Ăˇž˛‹¸Ź…˛Ś€´¨‚¸Ź…¸Ź…ąĽŞŸz˛Ś€şŽ‡ťŻˆš­†şŽ‡Ŕ´Ćť“É˝•ĂˇÄ¸Çť“Čź”É˝•Ëż—ËŔ˜ĐŞŮĎŠÚŃŤŮĐŤŰŇ­ŇÇĄÄš‘ž˛‹ź°ˆž˛‹Ćş’ÍÁ™ĎĜŃƟÎÜø‘˝˛Œ˝´Čž—ŃƞÔʢŇǟĎĜĎĜÍšÍÁ™ĎÛĎĜĎĜÎÜÎÜÍ›ʿ˜Ă¸‘ż´ŒÁľŽźą‹°Ś¨y –t›‘p™n–Œk‘‡gŽ„eŒƒeˆm–ŻŞœĂŔˇ×ŐŃéčćóóňůůůüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýřř÷ëëé×ÖÎËČşĚČľŮÔźçáÇéăÇëĺĘěĺËçŕŔéâĹëäÉâÚşÜŇŽŰŃŹßÖ´áٸßÖ˛ÚĐŤÚĐ­ăŰşäÜşßÖąŐËĽÔʤÖĚŚŇÇĄŃƞÔĘŁÖĚĽŮϨÝÓŽŢŐ°ÜŇ­ÔĘŁĘż˜ÁśŽž˛‹žł‹ÁśŽÉ˝•ÎÛĎĜŃƟĎĝȽ•ËÁ™ŇČ ÔĘŁÔĘŁÓÉĄĎĜÍ›ÎĝĎŞÎÛʾ—Ëż—ĚÁ™ËŔ˜ĚÁ™ĐĜŇČĄŇÇ ĎĜĎŝĚŔ™Ĺš‘ÁľŽÂśŽĆş“ᐞ˛ŠˇŹ…łŠƒą§ƒ˛§š­†ÁľĹš‘ĸŔ´ŒŔ´Œž˛ŠśŞƒ¸Ź…˝ą‰¸Ź…ąĽ€ŻŁ¸Ź†żłŒ˝ąŠşŽ‡źąŠÉ˝–ΚĚÁ™Ćť“Ĺš‘Čź”Çť“Čź”Ęž–Ęž–ÎÜÖ̧ŘĎŞ×ΨÓɢʿ˜Áľ˝ąŠž˛‹ÂśŽĆş’Ëż—ĎĜÓȢŃÇĄČ˝•Ç˝•ÍšŃÇ ŇÇ ĎĜÍšÍÁ™ÎÛĎĜÎÛʾ—ĚŔ˜ÎšËŔ˜Ęž–ĚŔ™ŃƟĐƞĚÁ™ÎĜ̹őÁľÁľŽĹš‘Ćş’ÂśŽ¸­‡´Šƒ´¨‚ł§š­†ÁľĹš‘ĸŔ´Œżł‹˝ą‰ˇŤ„š­†˝ąŠťŻ‡°ĽޞzľŞ…żłŒź°‰şŽ‡˝ąŠÉ˝–ΚĚÁ™Çť“Čź”ËŔ˜É˝•É˝•ĚÁ™ËŔ˜ÎÛŐʤŮĎŞŰŃ­×ΊĚÜÁśŽ˝ąŠź°ˆž˛‹Ĺş’ÍšĎĜŃƟĐŞ˿˜Ëż˜ÍšÎĜŃƟŇČ ĎÜËŔ˜ËŔ˜ŃƞŇČĄÎÛÍšĎĜΚĚÁ™ĚÁ™ŃƟĐƞÍšŃƟĎĝŹ’ż´ŒŔ´Ćş’ĸž˛ŠˇŤ…ˇŤ„ˇŹ…ł¨ƒśŹ†ŔľĹš’Ćş“ĸÂśŽ˝ą‰śŞ„š­†˝ąŠťŻ‡°ĽŠžzł§ź°ˆťŻˆš­†şŽˆĹš‘Ëż˜ĚÁ™Ćť“Ćş’Čź”Çť“Çť“Čź”Éž–ΛÔĘŁÖÍŚ×ͧÖͨÍܶŽ˝ąŠž˛‹ÁľŽĹš‘Éž–ÎÛŃƟĐƞ˿—Č˝•Ęż—ŃƟÔĘŁÓÉĄĎĜÍÁ™ÎÛĐŝĎŝÍšÎÜĎĜʾ—Éž–ĚÁ™ŃƟĐŞĚÁ™ĚÁšÇź•ť°Šł¨ƒ­ŁŠŸ}Ľ›yž”r•‹j‘‡g…eƒd„h”Œu šˆľą¤ÍËÄÝŰ×ęéçööőúúúýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüöööééćÖÔÍĘƸŃ͸ŕÚÂéăÉęäČéăĹěĺĘíçÍëäÇëăĆěĺÉëäČĺŢżŢŐąŐËŚÓȢŘΊßÖ´âٸÜÓŻŢÔ°ßŐ°ŘͧÓÉĄŃƟÍÁšĚÁ™ĐŝÓČĄÔĘŁÓČĄŇÇ ŃƟĚŔ™Ćş’áÇź”Ćť“ÂśĹş’Ëż—ÍšĚÁ™ÍšĐŞŃƞĐŝĐŝĐŝÎÛǼ”Čź”ÎÛŇÇ ĐŞʿ—Č˝•Ęž–ÍšĎÛŃƞÔʢÓɢŃǟÓČĄŇČ ÎÛÎÜÎĜĚŔ™ĂˇšŽ‡˛¨ƒ´Ş…šŽˆš­†ˇŤ„ˇŤ…ź°‰ž˛ŠťŻˆżłŒÂśŽťŻ‡ťŻˆżłŒÂśŽżł‹š­†ąŚąŚ€šŽ‡ÂˇČź•Éž–ĚÁ™ÎšĚÁ™Ęż—Čź”Äš‘Ćť“ĚÁ™ÍšÎÜĐƞŃǟĎŝËŔ˜Ćş’ÂśŽĂˇĹš‘Ćş’Çť“Ęž–ÍÁšĚÁšÍšĐŞÍ›˿—ÎÛĎĝÍšǻ“Ĺş’Ęž–ĐŞĐŞ˿—ËŔ˜ÎÛΚÎÛĎĝÔɢŐˤŐˤÖͧÔˤĎĜÎĜÍ›ȼ”ÁľŽšŽˆ˛¨ƒ´Ş„şŽ‡š­†ˇŤ„ˇŤ„ź°‰ž˛ŠşŽ‡ź°‰ž˛‹ž˛Šżł‹Ŕ´Œž˛‹˝˛Šť°ŠľŤ†˛¨ƒśŞ„ż´Čź•Éž–ĚÁ™ÎšĚÁ™Ëż—É˝•Ĺš‘Ĺš‘É˝•ËŔ˜ĎĝÓÉĄŃƟÎÜĎĝɞ–¡ĂˇÄ¸Ä¸Ä¸Çť“ĚÁ™ĚÁ™ĚŔ˜ÍšÎÛÎÛÎÛĎĜÎÛȼ”Çť“ÍšŇČ ĐƞǼ”Éž–ÍÁ™Ëż—ĚŔ˜ĎĜÓɢŐˤÔĘŁŐˤÓɢÎÜĚŔ™ËŔ˜ËŔ˜Ćť“źą‰°¤ł§ťŻˆšŽ†śŤ„¸Ź†Ŕ´Âśź°Š˝ą‰żł‹ž˛Šżł‹Ŕ´Œž˛‹˝˛Šź°ŠˇŤ…´¨‚śŞ„˝ąŠÄ¸Çť”ËŔ˜ÍšĚÁ™ÍÁ™ĚÁ™Ćş’Ĺš‘Čź”ËŔ˜ĎĝÓÉĄĐŞÍ›Îĝɞ–¡ĂˇĹš‘Ĺš‘áĆş’ĚŔ˜ĚÁ™ĚŔ˜ÍšÍšÍšĎĜĐŝÎÛȼ”Ĺş’Ęž—ŇČĄŃȢȽ•ĚÁ™ĐŞËŔ˜ËŔ˜ĎÜÓɢŐˤÔĘŁÔĘŁŃƟËŔ™Äš“ŔľŽź°Šł§‚Ś›w˜Žm•‹j•Šj’‡gƒdŒ‚cŒ„h—yŚ ľąĽÇÄťÝÜ×ďďî÷÷÷űűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűúööőççăŇŃČČŸĎ̸ŕÚÂéăĘéâÇĺÝžäÜťćßŔęâĹëäĆëäÇęăĆćßŔáءÜŇ­ŐËĽÓȢÖĚŚÜÓŻŢŐąŘĎŠŮĎŠÚĐŞŐˤÓČĄŃǟÎÛËŔ˜ĚÁ™ÎÛÎÜĚÁ™ĚŔ˜ĚŔ˜Ëż—Čź”Ĺš‘Ćť“Ćť“ĸÄ¸Çť“Ęż—Éž–Ëż˜ĐŞÍ›ɽ•Čź”Ęž–Éž–ĸĆş’Í›ŃƟĐŝʾ–Čź”Ęž–ÎÛĐƞÓČĄŐËŁŐĚĽŐˤŐĚĽŐËŁÓČĄŃƞÍšź’ž˛‹¸­†śŤ…¸­†ź°‰ž˛‹ž˛‹ťŻ‰¸­‡´Š„ąĽ€śŞ„ź°‰żłŒŔ´ŒżłŒ˝ąŠťŻˆ¸Ź…´¨‚ľŠƒź°‰Ĺš‘Ęž–É˝•Ęž–ËŔ˜ĚŔ˜ĚŔ˜Ęż—Çť“Čź”͚͚ĚŔ˜ĚŔ˜ĚŔ˜Ëż—Č˝•Ćş’ĸÁľŽÂśŽÄ¸Ä¸Ĺş’Çź”Čź”Ëż—ĐŞÍ›ȼ•Ĺş’Éž–ĚŔ™Ĺš‘ĸËż—ĐŝĎĝʾ–Čź”Éž–ÎÛŃÇ ÓĘŁÓɢÖĚĽÚŃŤŮĐŞ×ΧÔˤŃÇ ĚÁ™Ăˇź°‰¸­†śŤ…¸­†ťŻˆź°ˆź°ˆťŻˆşŽ‡śŞ„ąĽ€´¨‚şŽ‡ÂśŽÄ¸ÂśŽź°‰şŽ‡ťŻˆˇ­†śŤ…šŽ‡ĂˇĘž–É˝•Ęž–ËŔ˜ĚŔ˜ĚŔ˜Ęż—Ćť“Çť“Ęž–Éž–Ęż—ΛĚŔ˜É˝•Ęż—Čź”Ĺš‘ĸÄ¸Ä¸ÂśŽÄ¸Éž–Éž–Ęž–͚Κ˿—Ćť“Éž–ĚŔ™Ĺş’Ćş’Í›ŃƟÎÜǻ“Ćş’Č˝•ËŔ˜ĎĜŇÇ ÓČĄÖĚĽÚĐŞŘΨ×ÍŚÖĚŚŃƟËŔ˜Čź”ÂśťŻˆľŠƒ¸Ź†ž˛‹˝ąŠź°ˆź°ˆź°‰¸Ź†˛Ś´¨‚şŽ‡ÂśŽÄ¸Ăˇž˛‹ť°‰şŻ‰¸­†š­†ź°‰ĂˇČź”Čź”Ęž–ËŔ˜ĚŔ˜ÍšÍšǼ”Çť“Ęż—ĚŔ˜ÍÁšÎÛĚŔ˜É˝•Ęż—Čź”Ĺš‘ĸĂˇÁľŔ´ŒĂˇÇť“Čź”Ęž–͚Κ˿—Ćť“Éž–ĚŔ™Ĺš‘áÉ˝–ŇÇ ŇČĄČ˝•Čź•ËŔ˜ĚŔ˜ĎĜŇÇ ÓČĄŐˤ×Χ×ÍŚ×ÍŚŐËĽĚÁ›Ăˇ˝˛‹ľŞ„ŤĄ|¤™v •rœ‘o˜l•‹k’ˆhƒd‹‚e†m•xŸ™‡´°¤ĐÎČçćăôôóúúúýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűôôôćĺŕĐÎĹČÄľŇÎşăßČěćÍęĺËäÝżŢÖłÝÔąŕŘľĺÝźéáÂčáĂĺŢžÝÓŻŘΧÖĚĽÖͧ×ͧÖĚĽŐĚĽŐËĽÖĚĽÖĚĽŐˤŇČ ÓČĄÔɢĐŝËŔ˜Éž–Čź”Čź”Čź”É˝•Ëż—ĚÁ™Ęż—Çť“áĂˇĹš‘ĸÄ¸Çť“Čź”Ęž–Íšɾ–øÂśŽÄ¸Ćş’áĆş’ĚÁ™ĎŝÎÛɽ–Çť“É˝•ÎÜŃǟÔɢÖĚĽŘϨŘĐŞ×ΨŐˤŇČĄÎÜȼ”Ŕ´ź°‰ź°‰˝ąŠź°ˆťŻˆÂśŽĹš‘ż´łŞ…Ş }¨zŽ˘}ˇŤ…ÂśŽÂśŽ˝ąŠśŞ„ł§´¨‚š­‡ž˛‹ÁľÄ¸Çź”É˝•Ęž–Ęž–Ęž–ÍÁ™ÎÛʾ—Ęž–ĚÁ™Ęž–Çť“Čź”É˝•Ęž–É˝•Čź”ĸž˛‹˝ąŠŔ´ŒÁľÂśŽÄ¸Ćş’Ęž–ÎÛĚŔ˜Ćť“Ŕ´ĂˇČ˝•Ĺš‘Ćş’ĚÁ™ĎĜÎÛɽ•Ĺš‘Ćş’ÎÛÓɢŐËĽÓÉĄ×ÍŚÝÓŽÚĐŞÖÍŚŐËĽĐŞȽ•Ŕ´˝ąŠź°‰˝ąŠź°ˆşŽ‡ž˛ŠÁľŔ´ŒˇŤ…­Ą|¨yŹĄ|śŞ„áĹš’ÁľŽˇŤ…ł§ľŠ‚şŽ‡żł‹ÁľÄ¸Çť“Čź”Č˝•Ęž–Ęž–ÍÁ™ÎÛʾ—Éž–Ëż—Ćť“ĸÇť“É˝•É˝•Ęž–Č˝•Ćş’áÁľÁľŔ´ŒĂˇÇť“Çť“É˝•ÍšĚÁ™Čź”ŔľĂˇČ˝•Ĺš‘Ćş’ĚÁ™ĎŝÎÛȼ•Ĺš‘Ĺş’ÍÁ™ŃƞŇČĄŇÇ ×ÍŚÝÓŽŮĐŞŘΨŮĎŞŃĆ Čź”ĸ‘Ŕ´˝ąŠ˝˛Šž˛‹ž˛‹żłŒŔ´Ŕ´ŒˇŤ…Ž˘|¨yŹĄ|śŞ„áĆş’ÂśťŻˆ´Šƒ˛¨ƒ¸­‡Ŕ´Ĺš‘Ćş’Çť“Čź”Č˝•Ęž–Ęž–ÍÁ™ÎÛʾ—Éž–ĚŔ˜Ęž–Çź”Čź”É˝•É˝•Ęž–Č˝•Ćş’ÂśŽżł‹˝ąŠž˛‹ÁľÄ¸Ćş’Éž–ĚÁ™ĚŔ˜Čź”ŔľĂˇČ˝•Ĺš‘ĸÉ˝•ĐƟŃÇ Ęž–Ĺš‘Ĺş’ÍÁ™ŃƞŇČĄŇǟŐˤŮĐŤŘϨŮϨŮĐŞÎܶž˛‹ˇŹ‡ą§‚˛§‚­Ą}Ľšv •r“qšo‘‡h‰a‡}`†}a‡e’ŠuŠ¤•ĆĂşâáÜôôóúúúýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýúúúóóňăâßÎËÁÉĹľ×Ó˝ĺáÉíéŃëĺĚäŢžßŘľŰÓŻÚŃŹŕ׾ćŢžäÜşŕ׳ÜŇ­×ΧÔʢŃǟŇÇ ÓɢÔĘŁĐŞĎĜÔɢÔɢŇČ ÓɢŐËŁÔɢÎÛɽ•Çť“Ĺš‘áÄ¸Č˝•ĚÁ™Ëż—É˝•Ćş’ÂśŽÁľĂˇÄ¸Ćş’Çť“Čź”Ęž–Íš˿—Ĺş’ÂśŽÁľĂˇĹš‘Çť“Ęż—ĐŝĐŞɾ–Ĺš‘Çť“ĐŞĐŞĎĝŐËĽŮŃŤŮĐŤ×ΨŇČĄÍšÍÁ™ĚÁ™Éž–Ćť“øÁľ˝ą‰ťŻˆÂśŽż´Ž´Ş…Ť˘~Śœy§œyąĽ€ťŻˆżłŒž˛ŠşŽ‡ˇŤ„śŞƒˇŤ„ź°‰ÂśŽÄ¸Ä¸Ĺš‘ËŔ˜ÍšÍšÍšĐŞŃǟĚÁ™Čź”É˝•Ĺš‘áÄ¸Č˝•ÍšĚÁ™Čź”ÂśŽżł‹żł‹Ŕ´ŒŔ´ŒÄ¸Č˝•É˝•Ęž–ÍšĚŔ˜Čź”ĸ‘ÁśŽŔľĂˇÇť“Ęż—ĐŝĐŞʾ–Çť“É˝•ŃƟĐƟĎŝŇČĄ×ͧÚŃŹŘĎŠÓČĄÎĜ͚͚͛ɽ–ĸÁľ˝ą‰ťŻˆŔ´Ŕ´ŒˇŤ…Ž˘~¨œy§œxŽ˘}¸Ź…᏿łŒ¸Ź…śŞƒśŞƒˇŤ„ź°‰ÂśŽÄ¸Ä¸Ä¸Çť“Ëż—͚͚ЪŃǟĚÁ™Čź”Č˝•Ä¸ÁľĂˇČ˝•ĚÁ™ÍÁšĘż—Çť“ÂśŽŔ´ŒŔ´ŒŔ´ŒĂˇĆş’Ĺš‘Ćş’ÍÁ™ÎÛĚÁ™Ĺş’ÁľŽŔ´ĂˇÇť“Ęż—ĐŝĐŞʾ–Çť“Çť“ÍšÎÛΛŇČ ×ͧÚŃŹŘĎŠÓɢĎĝ˿˜É˝•Ęż—Ęž—Çź”Âśž˛Šź°ˆž˛Š˝ą‰śŞ„Ž˘~¨œy§œxŽ˘}¸Ź…áÂśŽź°ˆľŠƒ´¨‚ľŞ„¸Ź†żł‹Ĺš‘Ĺš‘ĸÇť“Ëż—͚͚ЪŃǟĚÁ™Čź”É˝•Ćş’áĂˇČ˝•ÍšÍšʿ—Çť“ÂśŽÁľÂśÁľĂ¸Č˝•É˝•Č˝•Ęż—ĚŔ˜ËŔ˜Ĺş’ÁśŽŔľĂˇĆş’É˝•ĐŞŃǟ˿—Çť“Çť“͚͚ΛŇČ ŘĎŠÝÓŻŮĐŞŐˤÓČĄĚÁ™Čź•ËÁ™Çź•ż´ŽşŽ‡ł§­˘}ޞz¤™v›‘o‘‡gŒb‹‚c‰~`†|_‡}a‹„m˜‡˝ş°ŢÝŮđđď÷÷÷üüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýúúúóňňŕßÚĚÉ˝ĘĹ´ÚÖÁéăÉěĺËëćĚčâĹäÜžăÜźáÚ¸ÝÔŻÝÔ°ÝÔ˛ŮÎŞŐˤÔĘŁÖÍŚÓɢΚĚÁ™ĎÛŃƟÍšĚŔ™ÓɢÔʢÓÉĄŐËŁŐËŁŃǟʾ–Ćş’Çť“Ĺš‘Ĺş“ĘŔ™ĎşŃÇ Ęž–Ĺš‘ÂśŽŔ´ŒŔ´ŒÁľĹš‘ĸ‘ÁľĹş’ĚÁ™ĐƞĐŝĚŔ™Ä¸ÁľĂˇÄ¸Ćş’Čź•ËŔ˜Ëż˜Ćş’ĸÇť“ĐŝĎĝÍ›ÓȢŐĚŚŐËĽÔĘŁĎĝʿ—Ęż—ÍÁ™ĎÛÍšɾ–Âśž˛Šź°‰źąŠ¸Ž‰´Ş…ł¨„˛§‚ąĽ€˛§´¨ƒ´Šƒ´¨ƒśŞ„ź°ˆź°‰š­†ťŻ‡Ŕ´Ćş’øÄ¸ĚÁ™ĐƞŃǟĎŝŃƟŃƞʾ–Ćş’Çť“áÂśŽĆť“ÍÛŇČĄĎĜȼ”ÁľŔ´ŒŔ´ŒŔ´ŒÂśŽÂˇÁˇĆť”ĚŔ˜ÎÛÍš˿—Čź”ĸŔ´Œž˛‹ÁľĹš‘Ęž—ËŔ™Č˝•Ćş’Çť”ÎÛĎĝĎĜŇÇ ÔĘŁŐËĽÔĘŁĎĝʿ—Ęż—ΚŃƟΛȼ”ĸŔ´Œ˝ą‰˝ąŠşŽ‡ľŠ‚ł¨‚˛§°Ľ€°¤˛§¸ŽˆśŤ…ł§‚şŽ‡ź°‰š­†ťŻ‡Ŕ´Ćş’øĂˇÉž–ÎÛŃƟĎŝŃƟŃƞʾ–Ćş’Çť“áÂśŽĆť“ÍÁšŃƞĎĜʿ—Ĺš‘ÁľŔ´ŒŔ´ŒÂśŽÂśŽż´ŒÂˇČ˝•ÍÛĐƞĐŞʾ—Âśž˛‹ÂśŽĆş’Čź•ËŔ˜ËŔ™Č˝•Ćş’Çť“ÍšÎÜĎĜŇÇ ÔĘŁŐËĽÔĘŁĎĝʾ–Čź”É˝•ËŔ˜ĚÁ™Ęż—Ĺš‘Ŕ´Œź°‰ź°‰š­†ľŠ‚ł¨‚˛§°Ľ€°¤ąŚˇŤ†ˇŤ…śŞƒ¸Ź…ťŻ‡şŽ‡ˇŤ„ťŻˆÄ¸‘øÂśŽÇť“ÍšŃǟŇÇ ŇČ ŃƟʾ–Ćş’Çť“Ĺš‘áĹš‘ĚÁšŇČĄĐŝʿ—ĸżł‹Ŕ´ŒĂˇÂśŽÁľĂˇÇź”Ëż—ËŔ˜ÍšÍšʾ–ĸŔ´ĂˇĹš‘Ćş’Ęž—ĚÁšĘż—Čź”Çť“Ëż—ÍšĎÜŇÇ ÖËĽŘΨÖËĽŃƟÍÁ™Ęž–Ëż˜ŃƞĎĜɾ–ÁľŽşŽ†ł¨Ż¤§yŸ”r™Žm–Œj•‹j„e‰`†|^‚x\ƒ{b•{´°¤ÎĚĆääáööőűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýůůůńńđăâŢÎĚżĚÇ´ŰŘĹęçŇíčŃěćËčáÄćßŔčáÂęäČéâÄâŮśÚĐŞÓȢÍ›ÍÁšĎŝÔʤŇČĄËŔ˜É˝•Ęž—ĚÁ™Ęž—Ëż˜ŇÇ ŐĘŁŐˤŐËŁŇČ ÎÛǻ“Ĺš‘Çť“Čź”ĚÁšÔËĽ×ΨÔËĽÉž—ÁľŽź°‰˝ą‰żł‹ÁľÄ¸ÁľşŽ‡ÂśÍšÓÉĄÔʢŃƟǼ”Ĺš‘Ćş’ÂśĂˇĹš‘ĸÁľŽÂśŽÄ¸É˝•ÎÛĎĜĎĜĐƞĐŞĎĜÎÛĚŔ˜Čź”Čź”Ęž–ĚÁ™ĚÁ™Éž–øÁľž˛‹śŹ†ľŤ…ťŻ‰żłŒŔ´ź°‰ł¨‚ŹĄ}Ť |Ž˘}ł§‚ž˛‹Ŕ´ŒťŻˆşŽ‡ž˛ŠÄ¸ĂˇĹš‘ĚÁ™ŇÇ ÔɢŃǟĎĝÍšǻ“ĸĆş’ĸĹš‘ÍšÓÉŁŐËĽÎĜǻ“Áľž˛Šżł‹ÁľÄ¸ż´ˇ­ˆŔśĚÁ™ĎĝĎĜΚʿ—Çť“Ŕ´ľŠƒł¨‚ź°‰ÁľĂˇÄš‘ĸÄš‘Éž–ĎĜŇČĄŇǟĐŞĎĜÎÛĚŔ˜Čź”Čź”Ęž–ĚÁ™Ęž–Çť“Ćş’ĸżłŒš­†śŞƒ¸Ź…˝ąŠŔ´ź°‰˛§Ť |ŽĽŻĽł§‚ž˛‹Ŕ´ŒťŻˆşŽ‡ž˛ŠÄ¸ĂˇÄš‘ËŔ˜ŃǟÔɢŃǟĐŞÎÛǻ“ĸĆş’ĸĹš‘ÍÁšŇǟŇČĄÎĜȼ”ÂśŽżł‹żł‹ÁľÄ¸ÁľşŻˆÂśËŔ˜ĎĜŇÇ ŇÇ ĚÁ™Ćş“ÂśŽÁľĂˇĹš‘ĸĂˇĹş’ĸĹš‘ÍÁ™ŃƟÓČĄŇǟĐŞĐŝÎÜĚŔ˜Čź”Čź”Čź”Č˝•Čź”Çť“Çť“Ĺš‘Áľź°‰¸Ź†¸Ź…ź°ŠŔ´Œź°‰ł§‚Ť |ŹĄ}ŽŁ}ł§˝ąŠÁľżł‹š­†ťŻˆÂśĂˇÂśŽÇź”ÎÜÔɢŐËŁÓČĄÎÛƺ’ĸÇť“Çť“Čź”Ęž—ĐĆ ŐĚŚĐŝȽ•ÁľşŽ‡ťŻˆŔ´ŒŔ´Œ˝ą‰şŻˆĂˇĚŔ™ÎÛĎĜĎĜĚŔ™Č˝•Ćş’áÁľÁľÁľŽÄ¸‘Č˝•Ćť“ĸÉ˝•ÎÜŇČ ŇǟŃƞĐŝĎĜĚŔ˜Č˝•Çť“É˝•ÍšÍÁšÉž–Ćş’Ŕ´šŽ‡˛¨ƒŤĄ}§œy§œxĽšwž”q”‰i‹b‡~_ƒy\€wZ„{_‡q ›‹źšŻââßôôóúúúýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýřřřňňńáßŰĎËÁĚÇ´ŰÖžçĺĐëěÝíěŰíéĐęăÇçßżćŢ˝ćßžćŢ˝âŮśÜŇŽŐËĽÎÜɾ–Čź”ĚÁšÎÛĚÁ™Éž–Ĺş’ÂśÄš‘É˝•ÍšŃÇ ŐĘŁŇČ ĎÜ˿—Ęż—É˝•É˝•Ëż—ĐŝÖĚĽŐËĽĐƟƺ“Ŕ´Œ˝ą‰¸Ź…şŽ†żł‹ÂśŽŔ´Œ˝ą‰ÁľČ˝•ĐĝŇǟŃƞĎĝËŔ™Ćť“Ŕ´Œž˛ŠÁľž˛‹˝ą‰Ŕ´ŒÄ¸É˝•ÍšĎĜĐŝŇÇ ÎÛǻ”Ćş’Äš‘ĸĆş’Çť“Ćş’áÂśÄ¸Ĺš‘ᐟąŠˇŹ†ˇŤ„ťŻ‡ž˛‹żł‹ťŻˆśŤ„ľŞƒł§ł§şŽ‡Ŕ´ŒÁľżł‹ž˛Šž˛‹ÂśŽĆş’Ęż—ĐŞŐËŁÔɢĐŝ˿—Çť“Ćş’Čź”Ćş’Ęž–ŃƟÓɢĐƟȽ•Ăˇżł‹š­†şŽ†żł‹ÂśŽżłŒť°ŠżľČ˝–ĐƞŃǟĐŝĐŝƻ”śŞ„˘–sĄ–s˛§€š­†ťŻˆżł‹Ä¸‘Éž–ĚÁ™ĎĜŇǟŇČĄÎÛǻ”Ćş’Äš‘ĸĆş’Çť“Ĺş’ÂśŽŔ´Ĺš’Çť“ĸž˛‹š­†š­†ťŻˆž˛‹ž˛Š¸Ź…˛Ś˛¨‚ąŚ€˛§şŽ‡Ŕ´ŒÁľżł‹ž˛Šž˛‹ÂśŽĆş’Ęż—ĐŞŐËŁÔɢŃǟÎÛȽ•Ćş’Čź”Ćş’Ęž–ŃƟŇČ ĐŞĚŔ˜Ĺş’żł‹š­†şŽ†żł‹ÂśŽÂśŽŔ´ÂˇČź”͛ЪŃƟŃƟÎÛɽ•ĂˇÁľÂśŽž˛‹˝ąŠÂśŽÄ¸Çť“͚ЪŇǟÓČĄĐŝ˿—Çź”Äš‘ĸĆş’Čź”Çť“áŔ´Ćş’É˝•Çź”ÁśŽš­†ľŠ‚śŞ„ťŻˆž˛‹ťŻˆśŤ„ľŞƒł§˛Ś€śŞ„ž˛ŠĂˇÁľŽżł‹ž˛‹żł‹ÂśŽÇť“ÍÁšŇÇ ŐĘŁÓČĄÍšŹ‘áÇť“Čź”Ëż—ĐŞŇČĄŇČĄĎĜȼ”żłŒˇŤ„¸Ź…ž˛‹Ŕ´ŒŔ´ŒŔ´ÂˇČź”ÍÛŃǟÓɢÓÉŁÎĝȼ•ĂˇŔ´ŒżłŒ˝ą‰˝ą‰Ŕ´ĂˇĆş’ËŔ˜ĎĜŇǟÓČĄĐŝ˿—Çź”Äš‘áĂˇĹš‘Čź•Ăˇž˛‹ÁśŽĹš‘Äš‘˝˛‹łŠƒ­˘}ŞŸz¨y¤šx›‘p’ˆh†gŒ‚b‡}^…{]w[‚za‰uśł¨ÔÓĎęéč÷÷÷üüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüü÷÷÷ďîěŢÝ×ÍĘžËĆłŢŘżęäĘěçĎěíŢíîÝíéĐęăĆçßżĺÝťäۡáŘ´ŢŐ°ŰŇ­ÖͧÎĜǻ“ÂśŽÄ¸Ćş’Çť”Çź”Ĺš‘Ŕ´ÂśŽÄ¸‘ĸČ˝–͚͛ÍÛĎĝŃƞÎÛʾ–Ëż—ÎÛĐŞĐŞĚÁ™Ăˇ˝ą‰š­†ł§ˇŤ„żł‹Ă¸Ä¸ÁśŽÄš‘Éž–ÎÛÎÛΛĐŝÎÜɽ–Âś˝ąŠ˝ą‰şŽ‡ťŻˆÂśŽÇť“ËŔ˜ÎÛĎĜĎĜĐŞʿ—ÂśŽŔ´ŒżłŒž˛Šżł‹Ŕ´ŒżłŒź°‰ťŻˆÄ¸Ćş’Âśżł‹şŽ‡ˇŤ…şŽ‡˝ąŠž˛Šżł‹Ŕ´Œ˝ąŠ¸Ź…ľŠ‚śŞ„ťŻˆżł‹Ŕ´Œżł‹ž˛‹Ŕ´ÂśŽĂˇČ˝•ÍÛÎÜÎÛÍšËŔ˜Éž–Čź”Čź”Ëż—ĐĝĐŝĚÁ™Ăˇ˝ą‰š­†˛§ľŞ„żł‹Ă¸Äš‘áÄ¸É˝–ĐƞĐŞÍÁšĘż˜šŽ‰¤˜u˜ŽmŸ•rŻ¤~śŞƒ¸Ź…ź°‰Ćş“ÎÛĎĜĎĜĎĜĐŞËŔ™Ä¸żł‹˝ą‰˝ąŠżł‹Ŕ´ŒżłŒź°‰ťŻˆÄ¸Çť“ĸŔ´Œź°‰ťŻˆ˝ą‰ž˛‹żł‹żł‹ź°‰ˇŤ„´¨‚ł§ľŠ‚š­‡żł‹Ŕ´Œżł‹żł‹ÂśŽÄ¸‘áÇź”ËŔ™ÎÜĐŞĐŝÍÁšÉž–Čź”Čź”Ëż—ĐĝĐŝÍšƻ“Ŕ´šŽ‡˛§´Šƒź°‰ÁľÄ¸Ĺš‘Ĺš‘Čź”ÍšÎÛΛЪЪΚǻ“ÂśŽżł‹š­†š­†ÁľĆş’É˝•ÍšÎÛÎÛŃǟĎĜȽ•ĂˇżłŒž˛Šżł‹ÁľĂˇżł‹ź°ˆÂśČ˝•Éž–ÂśşŽ‡ˇŤ„ˇŤ…şŽˆżł‹Ŕ´ŒŔ´Œ˝ąŠ¸Ź…´¨ł§ˇŹ†˝˛‹ŔľŽÁľżł‹żł‹Ŕ´ŒÂśÄš‘É˝–ÎĜĐŞÎÛɽ•Çź”Éž–É˝•Ëż—ĐĝĐŝÎÛʿ—ĸ‘ť°‰ąĽ€ł§ź°‰ÁľĹš‘Ćş’Ĺš‘Ćş’͚ЪŃÇ ÓɢĐŞʿ—Ĺš‘áÁľťŻ‡ˇŤ„ťŻˆÂśŽÉ˝•ÍšÎÛÎÛŃƟÎÛƺ’ÂśŽŔ´ŒżłŒźąŠźąŠÁśŽź°‰ˇŤ„˝ąŠĹş’Č˝•ż´śŤ„ł§°¤ŻŁ­ŁŚœxŸ”r™Žm“ˆhŒƒc‡~`‚x[~uX€wZ‡g˜ˆźş˛ŰŮÖďîíůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýúúúőőôëëéÚŘŃÉĆšËĆ´Ü׿éăĘěĺĚíçÍîęÔíéŃęăĆĺÝźäÜťçßżĺÜşßÖ˛ŮĐŞ×ÍŚÓȢʿ—øżł‹Ŕ´Œżł‹ž˛‹Ă¸Çť“Ćş’ÂśŽżł‹˝ą‰ż´ŒÄ¸Čź”ÎĜÔʤÔĘŁĎĜɽ•É˝•Ęž—Ëż—ĚÁ™ËŔ˜Áľš­†´¨ł§€¸Ź…Ŕ´Çź”Čź”Ĺš‘ËŔ˜ĐƞΛ˿—É˝•Ęž–ËŔ˜ĚŔ˜Čź•ÁľŽź°ˆš­†˝ąŠĹš’Ęż—ÍÁ™ĎĜÎÛÍšʿ—Ćş’ÂśŽÁľž˛ŠťŻ‡ˇŤ„ˇŤ…˝ą‰ź°ˆź°‰Ä¸ÂśŽź°ˆš­†şŽ‡ž˛ŠÂśŽĂˇ˝ąŠ˝ąŠ˝ąŠşŽ†śŞƒ´¨‚ľŠƒľŠƒľŠƒşŽ‡Ŕ´ŒÁľŽ˝ąŠš­†šŽ‡˝ąŠÁľŽÂśČ˝–ĎĝÎÛ˿—É˝•Č˝•Éž–Ëż—ĚÁ™ËŔ˜Áľš­†ł¨°ĽľŤ…Ŕ´Çź”Ęž–Č˝•Ęż—ÍšÎÛËŔ˜Ćş’ť°‰Śšw”Šj”s­ŁľŞ„¸Ź†ťŻˆŔ´Çź”ÍšÎÛÎÛÍšʿ—Č˝•Ćş’żłŒşŽ‡š­†ˇŤ„ˇŤ…˝ą‰ź°ˆź°‰Ä¸Ĺš‘Ŕ´ŒťŻˆşŽ‡ž˛ŠĂˇÄ¸ÂśŽĂˇŔ´ľŠƒł§´Š‚ł§ł§śŞ„ź°‰ÂśŽÄ¸Âśżł‹ź°ˆź°‰žł‹ÂśĘż˜ŃƟĎĜ˿—É˝•Č˝•Éž–Ëż—ĚÁ™ËŔ˜ÂˇşŽ‡ł¨ŻĽ€ł¨ƒťŻ‰ÂśĹš‘ĸČ˝•ÍšÎšËŔ˜É˝•Ęž–ĚŔ˜ÍÁ™Éž–ĸżłŒ¸Ź…š­†Ä¸Çť“É˝•ÍšĚÁ™Ęż—ĚÁ™ĚŔ™Čź•Ăˇž˛‹ťŻ‡ˇŤ„¸Ź…ž˛Šź°‰şŽ‡Ŕ´ŒÄ¸‘Ĺš‘ž˛ŠşŽ‡ž˛ŠÂśŽĂˇÁľŽŔ´Œž˛‹şŽ†ˇŤ„śŞƒśŞƒ´ŠƒłŠ„¸­‡żłŒÄ¸ÂśŽž˛ŠťŻˆťŻˆžł‹Ćş“ËŔ˜ÍšÍšĚÁ™ĚÁ™Ęż—Ęž–Ëż—ĚÁ™ËŔ˜Ä¸˝ąŠˇŤ„ŽŁ~ąĽ€şŽˆÂśÇť“Çť“Čź”Ęž–ÍšĚŔ˜Ęž–Ęż—ĚÁ™ĚÁ™Éž–Çť“ĸťŻˆˇŤ„żł‹Ĺš‘É˝•ÍÁ™ĚŔ˜Ęż—ĚÁ™Éž–ĸÁľŔ´Œž˛‹śŹ†´Ş…źąŠź°ˆš­†żł‹Ă¸Ă¸ˇŹ‡ą§‚śŤ„şŽˆťŻˆˇŤ…ŻĽ€§zœ’p–Œk“ˆgŽ…e‡~`xZ‚y[uYya•~°­ŁÍĘĹĺäâööőýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůřňňńçćă×ŐÍČÄľÎÉśŢŮÁęäĚëĺĚëĺĘěćĘěćĚęăĆĺÝźßÖąßÖ˛äÜšä۸ßÖ˛ŮĐŞÓɢĚÁšĹš‘ž˛Šš­†şŽ‡ź°ˆž˛ŠÄ¸Čź”Ćş’ž˛‹š­†ź°‰ÁľÄ¸Ä¸Éž–ÎĝĎÜʿ—Ćş’Č˝•ĚŔ˜ĚŔ˜ËŔ˜Çť”şŻˆśŞƒśŞƒ¸Ź…ž˛‹Ă¸Ĺş’Çź”Éž–ÎÛĎĜȽ•Ĺš‘Äš‘Çť“É˝•Ęż—É˝•Ä¸ž˛‹˝ą‰ÁľŽÉž–Éž–É˝•ÍšËŔ˜Çť“ĸĹş’Çť“᏿ł‹˝ą‰ťŻ‡şŽ‡ťŻˆź°ˆž˛‹Ĺš‘Áľš­†ľŠƒ¸Ź…żłŒĹš‘Ćş’ÂśŽž˛‹şŽ‡´¨‚ŹĄ|¨œxŤŸ{­˘}Ž¤ł¨‚¸Ź…¸Ź†ł§ŽŁ~°Śł¨ƒśŞ„ľŤ…źą‹Ä¸‘Ćş“Çť“Čź”Ęż—ĚŔ˜ĚŔ˜ËŔ˜Çť”şŻˆśŞƒľŠƒśŤ…źą‹ĂˇĹş’Çť“É˝•ĚŔ˜Îš˿˜Ĺš’ź°‰Ż¤šnƒd˘˜uśŤ…ť°ˆ˝ą‰Ŕ´Ćť“Çź”Çź”Ęž–Ëż—Ęž–Ćş’Çť“É˝•Âˇ˝ą‰ź°‰ťŻ‡şŽ‡ťŻˆź°ˆž˛‹Ĺš‘Âśź°ˆśŞ„śŞ„ź°ˆĂˇÇť“Ĺš‘ÂśŽź°‰ł§°Ľ€ą§´¨‚śŞ„şŽ‡Ŕ´Ä¸Ăˇżł‹ťŻ‡š­…şŽ‡˝ą‰Ŕ´ŒĆş“ĚŔ™Éž–Çť“Čź”Ęż—ĚŔ˜ĚŔ˜ËŔ˜Čź”ž˛‹śŞƒ˛Ś€ľŞ„ť°‰ÁľĹš’Çť“Ćş’Ëż—ΚËŔ˜Çť“Ĺš‘Çť“É˝•Ęż—É˝•Ĺš‘Ŕ´Œź°ˆžłŒČ˝•Çź”Ćş’ĚÁ™ĚŔ˜Çź”ĸ‘Ćş“Éž–Äš‘żł‹˝ą‰ťŻ‡şŽ‡ťŻ‡şŽ†ťŻ‡ÁľŽÂśž˛ŠˇŤ„¸Ź…żłŒĹš‘Çť“Ĺš‘ÂśŽž˛ŠśŞƒ˛§ą§ł§´Šƒ¸­‡˝˛‹ĂˇĆş’ÁľťŻˆš­…şŽ‡˝ąŠÂśŽÇť“Ęż—Ëż—Éž–Čź”Ęž–ĚŔ˜ĚŔ˜ËŔ˜Čź”ž˛‹¸Ź…ľŠƒˇŹ…ź°‰ÁľŽĹš’Ćş’Ĺş’Ęż˜ÎÜËŔ˜Çť“Ĺš‘Çť“ËŔ˜Íšʿ—Ćş’ᏽąŠž˛ŠĆş’Č˝•Č˝•Ęż—Éž–Çť”ĸ‘Ĺš’Çź”Ćş’ÂśŽź°‰¸­‡¸­‡şŽ‡şŽ†ťŻ‡ÁľŽÂś˝ąŠ´Šƒ˛§¸Ź…żłŒÂśŽ˝ąŠˇŹ†­Ł~ž“q™Žm˜l“‰iƒc‡~_†|^‚xZ|sW}t\‹…sĽĄ•ż˝śŢÝÚöööýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýřřřîíëâáÜÔŃČÉĆśĐ̡âŢČěčŃďęÓîčĎëäČéâĆęăĆčáÂă۸ÜŇŹÚŃŤßÖąßÖ˛ŢŐ°ŮŃŤŇČĄÉž–Áľ¸­†˛§´¨‚şŽ‡żł‹ÂśŽÄ¸‘ĸź°‰¸Ź…ž˛ŠĂˇÄ¸Ŕ´ŒÁľÄ¸‘Çť“Çť“Ćť“ĚŔ™ĎĜÍšʿ—Ĺš’şŽˆš­†ź°‰Ŕ´Ä¸Ćş’Ćş’Çť“ËŔ˜ĚÁ™Éž–ĸĂˇĹš‘Çť“Çť“Ćş’Čź”Ćş“ĸÂśŽÄ¸Çź”Ĺş’Ĺş’ĚŔ˜Éž–øÁľĆş’ËŔ˜Çť“ÂśŽŔ´ŒÁľŔ´Œź°ˆťŻˆž˛ŠĹš‘ᏼ°‰śŞƒ¸Ź…żł‹Ĺš‘Čź”Čź•ÂˇťŻˆąĽ •r’‡g’‡h—mœ’qŸ•r •rŸ”r™m–Œl›’qž”sž”r›’q –tŞŸ{´¨ƒž˛‹Ĺš‘ËŔ˜ÎÛÍÁ™Ęż—Ĺš’şŽˆ¸Ź…ťŻˆżłŒÄ¸Ćş’Ĺš‘Ĺš‘É˝•Éž–Éž–É˝•ÁľŽľŠ‚Ą–t’ˆh‘‡gŠžz˝ąŠÂˇÂśŽÄ¸Çť”Ĺş’Äš‘Č˝•É˝•Çť“ÁľŽĹš’ËŔ˜Çť“ÁľŔ´ŒÁľŔ´Œź°ˆťŻˆž˛ŠÄ¸‘ÂśťŻ‡ˇŤ„ˇŤ„ťŻˆÂśČź”Čź•Âˇź°‰ľŠƒŻ¤Ź˘~˛§‚¸­†˝˛ŠĂˇĂˇżł‹ťŻ‡š­…š­†ź°ˆżł‹żł‹ÂśŽĹš‘áÄ¸Éž–ĎÜĐŞÍšɾ–Ĺš‘żłŒšŽ‡ˇŤ…żł‹Ä¸Ćş’Čź”Ęž–Ęž–Éž–Éž–Čź”Ĺš‘ĸČź”Čź”Çť“Ćş’Ĺš‘ĸÂśŽÄ¸Č˝•Ĺş’ĸĚŔ˜ĚŔ˜Ćş“żłŒĂˇËż—Çť“ÂśŽŔ´ŒÁľŔ´ŒťŻˆ¸Ź…š­†ÁľŽÁľťŻ‡ˇŤ„¸Ź…ž˛ŠÄ¸Čź”Č˝•Ćş’żłŒˇŤ„ŻĽŤ˘}­Ł~´Šƒ˝ą‰ÂśŽĹš‘ᐞ˛‹şŽ‡š­†ź°ˆżł‹Ŕ´ŒÂśŽÄ¸Ćş’Ĺš‘Ĺš‘ĚŔ™ĐŞÍšʿ—Ćť“ż´ŒšŽ‡¸­†ÂˇÇť”Ćş’Çť“Çť“Ćş’ËŔ˜ÍÛɽ–Ĺš‘ĸĆş’Éž–Ęž–Çź”Ĺš‘áÂśŽÄ¸É˝•Č˝•Çť“É˝•É˝•Ćş’żłŒÂśĘż—Ëż—Ĺš‘˝ąŠž˛‹żłŒťŻˆ¸Ź…š­†ÁľŽÁľťŻ‡śŤ„ľŞƒš­†ÁľŽĹš‘Âśżł‹ˇŤ„Ľšvž“p™Žm•Ši’ˆg†fƒc‡}_€vYzqUyqY†n™•ˆˇľ­äăá÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýý÷÷öëęčÝŰÖĎĚÁËȡÓĎşĺáĘëçĎíéŇđëÔîéŃéăĆćŢžéâÄęăĆçŕÁŢÔ°ŮĎŠÚŇŹŮĐŞŘϨŘΊŇȢ˿˜ÁśŽˇ­†ŻĽąŚ¸Ź…ž˛Š˝ąŠ˝ąŠżłŒ˝ąŠ˝ą‰żł‹ÁľÁľź°‰şŽ‡ź°‰ÂśČ˝•ĚÁšŃƟŃƟËŔ˜Č˝•Çť”Ĺš‘ĸ‘Ćş’Ćş“Çť“Čź”Ęž—ËŔ˜É˝•Ĺş’ĸĆť“Éž–ËŔ˜É˝•Ĺš‘áĆş’Éž–Ęż—Č˝•Ă¸żłŒÂśŽÇť“ĚÁ™Ęż—Ćş’áĆş’ĚÁ™Ęž–Ĺš‘áÄ¸Ä¸żł‹¸Ź…ˇŤ…áÇť“ĸ‘˝ąŠť°ˆÁľĹš‘Éž–ËŔ˜Čź•ÁľŽ˛Ś€™ŽluYtkRvnT~uYvZ€vZ~tYvmStkQ}sX€w[~uYwoU|sX‹bœ‘o­˘}şŻ‰Ćť“ĚŔ˜Ęž—Č˝•Çť“ĸÁśŽÁľĹš‘Çť“Çť“Ćş’É˝•Ęż—ĸ‘ÁľŽČ˝•Âˇ°Ľ€‘‡g…f •s´¨ƒÄ¸‘Éž–Č˝•Ă¸żłŒÂśŽÇť“ËŔ˜Ęż—Ćş“żł‹ÂˇĚŔ™Ęž–Ĺš‘áÄ¸Ä¸żł‹š­†ˇŤ…ÂśŽÄ¸‘ÁľżłŒżł‹ÁľĹš‘Éž–ËŔ˜Č˝•Ăˇž˛Šł¨‚Ť |ŹŁ~łŠƒşŽ‡żł‹żł‹şŽ‡¸Ź…ˇŹ…š­†˝ą‰żł‹˝ą‰˝ąŠŔ´Œżł‹Äš‘ÍÁšÓÉŁÓÉŁËŔ™Ćş’Ĺš‘Çź”Äš‘ÂśŽČź”Čź”ĸČ˝•ÍÁ™ËŔ˜Ä¸‘Ŕ´Ĺş’Çť“Čź”ËŔ˜Čź”áÂśŽĆş’Ęž–Č˝•Ĺš‘ÂśŽÁľĂˇËŔ˜ËŔ˜Çť“ÁľŽĹş’ĚÁ™Ęž–Ĺš‘áÄ¸Ä¸żłŒ¸Ź…ľŠ‚ž˛ŠÁľŔľżłŒ˝ąŠ˝ąŠĂˇÉ˝–Ëż—É˝•Ĺš‘ž˛Šł¨‚Ş |Ť˘~˛§‚šŽ‡żł‹żł‹ź°ˆź°ˆťŻˆşŽ†ź°‰Ŕ´ŒŔ´Œž˛Šź°‰ž˛‹ÂˇČź”ĐĆ ÓÉŁĚÁ™Č˝•Čź•Éž–Äš‘ÁľŽČ˝•Č˝•ĂˇĹš‘Éž–Ęż—Çź”Ĺš’Çť“Çť“Çť“Čź”Ćş’áÂśŽÄ¸Ćş’Çť“Ĺş’¡ÂśŽÄ¸Ęż—Ęż—Çť“ÁľŽĂˇÉ˝•ĚÁ™Éž–áÄ¸Ä¸żłŒ¸Ź…ľŠ‚˝ąŠÁľŔ´żłŒ˝ąŠź°‰ÂśÇť“Ćş’Ĺš‘ÁľľŠƒ¨œx’p™Žm˜l–‹j‘‡f‰`wZ{qUulRvnW~xd‘~ť¸ąćĺăřř÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýőőóëęčÝÜÖĐÍÂÍȡŘŐŔćăÎďěŘđíŮđě×ďęŃęäČćßžäÜşéáĂěćĘëäČâÚ¸ŰŇ­ÚŃŤÖĚĽŇČĄĐƟĚÁšĆť“Áľť°‰ˇŹ†¸Ź†ťŻˆżł‹ž˛ŠťŻ‡¸Ź…´ŠƒľŞ„ž˛ŠÂśŽĂˇŔľšŽˆ´Ş„¸­‡ĂˇÍšŃƟĎĝʾ—Ęž–Ęž–Ćş’Čź”Ęż—É˝•Ĺš‘ÂśÇť”Ęż—Çź”ĸÂśŽÇť“ĚŔ˜Íšʾ–ĸÂśŽĹš‘É˝•Ęž–Çť“ÂśŽž˛‹ÂśÇť“Çź”Čź”Çť“áĆş’͚͚ʿ—Čź”Ĺş’ÂśŽ˝ą‰śŞƒľŠƒĂˇËŔ˜Íšȼ•Ĺş’Çź”Čź”Čź”Çť“øżłŒˇŹ…Ś›w’ˆh‡}`‡~a„eŒƒd‰~a„z^vZ€vZ‰a†g’ˆh‹‚c‡~`‡}_‰a…f›p˛§‚ĸ‘Çť”Čź”Çť“Ĺš‘Ĺş’Çź”Čź”Ĺš‘ÂśŽĹš‘É˝•Éž–᏿´ŒÄš‘ÁśŽąĽ€‰€bŒƒd§zťŻ‰Çť“Éž–Çť“ÂśŽž˛‹ÂśÇť“Çź”Čź”Ćş’Ŕ´ŒÄ¸‘ÍÁ™ÍšĚŔ˜Ëż˜Çź”᏿´ŒˇŹ†˛¨ƒžłŒÇź”Ęż—Éž–Čź”Čź”Čź”Čź”Çź”Ĺş’áŔ´ŒťŻ‰śŤ…ł¨ƒśŤ…ť°ˆżł‹ź°‰śŞƒ˛¨´ŠƒťŻˆŔ´ŒĂˇÁľ˝ąŠ¸­†śŹ†˝˛ŒĘž—ŃĆ ŇÇĄÍÁšÉž–Čź”Çź”Çź”Č˝•Ęż—Çť“ÂśŽĹš‘É˝•Éž–᏿ł‹ĂˇČź”Ëż—Ëż—Ćť“ÂśŽĂˇÇť“Éž–Çť“ÂśŽž˛ŠŔ´ŒÄ¸Çť“Čź”Çť“áĆş’͚͚ĚŔ˜Ëż˜Çź”ĸÂśˇŤ…°¤ž˛‹Çź”Ęż—É˝–Ćť“Ĺš’Ćş“Ćť“ĸ‘ĸĂˇŔ´ŒťŻ‰śŤ…ł¨ƒśŤ…ť°ˆżł‹ź°‰śŞƒł§ł¨‚¸Ź…ž˛‹ĂˇĂˇ˝ą‰śŞƒ´Ş„ź˛‹Çź”ĎŞŇÇĄÍÁšÉž–Čź”Çź”Ćş’Ćş’É˝•Ĺš’żłŒĂˇÉ˝•Ęž–Ĺš‘ÁľÄ¸Čź”ËŔ˜ËŔ˜Ćť“ÂśŽĂˇĆş’Çť“Čź”ĸ‘żł‹Ŕ´ŒÄ¸Çť“Čź”Çť“áÄš‘Ëż—ÎÛÎÛËŔ˜Çź”ĸÂśˇŤ…°¤ťŻˆĹš’Éž—É˝–Ćť“Ĺš’Ćş“Çť“ĸÂśŽżł‹š­†˛§ŤŸ{Ł—t •sž•r—k‹b€wZwnSriPqiQtmW{hš–‰ÂŔšçćĺřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţřř÷čçäÜŰŐŇĎĹÍȸ×Ó˝ćĺÓííŢóńăőôćóđÝîéĎćßŔăÚ¸ăÚ¸čáÂëĺĘęäČäÜťÝŐ°ŮĐŤÔÉŁÎÛʾ–Ĺš‘Áľž˛Š˝ąŠž˛ŠŔ´ŒÁľÁľž˛‹š­†˛Ś€ŤŸ{­Ą}ź°‰ĂˇĹš‘Ćş’ťąŠŻĽŻ¤şŻˆČ˝–ĚÁ™ĚÁ™Ęž–ËŔ˜ËŔ˜Ćş’Čź”ĚŔ˜Éž–ÂśŽ˝ąŠĂˇČź”Çź”Ćş’Ćş’É˝•ĚÁ™Íšȼ”ĸĂˇĆş’Çť“Ĺš‘ÂśŽżł‹żł‹ÂśŽÄ¸ÂśŽÄ¸Ĺš‘áĆş’ËŔ˜ÎšĎĜÎÛȼ”Áľź°‰śŞƒľŠƒĂˇÍÁšĐƞĎÜĚÁ™ĚÁ™Ęž–Ćş’ÂśŽ˝ą‰şŽ‡ťŻˆľŠƒ­˘}¨y¨ž{ŞĄ}Śœy ”ršn˜lšnŁ˜u­Ą}ł§Ż¤~˘—t‘‡hx[xnT}sX–Œk˛§‚ÁśŽÇť“Çť“Ćş’Č˝•ËŔ˜É˝•ÂśŽ˝ąŠĂ¸É˝•Čź”Ćş’ĸ‘áÂśŽ˛Ś‡}`‹‚dŠ }žłÇť“Ĺš‘ÂśŽżł‹żł‹ÁľĂˇÂśŽÄ¸Ćş’áĹş’ËŔ˜ÍšĎŝŇÇ Ęż—áŔ´ˇ­‡˛¨„ž˛ŒÉž–ĎŝĎĜĚÁ™ĚÁ™Ëż—Çť“ÂśŽÁľŔ´Œž˛ŠŔ´ŒÁľť°‰ź°‰żłŒżł‹š­†˛Ś€­Ł~ŻĽťŻ‰ÁľŽÄš‘Ćş“ž˛‹˛§­ŁľŤ†Ä¸‘Ëż—ÍšÎÛΚËŔ˜Ćş’Čź”ËŔ˜Éž–Äš‘Ŕ´ÂśŽĹş’Çť“Ćş’ĸĹš’Ęž—ĚÁ™Čź”ĸĂˇĹš‘Čź”Ćş’ÂśŽ˝ąŠťŻ‡ž˛‹ÂˇÁľŽÄ¸Ĺš‘ÂśŽĹš‘ËŔ˜ÍšĎĝŃƟʿ˜Ĺš‘Ĺš‘¸Ź†°¤Ŕ´ĚÁ™ŃƟĎĜĚÁ™ĚÁ™Ëż—Ĺš’ž˛‹ž˛ŠŔ´Œž˛ŠŔ´ŒÁľť°‰źą‰Ŕľżł‹š­†ąŚ€Ť |Ť |ľŠ‚ž˛ŠÄ¸‘Çť“żł‹ł§­Ł´Ť†ÂˇÉž–͚ΛËŔ˜Čź”Ćş’Ćş“Çź”Č˝•Ăˇ˝ą‰ÂśČź”Ćť“Äš‘áĹş’Ęž—ÍšĚÁ™Çź”ĸĹš‘Çť“Çť“Ćş’ÂśŽź°‰żłŒÂˇÁľŽÄ¸Ĺš‘ÂśŽĹš‘Ëż—ÍšĎŝŃƟʿ˜Ĺš‘Ĺš‘š­‡°¤şŽˆČź•ĐƞĐŝÍšËŔ˜Ęž–Çť“Ꮮ˛‹şŽ‡¸Ź…¸Ź†śŤ…­Ą|ŞŸ{¨Ÿ|“q…eƒy\ulRlcLjbKnfOunZ‚|kœ—‹ĆĂ˝îîěüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúíěęÚŘŇŃÍÂŃÍźŰ×ŔčäĚíęŐđěŘóńß÷őéőňâđęŇęăĹăŰşŕŘľćßŔĺŢžßלÜÔ°ÚŃŤÖÍŚŇČĄÍšȼ”Ꮮ˛ŠˇŤ„ˇŤ„ťŻˆÂśĆş’ᐝŻˆł§°¤ŞŸ{ŹĄ}ťŻ‡Ŕ´ŒÂśŽĹš‘˝ą‹ąŚ€Ť {˛§Ŕ´Ä¸Ćş’Ęż—ËŔ˜Ęż—Ëż˜Ęż—Éž–Çź”ÁľŽź°‰ÂśČź”É˝–ÍšĐŝÎÛÎÛÍÁ™Ĺş’ĸĆş’Çť“ᏽąŠťŻ‡şŽ‡şŽ‡ťŻ‡˝ą‰żł‹Ŕ´ŒÂśŽĹš‘Ĺš‘Ćş’Ëż—ĐƞŇÇ ÍÁšÇť“ᐝŻ‰ˇŤ…áÉ˝–Ęż—Ęž—Ęž–Éž–Č˝•Ćş’Áľź°ˆˇŤ„ľŠ‚ľŠ‚ˇŤ…źąŠż´ž˛ŒľŠ„­Ą|Ź {ŠŸ{Ş }˛§¸Ź†˝ąŠŔ´ŒľŞ…ŁšwŽ…f~tXwnT|sX’ˆiąĽŔ´Čź•ÎÛÍšʿ—Çź”ÁľŽ˝ąŠĹş’ËŔ˜Ęž—ÍšĎĝËŔ˜Ĺš‘˛Ś‡}`ƒd­˘}Ŕ´Ăˇž˛ŠťŻˆşŽ‡š­†¸Ź…¸Ź†żł‹ĂˇÇť“Ćş’Ĺš‘Ĺš‘Çť“ÎÛŇČ Í›ǻ”Ĺš’žł‹şŻˆĂˇČ˝•Ęž—Ęž—Ęž–Ęž–ĚŔ˜Éž–¡Ŕ´Œ˝ą‰śŞƒˇŤ„ťŻˆž˛ŠÁľÂśŽşŽˆł§°ĽŤ |ŹĄ}śŞ„şŽ‡ž˛‹Çź”Ŕ´˛§ŞŸ{ąŚž˛‹ÂˇĆť“ĚŔ˜ĚŔ˜Ęž–Ęż—Ęż—Éž–Çź”Âśž˛‹Ĺš’Ęż—Ęž–ÍšĐƞĐƞĎŝËŔ™ÂśÁľŽĆş’Čź”Ĺš‘ÂśŽ˝ąŠşŽ†¸Ź…ˇŤ„¸Ź†ž˛ŠÁľÂśŽÁľÂśŽÄš‘Çť“ĚŔ˜ĎĜÎÛËŔ˜Čź”žłŒš­†Ŕ´Č˝•ÍšĚŔ˜Ęž–Ęž–ĚŔ˜É˝•Áľżł‹˝ą‰śŞƒˇŤ„ťŻˆž˛ŠĂ¸Ćş“˝ąŠł§°Ľ­Ł~Ź˘ąŚ€ˇŤ„ž˛ŠÇź”¡śŞ„ŹĄ}ŽŁşŽˆŔ´Ćť“ËŔ˜Ëż—Ęž—ÎĜĚÁšÉž–Ëż—Äš‘źą‰ÂśŽĆş’ĸČź”ÍšĎĝĎŝÍšǻ“Ĺš‘Ćş’Čź”Ĺš‘ÂśŽž˛‹ź°‰˝ą‰şŽ‡¸Ź†ž˛ŠŔ´ŒÂśŽÁľÂśŽÄš‘Çť“ĚŔ˜ĎĜÎÛËŔ˜Čź•ÁśŽťŻ‰ź°‰Äš‘Í›ĎĜ˿—Ćť“Éž–Ëż—Çť“ÁśŽź°‰´¨ł§€´¨´¨śŞ„ľŠƒ¤™u”‰i‚cuYqiOh`Hg_HjcLtmY‰ƒsŞŚœ×ŐŇôôôüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýóóńŕßŰĎÍĂĐÍ˝ÝŮĂęçÓíëŘďęÔđęÓđďŢňôěňňăđëÔîçÍčáĂăŰťâŰşÜÓ°ÔËĽÔˤÔʤÓÉĄŇČ Í›÷˝ą‰¸Ź…ľŠ‚śŞƒşŽ‡ÁľĂˇŔ´ťŻˆ¸Ź†š­‡ľŠƒł§‚ˇŤ…š­†şŽ‡żł‹˝ąŠˇŤ…ł§śŤ…ž˛‹Ŕ´ŒŔ´ÂˇČ˝•ĚÁ™Çť”Čź”É˝–øżł‹ž˛‹Ĺş’Ëż—ĚŔ˜ÎÛĎĝĎĜΚËŔ˜Č˝•Ęż—ĚŔ™Ćş’żł‹ź°ˆš­†ˇŤ„śŞƒ¸Ź…ťŻˆź°‰ź°‰ž˛‹Ĺš‘Ćş’Ĺš‘É˝•ÎÛŃǟĐŞÎÛ˿˜Ćť“ĸ‘Č˝•Ćť“áĆş’Čź”Čź”Ęž–Čź”ÁľşŽ‡ľŠ‚´¨´¨śŞƒ˝ąŠżłŒ˝ąŠşŽ†¸Ź…šŽ‡ˇŹ†´Ş„´ŠƒˇŤ„şŽ‡žł‹ť°Š˛¨ƒŚœy˜ŽmŒƒe…|_ˆ`˜mŽ˘~Ŕ´Çź•Ęż—Éž–øżł‹ž˛‹Ćş’ËŔ˜ĚŔ˜ÎÛĎĜËŔ˜Ŕ´Ť |‹c–ŒkśŞ„ÁľÁľ˝ą‰ź°ˆşŽ†śŞƒśŞƒ¸Ź…ź°ˆżł‹ÂśŽĆş’Ćş’Ĺš‘Ćş’ĚŔ™ŃƟĐŞÎÛËŔ˜Çť“Ĺš’É˝•Ćť“áĆş’Čź”É˝•ĚÁ™Ęż—ÂśŽź°ˆ¸Ź…˛Ś€˛Ś€śŞƒ˝ą‰żłŒź°‰ˇŤ„śŞ„š­†ľŠƒ˛Ś€´¨´¨‚śŤ„ž˛‹˝ąŠˇŤ…ł§ľŠƒťŻˆź°‰ž˛ŠÁľŽĹš‘Çť”Ĺş’Ćť“Çť“Ĺš‘Áľżł‹Ćş’ËŔ˜ĚŔ˜ÎÛĎŝĎŝÎÛʿ—Ĺş’Čź•ĚÁ™Ęž–ĸž˛Šź°ˆşŽ†śŞƒśŞƒš­…ž˛Šž˛‹ž˛ŠÂśŽÄ¸Ä¸Ćş’Ęż—ÎÛŃƟŃƟÎÜȽ•Ĺš’Čź•Ćť“øĆş’Čź”É˝•ĚÁ™ĚŔ˜Äš‘ž˛‹¸Ź…˛Ś€˛Ś€śŞƒ˝ą‰ÁľŔ´ťŻˆˇŤ„ˇŤ…ˇŹ‡ˇŹ†´Šƒ´¨‚śŤ„ž˛‹żłŒşŻ‡´¨‚ľŠƒşŽ‡ź°‰żł‹Ă¸Ćť“Č˝•ËŔ˜Ęż—Č˝•Čź”ÂśŽź°‰ÂśŽČź”Čź”ËŔ˜ĎĜĎĝÎÛËŔ˜Č˝•É˝•Ęż—É˝•Ä¸ž˛Šź°ˆťŻ‡š­†¸Ź…¸Ź…ťŻˆź°‰ž˛ŠÂśŽÄ¸Ä¸Ćş’Ęż—ÎÛŃƟŃƟĎÜ˿—Çź”Ćş“ø‘ø‘Č˝•É˝•Ćş’Č˝•Ęż—Çť”ż´śŹ…ąŚ€°¤~ąĽśŞƒ¸Ź…´ŠƒŠžzž“q˜lŽ„ex\tkQjcKf^HjbMzsb‹}ąŻŚÚÚÖđđďűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřééćÔŇĘÍĘťÚÖĂčäĐěîßíďáńíŮňíŘńđăîőđďńäđëÔďéŃěćËçŕÁÜÔąÓʤÎĝĎĝĐŝĐŝŇÇ ĚÁšž˛‹¸Ź…śŞƒśŞƒśŞ„ˇŹ…˝ąŠž˛Šź°‰ž˛ŠÁľÂśŽżłŒťŻˆśŞ„ľŠ‚ľŠƒš­†ź°‰ź°‰ťŻˆźąŠŔ´ŒÁľżł‹ťŻˆĹş“ĚÁšÁľŽÄš‘Ęž—Ŕľ˝ą‰ŔľČź”ÎÛÎÛËŔ˜Ęž–ÍšĚŔ˜Ęž–ĚŔ˜ĎĜÍÛ¶ťŻˆź°‰şŽ‡śŞ„ľŠ‚š­†˝ą‰şŽ‡şŽ‡˝˛ŠĹš’É˝•É˝•Ęž–͚ЪŇČ ŇÇ ĐŝĐƞŃƟÍšź’Ŕ´Äš‘Čź”Éž–ĚÁ™Ëż—¡şŽ‡ľŠƒľŠ‚ł§ąŚśŞƒˇŤ„ˇŤ„ťŻˆÁľÂśż´ŒťŻˆśŞƒ´¨‚ľŠƒš­†ź°‰ź°‰¸Ź†ąŚ¨Ÿ| –t’‡h…|^šn˛§şŽ‡ĂˇÉž–ÁľŽž˛ŠÁľĹš‘Ęž–ÍšËŔ˜Čź”ᐴ¨ƒĄ–t’ˆhŁ˜v˝ąŠÂśŽżł‹˝ą‰˝ą‰şŽ†ľŠ‚š­†˝ą‰şŽ‡şŽ‡ž˛‹Ĺš‘Čź”Čź”É˝•ĚŔ˜ĐŝŇČ ŇÇ Ďŝ͚͚ËŔ˜Ĺš’żłŒÄ¸Čź”É˝•ËŔ˜Ęž–ÁśŽşŽ†´¨‚ąĽŻŁ~˛Śš­†şŽ‡śŞ„¸Ź…˝ąŠÁľżłŒşŽ‡ľŠ‚ł§´¨´¨‚¸Ź…ź°ˆşŽ‡š­‡şŽ‡ťŻˆťŻˆşŽ‡Ŕ´Ăˇž˛ŠÁľĹş’áŔ´ŒÁľÄ¸Ęž–Íš˿—É˝•Éž–É˝•É˝•Ęż—ÍšÎĜʾ—ÁľşŽ‡ťŻ‡şŽ†´¨‚¸Ź…˝ą‰ž˛Š˝ąŠ˝˛ŠÄ¸‘Čź”Čź”É˝•ĚŔ™ĐŞÓČĄÔʢÓɢĐŞÎÛĐŞƻ”˝ąŠĂˇČź”É˝•ĚÁ™ĚÁ™Ćş’˝ąŠľŠƒ˛Ś€°Ľ˛§š­‡şŽ‡¸Ź…ź°‰żł‹żł‹Ŕ´ż´ťŻ‡śŞ„´¨‚ľŠƒşŽ‡˝ąŠťŻˆťŻˆž˛‹˝ąŠźą‰˝ąŠÂśĹš‘ÂśĹš‘Çź”ĸżłŒ˝ąŠÂśÉ˝•ÍšÎÛÍÁ™Ęż—Éž–Ęž—ĚÁ™ÍÁ™ËŔ˜Č˝•ÁľŽťŻˆťŻˆşŽ†ľŠƒš­†˝ą‰şŽ‡şŽ‡˝ąŠÄ¸Çź”Čź”É˝•ĚŔ™ĐŞÓČĄÔʢÓɢŃƟĎĝĎŝź“ź°ŠĂˇČź”Č˝•Č˝•Č˝•Ćş“źą‹˛¨ƒąŚ€°¤~Ż¤~ł§˛¨‚ŻĽŻ¤ŤŸ{¤˜v’p’ˆi„z]umRkcKg`ImfR}wf’°Ž¤ÓŃÍďîíüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýôóóŢÝŘĚÉ˝×ÓŔćáĚíęÔđđâóóçőóćöôć÷öěő÷đđďßíçÍěćËëĺÉĺŢżŐ˧ŃÇ ÓÉŁŃƟĎĜĎĜÍšȼ•Ŕľżł‹ž˛ŠľŠƒąŚą§‚ˇŹ…ź°ˆž˛ŠÂśŽĂˇž˛‹ź°ˆź°‰żłŒ˝ąŠťŻˆ˝ą‰ź°‰šŽ‡ľŞ…ˇ­‡Ŕ´ŒĆť“Çź”ÂśÄ¸Ĺš‘Ŕ´Ĺş’Ëż˜Âˇž˛‹ÁľĆť“ÍšŃƟʿ—Ćť“ĚÁ™ËŔ˜Č˝•Éž–É˝•Ĺş’˝˛ŠˇŤ„śŞƒˇŤ„ˇŤ…śŞ„ťŻ‡ž˛ŠşŽ‡˝ąŠĂˇĘž—ĚÁ™ÍšĐŝŇÇ ÓÉĄŇČ ŃƞĐŝŇČ ŇČĄÉž–Ćť“Čź•Čź•Ęž–ĚÁ™ÎÛĚÁ™Ćş’Ꮮ˛‹ľŠƒŻĽ€Ž¤ąŚ€śŞƒťŻˆÂśŽĂˇž˛‹ź°ˆź°‰żłŒ˝ąŠťŻˆ˝ą‰ź°‰š­†˛Ś˛§¸­†¸­‡¨zŒ‚c’‡gŁ—t°¤~˝ąŠĆť“Äš‘ĸĹš‘ĸÉ˝•Ďĝʿ—Ŕ´ˇŤ…Ś›w™nž”sŹ˘~ťŻˆżł‹ź°ˆˇŤ„ľŠƒľŠƒśŞƒťŻ‡ž˛ŠşŽ‡˝ąŠĂˇÇť“Ęž–ĚÁ™ÍÁ™ĎĜŇČĄŇČ ŃƞĎĝĎĜÍšȼ”ĸÄ¸Ćş“Čź”Čź”É˝–Çź”Áľ˝ą‰š­†˛Ś€ŹĄ|Ť {˛Ś€ˇŤ„ťŻˆŔ´ŒÁľž˛Šź°ˆşŽ‡ťŻ‡ťŻ‡şŽ†ˇŤ„¸Ź…¸Ź†˛Ś´¨‚˝ąŠĂ¸Çť”Ĺš’ø‘ÁľťŻˆŔ´ŒĹš‘ÂśŽŔ´ŒŔ´ŒÂśŽĆť“ĚŔ˜Čź”Ĺš‘Çť“Čź”Çť“Ćş’ĸÂˇÂˇ˝ą‰ľŠ‚´¨‚ľŠƒśŞƒ¸Ź…şŽ‡ťŻˆżł‹Ä¸Ęž—ĚÁ™ÍÁ™ÍÁ™ĐŞŐˤÓÉŁŇǟŃƟĐŞĎĜÍšɾ–Ćť“Çť“Čź”É˝•ĚÁ™ËŔ˜Äš‘ÁľŽž˛‹ˇŤ…ąŚŽ¤€°§‚ľŤ…ťŻˆÁľŽĂˇŔ´ŒťŻˆťŻˆŔ´żł‹ťŻˆťŻ‡˝ą‰˝ą‰´¨ƒ´Šƒžł‹Äš‘Ćş“ĸĂˇÁľ˝ąŠĂˇÉž–Çź”ĸ‘áÂśÇť“ÍÁ™ĚÁ™Ęž–Č˝•Ęż—ĚŔ˜Ëż—Čź”Ĺş’᏿ł‹š­†śŞƒľŠƒśŞƒťŻ‡ž˛ŠşŽ‡˝ąŠĂˇÇť“Ęž–ĚÁ™ÍÁšĐŞŐˤÓÉŁŇǟŇǟŇČ ŇȠΛǼ”áĹš’Ęž–ËŔ˜Ęž–Čź”Çť“ᐽ˛ŒˇŤ„ŻŁ~ޞzŞŸzŽŁ~ł¨ƒ¸Ź†ˇŤ…ŻŁ~˘—u˜m’ˆi„{^woSogNjbLngSysa‹}ŽŹ˘ŃĐĚńđďýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűúëęčŃĎÇÎĘťĺŕÍđęÖđě×óđÝőňăöóĺöôç÷őčöóäďéŇçßŔäÜťăŰşŕ׾Ö̧ŐĚŚŘĎŞÖĚŚĎŞʿ—Ĺš‘áĆş’Č˝•Çť“ź°‰ľŞ„ą§‚´¨ƒ¸Ź…˝ąŠÄ¸Ăˇ˝ą‰š­†ťŻˆÂśŽÁľ˝ąŠ˝ą‰ž˛ŠźąŠ¸Žˆť°ŠĂ¸ĚÁ™ĎĜɽ•Ä¸Ŕ´ŒŔ´ŒÁśŽĂ¸Ĺš‘øÁľÁľÇť”Í›ɽ–Äš‘Ĺş’ĸ‘¡Ä¸ĂˇŔľŔľź°‰śŞƒ¸Ź…śŤ„°¤śŞ„Ŕ´ŒĂ¸‘Ćş“Č˝•Ëż—ĚÁ™Í›ŇČ ÖĚĽŐˤŇČ ÎÛËŔ˜ÍšÎÜɾ–ËŔ˜ĐŞĐƞÍ›ʾ—Čź•Çť”Çź”Čź”Ĺš‘šŽ‡ľŞ„łŠ„ł¨‚śŞƒťŻ‡ĂˇĂˇ˝ą‰š­†ťŻˆÂśŽÁľ˝ąŠ˝ą‰ž˛Š˝ąŠ¸­‡şŽˆÂśŽČź”ť°Šœ’qŽ„eŒ‚c—ŒkŚšwľŠ„ŔľĹš‘ĸÂśŽÄš’Éž—Áśł¨ƒŁ˜u™Žl˜ŽlŠŸ{ľŞ„ťŻˆŔ´Œź°‰ł§€˛Ś˛Ś€˛ŚˇŤ…˝ą‰ž˛‹ĂˇÇť“Čź”Ęž–ĚÁ™ĐŝÓÉĄŐĘŁĐƞĚÁ™Ęž–Ëż—Ęż—Ćş’Çź”ÍÁšÎÝËŔ™Ćş’áÂśĂˇĂˇŔ´¸Ź†ł§°¤˛Ś€śŞƒťŻ‡ĂˇĂˇ˝ą‰š­†şŽ‡ž˛Šž˛‹˝ą‰ź°ˆťŻˆşŽ‡ˇŤ…şŽˆÂˇĘż—ÎÛĚŔ˜Ćş’Ŕ´Œżł‹Ŕ´ŒÂśŽĂˇÂśŽŔ´Œž˛‹ÁľŽÇť”Ćş’ĸĹš‘Ĺš‘ĸÁľž˛Š˝ą‰Ŕ´Œ˝ą‰ľŠƒł§˛Ś€ąŚ€´¨‚šŽ†ż´ŒÄ¸‘Čź•Ëż—ĚÁ™ÍšĐŝÔĘŁÖͧÓɢĎĜÍÁ™ÎšÍšʾ–ĚÁ™ŃƞĐƞĚÁšČ˝–Çť”Ĺş’ĸÇť“Çź”ž˛‹ˇŹ†łŠ„°§‚łŠƒşŽ‡ÁľÄ¸ÂśŽşŽ‡¸Ź…ÁľÁľž˛ŠżłŒŔ´Œž˛‹¸­‡şŽˆÂˇĘż—Κʿ—Ĺš‘Ŕ´ŒżłŒŔľŽĂ¸Ä¸‘Ĺš‘ĸÂśŽĂˇČ˝•Ęž–É˝•Ćş’Ĺş’Ćş“Ĺš‘áÁľÂśŽżł‹š­†ľŠƒ˛Ś€˛Ś€ľŠƒşŻˆŔ´Ä¸‘Çť”Čź”Ëż—ÎÜĐƞÔĘŁÖͧÓɢĎĜÍšĎÜĎĜ˿—Ëż—ÍšÎÝÎÜĚÁ™Čź”Ĺš‘Ĺš‘Çť“Ćş’żłŒˇŤ…Ż¤­Ą}Ż¤~ľŠƒşŽ†ťŻˆśŞƒŠžzŸ”sž“q“‰i‡}^{qVqhOiaJibMvo]Š…v˘Ÿ”ČĆÁňńđţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüööőáŕÜËČ˝ŘÔÁîęŘňîÜńí×ńíÖňîŘóďŰóďÚňîŘđëÔçáĂŢŐ˛ŮĎŞŘĎŞÚŃŹÜÓŽŰŇ­ŘĐŤÖΨÎĞ̑ž˛‹Ŕ´É˝•ÍÁ™ËŔ˜Ĺš‘żłŒšŽ‡ľŠƒśŞƒťŻˆÂśÄ¸ž˛ŠşŽ†š­†ž˛Š˝ąŠşŽ‡şŽ†ž˛‹ĂˇÄ¸‘Ĺš’É˝•ĎĜĎĝȽ•Âśž˛‹˝˛ŠşŻ‡ťŻ‰Ćť“Çť“żłŒź°ˆżłŒĆş“Ĺş’ÁľŽźą‰şŻ‡ťŻˆž˛‹żł‹Ŕ´ŒĹš’ÂśťŻˆź°ˆľŠƒ¨y˛Ś€ÂśĚÁšĚÁ™É˝•Čź”É˝•ĚŔ™ŃƟŐËŁÔɢĎĝɞ–áĆş“ËŔ˜ÍšĐŞÔɢÔËĽÎĝ̒żł‹żłŒĹš‘Çź”Ćş“żłŒž˛Š˝ąŠşŽˆˇŤ„ˇŤ„Ŕ´Ĺš‘ž˛‹şŽ‡š­†ž˛‹˝ąŠşŽ‡š­†ž˛ŠÄ¸‘Çť”Čź•É˝•ËŔ˜Â¸‘ŞĄ~‡h|sWypUˆ}`’q´¨ƒž˛‹ž˛‹˝˛ŠžłŒ˝˛‹°§‚ —u“‰i”‰i’pŻ¤šŽ‡˝ąŠÁľŽ˝ąŠľŠ‚ľŠ‚ł§­˘}ł§‚ź°‰Ä¸Çť“Čź”Çť“Čź”Ëż—ĐƞÔʢÓČĄÍšƺ’ÂśŽĹş’Ęž–Ęž–Í›ŇČĄÔʤÎÝøž˛Šž˛‹Ä¸Ćş’Ĺš‘żłŒ˝ąŠź°‰şŽ‡śŞ„śŞƒŔ´ŒĹš‘żłŒşŽ‡¸Ź…ź°‰ź°‰ťŻˆ˝ą‰ž˛Šżł‹Ä¸‘Çź”É˝•ĚÁ™ÍšȽ•Ăˇż´ŒżłŒ˝˛‹˝ąŠÄ¸Ä¸żł‹ťŻ‡ź°ˆÁľŽĂˇÂśŔ´Ŕ´ŒżłŒżł‹ž˛‹ž˛‹ÁľŽŔ´ŒşŽ†ˇŤ„ł¨‚­˘}˛§ź°‰Č˝•Éž–Çť”Čź”É˝•Ëż—ĐƞÔĘŁÔĘŁĎŞʿ—Çź”Ęż—Íš˿—ÎÜÔĘŁŐĚŚĐĆ Č˝•ÁľżłŒÄ¸‘Éž–Ęž–ÂśŽž˛‹źą‰šŽ‡śŞ„śŞƒź°‰ĂˇÄ¸ź°‰¸Ź…˝ą‰˝ąŠź°‰ž˛Šżł‹Ŕ´Ĺš’Çź”Čź”ĚŔ˜ÎÛĚŔ˜Ćş’ÁľÁľź°‰š­†żłŒÂśŽÁľżł‹żł‹ÂśŽĆş“Ćť“Áľ˝ąŠź°‰żł‹Ŕ´ŒŔ´ŒÂśŽŔ´ťŻ‡¸Ź…ł¨‚­˘}°¤š­†Çť“Ęž–Čź•Çť“Ęż—ĎĜŇČ ŐˤÔˤĐƞËŔ˜Çź”Č˝•Ęž–Ęž–ΛÓČĄŐËĽŃÇ Éž–ĸÁľÂśŽĹš‘Çť“Ĺš‘Áľ˝ą‰š­†ľŠƒ´¨‚¸Ź…ťŻ‡ˇŤ…­ŁĽ›yĄ–t™Žm…fƒz\wnRlcKd]Gf_JqjWyi’‚ÇĹŔőőôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýůůůęéčŇĐČÍÉťăŕÍńíŰňîŰńí×ńěŐôđŰöóăóďÜđęŇëĺÉŢŐ´ŇÇĄĎĝŐËĽÜŇ­ŰŇŹŘΨÓɢÍÜȽ–Ĺš‘Ŕ´Œż´ŒĹš’Č˝•É˝•Ĺš‘Äš‘ø˝˛ŠťŻˆž˛ŠÄ¸ÂśŽš­†ľŠ‚ľŠƒşŽ‡ź°ˆź°ˆşŽ†˝ą‰ÂśŽĂˇÇť“ËŔ˜Íšʿ˜Ä¸ź°‰ˇŤ…´Ş„¸­‡ŔľĘž—Ĺş’şŽ†ˇŤ„ź°ˆŔ´şŽˆ´ŠƒˇŤ„¸Ź…¸Ź…şŽ‡š­†¸Ź…şŻˆźąŠźą‰ź°ˆ¸Ź…ł¨‚ťŻˆĹš‘Čź•Č˝•Çť“Ĺš‘Č˝–ĎĝŃƟĐŞÍÁšÄ¸‘ź°‰šŽ‡Äş“ĐĆ ĐŞĐŞĐƞÍ›Ƚ–Ĺš‘Ŕ´Œž˛ŠżłŒĆş“Č˝•żłŒŔ´ŒÄ¸Âśž˛‹ź°‰ĂˇĂˇź°‰ľŞ„łŠƒšŽ‡ź°ˆťŻˆśŞƒşŽ‡ÂśŽĹš‘Č˝•ËŔ˜ËŔ˜Ĺş“śŹ†ž”r„z]ofMvmSŒ‚dŚœzą§‚°Ľ€ą§‚łŠ„­¤€”m…}`”Šj“rŚœy˛§śŤ…´Ş…ˇŹ†şŽ‡š­†š­†ˇŤ„ˇŤ„ź°‰ÂśÇť“Čź”Çť“Ĺš‘Çť“ĚÁ™ĐŝĐŞÍšŹ’˝ąŠşŽ†Ä¸‘ĎĜĐƞŃƟĐƟÍ›Ƚ–Ĺš‘Ŕ´Œž˛ŠżłŒĂˇĆş’ÂśŽŔ´ŒŔ´ŒÁľşŽˆľŠƒżłŒĹš‘żł‹ľŠƒŻŁľŠƒşŽ†ź°ˆź°ˆťŻˆź°‰żłŒĹş’ËŔ˜ÎÛĚŔ˜Äš‘żł‹¸Ź†ŻŁł§‚ž˛‹Çź”Ĺş’ź°‰śŞ„š­†Ŕ´şŻ‰ľŞ„š­†š­†¸Ź…şŽ†š­†ˇŤ…š­†ťŻˆź°‰şŽ†ˇŤ„ˇŤ„ź°‰ÂˇČ˝•Çť“ĸĂˇÇť“ĚÁ™ĐŝĐŞÍÁšÄ¸‘ť°ŠšŽ‰Ă¸’͚͚ĐƞÔʢŇÇ ĚÁšČź”ÁľŽž˛ŠżłŒĹš’Čź•ÂśŽŔ´ŒŔ´ŒÁľź°‰š­…żł‹Ä¸ÁľŽśŤ„Ż¤ľŠƒź°‰Ŕ´Œ˝ą‰ťŻˆ˝ą‰ÂˇÇť“É˝•ĚÁ™ĚÁ™Çť“Ꮮ˛ŠľŠ„śŞ„ź°ˆÄš‘Ĺş’Ŕ´ŒşŽ‡şŽ†ž˛ŠşŻˆˇŤ†şŽ‡ˇŤ„ľŠƒš­†ťŻˆťŻˆşŽ‡ťŻˆź°‰şŽ†ˇŤ„śŞ„şŽ‡Ŕ´Č˝•Éž–Çť“Ĺš‘Čź”ÎÛĐƞŇǟĐŞȽ–ż´ş°ŠÁˇĘż˜ĚÁ™ĎĜŃƟĐƞËŔ˜Ĺš‘ÁľŔ´ŒÁľÄ¸Ćş’ĸÂśŽŔ´ŒÁľź°‰¸Ź…˝ą‰Ŕ´ŒşŻˆŤĄ}Ÿ•sœ‘o™Žm’‡h…|^tlRe^G]VA\U@aZFjcPto]‹‡{ĚËÇőőôţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűôóóŮŘÓËÇşŮÔÁěçÔńíÚňíŮńěÖńěŐňîÚňîÜîéŇęăÇćŢżŰŇŽŃƟĎŞŐˤÚĐŞŐËĽĐŞɾ–Áľž˛‹ÂśŽÄ¸Ĺš‘Ĺš‘Ĺš‘ĸÂśŽĆş’Ęż—Ćť“øÂśĂˇž˛ŠľŠƒł§€ł§śŞƒź°ˆŔ´Œź°‰ź°ˆž˛ŠÁľĆť“Ęż—É˝•Ĺš‘ÁľŽˇŤ…Ż¤łŠ„˝˛ŒĆş“Çź•ÁśşŽ‡ťŻˆ˝ąŠź°ˆł¨‚ŽŁ~´¨ľŞƒ´Šƒ˛§ł§ľŠ‚ľŠƒˇŹ…şŽ‡ź°‰żłŒĂˇĆş’Ćş’ĸĹš‘Ćş’Ĺš‘Čź”Í›ËŔ˜Č˝•Çť“Ŕ´ťŻ‰˝˛ŒČž˜ŃČĄÎĜĚÁ™Č˝•Áľž˛ŠŔ´ÂśŽÁľŽÁľŽĹş’Çť”ž˛‹ÁľÇť“É˝–Çť“ĸÄ¸ÁľŽšŽ†ł¨ƒ°§‚´Š„ť°‰żłŒşŽ‡şŽ‡ž˛ŠÁľÇź”ĚÁ™Éž–Ĺš‘żłŒ­Ą}•‹k~vZw[Šc”Œl˜Žn˜ŽmŸ–t˘™w™‘p„|_w[œ“q¨ž{Ť˘°Ľ€ąŚ°Śł¨‚ˇŤ„şŽ‡şŽ‡˝ą‰ÁľĹš‘Çť“Ćş’Ćş’ĸÂśŽÄš‘Č˝•Çź”Ćť“Çť“Âś˝˛Š˝˛‹Ĺş”ÎÜĎĝĚÁšÇť”ż´ť°Š˝ą‹Ŕ´Ŕ´żł‹Ŕ´Áľ˝ą‰˝ąŠÁľĹš‘Ŕ´Œš­†ž˛‹Ŕ´šŽˆ°Ľޞz­Ą|ľŠƒź°ˆťŻˆ¸Ź…śŞ„¸Ź…Ŕ´Éž–Ęż—Ćť“ÂśŽˇŹ…­Ą}¨y˛§ÁľĆş“¡ťŻˆˇŤ„şŽ‡ž˛‹´¨ƒ­Ą|ł§˛Ś°¤ąĽ€ąĽąĽ´¨‚¸Ź…ź°ˆşŽ‡ťŻˆÁľĹš‘Çť“Ćş’ĸĂˇÁľĹş’Ęż—É˝–Ćť“Ćť“żłŒš­‡š°‹Âš’ËŔ™ÍšÎÛÍ›ƺ“Ŕ´žłŒŔ´ÁľŽŔľĂˇÄ¸ÁľŔ´ŒÂśŽČ˝•Ćş’Ŕ´Ä¸Ĺš‘˝ąŠł§‚­Ą|°¤şŽ‡Áľž˛‹ťŻˆşŽ‡ž˛ŠÄ¸É˝•Ęż—É˝•Ĺš‘ż´ˇŹ†Ż¤ˇŤ…áČ˝•Ćş’Ŕ´Œš­†š­†ź°‰´¨‚ŻŁ~ľŠƒł¨‚°Ľ€ł¨‚ľŞƒśŞƒˇŤ„şŽ‡ź°‰ź°ˆ˝ą‰ÁľĹš‘Çť“Ćş’Çť“Çť“áĹş’Ëż—É˝–Č˝–Ęż—ĸ‘źą‹şąŒÂš’ËŔ˜ÍÁ™ĚÁ™Ęž–Ćş’Ŕ´źąŠżłŒÂśŽĂˇĹš‘Ćş’Ŕ´Œżł‹ÂśŽČ˝•Ćş’Ŕ´ŒÂśÂśŽš­‡Ť {’p–‹j…fŠ`vYrjPg^H_XB^VA`YCb[Ff_KnhW…uŔżşôóóýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüööőçćăĎÍÄŃÍťĺŕĘďęÖôđŕôđŢńíÖđëÓěćËćŢŔáÚ¸ŕŘľáŮśßÖ˛ŰŃŹÖͧÓĘŁŇÇ Đŝʿ—ÂśŽ¸Ź…śŞƒź°‰Äš‘ËŔ˜ËŔ˜Çť“áÂśŽĹš‘É˝•ËŔ˜Ęż—Ćş’Ŕ´şŽ‡¸Ź…ˇŤ„śŞƒľŠ‚˝ąŠÄ¸‘Ŕ´˝ą‰˝ą‰ĂˇČ˝•É˝•Ćş’ĸĂˇˇŤ…°¤€žłŒĹş’Ĺş’żłŒżłŒÂśĹš‘ÁľŽşŽ‡ˇŤ„ľŠ‚ąĽŽ¤Ť˘~ŠŸ{ąĽ€şŽ‡˝ą‰şŽ‡¸Ź…żłŒÇť“Éž–Éž–Čź”Çť“Çť“Čź”Ćş’Ĺš‘᏿łŒÁľŽĆť“É˝•Ëż˜Ě›ĚšËŔ˜Ęž–Çť“ÁśŽ¸Ź…ł§śŞƒżł‹Çť“Éž–Çť“áÁśŽÄ¸Č˝•ĚŔ˜Ęż—Çť“ĸżł‹š­†ˇŤ…´Šƒą¨ƒť°ŠĹš‘ĸżłŒ˝ąŠÂśĘž–ÍÁ™Čź”ĸĂˇľŠ„Ś›x˘™wĄ—u›oˆ~a{rW|sX‹c‘‡gŠ€bŒƒd–Œl¤œyŠ }Š }¨žz­˘}ľŠƒšŽ‡š­†śŞ„ťŻˆÁľÄ¸Ćş’Ćş’áÂśŽÁľŔ´ŒŔ´ŒŔ´ŒťŻ‡ź°‰Ĺš‘Ćş’Çť“ĘŔ˜Č˝•Äš‘ĸÁľťŻ‰˛¨ƒŹ˘~­˘~şŽˆÄ¸ĂˇżłŒşŽ‡śŞƒşŽ†Ŕ´ŒĹš‘Ꮮ˛Šź°‰ˇŹ†ą§‚Ž¤­Ą|ŞŸząĽ€š­‡˝ą‰š­†´¨‚śŞ„ž˛‹Ĺš‘ÂśŽŔ´ÁľąŚ§œxľŠƒżł‹Âśž˛‹ź°‰˝ą‰ź°‰ťŻˆ¸­†ł§ŻŁ~°¤~­Ł~Ş }¨žzŤŸ{ąĽ¸Ź…ź°ˆşŽ‡şŽ†˝ą‰ĂˇĆş“Ćş’ĸÄ¸Ĺš‘ÂśŽĂˇÄš‘˝ąŠ˝ąŠĹš‘Ćş’Ćť“ËŔ™ËŔ˜Éž–É˝•Çť“ᏺŽ‡ąĽ€Ż¤ťŻ‰Çť“Éž–Ćş’áÁľÁľÄ¸Í›Í›ǻ“Çť“ᐟ°ˆˇŤ„´¨‚ł§ˇŤ„˝ąŠĂˇŔ´ŒťŻˆžł‹Ćť“ËŔ˜Č˝•Çť“Č˝•˝łŽłŞ…śŤ…ŔľŽČ˝•Ĺş’ÂśŽŔ´Œž˛Šž˛Šž˛Šš­†śŞƒśŞ„ąŚŹ˘ŤŁŽ¤ł¨ź°‰żłŒź°‰˝˛ŠÂśŽĹš‘Çť“Ćş’ĸĹš‘Ćť“áĂˇĹš‘˝ą‹˝ąŠĆş’Çť“Çź•ËÁšËŔ™Éž–Éž–Çť“ᏽąŠśŤ…˛¨„źą‹Ĺš’Ćş’Çť“Ćş’żł‹ž˛‹Ä¸Í›Í›ǻ“ᐽąŠľŞƒŽ˘|Ł˜t’‡g„z]{rWypUypVyqUtlRnfMjbJd\FaZDd]IgaPtpdž˝¸óóňýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúůîíě×ŐĎĚÉşÜ×ŔëćÎđěŘőóćőńâńěŐďéĎçŕÂŕ×´ŢÖąŢÖąÝÔ°ÚŃŤŐËĽÎĞÎÜĎĜÎÛȽ•żł‹ľŠƒł§š­†ÁľČź”Ęž–Čź”Ĺş’Çź”Čź”É˝•ÍšĚÁ™Čź”ᐿłŒ˝ą‰şŽ†¸Ź…şŽ‡ÂśČ˝•Âˇž˛‹żłŒÇť“ÍšÎÜËŔ˜Č˝•Çť“żłŒź°‰Ĺš‘Čź”Ĺš‘˝ąŠťŻˆŔ´ŒĹš‘ÁľŽ¸Ź…š­†ˇŤ…­Ą}¨žz§z¨ž{Ž¤śŤ„şŽ‡ź°‰ž˛‹ĂˇĆş“ĸ‘Ĺş’Čź”Čź”Čź”Çť“Ĺš‘Ŕ´˝ąŠżł‹ĂˇÇť“Ęž–Ęž—Çź•Éž–ËŔ˜ËŔ˜Č˝•ÂśŽˇŤ„°¤~˛Ś€ź°‰Ĺş’Éž–Čź”Ĺş’Çź”Čź”Č˝•Ęż—Ęž–Čź”Ćş’Ŕ´şŽ‡¸Ź…¸Ź…¸­‡ż´Ćş’ĸŔ´żł‹Ä¸‘Ëż—ÍšËŔ˜Çť“ᐽą‹¸­‡šŻ‰ˇŹ‡ŹĄ}’ˆhypUnfMxoT…{^ƒdœ‘o§œx§z§zŚzĽ›xŤŸ{ł§śŞƒ¸Ź…şŽ‡Ŕ´ŒÁľ˝ąŠŔ´ŒĂˇÄ¸ÂśŽŔ´ŒŔ´Œź°‰š­…¸Ź…ź°‰ÂśŽÄ¸ĂˇÂˇÁľŽŔ´ŒŔ´Œž˛‹şŽ‡ŽŁĽœy§œy˛Śź°‰ž˛‹ž˛Šź°ˆşŽ‡ź°ˆŔ´ŒÂśŽŔ´˝ą‰ź°‰šŽ‡ł¨ƒ°Ľ€°¤~°¤śŞ„ťŻˆź°ˆ¸Ź…śŞ„şŽ†żł‹ÂśÂśŽŔ´ž˛‹ľŞ„˛Ś€ź°‰Ŕ´Œž˛ŠˇŤ„ľŠƒˇŤ„ˇŤ…ľŞƒą§‚°Ľ€ŽŁ}ŤŸ{¨žzŚzĽ›xŠžz°¤~ľŠƒš­†ź°‰żł‹Ŕ´Ŕ´ŒÂśŽÄ¸Ä¸Ćş’Ćş’ÂśŽž˛‹ź°‰ź°‰ÁľĆş“Čź”Čź”Çť”Çť”Čź”Čź”Ćş’ÂśŽşŽ†°¤­˘~¸­ˆĹš’Éž–Čź”Ĺş’Çź”Č˝•Éž–ĚÁšĚŔ™É˝•Čź”ĸ‘ž˛ŠşŽ†š­†ź°‰żł‹ÂśŽĆş’᏿łŒÄš‘Ëż—ÎÛÍ›ʿ˜Çź”¸‘żľŔľŽĹş’Č˝•ĂˇŔ´ŒżłŒ˝ąŠź°ˆťŻˆşŽ†ˇŤ„´¨‚­˘~¨ž{§zŤ |ąĽˇŤ…ź°‰˝˛ŠĂ¸Ćť“ĸÄ¸Ä¸Ĺš‘Čź”Éž–øÁľÂśŽ˝ąŠž˛ŠĆş’Čź”Č˝•Éž—Éž–Č˝•Ęż—Č˝•Ăˇź°‰˛¨ƒŻŚ‚šŻ‰ĂˇÄ¸Čź”Ęž–Ćť“Ćť“É˝–ĚÁšĚŔ™Čź”Ćş’Ŕ´¸Ź…ŹĄ{œ‘oŠ€a…{^…{^†|^ˆ~aŠ€bˆ~`~uZulSjbJb[D`YC^WD`ZIxtiĘÉĹřř÷ýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüôôôŕßŰĚĘŔÔĎşĺßĆěçÎđëŐôńáóđÝďęŇëäÇăŰşÜÔŻÝÔŻÜÓŽŐ̧Đǟʿ—øÇť“ĚÁ™ÍšȽ•Áľ¸Ź†śŞƒš­†ź°ˆŔ´ŒÄ¸Ćş’Éž–ÎĜÍ›˿—ĚÁ™Ęż—Ćş’ĸĂˇÁľŽżł‹ž˛‹ÁľÇť“Ęż—Äš‘ÁľÂśŽÉž–ĎĝĐŞÎÜĚÁ™Ëż˜Ęž–É˝•Çť“Ćş’ᏼ°‰š­†ź°ˆÁľżł‹śŞ„ť°ˆźąŠ°¤€ŞŸ{Šž{ŤĄ~Ž¤ł§š­…żłŒÄ¸Ĺš‘ÂśŽ˝ąŠŔ´Ä¸‘Ćş’Ćş’áÁľťŻˆşŽ†żł‹Ä¸ĂˇĂˇÁľť°ˆÂśËż—Íš˿—Ĺš‘š­†˛Ś€´¨‚şŽ‡ÁľÄ¸‘Ćş’Éž–ÎĜÎÛ˿—É˝•Čź”Ćş’Ĺš‘ÁľŽ˝ąŠťŻˆ˝ą‰Ŕ´Ä¸‘Ćş’ÂśŽżłŒżłŒĹš‘Ęž–ËŔ˜ÍÁ™Ęż—Ćť“Çź”Čź•Ĺş’ÁľŽˇŹ†˘˜uˆ~askQofN}tX–‹jŤ {ľŠƒ­˘}Šžz¨y¨œxŤŸ{°¤~ł§ˇŤ…˝ą‰Áľž˛‹¸Ź…š­†ž˛ŠÁľŽŔ´Œ˝ąŠź°‰śŤ„ąŚ€śŤ…şŻˆşŻˆťŻ‡¸Ź†˛§ľŞ„ť°‰ž˛Šž˛ŠşŽ‡­˘}¤šwŚœxŤ {°¤~˛Ś¸Ź…ź°‰żł‹żł‹ž˛‹˝ąŠşŽ‡śŞ„śŞ„śŞ„ł¨‚ąĽąĽ´¨‚¸Ź†şŽ‡śŞ„´¨‚ľŠƒš­†ź°ˆź°‰żłŒŔ´ź°‰ź°‰˝ąŠź°‰¸­†´Š‚°¤~ŻŁ}°¤ŻŁ~­˘~ŹŁ°Ľ€°¤ŤŸ{§œyĽ›x¤šw¨yŽ˘|˛Ś€¸Ź…˝ą‰Ŕ´Ŕ´ŒťŻ‡ź°ˆŔ´ŒĹš‘Ĺš’áŔ´Œš­†ľŠƒ˝ąŠÄ¸Ä¸ÂśżłŒź°‰żłŒĹš‘Çť“Čź”Ĺš‘˝ąŠ´Šƒ˛¨ƒ¸­‡Ŕ´ŒĂˇĹš‘Čź”ÎÛĐŝĎĜ˿—Čź”Ćş’Ĺš’ĸÁľŽž˛Šž˛‹Ĺš‘Çť“Çť“Ćş’áÂˇČ˝•ÍÁ™ÍÁ™ĐŝÎÜȽ•Ęż—ĚÁšÇź”Ĺš’ĸżł‹żł‹żłŒťŻˆ¸Ź…şŽ†ťŻ‡şŽ‡śŞ„°¤ŞŸ{¨yŤŸ{°¤~´¨‚şŽ‡Ŕ´ŒĹş’Çť”ÂśŽŔ´ŒÂśŽĹš‘Čź”Çź”ÂśŽž˛Š˝ąŠž˛ŠŔ´ŒĂˇÂśŔľŔ´ÂśĹş’Éž–Ęž–Ćş’˝ąŠľŞ„˛¨ƒ¸­‡ž˛Šž˛‹Ĺš‘ËŔ˜Í›ÎĜÎĜ˿—Čź”Čź”Ćş’ÂśŽš­†Ľšv‘‡h‹c’ˆiœ‘oœ‘ošn˜m–‹kƒdwZukQjbIc\E]VAYR?ZUD’‡ŕßÝř÷öýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůůéčćŃĎÇĚČšáŰÄęäÍíçÎíçÎíčÎíçÍëäÇĺÝ˝ŢŐąŘΊ×ÍŚŃÇĄČ˝–Ĺš‘ÁśŽź°‰ÁľŽČź”É˝•Čź”Ćş’Ŕ´˝ąŠźą‰ˇŤ…śŞƒź°‰ÂśĘż—ÓʤÓɢÎÛʿ—ĸ˝˛Šź°‰żłŒĆş’É˝•Éž–Çť“Čź”É˝•Ćş’áÄ¸Ęż—ËŔ˜Çť“Čź”ĚÁ™ŃÇ ŇČĄĎŝĸ‘ž˛‹ź°ˆš­†şŻ‡ź°‰ťŻˆš­†şŽ‡ĂˇČ˝•ÁľŽşŽˆ´¨‚ąĽ€ł§¸Ź…żłŒĂˇÁľž˛Šź°‰ž˛Š˝ą‰˝ą‰Ŕ´żł‹ź°‰şŽ‡śŞ„´¨‚¸Ź…š­†ˇŤ„śŞ„ľŠƒ´¨‚şŽ‡ÂˇĆť“Čź”Ĺš’˝ą‰š­†ťŻˆşŽ‡şŽ‡˝ą‰ÂśĘż—ÓʤŐĚĽŇÇ Ëż˜Ĺš‘ÁľŽž˛Šž˛‹ĂˇĹš‘Ĺš‘Ćş’Çť“Ćş’ÁľŽ˝ąŠž˛ŠĂˇĆş’Äš‘Çť“ËŔ™ĐŞŇČ Ďŝĸ‘ž˛Š¸Ź†ŹŁĄ—u‘ˆhvmSxoUœ‘pśŞ„ÁľŽź°ˆˇŤ„ł§Ż¤~ŻŁ}˛Ś€¸Ź…ťŻ‡¸Ź†śŞƒˇŤ„şŽ‡ˇŤ„ł¨ľŠ‚´¨˛§ŻĽŞĄ}§œzŞĄ}Ź˘~ŞŸ{Šž{¨z§œxŠŸ|ŽĽ€´Š„¸Ź…ľŠƒŤŸ{¤›xŚzĽœxŁ˜u •s¨ył§ťŻˆź°ˆ¸Ź…´¨‚Ž˘}§œx˘—tĄ–t§›xŤŸ{­˘}Ź˘~ŹŁ€Ź˘¨z§œxŠyŽ˘~ŻŁ}ŤŸ{ŻŁśŞ„ź°‰ž˛‹ť°‰°Ś‚Ş |§œy§›xŠžzŹ {¨y§œyŤ˘~´Ş„š­‡´¨‚­¤¨Ÿ|Ľ›xŚ›wŞŸ{ľŠƒťŻ‡¸Ź…śŞƒľŠƒˇŤ„¸Ź…ťŻ‡żł‹ž˛‹ź°ˆşŽ†śŞƒ˛Ś€ˇŤ„ťŻˆşŽ‡ł§‚°¤śŞ„şŽ‡˝ąŠÄ¸Çť“Ĺš‘ž˛ŠşŽ‡şŻˆşŽ‡¸Ź…¸Ź…ź°‰Ĺš‘ĐƟÔĘŁŇÇ ËŔ˜Ĺš‘ÂśŽž˛ŠżłŒĹš‘Ćş’Ćş’Çť“Čź”Çť“áÁľÂśŽĆť“Çť“Ĺš‘Čź”ÍšĐƟÓɢŃƟŹ‘ž˛‹ťŻ‡ˇŤ„ťŻˆÁľš­†śŞƒ˝ąŠÂśŽÄ¸‘Âśżł‹š­†ąĽ€°¤~ł§‚˝ąŠÂśŽż´Œ˝˛Š˝ąŠż´ŒŔ´ŒŔ´ŒÁľŔ´Œ˝ąŠťŻˆˇŤ„śŞƒˇŤ„şŽ‡şŽ‡ł¨‚ąĽ€¸Ź…ťŻ‡˝ą‰ÁľĹš‘Ĺš‘ž˛‹şŽ‡şŻˆşŽ‡¸Ź…ˇŤ„ź°‰Ĺš‘ĚÁ™ŃǟŇÇ ĚŔ™Čź”Ćş’Ŕ´¸Ź†ŻŁ~˜lŒƒd”t­ŁľŞƒ˛§ŤŸ{¤™vĄ–s–‹kˆ~`~uXvmRlcKbZDYR>RM;kg[°ŻŠëęéűűúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüöőőÝÜ×ËČ˝ŇÍťćáĘíčŇîęÓíčĎëĺĘëäÇéâĂâ١ŮĐŤÔɢŃƞĚÁšČ˝•Çź”øź°‰ž˛‹ĂˇÂśŽĹš’Č˝•Ă¸źąŠˇŹ†´ŠƒˇŤ„ž˛‹Ä¸Ęż—ŇČĄŇČĄÎÛʾ–Ĺš‘Ŕ´˝ąŠŔ´ŒÇť“ĚŔ˜ËŔ˜Ä¸Ä¸Ćş’áĂ¸Çź”Ęż—É˝•Ćş’Č˝•ÎÜÔɢŇČĄËŔ™˝ąŠşŽ‡ź°ˆź°ˆšŽ‡śŤ…´ŠƒˇŤ„ź°‰Ĺš‘Č˝•ÂśŽź°‰š­†¸Ź…š­†ź°‰żł‹Ŕ´żł‹ťŻˆşŽ‡ž˛Šž˛Š˝ą‰żłŒŔ´Œž˛‹şŽ‡śŞ„ľŠ‚śŞ„š­†ťŻˆťŻ‰şŽ‡śŞƒ¸Ź…ź°ˆ˝ą‰ÂśŽĹš’Ŕ´ŒšŽ‡ˇŹ†ˇŹ…şŽ‡żłŒÄ¸Éž–ĎşŇČĄŃƟ˿˜Ĺš‘Ŕ´ŒťŻˆ˝ąŠĆş’Čź”Ćş’ÂśÄ¸Ĺš’żłŒżłŒĂˇĆş“Ĺš‘ÂśŽÇť“ÍšŃǟŃƟËŔ™˝ąŠşŽ‡şŽˆśŤ…ŤĄ}˜ŽmvnSxpVŸ–ušŻ‰ĂˇťŻ‡śŞ„´¨ąĽł§ˇŤ„¸Ź…ľŞ„ą§‚­˘}ŻŁ}ľŠƒł¨‚Ż¤°¤~°¤~ŽŁ~ŠŸ|¤™w •s –s˘˜vŁ™v¤™vŁ˜uŸ”rŸ•sĄ˜uŁ™vŠyŤ {Ł˜uœ’pšo™n™Žm™lž“q§›w°¤ąĽ€ŽŁ~Ť {Ľšvž“q—Œk—Œk’pĄ–s˘—tŸ•sŸ–tŸ•t™ŽmšmŸ”qŚ›w¤™u“pŁ˜u­˘}´Š„ľŤ†ą§‚˘˜v“qŸ”r˘—tŁ—t ”qœ‘ož”r§ząŚľŠƒ°¤Ť |§zĽ›x¨yŽŁ~ł¨ƒł¨ƒ°¤ŻŁ~ąĽł§´¨‚śŞƒşŽ‡şŽ‡¸Ź…¸Ź…ľŠ‚˛Śł§€ˇŤ„şŽ‡śŞ„´¨‚š­†¸Ź…ˇŤ„ž˛ŠÂśĂˇżł‹şŽ‡¸Ź…śŞƒśŞƒťŻˆŔ´ŒĹş’Í›ŃƟŃƞ˿˜Ćş’ᏼ°‰˝ąŠĆş’Ęž–Éž–Ćş’Ćş’Ćş’żłŒÁľŽĆş“Čź”Ĺš‘ÂśŽÇť“ÍšŇÇ ŐĘŁŃƟÁľŽşŽ‡š­†şŽˆź°‰ťŻˆľŠ‚´¨‚ź°ˆĂˇÇť“Ĺš‘ÂśŽž˛ŠˇŤ„ˇŤ…ź°‰ÁľÁľ˝ą‰şŽ†şŽ‡żł‹Ŕ´ŒŔ´ŒŔ´ŒŔ´Œž˛‹şŽ‡śŞ„ľŠ‚śŞ„š­†ťŻ‡¸Ź†ˇŹ†şŽ‡şŽ†š­†ź°ˆÁľŽĆş’Âś˝ąŠš­†śŞƒśŞƒťŻˆŔ´ŒÄ¸Čź”ÎĜŇČĄĚÁ™Čź”Ćş’ž˛‹ľŠƒŤ |•Šj„e¤œyľŤ†źą‰ˇŤ„ąĽ€­˘}¨ž{›’pƒd…{]}sWpgOe]FZS>OI8UQDŽŒ„ÔÔŃôôóüüű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúîíëŃÎÇÍČšÚŐżéäÍîęÓđëÖďęŃëäČéâĂćßżŢÖłÖͧĐƞÍ›ĚÁ™ĚÁ™ĚÁ™Çź”ź°‰ťŻˆźąŠź°‰ÂśČ˝•Ă¸šŽˆłŠ„śŤ…ž˛ŠĹş’Čź”Éž–ÎÛĎĜÍÁ™Ęž–Çť“Ćş’áĂˇÇť“Ëż—Éž–żłŒŔ´ŒĂˇŔ´Äš‘ËŔ˜Éž–Čź•Ęž–ĚÁ™ÎÜĐŞÍ›ƺ“š­†š­†˝ą‰źą‰śŹ…°Ś‚ŻĽ€ľŠ‚˝ą‰ĂˇÄ¸˝ąŠš­†¸Ź…¸Ź†ťŻˆžł‹ž˛‹ż´ŒÁľ˝ąŠź°‰Ŕ´ŒÁľŔ´Œżł‹Ŕ´ŒÁľź°‰š­…¸Ź…şŽ‡ž˛‹ĂˇĆş’ÂśşŽ‡ˇŤ…ˇŤ„ľŠƒź°‰Ä¸Áľ¸Ž‡łŠ„śŹ…ž˛‹Ĺš‘Çť“Čź”Éž–ĚÁ™ÍÁ™Éž–Ĺš‘ÁľŽ˝ąŠżłŒĆş’Çť“ĸž˛‹Ŕ´ŒÁľŽżł‹Ă¸Ęż—É˝•Ćş’Ĺş’Éž–ĚÁ™ĚÁ™Ęż—Ĺš’¸Ź…ˇŤ„ş°ˆşŻˆ­˘}”ŠjtlRwpUž•tśŹ‡ž˛‹´¨‚°ĽŽŁ}ŤŸ{°ĽˇŤ„´¨‚°Ľ€­Ł¨ž{¨y­˘|Ź˘~ŞĄ}ŞŸzޞy¨œxŁ˜u’p˜l—l›oŸ”r –sž“q—Œk”‰i’‡g†f–Œk’p—ŒkŽ„d‰€aŠb…e“ˆh”Ši—Œkž“qŸ•rŸ”r’q™Žm”‰i…eŽ„d‘‡g“‰i’ˆgƒd…e†fŠ€a‚c”‰i›n™Žm“ˆh™Žm –t˘™w¤›yĄ˜v“‰i†f”Šj™Žm–Œk…eƒd“‰h’qŚ›wŠy¤™uĄ—t –tŸ•rĽšw­˘}­¤ŤĄ~ŞŸ{Ź {ŽŁ}°¤~°Ľ˛Ś€ľŞƒľŞ„ľŠƒśŞƒ´¨ąĽ˛ŚśŞƒź°‰ž˛Š˝ąŠź°ˆˇŤ„ł§€śŞ„ź°ˆŔ´Œżł‹şŽ‡ľŠƒ´¨š­†Ä¸‘Çť“Čź”Ęž—ĚÁ™Íšʾ–Čź”Ćş’Ŕ´ŒżłŒĆť“Ęż—Éž–ĸÄ¸Ăˇżł‹Ă¸ËŔ˜Ęž–Ćş’Ĺš‘Ęż—ÎÛ͚ЪĎĝŔ´şŽ‡şŽ‡żł‹ź°‰ľŠ‚˛Ś€ł§¸Ź…Ŕ´ŒÄ¸Áľżł‹˝ą‰ˇŤ…šŽˆŔľÂśŽŔ´Œ˝ąŠťŻˆź°‰żł‹ÁľÁľŔ´ŒÁľŽÁľťŻˆ¸Ź…š­†š­†ź°‰Ŕ´ŒÂśÂśŔ´ŒťŻˆˇŤ„¸Ź…ž˛‹Ĺš‘Ĺš‘ž˛‹śŞƒ´¨š­†Ä¸‘Çť“Ćť“Ĺš’ĚÁ™Ńǟ˿—Çť“Ćş’ž˛‹ą§¤šx”‹j’‰i¨Ÿ|śŹ†ť°ˆśŞ„ľŠƒľŞƒŻĽ€Ą—u”Šiƒcƒy\sjPf^GYS>KF5JF9tqhśľ°çćĺ÷÷öýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýöőőăâŢĘÇźŇÍşâÝĹëĺÍîéŃđëÔîéĎćßżâÚˇß×´ŰÓŻŐĚŚŃǟÓȢŃÇ ËŔ˜Ęž–Ĺş’şŻˆľŞ„´Ş„şŻˆż´ÁľŽ˝ąŠşŽ‡ť°‰Ŕ´ŒĆş’ËŔ˜Ęż—Ęž–ÍšĚÁ™Ęž–Čź”Čź”Čź”Ćş’Ĺš‘ĸÇť“Ćť“Ŕ´Œ˝ąŠžł‹Ćş“ĚŔ™ÍÁšÇź”Č˝•ĎĝÍšǼ”øČź•Éž–żłŒťŻ‡š­†ˇŤ„´Šƒł¨ƒąŚ€ł§şŽ‡żł‹Áľ˝ąŠşŽ‡´¨‚ŠžyŻ¤~ž˛‹Ĺş’É˝–É˝–áÁľĹš‘Ćş’Âś¸Ź†śŞƒ¸Ź…ź°‰ťŻˆťŻ‡żł‹ĂˇĂˇĹš‘ĸşŽˆľŠƒ´¨ľŠƒťŻ‡żł‹ź°‰şŽ‡ť°‰ż´ŒÄ¸Çť“Čź”Čź”Čź”Č˝•Éž–Čź”Çť“Ćş’ĸ‘Ĺš‘Çť“Ĺš‘ÂśÂś˝ąŠşŽ‡ÁľÉ˝•ĚŔ˜Çť“Čź”Í›ĚÁ™Ćť“ÁľŽĂ¸Ä¸‘š­†ł¨ƒą§‚°Ś‚Śœy’ˆitlQrjP‘ˆh¨y˛§­ŁŤĄ~Śœz˜Žmœ‘pŠžyŽ˘|°Ľ°Ľ€ŞŸ{ĽšvŚ›xŚ›x˘˜u™m”Ši’ˆh“ˆh’‡g‘‡f“‰i•Ši“‰h“ˆh‘†fŠ€a‚y\}tXwZ†}_‰aw[|sW~uY€wZƒz]‡}_†|^„{]†|_‡}`…|_w[€w[‚y\‚x[uY|sWvZ€wZzqVzpV{rW~uYwZƒz]†|_‡}`ˆ~`‹b‰€b„{^ˆbŒ‚c„z]‚y[‚y\€w[€vZx[x[ƒz\ˆ`†f•‹j“‰h“‰h‘‡g‹c…fšn¤›xŹ˘Ż¤Ť {¨žzŤ˘~ŽŁ~ŻŁ~Ž¤€Ź˘}Ť {°¤~ąĽąĽł§ˇŤ„şŽ‡˝ąŠź°‰śŞƒ˛Ś€ąĽł§€¸Ź…˝ąŠź°ˆşŽ‡ťŻˆťŻˆŔ´Ęž–Ęż—Éž–ĚŔ˜ËŔ˜Ęž–Čź”Čź”Çť“Ĺš‘Ĺš‘Çť“Ćş’ĸÄš‘ÁľŽž˛‹ÂśŽÉ˝•Íš˿—É˝•ĚŔ˜ĐŞÎÛøĆş“Ęž–Ĺš‘ž˛‹š­†ˇŤ…ˇŤ„śŞƒśŞƒ´Š‚ľŠ‚ťŻˆŔ´ŒťŻˆşŽ‡ˇŤ…ŽŁ~­Ł´Ť†ż´Ćť“Çź”Ĺş’áÁľĂˇÄ¸Áľź°‰¸Ź…¸Ź…ťŻ‡˝ą‰ž˛ŠŔ´Ä¸ĂˇÂśŽżł‹š­†´¨ł§š­†żł‹ž˛Šź°‰ťŻˆťŻˆŔ´Ęž–Ęż—É˝•Ęż—͛͛ǻ“Ĺš‘Ĺš‘˝ąŠ¨y‘ˆh…eœ‘pł¨‚şŽ‡şŽ‡ź°ˆ˝ą‰ź°‰´Šƒ¨žz •sœ’p…fvmSf_GYR=HC3C@3ROFŽˆÍĚÉďďîúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűďîíŐÓĚÇÂłŘÓżćâĚíéÔńíŮńěÖěćĚäÜşŕ׳ÝÔ°ÚŃŤÔˤŃƟÓɢΪőÁľŽżł‹šŽ‡ˇŹ†ˇ­‡¸­†ľŠƒąĽ€ł§š­†żł‹ÁľĹş’ĚÁ™Íš˿—Éž–Çť“Ĺş’Çť“Čź”Čź”Čź”Ćş’ĸÂśÁľŔ´Œź°ˆ˝ąŠÉž–ĐŞĐŞʿ—ËŔ˜Ďŝɽ–ÁľÁľÉž–ÎÛ÷ź°‰¸Ź…ˇŤ„š­…š­†˛§‚ąŚˇŤ„ťŻ‡ťŻ‡śŞƒ˛§­Ą|˘—tŠy¸­†ÁśŽÇť”Čź•Ĺş’Ćş’É˝•Ćş“Ŕ´š­†ˇŤ„¸Ź…˝ą‰ž˛‹˝ąŠÁľÂśŽž˛‹żłŒżł‹şŽ‡ˇŤ„ˇŤ„ˇŤ„ł§ŽŁ}ąŚ€¸Ź…ź°ˆž˛ŠÁľŽĆş“Éž–Éž–Ćş’áĂˇĆş’Čź”Čź”Ćş’Ćş’Çť“ÂśŽž˛‹żłŒşŽ‡¸Ź…áËŔ˜ÍÁ™Çź”Čź•ĚÁšĹş“˝ąŠşŽ‡ÂśĆť“şŻˆ°Ś€Š }Š }˘™w’ˆhtlQogMŠ€bž“qŚ›xž•s›’q—Žm‰€aŒ‚c—ŒkŸ“q¤™uĽšv˘—tŸ”rž“q™Žm’ˆh‰a…{^‚y\‚x[‚x[ƒy\…{^ƒy\}tWzrVyqUvmRpgNmdLphOqiOnfMg`Hi`InfMldLldLqhOphNmfMmeLldLiaJe]Fh`IldLldKh`Hd]Fg_HhaIf^Gd\Ff^GmeLphNphNqhOsjPumRvmRqjPmeLtkQxnTrjPqhOpgNlcKogMulRtkQskQxoT~tX€vZ|sWuYuYwnSypU„{^’Šjž•s¤™v˘—t˘˜u¨Ÿ|¨žzŚ›x§zŚœyĽ›wŠžy­Ą|°¤~ł§€ľŠ‚ľŠ‚ľŠƒ´¨‚´¨ł§ł§ł§˛Ś€°¤°¤ľŠƒťŻˆ˝ą‰ÁľŽÉž–Ęž–É˝•Ëż—É˝•Ĺš‘Ĺš‘Ćş’Čź”Čź”Čź”Çť“ÂśŽżł‹Âśž˛‹ź°‰Ä¸ËŔ˜ÎšĚÁ™ÍÁ™ĎÛĐŝʿ—Ŕ´Ĺş’ĚŔ™Čź”żłŒśŞƒ´¨‚ˇŤ„š­†śŤ„ł¨‚ľŠ‚şŽ‡˝ą‰śŞ„˛ŚŽŁ}§œy§zŹ¤€şŻ‰Ä¸‘Çź”Č˝•Čź”Ćť“Ĺş’ĸÁľź°ˆ¸Ź…şŽ‡ź°ˆ˝ą‰żł‹ÂśŽĂˇž˛‹ťŻˆž˛ŠťŻˆˇŤ„śŞ„ł§°¤°¤ľŠƒťŻˆ˝ą‰ÁľŽÉž–ËŔ˜ËŔ˜ËŔ˜Éž–Ĺş’ÁśŽÁľżł‹śŞ„Ÿ”rˆ~`†gŚ›xš­‡şŽ‡¸Ź…Ŕ´ŒÄš‘ĸ‘ž˛‹ł§‚¨žz˘—u“‰izqVkcJ]VAKE4<8*:6,^\UŻŽŞßßÝőőőýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţřřřçćäÎËÂÉÄąŰÖÁęçŇńďßôńâňíŮëĺÉĺÜťâÚśŕÖ˛ŮĎŠÓČĄĐŝÎĜǼ”˝ąŠşŽ‡şŽ‡ťŻˆž˛‹˝˛‹˛§¨œxŁ˜uŹĄ|ˇŤ„şŽ‡şŽ‡żłŒĘż—ĎÛĚÁ™Ä¸ÂśŽĂˇĹš‘Çť“Čź”Çť“Çť“Çť“Áľ˝ą‰žł‹˝˛ŠżłŒÉž—ĐƞŇÇ ĎĜÍšĚÁ™Âˇ˝ąŠÄ¸ĚÁšĎĝĸ‘˝ąŠťŻˆ˝ąŠżł‹ź°‰˛¨ƒ°ŚśŤ„š­†śŞƒŹ |¨y§œxĽšwŠžząĽ€śŞƒź°‰ÂśŽĹš‘É˝•ËŔ˜Ĺš’ž˛‹ž˛‹żł‹żł‹żł‹żł‹żłŒżłŒ˝ą‰š­†š­†š­†şŽ†ťŻ‡şŽ‡ľŠ‚§œxŸ”rŤŸz´¨‚´¨‚ł§š­†Ĺš‘ËŔ˜ËŔ˜ĂˇżłŒżłŒĂˇĆş“Ćş’áĂˇĹš‘Ŕ´ŒşŽ‡ťŻ‡şŽ‡ź°‰Ĺš‘Ęž–Ęż—Çź”Ćş’ĸ‘şŽˆł§ˇŹ…ŔľŽĹš’šŽ‡ŽŁ~§y§ž{ —u…fqiOmeL‡~_˜Žl›‘oƒeˆ`…|^€vZw[†}_Š€aŒƒcŽ„e‘‡f“ˆh‘†f‰`vZ|rVzqUxoTtkQphOogNpgNldKe]FbZDaYCaZC`XB^WA]VAZS>VO;SM9VO;YR>UO;TM:XR=XR>XR=XQ=UO;RK9QJ8UN;XQ=UO;RK8RK8RK8SL:SM9RL9TM:ZS?]VA]VA^WA_XB`YC`YC^WA_WBe]Fg_HbZDaYC`YC_XBc\Ei`Id\Fd\FlcLpgOmeMg_HkbKnfMh`HkbJsjP|sW‡~_Ž„e’ˆh˜ŽmŸ–už”r›o •s˘—u˘—u˘—uŚ›wŹ {Ž˘}ŻŁ}­Ą|Šzޞzł§śŞƒľŠƒ˛Ś€ŠyĄ–sĽšwŽ˘~´Š‚śŞ„ťŻˆĹš‘Čź”É˝•Čź”Ĺš‘ÂśŽÁľÄ¸Ćş’Čź”Čź”Ćş“Ŕ´ź°‰żł‹ž˛Š˝ąŠĹş’ËŔ˜ÍšÎšÎšÍšʾ—Ĺš‘ÁśŽČ˝–Ďĝɞ–žłŒśŞƒ¸Ź…ź°ˆźą‰´Š„°ŚśŞ„ź°‰˝ą‰ł§ŹĄ|¨yŚ›x¨ž{Ť˘˛§‚şŽ‡ÁľĹš‘É˝•Ęż—Çť“øÁľŔ´Œž˛‹ž˛Šź°‰ź°ˆž˛Šżł‹ž˛Š¸Ź…śŞƒ˝ą‰żł‹˝˛Šš­†­˘}˘˜uŚ›wŽŁ~śŞ„¸Ź…ź°‰Ćş’Ëż—ĚŔ˜É˝•Ăˇž˛‹ź°‰¸Ź…ąĽ€§œy—lŒ‚dš‘pŻĽ€ť°‰şŽ†¸Ź…ÂśÉ˝•Éž–Ćş’şŻ‰Ť˘~ –t†f~uYriPd]GQJ7=8+62(NKC’‘ŒÉÉĆîîíűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţóňňŰŮŐĆÂśĎɲáÜĹěçĐńíŮňďŰńěÖîčÎčáĂĺÝťŕÖ˛ÖĚĽĐƞÎÛɾ–ÁľşŽ‡¸Ź…şŽ‡Ŕ´Œ˝ąŠľŠƒŚ›wŁ˜tŠył¨‚śŞ„°Ľ€ąĽ€şŽ‡Çź”ÍšĚÁ™ĂˇÂśŽÄ¸Ŕ´ÂśĆş’Ĺš‘Ćş’Éž–ĸž˛‹Ŕ´ŒĂ¸Çť”Ęž–ĚŔ™ĚÁšËŔ˜Ëż—Č˝•ż´ŒşŽ‡ž˛‹Ćş“Ëż˜Ćť“Áľżł‹ĂˇÁľşŽˆ°§‚ŻĽśŤ…ťŻ‡š­†ŻŁ~Ź {Ť {ŠŸ|Ş }Ź˘~ŹĄ}ľŞ„ÂśŽÇť“Ęž–Íš˿˜Ćť“ÁśŽÂśŽĂˇž˛‹˝ą‰ž˛‹˝ą‰¸Ź…ľŠ‚śŞƒš­†ź°ˆš­†ł§§œx˘˜uĽ›y´Š„´Šƒ¨yŤŸzˇŤ„Ĺš‘ĚŔ˜ËŔ˜ĂˇĂˇĹš’ŔľŔ´ŒÂśŽÁľĂˇĹš‘żłŒşŽ†ź°‰Ŕ´ŒĂˇĆş’Äš‘ÁľŽžł‹ž˛‹ťŻ‰ąŚ€Ť |ŻĽ€´Ş†śŹˆł¨‚Ź {Ś›xĽ›x™nƒz]g`Hd]F~uXŽ„d†fƒz]|sWyoTwmSwnSwnSskQtlQypU|rW}sW|sWxoTrjPkcKh`Ig_He]F`XC[T@ZS>YR=UO;PJ7NH6QK8OI6KE3GA1F@0F@0E@/D?/C>.B=-B=-C>.C>-C=-D>.C>.C=-B=-D?/E@0D?.D>.D?.D?/D?.E@/F@/E@/GB0KE3NG6LF4MG5PJ7OH6LF4MG5RL9UN:TM:TM:SM9RL9TN:VP<RL8SL9ZS>`YC`YC[T?^WAb[C`YCb[Dd]Ee]EofM}tXƒz\ˆaŽ…e‘‡g’‡g•Ši˜Žl›n˜lšm •rŚšvŚšwĄ•sž“pĄ–sŻŁ}ł§ŻŁ~Ł˜tŸ“q˘—tŞŸ{ŻŁ~ŹĄ|Ť |˛§Ŕ´Čź”Ęż—Ĺš‘ĸÄ¸ÂśŽÁľÄ¸Ćş’Čź”Çť“ÂśŽž˛‹Ŕ´ŒÁľÄ¸Ęż—ĚŔ˜Ëż—Ëż—Ëż—É˝–ᐽ˛Šź°‰ÂśČ˝•Ęż—ĸ‘˝ą‰Ŕ´ŒÁľž˛‹ľŞ„Ż¤´¨‚˝ąŠżłŒł¨ŹĄ}ŠŸ|Ť {ŤĄ}Š }ŚœxŽ˘}˝ąŠĹš‘Çť“Ćť“Čź”Č˝•Ĺş’áŔ´Œ˝ą‰ź°ˆ˝ąŠżł‹˝ą‰ˇŤ„ł§€´¨‚˝ą‰Ŕ´ŒťŻˆŹĄ|¤›wĽœyŹ˘}˛Ś€ł§€ł§¸Ź…ÁľÇť“Éž–Čź”Ĺš‘żłŒł¨‚Ł˜u•‹jŽ„e‡h›’qŤĄ}šŽˆžł‹˝ą‰˝ą‰Ĺš‘Çť“Ĺš‘Ŕ´¸­†­Ł~ –s†fvZtkQg_HTM:@;-73'GD;xuoŹŤ§ŰŰŮ÷÷÷ýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűíěëŃÎÇĂżŻÖСćáČěçĎďéÓňîŮďęÓëäÉĺŢżß׾ŘΊŇÇ ĎĜΚǼ”Ŕ´Œź°‰ź°‰ŔľÇť“ÁśŽľŠƒŁ˜uĽ™v°¤şŽ‡š­‡˛ŚśŞ„˝ąŠÂśĹš’Ćť“Ćť“É˝•Ęž—Äš‘Äš‘Čź”ĸŔ´ÁśÄš’Čź”Č˝•Ęż—Ęż—Ĺš’Ćş“Čź•ĂˇÁľÁľź°‰š­†ź°ˆĂˇÉž–Čź”Çť“Ćť“Č˝•Ä¸‘ť°‰´Šƒą§‚ľŠƒśŞ„ľŠƒł§ł§˛§°Ś­¤€Ť˘ŤĄ}ľŠ„ÂśŽĂˇÇť”ÎÜÍ›ȼ•Ŕ´Œž˛‹żł‹ź°‰żłŒÂˇžł‹şŽ‡š­†şŽ‡ź°ˆž˛‹ź°‰´¨‚Ł˜u˘˜vŹŁ€źą‹š­‡ŹĄ|˛Ś˝ąŠÁľŽĂ¸Ä¸‘øČ˝•ËŔ˜ĂˇÁľÄ¸ÂśŽ˝ąŠš­‡ťŻˆżłŒÄ¸Ä¸Âśžłť°‰¸Ź…ł§‚°¤Ź |Ľ™vĄ–tŁšwŚz¨ž{§œx¤˜uŸ”rœ‘p‰€apgN^WAaZDtkR|sW{rVtlRofMkcKjbJh`Id\E]V@\U?`YCaYC`YC`XC]V@YR=SM:NI7LG5NH5LF4GA1C>.B>.B=->9*<7)=8*;6(83&40#3/"3/"4/#2."0, 0, 0,!/+ .*.*/, 2."3/#40#51$61$61$40#51$61$51$61$83&73%51$73%;7(:5':5'<7(=7)=8)?9+C=-E?/E@0F@0F@/E@/F@0FA0D?.E?.ID2NH6OJ7NH6QJ8SL9SM:VO;VO;RL9\U@kcJqiOumR{rV€vY‚y\„z]ˆ~`‹a‹a…e–‹jšn›n˜l˜Žlœ‘oŠyŻŁ~­Ą{šm˜lĄ–sŽ˘}˛Ś€ŻŁ~ŽŁ~ł¨‚ž˛ŠÂˇĂ¸ÂśŽĆş’Ęż—Ĺş’øĹş’Çť“ĸž˛ŒŔ´Ä¸‘Č˝–É˝–É˝•Éž–É˝•Čź”Ćş’ᐞ´źąŠşŽ‡š­†ž˛ŠĹš‘ĚÁ™Ęż—Çť“Çť“Ćş’ÂśŽťŻˆ´¨‚˛Ś€ˇŹ‡šŻ‰˛§Ż¤€°Ś€˛Ś°Ľ€ŤĄ}¤™v­Ą|żł‹Ä¸Ĺš‘Ćş’Ęż—ĚÁ™Ĺš‘Ŕ´Œ˝ą‰şŽ†˝˛ŠĂˇÂśŽž˛Šš­†ľŠƒˇŤ„Ŕ´ŒÄ¸žłŒŠžzŁ™vŠ |˛¨‚¸Ź…¸Ź†¸Ź†ťŻˆÁľÁľÁľÄ¸Ä¸źą‹Ľ›}•Œp‡h‡g—Žm¤šxľŞ…ĸ‘Ęž—Çź”ĸÄ¸ĂˇŔ´Œ˝ą‰´¨Šy •r”‰iƒz]xoTmeM\U@IC2;6)=9.VSL„‚}ššśęęęůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙öööăâŢĘČźĆÂŻŢŘżčäËëçĎďęÓóďŢíçĐäÜťŢŐ˛Ö̧ĎĝĎĜĐŝĎĜ˿—Ćş’øĹš’Éž–Í›ʿ—ÁľŽ­˘~ŤŸ{ł§ťŻ‡żłŒŔ´ŒĹş’Ćş“ž˛‹ťŻˆ˝˛‹Çť”ÎÜŃǟΛĚÁ™ĚŔ˜Ćş’ťŻˆ´Š„¡‘ĐşŃÇ ÎĜȽ–Ŕ´ÂˇĆş“ź°‰ˇŤ„şŽ‡şŽ‡şŽ‡żłŒĹş’Éž–Čź•Č˝•Ęž–ËŔ˜Çť“żłŒşŽ‡śŞ„ł§ŽŁ~Ž˘~ł¨‚śŞ„ˇŤ„ľŞƒą§‚Ž¤˛§‚š­†˝ąŠž˛ŠĂˇÍ›ʾ—ÁśŽťŻˆ¸Ź…¸Ź…˝ąŠĹš‘É˝–Äš‘ÂśŽÄ¸ĂˇÂśĂˇÄš‘Ŕ´­˘~¨ž{ŻŚ‚şŻ‰żł‹ž˛‹Äš‘Ĺş’˝ąŠˇŤ…ˇŹ…ÁľŽČ˝•ĚŔ™Čź”Çź”É˝•Ä¸śŞ„ŠžzľŠ„Äš‘Č˝•ĂˇşŻˆ˛¨ƒąŚ‚ąĽ€Şžz˘–t‘p™Žm—k˜lœ‘pž“q™Žm•Šj‘‡g‹btlR\U@YS>b[DkcKiaId\EaYC^XB]V@[T?UN;OI6KF4JD3JD3IC2IC2HB1C>-?:*=8):5'73%94'94&62%4/#2."1-!0, /+ -)+')&($&#%"&#&#%"#!" !!"#!&#(%(%)&*&+')%)%*'*'*&,(,(*&)&,)-*+(+'0, 4/#62%94&:6';6';6(;6(;6(:5'<7(<7(<7)>9*@;+@;,A<,C=-D?/FA0GB1IC2JD3RK8[T>_YCf^GldLqhOtkQwnSypU|sW€vZ‡}^„d†f‘‡g”Ši—Œl›n¤™vŹĄ|ŽŁ}Ÿ”qšnž“pŠy´¨‚şŽ‡ź°ˆ˝ąŠž˛‹şŽ‡śŤ„źą‰Çť”ÎÜʿ—Éž–ËŔ˜Ęž–żłŒł¨ƒź°ŠĘž˜ŇȢĎŞɾ–Ĺš‘Ĺš‘Ĺš‘ᏻ°ŠľŤ†šŻˆź°‰ťŻ‡żłŒĆť“ĚÁ™ĚÁ™Ęž—Çź”Çť“Ćş’Áľš­†ł§‚ą§‚ą§‚°Ľ˛§€ľŠƒśŞƒł§Ż¤~Ž˘}śŞ„ÁľŽÂśŽĂˇÉž–ĚÁ™Éž–żłŒťŻ‡şŽ‡şŽ‡ÁľŽČ˝•Ćş’áÄ¸ż´ŒžłŒÇť“ËŔ™Č˝•śŞ…Ź |Ť |ł§˝ąŠÄ¸Ĺš‘Ćş’Ĺš‘˝ąŠˇŤ„ťŻˆš­†Ż¤‚›“|š“zŠŸ|°¤Ť |Ś›xśŞ…Ęż˜ÖËŚŇĆ É˝•Ĺš‘ÂśŽŔ´Œž˛Š˛ŚŁ˜tĄ–sšo‰auYvnSf^GSL:B=.:6*EB9ge_š™•ŘŘ×őőőýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýííëŇĐČĹ°ĐĚľĺŕÇéäÉěçÍîčĎěçÎçŕĂâŮśŢÖąŘΨŇÇ ŇČ ÓÉĄŇÇ ĎĜ͛ϪŃÇĄÓÉŁÔˤÓɢËŔ™ť°‰śŞ„şŽ†ž˛ŠĂˇČ˝•ĚÁ™Ęž—żłŒ¸Ź…ľŞƒş°‹Ĺť•ĎĝÍšÍÁ™ÍšȽ•ÁľŽźą‹Äš’ÎÜŃǟŇČĄĎŞŹ“Ŕ´źąŠˇŹ…š­†ž˛‹ź°‰ź°ˆÂśŽŔľŽżłŒÂśŔľŽż´Ä¸Ä¸Ŕ´ž˛Šź°ˆš­†śŞ„ł¨ƒą§‚´Š„śŤ„ľŠ‚ł¨‚ł¨ƒśŞ„¸Ź…¸Ź…˝ąŠÂśÄš’áŔ´Œ˝ąŠťŻˆťŻˆÁľŽÇť“Éž–Çť“Çť“ËŔ˜ÎÜϺϺϪËŔ™ť°‰ľŞ„¸­‡˝˛ŠĂˇČź”Ęž–Çť“ž˛Š´ŠƒŻ¤€´¨ƒżłČź”Ćş’Äš‘Ĺş’¡š­†Ż¤~śŞ„žłŒÁľŽżłŒşŽ‡ŽĽŚœy •ršn—k–‹j‘‡gŒ‚c‰aˆ~`‡~`‡}`vZumSldL\U@OI5QK8XR=[T?XQ=SL9NG5KE3HB1D?/?9+:6(84&62%40$3/#41#2/#0, -)-)+')&(%)%(%'$%"$!# " ! # # # " !!   !"  "" !" )&0,!2.$2/#3/$62%62&51%50&62'72&40#3/#30#30#40#51$72%94'=8*@;+D?.HB1LF4PJ6UN;[T?`XBb[De]FjbJmeLqhOulR{qVx[…{]ˆ~`ƒc”‰išo –t§œyŞŸ{˘—t •rĄ–sŚ›w°¤şŽ‡ž˛‹Ŕ´Œžł‹śŤ…Ž¤ąĽ€ź°‹Čź•ËŔ˜ĚŔ˜ËŔ˜ĚŔ˜Ä¸‘şŽˆÁśÍ›ŇČĄŇČ Ďĝʿ—Äš‘Ŕ´Ŕ´Œ˝ąŠšŽˆźąŠ˝˛ŠşŽ‡ž˛‹ĂˇĹş’Äš‘ÂśŔ´Ä¸‘Č˝•ÂśŽťŻ‡šŽ‡¸­†ľŤ„˛Ś€˛Śł§ł§˛ŚąĽł§¸Ź†˝ą‰şŽ‡ź°ˆĂ¸Ä¸‘ÁľŽž˛Š˝ą‰˝ąŠŔ´Ĺš’Éž–Éž–Ęž–ËŔ˜ËÁšÍÝŃČĄÔʤŃǠᑹ­‡śŞ„ˇŤ„ż´ŒÉž–ĚÁ™Ëż—Çť“ž˛Šł§ŞŸz •ršpŸ—zŻĽ†žłŽÄ¸‘żł¸­‡ÁśÍÁšŇÇ ŇÇ ĐŝÍšź’˝ąŠťŻˆ´ŠƒŹ |¨ž{Ÿ•tŽ„e…|^{rVf^GUN;E@085(>;1ZXP„ƒžž˝ěěěúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřâŕŰČšÉÄŽŰÖźčăÉéäČěćĚěĺĘćŢžĺÝťĺÝťâŮľÜŇŹÖˤŐˤÔĘŁŇÇ ĎĜĐƟŐĚŚŮĐŤŰÓŽŰÓ­ŘΨĐƟőž˛‹ž˛ŠżłŒĆş’ĚÁ™ĎĜĚÁ™Ĺş’ź°ŠľŞ„ś­‡Â¸’ÍÜ͚͛ÎÛĚŔ˜É˝–É˝•Ęž–ËŔ˜ĎÜŇČĄÓɢĚÁ™Ăˇ˝ąŠ˝ąŠÁľŽÄš‘Ŕ´Œ˝ąŠÁľŽ˝ąŠşŽ‡żł‹ťŻˆśŞƒşŽ†˝ąŠżł‹Ŕ´ŒÂśŽÁľŔ´Œź°‰łŠ„ł¨ƒľŞƒ´¨‚´¨ł§ł§´¨‚¸Ź…żłŒÁľşŻ‡ž˛‹ĂˇĂˇŔľżłŒĹš‘Çť“Ćş’Çť“Éž–Í›ÔʤŮĐŹŰŇŹŘĎŠŇǠᐽą‰˝ąŠź°‰ÂśĘż—Ęž–Çť“¡¸­‡ŻĽ€ŽŁšŽˆĹš‘áŔ´Œž˛‹˝ą‰š­†śŞƒ´¨‚´¨‚´¨‚ł¨‚°Ś€Śz›‘p‘‡fŒ‚cŒƒcƒd„z]{rVvmSqiOofNneMe]FWP<LG4E?/C=,E@/IC2HB1E?/@:,94'51$2-"-))&'$%#$!" #!$!" !!       !!" #!$"%#&% '&!('")(#*($+)%-+'1/,:85BA=IHEIHCEC>@>999365/42-52-42-31-32-42-32-42-53.53.43.54/43/64/872><7DB<GE>FD>GD>KJBKHAHF?IH@LJBFD;;9186-86-75,86,:7.=9/A=2EA5E@3FA2HC3KF4LG5PI7SL9UN:VO;XQ<\T?_XAb[Df^GkcJphMtkPxoT~tX‡}`„e•‹lšo“qœ‘o’pž“qŸ”r¨y´¨‚ťŻ‡żł‹Ŕ´Œ¸­‡ŻĽ€ŽŁ~¸Ź†Ĺš’͚͚ʾ–Ëż—Ęž–Ĺš‘É˝•ÍšĎĝŃƞŃƟÎÛǼ”ÂśÁśŽÂśŽÂˇÁľž˛ŠşŽ‡ź°‰Ŕ´ŒÂśŽž˛‹šŽ†š­†˝ąŠÁśżłŒž˛‹ÁľÁľŽž˛ŠľŠ‚˛Ś€˛Ś€´¨ł§˛Ś°¤ł¨‚¸­†¸Ź…š­†ťŻˆ˝ąŠž˛‹ÂśŽÂśŽÁľĹš‘Čź”É˝•ĚÁ™ÎÛÎÛÓÉŁŘĎŞŮŃŹŰŇ­×Ί˿˜ÂśŽ˝ąŠşŽ†Ŕ´Ëż—ÎÛÎÛʿ—ż´Ż¤€šn‘‡g–ŒkŻ¤€Ă¸‘ĚÁ™Íš˿˜Éž–Ëż—ĚÁ™ĚŔ˜ÎÜŃÇ ŃƟɾ—Ŕľ˝ąŠź°‰šŽ‡˛¨‚¤šw”Ši‹b€wZh_HVP<GB283'85+KH?ge`ŁŁĄÖÖÖóóóüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýňńđÔŇĘÄŔ­ŃÍ´áÜÁćăÉëćÍíćĚęăĆćŢ˝éâĂëĺČăŰšÚĐŞÓÉĄÔɢŃƟĚŔ˜Ęž—ÍÁšŇÇĄŮĐŞßÖąŢŐ°×ͧÎÛøž˛Š˝ą‰ž˛‹Ĺş’ÍÁ™ĎĜĎŝĎŝǼ”ÁśŽÇ˝•ÎÜÓÉĄÓɢŃƟĎĜΚÎÛÎÛÎÛΚÎÛÍšĚÁšÍšĎĜĎĝĚÁšĘż—Čź•ĂˇżłŒž˛ŠÁľÄ¸Ä¸‘ž˛‹ˇŤ…ľŠƒśŞƒşŽ‡ÁľĹš’Ĺš‘ÂśŽżł‹źąŠˇŹ…ľŠƒşŽ†ľŠƒŹĄ|ŞŸ{˛§‚ž˛‹Áľ˝ą‰¸Ź…ŔľŽĘż—ËŔ˜Ä¸‘ž˛‹Ä¸Ĺš‘ĸĆš’Č˝•ËŔ™ŇɢÚŃŤÝÔŻÚĐŞĐƟŔľŽşŽ‡š­†śŞƒť°‰Ćş’Čź”Č˝•Č˝•ż´¸Ź†şŽ‡Ŕ´Ä¸Ŕľť°ˆˇŤ„ł¨ąĽŻŁ~ŞŸzŚ›w¤™v’p–‹j’ˆh…eŠb‚y\~tX{rVnfMb[E`YC^WBZS>RK8ID2@<,73%3/#3/"50#51$40#0, *'%#" " # $"&$*($540@?;FEAKJGQPLWVR]\Yba_gfckkhonlrqoutrwwuyxw||zƒƒ‚šš™ŻŽ­˛˛ąŹŹŤĽĽ¤žž™™˜–•””“’“’’“’’““’“’’“’’““’““’”“’”“’”“’””“””“••”——–››šŸŸžĄ Ÿ  ŸŁŁĄ§ŚĽŁŁĄĄĄŸŚĽ¤ŚĽ¤–•“…„‚ƒ‚‚|zyurqlpninlgmlgkicb_V]ZO[WKWSETPAQL<NI8OI7PJ8QJ8RK9TM:VO;WP<ZS?]VAaZDf^FkcJsiOypU‚x\ˆ~`‹bŒbŽƒd†e’ˆg’pŞŸz˛§şŽ‡Ŕ´źąŠˇŹ…şŽˆĂˇĚŔ™ŃƟÎÜɽ•Č˝•Ęż—ĚÁ™Ëż—Ëż—ΚÍÁ™Ęż—Ęž—ÍšÎĝ˿˜Éž–Ëż—Ćş’żłŒť°ˆž˛ŠÂśŽÄ¸żł‹¸Ź…¸Ź…´¨ƒ˛§‚ť°‰Ä¸Ćş’Ćş’ÂśŽşŽ‡ˇŤ„š­…ťŻˆşŽ‡´¨‚¨yŤ {şŽ‡Ŕ´Œž˛‹¸Ź…˝ąŠĆş’Ęż—Çź”áĆş’Čź”Čź”ĚŔ˜ÍÁ™ĚÁ™Ńǟ×ͧŮĐŤÜÓŻŮĐŤÉ˝–ž˛‹ťŻˆşŽ‡żłŒÇź”ÍÁ™ĐŝÎÜź˛ŽŚœz“Ši’pąĽĂ¸‘ÍÁšÎšËŔ˜ËŔ˜ÍšĚŔ˜Ëż—ĚÁ™ĚŔ™Ëż—Ëż—ËŔ˜Ëż˜Čź”Ćş’ᐚŽ‡ŞŸz›n“ˆhˆ~`rjO^WAKE4:6'40&:7/FC<~yľľ˛ăăâřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůéčćÎËŔĆÁŤŮŐ˝ćăÉčăÉčâÇęăÇëäČęăÇěĺĘëĺČäŰšÜŇ­ŐËĽĐƟĚÁ™É˝•Ęż—ĎÝÔĘŁ×ͧŘΨ×ͧŇÇ Ęż—áÁśŽĂˇÁľŽÄ¸Ęż—ΚĎĜÎÜËŔ˜Éž–ÎÛĐƞŇČ ŇČ ÎÜʾ—ĚÁ™ĐŞŃǟÎÜĚŔ˜ËŔ˜ĚŔ˜ĚÁ™ĎÛŇČ ÔĘŁŇǟĎĜÎÜ˿˜Çť”Ĺš’Čź•É˝–ÁľŽšŽˆ´Ş„šŽ‡š­†śŞ„ťŻˆÁľŽĂˇżłŒž˛‹ÂśŽž˛‹şŽ‡ž˛Šź°‰ˇŤ…´¨ƒ´¨ƒśŤ…šŽ‡˝ąŠŔľŽĆş“Ëż—Ëż—Ćş“ÂśĆş’Ćş’Ĺš‘Çť“Ëż—ÎÜĐşŇČĄÓÉŁĐŞɾ–Ŕ´Œź°‰ťŻˆşŽ†˝ą‰ÂśÄ¸Ä¸Âˇ˝˛Šš­†¸Ź…şŽ‡şŻˆśŹ†ŻĽ€¨yĽ™vŚšv§›wž“q•Šj†g‹b…|]wZvY|sWrjPkcKg_H\U@PJ8KE4HB1D>.;7)51$0,!+((%'$&#%"!  $"&% *($/-)651A?;EC?HGDNLIUSQ]\Zwvt™˜—˘Ą ŤŤŠ´´ł˝˝źĹĹÄËËĘŇŇŃ××ÖŰŰÚßßŢâââäääććĺééčöööúúúýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţüüüúúúúúúúúúřřřőőőöööôôôíííćććäääââáÚÚŘĚĚËĚĚËĆĹÄľľł¤¤ ŸžšŸžšœ–”“Œˆ…}rnc_[NZVHXTEXSCXRCXQAUO=UO<VP=WP<XR=\U@_WAc[Dh`HpgNwnS|sWwZ…{^ˆ~`Œ‚b”‰i’pŚšwŽŁ~ľŞ…ˇŹ†¸Ź…ťŻˆĂˇĘż—ËŔ˜Č˝•Ĺš‘Ćş’ĚÁ™ŃČĄÍÛʿ—ÍšĚŔ˜É˝•ËŔ˜ĐŞÔʢŃǟĐƞŃƟĚÁ™Çť”Ĺš’Ćş“Çť“øşŽ‡˛§¸Ź…¸Ź…ľŠƒ¸Ź†ž˛‹ÂśÂśŽżłŒ˝ą‰ź°‰˝ą‰żł‹ž˛‹şŻ‡´¨ƒł§‚ˇŤ…¸­ˆşŻ‰˝ąŠÂśÉ˝•ÍšĚŔ˜Č˝•Čź”Ćş’Ĺš‘É˝•ËŔ˜ÍÁ™ŃǟŐĘŁŇȢÔʤÔÉŁĆş“Ŕ´ŒŔľÂˇÄ¸Ĺš‘Ëż—ĚÁ™Äš“Ź˘—Žnš‘p­Ł¡ĚŔ™ÎšËŔ˜É˝•ĚÁšŃČĄÍÛʿ—Íšɾ–Ćş’Ęž–ĎĜŃƟÎÛĚŔ˜Ęž–¡śŤ„Şžz •r“‰i{rWc[ENH6?:+40%40':7/fe_”“ĚĚËňňňüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷öŕŢŰÇÄ´ĘÄŤáÝĹęçĎčâÇĺßÁčáÄěćËîčĎěćĘčáÂâÚśÝÔŻ×ΨÎĜʾ–Ęž–ĚŔ˜ĐƞÔʤŇČĄĎĝÎÜĚŔ˜Çź”ÂśŽĹš‘Č˝•Ä¸ĂˇÇť“Ëż—ĚÁ™ËŔ˜ĚÁ™ÍšĚÁ™ĚÁ™ÍšÎÛɾ–áÉž–ĐƞŇÇ ÎÛɽ•Čź”ĚŔ˜ĎĜŃƞÓČĄŐĘŁÓɢÓɢÔĘŁŇČ ĎĝĚÁšËŔ˜Çź”ť°‰łŠ„˛¨ƒ˝˛‹˝ąŠ¸Ź…š­†˝ą‰ź°‰š­†š­†Ŕ´ÂśŽÁľÁľÁľŔ´˝ąŠľŞƒŻ¤´¨‚ž˛‹Çź”Éž–É˝•Čź”Čź”Çť“Č˝•Č˝•Çť“Čź”ĚŔ˜ĐŞĚÁšČ˝•Čź”Ćş’᏿ł‹˝ąŠ˝ą‰ź°ˆź°‰ź°‰˝ą‰ź°ˆš­†ˇŤ„ľŠ‚Ž˘}ŞŸz¨žyŚzŸ•t–Œk”‰i–Œk˜lŒ‚d€vZypUvnStlRmfMjbJe]F\T@TN:PJ7IC2=9+61$2-"/+)&&## ! 
+  )('765BA@IHGQPNWVT_^\jjg||z””’™˜—›š™Ÿžž§ŚĽł˛˛ËËËÚÚÚŕŕßĺĺäéééíííđđđňňňöööřřřűűűüüüţţýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ˙˙˙˙˙˙ţţţýýýţţţţţţţţţüüüúúúüüüúúúóóóííííííďďîďîîééčÝÝŰĆĹÂŹŤ§–•Ž†„|~|sxtjmi]c^Qb\Nb\M^XF[UB\VB\U@]WA`YCd\FiaIofMvmR{rV€vZ…{^Š€b†g˜m –t§{Ž¤´¨‚śŤ„ťŻ‰ŔľÂśŽŔ´ŒżłŒĂˇĚÁ™ŇÉŁÎÝʿ—ĚÁ™ĚŔ˜Ëż—ÎÛŇÇ ÔĘŁÖĚĽ×ĚŚŐˤÓÉĄĐŞÍšĚŔ™Č˝•żłŒľŠƒŻ¤¸Ź†ž˛‹˝ąŠşŽ‡şŽ‡˝ą‰şŽ‡ˇŤ…ź°ˆž˛Šżł‹ÁľÁľżłŒŔ´ťŻˆ´Š‚˛¨ƒ¸­ˆĂ¸Çť“É˝–ÍÁ™ÎÛÍšʿ—Ćş’ĸÇť“Ëż—ÍšŃƞŃƟĚŔ˜ĚÁ™ĚÁ™Ĺš‘áĆş’Čź•Ćť“ĸÇź”Ĺş“ˇŤ…›‘p„e¤›y¸Ż‰Çź•ĚÁ™ĚŔ˜É˝•Čź”ÍÛÓʤĎĝʿ—ĚŔ˜Čź”Ćş’ÍšŇÇ ÓɢŇÇ ĐŝÎÛËŔ˜Ä¸ˇŤ…ŞŸ{šnx[iaJSM:C>/62&1-$52)TQJyxtˇśľçççúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţóóňŮŘŇĂžŤĎČŤâÜżçŕÂéâĹěĺËëĺĘëäÉëäČčŕÁă۸ÝŐąÚŃŤÖĚŚŃƞ͚͚˿—Ęż—ËŔ˜Ęż—Ęž–Ęž–É˝•Çť“ÂśŽÂśŽĂˇÁľŔ´ŒĂˇÇť“Ëż—ÍÁ™ÎÛĚÁ™Ćş’ĸĆş’Ëż˜Çť”Ŕ´Çź”ĎĝĐŝĚŔ™Çť“Ĺš‘ĚŔ˜ÓČĄÔʢŐËŁ×ÍŚŰŃŤÚŃŤ×ÍŚÖͧÓÉŁËŔ˜Ä¸‘ž˛‹šŽ†ˇŤ…śŤ…şŽ‡żł‹ÁľŽĂˇ˝˛‹´¨‚­Ą}ŹĄ|ľŠƒž˛‹Ĺš‘Ĺš‘ž˛‹ˇŤ„ľŠ‚śŞ„š­†ź°‰ż´ŒĂˇĆş’Čź”Čź”Čź”Éž–ĚŔ˜ËŔ˜É˝•Čź”É˝•Éž–Ĺş’ÂśŽÂśŽÄ¸Ăˇź°‰ˇŤ„´¨‚ł§°¤ŹĄ}Ż¤~˛Ś€°¤°¤~Ź {ž”q“ˆhŒ‚c†fŒ‚cƒz]x[vZzqVpgNd]E[S?XQ=WP<SL9MF4FA0@;,94&3/#.+ '$!    (('--,<;:YYXyyx••”ŚŚŚ­­Źąąąśśľžž˝ËËĘŢŢÝęęęěěěěěěěěěîîîőőőůůůűűűüüüýýýţţţţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüúůůôóóćĺĺÓÓŇżžť¨Ś˘›––”‰‡~|znwthnj]faPd_Md^Ka[Fb[Ee]FiaHnfLsjPxoTvY…|_‹c’ˆh›‘oĽšvŤ {Ź˘}Ź˘~°¤š­†şŽ‡ˇŤ„ź°‰Ĺş’Ęż˜Ęž—Čź”Éž–ËŔ˜ÎÛŇÇ ŇČĄÓÉĄÚŃŞÜŇ­ŘΧÚĐŞ×ͧÍÁ™Çť“ÂśŽ¸Ź†ˇŤ…š­‡şŽ‡˝ą‰Ŕ´Äš‘Âśš­†°¤Ź |ł§şŽ‡ÁľÄ¸Ăˇżł‹š­†śŞƒ¸Ź…˝ąŠÂˇÇť“Čź”Čź”Ęż—ĚÁ™ÎÛΚʿ—Čź”Ęż—ĚŔ˜Ęž—Ęż—Ęż—É˝•É˝•É˝•Çť“ĸÂśŽżłŒÁľÄ¸ÁľşŽ‡ŻŁ}™m‘‡gŹ˘}šŽ‡żłŒĆş’Č˝•Čź”Čź”ËŔ˜ĎŝĚÁ™É˝•Éž–Čź”É˝•ŃƟŇČĄŇČ ÖĚŚÔËĽŃƞŃƟËŔ˜şŽˆŠy—Œk‚y\skQb[EKE3:5'2.#1-#<:3XVP™˜•ÖŐÔőőőüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýîîěÔŇĘĂžŠÓÍŽäÝžĺŢźčáĂîčĎíçÍęăĹçßŔĺÜšáŘ´ŰÓŽŘĎŠÖĚĽÓÉĄŃƟÎÜ˿—Çť“Ĺš‘ĸĆş’Ęž–Éž–Çť“Ĺš‘ÂśŽŔ´Œž˛Šżł‹ĂˇĆş’É˝•ËŔ˜ĚŔ˜Ęż—Ĺš‘ÂśŽÂśŽĆş’Ćş“Äš‘Č˝•ÎÛĐŞĚÁšÇť“Ćş’ĚŔ˜ŃǟŃƟÔɢŘĎŠÜÓŽŰŇ­ÖÍŚŃČĄÎÝ˿˜Ćť“¡ż´Œ˝ąŠťŻˆš­†ž˛‹Ä¸ž˛‹´¨‚Ź |§œxŠžzľŠƒž˛‹ÂśŽżł‹š­†ľŠ‚´¨¸Ź…ž˛‹Ŕ´ŒŔ´ŒÁľĆş’Ëż—ËŔ˜ËŔ˜ĚŔ˜ÎšĚÁ™É˝•Ćş’áÁľž˛‹˝ąŠŔ´ŒŔ´żł‹ˇŤ„°¤Ź {ŤŸz¨yĽšw¤™uŁ—tŸ“q’pšmŽ„d‚y\zqUxpTrjPjbJh`Ie^G`XCWP<MG5C>/A<-?:+;6(51$/+ +'$!    ,++433===VUUyxxŽŔŔŔçççđđđóóóôôôôôôőőőöööúúúüüüýýýţţţţţţ˙˙˙ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýűűűďîîććĺÝÜŰČČšśąŽ­¨œš“ƒ‰†{~{noiYjdRg`Lf^Ig_HjbInfMtkQ{rVƒy[Šb’ˆh˜lœ’o •t˘˜uŚœwŻ¤´¨‚ľŠ‚š­†ÁľŽÉ˝•Éž–Çť“Ćş’Čź”ĚÁ™ĎĜŃƟÔɢÚŃŹŰŇ­×ͧÖĚŚÓɢÍÁšËż—Çź•ŔľŽżł‹żł‹˝ą‰˝ąŠŔ´Ăˇź°‰­Ą}Ś›w¨y˛Ś€˝ąŠÄš‘ÂśŽ˝ąŠš­†ľŠƒˇŤ„ź°ˆÁľĹš‘Çť“Čź”Č˝•Ęż—ËŔ˜ÍšĐŞÎÛɾ–Ęż—Éž–Ćş’ĸĆş’Ęž–Éž–Čź”Čź”ĸŔ´Œ˝ąŠž˛ŠżłŒź°ˆ°ĽĄ–s›n •sˇŹ†żłŒŔ´ĂˇĆş’Čź”Čź”ËŔ˜ĐŝÎÛ˿—Č˝•Čź”Ęž–ÎÛŃƟÔɢÚĐŤŮĐŞÓɢŃƞɾ–ťŻˆŽŁ} •rŠ€a{rWkcKRK8?:*41$.+!0-%@?9zzvž˝ťěěěůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűéčćĘǟĞĽŮŇłćßÁćÝ˝čŕÁíçÍíçĚéáĂäÜšăÚśáŘ´ÝÔŻŮĐŞ×ÍŚŐˤŃǟÍšʿ—Çť“áĂˇÇť“ÍšĚŔ™Čź”Ĺš‘áŔ´˝ą‰żłŒĹš‘Ćş’Ćş“Ęž–Ëż—Ęż—Čź•Ä¸ÁľÂśŽĆş’Éž–É˝•ËŔ˜ĐŞĚÁ™Çť“Čź”ĚŔ˜ÎÛĚÁ™ĐƟ×ͨŘĐŤ×ΨÔÉŁËŔ˜Çť”ĚŔ˜ÍšĚŔ˜Č˝•Ä¸Ŕ´ŒťŻ‡˝ąŠŔ´ľŠ„Ź |ŞŸ{ŠžzŹĄ}¸Ź†ź°‰ťŻˆśŞƒśŞƒ¸Ź…ˇŤ„š­†˝ą‰Ŕ´ŒÁľÁľÇť“ÍšĎĜĎĜÎÛÎÛʿ—Ćş’Ꮮ˛‹ťŻ‡şŽ†ź°ˆž˛‹ź°‰ˇŤ„ŻŁ~¨œxŁ˜uĄ–s •sž“q—Œk…eŠa†|^ƒy\|sWskQjbJbZDWQ=PJ7MH6KE4GA1A;,94'1-!.*+(&#!"! ,,,665>>>QQQƒƒƒ•••ŸŸŸÁÁÁâââăăăččçüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţůůůěěěččçáŕßÓŇĎÄĂżŻ­Ś˜•ŒŒˆ}|wism]leRibLjcLmeMriOxoT‚xZˆ~`Œ‚c…e•‹jšoŸ•rĽšwŹ {˛§śŞ„˝˛‹Çť“É˝•Ćş’ÂśŽÄ¸É˝•ËŔ˜ĐĝÔĘŁŘĎŠŘĎŠÔʤĎĜËŔ™ÍšĐŞŃǟÍšǻ“ÂśŽżłŒž˛‹˝˛ŠťŻˆ˛§§›xŚ›wŤ {ł¨‚˝˛‹Ă¸‘ť°‰śŞ„ľŠƒˇŤ„şŽ‡˝ą‰Ŕ´ŒĂˇĆş’Çť“Éž–ÎÛÍšÍÁšŃǟĎĜȽ•Čź”Ćş’ÂśŽÂśŽĹş’ÍšÍÁšÉ˝–Çť“áŔ´ŒżłŒ˝ą‰¸Ź…˛Ś€Ľ™v—ŒkĄ–t´ŠƒÄ¸‘Çť“Ĺš‘ÂśĂˇĆş’Çť“Ęż—ĎĝĎŝÍÁ™Čź”Çť“Čź”Ęż—ÎÜÔĘŁŰŃŤÚŃŤÓɢΛŹ‘ťŻˆśŞ„­˘|”Šix[ofMWP<C>.51%,)*'54-^]XĽ¤˘ĺĺĺřřřýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúććăĆøÇŔŚŢ׸çáÄĺÝ˝ćŢžëäÇëĺÉéáÁă۸âŮľâŮ´ß׳ÜÔŻŘĎŠÓɢÍÁšÇź”Ęž–Ęż—Čź”Ëż˜ĎŞŇÇ ÎÛǻ“Ŕ´ÁľĂˇŔ´ŒÁľŽĹš‘ž˛Œż´Í›ŃǟĐŞÍšǻ“¡Ä¸Ĺš‘Äš‘áĆş“Ęż—Çť”ĸ‘Çť“ĚŔ˜ÎÛΚĎĝŇČĄÓÉĄŇÇĄĐŞʿ—Çť“Ęž–ÍÁ™ĎÛÍÁ™É˝–ĸź°‰¸Ź…¸Ź…ˇŤ…¸­†şŻˆśŞ…˛§‚ą§‚ŻĽ€ŻŁ~´¨‚ťŻˆżł‹¸Ź…´¨ˇŤ„żłŒĂˇÂśŽĹş’ËŔ˜ŇÇ ŃǟĎÛËŔ˜Ĺš’żłŒżł‹˝ą‰şŽ†ťŻ‡˝ąŠž˛‹š­†°¤~Ł˜u›n•‹i‘‡g…fŒ‚c}uXvmS{rVtkQlcKf_G[T?OI6IC1A<,:6(51%1-"-)*&%" $$#442A@@ONNSSSTTT\[[xxx™™™ŁŁŁĹĹĹěěěóóóôôôűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţűűűóóňííëŰÚ×ĹÄż´łŹĄž•Œˆ{}mxranhSogPriQwnS|sW‚x[ˆ~_…f“‰h–‹jœ‘oŁ˜uŠžzŻŁ~ľŠƒşŽˆÂśŽÄ¸ž˛ŠÁľŽÉ˝•ĎĝŃǟŇČ ŐĚĽŐˤŃƟĚŔ™Č˝•Ęż—ÎÛĐƞÎĜʿ—Ĺš‘ÂśŽź°ˆˇŤ„ˇŤ„šŽ‡ť°ŠšŽˆ´¨ƒ­˘}ŽŁąŚ‚°Ś´ŠƒşŽ‡˝ą‰ťŻ‡¸Ź†żłŒÄ¸Ä¸Ĺš‘Ęž—ŃƟÓČĄŇǟŃƟËŔ˜Ĺš‘Ćş’Ĺš‘ÂśŽĂˇÉž—ÓɢŇÇ ËŔ™Ĺš‘żł‹ź°‰ž˛‹ťŻˆ°¤~šmŽ„e›‘płŠ„Čž—Ďĝʿ˜Ä¸ÁľÁľÂśŽĂˇÂˇĂ¸‘Éž–ËŔ˜Ĺş’Ĺš‘Č˝•ĚŔ˜ÍÁšÎÛÓČĄŇÇ Íšʾ–ᐝŻˆ¸Ź…ąĽšŽm‡}_tlR[T?D?062%,('$.,%GF@‘ŽŢŢŢ÷÷÷ýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řřřßŢŰÄŔ˛ÍĆŠâŰźčáÄčáĂçŕŔčŕŔčŕŔćŢ˝ăÚˇâŮľâŮľâŮ´ŢŐ°×ΨĎŝȽ•Ćş’É˝•ĚŔ˜ĚÁ™ŃƟŐËŁÓČĄĚÁ™Ä¸ž˛Š˝ąŠżłŒŔ´ŒÂśŽĂˇź°‰˝˛‹ĘŔ˜ŇČ ÔĘŁĐŝĚÁ™É˝–Čź•Ä¸żł‹ÁľÂśŽŔ´ŒżłŒÂśŽÇť“ÍšĐƞĎŝĐŞĐŞĚÁ™Éž–É˝•Ćť“Ćş’Čź”É˝•É˝–Çť”Çť”Ćş’ÁľťŻˆ¸Ź„¸Ź…˝ą‰Ŕ´Œž˛‹š­†ą§‚­Ł~­˘}ł§ťŻ‡żłŒź°‰¸Ź…¸Ź…˝ąŠÂśĂˇĆş’Ęž—ŃƟĐŞĚŔ˜Çť“Ŕ´ŒşŽ‡š­†¸Ź…śŞ„¸Ź…¸­†ľŠƒŹĄ|Ą–s”‰iˆ~`uY}tXypUpgNc[D]V@`YCYS>QK8KE4A<,51%/, )&$!  ! +**:::IIIZYYmllttu†††ŤŤŤÉÉÉĎĎĎŰŰŰđđđüüüţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýřřřđđďŕŕŢĚËČžźľŤ¨Ÿ–’††rztawoYxpU|sVxZ‡~_Œ‚b…e–Œk›nŸ”q¤˜uޞyŽ˘}ľŠƒşŻˆź°‰ÂśŽÉž–ĐƞÓČĄŇǟŃƟÎÛʾ–Ćť“Ćş’Čź”Ęż—Ëż—Çź”Ćş’Ĺš‘Ĺš‘ż´Œ¸Ź…ˇŤ„ź°‰ÁśŽÁśŽź°‰ąŚ­˘}ŹĄ|­˘łŠƒť°‰żł‹ž˛ŠťŻˆž˛‹ÁľÁľÄ¸Ëż—ÓɢÖĚĽŐˤŃƞʿ—Ĺš‘Ćş’Ćş’Ĺš‘É˝–ĎŝÔʤŇÉĄÍšĸź°‰şŽ†ťŻˆ¸Ź…ŞŸz‹€b‚y\Ą—v˝˛ĎŞÔĘŁĐŞɾ–Ćť“øÁľŔ´Œž˛‹˝ąŠÁśŽĹš’ĸÇť“ËŔ˜ÎÛÎÛÍ›ÍÁšÉž–Ćş’ᐿł‹š­‡śŞ„ŻŁ~™Žm‰axpT`YCJD4:5'-)$!'$;95ƒ‚ÎÎÎňňňüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷ööÖÔĐŔťŠĐÉŞŕŮşćŢÁéăÇéâÄćŢ˝äÜşăÚˇáŘ´ŕײßÖąßÖąŰŃŤÔĘŁÎÛʾ–Č˝•É˝•Ëż—ÍšŃƟÓČĄÎÛƻ“ż´ŒźąŠ¸Ź†ľŠƒź°‰ÁľÂśŽŔ´ŒŔ´Ĺş’ÎÛÓÉĄĐŝĐŝĎŝ˿˜Ăˇž˛‹ÁľŽżłŒ¸Ź…ťŻˆÂśŽČ˝•ÎÜŇČĄĐŝĐƞĐƞȽ–áÂśŽÁľÂśŽÄ¸ĂˇÁľ˝ąŠÁľŽĆş’Ĺš‘ÂśŽ˝ąŠ¸Ź…ˇŤ„ťŻˆ˝ąŠźą‰¸­†śŤ„ľŠ‚˛Ś€ľŠ‚şŽ†žłŒŔ´ž˛‹˝ąŠž˛‹Ä¸Ĺš‘Çť“ËŔ˜Ęż—Çť“ᏽą‰ˇŤ„ł§°¤~­Ą|Ž˘|Ź {¤™v™ŽmŒ‚cƒz\tlQh`Hh`IbZDVO<PJ7KE4E@/@<,;6(40$-*&#    %$$666GFFUTTmml‰‰Š–––ąąąËËËŐŐŐâââóóóüüüţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúůňňńččćŕßÜĎÍɡľ­ œ‘‡x€xd|t[}tY€wZ†}^ƒc’‡g•Šj—Œkœ‘o˘—t§œxŤ {°Ľ€ťŻˆĂˇÉ˝•ÍšŃƟŇČ Í›ǻ“áÁľÂśŽÄ¸Ćť“Ćş’żłŒž˛‹ÂśÉ˝•Ĺş’ž˛ŠşŽ‡¸Ź…¸Ź…ź°‰żł‹˝ą‰š­†ľŠƒ˛Ś€´¨‚š­†ź°‰Ŕ´ŒÂśŽżł‹˝ąŠŔ´ŒĂˇČź”ĐƟÔɢÓɢŃƞĚÁ™É˝•É˝•Č˝•Čź”Í›ŇÇ ŃƞĐŝËŔ˜ÂśŽşŽ‡ˇŤ„¸Ź…śŞ„ŤŸz‹bƒz^¤›yź˛ŒËż˜ŇČĄÓÉĄŃƟÎÛȽ•ÂˇŔ´Œżł‹˝ąŠź°‰żł‹Ĺš’Ëż˜ÎÛĎĜĐƞŃǟĚŔ™Ĺš‘Áľź°‰¸Ź†śŞƒ˛§€Şžy•‹jˆ~`zrVg`HRL8>:*/+# " 540rqoşš¸éééúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙öööŐÔĐŔťŞŃĘŤßظáŮšäÝ˝çŕÂčâĹčáĂäÜşÜÓŽÖĚŚÔÉŁŐËĽÓČĄĎĝŃÇ ĐƟÍšĚÁ™Ęż—Čź”Ëż—ĚŔ˜Ćť“˝˛Œ´Ş…łŠ„Ž¤€Ž˘~ťŻ‰Ĺš‘Ĺš‘Ĺš‘Ćş’Éž–ÎÛĐŝÍÁ™ĚÁ™ÍšĚÁ™Čź•ÂśŔ´ŒťŻˆ¸Ź…ž˛ŠĆş’ËŔ˜ĎĜĐŞÍÁ™ĚÁ™ĚÁ™Çź”áŔ´Œ˝ąŠťŻˆşŽ‡˝ąŠž˛ŠşŽ‡Ŕ´ŒĹš‘ÁľŽżłŒżł‹ź°ˆź°‰Ŕ´Œž˛Šź°ˆź°‰şŽ‡ˇŤ„˛Ś€ąĽł¨ľŤ…şŻ‰żłŒÁľÁľž˛‹ź°‰ťŻˆŔ´Ŕ´żłŒżł‹ťŻˆł§­Ą|Ľ™vž“p›‘n™m’‡g‚y\rjPg_H^VAUN:QK7JD3C>/>9+94'3/".* *'#! 
+
+**+A@@NNN^^^€•••ŚŚŚÎÎÎáááčččôôôüüüţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüűůůřďďíááŢŃĐĚş¸° ›Šz„}h~u[€w[†|_‹b…e“‰h™Žmœ‘oŸ•r§›wŻŁ~¸Ź†ÁśŽÉž–Ëż—ΚĐŝËŔ˜Ĺš‘Ŕ´˝ąŠťŻˆťŻ‡żł‹Áľž˛‹ž˛‹ÁśŽÇź”¡šŽ‡şŽ‡˝ąŠž˛‹żłŒŔ´Œżł‹ź°ˆ¸Ź…śŞƒśŞ„¸Ź…ˇŤ„š­†ž˛ŠŔ´ÁľŔ´ŒżłŒŔ´ŒÄ¸‘Č˝–ÍšĎÜÎÛÍÁ™ĚÁ™Ëż—É˝•ËŔ˜ÎÛĎÛÍšǼ”ťŻˆ˛ŚŻŁ~´¨‚ˇŤ„­˘}Œ‚d†|_Ş |ŔľŽËŔ˜Í›Î›ÎÛÎÛËŔ˜Ĺš‘ÂśŽ˝ą‰¸Ź…şŽ‡żłŒÇť“ΛŃƟÍšÎÛĎĜȽ•ÂśŽżł‹¸Ź…˛Ś€­Ą|ŞŸzĽ™v–Œk‹b€vZpgNXQ=A;,0,!" #"]\ZŻŽ­ćććůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţôôôŇĐËĂžŠÔÍŽßלŕءâÚşçßÁëĺËěćĘäÝ˝×ͨĎĝĚÁ™ÎÛĚÁ™Ëż˜ĐĆ ŃÇĄÍÛËŔ˜Çź”ÂśŽÁľźąŠŻ¤Ł™wž•tĽœzŞĄ}°Ľ€żłŒČź”Čź”Čź”Éž–ĚŔ˜ÍšËŔ˜Çť“Çť“É˝•ËŔ˜Ëż—Ćť“Ŕ´ŒťŻ‡ź°ˆÂśŽČź”Ęż—͚͚ʾ–Çť“Çť“É˝•Ćť“Ŕ´˝ą‰š­†ˇŤ„şŽ‡˝ą‰ź°‰ÁľÄ¸˝ąŠşŽ†ťŻˆž˛ŠÂśŽĹš‘ÂśŽ˝ąŠ˝ą‰şŽ†ľŠ‚ŻŁ~Ž˘}°¤ą§‚ˇ­‡ŔľÄ¸ÁľˇŹ…˛§˛ŚľŠ‚´¨‚ł¨‚śŞ„˛Ś€Šy •r–‹jŒ‚cˆ~_ƒz\{rViaIVP;JE4D>/@;+83&2-!/+ )&&"!
+
+
+,,.BBBQQR___wwxžžž˝źźŃŃŃëëëđđđőőőüüüţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýřřřóóóççĺŮŮÔÇĹżŹ¨”~‡€jx^„z]ˆ`Ž„e“‰h—Œj™ŽmĄ–sŞŸ{ąŚ€şŽˆÂˇĆş“Č˝•Ęż—Ęž—Çť“Ꮮ˛Šš­†ˇŤ„şŽ‡˝ą‰ž˛ŠŔ´ŒĂˇÄ¸˝ąŠľŠƒşŽ‡ÂśŽĆş’Ĺš‘ÂśŽŔ´ŒťŻ‡śŞƒľŠƒśŞƒľŠ‚´¨śŞ„˝ąŠĂˇĹš‘ž˛‹ťŻ‡š­†ťŻˆŔ´Ćş’Ëż—ÍšÍÁ™ÍÁ™Ëż—É˝•Éž–Ëż—ĚŔ˜Č˝•ÁľŽľŠƒŽ˘}­Ą|˛Ś€˛§¨yŠ€b‡~`°¤€Ä¸‘Ęż—Çť”Çť“É˝•ËŔ˜Ëż—Çź”Ĺš‘ž˛‹š­†ž˛ŠÄ¸Ćť“ËŔ™Ďĝ˿—Čź•Čź•Ćş“ĸÁľš­†ąĽ€­˘}Šž{¤™v™Žm…e…{]rjPYR=A<,0-"" <;9¤¤Łăăăůůůýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţďďîĆÝĿ§ŐÎŽßלăŰźćŢŔéáÄęăĹęăĆâÚšÔĘŁĎĜΚÎÛ˿—Čź”Éž–Éž–Çť“øżł‹ťŻˆ´Šƒ§œx‘ˆh†}`ˆbŸ•sąŚź°‰Ä¸Čź”Čź”Čź”Čź”Č˝•É˝•Čź”ĸĹš‘Çť“Č˝•Čź”Çť“᏿ł‹Ŕ´ŒÄ¸Ćş’Ĺš‘É˝•ĚÁ™Éž–Ĺš‘áÉž–É˝•ÂˇżłŒżł‹˝ąŠź°ˆťŻˆ˝ą‰ÂśŽÄ¸˝ąŠˇŤ„śŞƒťŻˆĂˇÇť“Çť“øź°‰śŞ„°¤ŠžzŞŸząĽ¸­†ż´ĂˇÂśŽť°‰°Ś­Ł~ŽŁ}ŻŁ}ŞŸzŚšw¤™v ”s—ŒlŽ„e…{^}uXvmSmeMaZDQK8@;,61$/+*&$!   ++,BBC[[[ƒƒ„ŚŚ§ľľľÂÂÂßßßúúúűűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýřř÷ńńđäăáÍËĂŤ§š‘‹w„|cƒz]ˆ~`Œ‚c‘‡g•‹jœ’pŁ˜u¨xŻŁ}ˇŤ…ŔľŽĂˇÄ¸Ęż—ËŔ˜Çź”᏿łŒž˛Šź°ˆşŽ‡şŽ‡żł‹Ä¸ÂśŽťŻ‡ľŠƒşŽ‡ÂśŽÇť“Çź”Ćş’ÁśŽşŽ‡ł§ąĽąĽ˛Ś€ľŠ‚ź°ˆĂˇĆş’Âśź°ˆš­…şŽ†˝ąŠŔ´ŒÂśŽĆş’Čź”É˝•É˝•Éž–Ęž–ĚŔ˜ĚÁ™É˝•ÂˇşŻˆ˛Ś€°¤~°¤~­Ą|¤™u–‹jw[ˆ~a˛§Ä¸Çť“ĸĹš‘Čź”Č˝•Čź”Çť“Çť“ĸÁľĹş’Č˝•Ä¸Ćş“Ęž–Čź”¡ż´ŒÇť“Ęž–Ĺş’ž˛Šš­†š­†˛¨ƒ§ž{šn’ˆg‡}_ogMUN:A<,1-"! /--••”ââářřřýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîîíĂŔˇÄż§ÔÍŽÜŐľßظĺÝżçßÁĺÝ˝äÜťÜÔąŇÇ ÍšĚŔ˜Ëż—Ĺş’ÁľŽÂśÂśŽżł‹şŽ‡°¤Ł˜ušn•Œk•Œl–lœ’q°Ľ€˝ą‹ĂˇÇť“Čź”Č˝•Ęż—Éž–Ćş’Ćş’Çť“Ĺš‘Ćş’Çť“Ĺš‘Ĺš‘Çť“Ćş’ĸÄ¸Ä¸Ä¸Ĺš‘Čź”Ęż—Čź”áŔ´ŒÉ˝–ËŔ˜Ĺš‘ÂśŽŔ´ŒŔ´Œž˛‹ź°ˆš­†˝ąŠÂśÁľŽź°ˆˇŤ„ź°ˆĂˇÇť“Ęž–É˝–ÁśŽşŽ‡˛§€¨yŠžząĽ€ťŻ‡ž˛‹ź°‰ťŻˆśŞ„Ť |Šžz¨œxŁ˜u›‘o”Šj†gŠ€bƒy\}tYvmSldL_XBRL9GA1<7)0,!'#      &&&778VVWsst––—śśˇÝÝÝôôôőőőűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţűúúďîíŮŘÓžź˛œ—‡†g‚y]…|^Š€b‘‡g–Œk›‘nŸ•q§œxąĽ€şŽˆž˛‹ÂśŽÉž–ÎÛËŔ˜Çź”ĸÄ¸Ŕ´ŒťŻˆśŞƒťŻˆÂśŽÁľ˝ą‰şŽ‡şŽ‡Ŕ´ŒĆť“Ęž–Ëż—Čź”ŔľˇŤ„­˘}ŹĄ|ąĽľŠƒź°‰ÂśŽÁľŽ˝ąŠš­†¸Ź…şŽ‡ž˛ŠŔ´ŒŔ´ŒŔ´ŒÁľŽÄ¸Ćş’ËŔ™ĐşÎĜ˿—Čź”ĸ‘˝ąŠŻŁ~¤™vœ‘o“ˆh†|_{rVtkQ†|_­˘}Ŕ´ŒĆş’Ĺš‘Čź”Ęž–Ćş’ĸÄ¸Ćş’Çť“Ĺš‘Ćş’Ĺš‘ÂśŽĆş’Ęż—Čź”Áľźą‰Ĺš’Ęž–Çť“ÁľŽź°‰ťŻˆˇŹ…­˘~œ‘o“ˆh‰`sjP[T?GA040$! +**Œääăřřřýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîîíĂŔˇÄż§ŐÎŻÚҲÜÔłâŰťĺÝžâŮśÝŐąÖͧÎÜËŔ˜Ëż—Čź”ÁľŽš­‡ľŞ„ąŚ­˘}ŞŸzĄ•s”ŠiŽ„e”‹k¨Ÿ|˛¨‚¸­‡Ă¸Çź”Çť“Ćş’Ćş’Čź”Ęż—Č˝•ĂˇÄ¸Čź”Č˝•Č˝•Çť“áÄ¸Çť“Č˝•Čź”Ćş’áÂśŽĆş’Čź”Čź”Çť”ÂśŽżł‹Čź•ÍÁ™É˝•Ĺş’áÁľŔ´ŒťŻˆľŠ‚şŽ‡ĂˇČź”Äš‘żł‹ŔľĹš‘Čź”Ęž–Éž–ĸ‘ž˛ŠśŞ„­˘}­Ą}ł§şŽ‡şŽ‡´¨‚˛Ś€ŹĄ|Ł˜uĄ–t •r˜lŽ„e„{]zqVphOjaJg_HaZDUO<GA184'/,!(%  
+  ---???oooŽŽŽłł´ÎÎÎâââňňňüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţüüüőőőęéçÔŃËąŽ˘˜“…}eƒz]‹c†f”Ši™m˘—tŹ {ľŠƒť°‰ŔľŽĘż—ŃƞĐŝÎÜĚŔ˜Čź”Ĺš‘żłŒ´Šƒ¸Ź†ÁľÄ¸Ă¸ÂśŽżłŒÁľÇť“Ęž–ËŔ˜Éž–Äš‘ź°‰ąĽ€ŽŁ~˛Ś€ˇŤ„ź°‰ž˛‹ťŻ‡ˇŤ„ˇŤ„ˇŤ…şŽ‡Ŕ´ŒÂśŽŔ´ŒťŻˆşŽ†ź°‰ĂˇÍ›ÓʤĎĝȼ”Ĺš‘ÂśşŻˆŚ›x˜ŽmŽ…eƒy\tkQkcKrjP‹cŹĄ|ž˛‹Ćş’É˝•Ëż—Ëż—Äš‘ÁľĂˇĆş’Čź”Ĺš‘áÁľÁľĆť“Ëż—Č˝•ÂśŽž˛ŠĂˇČ˝•Č˝•Ĺş’ŔľťŻˆš­…ąĽ’p“ˆhŠ€b{rVe^GOI784(" '''‚‚ŮŮŘôôóüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîîíĂŔˇÄż§ÖĐąßءáÚşĺŢżĺÝžŕŘľŰŃŤĐƟǻ”Ęż˜Ďĝȼ”ž˛‹°Ľšnƒd‹bŽ„d™ŽlŚšvŤ {˛§‚žłÁľŽÂśŽÉž–Ëż—Ćť“Ŕ´Ŕ´Ćş’Ĺš‘áÂśŽĹš‘Éž–ĚŔ˜Ęż—Çť“ÂśÄ¸Çź”Ëż—Č˝•ĂˇŔ´ŒÁľĆş’Çť“Čź”Čź”ĸÂśŽÉž–ÎÛΚ͚˿—Ćť“Ŕ´Œš­†ł§˝ąŠĘż˜ĐƞĎĝĚŔ™ËŔ˜Ęż—Č˝•Ĺš‘Áľź°‰š­†¸Ź…š­†š­†¸Ź…š­†¸Ź…ł§§›wšn”Ši•‹j–‹j…e†|_xoUaZDQJ8IC2E?.?;+73&-*%" ''&444IIHeeeˆˆˆ   ËËËáááńńńůůůýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüűúůňňđáŕŰĆÄťŚĄ‘Ž‡pˆc‰€a“‰i›‘oĽ›wł§‚ť°ŠÂˇĚÁšÔĘŁŐˤÚĐŠ×ͧĚÁ™Ęż—Ĺť”łŞ…¸ŽˆĆş’ÎÜĎĝÍš˿˜Éž–Čź”Ćş’ÂśŽž˛‹˝˛Šżł‹żłŒź°‰š­†źą‰żłŒž˛ŠˇŤ„ąŚ€˛Ś€´¨‚şŽ‡ÂˇĆş’ĸ‘ź°‰˛ŚŻ¤ź°ŠĘż—ÎÛËŔ˜Ăˇš­‡°Ľ€Ľšw•‹j—ŽnŸ–t—mƒy]wnTˆaŁ™vš­†Ŕ´Ĺš‘ËŔ˜ĚŔ˜Čź”áĂˇĆş’Çť“Ĺš‘ÂśŽŔ´ŒŔ´ŒŔ´ŒÄ¸Č˝•Çť“ĸŔ´Ĺš‘Ęž–ĚÁ™ÍÁ™Č˝•ŔľťŻˆ˛Ś€’p“‰hƒc„{]qiOYR>A<-*&
+%$#mmmĘĘĘňňńűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîîíĂŔśÄż§ÖϲŕŮťăÜ˝ćŢÁäÜźÝÓŻŐʤɞ—ž˛‹ÁľŽÄš“ť°‹Ź˘~™n†|^~uX…{]“‰hŚ›wľŠ‚ź°‰ÁľŽĆş’Čź”Čź”Ęż—Ęž–Ćť“Ŕ´ŒŔ´Ćş’Ćş’Ćş’Ęž—ËŔ˜ĚÁ™ÎšȽ•ÂśĂˇĆş’Çť“Ĺş’ÁśŽ˝ąŠź°‰˝ąŠŔ´ŒÂśĹš‘Çť“ĸÂśŽĹş’Ëż—ÎÜŃƟĎĝɽ•ÂśŽşŽ‡´¨˝ąŠĘž—ÎÜÎÛĚÁ™ĚŔ˜ĚŔ˜Ęż—Ĺš‘žł‹š­†śŞ„śŞƒşŽ‡ź°‰ťŻˆš­†´¨‚ŹĄ|ž“q‘‡fŒ‚bŠ€a‰`w[wnTh`IPJ7>9*4/"0, *&" (((766JJJeee›››ľľľÍÍÍÜÜÜęęęđđđöööüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýüüüúúůóóńŢÝŮÄÁˇž˜†ˆeŽ…f˜ŽnĽšw´Š„žłŒĹš’Í›ŇČĄŐËŁÜŇŹÜÓ­ŃÇ ÍšƼ”ˇ­‡şŻ‰Ĺš’ĎÜŃƟÎĜ˿—Éž–Ęž–Çť“ÁľŽşŽ‡¸Ź…şŽ†ž˛‹ž˛‹ž˛‹Ă¸Ăˇź°‰ł¨ƒŹ˘~Ť |°¤~śŞƒżł‹Ĺş’Çź”˝ąŠ°¤ŞŸ{śŞ…áĆş’ÁśľŞƒĄ—t™Žm–Œl˜n¤šxŽ¤Ľšw‚d}tX‘ˆhŻĽÂˇÉž–ËÁ™ĐŞĚŔ™Ĺš‘ÁľĂˇÇť“Ćş’ÂśŽž˛Šž˛‹ž˛ŠťŻ‡ž˛‹ĂˇÄ¸ÂśŽÁľĂˇÇť“ËŔ˜ÎšĚŔ˜Äš‘ž˛Š´¨‚˘–t–‹jŽ„d‡}_umR\U@B=.*& #""gggÉÉÉňňňűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîíěÂŔśĹż§ÔÎąÜÖšßŘšâÚźáءŮĎŠŃŞÁľŻ¤~ŹĄ|ŹĄ}¤šx–Œl‡~`€wZ…{^“‰h§›xˇŤ…ž˛ŠÂśŽĹš‘É˝•Éž–É˝–Éž–Çź”Ĺš‘ÁľŽĂˇČź”É˝•ËŔ˜ŃƟЪΚ͚ƻ“ÁľŽĆş“Čź”Ĺš‘żłŒťŻ‡š­†ˇŹ…ˇŹ…ťŻ‡˝ąŠŔ´ŒĂˇÄ¸ÂśŽÂśŽÇť“ÍšŃÇ ŃǟĚŔ˜Ćť“Ŕľš­‡żłŒÇź”Çź”Çź”Čź•É˝•Ëż—ĚÁ™Ĺş’˝ąŠ¸Ź…´¨‚ł§śŞƒşŽ‡ź°ˆ¸Ź…Ż¤~Śšwšn…e†}_vYxoTkcK_XBQJ8?:*.*#  
+
+ 111EEEeeeƒƒƒšššľľľĘĘĘŮŮŮäääęęęđđđôôôřřřűűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüűúöőóŘŐĐŁ‡m™sŚ›zˇŹ‡Áˇ‘Č˝—ÍÜŃÇ ÓɢŮĐŞÝÔŽ×ͧŃƟɾ—Ŕ´Ŕ´Ĺš‘Éž–ĚÁ™ĚŔ™Çť“Çť“ĚÁ™Ęż—ĸš­†ľŠ‚´¨‚ˇŤ„ťŻ‡żł‹Ĺş’øşŻˆł¨ƒ­ŁŤ |Ž˘}ł§¸Ź…Ŕ´Ĺş’˝˛Š˛§­˘}´¨‚ť°‰ť°‰ł¨‚Ł˜u†gŒ‚d”ŠjĽ›yłŠ„¸­†ŹĄ|‘‡g€w[–mľŹ‡Éž—ĐŞŇÇ ŇÇ ĚÁ™Ĺš‘áĹš‘Çť“Ꮮ˛ŠťŻˆź°ˆťŻ‡ľŠƒš­†ž˛‹ÁľÁľÁľÁľĂˇÇť“ËŔ˜ÍÁšÉ˝–¡š­†Şžzž“q”‰i‡}_skQ\U@A<-(% ! hhhĘĘĘóóóűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýííěÂżľĆÁ§ŐÎŻŮŃąÚҲŢÖ´ßÖłÜŇ­ÔɢşŻŠ–‹kˆa†|_„{^‰b‘‡g›n§œxł§‚ˇŤ…ťŻˆżł‹ž˛‹ÂśĚÁšĹş“žłŒČź•Ćş“żłŒżł‹Ĺš‘ËŔ˜ÍšÎÛĐŝÍš˿—Ęž–Éž–Ęż—ÎĜɾ—żłŒ˝ąŠťŻˆ¸Ź…˛¨ƒłŠƒťŻˆź°ˆťŻˆ˝ą‰ÁľĹš‘Ćş’Čź”Ëż—ĎÛŃƟŇÇ ŃƟÎÜɽ–Ęž—Ęž—ÂśÁśŽÇť“Čź”Ëż—ĚŔ™Ă¸š­†´¨‚´¨‚ľŠ‚ł§ľŠƒˇŤ„Ż¤~¨y¤™v •s•Šj‚x\riPb[DNH6?9+1."'$
+ 
+  111AAAUUUzzz–––śśśĎĎÎŰŰŰäääęęęđđđőőőööö÷÷÷řřřůůůűűűýýýýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţýýýűűűööôĺĺ߲ŹšŁ›ƒŠŸ€¸ŽŠĆť•ÍÜŃǢŐˤŐĚĽŘΧŰŇŹÝÓŽÚĐŞÔʤĎŞĎĜĚÁšŔľŽŔ´ŽÇź”Çź”É˝•Íš˿—ᐡŤ„´¨‚ľŠ‚ł§śŞƒš­†š­‡ťŻˆ˝ąŠť°‰šŽˆ¸Ź†ˇŤ…śŞƒł¨ľŞƒšŽ‡ź°‰ťŻˆš­†ťŻˆšŽ‡°Ś –t—lœ“rĄ—u¨œyľŞ„˝˛ŠťŻˆ­Ą}”Šj‡~` –tż´ŽËŔ˜ÍšĚÁ™ĚÁ™ËŔ˜Ęż—Ęż—ËŔ˜Ęż—ÁľŽťŻˆź°ˆ¸Ź†ľŠƒśŞƒ¸Ź…ťŻˆżł‹ĂˇÄ¸ÂśŽÁľĂˇÇť“ĚÁ™ĐŞÍšŹ’ˇŤ„°¤~¤™u†|_meM\U@E@0-)
+kkkËËËóóóűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýćć佺­ËĹŞŘĎŽŮĐ­ŮĐ­ŮŃ­ŰŃ­ŮĐŞĚœŹ˘€…|_vZ†|_Œc˜Žm§›wŽ˘|śŞƒź°‰ź°‰żłŒÄ¸ÂśŽÂˇÉž–Âś˝ąŠČ˝•Ćť“žł‹ÁľÇť“ËŔ˜ÎÛÍšʿ—Ęž–Ęż—Č˝•Ęž–ĚŔ˜ĚÁšÄš’ťŻˆš­†š­†¸Ź…ľŤ…ľŤ…şŻˆşŽ‡şŽ†˝˛ŠÄ¸‘Éž–É˝•Ęž—ÎÛŃÇ ÓɢÓɢÓÉĄÓČĄŇǟÎÛɽ–ĸ‘ĸ‘Çź”Ęž–ËŔ˜Ęż—ᏻŻ‡ˇŤ„śŞƒł§­˘}­˘|Ž˘}¨y¤™v˘—t›n‹culRb[EPK895'(%
+   ***JJJvvvŽŽŽĽĽĽĘĘĘŰŰŰĺĺäęęęđđđôôôőőőöööůůůúúúűűűűűűűűűúúúýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýűűúóňďŕŢÖĆ°śŻ–şąČžšĐĆĄŐ˧ÚĐŤÜÓŻÝÔąß׳áŘ´ÝÔŻŘĎŞÖĚĽŐĘŁĎŝ¶Ŕ´Çť“Ęž–ËŔ˜ËŔ˜Ęž–Ĺš‘ź°‰š­†ˇŤ„˛Ś€˛Ś€´¨´¨š­†ÁľÁľżłŒ˝ąŠž˛Šź°‰ľŠƒľŠ‚¸Ź…˝ą‰ťŻ‰ˇŤ…şŽ‡ť°‰ľŤ†Šž{¤™wŻĽł¨ƒˇŤ…ĸ‘ĸš­ˆ¤š}“‹p•‹m­¤…Äş™Ęż™Ęž–Č˝•Ęż—ËŔ˜ËŔ˜Ęž–É˝•Ćť“žł‹š­†š­†śŞƒľŠƒşŽ†şŽ†şŽ‡ž˛ŠÄ¸Çť“Çť“Ćť“Çź”Ëż˜ĎĝŃÇ Ďĝɞ–ž˛‹ˇŹ…ŞŸ{‰€bofM]V@HB11-! ```ĆĆĆóóóűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýŢÝÚˇł˘ŃĘŽŐÎŻÓËŞĐĆŁÍÞĚÁœÉżšˇŽŠš’qw[Œ‚dĄ–tŞŸzł§š­†ľŞƒľŠ‚¸Ź…˝ąŠĹş’Ëż˜Éž–Ĺš’áŔ´ÁľÇź”Ćť“ÂśŽÄ¸Çť“Č˝•ËŔ˜Ęż—Ćş’Čź”Ęż—Çź”Çť“Čź”ĸż´ŒşŻˆľŞƒ´¨‚¸Ź…šŽ‡šŽ‡şŽ‡ťŻˆž˛‹Ä¸Ęž–ÍÁ™ËŔ˜ÍšÓɢ×ͧŐĚŚĐƞĎĜĐŝŃÇ ĚÁšÇť”Ëż˜ĚÁ™Ęż—ËŔ˜Ęż—Çť“ÂśŽżł‹ž˛‹š­†˛Ś€Şžz§›xŚ›w¤™v˘—tž”qŽ„eypUe]FTN:C>/.*
+  )))FFFeee“““žžžĎĎĎŰŰŰéééňňňôôóööőřřřůůůűűűűűűűűűűűűüüüýýýýýýýýýýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýűűűř÷őďîęßÜŇČÁŻ˝´–Éž›ÓȤŮĎŤŢŐ˛âŰşćŢżćŢžâŮśÜŇ­×ÍŚÖĚĽÓČĄÎÜʾ–É˝–ËŔ˜ÍÁšËŔ˜É˝•Çť“Ćş“Ĺš‘żłŒš­…ł§ąĽł§€ľŠ‚ź°‰ĂˇĂˇżł‹ťŻˆżłŒÂśŽťŻˆşŽ‡˝ą‰żł‹¸­†ąŚľŠƒž˛‹Ă¸‘żľťąŒźąŠťŻˆ˝ą‹Čž—Ĺş“ľŞ‡–~—yĽ›|ˇŽ“Ĺ˝ĄÉžšČ˝•Čź”Ęž–Éž–Çť“ĸÂśŽÂśŽ˝ąŠˇŤ„´¨‚´Š‚ˇŤ…ťŻˆź°ˆź°‰Ŕ´Ĺš‘Čź”ËŔ˜ÍšÎÛŇÇ ÓÉĄĐŝĚŔ˜Ćş’żł‹ľŞ…Śz†gwoTaZDJD33.#"RRR˝˝˝ńńńűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýüüÜŰءł˘ÓÍ°ĎÉŹÂťś­Ž¤ƒ¨|¤šx—Žnˆ€b‚x\™nł¨‚š­†˝ą‰żłŒŔ´ŒÁľŽÄ¸‘Çź”ËŔ˜ÍšËŔ˜Ćş’ÁľŔ´Œżł‹˝ąŠż´Ä¸Ä¸ĂˇÄ¸Čź”É˝•Ćş’Ĺš‘ĸŔ´ĂˇĆş’ÂśÂˇĂˇ¸­†ľŠ‚š­‡ľŠƒł§ťŻ‰Äš‘Éž—É˝•ËŔ˜ÎÛΚЪŐˤ×ͧÔĘŁÍš˿—Ëż˜ĚÁšËŔ˜ĚŔ™ŃƞŇČ Đŝɾ—᏿łŒżł‹ÁľĂˇŔ´Œ¸Ź…ŻŁ}¨y¤™vŸ”rœ‘o—Œl†|^neMYR=FA040$! 555]]]ŠŠŠąąąŃŃŃéééđđđńńńőőőůůůúúúűűűüüüüüüýýýţţţţţţýýýýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýűűűúúůöőóëéäŃÍ˝˝ľ˜Ç˝œÔʧÜŇŻâٸĺŢžéáÄčŕŔâÚˇÜŇŹ×ÍŚŐˤŃƞÍÁšĎĝÔÉŁÖËĽĐŞȼ”ĸĂˇÄ¸Ćş’ᏼ°‰ˇŤ„ľŠ‚ľŠ‚´¨š­†ÁľÄ¸ÁľŽťŻˆž˛ŠÁľž˛Šź°‰ź°‰ž˛‹Ŕ´żłž˛‹Ă¸‘ĚœÉÁĄĂťÁśÁľÁśŽżłť°‰śŞ…Ť˘‚ŹĄ‚ľŠ…ş°ŽĂš—Ěœɾ—áÁľŽÂśŽÂśŽÁľÂśŽĂˇŔ´ŒşŽ‡śŞ„˛§‚ą§‚ľŞƒź°‰ĂˇÇź”É˝•É˝•ĚÁ™ĎĜĐŝÓÉĄÔʢĎĜɽ•ÂśŽťŻˆąŚĽšw–Œk„z]mfMOI73/"!  GGG˛˛˛îîîűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüÚŘŐ¸´Ł×ŃłÓĚŹÁš›˛ŞŽŠĄ…˘š€–z–p‘‡g“‰iŞŸ{Ŕ´ŒÂśŽŔ´Œżł‹ĂˇČź”ĚŔ˜ÎÛÎÛĚÁ™Č˝•Ä¸ž˛‹şŽ‡ˇŤ…š­†ÁśČź•ÁľťŻˆž˛ŠÂśŽÂśž˛‹˝ąŠź°‰şŽ†˝ąŠŔ´˝ą‰ż´ŒĂˇşŻˆśŞƒşŽ‡ľŠƒ´¨‚Ŕ´Ęż—ÎÜ˿—É˝•Ęż—ÍšŇǟÔĘŁÓɢĚÁšĂˇŔ´ŒĂˇĚÁ™ÎĝĐŝÔɢÓČĄÎÜǼ”Ŕ´Œź°‰ź°‰Ŕ´ŒĆş’ᏽą‰ˇŤ„°¤~§œx’o•ŠiŽƒd{qVbZEJE483&&" 334RRR|||łłłßßßđđđóóóőőőůůůűúúüüüýýüţţýţţţ˙˙˙ţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýűűűúúúůůřóóđŢÜĐÇÁŞĆžŸŐĚŞŢŐłĺÜ˝čáÂęăÄçßżÝÔŻÓɢÎĝÓɢŃÇ ĎĜÓɢ×ͧÖĚŚĎÜŹ’ÁľŔ´ŒÂśŽĆş’Ĺš‘ÂśŽ˝ąŠ˝ąŠ˝˛‹ˇŤ„š­†ÁľĆş’ÁľŽśŞ„śŞ„ź°‰Ŕ´ž˛ŠşŽ‡ž˛ŠÄ¸Çź”Ĺš‘É˝•ĐƟĚĤƽ Áśž˛‹ťŻ‰¸Ź…şŽ‡ž˛‹ź°‰šŽ‡šŽ‡şŽ‡ž˛‹Ă¸’Áśź°‰ˇŤ…š­†˝ą‰˝ąŠž˛Šżł‹ž˛ŠťŻˆ¸Ź…ł¨ƒ˛§‚¸Ź†Ŕ´Çź”Ëż—Éž–Çť“Ęż—ΚĎŝŇÇ ĐŞȽ•žłŒ¸Ź…ˇŤ„˛Ś€ŠžzŸ”rƒdulRVP<62%!
+;;;˘˘˘ëëëűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüŮ×ÓťśĽŘŇśßŘš×вĚĆŽÇÁŹĂ˝¨Ŕš˘¸ŻąĽ€Ż¤~šŽ‡Ä¸Ćş’Áľź°‰żł‹Ä¸É˝•ÍÁ™ÍÁ™É˝•Ĺš‘Ŕ´Œ¸Ź†˛Ś˛ŚżłĘž—ËÁšžłŒˇŤ„şŽ‡ž˛ŠşŽˆ°Ľ€˛§¸Ź„ˇŤ„ˇŹ…ˇŤ…ľŠƒˇŤ…ťŻ‡š­†¸Ź…ťŻˆź°‰żłŒĹš‘Çź”É˝•Čź”Ćş’Ĺš‘Ęż—ĐŝŃÇ ÎÛŹ‘şŽˆˇŤ…˝˛ŒĎĆ ŇČĄĐŝŇǠ̹őĸĂˇŔ´Œ˝ąŠž˛‹Ä¸Ŕ´ťŻˆź°ˆˇŤ„­Ą|Ÿ“q‘‡f…{]qhOWR=?;,/+!!&&'::;ffg””•ÄÄÄééé÷÷÷ůůůűűűüüüüüüýýýţţţţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüüűűűúúúôóňäâ×ÖѽŞ˘ŐÍŹŢÖľĺÝžčŕÁéâĂäÜźÖĚŚĘż™Çź•ŇČĄŐËŁÓɢÓɢĐŞ˿˜Çť”ĸÂśŽÁľĂˇĆş’Çť“Ĺš‘ÁľÄš‘Çź”żłŒ˝ąŠÄ¸Ćş“ž˛‹ŻŁ~Ž˘}ľŠƒÁľŔ´Œź°ˆž˛ŠŔ´ĂˇĹş’Ęž–ÍšËŔšĆť–žłŒ´Šƒ°Ľ€ťŻˆÄ¸‘Çź”ᏚŽˆ´Ş…šŽˆşŽ‡ąŚ´¨ƒˇŤ„ł§´¨‚¸Ź…¸Ź…ˇŤ…ˇŤ„¸Ź…š­…¸Ź…¸Ź†ź°‰ĂˇĆş“Çť“Č˝•Ćş’áÇť“Ęż—ĚŔ™Í›ɾ–žłŒ´Šƒ°¤śŞ„ˇŤ„ąĽ€¤™vƒdqhOVP<:5'#  333•••çççűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüŮ×Ň˝š¨ŘҡčáÄćŕÄáŰÂŢŘŔÚÔşÖÎąÎŢǟ•ĂˇŔ´ÁľŽĆş’ᏽąŠź°‰ÁľČź”ĚÁ™ËŔ˜Ĺş’ĸżłŒ˛§´Š„˝˛ŒĹš’Çť“Äš’Ŕ´żłŒŔ´Œž˛Š¸Ź…˛Ś€˛Ś€ł§ąŚŽ¤ŻŁ~śŞƒşŽ‡ź°ˆşŽ†ťŻˆÁľĹş’Çť“ĸĂˇÄ¸Çť“Çť“Ĺš‘Ćş’Ćť“Ćş“Çť“Ćş’øÄš’Ç˝–ÍÜÍÛËŔ˜Ęž—¡şŽ‡ź°‰ÁľĂˇĂˇÂśŽÂśž˛ŠşŽ‡ž˛ŠťŻˆąĽ€ •rŽ„d~uXg_HNH7;6),) " )))A@AffgžžžŐŐŐđđđůůůűűűüüüţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüüúúúôňďăŕÖÖŃžČÁ¨×Đąß׸ăÜźâÚšĺÝžĺÝžÝÓŻ×ÍŤŐĚŠÖĚĽÔʢŃƟËÁ™Ĺş’ż´Œź°‰ž˛ŠĂ¸Çť“Çź”ĸĂˇĂˇÁľÇť“ËŔ˜Ćş’ÂśŽÂśÁľťŻˆ˛Ś€°¤~ł§ź°‰Ŕ´ŒŔ´Œ˝ąŠ˝ąŠÁľÇź”Ęż—Čź”Ęž–Ćť”ˇ­ˆą§‚´¨ƒÂˇČź”Ćş’ÂśŽžłŒźą‹ž˛ŒťŻˆł§´¨‚ľŞƒŻĽ€°Ľ€˛§˛§śŤ…ť°‰şŽ‡¸Ź…š­†ż´ŒĆť“Ęż—Čź”Ĺš‘Ćş’ĸÂśŽĹš‘ĸŔ´ĂˇĹš‘ÂśŽżłŒ˝ą‹ź°‰ˇŹ†­Ł~ž“q„z]g_HMF551$$! ,,-ŠŠŠăăăűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüŮ×ÓżşŤŐĎľéăČěçÍěçÍęäÉçŕÁăÚ¸ŰŃŹÓɢÎÛƺ“ÂśČź•Ćş’Ŕ´Œž˛ŠÁśŽÉ˝–ÎÛÍÁšĆť“Ĺš‘Ŕ´´Š„˝ą‹É˝–Č˝•ÂśŽź°‰Ŕ´ŒÄ¸Ä¸ž˛Š¸Ź…ˇŤ„˛Ś€­˘}Ş }¨Ÿ{Ť {śŞƒź°ˆź°ˆź°‰Ŕ´Ćş’Č˝•Çź”ĸÂśŽÄ¸Ćş’Çť“Ĺš‘Áľž˛‹ž˛‹Ä¸É˝•ĚŔ˜ÍšĚšËŔ˜Éž–Çť“ĸťŻˆ˛§´¨‚ź°ˆÄ¸Çť“Ćş’᏿łŒ˝ąŠżł‹ź°ˆąĽ€ •r‹bvnS^WAF@151%+'#!%$"<;<```˜˜˜×××÷÷÷üüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýűűúóňîßÜŃŮÔÂĐɲÚÓˇŕŮźăÜźŕŘśăŰşĺÝ˝âŮśâ١ß׾×̧ŇÇ ÎÛƻ“żł‹š­†´¨¸Ź…áÉž–Ęž–ĸĂˇÄ¸Ä¸Čź”ĚŔ˜Ëż—Çť“ÂśŽž˛ŠşŽ†ˇŤ„śŞƒśŞƒťŻˆÁľĂˇž˛Š˝ąŠĂˇĘž–ĚÁ™Čź•É˝–Ĺş“ˇ­ˆśŹ†˝˛‹Č˝•Çź”ÂśŽŔ´ŒŔ´ÁľŔ´˝ąŠ¸Ź†śŞ„ł¨‚­¤€Ź˘~­˘}­Ł´Ş…ž˛‹˝ąŠşŽ‡˝ąŠÄš‘Ęż—Ęż—Çť“ĸČź”Ćş’áĹš‘żł‹ˇŤ„ź°‰Ä¸Ćş“Çź•Ćş“żł‹ľŤ…¨Ÿ|˜ŽmvYc\EGB11-!$!
+
+ &&'ßßßűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüűŰÚÖŔźŽÓ̲čâĹěĺĘíćĚëäČéâĂćßżŢŐąŐˤŃƟΛ͚Đƞ˿˜ĂˇÄ¸Čź•ÎÛŃÇ ŃǟĚÁ™Çť”áĂˇĹš’Çź”Ćş’Ŕ´şŽ‡şŽ‡ž˛ŠżłŒź°ˆš­†¸Ź…°ĽŠžz§œyŠŸzŽ˘}˛Ś€´¨‚ˇŤ„żł‹Ĺš‘Ĺş’ÁľŽŔ´Ä¸Ćş’Ćş’Ćş“ĸŔ´Œź°ˆ˝ąŠĂˇĹš‘Ćş“Çť“ÂśÁľŽĘž—Ëż—Č˝•Ćş’ťąŠ°Ś‚°Ľ€ˇŤ„żł‹Ä¸Çť“Ćş’Ćş“Ĺš‘ÁľşŽ†ŽŁ}ž’p†|_ofNYR=A<-0,!(%'$,,*PPP‚‚ƒÁŔŔřřřýýýýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţýýýýýüúúřóńëčĺŰÓÎťÔÍľÜÖťăÜžćŢżćŢżĺÜťăÚśßÖ˛ŮĎŞÔÉŁĐƞĎĝÎÛɽ•Áľš­†´¨‚ˇŤ„Ŕ´ŒĹš‘Çť“Çť“Éž–ĚÁ™ÍšËŔ˜Ęž–ËŔ˜Ęž–Ćş’Áľ˝ąŠťŻ‡ź°‰żłŒÄ¸Ä¸ÂśŽżł‹ÂśŽÇť“ĚŔ˜ĎĝĎŝʿ—Ĺš’ĸ‘Äš‘Ĺş’Çť”ĸŔ´ŒŔ´Œź°‰ˇŤ…ťŻˆ˝ą‰š­†łŠ„ŻŚŤŁŠŸ|Šžz­˘}ąŚ€śŞƒťŻˆÁľĂˇĂˇĂˇĂˇÄ¸Çť“Ęż—Éž–Ĺš‘ÂśŽ˝ą‰şŽ‡żłŒĹš‘Ĺš‘Ŕ´ź°‰¸­†˛§‚¨Ÿ|šo…{^kbKMG551$%"  ttuŰŰŰűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüßÝŮž°ĐĘąćßÄęäČęăÇçßŔăŰşâÚšŢÖłŰŇŹŮΨÔɢĐŞŃƟĚŔ™Ĺš‘ĸČ˝•ÎÛĎĜÎÛĚÁ™ĚÁ›Í›ËŔ˜Ĺş’ÁľŔ´Œź°‰š­†ťŻ‡ź°‰ź°ˆşŽ†ť°ˆŔľşŻˆ˛§ŻŁ~­Ł~Ž¤˛§ˇŤ…ź°‰ÁľĂˇÁľŔ´Ŕ´Ŕ´ÂśŽĂˇÁľž˛‹ťŻˆˇŤ„¸Ź…ž˛Šž˛Š˝ąŠž˛‹şŽ†š­†Çť“Ęž–Čź”Ĺš‘˝ąŠ´Šƒł¨‚ľŠƒ¸Ź…ź°‰ÂśŽÇť“ĚŔ˜ĚÁ™Ăˇš­†Ź {™k}tXg_HUN:@;,.+ '$*("21/^]^   âááýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüűřřöđîçßŰÎÚŐŔ×ѡŕŮ˝ćŢÁćŢžćÝ˝ä۸ÝÔŻÓÉŁÎÜĚŔ˜ĚŔ˜ÍšĎÛĚÁ™Ă¸ťŻˆťŻˆź°‰ź°‰ź°ˆž˛ŠÄ¸ĚŔ˜ŇǟŇČ ÎÛɽ•Çź”Ĺš‘ÁľŽŔ´ŒŔ´ŒÁľÄ¸‘Çź”Čź”Ćş’᏿ł‹ÂśĘž–ËŔ˜ÍÁšÎÛÍšĚÁšÎÛĚŔ˜Çť“ÂśŽť°‰¸ŽˆżłŒž˛ŠˇŤ„š­†ź°ˆź°‰ť°‰¸Žˆ˛¨ƒŽŁ~Ź {ŽŁ}ł§š­†Ŕ´ŒĂˇÁľŔ´ŒŔ´ŒŔ´ŒÂśŽÄ¸Ă¸ÂśżłŒťŻ‡¸Ź…š­†˝ą‰˝ąŠˇŹ†ľŠƒ´¨‚ą§­˘~Ľ›xšn„z]h`HMG561%&#
+ lll×××űűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýâáŢÄŔ˛ĚĆŽâŰżéăĆčáÄăÜťŢÖłÜÔąßÖ˛áŘ´ßÖą×ĚŚĎĜÍÛʿ—Ćş’áÇť“ĚŔ˜Ëż—É˝•ËŔ˜ŃČĄÔËĽÎÛøşŻ‡şŽ‡şŽ‡şŽ‡şŻˆşŽ‡¸Ź†š­†Ŕ´Č˝•Ĺš‘˝˛Š¸Ź…ł¨ƒą§‚śŤ…ž˛‹ĂˇÁľ˝ąŠź°ˆŔ´ÂśŽ˝ąŠž˛ŠżłŒź°ˆşŽ†ˇŤ…´¨‚ľŠ‚ˇŤ…śŞƒˇŤ„š­…śŞƒˇŤ„áĹš‘ĸĂ¸żłŒš­†śŞƒ´¨ł§ˇŤ„ž˛ŠĆş“ΚĎĝĸ¸Ź…Şžy•ŠizpUd\ESM:@;+0,")&,*#874ffeŻŻŻëęęýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýüüüűřřöîěćÜ×ÇÚŐžŰŐşăÜžçßÁĺÝźăÚˇáŘľŰŃŹÍ›ɾ–É˝•Čź”É˝•ËŔ˜ĚÁ™Ćş“ž˛‹Ŕ´żłŒš­†śŞƒš­†ÁľĘż˜ŇÇ ÓɢĎĜȽ•Ĺš‘żł‹ťŻˆž˛‹ĂˇÇť“Ęž–Ęż—É˝•Çť“Ĺš‘żłŒĂˇĘż—Éž–Čź”Ëż—ĎĝÔɢÔʢÎÛŹ’ź°‰ľŤ…´Ť†ź˛‹ž˛‹š­†¸Ź…ťŻˆŔ´ŒĂˇÂśťŻˆľŠƒ˛Ś€ł§‚¸Ź…˝ąŠÂśŽÁľťŻˆ˝ą‰Ŕ´ŒŔ´ŒŔ´ŒŔ´Œ˝ąŠťŻˆ¸Ź†ľŠ‚´¨‚śŞƒ¸Ź…ľŠƒŽŁ~ŻŁ~°Ľ€ŹŁ¨ž{Ł˜ušn‚x\d]FLF451$%"
+ ``aĆĆĆřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţíěęÉŝſŤÝÖşčáĂčáĂćßŔăŰšÝŐąßÖ˛âŮľŕÖ˛ŐˤËŔ˜É˝•Ćş’ĸĹš‘Čź”É˝•É˝•Ęż—ÍšŇČ ÓɢËŔ˜ÁľŽťŻ‡ź°‰ž˛Šť°ˆ´Ş…°Śł¨‚˝ą‰Äš‘Çź”ĸżł‹şŽ‡š­†şŻˆ˝ąŠŔ´ŒÁľž˛ŠşŽ†š­†ž˛ŠÁľżł‹żł‹Ŕ´Œ˝ąŠťŻˆš­†ˇŤ„ˇŤ„š­†ťŻˆź°‰ž˛ŠşŽ‡š­†ž˛Šź°ˆşŻˆĹš’Ĺş’˝ąŠąŚ€ŽŁ~ľŠƒťŻ‡Ŕ´Çť“Ęž–É˝•ÂśŽľŠƒŚ›w˜Žl‚x\jbJUN;B=-40%,( ,*#JIF‡†…ČČČńńńüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýüüüűűű÷öőěéâÚŐĂŘŇşáŰżäÝżçŕÂćßżăÚ¸âŮľŕײÚĐŤÓȢËŔ˜Ä¸Ŕ´ŒŔ´Ćş’Çť”ᐿłŒš­†ľŠƒź°‰ĂˇĆş’É˝•ĚÁ™ĎĜÍšɽ•Çť“ÁľŽź°‰ÁľČź”ËŔ˜Čź”Ĺš‘Ćş’Ĺš‘áÄ¸Ćť“Čź”Ĺš‘Ćş’ĚÁ™ĎĜŃǟÓČĄĚÁ™ÂśŽşŽ‡ť°‰˝˛Œś­ˆ´Ş„ˇŤ…¸Ź…ź°ˆĂˇÄ¸Áľž˛ŠşŽ†¸Ź…ž˛‹żł‹ź°ˆź°‰ťŻˆşŽ‡˝ą‰Ŕ´ŒŔ´ŒŔ´ŒÁľÂśŽž˛‹š­†śŞ„ľŠ‚´¨śŞ„š­†š­‡¸Ź…´ŠƒŹŁ§z˘—t™Žm…|^kcKOI740#" GGH˘˘˘ňňňüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őôôĐÎÇĂžŤÜŐšćßÁćßÁčáĂćßżăŰşâ١ŕ׳ÜÓ­Óɢ˿—Ćş’Ĺş’Çź”Ęž–Ęž–É˝•ĚŔ™Í›ĚÁ™Ęż˜Éž—Ęž–ø˝ą‰ź°‰ťŻˆ¸Ź…ł¨ƒ°Ľ€˛ŚşŽ‡ÁľŽÄ¸ÂśŽżł‹š­†ł¨‚˛Ś€ťŻˆĂˇĹş’ĸ‘żłŒşŻ‡żł‹ĂˇĂˇŔ´Œź°‰şŽ‡şŽ‡ťŻ‡š­†ťŻˆž˛‹Ŕ´ŒÁľÂśŽ˝ąŠ¸Ź…ľŠƒľŠƒşŽ‡ĂˇĂ¸ź°‰ľŠƒ´¨‚ťŻˆŔ´ŒÄ¸Çť“Čź”Ćş’ž˛‹ł¨‚Śœy›‘o‡}_nfMYS>F@073'/,"0.'SRO”“’ÔÔÓőőôüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýýüüűűűúúůôňďăŕŐÓθÝŘžćßÄćßÂčáĂčŕÂćŢ˝ä۸áŮ´ÝŐ°Ôʤʞ—żłŒşŽ‡ťŻ‡ÁľĂˇÁľ˝˛ŠşŽ‡şŽ‡ÂˇÉž–Č˝•Čź”É˝•ÍšĚŔ˜É˝•Ęž–Ćť“ÁśŽÄ¸‘Čź”Čź”Ćş’áÂśŽÂśĹš‘É˝•Č˝•Ĺš‘ĸÉ˝•ĎĜËŔ˜Č˝•Íšȼ•Ŕ´ŒşŽ‡şŽ‡ťŻ‰ľŞ…˛§‚´¨‚´¨‚şŽ‡Ä¸ÂśŽ˝ąŠź°ˆśŞ„ł§š­‡ž˛‹Ŕ´ŒĂˇÂś˝˛Šž˛‹ÁľĂˇÂśŽŔ´Œž˛‹ťŻˆš­†¸Ź…¸Ź…¸Ź…ź°ˆŔ´ÂśŽ˝ąŠľŞ„Ş |Ł™v’q–‹j…{^ofNUN;83'$!  889———ńńńüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙öööÔŇÍĂž­ÚÔśĺŢżćßÁčŕĂčáÂçßŔäÜşßÖ°×ΧŇÇ ĚÁ™Ä¸Çź”ÎÛĎĜÍÁ™ËŔ˜ĐŝĎĝǻ”ÁľŽÂˇËż˜Çť“ž˛Šš­†śŞƒľŠ‚śŞƒ´¨‚˛Ś€śŞƒťŻˆž˛‹ž˛ŠťŻ‡ľŠƒŞžzĽšvľŠƒĂ¸Éž–ËŔ˜Ćť“ž˛‹ÂśÇť“Ĺš‘żłŒš­†śŞƒš­†˝ąŠź°ˆž˛ŠĂˇÁľÁľĂˇżł‹ˇŤ…ŻŁ~´¨‚ťŻˆź°‰şŽ‡š­†ťŻˆž˛Šżł‹ĂˇÇť“Č˝•Çť”ᐝŻ‡˛§‚ŠŸ|œ’qˆ~`qiO\U@HB2:5(3/&31+VTR–•”ŐŐÔőőôüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýýüüüűűůř÷őőóéçßŃÍźÖѸäŢĂčáÄéâĹęâÄęâÄčáÂĺÜşŢÖąŘĎŞĐşƻ“˝ąŠşŽ†şŽ‡ź°‰şŽ‡¸Ź†ź°‰żł‹żłŒĆť“ËŔ˜Ęž–Č˝•É˝•ËŔ˜Ęż—Č˝•ĚŔ˜ËŔ˜Čź”Çť“Ćş’áÄ¸Ăˇ˝ą‰Ŕ´Çť”ÍšËŔ˜Ćş’Çť“ĚŔ™Ďĝź“ż´ŒČź”Çť“Áľš­‡ľŠƒľŠƒˇŹ…śŞ„ąŚ€ąĽ¸Ź…ÂśŽżł‹¸Ź…ľŞƒŽŁ~ŠžzŻŁ~šŽ‡Ä¸ĚÁšËÁ™ĂˇÁśŽĂˇÄš‘᏿ł‹¸Ź…ˇŤ„š­†š­†ťŻˆž˛ŠÂśŽÄ¸‘ᏽąŠ´¨‚ŠžzĄ–s™Žm„dvYldLVO<;7)%" 445“““ńńńüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷÷ŘÖŇžŻŘŇľĺÝžćßÁčáĂçßÁĺÝťäۡŢÔŻÔĘŁĐŞĚÁ™Ä¸‘Éž—ŇÇ ÓɢĐƟÎÛĐŝ˿˜ÁľŽŔ´Ćť“Ďĝȼ•ťŻˆľŠƒśŞƒşŽ†š­†ľŠ‚˛Ś€ľŠ‚¸Ź…š­†´¨‚­˘}ŤŸ{Ś›wĽšwł§˝ą‰ŔľĆť“Çź”Äš‘Č˝•É˝–Ŕ´˝ąŠ˝ą‰ťŻˆ˝ą‰żł‹ž˛‹żł‹Áľž˛ŠťŻˆ˝ą‰˝ąŠź°‰¸Ź…¸Ź†ˇŤ„Ť {ŞŸzł§ťŻˆž˛Š˝ą‰ÂśČ˝•Ëż—Ĺš’˝ą‰ľŠƒ°ĽŤ |ž”q‹cwoT`YDLE4>9+52'42+VTQ‘ŽÎÎĚóóňüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüüůřöňńîéçáŇÎżĎĘśßÚÁčáĆčâÄéâÄęăĹęâĹčáĂâÚšŮĐŤĐş˿˜Çť“żłŒ˝ą‰şŽˆ˛ŚŹĄ|Ž˘}¸Ź…ž˛Š˝ąŠĂ¸Ęż—ĚŔ˜Ęż—Čź”Ćş’ĸÄš‘Ëż—ĚÁ™É˝•Čź”Ćş’ÁľÁľÁľťŻˆŔ´ŒÉ˝•ĐŞŃÇ ĎĝÍšÍÁšËż—ÁľŽżłŒĚÁšÎÛƻ“śŤ†˛§‚ˇŤ„ž˛‹şŻ‰°ŚąŚš­†żł‹şŽ‡˛Ś€ŹĄ|¨yŚ›xŞ }łŠƒ˝˛‹Çť“Ęž—Çť“Čź”Č˝•Ä¸Áľżł‹ź°ˆź°ˆ˝ą‰˝ąŠź°‰ź°‰żłŒżł‹š­†ľŠƒ˛Ś€­Ą|Ś›w›n…{^riOc[DNH550$  BBCžžŸôôôüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůßŢŰÂż˛ÔδăÝ˝äÝžĺÝžäÜťäۡäŰšŕÖ´ŐʤĐŞÍšȽ•ĚÁšŇÇ ŃǟĎĜÍšĚÁ™Ćť“ž˛‹żł‹Ćş’Íšȼ•ž˛‹š­…ź°‰Ŕ´ťŻˆł§ŻŁ~ľŠƒťŻ‡š­†ąĽ€ŞžzŠyŠyŞŸzŽ˘}°Ľ´¨‚żłŒČź”É˝•ĚŔ˜ËŔ˜ĂˇŔľŔľÂśŽŔ´Œž˛Šżł‹Ŕ´Œżł‹š­†śŞ„š­†ž˛ŠÁľťŻˆł§ŤŸ{¤™uŠžył§śŞƒľŠ„ˇŤ„Ŕ´ŒČ˝•Ęż—ĸťŻˆˇŤ„ąĽŞŸzĄ–s’‡huZg_GSM9E?/;7)53+NLI}|yşš¸ęęéüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýűűůôóđčćÜÖÔĹĐĚšßŰĹéăËěĺĘëäÇęăĹęăĹéâÄĺŢ˝ÝÔąŇɢʿ—Éž–É˝•Ä¸şŻ‡ąĽ€ŞŸ{ŞŸ{ŻŁ~ł§‚ľŠƒˇŤ„ž˛ŠÇť“ÍšĚŔ˜Çť“ĸÂśŽÂśŽĆť“É˝•Čź”Čź”Ćş’ÁľŔ´Œżł‹˝ą‰ÂˇĘż—ĎĜĐƟĐŞÎÛɽ–Ꮮ˛‹ŔľĚšĎÜȽ–šŻ‰šŽˆż´ÁľŽšŽˆŽŚŻŚˇ­†żł‹š­†Ż¤~¨žz¨yŠžzŞ }­Ł˛§ťŻˆÄ¸Çť“É˝•Č˝•Ćť“Äš‘áĂˇŔ´Œž˛Šżł‹ž˛‹ź°ˆşŽ‡ˇŤ„˛Ś€˛Śł§€ŻŁ}Ľ™v”‰j|sWldLaYCKD2/+
+
+
+""#``ażżŔúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüäăáĂŔľĎɲŕŮťáÚšâŮšăÚ¸âŮśäŰşáٸŮĐŤÔĘŁŃƞ͚͛ΛËŔ˜Č˝•Çť“Çť“ĸżł‹ź°‰żłŒČź”Čź”Ĺš‘ÂśŽĂˇĹš‘ž˛‹ł§­Ą|´¨ƒź°‰ťŻˆśŞƒąĽŻŁ~ŻŁ~Ž˘}Šžy¨yŽ˘}ź°ŠÇť“Çť”ĚŔ˜ÎÜËŔ˜Äš’ÁľÂśŽŔ´Œź°‰ž˛‹Áľž˛‹¸Ź…ľŠ‚š­†Ŕ´ŒÂśŽˇŤ…Şžz˘–sŠx´¨‚şŽ‡˛ŚŽ˘}´¨‚ž˛‹Ĺš’Ćť“ĸŔ´Œž˛‹ľŠƒŠžzĽšv™Žm†{^ngMZS>KF4A=-95+A?9ed`ĄĄžâââüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüűööôęéâŰŮËĎĚšßÚĹęĺĎíçÎíçÍěćÉęăĹëäĆčáÂâŮśŘĎŠĎŝʿ—ËŔ˜ĚÁ™Çť”´Š„¤™wŚœzą§‚¸Ź†˛ŚŻŁ~´¨‚ťŻˆĂˇÉž–Éž–Čź”Čź”Ĺš’ÂśŽĂˇĹş’Çť“Ĺš’áÁľŽÂśÂˇÁľŽĆş’ËŔ˜Ëż—Ęž–Éž–Çť”Áśź°‰ź°ˆŔľČź•Ęż—Čź”¡Äš‘Čź•ÁľŽśŤ…ŽĽŹ¤€łŠ…žłŒš­†°Ľ­Ł­Ł~­Ł}Ť˘~Š }Ť |ľŠƒżłŒĹš‘Ĺš‘Ćş’Ëż—É˝•Ćş’Ĺš‘żłŒťŻ‡ž˛ŠŔ´Œ˝ąŠš­†´¨‚ł§ľŠ‚śŞƒąŚ •r‹€byoUpgNg_GNG5/+ 
+!]]^ŔŔŔýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţńńđÉÇŔČÄŻÝ׺ăŰźäÜ˝ăŰşŢÖ˛ÚĐŹÚĐŽŕ׾ŢŐ˛×ͨΛ˿—Ęż—Čź•Âśź°‰˝ą‰˝ąŠź°ˆź°‰ÁľÉž–Ęž–Č˝•É˝•Ęż—Éž–ÂśŽ¸Ź†˛§´¨´¨‚ąŚ€ľŠƒ¸Ź…śŞƒľŠ‚˛Ś€ŠžzŤ {ľŠƒž˛ŠÁľŽÁľŽĘż˜Ďŝȼ•Ŕľź°ˆşŽ‡ťŻˆž˛ŠÂśŽĂˇŔ´Œź°ˆťŻ‡˝ą‰Ŕ´ŒÂśŽž˛Š°¤Ľ™vŹ {š­†żłŒ¸Ź…ľŠƒź°‰ž˛‹ž˛‹żłŒÂśŽÄ¸Ä¸ź°‰ąŚ€ŹĄ|Ÿ”rŠbrjP`YCVO;LF5?:-<92TRM„ƒ€ÍĚËůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúůőőńčćŕŘŐČŇĎžŰŘĂéăĚíçÎíçÎíçËęâĹčŕÁěĺÉčáÄßÖłŘĐŞŃČĄËŔ˜ĚŔ˜ÎÛ˿—¸Ž‰ŚzĽœząŚźą‰ź°‰ťŻ‰ž˛‹żłŒżł‹ž˛‹Ŕ´Ĺš’ĚšËŔ˜Ćť“Çź”Č˝•Ćş’ťŻ‰¸­‡ĂˇĘż™Íœǻ”Ĺş’Ćş’Čź”Čź”Ĺş’˝˛ŒˇŹ†ˇŹ…ˇŤ„ť°‰Č˝•ĚÁ™ĚŔ˜Ęž–Ęž–É˝–Äš‘ź°Š´Š„°Ľ€ąŚˇŤ…ľŠ‚˛Ś€śŤ„´ŠƒŻĽŹ˘ŤĄ}ŽŁ~š­‡ÂśŽĂˇĆť“Ęż—Íšǻ”Ŕ´Œž˛‹şŽ†ˇŤ„żł‹Áľ˝ąŠ˝ąŠ˝ąŠťŻ‡ťŻˆź°ˆ¸Ź…Ś›wŽ„ezqVqhOiaIRL93/" UUWŔŔÁýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţřř÷ĎÍČĆÂŻŰŐ¸ĺŢŔćßÁäÝ˝ŢÖ˛Ö̧ŘΊăŰşĺÜşŢŐąÓČĄĚÁ™Čź”ĸ‘ž˛‹¸Ź…şŽ‡ťŻˆşŽ‡ž˛ŠÂˇĹš’Ćş“Ĺş’Ćť“É˝–Ęż—Ćş’żł‹şŽ‡ˇŤ„˛Ś­˘~˛§‚¸­‡¸Ź…ˇŤ„´¨‚Ž˘}˛ŚťŻ‡ź°‰ź°‰żłŒÇź•ËŔ™Âˇ˝ąŠşŽ‡ˇŤ„ťŻˆÂśŽÇť“Čź”Ĺş’Ĺş’Çť”Çź•Ç˝–Éž–Éž–ź°ŠŻŁ~˛Ś€ťŻ‰ĂˇÁľŽÂśĆť“ÁľŽşŽ‡ˇŤ…şŽ‡żłŒĹš‘ÂśŽşŽ‡´¨‚Śšv‘†f{rWjcKaZDWP<HB2=8-DA:ba\Ÿž›ĺäăűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýůůůňňîĺăŰŃΞŐŃ˝ŢŰĆčäÎěćÍěćËíćĚěĺÉčáÂçßŔěĺÉéâĆáٸŢŐąŮĐŞŇÇĄŃƟŇČĄŇČĄÄş”łŠ…°ĽľŠ„˝ąŠÄ¸Čź”Č˝•Ćş’żł‹śŞ„ˇŤ„žł‹Ęż˜ÎÛÍšÎÛÍÁ™Çź”š­‡śŞ…Ćť“ĐƟÓʤÍÛɽ•Ĺš‘ÂśÂśŽÁľŽ¸ŽˆľŤ…şŻ‡ˇŤ„š­†Ćť“Éž–Č˝•Čź•Ćş“Äš‘Çź”ĸťŻˆˇŤ„´¨‚ł§ł§€´¨‚ˇŹ…śŞ„˛ŚŽŁŽ¤ł¨ťŻˆżł‹ž˛‹Ĺş’ËŔ˜Č˝•ÁśŽź°ˆš­†¸Ź…š­‡ÂśÄš‘ÁľŽĹş’Č˝•Çť“Ĺš’Ĺš’ø‘˛¨ƒšoƒz]skQg_GTM:62% ZZ[ĐĐŃţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úůůŐŇÍĆÁŻŘŇśĺŢżćßŔĺŢžâ١ŕ×´ŕ׳ăÚśăÚśŕ׳ÜÓŽÓȢɽ•Ŕľ˝˛Šż´ŒĂˇÂśŽź°‰Ŕ´ŒÁľŽşŻˆźą‰żł‹š­‡˝ą‹Ĺš’Ĺš’áŔ´Œž˛‹ź°ˆśŤ„˛¨‚ą§‚ľŞ„ľŠƒł§ł§ľŠƒśŞ„śŞƒşŽ‡ÂśĂ¸ÂśÁśŽÁľŔ´Œž˛‹ÁľŽÇť“Ëż—͚͚ĎĝŇȢŐĚŚÖͨÖͧÓɢƺ”š­‡ťŻˆżł‹ÂśŽÇź”ĚÁ™ĚÁ™Ćť“˝˛ŠľŠƒ°Ľ˛§‚ÂśĹš‘żł‹şŽ‡Ť {™ŽmŠ€bypUibJ^XBTN:C>/@;2TQK€{ĹÄÁôôó˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüűűűúôóńáßŘŐŃÂÔĐťßÚÁčâČëĺĘëĺĘěĺÉěćÉëäČęăĆęâĹëäĆéâĹćßŔăÚ¸ßÖ˛ŢÔ°ŰŇ­ÚŃŹÜŇ­ĎŞŔľŽŔ´ž˛‹ź°‰ÂśĘž—ÍÁšËż—Äš‘ťŻˆśŞ„¸Ź…ÁśŽËŔ™ŃÇ ŃƞĎĜĚÁ™Ä¸ÂśËŔ˜ĎĝŃǟŇČĄĐŞɾ–˝˛‹š­†ź°‰˝˛ŠŔľÂś˝ą‰şŽ‡Ŕ´Ŕ´˝˛Šź°‰ť°ˆ˝ąŠĹş’Ćť“Áľž˛‹ź°‰š­†ˇŤ„ľŞƒ°Ś˛¨ƒľŠƒ˛§˛Ś´¨ľŠ‚ľŠƒśŤ„żłŒÄ¸żłŒżł‹żł‹ťŻˆž˛ŠÄ¸Çť“É˝–Ëż—ĚÁ™ĎĜŃǟĐŝĎĜĎĝž´Ľœz‡gxpTaZDOI772% ##%iijŰŰÜ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúŮ×ŇĹÁ°ŐĎ´ăÜ˝äÝžĺŢżĺŢžćŢžĺÝźăÚśŕ׳ÝÔŻŮĎŠÔÉŁÎÜȼ•Ćş“Č˝•Ęż—Ćť“żł‹ž˛‹żł‹ž˛‹ÁľÁľ¸Ź†śŤ…¸ŽˆşŻ‰żł‹ĂˇÄ¸ÂśŽ˝ąŠˇŹ…ł¨‚´¨‚śŞƒśŞ„ąĽ­˘}Ż¤ˇŤ…żł‹ÁľŽ˝ąŠź°‰Ĺš‘Č˝•Ćť“ÂśŽÄ¸Çź”Ęż—ËŔ˜ĚŔ˜ÍšŇÇĄŘĐŤÜÔŻÜÓŻÖÍŚĘż˜žł‹ź°‰˝ąŠÁľÇť“ÎÛŃƞÍšƺ“ž˛ŒşŽˆť°ŠÇť”Č˝•Ä¸żł‹˛§‚˘™v–Œl†|^tkRi`I^WANG6@;/IE>jicŠ§Łçćĺţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙ţţţţýýýýýýüüűůůř÷÷ôćĺßĎËžÖŃžáÝĆéăÉëäÉëäČëĺĘíćĚíçĚěĺÉëäÇęăĆčŕÁĺÝźâÚ¸ŢŐ˛ŢŐŻŕ׳ŢŐąÜÔŻßŐąŇȢøÂśŽżł‹ťŻˆÂśŽËŔ˜ŃƟŃƟĚÁ™Ăˇżł‹żłŒĆş“ÎÜÓɢŇǟĎĜÎÛËŔ˜Éž–ËŔ˜ÍšĎĝŃǟĎĜ˿—Ćť”áÂśĹş’Ćť“ᏽąŠťŻˆÂśŽÂśżłŒşŽ‡şŽ†ťŻˆşŽˆ˝ą‹ĂˇÄ¸ĂˇŔ´ź°‰ˇŤ„°Ś€´ŠƒşŽ‡š­†ąĽ€ŤŸz˛Ś€şŽ‡ź°‰ź°‰ź°‰˝ąŠÄš‘Č˝•ÁľÁľŽÇť“Čź”É˝•Ëż—ËŔ˜ÎÜÔʢŐĘŁÔɢÓɢŔś‘Śœz‘‡gxoT_XBKE43/#
+ $$&iijŰŰŰ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůÝŰÖĹÁ°ŇĚąŕŮşăÜžĺŢŔčáĂéâÄčŕÁăÚˇŢÖąŮŃŤŐËĽÔĘŁÔĘŁŇÇ ĎŝĎĜĎŝĚŔ™Äš‘ÁľÁľŽĹš‘Ćş’ÂśŽşŽ†´Ş„˛¨„ąŚ¸Ź†ÂśĹš’ĸżł‹ź°‰š­‡śŞƒš­†ťŻˆ˛ŚŤ |Ž˘~¸Ź†żłŒž˛‹şŻˆ˝ąŠÉ˝–ΚĚŔ˜Ĺš‘ĸÇť“Çť“Čź”Ęž–Ëż˜ĎŝÖͧÚŃŹÚĐŹÔÉŁĘż—Áľ˝ąŠž˛‹ÂśŽĆş’ĚŔ™ŃƟĐŝĚÁ™É˝•Čź”É˝•ËŔ˜Ëż—Ćť“Ŕ´ŒśŤ…ŤĄ}Ą—u‡guZriPh`HXR>E@1B=2ROG}{už˝şóóň˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýţţţüüüűűúúůřööôńńďäăŢÇĸÉĹąŢŘÂęăĘëĺËěĺĘěćÉíçÎđéŃđęĐěćĘęăĆčŕÁă۸ŢŐąÚŇ­ŘĎŠŮĎŠŢÔŻŰŇŽÚŃŤÜŇ­ĐƟ·ÂśŽżłŒ˝ąŠÂśËŔ˜ŇČ ÓÉĄĐŞɽ•Çť“Čź”ĚšŃƟÓČĄĎĜÍÁ™ÎÛĎĝÎÛʿ—ÍÁšĐŝÎÛĚÁ™ĚÁ™ŃƟĐŞĚÁ™Í›ĚŔ™Äš‘ż´ŒŔ´Çť“Çť“Âśš­†¸Ź†şŽˆ˛Ś´Šƒż´Ĺš’Ćş“ĸž˛‹š­†ľŠƒš­†ž˛‹żł‹´ŠƒŞŸ{ł§‚˝ąŠž˛‹şŽˆšŽ‡ÁľŽĘż˜ÎÜƻ“Ĺš‘Čź”Çť“Ćť“Çť“É˝•ÍšÔɢÔɢŃÇ ĎŞź˛¤™v…eypUaYDJC21,! ##$ffgÚÚÚ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúŕŢŰĆ²ĐĘŻŕŘşäÜźăŰźçŕÂéâĹčŕÁâÚˇÝŐ°ŰŇ­ÜÓŽÚŃŤ×Χ×ΨÔˤŃǟÓČĄŇČ ÎÜÎÜÍ›ȼ”ÁľşŽ‡´¨‚š­‡˝˛‹ˇŤ…ľŠƒťŻˆżł‹ž˛‹ťŻˆżł‹ÂśŽżł‹żł‹Ŕ´ŒŔ´ž˛‹¸­†ąŚąŚşŽ‡ÂˇČź•Éž–ĚÁ™Íšȼ”Çť“Çť“ĸĆş’ĚÁ™ĐŞŇČ ŃǟĎĝÍÁšËż—Ćş’ÂśŽĂˇĹš‘Ćş’Çť“É˝•Ęż—Ęž—Ëż—͚͚ĚÁ™Ęž–Č˝•Ĺš‘şŽ‡˛Ś€Ż¤Ş }š’r†}_zqWqhOb[DQK8D?0E@6\YQ•“ÖÖÓýýü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţűűűűűűúúůöőôńńîęéäáß×ŰŘĎÍĘšŃÍľŢŮŔĺßÄčâĹéâĹëĺČîçÎđęŃńëŇđęŃěćÉçŕÁâÚˇÜŇ­×Χ×ÍŚÖĚĽÖĚĽ×ĚŚÔĘŁŇÇ ŃƟʿ—áÄ¸Ĺš’ĸÂśĆť“͚͚˿—É˝•Čź”Ęž–ĚÁ™ĎĜÎÜȼ”Ĺş’Ęž—ŇÇĄŇÉŁĚÁ™ÎÛŃƟĚŔ˜ĚŔ˜ĎĜÓɢŐˤÔɢÔĘŁŇČ ÎÛËŔ™ËŔ˜ËŔ˜Çť“ž˛Š°Ľ€ąĽ€¸Ź†şŽˆˇŹ†ľŤ†žłĂˇź°‰ź°‰ž˛Š˝ą‰ž˛ŠŔ´ŒŔ´ŒÁľŽŔľŽšŽ‡ąĽ€°¤šŽˆÄ¸‘Ęż—ËŔ˜ËŔ˜ËŔ˜Ęż—Čź”ĸÂśŽĂˇČ˝•ĎĜÓČĄÍÁšĆş’áľŞ„Ł˜u“‰hvYiaIMG50, 
+""#ddeÚÚÚ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúăáÝČÄ´ĎČŽÝÖˇâÚšáٸĺŢŔéáÄçŕŔŕ×´ŰŇ­ÚŃŤÝÔŻÝÔŻŰŇŹŮĐŞÖͧŐĚĽ×ͧ×ͧÔʤĎŞɾ—ÁśŽşŽ‡ľŠ‚´¨‚š­†ž˛‹˝ąŠ˝ąŠž˛‹ťŻˆśŞ„˛Ś¸Ź†Ŕ´ĂˇÂśŽŔ´ŒŔ´źąŠˇŹ†ł¨‚śŞ„żłŒĆť“Ęż—É˝•ĚŔ˜Íšʾ–Éž–Ęž–Ćť“Çť“ËŔ˜ÎÛĎĝÎÛËŔ˜Čź”Čź”Ćş’ĸÄ¸Ä¸Ä¸Ä¸Ĺš‘Çť“Čź”Ęž–͚Κʾ—øĹš’Ćť“š­‡ł§ľŠƒŻŚ ˜vƒd‚y\ypUjbJ^VANH6C>1IE;if^´łŻőőôţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýüüüüúřř÷őôńîíčçćßáßÖÔŃÄČĂąÄŔ­ĎĘľßÚżćßÄçŕĂčáÄéăĆíçËđęŃđëŇđęŃîčÎëĺČĺŢ˝ŢÖ˛ŮĎŠŐËŁÓÉĄÓČĄŇÇ ĐŞĎĜĎÛĚŔ˜Čź”Ĺš‘ĸĂˇÁľŔ´ŒĂˇÇť“Čź”É˝•Ëż—ËŔ˜Ęž–Ćť“Éž–ĚŔ™Ĺš‘áČ˝•ĎŞĐÇ Ęż—Ęż—ËŔ™ĚŔ˜ĎĜŇÇ ÓČĄŐˤ×Χ×ÍŚŐĚĽÔĘŁĎŞËŔ˜Čź”Ŕ´š­†śŞ„śŞ„š­†˝ą‰˝˛‹şŻŠ˝˛‹ťŻˆ˛Ś´¨‚š­†żł‹Ŕ´ŒŔ´ŒŔ´ŒŔ´żłŒ¸­†ł§´¨ƒž˛ŒČź”Ëż—Ęž–Ęž–͚Κ˿—Ćş’ĸÄ¸Ćť“Ęż—Í›ɾ–ᏽą‰´¨‚§›x•‹j~uYf^GLE3/+  !!"aabŮŮÚ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüćäáĘơÍÇ­ÚÓłßלßסäÜžčáĂćßŔŢÖłŮĐŤŘĎŠŰŇŽÝÔ°ŢÔŻÚŃŤŮĐŠŮŃŤŮŃŤŘĎŠÔ˼̛őž˛‹šŽ‡ˇŤ…¸Ź…š­†ťŻˆÂśŽÄ¸ż´ŒˇŤ„­Ą|Šžz˛Śź°ŠÄ¸Ăˇž˛ŠşŽ‡´Ş„˛¨ƒ¸­†ÁľĹş’Çť“Čź”É˝•ĚŔ˜ĚÁ™Ëż—ĚÁ™ÎÛ˿—Č˝•Čź•Čź”Éž–ËŔ˜Ëż—É˝•Čź”Çť“Ĺš‘ÂśŽÁľÁľÂśŽÄ¸Çť“Çť“É˝•ĚÁ™ËŔ˜Çť“ż´ŒÂˇĆş“ź°‰ˇŤ…şŻˆ´Ş„Ľz•‹jŠ€avYriPhaIZS>KE4D?2MI>vtlŰŰŮüüű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţţţţüüüúůřöőňéčäâáŮŘÔČĘǡËČśĐËłÖĐľŰÖźßÚÂăŢĂĺŢŔćŕÁéăÇěćĚďéĐďęĐďéĎěćĘęăĆčáĂăÜşÜÔŻŘĎŠÓÉĄĎĝÎÛĚÁ™Ęž–ËŔ˜ÍÁ™Éž–Čź”Ćş’Âśž˛‹ź°‰ž˛ŠÁľÄ¸Ĺş’Č˝•ÍšÎÛʿ—ÁľŽĂˇČ˝•Ĺš‘ĸČź”Í›ÎĜɽ–Ĺş’Ĺş’ËŔ˜ĐƞÓɢŇÇ ŐˤŮĐŤŘΨÖÍŚÖĚŚĐŞɽ•Ä¸˝ąŠşŽ‡Ŕ´żłŒź°ˆž˛ŠÁľÁľŽşŽˆ°¤Šžz­Ą|ľŠƒżłŒŔľžł‹˝ąŠš­†ľŞƒˇŤ„ťŻˆżłŒÄ¸Čź”Č˝•Č˝•Ęž–ÍÁ™ĎĜÎÛ˿—Čź”Çť“Ĺš‘ĸÇť“Çť“ᐝŻˆł§Šy•‹j{rV`YCGB1-)  !``aŘŘŮ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţíěęÎĚżËĹ­ŘĐąŕظáÚşáÚşčŕĂéâĹáŮśÜÓŽŰŇ­ŢŐ°ÝÓŽŰŃŹÝÓŽÜÔŻÚŃŹŘĎŠŇČĄËŔ™ĚÁšÎÛʾ—Çź”Ĺş’żłŒťŻˆťŻˆÂśŽž˛Œ˛ŚŤ {§œy¨y´Š„ÁľŽÁľŽž˛‹şŽ‡ľŠƒ´¨‚ľŞ„ť°‰ÂśŽĆş’Ĺš‘Ĺš‘Ëż—ĚŔ˜ËŔ˜ÍÁ™ĐŝŇÇ ĎĜ˿—Čź”Ĺš‘áĹş’Éž–ĚŔ˜Č˝•Ĺš‘áŔ´ŒŔ´ŒÁľĂˇĆş’Çť“Ĺš‘Ĺš‘É˝•É˝•Çť“ĸÁľŽŔ´Ŕ´ž˛‹ťŻˆšŽ‡˛§Ą–s’‡g…|]|sWqhOd]FXQ<JD3FB5_[Qśľąđđîţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţýýýüűúôôňëęäÜÚĐŐÓĹÖÓÁĎÉąÓÍ´ÖŃšŰÖžŢŘ˝ßםŢŘşŕŮźăÝżçŕÂéăÇëĺÉěćĘëäÇçŕŔĺÝźäŰšŕŘśß׳ŢŐąŮĎŠŃƟĚŔ˜Ęž–Čź”ĸÇť“Éž–Čź”Čź”Çť“ÂśŽżł‹ž˛‹żłŒĂ¸Č˝•Ćş’Ćş’ÍÁ™ÍÁ™Éž–Äš‘ÁľŽŔľĂˇĆş’É˝•ĎĜĐŞʾ–Çť“Ćş’Ęž–ÍšŃƞÓɢŘĎŠÝÓŻŮĐŞŐˤŇČĄĎĝÍÁšËż—Č˝•Ćş“øŔ´Œž˛‹żł‹żł‹şŽ‡ŹĄ|Ł˜uŚ›wŽ˘}¸­†Ĺš’¡šŽˆłŠ„ł¨ƒśŤ„şŽ‡Ŕ´ŒĹš‘Çť“Čź”Čź•Ęż—ĚÁ™ĚŔ˜ÎÜŇÇ ĎĜ˿—Č˝•Ćş’Ĺš‘áĂˇÁľš­†°ĽŁ˜u…fwoS^WAD>/*& ""#ccdŮŮÚ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ńńîŇĎĹËĆŻÖĎŻâŰşáŮšß׾äÜ˝ćßŔŕŘľÜÔŻŰÓŽÝŐ°ŰŃŹŘϨÜÓŽÚŃŹŐËĽŐˤĐŞǼ”Ęż˜ĐŝĎĜĎĜĚÁ™Ä¸ź°‰şŽ‡ź°‰š­‡˛ŚąŚąĽŽŁ~ł¨‚¸Ź†śŞ„śŞ„¸Ź…š­†š­†š­†ťŻ‡żłŒĂˇÄ¸Ćť“ÍÁ™ÎÛĎĜŃƟŃƟĐŝËŔ˜Č˝•Çť“áĂˇČ˝•ÎÛĐŝɾ–ĸÁľŔ´ŒŔ´ŒÁľĹš‘Ĺš‘ÁľĹš‘Éž–Ęż—Éž–Čź”Ĺš‘Áľž˛ŠÁľŽŔ´ŒşŽ‡š­†´Š‚§z™nŽƒd„{]xoTldLc\ETM9HC3NJ=ˆ†~Ř×Őúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţýýýüüüűűűú÷öôëęĺ×ŐËŇΞĘĹ°ËĹŻŇÍ´ŮŇľÜŐ¸Ü׺ÜמÝןÝŐ¸Ţ׸áÚ˝äÜżâŰ˝äÝ˝čáĂçŕÁäÜťâÚśŕŘłŢÖąŰÓŽŰÓŽÚŃŤŇČĄËŔ˜Čź•Ćş’ĸĹš‘Ęż—ÎÜËŔ˜Čź”ĸżł‹ž˛‹Ŕ´ŒŔ´ŒÂśÄš‘Äš‘Ćť“ÍÁ™ÎÛĚÁ™Ćť“Áľž˛ŠÂśŽĹš‘Ćş’Ęž—ĚÁšĘż—Čź”Ćş’Čź”ËŔ˜ĎĜŇÇ ×ÍŚÚĐŤŐˤĐŞĎĜΚÍÁ™ĎÛΚ˿—Ĺš‘Ŕ´˝ąŠ˝ą‰ťŻ‡ˇŤ„°ĽŹĄ}ŻŁ~°¤˛§‚şŻ‰¸­ˆłŠ„łŠ„śŤ†šŽ‡¸­‡˝˛‹Ĺş’Ćş’Ĺš‘Čź”ÍšĐƞĎĜĐŞŃǟÍÁšÇź”Ĺš‘Ĺš‘ĸÄ¸Äš‘ĸ‘ź°‰Ž˘}’pŠ€atlQ]VAB=-(%&&'gghŰŰŰ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ńńďÓŃÇËÇ°ÔÍŽâÚşáÚ¸ß׾ŕ׾ŕ׾ÜÔŻÚŇ­ÚŇŽÜÓŽŮĐŤŘΨŮĐŞÔʤ͛ЪĎĝɽ–Č˝•Ęż—ĚÁ™ÍÁšĘż—Äš‘żł‹şŽ‡ˇŤ„ˇŤ„ťŻˆżł‹żł‹ˇŤ…°Ľ€Ť |Ť {°Ľ¸Ź…Ŕ´ŒŔ´ťŻˆşŽ‡ź°‰Ŕ´ŒÄ¸Č˝•ÍšŇÇ ŐĘŁŐˤĐŞʾ–Ĺš‘ĸĆş’ĸÇź”ĐƟÔʢŇÇ Éž–ĸÁľżłŒżłŒÁľÄ¸ÁľşŽˆÄš’ĎĝĎĜĚÁ™Č˝•Ĺš‘ÂśŽÁľŔ´Œ˝ą‰¸Ź…´¨‚Ż¤¨Ÿ| –t–ŒkŒ‚c€wZvmSmdL\V@NH6JE6if[˛°Ťîíěţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýýüüűúů÷ř÷ôîîéŢŰÓËǸĘÄąŃĚ´ÖĐľŰÔšŰÖťŰŐ¸ŰÓľŮŃł×ĐłŘĐłÚÓ´ŢŘťâÜŔâŰ˝ÝÔ´ÝÔ˛âÚşß׾ŰÓŽÝÔ°ÝÔŻŰŇŹŮĐŤ×ΨÓɢȽ–øĹš‘ĸĂˇČ˝•ĐŞÓʤÎĜǼ”ÁľşŽ‡ťŻ‡ž˛ŠŔ´Œžł‹ž˛ŠÂśŽČź”ÍšŃǟŃǟȽ•ĂˇÁśŽÁľÁľÁľÁľŽÄš‘Č˝•Ćť“ĸÇť“ĚŔ™ĎĝŃƞÓČĄÔɢÎÛ˿—ĚÁ™Ëż—Ęż—ÍÁ™Ęż—Çť”Ćş’ÂśŽ˝ąŠťŻˆşŽ†š­†ź°‰ž˛‹ťŻ‰ł§‚Ť |Ť |Ź˘~ŻĽ¸­‡˝˛Š˝ąŠśŹ†¸ŽˆÁśĂˇĂˇČź”ĎĜÔĘŁÔĘŁŇČ ÎÛǻ“ÁśŽÁľÂśŽÄ¸Çź”Ęż—Ęž–ż´Ž˘}™Žm„{^ogN[T?A<-'$**+oopÝÝÝ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óňđÖÔËËÇąŃĘŤßÖľâٸáŮśŢŐąŰŇ­ÚŇ­ÚŇ­ŰÓŽÝŐąÜÓŽŮĐŞŘΨŃÇ Ęž—Čź•Čź•Čź”Čź”Çź”Ćş’áÂˇÇť”Ćť“ÂśŽ˝ą‰š­†ˇŤ„ťŻ‡˝ąŠź°‰śŤ„ąĽ€ąĽ˛Ś€ľŠƒž˛‹ĂˇÁľŽżł‹ź°‰˝ą‰ÂśČź”ËŔ˜ŇČ ×ΨÖĚĽĐŞɽ•Ćş’ĸÄ¸Çť“ÍšÓɢÔɢĎĜƺ’ÂśŽżłŒ˝ą‰˝ąŠŔ´ŒÂśŽŔ´Œ˝ąŠÂśĘż˜ŃƟĐŝ͚͛ʿ—Ĺš‘ž˛‹şŽ†ˇŤ„ą§ŤĄ}§z¤›yĄ˜v™Žmƒew[rjQc[EUO:LF5SOAwÎÍĘůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýüüűúúřřřőöőđéçáĎĚžĘŲÎÇŻ×ŃľÚÔšÚÔˇŮŇśŘŃ´ÖĎłŐΰŐÍŻÖΰÖΰ×Ď°ŮŇłÚÓľŰÓłŘĎŹÓĘŚŃÇŁĎğĎĞŃĆ ÔĘŁÖĚĽÓĘŁĐƟËŔ˜ÁľŽž˛‹ÂśŽÁľĂ¸Ëż—ÎÛÎÜĘŔ˜Ĺş’žł‹ˇŤ„śŞ„ťŻ‡ž˛‹żł‹ž˛ŠŔ´ŒĹš‘Ęż—ĐŞÔĘŁŃČĄÍÜȾ–áŔ´ŒżłŒ˝ąŠ˝ąŠŔ´ĂˇĹš‘Čź”Í›ŇČĄÓɢŃƟΚʾ–Çť“Ćş’Çť“Čź”Éž–ĸ‘Ŕ´ŒÂśŽÄš‘Äš‘Ŕ´ťŻˆš­†¸Ź†ťŻˆž˛‹şŻˆľŞƒąŚ€Ż¤°Ľ€ˇŤ…˝ąŠżłŒžłŒźąŠşŽˆ˝ąŠÂśŽČź”ĎĜŐˤÖĚĽÓČĄÍšŹ‘Ŕ´ŒÁľĂˇÇť“ËŔ˜ËŔ˜É˝•Ŕ´ąĽ€›ow[h`ITM:?9*'$ 112||}ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őőôÚŘĐËÇłÍƨŮŃ°áŘśŢŐ˛ŰŇŹÚŃŤÜÓŽÝŐ°ŢŐ°ŕŘ´ŢŐ°ŮĐŤ×ÍŚĐƞɽ•ÁľŽżłŒÂśŽĂˇÂśŽŔ´Œź°‰źą‰Çť”Č˝•Âśżł‹şŽ‡ˇŤ…şŽ‡˝ąŠž˛Š˝ąŠź°‰¸Ź†´¨‚ł§š­†ž˛‹Ŕ´ŒŔ´Œżł‹żł‹ÂśŽĹš‘ĸ‘Ęż˜ĐƟĎŞÎÛÍš˿˜Čź”Äš‘Çť“ÍÁšŇÇ ŃǟĚÁ™Ăˇ˝ąŠşŽ‡´¨‚ˇŤ…żł‹ÂśŽĂˇĂˇÄ¸É˝–ĐƞĐŞÎÛĐŝÎÜɽ–ÁśŽşŽ‡ľŞƒ°Ľ€Ź˘~Ť |­˘~­ŁĽ›x™Žn‹bypUkcK_XBSM8MG6^ZM‰‡ČĆÄřř÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýüű÷÷ôčćŢŃĚžĆŔ­ÁźŚĆŔŠĐĘąŘҡÚŇľ×вŐΰŇĘ­ĐČŹĎÇŹĎÇŤÍĹŠĚĨËĂĽĚÄŚÍŧÎŧĚĂŁĘÁ Ĺź™ž´ź°‹šŽ‰¸Ź‡ť°ŠžłŽŔľÂśÂˇ˝ą‰şŽ‡ź°‰˝ąŠŔ´Ĺş’Ćť“Ćş’Ĺš‘Ŕ´š­†ąĽ°¤~śŞƒž˛ŠĂˇĂˇĂˇĹš‘Éž–ĚÁšĎŞŇɢŇǥΛǻ“ÂśŽżł‹¸­‡śŤ…˝ąŠĂˇČź”Ęż—ĚÁ™ĎĝŇÇ ĎĜɽ•Ĺš‘Áľżł‹żł‹ÁľÄ¸Ŕ´Œ˝ą‰żłŒÇť“Ęż—ÂśŽťŻ‡şŽ‡š­†şŽˆżł‹Ŕ´Œżł‹ťŻˆˇŤ„´¨‚śŞ„š­†ťŻˆżłŒżłŒťŻˆ˝ą‰Ŕ´ŒĂˇÇź”ĚÁšĐŞĐŞÎÛɽ•Äš‘ĸĆş’Č˝•Éž–Çź”ĸťŻˆ­Ą|˜Žl}sXc[EPJ7=8*&" 
+
+ <<=ççç˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüáßÚĚȸÇÁĽÓËŠŢŐ˛ŘĎŞŘĎŞÜÓŽŕ׳ŕŘłŕŘ´áŘłÜÓŽ×ÍŚŐʤĐŞɽ•Ŕ´ŒşŽ‡ťŻˆťŻˆź°‰ž˛Šź°ˆź°‰Ä¸Âˇź°‰š­†şŽ‡ž˛ŠÂśŽĂˇ˝ąŠŔ´ŒÁľš­†ł¨ąŚ€ˇŤ„¸Ź…ˇŤ„ź°‰ÂśŽÄ¸Âśżł‹˝ą‰Ŕ´Ä¸‘ĸ‘Ęż—ĐŞĎĜ˿—Çź”Ĺš‘Čź”ÎÛÎĜʿ—Áľš­†˛Ś­Ą}ł§‚żł‹Ä¸Ćş’Çź”Ęż—͚ΛËŔ˜É˝•Éž–Ëż˜ĚŔ˜Čź•żł‹ľŠƒąŚ€ł§ľŠƒľŞ„ł¨ƒŤĄ}Ÿ•s‘†gw[riPf^GZS>OJ6OJ:`\OŽŒ…ĐĎÍúúů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűúîíéĐĚžž¸ Áť˘żš żšŸĂź˘ĆŔĽÉÁĽÇŔŁĆżŁĹžŁÄ˝ŁÂş Ŕ¸żˇœÁšÂşžĂť Âşžżˇ›ź´—ş˛”śŹŽ°Ś…ŞŸ}¤™wŸ“r •r˘—u¨ząĽ€¸Ź†¸Ź…ľŠƒśŞ„ˇŤ…š­†ťŻ‰ž˛Šżł‹ž˛Š¸Ź†ąĽŞŸzŹ {ł§ž˛‹Ćş’Ĺş’Ćť“É˝•ËŔ˜Čź”Ĺş’Éž–ĚÁ™ÍÁšÉž–ĸŔ´ŒśŤ†śŤ†ÂˇĆş’Č˝•ËŔ˜Éž–Çź”ËŔ˜ËŔ˜Çť“Ŕ´ťŻˆš­†ˇŤ…š­†ž˛‹żł‹ž˛ŠŔ´Ćş’Çź”ťŻ‰ˇŤ„ž˛ŠÂśŽĂˇÁľŔ´ŒŔ´Œ˝ąŠşŽ†ˇŤ„ˇŤ„śŞƒľŠ‚š­†żł‹ĂˇÁľŽž˛‹ź°ˆź°‰ż´ŒÇť”ËŔ˜ÍšÍÁ™Ęž–Çź”Čź”Çť“Äš‘ÂśŽž˛Š˛Ś€Ą–sŽ„dypUc[EOI7;7)#   EEF˘˘Łííí˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ęéćÓĐÄĂ˝ĽÎĹŁŰŇŽÚŃŹŰÓ­ßײáŮ´ŕ׳ßÖąŕ׳ŰŃŤÓČĄĎĝĎĜÍ›ĸ‘˝ą‰˝ą‰˝ą‰ź°‰ź°ˆź°ˆž˛ŠÂśŽŔ´ź°‰ˇŤ„¸Ź…żłŒĹš‘Ćş’ÂśŽŔ´Œ˝ą‰ľŠƒ°Ľ€ŻĽ€ľŞƒ¸Ź…şŽ‡Ŕ´Ćş’Ćş’ž˛‹š­†ź°‰ÁľĂˇÂśŽĆť“ĚÁ™ĚÁ™Ęž–Č˝•Č˝•Ęż—Íš˿—ĸşŽ‡śŞƒľŠ‚´¨ƒťŻˆÂśÄ¸Ĺš‘Čź”ĚŔ˜Íšȼ”Ĺš‘ĸÄ¸Çť“Ęž–É˝•ÂśŽťŻˆš­†şŽ‡ťŻˆ¸Ź…´¨‚ąŚ¤™w”Šj‡}_{rVnfMbZDVP;PI7QL<jg\ĄŸšŢÝÜüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýőőňäăŰŐŃĹËǸĹŔ°żş¨ľŻš°¨“­Ľ­ĽŒŻ§ŽŻ¨Ž­Ś­ŚŒŽŚŒ°Š˛Ť“Ż§Ż¨łŹ“ˇŽ•ˇ°•´Ź‘ŞĄ…Ÿ–w—Œo‘‡i…f†g”‰išnĄ•s§œxŤ {ŤŸ|Šžz­˘~˛¨ƒśŞ„ˇŤ„śŞƒ˛Ś€Ž˘~ŞŸzŤŸzŻŁ~ľŠƒž˛ŠÂśŽÁľŽĆť“Ęż—Çť“áÂśŽĆş’É˝•Ęż—É˝•Çť“ᐟąŠźą‹Ĺš‘Ćş’Ĺš‘Éž–Ęž–Čź•Äš‘Äš‘Ćş“ĸž˛‹şŽ‡ťŻˆ˝ąŠź°ˆš­†şŽ‡ÁľŽĂ¸ż´śŞ„śŞ„ž˛ŠÂśŽÄ¸Ä¸ÂśŽżł‹š­…ľŠƒ´¨´¨´¨śŞƒź°‰ĂˇĆş’ÁľťŻˆš­…şŽ‡ž˛‹Ĺš’Çź”Çź”Éž–Ęž–Čź”Čź”Čź”Çź”ĸşŻˆŚ›w–Œk‡~_wnSc[ENH672%  OOPłł´óóó˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ńńď×ŐËĂ˝¨ČżŸŐͨÜÔŻßÖ˛ŕ׳ßÖąŢŐ°ŢŐ°ŕ׳ÚĐŞŃǟËŔ˜ÎÛŃǟɾ–ÁľŔ´ŒÁľŔ´Œź°‰ź°ˆž˛ŠŔ´ŒÁľżł‹¸Ź„¸Ź…żł‹Ĺš‘Čź”Čź”¡ťŻˆ˛Ś­˘~Ź˘~ł§‚şŽ†żł‹ÂśŽÄ¸‘ĸťŻˆśŞƒź°‰ÂśŽÄ¸Ŕ´ŒÂśŽĆş’Čź”Č˝•Ęż—ΚĎĜÍšȼ”Áľš­†š­†ź°‰żłŒÄ¸Ćş’ĸĹš‘É˝•Ëż—Éž–ĸĂˇĂ¸ĂˇÄ¸Ćş’Ćş’ĸÂśŽŔ´Œżł‹˝ąŠ¸Ź…´¨‚śŤ„Ť |›‘oƒd„z\{qUldK_XBWP;PJ8WRC}zqş¸´îíěţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţýýýúúřőőńîíččćŕŰŮŃĎËÂżť°ŽŠ›¨˘“Ąšˆ›”™“}š”}›”|›“{›”{›”{Ąš¨Ą‰ŠŁ‹Łœ‚ ™š’wˆl†}b€w\€w[ƒz]ˆ~`„d†g”Šj›ož“q’qŁ˜vŤ˘~°Ľ°¤~Ź {§œxŚœxŠžyŻŁ~ł§śŞ„˝ą‰żł‹žł‹Ä¸‘Çť”ÂśŽŔ´ŒÁľĆş’Çť“Ćş’Ĺš‘Ĺš‘Ĺš‘áĂˇĹš‘ĸÄ¸É˝•ËŔ˜Éž–ŔľŔ´Ćş“Čź”ᏽąŠŔ´Ăˇ˝ąŠśŞ„ľŠƒŔ´ÁľťŻˆśŤ„¸Ź…˝˛ŠÁśŽĹş’Čź”Ćş’żłŒˇŤ„˛§€°Ľ°¤~ł§š­…Ŕ´Ćş’ĸ‘ž˛‹š­†š­…ťŻ‡żł‹Ä¸ĂˇÁľÄ¸Ćş’Çť“É˝–ĚŔ™ËŔ˜Ĺš‘š­†Ł˜t•Šiˆ~`wnTaZDJD31-" ZZZżżżöö÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřĺäŢÉžºžĎĹĄÚŃŹßÖ˛ŢŐ°ÚŃŤÜÓŽŕ׳áŘłÜŇŹÔɢĚÁ™ÎÛŇČĄÍšŹ‘áÄ¸Ä¸żł‹ź°ˆťŻˆżłŒÄ¸Äš‘˝˛ŠťŻˆŔ´ŒĹš‘É˝•Ëż—Č˝•ÁľŽľŠƒ­Ą}ŞŸ{ŻŁ~¸Ź…˝ąŠ˝ąŠ˝ąŠž˛‹şŽ‡ˇŤ„şŽ‡ž˛‹Ŕ´Œź°‰ź°‰Ŕ´Ä¸Éž–ΚŇÇ Ńǟ˿—Čź”Ćş’ĸÄ¸‘Ĺş’Ćş“Çť“Çť“Çť“É˝•Ęż—Çť“ĸĆť“Éž–Ęż—Çź”ĸÂśŽÂśŽÄ¸Ĺş’Ꮮ˛‹şŽ‡¸Ź…š­†ź°ˆłŠƒĽ›y•Œkƒc‡}^zqUkdKbZCYR=SN;b^P‡…{Ŕžşňňńţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţüýýúűűůřřőňňďčçäŢŰŘŐŇÎÄÁşľą¨ŻŹĄ¨¤—œ˜‡—’€”|’z‹wŽ‡o‡n‘Šp“ŒrŒ†l€y`slTngOohNtlQzqU~uYw[…|^‹c…f’ˆh˜Žmž”rĄ–t˘—tĄ–tĄ—sŁšw¨ž{ąŚł¨ł§š­†Ŕ´ŒÂśŽżłŒ˝ąŠżł‹Ŕ´ŒÂśŽĹš‘ĸÁľž˛Šž˛‹ÂśŽĹš‘Ĺš‘ÂśŽÄ¸Çť“ËŔ˜ËŔ˜Čź”ÂśŽÂśÇź”É˝•Ćş’ÁľŽÁľÂśĂˇşŻˆ´¨‚ž˛ŠÁľŔ´Œżł‹˝ąŠ˝ąŠĹş’ĚŔ˜ĚÁ™Éž–Ĺš‘ž˛‹śŤ…ŻĽ€Ż¤ł§š­†ž˛‹ÁľŔ´ŒťŻˆ¸Ź…¸Ź…š­†ź°ˆŔ´Œž˛‹ťŻˆ˝ąŠŔ´Ä¸ĚÁšĐŝʾ–Áľ¸Ź…­Ą| •r…fzpU]V@B=-,( ddeĆĆĆřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüńđíŐŃÇÁş˘ÇžœÔËĽŰŇ­ÚŃŹÚĐŤŰŇ­ŢŐąŢŐ°ÚŃŤŐˤĎĜĐŝÔʢŃÇ ËŔ™Ćş’Ćş’Ĺš‘ž˛ŠşŽ†şŽ‡ÁśŽÉ˝–ĚÁšÇź•Ä¸Ä¸Ä¸Ĺš‘Ćť“Ĺş’ᏽąŠˇŤ…ł§‚´¨‚š­†ž˛‹ž˛ŠťŻ‡¸Ź…˛Śł§˝ąŠÂśÂśŽž˛Š¸Ź…ľŠ„ť°‰Ćş’ÎÛÓÉĄŃÇ Ëż—Čź”Çť“Ĺš‘Čź”Ęż—É˝•Ćş’Ĺš‘Ćş’Čź”Çť“áÂśŽÇť“Éž–Ęž–Ćş’ÂśŽÁľĂˇÇť“Éž–Äš‘˝ą‰ˇŤ„şŽ‡żł‹ź°‰ľŞ„ŤĄ|Ÿ•r—l’ˆhˆ~`{rVphNh`H\U@WR@hdV•’ŠÔŇĐöööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýţţüýýűüüůúúřůř÷ôôňěëęćĺâŕßÝ×ŐŇČĆÁžźśśľŹąŻŚŤŠŸ™•‡Š{ƒ~m{uauoZmfQd]Hb[Fd^HiaJmeMphPtlRxoU}tYx[…{^Šb…f‘‡g’ˆg”Ši—k›oĄ–tŞ |Ź˘}ŠžzŻ¤€ˇŹ‡şŽˆˇŤ…śŞ„ťŻˆŔ´ŒĂˇÄ¸Ŕ´˝ąŠżł‹ÂśŽÄ¸Ćş’ĸ‘żł‹Ŕ´ŒÄ¸Çť“Čź”Çť“áÄš‘Ęż—ĚŔ˜ĚŔ˜Ęż—Ĺš’ÂśŽĹš‘ť°Šł¨ƒżłŒÇź”Ęż—É˝–Ćť“Ĺš’Č˝•Ęż—Čź”Ĺş’áŔ´Œť°‰ľŤ…˛§€ľŠ‚ťŻˆżł‹˝ą‰š­…śŞƒ´¨‚ľŠ‚şŽ‡Ŕ´ŒĂˇżł‹¸Ź…´Š‚š­†ĂˇÍÁšĎĝȽ•Ŕ´ŒˇŤ„ŽŁ~Ą–s…eypU[T?>9*($ mmnËËËřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţúůřĺäßÇÁąÁ¸šÎğÖ̧ŘĎŞŮĐŤŮŃŹÚŃŹÚŃŹŘĎŠŐˤŃƞŃƞÓɢÔĘŁŃǟËŔ˜É˝•Ä¸‘˝ą‰¸Ź…şŽ†Ä¸ĚÁ™ĐŞĎÜ˿—É˝•Ĺš‘ÂśŽÁľŔ´ŒŔ´ŒÁľŔ´ž˛Šź°‰˝ą‰żł‹ž˛Šš­†ąŚ€ŞŸ{­˘~Ŕ´Ćş’Ĺš‘ÁľśŞ„­Ą}ąĽ€ž˛ŒĘż—ŃƟĐƞ˿˜Č˝•Çť“Ĺš‘Čź”ĚŔ˜Éž–ĸ‘ÂśŽĆş’Çť“ĸÄ¸Ćş’É˝–Ęž—Č˝•ĂˇÁľÂśŽÄ¸Čź”Č˝•Ă¸ťŻˆśŞƒťŻˆŔ´ŒşŽ‡ľŠƒ°¤~§y –tœ‘p•Šj‹€bwZvmRkcK]VA^XFsnb§¤žÝÜŰřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙ţýţţüţţüţţýýýýüüüüüüűűú÷÷öńńđëęęććĺááŕŮŘŐÉČĂ˝źśĽ¤œ‹{noj[hcSd^Md^Kd]Id]If_Ih`JldMphPtkRvnT{rWvZx\x\ƒz]ˆ~`Ž…e–‹kŸ•sĄ—tŸ•rŚ›xŹ˘~Ż¤~°¤ł§š­†Ŕ´ŒÄ¸żłŒťŻˆťŻˆÁľŽĹš’Ĺš‘Ĺš‘ÁľŽťŻˆź°‰żł‹Ŕ´ŒĂˇĹš‘ÂśŽĹš‘Ëż—ÍšĎŝŇÇ Ęż—ĸĹš‘ş°Š˛¨ƒż´ËŔ˜ĐƟĎĜĚÁ™Ëż˜Ęž–Çź”ÂśŽÁľŔ´Œž˛Š˝ąŠź°‰ˇŤ„š­†żł‹Ŕ´ŒşŽ‡˛§ŻĽ°Ľ˛Ś€şŽˆĂ¸Çť“ÁľśŞ„Ź |ąĽ€Ŕ´Éž–ËŔ˜Çť”żł‹ľŞƒŤ˘~”rŒ‚cvmSYR=<7)#!  !ttuÎÎÎůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţňňđĐĚÁżˇœÇ˝›ŇȢÖÍŚÖÍŚ×Χ×Χ×Χ×ÍŚŐˤŃƟÎÛÍšŃÇ ÔĘŁŇÇ Íšǻ“Ŕ´Œš­†¸Ź…áÉž–Ęż—Ęž—Ëż—ËŔ˜É˝•Ä¸Ŕ´˝ą‰š­†ˇŤ„şŽ‡żł‹ÂśŽÂśŽżł‹¸Ź…˛§­ŁŠž{ŹĄ}źą‰ÁľÂśŽÄ¸ťŻˆ°¤~Ť {´¨‚ÁľŽČź”Ëż˜ĚŔ™Ęż—É˝•Ęż—Ęż—Éž–Çź”Âśżł‹Ćť“Ęż—Čź”ĚÁ™ĐƞŃǟĐŝËŔ˜Ă¸ĂˇĹš‘ĸŔ´ž˛‹ź°‰š­†śŤ„śŞƒśŞ„¸Ź…ˇŤ„´¨ƒ­Ł~ŚzĄ—tž”r˜Žm†f…{]zqUmdK`YD`ZI~zn˛ŻŞßÝÜřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţüüüřř÷ňňńííěŕŕŢĎĎ̡śąž›”’†‚}rvrerm_ojZnhXicQhaOf`Kg`IibJldLogOphOphOriPypT€wZˆ~`…f“‰h–‹j’p¤™vŚ›wŤ ząŚ€š­†˝ą‰ž˛‹¸Ź…śŞƒš­†żł‹żłŒź°‰ź°‰ťŻˆ¸Ź…š­…şŽ†şŽ‡ž˛ŠÁľŔ´ŒÂśŽÄš‘Çť“Í›ŇČ Íšǻ”Çť“źąŠ´ŠƒťŻˆĹş’ÍšĚŔ˜Çź”Ćş’Ęž–Éž–¡Ŕ´Œ˝ą‰ˇŤ„ˇŤ„şŽ‡żłŒĂˇÄ¸ž˛‹ľŞ…Ž¤ŹŁ­ŁąĽśŞ„ž˛‹Çź”ÁľŽł§ŞžzŤ {śŞ„ž˛‹Ä¸Ĺš‘ź°‰˛ŚŞĄ}œ“r‰€anfMRL894&! &&'}}~××Řűűü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúâŕÚÂť§Äş›ĎşŇȢŇČĄÓÉŁÖĚĽÖĚĽÖĚĽÖˤÓÉĄĎĝÍÁ™ÎÛŇÇ ÔʢĐŝËŔ˜Éž–ĸ‘ÁľŽÇź”Ćť“áĆş’Éž–ËŔ˜ËŔ˜Çť“ž˛‹¸Ź…´¨‚ąĽ´¨‚şŽ†żł‹żłŒź°‰ˇŤ„ľŞ„śŹ†´¨„ł§‚ˇŤ…š­†şŽ‡żł‹˝ąŠˇŤ„ł§ľŠƒťŻˆżłŒÂśĹš’Č˝•Ęž–Ćť“Čź•É˝–øżł‹żł‹Čź•ĚÁ™Ęż—ÎÜŇÇ ĐŞÎÛ˿—Ćş’Č˝•ËŔ˜Ĺš‘˝ą‰š­†şŽ‡š­†´Šƒł¨‚´Š‚ˇŤ„śŞ„´Š‚ą§‚­˘~¨y¤šv –sšn…f†|^{rWmeMb[FhcR‰…yśłŽáŕßűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúúőőôćĺä×ÖÔËÉĆś´°¤˘›ž›”˜•Œ‹‰}{o{wjrm^lfTgaNf_Kg_Je^He^Hf_HlcKqiOyoTvY„{]‰`…f•‹j™Žm –r¨œxŽŁ}˛§‚´Š„ł¨‚śŞ„şŽ‡ž˛ŠşŽ‡˛Ś´¨‚śŞ„ł¨ƒ´¨‚ľŠƒ¸Ź…ź°ˆżł‹Ŕ´ŒÁľĂˇÄ¸Č˝•ÎÛĎĜÍ›˿˜Äš’Ŕ´Ă¸‘ø‘áĆş’Ćş’Ĺş’Ęż—ĚŔ˜Äš‘ž˛‹š­…ľŠ‚´¨ˇŤ„˝ąŠÁľŔ´ž˛Šš­‡´Ş…˛¨ƒ˛§ƒľŞƒśŞƒˇŤ…ž˛‹˝ąŠˇŤ„°¤ąĽ€śŞ„şŽ‡˝ą‰ź°‰śŞ„Ż¤~§z˜nƒz\iaIKF40,! 667–––ęęęţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüęéäǹºœËÁœĐĆ ŃƟÓɢÖĚĽŐˤÖĚĽ×ÍŚ×ÍŚÔʢĐŝΛĎŝÔĘŁŇÇ ĐŝŇÇ ĐŞÎÛĚÁ™Ĺş’żłŒÄ¸Čź”Ęž–ĚŔ˜Č˝•˝ąŠˇŤ„ł§ąĽąĽł§€śŞ„š­†şŽ‡şŽ†˝ąŠÁľŽŔ´ŒťŻˆśŞƒ´¨‚ľŠƒš­†ź°‰˝ą‰ťŻˆťŻ‡şŻ‡źą‰ž˛‹žł‹Ĺš’Č˝•Ŕ´Äš‘Ęž—Ŕľ˝ąŠÂśŽÉž–ĚÁ™Ęž—ĚŔ˜ĚÁ™Ęż—Éž–Éž–Čź”ËŔ™ÍÛƺ“˝ą‰š­†ťŻ‡šŽ‡˛¨ƒ´Š„ˇŹ…ˇŤ„ľŠƒľŠ‚śŞ„ľŠƒąĽŤ {Ś›wĄ–t™m‘‡g‰`|rWnfNe^JpjZŽŠ˝ťśëęéüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűřřřňńńččçáŕßÚŮŘĎÎĚ˝źˇŻŽ¨˘ ˜ƒ‚rwrepk\kfUf`Nd^Jc\Hc\Fg_HmdLsjPxoS{rV€wZ†|^‹b“‰h™mž“pŁ™u¨žz­Ą}˛Ś€ˇŤ…š­‡ł§ŤŸ{ŻŁ~˛§‚Ž¤€ŻĽ€ł§śŞƒťŻˆżł‹ÁľÄ¸Çť“Ĺš‘Ćş’ËŔ˜ĐƞÓČĄĐĝ͚͛ĎŝŻ“ťŻ‰ÂśŽČź”Čź”ĚŔ˜ÍÁ™Çť“˝ąŠľŠƒśŞƒ´¨‚˛ŚśŞƒš­†şŽ‡ž˛ŠŔ´Œ˝˛ŠşŽ‡š­†ź°‰¸Ź…ł§ľŠƒš­†ź°ˆˇŤ„ˇŤ…ź°ˆź°‰š­†ľŠƒ˛Ś€Ź˘}˘—u‘‡g|sWd]FE@0'$ JJKŽŽŽóóó˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ňńďÍÉźÁš Ć˝›ŃÇ ÔĘŁŐˤŐˤÓÉĄŐˤŮĐŞÜÓŽÚĐŞŐˤÔʤŐͧ×ΨÓɢĐŞŃǟÔĘŁÓÉŁÉž—ĸÄ¸Ćş’Ęž–ĚŔ˜ËŔ˜Čź•Ăˇž˛‹š­†˛Ś€°¤~°¤~˛Ś€ˇŤ„˝ą‰Ŕ´Áľž˛‹żł‹żł‹ź°ˆťŻ‡ťŻˆ˝ą‰ź°‰şŽ‡¸Ź…¸Ź†ž˛‹Ćť“Éž—Ĺš‘ĸĂˇż´ŒĹş’Ëż˜ÂˇÁľĹš‘Č˝•Ëż—ËŔ˜Č˝•Ćş’Čź”Ęż—ËŔ˜É˝–Çź”Ćť“¡ťŻˆśŞƒˇŤ…şŽ‡šŽ‡ťŻ‰ťŻˆľŠƒˇŤ„şŽ‡˝ą‰ź°‰şŽ‡ˇŤ…ąŚŤ |Ł˜u›o‘‡g†|^{rVpgNibLsm]‹ż˝¸çćĺűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýúúúööőďîîääăÖÖÓĂ½Š§ ™•‰†z{ntpbjeUf`Oa[GaZEd]Fh`HlcKpgNtkQypT~uX„z\Š€`„d”Šišnž“qŁ—t¨yŤŸ{¨yŚ›wŠžzŹĄ|ŽŁ~ąŚ´¨‚´¨‚š­†Ŕ´ŒÄ¸Č˝•ËŔ˜Ëż—ÍÁ™ŃƟÔĘŁÔĘŁĐŝĎĜĎĝĐŝȼ•żłŒÄ¸Čź”É˝•ĚÁ™ĚÁ™Čź”ÁľťŻˆ¸Ź…ł¨‚Ž¤€ąŚ€ľŠ‚š­†Ŕ´ĂˇŔ´Œź°ˆşŽ‡ž˛ŠťŻ‡ˇŤ„š­†˝ą‰ź°‰˛ŚąĽ€şŽ‡Ŕ´ŒŔ´ŒťŻˆł¨ƒŠŸ{™mŠ€axoT]VA?:,$" QQQźźźúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűáßŮÇ°ºžĚÝŃÇ ŇȢÖĚŚŮĎŞÚŃŹŰÓŽßײŢŐ°ŮĐŞŮŃŤÚŇ­ŮĐŤÔĘŁĎĜÍšĎƞŃÇĄĚÁ™Ęż˜ÍÁšÍšĚŔ™Éž–Çť“Ćş’Çť“Ĺš‘Áľš­†ľŠ‚ł§ł§ˇŤ„˝ąŠÄ¸Ăˇ˝ąŠź°‰ž˛‹ÂśŽŔ´Œž˛ŠżłŒżł‹˝ąŠťŻˆ˝ą‰Ä¸ÍšĐŝɾ–ĸŔ´ŒŔ´ŒÂśŽĂˇĂˇÄ¸Ĺš‘Ĺš‘Čź”Ęż—É˝•Ćş’Ĺş’Çť“Čź”Ćş’áÁľÂśŽź°‰ł§ľŠ‚ˇŤ„ˇŤ„š­†˝ąŠżłŒÁľĂˇĂˇÂśŽŔľŒÂśŽżł‹ˇŤ…­Ą}Ą—t—kŽ„d‡}^zqVogNibLmgTˆ‚všś°ćĺäüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýúúúóňňäăáÓŇĐŔ˝šąŽŠž›“ˆ„z{opk\c]K_YE_XC`YCc[Eg_GlcKpgNtkQypTuX…{]‹€a…e“ˆh—l›n’pŸ”qĄ–s˘—t¤™uŤŸ{ąĽł§š­†Ŕ´ŒÄ¸Čź”ĚŔ˜ÎÛŃǟŐËŁŐĘŁŇÇ ÎÛΚÎÛ˿—Éž–Éž—Í›ĚÁšČ˝–Çť”Ćş“Ĺš‘Ĺş’ĸżłŒˇŹ‡ą§‚˛§´¨ˇŤ„żł‹Ä¸ÂśŽż˛‹˝ą‰ž˛‹ž˛Šź°‰żł‹żł‹ź°ˆľŞ„ľŞ„ťŻˆĂˇĹš‘ż´ŒłŠƒ¤›x”Šj†|^sjPTM:72& 
+jjjŘŘŘţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţěëčŃÍŔĂź¤ČżœÍÜĐĆ ŮĐŞáŘśß׾ÜÔŻßÖąŢŐ°ŰÓŽŰÓ­ÚŇ­×ĎŞŃÇĄËż˜Çź”Éž–ÎÛŇÇĄÓɢÓɢŇČĄÍšŹ‘ÂśŽĂˇĆş’Çť“Ĺš‘ž˛‹ťŻˆš­†š­†š­†ťŻˆÂśĹš‘ž˛‹şŽ‡şŽˆÂśŽŔ´ŒťŻˆ˝ąŠÁľÄ¸Ä¸‘Ćş’Č˝•ĚÁ™ÍÁšČź”áŔ´Œ˝ąŠşŽ‡şŻˆĂˇÄ¸‘Ŕ´Ŕ´ŒĂˇÇť“Čź•Ćť“ÂśŽŔľÁľŔ´ŒżłŒżłŒÂśŽž˛ŠľŠ‚ľŠƒ´¨‚Ž˘~ł§‚ž˛‹Ęż˜ËŔ˜Çť“Ćş’ĸĂˇĹš‘ĸź°‰°Ś¤šwšn“‰hƒd„z\zqUqiPjbKqjX‰„xśł­ééčýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüü÷÷öďďîăăâŇŃÎĂ½ś´Żš˜ƒtrm_gbQ`ZF^VC`XCbZDf]FjaIofLtkPyoT}tXƒy\ˆ}_‹b†f”‰h—Œkšn›n™m •sŞŸ{ł§š­†ž˛Šżł‹ĂˇÉ˝•ÍÁ™ŃƞÓČĄĐƞĚŔ™Çť”Ęž–ĚŔ™Čź”ËŔ˜ŇČĄŐĚŚŃÇ Č˝•Áľž˛ŠŔ´ŒĆť“Ęż—Ćş’žłŒš­†š­†ˇŤ„ľŠ‚ź°ˆÄ¸Ĺš‘Áľ˝ą‰ž˛Šżł‹żł‹żł‹ź°‰ťŻˆżłŒÁľŽÁľŽĹš’Ĺš’ž˛ŠąĽ€˘˜u“ˆh‚x[kcKLF5/+ 
+$$$wwwäääţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őôóŰŮĐĆÁŹĹ˝ÍğÖĚŚÜÓ­ŢŐ°ÜÔŻŰŇ­ŰŇŹÜÓŽŢŐąßÖ˛ŰŇŹÓÉŁĆź•˝ąŠź°‰Ćź•ŇȢ×ΨÖĚĽŇÇ Ďĝʿ—Ĺš’ÂśŽÁľĂˇĆş’Ĺš’ž˛‹ž˛‹ÁľÁľŽž˛ŠťŻˆÂśŽĂˇź°‰ł§ąĽ€ťŻˆž˛Šź°ˆ¸Ź…şŽ‡żłŒĹš‘Éž–ËŔ˜ËŔ˜É˝•Ä¸ÂśŽ˝ąŠł¨‚śŞ…żłŒÇź”øşŽ‡š­†ž˛ŠÁľź°‰¸Ź†şŽ‡ťŻˆťŻˆťŻˆš­†¸Ź…ź°ˆťŻˆśŞ„ˇŤ„śŞƒł§š­‡ÂśÇź•Č˝•Ćť“ÂśŽĂˇČ˝•ËŔ˜Ćť“ťŻˆŹ˘} –s™Žm˜Žl–ŒkŽƒd„{]|sWrjPibKngT‚}pś´Žîíěýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüűřř÷óóňééçŇŇĎž˝š§ĽŸ”ˆ{vjniYjdS`YFaYEbZDf^FjbJofMsjOxoT{rV~uYƒy\‰_Žƒc“ˆh•‹k˜kŸ•sŠž{ŻŁ~ľŠƒ¸Ź…ˇŤ„˝ą‰Ćş’ĚÁ™ÎÛÍÁšÇť”żłŒˇŹ†żłÉž–Í›ŃǟŐˤÔËŁĎŝȽ•ÁľŽ˝ą‰˝ąŠÄ¸É˝•Ä¸Ŕ´Œżł‹ÂˇżłŒš­†żł‹Ćş’Ĺš’şŻˆ˛§śŞƒťŻˆž˛‹ź°‰şŽ†şŽ‡Ŕ´ŒÄ¸Ĺš‘É˝•Ćş“¸Ź†­Ą}ž“r†|_tkQbZDHB1,( &&'|||ęęę˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűçćŕÍʺŸĄĘŸ×ͧŰŃŤŮĎŠŮĐŞŮŃŹŘĐŠÚĐŞÜŇ­ŰŃŹÖĚŚĎĝ̒˝ą‹˝˛ŒČž˜ÓÉŁŐËĽĐĆ Ęż˜Äš‘ÂśĂˇÄ¸Ä¸ĂˇÄ¸Ăˇž˛ŠÂśŽČź”Čź”᏿łŒÁľŔ´Œ¸Ź†°¤Ž˘}ľŠ‚ťŻˆž˛Šš­‡¸Ź…ťŻˆĂˇËż—Íšɾ–Ĺš‘ÂśŽ˝ąŠˇŤ…˛§‚ťŻˆĹš’Çź•ÁśşŽ‡ťŻ‡˝ąŠź°‰ł¨‚ŽŁ~´¨‚ľŞƒ´Šƒł§‚ł§śŞƒš­…şŽ†¸Ź…š­†ťŻˆž˛‹ÂśÄ¸‘ĸĹš‘Ĺš’żł‹ÁľŽČ˝•Ćź•ÁśşŽ‡ŽŁ}Ľ™vĄ—sĄ—u –s—Œkƒd…{]{qUqgOiaJjbOzuf§¤œŰÚ×÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůůđđďääăŐÔŇźťˇŽŹŚĄž•|pysekeTe^Kc\Fe]GiaImeLpgNsjPwmS|sWw[†|_Œ‚c‘‡f™nĄ—tŚ›xŹ {ŻŁ~ŻŁ~ľŞ„żłŒÂśÄ¸‘Ĺš‘Ŕ´ŒşŽˆśŤ†ż´Ęž—ĎŝŃƟĎĝËŔ˜Ĺş“ÁśÁśŽÁľŔ´ĂˇÄ¸ÂśŽŔ´ŒÂśŽĘž–Çź”Ŕ´ÂśÄ¸Ŕ´Œ´Šƒ­Ą}°¤¸Ź…ž˛Š˝ąŠşŽ‡¸Ź…˝ą‰Ă¸Č˝•Çź•ÁśśŞƒ§œx•ŠjyoUiaI[T?B=-($  ++-†††óóó˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţôôňÚŘĐÄžŠÄ˝œŃȢ×ÍŚŘĎŠÚŇŹÚŇ­ŮŃŹÖÍŚŇČ ĎĝÎÜĎĝĎĝÎĝÍÜĚšËŔ˜ËŔ˜Čź•ÂśŽ¸­†śŞƒťŻˆÄš‘Éž–Çť“ĸÂśŽÁľĆť“ĚŔ˜Ęž–Çť“Ĺš‘Ŕ´ŒťŻˆš­†śŞ„´¨‚´¨‚şŽ‡Ŕ´Ăˇżł‹ź°‰ĂˇËż—ÍÁ™Čź”ĸĂˇ¸Ź†˛Śž˛‹Ĺš‘Ĺş’żłŒżłŒÂśÄ¸ÁľşŽ‡ˇŤ„´¨‚ąĽŻ¤ŹŁŠž{°ĽşŽ‡˝ą‰ź°‰ťŻ‡˝ąŠĂˇÇź”Ĺš’áĆş’Çź”Çť“ÂśŽŔ´ż´Œ¸ŽˆˇŹ‡˝ąŠź°‰š­†ľŞ„ŻĽ€Śy›‘o‘‡g‰€awZwnSogNiaJh`Luo^ž›‘ŇŃĚööőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýřřřňňňěěěŢÝÜÇĹÁ´˛Ź˜•Œ†‚vrm\jdRd^Jd]Ff^GiaImdKpgNtkQxpUuY†|^ƒd•ŠišmŸ”r˘—t§œxŽŁ}ł§Ż¤ł§‚˝ąŠż´ŒÂśÉž˜ĚÁšĚÁ™Ęž—Çź”ĸž˛‹ˇŹ†´Ş…˝˛ŒÇť“Éž–Ćş’áÁľÁľĂ¸Ęż—ËŔ˜Çť“ĸž˛ŠˇŤ„ľŠƒ´¨ł§š­†Ŕ´ŒĂˇ˝ąŠˇŤ„ź°‰Ĺş’É˝–ŔľŽš­†ˇŤ…Ł˜tŠ€avmSh`IXQ=<7*!
+ 88:ĄĄ˘ýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűúçćáËǡžĚÞŐËĽŰŃŹÝÔŻÝÔŻŮĐŤÓɢÍ›ÎÛŃƞŇÇ ĐƞÎÛËŔ˜Éž–Č˝•Ęż—Č˝•ÁľŽł§­Ą}´Š‚ż´ŒÇť“Čź”Ćş’Ĺš‘Čź”ËŔ˜Íšʾ–Éž–Ęž–Äš‘żłŒź°‰şŽ†¸Ź…şŽ†Ŕ´Ćť“Äš‘Ŕ´żł‹Ä¸‘Ëż—ÍšËŔ˜Çť“ᐽą‹ťŻ‰Ĺš‘Čź”Ĺš‘˝ąŠťŻˆżłŒÂśŔ´ŒşŽ†¸Ź…ľŠ‚­Ą|ŹĄ|ŹĄ}§œy­Ą}śŞƒ¸Ź…ťŻˆŔ´Ĺš‘Ćť“øÁśŽÂśŽÇť“Éž–Ęż—Ćş’żłŒš­†ˇŹ…ş°‰ÁśŽÂśŽž˛‹śŹ†˛¨ƒ­Ł~¤™v›n‘‡g‡|_}sWvmRofMjaJiaMxrcĄž”ÝÜÚůřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýúúúôóóććĺÓŇĐžźˇ ”Œ€{vgkeRd]Ic]Ge]Gg`HkbJpgMumR{rV‚y[ˆ`Žƒd“‰h˜Žlœ’o˘—t§œx§œxŹĄ}ˇŹ…˝ąŠÁľŽĹş“Çť”Ćť“Äš‘ĸÂśŽš­†°ŚŽĽšŻ‰Ĺş’Éž–Čź”Ĺš‘ĸĆş’Č˝•Ęż—ËŔ˜ËŔ˜Éž–ᏻŻ‡¸Ź…¸Ź…š­†ž˛‹ĂˇĂˇżł‹ťŻˆŔ´Çť“É˝•Ăˇź°ˆľŠƒ˘—t‚czqVh`IRK962%
+
+QQSČČÉţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţđđíŃÍÁŔş Ć˝šÓČŁŰŃŤÜÓŽÜŇ­×ͧĐŞËŔ˜ĎĝÓČĄĎŝËŔ˜Ćş’ÁśŽÄ¸Č˝•ĚŔ˜Ęž–Ᏼ¨‚Ž˘}´¨‚ťŻ‡ÁľÄ¸Ćş’Éž–ÎĜĐŝÎÛʾ–Č˝•Č˝•Ćť“ĸÁľž˛Š˝ą‰Ŕ´Çť“Ęż—Ĺš‘ÁľÁľĆť“Ëż—͚͚˿˜Çť”Ćť”Çť”Çť“Ćş’ᏼ°‰š­†ťŻˆ˝ąŠź°‰şŽ†şŻ‡¸Ź†Ž˘}­˘|Ž˘|ŠžzŹ {˛Ś€ľŠƒź°ˆÄ¸Čź”Ĺş’ž˛‹˝˛ŠÁľĹš‘Č˝•É˝–Ĺş’˝ąŠľŠ‚¸­†żłŒŔľŽžłŒ¸­‡ŻŚ‚°Ś˛§ŽŁ|Ľ™v™m‹cw[|rVulQogMiaJibN}xiľ˛Ťĺäâüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüöőőééçŮŘŐÇĹÁ­ŞŁŠ|vhnhWhbNg`Kf_Hh`IleLrjOxoS~uXƒy\ˆ~_ƒd’‡f–‹jœ‘oŸ•sŚœy°¤´¨‚śŞ„ˇŹ†şŻˆž˛‹ÁľŽĹš‘ᏸŹ†°Ľ€ą§‚šŻˆÁľŽÄ¸Ĺš‘Ćť“Ęž—ÍšÎÛʿ—Ęž–ËŔ˜Ëż˜Ćť“Ŕ´˝ąŠ˝ą‰Ŕ´Ä¸Ćş’ÂśŽżłŒżłŒĹš‘Čź”Çť“Ćş’Ŕ´Œł§Ľ™u”Ši}uXd]FIC3.+ 
+((*qqrččč˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űúůáŕŮĆÁŻÁššĚÁœÔʤÔɢÔɢŇÇ ÎÛʾ—Íšʿ˜ÂśÁľŔ´Œ˝ą‰ÁľÇť“Čź•Ćş’ÂśŽ˝ąŠťŻˆťŻˆşŽ‡şŽ‡˝ą‰ÂśĘż—ÓʤÓÉŁĎĜʾ–ÂśŽťŻˆ˝˛ŠĂˇĆş’Ćş’Ĺš’Ćş’Čź”É˝•Ćş’áĂˇÉ˝•ËŔ˜Ęž–Ęž–Í›ŇÉŁŃÇ ËŔ™Ăˇž˛‹ź°ˆš­†şŻ‡ź°‰ťŻˆš­†şŽ‡ÂˇĆş’˝ąŠľŠƒąĽ°¤}˛Ś€¸Ź…żłŒÂśŽÁľżł‹˝ąŠž˛ŠżłŒŔ´ŒÁľżłŒ˝˛ŠťŻˆˇŤ„ł§śŞƒśŹ…˛Š„°§ƒŽĽŹŁ€Ž¤€ąŚ°¤~ŞŸzĄ–t•Šj‹a„z]{rVsjPlcKiaIjbN|mł°¨čçĺýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúňňńĺäâŃĎĚż˝ˇŁ —”†‰ƒwzscqjWleNldMogOulSypU}tXx[†|_‹€a„e•Šj’p˘—t •rŸ•sŠ |ŻĽ€ľŠ„ÁľĆş’ĸš­†ľŠƒşŻˆ˝˛Šźą‰¸Ź†ź°‰Ä¸‘ĎŝÔɢŇČ ĚÁ™Ćş’ᐿłŒž˛‹ŔľĂˇĹš’Ćş’Çť“Ćş’Áľ˝ąŠ˝ąŠĂˇĹš‘ÂśŽÁľž˛ŠśŞƒŤŸz™ŽmypU[S?>:*$" <<=‘ňňň˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţďîëĎËžż¸Ćź˜ÓɢÓĘŁÓɢŃƟÍšɾ–Ęż—É˝•Äš‘øÂśŽž˛ŠŔ´ŒĂˇÂśŽĂ¸Ĺş’ÂśŽťŻˆśŞ„¸Ź†˝ą‰Ŕ´ŒÄ¸Éž–ĎşĐƟĎÜĚÁ™Ĺš‘˝ąŠź°‰Ŕ´Ćť“Ęž–Éž–Ćş’Ćş’Ćş’ÂśÂśŽĹš‘É˝•É˝•Ćş’Č˝•ĎŞ×ΨÔˤĚÁ™Ŕ´ź°‰ź°ˆź°ˆšŽ‡śŤ…ľŠƒ¸Ź…żłŒĆť“Č˝•ÁľŽşŽ‡ľŠƒˇŤ„š­†˝ą‰ÁľÁľ˝ą‰şŽ†şŽ‡ž˛‹ž˛‹˝ąŠżłŒž˛‹ź°ˆš­†śŞ„´¨‚´¨‚´Šƒ´Ş„´Ş…łŞ„˛§‚˛§˛Ś€­Ą|Ź {Šžy’p’‡gŠ€a€wZxoTriPneMiaJleRˆƒvžťľëęéţýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűúúőőőëëęŢÝÚÓŃÎŔ˝šŤ§ –’†…oyr`umYtmVtlSwnT{rW€vZ„z\ˆ~_Žƒc”Šišmšnœ‘p¤šwŠžzŽ˘}š­†Ŕ´ŒÂśŽź°‰¸Ź…¸Ź†ˇŹ†ˇŹ†¸­†ž˛‹Ĺş’Í›ŇČĄÔɢÎÜȼ”ᏼ°‰ź°‰ĂˇČź”Ęż—Č˝•Čź”Ĺš‘˝ą‰ź°‰ŔľÇť”ĸ‘ť°ˆťŻ‡şŽ†´¨¨y•ŠjphORK873% 
+UUVˇˇˇůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůř÷ŢÜÓ½§Âš—ĎŞÔËĽŐˤŇÇĄÎÛʿ—Ëż—ĚÁ™ĚÁšËŔ˜Çź”Áľž˛Šź°‰ź°‰ÂśČź•ĂˇˇŤ…°¤¸Ź†ÂśŽĹš’Çť“Čź”Ęż—ĚÁ™ÍšÍšʿ—Ĺş’żłŒŔ´ŒĆť“Ęż—Éž–áĂˇĂˇżłŒÁśŽÇť“Čź”Ćş’Ćş’Éž–ĎŝŇɤŃÇ Ęż—˝˛Šź°ˆž˛Š˝ą‰ˇŹ…°Ś‚ŻĽ€śŞ„ÁľĆş“Ćş“Ŕ´ŒťŻˆ¸Ź…¸Ź…ťŻˆżł‹ÂśŽŔľ˝ąŠťŻ‡ź°ˆž˛‹ž˛Šź°‰ž˛Šž˛Šź°‰şŽ‡š­…ˇŤ„ľŠƒ¸Ź…˝ąŠżłŒ˝ąŠˇŤ…ľŠƒ˛Ś€ŤŸ{Ž˘}°Ľ¤˜v—Œk…e‡}_wZ{rVulQofMiaKpiW‰„vźšłîíěýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýüűúú÷÷öíěëŕŢÜËČÄ´ąŠ™Ž‘‹~{ixr\xpYyqXzqV~uX‚y[‡}_ƒc’‡g—Œkœ‘o •sŁ˜uĽšvŹ |ľŠƒź°‰˝ą‰š­…ł¨‚°Ś´Ş„žłŒÄ¸‘Çź”É˝–ÎÛŇÇ ÎÛʿ—Çť“Ŕ´ŒżłŒĆş’Ęž–Ęż—Çź”Ćş’Âśš­†źąŠĆş“Ęż—ø¸Ź…ˇŤ„ľŞƒŹ {Ÿ”rŒcf_GJD32.!
+ ))*zz{ŰŰŰţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýěëćĘĆľžś˜Čž™ĐƟŇÇ ÓČĄŃƟĎĜŇČĄÓɢĐŞĐŞÍݦˇŤ…ąŚ€şŽ‡Ŕ´ÁśŽ˝ąŠš­‡şŽ‡Ŕ´ŒĆş’Čź”Čź”É˝•ĚŔ˜ËŔ˜Ęž–Ęž–Éž–Çź”Ĺš‘Ĺš‘Çť“Ćş’ĸÁľž˛‹ž˛‹ÂśČź•Ęż—Ćť“Čź”Í›ĚÁ™Ç˝•Äš“Ćť”Ćť“ź°‰ź°ˆ˝ą‰¸Ź…´Šƒł¨ƒąŚ€ł§€¸Ź…ÁľÄ¸˝ą‰š­†´¨‚Šžz°¤ž˛‹Ćť“Ęž—Çź”Âśżł‹Ŕ´ÂśŽÁľŽťŻˆ¸Ź…ˇŤ„ťŻˆťŻˆşŽ‡ž˛ŠÁľŔ´ĂˇŔ´ŒľŠƒŽŁ}Ť {ŹĄ{ąĽ˛§¨y •r›o“‰iŒ‚c„{]|sWulQneLjaKohT‰„użźśěëéüűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýüüřřřňńđĺĺâŐÓĎĂÁť¨¤šŠz†€n~wbyqZzqW~tY‚x\‡}_‹‚b‘†f•Œkšnœ‘oœ‘oŸ”q¨œx˛Ś€´¨‚´Š‚śŞƒľŞƒşŻ‰Çť”É˝•Čź”Čź”Ęž–Ëż—Çť“Čź”Ëż—Çť”Ĺš‘Çť“Ćş’ĸÂśŽżłŒ˝ąŠźą‰ĂˇĘż—Çź”Áľ˝ą‰˝ą‰˛§œ’o‘†f€wZ\U@D>.-) @@Aœœííí˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷öÜŮĎÁş˘Â¸•ĚÁ›ĐşÓČĄÓČĄÓÉĄÖÍŚÔˤÎÛÍšËŔ˜Ä¸ťŻ‰ľŞ…şŽ‡ˇŤ…˛ŚľŠƒťŻˆżł‹ÁľÄ¸‘Éž–Ëż—Ęż—Éž–Çť“Ĺş’Çť“Čź”Čź”Čź”Čź”Çť“ĸŔ´ŒŔ´Œž˛Šżł‹Çź”ĎĝŃƟĘŔ˜ËŔ˜ĐŞ˿—áÁľÇť“É˝–ź°‰š­†¸Ź…ľŠƒśŞ„š­†´¨‚˛Ś€ˇŤ„˝ąŠ˝˛‹ľŞ…˛¨ƒŽ¤Ł˜uŠyš­†Ä¸Ęż—ËŔ˜É˝•Ćť“Ćş’ĸÁľź°‰ˇŤ…śŞƒź°‰ž˛‹˝ąŠÁľÂśŽž˛Šž˛Šź°ˆľŠ‚°¤~­˘}ŻŁ}Ź {§œxĽšwĽ›x¤šwœ‘p•ŠjŽ„e…{]}sWukPneLkcKpiU‡‚tąŽŚŢÝÚřř÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúúööőěëęŘ×ÓźşłŤ¨•€‰ƒpybw]vZ‚x[†|^‰aŽ„d“ˆh•Ši˜kœ‘p •r˘–sĽ™u­Ą|ľŞƒ¸Ź…˝ąŠĆť“Ęž–Ęż—Čź”Çť“ĸÂśŽĹš‘Ęž–Éž–Čź”Çť“ĸŔ´Œżł‹ź°ˆşŽ‡ÁľČ˝•ĚÁ™Éž–ĸŔ´Œź°ˆŹĄ|’ˆg†}^xpUVP<=8*&" XXYąą˛óóó˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üűűçĺßÉĂąžľ”Čž˜ĎŞŃǟŇČĄÔĘŁŐˤŃƟʾ–Ćş’Ĺš‘Çť“ĸ‘żłŒ¸Ź†ŹĄ|Ľšw°¤şŽ‡ź°ˆťŻˆż´ŒĘż—ÎÛĚÁ™Ä¸ÂśŽĂˇĹš‘Çť“Çť“Čź”Čź”Çť“áŔ´ŒÁľÁľĂˇĘż—ŃÇ ÔʤĎƞ͚͚ƺ’ÂśŽĆş’ĚÁšÍ›ż´Œ¸Ź…ľŠƒ¸­†ź°ˆťŻˆ´¨‚ł§‚ťŻˆź°‰ˇŹ†Ž¤€Ź˘ŞĄ~ŚœyŠžząĽ€şŽ‡ÂśŽÇť“Ęż—ÍÁ™ĚÁ™Ä¸‘˝ąŠž˛Šź°‰şŽ‡ž˛Šżł‹żłŒżłŒ˝ą‰š­†śŞƒľŠƒˇŤ„ˇŤ„´¨‚Ž˘}Ł—t›nĄ–s§œyĽ›yž”ršn—ŒkŽ„d„z]xoTqhNldKjcLpjU„p¨¤›ÚŮÖöööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýůůůňňńĺĺâŐÔĎžťłŤ§œ—’‹„pƒ{c€w\‚x[…{]ˆ`Œ‚c†e•‹i›oœ‘o™Žlœ‘mŚšvąĽ€ľŠƒš­†Ŕ´ŒÇź”ĚŔ˜Č˝•Ĺš‘ÂśŽŔ´ŒĂˇĆť“Čź”Čź”Çť“ĸŔ´ŒżłŒ˝ą‰ź°‰Ä¸Ęż—ÍšĚÁ™Ćť“żł‹ľŠƒ¤™uŒ‚c€wZriPRK951%
+
+ eeežžż÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţńńíŃÍŔ˝ľ˜Ăš•ÎÝŃÇ ÓɢÔĘŁŃǟĚŔ˜É˝•Ćş’Çť“Éž–ᏸŹ†ŻŁ~ޞzŤŸzľŠƒ¸Ź†˛Ś´¨‚˝ąŠČ˝•ÍšĚÁ™ĂˇÂśŽÄ¸Ä¸ĂˇÄ¸Ćş’Čź”Çť“Áľž˛‹ĂˇĹš‘Ćş’Éž–ĚšÎÜĚÁ™Ëż—É˝•ÁśŽž˛ŠÂˇČ˝•ËŔ™Çť”Ŕľ˝ąŠÂˇÂśşŽ‡°¤ŻŁ~¸Ź†ź°‰¸Ź†Ť }¨Ÿ|ŞĄ~Ť |ŞŸzޞz­Ą}śŞ„ÁľŽČź”ĚŔ˜ÍšȽ•ÂśŔ´ŒÁľÁľ˝ąŠ˝ąŠżł‹˝ą‰¸Ź…´¨‚´¨‚ˇŤ„ťŻˆşŽ‡´¨‚Śšwž“qŸ”rޞy¨y“q“q –tŸ•s–Œl‹bzqUogMi`He]Ff_HleQ|wf¨ĽœŐÔŃńńđýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýůůřňńđčćä×ŐŇŔ˝śŠ¤—–~‹„oƒz`ƒy^…{]ˆ~`Œ‚c†e–‹j˜k˜Žl’oĄ–t§›wޞz°Ľ€şŽ‡Ă¸Éž–Čź”ĸÁľŔ´ŒÁľÄ¸Ćş’Čź”Çť“ĸŔ´ŒŔ´Œž˛‹żłŒĆş’É˝•Éž–Çź”ÁśŽš­‡Ť {™Žmˆ~_wnSd]FGB1+( ##%}}}áááţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřáß×Ä˝§Ŕˇ•Ęż™ĐƟÓÉŁŐˤŃƟÍÁšËż—Ęż—ËŔ˜ÍÁ™Ä¸‘śŤ„ŠžzŠžząĽ€ź°‰şŽ‡°Ľ€ˇŹ…Ŕ´ÂˇĹš’Çť”Ćş“Çź”É˝•Ćť“Ĺš‘Ĺš‘ĸÂśŽŔ´Ŕ´ĂˇĘž—Ëż—Čź”Ćş’Çť“Çť“áÁľŽÁľťŻ‡š­…żł‹Ĺş’Ęż—ĚŔ˜É˝•Çź”ËŔ˜Ĺş’š­†°¤ŽŁ~´¨‚ˇŹ…śŤ…°Ľ€Ž¤°Ľ€ąŚ€ŹĄ|§œxŞŸ{´Šƒž˛‹ĂˇÉ˝•ÎÜËŔ˜Ĺš‘ÁľŔ´Œżł‹şŽ‡˝ąŠÂˇžł‹š­†ˇŤ„¸Ź…ź°ˆżł‹żł‹¸Ź…¤™uŸ”r§›x˛§ŽŁ~ •sĽšwŠ {˘™w™o„e}sXpgNg_G`XB^WAbZCf_Juo_—“ˆĚËÇđđďüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüöőőčçĺÔŇÍÁ˝ľŤ§š’Œy‡~fƒz^„z]‡}_‹bŽ…e“‰i˜Žl’p˘—tŚšw¨œx­˘}śŞ„ź°‰ÁľŽĆş“Çź”Çź”Ćş“Ĺš‘Ćş’Çť“ĸž˛ŒŔ´Ä¸‘Çź•Ĺş“øĹš‘Ĺš‘ĸÂśŽš­†­Ą|Ÿ“q„evYkcKUO;;6(  667ŤŤŤüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üűűęéäËĆľżś˜Ĺť•ÎĜÓɢÖĚĽÖĚĽÓɢŃƞĐŝĐŞŃƟĚÁšÁśŻŁŹ {´¨‚żłŒŔ´ź°‰Ä¸‘Ćť“ž˛‹ťŻˆ˝˛‹Çť”ĚŔ˜ÎÛ͚͚ʿ—¡şŽ‡š­†ÂśÍÁšŃǟĎĜɽ•Ä¸Ä¸Ä¸ťŻˆˇŤ„şŽ†śŞƒˇŤ„żłŒĆť“Ęż—É˝•É˝•Ęż—ÍÁšĆť“ź°‰ˇŤ„ľŠ‚ł§°Ś˛¨ƒ¸­†¸Ź…śŞƒľŠƒŻ¤~Ť {´¨ƒź°‰ž˛ŠŔ´ŒĆť“ÎĜʾ—ÂśŽżł‹ťŻˆˇŤ„š­†ÁľŽČ˝•Ĺš‘Ŕ´Ŕ´ÁľÁľŽĂˇĹš‘Ŕ´Ž­Ą}Ľšwޞ{śŞ„¸Ź†˛Ś€ˇŤ…´ŠƒĽšx™ŽmŽ„e‚y\umTjcLa[D`YBc[Db[De]Gtm]—“ˆÁŔşëęéűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúňňńçćäÍËÄąŹ ™“Š‚j…|b„{^‡~_‹b…e“Ši›nŁ˜uŤŸz­Ą|ąĽśŞƒľŠƒśŞ„ÂśŽĘż—ĎĝÎÛÍšĚÁ™Ęż—żłŒł¨ƒť°‰Éž—ŃȢÎĞȽ•Ä¸ÁľŔ´Œž˛Š˛Ś€ •r–‹jˆ~`tkQ`YCKE41-"SSTĆĆĆ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţňňđÔĐĂÁş Áˇ•Ęż™ÓĘŁ×ΨÚŃŹŰŇŹÚĐŤÚĐŞŰŃŹÝÔąŘĎŤÍĞť°ŠśŞ„şŽ‡Ŕ´Ä¸Ćş“ËŔ˜Ęž—żłŒ¸Ź…śŞƒ˝ąŠĆş“ÍšĎĜĎĜÍšƻ“ž˛‹ź°‰Ĺş’ĎĜŃǟŇČĄĎĞ̒¶ŽÁľşŽ†š­†ž˛ŠşŽ†š­†ÂśŽĂˇÂˇĂˇŔľŽŔľŽÇť”Çť”ÁśŽž˛‹ťŻˆš­†ľŞ„ł¨ƒśŞƒľŠƒ´¨´¨´¨ľŠƒš­†şŽ†š­†ź°‰ÂˇÇź”Äš‘ŔľŔ´Œ˝ą‰ťŻ‡żł‹Ĺš’Éž–Éž–Ęż—ĚÁ™ĚÁšÍ›ÎĞĎŞʿ˜ˇŹ†ąŚ€´Šƒš­‡˝˛‹ÁľŽĂˇź°‰ŹĄ}ž“r‘‡h„{^{rXrkSicKg_Hg_Ge]Fb[De]InhVŒ‡{ż˝ˇâáŕ÷ööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţřřřéčĺÓŃËšľŞĄœŒ‘Šv†}d„{_†|_Š€a…e–Œjž“q§œxŹ |°Ľ´¨‚ąŚ€ŻŁ~ľŠ„žłÉ˝–ÎÛĎĜĎĜÍšĸ‘šŽ‡żłĘż—ŃČ ŇČ Ďĝʾ–Áľš­†ˇŤ„Ž˘}Ą•s˜l†}_ldKYR>E@0(% !!"ddeăăă˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýčćŕĚČśžś›Äş–ŃÇĄ×ΨÜŇŽßÖąŕ׳áŮśĺÝťçŕÁâÚšÖͨǟ•Ŕ´ŒŔ´ŒŔ´ŒĆş’ĚÁšĎŝÍšź’ź°‰śŞƒš­†Ă¸ÍšĎĜĎĜÎÛËŔ˜Çť“Ĺš‘É˝•ÎšĐŝŇČĄŃÇĄČ˝•Ä¸Ăˇžł‹ŔľĹš’žł‹ź°ˆÁľŔ´żł‹Ŕ´ťŻˆˇŤ„ž˛‹ĂˇĂ¸ÂśÂśŽŔ´˝ąŠ¸Ź…´¨ąĽąĽł§ˇŤ„¸­‡śŞ„´¨śŞƒťŻˆżł‹ž˛ŠŔ´ŒÂśŽĂˇÂśŽÁľĆť“Č˝•É˝•Ëż—ĎĜŇČĄŐˤ×ΨÚŃŤŘĎŠŃƟŔľťŻˆź°ˆşŽ‡Ŕ´Éž–Ëż—Ĺš’š­‡ŤŸ{œ‘p‚e…|a~w\ypWumTqiQkdMh`Hf^Gd]GjdPƒpŠŚžŇŃÍńđďýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţűűűđďîßŢŮËÉĂŻŤŸ™“‚‹„m…}b…|_‰`†f—Œlž”qŁ˜vŞŸyŻŁ~Ż¤­˘}ŽŁ~ˇŹ…áĚŔ˜ĎĜĎĜĎĜËŔ˜Ćş“Ćť“Ęž—ĐŝŃÇ ŃƟÍš÷¸Ź…ł§€­Ą|Ľšw™Žnƒy\e^GRK8=8*  556‡‡ˆůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůăáŮĆżŤŔˇ•ĘŔšÔĘŁŘĎŠŰŇ­ÝÔ°ăŰščáÂčáĂâÚš×ΊËŔ™Ä¸ÁľÁľĆş’ÍšŇÇ ÓɢĐŞǼ”ÂśŽÇź•ĚÁ™ĎĜĎĜĎĜĎÛÎÛÍ›ÍÁ™Ëż—Ëż—͚͛ĚÁšĚÁ™ĚÁ™ËŔ™Č˝•É˝–Ęż—ÂśťŻˆ˝ąŠÁľŽÄ¸‘Ĺš‘ž˛‹ˇŤ„śŞƒ¸Ź…ťŻˆÁľŽĹš’Ĺš’ÂśŽ˝ą‰¸Ź…´¨ł§šŽ‡ˇ­†°Ś‚ŹĄ}°ĽşŽ‡ž˛Šź°‰¸Ź…ž˛‹Çź”Ëż—Çť“ĸÉž–Ëż—Č˝•É˝•ĚÁ™ĐŝŐĚĽÚŃŹÝÔŻÚĐŤŇȠĸ‘˝ą‰ťŻ‡š­†żł‹Çź”ĚŔ˜ĚÁ™Ćť”ťŻ‰ŽŁ~Ł˜uœ‘p”Šl„gˆd€x^xpWqiPnfLjbJf^GhaMwraŒ€ż˝ˇççĺřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűďďíŮŘÔÂŔˇŤ¨š•}ˆi„{a…|_Œ‚c“‰h˜Žm •r¨xŹĄ}ŽŁ~´¨ƒť°‰Äš‘ĚÁ™ĎĜĎÛÎÛĎŝĐƞĚÁšËŔ˜ŃƟĎĝ˿—É˝–Çť“ÂśŽˇŤ…ŻŁ~Šx”‰iypU`YCFA1/+ HHI¤¤¤ýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýďîęŇÎŔŔ¸Äş–ĎŞŐËĽŮĐŤÜÓ°á١ĺÝźâŰşÝŐąÖĚŚĚŔ™Ćş’ĸÄ¸Çť“ËŔ˜ĐŝŃǟĎĜËŔ˜Éž–ÍšĎĜĎĜĎĜΚÍÁ™ÎÛĐŞŃƟÍÁšÉ˝–Ëż—ËŔ˜ĚÁ™ĎÛĐƞŃǟĐŞĎĜÎÛȽ•Ä¸‘ĸ‘Ćş“Ćş’ÁľŽšŽˆłŠƒśŞ„¸Ź…š­†ťŻˆŔ´Ĺš’ÁľŽ˝ąŠž˛‹şŽ‡ˇŤ„˝ą‰ť°‰śŤ†ł¨‚ł¨‚ľŤ…šŽ‡ź°‰˝ąŠÄ¸‘ËŔ˜ÎÛʾ–Ćş’Éž–Č˝•Ćş’É˝•ÍÁ™ĎĜŇČĄÔʤÔʤŇÇĄÍšĸŔ´ŒżłŒ˝ąŠŔ´Çť“Ęž–Ęż—Çź”ÁśŽť°‰ľŠ„Ż¤€Šž{ •u™qŽ†j…|a}tZxpVskQmeLjbJhbLoiV‰…xŻ­Ľ×ÖŇôôóţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýööőććâĐÎČ´ą§žšŠ‡r…}eƒ{_ˆ~`Ž„e•‹j’qŁ˜uŠžz°Ľš­‡ÂśÉž–ĚÁ™ĚŔ˜ĚŔ˜ĎĝÓÉĄÎÛËŔ˜ĐŝĚŔ˜Ćş’Çť“Čź”Ćş’˝ąŠł§§œx’‡gumSYR>>9+%!
+ %%&iijÓÓÓţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřâŕŘĆŔŤŔˇ–ĘŔšŇȢŘΊÜÓŻßÖ˛ŕ׳ÜÔŻŮĐŞŐˤÍÁšČ˝•Çť“Çť“Čź”Čź”ËŔ˜ÍšËŔ˜ĚÁ™ÎÛΚ͚͚ÎÛËŔ˜Čź”ËŔ˜ĐƞŇÇ Í›Ƚ•É˝•ĚŔ˜ĎÛŃƞŇČĄÔĘŁÖĚĽŐĘŁŃƟĐŞĎĜĚÁ™Č˝•ĂˇşŽ‡ł¨ƒą§‚šŽ‡˝ą‰şŽ‡¸Ź…ťŻˆŔ´źą‰şŽˆÁľżłŒź°‰żł‹żł‹˝ąŠť°‰śŤ…ą§ƒśŤ†ž˛‹Ĺš‘Ęž–͚͚ËŔ˜É˝•É˝•Çť“Ĺš‘Éž–ÍšÎÛÎÛÍšʾ–Éž–É˝•Ä¸ĂˇÄ¸ÂśŽÂśŽÄ¸‘Ćť“Ćş’ĸÄ¸‘ĸ‘ž˛ŒşŻŠľŤ‡Ż¤¤™x•Œn„fŠd†}a|sYtlRqiOmdLibJlfRytdž›‘ÔÓÎööőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúůííëŘ×Óžźł¨Ľ˜–‘†~gx]„z]Š€b‘‡g˜lŸ”r¨xąĽ€ťŻ‰Ă¸‘Ćş“Ćť“Çť”ÍšŇČĄÎÛʿ—ĚÁ™Č˝•Ä¸Çź”Č˝•Çť“ÂśŽ´¨ƒŁ˜u‘†ftkQQJ851%==>¤¤¤ööö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýňńíŐŃÄÁšŸÄş–ÎĝŐʤŘĎŠÜÓ­ÝÔŻŮĐŞŘĎŠÖΨĐŞ˿—Č˝•Čź”Ćş’ĸÇť“Ëż—ĚÁ™ÎÛΚʿ—Çť“Ćť“ËŔ˜Çź”ÁśŽČ˝•ĎĝĐŝĚŔ™Čź”Čź”ĚŔ˜ĐƞŐËĽÔʤÓɢÚĐŞŰŃŤÖĚĽŐĚŚÓÉŁËż˜Ăˇź°ˆľŠ‚´¨‚śŤ„š­†ž˛‹ĂˇÂś˝ąŠśŤ„ą§ą§ƒşŽˆŔ´ĂˇŔ´˝ąŠš­†śŞƒ´ŠƒˇŤ…ž˛‹Ĺš‘Çť“É˝•Ęž–Ęž–ËŔ˜ÍÁ™Íšʿ—Çť“Čź”Ęž–Ęž–Ęž–Čź”Ĺš‘Čź”ËŔ˜Çź”ĸÂśŽŔ´Œž˛‹ž˛ŠŔ´ŒĂˇĹš‘Çť“Ĺš‘źą‰´Ş…ą¨ƒ˛§‚§z™o–Œm•‹m‘‡j…|`{sXxoUtlQogMkcKibKpjW“‚ĘÉĂëęčúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüőôóćĺăĐĎʡ´Ť—‰…q„{b‚x\†}^Œ‚c’‰iœ’p¤™vŤ |ľŞ…źąŠż´ŒÄ¸ĚÁ™ŇČĄÎÜɽ•Éž–Čź”Čź”ËŔ˜Ëż—Çť“ÂśŽ˛Ś€‘pŒ‚cofMF@0+' !!#cceÎÎĎ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúřäâÚČÂŽżś—Ćź—ŃÇ ÔʢÖĚŚŘΨŘĎŠŘĎŠÖͧŃƟĚŔ˜É˝•Čź”Ćş’Ĺš‘Ćş’Čź”É˝•ĚÁ™Íšɽ•Ćş’Äš‘Çť“Ćş“Äš‘Č˝•ÎÛĐŞĚÁšČź”Ćş’ĚŔ˜ŃǟŇȢÓÉŁŐĚĽŰŇŹŰŇ­×ÍŚÔĘŁŃƟĚŔ˜Ćť“ÁľŽź°‰ťŻˆťŻ‡š­†ž˛‹Ä¸ž˛Œ´¨ƒ­Ą|ŠŸ{­˘~š­‡ÂśŽĹš’żł‹š­†ľŠƒ´¨¸Ź…żł‹Ä¸‘Çť“Ćş’Čź”Ëż—ËŔ˜ËŔ˜ĚÁ™ÎÛĚÁ™É˝•Ćş’Ĺš‘Ĺš‘Ĺš‘Ĺš‘Ćť“Éž–Ęż—Ćş’Áľ˝ąŠ˝ą‰ź°‰˝ą‰Ŕ´ŒĂˇÂśŽĂˇÂśŽşŽ‡ł¨‚­ŁŽŁ§z –u’r™o’ˆiˆaƒz^€x\{rXvmSsjPmeLibKmfQ‘Œ~žź´ßŢŰőôôţţý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţýýůůůëëéÚŘÔŔžśŠ¤™—ˆ€hƒz^…|^Š€a‘‡g˜lŸ”sŠžz´Š‚ť°ˆĂˇĚŔ˜ŇČĄĐŝ˿—Č˝•Čź”Č˝•Ëż—É˝•Ä¸żł‹ŽŁ~—l‚x[bZC;6(" ::<‘ěěě˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőôóŮÖËÁşŁżś”ĚÁšĐƞŇÇ ŐˤŘĐŞŘĎŠŐˤĐŝĚŔ˜É˝•Čź”Čź”Çť”Çť“Ĺš’Ćş’Ęż—Íšʿ—Čź”Ĺš‘áĹş’Ęž–É˝•ËŔ˜ĐŞÍšǻ“Ĺš‘ĚŔ˜ŃƟÍšĐƟ×ΨŘĐŞ×ΨŐˤĎĜËŔ˜ÍÁ™ÍšĚŔ˜Çź”ĸŔ´ŒťŻ‡˝ąŠŔ´ľŠ„Ź |ŞŸ{Šžz­Ą}¸Ź†żłŒŔ´ŽťŻˆˇŤ„ľŠƒśŞƒťŻˆÂśŽĆş’Ćş’áČź”Í›ĎĜÍÁ™Ëż—ÍÁ™ËŔ˜Çť“ĸÁľŔ´ŒÁśŽĆş’ĚÁ™ĚŔ˜Čź”ÁľŽ˝ą‰şŽ†š­†ťŻˆżł‹ÁľŔ´˝ąŠž˛Šž˛Šš­†˛§€Ź {§œx¤šx˘™xœ’r–Œk’‡hŠc…|`x\{rYvnUriQmdMhaIg`IqkX‹‡x­ŞĄŐÔĐňňńýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙ţţţţýţţýţţýţţýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůůňňńáŕÝĚËŸ´ŤŸ™‰‡oˆc†}_Š€a†f–lŸ•tŹĄ}¸Ź…ÁľÉ˝–ĎŞŃƞÍšȽ•Çť“Çť“Čź”Ĺš‘żłŒš­†¨y…fskQQJ81-! 
+  YYZĐĐĐýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýîěéĎĘť˝ľ™Äş•ĎĝÔÉŁŮĎŞŰŇ­ÚĐŤŐĘŁÍšËŔ˜Ëż—Ćş’Çť“Éž–øĂˇËÁ™ĎĜĎĜÍÁ™Čź”øÁľÄ¸Čź”Ćş’Ćş“Ëż˜Ęž–Čź”Çť“ĚŔ˜ĎĜ˿˜ĎĝÔʤŃÇ ŃĆ ÓɢΛɽ•Ęż—ÍÁ™ĎÛÍÁ™É˝•Ä¸ź°ˆ¸Ź…¸Ź…ˇŤ…¸­†şŽˆśŞ„ąĽ€ŻŁ~Ż¤˛ŚśŞ„ťŻˆ˝ąŠˇŤ„ľŠƒš­‡ÂśŽĹš‘áČź”ĎĝŇČ ĐƞÍš˿—Çť“ĸÄ¸ÂśŽž˛‹Ă¸ĚŔ™ŃǟÎÛƺ“ž˛ŠşŽ†¸Ź…¸Ź…ťŻˆ˝ą‰ˇŤ…śŞ…żłŒž˛‹ťŻ‡ˇŤ„ŹĄ}Ą–t“q›o—m’ˆhƒdˆaƒy]}tYvmTohPleMhaKaZE\U@ZS?_YDicOytešĘČĹçćĺřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţýţţýţýüţýüýýüţýűţýüţţý˙˙ý˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýööőččć×ÖÓÂżˇŤŚ˜š’}†jŒ‚dŽ„d’‡g™Žn¤™u°ĽşŽ‡ÂśŽĆť“Í›Ďĝƺ’áÄ¸Ćş’ÂśşŽ‡°¤šnuYd]FD?0%#  889xxy÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřăâŰĹŔ­˝´“ĚÁ›ŐËĽŰŇ­ŰŇ­ŘĎŠÔĘŁÍ›ËŔ˜ËŔ˜Čź”Čź”Éž–ÂśÁľŽËŔ™ĐŞŇǟŃƟÍ›Ƚ•Ĺš‘áĂˇÂśÂśŽŔ´ŒÂśĹš‘Čź•ÍÁšŃƞĐŞĐǟŃǟĚÁ™Ęż—Ěšʿ—Čź”Čź”É˝•Éž–Çź”Çź”Ćş’ÁľşŽ†ľŠƒ¸Ź„˝ą‰Ŕ´Œž˛‹¸Ź…ŽŁ~Ť |­˘}ł§ťŻ‡Ŕ´ž˛‹şŻˆşŽ‡˝ąŠŔ´ŒĂˇČź”Í›ÔʢÔʢŃƞ˿—Ćş’ĸÄ¸Ä¸ĂˇĘż˜ŇǟŇČ ÍÁ™Ä¸ťŻˆľŞ„´ŠƒľŠ‚ˇŤ„ˇŤ„­˘}ŞŸ{ł§ƒ´Š„łŠ„°ĽĽšx™Žn’ˆhŒ‚e‡}`€w[ypVsjRldNf_H^XDYS?TN;QL;KF6E@1@<.?:-FA1OJ9_ZLzwlŻŽ¨ăăâúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýýýűýýúýüůýűřüű÷üű÷üűřýüűýýüţţý˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúóóňççäŘÖŃÄŔˇŽ¨˜›”x–Œn”‰j–ŒkŸ”rޞz´¨‚şŽ‡˝ą‰ÂˇĆť”Ćş“ĸÄ¸Ćş’ÁľľŠƒŁ˜u‡~`meMUO;84'
+**+RRSŽŽŽűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýóóńŇĎĂť˛”Ćź–ÓČĄ×ΨŘĎŠÖÍŚÓɢÎÛʿ—Čź•Ęż—ĚŔ™Ęž–ĸ‘ÁľĹş’Í›ÓɢÓɢÓČĄŃƟ˿—ᐞ˛‹ÂśŽżłŒ¸Ź…ź°ˆĂˇÇź”ÎÜÔĘŁŐĚŚÓÉŁĎŝʾ—Ĺš’áÄš‘Ćş’Ćş’ĸŔ´˝ąŠÁśŽÇť“Ĺš‘żłŒš­†ľŠƒˇŤ„ťŻˆ˝ąŠź°‰¸Ź†śŞ„ľŠƒł§ľŠƒťŻˆÂˇĆş“ᏻŻˆşŽ‡ĂˇĆş’Éž–ŃƟÓÉĄŃƟĚÁ™É˝•Çť“ĸĹš‘Éž–ĎĜŃÇ ĎĜȼ”Ŕ´Œ¸Ź…°Ľ€ŤĄ}­Ł~°¤~ŻŁ~ŠžzŁ˜v –u¤šyŚ}Ł™yœ‘r’ˆj…|`|tYulSmfNc\GZT@RL:MG7ID5D?0?:,:5)62'1-#+)'%&#,):6)LH<wČÇĹôôôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýýüúüűřűúőúřňů÷đů÷đů÷ňúůôüű÷ýüůýýúţţü˙ţý˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúňňńčçĺ×ÔÎťľĽŤŁ‹Ÿ–xœ’p˘–t¨x°¤ľŠƒˇŤ…śŞ…ťŻ‰Çź”Ęž—Čź•Ćş’żłŒ˛Ś™Žm{qVd\EKE40,!
+ @@Ammnźźź˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţřř÷ÝŰÔźśżś“ÍÜÔĘĽ×ΊÔʤΛȼ”áÁľŽÇť”ÍšÎÜɾ–Ćť“É˝–ÎÛĐƞĎĜĐŝŃƞÍšȼ•ÂśŔ´ŒťŻˆ¸Ź…ž˛ŠĹš‘Čź”ÍšŃƟĐƞĎĞÍšǼ”Ŕ´Œ˝ą‰˝ąŠž˛‹ž˛‹˝ą‰ťŻ‡şŽ†ÁśŽČ˝•Âśž˛Š˝ą‰ťŻ‡ź°ˆŔ´Œž˛Š˝ąŠŔ´Œ˝ą‰¸Ź…ľŠƒ´¨‚ľŠ‚šŽ‡żłŒÁľŽž˛ŠťŻˆž˛‹żł‹ŔľÇź”Éž–Ęż˜ÎÜĎÜĚŔ˜Čź”ĸĂˇĆş“Ęž–Ęž–ᐺŽ‡Ż¤¤™vž”rŁ™v¨yŚ›w •sœ’q›q™q•ŒnŒƒg‰eƒz`vnVjcL`YDWQ>PL;HC4?:-83(50&1-#+(&#" )("74-MJAnležšáŕßüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţýýüüúűú÷ř÷ňöôěôńçóďäňďĺóđçőóë÷őďöőđööňůřö÷÷őóóńôôňôóňčçĺĺĺâëëčňňńřř÷űűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýúúúóňńáßÚËÇşłŹ•¤›|¤šv§œxŹĄ|°¤ąŚł¨ƒşŽˆĹş“ĚÁšËŔ™żłˇŤ…­˘~”ŠkulR\U@D?0,( 222\\]‰‰Šééé˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýńđîĚČšť´–Ç˝—ŇČĄŐËĽĐŞǼ”᏿´ŒÁľŽČź•ÎÛĐŞÍšĚÁ™ĎĜÎÛʿ—Çź”Éž–ĚÁ™ÍÁ™Ëż—Çť“ÁľŽź°‰ź°ˆÂśŽÇť“Čź•Ęż—ĚŔ˜Ęž–Éž–Éž–Çť“Ŕľź°‰ťŻ‡ťŻˆťŻ‡š­†¸Ź…ťŻ‡ÂśĆť“ž˛‹şŽ‡ź°ˆž˛ŠÂśŽĹš‘ÁľŽżł‹Áľź°‰ˇŤ„´Šƒ˛§ąĽ˛Ś€¸Ź…ž˛‹Áľž˛‹¸Ź…ˇŤ…şŽ‡żł‹ÁľÄ¸ÍÁšĎĜ˿—Çź”᏿łŒŔ´ÂśŽÁľşŽˆ°¤Ł˜t›n˜lšnœ‘o™Žm’ˆhƒfŽ…h‰€e‚y`tlUldNd]H`ZHUP>JE5@<.95*63).*!%#1/,<;6DC>OMG][Uljd†„€ČČÇřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúôóňëęĺÓĐĆžşŞźśŁŔşĽĹŔŹĘĹłĚǸĘơĚÉźĎĚÁÍĘŔĹáÉĆźÍËÂşś§şśĽť¸¨ČŸŢÜÓŕŢ×ŕßŮçĺâńđďööő÷÷öúúúýýý˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţř÷öçćáÍĘ˝˛Ť“Śœ|ŚœxŤ {ŽŁ}­Ł~ł¨ƒźąŠÁľŽČź•Č˝–š­‡­Ą|˘—u„gtmWXR?@;-,(" HGG{{|żżżúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúůůŢÜŐŔş¤żľ“Í›ĎĝËŔ˜Ćş“áĆş“ĚÁ™ŃƟŃƟ͚͚ĐŝŃÇ ËŔ˜Ä¸ÂśŽĹš‘É˝•É˝•Č˝•Çť“Ćş’áÁľÄ¸Çť“Čź”Č˝•Éž–Çź”Ĺš‘Ĺš‘É˝•Çź”Áľżł‹żł‹ž˛Šź°ˆşŽ‡˝ąŠŔ´Áľź°‰ˇŤ„śŞƒťŻˆĂˇÇť“Çť“ĸ˝ąŠˇŤ„˛Ś€Ž¤­ŁąĽľŠ‚şŽ‡żł‹ĂˇŔ´ŒśŞƒľŠƒš­†ž˛ŠżłŒŔľĆş“Çť“áÁľŽÂśĹš‘Ĺš‘ÁľľŠƒ­˘}¤™v˜l˜kšn”Ši‚c†}_vZwpUpgOiaJibNb\IUN>JD4@</>:/73).+!&$"  !! 764MLJcb_rqmsrmtsnzytŽ‰˛ąŻßßŢűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýűűúůđî鸲œż¸ĹžŁÉŔĽËĂŠĎČŽŇĚľŐĎşŮÔŔÝŘĹÝŘĆŮÔÂŰ×ĆÝŮÉÎÉ´ČĂŹĹŔĽĂź ¸ą–˛Ť“˛Ź•ÄżŽĂŔ˛ÂŔłÇÄšŃÎĆŢÜ×äăßéčćőőôýýüţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ÷öőĺăŢÉĹśąŠŚœ|§œyŹĄ|­Ą|ł§‚şŽˆşŻˆ˝˛Šž˛‹śŤ…Ľšx†iƒzaohTPJ8?:+/,!!877vvwąąąáááýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýďîěĎËžź´—Ĺş•ÍÛÍšĚÁ™Ęž—ÍšŇČ ŐËŁÓɢŃƞŃǟŃǟÎÜɾ–Ĺš‘ĸĆş’Čź”Čź”Ćş’Ĺš‘Ćş’Çť“Ĺš‘ĸĹš‘Çź”Ęž–Ęž–Ćş’ÂśŽÂśŽÇź”É˝•Ĺš‘ÂśŽŔ´ŒŔ´Œž˛Šź°‰ź°‰ž˛ŠŔ´ŒŔ´ŒťŻˆˇŤ„ź°ˆĂˇÇť“Ęž–É˝–ÁśŽşŽ‡ł§Ť |Ť |ąĽ¸Ź…ź°‰˝ą‰Áľżł‹ˇŤ„śŞ„š­†ž˛Šť°‰¸­ˆż´Áľ˝ąŠž˛‹ĂˇĆş’ÁľŽ¸Ź†ŹĄ|§œx •r’ˆg†f†gŠ€a€vZxoTnfMc\EXQ=RL9MG6JF8B>263'-* '$$#$$$==<ZZY~›˛˛ąËËĘÎÎÍÍĚËÎÍĚÜÜŰđđđűűú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýüűűůőőńŮÖĘĚȸÎĘťĆÁŻťł™ÂšžČÁ§ĎÉ°ŐĎśŮÓźŢŮĂâÜČâŢËäŕÍăŢËÜ×ĂŮÓźÖĎ´ĎČŤÉÁŁČŔĄĆżĄĂ˝˘Ŕť žˇťľš´ťśŁÂ˝ŽĐÍÁÖÔĘŕßŮęéćřř÷ýýýýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ÷öőâŕŮÄŔŻŻ§ŽĽœ{¨œxŤ {ŽŁł§‚śŞ„¸­†¸­‡ąŚ‚ž•tˆc{t\jcRKF6=9+0-"%"$"HHH••–ŇŇŇőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůř÷ŕŢ×ÁťŚ˝ł’ËŔ˜ĎĜĐŞĐƞÓČĄŐËŁÔĘŁÔĘŁŐĘŁÔʢĐŞ˿—É˝•É˝•É˝•Čź”Çť“Ćş’Ĺš‘ĸÇť“Čź”Ćş’ÂśŽÁľŽÇť“Ęž–Ęż—ĸÁľÂśŽČź”Ęż—Čź•Ĺş’ÂśŽÁľŔ´Œž˛Šš­†ź°ˆÂśŽÇź”ĸž˛Šżł‹ĂˇĆť“Éž–Éž–Ĺš‘żł‹ˇŤ…­Ą}Ź |ąŚ€şŽ‡˝ąŠťŻˆź°ˆťŻ‡śŞ„ˇŤ„ťŻ‡˝˛Šˇ­‡ą§‚śŤ„ˇŤ…śŞ„şŽ‡żł‹żłŒśŞ„Şžz˘—tž“q˜Žm‹c…{]vYwnSnfMd]FYR>MG6B=-<8*73&1.#-*!%$.-.EEF^^_°°°ĐĐĐçççňňńúúúűűűűűűűűűýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýýýüűűúööôďíéďîéëéăÎĘş¸ą™żš ÇŔ§ËÄŞĎČŻÔϡÜÖżáŰÄäŢÇĺŕÉćáĚçáËĺÝÄáÚžßŘťÝÔľŰҲŮŃą×Ď­ÓĚŠĎǤËĂĄÇżŸĂşœŔ¸ż¸žĂ˝¨ĆÁ˛ÎËÁĐĎĆÖŐĎçćăööőüüüýýýţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ÷öőßÝÖÁźŤŠ˘†˘˜vĽšvŠžyŤ |°Ľ€´¨‚´¨ƒŤĄ~™‘r†~dvp[faQOJ?84*,) $")(&TTTŁŁ¤ĺĺĺýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýóňđÔŃĆť´™Áˇ“ĚÁšÎÛŇȢÔˤÓɢÎĜĎĜÓɢĐŝ˿—Ęž–ËŔ˜ÍšÍšȼ”áÂśŽÄ¸Çť“Ęż—Č˝•ÂśŽ˝ąŠž˛ŠĹš‘Ĺš‘ĸĹş’ĸÄ¸ĚÁšĐŞÎÛÍšɾ–áŔ´Œ˝ą‰śŞƒťŻˆÇť“ĎĝÍ›ǻ“Ćş’Ĺš‘áÂˇÁľ˝ąŠź°‰ź°ˆˇŤ„ł§´¨‚ťŻ‡żł‹˝ą‰ˇŤ„°¤Ź |ł¨‚ź°‰żł‹ťŻˆ˛§Ľšw˘—t§œx­˘}°¤ŽŁ}¤™u™Žm‘‡fŠ€aƒz]}tXskQg_GXR=NG6F@0<7)1.#+(%" %$%778KKL\\]}}~ŞŞŤĹĹĹééęőőőűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţţţţţţţţţţýýýüüüűűűűööőđđîîîěíěëęęççćăęéćčçääăßäâÝëéĺîíëńđîúúůüüüţţýţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüüűűúůůůř÷öôňđáŕÚ×ŐĚĆÁł˝ˇŁŔťĽČÂŹÎÇ­ÓĚąÖĎśÜÖžŕÚÂăÜÂăÜÁăÝÂĺŢĂŕÚźŢÖśŢלŕءßÖśŰŃŽ×ĎŤÖΊÓĘŚÎĹĄČżœÁ¸–ť˛“ť´˜ÂťĄĘÄŽĘÄąÍɸŇÎÁćăŰëęäîíęîîëöőôúůřüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýđďěŐŇČťś˘§Ÿ„Ÿ–v –sĽšwŠž{Ź }Ź }¤šx•Œn„|cleQZUFPMD75,%#" :98mmnÁÁÂőőő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţůůřĺăŢĹŔ­ťą‘Ćź–ÍÜĐƟŇÇĄŃƟĚŔ™ÎÜŐˤŇČĄĎĜĎĜĐƞŃǟÎĜȼ”ÂśŽĂˇĹš‘Çť“Ćş“ÂśŽ˝ąŠź°ˆž˛ŠÂśŽÂśŽÂśŽĆş’ĸÂˇČ˝•Í›ĎĝŃƟÎÛƺ’ÂśŽ˝ą‰´¨‚ťŻˆČź”ĐĝĐŝËŔ˜É˝•Çť“ĸŔ´ŒťŻˆš­…¸Ź…š­†ťŻ‡ťŻˆź°‰ž˛‹˝ą‰¸Ź…°¤Šy§œxŻŁ~¸Ź…ťŻˆşŽ‡˛§€ž“p•Ši˜lŸ”qĄ–rœ’o”‰iŠ€a€wZwoTogNh`I]VAQJ8C>.95'0, &#%%&///EEEfffˆˆˆŠŠŠťťťÔÔÔěěí÷÷řţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýüüüüüűîíéëëćëëçěëçÖÔĚ×ÔĚŰŮŇ×ŐĚÓŃČŃĎĹŃÎÄĆĂśťˇŠ¸´¤ľą ľąžˇ˛ ˇ˛ĄŻŤ˜´Żššłžş´Ÿşľ˘˝¸§ĐĚŔÚŘĎŢÜÔâŕÚńđîőőóőőóööô÷÷öűűűţţţ˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţýýýüüűúôôňóňđďîęâŕ×ŮÖĘÔĐĹÄż­żš¤Äž¨ÎČ°ÖĎłÜÖ¸ßŘťâŰżăÜŔŕŘşŢסáŮšăŰźâŰťŕظßסßסßÖ´ÚŃŽŐͨÓʤĎĹĄËÁČžšżś”ˇŽˇŻ‘Âş żˇĄÂ˝ŠĎËšÇÁŻÍȡŐŃĂßÝÔńđîúúůýýüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüűîíéÖÔĘşľĄĽ‚“sŸ”rŁ˜vĽ›x¤šxœ’r…h~w_c]KMH;B>6/,%" &$"MMM““”ăăăüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýňňđÔŃĆşł—Ŕś’ĚÁšÎĜĎĝÍ›ʾ—Îĝ×ͨ×ͧŐˤŐˤŐˤÔĘŁĐŝɽ•Ä¸Çť”Čź•Ĺş’ż´ŒťŻˆşŽ‡şŽˆź°‰Ŕ´ŒŔ´ŒŔ´ŒĹš‘ĸÂśŽĂˇÇť“ĚšŇÇ Ňǟʿ—Ćş’ÁľŽš­‡žłŒČź”ËŔ˜ĚÁ™ËŔ˜Éž–Čź”Ćť“ż´Œš­†śŞ„ľŠ‚´¨‚ťŻ‡Ŕ´ŒÂśŽżł‹š­†˛Ś€Ź |§œyŚœxŞŸ{°¤˛Śł§­Ą|šnŽƒdŒ‚c…eŽ„d‡~_€vZvmRkcJbZDYR>QJ7GA0<7)1-!'#   -,,GGGccdvvv———ÄÄÄŢŢŢîîîôôôűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúňňđÓŇÍžźľ˝ťłżźą¸´Łšľ˘ťľ¤˝ˇ¤°Š˛ŤśŽ“śŽ’śŻ’šą”ź´—Ăş›ÉŔ ÍÄŁÎƤŃČŚŇɧÓÉŠÓʨŃȤÍßȽšÄş˜Á¸–şą’śŽ’ľ­”ľŽ—ÁťŠĆ²ÿ˛ĆÁśÖÓÉŕŢ×ÚŮŃŕßŰĺäáóóňţţţţţţ˙˙˙˙˙˙˙˙˙ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýţţýýýüűűúöőóîěéěëćĺăÜŮÖÎŐŇČżş§ĂźŁÉĂŠĎÉŻ×ĐłÜÔśÜÓłÝÔ´ŕظáŮšâÚšăÜ˝ĺŢŔćßÁäÜźß×´ÚŃ­ŰŃ­ŰŃŹ×ͨŇČŁÎĞɿšÇź—ŔľłŠ‡´Ş‡ť˛ž´“şąś­´ŹŔť¨ŘÔÉäâŰďďëúůřűűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüűîíęŇĎĹś°›˘™|›‘pž“qŸ•t”t•‹mˆdwoZ`[KA>342*'% 210dcdŽŽŻóóóţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúůćäßĂ˝¨şą‘Ĺş”ÎÜÍ›ɽ•Čź”Ďŝ×ΊŘϨ×ͧŘĎŠ×ΧŐˤĐŝ˿—Č˝•ÍÛËŔ™Ăˇżł‹˝ąŠź°‰´¨ƒ˛§ź°‰˝ąŠź°‰ÁľÄ¸Ĺš‘Ćş’Ĺş’Çť“ĎĝÓÉĄÎÜÎÜÍÛȽ–Éž–Ęž—øÁśŽÄš‘Çť“Éž–Ęž–ÁśŽˇŹ…´¨´¨‚ľŠƒľŠ‚¸Ź…ťŻ‡ˇŤ„ł§ąĽąĽŻ¤Š }¨žzŚ›w˘—t •sž“q–‹j‚c…{]~uXvmRlcKc\E[T?RL8IC2@;,:6(/+ %"
+ ##$BBB___rrržžžŔŔŔÔÔÔéééůůůýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţţţţűűűúůůůůů÷öőóóńîíëÝÜ׹ŹžłŽšˇ°šť´›Ŕş Ĺž¤ČÁĽËÄŚÍĹŚËĂŁĚÄŁĎƤÎƢÎÄ ŃǤŇɤŃǢŇȢŐËŚÖ̧ŐËŚŐËŚŮĎŞŮĎŤŘΊ×Ψ×Χ×ͧÖĚŚÓÉŁŃÇ ĎşĘŔ›Ç˝˜Ćź™ĹźšÂš—Á¸—Á¸˜żˇ™žś˜şą•śŻ–¸˛œŔş¨¸łĄ×ŐÍßŢŮďîęóóđř÷öűűúýýýţţý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýüüüűüüűúúůőôńđďěćäßŃÎÄ˝ş­˝¸¨Áş˘ĘÂŁĎǧŐĚŹÚŇąÜÔ˛ÝŐłá١âŰšâÚşáŮśŢÖ˛ÝÔąŕ׾ß×´ŰÓŻ×ΧÖËŚŐËŚĐĆ ĚÁ›Éż™Ç˝—Ćť•Ă¸“¡ż´ŽşŻ‰śŤˆśŹľŽ’ş´ŸÉÄľÓĐĹčćŕđďěřřöúúůýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüűëęçŃÍĂąŞ•œ“ušošp˜Žo‘‡ix_mfQZVHDB:)'! ! FEEˆˆˆŃŃŃüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýńđíĐÍžť´—Ŕś‘ĚÁšÍšȽ•ËŔ˜ĐƟŐĚĽŮĎŠÚĐŞÖͧÔʤÓÉĄŇǟĎÜÍÁ™ÎÜȽ–żł‹ťŻˆťŻ‡ťŻˆľŠ„´¨ƒź°‰şŽ‡¸Ź…Ŕ´ŒĹš‘Čź”Ęž–Ęż—ËŔ˜ŇČĄÔʤĎĜĐŝŇČĄŇǟÎÛȽ•ÂśŽŔ´ĂˇĆş’Éž–Ęż—Äš‘˝ąŠ¸Ź…´ŠƒąŚ­˘}ŻŁ~´¨´¨ł§ł§ąŚ€­˘~¨Ÿ{Ľ›y –s–Œj‘†fŒƒd†}_~tXtlQkcK^WATM9KD3B=-95&0, (%#
+
+ &&'989FFGXXY‘žžżŐŐŐńńńřřřüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýřř÷ôóńîíęęęçĺäßßÝÖÉÇžÂŔśÁż´ŽŞ™ŤĽ°Ş“¸˛—ĆžŸÍĢŃǤÖÍŠŰÓŻßÖłâŮśâÚ¸ŕ׾ÝÔąÜÓŻÜÓŻÚŃ­ŮĎŞÚŃ­ŮĐŤŐĚŚŐˤ×ͨ×ͨŐËŚÖĚŚŮĎŞŘΊÖ̧ŘͨŮĐŞŰŇ­ŰŇ­ŮĎŠÖͧ×Ί×ΊÔˤÔʤÓÉŁŇÇ ŃƟĎŞĚÁ›Ęż˜Éž—Čž˜Čž™Äš•ťąŽłŞŠˇ°˜ËŲÉÄ°ČÄłĐÍŔŕÝÖěëćřř÷üüüţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţüűűűűúúúú÷öőňńîäâÜŇĎÄŔťŞŔťŚ˝ˇĹ˝žÍĹŁŇɧÖÍŠŘĎŤŘĎŞŮĎŞŮĎŞŮĎŞŰŇŽÜÓ°ÚŃŤÖĚŚŐËĽÖĚĽŃÇ ÎĞŃĆ ĎĝËŔšČž–Č˝•Č˝–Ćť“ø‘žłŒť°Š¸­‰ľŤŠś­śŻ–ÂźŞËÇšŮ×Íčçâőôóúúůýýý˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůřčćăĹÁ´Ł›€˜Žo˜m’‰jŒ‚f|t[f_KSM@>:4%".-+bbb­­­ëëë˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůř÷ßÜÔÁşŁťąČ˝—ÍšËŔ˜ĎĝŃǟŇÇ ŮĎŠŰŃŤÓɢĐŞĐŝŃÇ ĐŞÍšʿ—ĸťŻˆľŠƒľŠ‚š­†š­‡ťŻˆž˛‹ťŻ‡š­†ĂˇČź”Éž–ĚŔ˜ĎŝÓɢ×ͧÔËĽÍšÍÁ™ĐŝŃÇ ËÁ™Ĺš‘Ćş’Čź”Č˝•Čź”Çť“Ćť“Ćş“ĸžł‹śŤ…Ž¤ŠžzŤŸ{ŻŁ~ł§ľŠƒ´¨‚­Ą|ĽšwĄ—uŸ•sšnŒ‚c…{^}sXphOe]F]V@UO<JD2?:*51$-*$   ##$::;YYZ€€€–––ĽĽŚÚÚÚôôôüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűůůřőőóáŕÜĎÍĂÄÁ´ĂŔąĆÂążšŁşł™źľšÂźĄĹż˘ËÄĽĐČŚŇÉŚŐÍŞŰŇ°ÝÔąßŐ˛ŢŐąÝŐąŢŐ˛âŮśáÚ¸ŢÖłÝÔ°ÜÓŽŰÓ­ŰŇ­ŮĐŤŘĎŞŘĎŠÖĚŚÔĘŁŐʤŐËĽŐËĽÖĚŚŘΨ×̧Ő˧ÚĐŤÜÔŻŢŐąßÖ˛ŢŐ°ÝÓŻÝÔąÜÔ°ŮĎŞÖĚŚŐˤÖĚŚŐʤŇČĄĐŞĎĝĎŝĎŝĎĝÎÜËŔ™Çź–á“şŻ‹ł¨„­¤ŞĄ‚´Ť‘˝ľŸĘơŘÖÎçćáôôńűűú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüűůůůůř÷ôôňęęćáŕŰËČźşľ ˝śžź´˜Ăş˜ĘŔšĚ›ÍÝĚĚœÎĝŃÇĄÓɢŃĆ ŃŞŇÇ ĐŞĎĝŃÇ ĎĞÍœÎĜÎÜÍ›˿™Éž–Ćť“Äš’¡ž˛Œ¸­ˆśŹˆľŤ‰´ŹˇŻ•˝¸ŁÍÉťÝÚŇďíęűűúţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýóňđŰŘŇľŻžš’v•‹l‘‡i‹e{s[d]JLG:63," $# EECŠ‰‰ŐÔŐúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüëéĺÎÉťš°”żľÉž—͚Λ͚͛ÔĘŁŘΧÔɢĎĜ˿—Éž–Ęž–Ęż—Č˝•Ćş’Ŕ´ˇŤ„ľŠ‚š­‡ľŠƒł¨‚˝ąŠÂśŽÄ¸‘Çť“Ęž–ĚŔ˜ËŔ˜ĎĜŐĘŁ×ͧŐˤÎÛËŔ˜ËŔ˜ĚÁ™Éž–Çť“Ęż—ÎÛÎÜȼ•ÁľŽŔ´ŒÄ¸Ćş’ŔľšŽ‡˛§‚­˘}ŞŸzŠžyŞŸ{ŽŁ}°¤ŠžyŸ”r—Œk‘‡gˆazqUsjPiaIYR=LF4D?.=8*2.")%  889XXY€¤¤¤ËËËÝÝÝęęęüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüúúúěěęŮŘÓĆĂšťľŚźˇ˘Ă˝˘ÇŔĽĘĂŚĎÇŠŇÉŞÓËŠ×Ď­ÜÓ˛ÜÔłÝŐ´ŢŐ˛ŢŐąÝÔ°ÜÔŻÝŐąŕ׳áŘ´ßײŢŐ°ŕ׳á١á١ßÖ´ÜÔŻŰŇ­ÚŃŹŮĐŤŘÎŞŘĎŞŮΊÔʤÓÉŁÓÉŁĐƟÎŞÓĘŁÖĚŚŘΊÜÓŽŢŐ°ŢŐ°ßײŕ׳ßÖąŕÖłßÖ˛ÜÓŽŮĎŞ×ΨŘΨÖĚĽÔɢŐˤŐËĽŐʤÓČĄĐŞÎĝÎĝÎÛʿ—Ćş“ž˛ŒˇŹ†´¨ƒł§‚ąŚ‚­ŁƒąŠŽš˛›ÁźŠÍČťÓĐĹŰŮŃ÷÷ôüűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýüüüűűúůřřőôňéčăäâÜĂžą´­’śŹ‹šŽ‹šŽˆšŽ‰şŻŠž˛Çź•Í›ĚÁšĚÁ™ÎÜËŔ˜Ęż—ĎĝŇČĄÔʤŐËĽÔĘĽŇȢĎŞÍ›ËŔ™Ęż˜Ćź•Ă¸Ŕ´žłŒť°Š¸ŽˆśŹˆ´Ş‰łŞŒˇ°—½ŹĐĚŔÜÚŇéčăööőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţűúúđďíŃÎŤ‡•‹m”‰k‹‚ezs[e`NHD80-&#!10-hgfťşşňňňţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůř÷ăŕÚÄ˝Ťś­Žż´ŽÉž—Éž–Ćş’Čź”ÎÛŃǟÍ›ʿ—Çť“ÂśŽĂˇĹš‘áĂˇÁľşŽ‡¸Ź…şŽ‡ł§‚ąŚżłŒÇź”Ëż—Éž–É˝•Ęż—ĚÁ™ĐŞÔĘŁÓɢÎÜƻ”ÁśÁśĘž—ÍÁšÎšĐŝŃƟĎŝȼ•żłŒťŻˆž˛‹ĂˇÁľŽź°ˆśŞ„´¨‚Ż¤~¨y˘—tĽ™v¨œx •r‘‡g‚y\zqUogM]U@UN:LF4?:+3/#*'# 
+  ../UUVƒƒ„śśˇŮŮŮíííůůůýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúř÷÷ěëčÉÇŔšˇŞ°ŹžłŽ›ŔťŁĹž˘ĚÄŁŇɧŘĐŹÜÔ°ŢÖ´áٸâÚšŕءá١âÚšá١ß×´ÝŐ°ÜÓŻŰŇ­ŰŇ­ŢŐąáŮśáŘľÝÔ°ŰŇ­ŢŐ°ŕ׳ÝÔąŰŇŽÚĐŹŘĎŠŘΊ×ΨÖÍŚ×Χ×ͨÔÉŁŇČĄŇČĄÎÜÍ›ÓȢŘΊÜÓŽŢŐ°ŰŇŹŮĐŞÝÔ°áŘľâŮśáŘłŢŐŻŮĐŤŐËĽŐËĽŘΨŘΧ×ͧÚŃŤŰŃŹŘĎŠŐˤŃǟÎÜĎĝĐŞĎĝĚŔ™Äš’ž˛‹ź°‰ź°‰š­†ľŞ„ľŞ…ˇŹ‡˛¨…Ź¤„Ż¨‹śŻ–ĹÁłĺăÝňńî÷öôűűůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţýýýýýýýýýüüüűűűôôóĐÎĂĆ²ąŞ“˘˜x¤™v¨œxŽŁ}ˇŹ†žłŽŔľĂ¸Çź”Äš’Ĺš’ĎĝÖĚŚŮŃŹÚŃŹŘĎŞ×ΨÖͧÔʤŃÇĄÎÝɾ—Ĺş“ÂśŔľŽŔ´žłŒž˛Œ˝˛‹šŽˆśŤ‡łŠ‡ŻŚ†ŽŚ‹¸˛žÔŃĆîíéőôňř÷öýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýůř÷ăâݲŽŸ–s–ŒmŒƒfyrZf`NGC7.+$/-(NMI’ŕßßýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőôňÜŘĐżˇ˘ˇ­ž´Ä¸‘ÁľĂˇÉž–Éž—ÂśĂˇĹš‘ÁľżłŒžłŒ˝ąŠź°ˆťŻˆź°‰ź°‰şŽ‡¸Ź†ťŻˆÄ¸Čź”É˝•Čź”Ćş’Ćş’Í›ŇČĄŇÇ ÎÛŹ’şŽˆ´Ş…šŻŠĚœŇČĄŇČĄŇČ ÎÛɽ•Ĺş’Ŕľź°ˆşŽ‡˝ąŠÂśŽşŽ‡ł§¸­†ľŠƒŤ {Ÿ”q›nœ‘p…f|sWjcKb[DXQ=E?/:5'1-!)&!
+
+ 
+&&'LLMuuvŞŞŤÔÔÔđđńúúűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýđđďÜŰ×ŃĎÉÉÇž¸ł ż¸žĆż˘ÍĹŚŇĘŠÖÎŹŮŃŽŰÓŻÝÔ°ÝÔąÝÔ°ŢÖ˛ŕŘľáٸâÚšăŰşâÚšáŘśßÖ˛ŰŇŽŘÎŞÖͨÝÔŻâÚˇäÜşßÖ˛ŮĐŞŘΨÜŇŽÚĐŤĎşŃÇ ÖˤÔʤÔËŁÔĘŁŇČ ŃÇ ŇČ ÓɢÓČĄŃǟŇČĄŐËĽŘΨŮĐŤÚŃŹÚŃŹÖΧŐˤŰŇ­âŮśăÚšáŘľÚŃŹĐşËŔ™ÎÜÚĐŤÝÓŽÝÓŽÝÔŽÚĐŤÖĚĽŐˤŇČĄĎĝÎÛÎĜĐĝÍšȼ•ĂˇĂˇÁľź°‰š­‡ťŻˆşŻ‡śŞ„ŽŁ°Ś‚ąŚ…ŽŚ‰żš¤ËĹśÓĐÄăŕÚőôóűűúýýüýýýţţýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţýýýţţţţţţßŢŮ°Š”Ÿ–y›‘pĄ—t§œxŤ }°ŚšŽ‡žłŔľŽĹş’ĐƞÖĚŚŘĎŞŮĐŤ×Ψ×ΧŰŇŹŰŇ­ŘĎŠÔĘŁÍÜź“żľŽ˝łÁľĂˇĂ¸ÁśžłŒ˝˛‹ťŻ‰ľŞ„ŽŁ€ŤĄ°¨¸˛ŔźŤËČ˝đđíüűűýýüţţýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüďîěÉĆ˝—„”Šm„fzrYg`MGB61/&A?9sqnÄĂÂř÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýüüńďíÔĎÄşłšľŞˆž˛‹ĂˇĹš‘Ĺş’Ĺš‘ÂśÂśÂśŽ˝ąŠ¸­‡ˇŹ‡˝˛‹żłŒ˝ą‰ź°ˆ˝ąŠŔ´ÁľĂˇÇť“Čź”Čź”Čź”Ćş’Ćş’Č˝•Č˝•Ćť”Çť”Ĺš‘żłŒžłÂ¸’ËŔ™ÎÛÍšǼ•Áśź°‰ťŻˆ˝ąŠżłŒž˛‹ź°‰şŽ‡˛ŚŹĄ}ą§‚Ž¤€Ľšw–ŒkŽ„d‰€b{rWhaIWP<LF4@:,0,!%"
+
+ 
+ ##$889bbcŸŸ ÍÍÎěěěúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýţţţţţţýýýýüüôôóęęçÜÚÔÁžąš´ żšŁĹžŚĐČŤ×Ď­ÚŃŽŰÓŽÝÔ°ÝŐąÝÔąÜÓŻŢŐąßÖłßÖ˛ŢÖ˛ßÖłŕŘśäŰşăÜşŕŘśá١ß×´×ΊŐĚŚŘĎŤŕŘśăÚšŕŘľŢŐąÜŇ­ŰŃŹŰŃŹ×ͧĐşŇÇ ÓÉĄÍÁšĚÁ™ÎÛĎĜĐƞŇČ ŇČ ŃƟŃƟ×ĚŚŰŇŹŮĐŞŘĎŠŘĎŠŘϨÖĚĽŐˤÚŃŤÚŃŹŐ˧×Ί×ͧŇÇ ŇČĄÔʤŮĎŠŰŇŹÚŃ­ŘΨŇÇĄÍ›ÍÁšĎĜĐƟŃÇ ŃĆ ĐŞÍÁ™É˝•Çť“Č˝•Čź”ÁśŽž˛‹˝ąŠťŻˆ¸­†ľŞƒ´Šƒ˛ŚŻĽ‚ˇ­‘´Ź“ľŽ™ĘĹśŘŐĘáßÖćäŢčĺâóňđüüűűűűüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţúůůĺäŕĹÁľ§ŸŠ˜o’pĄ–tĽšwŹĄ}´Š…źą‹Äš’ËŔ˜ÎÜĐƟÓɢÓɢÔÉŁŮĐŤ×ΊŃÇ ÓČĄŃÇ Ęż˜Čž˜Čž™Č˝–Çź•Ćť“ÁśžłŒ˝˛‹ź°‰ˇŹ†´¨ƒ°Ľ€­˘~ŠŸ}§žŹĽŒÇ´ÔŃČŘÖÎěěéüüüţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţý÷÷÷ÝŰק˘•Œ„jŽ…h}u\e^KD@396-^[Tžœšäăăýüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűúčçáĘơłŹ‘łŠ…Ŕ´Ćş’áÂśŽĂˇÁľ˝ąŠš­†łŠƒ˛¨„˝˛‹ÁľŽżł‹˝ą‰ŔľÇť“Çť“Ćş’Čź”Čź”Čź”Čź”Čź”Ćş’Áľ˝ą‰˝ąŠĂˇÇť”Čź”Č˝•Éž–É˝•É˝•Ćş“żł‹śŞ„°¤~Ž˘}ľŠƒž˛‹Ŕ´ŒťŻ‡ł§€ŤŸ{Ľ›xĽœy˘˜všn‹c~uYskQd\ERL8D>.61$)%
+  ++-IIJhhiŽŽťťźëëëúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţýřř÷úúů÷ööîíë×ÖŇż˝´´ą¤ˇłŁ˝¸¤ČÁ¤ÔĚŹŰÓłß׸áٸá١ŕŘľŢÖąŢŐąßÖłŢŐąÝÔ°ŕŘ´âŮśâ١ŕŘśŕŘľâÚ¸ĺŢžäÜźŕŘľáÚšŕלÖĚŚ×ͨÝÔąĺÜťáŘľÚŃŤŰŇŹÝÔŽÜŇ­ŘΨÔĘŁŇÇ ŃƟÍ›ź’áĹš‘Ęż—ĎĜĐŞĐŝĐƞŇČĄŘΨÚŃŤÖĚŚÖĚĽ×ÍŚÖĚŚÖĚĽÖĚĽÖĚŚŃÇ ËŔ™ĐƞÖĚŚ×ͧÚĐŞÚŃŤŘΧŘΨŘΊÓɢʿ—áĂˇČ˝•ŃƟŐˤŐĘŁŃƞΚĚŔ˜ĚŔ˜Î›ÎÛɽ•Ĺš‘ÂśŽžł‹ź°‰ťŻˆˇŹ…˛§‚ąĽŻ¤Šž~ŚŔšĄĆŔŤĹŔŤÄžŞÇ²×ÔĘŕŢÖçĺáňńďűűűţýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űúúěěęÝŰŐźˇ¨Śž…šo’pĄ—uŞ |łŠƒ˝ąŠÂśŽĹš‘Čź”Í›ĎĜĎĜÓÉŁĐşɾ—ĎĝÔĘŁÓČĄŐˤŐĚĽĎĝĚÁ™Éž—¡˝˛‹şŻˆˇŹ‡śŤ…¸­†ˇŹ…´ŠƒŽŁŞŸ|§{§~¨ „Ž¨’ÎĚÁěęçńđî÷ööüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúääᜲŠ‹„p‡~c|t[`YFD?2LI>}{tĆĹĂööő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řřřâŕŰĂžŹ°¨‹ľŤ…ż´ŒŔ´ž˛‹˝ąŠź°ˆťŻ‡¸Ź…ˇŤ…śŤ…š­†ťŻ‡ź°‰ÁśŽÇť”Ęż—Ćş“ĸĆş’Çť“Çť“Çť“Çť“ĸşŽ‡ˇŤ„˝ąŠĂˇĆş’Ćş’ĸÄ¸Ćş’Čź”Çť“Ŕ´ľŠƒŞžz§œxŤŸ{˛Ś€śŞƒľŠƒŽ˘}¨œxĄ–s™Žn’‡g‰`}tWldK[U@JE3:5'-) 
+
+
+  ++,>>?^^_{{|­­ŽĐĐĐçççůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűúîîëęéćććâŰÚÔŇĐÇËČ˝Ŕź­źˇĄÇÁ¨ŇËŽ×ĐłÜŐˇŕŮşăŰşäÜźäÜťäÝźäÜ˝ăŰşáŮśáŘ´ŕŘ´áŘ´âÚˇćŢžĺÝťäŰšćŢžćßŔçŕÁčáĂéŕÂćŢžâÚ¸ßÖłŢÔ°ßŐ°ŕ׳áŮľÝÓŽÖĚĽÓɢÓČĄŇÇ ŃŞÎÜËŔ˜Ĺş’ÁśŽĂˇž˛‹şŽ‡ĂˇÇť”Çť”ĚŔ™ŃÇ ÔËĽÔĘŁŇǟŃƞÔĘŁ×ΨÖĚĽÔĘŁÓČĄÎÜÍšŃƟÓÉĄŐˤÖ̧ÔĘŁŇÇ ÔĘŁÖËĽÖĚĽÔĘŁĘż˜ž˛‹ž˛‹Ĺş“ÎÛŇÇ ÓČĄĐŝŇÇ ÓɢÓȢŇǟĎĝĎŝÎÛʾ—Äš‘Ŕ´Œżł‹˝ąŠšŽ‡ľŠ„°Ľ€ŠžzŚœzŻŚ†°§‡ŹŁ„´ŹÁšžžśš˛™ˇą›ĘÇşäâÜëęćńńđűűűýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ř÷÷ÓŃÉľŻž¨ĄŠĄ˜z˘˜u§œxŹĄ|´¨‚ťŻˆÁśÉ˝–Ęż—Č˝•Éž–Ęż˜ĚÁ™ŃƟŐËĽŐĚĽÓĘŁŃƟĎĜÎÛΛËŔ™Âˇ¸­‡´Ş…ľŤ†şŻˆ˝ą‰ťŻˆľŞ„ąŚŻ¤Ź |Śœy˘™x˘™{§Ÿ†°Ş–ĘÇ˝ěëé÷÷öúúůýýüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüňńńÎËƖ‘ƒ|t]skTYS@LH9lh]ŤŠ¤ĺĺäýüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţóóńÚ×Îť´žŻŚ„ˇŹ…ťŻˆ˝˛ŠĂˇĂˇżłŒ˝ą‰şŽ‡¸Ź…¸Ź…źą‰ĂˇĆş“Ćť“ĸ‘ÁśŽÁľĂˇÄ¸ĂˇÁľŽŔ´ž˛ŠľŠƒľŠ‚şŽ‡ź°‰ź°‰ź°‰ź°‰ž˛ŠĂˇĆş’Ćş’żłŒľŠƒŹ |ޞzޞzޞzŠy§›w˘—tž“p—ŒkŠ€b}tXqiOd]FSM9D?/51%&#
+  ((*::;VVWrrsŒŒżżżÝÝÝôôôüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőôîîěčçâćäÚăá×ÍĘťżşĽĂ˝ŚÇÁ§ĎČ­ŮѲŢ׸âŰťĺŢżĺŕÄĺáÇćŕÄćßŔäÝžăŰťâŮšâÚ¸ăÜşăŰšâŮľăŰšćßżčáĂćŢ˝âÚˇáŮśăÚšĺÝźćŢ˝ćŢžćŢ˝äÝźăŰšâŮľßÖąÜŇ­ŮĎŠŐĘŁŃƞŃǟĐŝĚÁ™Éž–Ęż˜Îĝɿ˜Ă¸‘Ŕ´ź°‰şŽ‡ž˛‹Äš‘Ęż˜Í›ÎĜÍÜĚÁšĚŔ˜ĚÁ™ÎĜĐƟÍ›ËŔ™Éž—ĸ‘Ćş“ÍÁšÍšɿ˜Ćź–Äš“Ćť“ÍšŃƞŇČ ŇÇ Ęž—Ŕ´ŒÁľĹš‘Çť“Čź•Éž—ĎĜŐˤŰŃŤŰŃŞ×ÍŚŇÇ ĎĝÍšʿ—Çť“Ĺş’Ćş“Ĺş’ŔľťŻ‰ľŞ„ŻŁŞŸ{ŤĄ}Ž¤­Łą§†¸Ż´Ť‹ą§‰ˇŻ’š˛™żšĽĂżŽÓĐÇęéäóóđř÷öüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţööőäăßÍĘżźľ˘Ą—y’qĄ–s¨œxŻĽ€ˇŹ†ť°‰ź°Š˝ąŠ˝ąŠŔľŽÇť”ĚÁ™Ě›ǽ—Ćź•Č˝•ËŔ˜ĎĜŃƟĎĝƻ“˝ąŠşŻˆšŽˆťŻ‰ź°‰ťŻˆşŽˆšŽ†¸­†ł¨ƒŹĄ}¨z¨zĽšx¤š|Ż§‘ÁźŤÍĘ˝×ŐÎéčĺüüüţţý˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţöőőŮ×ÓŞŚœzhjcNZTA^YJŒ„ÔÓĐ÷öö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűúéčăÉĹś°¨Œ°ŚśŤ„žł‹Č˝–Čź•Ĺš‘ÁľŽž˛‹ź°ˆź°‰ĂˇÉž–É˝•Âśź°‰ž˛‹ÁľŔ´ŒŔ´ŒżłŒź°‰şŽ‡¸Ź…ł§ł§ˇŤ„śŞƒľŠƒľŠƒśŞƒš­†ž˛ŠŔ´Ŕ´ź°‰ľŠ‚Ž˘}ŠžzŚšvĄ–s›n–‹j’‡hŽ„e†|_umSf^GWQ=JE3:5'-*"
+  !99:[[\‚‚ƒŹŹ­ÍÍÎââăřřřýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýôóńčçŕÔŇĘÁż°ÉĹłÍÉľÔδÝÖśŢסßءŕءáÚşáŰ˝äŢŔçŕĂçăËçĺĐčăÉčŕĂćŢżá١ŢŐ˛ÝŐ˛ăŰşćŢžäŰšĺÝźćßŔçŕÁăÜźÝŐ´ŰŇ­ÝÔŻáŘľŕŘśßלáŮśĺÝźçßžâŮśŰŃŤÔɢĐŝÍšĚŔ™ÎÜÍšȼ”Ĺš‘Éż—ÓÉŁŃÇ Éž–žł‹˝ą‰ž˛‹ž˛‹Ĺş“ÎÜÍšȽ•Ä¸‘Ćş’Čź”Çť“Čź”Čź”Ĺš‘áŔľź°‰ž˛‹Ä¸Ă¸żłŒš­‡š­‡˝˛ŠĹş’Ęż—ÍšÎÛʾ–áĂˇĂ¸ÁľżłŒÂśÍš×ĚŚÝÓŽŢŐŻÚĐŞÔɢÍ›ɽ•Čź”Čź”Ëż—Íšʿ˜Çź•Âˇźą‹śŤ…ąĽ€ąĽ˛§‚ąĽąŚ˛§„ą§„°Ľƒ´ŤŠłŠ‹­Ľ‡­¤‡šłĚČšŇÎÂŢÜÖóňńüüűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůřřńńîŰŘĐśŻœ –zœ’rŸ•t¤šwŞ |Ź˘}ŽŁ˛Śł§śŤ„˝˛‹ĂˇÁśťŻˆ˝˛ŠĂˇÇť“ĚÁšŃƟĐŝʾ–᏿´Œźą‰şŽ‡š­†şŽ‡ź°‰Ŕ´ÁľŽź°‰ł¨‚ŽŁ~­˘}¨žzĽ›x¤šxĽ›z§žąŞ•ÉĹšĺäßęęćóóňüüüţţţţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűúččĺŔ˝ś’ŽpjX`ZHni[źťˇďďîýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţööőßÝ×˝ˇ¤ŻŚ‡ł¨ƒ˝ąŠÁśÄš‘Äš‘Ĺš‘ĸ‘ĸ‘Çť”Éž–É˝•Ćş’żłŒťŻˆŔ´Ăˇ˝ąŠ˝ąŠżł‹ž˛ŠťŻˆ¸Ź„ł§ł§¸Ź…şŽ‡ź°ˆź°ˆˇŤ„´¨‚ˇŤ„ł¨‚ąŚ¸Ź†´¨‚Ś›x™Žl’‡g’‡gŽƒd‡}_vYwoTlcKYS>JD2<8)0,!"  %%&==?SST||}°°ąŰŰŰóóóűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýőôóćĺăßŢÚßÝÔŐŃÂÎČłÓÍąŮŇľŰÔˇáÚşĺÝ˝äÝžâŰşáٸâŰťăÝžĺŢÁčáÄčăÇčăČčáĹčáÂçŕŔäŰşßײÝÔ°ŕŘ´ăŰşćŢ˝ăŰšŕ×´áŘśŮŇ´Ó̲ÚŇąŕײŢÖłŐβÓĚąŰÓąŕŘ´âÚˇŕײÔÉŁÉ˝•É˝•Ëż—Ęż—Äš‘Ŕ´ÂśĆť“ĚÁ™ĎŞÍ›ȼ”Ŕ´ž˛‹Ŕ´Ćş“Çź”Ĺş’ÂśŽżłŒŔľÄ¸Ćş’ĸĹš‘Çť“Ĺš’áŔ´ŒťŻˆşŽ‡ź°‰żł‹ÁľÂśŽŔ´Œżł‹ÁľÂśĹş’ËŔ˜ËŔ˜Ĺš’żłŒž˛ŠŔ´ŒÂśŽÇť“ÍšŃƟÔĘŁ×ÍŚŐˤŃƞÎÛɾ–Ĺš‘É˝•ĎĜŃǟÍšɽ–Č˝•Áśť°‰źąŠ˝ąŒťŻŠśŞ…ł§‚ľŠ„´Š„˛§‚Ž¤€Ź˘€ŠŸ}¨ž~Ť˘ƒŠĄ…¨ †´ŽœÜŮŃčçâďďěűűű˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýóňńćäŕĹÁ´ąŞ”œ’t›‘pž“r¤˜v§œyŞŸ{ŞŸ{ŹĄ~°§‚ˇ­†ž˛ŠÁľŽÄ¸Ĺš‘áĆş“Ęż˜ÍšÍšɾ–Ŕľš­†ˇŤ…˝ąŠÂśŽÁľŽÁśŽÂśÁľŽź°‰śŤ„˛§Ź˘}ŞŸ{Ť |ŞŸ{§z¤›yŁš|Ž¨ŽˇąžÇĸěëçőőóůůřűúúýüüţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţôôó×ÖŃ°­¤Œ}oiY“ˆćĺäüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýńńîŇĐĹľŽ–­Ł€ˇŤ„ź°‰żłŒÁľÂśżłŒ˝ą‹Çť”͚͚ʾ–ᐞ˛‹ÂśĹš‘Ŕ´ž˛Š˝ą‰˝ą‰ź°‰şŽ‡śŞ„śŞ„ťŻ‡ž˛‹ÁľÁľš­†°¤~ŤŸ{¨žzŠŸ{ŻĽ€Šžzœ‘o‘†f‰`†|^uYvmRjcJ^XBQK8@;,1-!%"
+ !==>aac€€››œËËËőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüůůřňđďŮ×ĎĹÂľžşŠžşŚČÂŤÔÍąŕظăŰšâŰšäÝ˝çŕÁćßŔăŰşáٸäŰşćßżčáĂéáĂéâÄéâÄéáÄçŕÁćßžĺÝ˝ă۸ß׳ŕŘłâŮśáŮśÝÔąŮĐŤŮĎŞŐĚŹÓĚ°ÜÔłÝÔŻ×ΊŃĘŹÔÍŻÚŇŻŘĎŠŐËŚ×ͧÎÝƺ’Çť“Ćť“ĸ‘żł‹şŽ‡şŻˆź˛ŒĂ¸’Éž–Čź”ĸŔ´şŽˆ¸Ź†ŔľĆş“Ćş“ĸ‘ÁśŽÁľĂˇÄ¸Ä¸Ä¸Ä¸ÂśŽÁľżł‹ťŻˆťŻˆżł‹ÂśŽĆş’Č˝•Ă¸˝ą‰şŽ‡ťŻ‡żł‹Çź”Çź”ÂśŽ˝˛Š˝ąŠŔ´Ćş’Ëż—ĚÁ™ÎšĎŝŇÇ ĐŝÍšÎÛĚÁ™Č˝•Ęž–ÍšĎÜĚŔ™Čź”Çť”ĸ‘¡Ćť”Ĺş”Áś˝˛‹źąŠźąŠ¸­ˆł§ƒ°ĽŹ˘~ŠŸ{§œzŚ›y˘˜x’tŁš€šłĄš´ĽÂżľéçĺúúů˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýůřřóňđăáŰšł˘Łš›‘rœ‘pž“rĄ–sĄ–tĽ›w­˘~ľŞ„żł‹Ćş’Ćş’ᏼ°‰˝ą‰ÂśÉ˝–Ëż—Çź”Ŕ´ťŻˆźą‰Ĺş“ĚŔ™Č˝•Çź”Çť”Ćť“ÂśŽź°‰¸Ź†ł¨‚Ż¤Ż¤­Ł~ŤĄ|Ť |Ť |§œyĽœ}ŽŚŽŔťŞËČşÜÚŇěëčőôóűűúýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüěěęËÉÄšˇŻŚŁ›Ř×Ôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úůůăâÜĂ˝­ŽĽˆŻŁˇŤ…ťŻ‰ťŻˆťŻˆľŠƒ°Ľ€żłĚÁ™ŃƟĎĝɞ–ĸ‘Ćş’Çť”Äš‘żłŒťŻ‡š­†ťŻˆ˝ą‰şŽ‡ťŻ‡ž˛Š˝ąŠž˛‹żłŒ¸Ź…Ź { •sĄ—u¤›yĄ—u˜Žm…eŠ€ax[xnTneMc[DTN:GA095'*' --.RRR{{{łł´ĎĎĎŕŕŕůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ööőŮŮÔČÇŔŸÄŔŻÎÉąŮҡŢםŢ׸ÝŐ´ŢÖ˛ŕŘľăŰşĺÝžĺÝżäÝźäÜťăŰšăŰščáĂěĺĘęăĆéâÄéáĂéáÂćŢ˝ăŰšćŢžĺÝźŕŘ´ŕŘłŢŐąŮĐŞÖĚŚÔÉŁŇǟÓʤŘĐ­ßÖ˛ÚĐŞŃÇ ÓĘĽŘĐŹÚŃŹĎşɾ—ĎĝĚÁšĆť“Ĺš‘Ŕ´ź°‰ž˛ŠşŽ‡´Š‚˛¨ƒˇ­ˆÂˇÂśŽżł‹ź°‰ł§‚Ź |ľŠƒŔľÉž–ĚŔ™Č˝•Ä¸ĂˇÄ¸Ä¸ĂˇŔ´Œź°ˆź°ˆ˝ąŠťŻˆž˛‹Ä¸‘Ćş’Ćť“Çź”ÁśŽš­†ľŠ‚śŞ„ťŻˆÁľžłŒşŽˆź°‰żłŒÁśŽČź”ÍÁ™ËŔ˜ĚŔ˜Î›ÎÛĚÁ™Ęż—ÍÁ™ÎÛÍš˿—É˝•Éž–Čź”Ćş’øĆş“ËŔ˜ĚÁšÉž–Äš’Ĺş“Ćť“Ăš‘şŻ‰ľŞ„´Ş„ąŚŤ |§z¤™w –sœ’q›’rŸ–z•Œr–‘|ĘÇžŕßÜ÷÷ő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýüőôóŕÝ×ÍÉžąŞ–›’v˜nšnœ‘pŁ˜uŹĄ|ľŞ„ž˛‹ÂśÁľŽ˝ąŠśŞƒˇŤ„˝ą‰ÁśÂˇŔ´Œżł‹ÁľĹš‘ÍšŇÇ ÎĜÍšÍÁ™ËŔ˜Ćş’Áľ˝ą‹š­‡śŞƒł§‚ŻĽ€­Ł~ŽŁ~ŽŁ~ŤŸ|¨žzŚœz§ž~­ŚŒŔťŞĘČźÚŘŇîîëőôóúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ÷÷÷ĺäáââßđđďýýü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýóňń×ÔËś°™Ź˘°Ľ˛§°¤ł§ąĽ°¤ź°ŠĆť”ĚÁ™ÎÛÍš˿—ĚŔ˜Éž–Ŕ´˝ąŠź°‰şŽ†š­†ťŻˆź°‰ž˛‹ž˛ŠľŞ„ŻŁŻ¤ŹĄ|§›xĄ–sŸ”r™n‹d‚x\~tXzqUofMaZDWQ<LF4<8)0, $! >>>iijŸŸ ĚĚĚóóóűűűýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüř÷÷ňňđŮ×ŃÇòĹÁŤĚĆŽÔÎłÚÓ´ßءáٸáÚ¸ŕ׾ŕ×´áŮśâÚ¸ŢÔłÜŇąŕ׾ĺÝ˝äÜźŕŘśćŢżëĺÉęăĆčŕÁĺÝźĺÝťáŮśß׳âÚˇáŘľÜŇ­ÜÓŽÚŇŹÖĚŚŃƟÍšĚŔ™ŃƟŘΨŢŐąÜÓŽÖĚŚÓÉŁŇČĄĐŞʿ˜Ęž—ŇČĄĚݦťŻˆ¸Ź†š­†˝ą‰ź°‰ˇŤ„ˇŹ…şŻˆź°‰š­†ľŞ„˛¨ƒŤĄ}¨œyŻŁ~şŽ‡Ă¸Č˝•Ęž–Ęż—Ęž–Çť“Ŕ´żł‹ž˛ŠşŽ‡š­†ťŻˆź°‰ÁľŽĹš’ÂśŽ˝ąŠť°‰ź°‰ťŻˆˇŤ„š­†şŽ‡´Šƒ°Ľą§‚šŽˆŔ´ŒÂśŽČ˝•ÎÛÍÁ™ĚŔ˜Ëż—Ęż—Éž–É˝•ĚÁ™ĎĜÎÛ˿—Čź”Çť“Ĺš‘áÁľÇť“ÎÜŃƟĎŞÍÛÍ›ɾ—øť°ŠşŻˆžłŒš­‡°Ľ€¨y¤švĄ–t’qšo—m’‰j”‹oŚ ŁžŞ§ööőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüúúůöőôëé岏œĄ˜~™pœ‘p˘˜u§œyŹŁ~˛§‚˛§‚ˇŤ…şŽ‡ˇŹ„ťŻˆżłŒ¸ŽˆľŞ…ˇŤ„ź°ˆÁľÄ¸ËŔ˜ĐƞĎĜÍÁ™Ęž–Ćť“Ĺš‘ĸÂśŽž˛‹ťŻˆˇŤ…ł§‚°Ľ€ąŚ€Ż¤Ť |­˘}­˘}¨žz˘˜x —{›“zŠ¤“ĎÍÄŕŢŘîíěűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüűüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüîíëĎĚŔ˛Ş‘ŹĄ­˘}Ť {°¤~˛Ś˛§€š­†ž˛ŠÁľŽÉž–ĎĜĐŝŃǟÍĜ¶żł‹żł‹ž˛‹ťŻˆşŽ†ťŻˆź°ˆ¸Ź…­˘}Ľ›xĽœyĽ›xŁ˜u’p“‰h‡}_wnTofNkcJc[DUN:HC1=8*2."$!  <<<cccĆĆĆěěěýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýüęéçČÇÁľ˛§°­ źˇ¤ĎČ­ŰÔśăÜ˝äÝ˝á١ŢŐąŢÖ˛áŮśäÜşăŰšß×´ÚŃ­ÓɤŐËŚÜÓ°ŢÖłÜÓąŮĐŹŕŘľçßżçßżâÚˇŢŐ°ÝÔŻÚŃŹŘΨŮĐŞŮĎŠ×ÍŚ×ΨÖĚŚĐŞĚÁ™Ëż—ËŔ˜ĎĜÔɢ×ͧÖ̧ÓĘŁŃƟĚÁ™Ćť“Ĺš‘É˝•ĐƟĚ›ĸşŽ‡şŻˆż´ŒŔ´ťŻ‰ľŞ…ˇŤ…ťŻˆź°‰śŞ„Ž¤Ş˘¨Ÿ|¨ž{ŹĄ}ąŚ€ˇŤ…żłŒÇź”ĚŔ˜ÎÛĚŔ™Ă¸ÂśŽÂśŽÁľŽž˛‹ź°‰ž˛‹ÂśŽÂśŽź°ˆľŠ‚ľŠ‚şŽ‡ž˛‹ź°ˆśŞ„°¤ŞŸ{Ş |°ĽľŤ…¸Ž‡şŻ‰Ä¸‘ĚÁ™ÎÛĚŔ˜É˝•Čź”Ĺš’ĸÇť“Ëż—ĚÁ™ËŔ˜Čź•Ă¸ĂˇĂˇÄ¸É˝•ĎĜŇÇ ŇČ ĐŞĎŝʿ—Ꮮ˛Šžł‹Ă¸‘Ŕľš­†ŽŁ~ŞŸ{§œx˘˜t›‘p—Œl”Ši“‰i‘ˆjŒ„jŒ…pľ˛Šéčćüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűÝŰןˇŠĽž‡›‘rŸ”rĄ–tŁ™vĽ›xŚšwŻŁ~¸Ź…š­†šŽ‡¸­‡ŻŚ‚Ž¤€ł§¸Ź„şŽ‡ź°‰Äš‘ÍÁ™ĎÛÍÁ™Ęž–Ĺš‘ĸĹš‘ĸĂˇÂśŔ´ŒşŽ‡´¨ąŚ°Ľ€­˘}°Ľ˛§Ť |Ł˜uœ’p•‹k“‹oĽŸ‹ąŹĘČŔęéćôôňúúůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůäăÝŔş¨ŽĽˆ­˘€Ž˘}ł§´¨ł§€śŞƒˇŤ„š­‡Ĺş’ÎÛĎĝÔˤÓʤȽ•ÂśŽŔ´ŒÂśŽž˛‹š­†š­…śŞƒ˛Ś€ŞžzĽ›xŚz¤šxž“r‘†f‚y\vlRkbJc[E[T?NH6?;+30#(%  112VVW||}ŽŽŽ×××÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýččćÖŐŃŇŃËÁż´ÇòĐʲ×ѡÜÖşßךáŮšâŰşăŰşáÚ¸ŕŘľáŘśäÜşćŢžâÚˇŮĎŞĐşĐĝÖĚŚÜŇ­ÖËĽĐşÓɢÚŃŹŕŘ´ŕŘ´ÜÓŽŮϨŘΨÖËĽŇČ ŇČ ÓÉĄÔɢÓɢÎĝȼ•Ęż—ÎÛÍšÎÛÎÜÍšËŔ˜Ęż—Ęż˜Çź”ÂśŽÁľÄ¸Éž—ĚÁ™Ęż—øĹš’Éž–ᐸŽ‡ą§‚ąŚ¸Ź…žłŒˇ­‡Ž¤€ŹŁŤ˘~ŞĄ~ŞĄ}Š |­Ą}š­†Ä¸Čź”ĚÁ™Î›ËŔ˜Čź”Ćş’Çź”ĸżłŒŔ´ŒÁľŔ´Œš­†ľŠƒˇŤ„ź°‰Ŕ´Œž˛‹°¤Ł˜uŚœyŻ¤€´Š„˛¨ƒ°Ś‚˛¨„˝˛ŒČ˝•ËŔ˜Ęż—É˝•É˝•Ä¸żłŒÁľŽĹş’Čź”Éž–Ćť”Ŕ´ĂˇČź”Čź”Ęž–ÍšĎĜÍ›˿—ĘŔ˜Ćź”Ŕ´żł‹ż´ŒÂśĂˇŔ´¸­†´ŠƒŻ¤¨žzŸ•s™n•‹j“‰i‘ˆiŒƒf‰g›•ƒśł¨ŢŢÚúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýéčĺČÄš¤ˆŁš~ž“r •s –sŁ˜u­Ą|śŞ„¸Ź…ąĽ€ŞŸ{¨Ÿ|ŽĽ€śŞ„śŞƒľŠ‚śŞ„Ŕ´É˝–ĚÁ™ÍšĚÁ™Éž–Ćş’áĆť“Čź”Çť“ĸ‘ž˛‹śŞƒ´¨‚´¨ƒł§´Š‚ł¨‚ŹĄ}Ľšvž“q–Œk‘‡h‡k‡oœ—„Ä¡ŐÔÍééćúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőôóÚ×Ξ¸Ś°§ŠŽŁ€˛§´¨‚ł§´¨¸Ź…żł‹Ćş’Ëż—ĚÁšÓĘŁÔËĽÇź”żłŒź°ˆşŽ‡š­†¸Ź…¸Ź…ľŠ‚°¤~ŠžyŁ˜uŸ•s›‘o”‰hƒy\sjPf^F^WATM:IC1<7).* "
+''(HHIooo¤¤¤ÉÉÉěěěúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýňňńÜÜŘÄÁ´žşŞĂżŹĘĆąÔÎłÝŐśâÚťăÜźăŰşăŰşăŰşăŰšäÜťăÜťâÚ¸ĺÝźçŢžáŮśŐʤɞ–Ęż—ŇȢŮĐŤŐËĽŇČĄŐËĽÖÍŚ×ÍŚ×ÍŚÖĚĽ×ͧŰŃŹŮϨÔĘŁÓÉĄŃƟÍšź“á‘Č˝•ĎÜŃƟĚÁ™Ëż—ËŔ˜ËŔ˜Č˝•Ăˇ˝˛Œş°Šť°‰ž˛ŠÂˇĘž–ΚÎÛ˿—ËŔ˜ĚŔ™Âś¸­†´Šƒ´Š‚ľŞ„śŹ†´Ş…˛¨ƒ˛¨‚°Ś­˘~Šž{¨žzŽ˘~ťŻˆÄ¸Ĺš‘Ęž–ĚÁ™Çź”¡żłŒ˝ąŠź°‰˝ą‰ÂśŽĂˇŔ´żłŒ˝ą‰şŽ‡żł‹Ä¸Ăˇł§‚Ł˜uĽ›x°Ľ€š­‡šŽ‡ˇ­‡¸Žˆž˛ŒÂśÂˇÄš‘É˝•ÎÛʾ—ĸ‘Ćť“Çť“ᐽł˝łĹš’ËŔ™ÎÜʾ–Çť“Čź”ĚÁ™ĚÁ™Çź”žľ¸Ż‰¸­†ź°ˆÁľÄ¸Ĺš‘ĸ‘Áľźą‰śŤ„­Ł¤›xž“q˜l•Šj‘‡hŒƒdŠ€c…k•ŽzŞŚ™ßŢÚýýü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýüüôóńăáÜžšŠŚžĄ–t˘˜uĄ–s§œy°Ś‚ľŞ„­Ą}Ą–t –tŤĄ|šŽ‡ž˛Šź°‰ź°ˆÂśŽĆş’øĆť“ËŔ˜ÎĜËŔ˜Çź”ĚÁšÍšǻ”˝łšŻ‰ž˛‹ĂˇĂ¸‘ź°‰ˇŤ…ł§‚Ż¤~ŞŸ{Ł˜v˜l†f„d‹‚eŽ†lœ–­¨˜ĘČŔééć÷÷öüüűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţöőóŰŘĐż¸Ľ°Ś‰ŽŁ€˛Ś€ł§´¨‚ťŻˆĂˇÄ¸‘Ćş’Ęż—ŃƟĎşø‘ź°‰¸Ź…ľŠ‚ľŠƒˇŤ…¸Ź…ľŠ‚°¤~ŤŸ{Ł˜u™Žm‘‡gˆ~`wnSe]FUN;KE4?:+3/")%
+ 
+777aaaťťťâââůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűňňńĘČŔł°˘ť¸ŚĚÇŽÚÔ¸âŰżäÝżäÜ˝ăŰşá١âÚˇăŰşćŢżçŕÁćßžčŕÂéâĂćßżčŕÁéáÄĺÝ˝ŘÎŞĘż˜Ëż˜ĐƟÖÍŚ×ΧŘĎŞÚŃŹŐËĽĎÜËŔ˜ËŔ™ĐŞŮĎŠŮĐŠÖĚĽŐĘŁĎĝȼ”˝ąŠ˝ąŠËŔ˜ŇČ ÔĘŁĐŞ˿˜Çť”Çź”Ĺş’ż´Œˇ­‡´Ş…şŽ‡˝ąŠÁśŽÇź”Ęž—Ęż—É˝–Č˝•Çź”Âś˝ąŠťŻˆşŽ‡ˇŹ…ą§‚˛¨‚ľŠƒľŠƒ´¨‚ąĽŹĄ|Ž˘~ľŠƒź°‰Ŕ´ŒŔ´ŒĆť“Éž–ÂśŽź°‰¸Ź…ľŠ‚śŞ„ź°ˆĂˇĆť“Ĺş’Çť“Çť“áĹş’Ęž–Éž—ź°ŠŹĄ}ŞŸ{˛Śź°‰ÁľŽÄš‘Ĺš’¡ž˛‹š­†ť°‰Â¸‘ÎĝĐŞÍÁšÍšËŔ˜Ä¸‘šŻ‰şŻŠÉž–ĐŞŇČ ÎÛȽ•Ĺš‘Çť“Çź”øšŽ‰łŠ„ˇŤ…ťŻˆżłŒÄ¸Ĺš’ĸÄ¸ż´Œš­‡łŠ„­˘~ĽšwŸ“q˜Žm”‰i‘†f„e„fŠ‚gŽ‡qą­ ÝŰ×őôôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţŕŢÚź¸§˘š|Ł™wŁ˜uŚœy­˘~ľŠƒ°Ľ€ŚšwŁ˜u­˘}ź°‰Ĺš‘Čź”Çť“Č˝•Ĺš‘ťŻˆź°‰Ä¸‘ÍÛĎĝΛŃƟĐŞȽ•ťą‹¸Ž‰Ĺş’ΛĎĝǼ”żł¸Ź…˛§‚­Ł~Śzœ‘p”Ši‘‡gŽ…e…g†j’‹sŁ‹Á˝˛ŇĐĘččćúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţôóńŰŘÎŔşŚŻĽ‡Ż¤€˛§¸Ź„ťŻ‡źąŠž˛ŠÂśĘż—ËŔ˜Čź•ÂśŽ˝ą‰şŽ‡ˇŤ…ˇŤ„ˇŤ„ˇŤ„ł§Ž˘}Ź {¤˜u•Ši‰a}tWldKXQ=E?.61%(%
+ BBCyyyŻŻŻŘŘŘůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőôäăŕÍĚĹżź°ÄžĽÓĚŻÜŐšâŰžäÜžäÜźăŰşăÜťĺÝ˝äÜşĺÝťçŕÁęäČěĺĘěĺĘíćËîčĚîčÍîčÎîčĎěćĚáٸŐËĽŇČĄŃÇ ŇČ ÖĚŚŰŇ­ÝÔŻ×ͧĚÁšŔľŽž˛‹ÂśÎÛÔɢŐĘŁŇȠΛɽ•ĂˇÄ¸ĚÁ™ŇČ ÖĚĽŮĎŞĐşĸ‘żłŒžł‹ż´ŒżłŒ˝˛‹˝ąŠżł‹žł‹˝ąŠż´ŒÁľ˝˛Šź°‰ž˛‹Äš‘Ĺš‘Ŕ´Œżł‹ź°‰¸Ź…ľŠƒł§˛Ś€´¨‚śŞ„ľŠƒśŞ„š­†¸Ź…ˇŤ„ťŻˆÂśŽĹš‘Áľ˝ąŠşŽ‡¸Ź†ťŻˆŔ´Ćş’Éž–ËŔ˜ÍšĎÜŃǟŃƟŃƞŃÇ Ćť”¸Ź†ľŠ‚ˇŤ„ťŻˆĹş’ÎÛĎŝɽ–żłŒśŞ„˛¨‚ś­ˆČž—ŃǟÓȥЪΚËŔ˜Äš‘ÁśČź•ÍšŃƟÔʤĎŞǻ“ÁľŽżłŒŔ´żłŒż´ŒÁľŽ˝ąŠź°‰Ŕ´ŒÁľÁľŔ´şŻˆśŤ…şŻˆśŤ†­˘~§œy –t™Žm•‹j“ˆiŽ…eŠ€b‰€eŽ†n ›ŒšľŹäâŕţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţýýçć✲ ŠĄ„Šž{Ş {Ż¤~¸Ź†¸Ź†´¨‚ł§ľŠƒť°ˆĆş“ĎĜŃƟĐŞȽ–š­†ľŠƒšŽ‡Ćş“ĎĜŇČ ŃƟĎĜĚÁ™Ĺš’ÁśÇť”ĚÁ™ĐŝĐŞ˿˜ÂśľŤ†ŽĽŤ˘~Śœy •r›n•‹j‘‡gƒeŒƒh‰n”wŁŒÄšĺäá÷÷÷üüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüđđě×Ôʸ°šŽ¤„°Ľ€˛ŚąĽ€ł§ƒ˝ą‹Ćş“É˝–Äš‘ÁľŽĂˇÂśżłŒşŽ‡śŞ„ł§Ż¤~§œx •qœ‘n”‰iˆ~_ypUhaIUO<C=.1-"$!
+ ))*MMNƒƒ„ĘĘĘđđđţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţÜÚÔËČżşľŚżşĽÎČŻÚÓ´âŰťçáÂčáĂĺŢžâŰšäÜťçßŔéáÄčŕÂčáÂéâĹëĺÉëäČéăĹëĺČîčÍđëŇđëÔđëÓíçĚăŰş×ͧĐƞ͛͛ÓÉŁŮĐŞŰŃŤŘΨĐƟőŔ´ĂˇĚÁ™ŇČ ÔĘŁŇǟĎĜĎĜÍ›ËŔ™ĚÁ™ĎĜŇČĄÓɢĎÝȽ•Ĺş’¡ÁśŽĹš‘¡ťŻ‡şŽ‡ź°ˆź°‰ž˛‹ž˛ŠşŽ‡¸Ź…š­†źąŠżłŒŔ´ŒŔ´Œżł‹ź°‰şŽ‡ˇŤ„°Ś€´ŠƒšŽ‡śŞƒ°¤Ž˘}śŞ„ź°‰ź°‰ź°‰ž˛ŠĂˇÄ¸‘øÁśŽÄ¸Çź”Čź”É˝•Ëż—ËŔ˜ĐŞŮĎŠŰŃŤŮĎŠ×ͨËÁšž˛‹š­†¸Ź…şŻ‡Ä¸‘ΚŃƞĎĜȽ–żłŒšŽˆşŻ‰Çť”ĐŞÓÉĄĎĜÍÁ™ÎÛ˿—Éž–ËŔ˜ÎšĎĝĐƟĎĜËŔ˜Ćť“¡ÁśŽĹš‘Ĺš‘Ŕ´ťŻˆşŽ‡żł‹Ŕ´ŒŔ´ŒŔ´ŒťŻˆśŞ„śŹ†śŤ†ł¨‚°ĽŞ {˘—t›o–‹k’ˆh†fƒeƒg…m˜’ą­˘ăâŢýýü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úůůäăÝšł˘°Ś‰Ť |Ż¤ľŠ„śŞ„´¨‚ł§ľŠƒš­‡Ă¸ÎšŃÇ ÔĘŁĐƟù’žłŒŔ´ŒČ˝•ĐŞÓÉĄĎĜÍÁ™ÎÛÍšʿ˜É˝–ĚŔ˜ÎÛËŔ™Éž–Ćş“˝łˇŹ‡ł¨ƒ˛Ś‚ŹĄ|Ł˜u›‘o–Œk†f…e‡i‘‰n“Œu˘ŒśłŚËÉĂěëéýüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűúęéäÉÄś´Ť‘­˘€ŽŁ~­Ą}ŻŁťŻŠĹš’Ćş’ÂśŽŔ´Ćş’Çť“ᏺŽ‡˛Ś€ŤŸzŁ˜u™ŽmŽ„e†|^~tXsjPc\EQK8=8)-)
+ 334ccc˘˘˘ŰŰŰúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙öőőÔÔŃźť´ˇł˘ĹżŠŐϲÜŐśßءŕלăŰşçŕÁçßÁĺÝ˝äÜźçáĂëäČíçĚëäČéâĹéâĂéâĂçßżĺÜşçßżëäÇíçĚíčÎěćËçŕÂŢŐ˛ÓĘŁÍÁšĘž–Ëż˜ĐŞÔĘŁŐˤÖĚŚÓÉŁËŔ˜É˝•Ęž–ΚŃǟÓČĄĐŝĐŝŇÇ ÓÉĄĐŞ˿—ËŔ˜ĚÁ™Éž–Éž–ĚÁ™Î›ʿ—Ćť“Ëż˜Ćź–şŻ‹¸Žˆ˝ą‰Ŕ´ŒÁľž˛‹¸Ź†śŤ…ˇŤ„´¨‚śŞ„ź°ˆżł‹Ŕ´Œž˛‹żł‹ť°‰˛¨ƒľŤ…ťŻˆśŞ„ŹĄ|§œxľŞ„ż´Œť°‰¸Ź…š­†Äš‘Ęž–Ëż—Çź”Čź”Éž–Çť“Ćş’Čź”Éž–ĐĝÚĐŤÝÓŽŰŇ­×ΊĚ›Áľź°‰ťŻˆ˝ąŠĂ¸Ëż—ĎĜŃƟĎĝɽ•Ä¸Ä¸Éž–ĎĝŇÇ Íšʿ—ÍšĎĝĐĝÎÛĎÛÎÛËŔ™ĚÁ™ÎÛÎĜËŔ˜Çź”ËŔ˜Éž–Ŕ´˝ąŠž˛‹ÁśŽÂśŽŔ´˝˛ŠşŻ‡ˇŤ„ą§°Ś´ŠƒśŞƒ˛§Ť |Ł˜t’p—Œk–‹j“‰h…f‰€bŠgˆsŞĽšŐÔĎ÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýçć὜Ł­Ľ†ŤĄ~°Ľ°Ľ€ŻŁ~°¤ł§¸Ź†Ŕ´É˝•ĎĜÔʤÔˤÎÜʾ–Ęž–ÎÛÓČĄÓɢÍšʿ—ΛŇÇ ŃƟ˿—ĚŔ˜ĚÁ™Çť“Ćť“É˝•Čź”ᐞ˛‹żłŒ¸­†ŹĄ|Ł˜uœ‘p–‹j“‰h‘‡g„gŽ†m“Œu™“ž™ŠÄÁšňńđüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůáßŮŔş§Ź˘„ŽŁ~´¨‚ľŞ„ąŚ´Š„żłŒĆť“Éž–Çť”ĸž˛‹´¨‚§œx›n‘†g‡}_~uXqhOc[EWP<HB283&&#
+
+  223VVV‹‹‹ÉÉÉőőő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţřřřîîěŕŢŮş´ŁŔşŚĚĆ°ÖĎ´Ţ׺äÜ˝ćŢżćŢžĺÝźáٸŕŘśâÚşçŕÂëĺĘíçÎîéĎďčĎěĺÉčŕÁäÜşă۸ăÚśâŮľăÚśä۸ăŰşá١ŢÖłÚŃŹÓȢĚÁšĚÁ™ÍšĚÁ™ËŔ˜ĚÁ™ĎĜÎÛÍÁ™ÍšÍšÍšÎÛÎĜÎĜ˿—É˝–ËŔ˜ÎÛΛȼ•Çź”Ćş’ÁľÁľĆş’ĎĝŃƟĎÜŃǟÎĹŁĹžŁĂşšÄ¸’Ĺš‘ÂśŽźą‰˛¨ƒ˛§‚śŞƒł§˛Ś€ľŠ‚ťŻ‡˝ąŠťŻ‡ź°‰ź°‰ˇŹ†¸Ź…š­†ťŻˆš­‡śŤ…łŠ„°§ƒą§ƒˇŹ†żł‹Ćş’Čź”Čź”ĸÂˇÂśŽž˛‹Ŕ´Çť“Ëż—ÎÛŃƟĎŞÎÜĎĝɞ–ÂśŽĂˇÄ¸Ä¸Ćş’Ęž–ÍšĚÁ™Ëż—É˝•Ęž–ĚÁ™ĐƞŃǟĎĝʾ—Čź”Ëż˜ŇÇĄÓÉŁĚÁ™ĚŔ˜ÎÛΚĎÛĐŞÓČĄÓɢŇČĄÓɢŇÇ ĚÁ™Ęż—Ęż—Ëż—Čź•ÁśľŤ†´ŠƒśŤ„ł§ŻĽ€ą§‚ˇŹ†ˇŹ…­Ł€¨Ÿ|Ś›y –sœ‘o™l”Ši‘‡h†g„gŠƒkˆv˝šąďďîţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűŕŢٲŹ˜¨ŸŤ }ŹĄ|ŹĄ|Ż¤~ł§ˇŤ„˝ą‰Äš‘ĚŔ˜ĐŝĐŝĚŔ™ĚŔ˜ÎÛŇČ ŐĘŁÔɢÍÁ™Čź”ËŔ˜ŃƟŃÇ Ëż—ËŔ˜ÎÛĚÁ™ÍÁ™ÎÛÍ›ĚÁ™ËŔ˜ĚÁ™Çť”źąŠł§‚ŤŸ{¤™vŸ”q—l…f…g’Šn”t•Žz™”„¸ľŤÔÓÍęéçýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýîíęŇĎÄľ­—ŞŸ~ŻĽ€ą§‚Ż¤€˛ŚźąŠĆş’Éž–Ĺš‘ž˛‹ˇŤ„ŹĄ|ž“qŽ„dvYtkPkcK_XBOI7@;-1-#$"
+  ""$BBCyyyŽŽŽŰŰŰúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţěëçÍËĂś´§¸´ ĆżĽ×вăŰ˝ĺÝžćßŔćßżĺŢžĺÝ˝äÜźăŰşâÚşäÜźçŕÁęăĆíćËěĺÉęăĆëăĆçßżâŮśŢŐ°ÝÔŻŢŐ°ÝÔŻÜÓŽÜŇ­ŘĎŠŐËĽÓČĄÎÛɽ•Čź”Č˝•Çź”Ĺş’Çť“Ęż—Éž–Ęž–͚Κ˿—Ćť“Čź”É˝•ÂśÁľŽÇť“Ęż—Č˝•ÁśŽź°‰ľŠ„­˘}´¨‚ÁľËŔ˜ŃƞŃǟŃƞĎŢÍĹŚČżœĂˇž˛Š¸Ź†ł¨‚ŻĽ€˛§śŤ„ľŠƒľŠ‚ˇŤ„ˇŹ…´Š„°Ľ€ąŚ€´ŠƒşŽ‡şŽ†¸Ź…¸Ź…śŞ„ł¨‚ŻĽ€Ž¤€ą§‚šŽ‡ŔľĂˇÄ¸Ä¸Ä¸Ä¸Ăˇž˛‹Ŕ´Ćş“Čź”Éž–Ęż—Čź”Ćş’Ęž–Ćť“ÁľŔ´ÁľÁľÁľĂˇÇť“Čź”Č˝•Ëż—ĚŔ˜ËŔ˜Éž—ËŔ™ĚÁ™Ćş’áČ˝•ĎŞĐşǼ”Ćť“É˝•ËŔ˜ĎĜŇÇ ÓČĄŐˤ×Χ×ÍŚŐĚĽÔĘŁĎĞËŔ˜Čź•ÁśšŻ‰łŠ„śŤ…şŽ‡š­†ˇŹ†¸­ˆ¸­‡ł¨‚ŤĄ}ŠŸ|ŞŸ|§œzĄ—t’qšn˜m”Šiƒe„|_y_‹…r˛Ż§ěëéţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úůřŢÜŐž¸§Ş €ŤĄ~Ť }­˘~Ż¤~ąĽśŞ„ž˛‹Ă¸Ęż—ÎÜĎĜĎĜÎÜÍ›ŃƞŇČ Ęż—Çť“ËŔ˜ŇÇ ŃÇ Ëż—Ęž–ĚŔ˜ĚÁ™ĎĜŃǟĐŞĐŞŇÇ ŇČ Ďŝɿ—¡š­‡­˘~¤™v›‘o”‰i†g†h‡m•Žx™“€˘œŒŽŤ ËÉÄîîěúúůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůćĺŕĆÁ˛Ź˘‡¨zŹ˘}°Ś€śŞ„ź°ŠÁľŽĂˇżł‹śŞ„ŤŸ{Ą–s“‰h‚x[phNaZDXQ=LF5=8*.* 
+
+   ;;<ccd“““ĐĐĐđđđüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüäăáĹĹżžťŹÁźŚŃĘ°ŘŃłŰÓłáءĺÝ˝çŕÁčŕÂçßżăŰşáŮľŕŘľĺÝ˝čáĂčŕÁĺÝźäÜťčáÂçßžĺÜşçßžĺÝźáŘ´ŰŃŤŘΨŘĎŞÖĚŚÓÉŁÓɢŃƟĎĜÎÛ˿˜Ćş’ÂśŽŔ´ŒŔ´ŒŔ´ŒÂśŽĆş’Ćş“Çť“Ëż—Éž–Äš‘˝ąŠžł‹ŔľŽşŽ‡ťŻˆÄ¸Çť“áśŞ„ŞŸz •s›‘oŞ {ž˛‹Çť“ÎÛŃǟÍ›ĚŔ™ÍÝǼ•ž˛‹śŞ„ŻŁŹ |ŽŁ~˛§€ľŞƒśŞƒ¸Ź…ˇŹ…ŻĽ§z¤™vĽ™vŤ |şŽ‡şŽ‡ľŠ‚ŻŁ~ŞŸzŠy­˘|ł§śŤ„şŻˆž˛ŠŔ´ŒÁľÁľÄ¸Ćş’Ćş’ÂśŽÂśŽÄ¸ÂśÁśŽÄ¸ĂˇÂśĹš‘Ꮮ˛ŠşŽ‡š­†š­†š­†ź°‰ÂśŽÄ¸‘Çť“Ęż—Ęž–Ćş’żłŒĂˇÇź”ÁśŽŔ´Ćť“ĚÁ™ĚŔ™Äš‘ÁśŽĂˇČ˝•ÎÛŇČ ŇǟÔˤŘĎŞ×ΨÖĚŚŐËĽĎŞɽ•Ă¸‘ş°Š´Ş…ˇŹ†ťŻˆ˝ąŠž˛‹ż´ŒżłŒśŞ„ŤŸ{Ś›wŚ›xŠž{ŹŁŠžz¤™vŸ”r™n”ŠiŽƒe„z]~uZzrY~xeľłŤîíěţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůĺăÝł­—¨Ÿ‚¨ž|ŤĄ}ŤĄ|Ť |ąŚ€¸Ź…˝ąŠĆş“ΛŇČ ŃǟÍšǻ”Ęż—ĎĝȽ–Çť“ÍšŇČ ŇÇ ËŔ˜Č˝•É˝•Ęż—ĎĜÓČĄŇǟÓÉĄÖĚĽÖĚĽŐËŁŇÇ Ęż˜ŔľŽ˛¨„§zŸ•r›n–Œj’ˆh…h‘‰p˜’|ž˜„œ—‰˘ž“ĹĂźęęčúúůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţóóńÚŘĎš˛ŸŚ›|ŠŸ{°Ľ€śŞ„şŽ‡¸­†ˇŹ…śŞ„Şžz›nŽ„e‚y\tlRc\DQK9C>063&*'
+
+
+111YYYŒŒŒĹĹĹéééűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúůôôňŐŇÉťś¤ĂžŠÍÇŽÖÎąÝÔ´ßÖ´ŕ׾ăŰşçŕŔéâĹčŕÂäÜşßŐ˛ÜÓŻÝŐąäÜźçŕÁĺÝťŕŘ´ßÖłă۸äۡáŘ´ŢŐ°ßÖąßÖąŮĐŞÔĘŁŃÇ ËŔ™Çť“Çť”É˝•Ęž–Ęž–Ćş’ÁľŽź°‰şŽ‡şŽ‡şŽ‡˝ąŠŔ´ŒżłŒżłŒĂˇÁľź°‰š­†ľŤ…´Ş…¸­†ťŻˆ˝ąŠĂˇź°‰¤™v”‰i†gž•t°Śžł‹Ĺš’ËŔ˜ĎÜ˿˜Ĺş’ÂśŔ´ž˛‹ťŻˆśŞ„˛Ś€°¤Ż¤ŻĽ€ąŚ€°¤ŤŸ{Ÿ–s—l—Œk’p¨y¸Ź†ľŠƒŞžz˘—sĄ–sĽšwŻŁ~śŞƒˇŤ„śŞƒˇŤ„ž˛ŠŔ´Œżł‹ž˛‹ÂśŽĹš‘ÂśŽž˛‹˝ą‰ťŻˆš­†¸Ź†ź°‰Ŕ´ŒÂśŽž˛‹şŽ‡ľŠƒľŠ‚ˇŤ„¸Ź…ź°‰ÂśŔ´żłŒĂˇĂ¸ÂśŽżł‹ž˛‹ż´ŒÁľŽĂˇĂ¸Ęž–ĚÁ™Ćş’áÂˇĘž–ĚÁ™Î›ŇÇ ÖÍŚŮĐŞ×ΨÓČĄĎĝÍšĚÁ™Ęž—Ĺş“ŔľŽž˛‹ź°‰ź°ˆž˛Š˝ą‰śŞ„ŠžzŸ“qž“pĽšuŽŁ}śŞ…°Ś§œyž“q•‹k’ˆh…f†}_|tWslRphQ}wgąŻŚďîíţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüâáŰČÄśŻ§§{ŞŸ|ŹĄ}°¤€ˇŤ…Ŕ´ŒĂ¸Čź”ĎĜĐŞÎÛȼ”Ćş’Çź”Éž–Ęż—ËŔ˜ŃƟÓɥΛʿ—Éž–ĚŔ˜ĎĜŃǟÓɢŘΧÜŇ­ŮĎŠÔĘŁĐƞɽ•ÂˇžłľŞ…­˘}Śœyž”r˜l’‰h†h‘‰n•Žyž˜ˆĄš§˘˜¸śŻĺäâ÷÷öýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüűííéĘĆşŞĄ‰¤šzŠž{°¤€´Šƒ°Ľ€Ť {Šyœ‘pŒ‚c}sXpiPc[EQK9>9,1-#%" 101VVV~~~ˇˇˇăăăúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţýýýýýűűűűéč佺°­Şœźˇ ÎÇŞÝŐśâÚšá١áٸá١ŕŘśâ١ăŰťäÜ˝ăŰťáŘľŕ׳ÝÔ°ÚŃŹÜÓ°ŕ׾áŘ´ÝÔŻÚŃŤÝÓŽŕײßÖ˛ŮĎŠŘΧŘΧĐŞËŔ˜Ęž—ÁľŽź°ˆŔ´ŒĹş’Č˝•Ăˇ˝˛‹¸­‡ľŞ„´Š‚łŠƒśŞ„ľŠƒ˛ŚśŞ„ťŻˆź°‰şŽ‡ˇŤ„˛Ś€­ŁŹŁ€ąŚ‚ł¨‚ąĽ€ł§‚§œy„e…|^‹‚c˘˜vŻĽˇ­‡źąŠŔ´ÂśŔ´ťŻ‰ľŞ„´¨ƒśŞ„¸Ź…ˇŤ„´¨­Ą}§yŁ™w˘˜uĄ–sž“qšn–‹j“‰h•‹i›‘o§œy¤™v’pœ‘p •rŁ˜vŚ›wŹ {˛Ś€ŻŁ~ŽŁ~ľŤ…şŻˆťŻˆşŽ†ź°‰żł‹š­‡ľŠƒ´¨‚˛Ś€°¤˛Ś€şŽ‡Áľž˛Š¸­†ł¨‚ŻĽ€°Ľ€´¨‚ľŠ‚śŞ„š­‡şŻˆ˝ąŠÂśŽÂśŽżł‹ťŻ‡š­†š­†ź°‰ž˛Šž˛ŠÂˇĆť“Çť“Âśż´ŒĆť“Çť“Čź”ĎĝÔĘŁÔËĽŇȥΛʾ–Č˝•Ęż—Κ͚ʾ–Ĺš‘ž˛‹š­†š­†ˇŤ„ł§ŽŁ~¨œyŁ˜uŚ›w­Ą|ł§ŹĄ|¤™uŸ”ršm”Šj†f†}_|sWriOkcKkdN}xi˝ťľřř÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýęéćČĸŚžƒ§|­˘~ŻĽ€´ŠƒťŻ‰żłŒĹš‘ĚÁ™ĐƞĐŝʾ—Ćş’Ĺš‘Éž–Ëż—É˝–ËŔ˜ÎÛÎÛʾ–Çť“Ëż—ΚĎŝŇČ ×ͧÚŃŤŐˤĐŞÎÛǻ“áĹš’ÁľşŽ‡ą§§œyž“q—Œk’ˆhŽ„fŽ†l”Žyž™‡ŚĄ”ŞĽšˇľ­ŮŘŐîîíűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőóŰŘŃšł˘ĽƒĄ—w¨žz­Ą~¨yĄ—s›‘o†g€w[nfM^WCNI8=8+.+"%#'&'GGGrrrŚŚŚŃŃŃňňňýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýýýýüüüüüűůůřöőóŮŮÔËÉĂÁźŹĆż¤ÖĎ´ŰÓśÝŐ´ß׾âÚ¸äÜźćßżćŢžăŰşßÖłŰŇ­ÚŃŹÜÓŽŕ׳ăŰşŕŘľŘĎŠÔÉŁÖĚŚŰŇŹŮĎŠŐËĽÖĚŚŰŃŹŢÔŻ×ÍŚŃÇ ĚÁšÂśżłŒÁśšŽ‡śŞ„żł‹Ĺş’Ćť“ťŻ‰ł¨ƒ­ŁŹĄ}ŤĄ|ŤĄ}°Ľ€Ź |˘—tŹĄ|ˇŤ„ˇŤ„śŞƒł§ŞŸ{ŚœzŚz¤™wĄ–tŸ”ršn‚d}sXx[…fŸ”r§zŹ˘°Ľ°ĽŻ¤ŻŁ~ŹĄ}¨ž{ŚœyŚ›xŤŸ{Ź {ŠyŁ˜už“q˜l“ˆh’ˆg•Šj™m™n”‰iŽƒd‹b†f†f‘‡gšn •rŸ”r˜Žl›nŚ›wŚ›wĽšwŞ }ą§ˇŤ„śŤ„śŞ„´¨‚ŹĄ|ŠžzŤŸ{ŠžyŠžz°¤şŽˆż´¸­†ą§Ť˘¨ |Ş |ŽŁ~ŻŁ~­Ą|Ť |ł¨‚˝ą‰ÂśŽÂśŽž˛ŠˇŤ„ľŠƒśŞƒł¨‚´Š‚ˇŤ…¸Ź†ť°‰ÁśŽž˛‹ťŻˆŔ´ŒÂśŽĹš‘ËŔ˜ÎÜÍšʿ—Čź”Ćş’ĸĹš‘ËŔ˜ĚŔ˜Éž–Ćť“ÁľşŽ‡ľŠƒ´¨‚ˇŤ„ťŻ‰şŽˆąĽŤŸz¨y¨zŁ˜u ”r§œx¤™všn†f†|^~tXtkPkcKiaJmfRˆƒuÖŐŃűűú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţř÷őżťŽŹĽŒŠ ~°Ś€ł§‚ł¨ƒşŽˆĂˇĚÁ™ŇÇ ÓČĄÍšɾ–Č˝•Č˝•Č˝•Çź”Ĺš‘Ĺš’Éž–Çť“Ĺš‘É˝•ÍÁ™ĐĝŃƞÓČĄÔɢÎÛ˿—ËŔ˜Ćť“áĆş’ᐽąŠˇŤ…ŻŁ~Ś›wž“q˜l“‰i…gŒ„h“‹rž˜…ŞĽ—Ś˘—ŹŠ ÂŔťáŕÝűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüíěéÎĘÁ°Š—ž–|Ą–uŁ˜vŸ”r–Œk‹bvZqiP]VAJD5:7++( !! <;;fee‘‘‘ÇÇÇëëëűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýýýűűúřřř÷÷öňńđëęćĐÍĹť¸¨ÁźŞÍÇ­ÚÓ´ăŰ˝ĺŢżĺŢżäÜźăŰšäÜşäÜťĺÜźĺÝźŕ׾ŮĐŤ×ΧÖĚŚŘͧŰŇŽÜÓŻŘĎŠÓČĄÎÜÍÜ͛ΚĎÜÔÉŁŘͧĐŞȼ•Ŕ´¸Ź…´ŠƒľŞ…˛§‚ľŠƒ˝ą‰ž˛ŠşŽˆą§ƒŹĄ}Ľ›xž”qœ’pŸ”rĄ—tŸ”ršn’pŁ˜uޞzŹ |ŞŸ{ĽšwŸ•s˜n‡g‰a„z]{rWtkQtkQ€wZ…ešmĄ–tŚ›y¨yŁ˜u’o›n™Žl•‹k•‹k–‹k–‹j“‰i‘‡g‘‡g’‡g…eˆ`…{]‡}_Š€bŒ‚c‹b†|^‚x[ƒz\ƒz]†|^ƒd“‰h•Ši‘‡f…e‘†f”Ši˜Žlž”r¨žy°Ľ°Ś€Ş |Ľ™v¤™vĄ–sž“pĄ–s§œxŽŁ~ł¨ƒłŠ…­˘~Šž{¤šx“rŸ•sŚœxŠy§œxŚ›wŞŸząĽ€¸Ź†˝ą‰ž˛‹ťŻ‡ˇŤ„˛§Ž¤€Ż¤€ąŚ€ŻŁ~Ž¤´Ş…ˇŹ†šŽ‡żł‹Äš‘É˝•Ęž–Çť“¡ÂśÁľŽżłŒżł‹ÁľÄ¸ÁľŽž˛‹ÁľŽÂśŔ´š­†´¨‚´¨‚ˇŤ„š­†¸Ź…˛Ś€Ź |¨ž{ĽšwŁ˜vŠŸ{ŠŸ|˘˜v™nŒ‚cwZwnSnfMjbJjbKpiU“Ž„ÔŇÎűűú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţńńďŇĎĨ †­˘€ł¨ƒľŠƒ¸Ź…žłŒÉž–ŃƞŐĘŁÔĘŁĐƟĚÁ™Éž–Čź”Çť“᏿ł‹ž˛‹ĂˇÉž–ĚÁ™ĐŝÓČĄÓÉĄŃƟΚʾ–Çť“Ćş’Ĺş’Ĺş’Çť“ÂśŽź°ˆ¸Ź…śŞ„ąŚ¨œyž“q˜Žm’ˆhŽ…fŽ„g•ŽuĄœ‹žš‹•ƒ°Ž§ââáúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřăâŢĆĂşŁžŒ’Šn–Œl•Šk‰€bwoViaKYR?E@162(*'100WWWĹĹĹéééűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýüüüúůůôôóěěęââßĘČż˛Ż˘¸´ĄÍÇ­ßŘźăÜžäÝźçŕÂéâĹéâĹçßÁäŰşăÚˇăÚˇäÜşăÜťáŘśŰŇŽŐˤĐƞÎ›Ě›ËœĘœȾ˜Äš‘żłŒ˝ąŠź°ŠşŽˆż´ŽÂˇ’ť°ŠˇŤ…´¨‚­Ą|§œxĽ›xĽšw¨x­˘}Ź {§œx —tšo’ˆi‰€a‰aƒd…eŽ„eŽ„dƒc…f—l™Žn˜l–Œl…fƒy\rjPf^GbZDaZDf^GphO|rW„{]Š€b„e“ˆi“‰i‹‚c‚x[vZ~tX{rV}tW~uX{qVwnTulSypU~uYw[ypUtkQtlQwnTypUzpUzpUxoTulRtkQtlRxoT|sWvY‚y\wZ|sW€vZ„{]†|_…e˜Žm˜n•‹k“‰i•‹k”‰i…f”‰i™nž“qŸ•sž•s›p—l’ˆh‹aƒd–Œkšoœ’p’pž“qŁ˜tޞzŻŁ~˛Ś€´¨ƒ˛Ś­Ą|ŞŸ|¨ž{§›wĄ–sĄ—t¨ž{°¤€śŞ„ź°‰ÁľŽÄš‘Ĺš’żł‹¸Ź…śŞ„ľŞƒł§‚ľŠƒ¸Ź…š­‡ľŞƒ˛§şŽ‡ÁľÂśŽťŻ‡ł§˛Śł§ˇŤ„š­†śŞƒ˛§ŻĽ€ŹĄ}¨žz¨Ÿ{§Ÿ|ĽœyĄ–s“‰h†}^}tWtkQmeLiaIh`ImfT‹€ŇŃÎúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óóńĂżľ¨ …°Ľ€¸Ź†şŽ‡˝ąŠĆť“ÍÁšŇÇ ŐËĽÓɢĎĜĚÁ™Éž–Çť“ÂśŽź°‰ťŻˆĂˇĚÁ™ĐŞĐŞĐƞÔɢĐƞɽ•Ĺš‘ÁľŽżł‹żł‹ÁľĂˇżł‹š­†¸Ź…ź°‰ź°ŠŽ˘~˘—tž“pšm–‹j’ˆiŽ…gˆ€dx^~wcxrbzuh­ŞĽŮŘŐööőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţôôňŮŘÓą­ĄŒ…r…|c‰c€w\ibLTN<@=/0-#'$)('BAAqqqŹŹŹßßßřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýűűűůůřôóňßŢÜĂÁźľ˛Š¨¤•ş´žËÄŠŐÍŽŢÖľâÚşĺßżęăĆęăĆčáÂćŢžäÜşăÚˇĺÜťäÜťŢÖłÝÔ°ÚŃŹĐŞɾ–øź°ŠľŤ†˛Š…ľŞ…¸Ź…ľŠƒ­˘}Ľ™vŸ“r˘—uĽšx ”rŁ˜u¨xŸ”q˜l–Œk”‰i“ˆg”‰i•Ši“ˆh‰€a€vZxoUulRxoT}tXuY~uYuYw[ƒy]„z]‚x\vZvZzqVmeLWO;GB1JD2UO;c\EldLqhOrjPtjQtlRvlSulRofMg`Hf^Fe]Fd]Ed]Ed]Fc\Eb[DaZDc[EiaImdLe]F`YDc\Eh`IiaIe^FiaIkcKc\EaZDb[Dc[Ed]Ef^GkcKofNnfMofNnfMibInfMulRwoT}tXƒy\ƒy\‚y[„z]ƒy]‚y\„{^†|_‡~`†|_€vZzpVwnSzqV€w[ˆ~`‚cŽƒd‘‡f–Œj’oœ‘o›n •s˘—tĄ–tĄ–tž“r™Žm”Ši–ŒjĄ–t¨yŽ˘}´¨‚´ŠƒľŠ„šŽ‡ˇŤ…°¤ŤŸ|§œy§›x§œxŞŸ{Ż¤~­Ł~ŹŁ~ľŞ„ťŻˆťŻˆ´¨‚°¤~˛Ś€¸Ź…şŽ‡ľŠƒśŞƒśŞƒ´Š‚ąĽ€ŹĄ|§œyĽ›xŁ™vž“q–‹k…f…|^zqUqhOjbJg_Gg_IrlZ–“‰×ÖÓýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţÔŃĆŠ ˇŤ†ź°‰żłŒÄ¸Çť”Ęż—ÎĜĐŝĎĜÎÛĚŔ˜Çź”Ŕ´ž˛ŠÄ¸Çť“ËŔ˜ŃƟÍ›Ƚ•ĎĝĎĜȼ”Ŕ´ťŻˆš­†ˇŤ„¸Ź…ž˛Šź°ˆ¸Ź…š­†ž˛‹žłŒŻŁĽšwĽšv¤™vĄ•s˜Žl‘‡gŠ€b€vZvnUngRjcQvrdš˜ÎÍÉ÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűęęčÉČš–Š{ubqjSrjR\VCC@10-$"210WVU€€˝˝˝ěěěüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýűúú÷÷÷ňňńââßšˇŻŞŚ˜ĽĄŽ¨”ÄžĽÓĚŻÚŇłßÖľăŰşçŕŔęâĹčáÂäÜťßÖłŢÔąáŘ´ŕ×´ÝŐąŘĎŞÓÉŁĚ›ž´Ž´Ş…­˘}¨œxŁ˜uĄ—tŁ˜uŚšw¤˜u›o’‡g‹b‹cƒd‹b…f”ŠiŽ„d†|_ƒy\„z]„{]ƒz]~uXvnSphNkcKh`Hg_HiaIkcKldKkcKldKmeMmdLh`Ie]Ge]GibJf^G[T>JD2@;+C>.NH6ZS>_WB`XC_XB`XB_XB_WB^WB\T?WQ=WP<WQ<WP;VO;VO;UO;RL9PJ8TN:XQ=XQ=QK7OI7TM:XP<XQ<UO;XQ=XQ<PJ7QK8TN:TN:TN:UO;YR=[T?ZS?[S@ZS>WP<YR=^VAc\EjbJogNogNogNphOqhOqiOtkRskQqiOqhOmeLjbJiaIkcJnfMulR{qV{rVvY…{]ˆ~`…{^ƒz]Š€aŒ‚cƒd†g†fŽƒdŒ‚bŽ„d–‹j˜l›n˘—u§›x¨yŚ›w§›w¨yŚ›w˘—tŸ”rĄ–sĽšw¨œy¤šw¤šwŽŁ~˛ŚŻŁ~§›xŠył§€š­†ťŻ‡š­†¸Ź…śŞƒŻŁ~Ť {ŠyŚ›wĽ›xŚz¤™v –r™oŒ‚dvYvmSofMi`If^Gg`JqkZ—”ŠÚŮ×ýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ööô˝ˇŁŽ¤ƒˇŹ…ź°‰żł‹Ŕ´ÂˇČ˝•ÍšĎĜĎĜÎÛʿ—áÁľŽÉ˝•Ęž–Ęž—ĐŝÍÛɽ–Ćť”Çť”Çť“ĸž˛Šš­†¸Ź…şŽ†şŽ‡¸Ź…śŞ„˝ąŠž˛‹¸Ź†Ź |ŠžzŽ˘}­Ą|¨yŸ”r—ŒkŽ„dwZulRlcLf_Ig`Nsobœ™‘ŐÔŃ÷÷öţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűěěęťš˛zn_YH\UCNJ:74*'$$#!<:9ggfŸŸžĐĐĐöööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýüűűűőőôčçćÍĚÇ´˛ŞŽŤœť¸ĽÂ˝¨ĘĹŽ×ŇťßŮżĺßĂćŢŔćßżčŕŔčŕÁĺÝźŢÖ˛ŐËĽÓȢ×ͨŐËĽŃÇ ÎÜŒˇ­‡§ž{š‘p’‡h…f†g’‡g†gŽ„e‹b„z]}tXxoUxoTwnTulRxpT|rWwoSphOmeLriPumSqiPe]G[T?ZT?ZS>XQ=WQ<YR=ZS>YR=VP<WQ<WP<TM:OI6MG5OI6SM:PJ8HC2A<,?:*A<,HB1MG5OI6OI7OI7OI6MG5KF4JE4KF4KE4JD3ID3IC2HC2HB2GB1D>.A<,E?/FA0E?/?:+>9+B=-C>.D?/E?0FA0E?/?:+A<,E@0E@0E@/FA0HB2IC2HC1IC2IC2IC2IC3LF5SM9WQ=YS>ZT?\U@]UA_WBbZDd\EbZC_WB_XA_WA^V@]U@]VA_WAd\Fg`Hg_HkcJpgNqiOofMofLtkQwnSzqU|rV|sW}tX€vZ„z]ˆ~_†|^‡}^„e•Šj—l‘‡f”‰iœ‘ož“qœ‘o—Œkšnž”rž”ršnšmĽšv¨x¤™v‘pĄ–sŽ˘}´¨‚š­†ž˛ŠťŻˆľŠƒŠž{¤™vŁ˜uŁ˜uŚœy¨Ÿ|ŞŸ{¨xĄ—u’‰i…{]|sWtlRmeLg_Hd\Fd]HmhX¨ŚŸěëëţţý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţäăÝ˝ˇŁ°Ś„š­†ź°‰ź°‰żłŒĆş’Ęż—ÍÁ™ĚÁ™ĚÁ™ĚÁ™Çť“Ćş’ËŔ˜Ęż—Ęž–ÎÛÎÛʿ—ÁľŽÁľĆş“Č˝•Ä¸˝ą‰˝ąŠž˛ŠťŻ‡ˇŤ„ˇŤ…Áľ˝ąŠł§‚­˘}ŽŁ~˛§‚ł¨‚°¤¨z –s•‹j„z\xnTpgNhaId\Gd^Ltpa¤Ą™ÓŇĎ÷÷öţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúŘÖӕ’‹[WJID6C>2-*#/.,LKJ{zyžž˝ëëëüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýűűűůůřëëęŘŘÔťşą­Ş›´ŻĂżŽÓÓĆÝÜĘéĺŃěçĐěćÍëĺĘéâĹĺŢ˝âÚˇáŮśßÖłŘĎŞÎÜƻ“ĸ’Âśž˛Œ¸­‡ŽŁ˘—t…f‚x\xoTvmSypU|sXypUqhOiaIe^Gc\Fb\Eb[E`YCYR>\T?_YBZR>TN:UO;\U@\V@TN;JD3E?/JD3HB2D>.B=-FA0IC2D?/@;,A<,A;+?:*>9*>9*>9*?:*<7)83&51%94&=8)=8)=9+A<-B<-A<,@;,>9*<7(:5'<7)>9*:6(83&94&83&72%72%62$4/$2.#2/#3/#0,!/* /+ 0,!2-"40$61$51$2."3/#40#40#40$73%84&83&83&95':6':6';7)=8)@;+C>-E@.GB0JC2KD2MG5PJ7QJ6NH6OI6PJ7PI6OH6PI7PJ7QJ7TN:VO<SM9VO;ZS>\U@[T?]V@aYCe]FiaIh_Gf^Gh`IneMsjPvnSulRulR|sWvY€wZ€vZƒz\‰aŽ„dƒd‹€aƒc†e‘†f„e…e—Œj’pŸ”q™Žn™ŽmŸ“q¨xł§şŽ‡šŽ†´ŠƒŞĄ}˘˜v’qĄ–s¤šwŚ›x§œxĽšw –s•‹kŠ€a‚y\zqVrjQkcJe]Fb[Ec]HƒrÍĚČ÷÷öýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüçĺŕşłž˛§ƒşŽ‡ź°‰Ŕ´Ĺš‘Čź”Čź”Ĺş’Ćş’Éž–ËŔ˜ËŔ˜É˝•Čź”Ęž–ÍšĚÁ™Čź”ÂśŽÂśČ˝•ĚŔ˜Éž–ÂśŔ´Ŕ´ŒżłŒ˝ąŠ˝ą‰żłŒž˛ŠşŽ‡şŽˆśŹ†˛¨ƒˇŹ†şŽ‡´¨‚ŹĄ}Ÿ–uŽ„d€wZvmRmeLg_Hd]GgaMxsf›™ĎÎĘőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîîíą°Źd`WC?495+%#"!542[ZZŠŠ‰ĂĂÂőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýüüüűűűř÷÷âáÝż˝ł˛Ż˘šśŚČÄąĎĘ´ŮŐĂââÓéç×îęÖďéÓěäĘçŕÁăŰťÚŇŻÔʤÖĚŚŐËĽĎŞø‘¸Ź†ąĽ€ŠžzŸ”r–‹l…g‰~a}tXsjPh`Ic[Ec[Ee]Fb[DZS?QK7NH6OI6OI6NH6LG5HB1GA1FA1B=.A<-D?/HC1FA1?:,:5'83&<7(:6(72%51$73&83&3/#1,"1-"1,!0,!0,!1-!0,!0,!/+ .* .* 1-!3/#2."1.!4/#40#4/"2."2."1-!/+0, 2-!/+ -).+-)+(,),(+'*'+(.* ,) -* .*!.*!.*!/+!0,"/,!.*!.* .* -* .* /,!/,!/+!/+!0,!0,!0,!1-"3/"51$72%94&;7(@:+@;,@;+A<-A<,@;,A;,C>-C=-B=-C>.D>.C>.E@/FA0D?.E?/HB0IC2KE3NH6PI6TM:ZS>ZS>ZS>]VA`XC`YCc[Ed]Fg_HkcJldKmeLphNtlQzqU|sWuY€wZ€wZ€wZ„z\‚x[‚x[Š€b“ˆh˜l”‰i•Ši›o •r¤™u§œxŤŸ{ŹĄ}¨ž{Ł˜vž“qž“q˘—t¨y¨žz¤šw’q”ŠiŽ„dˆ`‚y[{qUphOhaId\Fc\EgaN‰~ÜÚŘ÷÷÷ýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűÚŘĎ´Ź“˛§ƒşŽˆżł‹ÂśŽĂ¸Ä¸Äš‘Čź•Í›ĎĜĚÁ™Ćş’Ćş’É˝•ÍšĚŔ˜Çť“áÄš‘Ëż—ΚÎÛʿ˜Äš’ÂśŽÄš‘˝ą‹śŤ…˝ąŠĂˇĆş“Ĺš’ŔľŽť°Šť°‰şŽ†ľŠƒŽĽ€Śz™nƒd€wZulRnfMjbJf_IgaOupb›’ÔÓĎúúůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřŮŘև„HD;0-&*($885ccbœŃŃĐôôô˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýüüüűúúńđđ×ÖŇźš­ťś˘Č­ÔĐ˝ÝÚÇâÝÇčäÎíéŐďë×ńě×đęÓčŕĂŢŐłŐĚŠČž™ż´ŽĂ¸’ø‘ťŻŠŽ˘}Ą–s˜lŒc}tXriPneMlbKh_HaZDYR>PK8LG5MG5LE4E@0>9*<7(<7(<6(;6':5'84&40$0, /*0,!40#61$30"/, -*-).* .* ,)+'*')%'#&#&#&"%"$"%"%"$"$"%"&#)%,(/,"0-$0-$0-#1.%1.%2/%2/&2/&2/'41)31)31(41)30)30(41)42*41*74-<92@=7B@:FC>GE?FC>DB<DB;CA;B?9B@9A?8?=6><5><5=;4=:3<93;92:82:81970:70:80<90=90<8-84(94'<7);6(94'73&84'83&84'83&94&94&94&94&94&:5'95&:5&;6'<7(>9*B<,C>.FA0LG5OI7OI6RL9SM:QK8QK8UO;XR=YR=\T?^WA`YCd]FiaIlcJofNrjPriOqhOulRskQsjP{rW„{^‹cŠ€aŽ„e–Œk—Œk“ˆh‘†g˜lŸ”rž”rž”rž“q›n •rޞzŠŸ{Ą˜u˜l‘‡fƒcŒ‚cŠ€a„z\wnTmeLf^Hc[D_YDe_OŽ‹‚ŢŢÝ÷÷÷ýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţöőôÖÓČŻ§Š´Š…˝ą‰ž˛ŠŔ´ŒÂśŽĹš‘ĚŔ˜ĐŞĎĜʾ–ĸÄ¸Çź”Ëż—Ęż—Çť“áĹš‘Ëż—͚ЪŃÇ Ęż˜Ćş’Çź”şŻ‰ŻŁşŽˆČź”ĎĝËŔ˜Çť“ĸŔ´şŽ‡ł§Ž¤ŠŸ| –s—lŽ„dxZxoTriOjbJc\Gd^Lxtf¤˘˜×ÖÔřřřýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýóó󽝚][TB@;XWUxxxłłłçççűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýűűűőőőĺäáĂšˇł¤ÄżŤÓÍśŰŐ˝äŕĘęçÓěçŃíčĐíçĎíćÍëĺĚéâÇŢŐ´ÎĞź˛­˘~˘˜u˘—uœ’p’ˆh…{^xnTnfNiaI`YCWP<PI7JD3D>/C>.B=-<7)84'83&40$.* *&)&)%*')%'$&#" !""""# # %"&#%"$"&#+(!,*$+(",)#,*$)(!(& (& ('!'%&$'%+)#42+HF@VTOPNHMKEVTN^]X\ZU\ZUba\feafeaihdmlhmlimlhomiqpntspwvr~{‹‹ˆ—–”˘ĄŸŹŹŞ­ŹŤŠ¨§¤¤˘˘Ą  Ÿœœ™™˜––•””“‘‘‘ŽŽŒŒ‹Š‹Šˆ‰ˆ†‡†„„ƒ‚ƒ‚€€~~{}|zzxuvuqljeWUNGD<A>4?;2;8/:6-96,85+52)62(62'41&51&62&63'62&51&73&85(84(95(<8*=9+>9+A=-E?0C>.C>.E@0E@/D?.FA0HB1HB1LF4PJ8QK8SL9WP<[T?]WA_XB`YBaZDd\Ed\Fd\Fg`HphNxpU{qV}tX‚y\…{]†|^ƒy\‡}_‹bˆaŒ‚c’ˆg•‹jœ‘o˘—uŸ•r˜Žl‘‡fŒ‚b‰`‰`‹b‰€a€vZtlQjbKd\F[UAYSAidW‘ˆÝÝÜřřřýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýöőóÎĘ˝ŽĽ…¸­‡ź°ˆ˝ąŠÁľŽĹş’É˝•Ęž–Çť“Äš‘Ĺš‘ĸÂśŽÄ¸Ćş’Ćş’áÂśŽÄš‘Çź”ÎÛÓČĄĐŝʿ—ĸ‘šŽ‡˛Śš­†Äš‘Íš˿˜Ćş’ĸĆť“ø‘š­†˛§Ť |ž“q˜Žl•ŠjŽ„d†|^}tWqiNg`Ic\FhbPzviĄž—ŇĐÍőôôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúůŘ×ՑŒ„ƒ€ŽŽŽĚĚÍóóó˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýýýýűúúęęčÍĚĆśł§ź¸ĽÍÇŻÚŐ˝ăßČćŕĆéäĘëćÍëäÉčŕĂâŮťŰÓłÖÍ­ŃȨ嗴Š…Ľ™w“‰h„{^€v[xoTldL`YBVO:OI6JD3E@0?9,:5'40$.* .*/++()&)%'##  &$.,'.-(31,>=8FD@ED@KIE[ZWhgcca_ba^gfcba]]\Y]\Y^][ZYVWVTYYV`_\onkšš™ťťšĽĽ˘œšąąŻÇÇĹ˝źşťť¸ĚËĘŐŐÔÔÓŇŮŘ×ăăâäăâăâáçććííěîííîííňňńööőööööööřřřůůůůůůúúúúúúűűűűűűüüüüüüüüüüüüüüüüüüüüüýýýüüüýýýýýýýýýüüüűűű÷÷÷ńńńääăŇŇњ™–lkfca\a^Za^Y\ZTXVQWUPWUPTRLRPJSQLRPKTRKTRLRQKTRLVTMVTMWUMTRJKI?IE;MJ@NJ?C?4=9-?:-A</>:,=9*>9+?:+A<,D>.D>.F@/HC1LE4MG5OH6QK7SM9WP<YR>YR=\U?`YCd]Fg`HjbJmfMtkQxoTwnTwnSwnSxoT}sW‚y\‰a„e’ˆh‘‡g…eŽ„d‹bŠ€a‰€a‰a‡}_vZvmSneLd\FZT?TN<UPAspfŤŤ§ęééőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîíéÂźŠ°Ľƒ¸Ź†ž˛ŠÂśŽĹš‘Çť“Ĺš‘ĸĂˇÂśŽÁľÁľĂˇÄ¸Ä¸Ä¸ĂˇÄ¸Ä¸Č˝•ÎÜĎĝÎÛʾ—ø‘ż´ÁľŽĂ¸Ĺş’Çť”Ćş’Ĺš‘Č˝•Čź•ż´śŤ…ŹĄ}¤˜uŸ”q›o–‹k…e‡|^ypUogNjbJe^Hd]JmiZ“‘‡ÉČĹńđđüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýňňńÜŰŰŕŕŕďďďůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýüüü÷÷÷ŰŮÖÂżľ˝š¨ÍČ´ŮÓźÜÖťăÝĂçâÉĺŢŔăÜ˝âŰťßסŘĎ­ÍßŔś”ˇ­‹°ĽƒŁ˜w–ŒmŒ‚dyqUh`IbZEYS>NH6C>.=8):5'4/$/+!,(*&'$"!! " ! #!'% &% &%!,+'53/54032/541752542985JIHlljsrpyyw‘ĽĽŁ§§ŚŻŻŽĹĹÄĎĎĎĚĚËÎÎÍŃŃĐÍÍĚËËĘÍÍĚÍÍÍĘĘĘĘĘĘĚĚĚĐĐĐŰŰÚóóóřřřăăâÖÖŐääăíííäääŕŕŕëëęďďďěëëîîíóóóóóňńńđôôó÷÷ö÷÷÷öööůůřúúúűűúüüüüüüýýýýýýţţţýýýţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙ůůřÝÜÜÇÇĆ˝źťŔżžÂÂÁžž˝ťşšž˝źŔżž˝źťźťşž˝ź˝˝źž˝źżž˝žž˝żżžŔŔżÁÁżÂÁŔ­ŹŞ}zwup|{v|{va_XNLEPMEROGKH?FB8GC8EA5A=1@;.>9+>8*>9*@;+A;,D?.FA0HB1NH5RL9QK8TN:WP<UO;WQ=\U@_XBd\EiaIkcKhaIg`GldKofNqhOxoT}tX€vZ„z]ˆ~`‹b‹b‹aŠ€a†|_€vZypUulRofNaZDWQ>RL;NJ:^[P‰ŐÔÓęééţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůâŕŘľŽ–˛§ƒźąŠÁľĂˇĂˇÂśŽĂˇĂˇž˛‹żłŒĂˇĹš‘ĸĂˇĆş’Čź”Čź”Ćş’Ćť“Ëż˜ÎÛĐƞŃÇ ĐŞÍ›ĚÁ™Ĺş’żłŒĂ¸Čź”Çť“É˝•Čź•Ä¸‘¸ŽˆŽ¤€ŹĄ}§œx •s˜m“ˆhŒ‚b‚x[ypUtjQkcKc\Fd^Ksn^ŽŒĂžďîîýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýýýýúúúňńđÔŇÎť¸ŤĆÁŹÓĚłßÚÁĺŕĆäÝżäÝżâŰ˝ŮŇ°ÖÍŠÓÉĽËŔžž´‘ŻĽƒŁ›€š‘x’ˆk…|_xpWnfN`XCRL:HC3?:,72&0,!+((%$"# # " )(%<;8CB?A@=EECUUS\\Z]\[ihg€€ˆ‡†‡‡…ŒŒ‹ŽŽŽŽ•••šššÚÚŮŢŢŢßßßëëęňňńôôôřřřýýýýýýýýýţţţţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýúúúűűűýýýüüüűűűüüüýýýýýýüüüýýýţţýýýýýýýţţţţţţţţţţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýűűúűűűüüüýýýüüűüüüýýýýýýýýýýýýţţţýýýýýýţţţţţţţţţţţţţţţřřřÔÓŇĹĹÄąą°ŹŹŞ”“‘‡‡„‚‚~{zvtrnqojjica_YVTMJG<@=2>:/@<0A=/C?1C>2C>/HB2MG5LF4MG5NH5NG5OI6SM9TN;UO;ZS>^WA\U@YS>]U@^WB`XBf^GneMsjQypUvYx[‚y\ƒz\‚y\€w[}tXvnSskQmeM_XCUO=QM<NI;UPDjg_Ś¤ĄŮŘ×üüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúůřŕŢÖŞ˘…ˇŹ†˝ąŠżł‹Ŕ´Œž˛‹ž˛ŠŔ´ŒÂśŽĆť“Č˝•Ä¸Ä¸Ćş’Ęż—ĚÁ™ÍšÎÛĎĝŃƟÓČ ÓÉĄŇÇ ŇČ ŇČĄĎŝǼ”ŔľĹš‘Čź”Č˝•Ëż—Éž–ᏻ°ˆł¨ƒ­Ł¤šwœ‘p˜l•‹j’ˆg‹b‚x[zqUqhOiaIf^He_LjeU†„zĂÂżóňňţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýüüüóóňŃĎɡ´Ššľ¤ŃĚśßŘ˝ŢךăŰ˝âÚžÚŃąÔĚŞĐÇĽĹź˜˝łľŤˆ¨ž}™pŒƒf‚{fxr^ngPd]GZS@OI9E@1=8*2/#+(%#! %$87398320,874KJHQPNKJHQPOZZXYYWffe——–´´´˛˛ąšššŃŃŃŮŮŮÝÝÝčččôôôőőőöööűűűüüüüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúőőőôôôôôôńńďěěëççćŕßßŘ×ÖÁÁŔ††‚ljehgafe]b`Xb`Xgd^b`WdaXkh]c`UMI<FA2HC3KE4LF4KE3JD3NH6QK8QK8OI7RL8SM:SM9VP<\U@aZCg_InfMphNskQwnSxoTxoUxoTulRrjPmeNa[EYS@TN>PJ<QM?WSIqoiĄ ććĺűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůČÄśŽ¤…śŞ…˝ąŠŔ´Œž˛Šź°ˆź°‰ÁľŽĆş’Č˝•Çť“Éž–ÍšÎÜĐŞŇČ ŐĘŁÖĚĽÖĚĽÖĚĽÔʢÎÜĐŝŃǟĚŔ™É˝–Éž–ĚšĚÁšČ˝–Çź”Ĺš’ÁľŽŔ´ž˛Œ´Ş„ŞŸ{˘–sž”r›‘o˜l•‹jŽ„f„{]zpUsjPldKe]F_XDe`P~sťšľďďîýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýýýýüüüööőääáÉÇŔżťŞĚĆŽÖĐśŕÚÁáÚżÜÔłÚŇ°Ňʨú˜ź˛ˇŽ‹­¤„Ą˜x•‹l†}`xpVqiQibL]WCQL:LF5F@1=8+84(51'/,$/-&10*11,10,11.320FECuts‚‚yxw‡††ŞŞŞ˛˛ąŹŹŹˇˇˇĂĂÂŔŔżËËËëëëńńńđđđóóóůůůúúúüüüýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýţţýţţţţţţţţýýýüüüüřřřííěééčěëëôôôüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüűűűůůůääăĹĹÄÄĂÂżż˝š¸śśś´şş¸ÁŔžĆĹĂÍĚĘľ´ąljdURI`]Q]YLLG:GB4HC4KE5LF5KE3JD2MG5NH6NH6OI6QK8SM:XQ=]V@`YCd]FjbKmeLogNpgOpgOogNldLd]H]VDXRBQL=MI<QMB^ZRusnˇś´őőőýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýńđíÁťŞŽ¤„šŽ‡Ŕ´Œž˛‹źą‰ť°ˆź°‰Ŕ´ŒĹş’ĚÁ™ĐƞŇÇ ĐŝĐƞÔɢÖ̤Ö̤ŐˤÔĘŁĐƟʾ–Ëż—ÍÁšČź•ËŔ˜ŇČĄŐĚŚŃÇ Č˝–Áľ˝ąŠż´ŒĹş’Čź”ż´ŒśŞ„ŻŁ~ŤĄ~¤™wœ‘pž“q›o‘†fw[wnTqhOiaHc[Eb[GgbQ|xmŔžťöőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýýýýüüüüüüüôôňÍËÁžťŤÁźŞŐиŢ׺ÜŐˇÜŐť×Đ´ĎƤȿœť˛‘ŤĄĄ˜w›’r…g€y]vmSg_I]VBZS?VO=LG6C>0>9-;7-:7.A>6KICRPL\[Xrqo€††„‹‹ŠŸŸžĐĐĎŇŇŇĎĎĎÜÜÜőőőöööôôôúúúýýýüüüüüüţţţ˙˙˙ţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüűűúúůřßÝŮžş­ÄŔ´ŇÎĹŢÜÖÎĚĂĂżł˝šŤÓŃÉÂżľ˛Ž ŽŞœŠĽš™–™–Š§Ÿş¸łÝÝÚđđďňńńőőőúúúűűűţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţűűűűűűüüüüűűűűűűűűňňňˇśľŒ‰›š–˘˘|ztge]gdZb_U]YNLG9HC4ID4JE4JD3JD3LF4NH6PI6SL9VP<XQ=[T?_XBc[De]Ff^Gf^Fd]FaZF`ZG_ZIXSCPK>NJ?ZWNrpjŁ˘ ňňńűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüűíě蟡¤°Ś„şŽ‡ź°‰˝ą‰ź°ˆťŻˆÁľŽĘž—ŃǟÓČĄŃƞÍšÎÛŇǟŐĘŁŐĘŁŇǟÍšƺ“ž˛‹ÂˇĘż—ÍšŃƟŐˤÔËŁĎŝȽ•ÁľŽ˝ą‰˝ąŠÄ¸Čź”ÁľŽťŻ‡ˇŤ„šŽˆ°ĽŁ™v¤šwŁ˜všn‡}`zpUulRogMjbJbZD]VCa[LŠ‡Ř×Őúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýýüüűűúúúůůůů÷÷őęéçĂżśźˇĄĘèÔĚ°ŰÔ¸×вŃȨËĂŚÁšœś­‹­¤ƒŸ–x‡j†}a~v[piQe^H_YD^XHZUFWRDXSFZWKVSHTQI[YTihdzzv§Ś¤żżžŃŃŃęęęňňňôôôőőőöööřřřüüüüüüüüüýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůőôńßŢŘľ˛ŠŤ¨žŤŠ ŤŠžŤ¨™Š˘‹Ł›~ŚŤ˘‡ŞŁˆŁ›Łš~Łš}Ą™~›’w˜r—Žp…i€x_zc‹…r‹…u‹~ŽŹŁžťľÁżşÖŐŇćĺăâáŕăâáóóň÷÷÷úúúúúúüűűýýýýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůôôôööőőőôŢÝÝÍÍĚĎĎÍĆĹĂŤŞ§…„}mjafcZ`]SVRERN@MH9ID4JD3LF4NH6NH6OI5SM9VP<YR=YR=ZT>ZT>ZTA`[JhbSa\MUQCOK?QMDqoh›˜ŰŰÚ÷÷÷üüü˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüéč㜯šŻ¤€¸Ź†˝ąŠž˛‹ŔľŽÇź•ĎĜÓČĄÓČĄĐŝ˿˜ĚŔ™ĐŝŃƞĐŞÎÛǻ“Ŕ´Œź°‰ĂˇĚÁ™ŃÇ ŇČ ĎŞËŔ™Ćť“áÂśŽÁľŔ´ĂˇÄ¸Áľź°‰ťŻˆĂ¸˝ą‹Ż¤ŤĄ}§z“qƒcvZypUvmRphNd\F[T@YSAfaT˘ ™ŢÝŰúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýűűúůůů÷÷÷ööôďîěŘÖŃźšŤ˝šŁÎČ­ĎÇŠĚäǿ˘Ŕ¸™š°°¨Š˘š|—Žp†j‡e{s[skTohTvq`mhYlh\ˆ†~“’‹Ž‹…“‘‹¤ŁŸŞŠŚŽ­Ť˝˝źÍÍĚäăăřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ńńđŢÝŰßŢŰĹÂľ­¤‰ť˛’ÉŔĄŇËŽ×ѡÖĎľÓĚŻÓĘŞŃȧĐČŚŇÉŠĎǨĚĂŁĘÁ ĘŔĹť™Â¸–Á¸”ż´śŹŠŠ Ą˜y’‰j‰€d„{b‹„m†r‰ƒoˆq™ŒžšŽš˝ťľÓŃÍŇŃÎÚŘÖŢÝŰáŕŢěëęööőűűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůîîîççćÎÎÍÁŔžš¸ľ­­Šœ›•trj\YOYUISOALH9JE5KE5JD4NH5QJ7PJ7RL8SM:QK9VPBd_RgbV[WJSOCMI>URJ}|w§ŚŁäăăůůůýýü˙ţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüćäŢŽŚ‹ł¨„ź°‰ż´ŒÇź•ÍÛĐŞĐŝÓČĄÓČĄÍÁšÍšĐŞʿ—Čź•ĚÁ™Çź”ĸČ˝•ÎÛŃǟĐŝ˿—Äš‘ž˛‹¸Ź†ˇŤ„žł‹Çť“Éž–Ćş’áŔ´Œ˝ąŠ˝˛ŠÇť”Ćť“źą‰ľŞƒŠžzœ’p’ˆh‰`~uYzqVulQh`I_XBZS?[UCupeľłŽéčçýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýűűúřř÷ôóóđđďéčćËÉÂśą ťľÄžĽĆż¤Ŕš›ˇŻ‘­¤ˆ¤›}•v™’v†k‚zbxcž™Š™‹–’…Ÿœ“ąŻŞ­Ť§ˇś´ŮŘ×ăâáŕŕŢĺäăńńńőőőřřřüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óňđÓĐÄžŽłŻ¸´ŁÂť˘ÍäŘĎ­ŕŘśçßŔëäÉęăĆćŢžâÚ¸ßÖ´ŢŐłßלßלÜÔłÚŃŽ×ÎŞÔĘŚŇɤĎĆĄËÁ›Äş–˝˛ł¨„¨zĄ—u’rš‘r”‹l‘ˆj†k‰pŠƒk…~i‰w ›˜“…™•ˆ˘ž“°­ŁšˇŻÖŐŃëęéôôôúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüü÷÷öôôóččçĚĚʤŁ œ›—Ž‹†spinlca^SOK=LG8PJ8LF5KE3LF4HC3ID5UQCidXa]PWSGPLAOLCtrl“‘ŽŘ×Ööööúúúüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůřŃÍÁłŞ¸­‡Ŕ´Ćť“ËŔ˜ĎĜŃƟÖĚĽŮϨŃƟÍšĚÁšĆş’Ĺš‘ĚÁ™ËŔ˜Čź”Čź”ËŔ˜Î›ĚŔ™Čź”Ꮪ­†ąŚ°ŚşŻ‰Ćş’Éž–Čź”Ĺš‘ĸÂśÂˇČź•Č˝•Ä¸żłŒł¨ƒŁšw™n†f‡}_‚x[{qVmeLc[EZS?VO>hbUš—×ÖÓřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűřř÷ňňńëęéŘ×Ôş¸Ż­¨—¸ą˜şł™ˇ°—ąŞŽ¨ „Ą™}ĽŸ‡‘ŠqŠ‚k‘‹x˜”‚—’„ł°§ÚŘÔććăěëéńńđňňňňňńöööýýýýýýüüüýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙đđďÂÁź´˛Ź˛ŽžłŞĆžœÚÓąŕŮťâÚťăŰźçßżčŕÁęâĹíçÍěćËčáĂáÚ¸ÝÔąÜÔąŢŐ´ß׾ÝŐłŰŇŻŮĐŤ×ÎŞŐ̧ŃÇĄĘŔšĹť”Áˇź°‹ľŞ…ąŚŽŁŞ |¨zĽ›xŁ™wŸ”tšo–m–Žq”ŒqŒ„i‰‚h‹ƒm•Žz—’Ł ”ąŻŠŐÔŇííěůůřýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűńńńďîîééčŐŐÓÉČƸˇ´ywplj`jg[WSFJF7FA1D?0HC3TOAlh[e`TVRFSNCTPG‚€z›š•ÖŐÓđđďőőőůůůýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîěéÁźŠ´Ź‹źąŒĂ¸‘Čź•ÍÁšŇÇ ×ÍŚŮĎŠŇÇ Ëż—Çť“ĸĹš‘Ęż—Éż—Ĺş“ÁľŽĂˇĆş’Čź”Č˝•Ĺş’şŽ‡°Ś€ą§‚¸­‡Ŕ´ŒĂˇĹš‘Ćť“É˝–Ęž–Ęž–É˝•Çť“Ĺš‘ᏻ°‰­¤˘˜ušm“‰iŒƒc‚y\tjPf^GYR>QL;b^PŒ‰€¸ś˛îíěüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüůůřňňńääăÂŔş ¤ŸŠŤĽŽŤ¤ŒŞŁ‰ŚŸ…ž—~—‘y”Žxˇ˛ĽžťąÇĹ˝ŘÖŇîěëůůřýýý˙ţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüňńđěëčÝÚĐŽŚŠÂşÇŔ˘ËĂŁĐȤŮŃŹß׳ŢŐąŮŃŹÚĐŤáŮśäŰšĺÝźéâĂęăĆçŕÂâÚ¸ÜÓŻŮĐŤŘĎŞ×ÍŠÖ̧ŐËŚŐÍŚÖͨÔĘŚĎşɾ—ÁśťąŒ¸­ˆ¸Ź†¸­‡¸­‡ˇŹ†śŤ…ľŞ„´Š„ąĽ€ŽŁ~Ť |ŞŸ{Ś›xŁ˜uĄ–tž“r˜Žp‰€czs[up`›˜ÍĚČččçöööüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýęęéŘ×Öăăâśľ˛oleXTKQMAJD6OK=b_Rc`RYTGVSFSOD^[S“‘ÉÉĆççćîîîöőőüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüéč佡Ł˛¨ˆÂˇ‘Čź–ĚŔ™ĐŝĐŝÎÜ˿˜Çť“ĸÄ¸Ĺš‘Âśş°ŠśŹ‡šŽ‡ťŻˆž˛ŠĹš‘Ęž–Éž–žł‹¸Ź†şŻˆşŽ‡¸Ź…ˇŤ„ź°‰Ä¸‘ĎŝŇČĄŃƟËŔ˜Ăˇź°‰¸Ź…ľŞ„ľŠƒ°ĽŞŸ{¤›xš‘pƒe|sWh_HVP<LG7VRDxtiš”ĘÉĹőőôţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűöőőęęéÂÁ¸Ąœ‹ŁˆĽžˆ¤žˆĽŸ‹¨˘Ź§”ľ°ĄżźąĹĂťâáÝňńďűűúţýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůÓĎÄť¸¨ŻŤ—ź´—ÎŤÜÓ˛ŢÖ˛ŢŐąŢŐąŢÖąŢÖąÝÔ°ÚŃŤÚŃŤŕײâŮľâŮľâ١ăŰšäŰşß×´×ͨĐşÍœĚÁšËÁ™ĚÁšĚœÎĞÍÝɿ˜Ĺš’ž˛Œˇ­‡ľŤ†¸­‡žł‹ż´źąŠşŻˆźąŠ˝ą‹šŽˆśŹ†ˇŹ†ˇŤ…´ŠƒąŚąŚ€ŹĄ}˘—u–Œk†|`qjTvqc™–Ż­¨ÎÎĚęęęůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řřřĘÉȚ˜•ˆ†fc[XTJPL?]XLZUHZUIVRFOK@^[TŽ‰ËËÉééčóóňűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýŕÝŐ°ŠŔś’Éž™ĚÁšĐŞĐŞĎÜ˿—Ćş’ĸÄ¸ĂˇŔ´Œť°ŠşŻ‰˝˛‹ź°ˆťŻ‡ÂśŽČź”Č˝•ÁľŽź°ˆťŻˆ¸Ź…ľŠƒ¸Ź…ź°ˆĂˇÍšŃƟŃǟÍšŹ‘ź°‰´¨‚´¨şŽ†š­†ľŠƒŞ˘~Ÿ–t’‡h€vYkcKZR>NH6PL?hdZ‹‚ą°Şăâáýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúôôóâáࡳ˘ˇą›ľŻš¸˛žźˇ¨ÍÉżÔŃČÜŮŃéčăôóđř÷öűűúýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÚŮÖĂŔ´šą’ËĂĄ×Đ°ŕŘşĺÝžćŢžă۸áŘ´ŕŘ´ŢÖąŢÖ˛áŮľâŮľŕײßÖąÝÔŻÚŃŹÖÍŚŮĎŠŰŇ­×ΊĚœ·žłŒžłŒż´ż´žłŒžłŒžłŒž˛Œźą‰š­‡ľŤ…˛¨„śŹ†žłŒÂˇŔľŽž˛‹ÁśŽÂˇźąŠ˝˛‹Áľż´ş°‰ˇ­‡š­ˆśŞ„ŹĄ} –t’‡i{rWlfQlgWyvk˜—‘ÄĂŔęęéűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűëëëăâ⚸ľ”“sqib^TWSGTOCTOCMI>JF<_]U˜—”ĺĺăđđďůůůýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őô󵰝żľ•ĘŔšÎÞŃÇĄŇČĄŇÇĄÍÁšÉ˝•Çť“Ĺš‘áÄ¸Ĺš’Ćş“ĸ‘ž˛Šš­†źą‰ÂˇĆş’ÂśŽ˝ą‰š­†ľŠ‚śŞ„žł‹ÁľĂˇČź”ĚÁ™ÎÜÍšȼ”ÁľŽš­†¸Ź…ž˛Šž˛‹š­‡ŹŁĄ—u”Šj„z]sjPbZDRL9ID6VRG}zp˜–ŽĹÄÁóóňţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűööőóóńâŕŰÍËÁáßŘăâŰćäÝěëĺďďëôňďůř÷üűúýýü˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűĺăŢłŹ—žˇžĘÂŚ×ÍŤâÚşčáÄćŢ˝ĺÜťäÜšăÚśâŮľâŮ´ŕŘłâÚˇćŢ˝äŰšŢŐ°ŐËĽĚ›ƻ”Ćş“Ęž—ËŔ™Äş“ş°‹˛¨ƒ­Ł~­˘~ŻĽŽ¤Ť {Ś›w¨yŤŸ{§›x¨žz­ŁŹ¤€ą§ƒšŽ‡˝ą‰˝ąŠž˛ŒÁľŽÂśÁľŽÄš‘Ćť“ᐿ´żľŽŔľť°ŠąŚ§y™m‡}_woTmfOkeTzvk˜•Žžźˇáŕßęęéůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ř÷÷ééčŃĐΔ“Žxvo]ZPRNCNK?JF;WTJ…ƒ~âáßîîí÷÷öüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýÓŃČť˛”ÉżšŃȢŃÇĄĐŞĎĝÎÜĚŔ˜É˝•Éž–ĚÁ™ÎÜÎÛʿ—ᏻŻ‡ł¨‚˛¨ƒťą‹Ä¸‘ÂśŽ˝ą‰š­†ˇŤ„ť°‰Çť“Čź”Ćş’Čź”ËŔ˜ĚÁ™Čź”Çť“Č˝•Ä¸‘ÁľżłŒ˝ą‰¸Ź…Ż¤Ś›xœ‘oŒ‚d|rXjbJWQ=IE4QM>mi\‚~t›˜’ÓŇĐůůř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýüűúůůř÷ööóőőňőôňöőóůř÷űúůüűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýěęćÇÄş´Ž™ÉŔŁÜÔ´çŕÁéáĂëĺÉěĺÉäÜşâŮľâŮľâŮľâŮľáŘ´ßÖąÝÔ°ŰŇ°ÔʨĘÁÂ¸‘ˇŤ…­˘}Ž˘}Ť |ĽšxŸ”rš‘p˜o“Šj’‰i—Žn–m’ˆhŒcŒ‚c„fŽ„e’ˆh˜o›“r˘˜vޞ{Ź {ŽŁ}´Š‚ˇŹ†ş°‰Ă¸Éž—ËŔ™Çź•Çź”Éž—Ćť”ž´ľŞ…Ż¤€Ľšx•‹jŠ€aw\umTmgTrm^}zn›•´ł°ÝÝÜ÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýúúúďďîÖÖÔĽ¤ xvp`^WROFIF<fd]ÁŔžíěě÷÷öüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óóšĂş˜ĐŠк͛ËŔ˜ÎÜÎÛĚÁ™ÎšĐƞŃƟʿ˜ÂˇŔ´ŒşŽ†´¨‚łŠ„śŤ†š­ˆ¸­ˆ¸Ž‡ťŻˆťŻˆŔ´Éž–ËŔ˜Ęż—Č˝•Č˝•Č˝•Ĺš‘Çť“Ęż—Éž–Ćş’ᏽą‰ˇŤ…ł§Ť {˘–t—lŠ€aypUe]ETN;SN>b]Ppl_}tŁĄœÜÜÚýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýýüüüüűüűűüűűüüűýýüýýýţţţ˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řř÷ÎËÂłŹ”Ŕ¸™ÜŐˇćŕĆíçÎďéŃďéĐîčÍëäÇäŰšâŮľáŘ´ßÖ˛ŢŐ°ŰŇŽÖͧÍÝŔˇ­Š­¤ŞŸ{Ą–s—Œk“ˆh‡}_zqVvmSwnTypUtlRtkR{rW|sXzqVsjQriPtkQxpU|sWwZ…{^ƒd”Šj—Œkšm˘—t§yŽ¤€žłÇź•ËŔšĚÁ›ĚÁšĚšƻ“żłŒźąŠşŻ‰ł¨„¤™v—Œlƒdƒz\wnTqiSrl[}ymŠ‡~¨ŚĄÓŇŃŰÚÚńńńţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţüüüúúúř÷÷ęęéËËÉŽ­Ť|zvPMFQNE‡…ęęęřřřýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷őĆÁŻĂťĐƢŇǢĎĞĚÁ›ÎÜĐŝĎÛĎŝĎĝĚÁ™ŔľŽşŽ‡ž˛‹˝ąŠşŽ‡š­†˛§Ť |Ź˘~łŠ„şŻˆ˝ą‰Ŕ´ŒÇť“ËŔ˜ÍÁ™É˝•Ĺš‘áÄ¸Ćş’Çź”Čź”Čź”Ĺš’żł‹š­†śŞ„ŻŁ~Ľšw •r—l‰€btlR`YCWQ?VQBb]Psod‚wŠ§˘ççćţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţýţţýţţţ˙ţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙żşŠśŽ’Ăş˜Ňɤâ١ëĺÉđęŃńěŐńěÔđęŇěćĘäÜşâŮľßÖ˛ÖĚŚÎÝȽ—Ŕś’˛¨…˘˜v™n’ˆiŠc„z^|sWofNd\F]VA\T?YR>VO;SL9UO;^VA`YC_XB]U@\T@\U@_XBd]FkcKskQ{rW~uYvZ„z]…e•‹k”rŻĽşŻ‰žłŒŔľĹş“Č˝•Ä¸ž˛‹żł‹żłŒź°‰˛ŚĽšvšn“ˆh‰~aw\woWrkXsn_xui”’ŒĄŸœĹĹÄňňňţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüűűűúúúůůůôôôÍÍ̆…‚trmÎÎËôôôúúúýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřÍɟß ŃǤÖ̧ŐĚŚÓÉŁŃÇ ĐŞĎŝŇÇ ĎĜǻ“żł‹˝ąŠĂˇĂˇżłŒł¨‚ŞŸ{§œxŤ |°Ľ€˛¨ƒľŞ„şŽ‡ÂśŽÉž–Íšɽ•Ä¸Ŕ´Œżł‹Ŕ´ĂˇĆş’Čź”Ćş’żłŒš­†ˇŤ…´¨‚ŻŁ~ŠxĄ•r“‰i~uYjbJ]WBVP?ZTEidXsod€}uÂÁžřř÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýëę睡ŠŔˇ˜ÓɤŰÓŽÜŇ­á١ëäČîčĎďéŃďéĐěçĚćŕÂÜÓ°Ô˦̝žłŽł§‚ŠŸ{œ’rŠ‚e}tXtkQldKc\E_WBYQ=IC2A<-@;,C>.@;,;6(83&:5(@<-D>/E?0E@0GA1IC2JD3PJ7YS>bZDf^Gg_HiaJqiOvY„{]‰€b™o˘˜uŚ›wŤŸ{°Ľ€´Š„ľŞ…¸Ź†ź°ˆżł‹Ŕ´ŒžłŒˇŹ†Ż¤Ľšw›n†f„{^ypVskUtn[ytg„w•“ĂÂŔěëëúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýýýýüüüűűűřřřřřřýýýüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţěëçĹŔŹĹ˝ŃÇŁÓɤŇÉŁŃÇ ŃǟŇČĄÓɢĐŞɽ–Ĺš‘Ĺš‘É˝•É˝•ÁśŽ­˘~˘—t¤˜uŽ˘}´Šƒł¨ƒ´Šƒ¸Ź…żł‹Ä¸‘Çź”Čź•Çź”Ĺş’Ŕ´Ŕ´ŒĂˇĆş’ĸ‘ž˛Œ˝ąŠ˝˛Šžł‹˝ąŠš­†°¤~§œy›‘pˆ`tkQd]FZT@YSCc^PidWqla“‘‹ßŢŢűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýÝÜŘĹÁąĚŧŮĐ­ÝÔ°ŢŐąŕ׳ćŢžëĺĘëĺÉęăĆčâÄâÚş×ĎŤÉž˜¸Ž‰¨ž|’q•ŠjŠbvnSf^G_XBRK8FA0B=-=8*62&.* )&(%-*0,!.* +')&+(.+ 1-"2."62%;6(<7(B=-JD3OI6QK8SL9YR>e]FvmSyoUypUƒz]Œ‚c‘†f–Œk™Žm™Žm •sŤ |ľŞ„ž˛‹ĂˇÄš’á‘˝˛‹´¨‚¨yž”q–‹jŒc„{_~v]xq\rm]pl`‰‡ąąŻááŕ÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őôňŘŐĘÇÁŞÉżÍœĚ›ĎĝÔĘŁÖͧÔʤÓČĄÓČĄÎÛËŔ˜Í›ÍÁšÄš’Ż¤€Ł˜uŁ—t˛Ś˝˛Šžł‹żłŒż´ŒŔ´Œ˝˛Š˝ąŠÄ¸‘Ëż˜ÎÜʿ—Çť”Çź”Čź”żłŒł§‚şŻ‰Ćş“Éž–Ćş’ž˛‹´¨‚ŤĄ}Ą˜w”Šj|sWh`I_XBZTAZTEa\MjeXqndž—ßŢÝúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÍÉźźˇŁÍĆŹŕظâÚˇăÚ¸äÜťćŢžĺÝ˝âŰşáءß×´ÝŐ˛Óɼø“­˘~™nˆ~a|sXsjQh`IXQ=JD3D?/95(1-!-)*&%" !&#'$*'/,!84'@;,D?/IC2TM9g_HnfMqhOqiOvnS~uX…{^‹b…e—ŒkĄ–tŤ |´ŠƒťŻˆż´Œżł˝ą‹š­†´ŠƒŽŁŚ›w›‘o’ˆhˆ~`|sXpiRjdRql`…ƒ{Ś¤ĄŢÝÝ÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷őßÝÔŐϿǞœÎÝÎœŃƟŐĚĽŮĐŞŮĐŤŰŃŤÜŇŹŮĎŞÖĚŚŐËŚŐĚŚĐĆĄż´Žł¨‚ąĽ€ˇŤ„Ŕ´Çť“Č˝•Çť“øťŻˆśŞƒşŽˆÂśĘž—ÎÛÎÜĚŔ™Éž–ÁľŽš­‡żłŒÉ˝•ÍšĚŔ˜Ćş’ź°‰°Ľ€Ľ›x’p‰aulRjbJ`YDXR@[VFf`QfaVrofš˜“ÚÚŮ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţÜÚŐ´Żšą”×ÎŽäÜźçßżĺÝźĺÝźĺŢžăŰťŢÔ˛ŘΊÔĘŁĎŞƼ—ˇ­ˆ¤™v‹‚bxoTg_HZS?OI7F@0:6(1-",)'%"$*///8BDCBBCEE=5%$<1/@63<739=98OI:ZS?_WB_WBd]FnfMwnSx[Š€aŽ„d”‰iž“qŚšw­Ą|´ŠƒśŤ„ˇŤ„¸Ź…şŽ‡şŽˆł§‚Šžz •r—kŽ„d‚y]xpXrkWmhYli` Ÿ›×ÖÖńńńüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüíěčŮÖÉŔ¸šĚžŃĆĄÔÉŁ×ΨÚŇŹŢŐ°ßÖ˛ŕ׳áŮśáŮśß×´ŕŘľÝÔąÍݦ˝ąŠťŻˆÂśĚŔ™ĎŝÎÛɽ•żłŒˇŤ…ˇŤ…ź°‰Ĺš’ĐŞŇČ Í›˿—Çť“ĸĆş’Ęž–͚͚ɾ–¡ˇŤ…Ź |Ľšw—Œl†|^xoTg_IYS@ZTDc]N`[Mb]RwtmŽŽŤýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŰŘĐ°¨ŽËĨŕÚżçŕĂçßżĺÝźčŕÁäÝźÜÔ°ĐƢĚœÎĝǼ•´Š„œ’q‰€bypUg_HUO:C>.51%+($" (G^!%p$‰°Ě$Ď"*Ď#,Ď&Ď$Ď#ĎÍą’"”$)'*v#&i#%W/.:410:62HC;TNB^XGiaKwnTwZ~tXw[Ž„e—Œkž”q¨Ÿ{ŽŁ~ąĽľŠƒśŞ„ľŞƒˇŹ†ľŞ„Ż¤§œxŸ”q“‰h†|_ypVleNa[Kd`U‹†ĹĹÄëëëüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúůčçáĐËşŔ¸›ĎĹĄÓÉŁŘΨÜÓŽÝÔ°ÜÔŻÝŐąăŰşčŕÁçŕÁçŕÁăÚşĎğ¶˝ą‰˝ąŠÄš‘ÍšŇÇ ŇČ ÎÛȽ•Ä¸Ä¸Ĺš‘Ęž–ŃǟŃƟĚŔ˜ËŔ˜ÍšĚÁ™Ęž—Ęž–Íšɾ–Ĺš‘Ĺş’ÂśŽšŽˆŻ¤€¤šx˜Žm„z]leL^WBYSAZTD[VGYUH`]T’‘Žĺĺĺüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýŢÜÔłŹ•ĎÇŞăŰżíçÍíçÍęăĆčŕÁéâÄĺŢ˝ŰÓ°ĚĤżś–ľŤˆĽ›y†g{rVkcK[U@HB273')&
+  $?W$o%,†'0ž-7Ž1<ť-9Ě$-Ń"Ńĺ"ů$-ú(3ű)5ű&1ű#,ű (ű$ů$ç'Ń"+Ń(1Ë+5ť)3˛)3Ľ2:Ž05x-/i00f54^=;PJEA^WApgNxoT€vZ‰`‘†f˜lŸ•s˘˜uŚ›w­Ł~°Ś€ąŚ€śŞ„š­†ˇŹ…°¤€¨yž“q’ˆh‡}_zqWnfOc]K`\P‡†ÎÍÍôôôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüđďěŰ×ÍżšĄÍĂ ÓÉŁÖÍŚÚĐŤÜÓŽŢŐąßÖ˛ăŰšĺÝ˝ăÜťăŰşŢÖłÎÝĸ‘ÁľŔ´ŒÄš‘Ëż—ĐŝŃǟĎĜËŔ˜Čź”Čź”ËŔ˜ĎĜŃǟĐŝĚŔ˜Éž–ËŔ™ĐŝÍÁšĘž–Íšɾ–Ĺş’Çť“Ćş’ÂśšŽˆ°Ľ€Ś›w‘‡gzqUjaI^WCXRAXSCVRDTQFge_§Ś¤ččč˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýÚŮÔšłŃÉŞĺßÄęăÇęăÇíćĚěćĘęăĹçŕÂâŮšŘĎ­ĹžŁŤ¤‹“Šm~uZjcK[T@OI7A<.*'
+
+$ 4X!ƒ+4­4@Ď9Hç?PîCTđCTň<Mő/<ő"*ő"÷%ú(2ű+6ű+7ű*5ű%/ű!)ű (ű#-ř(3ő+7ő0=ô5Dň7Fń:Jď@Pč9FŃ-5ś#Ś‘ v**R?<BTOIhaOypU‚x[‹b’‡g’ˆh”ŠišnĽ›xŹ˘~°Ľ´¨‚š­†š­†ł¨ƒ­Ł§yž“q“ˆg…|_ypVkbKZTAYUJ‡†‚ĆĆĹóóôţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýőôňäâŰËŹǞžŇɤ×ͧŘΨÝÓŻáŘ´âŮľâŮśáŘ´ÜÔŻŰŇŽŘĎŠÎÜɽ•Ćş’ÂśŽĂˇÇť“Ëż—ÍšÎÛĚÁ™Ęž–Ęž–͚ЪĎĜΚËŔ˜Ćş’É˝•ĐƞÍ›ʾ–ĚÁ™Ęż—Čź”É˝•É˝•Çť”ᏻŻˆ˛Ś€ •rŠ€bwnTf_HZTAXRBUPBNJ>OLCwupĚĚËţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúŘ×Ńť¸ŤÔΚćŕĹęâĆäÝ˝á١ĺÝźčŕÂçŕÁÝÔ˛ŇǢÁś’Ľ›}…}cngO^WBLF584'+(
+
+ "
+D dŒ˛Č$-Ř9Hç@QóBTűEXüJ]üM`üFYü5Dü$.ű&ű!*ű)4ű+7ű+7ű*6ű&0ű!*ű (ű$.ű+7ű1?ü6Eü8Iü=OüBUüDVű=Nó1=é$âÚĘ#Ľ$(|*,a:7HRLBmeQ{qXvZ}sX…{^’ˆgŸ•sŠžz°ĽşŻ‡ź°‰´Š‚ŽŁ~ŤĄ}ŤĄ|Ś›x“p†f‚y[sjPaYDNI;SPHƒ‚ÔÔÔđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýüňńďáŢÔÁťŚÉÁĄ×ͨŘĐŞÝÔŻâŮ´âŮľâŮľßÖ˛ŮĐŠ×ΧÖÍŚÓȥΛȼ”áÁľÂśŽĂ¸Čź”ÍšÎÛÍšĚÁ™Éž–Çź”Č˝•Çť“Ĺš‘Ĺş’Ęž–ĎĜĚŔ™Č˝•Éž–É˝•É˝•ĚŔ˜ÍšĚÁ™É˝•ĂˇťŻˆŽ˘}œ‘o…|^meM\VBWQ?RM=LG:IE:`^W´łąööö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ×ŐÍťś¤ÖŇ˝ĺŕÇčáĂăÚšÝÔ°ŰŇ­áŘłĺÜşáء̝´Ş…›‘p~uYaZCMG5>:+-*  (
+= g•´Őń ů%.ű:IüBUüFYüJ^üOcüQeüJ]ü9Hü(3ű (ű!)ű)3ű+7ű+7ű+6ű(3ű$-ű'ű"+ű+7ű3Bü8Hü9Jü?QüFYüH[ü=Mü,7ű#úůó"Ţ&Ŕ&Ś$(Ž22zEBmQLU\VDneMuYŽ„d—kĄ–sŤŸ{ł¨‚˛§¨yŚ›wŠyŽ˘}ŽŁ~¨y™m‰ayoTg`HRL:D@5JGBœ›šÜÜŰýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţřřöîěçŔ˝°ĹžĄŘĎŤÚŃŹŢŐ°ßײßײßÖ˛ÝÔŻŮĐŞŘϨÖÍŚŇÇ ÍÁšČź”áŔ´ŒÁľÄ¸Çť“É˝•ĚÁ™ÎÛĚŔ˜Ćť“ÂśŽĂˇÄ¸Ä¸Ćş’ËŔ˜ĐŝĚÁ™Čź•Čź”Čź”É˝•ÍšĎĜĎĜÎÛʾ—ÂśˇŤ…ŚšvŒƒdwnTf^HYS?QK:LG8HD6PMD€{ÎÎÍúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙éč䡹ŸŐĎ´čâČčáĹăÚ¸ÝÔąÚŃŤŮĐŞŰŇ­ÚŃ­ŃÇŁ´Š…“‰iulR\U@D?/2.#"   < eŠ¸ßěň÷ů'ú3Aű>PüGYüOcüSgüRfüK_ü=Mü-9ű (ú%ú(3ű+7ű+7ű+7ű*6ű'2ű&ú!)ú+6ű3Bü9Iü;LüASüI\üK^ü9Hü$-ű úůř&ő%.đ(3ë%.ç!'Đ #Ł&&n84J[UOskWƒz^Œ‚c–Œj •sĽ™vŁ˜u •rŁ˜tŠžz˛§ľŞ„°ĽŸ”rŽ„e~uYmdLWP=F@3EB9pnjşš¸ęęęűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůđďěĘǟŞŁŘĎŤÚŃŹÝÔŻÝŐ°ÜÓŽŰÓŽŰÓŻÜÓŻÜÓŽŘĎŠÎÜɽ•Ćş’áÁľÁľĆť“Č˝•Ĺš‘Éž–ΚËŔ˜Ćş’ÁľÂśŽÄ¸Ćş’Čź”ËŔ˜ĐŞÍšɽ•Çť“Çť“É˝•ÍÁ™ĎÛĐŝŇÇ ÎÜŹ‘ťŻ‰Šžy…ewZsjQaZDTN;MH8HD6EA7WUNŒđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙íěčÍʞĿŠâÜŔëĺÉęăĆčáÂćßÁâٸŮĎŞĘż™źąŹĄ†gskQZS?E?0.*   WťŃĺőůůůů$ú,9ű:JüFYüPdüThüSgüPdüDVü4Bű",ú%ú(2ú+7ű+7ű+7ű+7ű)4ű!*ű#,ű+7ű3Bü:Kü@RüI[üMaüH[ü5Cü!*úúů%ú$-ű,8ű0=ü(3ű%ńÚŔ!#ž22kKGRe^LzrV‹b”ŠišmĄ–sޞzŹ |ŹĄ}ŽĽ€°§‚Ž¤Ł™v˜Žm‰€aumS^WBNH7IE7XUMxws˛˛ąçççţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüőôňâŕŮÁşĄËßÖ̧ÚŃŹŰÓŽÚŇŽÚŇ­ÝŐąăŰşâÚ¸ÜŇ­Í›ƺ’ĸÄ¸ĂˇÂśŽĂˇĹš‘Ćş’Ęż—ĎĜĐŞɾ–áĂˇÄ¸Ä¸Ćş’Čź•Č˝•Ęż—Ęž–Ĺš‘Ĺš‘Čź”Ęż—ÍÁ™ĎĜĐƞʿ—Ŕ´ŒşŽ‡­Ą|—ŒkŠ€a}sWhaIXR>OJ9HC5?;0EB:mlgççćţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙öőôĎĚÂĹŔŤŮÖžéćÎëĺÉęăÄéâÄęăĹäÜťÓÉĽśŤ†’p„z]g_HPI7<7*)%  ! AmŽÚôůůůůůůů!ú&0ú6EüFXüPdüThüUiüVküL_ü9Hü&0ű (ú)4ű-:ű.<ű,8ű+7ű)4ű$-ű%.ű,8ű6Eü@QüFXüMaüPdüEWü1>ű&úů!ú"*ű+6ű1?ű1>ü(3ű%úúůćŠ%'|<9\VPKqiO…|^’‡gž“qޞz°¤~ąŚ€­ŁŹ˘ŤĄ}§›x˘˜u—mƒz]ldK[T?QK9KF:KIAhgb¨¨Śńńńýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúůňňďĚÇşťł—ŃȤŮĐŞÜÔŻÝŐ°ß׳âŰşéáÂćŢžßÖ˛ŃÇ Ćş“Ŕ´Ä¸‘Ĺš‘ÁľŔ´ŒÂśŽĹš‘Ęż—ĐŝÔʢĐŝɾ–Čź”Ĺš‘ÂśŽĂˇÂśŽżłŒÂˇĹş’ĸĹš‘É˝•Í›ĎĝĎĜÍšƺ’˝ąŠśŤ…Ź˘}Ÿ”q”‰h…{]qhO`XCSM;GB4@;.@<2XVO¸ˇśďďîýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÝÚŇÁźŠÔϸĺĺÓęé×ęĺĘçßżä۸áŮśŮĐŹÇ˝˜§z‰€bkcKJD33/#! ) [ž"Ö%ę&ô%ů úůůůůůůů!*ú2@üDWüQeüUiüVküZoüPcü;Kü)5ű#,ű)4ű0>ü3Bü-:ű+7ű)5ű%.ű&0ű.;ű;KüDWüH[üOcüPdüDVü.:ú"ůů#ú#-ű/<ü3Aü-8ű%.ű$úůůőäŔ!#20ZRLMrk[ˆ~d–‹jž“qŞŸzł§ąĽ€°ĽŻ¤~ŞŸz§œy –t‡f|sWkcK[T?NH8KG:YWMxvpłł˛ćććüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüűűőőóâŕŮś°šŇɧŰŇŽŢŐąŕ׳äŰşčŕÁęâÄćŢžßÖ˛Őˤǟ•˝ąŠÂśŽĹš‘ÂśŽÁśŽÁśŽĂˇÉ˝•ĐŝÔɢÔʢŃǟËŔ˜Ćş’ÂśŽÁľž˛ŠşŽ‡şŽ‡żł‹Ĺš‘Čź”Ëż˜ŃÇĄÓȢĎĜ˿—ĸźąŠłŠƒŠŸ|˘—t—l‰avmRf_GWQ=JD5@;.=8.HG?‰ˆ„ÎÎĚřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ăâŢĘĆľĎĘ´ßŰÂëčÓěčÓęäČćŢ˝ŕŘ´ÚŇ­Éż›°Ľ‚‘‡hphOOH60,!  8t­#Ű '÷ (ű (ű'ű$ű#ú"úůůůůů#ú,8ű@QüSgüZoüZpü\rüSgü@Qü-9ű"+ű%/ű/<ü5Cü-:ű+7ű*6ű(3ű+7ű4Bü>OüH[üMaüUiüRgü@Qü*5ú!ů"ú!)ű(3ű2@ü3Bü+6ű"*ű ůůůů÷ç"Í$(­55ŠLJole`Š€b›‘oŚ›wŽ˘}´¨ˇŤ„¸Ź…ľŞƒ°Ľ€¨žz›‘pŠ€byqUiaIZS?TN=UPC[WNrqmŠ¨§ęęęţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüü÷öőčç⡲ĎÇĽÚŃŹŢŐ°ŕ׳áŮśăÜťčáĂäÝźÜÓŽŃƟ·¸Ź†ž˛ŠÄ¸Ĺš‘Çť“Çź”Ćş’Ęż—ĎĜŃǟŇÇ ŃƟÍšɽ•Ĺš‘ÂśŽź°ˆśŞƒš­†żłŒĆş“Ęž–ĚŔ™ËÁšĎĝĐŞɽ•żł‹śŤ„­˘~¤šwž“p•Ši‰`ypUkdK\V@MG6A<.95*><4nmg¸¸śóóóţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙đďíËČźĎʲŢŘżçáÉěçÎëäÉçßÁäÜšŰŇŽĚ߲¨…’ˆiqiPPJ81-"
+  K…!Â&ë (ů'ű&ű&ű'ű&ű&ű&ú úůůůůů&0ú:JüThü^tü^tüawüYnüGZü0=ű"+ű$.ű.;ü5Dü0=ű,7ű)4ű*6ű0=ű8Hü@RüJ^üTiüZpüThü:Jü&0ú!ú&ú&0ű.;ű5Dü1?ü&0ú$ůůůůůů!ů'÷ (ó#*Đ/2œJHrpia…jŸ•sŞŸ{ł§ˇŹ…šŽˆşŻˆˇŤ„ŻŁ§›x™ŽmŠ€bzrVibJ^XBVO>NI<RPHrqn§§Śëëëüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűúňńîÄż°ĂťǪ̋ÝÔ°ßÖ˛ß×´áÚ¸ćŢžŕŘľÖĚŚĘž—ż´ŒşŽ‡żł‹Ĺš‘Çť“Č˝•Éž–ËŔ˜ĚÁ™ÍšĚŔ˜ĚÁ™ÍšÍš˿—Çź”ĸ˝ą‰śŞƒťŻˆÂśŽĆş’Éž–ËŔ˜Çź”Ęż—Í›ǻ“˝ąŠľŠƒ­Ą|Ľšv“q•ŠjŠbzqWogNaZCQK8B=.95*=:2gf`­ŹŞćććúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷öőÓĐÄĆŔŤáÜÄéĺÎëćÎěćËćŢżßÖ´ÝÔąĐĆĄľŞ†—lskQLG5/,!
+ 
+
+`"ź#,ŕ%.ď!*ř (ű&ű!ú#ú&ű"ú#ú&ű!úůůůůů"*ú3AűQeü^tü`vüh}ücwüPcü5Bű$.ű)4ű1?ü7Gü6Eü-9ü&0ű)4ű1>ű9IüASüNaüYoü]süRfü4Aű"*ú ú'ú*6ű4Cü7Gü-9ű%úůůůůůů#ú (ű!*ú$.ň*3Ů.3˘GEpnha‡kŚœzŻŁ~ŻĽ€ŻĽąŚ€´¨‚ľŠ‚ŻŁ~Śœyœ’q‹‚dzrVjbK[T@PK:OK>XVNtsq­­­÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýř÷÷ŢÜÔ¸ą˜ĎƤÝÔ°áŘ´äÜťĺŢžă۸ŰŇ­ŃÇ Çź”ĸĹš‘Ćş’Çť“Čź”¡Äš‘ÎÜΛȼ”Ĺš‘Ćş’É˝•É˝•Č˝•Čź”Ćş’ÁľŽź°‰Ŕ´ŒĹš‘áĆş’É˝•Ëż˜Čź•Äš‘Ćş’ᐽąŠľŠ‚­˘}Śzž“q†g}tYqhOe^FUO;C>.62':7.ca[šŃŃĎîîîýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűú×ŐËĚĆłŐϸçâËëćĎëćĚëäČăŰťŘĎŤÎğšŽŠœ‘o|sWXR=1-" 
+ ] 'ł%/ě)4ű(2ű"+ű (ű'ű$ű%ű'ű$ű%ű'ű$ű ůůůůů&ú.9űM_ü]rüdyük€üi}üZmü=Kű)3ű,8ű5Dü<Mü8Hü/=ü(3ű*5ű3Aű>PüHZüSgü\qü^tüPcü/:ű&ú!ú#,ú.:ű6Fü8Hü,8ű"úůůůůů"ú )ű%/ű&0ű(3ű)4ó%-Ó/2ŸJHqoie‘‰l§žzŤ˘ŞĄ~ŞŸ|°¤śŞ„ľŠ‚ŽŁ~Ś›x˜Žl†|^rjQb[EVQ=PJ;KH=TQL~}ÚÚÚůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúůůęčäžşŠČÁ˘ÝŐąăŰťĺÝ˝äÜşâŮľÝÔŻ×ͨĐĆ ÎĝÎÜ˿—Ëż—Íšɽ–Çź”ĚÁšËŔ˜Čź”Ĺš‘Ćş’Čź”Čź”Čź”Çť“Ĺš‘ĸÄ¸‘ĸÄ¸Ĺš‘Čź”Ęż—Čź”¡żł‹Ä¸Çť“ᏻŻ‡˛§ŞĄ~ –t”Ši†|^yoTjcJYR=E@/62&53*[YSŒ‹‡ˇˇ´ääăűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ęęçÉIJÓĚľŕÚÂęäËěĺËëĺÉëäČâŰťÓÉŁ˝˛Œž“q€vZ`XB>9*  D!(Ť*5ň*6ů+7ű(3ű$-ű"+ű!*ű (ű (ű (ű (ű (ű (ű (ű$űůůůů"ú)3űGXü\püh|ünƒüm‚übvüETű-9ű,8ű7Gü@Rü9Jü2@ü,8ű+7ű5DűCVüObüYnü_tü^tüM`ü*4ű"ú$ú(3ű2@ű6Fü5Dü)4ű!úůůůů ú )ű&0ű*5ű*6ű*5ű(2ú#-ö#)Ń-0—KIpqkc–ŽqŚ{Ť˘~ŞŸ{ŻŁ~śŞƒşŽ‡ˇŹ…ŽŁ˘—t…f{rVlcL_WBQK:GC5EA9\ZWžžäääűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüűôôňÉĆźżşŸÜÔ˛ĺÝżĺÝžăŰšă۸ăÚśßÖ˛ŮĐŤ×ΨŐˤÍšĚŔ™ŃƟĐŝĚÁ™Čź”Çť“Çť“Čź”Č˝•Čź”Çť“Ćş’Ćş’ĸĆť“Éž–Ĺš‘ÁľĹš‘Ęž–Ęż—øž˛Š˝ąŠÄ¸‘Č˝•Ćş’Ŕ´ˇŹ†Ž¤€ĽšwšnŒ‚cvZphN^VAHC295(63*TRK|{u  œÚÚŘ÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřÍĘÂĚÇłáÝĆéăÍčáĆęăĆíçÍíçÍâÚťËÁœ­Ł„{]]VA=8*"
+ =j!™&/×+7ű+7ű+7ű+7ű)4ű(4ű'1ű"+ű!)ű )ű (ű (ű (ű (ű'ű%ű úůů"ú&0ű@PüXlüküt‰üt‰üi}üM^ü1?ü(3ű4CüASü:Kü2@ü,9ű,8ű6EűFXüTiüawüg|ü_tüGXű%-ú#ú#,ű0>ű7Fü5Dü+7ű'űůůůů"ú )ű'1ű*6ű+7ű+7ű(3ű$-ű!*ű (ň#)Ř,/ŁDCrqjc–ŒnŽ¤ł¨‚ł§śŞƒÂˇĹš’şŻ‰­Ł›’q†}_wnTjbIXR=LG6E@4GD<cb^˘˘˘čččýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýűűú×ŐĎ˝¸˘ÚÓłäÝ˝çßŔčŕÁčŕÁćÝźŕ׳×ÍŚŘΧÚĐŤĐĝɽ•ËŔ˜ÍšËŔ˜Äš‘áĹš‘ËŔ˜Ëż—Çť“ĸÂśŽĂˇČź”Ęż—Čź”Áľ˝ą‰ÁľĹš‘Çť“ÂśŽŔ´ŒÁľČź”Ëż—Č˝•Ćş’ŔľˇŹ†ł§§œy‹cvZwnTd\FPJ7@<,84)FC<hf`‹‡ČÇĆëëëůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řř÷Ů×ŃČÄłÚŐżčâĘęĺĚéáÄęâĹëĺÉćßÁŐÍŤşą–Œmh`IA=.$"  |ś'Ó'2í+7ű,8ű.<ű/<ű,8ű+7ű*5ű&1ű%/ű$.ű"*ű (ű (ű (ű (ű'ű$ű úůů"*ú9GüTgülüwüzüq†üUhü6Eü(3ű4BüBTü?Pü5Dü.:ű0=ű<LüL_üZoüh}ülüZnü>Nű$,ú (ű)4ű7Gü;Lü4Cü%/ű ůůůů"ú )ű&0ű*6ű.;ű/=ű,9ű)4ű%/ű"+ű (ű 'ô%Ň*,˘KHquniœ’sąŚ€¸Ź…ťŻˆÇź”Č˝•źąŠ°ĽŸ•sŽ„e€v[rjO`YCSM:IC3A=2FC=a`^ŤŤŤőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüâáŢťśĽŐÍ­äÜźčáĂéáÄçßŔćŢžäŰşŰŇ­ŘΨ×ĚŚÎÜɽ•Ëż—ĚŔ˜Ęż—Čź•É˝–ËŔ˜ÎÛĚŔ˜Çť“ÂśŽÁľÄ¸Ćť“Ĺş’ÁľŽž˛Š˝ą‰żłŒŔ´ÁľŽĂˇÂśŽÂśŽĹş’Čź”Čź”Ęž–Çť“ž˛Š¸Ź…ŞŸ{Œ‚bwZzqUkcKWQ<E@084(<:1USMywr¨§¤ŘŘŘőôôţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţĺäŕÇ´×ŃşäßÉęćĎěćÍęăÇęăĹćŢż×ÎŤżľ’ ˜wxpVKE5+( ?¸ î (ô&0ů*5ű,8ű0?ü2Aü.;ű-:ű,9ű+6ű*6ű(3ű#,ű (ű (ű!*ű!*ű (ű'ű$úůů$ú0=űO`ül€üzü€–üyü]rü=Mü*6ű4CüCUüCUü9Iü1>ű5DüCTüTgübvüoƒüp…üUgü5Cü%.ű&0ű0=ű?Pü>Oü2@ű!*úůůů!ú )ű&0ű*6ű-9ű1>ű2Aü,9ű)4ű'2ű#,ű'ű&ů!ó!Ő+-˜PMu|ti¤™yˇŤ„žł‹Çź”Ćť“ź°‰˛§Ľšw–Œk‰`zrViaJ[S?MG6B=/:7.EC?utsŢŢŢúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýěë鞎ÍÄĽáŮšçßÁçŕÁäÜťćŢžčŕÁáŘľŮĎŠŃǟ˿—Éž–ÍÁ™Ëż—Ęž–ÍšĐƞŇÇ ĎŝĚŔ˜Čź”ĸĹš‘Ćş’øżłŒź°‰ź°ˆ˝ą‰˝ąŠ˝ąŠž˛‹ĂˇĂˇÁľÂśŽÄ¸Çť“Ęż—Éž–ÁľŽşŽ‡ŹĄ|“ˆh‡}_vYqiO^VAJE3;6*:6,LJBjibŽˆÂÂŔńđđýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙öőôÎĚÁČĂŽăŕËéęŰîíŢńíÚíćËčŕÁÝÔłŔś“Ÿ•tv\XQ>1-"
+
+  
+:×!ú 'ű"+ű&1ű*6ű-:ű0>ű3Bü4Cü2Aü-9ű+7ű)5ű$-ű (ű!*ű%.ű%/ű!*ű (ű%úúů ú&0űFVűj~ü{üƒ™ü•ügzüEWü0=ű7FüDVüDWü=Nü6Fü8HüGYü[oüjüvŒüt‰üQcű/:ű$.ű*6ű8GüGYü>Mü)3ű#úůů!ú )ű'1ű*5ű,9ű2@ü2@ü-:ű'1ű$-ű#,ű!*ű%ű úůď"Ň34ĄVSvˆ€o¨y¸­†ÁśŽÄ¸ĂˇÂˇşŻ‰¨œx–Œk„{^qiOaYCTM9GA1:6*;:4dc`ĹĹÄěěěţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţüüüČľĝœŮĐŽŕŘśá١âÚˇćŢžçßÁŢŐą×ͧŇČ É˝•Çź”ĚÁ™Ëż—Ęż—ÎÛĐŞĐƞĎĜĚŔ˜É˝•Éž–Éž–Çť“᏿łŒ˝ą‰š­†ľŠƒśŞ„ź°‰Áľżł‹ž˛‹ÁľĂˇÄ¸Ä¸Çť“É˝•Ćş’Ŕ´ˇŤ…§œxšm‰€aqiP^V@NH6@;,:6+FC;_\U~yľ´˛ęęęůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřŇĐČÁźŠŮÔżěęŘîďĺđđĺóďÝîçĎăÜŔÎÇŞŠŸ€‚y]aZD<8*
+
+=€Áëů#ú&ű"+ű&0ű)5ű-:ű2@ü6Eü6Fü2?ű0>ű.;ű(2ű#,ű"+ű'1ű'2ű"+ű"+ű"+ű#úůú!(ú>Kűbvü{‘ü‰Ÿü‡›üq†üQcü6Dű<LüH[üFXü?Pü:Jü<NüM`ücxüs‰üzüq†üKZű)4ű'1ű1>ü>PüH[ü8Fű!)úůů!ú%ű%.ű.:ű0>ű2?ű6Eü2@ü*6ű#,ű (ű (ű (ű$úúůůô $Ň66 e_i‘‡g°¤ź°‰Ä¸Éž–ĚŔ˜Ćş“ˇŹ…Śœx’‰izqVh`HZR=KF4=9*85,KJF~ŐŐŐřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţž°Ĺ˝ŸÜÓłâŮšâŰşăÚ¸ăŰšăŰťŕ×´ÝÓŻŘΨÍ›Ƚ•ËŔ˜ËŔ˜ĚÁ™ÎÛΚĚÁ™ĚÁ™Ęż—Ęž–ÍÁ™ËŔ˜Ĺš‘Ŕ´Œź°ˆşŽ‡¸Ź…śŞ„ˇŤ„şŽ‡˝ąŠź°‰żł‹ĂˇĆş’Çť“Çť“Ëż—ĚÁšĘż—Ĺš‘żł‹ˇŤ„Şžz•ŠjvmSbZDTN;E@0;6*?<2ROIpniĽ¤ĄŮŮ×ňňňýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţĺä༸ŠÚŐŔéćÓňđáôňćóđßđěŐěćÍŰŐ˝ž¸ ˜spgNMG6*( 
+.‚Á"ę÷ú ú%ű!)ű"+ű&0ű*6ű-:ű3Aü7Gü7Fü7Fü5Dü.;ű'2ű$-ű&1ű'1ű$-ű&0ű'1ű )ű!úů'ú7DűXküzüŽĽüŒ˘ü}’ü\oü9Gű@PüNaüI[ü@Rü;LüBTüVjülü{ü{’üj~üCRű'1ű-8ű9IüCVüBTü1=ű#ůů ú&ú!*ű(3ű4Bü7Fü7Fü6Eü0>ü)4ű#,ű (ű (ű'ű#úůůůř ň&*ÎGDswp`Ľ™x¸Ź†Äš‘ĚŔ˜ĚÁ™Çź”żłŒłŠ„ —u„{^phO_WBNH5@:,62(640[ZY´´ł÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ˝šŹÉ¨ăŰżéâÄéăĹĺÝ˝ŕŘśß×´ăŰşâÚ¸ÝÓŻÓȢĚŔ˜Ęž–ËŔ˜ÎšÎÛĚŔ˜É˝•É˝•Čź”Čź”ËŔ˜É˝•Ăˇ˝ą‰ˇŤ„´¨‚¸Ź…ź°ˆťŻˆš­†¸­†ž˛‹Ä¸Ćş’Č˝•Ëż—ÍšŃƟŇÇ ÎÛǻ“Ŕ´Œź°‰°¤œ‘o€v[ldK]VALF4<8*:7,HE=`^X‡†ƒşş¸ççćüűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţ÷÷öŐÔËÄŔŻćăŇńđâőôé÷őęôńŕďéŃăÜžĚÄŚŹ¤‡ˆd^WB84(
+
+ Yşç!÷#ú#ú$ú&ű (ű!)ű#+ű&1ű+7ű2@ü7Gü8Hü8Hü7Gü4Cü.;ű(2ű%/ű%/ű'1ű)4ű(3ű"*ű"úů"ů0<űPbüxŽü‘§ü’§ü‰ühyü<JűAQüQdüNbüDVü=NüI[ü^rüs‰ü…šü€–üdxü>Lű)4ű7FüEWüI[ü:Iű(2ű ůů ú!)ú)4ű1?ü6Fü8Hü7Fü1?ű+6ű%.ű!*ű (ű'ű#úůůůů#ú (ú%-ä14[Wv„o­˘}¡ÍÁšĐŞÍ›ź“˝˛ŒŽ¤‘‡g{qUg^GUN:E?062&,)#KIGĽĽĽňňňýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţĐĐĘÄżŤâÜżéâĹęăČéáĂäÜťßÖ˛ŰŇŽÚŃŹŮĎŠÓČĄĚÁ™É˝•Éž–ĚÁ™ÎšËŔ˜Čź”Čź”Ćş’ĸĹş’Çź”Ćť“žł‹ľŠƒ˛Ś€ł§śŞƒˇŤ„şŽ‡Ŕ´Çť“É˝•É˝•Ëż—ΚĎĜĐƞŃƟÎÛǼ”Ŕ´ŒťŻ‡ŹĄ|›‘o‚dzqVg_GQJ8>8+85)@<4QOHnmhœœšÚÚÚűúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüř÷öÜÚÓžšŠÔŃŔîěßôóçôńăňďÝěçĐäÝż×ÎŞź˛Ž™nqhOFA1#! 
+Nä ů!ú&ű&ű%ű'ű (ű (ű (ű#-ű*5ű/=ű4Cü7Gü:Jü;Mü<Mü7Fü/<ű(3ű&1ű*5ű+7ű)4ű$.ű&ű ůů(2úEVűs‡ü”ŠüœŽüšŹüy‰üCRűDVüUjüXlüL_üDUüSfüi~ü”üĽü„™ü[oü8Eű,7űCTüObüJ]ü0<ű'úů"ů (ú&0ű2@ü:Kü9Iü8Hü6Eü-9ű&0ű!*ű (ű&ű$úůůů ú"ú'ű#-ű%/ń$+Ď?@›keq™w˝ą‹ĚÁ™ŇÇ ĎĜƺ’ÂśşŻˆŸ–s‡~`qhN]U@KE3;6(/+"<:6mmm˝ź˝řřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÖŐĐŔťŠáÚžčáÄęăĹčáĂăÚšŰŇ­ÖĚĽÖĚĽŘΨÔĘŁĚÁ™Ĺş’Ćş’Çť“Ĺş’ĸĂˇĹš‘ÂśŽž˛Šž˛ŠÂśŽÄš‘ż´Œ¸Ź…´¨ąĽąĽśŞƒž˛‹Çź”Ëż—Éž–Çť“Ęż—ÎÛŃƞŃǟĎĜȽ•żłŒ¸Ź†ˇŤ„Ž˘}˘–s™Žm†|^neLUN;@;,73'85+DA9[XT…„‚ČČÇöööţýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷öćĺŕÉĆşŇÎťčĺŇňđâóńŕďęŇçŕĂŢŐ´Ő˧Ě›°Ś‚†}_WP<.*  %†Ţ#ö%ú%ú&ű$ú!ú%ű (ű (ű (ű#,ű(3ű+8ű/<ű7Fü<NüASüBUü>Pü7Gü/<ű+6ű+7ű+7ű*6ű)4ű%.ű'ú ú!)ú9Fűl}ü—Šü¨šüŤźüŠ›üO`üM`ü^sücxüWjüM`ü_rüxŒü˘ü›ąüƒ™üQdü3Aű1=űK]üSgüHYű'1úů!ů#+ú*5ű.:ű9Iü?Qü9Jü7Gü5Cü,8ű%/ű!)ű'ű#úůů ú%ú'ú (ű!)ű"*ű"*ů"*î/3žLK‰‚{ył¨ƒÉ˝–ĎĜʾ—Ŕ´Áľż´Ť˘~“Šj{sWf^FRL8B<-62&41*GFEzz{ííí˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÓŃĚŔť§âŰŔęăĆéâÄäÜťŰŇŽÖĚŚŘĎŞÜÔŻÝÔŻŘΧËŔ™Ŕ´ĂˇÂśŽš­†¸Ź…ź°ˆ˝ą‹ź°‰š­†¸­†şŽ‡ź°‰ž˛Šź°ˆˇŤ…ľŠ‚śŞ„˝ąŠĂˇÇť“Č˝•Ćş’áÇť“ĚÁ™ŃƟŇČĄĚ›żłŒ´¨‚Ż¤śŞ„śŞƒŽ˘}’p†|_pfNZS>C>/62&1.$85.LKEpom°°Żîîîüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙đđîĺäÝĚÉžŰŘÇďěŘńîŰńíŘîčĎçŕÁŕ×´Őˌᑞ”sogNA;,
+  [ł"ô"ú!ú!ú!ú"ú#ú&ű (ű (ű (ű"*ű%.ű(3ű-:ű6Eü;Kü?PüCUüCUü>Pü7Fü0=ű,8ű+7ű+7ű+6ű(4ű$-ú"ú$ú1<űbsü•§üŻÁüşËüŻüauü[oüi~üp†ücwüXlüo‚üŠüąüŚźü†›üM_ü9Hü@PüXlüTgü?Nű"*úů%ú&0ű1>ű9Iü@RüASü9Jü4Cü/<ű'2ű#,ű(ű#úůů ů$ű (ű#-ű&0ű&0ű#,ű"*ű%.ů*3á=B¸ok„Ľšxø‘ËŔ˜Čź•ÂśŔ´Œž˛‹ľŤ…Ą–t†}_leLXR=KE3>9+1.%/.*YXXŃŃŃ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţŃĐĘŔź¨áÚżęâĹéâÄáŘľŘĎŞ×ͧß×´áŮśÝÔŻÖĚĽĚŔ™Ă¸Âśž˛Š´¨‚ˇŤ„š­‡ł§‚˛Śł§˛§ľŤ…ź°‰żł‹˝ą‰şŽ‡˝ąŠÂˇÇť“Ćş’Ĺš‘Çť“ĸÂśŽĹš‘Çť”Çť”Č˝–Ćť“ž˛‹şŽˆš­‡ťŻˆˇŹ†­Ł~šn„{]pgMYR=C=.51$.*!1/(DB=db_ Ÿççćüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüăâßáŕŘÓŃĹŢŰËďęŐîéŇđęŇďéĐęăĆâٸŇȤ˛§ƒ†}`WP<.*  ;˜ ×%ř úúúú#ú'ű (ű (ű (ű (ű (ű!*ű%.ű*6ű3Bü7Fü:KüBTüFYüFYüASü8Hü0=ű,9ű,8ű-:ű-:ű*6ű (ú%ú,6űXiü¤üˇĘüÉŰüąĂüwŒüküu‹ü~”üp…üfzü€”ü°üŽŔüąÄü†™üJ[üDUüUiüdxüQcü3Aű (ú$ú#-ű,8ű9IűDVüDWü>Pü6Fü/<ű(3ű"+ű'ű%ú!úú ú&ű"+ű#,ű&0ű(3ű)5ű'1ű%/ű+6ű/<ř;Eŕ]^–’‰uşŻ‹Çť“Čź”Čź”ᐿ´ŒżłŒŻŁ”ŠjvmSaYCSM9E?03/$,)"DB@ł˛˛îîî˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţÝÜŮ˝š¨ßŮźčŕÂčáĂáءÜŇ­ÜŇŽĺŢžăÜťÚŇŽÓɢĚŔ™Ćť“ĸ‘ž˛‹´¨‚śŞ„ˇŹ…ŹĄ|ŤŸ{­˘}­Ł~ł¨ƒşŻˆž˛Šž˛ŠżłŒÄš’Ęż—ĚÁ™Çź”ĸČź”Ćş’áĹš‘ÁľŽź°‰żłŒÂˇĂˇÄ¸Ăˇž˛‹ľŤ…¨Ÿ|˜Žmƒz]ogMTM9@;+50$,(-*#<:5ZYU“’‘ääăúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţööôŘ×ŃÖŇÄŘŇťçáČîčĐďéĐďęŃíçÍćßÁŐĚŠť°Œ“‰ijbJ@;,
+ 
+
+ WÉ#ó'ú&ű&ú&ú%ú&ű (ű (ű (ű (ű (ű (ű (ű"*ű%/ű+7ű2@ű8HüASüI\üNbüPcüGYü:Jü1?ű/<ű4Cü6Fü4Cű,8ű%/ű+6űL^üŠŸüÂŐüŰëüĆ×üŽŁü~”üƒ™üŽ¤ü‚–üxü’¨üąÄüŔŃüˇČüƒ“üIWűTfüm‚üi}üIXü)3ű!*ű%/ű.:ű;JüGZüL_üCUü7Gü/;ű'2ű"+ű (ű#ú!ú%ú'ú )ű%/ű)4ű(3ű%0ű%/ű*6ű,8ű.:ű5Dü<MüCRëMT°xt‡Ź˘‡ÂśĘż—ÍÁšÍšĚÁ™ËŔ˜ťąŒ˘šx†}_nfM\U@KE4;6)40&<:5ˆ‡…ÔÔÔüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕÝšľĽŕŮżéâĹęâĹçáÂäÜťăÚˇçßŔâŰşŮĐŹÓÉĄĘż—Äš‘Çź”ø‘śŞƒą§°Ś‚ŽŁ~ŤŸzŠžz­˘}ąŚ€ľŠ‚¸Ź…ż´ŒĆť“Ćş“Äš‘Çť“Çť“Çť“Ęż—Éž–Ĺş’ÂśŽ˝ąŠťŻ‡Ŕ´Çť“Č˝•Ĺš‘żłŒşŽ‡˛¨ƒ¨Ÿ|›‘p‡}`ofNTM9@:+50$*''%31,OMJˆˆ†ÚÚŮřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüňńďŃĐÉËơâŰÁéâÇíçÍîčĎëäÉĺÝžŮώ¡“Ł™v{rWUN;1-"1‡%á )ű (ű (ű (ű'ű$ű%ű'ű (ű (ű (ű (ű (ű!)ű#,ű%/ű&0ű+7ű3Aü;LüDWüM`üTiüSfüGYü>Nü8Hü8Hü;Lü=Nü8Hü0=ű.:űDUü‚–üĹ×üĺńúŮäúŠťü”¨ü‘§ü˛ü’¨ü‹Ąü§źüČŘűÔŕú¸Čű‘üUeűhzü|üdxüAOü'0ű*5ű4Bű@PűK^üOdüK^ü@Rü5Dü,8ű%/ű (ű#ú"ú$ú",ű%/ű&0ű)4ű+7ű*6ű(3ű)4ű0=ű8Gű@PűHZüK^üL^óN[ŐknŁ—şŻŠĎĜŇÇ ÓɢÔˤÓÉŁĹź–ŻĽ‡humSb[DPJ8A<-84(53,MLJ°°°ôôô˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţŕŕÜšľĽáÚÁëäÉëĺĘëĺĘéâÄćŢžăŰşŰÓŻÓĘŁŇČ ĚŔ™ĂˇÂˇÁś˝ąŠşŻ‰ˇŹ‡ąŚ€­Ą|Ť {Ž˘}ł§¸Ź…˝ą‰ÁľŽĂˇÁśŽÁľĂˇÄ¸Ä¸Ä¸‘¡żłŒťŻ‡¸Ź…š­†żłŒÁľŽź°ŠšŽ‡¸Ź…´Š‚°Ľ€ŤĄ}Ą–t‹criO[T?GA172%*'$!-,'HGC|{yÍÍĚôôôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úůřęéćŃÎÇĎĚźäßĹéăĆëäČëäČćßÁÜÔ°ËŔšŻ¤€„fe]GC>/%" e#˝%0í$.ű!)ű!*ű!)ű'ű!ú#ú'ű (ű (ű (ű (ű (ű!)ű%/ű(2ű#-ű&0ű-9ű4Cü=NüGZüUiü[püVjüObüGYü@QüATüFYüFYü=Mü5Bű>Oüx‹üÁŇűčńřçířĂÓű¨˝üŸ´ü­Ăü¤şüŸ´ü˝ĎüŢéůäę÷ľÄú~“üj~ü}’ü„˜üZnü;Iü,7ű8GüHZüUiü[püTiüEXü;Lü3Aü*6ű$.ű'ű!ú$ú",ű)4ű+7ű+6ű+7ű-9ű/<ű1?ű6Dű?NüI[üSgüZoüYnüUiűTgő`jŔ|zƒ­¤‹ŇČĄ×ÍŚŘĎŠŮĐŤŘЫ͝ˇŹ†šo~uYiaIUN;E@0:5(-*!862€äääüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţâáݸľĽßŮżëäÉíčĎîčĐëĺÉçßŔß×´ÖͧĐŞŃÇ ĚÁšÂśŽ˝ąŠżł‹Ä¸‘Ćş’¡ˇŤ…˛ŚąĽł§¸Ź…˝ąŠÁľŽŔ´ź°‰˝ąŠŔ´ŒżłŒŔ´ŒŔ´Œž˛Šź°ˆš­†´¨‚ł§ˇŤ„ź°ˆš­†Ż¤ŻŁ~˛ŚąĽ°¤~ŹĄ}¤™v…evmSc[EMG594'*&# *(#B@=onlÁÁŔńńđüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷öőăâÝĆĂ´ÔĎšĺŢĹçŕĂĺÝťăÜťĺÝžŢԳȽ—§œy€vZQJ80-"  '!‘&1č)4÷%/ű#,ű&0ű$.ű )ű&ű'ű (ű (ű (ű (ű (ű (ű!)ű&0ű(3ű#,ű%/ű+6ű.;ű7FűEXüTiüavüf{üdxü\püReüPcüRfüVjüMaüBSü?PünüľĹűăęřîô÷Őćű¸ÍüŤÁüŔŐüşÍü´ĹüŇŕüěôůçě÷­şů‚—ü‰ü”Şü†›üPaü:Iü;JüObüauüküh|üUhü?Pü4Bű+7ű%.ű"*ű (ű'ű#-ű)5ű1?ü0?ü-9ű,9ű3Aű?OüJ\üSfüZmü\pü]rübwü`uü[püVjűQ`Ř]bŠ˜“šÍžŰŃŹŰŇŹŮĐŞÜÓŽÎğşŻ‰¨ž{‡hvmS[T?GA1<7*.+!10+tsrÓÓÓóóóţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţçç圲¤ŢŘžéăČîčŃńěŮěçÎäÝťáŘ´ŢÔŻŮĎŞŃşȼ”Áľž˛‹Ŕ´Çť“Čź”Ćş“Âśź°‰¸Ź…˝ąŠž˛‹ťŻˆź°‰ťŻˆşŽ‡ź°‰ž˛‹ź°ˆ˝ąŠŔ´ŒÂśŽÁľź°‰ľŠ‚ąĽł§ˇŤ„¸Ź…ľŠƒľŠƒ´¨‚ąĽŽŁ~ŠŸ{Ÿ”r†f}tXc\EHC273%*&!#!540`_]˛˛°îîíűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřŕŢŮÉÄłŐÎłăÝżçßŔäÜźăŰşäÜťÝԹǝ– •ttkQC>.$! F!)Ž+7ů*6ű'2ű'1ű)5ű(3ű%/ű%.ű%.ű$-ű"*ű (ű!)ű#,ű#,ű!*ű#-ű&0ű%/ű(2ű*6ű+7ű1?ű<LüJ]ü^rüo„üv‹üt‰üj~üezüeyüg|ücwüYlüM_ük}ü§¸űŰâřôřöćńůČŮűşÍü×äúŃŕűÉŮüâíúňůůăëů¨¸űŽŁüŚťü śü€•üNaüFXüUhüm‚üyŽüwŒüi}üQcü;Kü-:ű%/ű"*ű"+ű&/ű)5ű-:ű0>ű2@ü4Cü7Fű=LűHYűUiü_tüf{üi~üf{übwü`tü]rüYmüRfüGXěLV΃Ł˝ł’×ΊŰŇ­ŮĐŞŰŃŤŃǥø’ľŞ†šp{rWb[ELF5>9+.+ .,&hgeÉÉČňňňüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙çç徲ĽŕÚÂëĺĘíçÎďęÔęăČă۸âŮľŢŐ°ŘΊĐŞƺ’ž˛‹šŽ‡˝˛‹Çť”Čź”Ĺš‘ᐝŻˆł¨‚¸­‡źą‹žłŒŔľŔ´˝ą‰ź°‰˝ąŠž˛‹żłŒŔ´ŒÁľżłŒź°‰śŞ„ł§ľŠ‚şŽ‡żłŒŔľźą‰śŞ„­˘|§œy˘˜vž“q“ˆi‚x[f_GKF384&+'+*'WVT­ŹŤëëëűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőôÖŐĎÁźŠÚŇśăŰ˝ćŢŔçŕÁćŢžá١Ǫ̈žłŽ–Œlh`I84' /u!*Ć*5ú+7ű+7ű,8ű,9ű,8ű,8ű+8ű+8ű*5ű%/ű"*ű"+ű%/ű&0ű#,ű!*ű#,ű'1ű)5ű+7ű+7ű-9ű2@ű?PüWjüp…ü‚—ü‰Ÿüƒšü~”ü{üzüyŽüt‰ücwüpƒü›­űÓŰřřůőóööŮäůÍÚúęđ÷ĺďůŰéúíôřóůřŕěűŹżüž´üşĎüĄˇüu‹üWkü_rüvŠü‹ ü‹ üzübwüI[ü8Gü*5ű"+ű$-ű)4ű/;ű4Cü7Fü7Gü6Dű<LűI\üVjübxük€ünƒünƒünƒüjücwüXlüSgüQeüI]ü?QůCPćnn§Ľœ†ÍÄĄŮĐŤŮĐŞŘΧÖĚĽŃĆ Áś –tuZkbJSL:?:+/,!.+%ZYWśśľňňňýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţćć䡾ŠâÜĆěĺĚěćĚěćĚčáÄăÚ¸ßÖąŘΊŇÇ ĎĜƻ“ťŻ‰´Š„¸Ż‰Ĺť”Ĺš‘Ŕ´Œ˝ąŠł¨‚ŞŸ{ŤŁś­‡ĂˇÉž–Č˝•ÂśŽž˛‹ž˛‹ĂˇĂˇżł‹şŽ‡š­†şŽ‡š­†¸Ź…şŽ†żłŒĹš‘Ćť“ż´śŞ„Şžz˘—tž“qž“p”‰i‚y\kcKSL9?9+-)('%WVVŽ­Źëëëúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýţţýţţýţţýţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýđđîŃĎĘĆŔŹŰÔˇâŰźćßŔçŕĂäÜžÜŇŻĆź—Ś›y‚y\[T@+( 
+ R´'ć&1ű+6ű/=ű3Bü3Bü3Bü3Bü3Bü3Bü2@ü+7ű'2ű'1ű%/ű%/ű&0ű#,ű!*ű$-ű'2ű*6ű+7ű.;ű5Dü>PüSfük€üƒ™ü•Ťüœłü™°ü“Šü¤üĽüŁü|’üyü“ŚűÍŐřřůőřůöéńůáíúó÷÷ďöřçôúóř÷óůřâďűťÎü˛ČüĂŮüš°ün„üjü•ü˜Žü˘¸ü”ŞüxŽü[oü@Rü2?ű'1ű%.ű.;ü6Eü:Kü9Iü<MüBSüI\üWjüeyün…üvŒüyŽüwüt‰üo„üh}ü_tüPdüJ^üH[üASü8Hü9EěUX°ŠƒˆŔś˜ÓÉŁ×ͧ×ÍŚÚĐŞÚĐŤĎğąŚƒŽƒerjPVO;B<-40$/-%IHE’’çççţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţĺä㚡ŤâÝÇěćÍîčĎđěŘíçĐäÜ˝×ͨĐŞĎĜĎĜƻ“ź°‰ť°‰žłż´˝˛ŠşŽ‡śŞƒ­˘}§œx¨ }˛Šƒž˛‹Č˝•ĚŔ˜Çť“Ćş“Ĺş’ĸÁľž˛ŠˇŤ„ˇŤ„ź°‰˝ą‰˝ą‰˝ąŠ˝ąŠ˝ąŠť°ˆşŽ‡śŞƒŽ˘}ޞy¤˜u—ŒkŠ€a~tXkdKVO;C=./+&%#UUTŻŻŽíííűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýýýýýüűůř÷řřöůřöůů÷řřöůů÷űűűýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüîîěĘÉŔĘĹŻÝÖšăŰźĺŢŔćŢŔáءŇɤľŤ†‡gqhONI6!
+
+
+ gÜ!ú'ú#-ú(3ű-:ű2@ü3Bü4Cü7Gü8Hü7Gü5Dű3Aű/=ű+7ű)5ű*5ű'2ű$.ű$.ű'2ű*6ű+7ű0>ű8Hü@RüOcüdyü“ü™­üŽĂüľËüłÉüŞŔü¨żü¨Ŕüžľü‘¨ü—ŤüÉŐůôř÷ůűőőú÷óůřřúööú÷óůř÷úöđ÷řŕďűĎâüÇŰüŔÖü—Žü}’ü’§üŞŔü¸ÎüŤÁüĽüq†üTgü=Nü3Aű4Aű8Fű<MüASüFXüJ\üSeü`süm‚üxŽü•üƒ˜ü‚˜ü}“üu‹üm‚üfzü]rüRgüEXü@Rü>Pü8Gü0>ü0:î=Aťlh’˛Š’Ďŝ×ΧÚŃŤŢŐ°ßÖą×ÍŚ˝˛Žœ‘q|sW\V@ID2;6)0,#:95|{zŮŮŮüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűůáŕŰžşŹäŢČěćĚěćÍđěŘđëŐčáÄŘĎŤÓɢŐʤÓČĄČ˝•ź°‰ť°‰˝˛‹˝ąŠ¸­†˛¨‚Ž¤Ş |¨ž{ŤĄ}Ž¤ł§‚˝ą‹Ćş“Ęž–ĚŔ˜Ëż—Ćť“ĸÁśŽ˝ą‹˝ąŠŔ´ŒŔ´ŒŔ´Œżł‹š­†ľŠ‚´¨‚ˇŤ„şŽ‡¸Ź…°ĽŁ˜u‘‡g„{]{qVjbJUO;A<--)#"!SSS˛˛˛đđđüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţüüűůř÷÷÷őôňďďíčëéĺéčâëęĺďíéóňďřř÷ýýü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýđđîËÉżÍÇ°ßŮźăÝžĺŢÁĺÝžÝÔąËŔš­˘}‰ag_HE@0
+  nŢůú!ú"ú'ú(3ű+7ű.:ű3Bü6Eü8Hü>Oü>Oü9Iü8Gü5Dü/<ű-9ű,8ű+7ű+7ű+7ű,9ű1?ű9IüASüOcüavüyü•¨ü˛ĆüĹÚüÎăüÄÚüżÖüžŐüźÓüŻĹüŠ˝üĘÚüěöůřúöúűőůúöúűőúűőůúöúűőíôřÝíűßîüÔäü¸ÎüĄˇüŸłüźÎüĚßüČÝüŚťü…™üi~üTgüEWüBTüM`üRfüL_üL_üSfüexüw‰ü…˜üĄüŽŁü‹Ąü‰ü•üv‹üiü^süWküObüEXü<Mü8Hü7Fü1>ű+8ű+6ń.4ÉYX ŞĄ“ÎĞÚŇ­ßÖ˛áŘłßÖąŐˤż´Ž˘˜u„z^d]FNI5@;,2.#65/rqpÔÔÔűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüěęĺŕÝŇÄŔ°äŢĆęăČéâĆěćĘîčĎěćËäÜťŕ׳ßŐąŘΨʿ˜ť°‰łŠ„śŤ†žłŒˇŹ‡ŽĽ­¤€ŤŁŤ˘~­Ł~Ť |ŞŸ{ąĽ€žłŒÉ˝–Ęż—Ęž–ĚŔ˜É˝•Ćş“Ćť“ĸŔ´ŒŔ´ŒŔ´Œž˛‹¸Ź…´¨śŞƒťŻ‡Ŕ´ŒŔ´°Ľ€œ‘n…e†|_}tWldLVO<@;,,($$#\[[żžžőőőýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţýýýüüűűúř÷őîěéęčâĺâÚŘÖË˝ş­Ť§™ĽĄ“ĂŔľóńíúúřţţü˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüçćäÄÁ´ĐʲŕŮźäÝžçŕĂĺŢŔÝÔąËŔšŞŸ{€vZYR>62&
+ /‰ äůů!úůů&ú"+ű&/ű)4ű-9ű3Aű>OüCUüBSüEWüDVü<Mü:Jü9Hü3Bü/<ű-9ű0>ü5Dü:KüFXüUiüdyüwŒü¤üŻÄüËßüßďüáîůÝëúŘęü×éüÎáüÄŮüĎâüäđúöůöűűőűűőűűőűűőűűőúűőđ÷řĺóűěöúÝčůťĎüśĚüĹ×űŢéůŢěúĘŢüĄˇü~“üf{ü]qü\püauüezüf{üeyül€üzüŒžü˜ŠüŻüš­ü”¨üŒ ü‚–üu‰üi~ü[oüPdüK_üDWü<Mü4Bű0>ű/=ű-9ű)4ű&/ö%,äNOž ™–ÍŢŕءß׳ŕ׳ßÖą×͌¸’¨œy…|_c[EOI6C>-73'970nmlĐĐĐúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ööőćäßçäŮČĹ´ăÝÄéâĹéâĹëäČîçÍďéĐěĺĘéâÄĺÜťŮĎŞĘż—żł‹ˇŹ…ľŞ„¸Ź†ł¨ƒ°ĽľŞ„ł¨ƒŽ¤­Ł~ŠŸ{Šz´ŠƒŔľĹş’Çť“Ęž–ĚÁ™Çť”Ŕ´Œ˝˛Šźą‰ź°‰ž˛‹Ŕ´Œżł‹š­†ľŠ‚ľŠ‚şŽ‡Ŕ´ŒŔ´ŻŁ~˜lŠ€a…|^„z\xoT`YCD@0.*%%$cccÄÄÄ÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţüüűř÷öóńîđîęäâŰ×ÔĘÉƸź¸§śŻŚ ‹œ•€’Œy¸ľŠ÷öóýüúţţý˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűáŕÜÄŔ˛ŃËąŕŮťĺŢŔčáĆçßÂŢŐ˛ÎÝŹĄ}|sWQJ8+(
+
+X!Ź )ë&ú&ú!*ű%ú ú ú#ú&ű (ű#,ű(3ű4Bű<Mü?PüFXüJ]üI\üH[üGZüBTü<Lü8Fű:Jü=NüASüL_üZoüi}üyü¤üŠŔüÉÜüäňűôů÷ôů÷î÷úí÷účôúáńúßîúćđůöůöűűőűűőűűőűűőűűőűűőöú÷đřůňůřăíůĘÜűŇäűäńůîöřáîúĹŮüłü‚˜üuŠüuŠü{‘ü‚˜ü„šü‡üĽüšŻü¤ˇüŞźüŞźü¤śü˜Ťü‹Ÿü”ür†ücxüXmüL_üBTü>Pü:Jü4Cü-:ű+7ű+7ű+7ű(3ű$.ű"*ůEHӐ‹’Çż äÝżăŰşá١ŕÖ˛×ͧƝ”Ž˘}‹‚ciaJVP;JC2;7)95/edbźťťřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ööőéčäęčßÉĹľăŢÄéăĆéăÄëĺĘíćËíćĘěćËçŕĂáءŘĎŞÎÜŹ’żłŒşŽ†´¨‚˛Ś€´¨‚š­†ˇŤ„ąŚ­ŁŤ˘~ŻŁşŻˆŔľžł‹Ä¸‘Ęž–Ęż—ᐺŽ‡ľŠƒśŞ„ťŻˆŔľÄ¸ĂˇŔľ˝ąŠź°‰ż´Ä¸‘ĸ‘´Š„Ÿ”r…fŠ€b‹bx[h`IJD31-"###___šššôôôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ööőňńďôóńńđěâß×Á˝ŻĂž­żšĽ´Ž˜¨˘ŒĽžˆ ™‚ŠŁŽŠ–ž˛ňďęüűřţýűţţý˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűŕßŰĆ´ÓÍłâŰžćŕÄęăÇçßÂŢչϪŻĽ€w[RL9*'
+ { )Ë'1ň'2ű(2ű(2ű$-ű (ú'ú$ú"ú'ű'ű%ú#,ű)4ű/;ű6Eü@QüK^üObüQdüUjüThüObüK]üM_üSfüVjü_tüo„ü€–ü’ŠüĽźüŔ×üÝďűóř÷ůűőřúöřúö÷úööůöôřööřöúűőűűőűűőűűőűűőűűőűűőúűő÷ú÷ňůůéőűĺńűíőřňřřëöú×éü˝Ôü ˇü—Žüšąüœ˛üœąüŸłüŤŔűťĐüĹŰüĹŮüžŃü°ĹüŁ¸ü—Şü‡œüxükü^rüReüI\ü@Rü8Hü1?ű.;ű-9ű,8ű+7ű+7ű+7ű*6ű)3ű%/ű=AĎzu„šą—ĺŢÁëĺÉčŕÂáŘľÖĚŚÇź•ľŠƒ›n|tWc\EQK8?:,42*RROŹŹŹőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůřřěëččćŢÇĂ´äßÇéăĆčŕĂěĺËęăĆćŢ˝äÜşŰŇŽÓÉŁŘΨÖĚŚÍšȼ”ÂśŽşŻ‡¸Ź„ˇŤ„ł§ľŠ‚ľŠƒ˛§ł¨‚ˇŹ…şŽ‡š­†ˇŹ…ÁśÉ˝–øŔľŽžł‹şŽ‡ťŻ‡Ŕ´ŒČź•ĚÁ™ĚÁ™ËŔ˜ĚÁšĎĝĎĝĎĝĐŞø’˛ŚŁ˜u—lŽ„d‚x\iaIKE42."!! VVVŽŽŽëëëţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řřřőőóňńďěęĺáŕŘÔŃČŃÎÂÔĐÁÉò¸˛žˇąšłŹ•¨ĄŠ˘›ƒ›”}œ–‚ąŹÖÓČ÷őîúůőüűůýýűţţý˙ţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůřřŢÝŘĆ²×СăÝÁçáĆęäÉĺŢÁŮĐŹĆ˝—Śœz{rXOI7'$
+ 'š'ĺ$-÷%/ű'2ű)5ű(3ű&0ű%/ű$-ű#+ű%.ű$-ű"*ű!)ű"+ű%/ű)4ű1>ű<KűCSüJ]üZoübwüf{üi|ümüo‚üm‚üo…üyŽü‡ü—ŽüŠżüÁ×üÚíüě÷ůöú÷úűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőúűőöú÷ňůřóůř÷úööú÷ęöű×čüÄŮüšĎüšĐü˝ÔüžŐüĂŐűË×ůÖářŢěúŢďüŃăü˝ĐüŁˇü‘Śü•üp…übvüVjüL^üCUü?Pü;Kü5Dü-:ű+7ű+7ű+7ű+7ű+7ű+7ű+7ű+7ű,8ű<CÔdc¨˘›ŕŘťéáĂéâĹçßŔÝÔ°Íœť°Š¨žzˆ€bjbKVO<C>/63*ONK¤¤Łóóóţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţööőčçăçĺÝĹ²äŢĆéâÄçßŔëäÇęăĹćŢ˝ăÚśÚĐŞŇÇ ÓČĄĎĞɾ–Ęž–Č˝•ÂśŽž˛‹şŽ‡ł§€´¨ˇŤ„¸Ź…ł§ŻŁ~śŞƒťŻ‡şŽ‡žł‹ÁľŽž˛‹ÂśĹş’ÂśŔ´ŒÂśŽĘż—ΚĚŔ˜ËŔ˜ÎÜŐĘŁ×ΧŮĎŠÖͧɞ˜ˇŹ…Šžz›‘o„dx\kdLPJ862&  TTTŹŹŹęęęţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüü÷÷÷đďíŮ×ŃŇĐÉÉǟ¿ąËÇľÖĐżÍÇ´ÁťŚÄźŚźľŸŻŠ‘Ś ‰ ™‚›”–ƒŁŸ°ŹžÔŃÇöôîúůôűú÷üűůýýüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őôôÔŇËĹŔ­ŮÓ¸ĺŢÂčâÇęäČăÜ˝ÔËŚ˝ł›’qrjQHB2# 
+ 7´"÷ 'ú!)ű#-ű'2ű(3ű)4ű*5ű*6ű*6ű*6ű+7ű+6ű'2ű%.ű%/ű$.ű'1ű-9ű3Aü<LüNaü]qülüzü†˜ü‹žüŠ üŠĄüŁü–ŹüŁšü´ĘüÉŢüÜďüęöűôůřúűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőúűőúűőúűőűűőöú÷ëöűŢěüÖćűŮęúÜíúÜîúÜîúĺńůňőöô÷öîőřßíűČŮü­żüĄü{Žükü[oüNaüEWü>Oü9Jü9Iü8Hü6Fü1?ű/<ű.;ű0<ű0=ű0=ű0=ű0=ű1>ű4Bü;GÝSWĽš—¤ŰÓľĺÜťęâĹěćËćßż×ÎŞĆť•ľŤ†“ŠkogNZS>HB296,JIE‘ďďďýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüňňńéčăęéâČĹľäŢÄéâÄçŕÁëäÇëĺČéáÂáŘľÚŃŤÔĘŁÍÁšĹš‘øČ˝•Ęż—Ĺš’ÂśŽž˛ŠˇŤ„ˇŤ„şŽ‡ź°‰ł§¨ył¨˝ąŠť°‰ťŻˆťŻˆž˛‹Ćş“ËŔ˜É˝•Ĺš‘ĸÉ˝•Ëż—É˝•Éž–ÍšÔɢŮĎŠÜŇ­×Ψɿ˜ˇŹ†ŞŸ{“q’ˆg„z^pgNVP<<7)#  RRRŚŚŚâââýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýüúúůőőôëęčŢÜÖŐÓĚËÉ˝´ŽšÁş¤ËÄŽÇżŚ˝ś›ĂťĄČÁ¨Ĺż¨żš¤śŻšŞ˘œ•€–z‡r‘Œz˛ŽŁáŕŘôóîř÷ňůřôúřöűúřüüúýýüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ňńđÍĘÂČĂŽÝםćŕÄéăÇçßÂßÖłŇȢ¸Ž‰’ˆig_H?:+  !
+ [Ĺ!ú'ű (ű!)ű"+ű#+ű$.ű)4ű*6ű*6ű+7ű/<ű3Bü3Aü2@ü1?ü-9ű*6ű,8ű.;ű0<ű1=ű;IűK\üdwü€•ü˜­ü§žüŻÇüąÉüľĚü˝ÓüĘßüŮëüçőűóůřůúöűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűő÷ú÷îřúíöůńő÷óř÷óř÷óř÷óř÷öůöřúöńřřŕěűĹÖüŤźü˘üv‰üeyüYmüMaüDVü=Nü;Kü:Jü:Jü:Jü<Lü>Pü;Lü9Iü>Oü?Qü?Qü?Qü?Qü>Pü<Lü;IäLTš•”ŻÚŇśčŕŔëäĆíćĘíçĚćßŔŮĐŹĆź–Ł˜vvYf_GQK8<8,A?:}||ŇŇŇűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüôôóęęćÔÓČŇĎźčăËíçÍíčÎîčĎíćËćßŔŮĎŞÔĘŁŇČĄÉž–ÂśŽÂśŽĹş’Ĺš‘˝˛‹˝˛ŠŔ´ŒÂśŽŔ´Œżł‹ż´Œź°‰¸Ź…¸Ź…śŤ…łŠ„¸­‡ÁľČ˝•ĚÁ™Íšʾ–Čź”Ćş“Äš‘Ĺš‘Čź”Ëż—ÎÛĐŝŇǟŇČĄĐƞŻ“¸­†­ŁĽ›x›‘o‰aqiOWQ=<7)# JJJ“““ĚĚĚňňň˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüööőíěęâáŰŢÜŐĐÍÂťˇŚľŻšž¸˘Áş Ŕˇ˜ĹźœÇžžÄťšĂťœÄźĄĂźŁ˝ś ŹŚŸ™„’Œw‘Šw‘Œ{Ś˘–źšąâŕÜöőńúřöůřőůřöúů÷űűúýüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîíěËČžÍČłáŰÂéăÉęäÉćßŔŰŇŽËÁ›ŽŁƒz]WP<3/# ) hĘ$ű'ű (ű (ű (ű (ű"*ű%/ű&0ű&0ű&1ű+7ű1?ü2@ü2@ü2@ü1?ű3Aű6Eű:Jű<Kű9Gű;JüBSüRdüj~üƒ™ü›˛ü˛ÉüÁ×üĚŕüÖçüâîůëôůňůřůúöűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőůúöôůřöú÷úűőűűőűűőűűőűűőřúöđ÷řáíűČŮüŤżü”¨ü’üi}ü\qüThüNbüI\üFXüHZüI\üI\üI\üJ]üK^üH[üFYüJ]üI\üFYüEXüEXüDWüASü>MçJTžŽŽŹŇÉ­çßÁěćĘîčÎđęŇíćËăŰşĐĆĄąŚ‚†gtkQYS>@;.<:3jihĂĂĂůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýőőôáŕŰÎËžÚŐÁěčÓńíŮńíŮîéĐéâĹŕ١ÔʤĐƞĐƞËŔ˜Çť“Ćť“Ĺş’ż´ŒśŤ…¸Ź†˝ąŠĂˇÂśŽŔ´ŒŔ´Œ˝ą‰š­†śŞƒ´ŠƒľŤ…˝ą‹Ä¸Čź”Ęż—ĚÁ™Î›Íšʿ—Ćş’Ĺš‘Čź”Ęż—ĚŔ˜ĚŔ˜ĚŔ˜ĚŔ˜Ëż—Äš‘şŻˆŻŚĽœy›‘o‰aqhOYR>>9*%"AA@†††ÁÁÂîîď˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţřř÷ëëčŘ×ŃżźŻź¸§Â˝ŤŔ¸žÇž ĚÄĽÍŤĘÁžÇžšÄş˜żľ”ş°ľŹ˛Ť­ŚŽŁœˆ’‹vˆl{iŠ†x°ŽŚÝŰ×óňďúú÷űú÷úú÷úúřűúůüűúýüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýĺäáÇáŃËśäßĆęĺĚëĺĘćŢŔŘΊĚ“Ą—utlRHC1*' ) iË&ű (ű (ű (ű (ű (ű!)ű"+ű"+ű"*ű#,ű&0ű*5ű+8ű,8ű-:ű1?ü7Gü>OüDVüJ\üL_üJ]üJ]üPcü]qüo…ü‡žüĽťüżÓüŇăüâďűń÷ř÷úöůűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőúűőúűőűűőűűőűűőűűőűűőôů÷ĺńűÎßü´Çüœąü‹ ü|ükübwü]qüZnüYmüYmü\qü^sü]sü\rüZoüUjüShüSgüRfüNaüH[üFYüEXüEXüCVü@PęHQŅ„¨ÇžĄĺÝżîčÍđęŃńěÓďéĎčáĂŘĎŹ˝˛ •svZ`YCD?1<:3`_]śśśöööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýüüňňđŢÝ×ĚĘźŢŮĂîęÖňďŢóďÝîčÎćŢżÝŐ˛Ö̧ŇČĄĐƞÎĜÍšʿ—ᏸ­†ŻĽ˛¨‚şŽ‡ÁľÂśŽŔ´Œ˝˛Š¸­†´¨ł§ˇŤ…ž˛‹ĂˇĹš‘ĸĆş’Ęž–ĐŞŃǟĎĜʾ—Čź”É˝•Čź”Çť“Ćş“Čź”É˝•Čź”ĸź°‰°Ś‚Łšw—Œk‡}_qiO[U@B=-)%;;;€€žžžííí˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüűŕßÜĐĎÉżź°Âź¨ĚĹŹĎČŽŃÉŹŇÉŠÔ˨ÓĘŠÎŤƟ™ž´śŤŠŹ˘€ –w—Žr’‹q’Šs‰‚l†€l€{iŠ†zÇĹžîíë÷÷őüűůüüúüűűüüúüüűýüüţţýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýŢÝŘĹŔąÓÍľäßĹęäËęĺĘĺŢžÖĚŚžł›onfME?.(% * iĘ#ú'ű (ű (ű (ű (ű"+ű%/ű$-ű"+ű%/ű&0ű%/ű(3ű+7ű,8ű-:ű0>ű3Aű5Dű;JűGYüOdüYnüg}üwŒü…›ü“Şü˘šüŻĹüžŃüŇáüéóúőú÷úűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőďőřÚęűĂ×üąĹüŚšüš­üŽ˘üƒ™ü~’üzüuŠürˆürˆüp†ünƒüiüg|übwü\qü[püYnüUiüQeüMaüH[üEWüDVü@Qü8Hő>Há{z´żľĺŢÂîčÎîčÍđęŇđëÓíćĚáظȞ™Šž{‡}_g_HLG5>:1TTPŁ˘˘ňňńýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűúńńďâáÜÍĚÁâßËîęÓđëÖńě×ďéĐęäČćßżăÚşÜÓŻÔĘŁĐƞËŔ˜Ä¸ˇŤ…ŹĄ}Šž{Ż¤şŻˆĹş’Ĺš‘žł‹śŤ†ł¨ƒśŞ„š­†ž˛‹Ä¸Ä¸ĂˇĹš‘Çť“É˝•ĚŔ˜ĐŝŃǟĚÁ™Éž–Ëż—Çť“ÁľŽżłŒĂˇČź”Çť”ÂśŽşŽ‡ąŚ€Ľšv–Œk‡}_rjP\V@C=.*&332rrr°°°čččţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýůůřńđďŘ×Óżť­ĂžŞĚĆŻÖŃśŕŮ˝ŕŘşÜŐľŘĐ°ÓËŞÍÄŁÄť™ˇŹŠŠŸ~“tŽ†hw^xpYvoYxq]~xf„rƒÄĂżńńđüüűýýüţţýţţţţţţ˙ţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüÜÚŐĹÂłÖŃşĺŕĆęäĘęăČáٸĎĞˇŤ†“‰ig_H@;,&# 6}Ńů#ú&ű&ű%ű&ű!*ű%/ű#-ű"*ű%.ű$-ű"+ű'2ű+7ű+7ű+7ű,9ű/=ű0>ű4CűBTüOcü]rüo„ü€–üŽ¤ü›ąü¨żü´ÉüżÔüÎáüäňűňůřúűöűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőńööâíůŇâűÇŘüĂÓü¸ÉüŞ˝üž˛ü–Şü˘ü…›ü•ü|’üv‹üm‚üf{übvü]qüVküRfüMaüFXüDUüCTü>Nü9Iü6Eü2?ü-9ü4=ńqpťˇŻ™ĺŢÄîčÎěćĘđęŃđëÓíćĚâŰşÍÝ°ĽŽ„eofMTN;>:/HGB––”ęęęűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüôôňŰŮÔËÉžčäŇđěŘđěŐđëÔđëÔďęĐíćËčŕÁÝÔąŇÇĄÎÛƻ“˝ąŠľŠƒŽŁ~­˘}ąĽˇŤ…ż´˝ąŠśŤ„´Š„¸­‡ź°‰š­†ź°ŠÇť“Äš‘áÉ˝•Ëż—Ëż—ËŔ˜ĐŝŇČ Ëż˜Čź”Ęž–Ĺš‘żł‹ž˛ŠĹš’ĚÁ™Ęż—ÂśˇŤ…ŻŁ}Ľšvšm‰`sjP\UAA<.(%((']]]šš›ŢŢŢýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýççĺĐÎÉÄÂźżź°ŐĐşâŰÁäŢÂâÝÁáŰžßŘšÚÓ´ŐÍ­ËĂŁŔˇ–łŠ‡˘—w†j~v\ngPb\H\VD\VFd_P‚~tś´ŽÓŇĎňňđýýűýýü˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüŮŘÓĹÂłŮÔżçâĘęäËéâĆÜӹƝ”ŽŁ~ŒcbZD;6)$!
+ F–Űůů#ú$úů#ú'ú (ú 'ú'ű!)ű!)ű"*ű%0ű)4ű)5ű)5ű,9ű2@ü4Cü7Gü@RüI\üThücwüsˆüƒ™ü”Ťü­ÄüÄÚüĐćüÚíüčöűóůřúűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőřúőň÷÷çóúŢíüŘçüĘŰüšËüĽˇü˜ŤüŒ ü”üu‹üp…üi}ü_rüViüRfüObüFYü@Qü:Jü2@ű0=ű0=ű/<ű+7ű'1ű%/ű$-ű/6đlkš˛Ş—ăÝÄďéĎíçĚđęŃďčĎéâÄŢŐ˛ËŔšł§ƒ•ŠjvmS[U@B>2CA<Ž‹áááúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýüüóóńÖÔÎËȸéĺŃňďŢńîÚńëŐńëÔđęŃěćËäÜźŮĎŞĎÜʾ—ᐟ°‰şŽ‡şŽ‡ˇŹ…ľŠ‚ł§€ł§ŻŁ~­˘}ˇŤ…Ŕ´ÁľľŞ…ˇŤ†Ćş“Ĺš’øËż—ÎÜĎŝĐŝŇÇ ŇÇ Č˝•Ä¸Çť“ĸÁľÂˇËŔ˜ŃƟÎÛĸ‘ˇŤ…ŤŸ{Ł˜uœ‘oŠ€brjP[T@B=.*' PPP’’’ŰŰŰýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüěëéÔÓĚžťŻĂž­ĚɸŰŘĹăŢĆçŕÄćŢŔăÜ˝áÚźŢךŮѲÍĹĽźł’Š €™q…|`rkS^XEOI9GB4D?4MIA|ytÄĂżóňđýýüţţýţţţ˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űúúĐÎĆÁ˝­ŰÖŔčăËęăÉĺŢŔŘĎŤÂś‘¨y‡~`bZD?9+&#
+ JÝůůůůůů ú!ú!ú"ú&ű (ű (ű'ú!)ú$-ű$.ű&0ű)4ű-9ű1>ű5Cű<LüFXüUiüh}ü{‘üŒŁüŚ˝üŔŘüŃçüßńűđřřřúöűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűő÷úöďřůăňűŐćüĆÖü´Äü ąü‰›üyümüauüXküQdüM_üHZüCUü?Oü:Iű6Dű3Aű/=ű,9ű+7ű+7ű+7ű)5ű'2ű'1ű'1ű2;đmmšąŞ–ăŢÄđëŇďéŃđëÓěćËĺÝźÜŇ­Éž—°Ś—l|sW\VBC>3DB=ƒ‚€×××÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűúëęćÍĘżŃÎźéĺŃđëŐđëŐđëÔđëÓěćËćßŔß×´ŰŃŹÖËŚÍ›ĸž˛Šš­†şŽ‡żłŒťŻˆľŠ‚ąĽ~Ž˘}Ž˘}ˇŤ„ž˛‹Áľ˝˛‹˝ąŠŔ´ŔľÂˇÉž–ĐƟŐËĽŐĚŚÔĘŁĐŝƺ“áÇť“Ćş’Ćş’Éž–ÎÛŃƟÎÜőˇŤ„ŠžzŸ”r•Šj‡}_ogNWP<B=--)HHH‹‹‹ŘŘŘüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýőőôÜŰ×Ŕ˝ľśłŚşˇĽĐĚśŕÚŔćáČçäËçáĹĺÝżáٸŢÖ´ÚŃ°ÓĘŞÇżŸ´ŞŠ›“t‡ctlTaZFQL<C>184*85.HF?kjf´´łőőôýýüţţýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúůřÉĹźŔť¨ŰŐťćŕĂçŕÂâÚşÖͨ˝łĄ–tw[^VB>9*&#
+ JÝůůůůů úůůů ú$ú&ű&ű#ú#ú'ű (ű (ű!)ű$.ű(3ű+7ű2?ű;LüJ\ü]qüp…ü—ü˜ŻüŻÇüÄÚüŘëűď÷řřúöűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűő÷ú÷î÷ůßďűÎáüźÎü­žüœŽüˆ›ü{Žüqƒüi{übtü[müXjüWhüUfüP`űKZűIXűHVűFUűEUűESűCRűBPű@Nű>Mű>Lű=LűERđvyšąŹ™áŕÍďíŮďęŇđëÓëäČâŮśŘΨ̓ŤĄ}“ŠjwoTXP>>:.@=8yyxĚĚĚóóóţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůů×ÖĐÎĘťŮŐÂěçŇíçĚěćËíçĚíçÍçßŔßÖ˛ÚŇŹÜÓŽŰŇ­ÎÜ÷Ŕ´ŒşŽ†şŽ‡ÂśŽżłŒşŽ‡śŞƒľŠƒľŠ‚śŞƒš­†˝ąŠŔ´Ŕ´Œź°‰ž˛ŠŔ´Ä¸ËŔ™ŃȢÓʤŇČĄÎÛǻ“Ĺš‘É˝•Č˝•É˝•Ęż—ÍšĎĜÍšÁśąŚ¤™v™ŽmŽ„d…|^phNWP<B=.+( DCD„„…ÔÔÔűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůéčçŕŕÝÍĘŔ½ŤĹŔŞŃËłŰÖ˝âŢĂäŢÂäŢŔäŢŔĺÝžâÚšÜÔ˛Ô˧Ɵ™šŻŒ¨ž}†ixpWf_JTN<D?1<7,63+74/GEAonkšš¸ţţý˙ţţ˙ţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýůůřÎĚĂĂ˝ŞŮŇľáŰťäÜ˝ăÚşŐËŚşŽˆšnypUVP=84'#  
+ JŢ!ú$ú ú ú%ú&ú$ú ů#ú&ú"ú$ú (ű (ű )ű"*ű"+ű#+ű#-ű%/ű(3ű/<ű7Fű@QüK^üZoük€ü}“ü’¨ü¤şü¸ÎüĎăüçôúôú÷úűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőůúő÷ůöńö÷âđúŇçüĘÝüÂÔüšËü­żüŁľüœ­ü™Şü“Śü˘üˆœü…˜ü„—ü”ü{üx‹üt‡üp…üo„ülüh|üdwü`sü]pü]oüZmü]nń‚‡ş˛ŻœŢăŘëíßíčĎîčĎęäÇáŮśÓɢžłŚy‹cmeLNI795+@>:uuuĚĚĚőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţńńđĂŔˇŘŐĂăŢĘîéÓíçÎéâĹçŕŔéáĂâ١ŮĎŠŘΧŘĎŠÖ̧Ƚ—Ŕ´ŒŔ´Œżł‹Ŕ´ŒÁśŽÁľżł‹ź°‰ź°ˆşŽ‡´¨‚ľŠ‚š­†ťŻˆ˝ąŠŔ´ŒŔ´Œżł‹ź°‰ż´ŒĹš’Éž—ĚÁšÍšʾ–Ęž–ĚÁ™Ęż—Çť“Ćş’Éž–Íš˿˜ťŻŠ¨zž“q–‹j…d‡~_umR\U@D>/+' BABƒƒ„ÔÔÔűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůřŢÝ×ĹÂśžşŹĂžŤĎĘąÜÖšŕÚźâÝžäŢŔĺŢżăÜťĺŢ˝ĺÝ˝ŢŐłŇÉĽÁ¸”ŽŁ€šp…|`meNYS@JE6=:,30&30)@>8\[Wutr˛˛ąóóóţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůů÷Ů×ν¨ŐÍ°ŢÖˇŕءŢŐłÔÉŁşŽ‰™n{rW[T@<7)#  
+ J Ţ%ű'ű%ű$ű'ű (ű!)ű"+ű$-ű%/ű#,ű$-ű&0ű&0ű)4ű,8ü-9ü/<ü4Bü9Gü?NüJZüUgüatümü|‘ü‹Ąü™ąü­ĂüÁÓüÎŕüÜěűîöů÷úöúűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőřúőď÷÷ćńůßęůÓâűĆŮüžŃü´ÇüŠžü˘ľü™Źü‘¤ü ü‰žü†›ü–ü~’ü}’ü{üxütˆüp…ün„üm„üiüdyüavü_sü]rü]qüZnü[lń‚†ş´Ž˜ßŢĚěëŘíčÎęäĆčáÁăŰşÓɤş°‰˘˜v…|_f^HE@253+DB@}}|ËËĚőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţŢŢÜÄÂśŕÜÉëćŇďęÓíçÎéăĆçŕŔĺÝźŢŐąŘΧ×ΨŐËĽÍÜż´Žź°‰ĂˇÄ¸Ĺş’Çť“ĸżł‹š­†ˇŤ„śŞ„˛Ś€ł§¸Ź…˝ąŠĂˇĆť“ĸž˛ŠşŽ‡ź°ˆÁľĆş’Éž–Ëż—ĚŔ˜ÍšÎÛ˿—Čź”Č˝•Ęž–Č˝•ż´˛§‚Ś›x¤™u’p“ˆg‡}_tlR\U@B<-($ ???†††×××üüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůůęęčËĘĂÄŔ°ÍČŻŘŇšßŮżăÝÂâÜ˝ŕŮšŢŘśá١ăŰšâÚ¸âŰşŢŐľŃČĽż´‘¨{…gxoVb[FNH7>:-41&/,#/-&=;6feaźźšŢŢÝňňňýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőóŇÎĂż¸˘ŇÉŠŰŃ°ÜÓŻŮĐŤŃÇ şŽ‰›o‚x[d\EB<-$!  MĄ&ŕ"+ű#,ű$-ű$-ű#,ű$-ű&1ű*5ű,8ű-9ű-:ű.;ű0<ű.;ű1>ű6Eü7Fü9Jü@QüFXüNaüXkücwüoƒü|‘üŒĄüšąüŠŔüžÔüÔćüŢďüčőúöú÷űűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőöůöäňůŇĺüÇŘüšËüŤ˝üŻüŽ˘ü–üzŒür„üj}üexücvübtü^oü\mü\oü[müXküTfüReüReüQeüOaüK]üJ\üJ[üJ[üJ[üFXüJXń{}şˇŽ•áÚžîčĎíçĚćßžĺÝťäŰťÓɤš­‡ž’q~uZ]UA<7,31,LKJ‡‡‡ËËËôôôţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řř÷×ŐĐĚĘ˝čäÔďěŮďęŇîčÍěĺĘéáĂă۸ÝÓŽŘΨ×ĎŠŃÇĄĆť“ź°‰ťŻˆÂśŽÇť“Ëż—Λɾ–ÁľľŠƒ°¤ŻŁ}°¤~ł§š­†Ŕ´Çť“Çź”ᏽąŠşŽ†ťŻˆżł‹Ä¸Ćş’Ćş“Ęż—ÍšĚŔ˜ËŔ˜ĚŔ˜ĚÁ™Ęż—Ĺš‘¸Ź†ŻŁŤŸ{Ž˘|Ś›w—‹k‡~`rjQZT??:+%# ==>†††ŘŘŘüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýý÷÷÷ççäŔ˝Żşľ˘ÄžŠŃĚ´ŕÚÁćŕĹćŕĂĺßŔăŰťŢŐ˛ŮĐŹŰŇŽŢÖ˛ÝÔ°ŐËŚĹť—´Š†œ’r‚y^jbKTN<B=/30%)'&$+)#A@;pnlž˝źííěűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷öĎ˿ߤĎĆŁ×ΊŘĎŞŐ̧ËÁ›śŞ…œ‘o‡}_jbJC>.'$ P!Ś$.ă(3ű*5ű/;ü/<ü+6ű.:ü0=ü,8ű/<ű3Bü4Cü8Hü;Kü7Gü5Dü6Fü7Fü8Gü9Jü;Lü>OüCTüGYüN_üYküg{üyŽüĽüŠžü˝ŇüŃäüäóúöůöűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőőřöâďůĘÝüˇČü ´ü‡œüpƒüatüTgüETű?Mű<Iű:Gű8Fű7Dű1=ű0<ű4@ű1=ű-8ű,7ű,6ű,6ű,6ű+5ű*4ű*4ű*4ű*4ű*4ű)3ű3<ńsqťş°šĺŢĂîčĎëäÇĺÝťăÚˇŕ×´ŃĆ ľŞ„“ˆisjPQJ840'42/XWV•••ŇŇÓöööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřßŢŘČĹśÝÜĐëíáđîÜđëÔďéŃíçÍéâÄă۸ÝŐ°ŘĐŞÖÍŚÎĜź’ĸżłŒťŻˆĂ¸ÎÛŃÇ Ďĝȼ•şŻ‡°¤ŤŸ{Ž˘|ł§¸Ź…ž˛ŠŔ´Œ˝ąŠťŻˆşŽ†¸Ź…š­†ź°ˆŔ´Œżł‹˝˛ŠĂˇĆş’Ćť“ÍšĐŝ˿˜Č˝•Ćş’żł‹š­†ľŠƒľŠƒŞžz˜l‹€bumRZS?>9+$!
+?>?„„…××Řűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúĺĺáĘČĂ˝ťŻČĂ­ÔÎłŢŘ˝äßÄçâĆçáĹçŕĂćßŔĺŢ˝ß×´ŘΊÔĘĽÓČŁĎğ·’­˘•‹k|sXb[EMG6;6*-) #  &% :84ljhśľ´ääăöööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűúÖÔËÂźĽĚ Ǫ̋Ő˧ĎĆ Ćź•śŤ…Ł˜uƒdkcKE?/+' @Œ!)Ů&0ű'1ű*5ű*6ű(2ű*5ű*5ű$-ű'1ű+6ű)4ű+6ű.:ű-9ű,9ü,9ü,9ü.;ü1?ü5Dü;LüH[üWjüi{ü}ü‘ŁüŁ´üˇĹúÉŐůÔŕůŕěůíőřřúőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőřůőíô÷ŰčúĘÚü¸ËüŸśü†›üv‹ühzüQbűBRű8Hű3Aű.<ű*6ű$.ű"+ű$.ű#+ű (ű (ű (ű (ű (ű (ű (ű (ű (ű (ű (ű&ű*/đnkźşą›ćßĹđęŃěćĘćÝźä۸â١ŃǢ°ĽŒ‚cjbJHC30-&874bba  ĄŰŰŰúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ńńđÇĹžÔĐŔčć×ďďăňńâóďÜńěŐíčÍęăĆćŢ˝ÜÓŻÓÉŁŇČĄŃǠк͚ǻ”ÂśÄš‘É˝–Ęż˜Éž—Ćť“Áľš­‡˛§ąĽł§¸Ź…˝ą‰˝ą‰š­†¸Ź…¸Ź…š­†ź°‰Ŕ´ŒÂśżł‹šŽ‡šŽˆż´Çť”ÎÜĎĝʾ–Čź”Çť“ĸź°‰ˇŤ…ťŻˆ­˘}–‹jˆ~`tkQZS?>9+$!
+
+ =<=ƒƒ„ŘŘŘüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüććĺÇÇŔźšŤŔ˝ŹŐŇŔáÜĹçáÇéăÉéăÇčâĹçáĂćßÁĺŢżäÜźß׾ŘÎŞÎÝŹ’ťŻŠŤ }‡hvmT]VAHB252&(%"!752]\Y˛˛ąěěěůůůýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýĺăŢž¸¤Ç˝œŇȤŇɤËÁœÂ¸’ˇŤ†Şžz’‡gnfLGA1/+ 
+ -nÍ 'ú 'ú (ú (ú (ú (ú'ú"ú'ú"+ű&ú&ú!*ú(1ű,7ű.9ű0;ű5Aű=KűETüPbüg{ü•üœ°üˇĘüÎßüÝëűéńůđô÷ňö÷ôř÷öú÷řúöúűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőúűőőřöńőöîóöíó÷çđůŰęűŃäüŔŐüŠżü™Žü‰üp„ü\oüK^üCTü;Kü4Aű-9ű(3ű'1ű%/ű$-ű#+ű"+ű"*ű!)ű (ű (ű'ű&ú&ű'ű%ú'+đnkżźłŸĺŢĂďęŃîčÎćŢžăŰšáءĎÄ ŤŸ{‡}^c[DB<.-+%>=;mmm§§¨áááüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýëëéĆÄźŰŘÇďěÚóđáőóäöňăňîÚîéĎęäÇçßŔŮĎŤĚŔ™ÍšŐʤÚĐŞÓČĄĚÁ™ËŔ˜Çź”Ĺš‘áÁľŽÁľÂśŽŔ´˝ą‰ˇŤ…ˇŤ„şŽ‡˝ąŠťŻˆśŞ„ľŠ‚ľŠ‚śŞƒ˝ąŠĹš‘Çť“ÁľˇŤ…ŻĽś­ˆĆť”͚Κʿ—Č˝•Čź”Ĺš‘ž˛Š¸Ź†ž˛ŠŽŁ~”Ši…{]phOXQ==8*#
+ ;;<………ŮŮÚýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţööőŇŃĚż˝łÉĹłŐĐşßÜČććÓęçĐëćĚëćĚëĺĘëäÉčâÄĺÝ˝áŘľŮĎŞÖ̧ÓÉŁĘż™š­ˆŁ™vŠ‚dogOVP=B=/1."# 876ffd°°Żďďďţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţëéćŔşŠÁš˜ŃÇŁŇČŁĘŔœżś‘˛¨„Ś›x“ˆhskQPJ762&"
+
+, hĘ ú ú ú ú ú!ú"ú'ú$.ű)3ű)3ű,7ű4Aű@OüM^üUfü\nühyüw‰ü€“üŠžü°ü­ŔüžĐüÍáüŰîüĺóüéőűëöúëöúěöúěöúîřúôů÷úűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőőřöäďůÓâúČŮúĘŰúÇÚűžŇüšĚü°Âü ´ü•¨üŠüxül€üdxü`tüYmüPcüJ[üBSü<Lü6Eü0>ü+6ű)4ű'2ű#,ű!)ű (ű#ú ú!ú%ű$ů',ńrqËŔşŽŕŘşëäÉíçÍćŢžŢÔ°Ôʤĸ’˘—t|rWYR>:6*-,'GFE|||ŽŽŻĺĺĺýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őőôÚ×ĐÇòâŢËńíŘńě×ňîÚôđßőňăđěÖęăĆäŰşÔÉĽÇť”Éž–ŃƟŐˤĎĜʾ–Ęż—͛͛ǻ“żłŒşŽ‡¸Ź…ťŻˆżł‹ÁľÂśÂśŽž˛ŠľŠƒ­Ą}ŞŸ{ŞŸ{ŹĄ|śŞ„ÂśŽÉ˝•ÁśŽ´¨‚Ť |­˘~š­‡Ĺş’ÍšĚÁ™Ęž—Çť“ĸÂśŽżłŒš­†Šy•Šj†|^meLRK873& 
+
+<<=†††ŮŮŮüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýńńđÍËÄş¸ŞÓĐžäáËęćÎëçŃéčÔëçĐíçÎíčÎěçÎëĺĘäÝžŕ׾ÚĐŤĎĝǼ–Áś‘¸­ˆŁ˜wˆ~anfNUN;@<./,!!;;:qqqşššéčč˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţńđîĘƸŔˇšĐĆĄÓÉĽÎĹ Äş•ľŤ†§z’ˆhtlRSM:;7)($ . iĘ!ú"ú%ú!*ú$.ú%/ú)3ú4@ű;JűAQűFVűM^üTfü^qüi~ür‡ü{ü…™ü¤ü–Şü›°üŚşüŻÂüˇĘüżÔüÄŘüĆŘüÄÖüĂŐüÄÖüČŮüĐáüŢíűíőřůúöűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőůűőöú÷÷úöőů÷âďúËßüˇÎü¨żü™ąüŚüĄü‰œü‚–ü~’üyül€ücxü_tüavü]rüUjüThüOcüGYüASü<Mü7Fű6Eű4Bű-9ű*5ű)3ű#,ú'ú'ú (ű&ň*/ÜwvŔĆż°âŰ˝éâĹęăĹćßżŢÔąÎĝˇŹ†“‰ipgNNH730&1/,TSSŒŒźź˝ńńńţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüćĺâČÄśŐĐźčćÔďě×ďęŇďęŇňíŮôńŕđëŐęăĆĺÝźŘĎŤÎĝÎĝĎĝĚšɾ–Čź”Éž–ĎÜĐŝȽ•ž˛ŠľŠƒ´¨‚śŞƒşŽ‡żł‹ĂˇĂˇ˝ą‰śŞ„ł§‚Ż¤Ž˘}°¤ľŠƒťŻˆÂśżłŒˇŤ…˛§ąĽ€´Šƒź°‰ĂˇĹş’Çť”Çť“ĸÁľź°‰ł§Ł˜t‘‡gƒz]kcKNI662%
+
+ @@Aˆˆ‰ÚÚÚüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüëëéÉČÂÂż˛ŢÜĘęçŐěéŐěčŃěçÍęĺËíçÎîéĐďéĐîčĎéăĆß׾ŮĐŞŇČĄĆş“ľŞ…Ś›y›p†|`ldMVO<A<.0.##!#"!???~~~ĹĹĹíííýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ööőŇĎĹžś›ĚÓɤŇÉŁÉż˜ź˛Œ­Ł€–ŒmvmSVO<?:+,(*b"Č#,ű%/ű+6ű2?ű7Fü9Iü?OüK^üTgüZoücxüj~ünƒüq†üv‹üzü€”ü†™üˆ›üˆ›ü‰œü‹ĄüĽü•Šü™Žü™Žü–Şü“¨ü•Şüœąü§˝üťĎüŐćűëóřůúőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőřúöńůůńřřńö÷ćóűÖčüŔÔűŸ´ü€–üo…üg|übvü_süatü`süUhüN`üK^üOcüNaüI\üL`üL_üEXüCUüBTüASü@Rü>Pü8Hü5Dü4Bü.;ű*6ű*5ű&0ű#,č17Â~|­ÍÄŹçŕĂéâÄćßžčŕÁáءÎĞŽ¤€‡}_f^FGA2.+$653aaašššÍÍÎ÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüŰÚ×ĂżąäßËîëŘńíÚňíŘńěŐńěŐńěÖďéĎëĺČčáÂá١ÚŃŹ×ΊÎĞŹ’Ćť“Č˝•É˝•ÍšÎÛǻ”˝ąŠľŠ‚ľŠƒ´¨‚ł§ˇŤ„ź°ˆž˛Šź°ˆ˝ąŠŔ´ź°‰š­†ťŻˆˇŤ…´¨‚¸­…ź°‰˝ąŠź°ˆşŽ‡¸Ź…ˇŹ…¸Ź…ź°‰ÁśŽĆş’ĸ‘˝ąŠľŠƒąĽĄ•r‚c€x[kcKOI673&
+  >>?ŠŠ‹ÜÜÜüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţđđďÂŔ¸ÄÁłŮŮËéëÝîîŢďíÚíčĎëĺĘëĺÉîčÍďęŇďéŃíçÍčáĂß×´ÖËĽÉ˝—ľŠ„Ÿ•sŒ‚d|sXg_HQK:A<//,## $##EEE€€×××ôôôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűŮ×Đź´›Éż›ŃÇĄĐĆ Éż˜ÁśšŽ‰Śœy…|_`XCC>.-)F&/ž2Aü8Hü@QüGXüJ\üNaüQeüThüYnü`uüh}ülünƒüq†üq‡ür†üs‡üuˆütˆüq†ünƒüjüj€ük€üh|üeyüeyük€ü|’ü”Šü°ĆüÍŕűćđřó÷öúűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőúűőôů÷éńřŢęúŰëüßíúÝčůĂÓűšŻüwŽü]rüJ]üAQű?Oű?Nű;Jű;Kü=Nü@Rü@Qü>Oü@Qü@Rü=Oü=Nü=Nü=Nü=Nü<Mü9Iü8Hü7Gü5Dü3Bü3Aü1?ü0<ć@HžŒ‹ŻÔĚ°ĺÝźçŕŔčáÂéâÄß־ɞ™¨{€wZ^WBA=.,*#<<:onn¤¤ĽÔÔŐúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ÷÷öĸĐĚşëćŃńí×óďÜőńâóďŰńěŐńěÔđęŇíćËçßżâÚˇŢÖ˛ÚŃ­ĚÜÁľŽĆť“Ëż—Ęž—ĎĜĐŞɽ•ÁľşŽ†´¨‚˛Ś°¤~˛Ś€śŞ„şŽ‡ź°‰żł‹ÁľŔ´Œž˛Šżł‹¸Ź…ł§śŞƒź°ˆž˛Šš­†¸Ź†˝ą‰ž˛‹żł‹ž˛ŠŔ´ŒÁľŽżł‹ź°‰š­†˛Ś€¤˜t‘†fvZg_HMG640$ <<=ŒŒŒŢŢŢýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůůÖ×ŘČĘĆÄĂśăáŃěíßěíßíěŰďë×íčĎîéĎďęÓďęÓîčĎęăČćŢŔáءÚŃŹÎÜźą‹Ą–tˆaqhO[T?FA173',) " ++)TTTââăýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüűŢÜÖź´Ćź™ĐÇĄŃǢĚÁœÇź”ÂśśŞ„™mphONH62.".-7¤>NěEWůK^üPdüThüXlüYnüVjüWlü[pü_tüauüauüdxübvü]qü[oüZnüWiüQcüK]üGXüFWüEVüBTüFYüRfüj~üŽĄü°ĂüÉÝüŰîűčđřďőřôůřőú÷řúöúűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőůúőěń÷ÚćúËÜüÍŰúŐŢůŇáűźŃü˛üzüXkü?Oű2?ű+7ű(3ű+7ű/<ü/=ü/=ü0=ü2@ü5Dü7Gü6Eü4Bü4Bü4Bü4Bü4Bü3Bü3Bü3Bü3Bü3Bü3Bü9EâQW´›š°ÝÖťçŕŔęăĆěĺÉéáĂŰюĸ’Ł˜vypUVP<;7+,*&FFE~~ŽŽŻÚÚŰűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúŃĐËĆÁŻŕÜÉîëŘńí×ôđŢöőçôńŕńěŐńěÔđęŇěĺÉäŰšŕײÜŇ­ÓʤËÁ›Č˝–ÍÛĎĜĚŔ˜ÍšĚŔ™Çť“Ĺš‘ÂśŽš­†´¨‚ł§€ąĽ~˛Ś€śŞ„ž˛ŠĂˇÂśŽŔ´Œž˛‹żł‹ťŻ‡¸Ź…şŽ†˝ąŠž˛Šš­†¸Ź†˝ąŠÄ¸Ćş’ĸÄ¸ĂˇťŻˆ¸­†śŤ…ŽŁ~˘–s‘‡gzqV^WBGB10,!
+  @@A’’’âââýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůÚÚŮĂĹÄËÍČŮŰŇěíáđďßîęŐíéŃîčĐďëÔńîÜôńâňíŮëäÉäŰşÜÓŽŐËĽĎÝ·°¤’ˆhwoS\U@A=./,!%",,+SSS––•ŕŕŕýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýäâÝŔšĽĂş—ĐĆĄÔËŚŇɣ̛ŒźąŠĽšw~uYYR>:5($!(.5‹?M×DVőFYüK^üPcüReüRfüReüReüRfüSgüTgüTgüSgüObüI[üGZüDVü=Mü6Dű1?ű0=ű1>ű4Bű<LüM`üf{üŠžüłÄüÍÝüÓćüŃćüŇăűŰéűĺňűëöűňůřůűöűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőúúőřúö÷úöůúőúűőűűőúűőřúőöřöęď÷ÉŐú˛Ăü­žűˇÉüžŇü¸ÍüĄľü~’ü[nüBRű1=ű&0ű#,ű#,ű#,ű#,ű$-ű(2ű.;ű3Aü0=ű,8ű,9ű-9ű-9ű-9ű-9ű-9ű-9ű,9ű,8ű,9ű:CŰ_`˘§ŁŞăÝĹîčÎďęŃíçÍĺÝ˝ÖĚŚžłšoogNNH752(/.)RQPŽżżŔěěíüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőôťšą×Ňżíę×óđŕňîŮóďÝőôçőňŕńí×đęÓíćËçŕÁŕ×´ŰŃŹÔʤËŔ™ÍÜÓʤŐËĽŇČ Íšȼ”ĸÂśŽÇť“É˝•ÁľťŻˆˇŹ…ľŠ‚ł§€ľŠ‚ž˛‹Ćş’Ĺš‘ž˛‹şŻ‡ž˛Šž˛‹ž˛Šżł‹żł‹żł‹˝ą‰ź°ˆź°‰ĂˇČź”Çť“É˝•Ćť“şŻˆł¨ƒ­¤€§zœ’pŒ‚csjPWP<A<,,(EEF  Ąéééýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüűÜÜÚĹĹ˝ĚËÂááÖęęŢďďŕďěŘěćÍďéŃňďŢďđĺđńäňđŢđęÓçŕÂŢŐ˛Ôʤ˿˜Áś˛§ž“qw[e]FIC20,!-,+SSS‡‡ˆâââţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýéčăÁźŞżś•ÍÞÔËĽÖͧÔʤĐĹ Çź–ŽŁ„z]`YCC>.)&'*0…;HŃCUôEXüEWüDVüDVüDVüDVüDVüDVüDVüDVüCTü?Oű:Iű7Fű6Eű3@ű,8ű'2ű%/ű%/ű+7ű7FüK]üh|ü…›ü ľüłĆü¸ĘüśĘüˇÍüÁ×üĆÚüÎŕüâđüńůůůűöűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőóřöęőřčôůîöřřúőűűőöůöíöřńř÷ôöőŕć÷ŔÍú ´üŽ˘ü‘Ľüž´ü śü“¨üyŽüatüIXü.9ű#-ű!)ű (ű%ű#ú%ú#,ú(3ű'2ű'1ű*5ű+7ű+7ű+7ű+7ű+7ű+7ű)4ű&1ű(3ű@G×qq™´°ŠčăĚńëÓđęŃëäČŕ×´ÍÝł¨ƒ…fd\FE@00-$10,[ZZšš›ĎĎĐóóóýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůŘÖΞŹĺâĎňďŢóďÝđěÖńě×ôńßöóäôđŢíçÎĺŢżÜŇŻŇǢĐşŃÇ ĐĆ ÓÉŁ×ͧÖĚŚŇÇ ĚŔ™Çť“áÂśŽĆş’É˝•Ĺš‘Áľž˛‹ŔľźąŠ¸Ź…ž˛ŠĹš‘Ĺš‘şŻŠ´Š„şŽ‡ž˛ŠŔ´ŒŔ´Œž˛ŠťŻˆ¸Ź…š­†ž˛ŠĆş’Ęż—Čź•Äš‘ż´Œ´Š„ŻĽ€Ź˘}Śœx›‘oŠ€bqhNUO:@;+*&HHIŞŞŤîîîýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűĐŃĎÉÉÄĎÍÁŕßŃîíŢďíÚďëÖíčĎęäČđęŐôóĺíňéęěÝęĺÍĺßĹÝÖ¸Ǫ̈ÍݦľŞ„ –tˆ~`mdLRL973&  $##OOO‡†‡ßßßţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüčćâž­˝ł”̝ÓɤÖͧŘÎŞ×ÍŠÍœ˛ŚŠ€bg_HID3/+!&"'w1<Ĺ<Lń@Rü>Pü:Kü9Iü8Hü6Eü6Eü6Eü6Eü4Cü2?ü-8ű)3ű(2ű(3ű&1ű"+ű"+ű$.ű*5ű6DűIZüdwü€•ü“Şü™°ü˜­ü”Šü—ŤüŸ´üŤÂü´ĘüÁŐüâîűôůřúűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőűűőúűőéňřŐçűĐĺüÚęúěô÷öůőň÷÷ŕđúâďůëň÷ďő÷Řäů°Ăü‡šüoƒür‡ü}’ü„šü—üv‹ücvüDTű4Aű*5ű$.ű'ű!ú ú"ú%ú&ú (ú%.ú'1ű(3ű(3ű(3ű(3ű(3ű%/ű"+ű%/űIOڏĄČĂ°ěçĐńěÔîčĎčáĂÚŃ­Äš“Ś›xxZWQ=95))'!32/```   ÓÓÓöööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýáŕÝťˇ§ŘŇšîę×ňďÝńě×ďęŇďęŃńěÖńďÜďë×čáÄßÖ˛ÔĘŁËż˜ÍÁšŇČĄŐĚŚŐËĽÓÉĄŃƟËŔ™Ĺš‘Ĺš’Ćş’ĸÄ¸Ćş’Ĺš‘áĂˇÉž–Ćş“˝˛Šżł‹ĂˇÁśŽˇŹ†ŻĽľŠƒťŻˆżł‹Ŕ´ŒťŻ‰ł¨‚ŠžzŚ›x­˘~ş°ŠĹť”Ćť“żł‹ľŠ„Ź˘~Ź˘~­˘}§œxšn‰`pgNSM:;7($" RRSşşťóóóţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőőĐĐÎĹÄžÔÔÉßÝĎęč×ďëŘđëÖđëÔđęŃďéĐđëÓđěÖěçĎĺŕĂÜÖśŃËąĘçɿ™Äš‘şŻ‰Ş }†gsjQYR>A<-)&
+@@A††‡ŰŰŰýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüćĺŕČĂśžś—˝ÓĘŁÖ̧×ΊŐ̧ɿ˜˛§”ŠjphONH651$'$#T!)Ľ.:ę6Eü8Hü7Fü7Fü5Cü.;ű,9ű,9ű,8ű)4ű$.ű"+ű'ű$ú (ű"+ű#,ű(2ű0=ű@PüPbücvüx‹ü•ü~”ütŠüsˆü}’üŠžü‘Śü“ŠüŤŔüĚÜűęńřöůöřúöřúöřůö÷ůőůúőűűőúűőúűőűűőűűőűűőűűőůúőßčřžŇűľĚüżÔüŇâűčđřďő÷ÜëúÎâűÍŕűÝěűŕîüŇăüłÄü’üWiüK]üSfüeyüm‚üm‚ücwüReüAQü2@ű(3ű"*ű (ú%ú úúú!ú%ú!)ű!*ű!*ű!*ű"*ű!*ű!)ú"+řUYß´°ˇŕÚżďęŇńěÔîčÎçßÁÖͨźąŒšorjPHB2/+!$#432``a››œĐĐĐööö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőóÍĚĆŔ˝ŻćáÍîéÓđěŐńíÖđëÔđęÓîéĐćŕĂáŮšáŮśÜÓ­ÖĚĽÓÉĄÔʤŐĚŚŇÇ ÎÛʾ—Ĺş’˝ą‹¸Ź…żłŒÇť“Çť“ĸÂśŽÁľÁľĂˇĘż—É˝•ÂśŽÄ¸ĂˇťŻˆľŠƒ°Ľ€ł§€š­†żł‹Ŕ´Œ¸Ž‡Ş }•Œk…{^†|_”sˇ­ˆÂˇź°‰ąĽ€Şž{Ť |Ž˘}Ś›w˜l…{]ldKOI740$
+ gghĘĘËřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ňňňËÍĚÂĂžÔÓÇäâŇęçŐîëÖďęÔđëÔđëÔđëÓďéĎîčÍěćËçŕÁáŮś×ÎŤĹ˝žźł“žłšŻˆŻĽŸ•tƒy]f_GMG562%
+ ../wwxÎÎÎ÷÷÷üüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîîęÖÓČ˝ľšČžšŇÉŁ×ΊŮĐŤŘΊĐşźąŒŸ”s}sX[T?>9*/, %" 2!…)4ä/<ű/=ű-:ű/<ű.;ű(2ű%/ű%/ű%/ű#,ű (ű$ű"ú$ú"+ű(2ű-:ü9IüHYüXkücwükünügzü_rü`tüh}üq‡üwŒü€•ü’¨üśÉü×ćüáěúćđůéôůéőůäđůáěřîóöřúöôůř÷úöűűőűűőűűőűűőůúőÚăřąĹűŁşü˘šü­ÂüÍÝúćňůäîůËÜúľËüšÍüĹŘüÍáüÄÖü ąüs†üN`ü>NüHWűQbüZlücwü_tüUhüJ[ü;Jü.;ü(3ű",ű$úůůůů!ú"ú"ú#ú&ű (ű"*÷)1ĺbfĎĆÂÁęäÉđëÔńěÔîčÎćßŔÓɤ˛§‚‹‚db\E=8*&$ 444__`™™™ŇŇŇřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ôóňĐÎĆž°×ŇżęĺĎíčĎńěŘôđŢđëÔîčÎëĺÉŕ١ÚŃŹÜÔŻŰŇ­×ΧÔɢŇČ ĐƟĚšʾ–Ćť“Ŕ´ŒľŠƒŻŁš­‡Ćş’Ęž–Čź”ĸÁľÂśŽĹş’ĚŔ˜Ëż—Ćť“É˝•Ĺš’şŻ‡śŞƒ´¨‚ľŠ‚şŽ‡Ŕ´ŒÂśźąŠŻ¤œ‘p…{^}sX—mľŤ…Ŕ´ž˛ŠˇŤ…ąĽąĽ€°¤Ł˜u’ˆhuYf^FHC20,!
+ 
+
+ %%&sstÔÔŐűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ÷÷÷ÄÄÁĂĹŔŐ×ÎăâÓěéŐíéŇîéŇîéŃîčĎîčĎěćËéâÄčáĂčŕÂäŰšŢŐ°Óɤżľ´Š„´Š„­ŁĄ—u†gvnS\U@B=-,( EEF˝˝˝ďďďřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řř÷ŢÜÔť´šĂš–ĎĆĄÖͨÜŇŽÝÔŻŮĎŞČż™­˘~ƒeldLIC283&+'h$.Ň(4ô'1ű$-ű%/ű&/ú!)ú'ú'ú'ú'ű'ű"ú$ú$-ű+6ű3@ű=MüL_ü\püezüfzüauüVhüJ\üHYüUhübvüeyüf{üvŒüž´üÁÔüÔĺüĚŢüÍáűÔéűÓçűĘŕűČÜűßëřď÷řęöúńřřúűőűűőűűőűűő÷ůöŐŕůŠžű’Šü…œüˆŸüŤÁüÔĺűéńřŃŢúŹÁü–­üžľü˛ČüťĐü˛Ćü–Źüj|üCSü6Cű5Cü=MüPcüYlü\oüZmüM`ü>Nü4Bű,7ű$.ű%úúúůůůůů#ú&ú#*ń6=Éux˛ĐËÁíçÍđęŇđęŇěĺĘâÚşËÁĽšx{rXUO;2/#223__`šššÝÝÝüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýÍĚÉźšŤÜ×ÁéäĘěćĚíčĎňîŰôńáíčĎéâÄćßżÝÔąŘΨŘĐŤÖͨŃȢÍÛʿ—Čź”Č˝•Č˝•Ćť“ž˛‹˛Ś­˘}śŞ„ÂśŽČ˝•É˝–Çť“Ĺš’Çť”Ęž—ÍÁšĘż—Čź”Ęž–Ćş“ž˛ŠşŽ‡š­†ťŻˆżł‹ĂˇĆş’Ŕ´śŞ„ŤŸ{’‡h€v[›oš­‡ÁľĂˇŔ´Œš­†ľŠƒŻŁ~’p‹€bwoT^VA@;-+'//0€€ßßßüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűěěëÂÂżĆĹťÜÚĚäâŃęçŇíčĐěćĚěćËëäÇçŕŔćŢžă۸ÝÔ°ßÖ˛ăÚśáŘ´ŘΨËŔ™ž˛‹ł¨‚ŤĄ}ž•rŒƒd{sVg_GPJ751%  **,hhißßßđđńüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüÜÚŇźľÁ¸•ÎŞŐĚŚÜÓŻß׾ÜÔ°ŃȢŔľŁ˜v€wZVO;>:+.+ O¤&Ý!*ú (ű$ú!úúúú ú#ú'ű(ű'1ű2@ü;KüDVüL`üUjü[püXlüOaüCTü:Iű?OűJ\üL_üJ\üK]ü`sü‚˜üŤÂü¸ĎüˇÍü°ĹüľĚü˝Ôü´ËüŻĆü¸ÎüÍáűŰíűÚëűéňřřúöúűőűűőůúöđřůĎŢűŁšü}”üg~ükü„šüŹŔüŮçűŮéüťĎü‰žü{ü‡ü—Źü ľü›ąü‰ügxüBQü0<ű+6ű3Aű;JűDTüObüQeüL_üDWü;Lü3Aü(3ű (ú&ú!úůůůůůú#(ęNM§“ŽŒŘŃšěĺÉěćĘëĺČäÜźǪ̋ş°‘ˆjh`JD>/%"001___žćććýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűű×ÖŇşˇŞŮÔżęäËíçÍîčĎďęŇďéŃíçĚçßŔâŮśÝŐąŘĎŞÖĚĽÓÉŁÇź–ž˛ŒÁśŽÂśĂˇĆş’Ęż—Ęž–ż´ŒˇŤ„ľŠƒˇŤ„şŽ‡ž˛‹ĂˇÉ˝–ĎĝŇÇ ŃǟĚÁ™Çť“áÂˇÄ¸Ä¸ÁľŽÁľÄ¸Čź”Ęž–Čź”ÁľŽşŽ‡ľŠƒ›o‚y\›oť°‰Č˝•ĚÁ™Č˝•ťŻˆ°¤¤™v’‡gwZnfMSM:62%! 
+
+ ??@œœěěěţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüććĺÉĘĆČČžŢÜÍęćÓěčŃěçÎěćËëĺÉéâĹčŕÁćŢžäŰšßÖ˛ŮϨŮĎŠŰŃŹ×ͧŃÇ Éž—ž˛‹Ż¤˘˜v”Šj‚x[nfM]V@IC3-)
+ @@B™™šääĺůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýéčäÁźŠŔś•ÎĞ×ͨŰŇŽŰŃŽŮĐŹŐ̧ËŔš˛§‚Ž„eaZDFA150$$!>Ę"ů"úůůůů!ú"ú'ű%/ű)4ű2@ü=NüFYüNaüRfüPdüK^üCTü:Jü4Cü5Eű=NüDUü?Oü=NüJ[üj}üŽŁü¨żüŚ˝üłüłüŁšü¤źü˜ŻüłüłČüÂ×üÉÝüČÜüŘčúëőřňůř÷úöůúöňřřŃßúĄśüp†üVjü[oüezüƒ˜üşĚüÓäüËÝü—Ťütˆüi}üt‰ü‚˜ü‰žüˆü{üarüFTü0=ű&/ű'2ű0<ű<KüFXüK^üH[üCUü=Nü3Aü*6ű&/ű (ű"ú!úůůůů'+ęjfŹľŹ“áÚżěćĘëäÇęăĹß׾ÍÝ­Ł€x\XR>62&445ffgŚŚ§ěěěţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýŕßÜÂżąÓΡčâČěćĚíçÍíčÎíçÍëĺĘęâÄäÜşŢŐ°ŘĎŠÓȢĐŝÍݦşŽ‡ž˛Šž˛‹ž˛‹ĂˇÉ˝•ĚŔ˜Ĺš‘˝ą‰š­†śŞƒˇŤ„ťŻˆŔ´Ćş“ÎÛŇČĄÔɢÎÛȼ”ĸżł‹Ŕ´Ćş’Çź”Çť“Čź”Čź”Çź”Ĺš‘ÂśżłŒź°‰ •s‚x\–‹kˇŤ†Ęż—ĐƞĚÁšš­‡Şžz’p„e|sWf^GLF41,!
+ ""$SSTŚŚŚőőő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţééčĹĂ˝ËÉ˝ÜÚÉčćŃíéÔîéŃěćĚëäČéâĹçßżćßżčáÂćÝźßÖąÖĚŚÓɢŃǟËŔ™Ęż—É˝•˝˛‹Ť {›nŽ„d}tWg_GUN;A<-$! 
+##$gghŔŔŔőőő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőóÉšźł”ĘŔšÔËŚŘĎŞ×ͨŘĎŞ×ΊÎĞšŽ‰™nkdLPJ7=8*-*!0_šřůůůů$ú )ű"*ű&1ű.:ű5Cü<MüDVüK_üOcüL_üBSü8Gü2@ű1>ű3@ű:Kü<Mü8Hü4Bű>NűWjüxŒü‘Śü—­üŽĽü‡üĽü’§üŒ˘ü€–ü‘ŚüąĹüˇËü´ČüľĘüĹÚüŘëűĺóűď÷ůöú÷őů÷ŐáůĄľüi}üJ]üNaüL_ü]pü’§ü˝ĐüÎßüŽÂü~“üZmüWlübwümüvŒü}’üzücuüEUű*4ú#+ú$-ű)4ű4Bű>OüBTüCVüCUü=Nü6Eü/<ű)3ű#,ű (ű#úúů ó25ↂźÓË°ęäĘîčÎěĺÉéáĂÜӹƝ•Ą–tqjPID2)&""#DDEƒƒƒČČČőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţëęéžťŻÎȲäŢĂëĺĘíçÎíçÍěćĘęăÇéăĹčáÂă۸ÜÓŽŐˤÎÜ˿—Ęž–Ĺš‘ÁľŔ´Œź°ˆşŽ†˝ąŠĹš‘Ęž–Čź”Ŕ´š­†ľŠ‚śŤ„żłŒÂśŽĂˇČ˝•ĎĜŇČĄĎÜʿ—Çť“Ŕ´Ŕ´ŒĆť“Ęż—Ęż—Çť“ĸĂˇÁľĂ¸Ĺş’ÁľŽĽšw‡}`’ˆi­˘~ø’ÍÜËŔ™śŞ„Ľšv˜lŽƒdzqU`XCFA0,(
+
+ ../aab°°ąřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ööőŔŔšËɸŕÝĚççŐëçĐěçÍěćĚëäĘčáÄćŢžçßżéâĂéâÄćÝźÝÔŻĎĝǼ”¡ÂˇĂˇÁľŽľŤ†Ś›x˜l‚c{rVaZCJD33.#
+  ==>”””ćććţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúů×ŐˡŻ’Äş•ÎĞŐ˧ŰÓŻŢŐąŘΊɞ—š­ˆĄ–twmT[T@GB150%  >§ö"ú ůů$ú#,ű'1ű(3ű1>ű;Lü?QüCUüEXüG[üDVü9Hű/<ű+7ű2@ü8Hü:Jü6Dű2?ű1?ű8HüM_üh}ü{‘ü—üwütŠüvŒü~“ü~“üvŒümƒü‡üŹĂüŁšü™ŽüĽťüśËüÇÚüÖčüăńűí÷úí÷úÓăűĽšüfyü>Pü?Oü9HűAQűh{ü–¨üšĘüşÍü”§übuüGXűDTűReü_tül‚ütˆüoƒüatüGWű2>ű#,ű&ú#,ú,8ű6Dü?PüCUüBUü@Qü<Mü6Fü/;ü$-ű'ű%ú$ů(-ŢJMť ťćßÇďęŃđëŇíçĚĺÝ˝Ő˧ť°Š‘‡h`YD:6(0/0]]^ŽŽŽéééüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýíěęÂŔśĘŲäßÉíçÎîçÎďęŃďéĐíçÍëäÇčŕÁäÜşŢÖ˛ŘΊŇÇ ÎÛÍÁ™ĚÁ™ËŔ˜Çź”Áľš­†´¨‚śŞƒź°‰ÂˇÂˇżł‹š­†śŞ„ť°‰Ćť“Čź”Ćş’Čź”ĚÁ™ĎÜɽ–Čź”Ęż—Ćť“Ĺš‘Çť“É˝•Çť”Ŕ´ÁľŽÄ¸ÂśŽĆş’Ęž–Äš‘°¤›o™ŽmĄ–tŻ¤€źą‹Áľł§¤˜u–‹jˆ~_tkQ[S??:+#   AABƒŇŇŇüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űúúóóńľ´ŹŰŮÇéčŐęéÖěçÍëĺČëäČëäÇéáĂçßżéáĂçŕÁáءÜŇŽŐɤʞ—ÂśŽ˝ą‰ž˛‹š­†°Ľ€Ş |Ą˜u—Œk‹€bxoS]VAA<-'$ 
+
+ &&'llmĚĚÍúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýâá۸˛›ž´‘ËÁšÔĘŚÝÔ˛ßŐ˛ŘͨĚÁ›Áˇ•­¤ˆƒ|ge_LMH6<7))&*zÎ%ń$ű$ú#-ű*6ű/<ű1>ű9IüBTüBTü@Rü?Pü:Jü2@ü*5ű(3ű,8ű5Dü7Gü4Bü+7ű+6ű3AűCUü]rürˆüq†üf|ü^süawüh}üi~üezü`tü_tü~•üĄšüŚü—ü’¨ü¤šü´ČüÂ×üŃăüÜíüŕńüÎâüŚťüexü6Eü0=ü-9ű0=űBQügxü’¤üŽÂüĄľüyüJZű4Cű<MüJ]üXmücwüj~üj€ü_süJ[ü4Aű%.ú%ú&ú&0ű/<ű5Dü9Iü<Mü>Pü<Mü6Eü-9ű'2ű$.ű"+úBFÔ}|¨Á˝şîéÓńěÔđęŇëĺÉŢֲǽ˜§œy{rWMG5+( ==>ppqÁÁÂůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýďďíČĆťČĂ­ĺŕČíëŘďě×đëÔňíŘđęÔíçÎëäÇäŰşÜŇ­ŮĐŞÖĚŚŇČ ĐŞÎÛĚŔ˜Çź”¡Ŕ´ŒşŽ†ľŠƒ¸Ź…¸Ź…śŞ„ľŠƒˇŤ…şŽ‡ťŻˆÁľŽËŔ˜ËŔ˜Čź”Čź”Ęž–Ęż—Ćş’Ĺş’Č˝•Č˝•Čź”Čź”Ćş’ĸżłŒž˛‹żłŒĂˇĘž–ĎĜËŔ™ŔľŽł¨ƒŚœy›‘p–ŒkĽ›xł¨ƒŹĄ|’pŒ‚c~tXjbJRL962&
+  &&'[[\ŻŻŻëëëýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýý÷÷öééćśśŽÜÝÎęčŐěçÎëĺËëĺÉëĺČëäÇęăĹéâĂéâĂáٸÔĘĽÎÜĚŔ˜É˝•Ä¸żłŒź°‰Ż¤~˘—t˘˜uŸ”r”‰i†|^qiOWP<:6(  ==>ĄĄĄńńńýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîíężťŞľŹŽČž™ÔËŚÚŃŽÚŃŹÖĚŚÓĘĽĚÄŚş´‘Œ|ojYTN<D?/51$&#&F”$ä (ű#,ű*5ű1>ű6Eü7Gü<Mü@Rü;Kü7Fü5Cü-9ű&/ű%/ű-9ü4Cü4Cü-:ü&0ű%/ű-9ű<LüPdüf|üo…ü^süNbüSfüXmü[püXlüPcüL`üXmüxŽü§ü”üq†ü—ü’Šü˘šüŽĹü˝ŃüËÝüÓçüÇÝüŁšüdwü2@ü'1ű(2ű*4ű+5űDRűi|ü‘Śüłü˘ü]oü8Gü3Aű<LüI\üRfüYnü_uüezü\püK]ü7Dű&0ú$ú!ú%ú#-ű)4ű/<ű6Eü7Gü6Fü5Dü1>ü,7ů*3ňbcŃł­ąŢŘÁńěÖńěŐîčÎčáĂŘĎŞşŻŒ”Šjh`I=8*!,,-PPQˆˆ‰ÉÉĘűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţóňńÉƽШÝ×˝ęçĐëëŰíëŮńíŘôńáńě×íćĘéâÄŕל×ͧŐËĽŐˤÓČĄĐƞĚŔ˜Ćť“˝ąŠš­†ž˛Š˝ąŠťŻˆž˛‹śŞ…Ť |ŠžząĽ€şŽ‡˝ą‰ÂśŽĘż—ËŔ˜Ęž–Čź”Çź”Çť“Ćş’ĸ‘ĸĆş’Čź”Çť“ĸÁľŽÂś˝ąŠşŽ‡Ä¸ÍÁ™ŇÇ ŃÇ ËÁ™Âˇ´Ş…›’q‚y]Ž…g —uœ’qŽ„e}tXsjPbZDJD3/+! //0jjkžžżňňňţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţůůřĺĺáŰŰÓČĹšäăŇďíŰńíŘďęŇîčĎîčÎěĺÉéáĂćÝ˝ăŰšŮĐŹÎÜĚŔ˜ĚÁ™ËŔ˜Ćş’ž˛‹˛§‚¨yĄ–t˘—tœ‘o‚c~tXiaJNH63.# &&'bbbÖÖÖůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ööőÍĘ­Ś˝ł’ÎÞÔĘŚŐĚŚÓȢĐşÍÄ Äźœ¨ „…}ef^HVO;F@02.&&n%Ű$-ű)5ű1?ü6Eü8Hü8Hü:Kü:Jü0=ű)5ű)4ű(2ű'1ű(3ű0=ü4Cü,8ű%/ű#,ű+7ü9HüK]ü`tüh}ü\püK]üBTüI\üMaüNbüK_üASü?OűWkürˆü{ül€üeyüt‰ü‚™üŚü›˛üŞžüšĚüÄŮüťÓüœłübtü1>ü%.ű&0ű'1ű (ú-8űHXűq„üŒĄüĽüs‡üL\ü3@ű1?ű9HűBSüI\üQeü[pü\qüWküJ[ü7Dű%/ú"ůů!ú (ű'1ű.;ű0>ű2?ű6Eü6Eü7DóBJՁ˝ÎÉ˝íéÔőňâňí×îčÎçŕÁǪ̋´Ş†Š€bZS?0-"""#@@Auuv˛˛łëëěýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőóŘÖĎźˇ¤ŮҡćŕÄéäËëčÓíęŐńě×óîŰńěÖíçÍçßŔăŰšŢŐłÖĚŚĐŞÎÛĚŔ™Ćť“żłŒš­†š­†ÂśŽĹş’¡ˇŤ†ŽŁŞŸ|ŞŸ{Ż¤~ľŠ‚śŞ„ťŻˆÄš‘ËŔ™ÎÜɽ•ĂˇżłŒž˛‹ÁľÄ¸‘Çť“Čź”Çť“Áľź°‰ž˛Šž˛‹Ŕ´Ćş’Ëż—ĚÁ™Ęż˜Č˝•Ĺş’ť°Š“rulSrkQ{sXzrWskQkcKg_HZS?E?0*& ==>€€ŃŃŇűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýëëéÍĚÄĐÍ˝ŢÚÇíęŘóđßóďÝďęÓîčÍěćĘéâÄćÝźáŘľŰŇ­ÓɢĚÁšĚŔ˜ĚÁ™Ęž–¡śŤ…ĽšwĄ–s¤™vŚ›x›oˆ~`zqVe^GID3.*! LLMŞŞŞóóóüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýďîěĆĂś˛ŞÁˇ’ËŔ›ĎĹ ĐşÎÛĎÝĚÁšť°‰Ÿ”r€w[kcKVO;@;,&#P$ľ'1ç1>ů6Fü8Hü7Gü5Dü3Aü/<ü&0ű )ű"+ű)4ű-:ű,8ű.;ű-:ü$-ű"+ű'2ű5DüHZüXlücwü[oüGYü?Pü>Oü@RüASüASü=Oü6Dü8FűZlülücwüWküWküezüt‰ü–üŠĄü—ŹüĽšü°ÇüŹÄü”Şüatü3@ü#,ű"*ú!*ú!ů&ů.9űO`üpƒü…™ü‚—üdvü?Nű/;ű,8ű4Bü;LüCVüNaüSgüUjüSgüHZü8Fű*4ú%úů!ú (ű&0ű(2ű*5ű1?ű5Cň@LÝhlľ¨§˛ŢÜŃńďŕőńáńěÖěćĘăÚşËÁœ¤šxxoUIC3$"--/VVW’’“áááúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúííéÜÚĐ½ŹŃ˲âÝÁăŢÂćáĹíčĐîéŇďéŃńěÔđëŇěćËăŰšŕ×´ÝÓąŇȢĚŔ™Ęž–Čź”ÂśŽź°‰¸Ź…şŽ‡Ĺš‘É˝•ÂˇŞŸ|Ą—t¤›xŽ¤~ľŠƒľŠ‚˛Ś€śŞƒÁľČ˝•ËŔ™É˝•Ĺš’ÂśżłŒÂśŽÇť“Čź”Ĺš’ÂśŽŔ´ż´ŒŔ´ÂśĹš‘Čź”Čź”Çť“Ĺš‘ÁľŽ˝ąŠ¸Ź†Ł˜uvZumStlRrjPmeMg_H^WANH694(  
+
+ WWW¤¤Ľéééţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűŃĐĚÉÇşŮŐŔçâĚďëŘđě×íčÎěĺÉčáÂĺÝťä۸ăÚśŕ׳ŘΨŃǟĎĜĚÁ™É˝•Äş’ťą‹­¤œ’pœ‘pĽšwŞŸzŸ”qŒcuZiaJID3/,!$$$bbcśśśöööüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúůÝŰÖŤĽśŹ‰Ĺť•ĚÁœĎĞŃƟÓČĄĎĝÁśŽŽ˘~—Œl{rWbZDMG652%!!9t&1ź3Bň6Fű6Fü4Cü.;ű(3ű#-ű"*ű!)ű#,ű,8ü0>ü+7ű&1ű#,ű"+ű&0ű/;ű>OüQeü\püTgüEWü=Nü>Pü?Qü;Lü9Jü7Gü1>ű-:ű8Eű\nüezüPcüH[üK^üWküg|üvŒü•üˆŸü“ŠüŸľüŸľüŽŁücvü6Dű'ú ú ůůů (ú7DűTfüp„ü—ütŠüTfü7Eű(3ű,8ű3@ü:JüCVüGZüI]üOcüPcüJ\ü>Nü-8ű%úů!ú(ű!)ű#,ű)4ř1;ŢKPťŒĽĚĘşäčŕěěÜîéŃîéĐéáĂŮĎŹśŤ‡Šc^WB83&99:eefŸŸŸéééüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýööőîîíçĺŕÜÚÎČÄłÓÍ´ăÜŔĺßÁăÝżčăÉńíŰďëÔíçĚďéŃîčÍčáĂÝÔąÔĘĽÎÜ˿˜Ëż—ĚÁ™Çť“ÂśŽż´ŒşŽ‡şŽ‡Ĺš‘Çť“žłŒ§›x›o“q°Ľ˝˛Š˝ąŠ¸Ź…š­†ÂśŔľŽžłŒĹš‘Ëż˜ÎÜʾ–Čź”É˝•É˝•ÂśŽşŽ‡ÁľŽĘż—ËŔ˜Čź•Ĺş’Çť“Çť“Ćş’Ćş’ź°Š°Ľ€°ĽŹ |ž”ršo˜m…f„z]skQZS?A<,+( %%'hhiˇˇˇđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýđđďÇĆ˝ĎĚşßÚÄěćÎďęÔîéĐëĺČëăĆçßžăÚˇâŮľâŮľŕ׳ÚŃŤŐĚĽÔˤŇČĄĐŞÍĝȿ™˝łŽŠžz§›w­Ą|Ť {˘—t–Œkˆ~`meNLF53/#))(cccŤŤŹőőöűűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üűűčç帳ĽŤŁ„Ŕˇ’ĘŔ›ÍÞĎĝĐŞÎÛ¶°¤šn‚y\ofM_WBJD4/,.D 'Ž+6×/=ô.;ű*6ű&0ű!)ű%ú"+ű&0ű'1ű)4ű)4ű%/ű (ű%ú%/ű/<ű<LüK_üWküWjüEWü8Gü8Iü;Lü<Mü9Iü5Cü/<ű(3ű+6ű:IüZmü]püDVü>OüBTüL_üYmüf{üq†üzü„šü‘Ľü”¨üˆ›übtü8Gű"*úůů!úů!ú(2ű?NüZmüt‰üzüi}üK\ü1>ü(3ű(3ű.;ű:Jü>Oü@RüH[üL_üK_üI\ü=Mű,7ű&úů ú!ú#ú!)ő;?Çkh˜ąŞ˘ŕÜÂččÖëčŃěĺĘëĺÉâÚšÍÞŁ™vxpUNH7*'((*MMN‚žžżđđđýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőôóĺäßÜÚŇŰŘĚĎʡŃ˲âÜŔéâĹčâĂčâĹęäÉěćÍéâĹčáÂěĺÉéâĹăŰš×ΨÎĜɽ•Čź”Ëż—Íš˿—Č˝•Čź•Ćť”Çť”Ëż˜Í›ɿ˜¸­ˆŽŁ~­˘}ľŞ„Ŕ´Ćş’ĸ‘áĹš‘ť°Š´Š„şŻˆÄš‘ÍšĎĝĐŝĎĜ˿—ÂśŽşŽ‡ÁľŽĚÁ™ŃƟĐƟÎÜɾ–Âśž˛ŠÁľź°‰ł¨‚ˇŤ…ˇŤ…ŤĄ}Šž{§›x™Žm‹bvmSUN:84'#  112wwxĆĆÇööö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůř÷ŕßÜČÄľŰŐÁćŕĘíčĎíçÎíćĚěćĘëĺÉčáÂäÜşăÚśáŮ´ß׳ÜÓŽŮŃŤŮŃŤŮĎŞŮĐŞŰŇŽŘΊÍÜš­‡˛Ś€ł§€ŞŸz¤™vŸ”r…ftkQRL::5('$.-+^^^ŸŸ đđđřřřűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţřřřŘÖĎŞŁ‹ş°ŽÄş•Éž˜ËŔšĚœÍ›ĸ‘ąŚœ‘o‰aypUjbJZS?@;.'&+ ^%Ś%.č#,ú (ű (ű&ű&ú%0ű)5ű(2ű$-ű!*ű (ű%ú 'ú+7ű8GűEXüQfüThüK^ü9Hű0>ű6Fü8Hü8Hü5Dü0>ű*6ű%.ű-9ű@QüWjüSeü<Mü7Gü;LüCUüM`üXlücwümüxŒüƒ—ü‰œü”üatü:Iü#,ű ůů#ú ůů&ú.:űEVübuüv‹üu‹ü`tüAQü*4ű"+ű%/ű2@ü6Eü8Hü?QüCUüEWüK^üHZü9Jű*5ú%ú úů÷!&éRQˇ•Ž‹ĘÂĽçáĂëĺĘëĺÉéâĹäÜźŐĚŠź˛‘ˆhiaJA;. ! "99:gghŻŻ°ääĺřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üűűôôóëęćßÝÓÎĘšÎʡÓĎśáÚźčáÄęäČęăÇéâÇćŕĂĺÝžäÜťĺÝźćÝžâٸÜÓŽÔĘŁÎÜʾ—Ęž–ĚŔ˜ÎÛΚΚĎĜŇČĄÔʤÔɢ×ͧÖ̧ɞ—ÁľŽž˛ŠşŽ‡Ŕ´Ęž—͚͚ɾ–˝łłŠ…ľŞƒž˛‹É˝•ŃÇ ÔĘŁŇÇ ÎÛƺ“Ŕ´ĂˇËŔ˜ÓɢÔËĽŇȢÍÁšÂśşŽ‡˝ąŠž˛‹ź°‰ž˛‹šŻ‰­ŁŤ |¨œx˜l‰`rjQOH62-"
+
+EEF˜˜™ŕŕáüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúçćăĹÂľÖŃťĺŕÉęĺĎëĺĚéáÄëĺÉđęŃđęŇěćĘčŕÁă۸ßÖ˛ÜÓŽŘĎŠŘϨÚŃŹÜÔŻŕ×´äŰťŰŇŻÍ›˝ąŠ´¨‚°ĽŠžy¤™vĄ–t’ˆhzqU]VAFA040$*' /-)KJI‹ŠŠäääđđđúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýđđîşľŚŽĽ…šŻŠżľÇź–ÍœĐƟĚÁ™˝ą‹Şžz™Žm€wZiaI`YCUN;C>1(&-[Í ő!ů&ű#,ű'1ű)4ű'2ű",ű!)ű (ű!)ű$.ű+6ű4Cű=NüEWüH[üDVü<Lü1?ű/<ű5Eü7Gü5Dü/<ű,8ű)4ű%/ű5BűK]üSgüGXü4Bű4Bü9Iü<MüGZüRfüXlü`uük€üw‹ü~“ü{ücxü>Nű!)úůůůůůů"+ú2@űK]üeyür‡ünƒüViü4Aű%/ű#,ű*5ű-9ű/<ű6Fü:Jü<MüBTüEXüASü9Iü.;ű"+ű"ú#ď39ÎyxľĂźŞŘĎŤâŰşëĺĘěĺĘäÜźÔĘŚž´Ł˜v{sWUO;0-"%%&EEFzz{ŔŔÁńńńüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůřîíęćĺáŢÜÓŃĎžŮÔźáÝĆäáĘćáÄéăĹëäČčŕÂÜÓ˛ŰŇ°ĺÝžčŕÁăŰşÜÓŽ×ͧŐˤÖͧÓÉŁĎĜ͚ΚΚËŔ˜ĚŔ˜ĐŝŐËĽÚŃŤÝÔŻŢŐąÚĐŹÉž—Áľżł‹ťŻˆżłŒČź•ÍšĐŞŃƟʿ˜ÂˇżłŒĂˇĘž–ŃÇ ŃƟÍšĐŝĐƞĚÁ™Éž–ĚŔ˜ŇČ ÎÜɾ—ĎĝĚÁ™Ĺš’ÂśĂˇĂˇšŻ‰ŽĽ¨žz§œx˘—t“ˆgw[iaJIC2,) ''(ccdżżżôôôţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýý÷ööŃĎĘĹ°ÝמćáĆéäĘëĺĘëäČđęÔôďÝďéŇęäÇĺÝ˝ßÖ˛ŰŃŹŘĎŠ×ͧ×ÍŚŘΊŮĎŠŰŃŹŢŐ˛Ö̧ɞ—źą‰śŞ„ł§ŤĄ}§z¤šx—ŽmwZd\FOI6>9*0-#,)"862ppp×××ęęę÷÷÷üüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůřŃÎĹŠĄ‡˛¨†żľĹť•ËŔšĎğÎÛŔľŽ°¤˘–sŠ€brjPjbJbZDSM:62&;•Ň"ő'ű%/ű)4ű'2ű"+ű$ú"ú$ű!)ű)4ű3Aű<MüBTüDVüARü9Jü2Aü-:ű-:ű1?ü2@ü0>ü,8ű(3ű&0ű'2ű:HűM`üK^ü<Lü0=ű3Aü8Hü:JüCUüM`üSgü[püeyüo„üwüv‹ücxüAQű#,úůůůůůů"ů&/ú:IűThüg|ünƒüauüDTű.:ű"+ű!*ű&0ű+7ű0>ű5Cü8Hü<Mü?Pü?Pü>Pü:Jü.:ű#-ű.4ěkkÁ­ŞˇÝÖŔăŰşäÜťçŕÁĺÝźŰŇŽËŔšł§ƒ“‰ih`HA=-! ))+NNOŠŠŠÍÍÍóóóţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýúůůőôňďíčŕŢÓĐĚźÓΡäŢÂěçÎíéŇëĺËëäÇëäÇčáĂßלÜÔ˛ŕءŢŐłŮĐŹ×ͧ×ÍŚŘΊŮĐŤŐËĽĐŝÍÁ™Ęż—É˝•Ęž–ÎÛŇČ ÖĚĽŮĐŞŰŇŹŰŃŤŐËĽÉ˝–ÂśŽŔ´ŒŔ´ŒĂˇČź•ÎÜŃǟĎĝĚŔ˜Čź”Ĺš‘Çź”ĚÁ™ĐŞÎÜʿ—ÍÁšĐŞŃƟÍÁšËż˜ĐŞÍšɾ–͛ΛĚŔ˜ËŔ˜ĚÁšËŔ™żľł¨ƒŽŁ~Šžy –s†exoU\T@?:+$! 224vvwĚĚĚ÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüđđîĚÉÁĚÇ´âŰŔćŢÁčáĹěćËďéŃóďŢőńáíçÎčŕÁăÚ¸ŰŇ­ÖÍŚŐˤÔĘŁÔĘŁŐĘŁŇČĄŇÇ ÔÉŁĎŞȼ”˝ąŠš­…śŞƒŻĽ€ŞĄ~Ś{œ’q‡}_kcJWP<GA073&+(.,&]]ZĆĆĆŕŕáňňňůůůýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűÝŰÖŤŚ”ŠĄƒ˝łÄş“Čž—ËŔšÉż—ż´ł§Şžz˜Žm„z]xoTmeL^WBFA1,)1YĄ$ă!*÷%/ű'1ű",ű$ú úú"ú"+ű-:ü8HüATüDVüASü9Iü1?ü-:ű-9ű-9ű,8ű,8ű+7ű)4ű%/ű#-ű)4ű<LűL^üASü3Bü.;ű1@ü6Fü9Iü@QüH[üPdüWlü_tüi~üq†üq‡übwüDUü(2ű"úůůůůůů$ú,8űDUüWküf{üfzüTgü<Jű&0ű$ú!*ú(3ű*6ű/<ű5Dü7Fü8Gü9Jü>Oü>Pü8Gú7AńRUÝŤŚ˝ÜÖžëĺĚëäÇćŢ˝âŮśÜÓ­ŇČĄÁśĽšwv[RL9.+!
+445iijśśˇăăăůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţřř÷đđîîíęăâÚĚɡÔиŕÜÁčâĆîčÎđęÓîčĐëĺĘëäÇęăĹçŕÁáٸÚŃ­ÓÉŁŃƟÖˤÚĐŞÜŇ­ŮĐŞÔˤĐŝĚŔ˜Ćť“ĸÉž–ĐŝŇČĄÓɢÔĘŁÔĘŁŇÇ ÎÛɾ–ĸÂśŽĂˇĆş’Čź”ÎÛĐƞĚŔ˜Ęž–É˝•É˝•Ęż—ĚÁ™ÎÛĚÁ™Čź”Çť“ĚÁšŇČ Íšɽ–͚͚ĚÁ™Ęż—ĚŔ™ĐŝÓČĄÔʢŇÇ Č˝–żłŒˇŤ…ŹĄ|ž”q‹bneMNH651$ BBDŮŮŮűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřčçâČƸŃĚ´ĺßÂčáĹëäÉďčĎđëÓđëÔďéŇěĺÉéâĹćŢžÝŐąÖÍŚŃǟÎÛÍ›ĎŝĎĝÎÛĚÁ™ĚÁ™Ęż—ÁľŽťŻˆˇŤ„˛Ś€Ť |¤šw™mŠ€awnSc[EOI7=8*0-"/,%PNJŽŽ­ĎĎĎčččőőőýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýííëžźąŚ ‰łŞ‰ź˛ÁśĂ¸’Ŕś˝ą‹š­‡ˇŤ…ŹĄ|šnŠ€bzpVkcKWP=?:1&%6n ´#,ç%/ů"+ű#ú!ú$ú%ú!*ű(3ű1?ü:JüBTü@Rü9Hü-9ű(4ű,8ű0?ü1?ü,9ű+7ű)4ű$.ű"*ű#+ű*6ű=MűJ\ü;Jű-9ű,8ű-:ű1?ű8Gü?PüEXüI\üOcüWlü_uüi~üm‚üdyüJ\ü.:ű&úůůůůůůú!*ű1>űCTüYlüfzü`tüN`ü8Fű$-ű )ű#,ű#-ű(2ű-9ű.;ű2?ű7Fü9Jü:Kű@NóbgΖ’°ÓÍŔíçÍîčĎčáÂáŮśÜÔŻŘΨɞ™Ź˘ˆ€aaYD73'
+
+ EEF~~ÓÓÔôôôţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýúůůóóđďîčăâÚËÉšŘÓşćáÇčăÉčáÄëĺČěćËěĺĘęäÇëäĆéáĂâŰšÚŃ­ÔˤÔʤŐËĽŐˤŐĘŁÔĘŁŇČĄÓČĄŇČĄĎĜȼ”ĸÉž–ÎÛĚÁ™ĚŔ˜ĚŔ˜ĚŔ˜Ëż˜Éž–Čź”ĸÁľÁľŽÂśŽĂˇČź•ĚŔ™ÍÁšÍšÍšĚÁ™É˝•Çť“ËŔ˜Ęž–ĸÂśŽÉž–ŃƟËŔ˜Ĺš‘É˝•Ęž–Éž–É˝•Í›ÓČĄÖˤÔʢŃƟÍšǻ”ź°‰ŞŸ{–‹j|sX_XBC>.-) ##$]]^śśˇőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷öÜŰÔÉIJ×Đ´çŕÂëĺÉíçĚďčĎďéĎîčÎíçĚëäČčáÂăŰťÝŐą×ΊÓɢĚÁšČ˝•Č˝•É˝•Č˝•Č˝•Ęž–Ęž–¡ťŻˆľŠ‚˛ŚŤ {Ł˜u™mƒcvYldKWQ=E@/95'3/%@>8zywśśśÝÝÜńńňţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ÷÷öŢÜŘšľŚ§ ƒ°Ľ‚šŽ‰žłŔľÂˇÂˇŔ´¸Ź…ŞŸ{™Žmx[mdL^WBPJ8@;2+)Gr%š'ä#öů ú 'ú#,ű(3ű0=ű7Gü=Nü>Pü7Gü.;ü(2ű'2ű+7ű/=ű0>ü+8ű(3ű%/ű!*ű (ű$-ű1?ű@QüEWü3Aű(3ű*6ű+7ű/<ű7Gü?PüDWüFYüL_üTiü\qüdyüh}ücyüM`ü1=ű (úůůůůůůú$ú'1ű5CüJ[ü\oü`tüWküEWü,7ű"+ű )ű (ű#,ű&0ű)5ű-:ű1@ü3Aü;HďYb͐“źÇĆşćăĚíçÎčáÄăÜşŕŘłŰŇ­ÎĞ´Š…Ž†ghbJB>.!
+ ''(QQRĺĺĺýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţűűű÷÷őôóňîíéŐÓÉĆÂąŐϸäŢÂčáĹçßÂĺÝ˝éâĹěćĘěćËëäÇćŢżß׾ŰŇ­×ͧŐËĽÖͧÖĚŚŃÇ ĐŝĎĜĎĜĐŝĐƞŃƟÍ›ɽ–ĚÁ™ĚÁ™É˝•Ćş’Ĺš‘Čź”Čź”Čź”Čź”ĸŔ´ž˛Šž˛ŠÁľĹš‘Čź”Éž–ĚÁ™ÎÛĚÁ™Čź”Ĺš‘Çź”Ćť“ĸĂˇÉ˝•ĎŝĚÁ™Çź”Čź”Čź”Čź”Ęż—ÎÜÓÉĄÖÍŚÔʤĎĝËŔ˜ÁśąĽ€ •rŽ„eulRXR==9*&#  ../vvvŇŇŇüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ööőĘȞƿ§ŰÔśčáĂěćËíçĚěćÉěĺÉîčÍîčĎëĺČäÝ˝ÝÖ˛ÚŇ­ŘĐŞŐËŚÍÛƺ’áĂ¸Ćş’É˝•Éž–Çź”ÁľŽşŽ‡´¨‚ąĽŹĄ|Ś›w’p†f„z]tkQbZEOH6A<-62&2/'LKG’‘‘ÎÎÎńńń˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřčçĺÁž´ĄšƒŁšzŻŚ‚¸­ˆż´ŽÄş”Ćť”ÂśťŻˆł§Ł˜uˆ~aogNd\E^WAVP=?:3%$<|šĺő"ú"*ű'2ű/;ű6Eü<Nü?Qü9Hü.:ü&0ű(2ű*6ű+7ű,8ű+7ű)4ű%/ű!*ű (ű (ű&0ű:JüCVü?Pü-9ű%/ű*5ű+7ű.;ű5Eü=NüCUüDWüJ]üRfüZoü`uüdyüavüM`ü2?ű!)úůůůůůůů#ú#-ű-9ű<LüL`üWmüWküL_ü5Cű)4ű"+ű (ű (ű"+ű&1ű*5ű,7ů2=îKRр¤ľ¸šŢăŰëéÔčâĆáÚšáŮśßÖ˛Ő̧˝˛Ž™ŽmpgOKE4*& %%&CCDttt´´´÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüü÷÷őôóđăâÝÎĚÂÉĹłÜ×ŔçáÉçáĹâŰźŕŘśá١çŕÂëĺÉěĺĘčáĂßÖľ×ͨÖĚĽÖĚĽŐËŚÖĚĽÓȥ͚͚ĎĜĎĜ͚͚ŇČ ŇÇ Í›ÍÁ™Ëż—Çť“ĸÄ¸Č˝•Ęž–É˝•Çť“ĸŔ´Œ˝ą‰˝ąŠŔ´ŒÄ¸Ćş’Ĺš‘Éž–Κ˿—Čź”Ćş’ĸÄ¸Ćş’Çť“Ęž–ΚÎÛĚÁ™É˝•Çť“Čź”ÍÁ™ĎĜŃƟÖĚŚŐˤÍ›ƺ’śŤ„Ą•s”Šiˆ~`qiOTN;84&!
+889‚‚ƒÚÚÚýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţóóň˝š­ËĂŚÜÔ´ĺŢžęăĆíćĚíçĚëĺČěćĘěćËęäÇĺŢ˝ßÖ˛ŮĐŤÔʤÎĝʿ˜Ĺš‘áČ˝•ÎÜĐŞÍÁ™Çť“ÂśŽ˝ąŠš­†ł§°¤­˘}Ą–t•Šjƒc€vZohN\U?KF4<7)1,"85/srqźźźéééýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýđďîÓŃĚŽŞ›š’yŁ™zŽŁśŹˆźąŒż´ŽžłŒťŻˆśŞ„Ť }˜o…{^ulRiaI^XBNH6840Axš ĺ )ű'2ű.;ü5Cü8Hü:Kü:Jü2?ű)3ű#,ű(2ű+7ű+7ű+7ű)4ű%/ű"*ű (ű (ű (ű&1ű<LüBTü9Iü*5ű$.ű)5ű+7ű,9ű0=ű7Fü<Mü=OüCUüK_üThüYnü[pü]rüPcü7Eű#-úůůůůůůůů%ú&0ű3AüASüK_üQeüPdüFXü7Eű'2ű%ú#ú (ű"+ű$.ű*2đEHŔsq™ŽŠĐÍľâŕČçáÄčáĂčáÄäÜşŐ˧žłŽ –tyqVPJ8/,! !!"EEFllm˘˘Łááâýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűůůřőôňŕŢÖĹÁąČĂ­ÚŐşčâÇęăČçŕÂĺÝžăÚ¸áŮľäŰşäÜźáŮšŰŇ°ÚĐŹÚŃŤŘΧĐşɾ˜ĎĞÓÉĄÎÛÎÛĎĜĎĜĐŝŃÇ ÔĘŁŃǟËŔ˜Çź”Äš‘áÁľĹš’ĎşĐƟËŔ˜Ĺš‘ÂśŽÁľÁľŽÁľŽÁľÂśŽĂˇĹş’Ęż—ÎÛÍÁ™Čź”ĸÄ¸Ä¸Ä¸Ćş’Č˝•Ęż—͚͚ɽ•Ĺš‘Ĺş’ĚÁ™ĎĜĐŞÔʤŃƟǻ”żłŒąĽ€œo…eƒy\i`IKE40,!
+ JJL˘˘Łčččýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţööőÉÇźÇÁŚŮŃąäÝźçŕÁęâĆëăÇëäĆëäÇëäČěćĘéâÄăÚšŘΊĐŞËŔ˜É˝•Çť“Čź”ĐŞÖĚĽÓɢÎÛǼ”ÂśŽżł‹ź°‰¸Ź…ľŠƒ˛Ś€Ł˜t˜l–‹jƒduYiaJVO;E?/61%2.%MKF••”ŢŢŢüüüüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţééçÂŔšŸ™‰™’yŸ•wŞ }ł¨„¸­‰źąŒźąŠš­‡łŠƒŠ |”rŽ…f}tXjbJ`XCRL941(>s!š#-ę+7÷3Aü8Hü8Hü6Eü2?ü)4ű$-ű#,ű(2ű)5ű(3ű)5ű'2ű"*ű (ű'ű%ű )ű)4ű<Mü=Nü3@ü'1ű$.ű)5ű+7ű,9ű/=ű4Cü8Gü9Iü>PüFXüL`üQeüThüXmüObü:Iü%/úůůůůůůůůů&ú*6ű7Fü?QüH[üOcüQeüCTü/<ű )ú"ú#ú$ú).çFHÄyvŸ°Š“ÖέăÚšäÜşäۡćßžčáĂŢÖłÁś’ž“r|tWTO;0,! 778ggh–––×××üüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűúř÷öňňďŮŘĐÄŔŽ×ŇşăßĆçâČçáÄĺŢžĺÝ˝éáĂéáÄĺÝżŕŘľÜÓŽ×ΨŇÇ ŐĘŁŮĐŠŘΧÎÜŹ’Č˝–ÍÁšËŔ˜ËŔ˜ÍšŃƞÔĘŁÖÍŚÔĘŁĎĜȽ•Ĺš‘øĹş’Çť”ËŔ™ÓÉŁÔĘŁĎĝƺ’żłŒ˝ąŠÂśŽĂˇÁľž˛‹Ŕ´ŒĹš‘Ęż—ĎĜĐƞÍšȽ–Çź”Ĺš‘ÂśŽĂˇÄ¸‘áĹš’Ćť“Ĺš‘áÄ¸ÎĜŃǟĎĝÎĜǻ”ź°‰ľŠƒ¨y–‹k…{^riOUO<;7($! 
+''(qqrËËËööö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ÷ööÔŇĘĘÄ°ÖĎąćŢżçŕÁćßżćŢžéâÄęăĹęäÇěćĚëäČäÜź×ͨĐŝÎÛʿ—É˝•ĚÁ™ÓÉŁÖͧŃǟËŔ˜Ćş’Ŕ´ŒťŻˆš­†ťŻˆš­†ąĽ€¤˜ušn˜Žl“‰hˆ~`tkQaZDQJ8@;-51%95,ec^ÍĚËřřřřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůŘ×ÔŞŚ›œ–ƒœ”zŁ›z­˘€ľŤ‰˝˛Ŕ´˝ą‹š­†˛§‚ŞĄ}Ł™v“‰i{qWqiQhaKQK:62."!=#€#+Ä*5ć2@ö7Gü5Dü1>ű*5ű$-ű"*ű#,ű(3ű'2ű$-ű'1ű&1ű"*ű (ű&ű"ú"+ú.:ű=Nü9Iü-8ű$-ű$-ű)4ű*6ű-;ű3Bü7Fü8Hü9Iü=OüCVüGYüM`üSgüUiüL^ü9Iü&0úůůůůůůůůů ů#,ú/;ű7Gü?QüGZüNbüFXü6Eü(2ű&ú!÷$ď@BÄxs’´ŽŁŢŘżçŕĂéâÄčáÁăÚ¸áŘľÜӰ̝ޟ~ƒy]\V@62&   889ZZ[‡‡‡ÄÄÄřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüřřöčçăŃÎĹÁ˝¨ÖСçáÉééÖéçŇčâĹćŢ˝ćŢ˝ęăĹíćĘéâĆß׳ÚĐŤÖĚĽŃƟĐŝŃƟÓČĄĐŞËŔ˜Ćť“ĸĂˇĹš‘Ęž–ŃƟŐĚĽÖͧŇČĄÍšɽ•Çź”Éž–ĚÁ™ĎĝŃƟŃƟŇÇ ŃƟȼ”ź°‰ľŠƒťŻˆÁľŔ´Œ˝ąŠ˝ąŠÂśŽÉ˝•ĎĜÓČĄÓČĄŃƟËŔ˜Ćş’ÂśŽÁľž˛‹ťŻˆťŻˆ˝ąŠÁľÂśŽĆť“ĐÇ ŇɢÎĜǻ”ť°‰ąĽ€Šyž“qŒ‚cumR]V@B<-,(
+  778‰‰ŠÚÚÚúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řř÷ŇĐÉĆŔŞÖÎŻĺÝ˝çŕÁçŕŔçŕŔéâÄćßžâŰşăÜźâÚšÝŐąÖÍŚÓÉĄŇǟĚÁ™Čź”É˝•ĐƟŐˤĎĝǻ”żł‹¸Ź…˛Ś°¤śŤ„şŽ‡ˇŤ…­˘|ĽšvĄ˜uš‘o…fuYofN^VALG5@;,=9,NI@–•ććĺňňňýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţńńđÍËÇąŽŁĄ›ˆŸ—{Ľ›{ŻĽƒˇ­‰˝˛Œ˝ą‹şŽ‡ˇŹ…ľŞ…Ź˘}Ÿ•s‘‡i…}fysag`LSM:?;6-,L%({)/­1=Ý4Bú,8ű(2ű$.ű!*ű#,ű'1ű)5ű&1ű"+ű#,ű#,ű!)ű (ű'ű&ű'2ű3Aű:Jü3Aü'1ű"*ű"*ű%/ű(3ű,9ű0>ű5Cü8Gü8Hü:Kü>PüCVüK^üRfüThüK]ü9Iü(3ű#úůůůůůůůůů#ů%.ú/<ű7Gü@QüH[üFXü>Oü2@ü'1ű%+î>>ŔtpœąŞžŘŃśëĺĘëĺČëäÇčáĂŕŘľÖͧȽ—Ż¤‡~bbZD>9+   668aab……†ľľľěěěţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýüüüřřöŢŰÔËÇşČĂŻŮÓšäŢÂéäÉëçŇęçŃęäÇčáÂčáÂęăĹęâĹćŢżŕŘ´ŰÓŽ×ΨŃƟÍšËŔ˜Ęż—Č˝•Çť“Ĺş’áÁľÂśŽĹš‘É˝–ÎÝŇČĄĐƞĚÁ™Éž–Ęż—ĚŔ˜ĚŔ˜ÍÁšÎÛĎĜÎÜËŔ˜ÂśľŞ„Ž˘~ľŠƒżł‹ĂˇĂˇÂśĹš‘Ęż—ÎÛÎÜĐŝŃƞÍšɽ•Ä¸żł‹şŽ‡¸Ź…¸Ź…ťŻˆĂˇÉ˝–ËŔ™Čž˜Ě›ÎĜø˛Ś€¤˜uœn†f~tXf^GNG62.# 
+
+ KKL˘˘Łćććűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţööôĘÇ˝ĆŔ¨ÖÎŽăÚ¸ćßżčáĂéâÄçŕÁá١ŰÓŻÚŇŽŘĎŠÖËĽÖ̤ÖĚĽÔĘŁÍšǻ“Çť“ÍÛŇÇ ĚŔ™ÁľŽˇŤ„˛ŚŽ˘}­Ą}ľŠƒź°‰˝ąŠˇŤ„ąŚ€­¤€¤šw˜l‰~`ypUjbJ[S>OJ7ID3LG9b^SŸž™ŕßßűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţńńđĎÍČŤ§šœ•€ž–yŚœyŽ¤€ľŤ†¸Ž‰şŻ‹źą˝˛‹ľŠƒŤŸ{Ł™w•Žu…lwoXmdL_XDHC642C-/m-5¨*6Ý#,ő!)ű (ű!)ű%/ű)5ű)4ű%.ű!)ű (ű (ű (ű&ű&ű!)ű,8ű6Eü7Gü.;ü#,ű (ű!*ű$-ű(3ű+7ű,8ű0>ü5Dü7Gü8Hü:KüBTüJ]üObüPdüI\ü;Lü,8ű&úúůůůůůůůůů$ú'1ú/<ü8GüBUüEXüCUů<Lî<FăLOÎxt ˛Ť—ÝןëĺÉěćĘëäÇčáĂăŰşÖÍŠÄş”Ť }Šb`ZD?:,$" ''(QQR††‡ˇˇˇęęęýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţüüűńđďÔŇÉĆ°ËĆŽßÚŔčăĘéăÉęăČëĺĘéăÇçŕÁéáÄëäÇęăĹćŢžâŮľßÖąÚŃŤÔʤÍ›ȼ”ĸ‘ÂśŽÁľĂˇÇť“Ćş’Ŕ´ŒżłŒŔ´ŒÁśŽÇť“ĚÁ™ÍšĚŔ˜Ëż—ĚŔ˜ËŔ˜É˝•Éž–Ëż—ĚÁ™É˝–ÂśşŽ†ąĽ€­˘}ľŠƒŔ´ŒĆş’Ćş’Çť“Éž–ÍÁ™Íšȼ”Ęž–ÍšÎÛĚŔ˜Çź”ÂśŽź°‰¸Ź…¸Ź…˝ąŠÄš‘ËŔ™Í›Ĺ‘Äş“Č˝–żłŹ {›n†f‚y\meLUN;=8*"   ...llmČČČőőőţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőôĚÉžČŔ¤ÖÍŞá١ĺŢžçŕÂçßŔă۸ŢŐąÚŇ­ŮŃŹŐĚĽŃÇ ÔɢŐˤÓÉĄÍÁšĘž–ĚšĎĜÍÁšÄš‘ťŻˆ´¨˛Śł§śŞ„ź°‰żłŒżł‹ťŻˆš­†¸­†ŽŁ~ •s†fƒz\vnSkcJb[D[T?VO<ZTCkfZ¨ŚĄďîî˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýěëęÂŔšž™‰œ•}Ÿ—yŚœ{Ž¤‚łŠ†¸Żżś–¸’ŔľšŽ‡ŹŁ”t„h€w\zqWvnUkdMWPD?<D,.a &š 'Ů (đ (ö!)ú%.ű(3ű$.ű!*ű (ű (ű (ű&ű"ú!ú!*ű,9ű6Fü6Fü-9ű"+ű (ű#,ű'2ű*5ű+7ű+7ű,8ű/<ű6Eü8Hü:JüASüFXüGZüH[üFYü?Qü/<ű (úúůůůůůůůůů ú!)ú(2ű1>ű?QüEWůGWěITÍfh­“ŽžŔş­âÜĹíčŇđěŐďéŃęäÇâٸǪ̈̓ŹĄ~Œƒef^H=9+#! ''(FFG||}§§§ŕŕŕüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙öööäăŕŢÝŮĚɽÿŠŃË°ŕŮ˝çáĹçâĆéăČěćĚëĺÉĺÝ˝ßÖ´äÜźéâĹéâÄćÝźŕ׳ŮĐŠŇÇ Ęż˜Ä¸żł‹ź°‰ž˛ŠÂśŽĆş’Ęž–Çť”˝ąŠ˝ą‰Ŕ´ŒŔ´ŒĂ¸Čź”É˝•Ëż—ĚÁ™Ęż—É˝•Éž–ĚŔ˜ĚÁ™É˝•Âˇť°ˆľŠƒ´¨‚ˇŤ…ź°ˆÂśĆť“Ĺš‘Ćş’ËŔ˜ÎÛĚÁ™Ĺš‘Ĺš‘Ęž–ÍšĚÁ™Č˝•É˝–¡¸Ź…şŽ‡żłŒÂśŽĆş“Ęž–É˝–Áśš­†ˇŤ…Ť {™Žm‰aulR_XBC>.+' 
+113PPQ›››čččűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷÷ŃÎÄÇż¤Ó˨ßÖłŕŘśăŰšâÚ¸ÝÔŻÚŃŤŮĐŞŮŃŤÓĘŁÎÛĐŞĎŝËŔ™É˝–ËŔ™ŃƞĐƞÍÁ™Ĺš’ž˛‹š­†¸Ź…şŽ‡˝ą‰ÁľĂˇÁľŔ´Œž˛‹¸Ź…Ż¤Ľœxšn…eƒz\zpUpgNg_HaZD^WDc]Mwsh­Ť§ňňň˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţřř÷ŢŢŰšśŹŠ¤“˘›„Ÿ–y§ž|Ž¤´Ş‡şŻŒÁˇ‘Çť”Äš’¸­ˆŠŸ|™oˆaya€zg}wfpjW]WHHEK44b')‡!&˛ &Ř (ó#+ű$-ű"*ű (ű (ű (ű&ű"úů!ú$.ú/<ű6Eü2@ű(2ű&ú&ű"+ű%/ű)4ű+7ű+7ű+7ű-:ű6Eü8Hü9Iü<NüASüDWüEXüCUü=Nü0>ű#,ú úůůůůůůůůůů#ú$-ű-9ű7EůESĺZdÉz}ą˘ž¤Ĺ˝ĽÝŐśęçĐíđăňóçňîÜčáĂÜÓ°ĚÁ›Ž¤€‘‡hpiPJE4&$ %%&GGIuuvĽĽĽÎÎÎöööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüűččćÍËĂ˝š¨ÄŔ°ĚÇ°ŰŐšćŕĂéäÉęäÉčáÄéăĆěćĘëäČĺÝ˝ŢŐąßÖ˛âÚ¸ĺÝźäŰšŕײŮĎŞĐşƺ“ź°ˆ¸Ź…š­…ťŻ‡żł‹ĂˇĆş’ᏻŻˆź°‰żł‹˝ąŠŔ´ŒĂˇÄ¸Çť“Éž–Çť“É˝–ĎĞÎÜ˿—Čź”ĸŔ´˝ąŠž˛‹Ŕ´ŒŔ´ŒÄš‘Ęž–Éž–É˝•Ëż—ËŔ˜Ęž–Ćş’Ćş’É˝•ÍÁ™Ëż—Ĺş’Ćş’øžłŒÁľÄ¸Ä¸Ćş’Çť“ĸ‘ťŻˆ˛§€˛Ś€Šy—Œkƒz]lcKRL983& --/VVW‡‡ˆÇÇÇđđđţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüßÝÖżšĄĎĆĽŰŇŽŰŇ­ŢŐąŢÔŻŘΧ×ÍŚŮĎŠŮĐŤŇɢĚŔ˜Ęż—Čź”Ĺš‘Çź”ΛŇČ ĐƞÍšɽ•Ä¸Ŕ´ŒŔ´ŒÁľÂˇÄ¸Ä¸ÂśÄ¸żłŒ´¨‚Ž¤ŤĄ~Ľšwšn…e‡}^|rVriOkcJe^G`YE_ZIuqfşšśüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýúúůßÝÚˇ´ŞĄ›‰•| –w¨ž{ŽŁ€ł¨ƒźąŒÄš“Ćť”Áśˇ­‡Š }”‹lŠƒkˆƒs‰„u„~j{sYleOUOD:7@,-k$)Ľ!(Ö!(î!)ů (ű (ű (ű (ű$úúů$ú(3ű1?ü5Dü-9ű"+ű"ú%ű (ű"+ű'1ű+7ű+7ű+7ű-:ű4Cü7Fü8Hü9Iü>OüDVüEXüBTü;Kü0>ű%.ú úůůůůůůůůůůř"+ó/9ě@Hŕ\aǃ„°ś˛­ŘѡäÝŔćßżçĺÎëđçđóęđěÚâŮšÔʤż´™oumSTM;2.# ::;jjjœœœÍÍÍöööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óóńŔ˝˛ť¸ŠČÄŻŰŐźŕŰĂăßĹçâČęĺÉěćÍíćÍéâÄčáĂëăÇëĺÉčŕÂâÚ¸ÝÔŻÜÓŽŕײŕײÝÔŻ×ΨĐƟƻ“šŽ‡ľŠ‚ˇŤ„š­†˝ą‰żłŒŔ´Œ˝ąŠşŽ†ťŻˆž˛Šź°‰ž˛ŠŔ´Œżł‹ÁľÄ¸Ä¸Ęż˜ÓÉŁĐŞʾ—Čź”Çť“Çť“ĸ‘Ćť“Č˝•ĂˇĂ¸Ęż—ÍšËŔ˜Çť“Ćş’Ćť“Čź•Č˝•É˝•Ęż—Çź”ÂśŽÂśŽÄ¸Ĺš’Ĺš‘Ĺš‘Ĺš‘Ćş’ĸ‘ź°‰´¨‚ŻŁ}Ž˘}Ľ™v“‰i|sX`XCE?0+'
+
+ FFG‚‚ƒžžžçççűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőôóÇþƿ ŮĐŞÚŃŹÝÔŻŰŃŹÔĘŁŘΨÝÔŻÚŇ­ÔËĽĚÁ™ÂśŔ´Ćş’Í›ŇǟĐŞÍš˿—ËŔ˜Çť“áĹš‘Č˝•Č˝•ÁľŽŔ´ŒÄ¸‘ĸ˝ąŠ´¨‚ł¨‚´¨ƒŻŁ~Ś›w’p’‡gˆ}_€vYzqUphNe]F^WBhbR‚ŘÖŇűúúýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ôôóÎÍȧŁ—ž—„ ˜~˘˜y§|­Ł€˛¨ƒˇŹˆť°ŠÂśÂˇť°‹Š }œ”u˜Žr›’u—o‹‚cƒy\ulRb[GLGH86Y*-‹%*Ŕ")ę (ô '÷ (ú (ű$úú!ú!*ű*5ű2?ű3Aü'2ű!)ű'ű'ű (ű!*ű&1ű+7ű+7ű+7ű,8ű.;ű3Aű7Fü8Hü=NüCUüDWüDVü?Qü0>ű!*úúůůůůůůůůöô"î)0ÚCH˝vtœĽŸ¤ĚČżćăÖđěŰđęÓîčĎíčĎęçĐčăÉâÚşÓɤ¡‘Šž{w[YQ>30$ 889gghœœĘĘĘűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüňńď×ÖѡąžĆ˝ĄÔÍąŕÝÇçĺŃëčŃëëŰęëŰëçĚíçĚëĺĘáٸâÚşęăĹíçÎíćËčŕÁâÚˇŢŐ°ŰÓŽ×ΧŇÇ Í›ĚÁ™Éž–Ŕ´¸Ź…ľŠƒşŽ‡żłŒżł‹ź°ˆš­…ˇŤ„¸Ź…ťŻˆÂśŽĂˇżł‹¸Ź„śŞƒź°‰Äš‘ÍšĐƞĎĝĚÁ™É˝•Čź”Ćş’Ŕ´Çź–ÎĞø’˝˛ŠÄ¸Ęż—Éž–Ŕ´˝ąŠŔ´Ęż—Ëż—Čź”Ĺš‘ÂśŽÂśŽÄ¸Ćş’Ćş’ÁľŽź°‰ź°‰ž˛‹żłŒš­†°Ľ¨yŚšwœ’oŠ€bphNPJ72."
+ 445bbc  ĄŘŘŘúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůÇÄšŔ¸šÔʤÖĚŚÖĚŚÔÉŁĐŞŐʤÜŇ­ÝÔŻŘĎŠÍÜšŽˆľŠƒž˛‹Éž–ĎĝĎĜÍš˿—Éž–Éž–Éž—Č˝•Čź”Ćť“Ŕ´Ŕ´Ĺš’᏿ł‹ź°‰˝ąŠ˝ąŠ¸Ź…ŽŁ~¤™v“r—Œl…f†|^ypUpgOjbJmeP‚|k˛­˘ÜŰŐáŕÜëëéýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüčč漏Šœ˘œ‡•zŸ•vŚœzŞĄ}ŽŁ€˛§‚şŽˆ˝ą‹ş°ŠľŤ†Ż¤€Ť {Ź |Ł˜u”Ši‹b‚x[wnTicP[WSNKgAA„25Ą"'ł"Ň#ň&ű$úú#ú$-ű.;ű1?ű/<ü$.ű (ű (ű (ű (ű!*ű&1ű+7ű+7ű+7ű+7ű+7ű.;ű3Aü7Fü;Lü>Pü?QüASüASü3Aű#,úúůůůůůůůôŕ#&ÇBAśbaą„‚Š­Ľ”ĎĆŚčăĘńóéňôęńíŘđęŃíçĚéáÄŢÖ´ĐĆ ź˛¤™w‡}`b\E?:,! 445eefœœœĘĘĘôôôţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýôôóâŕÚĹŔąÁťŚÔͲÝŐśăÜ˝ĺâČçĺÎěéŇďđâďńäíéŇíçÍéăĆÜÔ°ÝÔąäÝ˝ëäÉëäČćŢžŕŘ´ÜÓŽŮĐŤÔĘŁÎÛɽ•Ĺš‘ÂśÂˇž˛‹şŽ‡żłŒÂśŽž˛‹śŞ„Ż¤°¤˛Ś€¸Ź…ĸ‘Çź”ᐜŤ„­Ą|Ž˘}şŻˆČ˝•ÎÛŃƟĎĜǻ“Ćş’Ćť“ĸ‘Č˝–ĘŔ™Âśżł‹Ä¸Č˝•É˝•Ä¸‘¡Ĺš’ĚÁ™ĚŔ˜Çť“ÂśŽÁľĂˇÄ¸ĂˇÁľž˛Šź°ˆťŻˆšŽ‡ˇŹ†ˇŤ„­Ą} •r™Žm„e{rVbZDC>.%" &&'QQSŠŠ‹ŔŔŔěěěţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýÍĘŔť´™ÎÄ ŃÇ ĐşÎœÍšŃǟŘΨÜÓ­ŮĎŠÎݸ­ˆ°ĽśŞ„ÁľŽÉž–ËŔ˜ËŔ˜Ęż—Čź•Ëż˜Í›ʾ—Ĺš‘Áľżł‹ÂśŽÇť“ĸĂˇĆş’Çť”Ćş’żł‹´ŠƒŤ |ŠŸ|¤›xœ’q„e‚x[}tXxoTtlRxpVŠ‚kޤ“şśŤÍĚĹôôňúúůýýüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüííěŔž¸˜‰—y—r“r¤™v§œyŠŸ{Ž¤ą§ƒ˛¨„ˇ­‡şŻˆşŽ‡¸Ź…Ť {œ‘o’‡g‰aƒ{_‚|g{lyqahaXPKW23j#&›!%Đ 'ă$í÷#ú%/ű2@ü1>ü*4ű"*ű'ű (ű (ű (ű!*ű%/ű*5ű+7ű+7ű+7ű+7ű,8ű.:ű3Bü7Gü9Iü9Jü<Nü?Qü5Cű&0ú!úůůůů÷đ$é(+ß/2ÂKK~x†ŹĽ›ĚĆłÖĎąáÚşęćÎëđćěđĺîęŇěĺÉçŕÂß׸ÎÄĄš­‰ž”s€w[aZEC>.(& ++,LLMŒŒČČČńńńýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůäăßÄš½ŤËÄŠÚÓľăŢĂĺßÂĺŢżĺßÁčăĆíčĎńîÝóđâđëÔíçÍéáÄÜÓŻŰŇŽß׾ĺÝ˝ĺÜźŕ×´ŰŃŹŘϨŘĎŞÓɢĚÁ™Ćş’˝ąŠ¸Ź†ÁľÁľŽżłŒĂˇÄ¸żł‹´¨‚Ť {ŠžzŽ˘}śŞ„ÁľŽÇť“Ĺş“š­†Ť {Ś›w°Ľ€ż´Éž–ĎĜÎÜƺ’Ćş’É˝•Ęż—Čź”øŔ´ŒÁľŽĆş’Çť“É˝•ĚÁ™ÍšÍšÎÛĚŔ˜Çť“ĸĂˇÄ¸ÂśŽž˛Šź°ˆź°ˆź°ˆš­†´Š„°ŚąŚ€§›w—Œl‹b|rWiaIQK840$
+ 
+
+ ;;<uuvźźźçççűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţčç䞏ČŔŇČĄŇɢÓÉŁŇČĄÔʢŐˤŐˤŃƟĚŔ™Äš’žłŒ˝ą‰Ŕ´ŒÂśŽŔ´Ŕ´Ĺş“ŃĆĄĘż™ÁśČ˝•Ĺš‘˝ą‰ťŻˆÂśŽÉž–Č˝•Čź”ËŔ˜ĚÁ™Ęž–Âśź°‰ˇŹ…´ŠƒŹ˘}˘—t—Œk„fŠ€b€wZ{rV‚y[‰b’ˆmŸ˜€ŹŚ“ĐÍĂéčĺôôňúúůüüűţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţűűűÜÜڟœ’‰w“Œs”‹m™nœ’qŸ•sŁ™w¨Ÿ|Ź˘ą§ƒśŹ†šŽ‡¸Ź…˛Ś€ŠžyŁ™v“s™o™r˜s†hˆ~`{s[e_\OLf><x-0‘ %ž ë$ř&0ů2@ú.:ú#-ú#ú#ú'ű (ű (ű!)ű"+ű&0ű*5ű+7ű+7ű+7ű+7ű,8ű.;ű3Aű7Gü8Hü9Jü:Jü2Aű'1ú!úřřřřď#&Đ>?łccŠ‹‰°ŽŞłĆżŹÝŘÂíéÖëćÍěçĚíéŃëéŐčĺÍćßŔăŰšŮĐ­Éžœ°Ľƒ“‰itlRYR>?;,'$  !@@Bzz{źźźňňňýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőôóŕŢŮÄŔ°ÉÂŞŐÎłÝÖšäÝžĺßÂçŕĂčáÄčáĆęäČëĺÉíčĎîéŃíčÍîčÍëĺÉâÚˇâ١ăŰşÜÓ°ŮĎŞŮĎŠ×ͧÖĚŚÖĚĽĐƞǼ”żłŒš­†¸Ź…ťŻˆź°‰ź°‰Ŕ´ŒÂśŽŔ´Œž˛‹¸Ź†°Ľ´¨‚š­†š­†ť°ˆž˛‹ź°‰ˇŹ…´ŠƒśŞ„š­†ť°‰ÁśĆť“Ćş’É˝•Ëż—Çť“Ĺš‘ĸž˛‹Ŕ´ŒĹš’Ĺš‘Ćť“ÍšĎĜĎĜÎÛĚŔ˜Čź”Ćş’ĸÂśŽ˝ąŠťŻˆź°ˆš­†ąŚ€¨yŹĄ|Ż¤Ľšwšn…e€vZjbJUN;<8*#  ../RRS‘ÚÚŰúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ńńđÓĐĂżˇ—ĎşÔˤÖͧÖĚĽŐĘŁÓČĄĎŝÎÛÍšʿ—Ĺş’ÁľÂśŽÂśÁľŽž˛‹ÂśĎÞǼ–żłÉž–Ĺş’ťŻˆź°‰Ă¸Ęż—ËŔ˜Ęż—Éž–Éž–Č˝•Ä¸ÂśŽżłŒź°‰´¨‚¨y’p˜m˜Žm…fŠ€b†f‘ˆg’ˆh•‹k›‘p˘šĹŔłÝŮÓćĺŕíěęóňńűűúýýüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýôôôËÉƞ›ˆv‰€gŠc†g•ŠjšpŸ•s˘˜v¨ž{­˘~˛¨‚śŤ…¸Ź…ľŞ„˛§ƒŽ¤€ŹĄ|¨yŁ˜už“qœ‘o™m†f~uYkcRZUcKJŒBBą8:ľ38ś4=Ĺ+4Ô&âó!ú'ű (ű (ű (ű (ű#,ű)4ű+7ű+7ű+7ű+7ű,8ű.<ű4Bű7Gü8Hü8Hü7Fü1>ű(2ű%÷ ŕ#Ě(,Í>?ĎWVÉjhľ‰†¤ŽŤĽÖŇŔîęÔďéŃóîŰöôćőňâňíŘíçÍćŢżßÖłŘĎŤĎĆĄź˛Ž¤™x…{_e]GFA11-"  !99:kkkŹŹŹíííúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůřĺäßĂż´ş´ĄÍĆŤŕŮšäÝŔćßÁçßÁćßÁčáĹëĺĘíçÍíćĚěćĘěćËíçĚíçĚěćĘęăĆćßžĺÝźŕءÔɤĐŞÔĘŁŇČĄŇČĄÔĘŁĐŝƻ“ťŻˆśŞ„ľŠ‚ľŠ‚śŞ„š­…ťŻˆž˛‹Ŕ´ĂˇÁľš­†şŽ‡ťŻˆľŠ‚ľŠƒš­†ž˛Š˝ąŠťŻ‡şŽ‡şŽ‡ťŻ‡żł‹ĂˇĹš‘Ĺş’Ćť“Č˝•Č˝•Ćť“ÂśŽÂśŽĆş’Çť“É˝•ÍšÎšĚÁ™ĚÁ™Ęż—Č˝•Čź”Ĺš‘Ŕ´Œš­†ˇŤ„¸Ź…śŞƒŻŁ~Ľ™vŚšvŚ›w™ŽmŽ„d„{]sjQYR=@;,)&
+
+ %%&KKLxxyąąąîîîţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůŕÝÔśŽ’ËÁÔĘŁŐËŚŐˤÓɢŃǟĐŞŇÇ ŃƟȽ•ĂˇÂśŽÄ¸É˝•Ęż—Ĺş’ÂśŽÄ¸‘ĸ‘Ĺš‘É˝–Äš‘˝ąŠÁľĹş’Čź”ĚŔ˜Ëż—Ĺš‘áĂˇĹš‘áÁľżł‹š­†ŻŁ~˘–s“q˘™wž•s›o™n—l–Œk˜Žmœ’qž”sž”v§Ÿ…°Š”ÉĆťŕŢÚńđîööőřř÷ýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüűűîíěÂÁźŒ€|vc}u]‚y^Š€c‘‡h–ŒkšoŸ•s¤šxŤĄ~˛§ƒš­‡ź°ŠşŽˆˇŤ…´Š‚ŻŁ~¨zŚ›wĽšv¤™v˘—u›o“ˆjƒl†~q}uthbgSPfFFƒ9<ž.2š$(Ř#(ç&,ë$+ě")í!)ď!)đ$-ń*4ň+7ó+7ô*6ů*6÷-9ó2@ó7Fń9Hď:Hî;Iî;Ií9Eë6>ę4:ć69ž>@™RTž}zŁŤ¤ŚĂź°ŐĎ˝ăŢËđěŢőňäńíŘńěŐóîÚôńăđęÖćŢŔÚŃŽŃÇĄĹť–˛¨…–ŒmypV\U@@:,'$112XXY“““ÚÚÚ÷÷÷ýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţúúúăâŕŐÓĚŔť¨ÇŔ¤ÔÍąßŘşĺŢżĺŢŔĺŢżćŢŔčáĂęäČíçÍîčĐďéĐďęŃđęŃđęŇďéĐéâÄĺÝźćßżáÚ¸ŮĐŹĐŞĐŞÓɢĎÜÍšŃǟĐŞɽ–˝˛‹ˇŤ„´¨˛Ś€ľŠ‚ˇŤ…¸Ź…ź°ˆŔ´ŒÂśŽŔ´ž˛Šź°ˆťŻ‡¸Ź…¸Ź†şŽ‡ž˛‹ź°ˆˇŤ„şŽ‡ÁľĹš‘Çť“Ćş’᏿łŒŔ´Ęż˜ËŔ™Čź”Ćş’Ćş’Çť“Ęż—ĚÁ™ÍšËŔ˜É˝•Čź”Çź”Çť“Çť“Ĺš‘Ŕ´¸Ź…˛Ś€ąĽł§˛Ś€Ź {Ł˜tšm‘‡g‡~_zqVg_HKE42."
+888kkl¨¨Šäääýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ďďëżš§ĆžÔʤÔĘŁÔʤŐĚĽŐĚĽÔʢŐĘŁÔɢÍšǼ”Ĺş’Çť“Ęż—Íšɾ–Ĺš‘ĸ‘ÂśŽżłŒŔľÁśŽÁľŽŔ´ŒŔ´Ä¸Ęż—ĚÁ™Ćť“Ĺš‘Ĺš‘áÂśŽŔ´ŒŔ´Œ˝ąŠˇŤ„ŠzŁ™vŚzŸ–tœ‘pŸ”s •r •r •tĄ–tĄ–tŸ”sŸ”rž”u¤œƒ­Śł­›ÇÄşÖŐĎëęéůůůýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţúúúăăâ´˛Ž„tup_unY}u[‡}_ƒd’ˆh—lœ’q˘˜v¨žzą§‚źąŠž˛‹ťŻˆš­†š­‡¸Ź†˛Ś°¤°¤°¤Ž˘~ޞzŁ˜u¤™vŠž{ž”sŽ…m|vvtn‚hd‹MKBBœ?AŻ47Ż+/ľ',Á'+Ä)/Č-5Ď-6Ń,5Ů'0ń)2ç-7Ő1;Ń9BÇ?HťAI¸ELˇMRł[]ŠljŚ}z˛ŒˆŞš•ŁŞ§ąĂž¸ŰÓşćŕĂíçÍńěŐôđÝôđŢňíÖďéĐěćĚčăÉáÚźŘÎŹÎÄ żľŞŸ}„fjdLMG641%!##%334QQR‚‚ƒĘĘĘđđđýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúůůÍËżžşŠÁť¨ÍĆŞÝŐ´áÚşäÝźĺŢžĺÝžćŢżčŕĂěĺÉíçÍîéĐđęŇđëÓđëÓďéĎíçÍěćĘçŕŔâÚˇŕŘśŮĐŤŃÇĄŇȢŐĚŚÖĚŚÎÜȽ•É˝–Ęž—Ęž–Ćş“Ŕ´šŽ†śŞ„śŞ„ˇŤ„ľŠ‚şŽ‡ÂśŽĹš‘ÂśŽ˝ąŠżł‹Ŕ´ž˛Š˝ą‰ž˛ŠÂśŽŔ´ťŻˆşŽ‡ÁľŽĘž–ĚÁ™Ęż—Ćş’Áľž˛‹żłŒÁľŽĂˇĂˇĂˇÄ¸Čź”Ëż—Ëż—É˝•Çť“ĸĂˇĂˇĂˇĹş’Ćş’źą‰ąĽŤŸ{ŞŸzŤ {¨x •r—Œj…eƒy\qhO[T?<7)#   !!"HHIƒƒ„ĐĐŃúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůĹÁľÇŔ˘ŃÇĄŃÇ ŃÇ Őˤ×ΊÖĚĽÔĘŁŃƟÎÛĚÁ™ĚÁšÍ›ĎĜĐŝ˿—Ćş’ĸ‘żł‹şŽ†ťŻ‡ÁśŽĹş’˝ąŠš­†žł‹Çť“É˝•ĂˇÂśŽÂśŽżł‹ž˛Š˝ąŠź°ˆź°‰şŽ‡°¤ŞŸ{ŤĄ}˘˜tž“q§y­˘}Ž˘~Š |Śœy¤šwŁ˜v˘—u •r’q“qœ’qŚŸˆ˛ŹœŇÎĆăáÝčçä÷öő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúććĺ°ŻŞŠˆ{vitn[woX~uZ…|_ƒd“‰i˜Žm›‘pŁ˜w°ŚśŤ†śŤ…śŞ„ź°‰ÁľŽşŽ‡ˇŤ„śŞƒš­†ťŻˆťŻˆľŞ„š­ˆÄš‘¡š­‡Ź }Ľ›zœ“t…|e}vsyt‰he„XV†RQ“TS™VUžTUŁVWĽWXąSUÍVWĂZ\Ž[]ŠddĄnm–rr–xw—ƒ““Œ…¨žÂ¸–ÔËŞáŮşçáĆęäĘěćËďéŃńěŐńěŐńěŐďéŃéăČăÜ˝ÜÔłŐĚŠËÁżľ‘°Ś„™o|sX_XB?:,(% 001GGHccd……†ÓÓÓňňňýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙îíęÉÇŔšśŞŔšŸÓË­ÝÖšáÚťäÜźäÝźăÜťäŰşĺŢžčáĂëĺÉíçÍěćËęĺĘěçÍďéĐďéĎíćËéâÄăŰťÝÔąŘΊ×ΨÔʤŇČĄ×ΨŮŃŹ×ͨÎÝƺ’ÂśŽĂˇÇź”ĚÁ™Č˝•Âśž˛‹˝ąŠťŻˆśŞƒşŽ†ĂˇÇť“ÂśŽˇŤ…ťŻˆÁľŽŔ´Œżł‹żł‹ÁľŽÂśŽŔ´ŒżłŒĹş’ÎÛĎĜËŔ˜Ćş’Ŕ´ťŻˆˇŤ„ťŻˆÁľĂˇŔ´Œž˛ŠĂˇĆş’ĸÂśŽżłŒ˝ą‰ťŻˆťŻˆ˝ąŠÂśŽÄš‘źąŠąĽŠzŁ˜uĄ–s •r›o”‰iˆ~`tlQ]WAFA0+'  667hhj˘˘˘ćććţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůŇÎÄÄźĄËÁÎÜËŔ™ĎĝŐĘŁŐˤŃƟĚÁ™Ęž—Í›ŇČ ŐËĽŐĚŚŇČĄĘž–ÂśŽżł‹ťŻˆşŽ‡ž˛‹Ćş’Çź”ź°‰śŞƒşŽ‡ÂśŽÁľŽ¸Ź…ˇŤ„š­†¸Ź…¸Ź…ˇŤ…ľŠƒśŞƒ¸Ź…ł§˛Ś€´¨‚ŹĄ}ޞzł§ˇŹ…ˇŹ…ŽĽ€¨ž{Ś›x¨y§œx˘˜uŸ”r’pšn˜p“Šl™tœ•}˜‡ĘČŔřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţüüüěëęĹÄÁą°Ş•’‰qk\oiTwoV‚y[Š€b„e‘‡g–ŒlŸ–tĽœy¨žzŹĄ}´Šƒź°‰š­‡śŞ„ľŠƒťŻˆÁľÄ¸‘Çź•Ęż—ËŔ˜Ćť“żł‹ľŞ„ŻĽ€­Ł€ą§‚šŻźł˜ŻŚŽŸ–„™ƒĄ—ŠŁ™Œ™‘†”‰¤›‘Śš¨Ÿ˜Š ”ŞĄ”ą¨—şąœż¸ŁĆżŠĘÂŞÉŔĄÍÞÚŃ­ăŰşçßŔćŢ˝ĺÝťćŢžěćËđęŇďéŃîéĐčâĆŰÓąÍÄ Äš•˝ąŽŻĽ‚ž“s‡~ajcLPJ983'!&&'::;WWYyyz››œÖÖÖřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţőőôĺĺăÝÝŮšłÂťĄÍĆ­ÚŇ´âÚşĺÝžćÝ˝ĺÝźćŢžăÜźăÜźčáĂěĺĘîçÍëäÉćßżâÚšçŕÁęäĆéăĹéâĹăÚşŐ˧ÍÁ›Ęż—ĐƟ×ÍŚÚŃŹŮŃŹ×ΨÓɢĚŔ™Ĺš‘ÁľŽÂśŽĹš‘ĚŔ˜Ęž–Ćş’Ĺš‘Ĺš‘ĸ˝ą‰ťŻˆÁľĹš‘ž˛‹ŻŁ~˛Ś€şŽ‡ž˛‹˝ąŠťŻ‡ťŻˆ˝ąŠÁľÇť“Í›ŃƟÍ›ǻ“Ŕ´š­†śŞƒź°ˆÂśŽĹš‘Ćş’Ŕ´Œ¸Ź†żł‹ÂśŽťŻˆˇŤ„ľŠ‚˛Ś€˛Ś€ł§śŤ„šŽ‡şŽ‡ľŠƒ°¤~Ź {Ł˜t›o™Žm–‹kŽ„dyoU_WBF@01-! (()TTUœœÝÝÝűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüçĺßĂ˝¨ĂşšĚÁ›Ęż˜ËÁ™ĎĜŃǟŃƟĎĝ͚͚ĎĝÔʤÓĘŁĚÁ™Çť“Ŕ´ŒľŠƒ´ŠƒťŻˆÄš‘Čź”Ĺş’Ŕ´ťŻˆš­†şŽ‡¸Ź…˛Ś€˛Ś˛Ś€ŻŁ~Ž¤ą§´¨‚¸Ź…şŽ‡ˇŤ„ˇŤ„ťŻ‡şŽ‡š­‡ťŻˆź°ˆšŽ†ł¨‚Ž¤Ž˘~ąĽ€­Ł~§œy˘—tœ‘o•Šj‘‡g”‰išo•‹k„h¨ĄžşŻËÉÁŢŢÚţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüđđďŕŕŢĚËȒˆuqeqkZulV|sY‚y\ˆ`Ž„e”‰j–Œl™oĄ—uŠžząŚ€ˇŤ…š­†şŽ†ťŻˆżł‹Ĺš‘Í›ĎĜɽ–Čź”¡ľŤ…łŠ„šŻ‰Çź•ĎĜĐƞĚÁ™Ă¸’žłÁľŽŔ´ťŻ‰żłŒÂśž˛‹Ŕ´ŒÄ¸Çź”ÍÛÔˤŘĎŞŰÓŽÝŐ°ŢŐ˛ŕŘśćÝ˝ćŢžćŢžçŢžĺÜşäÜšęăĹęăĆäÜ˝ŕŘšŮŃŻĘŔœ¸Ž‰ŞŸ|›’qˆ€crjR[T@C>0/+!--.CCDhhi‘ˇˇˇáááúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţęéćÇÄšžşŹźš§ÉÁŁ×έŕٸăŰşäÜźćßżćŢżĺÝ˝ćŢ˝çŕÁčâĹęăÇěćĘěĺÉçŕÁă۸ŕŘľăŰšăÚ¸ŢŐ˛ŢŐłÚĐŹÎÜʾ–ËŔ˜ŇɢÖÍŚÖĚŚŇČĄĚÁ›Ćť”ÂśÁľŽÄ¸Ä¸Ćş’É˝–Ĺş’ÁľĂˇÇť“Č˝•ÂśŽżłŒĂˇÁľŽš­‡ŻŁ~ŻŁ~śŞƒ˝ąŠž˛‹˝ą‰ź°‰ž˛ŠÁľÇť“Ëż—Ęż—É˝–ĸşŽ‡´¨´¨‚żłŒÄ¸Ä¸Ćş’ÂśŽťŻˆşŽ‡š­†ľŠƒ´¨‚˛Ś€Ź |­Ą|Ż¤~°ŚłŠƒśŞ„ł§Ž˘}ޞzĽšxŸ•s˜l‚c~tYf^HMG672&#  
+
+ @@AttuŐŐŐúúúţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őőóÓŃĆĂźĄËÁ›ĚŔ™Ëż˜ÍÁ™ŃƟÔɢÓɢŃƟÎÜΛŇČĄĐƞǼ”Ćş’ÁľŽ˛Ś´¨ƒżłŒĘż—Čź•ÁśŽÂśŽŔ´ź°‰ˇŤ„ł§ąĽ°¤~ŽŁ}Šžz¨ž{Ť˘~´Šƒš­†ź°ˆşŽ‡ź°‰ÁśŽĂ¸ĂˇŔľžł‹źąŠšŽ‡¸Ź†ˇŤ…śŞ…°Ś‚ŠŸ|¤šw“q’‰h…e’‡g˜n•‹k’ˆh”Šl”‹o‘ŠsźšŽňňđýýüüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűöőôîîí×ŐÓŤŠ¤“‡qk\mfRskS}sX…{^‰a‹b…e•Œlšp —vŽŁľŠƒˇŤ…¸Ź…ťŻˆĂˇĚšÍÝƼ—Éž˜Çź•¸­‰šŻ‰Ĺš’ŃƟÓÉĄĐƞŃƟĐŞÍšËŔ˜Ęž–Çť”É˝•Čź•ŔľŔľĹš’ËŔ˜ŇČĄÖͧŮĐŞÚŃ­ÝŐ°ăŰščŕŔčŕÁćÝźäŰšçßżäÜťáŘľáءÚŃŻĐĆĄĘŔšŔľ‘ŽŁšo†}_phP]VBID462&&# 334MMOvvwŸŸ ŇŇÓňňóţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţůůůěëéÎĚČľ´­šś¨Ă˝¤ÖĎłßŮźŢŐľßÖ´áŮśŕŘľăÚšćßżçßżćßżćŢżęăÇíçĚęăĹéâĂčŕÁäŰšáŮľŕ׳ßÖąŘΊŃƟŇČĄŇȥ͚͚ĐŝÔʤŇɢÎÛʿ—Âśš­‡śŞ„ťŻˆĹš‘Č˝•É˝•Çť“Âśž˛‹ÁľŽČź”ËŔ˜Ćş’ĸĆť“żłŒˇŤ„ł§€˛Ś€ľŠ‚żł‹ÁľŔ´ŒŔ´ŒŔ´ŒĂˇĆş’Çť“Ĺš’Ćť“ᏸŹ…ľŠ‚š­†Ä¸Ĺš‘ÂśŽÄ¸Ăˇž˛Šš­†´¨‚˛Ś˛Ś€ąĽŞŸzŞŸzŹĄ}Ź˘~ŻŚł¨‚°ĽŤŸzŚ›xĽ›x —u“‰iw[lcLSL:>8*+'556bbc§§¨ďďďţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřÝÚÔÄ˝ĽÉżšËŔ˜Ëż˜Í›ŘΨ×ͧÓČ ÓÉĄÔʢÔĘŁŐˤÓɢÍÛʿ—Ĺš’żłŒĂˇĘż—ĚŔ™Ĺš’ť°ˆťŻ‡żł‹ÂśŽżł‹š­†ł§Ž¤Ź˘~­˘}ŠŸzŠžz˛§śŞƒśŞƒťŻ‡ÂˇČ˝•Ĺş’ÁľŽÁľĹš’Čź•Ĺş’ÁľŽť°ˆ˛¨ƒŻĽŻĽŞ |ž”s‘ˆhŠ€aˆ~`Œƒd‹b„d—l–Œl‘‡hĄ˜~Ź¤ŽÁťŠÂ˝ŹăŕÚňńîőôň÷÷öţţý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüüřř÷ěěëÍËɗ•rodniYngTskSzqUwZ†|^ˆ~`‰€d…jœ’s˘—uŚšxŹ |śŞƒŔľĆş“Č˝™ĆżĄĘÁ ËŔ™Ĺş“Çź”ΛŐËĽÔĘŁĎĜĚÁ™ÍšĎĜŃǟĐŞ˿—Çť“Ćş’Čź•Ă¸ŔľÉž–ĐŝŇÇ ŐˤŮĐŞŢŐ°ŕŘ´âŮśâŮśáŘ´á׳ŕ׳ŰŃ­ÓČŁČž˜ťąŒŻĽ€¤›y•‹l}tYf_GRL9@:,3.$)%%%';;<bbc••–ššşÔÔŐýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ÷÷öćĺâ×ÖŃŮ×ĐËÇşÁťŁĐ˲ŮÓšÝÖ¸ßסßÖśáŘľŢŐ˛ÜŇŻßÖłâ١ăŰšäÜťćŢžéáÁęăĹéáĂäÜťă۸ăÚˇáŘ´ŢŐąÚŃŤÔˤÍÁšÇť”Ëż˜ĐŞŃƟĎĝÍ›ËŔ˜Ęż—Éž–Čź”żłŒ´¨­Ą|´¨‚áĘž–Ëż—Č˝•Çť“Ćş“Čź”Ęż—Íšɽ•É˝•Éž–ÁľŽš­†ˇŤ„ˇŤ„şŽ‡ĂˇÄ¸ÁľŔ´ŒÂśĆş’Čź”Ęž–ËŔ˜Ęž–Ćş’Ŕ´ŒŔ´Äš‘Ęž–Çť“ÁľÁľżł‹ź°‰żł‹˝ąŠł§­Ą|Ť {ŹĄ|ŞŸz§yŠŸ|ŤŁŤ˘~ŠžzĽšw˘—t’q“‰i‚x\pgNZS?>:,*'
+++,hhi­­Žéééţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűěęćÇÁ­Âˇ•Éž—ĚÁ™ĎĝŐĚŚŐĚĽŇČĄĐƞÓȢ×ΧŘĎŠÖÍŚŇČĄÎÛ˿—Čź”Čź”Çź”Äš‘żłŒşŽ†ťŻ‡ž˛Šżł‹ź°ˆš­†şŽ‡łŠƒ­Ł~Ť {ŞŸzŤ {ąĽˇŤ„ťŻˆž˛‹ÁľŽÂˇŔ´Œ˝ąŠŔ´ŒÄ¸Çť“Äš‘żłŒ¸Ź…°Ś­˘~ŞŸ{“r“‰j‘‡gƒdƒd•‹k—lšmž”s“qœ‘o •sŞŸ}ą§†łŠ‹ľ­’Âť§ÇÁ°ÍĘźăŕ×çćßđđíůř÷ţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúúííěÎÍ˨Ś˘’ˆtobe_MjcMtkRzrV|rV}tZ€w]ˆbƒf’ˆj›‘p§œx˛§‚şŽˆŔ´Ăš˜Ç˝™Éž—Ęž–Ęż—ËÁ™ĎŝÍ›ɾ—ĚÁšĐŝŃƟĐƞŃƟÓČĄĎĝʿ˜Č˝•Äš‘ÂśĆş’ĚŔ™ĐƟÓČĄÓÉŁÓÉŁÔÉŁÔʤÔʤÓȢĎşĚÁœÂ¸“ˇŹˆŞŸ|›o‹‚dzrWf_HPJ8>9,2.#&# ,,->>?ffgŠŠŠÚÚÚóóóţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűúóňńěëéÔŇČÉĹłŔť§Ŕź¨ĚĆ­ŘѲáŮşćŢŔçßÁĺÝ˝áءŢŐ˛ÝÓŽÜŇ­ÜÓŽŕײăÚˇĺÝźćŢżćŢžăŰşŕ׾ŢÔŻÝÔŻÝÔ°ÚĐŞÔʤÎĝɿ—Ćť“Ĺš‘Č˝•Éž–Ćş“Äš’øÁśŽÄ¸Čź”Ęž–ÂśŽśŞ„˛ŚśŤ…žł‹ÂˇĹš’Čź”ĚŔ˜ÎÜĎĜÍ›˿˜Çť“Ĺş’Ćť“ᐿł‹˝ą‰ž˛ŠÁľŽĆş’Ćş’᏿ł‹ÁľÇť“Ęž–ÍÁ™ÎÛÍšʿ—Čź”Ĺş’Ĺš‘Ćť“ÁľŽťŻˆ˝ą‰˝ą‰şŽ‡ťŻˆťŻˆ¸Ź…´Š‚ąŚ€ŽŁŠž{Ľ›xŚœy§ž{§zĽ›xĄ–s™ŽmŽƒd€vZofMZS?C>/-*  LLLœœććçýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ÷öôÎĘ˝ź´˜Ćź—ĚÁ™ÎĝŃÇ ŇČĄŃǟÎÜŇÇ ×Ί×ĎŠÖͧŐˤÓɢŃƟÍ›ǻ”Ŕ´Œź°‰şŽ‡şŽ‡ź°‰ź°ˆ¸Ź…śŞƒťŻˆÂśź°‰ąŚ€ŤŸ{ŹĄ|°¤~ł§şŽˆÂśŽÁľ˝ąŠťŻ‡ťŻˆź°‰ž˛‹Ŕ´ŒÁľŔ´ŒşŽ‡ł§Ž˘}§›x’qŽ„e‹c™Žm’pŸ•r¨ž|­˘}­˘|ŞŸ{§œx§xŤ |°Ś´Š„ˇŹ†ˇŹ‡ˇŹ‰ľŤˆľŹ‹ş˛–şłš˝ˇŁŘŐËęčăëéĺíěč÷öőýýýţýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýôôôăăâĆĹהjg]faRhaNkcLneMriPskQvmR{rW€x]‰€c“‰j”r§œx°Ľ¸­‡˝ąŒÂśÄš’áÁśĂ¸ĂˇÄ¸‘Ęż˜ÎÜÎÜĚÁšĎĝÖ̧ŐËĽĐŞǼ”Ćş“Ĺš’øĹş“ĘŔ™ËŔšĆź–ÁśÁľŽÁľŽžłşŻ‰śŤ†ŻĽ€¤™v•‹kˆ}`ulRc\FPJ8>9*.+!$!''(668JJKhhhŽŽŽčččţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýůř÷ÜŰÖĂÁˇžťŻž¸ĄÍŧŮѲŕŘťăŰ˝ăŰťâÚšäŰťčŕÂéáĂĺÝžÝÔ°ÝÓŽßÖąÜÓ­ÝŐŻâŮśĺÝźäÜťŕ׳ÜŇ­ŘΨÖËĽÖĚŚÖͧŃǟɾ—øŔľÁľĂˇĆş’ÂśŽ¸Ź…¸Ź…ťŻ‡şŽ‡Ŕ´Čź”ĚÁ™Ćş“ź°‰ťŻˆťŻˆşŽ‡şŽ‡˝ąŠĹš’ΚÓČĄÓɢĎĝʾ–Ĺš‘Ŕ´Ŕ´ŒĂˇĹš‘áÄ¸‘Çť“Čź”Ćş’Ꮮ˛‹ÂśŽÉ˝•Ëż—ĚŔ˜ÎÛĎĜĐŝĎĜȽ•ÂśŽż´ŒťŻ‡śŞ„şŽ‡ťŻ‡ˇŤ„ľŠ‚ˇŤ…žł‹żłŒťŻˆ°ŚŞŸ|Ś›xŚ›xŚ›x¤šv˘—ušnƒd|sXkcKZS>C>/.*  <<>wwwÁÁÁůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűéçâšłžŔľ’Ćť”Éž–Í›ÎÜÍ›ŃÇĄÖĚŚŐËĽŃĆ ŃƟÖˤŮĐŠŮĎŠĐŞŹ’źą‰˝ą‰ž˛Š˝ą‰ťŻˆˇŤ„ľŠ‚ťŻˆÄ¸Éž–øťŻˆ´¨‚´¨‚śŞ„şŽ‡ž˛‹Ŕ´ž˛ŠşŽ†š­†ž˛‹Áľź°‰˝ąŠżłŒŔ´Œź°ˆł§Ľšv•‹jƒe’ˆhž”qŹ {°¤~ąŚ€śŤ…ľŞ„ľŠƒˇŹ†ˇŤ…ł¨‚ą¨‚˛Š„ľŤ†şŻˆž˛‹żłŒż´ż´ť°ŠśŤ‡˛¨…ą¨‰ˇ°—š˛šş´ŸŐĐĂŘÔČÚÖÎăáÚőőňüüűýýü˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűňňńÖÖÔŠ¨Ľ“‘‹ola]XI`YFd]Hf_Ig_HldLqiPxpU€w[†~a„e—m˘—vŞŸ|ąĽ€´¨„˛Ś‚°¤€ľŠ„şŽ‰źą‹ž˛‹żłŒŔľŽĂ¸‘Č˝—ËŔšÍ›ËŔšČ˝–Ĺş“Âśž˛‹şŽ‰śŤ†ł¨ƒŹĄ~§œy§œx¤šwŸ“r˜m”Ši‹c€vZriPc[ENH7=8*.+!$!!! +++212CCD€€••–žžżçççýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţööőëęéáŕÝÎĚÄżš¤É§ŃËŻÚŇ´ßظăŰťăŰťĺÝźĺÝ˝ćŢżçßŔéâĹéăĆçŕÁáŘľŕ׳ŕ×´ßÖ˛ŕ׳ŕ׳ŢŐąŮĐŤÖËĽ×ͧÖĚĽÎÜĚÁšĚÁšĘż—Ĺş’Ŕ´Œź°‰š­†š­†ž˛Šżł‹š­†şŽ‡ź°‰şŽ†żłŒÇť“ĚÁ™Č˝•żłŒź°ˆşŽ†¸Ź…¸Ź…ťŻˆÂśŽĘž–ĐŝŃƞĎĜĚÁ™Čź”Ŕ´Œš­‡Ŕ´Č˝•Ęž–É˝•Čź”Çť“᏿łŒÂśŽÉž–Í›ƻ“áĘž–ĐŝÔĘŁÔËĽËÁšŔ´ź°ˆťŻ‡şŽ‡ˇŤ„´¨ł§´¨‚ť°ˆĆť“Ĺš‘ž˛‹ľŞ…Ż¤€Ş }Ť {Šy˘—ušnƒd€vZneMYQ>C>./+  224qqrľľśôôô˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýňńîŃÎż¸Ż‘žłŽÄš‘Çź•Ęż˜ÍšŇČĄÔʤŇÇ ŇÇ ÔÉŁŐËĽÖĚŚŐĘĽĎĝź’ž˛Šżł‹żł‹ź°ˆˇŤ„ł§€ł§€şŽˆÄ¸‘Éž–ĸ˝ą‰š­…ľŞ„ľŞ„ź°‰ÁľÂśŔ´ź°‰şŽ‡żłŒĂˇżłŒž˛Š˝ąŠżł‹ťŻˆŻŁ~—Œk‰€a‡gŁ™vśŤ…żłŒźą‰š­†¸Ź…ˇŤ„¸Ź†ÁľżłŒšŽˆśŤ†śŹ‡šŽˆż´ÂśÁľÁśĂ¸ÂˇžłŒž˛ŒźąŠˇŹ‡´Š…˛¨„°Ś…šą–ż¸ŸĆŔŤĎËťÓĐÄÚ×Îěëçüüüýýüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţůůůěěěÓÓŃĄ œuslnk`b]Q]XI\VDaZEe^HibIogNtlRzrVƒz]Œ‚d’ˆi—m“rŸ”sž”r˘—v§œyŠž|Šž{Šž{Ź }Ż¤€˛¨ƒśŹ‡ˇ­ˆ¸­‡¸­ˆ´Š„­˘~§zž”t—m’ˆh‹‚d…|`„{^y[zqVtkRphNhaI]VARL9E@/2/#&#%$$,,,//0;;;OOP``a{{{ÇÇÇöööűűűýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţýúúúíěëÇĹ˝ˇ´Ľś˛ ŔťĽÔÍ°ÝÖľáٸäÜťćŢžçŢżĺÜźăŰšâÚ¸ăŰşćŢžéâĆčáĂćŢ˝ăÚˇÝŐ´ŘѲŰŇ°ŢŐ°ŢŐ°ÚŃŹŐˤŃƟŃĆ ŃÇ ĚÁ™Éž–Čź”Čź”ĸŔ´ŒťŻ‡ˇŤ„¸Ź…ž˛‹ĂˇÂśŔľž˛ŠˇŤ„š­†Ŕ´ŒČź”Çť“ŔľťŻˆ¸Ź…š­†˝˛ŠÂśÄ¸Čź”ĚŔ˜ÎÛĚÁ™Ęž–Ęž–Ĺš‘ž˛‹ÂśÉ˝•Ëż—Čź”Ĺš‘ĸŔ´ž˛‹Ä¸‘Ęž—Ęż˜Ä¸‘ĸ‘ĚŔ™Í›ÎĝĐƟȽ–ž˛‹ź°ˆşŽ‡š­…ľŠƒąĽ€Ż¤°ŚşŻ‰Ćť“Âśš­†ľŠ‚Ź˘}¤›xĽšvŁ—tœ‘p…f~uYnfLZS>D>.-)  --/hhiąą˛óóó˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűúĺăÜŔšŁťąŔľĂˇČ˝•Í›ŃĆ ŃÇ ĐŞ×ͧŰŃŤŐˤĎĝΚÎÛǼ”żłŒž˛Šź°ˆ¸Ź…´¨‚˛Ś˛Ś€śŞ„˝ąŠĂˇżł‹š­…śŞ„°Ś­¤€šŽ‡ÂśĆş’Çť”ᏽąŠżł‹ÂśÄ¸żłŒťŻ‡ź°‰ˇŤ…ŠxŠ€b‡~` •sľŠ„øÇť”ÁľŽš­†ľŠ‚śŞƒşŽ‡ŔľżłŒťŻˆşŻˆ˝ą‹ŔľŽĆť“Čź”Äš‘ĸĹš‘ĸÂśŽÁľŔľŽž˛‹źąŠ˝˛‹ť°ŠˇŹ‡ľŤ†ľŤˆŻĽƒŞ ‚Ť˘†ş´žÉšÎËŔŢÜÖöőó˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýý÷÷÷ăâáżžźŤŞŚ|zsfcZa]Qc]N`ZI_YEc\Fg_ImeMulQyqV}tY‚y\‰b‹c‹‚cŒ‚d†f’‡h‘‡h‘‡h“‰i•‹k—Žm›‘pœ’r’q’q™n†h‡~a}tZvnTqhPkcLf_Hd\E`YD[T@WP=SM:KF5C>/:5)0,!$!$##'&&+++;;;VVVWWX^^_€€€ˇˇ¸ËËËćććűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙îîíÜŰŮĐĐĚÉÇÂżź˛ĹŔŹÓͲŮŇ´ŢÖ¸äÝÁĺŢŔäÜťäÜźäÜťăŰšăŰšá١ßÖłÝÔ°ŕ×´ĺŢžäÜťáŘ´ŢŐąÔĚŽËĹŞŃČŚ×ͧŮŃŹÚŇŹÖͧŃƟÎÛĚÁ™ĚŔ˜Ęž–Çź”Ćş’᏿łŒź°ˆťŻˆž˛‹ĂˇĆş“Çź”ĸ˝ąŠľŠ‚ł§ˇŤ„żłŒÁľŽž˛ŠťŻ‡š­†ťŻˆĂ¸Ęż—É˝•Č˝•Éž–ĚÁ™Éž–Ĺš‘Éž–Éž–Çť“Çť“Čź”Çť“Ĺš‘ÂśŽŔ´ŒŔľÂśČź”Čź•Ćť“Ćş“Ëż˜ĐŞʿ—Ĺş’Éž–ĸź°‰ťŻˆˇŤ„ł§´¨‚˛§‚­¤€­¤€ľŤ†ŔľŽťŻˆ˛Ś€­Ą|Ł˜t˜Žm–Œk•‹j‘‡g…{^ogNYR>E?//+!
+((*jjk­­Žććçýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţóňďŃÎÁ¸°“ş°ŠŔ´Ĺş“ĘŔ™ĐĆ ÔÉŁÔʤ×ĎŞ×ΨĐŝÍÁšÎÛĐƟȼ•ź°ˆˇŤ„ˇŤ„¸Ź…śŞ„ľŠ‚ľŠƒˇŤ„şŽ‡ź°‰¸Ź…ł§ŻĽ€§z¤šwł¨‚Ŕ´Çť”Ëż—Éž–ĸ‘ĸÄ¸‘ᏽąŠ¸Ź…śŞƒ°¤~Ł˜t‰€aŽ„eŤŸ{š­†ž˛‹Ŕ´żł‹˝ą‰ťŻˆťŻˆź°‰¸­ˆˇŹ†şŽˆżłŒÄ¸‘Ćş’Ęż—ĚŔ™Éž–Č˝•Čź”Ćş“Ĺš’ĸ‘ĸ‘ÂśŔ´ŔľžłŒťŻ‰ť°‰źąŠşŻ‰śŞ…´Š„łŠ†ŻĽ…Ź¤†ľ­”ś°œťľŁşľ¤ÎĚÂ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűňńńääăÁÁż–”‘‘Šspg`\PYTF]WF_ZFb[Gg_HibJmfMskQxoTxpTxpUypU{rV{rV{rWzqV|sW}tXvY€w[x\ƒy\‚y\|sXskQh`J]VCWQ=SM:OI7LG6ID3F@1B=/?:,;7)51$/,!(&"&&%777DDEHHIffgƒƒ„‘‘’ĄĄ˘ŇŇŇďďďřřřúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüűűüüüééçÍËÄÄÁśÁ˝­ĆÁŽÎČłŰŐşâÜžăŰşăÝ˝ćäĚćăÉĺÝžß׾ÝŐ˛ŢÖ˛ŕŘ´ŕ׾ÝŐąÝÔ°ŢŐ°ÝÔąÜÓŽŮĎŞŇÇĄČž›Áˇ–Ĺť–ĎĝÖÍŚŮŃŤŘĎŠÔĘŁŇÇ ÎÜǼ”Çť“Ĺš‘˝ąŠź°‰żł‹ž˛‹ž˛‹Ŕ´ŒÂśŽŔľ˝ąŠž˛Šž˛ŠˇŤ„ˇŤ…¸Ź†´¨ƒł§‚śŞ„şŽ‡˝ą‰ž˛‹Ĺš‘Ëż—ĚŔ˜Ęż—Č˝•Ęž–Čź”Ĺş’Ĺš‘Ćť“Čź”Čź”Ćş’ĸÄ¸Ăˇž˛ŠÂśÉž–ĎĜĐŝÍÛʿ—ËŔ˜ĎĜȼ•Ĺš‘Í›ʾ—Ŕ´ł¨‚ŻŁ~°¤~˛ŚąĽ€Ż¤ąŚľŞ„ˇŤ…´¨‚­˘|˘—s—Œk‚cˆ~`‡}_ƒy\xoU`XCE?01-!  $$&jjlŻŻ°ęęęűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüěęćÇÂŻľ­Žş°ŠÁśĹş”ĘŔ™ÎŞĐÇĄÓËĽŇȢ˿˜É˝•ÍšŇČĄËŔ™ż´ŒśŤ„ˇŤ…ź°ˆşŽ‡ľŠƒł§ˇŤ„ťŻˆź°‰´¨‚ŹĄ}ŞĄ}¤œy˘™vŽŁ~¸Ź†˝ąŠÄš‘É˝•É˝•Ëż—Ęż—ĸ‘Ŕ´ź°‰´¨‚¤šv”ŠjŽ„eœ‘o˛Ś€śŞ„ˇŤ„ťŻˆżł‹ÂśŽŔ´Œ˝ąŠśŹ†­¤€°Ľ€şŽ‡żłŒÁľŽÄ¸ËŔ˜ĐŞĎĜĚŔ˜Č˝•Ćş’Ćş“Čź•É˝–Ćş“Ĺš’Ćş“ᐞ˛‹žł‹ż´ź°Šť°ŠžłŒżľŽťą‹śŤ…łŠƒąŚ‚­Ł€ŤĄ}§ ƒšľ§ŇĐÇŰŮŃíěčňđíóňđ÷÷őř÷öýýýýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüůůůôôóććĺĎĎÍŁŁ ‚€{xvnrodb]QZUG\VD]WC_YDd\Ff^Hf_Ig`Ih`Ig_Ig_Hf_Hg`Hg_Hg`HhaIjaIiaJjcKibJd]F[T@QK9F@1>9+:7):6)84(40%0-#.+!,) (%$" "!---;:;aaaŒŒŒŽŽŽ¤¤ŁËËËńńńóóóőőőüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüüůůřńńďäăŕÚŮÓČĆžŽŤŸŠŚ™ŠŚ™ľ˛ŁÇÂŻ×ŃşâÜÂćŕÄçŕĂčâÇčâĹĺÝžäÝžćäĚçăËĺÝžÝÔ°ŰÓŻß×´áŘľÝÔłÖĎąÖĎąŮŃąŮĎŤÔĘŁÍ›ǻ“żłŒşŽ‡ź°‰ÁśÇž—ÍĞŃÇĄŃÇ ÓČ ŃƟʾ—Çť“ᐽ˛‹ź°‰˝ąŠżłŒÁľÂśŽżłŒşŽ‡śŞƒşŽ‡żł‹ž˛ŠşŽ‡´¨‚ŞžzŠžy°¤~ˇŤ„şŽ‡ťŻˆÁľČź”ĎĜÍÁšČź”ĸÄ¸Ĺš‘ĸĹš‘Çť“Čź”Ĺš‘Ŕ´ŒÁľŽĂˇž˛‹ĂˇĚÁ™ĐŝŃƟĐŞÍÁšĘż—É˝–áÂśŽËŔ˜ËŔ˜Ăˇł§°¤ľŠƒ¸Ź…´¨‚Ž˘}ŻŁ~˛Ś€´¨Ž˘|¤™u—ŒkŒ‚cƒz\|sWtlRkcK_XCHB2/+  ''(SSTĄĄĄôôôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűúůăáÚÁź¨ˇ­Œ˝˛ŒŔ´ŽÄš’Çť”Čź•Ě›Îĝȼ•Ä¸‘Čź•ŇÇ Ńǟʿ—Ŕ´Ŕ´Ăˇź°‰ąĽ€­Ą}ľŠƒżł‹ż´ľŠ„Ť |ŤĄ~ŞĄ~Š |ŽŁ}Ž˘}Ż¤şŽˆÄ¸Čź”ÎÛĐŝȽ•Ĺš’ÂśˇŤ„šo„{^“ˆiŠžzľŠ‚ľŠƒśŞƒ˝ą‰ÂśŽÄ¸žłŒľŤ…ŹŁ¨ž{ąĽť°‰¸­†ˇŤ…˝ąŠÉž–ŇČĄŇČĄĎĜɾ–Ćť“Ćş“Č˝•ÍÁ™ËŔ˜Č˝•ËŔ™Čž–Ŕ´ÂˇĹş’ż´Ŕ´Áśż´Žť°Š¸­†šŽ‡ˇ­‡łŠƒąŚł¨„¸Ż˝´“˝ľ—ş´œĹŔŹÇÁŻËǸŐŇÉéçâěëçđďěőőóúúůüüűýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýý÷÷÷ččçŮŮŘÂÁŔşšˇ–•uslgd\gbW_[M[WG^XG`ZGaZHa[Gb[Ga[G_YE]XD_XD`YE_XE^XD`XC`YD`YE_XC[T@SM<LG7C>2:6+41'41(2/'-+$+(!)& '$$#$""!"!%$#888SSSiii  ŸˇˇˇĘĘĘŕŕŕřřřřřřůůůűűűýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýüüűűűůůřďďíÜÚ×ŃĎÉËÉŔÇÄš¸ł ¸˛™ÂťŸËĂŚŃĘŹÖĐľÜÖťâÜÁçŕĹčâĆčâÄčáĂčâÇçáĹĺÝ˝ăŰşćßÂčáĹçßŔăÚ¸ăŰšćŢžăÚ¸ŘĐąÍÇŽĘĹŽĐÉŻŘĎŹĐşŹ’¡ž˛‹š­†¸­…ľŤ…´Ť†ž´Çź”Éž–ÍšĐŝĐŞʾ–øĆş“ÁśŽź°ˆž˛‹ĂˇÄ¸żłŒš­†ˇŤ„ź°ˆÁľÂśˇŤ…Šžz¤™vŠy°¤~˛Ś€ł§ľŠ‚ťŻˆĹš’ĎĝÍ›ǻ“Ŕ´ż´ŒÂśĹš‘Çť“Čź”Çť“Âśž˛ŠżłŒÂśŽŔ´ŒÄ¸Čź•Ęž–Ęž–Ęž—Ęż—Çź”ÁľŽź°‰ź°‰ÂśŽĆş’Ĺş’ź°ŠťŻ‰Ŕ´ŒÁľŽ¸Ź‡ŞŸ{Śœx­Ą|ľŠƒŠžz™Žm‘†f‡}_}tXtkQe]FTM:F@02-"  **+YYZ““”ćććýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţôóń×Ô̡Ż“ˇ­‰ť°ŠŔľĂˇÁľŽĂ¸Ĺş’ÁľŽÂśÉ˝–ÓČĄŐĘŁŇČ ÍĝËÁšČ˝•ź°‰°¤Ž˘}ľŠƒşŻˆˇ­ˆľŤ…´¨ƒ˛§‚°Ś­Ł~Ť {Ź {˛Ś€˝ąŠÄ¸Ĺš‘ĚŔ™ÎÛƺ’᏿łŒ°¤’ˆi€vZ˜ląĽ€şŽ‡şŽ‡şŽ‡ź°ˆŔ´ŒŔ´ľŤ†Ş }˘™vŚœzľŤ†Áśˇ­‡´Š„żłŒĆş“ËŔ™ĐƞŃƟĐƞĎşĚÁšĘż—ĎĝΛǼ”Éž—ĚÁ™Éž—Éž—Éž–Ĺš’Ĺš’Ĺş“¡ž˛‹şŻˆ¸­‡ľŤ…łŠƒˇŹ…ž˛ŠÄš‘Ĺš“ż´Žť˛şą‘¸ŽŽą¨‰ˇŻ”š˛ššł˝ˇŁÂ˝ŹËÇşŇĎÄÜÚŇęčĺôóňřřřüüűüüüýýüýýýţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţřřřööőňňňëëęÇÇĆ  ž—–‘ŽŒ†{yqvsiqoblhZjeVlhXkeUgaQc]Mb]Ma\Ka[J`ZJ`[J`[I`ZHa[Ia[I_XFZTCWRBRNBHE<?<5;82:82983972751531763<;8FDCKKJRQQkkk………ŻŻŻŃŃŇđđđűűűýýýüüüüüüýýýýýýţţţţţţ˙˙˙ţţţýýýüüüúúůôóňćĺăÚŮŐŔ˝ąŔźŹşľ˘ş´ŔşŸÇŔ¤ĐǨÖÎŽÝŐľáظăŰşćßŔéâÄęăĆęäÇéâĆćßŔăŰťáŮšáٸáءăŰšçßÁéâÄéâÄčŕÁčáÂçŕÂŕ׾ŐĚŠÍĹĽËĂĽÍĤŃĆĄËŔ™Ćş“Çť”ᐟ°‰śŞƒ°Ľ€°§ƒŔśÉž—Ćş’Ęž–ÎÛÍšǻ”ÁśŽÁľŽ˝˛ŠťŻ‡Ŕ´Ä¸ĂˇżłŒşŽ‡śŞƒ˝ą‰ĂˇÂśŽąŚ •s’p¨œyľŠƒśŞ„ľŠ‚śŞƒťŻˆÂśÇź•Č˝–Č˝•Éž–Çź”Ĺş’Çť“Čź”Ćş“Ŕ´˝ąŠÁľĹš’Ćť“ÂśŽÄ¸Çť“Čź”Čź”Çť“ÁśŽť°ˆ¸Ź…¸Ź…şŽ‡żł‹Ćş’Ęž–Çź”É˝–Ęż—øśŤ…Ş }Ľ›x¨yŤ | •r“ˆhŽƒcƒy\ulRe^GUO:D?.4/#! ""#TTU˜˜™âââüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýóóńĹŔŽ¸Ż’ś­‰ť°ŠžłŒź°Š˝˛‹żłŒ˝˛‹ĂˇĘż—ĎŝŃǟŇÇ ŃÇĄÎŞĘŔ˜ŔľŽˇŹ†ľŠƒśŞƒľŞƒ°Ś´Ş„š­†śŤ„ł§°¤~­˘}ąĽ€š­†ž˛ŒŔľŽÂśŽÉ˝•ËŔ˜Ăˇž˛‹ˇŹ…Ś›xŽƒe‚x\ž”qš­†Ŕ´ŒÂˇÂśŽŔ´ĂˇĂ¸š°‹Ť˘Ł˜uŤĄ~şą‹Äş“źłť˛Ćź”Ĺş’¡Ĺť”ËŔ™ŃÇ ÖÍŚÓÉŁĎĝÓČĄĎĜƻ“Ćť“Ëż˜ŃƟŃƟĐŞÍ›ʾ—Čź•Čź•Ĺš’ż´ŒşŻ‰ˇŹ†ˇŤ…˝ąŠÄ¸Çť“Ćť“ĸ‘Áśžłźą‹şŽ‰ľŤ…ł¨ƒł¨„ą§„ŻŚƒŻĽ…ŻŚ‡ˇŻ”¸ą›ĆÂłŐÓÉĺäÝâŕÚÝŰÖěëčîíęëęçëëč÷÷öúúůúúúüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţýýýýýýřřřňňňëëęććĺÔÔŇżžźš¸łŸ—†„}‚v‡„z~sxtjtpfvrgtpdqmcspewthtobuqdtpcrm`ql^tqcqmahe\ge^ca][YVYXU`_\ihfpnnoontsrƒƒ‚ŽŤŞŞž˝˝ĘĘĘŢŢŢđđđ÷÷řţţţ˙˙˙ţţţţţţ˙˙˙ţţţţţţýýýűűúůůřóóňŰÚŐÁżˇś´§ÄÁłĆÂążš¤ÂťŸĚĹŚŐÍ­ÚŇąŢ׾ŕٸŕŘśâÚ¸çßÁčáĂçáÂéâÄęâÄéáÂčŕÂçŕÁäÜťßÖłÝÓŽŢÔ°ŢŐąáŮľçßžéáÂčŕÂćŢżäÝ˝âÚšÝÓ°ÖĚĽŃÇ ÎĜËŔ˜Ćş“Ĺš’Ćş“Çź”ø˝ąŠśŞƒ˛§‚ľŹ‡Â¸’Çź•ÂśŽÇť“ËŔ˜Č˝•Ăˇ˝ąŠşŽ‡şŽ‡ž˛ŠĹš’Çź”Ĺš‘ĸŔľź°‰ÁśŽČź•Ĺş“śŞ…Ľšw˘—t­Ą}şŽ‡ž˛Šž˛‹ž˛‹Ŕ´Ŕ´Œź°‰ž˛‹Ä¸‘ÍÛÎÛ˿—ËŔ˜Ęż—Ćş’ź°‰şŽ‡Ĺš‘ĚÁ™ÎÜȽ–Ćť”Ćş’ĸ‘Ćş’ĸşŽ‡ł§śŞƒśŞƒš­†Ŕ´ŒĆť“Ęż—Ęż—Ęż—Çź–ŔľŽˇŹ†ŽĽ€¨žzŁ˜už”q”Ši‹a†|^xoTf^GTM9C=-3/##  ''(MMNááâüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýďîëÉÄľşą–śŹˆš­ˆşŻˆž˛‹żłŒżłŒĹş’Ęż—Ćť“Çź”Čź•ÂˇĂ¸‘Č˝•ËÁ™Çź•żłŒťŻˆśŞ„˛§€˛Ś€ł§€ąĽąĽ˛Ś€ˇŤ„ťŻˆťŻˆśŤ†śŹ†ż´ŒÇź”Éž–ÁśŽ¸ŽˆŹŁœ’pŒƒdŠbŠzÁľŽĆş’Ęž–ĚÁšÍ›ĐŞŇɢĐǢÁˇ‘ł§‚ˇŹ†žłŒÂˇĆť”ĚÁšĐƞɾ–žłŒś­ˆťą‹Ćť“ŇČĄ×ͧ×ͧÖĚŚŃƞɽ–Ĺş’Çź”Ďĝ×ÍŚŰŇŹŮĎŞÎÜŒʿ—Ęž–Ćş’Ćť“Äš’ÂśĂˇĂ¸ĂˇĆş’Ćş’ŔľŽŔ´ŽÂśĂˇŔľŽźąŠť°‰şŽˆśŹ†¸Ź†¸Ź†ˇŹ‡ˇŹ‡ł¨†°§‡¸°’˛Š‹¨ „ˇ°˜ť´œ¨ĄŠĽŸŮÖĚÓŃĆÎËÂŮ×Ńçćâééĺéčĺňńđűűúýýüüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţţţţýýýýýýűűűúúúřřřóóóďďďíííääăťş¸ˇś´źťşÂÁžşšˇśľłš¸śŔż˝ŔŔ˝żż˝Ŕż˝ÄĂÁĹÄÂŞŠĽ•”›™–şšľŞŞŚ—–“›š—ŁŁ˘   ¤¤¤ŹŹŤĂĂĂČČČĎĎĎÔÔÔÖÖÖŕŕŕňňňőőőöööýýüűűűůůůúúúűűúőôóííěëëéęéçęéçĺĺâÖŐÎĘČżĂŔążş¤Ä˝ŁČÁŁËĂŁŃÉŠŘĐ°ŕŘšĺÝŔćßŔĺŢžćŕÁçŕÂäÜźăŰšçŕŔéâĹëäČëäÉéáĂĺÝźäÜšäÜťćÝ˝ă۸âÚˇăŰťŢŐ˛ŰŃ­áŘ´ăÚˇáŘ´ÜŇ­×ͨÖĚŚŰŃŤÚĐŞÔĘŁÎÛƺ“ż´Œżł‹żłŒź°ŠťŻˆš­†¸Ź…şŻˆ˝˛‹ťŻ‰š­‡ź°‰ÂśÇź”Ćş“ÁľŽź°ˆşŽ‡ž˛‹Ĺš’Ëż—ÍšĚÁ™ĚÁ™ĚÁ™ËŔ˜Í›ĐşÓÉŁČž˜ź°Šš­†š­†ź°ˆÄ¸‘Ęż—ËŔ˜Éž–ÁľŽ˛Ś°¤€¸­†Ĺš’ĚÁ™ĎĜŃƟĎĜɽ•żłŒ˝ąŠÇť“ĎĜÔĘŁÔʤĚ›øž˛‹Ŕ´ĂˇşŽ‡ˇŤ…ž˛‹š­†ˇŤ„ÂśŽÄ¸ĂˇÁľŽšŽ‡ł¨ƒź°Š˝ąŠł¨‚ŞŸ{Ÿ”r”‰iˆ~`~uXtkQd\ERL8A<,0+   **+YYZ””•äääüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüűçćŕĆÁŻś­´Š…ˇŤ†ťŻ‰źąŠşŽˆÁľŽĆť“¡Ä¸Ćş’ÂśÂśŽÄ¸‘Ćş“Ćş“øżłŒťŻˆ¸Ź…´¨‚°¤~°¤~˛Ś´¨‚´Ş„łŠ„ł¨‚´Ş„šŽˆžł‹ž´˝łżłŒť°‰Ž¤€”‹kŽ…fš‘p´Š„Ćş’Čź”ĚÁ™ŇÇ ŘͧŰŃŤŰŇŹ×ΨËÁšżłŒź°‰ž˛ŠÁľÇť“ĎĜÓÉĄÎÛŹ’ź˛Œźą‹Ä¸ĐƟ×ͧ×Ψ×ÍŚÓɢĎŝÍšÍÛŇČ ×ͧŰŃŹÚĐŤÔʤÎÞÎÜʾ–Ćť“͛̚ĸ‘Ĺš’Çť“Ĺš‘Čź”Č˝–ĸ‘ĸĹş’Ćş“Ĺş’Äš‘¡żłŒ˝˛Œ˝˛‹ź°‰şŻˆť°‰˝˛‹˝ą‹˝˛‹źąŒşŻŠ˝łŽÂ¸”şŻľŤ‹ĆżŁžˇ›ˇŻ”˝śŸŔş¤š´ ľ°ĘĆšÖÓÉÓĐČŃĎČđđíňńďńńîôóňţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţţţýýýýýýýüűűúúúúúúúúůóóóííěďîîóóňńńđěěěîîíďďďîîíďďďđđďěěěęęęîîîßß߯ŻŻŔŔŔčččăăăŮŮŮßßŢęęęďďďôôôöööřřřúúúűűűűűűűűűűűűůůůôôôóňńđđîëęčççäĺäáŮŘÓËÉĂČĆžĂÁˇźšŹ¸ľŚšľ¤źˇĄŔšĄĘÂŚŐÍŽÜÔľŕŘšß׸áٸâŰšĺŢżéâĆęăÇçßÁćáĹçäÍćŕĹĺÝžçŕÁęăĆëäÉéáÄčáĂčáÁäÜşáŘľáŘśäÜşâŰ˝ÚÔš×ĎŻŘΨŰŃŤÜŇ­ÚŃŞŐĘŁŇČ ÓČĄÔĘŁÓČĄĎĝÍšɾ–Äš‘Ŕ´ŒťŻ‡śŞƒśŞƒ¸Ź…¸Ź…´ŠƒąŚľŠƒťŻ‡żł‹Ŕ´ŒÁľĂˇÄ¸ĂˇÁľŽÄ¸Çź”Ęż—ËŔ˜ĚŔ˜ÎšŃƞÔʤ×ͧŘĎŠŘĐŞĐƟŹ‘ž˛‹şŽ‡ťŻˆÄ¸‘ÎÛŃƟŃƞɾ—ťŻŠˇŤ…ťŻˆĹš‘ÍÁšŃƞÎÛĚÁšÍ›Ƚ–Ĺş’Č˝•ĎĝÔĘŁŇÇĄĎĝʿ—øŔ´żłŒž˛Š˝ąŠž˛ŠˇŤ…ľŠƒŔ´ŒÂśŽŔ´Œź°‰śŞ„˛ŚˇŤ…´¨‚ŠžzĽšwŸ”r“ˆh„z]tkQbZDRK8A<,0+  
+
+ !!#TTU———ŰŰŰüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúůăáŰĆÁ­ś­Ž´Ş†¸­‡şŽˆśŤ…ź°ŠÁśÂˇĹš‘Ćş“ĸŔ´ž˛ŠťŻˆżł‹Ä¸ĂˇÁľž˛Šš­‡ľŠ‚ł§śŞƒśŤ„ą§‚­ŁŽŁ~ľŞ„ź°‰źąŠśŹ†śŹ‡ŔľŽÁľ˛§Ž„e†h¨Ÿ|ź˛ŒČź”Ęž–ΚÔɢŰŃŹßŐ°ÝÓŽŐ˥͹ő˝ąŠ˝ąŠÂśŽÇť“ÍšÓČĄŃƟĚÁ™Çź”Äš‘Ćť“ŃÇ ÖĚĽÖĚĽŐˤÔĘŁÔʢŐĘŁŐˤŐˤÖĚĽ×ÍĽÖĚĽŘΨŮĎŞÔĘŁĚÁšÉž—ŃǡϺŒǼ•ĚÁ™Ęż—Ëż˜Ęż—Ćş“Ĺš‘Ĺş’ĸĹş’Č˝•Č˝•Çť“Ćť”ĸ‘ż´˝ąŠžłŒÁśŽÁľŽż´ż´ÂˇÇź”Č˝•Ĺť”ø’Ćź•Éż™Éż™Ćź—Äş–Áˇ”żś•żˇššą•­Śś˛žÁ˝­˝¸Šťˇ§şˇ¨ÉČžŘ×ŇŢÜŮçćäěěëččćďďíüüüüüüűűűűűúűűűűűűúúůůůřůůřůůř÷÷ö÷÷ő÷÷÷ööőôôóööő÷÷öôôóúůůţţţţţýýýýýýýýüüüüűüüűüüűúúůůů÷úúůúúúúúúűűúűűűüüüűűűüüüüüüűűűůůůüüüýýüëëëňňňüüüúúůöööřřřúúúűűűűűú÷÷öôôóóóňńńđŕŢÜÖŐŇŃĐËÍĚĆÉČŔĆÄźż˝ł˝ş­Áž°ÂžŻÁťŠĹž¨ÍČ°ÎČŽĚĨĘĂĽÎǨ×Đ°ŢÖśâÚźĺÝŔçßÂçßÁćßŔĺŢżäÜťĺÝ˝čâÇęäĘçŕÂćâČččÖéĺĎčâÄéâÄęäČëäÉćŢżçŕÂęäÇćßžáŘľß×´ĺÝžáÚżÓÍ´ŇËŤÖĚŚ×ÍŚ×ÍŚŐĘŁÎĜÎÛÎÜɾ–Ćş’Čź”Ëż˜ĚÁ™Ęž–ᐝŻˆľŠƒˇŤ„şŽ‡š­†Ż¤~§œxł¨‚Ŕ´ŒÁľŽž˛‹˝ąŠÂˇČ˝•ËŔ˜É˝•Çť“Čź”Çť“Čź”Ęż—ÍÁ™ŇÇ ×ΨŰŇ­ÜÓŽŮĐŤŃÇ Ćť”ž˛‹şŽ‡˝ą‰Ă¸ĚÁ™ŇČĄÔĘŁĐŞȼ•ĂˇĂˇČ˝•ĎĜŃǟʾ—Éž—ĐƞĐŞÍšËŔ˜ĎĝŇÇ ĚÁ™Î›Ďŝ˿˜Äš‘ÁľŽĹš’Ĺš‘˝ąŠ¸Ź…ˇŤ…żł‹Ŕ´Œ˝ą‰ˇŤ…´¨‚˛Ś­˘}¤™u›nœ‘o™Žmƒd{qVf]GNH6?:+0+   !!"LLM——˜ÝÝÝúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýüÚ×ÎČÁŽś­´Š†¸Ź‡ť°‰˝˛‹ÁľĹş“Čź”ĸ‘š­‡ľŠƒľŠƒˇŤ„ź°ˆÁľÄ¸ĂˇÁľÁľŔ´ž˛Š˝ąŠ˝ą‰¸­†ˇŤ…ˇŹ…łŠ„łŠ„š­‡ťŻˆŔľŽËŔ™Ĺş“Ż¤ˆ~aŒƒfŠ ~˝łĘž–ÍšŃǟÔɢÔɢÖĚĽÖ˼Λǻ”Âśżł‹ÁľĆş’Ęż—ÎÛĐŝĎŝÍšʾ–Ęž–ÍšÓČĄŐˤŐĘŁŇÇ ĐŝŃǟÔɢÖˤŐˤŐˤŐĘŁŇČ ŇČ ÔĘŁÖͧŮĎŞŮĎŞŘΨÔĘŁŃƟĐŝĐŞŃƟÍšǻ”Ŕ´ž˛ŠżłŒÁľĂˇĆş’Éž–ËŔ˜Ęž–Éž–Č˝•Ĺš’Ćş“Çź•Äš’ÂśÂˇÄš’Ćť”Çź•Éž—ËÁšÎĝĎŝÎĜĚÁ™ËÁ™ĚÁ™Ęż˜Éž™Č˝˜Ĺş–š•Ăš–š–Á¸–˝ł”źł”źł”ť´—žˇžžśŸźś ÉÄłĎĘźĹÁ´Ĺ¸ęčăčćáčćáčçáçĺŢĺăÜäâŰäâÚâŕÖßÜŇÝÚĐŢŰĎÝŮÍÚÖĘÚ×ËÝŰĐßÝÖŕßŰéčçďďîđđîđďîđđîńđďńńďňńđňňńôôóôôóóňđđďîđďîđďîńđîńńîňňđóňńňňđńńďđďíďďîďîíďďíńđîďďíëëčăăßßŢŘŘ×ĐÓŃÉÁ˝°˝ş¨˝¸ŚžşŚżťŚżş¤Áť˘ĆżŚËÄŠĎÇŤÓËŹÖÎŻ×ĎŽŮĐŽŰŇ°ŢÔ˛ŢÔąßÖ˛áءäŰťćßŔčŕÂčáĂčŕĂçŕÂčáĹçŕĂćŢżčâĹęäĘëĺÉéâÄçâĆęĺĚěçÎěĺËęăĹęăĹęăĹéáÂçßżćß˝čŕŔéâĹęăÇęäÇćŢŔÝŐľŮĐŹÖÍŚÖĚĽŐˤŃƟ÷ž˛‹žł‹š­‡ťŻˆÁľŽĆş’Çť“ĸĂˇÂśŽž˛ŠŔ´ŒÂśŔ´Œ¸­†´¨‚şŽ‡ź°‰¸Ź†ťŻˆÁśŽÉž–͚͚ʾ–Čź”Çť“ĸĆş’ĚŔ˜ÎÛŃƟŐˤŐʤÔɢŐˤĐŞȼ”ÁľŽÁľÄ¸Ćş’Ęż—ĎĜĐƞĎĜʾ–Çť“Č˝•ĎĝŃǟĐŞÍšËŔ˜ĚÁ™ĐƞŃÇ ÎÛĎĜĎĜɾ–Ęž–ĚŔ˜ÍšÎÜĐŞŇÇ ÎÜǻ”ĸÂśŔ´Œź°‰ˇŤ„ŹĄ|¨yŚ›wœ‘o“‰h†eƒc…{]vmSb[ENH683')%
+(()XXYœœččéüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţńđíŘÔĘ˝ś ˛ŠˆľŞ…ť°Š˝˛‹żłŒÁśŽŔľŽş°Šł¨‚ľŠ‚şŽ‡ťŻˆ˝ąŠżłŒÁľżł‹ťŻ‡˝ąŠŔ´Ŕ´ŒŔ´ŒżłŒ˝ą‰šŽ‡śŹ†˛¨„ľŞ…˝˛‹ÂśŽĆť“ĚÁ™Ĺş“ąŚŒ‚d†hŠ ~źąŠÇť“ĚŔ˜ĐŞŃǟĎŝĎĝĎĜĚŔ™Čź”ĸÁľÂśŽÄš‘Çť“Ęž–ĚŔ˜ÎšĎĜÎÜÍšĚÁ™ÍÁšĎĝĐŞʿ—Ęż—ŃƞÓČĄŇÇ ĐŞĐŝĐŞŇÇ ŇČ ÔĘŁÚŃŹŢŐąŢŐąÝÓŽŰŇŹŰŃŤ×ͧÔĘŁŇÇ Ęż—ÁľťŻˆ˝˛ŠÂˇĹş’Çť“Çź”Ęž–Ęž–Çť“É˝•Ëż—ËŔ˜ËŔ˜ĚÁ™Éž–Ĺş“áĂ¸‘Ćş“Éž—ÎÜŃÇ ŇČĄŇČĄŃƟÎĜÎÜÍÛĚÁšĚšÍÛÍÛÎÜÎÜĚÁšĘż˜ĘŔ™ËŔ™Ęž—Éž™Äş—żľ“˝´•Ŕ¸ˇ°–ąŤ’żšĽľ°œ˛Ź˜śąťľĄˇ˛œľ°šş´ŸźśŸš˛›¸ą™¸ą˜źľœ˝śœžśœşł™ś°—ąŤ•Ž¨•˛Žž°Źą­ž˛ŻŸ´Ż śą˘ś˛ŁšľŚź¸Šżť­ŔźŽťˇ¨łŻŸ˛Žž˛Žž´° ľą˘ˇł¤šľŚ¸´ĽľąĄą­°Źœą­˛ŽŸˇłĽżźŽÁ˝Ž¸´˘š´žźś ŔşĄÂť Ę¤ŃÉŠÓËŹÖĎ°ŘĐąŘĐŻŰŇ°ÜÓ˛ÝÔąŢŐłŕ׾ŢŐłÝÓąßÖ´á١áŘľâŮśăÚ¸äÜťćŢžćßŔçŕÂčŕĂéăĹëĺĘéâÇçŕÁčáĂęâĆęâĹĺÝžäÜťçßżëäČęäÇćŢžĺÝ˝ćŢžçßžĺÜşäۡćÝźčáÂéâĹčáÂĺÝťâŮľŢŐ°ŮĎŠŃÇ ĚÁšĹş”¸­ˆˇŹ†źą‰şŽ‡ź°‰ÁľŽÂśŽżł‹ťŻ‡˝ąŠŔ´Ŕ´ŒÂśŽÄ¸Ä¸żł‹š­†š­†¸Ź…š­†Ŕ´ŒÇź”ËŔ˜ĚŔ˜ĚŔ˜ËŔ˜ËŔ˜Éž–øÄš‘Ęż—ĚŔ˜ÎÛŃƟĎĜÍšĎÜĚÁ™Çť“ÂśŽÂśŽÄ¸Ä¸Çť“Ëż—ĚŔ˜ĚŔ˜ËŔ˜ËŔ˜ËŔ˜ĚÁšÍÛÎÛ˿—Č˝•Éž–ÎÜĐƞÍšĚŔ˜Ęż—Ćş’Čź”ĚŔ˜ĐŞÔɢÖˤÖĚĽÔĘŁŃƟÍÛȽ•Áľ¸Ź…­˘}˘—uĄ–s •s–‹j‹b…{]|rWmeL^WAKE483'&"
+))*YYZŸŸ ćććüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîíéÖŇĆż¸ĄłŠˆ¸­ˆź°Š˝˛‹ź°Š¸­ˆľŤ†ľŞ„ťŻˆÁľŽÁľŽżłŒ˝ąŠşŽ‡śŞ„˛Ś€śŞƒťŻˆÁľÁľżłŒź°‰śŤ…ą¨ƒśŤ…ž˛‹Ä¸Ĺš‘Ćť“É˝•Ĺş’ˇŤ…—l•ŒkŚzˇŹ‡Ä¸Čź”ËŔ˜ÍšĚÁ™Ëż—Ęż—ĚÁ™Ęž–Ĺš‘ÁľŔ´ŒÂśŽÁśŽÄ¸Čź”Ëż—ÎÛŃƟΛȼ”Ĺš‘Čź”Ęż—øĆť“ĐŞŇÇ ĎĜ˿—Ęž–ĚŔ˜ÓÉĄŐˤ×ÍŚÝÓŻŢŐąÜÔŻßÖąßÖ˛ÝÔŻŮĐŤÖĚŚĎĝƺ“ž˛‹˝˛ŠÂˇÉž–ÍÁšÍš˿˜Çź”áŔľŽÄ¸É˝–ÎÛÎÛÍšʿ—Ćť”ÂśÄš‘Éž˜ĎĜŇÇ ÓČĄÓɢÔĘŁÔĘŁÓĘŁÓÉŁŇČĄÎĝÍšÎÛÎÜÎÜÎÜĚÁ™ËŔ˜Í›Í›ĚÁ™ËŔ™Ě›Ě›ËŔ™ĘŔ›ÍßĚÞËÁœÎÄĄÎĹĄĚßĘŔœËÁÍÄ ĚžËÁœĚÎÄ Îà̝ËÁœĚÍÝĐƢŇÉŚÓʧŃɧĐȧĎĆĽÍĹŁĚĂĄËŸĘŔžÇžšÇžšĆź™Ć˝™ČżœĘÁžËÁŸĘÁžĘÁŸËŸĘÁŸĘÁŸĚĂĄÎŢĐȧŃɨŃɨĎÇŚËÂŁÉŔ ĘÁ˘ĚĤŃɨ×Ď­ÚŃ°ŰÓąÝŐłŢŐłß׾áظŕءŢÖłßÖłßÖ´ßÖ˛ßÖłŕ׾ß×´ßÖłŕŘśáŘľáŘ´áŮľâŮśâÚ¸äÜšäÜťĺÝ˝çßżęăĹěĺĘëäÇčŕÁĺÝťćŢ˝ćŢžßÖłÝÔŻâŮśçŕŔçŕŔß×´ßÖ˛áŮľâÚśăÚśâŮľăÚśăÚˇă۸ăÚˇâŮľŕ׳ŢŐ°Řϩ͹ő˝˛‹ľŤ†şŻŠÂśÁľÁľŽĂˇ˝ąŠľŠƒąŚ€´¨‚şŽ‡Ŕ´ÂśŽÂśŽÂśŽ˝ąŠ¸Ź…śŞƒ¸Ź†żł‹Ĺş’Ęż—Ęž–É˝•Ęž–ĚÁ™ÎÛÍšǻ”Ĺš‘Č˝•É˝•Éž–ĚÁ™ĚŔ˜Ęž–É˝•É˝•Çť“ÂśŽŔ´ŒŔ´ŒŔ´ĂˇČź”É˝•Ęž–ÍšÎÛËŔ˜Ĺş’Çť“Ęż—Ćş’Ĺš‘Čź”ÍÁ™Íšɽ•Čź”Ćť“ĸČ˝•ÎÛŇČĄŐˤÖÍĽÖĚŚÖÍŚŐĚŚĐƟȽ•ż´Œł§‚§œxž“p’pœ‘o‘‡gƒz\wnSg_HVO;FA040$$!
+ '')YYZžáááüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýíěčÔŇĹźľšłŠ†ˇŹ‡ťŻ‰şŻˆź°ŠžłÁľŽŔ´Œżł‹ĂˇżłŒśŤ„ą§‚­Ł~Ť |ł§‚žł‹Çť”Ĺš’ž˛‹ł¨‚°Ľ€ľŤ…ŔľŽĹş’áŔ´ŒÁľŽÉž–É˝•żłŒĽšv–l™o°Ľ€ĂˇÇť“Ćş’Ĺš‘Ĺş’Çť“Čź”Éž–Çť“ÂśŽ˝ąŠżłŒĂˇÂśŽĂˇĆş’Ćť“Çť“ËŔ˜Ëż—Čź”Ćş’Ĺš‘Ĺş’Çť”Éž–ÍšŃƟĐŞʾ—Čź”Ëż—ÓɢÖĚĽ×ͧÚŇŹÜÓŽŰÓŽßÖ˛ÜÓ­ÓɢŇÇ ŃƟĚŔ™É˝–Éž–ËŔ˜Éž–Çź”ËŔ˜ËŔ˜Äš‘ť°Š´Ť†´Ť†žłŒÉž–ŃƞĎĝɞ–ĸ‘áĆş“ËŔ˜ĎŞĐŞĎĝĐƞŐËĽÖÍŚŐĚĽÔĘŁ×ÍŚŮĐŞ×̧ÔʤÓȢĐŞĎŝĎĝĎĜΛÍÛÍšĚŔ˜Ęż—ËŔ™ÍÛĎĝŇÇ ÓÉŁÓɢÓČĄÔĘŁŐˤÔĘŁÓČ ŇÇ ÓɢÔĘŁÓȢÓȢŐˤŐˤŇČĄŃÇ ŇČĄŐʤŘĎŞŰŇ­ÜÓŻÝÓŻÜÓŻŰÓŻŮĐ­×ΊŐËĽÔʤŇÉŁŃÇĄŃÇ ŇȢŃÇĄĐĆ ŇÇĄŇȢŇÇĄŃĆ ŃÇ ŇǢÓɤÖ̧ÜŇŻÜÓ°ŰŇ­ŮĎŤ×ÍŠŘÎŞŰŇŽŢŐ˛ßÖłŢŐ˛ŢÖ˛áٸâÚšáŘśŕŘśâŰšăÜşâÚ¸áٸăÚšáŮśßŐ˛ŕÖłâ١ăÚšáŘľŕÖ˛ŕ׳ßÖ˛ŢŐ˛ŢÖłáŮśâۡă۸äŰšĺÝťćŢžćŢ˝ĺÜşăÚśáŘľß׾ŢÖ˛ÝÔŻßÖ˛ĺŢ˝ćßžÝÔąÚŃŤŰŇŹŕ׳âŮľâŮľâŮľâŮľâŮľâŮľßÖąÚĐŤÔʤĐŞÍšʿ—Çź•Äš“ø‘ÂśÁľÁľŔ´Œ´ŠƒŞŸ{ޞzŽ˘}śŞ„Ĺş’Çź”ÂśśŤ…ąŚ€´¨‚ťŻˆŔ´Ŕ´ĂˇÇť“ËŔ˜Ęż—Č˝•Ęż—ÎÜŃǟΛ˿—ËŔ˜Çť“áĹş’Éž–ËŔ˜É˝•Čź”Çť“ÂśŽž˛Šź°‰ž˛‹ĂˇÇť“Čź”Ęž–ÍšÍÁ™É˝•ÂˇÂśŽÄš‘Ĺš‘Ćş’É˝•ĚÁ™ËŔ˜Ĺš‘áÄ¸Éž–ĚÁ™ĎĜŃƟÔËŁ×Ψ×ͧŐˤŃÇ Čź–żłŒťŻ‡ł§ŤŸ{˘—s˜lŽ„d„{]ulRc[EPJ7>9*-)++,[[\ŸŸ áááüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţíěčËƸś­’˛¨…śŤ†şŻ‰ž˛ŒÁľŽÁľŽ˝ąŠš­†ž˛Šź°‰ľŠƒą§ŽŁŤ {˛Ś€şŻˆżľ˝łŒš­‡´¨ƒł¨‚ˇŤ„Ŕ´Ćş“Ĺş’ÂśŽÂśĘż—Íšȼ•´Š„’p‘‡g§yžłŒĹš‘áÂśŽĆş’Ęž—ĚŔ™É˝•Ćş’ÂśŽž˛ŠżłŒÄ¸Ĺş’Äš‘áĹş’É˝–Ęż—Éž–Čź”Ĺš‘áÂˇČź”Ëż—Ęž—ĎĜŃƞËŔ˜Čź”Čź”ŃƞŇČ ŇČĄ×ĎŠŘĐŞ×ΨÚŃŹ×ͧÎÛÍšÎÛÎÛÎÛÎÜÍÛǻ”ŔľĹš’Ćş’Ŕ´Œ¸Žˆ˛¨ƒ˛¨ƒť°ŠĹš’Éž—Çť”áĂ¸‘Ćş“Čź•ËŔ™ĎĝŃƟĐŞŃÇ ŘĎŞÚŃŹÚĐŞ×ͧÚĐŤÝÔŻŰŃŹ×ΨÖĚŚŇČĄŃƞŇÇĄÔĘŁÔʤŃÇ ĎĝĎÜÍ›ĚÁ™ÎÜŃƞÓɢÓĘŁÖĚĽÖĚŚÖĚĽ×ͧ×ͧÔÉŁŃÇ ÓɢÖÍŚÖͧŐËĽ×ͧŘΊÖÍŚÓĘŁŐʤŮĐŞŰŇ­ÚŇ­ÝÔ°ßÖłßÖ´ŢŐ˛ÝÔ°ÚŃ­×Ψ×ͧÖ̧ÔËĽÖĚŚŐËŚŃÇ ÎĝĐƟĐĆ ĎŞÎĞĐşÎĞĐĹ ÓÉĽÚŇŽŰŃŽŮĎŞŮĎŤŮĐŤÚĐŤÚŃŹŢŐ˛áŘľŕ×´ßÖłăŰşĺÝźäŰşăŰşäÝ˝ćŢžăŰşâٸăŰšá١ßÖ˛á×´ĺÝźçŕÂäÜťăÚˇŕ׳ÜÔŻŰÓŽÜÔŻßÖ˛ŕ׳ßÖ°ŕײâŮľâŮľâŮľáŘłÜÓŽÚŃŹŰŇ­ÜÓŽÜŇ­ÚŇŹß×´ŕŘśŰÓŽ×ͧŐˤŮĎŞŰŃŹÜŇ­ŕײŕ׳ŢÔŻÜŇŹŘΨÓɢÍš˿˜ĐŝĐƞÎÛʿ—ĸ‘ž˛‹˝ą‰˝ą‰ťŻˆł§ŹĄ|ŹĄ|Ž˘}´¨‚ÁśÂˇźą‹ľŞ„´¨‚ˇŤ„ťŻˆŔ´ŒÂśŽĂˇĹš‘Ëż—͚͚ĚŔ™ĐŝÓČĄÍÛ˿—Ëż—Ĺš‘Ŕ´ŒÁśŽÉž—ĎŝĚŔ˜Čź”Ĺš‘ÂśŽżł‹żł‹żł‹ÂśŽÄ¸Çť“Ęž–͚͚ɾ–¡ÁľĂˇÄ¸Ĺš‘Ćş’Éž–Ęż—Ćť“ĸĹš‘Ęż—ĚÁ™ÍÁ™ĎĜÓɢÖÍŚŇČĄĚÁšČ˝•ž˛‹śŞ„ˇŤ„˛Ś€Šy›o‡~`vmSjbJ[T?ID362%%!
+334eefŤŤŤńńńţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýčćáËǸ¸ą—´Š‡š­‡ź°Š˝˛‹ťŻ‰¸Ź†śŞ„¸Ź…¸Ź…ˇŤ„ˇŤ„ľŠƒ˛Ś€ąĽąŚ€°§‚ą§‚ľŞƒž˛‹˝ą‰ˇŤ„š­†ÁľŽČź•Čź”Çť“Ęž—ĎĝĐ޶¨y–Œl¤›xšŻŠÄ¸‘ĸĹš’ĚšŃƟŃƟʿ—Çť“ĸÁľŔ´ŒÂśŽÇź”Ĺş’żłŒÇź•ĐŞĎĜĚÁ™É˝•Ĺš‘ÂśŽÂśŽĹş’Čź”Čź•Ęż—ĚÁ™ËŔ˜Ćť“Ĺş’ÍšÎÛÎÛÔĚĽŐĚŚŇČĄÔĘŁÓɢÎÛÎÛĎĝŃƟĐŞÍšǻ“Áľ˝˛Šż´ŒŔ´Œżł‹żł‹źąŠşŽ‡ź°‰ž˛‹ź°‰ťŻˆž˛‹Ęż˜Í›ɽ–Ćş“Éž—ŃǟÓÉĄŐˤŮĐŤÝÔŻŕÖąßÖąßÖąÜÓŽ×ĚŚÔɢŐˤÓČĄŇÇ ÖĚĽŮĎŞÚĐŤÖĚĽÓɢÓČĄŇÇ ŃƞĐŞÓɢÓɢŃÇ ×̧ŰŇŹÜŇ­ÜŇŽŰŃŹÖËĽÓɢŐˤÖĚŚÖĚŚÖĚŚŘĎŠŮĐŤ×ΊŐĚĽÖÍŚÜŇŽÜÓŽŰŇŽŢŐąŕײßÖłŢŐąÝÔŻŰŇ­ÚŃŤŮĐŞŮĐŤŘĎŞŮϨÖËĽŃÇ ĎĝĐŞĐŞĎŝĐƞŃƟĐŞĎĝŃĆ ŐËĽÔĘĽŐʤÚŃŹÜÓŻÚŃŤ×ͨÚĐŤŕ×´áŮľáŮśăŰšćŢ˝çßżćßŔçßÁćŢżŕŘśßÖ˛áŘľß׳ŢŐąá١çßŔęäÇçŕÁäÜşßÖ˛ŰŇ­ŮŃŤÚŇ­ŢŐąÝÓŽŮĎŠÜŇ­áŘłâŮľâŮľßÖą×ͧÖĚŚŘĎŠ×ͧÖĚĽÖĚĽÖĚŚÖͧÖͧÓɢĐŝŃƟÓČĄŐˤÜŇ­ÜÓ­×ÍŚÓɢĐŞÎÛËŔ˜ĚŔ™ŃƟĐƞĚÁ™Ĺš‘Ŕ´Œź°‰şŽ‡š­†š­†¸Ź…ˇŤ„ˇŤ„ł§˛§€ˇŤ…ľŞ…łŠ„˝˛‹Ŕ´ž˛Šš­†ťŻˆĂˇĆş’Çť“Ęž–ĎĜÓČĄŃƟŃÇ Ńǟɽ–Ĺş’Çť“Ĺš‘ÂśÄš‘ĚÁšŇČĄĎĜȽ•ÂśŽżłŒÁľĂˇÂśŽŔ´ŒÁľÄ¸É˝•ÎÛĎĜÍÁ™Ĺş’ĸĹš‘áÁľÂśŽĹš‘Čź”Ęż—Č˝•Çť“É˝•Ęž–Ëż˜ÍšĐƞŃÇ Éž–ÁśŽžł‹ˇŤ„ąĽąĽ€Šžz’pŠ€aulR`YCQJ7A<-2."!
+  889ppqŻŻ°ěěě˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüűčçăÍÉşłŞŽ´Š„¸­‡şŻ‰ťŻ‰şŽˆˇŹ†´Š„˛¨‚´Š‚š­†ź°ˆš­†ł¨‚­¤ŽŁąŚ€śŤ„żł‹Áľżł‹˝ąŠž˛‹ÁľŽĹš’Č˝•ĚÁ™ŇČĄŐËĽĚŔ™šŽˆŤ |´Š„ŔľĆş“Ćş’Ęž—ÓȢÔÉŁĐŞɾ–ᐿłŒŔ´ŒŔ´ŒÁľÄ¸ÁśŽź°‰Äš‘ÎÜŇČ ŇÇ Đĝ˿—Çť“Ĺš‘ĸĹš‘Ćş’ÁľŽžł‹ÁľŽĂˇĆť“ÍšĐŝŃƟŇÉĄŇČ ĐŝĐƞÎÛɽ–ËŔ˜Íšʿ—Ęž—Ęż—Éž–Čź•Äš‘żłŒťŻˆź°‰ÁľÄ¸ÁľŽź°‰ˇŤ„¸Ź…¸Ź…ź°‰Čź”ÍšĚÁ™Ęż—Ęż—͛ЪÓÉĄ×ΨÝÔŻáŘ´âŮ´ÝÓŽ×ͧÔĘŁŐĘŁÖˤŐĘŁÖĚĽŰŇŹŢŐ°ŢŐąŰŇ­ÖÍŚŇÇ ĎĜĐŝŇÇ ŐËŁŇɢĎÜÓÉŁÚŃŤŢŐ°ßÖąŢÔŻÚŃŤ×ΧÖˤÓɢÓɢÔĘŁÓɢŇȢÓÉŁŐĚĽŮĐŞŢŐ°ŕŘ´áŮśŕŘľáŘłŕ׳ßÖ˛ŢŐŻŰŇŹŰŇ­ÝÔ°ŢŐŻŰŇŹŮĎŞÚĐŞŘΨŐËŚÓČĄĐƟĐƟÓɢÖĚŚ×̧ŇÇĄĎĝŇÇĄŃÇ ŃǟŘͨÜÓ­ŰŇ­ÚŃŹŰŇ­ÝÓŻÝŐąŕŘľćŢ˝čŕÂéáĂčáĂćßŔäÜťáŘľŕŘłáŮ´ŕŘłáŮľĺÝźćŢžćŢžĺÜťŕ׳ÚŃŤÖĚĽŐĚĽŘΨŮĐŞ×ĚŚŃƟŐʤÜÓ­áŘłâŮľáŘłÜŇ­×ΧÓʢĐŝĎĝĐŞĚÁšÉž—Ęż™Ëż˜ĚŔ˜ĎĜŐĘŁŮĎŠŘͧŐĘŁŇÇ ĐŞĚÁ™Čź”Éž–ĚÁ™ÍÁšĘž—Ćť“Ĺš‘Ĺş’ĸ‘źą‰¸Ź…š­…ťŻ‡ž˛‹żłŒ¸Ź†ąĽ˛Ś€°Ľ€ą§˝ąŠÂśŽŔ´ŒżłŒž˛‹żł‹ÁľŽĹš‘ËŔ˜ŃƟŐ̤ŐĚŚŇČĄÍ›ȼ•Ćş’Čź”Č˝•Ęż—Í›ĐŝŇÇ ŇÇ Ęż˜Áľ˝ą‰ž˛‹ÂśŽÁľž˛‹˝ą‰Ŕ´ŒĆş’ÍšŃƟŃǟĚŔ™Ćť“áÁľŔ´ŒŔ´ŒżłŒÁľÄš‘Äš‘ĸÇť“ĚÁ™ĎĜĚÁ™Ęż—Čź”ÁľşŽ†śŞƒŻŁ}§›xŸ”r”Šjˆ~`ypTg_HTM:>9+*&  <<=ƒƒ„żżŔđđđţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüčćáÄŔŽŻŚˆł¨…ˇŹ†şŽ‰şŽˆˇŤ…˛§ƒŻĽ€ąŚš­‡ž˛ŠťŻˆśŤ…˛¨ƒ´ŠƒľŠƒˇŤ„şŽ†ž˛ŠÁľŔ´Œź°ˆťŻ‡Ŕ´ŒĆş’Č˝•ÎĝŇɢÎÜƻ“ÁľŽÄš‘Čź”Čź”Ćş’Ęż˜ÓÉŁÔĘŁĎĝǻ“ž˛‹¸Ź…¸­‡ť°‰ž˛ŠÁľŔ´żłŒĂˇËż—ŇÇ ÔɢÓɢŃƟÍšȼ”áÂśŽĂˇťŻ‡śŞ„˝ą‰Ä¸‘Ęż—ÎÛĐŞŃǟŃƟÎĜËŔ˜Éž–Ĺš‘ÁľĹš’Çť”ÁľÁľÄ¸‘Ęż—ĚŔ˜Č˝•ÁśŽťŻˆťŻˆÁľŽĆş’Ꮮ˛‹şŽˆşŽ‡š­†şŽ‡Ŕ´Ĺş’Čź•Ęž–É˝•Çź”ËŔ˜ĐŝŇČ ×ͧÜŇ­ÜÓ­ŘϨÔĘŁÔɢŐĘŁÖ̤ŐĘŁ×ÍŚÜÓ­ŢŐ°ŢŐ°ŰŇŹŐʤÍšǻ”Ęž—ŃƟŐˤÔĘŁĐŞŇČĄŮĎŠßÖąßײßÖąßÖąÝÔŽŘϨÔɢŇČ ŇÇ ÎÛĚŔ™ĐƟŐĚŚÚŇ­ŕײâŮśâÚ¸áŘľŕײŢÔŻÝÓ­ŮĎŞÖĚŚŘΊŰŇŹŰŃŹŘΨÖĚŚŰŇ­ŢŐ°ŢÔŻ×ÍŚŃÇ ŃƟŐʤŮĐŞÚĐŤŐËĽŃĆ ÓÉŁŃÇ ĐşÔɢ×ÍŚŘĎŠŰŇŽÜÓ­ŮĐŠŮĐŞÜÔ°ăŰšĺÝźĺÝźĺŢ˝ĺŢ˝äÜšŕ×´ŕײáŘ´ŕײáŮľćŢ˝ĺÜťâŮľßÖąŮĎŠŇÇ ĚŔ™ĚÁšŃÇ ÔĘŁÓČĄĎĜŃƟ×ÍŚÝÔŻŢŐ°ÝÔŻŢŐ°ŮĎŞŇǟËŔ˜É˝–É˝–øŔ´ŒĂˇÇť“ËŔ˜ĐŞŐˤŘΨŐˤŃƟÍšʿ—Äš‘ÁľĂ¸Çź”Ćş’ÂśŽŔ´ŒÄ¸Éž–Ëż˜ÁśŽşŽ†š­†˝ą‰ÁľÁľŽťŻˆśŞƒľŠ‚´¨´¨‚š­†ź°‰ž˛ŠÁľŔ´Œź°‰ž˛ŠÂśŽÇź”ĚÁ™ĐƞÓÉŁŃÇ ÍÁšĘž–Čź”Čź”Éž–ĚÁ™ĐŞĐŞĐƞŃÇ Č˝–ź°‰ľŠƒˇŤ…˝ąŠÁľŔ´żł‹Ŕ´Ĺş’ÍšĐƞŃƟĎĜʿ—Ĺş’áÁľ˝ąŠťŻ‡şŽ‡˝ąŠŔ´ŒÄ¸Çť“Ęż—ĚÁšĘž–ĸ‘˝ąŠ´Š‚Ź {§›w •r–Œkˆ~`yqUldK^WAQJ8@;,*'
+ 001RRS‹‹ŒÇÇČúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüęęĺÁťŠľŤľŞ…śŞ…ľŞ„ł¨‚°Ľ€Ž¤ŻĽˇŹ†ťŻˆśŞƒ¸Ź…ť°‰ťŻˆśŞ„˛Ś€ł§€śŞƒşŽ†ťŻˆťŻ‡şŽ‡ž˛Šżł‹ž˛‹Ă¸Éž–Éž–Ęż—Ëż—Éž–Č˝•Çť“Ĺš‘Çť”ĎĝŇÇ Ďĝ÷š­†˛§°ŚłŠ„ťŻ‰ÂśŽĆş’Ĺš’Çť”Ëż—ĎĜĎĜĐŝŇÇ ĎĜɽ•ĂˇÁľŔ´Œź°ˆź°ˆĂˇÉž–ÍšĎĜÍšĚÁ™ĐƞÍšĸ‘żłŒź°‰ťŻˆž˛‹ż´ŒťŻ‡şŽ‡˝ąŠĹš’Ćş’áĂˇŔ´Œź°‰ÂśŽÄ¸żłŒĂˇĆť“żłŒşŽ‡¸Ź…şŽ‡ťŻˆźą‰Ŕ´ĂˇÄ¸É˝•ĚÁ™Ęż—Í›ŃƟŇÇ ÔˤÖͧÓɢÓČ ÔĘŁÓČĄÓČĄ×ÍŚŮĐŞŘĎŞŇČ ĚÁ™Ćť“żłŒÂśËŔ˜ÔÉŁÖͧÔĘŁŐˤŮĎŠŢŐ°ÝŐŻÜÓŽßÖąŕײÝÔŻŘϨÓɢŃƞĚŔ™ĚÁ™ŇČĄ×ͧÚŇ­ßÖ˛ŢŐ°ÜÓ­ŢŐ°ÝÔŽŮϨÔĘŁŇǟŃƞŃƟŇÇ ŇÇ ŃƟŇÇ ŘĎŞÝÔŻÝÔŻŘΧŇČ ŃǟÔĘŁŐËĽÔʢŐËĽÖͧÖͧŐËĽÓÉĄŃƟĐŞŃÇ ŐËĽŘΧ×ÍŚÖĚŚ×ͧŘĎŠŘĎŞŮĐŤÜÓŻáÚ¸ĺÝźŢŐąŰŇ­ßÖąÜÓ­ŰŇ­ŕŘ´âŮľßÖą×ΧĐŞȼ•ÁľŽÂˇĘż—ŃƟÔĘŁÓČĄŇÇ ÔɢŘĎŞÖĚŚÔɢ×Ί×ΨÓȢĚÁ™Ćş’ᏽ˛Š˝ąŠĹš‘Ęż—ÎÛŇÇ ĐƞĎĝÓÉŁŃÇ Éž–Âśź°‰ťŻˆťŻˆž˛ŠŔ´Œ˝ąŠťŻˆŔľÇź”Ęż—ᏼ°ˆşŽ‡˝ąŠżł‹˝ąŠ˝ąŠ˝ą‰ź°ˆš­†śŞƒ´¨‚śŞƒ¸Ź…ťŻ‡˝ąŠżł‹Ŕ´ŒżłŒž˛ŠŔ´Äš‘Ęž–ÎÜĐŞĚŔ™É˝•Čź”Ĺš‘Ćş’Ęž–ÍÁ™ÎÛĚš¶´¨‚ŹĄ|°¤şŽ‡ÂśŽĆş’Ĺš’Ćş“É˝•ÍšËŔ˜Ęž—͚͚ËŔ˜Č˝•ÂśŽź°‰š­…¸Ź…ťŻ‡Ŕ´ŒĹš‘Çť“áŔ´ÂśżłŒľŞƒŚšw˜Žl’ˆgŒ‚cƒy\tkQb[EQK8A<-4/#&#
+   99:oop°°ąŇŇÓůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűúßÜŐ˝śŸ°Ś„°Ľ€Ž˘~Ť |¨zŞŸz­˘~´¨ƒ¸Ź†śŞƒ¸Ź…š­†ł§°Ľ°¤~°¤~ł§š­†Ŕ´ĂˇŔľž˛Šź°‰˝ą‰Ŕ´ŒÄ¸Çť“ËŔ˜ÎÛÍÁ™Ęż—Č˝•Čź”Ęż—Í›ĚÁšÇź”şŻˆ´¨‚ąĽąŚˇ­‡Ŕ´Ĺš‘Ćş’Ĺş’Ęż—ÎÛĚŔ™Éž–É˝•ÍÁšÍ›˿˜Çť“áŔ´Œž˛ŠŔ´ŒĆş“Éž–ĚŔ˜ÎÛΚĚŔ˜Ęż˜Čź•Ä¸żłŒź°‰ź°‰ź°ˆťŻ‡š­…¸Ź…ťŻˆÄ¸Ăˇ˝ą‰ťŻˆ˝ąŠŔ´ÂśĂˇÂśŽÄ¸Ă¸şŽ‡śŞƒľŠ‚ˇŤ„¸Ź…şŽ†Ŕ´ŒĹş’Çź”Çź”Ĺş’ÂśŽĹş’Ęż—ĚŔ˜ŃǟÖÍŚŐËŁÓČĄŇČ ÓČĄÔɢÖˤŐˤŃČĄÉž–øŔ´Œž˛ŠĂˇËŔ˜ŃĆ ÓÉŁÓɢŘΧŰŃŤŘΨÖĚŚÖĚŚÚĐŤÜÓŽÜÔŽŮĎŠŐËŁŇÇ ĚÁ™ÍÁ™ÓÉŁ×ͧÚĐŤßÖ˛ÝÔ°ÚŃŤÚŃŤÚŃŤ×ΨÓČĄĎĜĎĜĎĜĎĜĎĜÍšÎÛŐËĽŘΨ×ĚŚŇÇ ŃǟÔˤŐĚĽÖĚĽŐĚĽÔˤŇɢÍĝÍÛÎÛĚÁ™ËŔ˜ÍÁšŇÇ ÖĚĽÖ̤ÔʢŇČ ŇČ ŇČ Óɢ×ΧÜÔ°ß׾ŰÓŽŮĐŞŰŇŹÚŃŤŮĐŞŰŇŹÜŇŹŘΨÍ›ź’ŔľŔ´Ä¸Č˝•ÎÜŃƟĐŝŇČĄÔËĽÔʣЪ͚ϪŃÇ ŃƞËŔ˜Čź”Ćť“żł‹˝ąŠĆş’Éž–ĚŔ™ÎÛÍšĚÁ™ĚÁšËŔ˜Čź”ᐿłŒ˝ą‰ź°‰˝ąŠżł‹ź°ˆťŻ‡ÁľŽĹş’Äš‘˝ą‰š­†˝ą‰ÁľĂˇÁľŽŔ´Œž˛Šš­†śŞƒ´¨‚´¨‚´¨‚ľŠƒź°‰ÂśŽĂˇÂśŽżłŒ˝ąŠž˛‹ÁľĆş’Ëż—Í›ÍÁšĚŔ˜Ëż—Çź”Çť“Ęż—ËŔ˜Ęž–ĸ‘ź°‰ľŠ‚ąĽ´Šƒź°‰Ä¸Ćş’Ĺš‘Č˝•ËŔ˜Ęż—Ĺş’¡Č˝•ËŔ˜Ëż—É˝•Ĺš‘Ŕ´š­†śŞ„ťŻˆž˛ŠŔ´ÂśŔ´Œź°‰ˇŤ…˛ŚŞŸ{œ‘oŽ„d…{]zqUmeL_XBQJ7A<-.*
+ 668LLNlllÂÂÂôôőýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷öőÔŃĹąŞ¨ž|Śœy¤™vŸ”s –s¨œxŻŁ~ľŠ‚¸Ź…¸Ź…´¨‚ŞŸ{ŞŸz­˘|ŻŁ~ł§š­†ĂˇČź”Ĺš‘˝ąŠš­†ž˛ŠŔ´ŒÁľĂˇČź”ĚÁ™ĚÁ™Ęż—É˝•ĚŔ˜ÎÛÎÛɽ•ŔľˇŤ…´¨‚ľŠ‚ˇŹ…żłŒĹš’Čź”Ćş’Ćş’ËŔ˜ÎĜɽ–Ĺš‘ĸÇť“Ëż—ËŔ˜Č˝•ĂˇÁľÁľĂˇÇť“Čź”Ęž–͚͚ʿ—Äš‘ĸÇť“ĸÁľżł‹˝ąŠź°ˆşŽ‡şŽ‡ź°‰ĂˇÁľşŽ‡ľŠƒš­‡ÂśŽÄ¸Ĺš’Çť“Äš‘ž˛‹ľŠƒ°¤°¤~ľŠƒš­…ťŻˆÁľŽÇź”É˝–Äš‘ž˛‹ťŻˆÁľÇť“Çť“ĚŔ™ŇÇ ÓɢŃƟĐŝÓɢÖĚĽÔĘŁŃǟĚÁ™Ĺš‘Ŕ´żłŒÁľÇť“ÍšĎĜĐŞŇÇ ŘΨÚĐŞÓČĄĐŝĐƞÔÉŁ×ΧŘĐŞÖÍŚÔĘŁÓÉĄĎĜΛÓÉĄÔʤ×ͧÝŐ°ŰÓŽ×ͨÔˤ×ͧŮĐŞŐʤĐŞĎĜĎĜĎĜĎÛÍÁ™ĚŔ™ŃƟŃƟÎÛʾ–Í›ÔËĽ×ͧŘĎŠÚŃŤŐËĽÍ›ĸ‘¡Ä¸Ćş’Čź”Ëż—ŃƞÔĘŁÔʢĐŞÍšÎÛÎÛÎĜŃÇ ŐËĽŘĎŠ×ΨŐĚĽŐˤŮĎŠŮĐŤÖĚŚŐĘŁĐƟź“Ŕ´Œżł‹Ä¸Čź”Éž—ĚœĚĚÁšŃÇ ÓʤĎŝĚÁ™Ęż—É˝•ĚŔ˜Íšɾ–Č˝•Č˝•ÂśżłŒĆş’Čź”Čź•É˝•Ëż—Ëż—Ĺş’Äš‘Č˝•Čź”Ĺš‘ÁľŔ´ŒŔ´ŒżłŒ˝ą‰ź°‰ĂˇĂˇž˛Š¸Ź…ˇŤ„˝ą‰ĂˇÇť”Čź”Ĺš‘żł‹ľŠ‚°¤ŻŁ~´¨ľŠ‚śŞ„żłŒĹš’Ĺš‘ÂśŽżł‹ž˛Šž˛ŠŔ´ŒÄ¸Çť“Čź”Ęž–ËŔ˜ĚŔ™ËŔ™ĚÁ™ĚÁ™Ëż—Ćş’ž˛ŠşŽ‡š­†şŽ‡ź°‰Ŕ´ŒĹš‘Ćş’ĸČ˝•ËŔ˜Č˝•ÂśżłŒĹš’Čź”Čź”Ćş’ĸÂśşŽ‡¸Ź„˝ą‰ťŻˆš­†˝ą‰ź°‰śŞ„§œy •s“q“‰h…{]xoTg_HVP<GB2<7)/+  
+99;^^_wwyşşşřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţöőóŐŇČľŽ˜¤š{“r˜Žm˜l“pĽšvŽŁ}ľŠ‚ľŠ‚°ĽŤĄ~¨ž{¨y­Ą|ł§ˇŹ„şŻ‡ž˛‹żł‹¸Ź…śŞƒ˝ąŠŔ´Œž˛Šš­†ž˛ŠĹš‘Äš‘Ĺš‘É˝•ÍÁ™ĎĜÎÛʿ—Ćş’ž˛‹˝ą‰˝ąŠżł‹ÂśĆť“Čź”Ęž–Ęż—Çź”Ĺš’Çź”Çť“Çť“Čź”Čź”Čź”ĸÂśŽÂśŽÄ¸Ćş’Çť“Čź”Éž–ĚÁ™Éž–ĸÁľĆş’ËŔ˜Éž–ĸÂśŽĂˇĂˇŔ´Œž˛Šž˛‹ÁľÁľżł‹şŽ‡š­†˝˛ŠĹş’ĚŔ˜ĚÁ™Ćť“żł‹¸Ź…°¤Ť {ł§şŽ‡ž˛ŠŔ´ŒÂśŽÁśŽ˝ąŠşŽ†şŽ‡Ŕ´Ĺš‘żłŒÂśŽČź”Ęž–Ęż—ĚŔ™ÓɢÖÍŚŃƟÍÁ™Ęž–Çť“Č˝•Éž–Čź”Ęž–ÍšĎĜŃƞÓɢÓČĄŃƟĎĜĎĜĎĝĐƞÓÉĄÔˤŇČ ĐŝŃƞŇČ ŇČ ĐŞĐŝÓČ ŘĎŞÔʤÍ›ĚŔ™ÔɢÜŇ­ŘĎŠÓČĄĐŝĎĜĎĜĎĜÎÛÍÁ™ĚŔ™ËŔ˜Éž–Ĺş’Çť“ĚÁšÓĘŁÚŃŹÜÓŽÖĚŚÍšøź°‰¸Ź†ž˛ŠĆş’ĚÁ™ĎĜĐŝÎÛȽ•Äš‘Čź”É˝•É˝•Çť“Ęž—ÎÜÍšËŔ™Î›ŘͨŰŃŹÓǠΛ˿—Çź”Ćş’Ĺš’Čź”Ęż—ËŔ›ĘÁ¤Ę¥͝ĚÁ™Ëż—Éž–ËŔ˜ĚŔ˜Éž–Ëż—ĚŔ˜Ćş’ÂśÄ¸Ĺš‘Ćş’Çť“Čź”Čź”Čź”Č˝•Çź”áĹş’ËŔ˜Ęż—Ćş’ÂśŽÁľŔ´ŒŔ´Œżł‹ž˛ŠÁľżł‹ź°‰˝ą‰şŽ‡¸Ź…Ŕ´ŒÉ˝•ËŔ˜Éž–ĸš­†°¤ŤŸ{ŽŁ~śŞƒ˝ą‰Ŕ´ŒÁľŔ´Œ˝ą‰şŽ‡şŽ‡şŽ‡ź°‰Ŕ´ŒÁľÁľÂśŽĂˇĆş“ĎĞÓɢĚÁ™Č˝•Ćş’Ŕ´ž˛ŠŔ´ŒĂˇĂˇÁľĹš‘Čź”Çť“Čź”Čź•Çť“Ćş’Ćş’Çť“Čź”Ĺš‘żłŒťŻˆź°‰ź°‰˝ą‰˝ą‰ˇŤ…ł§śŞ„ąĽ€Ľšw“‰iƒc„d…{]ulQc\EQK7?:+/+!#   **,@@Ahhi••–ŐŐŐůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýńńîŘÔĘśŻš›’v’‰j‘‡g•Šj™Žm •r¨yŹ {­Ą}­Ł~Šž{Ś›wŠy°¤~śŞ„¸Ź…š­†şŽ‡łŠƒ˛¨‚˝ąŠŔ´Œž˛ŠşŽ†şŽ‡˝ąŠżłŒÄ¸Ëż—ĎŝĐŞÍÁ™ËŔ˜Éž–ÂśŽÂśŽÄ¸Ćş’Äš‘¡Çź”ËŔ˜Ęż—áŔ´ŒĆş’Éž–Ęž–Ćş’ĸÄ¸Ä¸Çť“Éž–Çť“áÂśŽÄ¸‘Čź”Ęż—Čź”ĸÁśŽÇź•ĎĜĚŔ™Çť“Ĺš‘Ćş’Çť“ĸźą‹şŻ‰Ă¸‘É˝–Č˝–øÁľŽĂ¸Ćş“É˝•Ęż—Ĺş’Ŕľżł‹ˇŤ…°ĽąŚˇŹ†ž˛‹Ŕ´Œżł‹ź°ˆ¸Ź…ˇŤ…ž˛‹Ä¸Ĺš’żł‹ź°‰ž˛ŠÂśŽČź•ÎÜŇČĄŇČĄÍšËŔ˜Ëż—Č˝•Éž–ËŔ˜ËŔ˜Ęž–Éž–ĚÁ™ĐŞŃƟʿ˜Ćť“Ëż—ΚĎĜĎĜĎĜĎĜÍšÎÛŇǟÓČĄĐŝʿ—ĚŔ˜ĐŝÓÉŁĐƟËŔ˜Éž–ĐŞŮĎŠÖĚĽŃǟĎŝĎĜĎĜÎÛʾ—Çť”ĚÁšĎŞĎŞÍ›ËŔ˜ĚÁ™ĎŝÓɢÔʤĐşĚÁ™Éž—Áśš­†š­†Ŕ´É˝–Éž–Čź”Çť“ÁśŽżł‹ĂˇĆş’Çť“Ĺš‘ĸÄ¸‘ĸ‘Čź•Ďĝ×ĚŚŘΨŃƞÍšĚŔ˜Ëż—Čź”Ćť“ËŔ™Ęż˜Ćť•Ć˝œĘŔ Íœɽ•Ĺš‘Ĺš‘Čź”Ęż—É˝•Čź”Çť“áÄ¸‘É˝–É˝–Ćş’ÂśÄ¸‘Čź”Ęż—Ęž–Çť“áĆş’ÍšÍÁ™Ęž–Çź”Ĺš‘ĸĂˇťŻˆˇŤ…Ŕ´ŒĂ¸Ă¸Ä¸Áľž˛‹ĂˇČź”Çź”Ćş’øżłŒˇŤ…ŻŁ­Ł~ľŞ„ž˛‹Ŕ´Œżł‹ź°‰şŽ†¸Ź…š­†ź°‰żłŒŔ´Œž˛‹˝ą‰ź°‰Ŕ´Čź•ŃÇ ÔʤÍšɾ–Çť“ĸŔ´ŒżłŒÇť“Ĺš’Ŕ´ŒÄ¸Čź”Çť“ĸÂśŽÄ¸Ćş’Čź”Čź”Ĺš‘Ŕ´ŒťŻˆťŻˆž˛‹ž˛ŠşŽ‡´¨‚ŽŁ~Ź {­Ą|Ľšv—Œk…{]~tX|sWphN]VANH6?:+.+ 
+  //0NNOlllžßßßűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýňńîÚ×βŹšš“x‡i†g‘†g“‰išn˘—s§›wŤ {Šy§œx¨yŻŁ~śŞ„śŤ„ľŠƒ˛§Ź˘~Ž¤€ť°‰ÁľÁľŔ´Œš­†ł§¸Ź…ÂśËż˜ŃƟŃƟËŔ˜Ëż—Ęż—Ĺš‘Ĺš‘Čź”Ëż—Ĺš’žł‹Ćş“ËŔ˜Čź”ÁľŽż´ŒÇť”ĚŔ˜ËŔ˜Ä¸ÁľĂˇĹš‘Ëż˜ÍÛǻ“ž˛‹˝ą‰ÁľĆş’Ćş“Çť“Ćş’áČź•ĐŞÎÛ˿—Ęž–É˝•Çť“ᏸ­ˆ´Ş…Äş“ĎĜŃƟËŔ™Éž–Ęż—Çť”Ĺš‘Ćş’áÁľÂśŽž˛‹¸­‡łŠ„śŹ†ž˛‹żł‹ťŻˆśŞ„ąŚ€´¨‚Ŕ´Ćş’Çť“ᏺŽ‡´¨‚¸Ź†Ä¸’ÎĜĐƞÎÜĚŔ™ĚÁ™ĚÁ™Ęž–Éž–Ëż—ĚÁ™Č˝•Äš‘É˝•ÎÛÎÛź“ÂśČź”ĚÁ™ĎÛΚĚŔ˜Éž–É˝•ĚŔ™ĐŞĎĝʾ—Äš‘Čź”͚ΚÎÛÍšʿ—ÍšÓČĄŇÇ ŃƟŃƟĎĝÍšʿ—ÂśżłŒËÁšÔˤ×ͧÔˤŃǟĎĜÍš˿˜Éž–Čź”É˝•ĚÁšÇź•Ŕ´Œš­†˝ąŠĹš’áŔ´Œž˛‹şŽ‡š­‡ž˛‹Ä¸Çť“Çź”ÁśŽşŽˆťŻˆÄ¸’ĎĝÔĘŁÔĘŁŃƞÎÛÍÁ™Íšɾ–Çť“ÍÛɾ–Ŕ´Ăˇ‘Éż˜ĚŔ™Çź”áĹš‘Çť“Éž–Čź”Ćş’áÂśŽÇź•ÎĜËŔ˜Ă¸ž˛‹ÂśŽÇź”Ęż—Éž–Çť“áĹš‘ËŔ˜ÎšÎÜÎÛ˿˜Čź”ĸˇŤ†Ż¤€żłŒÉ˝•ĚŔ˜Ęż—Çź”Ćş’Čź”Çť“ÂśŽÁľÁľÂśŽž˛ŠˇŹ…ą§‚śŹ†żłŒŔ´ŒťŻˆˇŤ„ľŠ‚ľŠƒˇŤ…żł‹Ä¸Âś˝ą‰¸Ź…ľŠƒź°‰Č˝•ŃƟÓČĄĎĜʿ—Çť“Ĺš‘ÂśŽŔ´Č˝•Ĺş’ž˛‹ÂśČź”Çť“ÁľŽž˛ŠÁľŽĹš‘Çť“Ćş’ÁľťŻ‡š­†ź°‰Ŕ´Œš­‡ŻŁ~Ś›xŁ˜uĄ–s’q”Šjˆ~`vmRmdKg_HXQ=F@183&,( //1YYZ……†źźźççç˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýőôóáŕŰËČ˝ĽŸˆ“ŠmƒdŽ„d’ˆh–ŒjšnŸ”rĽ™uŤ {°Ľ´¨‚ľŞ„ą§‚Ş |Ł˜uŸ”rŚ›xşŽ‡ÂśŽĹš‘ĸ¸Ź‡Ź |Ť |ľŞ„¡ËŔ™ĎĜĚÁ™Č˝•Ćť“Éž–Éž–Čź•Č˝•Âˇź°‰Ă¸Éž–Čź”Ćş’Ćş“ĚŔ˜ÎÛĚÁ™Ä¸ĂˇĹš‘Çť“Çť”Ĺš’żłŒťŻˆ˝ą‰Ŕ´ŒŔ´żł‹ÂśŽĆş’áĹš‘ËŔ˜ĎŝŃÇ ŃƟÍÁ™Ĺš‘şŽˆł¨‚ł¨ƒŔ´Ęż—ĎĜÎÛËŔ˜Ëż—Ęż—Č˝•ĂˇÁľž˛‹š­‡˝ąŠÁľŽŔľŽż´żłŒ˝ą‰ľŠƒŹĄ|Šy­Ą}şŽ‡ÂśÇť“Č˝•ť°ŠŹĄ}Ť |śŞ…ĸ‘ËŔ˜ĎĜĐƞΛ˿˜ĚÁ™ÍÁ™ĚÁ™Ęż—Ĺş’ÂśŽĆť“ĚŔ˜ÎšĚŔ™Ęż—ĚÁ™ÎÛÎÛËŔ˜É˝•Čź”Čź”Çź”Ćť“Ĺš’áÁľĹš‘Čź”Ćş“Éž–ĚÁ™Ęž–Ęž–ÍÁšŃƞÔʤŐËĽĎŞȼ•ŔľŽš­†ˇŤ„áÎÜÔʤŇÉĄĐŞĎĝŃƞÍÛŹ‘ÂśŽÁľ˝ąŠŔ´Ä¸ĂˇÄ¸Ĺš’Ŕ´Œ¸Ź…ľŞƒąŚ˛§‚šŽ‡ÁľŽÇź”Ęž—żľą¨ƒŽŁ~śŞ…ĸ‘ĚÁ™ŃƞŃÇ ĚŔ™Čź”ĚÁ™ÍšËŔ˜ËŔ˜Ćş“ŔľÄ¸‘Č˝•Éž–Čź”É˝•ÎÜĎĜÍÁ™Éž–Çť“Ćş’Ćş’Čź•Ęž—Ćş“Áľżł‹ĂˇĹš’ÁľŽĂˇĆş’áÂśŽĹş’ËŔ˜ĐƞŇÇ Íšǻ“ÂśśŤ†°Ľ˝ą‹Čź”͚Κ˿—Éž–Ëż—É˝•ÂˇŔ´Œž˛‹š­†şŽ‡ź°‰ť°‰žłŒĂˇżł‹ľŠƒ­Ą}ŞŸ{ŹĄ|ł§˝ąŠĆş’Ĺš‘˝ąŠ˛Ś€§œxŹĄ|źąŠÉž–ĎĝΛȽ•ĂˇĂˇĹš’Čź•É˝–Ĺš‘Ŕ´Ä¸Čź”Çť“Ćş’ĸ‘Ćş’Çť“Çť“Ꮮ˛Šš­†¸Ź…ˇŤ…ł§‚ŠžyŸ”qšn–Œk…f‚y\zqVriPbZDTM:JE3?:+1-"# 
+""$<<=eefŞŞŤÝÝÝőőő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüü÷öö×ŐÍŚ Œ†kƒeŽƒd„e’ˆh—Œk‘oŁ™uŹ |°¤Ż¤ŹŁ¨Ÿ|ĽšwĄ—tŚ›xľŠƒ˝ąŠŔ´ž˛‹¸Ź†°¤€Ť |°¤€ťŻˆŔ´Ă¸Ĺş’Çź”Č˝•Ćť“Č˝•É˝–ĸ‘ž˛Šť°ˆÄ¸‘Ęž–É˝•ĚŔ˜ÎÛĎĜĎĜÍšƻ“Ĺš‘Çť“Ćş’ÂśŽž˛Šź°ˆš­‡śŞ„š­†ź°ˆź°‰Ŕ´ŒĂˇÂśŽĂˇČź”ËŔ˜ĎĝŃƟÍšǻ”¡‘źą‹şŽ‡ĂˇÇź”Č˝•É˝•Č˝•É˝•ĚÁ™Ęž—Ŕ´Œ˝ą‰ťŻˆśŞƒ¸Ź…ž˛‹ĂˇĂˇŔ´ŒťŻˆśŞ„ł§‚­˘}Ž˘}¸Ź†ž˛‹ÂśŽÄ¸‘˝˛‹´¨ƒŻŁ˛§ź°ˆÂśČź•ĚÁ™ĚÁ™Ęż—Éž–Ęż—Ęż—ĸ‘żłŒżłŒĆş’ËŔ˜ĚÁ™ĎĝŃƟĎĝĎĜÎÛʾ–Čź”Čź”Čź”Ĺš‘ÁľŔ´Œž˛‹şŻˆ˝˛ŠÁľŽĂˇÄš‘Ćş“Çť”É˝•Ëż—ĚÁšĐŞÓÉŁÎÜȼ•Ĺť”ŔľŽ˝ąŠĂ¸Éž–ĚÁšĚÁ™ĚÁ™ÍšĐŞĎÜƺ’Ŕ´ŒťŻˆśŞƒşŽ‡ÁľÄ¸Ĺš‘᏿ł‹şŽ†śŤ„ąŚ°Śš­‡ž˛‹ÂśŽÄ¸‘żľŽśŹ‡°Ľ€˛§ťŻˆŔ´Ĺş“ĘŔ˜Éž—Çź”Č˝•Ęż—Ęż—Çť“ÁľŽŔ´ŒĆş’Ęž–É˝•ĚŔ˜ĎĜŇČ ŇČ ĐŞʿ—Čź”Čź”Čź”Ćş’ÂśŽÁľž˛‹šŽˆťŻ‰ž˛‹żł‹ÁľŽÄ¸Ä¸ĂˇÄ¸Çť“ÍÁšŃƞÍšɾ–Éž—żľ¸Ž‰ÂˇÇź”Éž–ËŔ˜Ęż—Éž–ĚÁ™ĚŔ˜Äš‘Ŕ´ŒťŻˆśŞƒ¸Ź…ź°ˆ˝ą‰Ŕ´ŒÂśŽ˝ą‰ľŠƒ°Ľ€ŹĄ|ŹĄ|ľŠ‚ź°‰ÁľÁľž˛‹ˇŹ…Ź {Ź {śŞ„ť°‰ŔľÇť”Ćş’ĸĹş’Ćş“Ćť“Çť”ÂśŽ˝ą‰ĂˇÇť“Ćş’Čź”Ęž–Čź”Čź”Ćş’żłŒťŻ‡¸Ź…´Šƒ­Ł~Ľšv›n†fˆ~`€w[xnTlcKbZDXR>LF4?:+3/#)% 
+
+ //1YYZ}}~şşşöö÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţńđîËČż°Ťš™‘wŽ„g‚cŽ„d‘‡g”‰i˜lŸ•r¤™vĽšw¨ž{Ź˘Ż¤Ź˘~ŤĄ}Ż¤´¨‚ˇŤ…ľŠƒˇŤ„¸Ź…ł§ł§š­†¸­†¸­†˝ąŠÇź•ËŔ™ÁśĹš’Éž–Ŕ´şŻ‡˝˛ŠĆş“ËŔ˜Ęż—ÎÛĐŞÎÛΚÍÁ™É˝•Čź”Çź”øž˛ŠşŽ‡ź°‰š­‡°¤ł§š­‡ź°‰žł‹ÁľÂśŽĹš‘Çť“Ćş’Éž–ĎĜÍÁšĚÁšŃÇĄËŔšÄš‘Č˝•Çź”áĂˇĹš‘Čź”ĚÁ™Éž–ž˛‹şŽ‡¸Ź†śŞ„´¨‚ľŠ‚ź°ˆŔ´Œżł‹ťŻˆź°‰żłŒš­†´¨‚ťŻ‡ťŻˆš­†ťŻˆž˛‹żłŒşŽ‡¸Ź…ťŻˆź°‰żłŒĂˇČ˝•Éž–ĸĆş’Çź”ż´Œź°ˆž˛‹Çť”ĚÁ™ËŔ˜ĎĝŇÇ ĎĜÎÛÍšʾ–É˝•Čź•Çť“᏿ł‹żł‹şŻ‰łŠ„śŤ…ź°‰ÂśŽŔ´żł‹Äš‘Ęż—ËŔ˜Čź”Éž–Ďŝ͚̚ŇȢÎĞɾ—ËŔ˜Čź”ĸÇť“Éž–Ęž–͚͚ǻ“Ŕ´Œš­†śŤ„ˇŤ„şŽ†ž˛ŠŔ´ŒŔ´ŒŔ´Œżł‹˝ą‰ˇŤ…ľŠƒź°ˆź°ˆşŽ‡ťŻˆž˛‹Ŕ´şŽˆ¸Ź…şŽ‡š­†ťŻ‰ÂˇČ˝•Ęž–Äš‘Ćş’É˝•Ä¸‘żłŒž˛‹Ćť“ĚŔ˜Ëż—ÎÜŃǟĐŝŃƟŃƟËŔ˜É˝•É˝•Čź”ÂśŽťŻˆź°‰şŻˆłŠ„˛¨‚ˇŹ…ż´ÁľŽÁľŽĆş’Çź”Çť“Ĺš‘Č˝•ÎÜ͚͚ŇȢËÁ›Äš’Ęż—Čź•ĂˇĆş’Č˝•É˝•ĚÁ™ÍÁ™Çť“Ŕ´Œš­†śŞ„ˇŤ„¸Ź…š­†ź°ˆž˛Šź°ˆşŽ‡ťŻˆśŞ„´¨‚ťŻ‡ťŻˆš­†şŽ‡ž˛Šż´ŒˇŤ…ľŠƒ¸Ź…ł§‚´¨ƒżłŒÄ¸Ćť“É˝•Ĺš’ÁľŽÄ¸‘żłŒ¸Ź†Ŕ´ŒÄ¸ĂˇÇź”Ęż—Çť“Ĺš’ÂśťŻˆˇŤ„ł¨‚Ź˘~Ą—u–Œk…e„{]ulRiaJ`YCXR=LG4@;+95&.*!  667oop´´´ÖÖ×öö÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüôóńćĺŕŔť­‘‰oŠ€c‹bŽ„d…e’‡h–‹kšmž“qŁ˜v¨žzŤ {­˘}­˘}ŞŸ{ŹĄ}°Ś´Š‚ľŠƒľŠƒ˛Ś€ˇŤ…żłŒŔ´żł‹ž˛‹ĂˇĆť“ĸ‘Č˝•Ęż—żłŒž˛‹Ĺš’Ćş“Čź”ËŔ˜Ęż—Čź•Ćť“Čź”Ęž–Č˝•Ęž–Ęž–ĸťŻˆśŞƒťŻ‡˝ąŠ¸Ź†şŽ‡şŻˆľŤ…šŽˆÁľĆť“É˝•É˝•É˝•ÍÜÓÉŁŃƟÎÜŇÇ ĐƟÍšǼ”áÂśŽĂˇĆş’É˝•ĚÁ™ËŔ˜Ä¸˝ą‰ˇŤ…ą§‚ŻĽ€ąŚ€¸Ź…˝ąŠž˛‹ťŻˆź°ˆŔ´ž˛‹š­†ˇŤ„´¨‚ľŠ‚ťŻˆ˝ąŠ˝ąŠşŽ‡ź°‰ÁľÂśŽĂˇĹš‘Ĺš‘Äš‘ÂśŽČź•ĚÁšĂ¸ÁľĆş“Éž–ËŔ˜ĚÁ™ÍÁšĚÁšËż˜Ëż—Ëż—ĚÁ™ĚÁ™Ęż—¡ťŻˆ¸Ź…š­†şŽ‡šŽ‡şŻˆź°‰şŽ‡ťŻˆž˛‹Ĺš‘É˝•Ęž–Ęż—ÍÜÓʤÓɢŃÇ ÓɢÔĘŁŇȢĚÁ™Ä¸żłŒĆť“Ëż—Éž–ĚÁ™Íšȼ”Ŕ´ŒˇŤ…ą§‚ą§´¨‚š­†ťŻˆź°ˆž˛‹Ŕ´Œżł‹˝ą‰ťŻ‡şŽ‡š­†¸Ź…¸Ź…ťŻ‡ź°‰şŽ‡ź°‰ÁľĂˇÄš‘Ĺš’Čź”Č˝•ĂˇČź•Í›Ƚ•Ä¸Ă¸Çź”ËŔ˜ĚÁ™ÍÁšĚÁšËż˜ĚŔ™ÍÁšÍÁšĚÁ™ËŔ˜Ćş’˝ą‰śŞƒ¸Ź…şŽ‡¸Ž‡šŽ‡š­‡śŹ‡¸­‡˝˛‹Çź”Ęż—É˝•É˝•ÍšŇÇ ŇÇ ŃÇ ŇČĄĐƟÎĜÎÛƻ“żłŒĂˇČź”É˝•ĚÁ™Íšȼ”Ŕ´ŒˇŤ…ą§‚ą§´¨śŞ„š­†ťŻˆź°‰ž˛‹żł‹˝ą‰ťŻ‡şŽ‡ˇŤ„ľŠ‚ˇŤ„ťŻ‡şŽˆ˛Ś´¨‚ž˛‹ž˛‹ź°ŠżłŒÂśŽÂśŽÂśĹş“Čž–Ĺş’żłŒ˝ą‰Ŕ´ŒÂśŽÁľĂˇÄ¸żłŒťŻˆ¸Ź†´¨‚°¤~ŠžzŸ•r†f‚x\}sXtkQf^GZR>NG5A<-62$,($!
+ $$&GGHwwxËËËóóóýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűĺäßąŹ™‘y‘ˆlƒfƒeŽƒd…f’‡g—ŒkŸ”qŁ˜u˘—t§›wŞŸz§žzŠ |­Łł§´¨‚ł§ł§¸Ź†ÁśŽÇť”Čź”ĸÁľÁľÂśÄš‘Ĺš’ŔľŔ´ĂˇÂśŽĹš‘ËŔ˜Č˝•Ä¸Ĺš‘Çť“Čź”Čź”É˝•Č˝•ĂˇşŽ‡˛§‚ˇŤ…ť°‰šŽˆťŻ‰ť°‰ˇ­ˆź˛‹Ćş’ĚÁ™ÍšĚÁ™ĎĜÓɢŐËĽÓÉŁŃƟĎĝĐŞÎĜƻ“Ĺš‘Č˝•Ëż˜Ëż˜É˝•É˝•Éž–Çť“Âśźą‰´Ş…ąŚąŚ´¨š­…˝ą‰żłŒŔ´Ŕ´ŒŔ´Œž˛‹š­‡¸Ź†š­‡ž˛Šž˛ŠťŻˆťŻˆ˝ąŠĂˇÉ˝•ËŔ˜É˝•Çť“ĸż´ŒÄš‘Éž–Ĺş’Äš‘Ćť“Çź”Ęż—ÍšËŔ˜Čź”Čź”Čź”É˝•ËŔ˜ËŔ˜É˝•Ă¸ťŻˆľŠ‚śŞƒš­†şŽ‡ź°ˆź°‰şŽ‡žł‹Ĺş’Ëż—ĚÁ™ĚŔ™ĐŞŐˤ×ϨŘĎŠŐËĽŃƟŇÇ ŃÇĄĘż˜Ćť”Ćź•Í›ÎÛɾ–É˝•Éž–Čź”ø˝˛Œ´Ş…ą§ąŚ´¨śŞ„şŽ‡Ŕ´Äš‘áÁľżł‹ž˛‹ž˛Š˝ąŠťŻˆź°‰˝ą‰ź°ˆ˝ąŠĂ¸ËŔ™ÎÜɾ–Éž–Čź”ÁľÄš‘Éż—Çť”Ĺš‘Ĺš‘Ĺš‘Čź”Ëż—Ęž–Čź”Čź”Čź”É˝•ËŔ˜Ęż—Çź”Ćş“žł‹ľŠƒ´¨‚ˇŤ„š­†şŽ‡šŽ‡śŹ‡ş°‰ÂśËż˜ÍšĚÁ™ĎĜÓÉĄŐˤÖĚĽÔĘŁŃƞĐŞĎŝʾ—Ĺş’Äš’Éž–Ëż˜É˝•É˝•Č˝•Ĺş’¡˝˛Œ´Ş…ą§ąŚ´¨śŞ„š­†żł‹ÂśŽŔ´Œž˛‹˝ą‰ťŻˆ¸Ź…śŞƒ¸Ź…şŽ‡ťŻˆł¨‚ľŞ„ŔľÇť”Čź”ĸĂˇÁľťŻˆŔľŽĆť”¡ž˛ŠťŻˆź°‰˝ą‰˝ą‰˝ą‰şŽ‡ł§‚ŻŁ}ŤŸ{Śšvž”q–ŒkŒƒc}tXmdLb[DWP=LG5A<-62$(%
+ 
+556llmśśˇćććűűü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řř÷ăáÝĚÉžŞ¤Ž…h‹cŒ‚cŽƒdŽ„d‘†fšnŸ”r›n’pŁ™v¨ž{ŞĄ|ŹĄ|Ž˘}˛Ś€ľŠƒˇŤ„š­†˝ąŠĆť“Ęż—Ćş’ÂśŽž˛ŠťŻˆťŻˆ˝˛ŠĂˇŔ´Œš­†ź°ˆÄ¸ËŔ˜Č˝•Ĺş“Č˝•Čź”Çť“Ćş’ĸÂśŽŔľšŽ‡°Ś‚´Š„ľŤ…°Ś‚´Š„ť°‰ĂˇČź•ËŔ˜ÍšÎÛĎĜŇČĄÔɢŃǟŃÇ ŃƟÍšËŔ˜Ëż˜Ęż—ΛŇÇ ÓÉĄĎĝɽ•Ä¸ĂˇÇť“Çť“ĸžł‹¸Ź†ł§´¨śŞ„ťŻˆÄš‘Çť”Áľž˛Šž˛‹ĂˇĂˇÂśŽżłŒżł‹żł‹żł‹żł‹Ŕ´ËŔ˜ĐŞʾ–Éž–Çź”˝ąŠťŻˆżł‹Ă¸Âśž˛‹ÂśÉž–ÍÁšĘž–Ćş’Ćş’Çť“Çť“Çť”Ĺš‘øĆť“¡şŽ‡¸Ź†ˇŤ„´¨śŞ„ź°‰ĂˇČź•ĚÁ™ĐŞĐŞĐŞÔʤ×Ψ×ÍŚÖͧÓʤÎÜËŔ™Ęż˜Ęż˜ĎĝÓʤŐˤĐŞɽ•Ĺš‘ĸÇť”Éž–Čź•ż´Œ¸Ź†ł§´¨ľŞƒš­‡Ä¸‘Éž–Ćş’ÁľżłŒÄ¸Ä¸‘áŔ´ŒÁľÂśÁľŽżł‹Ŕ´ËŔ™ĐƟʿ—Ęž–Čź”˝ąŠťŻˆž˛‹ŔľÂśŽÁľÁľÄ¸Čź”Çť“Ćş’Ĺš’Ćş’Ćş’Çť“ÂśżłŒĹş’ᐚ­†´¨‚ł§€˛§€ł§ˇŤ…ÁśÇź”Ęż—ĚŔ™ÎšĎĜŇČĄŐˤÖ̤ÔĘŁŃÇ ÎÛËŔ˜Č˝•ĂˇÇź•ĐƞÓČĄĎĝɽ•Ĺš‘ÂśŽÂśŽĆť“Čź”ż´Œ¸Ź†ł§´¨ľŠ‚š­†Ŕ´Ä¸Ŕ´ŒťŻˆš­†˝ą‰ž˛Š˝ą‰şŽ‡˝ąŠÁľŽżł‹ź°‰ž˛‹Çź”ËŔ˜Čź”Ćş’ÂśşŽ‡śŞ„ˇŹ…ź°‰şŽ†ľŠ‚´¨‚śŞ„ˇŤ„śŞ„ąĽ€Ś›x˘—tž“q“‰hˆ~`~uYypUmeL\U@LF4=9*3/#)% 
+ !EEF„„…ËËËđđđýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüńđîĎĚ֐y„hŽ…fŽ…f‚d‹b‘‡g•Šj‘†f…f”‹j˘˜v¤™w˘—t˘—tŠžz˛Ś€śŞ„ťŻˆÁľŽÇť”Çť”Ŕľ˝ąŠşŽ‡śŞƒ¸Ź…ž˛‹Çť“¡¸Ź…š­†ÁľÇť”ŔľšŻŠźąŠž˛‹żł‹żł‹˝ąŠ˝ą‰ž˛‹şŻˆ´Ş„ľŞ„łŠ„ŽĽ´Ş„żł‹É˝•Éž–Çť“Çť“Ęż—ĎĜÓɢÓɢĎĜɾ—ĸ‘Ŕ´Ĺš’ÍšÔĘŁÖĚŚÖˤÓÉĄÎÜȼ•ÁľżłŒĆş’Čź”Ćş’ÁľŽżłŒž˛‹ž˛ŠťŻˆťŻˆÄ¸‘Ćş’˝ąŠľŠƒľŠƒŔ´ŒÁľŽž˛Šš­†ťŻ‡Ŕ´ŒĂˇĹš‘Çź”ĎĝĐƞǻ“Ĺš‘øťŻˆşŽ‡ž˛‹Ä¸‘ÂśŽťŻˆź°‰Äš‘Ęż—ø‘ź°‰ž˛‹ÁľŽÂśŔ´Œ˝ąŠ˝ą‰Ŕ´Ŕ´˝ąŠ˝ą‰¸Ź†°ŚľŞ„żł‹É˝•Éž–Çź”Éž–ĚÁ™ĐŝÔʤ×ͧŐˤÎÝƼ•Ă¸‘Ĺš’Éž—ĐşŐËĽ×ͧÖĚŚĐƟɽ•ĂˇÂśŽÇť“Éž–É˝•ÂśŽżłŒžł‹Ŕ´ź°‰ˇŹ…ż´ŒĹş’ÂśŽš­†śŞ„Ŕ´ŒÁľŽżł‹ź°‰˝ą‰żłŒĂˇĹš‘Çź”ĎĝŃÇ Ęž–Ĺš’ŔľşŽ‡şŽ‡˝ąŠÂśŽĂˇŔ´Œ˝ąŠÁľŽČź”ÂśťŻˆťŻˆ˝ą‰żł‹żł‹ź°‰şŽ‡žł‹ž˛‹šŽ†š­†śŞ„°Ś€łŠ‚ź°‰Č˝•Éž–Ćť“ĸ‘Çź”ĎĜÓɢÖĚĽÔĘŁĚ›ź’áĹš’É˝–ÎÞŇȢŐˤÓÉĄÎÜȽ•ĂˇŔ´ŒÁľĆş’Č˝•ÂśŽżłŒž˛‹˝ąŠš­†ˇŤ„˝ąŠÂśŽž˛‹ľŠƒąĽ€š­†ž˛Šž˛ŠşŽ‡ťŻˆž˛‹Ŕ´ŒÂśĆş“ËŔ˜ÍÁ™É˝•Ăˇ˝ąŠľŠƒ˛Ś˛Ś€¸Ź…ˇŤ„°¤~Šžy¨œyŞŸ{Ś›wž“p•Šiƒd†|_uYriPe]F_WBSL9C>/62%*' 
+
+  778ZZZœœßßßůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýüđđíÄÁˇąŹšœ”z†hŠ€b‡}^‰`‰`…{]ƒy[‡}_•‹k˜m–‹jšm˘–sޞy°¤š­‡ÁľŽÂśż´ťŻˆľŠƒąĽąĽ¸Ź†ÂśŽĆť“ᐟ°ˆš­…ťŻˆżłŒśŤ‡ŻĽ˛Śł§´¨‚śŞƒśŞƒ¸Ź…˝ą‰˝ą‰š­†š­†¸­‡śŹ‡ť°ŠÂˇÉ˝•Ćť“ÂśŽÁľÇť“͛ЪĐŝĚÁ™Ăˇť°ˆťŻ‰Äš’ĐƟŘΨÖĚŚŃƟĚÁ™Č˝•Ćş’Ŕ´żłŒĹš‘Çť“Ćş’Ŕ´ÂśĆş“Çť“ÂśŽ˝ąŠÂśŽÁľŽš­†Ż¤~Ž˘~şŽ‡ź°‰şŽ†ˇŤ„š­†ž˛ŠĂˇÉ˝•ÍšĎĜËŔ™Ă¸ž˛Šš­‡ˇŤ…ťŻˆÂśŽĆş’ᏽąŠşŽ‡ž˛‹Äš‘ť°‰´¨‚ˇŤ„š­†š­†ˇŤ„śŞƒˇŤ„š­†˝ą‰żł‹ž˛‹ť°‰ś­ˆź˛ŒÄš‘Ëż—Č˝•Ä¸ĂˇČź”ΛĐƞŃǟĐƞź“ź°‰ž˛ŠÄš’Í›ŇÉŁÓĘŁŃǟĎĝ˿˜Ćş’áĂˇĹš‘Çť“Çť“ÂśŽÂśĆş’Éž–¡š­†˝ąŠÁľ˝ą‰˛ŚŽ˘}š­†ťŻˆťŻ‡şŽ‡şŽ‡ź°‰ÁľČź”ÍšĎĜÍ›ȼ”ž˛ŒśŤ…ľŤ…ť°‰ÂśĹš‘ĸÁľź°ˆž˛‹Äš‘ť°‰ł§´¨‚´¨‚´¨‚ˇŤ…¸Ź…ˇŤ„š­†şŻ‡şŻ‡ź°ˆşŻˆś­ˆź˛‹Ä¸‘Éž–Çť“ÂśżłŒÄš‘͚ЪŃƟĐƞź“ź°‰ž˛ŠÄš’ÎÜ×ĚŚÖĚĽŃƟÍ›ɽ•Ĺš‘áÂśŽÁľĂˇÄ¸Ŕ´ŒŔ´ĂˇĆş’żłŒ¸Ź…ź°ˆŔ´Œź°‰˛ŚŹ |´¨‚ťŻˆž˛ŠşŽ‡¸Ź…şŽ†ź°‰Ă¸Ęż—Ęż—Č˝•Ĺš‘ź°‰ł§Ź {Ž˘|˛Ś€ľŠ‚ł§€ŤŸ{ •r™Žm˜Žm‘‡g‡~`w[vmSkcKg_H[T?LF4D?/83&,("
+ 
+
+ --.001HHI™™šÎÎĎíííüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűůéçăÄŔ˛‘‰p†}aƒz^x[}tXzqUypU}sX†}^Š€aŽ„e™n’p’pŁ˜uŽŁ~śŞ„łŠ„´Ş…¸­‡­Ą}Ł˜uŽ˘}ťŻˆÂśžłŒź°‰ź°‰şŽ‡¸Ź…ľŠƒąŚ€°Ľ€ł§ŻŁ~ŞŸ{ŻŁ}ąĽ´¨şŽ‡ź°‰şŽ‡ź°‰ÁľŽĆť”Çť”Ćş’ĸÂśŽÁľÁľĹş’Ęż—Çť”Ćş’Čź”ĸÂśČ˝•ÎĜŇÇ ÎÛɽ–ĸž˛‹˝ąŠŔ´ŒĂˇÄ¸ĂˇĹš‘ĸ‘ž˛ŠÁľÇť“Čź”Ĺš‘ÁľÁľž˛‹¸Ź…ł§ąĽ€¸Ź…ź°‰żł‹˝ąŠź°ˆťŻˆżłŒÇź”ĚŔ˜Ĺş“ÁśŽÂś¸Ź†ŽŁ~ł§˝ą‰Ĺš‘Çť“Ćş’ᏽąŠşŽ‡ťŻˆľŞƒ˛Ś€´¨‚°ĽŹ |ŻŁ~ąĽ´¨şŽ‡ž˛‹żł‹˝ą‰žłŒĆť“Éż—ËŔ˜É˝•Čź”Çť“Çť“Éž–ËŔ˜Çť”Ćş“Čź•Äš‘ÂśŽĹš’ÍÜŇÉŁÍÛȽ•Ä¸‘ż´Œź°‰ź°‰ÁľŽĹš‘ĸĹš‘Ćş’ÂśŽÁľÄ¸Çť”Ĺš‘Ŕ´ĂˇÂśŽşŽ‡ł§°¤~ł§š­†ž˛Šżł‹żł‹ž˛Š˝ąŠĂˇĘż—Ĺş“ÂśÄš‘ş°Š°Ś‚°§‚˝˛ŒČ˝•Ĺš‘áĂˇž˛ŠşŽ‡ťŻˆśŞ„´¨¸Ź…˛ŚŹĄ|ł§´¨‚´¨şŽ‡ž˛Šž˛Šź°‰žłŒĆť“Ęż—Ęż—Ĺš‘Ĺš‘Çť“Ĺš’Č˝•ËŔ˜Çť”Ćş“Čź•Äš‘ÂśŽĹš’ÍÜÓÉŁÎĝɽ–Ĺš’¡żł‹ź°‰ÁľÄ¸ÂśŽÁľŔ´Œź°‰ťŻˆž˛‹Ĺš‘ĸżł‹Ŕ´Œž˛‹şŽ†ł§°¤~˛Ś€š­†˝ąŠşŽ‡¸Ź…¸Ź…şŽ†Ŕ´ŒĹš‘ÂśŽž˛‹ž˛Šł¨‚§œx •r¨œx˛Ś€°ĽޞzŁ˜ušn„e„{]zqVtjQnfMaYCSM:MH5A<-4/$+'" 
+ ##%../KKLxxzˆˆ‰ˇˇˇďďďřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůřâŕŰŻŤœž—‚‰rw]wnStkQvmSxoU{rV€wZˆ~`†f“‰h•‹j“q§œyŹĄ}Ź˘­¤ą¨ƒŞ }ĽœxąŚ€ź°ˆŔ´ŒˇŹ†´Šƒ¸Ź…şŽ‡ťŻ‡¸Ź…˛§ŽŁŽ˘}Ź {ŞŸzŞŸzŽ˘}´¨ˇŤ„¸Ź…š­†żłŒÄš‘Çť“Čź”Çť“Ĺš‘Ĺş’Ćş’ÂśŽÁśŽÂśżł‹Ŕ´Ćş“Čź”É˝•ËŔ˜ÍšÍšƻ“ĸÁľľŞ„˛Ś€¸Ź†żłŒÄš‘Çť“Ĺş’áÁľŽÄ¸Čź”Ęż—Ęž–Çť“ᏽąŠš­†śŞƒ´¨‚ľŠƒž˛‹Ĺš‘ÂśŽž˛‹ž˛ŠÁľŽČ˝•ÍÁ™Č˝•Ä¸‘ÂśşŽˆśŞ„ž˛‹Ä¸Ćş’ÂśŔ´ŒżłŒž˛Šź°‰ťŻˆľŠƒ°¤~Ž˘}Ź {ŞŸzŤŸz°¤ˇŤ„¸Ź…š­†ź°ˆž˛‹ÂśĆť“Çź”Çź”Čź”Čź”Čź”Čź”Ćş“ᐿł‹Ŕ´Ćş“Čź”Čź”É˝•ĚÁšÎĝʾ—Ćş’ÂśŽš­†ł¨´ŠƒźąŠÄš‘Çť“Ĺş’ĸÄ¸Ĺş’Čź”Ęż—Č˝•Ĺš‘Çť“ᏺŽ‡śŞƒ´¨‚ľŠƒź°‰ÂśŽÁľŔ´ŒŔ´ŒŔ´Äš‘É˝–Çť”Ĺš’Ĺş’žłˇ­‡şŻŠĂš’Ęż˜Ĺš‘ÂśŽÂśŽź°‰ťŻˆž˛Šš­†´¨˛ŚŽ˘~Ť {­˘}ąĽľŠ‚š­†ź°ˆź°‰ž˛‹ÂśĆť“Ęž–Ęž–Ćş’Čź”Ęž–Ćş’ĸÂˇżł‹Ŕ´Ćş“Čź”Čź”É˝•ĚÁšÎĝʾ—Ćş’ᏼ°‰´¨‚˛ŚťŻˆĂˇÄ¸ÂśŽŔ´ŒŔ´Ŕ´ÂśČź•Č˝•Ĺš‘ĸŔ´Œš­†śŞƒł§˛Ś¸Ź…ž˛‹˝ą‰şŽ‡š­†ťŻ‡żł‹ÂśŽżłŒťŻˆˇŤ„­˘}¤™v •rĽšwޞzŁ˜t™Žm†fˆ~`uYvmRiaJ^WAUO;JD2>9*61$+(" 
+
+ 88:TTUbbc““”ĎĎĎŢŢßöööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůęéćÓŃÉą­ …jrkSogOriOskPtjPxoSuYƒz]†|^‹b–‹kŸ”rŁ˜vŚz¨ }ŞĄ~ŞĄ~Ť˘˛§‚ˇŹ…¸­†ŻĽ­Ł~˛Ś€¸Ź…ź°ˆšŽ‡´Š„­¤€Šž{ŞŸzŤ {¨žyŹ˘}ł¨‚´¨‚ˇŤ„ťŻˆÂśŽÄ¸ÁľĂˇĆş’Ćş’Č˝•É˝•Âˇź°‰şŽ‡şŽ†ž˛ŠÄ¸Çť“Çź”Ĺš‘Ćş’Ćť“ĸÄ¸ÁľŽ˛ŚŹ |˛ŚşŽ‡ÂśŽÇź”Ćť“Ĺš‘É˝•Éž–Ęž–ĚÁ™ĚÁ™Éž–Ĺš‘żłŒź°ˆşŽ‡¸Ź…ˇŤ…ÁľŽÉž–ĸżłŒżł‹Äš‘ËŔ˜ÎÛÎÛʿ—Ĺš‘ÂśŽĂˇČ˝•Č˝•Äš‘˝ąŠşŽ†ťŻˆž˛Šž˛Šź°‰š­†ł§‚Ź |Ť zŹ {Šžz°Ľ¸­†ˇŤ„ˇŤ„ťŻˆÂśŽÄ¸ÁľŔ´ÂśŽÇť“Çť“Çť“Ĺš’Ŕ´ťŻˆşŽ†ž˛‹Ĺš‘Çź”Çź”Ćş’Ćş“Čź”É˝•Čź”Ꮪ­†°Ś€ą§‚¸­‡ÂśŽÇź”Ćť“Ĺš‘É˝•ĚÁ™ÎšÎÛʿ—Ćş’Çť“ĸ˝ąŠşŽ‡š­†ťŻˆÁľĹš‘áŔ´ŒŔ´ŒĹš‘É˝–ËŔ˜ĚÁ™ĚÁ™Éž–Ĺš’¡Äš‘Çź”Čź•ÁśŽž˛ŠżłŒź°‰źą‰ż´˝˛ŠˇŤ„Ž˘~Ź |Ź {Šžz­˘}´ŠƒˇŤ…şŽ‡ź°‰ÂśŽÄ¸ĂˇÄ¸Ćş’Ćť“É˝•É˝–¡˝ą‰şŽ‡şŽ†ž˛‹Ĺš‘Çź”Ćź•Ĺş’Ćş’Ćť“Čź”Çť“ᏸŹ…Ž˘|Ź |śŤ„ÁľÄ¸ĂˇĂˇČź”É˝–É˝–ËŔ˜Ęž—Ĺš’Ćş’ÂśŽťŻˆ¸Ź…ˇŤ„ľŠƒşŽ‡żł‹żł‹ťŻ‡ˇŤ…ťŻˆżł‹Ŕ´Œżł‹şŽ‡˛Ś€ŞŸz¤™v •s •r›‘oŽ„dƒy\{rVriPkbJe\FVP<IC2=8*3/#*&!   ++,667ggg˛˛˛ÉÉĘăăăńńńúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţýőőôŢÝŮšˇŽ…€qqkWngRmfOnfMqiOvmSwnTxoT{rV…|]‘‡gšnŸ”r˘—u¤™vŚz¨Ÿ}¨zŠyŠžz§œyŠžzŽŁ}ąĽ°ĽŽŁ~´ŠƒˇŹ…Ż¤~ŞŸz¨yŠŸ|Ť˘ŻŚˇŹ†żł‹ÂśŽÂśżłŒź°‰ž˛‹ÁľÂśŽÂśŽÁśŽź°‰š­†¸­…ťŻˆ˝ą‰ťŻˆşŽ‡ˇŹ…ˇŤ…ź°ˆÂśČ˝•Çź”Ŕ´´¨‚ąĽľŠƒ¸Ź…ťŻˆž˛‹Ĺš’ĚŔ™ŃƟĐŞÍš˿—Ĺš‘ÁľŽĂˇĹš‘ĸÁľŽŔ´ŒÂśŽĆş’É˝•Ćş’ž˛‹şŽˆĹş’ΚÎÛÎÛÎÛĚÁ™ĚÁ™Ęż—Ĺš‘¡ÁľťŻˆťŻ‡˝ąŠżł‹ź°ˆ¸Ź…ż´ÂˇˇŤ…Ž˘}ޞz­Ą|Ż¤˛¨ƒ¸­‡żł‹ÂśÂśŔ´Œź°‰˝ąŠÁľĆş’Ĺš‘ÁľŽž˛ŠşŽ‡š­†ťŻˆżł‹Ŕ´Œź°‰š­†ź°ˆżł‹ĂˇÉž–Č˝•ÂśŽşŽ‡śŞƒśŤ„¸Ź…ťŻˆž˛‹Ĺš’ĚŔ™ŃƟŃƟĎĜĎĜǼ”Ŕ´ĂˇĆş’ĸÁľŽÁľĂˇĆş’Čź”Ĺš‘ÁľżłŒÇź”ĎĜĐŞĐŝĎĜΚÍÁ™Ęż—áŔ´Œźą‰ˇŤ…š­†ž˛Šž˛‹şŻˆśŹ‡źą‹ÁľŽşŻˆąĽ€ŞŸ{ŹĄ|ŽŁ~ŻŚľŞ„˝ą‰ÂśŽÂśÁľŽŔ´ŒÁľÂśŽÂśŽÂˇÂśŽź°‰š­†š­…ťŻˆżł‹ż´ŒšŻ‰ľŹ‡şŻˆź°‰ž˛‹Ä¸‘Ĺš‘ÁľśŞ„ŻŁ~°¤~¸Ź†ž˛Š˝ąŠÁľČź”ĎĝĐŞÍš˿—ĸ‘żł‹żłŒŔ´Œž˛ŠťŻˆťŻˆŔ´ŒÁľŔ´Œž˛ŠľŞƒŽŁ~´ŠƒťŻˆź°‰ťŻˆśŞƒŻŁ~Šy –s•ŠjŽ„d…{^rjPkcKjbJ\UAOH6F@0=8*4/#(%  $$&LLMsstƒƒ„ĂĂĂčččřřřýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýóóńĺäâĐĎÉ­ŤŁš–Š~yingSmeNogNogNqiOtkQzqVwZ‡}_‚c”Šjœ’pŸ•sž•s™n›nž“pž“qĄ–s¤™uĽ™v¨œx­˘}śŞƒşŽ‡´¨‚Ž˘}ŞŸ{Ź˘~Ž¤€˛¨‚š­‡˝ą‰˝ąŠ˝ą‰ź°‰ź°ˆź°‰ź°‰ź°‰ź°‰ź°ˆš­†ľŞ„łŠƒśŤ„š­†¸Ź…ˇŤ„śŞƒľŠ‚şŽ‡ÁľĆť“Čź”ĸ‘şŽ‡ľŠƒˇŤ…¸Ź…¸Ź…š­†ÁľĘž—ŃƞŃƟÎÛʾ–ĸ‘Ŕ´Ŕ´ĂˇÇť“É˝–Éž–Č˝•Čź”Çť“áŔ´ÁľŽÉž–Ęż—Ĺš’Éž–ĎŝŃǟŇČ ÎÛÁľŽž˛‹żł‹˝ą‰ź°ˆź°ˆşŽ‡š­†ź°‰Äš‘Č˝•Ŕ´¸Ź†˛Śł§ł¨ƒśŤ†źąŠŔ´ŒŔ´ž˛‹˝ąŠž˛‹ž˛Šž˛‹ÂśŽÁľź°‰š­†ˇŤ„śŞƒš­†ź°‰ź°ˆˇŤ„ľŠ‚¸Ź…ź°ˆÁľĆť“Ćť“Ꮮ˛‹şŽ‡¸Ź…¸Ź…¸Ź…š­†ÁľĘž—ŃƞŃƟĎĝĎĜǼ”žł‹żł‹ĂˇÇť“Çť“Çť“Čź”Čź”Çť“áÁśŽÄ¸‘Ëż˜ËŔ™Çź•Éž–ÍšŃƟŇČ ĎĜ÷ž˛ŠťŻˆš­†š­†ťŻˆşŽ‡ˇŹ…ˇŹ‡ż´ŽĆş’ᏺŽ‡˛Śł§ł¨ƒľŞ…š­‡ž˛ŠŔ´Œž˛‹ž˛ŠżłŒž˛‹˝ąŠżłŒŔ´Œżł‹şŽ‡ˇŤ„ľŠƒˇŤ„şŽ‡şŻ‡łŠƒ°Ś€śŤ„¸Ź…şŽ‡ÁľŽĹş’ĸź°‰śŞƒľŠ‚š­†şŽ‡ˇŤ„˝ą‰Ćş’Í›ĎĝÎÛʾ–ĸ‘żłŒťŻˆťŻˆżł‹żłŒŔ´ŒŔ´żł‹ťŻˆľŞƒąĽ€ŻŁ~˛Ś€°ĽŤ {ޞz¨xĽ™vŸ”q•‹j„z]ypUnfM]VAUN;PJ8D?083&/+ '$
+
+
+
+ 001?>@OOP’’’ŇŇŇéééđđđůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţüüüôôóŮŘŐ˛Ż¨Š‡z}xhuo]ngRmeNphOsjPulQwmS|rW…|^†f“ˆi†fŒ‚c„e•Ši–Œk—Œk—Œk—Œk ”rŽ˘}´Š‚śŞ„ľŠ‚ąĽ­˘}Ž˘}ąĽ€ľŞƒš­†¸Ź…ľŠƒśŞƒš­†˝ą‰ź°ˆşŽ‡š­†š­†şŽ†¸Ź…łŠƒŻĽąŚśŞƒşŽ‡˝ąŠ˝ą‰¸Ź…š­‡˝ąŠŔ´ŒĆş’Čź•žł‹ˇŤ…ˇŤ„¸Ź…şŽ‡ź°‰żłŒĹš‘ĚÁ™ĎĜÎÛʾ–Çť“Ĺš‘żłŒŔ´ŒÇť“ĚšÎÜɽ•Ćş’ĸżłŒĂˇĘż—ĚÁ™Ĺş’žłŒĆť“ĐŝÓČĄÓɢÎÜżłŒź°‰żł‹ž˛‹ťŻˆˇŤ…ł¨‚śŤ„Ŕ´Ćş’Čź•Äš‘Ŕ´ź°‰ˇŹ…š­‡˝˛ŠŔ´ŒżłŒ˝ą‰şŽ‡˝ą‰ÂśŔ´Œ˝ąŠżł‹ž˛ŠťŻ‡¸Ź…ľŠƒ´¨‚ˇŤ„şŽ‡ťŻˆşŽ‡š­†š­†ťŻˆ˝ąŠżł‹ÂˇĹš‘Áľź°ˆš­†¸Ź…š­†ťŻˆżłŒĹš‘ĚÁ™ĎĜĎĜÍšȽ•ÂśŽ˝ąŠżłŒĆť“Ęż—Ëż—Čź”Çť“Ĺš‘żłŒĂˇĘż—ÍÁ™Ĺş’˝˛‹ĂˇËŔ™ŃƟÓɢĐŞ÷żł‹żł‹˝ąŠťŻˆ¸Ź…´¨‚ľŠƒť°‰ĂˇÇź”Ĺš‘Ŕ´ź°‰ˇŹ…š­‡˝ąŠŔ´Œž˛‹ťŻˆš­†ťŻ‡˝ąŠź°‰ťŻˆž˛Šżł‹˝ąŠşŽ†ľŠ‚˛Ś€ł§śŞƒ¸Ź…śŤ„ľŞ„¸Ź…¸Ź…¸Ź…˝ąŠÄ¸Čź•ÂśŽşŽ‡ˇŤ…¸Ź…¸Ź…śŞ„ź°ˆÂśÇź”Ëż—ĚÁ™Čź•Ĺš’ᏺŽ‡ˇŤ„˝ąŠÁľŔ´Œš­†śŞ„˛§ŠžzŞŸ{ŻŁ~Ź |Ą–s–‹j•‹j–‹j‘‡fŒ‚cƒy\ofNb[DVP;JD3>9+51$,($ 
+   556ooo   ŽŽŽŐŐŐđđđýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţřřřńńďĺĺăŘÖÓ˛°Š‚rpjXngRnfOneMqhOulRzqU~uYwZ‚x[ƒz[‡}_‚b…e…eƒcŒ‚c“ˆh •rŤŸz°¤~Ť {Šžy¨x¨yŹ |ł§şŽ‡şŽ‡śŞƒ´¨ľŠƒşŽ†ź°‰ź°ˆşŽ†şŽ‡ź°ˆşŽ†śŞ„ľŞ„¸Ź†˝ąŠÂśŽÄ¸‘ÁľśŞƒ˛§‚łŠ„š­‡ÁľŽĆş’ž˛‹śŞƒľŠ‚š­†Ŕ´ŒĹş’Ćť“Çť“Ęž–ÍÁ™Íšʾ–Čź”Çť“ÁľŽÁľŽĆť“Çź”Ćť“áŔ´Œżł‹ÂśŽČ˝•ĚÁ™É˝•Çť”Éż—ĚšÎÛÍšÍÁ™É˝•˝ąŠź°ˆž˛‹ź°ˆˇŤ…ł§Ž¤€°Ś¸­†Ă¸Č˝•Ŕ´Œź°ˆš­†˛¨ƒśŤ…żłŒĂˇĹš‘ÂśŽź°‰ťŻˆÁľĂˇÂśŽŔ´Œżł‹ź°‰şŽ†ˇŤ„ˇŤ„şŽ‡żłŒÂśŽĂˇŔ´ŒşŽ‡ˇŤ„śŞƒśŞ„˝ąŠÄ¸żł‹şŽ†¸Ź…¸Ź…źą‰Ĺš’Ćť“Çť“Ęž–ÍÁ™ÍšȽ•Çź”Čź•ÂˇÁľŽÇť“Éž–Č˝•Ä¸ĂˇÂśĂˇĆş“É˝•Çť“Ĺš’Ćť“Ęž—ËŔ˜Éž–ĚšĚÁšŔ´Œ˝ąŠž˛‹ź°‰şŽ†ˇŤ„ł§˛Ś€ˇŤ…¡Č˝•Ŕ´Œź°ˆš­†˛¨ƒśŤ…żłŒĂˇÂśŽž˛ŠşŽ‡š­†ťŻ‡ź°‰˝ą‰ťŻˆťŻ‡şŽ‡¸Ź…ľŠ‚ł§€ˇŤ„ťŻˆž˛ŠÁśŽÂˇž˛‹¸Ź…´¨śŞƒź°‰ÁśŽž˛‹¸Ź…ľŠ‚śŞƒşŽ‡żłŒĂˇÄ¸Ä¸Ćş’Çť”ÁľŽżłŒŔ´ŒşŽ‡ˇŤ„š­†š­†ľŠƒ­˘}ŞŸ{§œyŸ”rž“qŸ”r˜Žl…eŠ€aŠ€a„z]tlRnfMf^HWP<HC2;7(3/#)% 
+ 
+
+ ..0JJKXXYwwwžžžčččöööůůůţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýňńńÎÍɡľŽ¤Ą–†srkYngPogOriOsjPtkQwnTzrU|rW~uX‚x\†|^…|^„z]ˆ~`†f™ŽlŸ“qœ‘pšn˜Žm—Œl’p¨œyľŞƒťŻˆ¸Ź…ľŠƒľŠƒşŽ†şŽ‡š­†śŞƒľŠƒśŞ„ˇŤ„š­†ź°ˆž˛‹ÁľÂśŽÂśŽž˛‹ľŠƒŻĽ€ŻĽ€ľŞƒš­‡š­‡ˇŤ…śŞƒˇŤ„ź°ˆĂ¸Ęż—ËŔ˜Ęż—Č˝•Ęž–Ëż—Çť“Ćş’Çť“Ĺš‘ĸÄ¸ÂśŽŔ´Œżł‹şŽ‡şŽ‡Ćş’ÍÁ™Íšɾ–ËŔ˜ĐƞΛȽ•Ćş’Čź”Çź”ž˛‹šŽ‡ˇŹ†śŞ„´¨‚ł§ąŚąŚľŠ‚ž˛‹ÂˇşŽ‡ľŞ„°Ś¨ž{­˘~şŽ‡ĂˇÉ˝•É˝•ĂˇŔ´ŒÂśÄ¸Ä¸ÁľźąŠšŽˆşŽ‡ťŻˆź°‰Ŕ´ŒÄ¸Ä¸‘áÁľź°ˆˇŤ„´¨ł§¸Ź…ź°‰¸Ź†¸Ź†ź°‰ź°‰ÁľŽËŔ˜ËŔ˜É˝•Ęż—ËŔ˜Ęż—Ćş’Çť“Ęž–Çť“Ĺš‘Çť“Ćş’ĸÁľž˛‹Ŕ´ŒÇź”ĚŔ™ĚÁ™É˝•Ęż—ĐĝÎÜɽ•Ă¸Éž—ĚÁšż´ŒšŽ‡ˇŹ†śŞ„śŞ„ˇŤ„ľŠ‚ł§ľŠ‚ź°ŠŔ´şŽ‡ľŞ„°Ś§žzŤĄ}śŞ„Ŕ´ŒĹş’Ĺš‘ÁľŽž˛‹ž˛‹żł‹żł‹ź°ˆ¸Ź…śŞƒš­†š­†š­†ž˛‹Áľž˛‹ŔľŽÁś˝ąŠśŞ„ąĽł§€´¨‚ľŠƒľŠƒ´¨‚´¨‚¸Ź…żł‹Ćş’Ćş’ĸÁľÂśŽÂśź°ˆš­†š­†ˇŤ„ł§°ĽŤŸzĽšv •ršn–‹k”‰i’ˆgŽ„d„z]|rVxoTvmSkcKXQ=PJ8ID3<6).* # 
+
+
+ ++,<<=DDEkkk˛˛˛ŐŐŐÚÚÚíííţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüřř÷ííěÄĂż”†‚|mwq^qjUogOpgNsjPtkQsjPrjPvnS}sXvZ~uY€vY†|^‰`‹b‹bŠ€aˆ~`„{^Œ‚cšnޞz´¨ľŠƒśŞ„¸Ź…˝ą‰¸Ź…ł§€ąĽŽ˘}­˘}ł¨‚š­†ź°‰ž˛Šź°‰š­†¸Ź†š­†¸Ź…´¨‚˛Ś€´¨‚°¤Ť |ŽŁ}ľŠƒşŻ‡˝ąŠÁľČź”ĚŔ˜ĚÁ™Č˝•Çť“Ćş’áÄ¸Ćş’Çť“Ĺš‘ÂśŔ´Œżł‹żłŒşŽ‡š­†Çź”ÎÛÎÛĚÁ™ÍšÎ›Ǽ”ÁľÁľÇź”Ęż—ÂśŽˇŹ‡°Ś‚˛§śŞƒˇŤ„ľŞƒľŠƒˇŤ„şŽ‡şŽ‡ľŞƒ°ŚŠ } –tĽšvł§ž˛‹Çť”Ęż—Č˝•Ćş“Çť“Ĺš‘ÂśŽżłŒšŻ‰ľŤ†şŻˆž˛‹Ŕ´ŒĂˇÄ¸żłŒź°‰ťŻˆž˛ŠťŻˆ¸Ź…śŞƒ´¨‚˛Ś€ąĽ€¸Ź…Ŕ´ŒŔ´ŒÂśËŔ˜ĚŔ™Ęż—ËŔ˜Ęž–Çť“Ćş’Çť“Čź”Čź”Çť“Çť“áŔ´ŒŔ´Œ˝ąŠž˛‹Éž–ĐŞŃƟĎĜĎĝŇÇ Íšƺ’ÂśŽĘż—ÎĜ÷¸­‡ą§‚˛§śŞƒ¸Ź…śŞ„ľŠƒľŞƒśŤ„ˇŤ„ľŠƒ°ŚŠ |Ÿ•sĄ–tŤŸ{ˇŤ…¡Č˝•Čź”Ćş’Ćş’ĸÁľž˛‹şŽ‡ˇŤ„ťŻˆž˛Šž˛‹ÂśŔ´şŽ†śŞƒľŠƒ¸­…śŞƒł§´¨‚ŻŁ~ŠžzŹĄ|ąŚ€ľŠ‚š­†ž˛‹ĂˇĂˇÁľž˛Š˝ąŠťŻˆśŞ„˛Ś€°¤~Ž˘}ŤŸ{Ľšvœ’o–‹j“ˆh‹b„z]‡}_†|^€vZumRjaJbZD^WASM9B=-:5'2."&# 
+$$%112AACHHIhhi™™š§§¨ĂĂĂčččűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýôôóŕßÝÓŃÍ´˛Ť†uohUmeOogOqhOpgNofMrjPwnTxoTtkQskPypUvZ€wZxoT{rVvYuY„z]Œ‚c’ˆhž“qŞŸz°ĽˇŤ„ź°‰¸Ź…ąĽ°¤~˛Ś€ł¨‚ą§‚˛¨‚ľŞƒśŞ„ł§ŽŁ~°¤ľŠ‚ťŻ‡š­†´¨‚Ž˘}Šžy§œxŹ {ąŚ€łŠƒľŞ„ť°ˆĆş’ĚŔ˜ĚÁ™Ĺş’ÁľżłŒŔ´ŒÁľÄ¸Ćş’Çť“ĸ˝ąŠşŽˆÂśŽżłŒž˛‹Ęž–Íšʿ—Čź”Ęž–ĚŔ™Ă¸ź°ˆ˝ąŠĆş“ĚÁ™Ĺş’şŽˆ˛§‚šŽ‡ž˛ŠťŻ‡˛§ŻŁ~´¨ťŻˆşŽˆŞŸz§z¨Ÿ|˘˜u§›wŻŁ}˛ŚşŽˆÄ¸Çť“É˝•Ëż—Č˝•Ä¸ÁľŔľŽżľ˝ąŠ˝ąŠŔ´ŒÂśŽżłŒš­†ˇŤ„şŽ‡ž˛Šž˛‹ťŻˆł¨ƒ­˘~ŤŸ{Ž˘|´¨¸Ź…¸Ź…źąŠČź•ÎÛÎÜǼ”᏿łŒżł‹ÂśÇť“Čź”Čź”Ćş’ž˛‹şŽˆÂśŽÁľŔľËż˜ÎÛÍ›ĚŔ™ÎšĎĝɞ–Áľž˛‹Ĺš’Ëż˜Ĺş’źąŠľŞ…ˇŹ…ťŻˆşŽ‡˛§­˘~ą§‚¸­‡šŽ‡Ż¤ŠŸ{ĽœxĄ–t¤™uŞŸ{ŽŁ~śŞ„Ŕ´Ĺš’É˝•Ëż—Č˝•Ä¸ÁľÁľŽÁľŽ˝˛ŠťŻˆź°ˆ˝ąŠťŻ‡ľŠ‚ąĽł§şŽ‡ťŻˆ¸Ź…ą§‚§y •rĽ™vŞŸzŹ |Ž˘~˛Ś¸Ź†˝ąŠž˛ŠˇŹ„Ż¤~¨yĽšvŁ˜tĄ–sĄ–sŸ”qšnŒƒdx[vZ{rVvmSrjPldLf^G_XBUN;KE3D?/:6(.*%"
+ !!"??@TTUaabwwx„„………†śśśëëëööö÷÷÷üüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýűűűđđďÇĆÁĄž•‘€„owp\leNldMpgNphOnfMiaIiaImeLsjPskQnfLriOxpU{rV}tX€wZwZ‹b›nŁ˜tŤ {ľŞ„°Ľ€ŤŸzŹ {°¤ąĽ€Ź˘~Ť˘}Ż¤~Ż¤~ŹĄ}¨žzŞŸz°¤~¸Ź…ˇŤ„ŽŁ~Ą–sŸ•rŚ›wŻŁ~°Ľ€Ť˘~Ż¤ˇŤ…ÁľŽÇź”Č˝•ÂśŽÁľÁľŽÁľÁľÂśĂˇÄ¸Ä¸ž˛Šź°‰Ĺš‘ĸÂˇĘž–Ëż—Çź”áÂˇĂ¸źąŠ¸Ź…ťŻˆÄš‘ËŔ˜Ęž–Âś˝ą‹Äš‘øşŻˆąĽ­Ą|ąĽš­†š­‡ŠŸzŠŸ{Ź˘~ŠžzŠžzŤ {¨žz°Ľ€ž˛‹ĂˇČź”ËŔ˜Ęż—Ćş“Ŕ´ÂˇĂ¸‘ťŻˆťŻˆŔ´ŒŔ´ŒşŽ‡ľŠ‚´¨‚¸Ź…ž˛Šž˛ŠˇŹ…¨Ÿ{Ł™w§œxŻŁ~ł§°Ľ€ąĽ€ˇŤ…ÂśŽÉž—ĚÁšĹš‘ÂśŔ´˝ąŠŔ´Ćş“Ćş’Ĺš‘Âś˝ąŠź°‰Ĺš‘ĸĂˇĘž–Ëż—Č˝•Ćş’Ĺš‘¡˝˛ŒşŻˆź°ˆÂśŽÇť”Çź”øŔľÂśÁľŽť°‰°¤Ť {°ĽşŻ‰ź°ŠŻŁ~ŞŸ{ŞŸ{ŞŸzŤŸzŤ {¨žzŻ¤ťŻ‰ÂśČź”Ëż—É˝•Ä¸Ŕ´ŒÁľŽÂˇşŽˆš­†ťŻˆşŽ‡śŞ„ł§ŻŁ~ąĽ€şŽ‡ť°‰ľŤ…§žz›’p—l˘—t§œx˘—tĄ–s¤™vŹ {ąĽł§­Ą|Ľšvœ‘o—Œk”‰i’‡g„eŠ€b…{^xoTmeMldKh`Hc[D[T?RL9JD3E@0=9*40#,("  ))*::;UUW||}œœĽĽŚĂĂĂęęęďďďöööţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýůůůňňňçćäÂŔş”‘…{uevo[skUkdLg_Hd\Eb[Eb[Db[Df^FjaIldKpgNsjOskQvmRzqUƒz\‹b…f˜ŽmŁšwĄ—uœ‘oĄ•s ”rž“q˘—t¨y­˘}­Ł~Ť˘~Š }¨žzŞŸz°¤Ž˘~Ľšw•‹j˜lŚ›x´¨‚´ŠƒŹĄ}ąŚ€¸Ź…şŽ‡˝ą‰żł‹Ŕ´ŒÇť”ĚÁšĆş’ĸÄ¸‘ż´Œ˝ą‰żłŒÂśŽĹš’Čź”Ćş’áĆş’Çť“Ćş’ÂśŽź°ˆˇŤ…´¨‚śŞƒ˝ąŠÄ¸É˝•ËŔ˜Ëż˜Éž–Ëż˜Ă¸¸Ź†ľŠƒ´¨˛Ś€˛Ś€´ŠƒˇŤ…ˇŤ…ľŠƒ°¤~Ť {ŠžzŞ }˛¨ƒźą‰Ŕ´ŒÄ¸Č˝•Č˝•Ä¸‘˝ą‰ťŻˆşŽ‡śŞƒťŻˆĂˇżłŒşŽ‡¸­…śŞ„ˇŤ…˝˛Šť°ˆąŚ€Ÿ”r“q§yľŠƒˇ­†˛¨ƒ´Ş„šŽ‡ťŻˆžł‹ÂśŽĹš’Ęż˜ÍÛŹ’øÇť“Ĺš‘żłŒź°‰żłŒĹš‘Čź”Ćş’øĆť“Çź”Ćş’ᏺŽ‡ąĽŻĽ´Ş…ź°‰ĂˇÇť“Çť”Č˝•Ęž—Ęż—Äš‘ź°‰´¨‚˛Ś€ľŠƒˇŹ…¸Ź…ľŠƒ´¨‚´¨‚´¨ŽŁ}ŠžzŞ }´Ş…Ŕ´ÁľŽĂˇÇť“Ĺš‘Ŕ´ŒşŽ‡śŤ„´¨ƒł§š­‡Áľ˝ąŠš­†śŞ„ŻŁ~­Ą}ľŠƒ´Ş„ŹŁ~›‘p†f‘‡g¤™vŠžzž“qšn’pĄ–sŸ“qœ‘o •s •sœ‘o’ˆg‹€b…{]{rVogNg`Hc[D`XB^WASM9IC2E?/>9+72%/+ (% 
+ ""$;;<eef‚‚ƒĄĄ˘ĹĹĹÎÎĎÖÖ×ňňňţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüňňđŇĐĚÂżšŤ¨Ÿ”‚nfSe^H`XC]U@ZS>YR=[T?^WAaYCd]Fh_Hh`IldKrjOvmRwnT}tY‡~`‡g‡hŽ„e…f…e‘†f™Žm˘—t¨yŞ }Ť˘Ź˘~ŤĄ|­Ą|˛Ś€´¨‚Ž˘~ž“qž“r¨ž{˛§śŞ„ľŞƒťŻˆ˝ą‰ľŠƒŻŁ~­˘}śŞ„áËŔ™Ęż—Čź”Çť“ÁľšŽ‡ˇ­‡ŔľŽÉ˝–ÎÛÎÛɾ–Ŕ´Œżł‹ÂśŽž˛‹şŽ‡š­†š­…şŽ†ź°ˆŔ´ŒÄ¸Ćť“Ĺš’ĸ‘Ćş“Äš‘ÁľŽž˛‹şŽ†ľŠ‚°Ľ€°Ľ€śŞ„¸Ź…ˇŤ„˛Ś€ŻŁ~°¤´¨ƒˇŹ…¸­…˝ą‰ĂˇÉ˝•Çź”ÂśŽşŽ‡¸Ź…¸Ź…š­†żł‹Ĺš‘áÂśĂ¸ÂˇÂśĂ¸‘Ĺş”Ŕś­˘~Šžy°¤ˇŤ…źąŠž´ŽÂˇÂś˝ąŠśŞ„´Šƒž˛‹Č˝•ĎĝËŔ˜Ęž–Ęż—Çť“žłŒśŤ†˝˛ŒÉ˝•ÎÛÎÛʿ—¡ÁľŽĂˇÁľťŻˆśŞ„ˇŹ‡šŽˆš­‡Ŕ´ŒĆş’Ĺš‘Ĺš‘Ćş“ĸ‘øÂˇ˝ąŠ¸Ź…ˇŤ„˛ŚŻ¤~ł§€´¨´¨ł§°¤~­Ą}˛§‚¸­†şŽ‡š­†ź°‰Ĺš‘ĸž˛ŠśŞƒ°Ľ€Ž¤€˛§ťŻ‡Áľżł‹ž˛Šž˛‹ˇŤ…˛Ś€śŤ„šŽ‡´Ş„Ą—t•‹j”‰iž“qĽ™w˘˜uŸ•s›n”Ši‹b…{^ˆ~`Œ‚c‹‚c‚y\|rWvmSi`IYS>RK8OI6NH6LF4C=.:5'40#-)%"
+ $#%::;PPQxxyŁŁŁźźźÝÝŢöööýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúů÷öőééçÄĂ˝™•Šrm]d^M]WDXR@TO<SM:UN:WP<YR>\U?^VAaYCf^Fh`Hh`HphNxoU|sW~uYw[x[ƒy\ˆ~_…f˜mž”r˘™v¨žzŹĄ|ŽŁ}ąĽ€¸Ź…şŽ‡ˇŤ…Šžz¤šw§žzŹĄ}ł§şŻˆÁľŽŔ´ľŠƒŠy¤™vŻŁ}ťŻˆĹš‘Éž–Č˝•Ĺš‘ᐟ˛‹ľŤ†ź˛‹Č˝•ĐŞŇČĄÍÜžłŒź°ˆž˛ŠšŽ‡şŻˆŔ´Œ˝ąŠşŽ†š­†ź°ˆž˛‹Ŕ´Œ˝ąŠťŻˆżł‹Ă¸Ĺş’¡˝ąŠšŽ†´Ş„ą§‚ąŚ€˛Ś€ł§˛Ś€ł§ľŠ‚śŞ„ľŞƒśŞƒťŻ‡ÂśŽĆť“øżł‹ź°‰ťŻˆź°‰żłŒÄ¸Çť“Çť“Éž–͚ЪЪÎÜŇȢŃȢż´Ž¸Ź…š­…¸Ź…ż´Ęž—ÎÛĚŔ™ĂˇˇŤ…°Ľ€š­†Ä¸‘ĚÁ™ĎÛÎÛÍšĚŔ˜Â¸‘¸ŻŠżľŽËŔ˜ŇÇ ŇČĄÍÛøŔ´ŒŔ´Œž˛Šżł‹ÁľŽÁľźąŠśŞ„ź°‰ĂˇÁľŔ´Œž˛‹ź°ˆŔ´Ćş“ÂśŽź°‰š­†ąĽ€­Ą|ŻŁ~ŻŁ~ŻŁ}°¤~°¤~°Ľ~´¨‚ľŠƒł§´¨¸Ź†ż´żłŒťŻˆ´¨‚°Ľ€ŻĽ€´ŠƒşŽ†˝ąŠźąŠžłŒÂśŽ˝ąŠš­†şŽ‡ž˛‹ź°Š§œxšm”Ši“ˆi˜Žnž•tž”s–‹k†|_ypUpgNmeMqhOrjPldKf^G_XBUN;HB2@;+<7(;5'73&1-"+'$ 
+
+  ""#112JJJttu‘ÇÇČčččńńńűűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüńńńäăáĎÎĘľłŽĽ˘›‹‚pk_\WHWRATO>RM:QK9SL9UN;WP<YS=]VAc[Ef^Gf^GkbJriOvnSzqU}tX„z]‰`‹b…f—lĄ–s¨xŻ¤}ˇŤ…ľŞƒŻŁ~ŚšwŸ”r’pĄ–t¨ž{ŻĽ¸Žˆž˛‹ťŻˆľŠƒ°Ľ°ĽľŠƒťŻˆŔ´ŒŔ´Œž˛‹Äš’Ĺş’żłŒżłŒĂˇÉ˝•Ëż—Ęž–Č˝•Äš‘žłŒľŤ…ş°ŠÄš’¸­‡Ż¤śŞ„š­†ťŻˆž˛ŠťŻˆš­†ź°‰ťŻˆ¸Ź†ź°ˆżł‹ž˛‹Ŕ´˝˛‹ł§­Ą|ŹĄ|´¨ľŠ‚°¤Ś›wŤŸ{¸­†˝˛Šź°‰¸Ź†š­†ź°‰ĂˇĹš‘ĸ‘Ćş’Ćş’Čź”Čź”Ëż—Ďĝ×ÍŚÜÓŽÜŇ­ÚŇ­ÔËŚĹş“ž˛Š˝ą‰ťŻ‡żł‹Č˝•ĐŝŃǟĚÁ™Ćş“ÁľŽżłŒÄ¸Ęž–ΚÍÁ™ËŔ˜ĎĜÎĝʿ˜ËŔ™ÎÛĎĜʿ—Čź•Ěšɾ—Áľš­†ž˛‹Ĺş“ź˛Œ´Š„śŤ„š­†ź°‰żł‹˝ą‰šŽ†ˇŹ…š­†şŻˆşŽ‡ťŻˆ˝ą‰ź°ˆ¸Ź…ąĽŹ {ŠžzŽ˘}°¤~­Ą|Ľšv¨œxł§¸Ź†ˇŹ†˛¨ƒą§‚´¨‚śŞƒśŞƒ´Š‚˛Ś€´¨‚ľŞ„ą§‚˛¨ƒ¸Ź†ťŻˆź°ˆź°ˆşŽ‡˛Śšnƒdˆ}_ƒz\‚x\„{^†}_x[tkQiaI_XBVO;TM:SL9OI7F@0=8):6'51$.**&&#"
+
+
+
+
+
+ ""#==>[[\xxy™™š°°ąÔÔÔřřřţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúúńńđŕßŢĎÎËš¸łš˜„wwtidaSWRBSN=RL;QK9RK9TM:WP<YR=ZS>_XBf^GiaHkbJogMumRypU{rW€wZ‡}_„d•Šjœ‘o˘—sĄ–sž“q˜l“ˆh‘‡g–ŒkŸ•r§zŽŁł§˛Ś­˘}ŞŸz­Ł}˛¨¸Ź…ťŻ‡şŽ‡şŽ†˝˛‹ŔľŔ´ŒŔ´ŒÁľĂˇÄ¸Ä¸Äš‘ĸ‘Ꮮ´ŽÂˇ‘Çť”ź°Š´¨‚ˇŤ„şŽ‡ź°ˆťŻˆśŞ„°Ľ€ąŚ€°Ś€ŻĽ€´ŠƒşŽ‡ź°‰żł‹ž˛‹¸Ź†˛ŚąĽ€¸Ź†¸Ź…˛Ś€ŠyŞŸ{łŠƒśŹ†ľŞ„ľŞƒź°‰ĂˇÇť“Ćş’Ĺš‘ĸÄ¸Ĺš‘É˝•ËŔ˜ÍšÓȢŘΊŘĎŠŐËĽĎĞĸ‘ž˛‹˝ą‰ź°‰Ŕ´Çť”ÍÁ™ÎÜĚŔ™Čź”ĸÁśŽĹş’ËŔ˜ÎÛĚÁ™Éž–Ęż—ÍšÎÛÍšĚŔ˜ËŔ˜Éž–É˝•ÍšĚÁ™Çź”ĸ‘Ĺş“Čź•žłśŹ†¸­†ź°‰żłŒżł‹šŽ‡ł¨ƒą§‚°Ś€°¤˛Ś€¸Ź…ž˛Šź°ˆ¸Ź…´¨‚ŻŁ~Ź |ąĽąĽ€ŤĄ}˘˜u¤˜uŹĄ|­˘}Ť |ŠŸ|ŽŁ~´¨‚ˇŤ„´¨‚ŻŁ~Ť {ޞz¨y¨z¨zŠžyŤŸ{Ź {ŠžyŚ›xž“qˆ`~uYzqVskPogMnfMnfMiaI^WBUN;LF5C=.>9+;6(73&0, *'($$!
+
+
+ ++,;;<UUV{{{ŤŤŹĎĎĎęęę÷÷÷ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýůůůööőńńđĺäăÎÍËżžšŤŠŁ‰†~uqgkf[_ZMVPASM>SM<RL:RL9UO;YS>ZS>\T?`YCf^GiaIkcKogMtkQwoT~uX„y\…|^‡~`ˆa†|_…{]†|^Š€a“‰iœ’pŸ•r –sĄ—tž“q’qĽœy­˘~˛Ś€´¨‚ł§°ĽąĽ´ŠƒşŻˆťŻˆşŽ‡ź°‰źąŠźąŠťŻˆżł‹Ä¸‘Çť”Čź•Çť“Âśž˛‹ź°ˆź°‰ťŻ‡´¨‚Ź |Śšw§œxŠŸ|Ź˘~ŻĽ´¨śŞ„ˇŤ„ˇŤ…şŽ‡¸Ź†ˇŤ…şŽ‡şŽ‡śŞ„°¤~ŹĄ}Ź˘­¤€ą§‚¸­†ÂˇÉ˝•Çť”ĸÂśŽÁľŔ´ŒŔ´ŒĆş“Éž–É˝•ĚŔ™ĎĜÎÛĚŔ™Čź•ÁľŽ˝ą‰ťŻˆ˝ą‰ÁľÄ¸‘Ćş’Çť“Čź”Ĺš‘ÂśŽÂśŽĆş’Ęż—Íšʾ–Ĺš‘¡Ćş“ËŔ˜Éž–Ćş’Ćş’Čź•Éž–Éž–ËŔ˜ÎÛĐŝÎÜɾ–Äš‘ż´˝˛ŠŔ´ÂśŽź°‰˛¨‚ŤĄ~Ź˘ŤĄ}ŠžzŹĄ}´ŠƒşŽ‡´¨‚ŻŁ~ł§€ąĽŽŁ}˛Ś€ŻĽ€Š |¤™wĄ–tĄ–sž“q’q¤™vŤ {°¤°ĽŤŸ{¤™v˘—tœ‘o–‹k™Žmšn–Œk•Šj’‡hŒ‚c‰€b„z]tkQmdLiaJ_XCXR>VP<UN;NH6E?/>9*73%/, ,((%#   
+ **+FFGxxy““”ľľľŐŐŐííîřřřýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúúőőőđđđŕßÝĘÉÇźťˇŠ§˘‰†|xopmbd`SZVGVQATN=RL:RL9UN;WQ<XQ=YQ=\U@aYCe]FibJldKkcKpgNukQulRvmSyoT}tXƒy]‡}_ˆ~`‹c‘‡g•Ši—Œk›o’qĄ•sŚšw •s™Žm •rŠŸ{­Ł¨žzĽšvŞŸz­Łą§ƒśŤ„şŽ‡ź°‰˝˛ŠŔ´ÂśŽÄ¸Ä¸‘ÁľŽťŻˆąĽ€¤™vž“qŸ“q§œx­˘}ŽŁ~ŻŁ~°¤~°¤~­Ą|Ź |˛Ś€ł§˛Śą§‚´Šƒ´¨‚ŹĄ|§œx¨zŽ¤śŤ…źą‰ŔľĂ¸ÂśŽÄ¸Ä¸ÂśŽź°ˆˇŤ…ťŻˆŔ´ÂśŽĆş’Čź”Ĺş’Ćş’Ĺš‘ž˛ŠťŻˆź°‰ťŻˆťŻ‡ź°‰˝ą‰Ŕ´Ćş’Ćş’Ćş’Ĺš‘ÂśÁľŽĆş’ÂśŽşŽ‡˝ą‰ĂˇÇť”¡˝ąŠź°‰˝˛ŠŔ´Ćş’Ëż—͚͚ĚÁ™ĚÁ™ËŔ˜Ęž—Çť”ÁśŽşŽ‡ŽŁ~Ľšw˘˜uŹ˘~ŻĽ€Ş }ŞĄ}Ž¤°Ľ§œwĄ–s§œx¨y¨œx¨y§œyŁ™wž“q˜l•‹j•‹jšn •sž“qšm™m™m™Žl•ŠjŠ€auY~tY€w[‚x\~uYwnSmeMjbJe^GZS?UN:PI7C>/<7):5'73%1-",(($#     &&'778HHIZZ[oop¨¨¨ÍÍÎäääôôôýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýúúú÷÷÷đđďÝÜŰĘÉĆÁŔźŹŞĽ”‘Š‚wqnc`\NVQBSM=SM;PJ8OH6PI7RL9UN:XQ=YS>ZS?^XBd\Ec[Ee^GjbJogNqhOsjPvlRzqV€vY„z]†|_ˆ}`ˆ~`Ša†gŽ„eŠ€a‘†gšoœ“q˜Žm•Šj˜Žl •t¨ž{ŽŁ~ąŚ˛¨‚´Š‚ˇŤ„š­†š­‡šŽˆ¸Ź†˛ŚŞžzĄ—uŸ•sĄ—u¨œxŤŸ{ŞŸz¨œx¤˜tŸ”q›n›‘o¤™u­Ą|ąĽ€ŽŁŞŸ{Ś›w˘—t¤™vŤ {ąŚ€ľŠ‚ľŠƒš­†ź°‰˝ą‰˝ąŠżł‹ÁľŽž˛‹š­†š­†ťŻ‡şŽ‡ź°‰ž˛Š˝ąŠżłŒżł‹¸Ź…ľŞ„śŤ…ľŞ„ľŠ‚ľŠƒš­†ź°‰ž˛‹ÂśŽÄ¸ÁľŽťŻˆˇŤ…ťŻˆşŽ‡śŞƒš­†Ŕ´Ĺš‘żłŒ¸Ź…śŞ„şŽ‡żł‹Ă¸Ćť“É˝•Ęż—Ęž–Éž–É˝•Ćş“žłˇ­‡ąŚ‚¨Ÿ{¤™vŁ˜t¨œxŠŸ{§ž{¤›yĄ—u“p”Ši…f—Œkž“q˘—t •r˜m‘†gƒdŒ‚b‹bŒ‚bƒdŽ„e‹b†}^ƒy\„z]…{^‚x[wnSldKiaJiaJh`IaYDYR=RK8MG4GA1@;,;6(50$,(%"#      %$$/..;;:JIIUUU_^_srs››œššşÎÎÎŕŕáóóóüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüöööňňňěëëŰŰŮÍĚĘšˇ´˜•ƒ€xtpghdX]YKTPBSM>QL<PJ9PJ9QK9RL9UN:XQ<WP<YR=]VA`YCbZDc[Eh`HldLnfMpgNqiOsjPsjQulR{rVuYwZ„z]‰aŒ‚cŒ‚cŠ€a‰`’ˆh“qĄ–s¤šw¨ž{ŞŸ{Ź {Ť z¨œx¤šw¤™vŁ˜uŁ˜u¤›yŁ›yŁ™xĄ—uĄ–s •s›o”‰hŒ‚c‰aŒ‚c–‹k¤™u­˘}ŞŸ{Ą–s˜l—Œk •sŹ {ŻŁ~­Ą|ޞ{Ż¤~śŞ„ˇŤ…ľŠƒśŞƒżł‹żłŒşŽ‡şŽ‡ˇŤ„ąĽ°¤~ł§ˇŤ…¸Ź…śŞƒąĽ­˘~Ť˘~­Ł~ŻŁ~°¤śŞƒˇŤ…´Šƒš­†ź°‰š­†ł¨ŻŁ~°¤˛Ś€ł§ľŠƒťŻˆŔ´ź°‰´Šƒ°Ľ¸Ź…Ŕ´Œž˛‹žł‹ÂśŽÇź”Ćş“Ŕ´Œž˛‹ˇŹ†Ť }ŠŸ|ŞĄ~Š }¨žzĽšv’oœ‘ož”ršn’ˆhŠ€bƒz\w[‡}_’ˆhšn“ˆi†{^zqVzrV~uY€wZ~tYyqUvmSvmSvmSogNneMmeMldKe]F]V@ZS>UO<NH6FA0@:+;6(61$/+ *&&"!    &&%332CCCWWWkkk‹‹‹łłłĂĂĂËËË×××çççňňó÷÷÷űűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţüüüřřřóóňÝÝÜËĘČŔżź´˛Ż˘ ›Š‡€yvmroeeaU[VHXSDSN=RL;RL9RL9RL8SL9UN:UO;VP;YR=[T@^WAaYCb[Dd[Ed\Ff^GiaIkcKnfMsjPxoTzqV{rV{qVzqU~uY„z^‰€b‡g–Œl–Œk•‹j•Šj“ˆh‘‡g’‡g”Ši–Œk˜Žm–l’‰jŽ„eŽ„e…fŽ„dŠ€a†|^ƒy\„z\‹b’ˆh—k—Œj˜mšn•Šj”‰išm˘—t§œxĽšw¨yŹĄ|ąĽ˛Ś˛ŚśŞƒąŚ€ŞžzŹ {ޞz¤˜uĽ™vŹ {´¨‚˛Ś€Ź |Šy¤™vĄ–tĽšw¨y¨y§›x¨yŹ˘~ŻŚą¨ƒŻĽ¨žzŁ˜uŚšwŚ›wĽ™vŠy­˘~°Ľ€°ŚŤ˘}¤™vŠžzŻ¤€°¤´¨‚šŽ‡ťŻ‰ˇŤ…°Ľ€ŽŁ~Šžz •r˘—uŚœyĽ›xž”r–‹j…eŽ„d…e‹€b„{^€wZzqUwnSyoU~uYv[xoTsjPphNldLkcKldLjcKg_Hc\F`YD]VAZS>XQ<VP<QK8LE4HB1C>.=8*83&2.",((%$!  
+ $$$0//BBBUUUlll‰‰‰ŚŚ§¸¸¸ÖÖÖëëěńńń÷÷÷úúúűűűüüüüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýüüüůůůîîîččçââáËĘČ˝ť¸łą­Ł ›™—‰†~nk`eaTc_Q[WHRM<NH6LF5LF4LE4LF4NI6QK7RL8SL:UN:WP;XQ=YR>ZS>_WAc[Ed\Ee]Ff_HjbJjbJlcKphOvnS{sW}tX~uXuX{rV{rV~uXuYvYƒy\‚x[uY{rVypUzqU}sWuYuY~uY|sWzqU|sWuY€vZ‰a“ˆh…fˆ~`‡}_„e—lšn›‘ož“qŚšv¨œw§›wŁ˜tœ‘o—Œk˜l˜l–‹k›n˘—tޞzŚ›w •r›o–‹k“‰i—Œkšn™Žm“‰i”Šjž•s˘™w¤›yŚz –t™m›n˜Žl”‰i—Œk™Žn˜m™o™o”Ši—Œk’pŸ”rŁ—uŚšv¤˜uŸ”q›o˜Žm•Šj†f‘†g’ˆi’‡hŠbwZuY}sWypUulRskPrjPnfMiaJf^Ge^Gc[EZS>\U@aZD\U@UO;RL9QK9NH6KE3HB1E?/B=-@;,>9*83'40#1-!-)'$$!   ++,:::MMM```uuvŒŒŒłłłĐĐĐáááöööűűűýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţüüüöööĺĺäĺĺäÜÜŰŃĐÎČÇĹśľąŠ§ĄŚĽŸ‘ˆnkaYUGPL>LG8HC3GA2GB2HB2HB1GB2IC2KD3KE3LF4MG5OI6QK7RL8SL9UN:YS=\U?^WA_XBaYBd\EiaJldLldLhaIh`HmeLjbJh`HofNqhOqhOphOldKh`HldKphOqhOulRskQiaIkbJpgNriPwnT}tXw[€vZ|sX~uYx\…|^‰€aŽ„d”‰i–‹j”‰iŽƒd‹b‹‚bŠ€aŠa‚c‘‡g–Šj—Œl—Œk“ˆhŠ€a†|^…{]†|^‡}_‡}_ƒy]„{]ƒd“‰i—l’qšn”‰iŽ„e‰a†|^†|^„{]x[€w[‚y\†|^Š€bŽ…e’‡g…fŒ‚b‰`‡}_„{]y\uZ|sWxoUvmSulRsjPqhOpgOkcJe]FbZD_XB^WA]VAYR>SL9RK9OI7HC1HC1KE4IC3D?.>9*<7(84&40#4/#4/#2.!/+ -))&&##    $#$434GGH__`yyz———łł´ČČČ×××ĺĺćűűűţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţúúúňňňđđďééčÖÖÓĘĘÇžžť˘Ąœ„‚{oldb_VVRHPL@NJ>LG<JE8FB5E@2E?1D>/C>.D>.D?.D?.E@/FA0GA1JD2MG5OI7PJ7QJ7SL9TM:UN;VO;WP<XR>[T?YS>XR=]U@^WA_XBc\Ec\D_XB_WB^WA^WBaYDb[D`XB^WB_XBd]Fd]Fd\FjbJldLkcKjcJleLnfMphOtlR}tWvY~uY{rWzqV|sW{qV{qV}tXvZw[w[x[~uYtlQqiNqiOqhNtkQyoTxoTxoU|sXvZx\…{^‡}`„{^zqUsjPriOqhOogNmeLleLogNxoT{rW{rWypUypUyoTskPmdLiaIkcJibId]FaYC_XB^WA^WA]VA]VAZS>VO;QK7KE3JD2IC2FA0B=-A<-?:,:6(73&72&51$1-!-)*'($&"&"%"$!#!$"$!" ///BBBRRRbbb€   ÂÂÂÜÜÜěěě÷÷÷űűűţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýůůřóóóîîîßŢÝÄĂÂą°ŹŁ˘žŒŠ…}w}{uurkjg_c`X]ZRURIOLAJF:GC7E@3B=0@;.?;-?:,?:+B<-D>.D?.E@/F@0E@/E@0GA0IC2JD3IC2HC2ID3KE3LF4MG5RL8TN:RL9QK9PJ7OI6OI7RL9UN:RK8NI6SM:QK8NG5QL8VO<XQ=XQ=YR=ZS>ZS>\U?aZDe]Ff^Ge^Gf_Hg_Hg_Ig_Hh_Hh`Ii`IiaIiaJg_H`XB^WA^WA^VAaZCf^Gg_HiaJjbJjaJiaIiaJmdLmeLc\E^WA^WA^WA\U@[S?\T?_XBf^Fg_He]F`YCaYCc[E_XBWQ=SM9UO;UO;PI7MG5MG5MG4KE3ID2HC1GA0D>/>9*94'73%51#2.!1-!/+ .*+'(%&#$!"!!"$"&$(&!)'#,*&10,762;97;976530/-10/?>=MLKWWWrrrŁŁŁšššČČČŘŘŘđđđúúúţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüőôôńńńďďďĺĺĺÔÓŇÓŇŃËËÉťş¸ą°­Š¨Ľ—–’Šˆ„€{wuoif_^[SVSKQNDMI?GC8C?4B>1?;.>9,?:,@;,@;-@;,?;+>9*<7);6(;6(=8*>9*>9*@:+?:+>9+C>/GB0C>.FA0IC2F@/B=,@;+?;+>9*<7)=8)A<,E@0GA0GA1HC2ID3HC1E@0IC2NG5NH5NH6OI7PI7PI7PJ7QK8QK8QJ7QJ7QJ7OI7OI6OI7OI7PJ7QJ8QK8SM:XR=VO;RL8RL9TM:SM9QK8PJ8OJ7OI7LF4IC2KE3OI7PJ7PI7PJ7OI7KE3ID2LF4JD2D?.C>.C>-A<,>9*>9)=8(:4'72%51$2/"/+ ,()&&$#!"  #"('"/.*984CB?KJHRQOYXVba`pom€~ŒŒ‹’’‘‘‘‰ˆ‡‰‰‰˘˘˘šššžžżÔÔŐôôőţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţýýýýýýýýýüüüöööđďďîííĺääŘŘ×ŃĐĎČČĆ´łąĽ¤˘›š—‹†‚€{utnigab_XWTLMJAKG=JF;EA5?;.=9,<8+95)61&40%62%61%50$51$51$51$84';6(94&<7)?9+95'72%61$2."1-!0,!0, 2."50$61%51$61%72&83%51$72&;6(=8)=8*>9*?:+@;+@;,A;,A<,B=-@;,@;,@;,A;,B=-B=-B=-B=-A<,B=-FA0F@/C=-A<-B=-C>.C=.B=-@;-@;,>9*<7)=9*?:,?:+>9*?:+?:+;6(94&<7);6(72%51$50$2."/+ .*.*+'($&#%"" ! #!$#'&"+*&/-*542?><KJGZYWlljxxw‚ŽŒ•••››š¤ŁŁŽŽ­ťťşÍÍÍŘŘŘÜÜÜâââďďďůůůůůůűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţűűűúúúřřřňňńëëęččçŕŕßÖÖŐÍÍË˝źťŹŤŠœ˜ŒŠ†€zyvpfc[VSKSPGRPGKG?A>5?<3>;3=91:7.:7.:7-95+84+85+84*74(51%2.#0,"-*(%&"($)'+(+(+'+(+(,(-) -* -* .*0-"2.#2-#3.#50$51$51$61$61%50$4/#3/#50$51$61$61$62$51$50$62$72$51$3/#51$72$51$40#4/#3/#2."2."2."2."1,!0,!1,!1,!.* -)/+ .**')&(%%"#""  !#"('$32/;:7=<:CB?KJHSRQYYXfedxxv„„‚———ˇˇˇĂĂÂËËËŐŐÔŰŰÚßßßĺĺĺěěěňňňřřřűűűýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţüüüüüüűűű÷÷÷ěěëăăăÚŮŮČÇŸˇľ§ŚŁš™—•“‘Œ…ƒ€|}|yvtqqplrqmomigeab`\`_Y[YTMJCCA:A?8;81.,$%""'$42,9712/)1.'75.85.31)52*96.63+2/'30)63*41)3/&41(52)3/'2.&40'3/&1.%1-$1.%1.%1-$0-#0-$/,#.+".+!/+".+",)-) .+",(+(-* -*!+(+(,)!,) *'*'*'+')&(%)&'$# " " !!#!$"$"'% +)%+*&-,):96KJIRQP\[Zwvuˆˆ‡ˆ‡‡ĽĽ¤ŞŞŠ˛˛ąÄÄĂĐĐĎÖÖÖëëëřřřúúúúúúüüüýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţúúúńńđđďďěëëâááăăâĺĺäĺĺäääăâááßßŢßßŢŰŰÚŇŇŃĘĘÉĹĹÄťşš››™ˆˆ……„wvr^]YONJKJGNNKfecsrocb_]\Ykjflkfa`\a_\ihdec_][W][Wa`[^\WYWSZXS[ZUXVQUSOVTPVTOTRNSQLSRMSQLQPKQOJPOJPOJONINLHNMHNMHMKFMKFMKGLKFLJEMKGMKGLJFLJFMKGMKGKIEKIELJFKJEIGCGE@DC>?=8:83971861973><9GFBLKHMLISRP`_]ba`gge‚‚Š¨¨łł˛˝˝˝ŮŮŮááŕâââěěěóóňóóóöööüüüýýýţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűůůůűűűüüüýýýţţţţţţţţţüüüůůůřřř÷÷÷÷÷÷íííáŕŕÝÝÜÖÖÖÍÍÍĆĆĹÄÄĂÄÄÄÓŇŇĎĎĎËĘĘÉÉČĎĎÎÍĚĚÉČČËËĘĚËËĘÉÉÇÇĆÉČČČČÇÇÇĆĹĹÄÇĆĹĆĆĹĹĹÄÄÄĂÄÄĂÄÄĂÄĂÂÄĂĂĂĂÂĂĂÂĂÂÂĂĂÂĂÂÁĂÂÂÂÂÁÂÂÁÂÂÁÂÂÁÁÁŔÂÁÁÂÂÁÁÁŔÂÁÁÂÁŔÂÂÁÁÁŔÁÁÁÂÁÁÂÂÁÁÁŔÁÁŔÁÁŔżžžşşšľľ´­ŹŤ Ÿ–•“‘‘‘Ž““‘ž­­Ź´łłłłłşşşĆĆĆĘĘÉÎÎÍáááďďďóóó÷÷÷űűűüüüýýýţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýüüüúúúöööńńđíííííííěěííěđđđöööřřřřřřúúúüüüüüüüüüţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţţţţţţţţţţţţţţţţţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙××׾ľľ´´ľ´´ľ´´ľ´´ľ´´ľ´´ľ´´ľ´´ľ´´ľ´´ľ´´ľ´´ľ´´ľˇˇˇűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙××׾ľľ´´ľ´´ľ´´ľ´´ľ´´ľ´´ľ´´ľĹĹĹ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŰŰŰjjk99:556556556556556556556556556556556556556BBC˘˘Ł˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŰŰŰjjk99:556556556556556556556VVWÁÁÂ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇŇYYZ''(  667ŒŒ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÉÉÉ??@ 
+
+ IIJąąą˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÇÇČddd 
+<<=ˆˆ‰ůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÉÉĘCCDHHIŹŹ­˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĚĚĚMMN&&'
+==>ˆˆ‰ěěí˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙čč邂ƒ;;<EEFŁŁŁýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĂĂĂMMN  €€ďďď˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŞŞŞPPQAAB¤¤¤÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ËËĚ///>>>îîî˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĘĘËJJK OOPŽŽŻ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüęęęÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÝÝÝîîî˙˙˙˙˙˙˙˙˙˙˙˙äääććć˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙çççÜÜÝŢŢßőőő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜččč˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙äääÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜččč˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ěěěÜÜÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙XXX
+
+  NNOgghgghgghgghgghgghgghgghgghgghgghTTT !!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''( 223ĘĘĘ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ééé~~99:AABŽŽŽ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţźźźSST ! //0eef×××˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙đđ𧧧BBC;;<--.MMNđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýĎĎЅ…†CCD,,-””•őőő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óóóćććÄÄÄEEF //0cccÎÎÎůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÎÎĎaaa(()  ==>ČČÉ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţÎÎÎVVW \\\âââ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙čččttu<<=556667//0!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙™™š223  ˇˇˇ˙˙˙˙˙˙˙˙˙˙˙˙ëë놆‡778EEF¤¤¤˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĂĂĂRRR !
+ **+yyzŮŮŮ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűťťťľľľrrs))* MMNđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙îî„??@''(gghŐŐÖţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůů„„…778
+
+  ,,-rrsČČČ÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÎÎĎXXYFFGĘĘĘ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüÓÓÓ]]^XXYÜÜÜ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕśśś´´ľ´´´‹‹Œ<<=!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ćććdde  ˇˇˇ˙˙˙˙˙˙˙˙˙űűű{{|667HHIŁŁŁ÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÚÚÚaab
+ (()oopććć˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúŮŮŮ__`//0
+
+ MMNđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŁŁŁ==>778‹‹‹÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýĹĹĹJJK 223mmnÂÂĂüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghDDE““”ňňň˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţîîĄ!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ăăă 
+IIJßßß˙˙˙îîî{{{778FFGŹŹ­ýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ČČČCCD CCDŮŮŮ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţĎĎĎjjk//0MMNđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ôôômmnLLM×××˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŐŐŐLLM 
+
+ //0[[\˝˝žňňňţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ggh‚üüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙çççQQR!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ëëë%%& ''(zzzčč腅†445GGHŠŠŞ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĄĄĄ--. CCDŰŰÜ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúĎĎĎyyz001
+
+ MMNđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúÂÂÂ
+ BBC¸¸¸ůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÔÔÔGGH 
+
+  %%&DDD™™šŘŘŘ÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙îîîmmn !**+˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙đđđMMNffg€€889FFGŁŁ¤úúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĄĄĄ--. AABŃŃŇ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüŃŃŃbbc MMNđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ßßßttu  
+##$__`ĎĎĐ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓCCD  001//0  445__`››œíííţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĹĹĹQQRIIJ[[\ÖÖÖ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ňňň__`%%& GGH::;DDEŚŚ§řřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĄĄĄ--.
+
+ 445……†ůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúÁÁÁ""#MMNđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűüąą˛::; zzz‹‹‹""#llmŃŃŇýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓBBC MMNYYZ--. HHIœœęęëţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűçççćććééé˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÝÝÝEEEKKL­­Ž˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĄĄĄ--. --.††‡îîî˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙îîîTTU001QQRđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙çççggg JJKŃŃŃŢŢßUUV !!"^^_ÝÝŢ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇŇAAB YYZŮŮوˆ‰556 ??@––—ďďđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ňňňŐŐŐôôô˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙xxxDDEŁŁ¤˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙¤¤¤--.::;ˆˆ‰ĺĺĺ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýŚŚ§mmnžřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ§§§000 $$$íííööö¨¨ŠKKL ))*ššş˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇŇAAB YYZ˙˙˙ÝÝÝwww../ BBCžžŸňňň˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řřř•••QQR››œýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙œœœ++,556˘˘Ł÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ČČÉHHI !99:……†ľľľ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷÷ŕŕŕööö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řřřaab@@@×××˙˙˙˙˙˙ëë낂‚(() llmďďď˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇŇAAB YYZ˙˙˙üüüÔÔÔyyz))* IIJŁŁŁńńń˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙đđđPPQ))*TTUúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŤŤŹ445 445¸¸š˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙öööçççććçććççççřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüŞŞŤ;;<
+&&&  ĄŘŘŘćććçççööö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ďďďććçććçććçęęë˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷÷ĚĚĚ%%&‰‰‰ýýý˙˙˙˙˙˙ţţţąąą667112ŤŤŤüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţňňňććçććçéééřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙ţţţáááoop112 BBC™™šěěěţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ěěíçççććçňňňţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŢŢŢJJK!!"PPQúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÍÍÍ``a
+
+  ———˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙öööNNOIIJIIJOOP¤¤¤úúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷÷??@ GGHNNOööö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙íí톆†GGHIIJIIJccdÚÚÚ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúËËËiij!!"bbcŔŔŔ˙˙˙˙˙˙˙˙˙˙˙˙ÝÝÝffg$$% aaaëëë˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ěě압–IIJIIJ\\]˝˝žúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙üüüŘŘŘ€112 IIIœœććçţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÓÓÓhhiIIJIIJzz{ËËĚůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÚÚÚbbc,,.PPQúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŃŃŃ889bbcîîî˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙çççNNOGGHŠŠŞ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ňňňššš<<=  ))*ŽŽ˘˘ŁŇŇÓ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙´´´AAB **+qqrŘŘŘ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŰŰŰrrs334 ]]]ÉÉÉ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůˇˇˇ==>###šššřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĄĄĄ::; kklŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙űűűÓÓÓqqr&&' IIJ’’“îîîţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÍÍÍggh""#XXYÎÎÎţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(hhiĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ĄĄ˘ppp**+
+
+ PPQúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüWWX//0||}˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÚÚÚ GGHŻŻŻ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óó󜜝JJJ
+))*223aab×××úúúüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇŇKKK--.gghäää˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őőővvw..0---ŹŹŹřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţßßßJJK
+
+ PPPÚÚÚţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÓÓÓUUV
+
+ 99:ÁÁÁţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüü×××ggh//0
+
+ AAB——˜ęęëţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙âââvvw,,-
+
+ ""#ttuççç˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''( %%&--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.&&'PPQúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ëëë||} GGH˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙××× ''(———˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÖÖÖmmmBBBNNO‹‹Œđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ľľľ##$ EEFÜÜÜ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ+++""#oopňňň˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűüBBC___ŢŢŢ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őőőxxy(()
+DDF×××˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÜÜ܄„…556FFG‘‘’ŕŕáúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÚÚÚSST 113ĂĂÄţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(PPQúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙éé醆‡667˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙×××  112™™š˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ßßߡˇˇppq556  (((ggh­­­ĘĘË˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙şşş++,LLMÝÝÝ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ôôô››œ
+ <<=ŻŻŻůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙íí헗˜==>
+
+ ~~~îîî˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ééésss//1}}}˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙čč鐐‘334 222WWW´´´ěěě˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÖÖ×UUV 99:łłłţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(PPQúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őőő€778˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ááâ667 //0eefŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ňňň¤¤ĽTTU  001\\]ČČČ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŢŢŢllm##$EEFœœœőőő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙žžżMMN tttěěě˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ěě샃„<<<ČČČűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţŰŰŰCCD EEFĎĎĎ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ěěěxxy--. AAB‡‡ˆŐŐŐţţţ˙˙˙˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óó󒒓??@##$ęęę˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(??@LLMLLMLLMLLMLLMLLMLLMLLMLLMLLMLLMLLMLLMLLMLLM@@APPQúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óóó||}99: ‘őőő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ęęęccd**+,,-eefççç˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúđđńÚÚÚVVW,,- ! &&'ZZ[ĆĆĆýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýý­­Ž@@A @@AĄĄ˘ůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷÷ŒŒ(()žžżýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŃŃŃ///yyzčččţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙rrs001 &&'OOPŸŸŸůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ěě쀀335  ,,-ZZ[ÄÄĹýýý˙˙˙˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷÷))* //0ąą˛˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''( !‡‡ˆđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđđ𥥥@@APPQúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙éé郃„223 --.222>>?­­Ž˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÚÚÚqqr--.001uuvŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĺĺ匌Œnnn&&& 
+
+ 
+
+  OOPČČČ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ďď–??@%%&EEFĄĄ˘˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűÎÎĎ889JJKłłłĂĂĂÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÂÂÂXXY::;šš›óóó˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ěěě~~667''(hhiÍÍÎţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ää䌌Œ<<<   ""#]]^ÍÍÍööö˙˙˙gghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÝÝރƒ„??@%%&@@Aççç˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĄĄ˘EEF''(TTUúúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙íí킂ƒ99: ,,-ffgppp 222ŤŤŤ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙××ŘgghnnnÜÜÜ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůŠŠŞPPQ""# %%'VVWČČČ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýęęꥥ˘SSTœœœůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÚÚÚ€%%&
+
+ ''(==>==>==>==>==>==>==>==>==>==>==>==>==>==>,,- SST­­Žýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙äää{{{ZZ[ĎĎĎ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ííí¸¸¸………EEF! ))*gghžžžřřřgghƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙đđńŽŽSSTľľśüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůœœœSST˘˘Łýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÝÝÝHHI $$%UUVŕŕŕśśś112  ƒƒƒ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙äääććć˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúŢŢŢÍÍÍbbc//1
+++-˜˜˜˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷÷ÝÝŢôôő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ňňňzz{<<=  ""#""#""#""#""#""#""#""#""#""#""#""#""#""# !\\]ďďď˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ęęęßßŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůŢŢޢ˘ŁVVW --.eee‚MMNƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙đđđÝÝŢűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ôôőÝÝŢ÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŽŽŽ //0nnnááá˙˙˙żżŔ==> xxx˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óóóßßßůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůž^^^''(———˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýžžž//0 001kkl‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒ‚‚ƒrrs778 ¨¨¨úúú˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţöööżżŔ``a ƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĚĚĚDDE../jjk×××˙˙˙˙˙˙ÜÜÜppq xxx˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙őőő––—TTUşşť˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţĺĺĺfff ''(———˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţíííccc //0ttuŘŘŮ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙âââvvw ]]^ÔÔŐţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ššşQQR$$% ƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ČČČdde !%%&bbbŰŰŰ˙˙˙˙˙˙˙˙˙˙˙˙ŢŢŢ"""IIJŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙çççMMN**+oop˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűşşş==>''(———˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙đđ𬬬 $$%kklÖÖ×˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüýĆĆĆ((( 556žřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüüŻŻ°JJK ƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řřř››œ——˜››œůůů˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýČČČWWX%%&--/aabŢŢŢ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙***(((hhióóó˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ćććIIJ""#YYZřřř˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ôôô„„…99: ''(———˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óó󨨊SSTCCDĘĘĘýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúúxxyXXYčččţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙úúú´´ľTTUƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýęę댌667''(778ŒŒŒ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĆĆĆOOP%%'//0jjkŰŰŰ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙AAA IIJđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ćććIIJ112’’’ĺĺĺţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ááá444''(———˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙šššUUV%%' ##$ŸŸŸűűű˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙żżŔ==> œœœőőő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűÉÉÉXXY(()ƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűű××ׄ„…??@uuv˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ČČÉZZ[!!"%%&nno×××˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙yyz%%&
+
+  ëëë˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ćććIIJ 889……†ĺĺĺ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙žžž  223™™š˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűű!!# PPQĎĎĎţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůrrs  112ľľľ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇÓAAB YYZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýÄÄĹrrsDDD**+ ƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙———''(!!"˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýý××ׂ‚ƒ==>
+
+ %%&{{|˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĘĘË\\]&&',,-UUVááá˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙×××DDE 
+
+  >>?ŤŤŹ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűŒŒŒ
+
+  001€ĺĺĺ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ćććIIJ 555cccŽŽŽČČČÔÔŐííí˙˙˙˙˙˙˙˙˙˙˙˙ýýýßßßťťť„„„444  223zz{ăăă˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţŮŮŮŚŚŚ‹‹‹AAB nnożżŔÁÁÂ÷÷÷˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙áááUUV JJKłłłüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŮŮŮŔŔŔŁŁŁ;;<
+
+ PPQżżŔÁÁÁěěě˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ďď—??@ƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙řřř———$$$ __`żżŔżżŔżżŔżżŔżżŔżżŔżżŔżżŔżżŔżżŔżżŔżżŔżżŔżżŔżżŔżżŔśśśPPQ$$&GGHŇŇŇ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙đđń‚AAB  !DDEśśˇ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŤŤŤ::;778|||ëëë˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ćććIIJ 777CCDYYZ’’“ÜÜÜůůůţţţ÷÷÷żżżkkl889 113rrsŕŕá˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĎĎĎnno667223 //0::;EEFşşş˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ááâWWXLLM´´ľ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŮŮŮkkl<<=667
+
+ ''(::;BBC‡‡‡ööö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙čč聁‚446ƒƒ„˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙źźźCCD ::;::;::;::;::;::;::;::;::;::;::;::;::;::;::;::;889##$
+DDEŒŒŒééé˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ććçKKL VVWłłłüüü˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ{{|vvwOOP889mmnxxyłłłüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙éééZZ[%%&   ! !!!"##$%%&$$% !++,---dddwwwllm//0 !##$!!" ! !--/eefííí˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙­­­GGH%%&%%&""# " ! !!!"$$%%%&445~~˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕTTU%%' ! ! ! ! ! ! ! !!!"##$445xxyńńń˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ĹĹĹOOP))*%%&##$!!" ! !!!"$$%%%&001``aňňň˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ďďďuuv223 223˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙““”667##$!!" ! ! ! ! ! ! !""#%%&%%&%%&%%&%%&%%&%%&%%&%%&%%&%%&%%&%%&%%&%%&%%&%%&%%&##$!!" ! ! ! !667ňňňţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ććçLLM ""#NNOËËË˙˙˙˙˙˙˙˙˙˙˙˙dde001""# !!"''(NNOËËË˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÖÖÖkkl++,../mmnŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ||}FFF+++
+
+
+!!" !##$bbcŒŒŒŒŒŒŒŒŒŒŒŒęęë˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŚŚŚŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒńńń˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ýýýÄÄĈˆ‰ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ‘âââđđđ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ťťťŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŽŽÝÝÝ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ńńńŽŽ„„…ŽŽ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙‘ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ——˜˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óó󎎎GGHAABAABAABAABAABAABAABAABDDE{{|ĺĺĺ˙˙˙˙˙˙˙˙˙˙˙˙˘˘ŁJJKAABAABAABAABAABAABAABAABAABAABAABAABAABAABAABAABDDE{{|ĺĺĺ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŇŇŇccciijÖÖ×˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÍÍÍ[[\AABAABAABAABAABAABTTUČČČ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ďďďŇŇŇŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŇŇŇććç˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷÷ŇŇÓŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŇŇŇććç˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ÜÜÜŢŢß˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŮŮŮŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃŃÖÖÖ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ôôôňňň˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ůůůýýý˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙óóóÍÍÍÂÂÂÂÂÂŰŰŰüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűűăăăĹĹŲ˛˛ąąą×××üüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙đđđüüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕjjjÍÍÍ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙°°°]]]111$$$???˝˝˝üüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ňňňJJJ(((§§§üüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷÷ŠŠŠ666ˇˇˇţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŹŹŹ ccc˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ńńńvvvööö˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţěěě]]]OOOăăă˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙űűű………,,,ÂÂÂ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙×××
+
+
+
+
+
+
+
+
+GGGÔÔÔţţţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙÷÷÷FFF
+
+
+
+
+
+ááá˙˙˙˙˙˙˙˙˙˙˙˙şşş
+
+
+~~~ööö˙˙˙˙˙˙˙˙˙˙˙˙şşş
+
+
+
+
+
+řřřĂĂĂDDD---ťťťőőő˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţţţ{{{”””˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ëëëYYY
+
+
+´´´˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˘˘˘ fffîîî˙˙˙˙˙˙ëëë<<<
+
+
+
+
+
+
diff --git a/frontend/xsane-style.rc b/src/xsane-style.rc
index de6662d..de6662d 100644
--- a/frontend/xsane-style.rc
+++ b/src/xsane-style.rc
diff --git a/src/xsane-text.h b/src/xsane-text.h
new file mode 100644
index 0000000..1ca47ad
--- /dev/null
+++ b/src/xsane-text.h
@@ -0,0 +1,701 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-text.h
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ------------------------------------------------------------------------ */
+
+#ifndef XSANE_TEXT_H
+#define XSANE_TEXT_H
+
+/* Please translate this to the correct directory name (eg. german=>de) */
+#define XSANE_LANGUAGE_DIR _("language_dir")
+
+#define XSANE_STRSTATUS(status) _(sane_strstatus(status))
+#define _BGT(text) dgettext(xsane.backend, text)
+
+#define XSANE_COPYRIGHT_SIGN _("(c)") /* can be translated with \251 */
+
+#define WINDOW_ABOUT_XSANE _("About")
+#define WINDOW_ABOUT_TRANSLATION _("About translation")
+#define WINDOW_AUTHORIZE _("authorization")
+#define WINDOW_LICENSE _("license")
+#define WINDOW_INFO _("info")
+#define WINDOW_BATCH_SCAN _("batch scan")
+#define WINDOW_FAX_PROJECT _("fax project")
+#define WINDOW_FAX_RENAME _("rename fax page")
+#define WINDOW_FAX_INSERT _("insert ps-file into fax")
+#define WINDOW_MAIL_PROJECT _("mail project")
+#define WINDOW_MAIL_RENAME _("rename mail image")
+#define WINDOW_MAIL_INSERT _("insert file into mail")
+#define WINDOW_PRESET_AREA_RENAME _("rename preset area")
+#define WINDOW_SETUP _("setup")
+#define WINDOW_HISTOGRAM _("Histogram")
+#define WINDOW_GAMMA _("Gamma curve")
+#define WINDOW_STANDARD_OPTIONS _("Standard options")
+#define WINDOW_ADVANCED_OPTIONS _("Advanced options")
+#define WINDOW_DEVICE_SELECTION _("device selection")
+#define WINDOW_PREVIEW _("Preview")
+#define WINDOW_VIEWER _("Viewer")
+#define WINDOW_VIEWER_OUTPUT_FILENAME _("Viewer: select output filename")
+#define WINDOW_OCR_OUTPUT_FILENAME _("Select output filename for OCR text file")
+#define WINDOW_OUTPUT_FILENAME _("select output filename")
+#define WINDOW_SAVE_SETTINGS _("save device settings")
+#define WINDOW_LOAD_SETTINGS _("load device settings")
+#define WINDOW_CHANGE_WORKING_DIR _("change working directory")
+#define WINDOW_TMP_PATH _("select temporary directory")
+#define WINDOW_SCALE _("Scale image")
+#define WINDOW_DESPECKLE _("Despeckle image")
+#define WINDOW_BLUR _("Blur image")
+#define WINDOW_STORE_MEDIUM _("Store medium definition")
+
+#define MENU_FILE _("File")
+#define MENU_PREFERENCES _("Preferences")
+#define MENU_VIEW _("View")
+#define MENU_HELP _("Help")
+#define MENU_FILTERS _("Filters")
+
+#define MENU_ITEM_ABOUT_XSANE _("About XSane")
+#define MENU_ITEM_ABOUT_TRANSLATION _("About translation")
+#define MENU_ITEM_INFO _("Info")
+#define MENU_ITEM_QUIT _("Quit")
+
+#define MENU_ITEM_SAVE_IMAGE _("Save image")
+#define MENU_ITEM_CLOSE _("Close")
+
+#define MENU_ITEM_CLONE _("Clone")
+#define MENU_ITEM_SCALE _("Scale")
+#define MENU_ITEM_DESPECKLE _("Despeckle")
+#define MENU_ITEM_BLUR _("Blur")
+
+#define FRAME_RAW_IMAGE _("Raw image")
+#define FRAME_ENHANCED_IMAGE _("Enhanced image")
+
+#define BUTTON_START _("Start")
+#define BUTTON_OK _("Ok")
+#define BUTTON_ACCEPT _("Accept")
+#define BUTTON_NOT_ACCEPT _("Not accept")
+#define BUTTON_APPLY _("Apply")
+#define BUTTON_CANCEL _("Cancel")
+#define BUTTON_REDUCE _("Reduce")
+#define BUTTON_CONT_AT_OWN_RISK _("Continue at your own risk")
+#define BUTTON_BROWSE _("Browse")
+#define BUTTON_CLOSE _("Close")
+#define BUTTON_OVERWRITE _("Overwrite")
+#define BUTTON_ADD_AREA _("Add area")
+#define BUTTON_PAGE_DELETE _("Delete page")
+#define BUTTON_PAGE_SHOW _("Show page")
+#define BUTTON_PAGE_RENAME _("Rename page")
+#define BUTTON_IMAGE_DELETE _("Delete image")
+#define BUTTON_IMAGE_SHOW _("Show image")
+#define BUTTON_IMAGE_RENAME _("Rename image")
+#define BUTTON_FILE_INSERT _("Insert file")
+#define BUTTON_CREATE_PROJECT _("Create project")
+#define BUTTON_SEND_PROJECT _("Send project")
+#define BUTTON_DELETE_PROJECT _("Delete project")
+#define BUTTON_ADD_PRINTER _("Add printer")
+#define BUTTON_DELETE_PRINTER _("Delete printer")
+#define BUTTON_PREVIEW_ACQUIRE _("Acquire preview")
+#define BUTTON_PREVIEW_CANCEL _("Cancel preview")
+#define BUTTON_DISCARD_IMAGE _("Discard image")
+#define BUTTON_DISCARD_ALL_IMAGES _("Discard all images")
+#define BUTTON_DO_NOT_CLOSE _("Do not close")
+#define BUTTON_SCALE_BIND _("Bind scale")
+
+#define RADIO_BUTTON_FINE_MODE _("Fine mode")
+#define RADIO_BUTTON_HTML_MAIL _("HTML mail")
+#define RADIO_BUTTON_SAVE_DEVPREFS_AT_EXIT _("Save device preferences at exit")
+#define RADIO_BUTTON_OVERWRITE_WARNING _("Overwrite warning")
+#define RADIO_BUTTON_SKIP_EXISTING_NRS _("Skip existing filenames")
+#define RADIO_BUTTON_REDUCE_16BIT_TO_8BIT _("Reduce 16 bit image to 8 bit")
+#define RADIO_BUTTON_WINDOW_FIXED _("Main window size fixed")
+#define RADIO_BUTTON_DISABLE_GIMP_PREVIEW_GAMMA _("Disable gimp preview gamma")
+#define RADIO_BUTTON_PRIVATE_COLORMAP _("Use private colormap")
+#define RADIO_BUTTON_AUTOENHANCE_GAMMA _("Autoenhance gamma")
+#define RADIO_BUTTON_PRESELECT_SCANAREA _("Preselect scanarea")
+#define RADIO_BUTTON_AUTOCORRECT_COLORS _("Autocorrect colors")
+#define RADIO_BUTTON_POP3_AUTHENTIFICATION _("POP3 authentification")
+
+#define TEXT_SCANNING_DEVICES _("scanning for devices")
+#define TEXT_AVAILABLE_DEVICES _("Available devices:")
+#define TEXT_XSANE_OPTIONS _("XSane options")
+#define TEXT_XSANE_MODE _("XSane mode")
+#define TEXT_FILENAME_COUNTER_STEP _("Step")
+#define TEXT_FILETYPE _("Type")
+#define TEXT_SCANNER_BACKEND _("Scanner and backend:")
+#define TEXT_VENDOR _("Vendor:")
+#define TEXT_MODEL _("Model:")
+#define TEXT_TYPE _("Type:")
+#define TEXT_DEVICE _("Device:")
+#define TEXT_LOADED_BACKEND _("Loaded backend:")
+#define TEXT_SANE_VERSION _("Sane version:")
+#define TEXT_RECENT_VALUES _("Recent values:")
+#define TEXT_GAMMA_CORR_BY _("Gamma correction by:")
+#define TEXT_SCANNER _("scanner")
+#define TEXT_SOFTWARE_XSANE _("software (XSane)")
+#define TEXT_NONE _("none")
+#define TEXT_GAMMA_INPUT_DEPTH _("Gamma input depth:")
+#define TEXT_GAMMA_OUTPUT_DEPTH _("Gamma output depth:")
+#define TEXT_SCANNER_OUTPUT_DEPTH _("Scanner output depth:")
+#define TEXT_OUTPUT_FORMATS _("XSane output formats:")
+#define TEXT_8BIT_FORMATS _("8 bit output formats:")
+#define TEXT_16BIT_FORMATS _("16 bit output formats:")
+#define TEXT_GIMP_REDUCE_16BIT_TO_8BIT _("Gimp does not support depth 16 bits/color.\n" \
+ "Do you want to reduce the depth to 8 bits/color?")
+#define TEXT_REDUCE_16BIT_TO_8BIT _("Bit depth 16 bits/color is not supported for this output format.\n" \
+ "Do you want to reduce the depth to 8 bits/color?")
+#define TEXT_AUTHORIZATION_REQ _("Authorization required for")
+#define TEXT_AUTHORIZATION_SECURE _("Password transmission is secure")
+#define TEXT_AUTHORIZATION_INSECURE _("Backend requests plain-text password")
+#define TEXT_USERNAME _("Username :")
+#define TEXT_PASSWORD _("Password :")
+#define TEXT_INVALID_PARAMS _("Invalid parameters.")
+#define TEXT_VERSION _("version:")
+#define TEXT_PACKAGE _("package")
+#define TEXT_WITH_GIMP_SUPPORT _("with GIMP support")
+#define TEXT_WITHOUT_GIMP_SUPPORT _("without GIMP support")
+#define TEXT_GTK_VERSION _("compiled with GTK-")
+#define TEXT_GIMP_VERSION _("compiled with GIMP-")
+#define TEXT_UNKNOWN _("unknown")
+#define TEXT_GPL _("XSane is distributed under the terms of the GNU General Public License\n" \
+ "as published by the Free Software Foundation; either version 2 of the\n" \
+ "License, or (at your option) any later version.\n" \
+ "\n" \
+ "This program is distributed in the hope that it will be useful, but\n" \
+ "WITHOUT ANY WARRANTY; without even the implied warranty of\n" \
+ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n")
+#define TEXT_EMAIL _("Email:")
+#define TEXT_HOMEPAGE _("Homepage:")
+#define TEXT_FILE _("File:")
+#define TEXT_TRANSLATION _("Translation:")
+
+/* Please translate this to something like */
+/* translation to YOUR LANGUAGE\n */
+/* by YOUR NAME\n */
+/* Email: your.name@yourdomain.com\n */
+#define TEXT_TRANSLATION_INFO _("untranslated original english text\n" \
+ "by Oliver Rauch\n" \
+ "Email: Oliver.Rauch@rauch-domain.de\n")
+
+#define TEXT_INFO_BOX _("0x0: 0KB")
+
+#define TEXT_ADF_PAGES_SCANNED _("Scanned pages: ")
+
+#define TEXT_MAIL_TEXT _("Email text:")
+#define TEXT_ATTACHMENTS _("Attachments:")
+#define TEXT_MAIL_STATUS _("Project status:")
+
+#define TEXT_MEDIUM_DEFINITION_NAME _("Medium Name:")
+
+#define TEXT_VIEWER_IMAGE_INFO _("Size %d x %d pixel, %d bit/color, %d colors, %1.0f dpi x %1.0f dpi, %1.1f %s")
+#define TEXT_X_SCALE_FACTOR _("X-Scale factor:")
+#define TEXT_Y_SCALE_FACTOR _("Y-Scale factor:")
+#define TEXT_DESPECKLE_RADIUS _("Despeckle radius:")
+#define TEXT_BLUR_RADIUS _("Blur radius:")
+
+#define TEXT_SETUP_PRINTER_SEL _("Printer selection:")
+#define TEXT_SETUP_PRINTER_NAME _("Name:")
+#define TEXT_SETUP_PRINTER_CMD _("Command:")
+#define TEXT_SETUP_COPY_NR_OPT _("Copy number option:")
+#define TEXT_SETUP_PRINTER_LINEART_RES _("Lineart resolution (dpi):")
+#define TEXT_SETUP_PRINTER_GRAYSCALE_RES _("Grayscale resolution (dpi):")
+#define TEXT_SETUP_PRINTER_COLOR_RES _("Color resolution (dpi):")
+#define TEXT_SETUP_PRINTER_WIDTH _("Width")
+#define TEXT_SETUP_PRINTER_HEIGHT _("Height")
+#define TEXT_SETUP_PRINTER_LEFT _("Left offset")
+#define TEXT_SETUP_PRINTER_BOTTOM _("Bottom offset")
+#define TEXT_SETUP_PRINTER_GAMMA _("Printer gamma value:")
+#define TEXT_SETUP_PRINTER_GAMMA_RED _("Printer gamma red:")
+#define TEXT_SETUP_PRINTER_GAMMA_GREEN _("Printer gamma green:")
+#define TEXT_SETUP_PRINTER_GAMMA_BLUE _("Printer gamma blue:")
+#define TEXT_SETUP_TMP_PATH _("Temporary directory")
+#define TEXT_SETUP_IMAGE_PERMISSION _("Image-file permissions")
+#define TEXT_SETUP_DIR_PERMISSION _("Directory permissions")
+#define TEXT_SETUP_JPEG_QUALITY _("JPEG image quality")
+#define TEXT_SETUP_PNG_COMPRESSION _("PNG image compression")
+#define TEXT_SETUP_FILENAME_COUNTER_LEN _("Filename counter length")
+#define TEXT_SETUP_TIFF_COMPRESSION_16 _("TIFF 16 bit image compression")
+#define TEXT_SETUP_TIFF_COMPRESSION_8 _("TIFF 8 bit image compression")
+#define TEXT_SETUP_TIFF_COMPRESSION_1 _("TIFF lineart image compression")
+#define TEXT_SETUP_PREVIEW_OVERSAMPLING _("Preview oversampling:")
+#define TEXT_SETUP_PREVIEW_GAMMA _("Preview gamma:")
+#define TEXT_SETUP_PREVIEW_GAMMA_RED _("Preview gamma red:")
+#define TEXT_SETUP_PREVIEW_GAMMA_GREEN _("Preview gamma green:")
+#define TEXT_SETUP_PREVIEW_GAMMA_BLUE _("Preview gamma blue:")
+#define TEXT_SETUP_LINEART_MODE _("Threshold option:")
+#define TEXT_SETUP_ADF_MODE _("Automatic Document Feeder Modus:")
+#define TEXT_SETUP_PREVIEW_PIPETTE_RANGE _("Preview pipette range")
+#define TEXT_SETUP_THRESHOLD_MIN _("Threshold minimum:")
+#define TEXT_SETUP_THRESHOLD_MAX _("Threshold maximum:")
+#define TEXT_SETUP_THRESHOLD_MUL _("Threshold multiplier:")
+#define TEXT_SETUP_THRESHOLD_OFF _("Threshold offset:")
+#define TEXT_SETUP_GRAYSCALE_SCANMODE _("Name of grayscale scanmode:")
+#define TEXT_SETUP_HELPFILE_VIEWER _("Helpfile viewer (HTML):")
+#define TEXT_SETUP_FAX_COMMAND _("Command:")
+#define TEXT_SETUP_FAX_RECEIVER_OPTION _("Receiver option:")
+#define TEXT_SETUP_FAX_POSTSCRIPT_OPT _("Postscriptfile option:")
+#define TEXT_SETUP_FAX_NORMAL_MODE_OPT _("Normal mode option:")
+#define TEXT_SETUP_FAX_FINE_MODE_OPT _("Fine mode option:")
+#define TEXT_SETUP_FAX_VIEWER _("Viewer (Postscript):")
+#define TEXT_SETUP_FAX_WIDTH _("Width")
+#define TEXT_SETUP_FAX_HEIGHT _("Height")
+#define TEXT_SETUP_FAX_LEFT _("Left offset")
+#define TEXT_SETUP_FAX_BOTTOM _("Bottom offset")
+#define TEXT_SETUP_SMTP_SERVER _("SMTP server:")
+#define TEXT_SETUP_SMTP_PORT _("SMTP port:")
+#define TEXT_SETUP_MAIL_FROM _("From:")
+#define TEXT_SETUP_MAIL_REPLY_TO _("Reply to:")
+#define TEXT_SETUP_POP3_SERVER _("POP3 server:")
+#define TEXT_SETUP_POP3_PORT _("POP3 port:")
+#define TEXT_SETUP_POP3_USER _("POP3 user:")
+#define TEXT_SETUP_POP3_PASS _("POP3 password:")
+#define TEXT_SETUP_MAIL_VIEWER _("Viewer (png):")
+#define TEXT_SETUP_OCR_COMMAND _("OCR Command:")
+#define TEXT_SETUP_OCR_INPUTFILE_OPT _("Inputfile option:")
+#define TEXT_SETUP_OCR_OUTPUTFILE_OPT _("Outputfile option:")
+#define TEXT_SETUP_PERMISSION_USER _("user")
+#define TEXT_SETUP_PERMISSION_GROUP _("group")
+#define TEXT_SETUP_PERMISSION_ALL _("all")
+
+#define NOTEBOOK_SAVING_OPTIONS _("Save")
+#define NOTEBOOK_IMAGE_OPTIONS _("Image")
+#define NOTEBOOK_COPY_OPTIONS _("Copy")
+#define NOTEBOOK_FAX_OPTIONS _("Fax")
+#define NOTEBOOK_MAIL_OPTIONS _("Mail")
+#define NOTEBOOK_OCR_OPTIONS _("OCR")
+#define NOTEBOOK_DISPLAY_OPTIONS _("Display")
+#define NOTEBOOK_ENHANCE_OPTIONS _("Enhancement")
+
+#define MENU_ITEM_SAVE _("Save")
+#define MENU_ITEM_VIEWER _("Viewer")
+#define MENU_ITEM_COPY _("Copy")
+#define MENU_ITEM_FAX _("Fax")
+#define MENU_ITEM_MAIL _("Email")
+
+#define MENU_ITEM_SHOW_TOOLTIPS _("Show tooltips")
+#define MENU_ITEM_SHOW_PREVIEW _("Show preview")
+#define MENU_ITEM_SHOW_HISTOGRAM _("Show histogram")
+#define MENU_ITEM_SHOW_GAMMA _("Show gamma curve")
+#define MENU_ITEM_SHOW_STANDARDOPTIONS _("Show standard options")
+#define MENU_ITEM_SHOW_ADVANCEDOPTIONS _("Show advanced options")
+
+#define MENU_ITEM_SETUP _("Setup")
+#define MENU_ITEM_LENGTH_UNIT _("Length unit")
+#define SUBMENU_ITEM_LENGTH_MILLIMETERS _("millimeters")
+#define SUBMENU_ITEM_LENGTH_CENTIMETERS _("centimeters")
+#define SUBMENU_ITEM_LENGTH_INCHES _("inches")
+#define MENU_ITEM_UPDATE_POLICY _("Update policy")
+#define SUBMENU_ITEM_POLICY_CONTINUOUS _("continuous")
+#define SUBMENU_ITEM_POLICY_DISCONTINU _("discontinuous")
+#define SUBMENU_ITEM_POLICY_DELAYED _("delayed")
+#define MENU_ITEM_SHOW_RESOLUTIONLIST _("Show resolution list")
+#define MENU_ITEM_PAGE_ROTATE _("Rotate postscript")
+#define MENU_ITEM_SAVE_DEVICE_SETTINGS _("Save device settings")
+#define MENU_ITEM_LOAD_DEVICE_SETTINGS _("Load device settings")
+#define MENU_ITEM_CHANGE_WORKING_DIR _("Change directory")
+
+#define MENU_ITEM_XSANE_LICENSE _("License")
+#define MENU_ITEM_XSANE_DOC _("XSane doc")
+#define MENU_ITEM_BACKEND_DOC _("Backend doc")
+#define MENU_ITEM_AVAILABLE_BACKENDS _("Available backends")
+#define MENU_ITEM_SCANTIPS _("Scantips")
+#define MENU_ITEM_PROBLEMS _("Problems?")
+
+#define MENU_ITEM_COUNTER_LEN_INACTIVE _("inactive")
+#define MENU_ITEM_TIFF_COMP_NONE _("no compression")
+#define MENU_ITEM_TIFF_COMP_CCITTRLE _("CCITT 1D Huffman compression")
+#define MENU_ITEM_TIFF_COMP_CCITFAX3 _("CCITT Group 3 Fax compression")
+#define MENU_ITEM_TIFF_COMP_CCITFAX4 _("CCITT Group 4 Fax compression")
+#define MENU_ITEM_TIFF_COMP_JPEG _("JPEG DCT compression")
+#define MENU_ITEM_TIFF_COMP_PACKBITS _("pack bits")
+
+#define MENU_ITEM_LINEART_MODE_STANDARD _("Standard options window (lineart)")
+#define MENU_ITEM_LINEART_MODE_XSANE _("XSane main window (lineart)")
+#define MENU_ITEM_LINEART_MODE_GRAY _("XSane main window (grayscale->lineart)")
+#define MENU_ITEM_SELECTION_NONE _("(none)")
+
+#define MENU_ITEM_FILETYPE_BY_EXT _("by ext")
+
+#define MENU_ITEM_PRESET_AREA_ADD_SEL _("Add selection to list")
+#define MENU_ITEM_PRESET_AREA_RENAME _("Rename definiton")
+#define MENU_ITEM_PRESET_AREA_DELETE _("Delete definition")
+#define MENU_OTEM_PRESET_AREA_MOVE_UP _("Move up")
+#define MENU_OTEM_PRESET_AREA_MOVE_DWN _("Move down")
+
+#define PROGRESS_SCANNING _("Scanning")
+#define PROGRESS_RECEIVING_FRAME_DATA _("Receiving %s data")
+
+#define PROGRESS_TRANSFERING_DATA _("Transfering image")
+#define PROGRESS_ROTATING_DATA _("Rotating image")
+#define PROGRESS_MIRRORING_DATA _("Mirroring image")
+#define PROGRESS_PACKING_DATA _("Packing image")
+#define PROGRESS_CONVERTING_DATA _("Converting image")
+#define PROGRESS_SAVING_DATA _("Saving image")
+#define PROGRESS_CLONING_DATA _("Cloning image")
+#define PROGRESS_SCALING_DATA _("Scaling image")
+#define PROGRESS_DESPECKLING_DATA _("Despeckling image")
+#define PROGRESS_BLURING_DATA _("Bluring image")
+
+#define DESC_SCAN_START _("Start scan <Ctrl-Enter>")
+#define DESC_SCAN_CANCEL _("Cancel scan <ESC>")
+#define DESC_PREVIEW_ACQUIRE _("Acquire preview scan <Alt-p>")
+#define DESC_PREVIEW_CANCEL _("Cancel preview scan <Alt-ESC>")
+#define DESC_XSANE_MODE _("save-<Ctrl-s>, view-<Ctrl-v>, photocopy-<Ctrl-c>, " \
+ "fax-<Ctrl-f> or mail-<Ctrl-m>")
+#define DESC_XSANE_MEDIUM _("Select source medium type")
+
+#define DESC_FILENAME_COUNTER_STEP _("Value that is added to filenamecounter after scan")
+#define DESC_BROWSE_FILENAME _("Browse for image filename")
+#define DESC_FILENAME _("Filename for scanned image")
+#define DESC_FILETYPE _("Type of image format, the suitable filename extension is automatically added to the filename")
+#define DESC_FAXPROJECT _("Enter name of fax project")
+#define DESC_FAXPAGENAME _("Enter new name for faxpage")
+#define DESC_FAXRECEIVER _("Enter receiver phone number or address")
+#define DESC_MAILPROJECT _("Enter name of mail project")
+#define DESC_MAILIMAGENAME _("Enter new name for mail image")
+#define DESC_MAILRECEIVER _("Enter email address")
+#define DESC_MAILSUBJECT _("Enter subject of email")
+#define DESC_PRESET_AREA_NAME _("Enter new name for preset area")
+
+#define DESC_PRINTER_SELECT _("Select printerdefinition <Shift-F1/F2/...>")
+
+#define DESC_RESOLUTION _("Set scan resolution")
+#define DESC_RESOLUTION_X _("Set scan resolution for x direction")
+#define DESC_RESOLUTION_Y _("Set scan resolution for y direction")
+#define DESC_ZOOM _("Set zoomfactor")
+#define DESC_ZOOM_X _("Set zoomfactor for x direction")
+#define DESC_ZOOM_Y _("Set zoomfactor for y direction")
+#define DESC_COPY_NUMBER _("Set number of copies")
+
+#define DESC_NEGATIVE _("Negative: Invert colors for scanning negatives <Shift-n>")
+
+#define DESC_GAMMA _("Set gamma value")
+#define DESC_GAMMA_R _("Set gamma value for red component")
+#define DESC_GAMMA_G _("Set gamma value for green component")
+#define DESC_GAMMA_B _("Set gamma value for blue component")
+
+#define DESC_BRIGHTNESS _("Set brightness")
+#define DESC_BRIGHTNESS_R _("Set brightness for red component")
+#define DESC_BRIGHTNESS_G _("Set brightness for green component")
+#define DESC_BRIGHTNESS_B _("Set brightness for blue component")
+
+#define DESC_CONTRAST _("Set contrast")
+#define DESC_CONTRAST_R _("Set contrast for red component")
+#define DESC_CONTRAST_G _("Set contrast for green component")
+#define DESC_CONTRAST_B _("Set contrast for blue component")
+
+#define DESC_THRESHOLD _("Set threshold")
+
+#define DESC_RGB_DEFAULT _("RGB default: Set enhancement values for red, " \
+ "green and blue to default values <Shift-b>:\n" \
+ " gamma = 1.0\n" \
+ " brightness = 0\n" \
+ " contrast = 0")
+
+#define DESC_ENH_AUTO _("Autoadjust gamma, brightness and contrast <Shift-e>")
+#define DESC_ENH_DEFAULT _("Set default enhancement values <Shift-d>:\n" \
+ "gamma = 1.0\n" \
+ "brightness = 0\n" \
+ "contrast = 0")
+#define DESC_ENH_RESTORE _("Restore enhancement values from preferences <Shift-r>")
+#define DESC_ENH_STORE _("Store active enhancement values to preferences <Shift-m>")
+
+#define DESC_HIST_INTENSITY _("Show histogram of intensity/gray <Alt-i>")
+#define DESC_HIST_RED _("Show histogram of red component <Alt-r>")
+#define DESC_HIST_GREEN _("Show histogram of green component <Alt-g>")
+#define DESC_HIST_BLUE _("Show histogram of blue component <Alt-b>")
+#define DESC_HIST_PIXEL _("Display mode: show histogram with lines instead of pixels <Alt-m>")
+#define DESC_HIST_LOG _("Show logarithm of pixelcount <Alt-l>")
+
+#define DESC_PRINTER_SETUP _("Select definition to change")
+#define DESC_PRINTER_NAME _("Define a name for the selection of this definition")
+#define DESC_PRINTER_COMMAND _("Enter command to be executed in copy mode (e.g. \"lpr\")")
+#define DESC_COPY_NUMBER_OPTION _("Enter option for copy numbers")
+#define DESC_PRINTER_LINEART_RESOLUTION _("Resolution with which lineart images are printed and saved in postscript")
+#define DESC_PRINTER_GRAYSCALE_RESOLUTION _("Resolution with which grayscale images are printed and saved in postscript")
+#define DESC_PRINTER_COLOR_RESOLUTION _("Resolution with which color images are printed and saved in postscript")
+#define DESC_PRINTER_WIDTH _("Width of printable area")
+#define DESC_PRINTER_HEIGHT _("Height of printable area")
+#define DESC_PRINTER_LEFTOFFSET _("Left offset from the edge of the paper to the printable area")
+#define DESC_PRINTER_BOTTOMOFFSET _("Bottom offset from the edge of the paper to the printable area")
+#define DESC_PRINTER_GAMMA _("Additional gamma value for photocopy")
+#define DESC_PRINTER_GAMMA_RED _("Additional gamma value for red component for photocopy")
+#define DESC_PRINTER_GAMMA_GREEN _("Additional gamma value for green component for photocopy")
+#define DESC_PRINTER_GAMMA_BLUE _("Additional gamma value for blue component for photocopy")
+#define DESC_TMP_PATH _("Path to temp directory")
+#define DESC_BUTTON_TMP_PATH_BROWSE _("Browse for temporary directory")
+#define DESC_JPEG_QUALITY _("Quality in percent if image is saved as jpeg or tiff with jpeg compression")
+#define DESC_PNG_COMPRESSION _("Compression if image is saved as png")
+#define DESC_FILENAME_COUNTER_LEN _("Minimum length of counter in filename")
+#define DESC_TIFF_COMPRESSION_16 _("Compression type if 16 bit image is saved as tiff")
+#define DESC_TIFF_COMPRESSION_8 _("Compression type if 8 bit image is saved as tiff")
+#define DESC_TIFF_COMPRESSION_1 _("Compression type if lineart image is saved as tiff")
+#define DESC_SAVE_DEVPREFS_AT_EXIT _("Save device dependant preferences in default file at exit of xsane")
+#define DESC_OVERWRITE_WARNING _("Warn before overwriting an existing file")
+#define DESC_SKIP_EXISTING _("If filename counter is automatically increased, used numbers are skipped")
+#define DESC_REDUCE_16BIT_TO_8BIT _("If scanner sends image with 16 bits/color save image with 8 bits/color")
+#define DESC_PSFILE_WIDTH _("Width of paper for postscript files")
+#define DESC_PSFILE_HEIGHT _("Height of paper for postscript files")
+#define DESC_PSFILE_LEFTOFFSET _("Left offset from the edge of the paper to the usable area for postscript files")
+#define DESC_PSFILE_BOTTOMOFFSET _("Bottom offset from the edge of the paper to the usable area for postscript files")
+#define DESC_MAIN_WINDOW_FIXED _("Use fixed main window size or scrolled, resizable main window")
+#define DESC_DISABLE_GIMP_PREVIEW_GAMMA _("Disable preview gamma when XSane runs as gimp plugin")
+#define DESC_PREVIEW_COLORMAP _("Use an own colormap for preview if display depth is 8 bpp")
+#define DESC_PREVIEW_OVERSAMPLING _("Value with that the calculated preview resolution is multiplied")
+#define DESC_PREVIEW_GAMMA _("Set gamma correction value for preview image")
+#define DESC_PREVIEW_GAMMA_RED _("Set gamma correction value for red component of preview image")
+#define DESC_PREVIEW_GAMMA_GREEN _("Set gamma correction value for green component of preview image")
+#define DESC_PREVIEW_GAMMA_BLUE _("Set gamma correction value for blue component of preview image")
+#define DESC_LINEART_MODE _("Define the way XSane shall handle the threshold option")
+#define DESC_GRAYSCALE_SCANMODE _("Select grayscale scanmode. " \
+ "This scanmode is used for lineart preview scan when transformation " \
+ "from grayscale to lineart is enabled")
+#define DESC_PREVIEW_THRESHOLD_MIN _("The scanner's minimum threshold level in %")
+#define DESC_PREVIEW_THRESHOLD_MAX _("The scanner's maximum threshold level in %")
+#define DESC_PREVIEW_THRESHOLD_MUL _("Multiplier to make XSane threshold range and scanner threshold range the same")
+#define DESC_PREVIEW_THRESHOLD_OFF _("Offset to make XSane threshold range and scanner threshold range the same")
+#define DESC_ADF_MODE _("Select scansource for Automatic Document feeder. " \
+ "If this scansource is selected XSane scans until \"out of paper\" or error.")
+#define DESC_PREVIEW_PIPETTE_RANGE _("dimension of square that is used to average color for pipette function")
+#define DESC_DOC_VIEWER _("Enter command to be executed to display helpfiles, must be a html-viewer!")
+#define DESC_AUTOENHANCE_GAMMA _("Change gamma value when autoenhancement button is pressed")
+#define DESC_PRESELECT_SCANAREA _("Select scanarea after preview scan has finished")
+#define DESC_AUTOCORRECT_COLORS _("Do color correction after preview scan has finished")
+
+#define DESC_FAX_COMMAND _("Enter command to be executed in fax mode")
+#define DESC_FAX_RECEIVER_OPT _("Enter option to specify receiver")
+#define DESC_FAX_POSTSCRIPT_OPT _("Enter option to specify postscript files following")
+#define DESC_FAX_NORMAL_OPT _("Enter option to specify normal mode (low resolution)")
+#define DESC_FAX_FINE_OPT _("Enter option to specify fine mode (high resolution)")
+#define DESC_FAX_VIEWER _("Enter command to be executed to view a fax")
+#define DESC_FAX_FINE_MODE _("Send fax with high vertical resolution (196 lpi instead of 98 lpi)")
+#define DESC_FAX_WIDTH _("Width of printable area")
+#define DESC_FAX_HEIGHT _("Height of printable area")
+#define DESC_FAX_LEFTOFFSET _("Left offset from the edge of the paper to the printable area")
+#define DESC_FAX_BOTTOMOFFSET _("Bottom offset from the edge of the paper to the printable area")
+#define DESC_SMTP_SERVER _("IP Address or Domain name of SMTP server")
+#define DESC_SMTP_PORT _("port to connect to SMTP server")
+#define DESC_MAIL_FROM _("enter your email address")
+#define DESC_MAIL_REPLY_TO _("enter email address for replied emails")
+#define DESC_POP3_AUTHENTIFICATION _("Authentificate at POP3 server before sending mail")
+#define DESC_POP3_SERVER _("IP Address or Domain name of POP3 server")
+#define DESC_POP3_PORT _("port to connect to POP3 server")
+#define DESC_POP3_USER _("user name for POP3 server")
+#define DESC_POP3_PASS _("password for POP3 server")
+#define DESC_MAIL_VIEWER _("Enter command to be executed to view a mail image")
+#define DESC_HTML_MAIL _("Mail is sent in html mode, images are displayed directly")
+#define DESC_OCR_COMMAND _("Enter command to start ocr program")
+#define DESC_OCR_INPUTFILE_OPT _("Enter option of the ocr program to define input file")
+#define DESC_OCR_OUTPUTFILE_OPT _("Enter option of the ocr program to define output file")
+
+#define DESC_PERMISSION_READ _("read")
+#define DESC_PERMISSION_WRITE _("write")
+#define DESC_PERMISSION_EXECUTE _("execute")
+
+#define DESC_PIPETTE_WHITE _("Pick white point")
+#define DESC_PIPETTE_GRAY _("Pick gray point")
+#define DESC_PIPETTE_BLACK _("Pick black point")
+
+#define DESC_ZOOM_FULL _("Use full scanarea")
+#define DESC_ZOOM_OUT _("Zoom 20% out")
+#define DESC_ZOOM_IN _("Zoom into selected area")
+#define DESC_ZOOM_UNDO _("Undo last zoom")
+
+#define DESC_FULL_PREVIEW_AREA _("Select visible area")
+#define DESC_AUTOSELECT_SCANAREA _("Autoselect scanarea")
+#define DESC_DELETE_IMAGES _("Delete preview image cache")
+
+#define DESC_PRESET_AREA _("Preset area")
+#define DESC_ROTATION _("Rotate preview and scan")
+
+#define DESC_VIEWER_SAVE _("Save image")
+#define DESC_VIEWER_OCR _("Optical Character Recognition")
+#define DESC_VIEWER_CLONE _("Clone image")
+#define DESC_VIEWER_SCALE _("Scale image")
+#define DESC_VIEWER_DESPECKLE _("Despeckle image")
+#define DESC_VIEWER_BLUR _("Blur image")
+#define DESC_VIEWER_ROTATE90 _("Rotate image 90 degree")
+#define DESC_VIEWER_ROTATE180 _("Rotate image 180 degree")
+#define DESC_VIEWER_ROTATE270 _("Rotate image 270 degree")
+#define DESC_VIEWER_MIRROR_X _("Mirror image at vertical axis")
+#define DESC_VIEWER_MIRROR_Y _("Mirror image at horizontal axis")
+#define DESC_VIEWER_ZOOM _("Zoom image")
+#define DESC_STORE_MEDIUM _("Store medium")
+#define DESC_DELETE_MEDIUM _("Delete active medium")
+
+#define ERR_HOME_DIR _("Failed to determine home directory:")
+#define ERR_CHANGE_WORKING_DIR _("Failed to change working directory to")
+#define ERR_FILENAME_TOO_LONG _("Filename too long")
+#define ERR_CREATE_TEMP_FILE _("Could not create temporary file")
+#define ERR_SET_OPTION _("Failed to set value of option")
+#define ERR_GET_OPTION _("Failed to obtain value of option")
+#define ERR_OPTION_COUNT _("Error obtaining option count")
+#define ERR_DEVICE_OPEN_FAILED _("Failed to open device")
+#define ERR_NO_DEVICES _("no devices available")
+#define ERR_DURING_READ _("Error during read:")
+#define ERR_DURING_SAVE _("Error during save:")
+#define ERR_BAD_DEPTH _("Can't handle depth")
+#define ERR_GIMP_BAD_DEPTH _("GIMP can't handle depth %d bits/color")
+#define ERR_UNKNOWN_SAVING_FORMAT _("Unknown file format for saving")
+#define ERR_OPEN_FAILED _("Failed to open")
+#define ERR_CREATE_SECURE_FILE _("Could not create secure file (may be a link does exist):")
+#define ERR_FAILED_PRINTER_PIPE _("Failed to open pipe for executing printercommand")
+#define ERR_FAILED_EXEC_PRINTER_CMD _("Failed to execute printercommand:")
+#define ERR_FAILED_START_SCANNER _("Failed to start scanner:")
+#define ERR_FAILED_GET_PARAMS _("Failed to get parameters:")
+#define ERR_NO_OUTPUT_FORMAT _("No output format given")
+#define ERR_NO_MEM _("out of memory")
+#define ERR_TOO_MUCH_DATA _("Backend sends more image data than it defined in parameters")
+#define ERR_LIBTIFF _("LIBTIFF reports error")
+#define ERR_LIBPNG _("LIBPNG reports error")
+#define ERR_UNKNOWN_TYPE _("unknown type")
+#define ERR_UNKNOWN_CONSTRAINT_TYPE _("unknown constraint type")
+#define ERR_FAILED_EXEC_DOC_VIEWER _("Failed to execute documentation viewer:")
+#define ERR_FAILED_EXEC_FAX_VIEWER _("Failed to execute fax viewer:")
+#define ERR_FAILED_EXEC_FAX_CMD _("Failed to execute fax command:")
+#define ERR_FAILED_EXEC_MAIL_VIEWER _("Failed to execute mail image viewer:")
+#define ERR_FAILED_EXEC_OCR_CMD _("Failed to execute ocr command:")
+#define ERR_BAD_FRAME_FORMAT _("bad frame format")
+#define ERR_FAILED_SET_RESOLUTION _("unable to set resolution")
+#define ERR_PASSWORD_FILE_INSECURE _("Password file (%s) is insecure, use permission x00\n")
+
+#define ERR_ERROR _("error")
+#define ERR_MAJOR_VERSION_NR_CONFLICT _("Sane major version number mismatch!")
+#define ERR_XSANE_MAJOR_VERSION _("XSane major version =")
+#define ERR_BACKEND_MAJOR_VERSION _("backend major version =")
+#define ERR_PROGRAM_ABORTED _("*** PROGRAM ABORTED ***")
+
+#define ERR_FAILED_ALLOCATE_IMAGE _("Failed to allocate image memory:")
+#define ERR_PREVIEW_BAD_DEPTH _("Preview cannot handle bit depth")
+#define ERR_GIMP_SUPPORT_MISSING _("GIMP support missing")
+
+#define ERR_CREATE_PREVIEW_FILE _("Could not create temporary preview files")
+#define ERR_CREATE_PREVIEW_FILENAME _("Could not create filenames for preview files")
+
+#define ERR_CREATE_FAX_PROJECT _("Could not create faxproject")
+
+#define WARN_COUNTER_UNDERRUN _("Filename counter underrun")
+#define WARN_NO_VALUE_CONSTRAINT _("warning: option has no value constraint")
+#define WARN_XSANE_AS_ROOT _("You try to run XSane as ROOT, that really is DANGEROUS!\n\n\
+Do not send any bug reports when you\n\
+have any problem while running XSane as root:\n\
+YOU ARE ALONE!\
+")
+
+#define ERR_HEADER_ERROR _("Error")
+#define ERR_HEADER_WARNING _("Warning")
+#define ERR_HEADER_INFO _("Information")
+
+#define ERR_FAILED_CREATE_FILE _("Failed to create file:")
+#define ERR_LOAD_DEVICE_SETTINGS _("Error while loading device settings:")
+#define ERR_NO_DRC_FILE _("is not a device-rc-file !!!")
+#define ERR_NETSCAPE_EXECUTE_FAIL _("Failed to execute netscape!")
+#define ERR_SENDFAX_RECEIVER_MISSING _("Send fax: no receiver defined")
+
+#define ERR_CREATED_FOR_DEVICE _("has been created for device")
+#define ERR_USED_FOR_DEVICE _("you want to use it for device")
+#define ERR_MAY_CAUSE_PROBLEMS _("this may cause problems!")
+
+#define WARN_UNSAVED_IMAGES _("There are %d unsaved images")
+#define WARN_FILE_EXISTS _("File %s already exists")
+#define ERR_FILE_NOT_EXISTS _("File %s does not exist")
+#define ERR_FILE_NOT_POSTSCRIPT _("File %s is not a postscript file")
+#define ERR_UNSUPPORTED_OUTPUT_FORMAT _("Unsupported %d-bit output format: %s")
+
+#define WARN_VIEWER_IMAGE_NOT_SAVED _("viewer image is not saved")
+
+#define TEXT_USAGE _("Usage:")
+#define TEXT_USAGE_OPTIONS _("[OPTION]... [DEVICE]")
+#define TEXT_HELP _(\
+"Start up graphical user interface to access SANE (Scanner Access Now Easy) devices.\n\
+\n\
+The format of [DEVICE] is backendname:devicefile (e.g. umax:/dev/scanner).\n\
+[OPTION]... can be a combination of the following items:\n\
+ -h, --help display this help message and exit\n\
+ -v, --version print version information\n\
+ -l, --license print license information\n\
+\n\
+ -d, --device-settings file load device settings from file (without \".drc\")\n\
+\n\
+ -V, --viewer start with viewer-mode active (default)\n\
+ -s, --save start with save-mode active\n\
+ -c, --copy start with copy-mode active\n\
+ -f, --fax start with fax-mode active\n\
+ -m, --mail start with mail-mode active\n\
+ -n, --no-mode-selection disable menu for XSane mode selection\n\
+\n\
+ -M, --Medium-calibration enable medium calibration mode\n\
+\n\
+ -F, --Fixed fixed main window size (overwrite preferences value)\n\
+ -R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\
+\n\
+ -p, --print-filenames print image filenames created by XSane\n\
+ -N, --force-filename name force filename and disable user filename selection\n\
+\n\
+ --display X11-display redirect output to X11-display\n\
+ --no-xshm do not use shared memory images\n\
+ --sync request a synchronous connection with the X11 server\
+")
+
+/* strings for gimp plugin */
+
+#define XSANE_GIMP_INSTALL_BLURB _("Front-end to the SANE interface")
+#define XSANE_GIMP_INSTALL_HELP _("This function provides access to scanners and other image acquisition devices through the SANE (Scanner Access Now Easy) interface.")
+
+/* Menu path must not be translated, this is done by the gimp. Only translate the text behind the last "/" */
+#define XSANE_GIMP_MENU_DIALOG _("<Toolbox>/File/Acquire/XSane: Device dialog...")
+#define XSANE_GIMP_MENU _("<Toolbox>/File/Acquire/XSane: ")
+#define XSANE_GIMP_MENU_DIALOG_OLD _("<Toolbox>/Xtns/XSane/Device dialog...")
+#define XSANE_GIMP_MENU_OLD _("<Toolbox>/Xtns/XSane/")
+
+/* strings that are used in structures, so it is not allowed to use _()/gettext() here */
+/* gettext_noop does mark these texts but does not change the string */
+
+#define MENU_ITEM_SURFACE_FULL_SIZE N_("full size")
+#define MENU_ITEM_SURFACE_DIN_A3P N_("DIN A3 port.")
+#define MENU_ITEM_SURFACE_DIN_A3L N_("DIN A3 land.")
+#define MENU_ITEM_SURFACE_DIN_A4P N_("DIN A4 port.")
+#define MENU_ITEM_SURFACE_DIN_A4L N_("DIN A4 land.")
+#define MENU_ITEM_SURFACE_DIN_A5P N_("DIN A5 port.")
+#define MENU_ITEM_SURFACE_DIN_A5L N_("DIN A5 land.")
+#define MENU_ITEM_SURFACE_13cmx18cm N_("13cm x 18cm")
+#define MENU_ITEM_SURFACE_18cmx13cm N_("18cm x 13cm")
+#define MENU_ITEM_SURFACE_10cmx15cm N_("10cm x 15cm")
+#define MENU_ITEM_SURFACE_15cmx10cm N_("15cm x 10cm")
+#define MENU_ITEM_SURFACE_9cmx13cm N_("9cm x 13cm")
+#define MENU_ITEM_SURFACE_13cmx9cm N_("13cm x 9cm")
+#define MENU_ITEM_SURFACE_legal_P N_("legal port.")
+#define MENU_ITEM_SURFACE_legal_L N_("legal land.")
+#define MENU_ITEM_SURFACE_letter_P N_("letter port.")
+#define MENU_ITEM_SURFACE_letter_L N_("letter land.")
+
+#define MENU_ITEM_MEDIUM_FULL_RANGE N_("Full range")
+#define MENU_ITEM_MEDIUM_SLIDE N_("Slide")
+#define MENU_ITEM_MEDIUM_STANDARD_NEG N_("Standard negative")
+#define MENU_ITEM_MEDIUM_AGFA_NEG N_("Agfa negative")
+#define MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4 N_("Agfa negative XRG 200-4")
+#define MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100 N_("Agfa negative HDC 100")
+#define MENU_ITEM_MEDIUM_FUJI_NEG N_("Fuji negative")
+#define MENU_ITEM_MEDIUM_KODAK_NEG N_("Kodak negative")
+#define MENU_ITEM_MEDIUM_KONICA_NEG N_("Konica negative")
+#define MENU_ITEM_MEDIUM_KONICA_NEG_VX_100 N_("Konica negative VX 100")
+#define MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100 N_("Rossmann negative HR 100")
+
+#endif
diff --git a/src/xsane-viewer.c b/src/xsane-viewer.c
new file mode 100644
index 0000000..e9a8dd9
--- /dev/null
+++ b/src/xsane-viewer.c
@@ -0,0 +1,1448 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-viewer.c
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#include "xsane.h"
+/* #include <sys/param.h> */
+#include "xsane-back-gtk.h"
+#include "xsane-front-gtk.h"
+#include "xsane-preferences.h"
+#include "xsane-viewer.h"
+#include "xsane-gamma.h"
+#include "xsane-icons.h"
+#include "xsane-save.h"
+#include <gdk/gdkkeysyms.h>
+#include <sys/wait.h>
+
+
+#ifndef PATH_MAX
+# define PATH_MAX 1024
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_viewer_zoom[] = {35, 50, 71, 100, 141, 200, 282, 400 };
+#define XSANE_VIEWER_ZOOM_ITEMS 8
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint xsane_viewer_close_callback(GtkWidget *window, gpointer data);
+static void xsane_viewer_dialog_cancel(GtkWidget *window, gpointer data);
+static void xsane_viewer_save_callback(GtkWidget *window, gpointer data);
+static void xsane_viewer_ocr_callback(GtkWidget *window, gpointer data);
+static void xsane_viewer_clone_callback(GtkWidget *window, gpointer data);
+static void xsane_viewer_despeckle_callback(GtkWidget *window, gpointer data);
+static void xsane_viewer_blur_callback(GtkWidget *window, gpointer data);
+static void xsane_viewer_scale_image(GtkWidget *window, gpointer data);
+static void xsane_viewer_despeckle_image(GtkWidget *window, gpointer data);
+static void xsane_viewer_blur_image(GtkWidget *window, gpointer data);
+static void xsane_viewer_rotate(Viewer *v, int rotation);
+static void xsane_viewer_rotate90_callback(GtkWidget *window, gpointer data);
+static void xsane_viewer_rotate180_callback(GtkWidget *window, gpointer data);
+static void xsane_viewer_rotate270_callback(GtkWidget *window, gpointer data);
+static void xsane_viewer_mirror_x_callback(GtkWidget *window, gpointer data);
+static void xsane_viewer_mirror_y_callback(GtkWidget *window, gpointer data);
+static GtkWidget *xsane_viewer_files_build_menu(Viewer *v);
+static GtkWidget *xsane_viewer_filters_build_menu(Viewer *v);
+static int xsane_viewer_read_image(Viewer *v);
+Viewer *xsane_viewer_new(char *filename, int reduce_to_lineart, char *output_filename);
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint xsane_viewer_close_callback(GtkWidget *widget, gpointer data)
+{
+ Viewer *v, *list, **prev_list;
+
+ v = (Viewer*) gtk_object_get_data(GTK_OBJECT(widget), "Viewer");
+
+ DBG(DBG_proc, "xsane_viewer_close_callback\n");
+
+ if (!v->image_saved)
+ {
+ char buf[256];
+
+ snprintf(buf, sizeof(buf), WARN_VIEWER_IMAGE_NOT_SAVED);
+ if (xsane_back_gtk_decision(ERR_HEADER_WARNING, (gchar **) warning_xpm, buf, BUTTON_DO_NOT_CLOSE, BUTTON_DISCARD_IMAGE, TRUE /* wait */))
+ {
+ return TRUE;
+ }
+ }
+
+ remove(v->filename);
+
+ gtk_widget_destroy(v->top);
+
+
+ list = xsane.viewer_list;
+ prev_list = &xsane.viewer_list;
+
+ while (list)
+ {
+ if (list == v)
+ {
+ DBG(DBG_info, "removing viewer from viewer list\n");
+ *prev_list = list->next_viewer;
+ break;
+ }
+
+ prev_list = &list->next_viewer;
+ list = list->next_viewer;
+ }
+
+ free(v);
+
+ return TRUE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_dialog_cancel(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_save_callback(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+ char outputfilename[1024];
+ char *inputfilename;
+ char windowname[256];
+ int output_format;
+
+ DBG(DBG_proc, "xsane_viewer_save_callback\n");
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE);
+
+ if (v->output_filename)
+ {
+ strncpy(outputfilename, v->output_filename, sizeof(outputfilename));
+ }
+ else
+ {
+ int abort = 0;
+
+ strcpy(outputfilename, preferences.filename);
+
+ snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_VIEWER_OUTPUT_FILENAME, xsane.device_text);
+
+ umask((mode_t) preferences.directory_umask); /* define new file permissions */
+ abort = xsane_back_gtk_get_filename(windowname, outputfilename, sizeof(outputfilename), outputfilename, TRUE, TRUE, FALSE);
+ umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
+
+ if (abort)
+ {
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+ return;
+ }
+ }
+
+ if (preferences.overwrite_warning) /* test if filename already used */
+ {
+ FILE *testfile;
+
+ testfile = fopen(outputfilename, "rb"); /* read binary (b for win32) */
+ if (testfile) /* filename used: skip */
+ {
+ char buf[256];
+
+ fclose(testfile);
+ snprintf(buf, sizeof(buf), WARN_FILE_EXISTS, outputfilename);
+ if (xsane_back_gtk_decision(ERR_HEADER_WARNING, (gchar **) warning_xpm, buf, BUTTON_OVERWRITE, BUTTON_CANCEL, TRUE /* wait */) == FALSE)
+ {
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+ return;
+ }
+ }
+ }
+
+ inputfilename = strdup(v->filename);
+
+ output_format = xsane_identify_output_format(outputfilename, 0);
+
+ if (v->reduce_to_lineart) /* reduce grayscale image to lineart before saving */
+ {
+ char dummyfilename[1024];
+
+ if (output_format != XSANE_PNM)
+ {
+ xsane_back_gtk_make_path(sizeof(dummyfilename), dummyfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".ppm", XSANE_PATH_TMP);
+ }
+ else /* pbm: no further conversion, we save to destination filename */
+ {
+ snprintf(dummyfilename, sizeof(dummyfilename), "%s", outputfilename);
+ if (xsane_create_secure_file(dummyfilename)) /* remove possibly existing symbolic links for security */
+ {
+ char buf[256];
+
+ snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, dummyfilename);
+ xsane_back_gtk_error(buf, TRUE);
+ return; /* error */
+ }
+ }
+
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), PROGRESS_PACKING_DATA);
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ /* the outputfile always is a temporary file, so we do not have to care about symlinks here */
+ xsane_save_image_as_lineart(v->filename, dummyfilename, v->progress_bar, &v->cancel_save);
+
+ free(inputfilename);
+ inputfilename = strdup(dummyfilename);
+ }
+
+
+ if ((!v->reduce_to_lineart) || (output_format != XSANE_PNM)) /* pbm already is saved above, otherwise save now */
+ {
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), PROGRESS_SAVING_DATA);
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ xsane_save_image_as(inputfilename, outputfilename, output_format, v->progress_bar, &v->cancel_save);
+
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), "");
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+ }
+
+ free(inputfilename);
+
+ v->image_saved = TRUE;
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_ocr_callback(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+ char outputfilename[1024];
+ char *extensionptr;
+ char windowname[256];
+ char *arg[1000];
+ int argnr;
+ pid_t pid;
+ int abort = 0;
+ int i;
+
+ DBG(DBG_proc, "xsane_viewer_ocr_callback\n");
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE);
+
+ strncpy(outputfilename, preferences.filename, sizeof(outputfilename)-5);
+
+ extensionptr = strchr(outputfilename, '.');
+ if (!extensionptr)
+ {
+ extensionptr=outputfilename + strlen(outputfilename);
+ }
+ strcpy(extensionptr, ".txt");
+
+ snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_OCR_OUTPUT_FILENAME, xsane.device_text);
+
+ umask((mode_t) preferences.directory_umask); /* define new file permissions */
+ abort = xsane_back_gtk_get_filename(windowname, outputfilename, sizeof(outputfilename), outputfilename, TRUE, TRUE, FALSE);
+ umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
+
+ if (abort)
+ {
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+ return;
+ }
+
+ argnr = xsane_parse_options(preferences.ocr_command, arg);
+
+ arg[argnr++] = strdup(preferences.ocr_inputfile_option);
+ arg[argnr++] = strdup(v->filename);
+
+ arg[argnr++] = strdup(preferences.ocr_outputfile_option);
+ arg[argnr++] = strdup(outputfilename);
+
+ arg[argnr] = 0;
+
+ pid = fork();
+
+ if (pid == 0) /* new process */
+ {
+ DBG(DBG_info, "trying to change user id fo new subprocess:\n");
+ DBG(DBG_info, "old effective uid = %d\n", geteuid());
+ setuid(getuid());
+ DBG(DBG_info, "new effective uid = %d\n", geteuid());
+
+ execvp(arg[0], arg); /* does not return if successfully */
+ DBG(DBG_error, "%s %s\n", ERR_FAILED_EXEC_OCR_CMD, preferences.ocr_command);
+ _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
+ }
+
+ for (i=0; i<argnr; i++)
+ {
+ free(arg[i]);
+ }
+
+ while (pid)
+ {
+ int status = 0;
+ pid_t pid_status = waitpid(pid, &status, WNOHANG);
+
+ if (pid == pid_status)
+ {
+ pid = 0; /* ok, child process has terminated */
+ }
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+ }
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_clone_callback(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+ FILE *outfile;
+ FILE *infile;
+ char outfilename[256];
+ Image_info image_info;
+
+ DBG(DBG_proc, "xsane_viewer_clone_callback\n");
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE);
+
+ infile = fopen(v->filename, "rb");
+ if (!infile)
+ {
+ DBG(DBG_error, "could not load file %s\n", v->filename);
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+
+ return;
+ }
+
+ xsane_read_pnm_header(infile, &image_info);
+
+ DBG(DBG_info, "cloning image %s with geometry: %d x %d x %d, %d colors\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors);
+
+ xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".ppm", XSANE_PATH_TMP);
+
+ outfile = fopen(outfilename, "wb");
+ if (!outfile)
+ {
+ DBG(DBG_error, "could not save file %s\n", outfilename);
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+
+ return;
+ }
+
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), PROGRESS_CLONING_DATA);
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ xsane_save_rotate_image(outfile, infile, &image_info, 0, v->progress_bar, &v->cancel_save);
+
+ fclose(infile);
+ fclose(outfile);
+
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), "");
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+
+ xsane_viewer_new(outfilename, v->reduce_to_lineart, NULL);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_spinbutton_float_changed(GtkWidget *spinbutton, gpointer data)
+{
+ float *val = (float *) data;
+
+ *val = gtk_spin_button_get_value_as_float((GtkSpinButton *) spinbutton);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_spinbutton_int_changed(GtkWidget *spinbutton, gpointer data)
+{
+ int *val = (int *) data;
+
+ *val = gtk_spin_button_get_value_as_int((GtkSpinButton *) spinbutton);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_scale_callback(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+ GtkWidget *selection_dialog;
+ GtkWidget *hbox, *vbox;
+ GtkWidget *label, *spinbutton, *button;
+ GtkAdjustment *adjustment;
+ char buf[256];
+
+ DBG(DBG_proc, "xsane_viewer_scale_callback\n");
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE);
+
+ if (v->output_filename)
+ {
+ snprintf(buf, sizeof(buf), "%s: %s", WINDOW_SCALE, v->output_filename);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), WINDOW_SCALE);
+ }
+
+ selection_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_position(GTK_WINDOW(selection_dialog), GTK_WIN_POS_MOUSE);
+ gtk_window_set_title(GTK_WINDOW(selection_dialog), buf);
+ xsane_set_window_icon(selection_dialog, 0);
+
+ v->active_dialog = selection_dialog;
+
+ vbox = gtk_vbox_new(FALSE, 5);
+ gtk_container_add(GTK_CONTAINER(selection_dialog), vbox);
+ gtk_widget_show(vbox);
+
+#if 0
+ /* bind scale */
+
+ button = gtk_check_button_new_with_label(BUTTON_SCALE_BIND);
+ gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 5);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
+ gtk_widget_show(button);
+#endif
+
+ /* x_scale factor: <-> */
+
+ v->x_scale_factor = 1.0;
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_X_SCALE_FACTOR);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10);
+ gtk_widget_show(label);
+
+ adjustment = (GtkAdjustment *) gtk_adjustment_new(1.0, 0.01, 2.0, 0.01, 0.1, 0.0);
+ spinbutton = gtk_spin_button_new(adjustment, 0, 2);
+ gtk_signal_connect(GTK_OBJECT(spinbutton), "changed", (GtkSignalFunc) xsane_viewer_spinbutton_float_changed, (void *) &v->x_scale_factor);
+ gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinbutton), TRUE);
+ gtk_spin_button_set_shadow_type(GTK_SPIN_BUTTON(spinbutton), GTK_SHADOW_OUT);
+ gtk_box_pack_end(GTK_BOX(hbox), spinbutton, FALSE, FALSE, 10);
+ gtk_widget_show(spinbutton);
+
+ /* y_scale factor: <-> */
+
+ v->y_scale_factor = 1.0;
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_Y_SCALE_FACTOR);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10);
+ gtk_widget_show(label);
+
+ adjustment = (GtkAdjustment *) gtk_adjustment_new(1.0, 0.01, 2.0, 0.01, 0.1, 0.0);
+ spinbutton = gtk_spin_button_new(adjustment, 0, 2);
+ gtk_signal_connect(GTK_OBJECT(spinbutton), "changed", (GtkSignalFunc) xsane_viewer_spinbutton_float_changed, (void *) &v->y_scale_factor);
+ gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinbutton), TRUE);
+ gtk_spin_button_set_shadow_type(GTK_SPIN_BUTTON(spinbutton), GTK_SHADOW_OUT);
+ gtk_box_pack_end(GTK_BOX(hbox), spinbutton, FALSE, FALSE, 10);
+ gtk_widget_show(spinbutton);
+
+ /* Apply Cancel */
+
+ hbox = gtk_hbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 4);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ button = gtk_button_new_with_label(BUTTON_APPLY);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_viewer_scale_image, (void *) v);
+ gtk_signal_connect_object(GTK_OBJECT(button), "clicked", (GtkSignalFunc) gtk_widget_destroy, (GtkObject *) selection_dialog);
+ gtk_container_add(GTK_CONTAINER(hbox), button);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_CANCEL);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_viewer_dialog_cancel, (void *) v);
+ gtk_signal_connect_object(GTK_OBJECT(button), "clicked", (GtkSignalFunc) gtk_widget_destroy, (GtkObject *) selection_dialog);
+ gtk_container_add(GTK_CONTAINER(hbox), button);
+ gtk_widget_show(button);
+
+ gtk_widget_show(selection_dialog);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_despeckle_callback(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+ GtkWidget *selection_dialog;
+ GtkWidget *hbox, *vbox;
+ GtkWidget *label, *spinbutton, *button;
+ GtkAdjustment *adjustment;
+ char buf[256];
+
+ DBG(DBG_proc, "xsane_viewer_despeckle_callback\n");
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE);
+
+ if (v->output_filename)
+ {
+ snprintf(buf, sizeof(buf), "%s: %s", WINDOW_DESPECKLE, v->output_filename);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), WINDOW_DESPECKLE);
+ }
+
+ selection_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_position(GTK_WINDOW(selection_dialog), GTK_WIN_POS_MOUSE);
+ gtk_window_set_title(GTK_WINDOW(selection_dialog), buf);
+ xsane_set_window_icon(selection_dialog, 0);
+
+ v->active_dialog = selection_dialog;
+
+ vbox = gtk_vbox_new(FALSE, 5);
+ gtk_container_add(GTK_CONTAINER(selection_dialog), vbox);
+ gtk_widget_show(vbox);
+
+ /* Despeckle radius: <-> */
+
+ v->filter_radius = 2;
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_DESPECKLE_RADIUS);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10);
+ gtk_widget_show(label);
+
+ adjustment = (GtkAdjustment *) gtk_adjustment_new(2.0, 2.0, 10.0, 1.0, 5.0, 0.0);
+ spinbutton = gtk_spin_button_new(adjustment, 0, 0);
+ gtk_signal_connect(GTK_OBJECT(spinbutton), "changed", (GtkSignalFunc) xsane_viewer_spinbutton_int_changed, (void *) &v->filter_radius);
+ gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinbutton), TRUE);
+ gtk_spin_button_set_shadow_type(GTK_SPIN_BUTTON(spinbutton), GTK_SHADOW_OUT);
+ gtk_box_pack_end(GTK_BOX(hbox), spinbutton, FALSE, FALSE, 10);
+ gtk_widget_show(spinbutton);
+
+ /* Apply Cancel */
+
+ hbox = gtk_hbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 4);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ button = gtk_button_new_with_label(BUTTON_APPLY);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_viewer_despeckle_image, (void *) v);
+ gtk_signal_connect_object(GTK_OBJECT(button), "clicked", (GtkSignalFunc) gtk_widget_destroy, (GtkObject *) selection_dialog);
+ gtk_container_add(GTK_CONTAINER(hbox), button);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_CANCEL);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_viewer_dialog_cancel, (void *) v);
+ gtk_signal_connect_object(GTK_OBJECT(button), "clicked", (GtkSignalFunc) gtk_widget_destroy, (GtkObject *) selection_dialog);
+ gtk_container_add(GTK_CONTAINER(hbox), button);
+ gtk_widget_show(button);
+
+ gtk_widget_show(selection_dialog);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_blur_callback(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+ GtkWidget *selection_dialog;
+ GtkWidget *hbox, *vbox;
+ GtkWidget *label, *spinbutton, *button;
+ GtkAdjustment *adjustment;
+ char buf[256];
+
+ DBG(DBG_proc, "xsane_viewer_blur_callback\n");
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE);
+
+ if (v->output_filename)
+ {
+ snprintf(buf, sizeof(buf), "%s: %s", WINDOW_BLUR, v->output_filename);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), WINDOW_BLUR);
+ }
+
+ selection_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_position(GTK_WINDOW(selection_dialog), GTK_WIN_POS_MOUSE);
+ gtk_window_set_title(GTK_WINDOW(selection_dialog), buf);
+ xsane_set_window_icon(selection_dialog, 0);
+
+ v->active_dialog = selection_dialog;
+
+ vbox = gtk_vbox_new(FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 4);
+ gtk_container_add(GTK_CONTAINER(selection_dialog), vbox);
+ gtk_widget_show(vbox);
+
+ /* Blur radius: <-> */
+
+ v->filter_radius = 2;
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_BLUR_RADIUS);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 10);
+ gtk_widget_show(label);
+
+ adjustment = (GtkAdjustment *) gtk_adjustment_new(2.0, 2.0, 20.0, 1.0, 5.0, 0.0);
+ spinbutton = gtk_spin_button_new(adjustment, 0, 0);
+ gtk_signal_connect(GTK_OBJECT(spinbutton), "changed", (GtkSignalFunc) xsane_viewer_spinbutton_int_changed, (void *) &v->filter_radius);
+ gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(spinbutton), TRUE);
+ gtk_spin_button_set_shadow_type(GTK_SPIN_BUTTON(spinbutton), GTK_SHADOW_OUT);
+ gtk_box_pack_end(GTK_BOX(hbox), spinbutton, FALSE, FALSE, 10);
+ gtk_widget_show(spinbutton);
+
+ /* Apply Cancel */
+
+ hbox = gtk_hbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 4);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ button = gtk_button_new_with_label(BUTTON_APPLY);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_viewer_blur_image, (void *) v);
+ gtk_container_add(GTK_CONTAINER(hbox), button);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_CANCEL);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_viewer_dialog_cancel, (void *) v);
+ gtk_signal_connect_object(GTK_OBJECT(button), "clicked", (GtkSignalFunc) gtk_widget_destroy, (GtkObject *) selection_dialog);
+ gtk_container_add(GTK_CONTAINER(hbox), button);
+ gtk_widget_show(button);
+
+ gtk_widget_show(selection_dialog);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_scale_image(GtkWidget *window, gpointer data)
+{
+ FILE *outfile;
+ FILE *infile;
+ char outfilename[256];
+ Viewer *v = (Viewer *) data;
+ Image_info image_info;
+
+ DBG(DBG_proc, "xsane_viewer_scale_image\n");
+
+ gtk_widget_destroy(v->active_dialog);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE);
+
+ infile = fopen(v->filename, "rb");
+ if (!infile)
+ {
+ DBG(DBG_error, "could not load file %s\n", v->filename);
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+
+ return;
+ }
+
+ xsane_read_pnm_header(infile, &image_info);
+
+ DBG(DBG_info, "scaling image %s with geometry: %d x %d x %d, %d colors\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors);
+
+ xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".ppm", XSANE_PATH_TMP);
+
+ outfile = fopen(outfilename, "wb");
+ if (!outfile)
+ {
+ DBG(DBG_error, "could not save file %s\n", outfilename);
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+
+ return;
+ }
+
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), PROGRESS_SCALING_DATA);
+
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ xsane_save_scaled_image(outfile, infile, &image_info, v->x_scale_factor, v->y_scale_factor, v->progress_bar, &v->cancel_save);
+
+ fclose(infile);
+ fclose(outfile);
+
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), "");
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ DBG(DBG_info, "removing file %s\n", v->filename);
+ remove(v->filename);
+ free(v->filename);
+
+ v->filename = strdup(outfilename);
+ v->image_saved = FALSE;
+
+ xsane_viewer_read_image(v);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_despeckle_image(GtkWidget *window, gpointer data)
+{
+ FILE *outfile;
+ FILE *infile;
+ char outfilename[256];
+ Viewer *v = (Viewer *) data;
+ Image_info image_info;
+
+ DBG(DBG_proc, "xsane_viewer_despeckle_image\n");
+
+ gtk_widget_destroy(v->active_dialog);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE);
+
+ infile = fopen(v->filename, "rb");
+ if (!infile)
+ {
+ DBG(DBG_error, "could not load file %s\n", v->filename);
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+
+ return;
+ }
+
+ xsane_read_pnm_header(infile, &image_info);
+
+ DBG(DBG_info, "despeckling image %s with geometry: %d x %d x %d, %d colors\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors);
+
+ xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".ppm", XSANE_PATH_TMP);
+
+ outfile = fopen(outfilename, "wb");
+ if (!outfile)
+ {
+ DBG(DBG_error, "could not save file %s\n", outfilename);
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+
+ return;
+ }
+
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), PROGRESS_DESPECKLING_DATA);
+
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ xsane_save_despeckle_image(outfile, infile, &image_info, v->filter_radius, v->progress_bar, &v->cancel_save);
+
+ fclose(infile);
+ fclose(outfile);
+
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), "");
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ DBG(DBG_info, "removing file %s\n", v->filename);
+ remove(v->filename);
+ free(v->filename);
+
+ v->filename = strdup(outfilename);
+ v->image_saved = FALSE;
+
+ xsane_viewer_read_image(v);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_blur_image(GtkWidget *window, gpointer data)
+{
+ FILE *outfile;
+ FILE *infile;
+ char outfilename[256];
+ Viewer *v = (Viewer *) data;
+ Image_info image_info;
+
+ DBG(DBG_proc, "xsane_viewer_blur_image\n");
+
+ gtk_widget_destroy(v->active_dialog);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE);
+
+ infile = fopen(v->filename, "rb");
+ if (!infile)
+ {
+ DBG(DBG_error, "could not load file %s\n", v->filename);
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+
+ return;
+ }
+
+ xsane_read_pnm_header(infile, &image_info);
+
+ DBG(DBG_info, "bluring image %s with geometry: %d x %d x %d, %d colors\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors);
+
+ xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".ppm", XSANE_PATH_TMP);
+
+ outfile = fopen(outfilename, "wb");
+ if (!outfile)
+ {
+ DBG(DBG_error, "could not save file %s\n", outfilename);
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+
+ return;
+ }
+
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), PROGRESS_BLURING_DATA);
+
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ xsane_save_blur_image(outfile, infile, &image_info, v->filter_radius, v->progress_bar, &v->cancel_save);
+
+ fclose(infile);
+ fclose(outfile);
+
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), "");
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ DBG(DBG_info, "removing file %s\n", v->filename);
+ remove(v->filename);
+ free(v->filename);
+
+ v->filename = strdup(outfilename);
+ v->image_saved = FALSE;
+
+ xsane_viewer_read_image(v);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_rotate(Viewer *v, int rotation)
+{
+ FILE *outfile;
+ FILE *infile;
+ char outfilename[256];
+ Image_info image_info;
+
+ DBG(DBG_proc, "xsane_viewer_rotate(%d)\n", rotation);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), FALSE);
+
+ infile = fopen(v->filename, "rb");
+ if (!infile)
+ {
+ DBG(DBG_error, "could not load file %s\n", v->filename);
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+
+ return;
+ }
+
+ xsane_read_pnm_header(infile, &image_info);
+
+ DBG(DBG_info, "rotating image %s with geometry: %d x %d x %d, %d colors\n", v->filename, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors);
+
+ xsane_back_gtk_make_path(sizeof(outfilename), outfilename, 0, 0, "xsane-viewer-", xsane.dev_name, ".ppm", XSANE_PATH_TMP);
+
+ outfile = fopen(outfilename, "wb");
+ if (!outfile)
+ {
+ DBG(DBG_error, "could not save file %s\n", outfilename);
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+
+ return;
+ }
+
+ if (rotation <4)
+ {
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), PROGRESS_ROTATING_DATA);
+ }
+ else
+ {
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), PROGRESS_MIRRORING_DATA);
+ }
+
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ xsane_save_rotate_image(outfile, infile, &image_info, rotation, v->progress_bar, &v->cancel_save);
+
+ fclose(infile);
+ fclose(outfile);
+
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), "");
+ gtk_progress_bar_update(GTK_PROGRESS_BAR(v->progress_bar), 0.0);
+
+ DBG(DBG_info, "removing file %s\n", v->filename);
+ remove(v->filename);
+ free(v->filename);
+
+ v->filename = strdup(outfilename);
+ v->image_saved = FALSE;
+
+ xsane_viewer_read_image(v);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_rotate90_callback(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+
+ DBG(DBG_proc, "xsane_viewer_rotate90_callback\n");
+ xsane_viewer_rotate(v, 1);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_rotate180_callback(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+
+ DBG(DBG_proc, "xsane_viewer_rotate180_callback\n");
+ xsane_viewer_rotate(v, 2);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_rotate270_callback(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+
+ DBG(DBG_proc, "xsane_viewer_rotate270_callback\n");
+ xsane_viewer_rotate(v, 3);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_mirror_x_callback(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+
+ DBG(DBG_proc, "xsane_viewer_mirror_x_callback\n");
+ xsane_viewer_rotate(v, 4);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_mirror_y_callback(GtkWidget *window, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+
+ DBG(DBG_proc, "xsane_viewer_mirror_y_callback\n");
+ xsane_viewer_rotate(v, 6);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_viewer_zoom_callback(GtkWidget *widget, gpointer data)
+{
+ Viewer *v = (Viewer *) data;
+ int val;
+
+ DBG(DBG_proc, "xsane_viewer_zoom_callback\n");
+
+ val = (int) gtk_object_get_data(GTK_OBJECT(widget), "Selection");
+ v->zoom = (float) val / 100;
+ DBG(DBG_info, "setting zoom factor to %f\n", v->zoom);
+ xsane_viewer_read_image(v);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static GtkWidget *xsane_viewer_files_build_menu(Viewer *v)
+{
+ GtkWidget *menu, *item;
+
+ DBG(DBG_proc, "xsane_viewer_files_build_menu\n");
+
+ menu = gtk_menu_new();
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(menu));
+
+ /* XSane save dialog */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_SAVE_IMAGE);
+#if 0
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_I, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+#endif
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_viewer_save_callback, v);
+ gtk_widget_show(item);
+
+
+ /* Clone */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_CLONE);
+#if 0
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_I, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+#endif
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_viewer_clone_callback, v);
+ gtk_widget_show(item);
+
+
+ /* Scale */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_SCALE);
+#if 0
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_I, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+#endif
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_viewer_scale_callback, v);
+ gtk_widget_show(item);
+
+
+ /* Close */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_CLOSE);
+#if 0
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_Q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+#endif
+ gtk_container_add(GTK_CONTAINER(menu), item);
+ gtk_object_set_data(GTK_OBJECT(item), "Viewer", (void *) v);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_viewer_close_callback, v);
+ gtk_widget_show(item);
+
+ return menu;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static GtkWidget *xsane_viewer_filters_build_menu(Viewer *v)
+{
+ GtkWidget *menu, *item;
+
+ DBG(DBG_proc, "xsane_viewer_filters_build_menu\n");
+
+ menu = gtk_menu_new();
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(menu));
+
+ /* Despeckle */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_DESPECKLE);
+#if 0
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_I, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+#endif
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_viewer_despeckle_callback, v);
+ gtk_widget_show(item);
+
+
+ /* Blur */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_BLUR);
+#if 0
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_Q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+#endif
+ gtk_container_add(GTK_CONTAINER(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_viewer_blur_callback, v);
+ gtk_widget_show(item);
+
+ return menu;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_viewer_read_image(Viewer *v)
+{
+ unsigned char *row, *src_row;
+ int x, y;
+ int last_y;
+ int nread;
+ int pos0;
+ FILE *infile;
+ Image_info image_info;
+ char buf[256];
+ float size;
+ char *size_unit;
+ int width, height;
+
+ infile = fopen(v->filename, "rb");
+ if (!infile)
+ {
+ DBG(DBG_error, "could not load file %s\n", v->filename);
+ return -1;
+ }
+
+ xsane_read_pnm_header(infile, &image_info);
+
+ pos0 = ftell(infile);
+
+ if (!image_info.colors) /* == 0 (grayscale) ? */
+ {
+ image_info.colors = 1; /* we have one color component */
+ }
+
+ DBG(DBG_info, "reading image %s with geometry: %d x %d x %d, %d colors\n", v->filename,
+ image_info.image_width, image_info.image_height, image_info.depth, image_info.colors);
+ /* open infile */
+
+ if (v->window) /* we already have an existing viewer preview window? */
+ {
+ gtk_widget_destroy(v->window);
+ }
+
+ /* the preview area */
+ if (image_info.colors == 3) /* RGB */
+ {
+ v->window = gtk_preview_new(GTK_PREVIEW_COLOR);
+ }
+ else /* grayscale */
+ {
+ v->window = gtk_preview_new(GTK_PREVIEW_GRAYSCALE);
+ }
+
+ gtk_preview_size(GTK_PREVIEW(v->window), image_info.image_width * v->zoom, image_info.image_height * v->zoom);
+ gtk_container_add(GTK_CONTAINER(v->viewport), v->window);
+ gtk_widget_show(v->window);
+
+
+
+ /* get memory for one row of the image */
+ src_row = malloc(image_info.image_width * image_info.colors * image_info.depth / 8);
+ row = malloc(((int) image_info.image_width * v->zoom) * image_info.colors);
+
+ if (!row || !src_row)
+ {
+ if (src_row)
+ {
+ free(src_row);
+ }
+
+ if (row)
+ {
+ free(row);
+ }
+
+ fclose(infile);
+ DBG(DBG_error, "could not allocate memory\n");
+ return -1;
+ }
+
+
+ last_y = -99999;
+
+ /* read the image from file */
+ for (y = 0; y < (int) (image_info.image_height * v->zoom); y++)
+ {
+ if ((int) (last_y / v->zoom) != (int) (y / v->zoom))
+ {
+ last_y = y;
+
+ if (image_info.depth == 8) /* 8 bits/pixel */
+ {
+ fseek(infile, pos0 + (((int) (y / v->zoom)) * image_info.image_width) * image_info.colors, SEEK_SET);
+ nread = fread(src_row, image_info.colors, image_info.image_width, infile);
+
+ if (image_info.colors > 1)
+ {
+ for (x=0; x < (int) (image_info.image_width * v->zoom); x++)
+ {
+ int xoff = ((int) (x / v->zoom)) * image_info.colors;
+
+ row[3*x+0] = src_row[xoff + 0];
+ row[3*x+1] = src_row[xoff + 1];
+ row[3*x+2] = src_row[xoff + 2];
+ }
+ }
+ else
+ {
+ for (x=0; x < (int) (image_info.image_width * v->zoom); x++)
+ {
+ row[x] = src_row[((int) (x / v->zoom))];
+ }
+ }
+ }
+ else /* 16 bits/pixel => reduce to 8 bits/pixel */
+ {
+ guint16 *src_row16 = (guint16 *) src_row;
+
+ fseek(infile, pos0 + (((int) (y / v->zoom)) * image_info.image_width) * image_info.colors * 2, SEEK_SET);
+ nread = fread(src_row, 2 * image_info.colors, image_info.image_width, infile);
+
+ if (image_info.colors > 1)
+ {
+ for (x=0; x < (int) (image_info.image_width * v->zoom); x++)
+ {
+ int xoff = ((int) (x / v->zoom)) * image_info.colors;
+
+ row[3*x+0] = (unsigned char) (src_row16[xoff + 0] / 256);
+ row[3*x+1] = (unsigned char) (src_row16[xoff + 1] / 256);
+ row[3*x+2] = (unsigned char) (src_row16[xoff + 2] / 256);
+ }
+ }
+ else
+ {
+ for (x=0; x < (int) (image_info.image_width * v->zoom); x++)
+ {
+ row[x] = (unsigned char) (src_row16[(int) (x / v->zoom)] / 256);
+ }
+ }
+ }
+ }
+
+ gtk_preview_draw_row(GTK_PREVIEW(v->window), row, 0, y, image_info.image_width * v->zoom);
+ }
+
+ gtk_preview_put(GTK_PREVIEW(v->window), v->window->window, v->window->style->black_gc, 0, 0, 0, 0,
+ image_info.image_width * v->zoom, image_info.image_height * v->zoom);
+
+ size = (float) image_info.image_width * image_info.image_height * image_info.colors;
+ if (image_info.depth == 16)
+ {
+ size *= 2.0;
+ }
+
+ size_unit = "B";
+
+ if (size >= 1024 * 1024)
+ {
+ size /= (1024.0 * 1024.0);
+ size_unit = "MB";
+ }
+ else if (size >= 1024)
+ {
+ size /= 1024.0;
+ size_unit = "KB";
+ }
+
+ if (v->reduce_to_lineart)
+ {
+ snprintf(buf, sizeof(buf), TEXT_VIEWER_IMAGE_INFO, image_info.image_width, image_info.image_height, 1, image_info.colors,
+ image_info.resolution_x, image_info.resolution_y, size, size_unit);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), TEXT_VIEWER_IMAGE_INFO, image_info.image_width, image_info.image_height, image_info.depth, image_info.colors,
+ image_info.resolution_x, image_info.resolution_y, size, size_unit);
+ }
+ gtk_label_set(GTK_LABEL(v->image_info_label), buf);
+
+ width = image_info.image_width + 26;
+ height = image_info.image_height + 136;
+
+ if (width > gdk_screen_width())
+ {
+ width = gdk_screen_width();
+ }
+
+ if (height > gdk_screen_height())
+ {
+ height = gdk_screen_height();
+ }
+
+ gtk_window_set_default_size(GTK_WINDOW(v->top), width, height);
+
+ free(row);
+ free(src_row);
+ fclose(infile);
+
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+Viewer *xsane_viewer_new(char *filename, int reduce_to_lineart, char *output_filename)
+{
+ char buf[256];
+ Viewer *v;
+ GtkWidget *vbox, *hbox;
+ GtkWidget *menubar, *menubar_item;
+ GtkWidget *scrolled_window;
+ GtkWidget *zoom_option_menu, *zoom_menu, *zoom_menu_item;
+ int i, selection;
+
+ DBG(DBG_proc, "viewer_new(%s)\n", filename);
+
+ /* create viewer structure v */
+ v = malloc(sizeof(*v));
+ if (!v)
+ {
+ DBG(DBG_error, "could not allocate memory\n");
+ return 0;
+ }
+ memset(v, 0, sizeof(*v));
+
+ v->filename = strdup(filename);
+ v->reduce_to_lineart = reduce_to_lineart;
+ v->zoom = 1.0;
+ v->image_saved = FALSE;
+ v->next_viewer = xsane.viewer_list;
+ xsane.viewer_list = v;
+
+ if (output_filename)
+ {
+ v->output_filename = strdup(output_filename);
+ snprintf(buf, sizeof(buf), "%s %s - %s", WINDOW_VIEWER, v->output_filename, xsane.device_text);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), "%s %s", WINDOW_VIEWER, xsane.device_text);
+ }
+
+ v->top = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title(GTK_WINDOW(v->top), buf);
+ xsane_set_window_icon(v->top, 0);
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(v->top));
+ gtk_object_set_data(GTK_OBJECT(v->top), "Viewer", (void *) v);
+ gtk_signal_connect(GTK_OBJECT(v->top), "delete_event", GTK_SIGNAL_FUNC(xsane_viewer_close_callback), NULL);
+
+ /* set the main vbox */
+ vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 0);
+ gtk_container_add(GTK_CONTAINER(v->top), vbox);
+ gtk_widget_show(vbox);
+
+
+ /* create the menubar */
+ menubar = gtk_menu_bar_new();
+ gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0);
+
+ /* "Files" submenu: */
+ menubar_item = gtk_menu_item_new_with_label(MENU_FILE);
+ gtk_container_add(GTK_CONTAINER(menubar), menubar_item);
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_item), xsane_viewer_files_build_menu(v));
+/* gtk_widget_add_accelerator(menubar_item, "select", xsane.accelerator_group, GDK_F, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED); */
+ gtk_widget_show(menubar_item);
+
+ /* "Filters" submenu: */
+ menubar_item = gtk_menu_item_new_with_label(MENU_FILTERS);
+ gtk_container_add(GTK_CONTAINER(menubar), menubar_item);
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_item), xsane_viewer_filters_build_menu(v));
+/* gtk_widget_add_accelerator(menubar_item, "select", xsane.accelerator_group, GDK_F, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED); */
+ gtk_widget_show(menubar_item);
+
+ gtk_widget_show(menubar);
+
+
+ /* set the main hbox */
+ hbox = gtk_hbox_new(FALSE, 0);
+ gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+
+ /* top hbox for icons */
+ v->button_box = gtk_hbox_new(FALSE, 1);
+ gtk_container_set_border_width(GTK_CONTAINER(v->button_box), 1);
+ gtk_box_pack_start(GTK_BOX(vbox), v->button_box, FALSE, FALSE, 0);
+ gtk_widget_show(v->button_box);
+
+ v->save = xsane_button_new_with_pixmap(v->top->window, v->button_box, file_xpm, DESC_VIEWER_SAVE, (GtkSignalFunc) xsane_viewer_save_callback, v);
+ v->ocr = xsane_button_new_with_pixmap(v->top->window, v->button_box, ocr_xpm, DESC_VIEWER_OCR, (GtkSignalFunc) xsane_viewer_ocr_callback, v);
+ v->clone = xsane_button_new_with_pixmap(v->top->window, v->button_box, clone_xpm, DESC_VIEWER_CLONE, (GtkSignalFunc) xsane_viewer_clone_callback, v);
+ v->scale = xsane_button_new_with_pixmap(v->top->window, v->button_box, scale_xpm, DESC_VIEWER_SCALE, (GtkSignalFunc) xsane_viewer_scale_callback, v);
+ v->despeckle = xsane_button_new_with_pixmap(v->top->window, v->button_box, despeckle_xpm, DESC_VIEWER_DESPECKLE, (GtkSignalFunc) xsane_viewer_despeckle_callback, v);
+ v->blur = xsane_button_new_with_pixmap(v->top->window, v->button_box, blur_xpm, DESC_VIEWER_BLUR, (GtkSignalFunc) xsane_viewer_blur_callback, v);
+ v->rotate90 = xsane_button_new_with_pixmap(v->top->window, v->button_box, rotate90_xpm, DESC_VIEWER_ROTATE90, (GtkSignalFunc) xsane_viewer_rotate90_callback, v);
+ v->rotate180 = xsane_button_new_with_pixmap(v->top->window, v->button_box, rotate180_xpm, DESC_VIEWER_ROTATE180, (GtkSignalFunc) xsane_viewer_rotate180_callback, v);
+ v->rotate270 = xsane_button_new_with_pixmap(v->top->window, v->button_box, rotate270_xpm, DESC_VIEWER_ROTATE270, (GtkSignalFunc) xsane_viewer_rotate270_callback, v);
+ v->mirror_x = xsane_button_new_with_pixmap(v->top->window, v->button_box, mirror_x_xpm, DESC_VIEWER_MIRROR_X, (GtkSignalFunc) xsane_viewer_mirror_x_callback, v);
+ v->mirror_y = xsane_button_new_with_pixmap(v->top->window, v->button_box, mirror_y_xpm, DESC_VIEWER_MIRROR_Y, (GtkSignalFunc) xsane_viewer_mirror_y_callback, v);
+
+
+ /* "Zoom" submenu: */
+ zoom_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, zoom_option_menu, DESC_VIEWER_ZOOM);
+ gtk_box_pack_start(GTK_BOX(v->button_box), zoom_option_menu, FALSE, FALSE, 0);
+ gtk_widget_show(zoom_option_menu);
+
+ zoom_menu = gtk_menu_new();
+ selection = 0;
+ for (i = 0; i < XSANE_VIEWER_ZOOM_ITEMS; i++)
+ {
+ snprintf(buf, sizeof(buf), "%d %%", xsane_viewer_zoom[i]);
+ zoom_menu_item = gtk_menu_item_new_with_label(buf);
+ gtk_menu_append(GTK_MENU(zoom_menu), zoom_menu_item);
+ gtk_signal_connect(GTK_OBJECT(zoom_menu_item), "activate", (GtkSignalFunc) xsane_viewer_zoom_callback, v);
+ gtk_object_set_data(GTK_OBJECT(zoom_menu_item), "Selection", (void *) xsane_viewer_zoom[i]);
+ gtk_widget_show(zoom_menu_item);
+ if (v->zoom*100 == xsane_viewer_zoom[i])
+ {
+ selection = i;
+ }
+ }
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(zoom_option_menu), zoom_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(zoom_option_menu), selection);
+/* gtk_widget_add_accelerator(menubar_item, "select", xsane.accelerator_group, GDK_F, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED); */
+ gtk_widget_show(zoom_menu);
+
+
+
+ scrolled_window = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_box_pack_start(GTK_BOX(vbox), scrolled_window, TRUE, TRUE, 0);
+ gtk_widget_show(scrolled_window);
+
+
+ /* the viewport */
+ v->viewport = gtk_frame_new(/* label */ 0);
+ gtk_frame_set_shadow_type(GTK_FRAME(v->viewport), GTK_SHADOW_IN);
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), v->viewport);
+ gtk_widget_show(v->viewport);
+
+
+ /* image info label */
+ hbox = gtk_hbox_new(FALSE, 1);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 1);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+ gtk_widget_show(hbox);
+ v->image_info_label = gtk_label_new("");
+ gtk_box_pack_start(GTK_BOX(hbox), v->image_info_label, FALSE, FALSE, 2);
+ gtk_widget_show(v->image_info_label);
+
+ gtk_widget_show(v->top);
+
+ if (xsane_viewer_read_image(v)) /* read image and add preview to the viewport */
+ {
+ /* error */
+ }
+
+ v->progress_bar = (GtkProgressBar *) gtk_progress_bar_new();
+#if 0
+ gtk_widget_set_usize(v->progress_bar, 0, 25);
+#endif
+ gtk_box_pack_start(GTK_BOX(vbox), (GtkWidget *) v->progress_bar, FALSE, FALSE, 0);
+ gtk_progress_set_show_text(GTK_PROGRESS(v->progress_bar), TRUE);
+ gtk_progress_set_format_string(GTK_PROGRESS(v->progress_bar), "");
+ gtk_widget_show(GTK_WIDGET(v->progress_bar));
+
+ return v;
+}
+
+
diff --git a/src/xsane-viewer.h b/src/xsane-viewer.h
new file mode 100644
index 0000000..885466b
--- /dev/null
+++ b/src/xsane-viewer.h
@@ -0,0 +1,79 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane-viewer.h
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 2001-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifndef XSANE_VIEWER_H
+#define XSANE_VIEWER_H
+
+#include <gdk/gdkkeysyms.h>
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+
+typedef struct Viewer
+{
+ struct Viewer *next_viewer;
+
+ char *filename;
+ char *output_filename;
+
+ int reduce_to_lineart;
+ float zoom;
+ int image_saved;
+ int cancel_save;
+
+ int filter_radius;
+ float x_scale_factor;
+ float y_scale_factor;
+
+ GtkWidget *top;
+ GtkWidget *button_box;
+
+ GtkWidget *viewport;
+ GtkWidget *window;
+
+ GtkWidget *save;
+ GtkWidget *ocr;
+ GtkWidget *clone;
+ GtkWidget *scale;
+
+ GtkWidget *despeckle;
+ GtkWidget *blur;
+
+ GtkWidget *rotate90;
+ GtkWidget *rotate180;
+ GtkWidget *rotate270;
+
+ GtkWidget *mirror_x;
+ GtkWidget *mirror_y;
+
+ GtkWidget *image_info_label;
+
+ GtkProgressBar *progress_bar;
+
+ GtkWidget *active_dialog;
+}
+Viewer;
+
+extern Viewer *xsane_viewer_new(char *filename, int reduce_to_lineart, char *output_filename);
+
+#endif
diff --git a/src/xsane.c b/src/xsane.c
new file mode 100644
index 0000000..ae07b8c
--- /dev/null
+++ b/src/xsane.c
@@ -0,0 +1,7972 @@
+/* xsane -- a graphical (X11, gtk) scanner-oriented SANE frontend
+
+ xsane.c
+
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
+ This file is part of the XSANE package.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#include "xsane.h"
+#include "xsane-back-gtk.h"
+#include "xsane-front-gtk.h"
+#include "xsane-preview.h"
+#include "xsane-save.h"
+#include "xsane-gamma.h"
+#include "xsane-setup.h"
+#include "xsane-scan.h"
+#include "xsane-rc-io.h"
+#include "xsane-device-preferences.h"
+#include "xsane-preferences.h"
+#include "xsane-icons.h"
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+#include <png.h>
+#include <zlib.h>
+#endif
+#endif
+
+#include <sys/types.h>
+#include <sys/wait.h>
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+struct option long_options[] =
+{
+ {"help", no_argument, 0, 'h'},
+ {"version", no_argument, 0, 'v'},
+ {"license", no_argument, 0, 'l'},
+ {"device-settings", required_argument, 0, 'd'},
+ {"save", no_argument, 0, 's'},
+ {"viewer", no_argument, 0, 'V'},
+ {"copy", no_argument, 0, 'c'},
+ {"fax", no_argument, 0, 'f'},
+#ifdef XSANE_ACTIVATE_MAIL
+ {"mail", no_argument, 0, 'm'},
+#endif
+ {"no-mode-selection", no_argument, 0, 'n'},
+ {"Fixed", no_argument, 0, 'F'},
+ {"Resizeable", no_argument, 0, 'R'},
+ {"print-filenames", no_argument, 0, 'p'},
+ {"force-filename", required_argument, 0, 'N'},
+ {"Medium-calibration", no_argument, 0, 'M'},
+ {0, }
+};
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static const pref_default_preset_area_t pref_default_preset_area[] =
+{
+ { MENU_ITEM_SURFACE_FULL_SIZE, 0, 0, INF, INF },
+ { MENU_ITEM_SURFACE_DIN_A3P, 0, 0, 296.98, 420.0 },
+ { MENU_ITEM_SURFACE_DIN_A3L, 0, 0, 420.0, 296.98 },
+ { MENU_ITEM_SURFACE_DIN_A4P, 0, 0, 210.0, 296.98 },
+ { MENU_ITEM_SURFACE_DIN_A4L, 0, 0, 296.98, 210.0 },
+ { MENU_ITEM_SURFACE_DIN_A5P, 0, 0, 148.5, 210.0 },
+ { MENU_ITEM_SURFACE_DIN_A5L, 0, 0, 210.0, 148.5 },
+ { MENU_ITEM_SURFACE_13cmx18cm, 0, 0, 130.0, 180.0 },
+ { MENU_ITEM_SURFACE_18cmx13cm, 0, 0, 180.0, 130.0 },
+ { MENU_ITEM_SURFACE_10cmx15cm, 0, 0, 100.0, 150.0 },
+ { MENU_ITEM_SURFACE_15cmx10cm, 0, 0, 150.0, 100.0 },
+ { MENU_ITEM_SURFACE_9cmx13cm, 0, 0, 90.0, 130.0 },
+ { MENU_ITEM_SURFACE_13cmx9cm, 0, 0, 130.0, 90.0 },
+ { MENU_ITEM_SURFACE_legal_P, 0, 0, 215.9, 355.6 },
+ { MENU_ITEM_SURFACE_legal_L, 0, 0, 355.6, 215.9 },
+ { MENU_ITEM_SURFACE_letter_P, 0, 0, 215.9, 279.4 },
+ { MENU_ITEM_SURFACE_letter_L, 0, 0, 279.4, 215.9 },
+};
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static const Preferences_medium_t pref_default_medium[]=
+{
+/* medium shadow highlight gamma negative */
+/* name gray red green blue gray red green blue gray red gren blue */
+ { MENU_ITEM_MEDIUM_FULL_RANGE, 0.0, 0.0, 0.0, 0.0, 100.0,100.0,100.0,100.0, 1.00, 1.00, 1.00, 1.00 , 0},
+ { MENU_ITEM_MEDIUM_SLIDE, 0.0, 0.0, 0.0, 0.0, 30.0, 30.0, 30.0, 30.0, 1.00, 1.00, 1.00, 1.00 , 0},
+ { MENU_ITEM_MEDIUM_STANDARD_NEG, 0.0, 7.0, 1.0, 0.0, 66.0, 66.0, 33.0, 16.0, 1.00, 1.00, 1.00, 1.00 , 1},
+ { MENU_ITEM_MEDIUM_AGFA_NEG, 0.0, 6.0, 2.0, 0.0, 31.0, 61.0, 24.0, 13.0, 1.00, 1.00, 1.00, 1.00 , 1},
+ { MENU_ITEM_MEDIUM_AGFA_NEG_XRG200_4, 0.0, 12.0, 2.0, 1.6, 35.0, 61.5, 21.5, 14.5, 1.00, 0.80, 0.67, 0.60 , 1},
+ { MENU_ITEM_MEDIUM_AGFA_NEG_HDC_100, 0.0, 3.5, 1.0, 0.5, 26.5, 53.5, 22.0, 17.0, 1.00, 0.79, 0.65, 0.60 , 1},
+ { MENU_ITEM_MEDIUM_FUJI_NEG, 0.0, 7.0, 1.0, 0.0, 32.0, 64.0, 33.0, 16.0, 1.00, 1.00, 1.00, 1.00 , 1},
+ { MENU_ITEM_MEDIUM_KODAK_NEG, 0.0, 9.0, 2.0, 0.0, 27.0, 54.0, 18.0, 12.0, 1.00, 1.00, 1.00, 1.00 , 1},
+ { MENU_ITEM_MEDIUM_KONICA_NEG, 0.0, 3.0, 0.0, 0.0, 25.0, 38.0, 21.0, 14.0, 1.00, 1.00, 1.00, 1.00 , 1},
+ { MENU_ITEM_MEDIUM_KONICA_NEG_VX_100, 0.0, 2.0, 0.0, 0.0, 25.0, 46.0, 22.0, 13.5, 1.00, 0.74, 0.56, 0.53 , 1},
+ { MENU_ITEM_MEDIUM_ROSSMANN_NEG_HR_100, 0.0, 7.0, 1.0, 1.6, 26.5, 58.0, 25.5, 19.0, 1.00, 0.54, 0.43, 0.41 , 1}
+};
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int DBG_LEVEL = 0;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+struct Xsane xsane; /* most xsane dependant values */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_scanmode_number[] = { XSANE_VIEWER, XSANE_SAVE, XSANE_COPY, XSANE_FAX, XSANE_MAIL };
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#define XSANE_GTK_NAME_RESOLUTION "GtkMenuResolution"
+#define XSANE_GTK_NAME_X_RESOLUTION "GtkMenuXResolution"
+#define XSANE_GTK_NAME_Y_RESOLUTION "GtkMenuYResolution"
+
+#define XSANE_GTK_NAME_ZOOM "GtkMenuZoom"
+#define XSANE_GTK_NAME_X_ZOOM "GtkMenuXZoom"
+#define XSANE_GTK_NAME_Y_ZOOM "GtkMenuYZoom"
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* forward declarations: */
+
+static int xsane_option_defined(char *string);
+static void xsane_zoom_update(GtkAdjustment *adj_data, double *val);
+static void xsane_resolution_scale_update(GtkAdjustment *adj_data, double *val);
+static void xsane_threshold_changed(void);
+static void xsane_gamma_changed(GtkAdjustment *adj_data, double *val);
+static void xsane_set_modus_defaults(void);
+static void xsane_modus_callback(GtkWidget *xsane_parent, int *num);
+static void xsane_filename_counter_step_callback(GtkWidget *widget, gpointer data);
+static void xsane_filetype_callback(GtkWidget *widget, gpointer data);
+static void xsane_outputfilename_changed_callback(GtkWidget *widget, gpointer data);
+static void xsane_browse_filename_callback(GtkWidget *widget, gpointer data);
+static void xsane_outputfilename_new(GtkWidget *vbox);
+static void xsane_enhancement_rgb_default_callback(GtkWidget *widget);
+static void xsane_enhancement_negative_callback(GtkWidget *widget);
+static void xsane_auto_enhancement_callback(GtkWidget *widget);
+static void xsane_show_standard_options_callback(GtkWidget *widget);
+static void xsane_show_advanced_options_callback(GtkWidget *widget);
+static void xsane_show_histogram_callback(GtkWidget *widget);
+#ifdef HAVE_WORKING_GTK_GAMMACURVE
+static void xsane_show_gamma_callback(GtkWidget *widget);
+#endif
+static void xsane_printer_callback(GtkWidget *widget, gpointer data);
+void xsane_pref_save(void);
+static int xsane_pref_restore(void);
+static RETSIGTYPE xsane_quit_handler(int signal);
+static void xsane_quit(void);
+static void xsane_exit(void);
+static gint xsane_standard_option_win_delete(GtkWidget *widget, gpointer data);
+static gint xsane_advanced_option_win_delete(GtkWidget *widget, gpointer data);
+static gint xsane_scan_win_delete(GtkWidget *w, gpointer data);
+static gint xsane_preview_window_destroyed(GtkWidget *widget, gpointer call_data);
+static void xsane_show_preview_callback(GtkWidget * widget, gpointer call_data);
+static GtkWidget *xsane_files_build_menu(void);
+static void xsane_set_medium_callback(GtkWidget *widget, gpointer data);
+static void xsane_set_pref_unit_callback(GtkWidget *widget, gpointer data);
+static void xsane_set_update_policy_callback(GtkWidget *widget, gpointer data);
+static gint xsane_close_info_callback(GtkWidget *widget, gpointer data);
+static void xsane_info_dialog(GtkWidget *widget, gpointer data);
+static void xsane_about_dialog(GtkWidget *widget, gpointer data);
+static void xsane_about_translation_dialog(GtkWidget *widget, gpointer data);
+static SANE_Status xsane_get_area_value(int option, float *val, SANE_Int *unit);
+#ifdef XSANE_TEST
+static void xsane_batch_scan_delete_callback(GtkWidget *widget, gpointer list);
+static void xsane_batch_scan_add_callback(GtkWidget *widget, gpointer list);
+static void xsane_batch_scan_dialog(GtkWidget *widget, gpointer data);
+#endif
+static void xsane_fax_dialog(void);
+static void xsane_fax_dialog_close(void);
+static void xsane_fax_receiver_changed_callback(GtkWidget *widget, gpointer data);
+static void xsane_fax_project_changed_callback(GtkWidget *widget, gpointer data);
+static void xsane_fax_fine_mode_callback(GtkWidget *widget);
+void xsane_fax_project_save(void);
+static void xsane_fax_project_load(void);
+static void xsane_fax_project_delete(void);
+static void xsane_fax_project_create(void);
+static void xsane_list_entrys_swap(GtkWidget *list_item_1, GtkWidget *list_item_2);
+static void xsane_fax_entry_move_up_callback(GtkWidget *widget, gpointer list);
+static void xsane_fax_entry_move_down_callback(GtkWidget *widget, gpointer list);
+static void xsane_fax_entry_rename_callback(GtkWidget *widget, gpointer list);
+static void xsane_fax_entry_insert_callback(GtkWidget *widget, gpointer list);
+static void xsane_fax_entry_delete_callback(GtkWidget *widget, gpointer list);
+static void xsane_fax_show_callback(GtkWidget *widget, gpointer data);
+static void xsane_fax_send(void);
+#ifdef XSANE_ACTIVATE_MAIL
+static void xsane_mail_dialog(void);
+static void xsane_mail_dialog_close(void);
+static void xsane_mail_receiver_changed_callback(GtkWidget *widget, gpointer data);
+static void xsane_mail_subject_changed_callback(GtkWidget *widget, gpointer data);
+static void xsane_mail_project_changed_callback(GtkWidget *widget, gpointer data);
+static void xsane_mail_html_mode_callback(GtkWidget *widget);
+void xsane_mail_project_save(void);
+static void xsane_mail_project_load(void);
+static void xsane_mail_project_delete(void);
+static void xsane_mail_project_create(void);
+static void xsane_mail_entry_move_up_callback(GtkWidget *widget, gpointer list);
+static void xsane_mail_entry_move_down_callback(GtkWidget *widget, gpointer list);
+static void xsane_mail_entry_rename_callback(GtkWidget *widget, gpointer list);
+static void xsane_mail_entry_delete_callback(GtkWidget *widget, gpointer list);
+static void xsane_mail_show_callback(GtkWidget *widget, gpointer data);
+static void xsane_mail_send(void);
+#endif
+static void xsane_pref_toggle_tooltips(GtkWidget *widget, gpointer data);
+static void xsane_mail_send_process(void);
+static void xsane_mail_send(void);
+static void xsane_show_license(GtkWidget *widget, gpointer data);
+static void xsane_show_doc(GtkWidget *widget, gpointer data);
+static GtkWidget *xsane_view_build_menu(void);
+static GtkWidget *xsane_pref_build_menu(void);
+static GtkWidget *xsane_help_build_menu(void);
+static void xsane_device_dialog(void);
+static void xsane_choose_dialog_ok_callback(void);
+static void xsane_select_device_by_key_callback(GtkWidget * widget, gpointer data);
+static void xsane_select_device_by_mouse_callback(GtkWidget * widget, GdkEventButton *event, gpointer data);
+static void xsane_choose_device(void);
+static void xsane_usage(void);
+static int xsane_init(int argc, char **argv);
+void xsane_interface(int argc, char **argv);
+int main(int argc, char ** argv);
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifndef __GNUC__
+void xsane_debug_message(int level, const char *fmt, ...)
+{
+ if (DBG_LEVEL >= level)
+ {
+ va_list ap;
+ fprintf(stderr, "[xsane] ");
+ va_start(ap, fmt);
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+ }
+}
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_add_medium_definition(char *definition_name)
+{
+ int i;
+
+ DBG(DBG_proc, "xsane_add_new_medium_definition\n");
+
+ i = preferences.medium_definitions;
+
+ preferences.medium_definitions++;
+ preferences.medium = realloc( preferences.medium, preferences.medium_definitions * sizeof(void *));
+
+ if (xsane.negative == xsane.medium_negative) /* result is positive */
+ {
+ preferences.medium[i] = calloc(sizeof(Preferences_medium_t), 1);
+ preferences.medium[i]->name = strdup(definition_name);
+ preferences.medium[i]->shadow_gray = xsane.medium_shadow_gray + (xsane.medium_highlight_gray - xsane.medium_shadow_gray) * xsane.slider_gray.value[0] / 100.0;
+ preferences.medium[i]->shadow_red = xsane.medium_shadow_red + (xsane.medium_highlight_red - xsane.medium_shadow_red) * xsane.slider_red.value[0] / 100.0;
+ preferences.medium[i]->shadow_green = xsane.medium_shadow_green + (xsane.medium_highlight_green - xsane.medium_shadow_green) * xsane.slider_green.value[0] / 100.0;
+ preferences.medium[i]->shadow_blue = xsane.medium_shadow_blue + (xsane.medium_highlight_blue - xsane.medium_shadow_blue) * xsane.slider_blue.value[0] / 100.0;
+ preferences.medium[i]->highlight_gray = xsane.medium_shadow_gray + (xsane.medium_highlight_gray - xsane.medium_shadow_gray) * xsane.slider_gray.value[2] / 100.0;
+ preferences.medium[i]->highlight_red = xsane.medium_shadow_red + (xsane.medium_highlight_red - xsane.medium_shadow_red) * xsane.slider_red.value[2] / 100.0;
+ preferences.medium[i]->highlight_green = xsane.medium_shadow_green + (xsane.medium_highlight_green - xsane.medium_shadow_green) * xsane.slider_green.value[2] / 100.0;
+ preferences.medium[i]->highlight_blue = xsane.medium_shadow_blue + (xsane.medium_highlight_blue - xsane.medium_shadow_blue) * xsane.slider_blue.value[2] / 100.0;
+ preferences.medium[i]->gamma_gray = xsane.gamma;
+ preferences.medium[i]->gamma_red = xsane.gamma * xsane.gamma_red * xsane.medium_gamma_red;
+ preferences.medium[i]->gamma_green = xsane.gamma * xsane.gamma_green * xsane.medium_gamma_green;
+ preferences.medium[i]->gamma_blue = xsane.gamma * xsane.gamma_blue * xsane.medium_gamma_blue;
+ preferences.medium[i]->negative = 0;
+ }
+ else /* result is negative */
+ {
+ preferences.medium[i] = calloc(sizeof(Preferences_medium_t), 1);
+ preferences.medium[i]->name = strdup(definition_name);
+ preferences.medium[i]->shadow_gray = xsane.medium_shadow_gray + (xsane.medium_highlight_gray - xsane.medium_shadow_gray) * (1.0 - xsane.slider_gray.value[2] / 100.0);
+ preferences.medium[i]->shadow_red = xsane.medium_shadow_red + (xsane.medium_highlight_red - xsane.medium_shadow_red) * (1.0 - xsane.slider_red.value[2] / 100.0);
+ preferences.medium[i]->shadow_green = xsane.medium_shadow_green + (xsane.medium_highlight_green - xsane.medium_shadow_green) * (1.0 - xsane.slider_green.value[2] / 100.0);
+ preferences.medium[i]->shadow_blue = xsane.medium_shadow_blue + (xsane.medium_highlight_blue - xsane.medium_shadow_blue) * (1.0 - xsane.slider_blue.value[2] / 100.0);
+ preferences.medium[i]->highlight_gray = xsane.medium_shadow_gray + (xsane.medium_highlight_gray - xsane.medium_shadow_gray) * (1.0 - xsane.slider_gray.value[0] / 100.0);
+ preferences.medium[i]->highlight_red = xsane.medium_shadow_red + (xsane.medium_highlight_red - xsane.medium_shadow_red) * (1.0 - xsane.slider_red.value[0] / 100.0);
+ preferences.medium[i]->highlight_green = xsane.medium_shadow_green + (xsane.medium_highlight_green - xsane.medium_shadow_green) * (1.0 - xsane.slider_green.value[0] / 100.0);
+ preferences.medium[i]->highlight_blue = xsane.medium_shadow_blue + (xsane.medium_highlight_blue - xsane.medium_shadow_blue) * (1.0 - xsane.slider_blue.value[0] / 100.0);
+ preferences.medium[i]->gamma_gray = xsane.gamma;
+ preferences.medium[i]->gamma_red = xsane.gamma * xsane.gamma_red * xsane.medium_gamma_red;
+ preferences.medium[i]->gamma_green = xsane.gamma * xsane.gamma_green * xsane.medium_gamma_green;
+ preferences.medium[i]->gamma_blue = xsane.gamma * xsane.gamma_blue * xsane.medium_gamma_blue;
+ preferences.medium[i]->negative = 1;
+ }
+
+ xsane_back_gtk_refresh_dialog();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_add_medium_definition_flag;
+
+static void xsane_add_medium_definition_button_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_add_medium_definiton_button_callback\n");
+
+ xsane_add_medium_definition_flag = (int) data;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_add_medium_definition_callback()
+{
+ GtkWidget *add_medium_dialog;
+ GtkWidget *hbox, *vbox, *button, *text, *label;
+
+ xsane_set_sensitivity(FALSE);
+
+ /* set add medium dialog */
+ add_medium_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_position(GTK_WINDOW(add_medium_dialog), GTK_WIN_POS_MOUSE);
+ gtk_window_set_title(GTK_WINDOW(add_medium_dialog), WINDOW_STORE_MEDIUM);
+ xsane_set_window_icon(add_medium_dialog, 0);
+ gtk_signal_connect_object(GTK_OBJECT(add_medium_dialog), "delete_event", (GtkSignalFunc) xsane_add_medium_definition_button_callback, (GtkObject *) -1);
+
+ /* set the main vbox */
+ vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 0);
+ gtk_container_add(GTK_CONTAINER(add_medium_dialog), vbox);
+ gtk_widget_show(vbox);
+
+ /* set the main hbox */
+ hbox = gtk_hbox_new(FALSE, 0);
+ xsane_separator_new(vbox, 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_MEDIUM_DEFINITION_NAME);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ text = gtk_entry_new_with_max_length(64);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_PRESET_AREA_NAME);
+ gtk_entry_set_text(GTK_ENTRY(text), "");
+ gtk_widget_set_usize(text, 300, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4);
+ gtk_widget_show(text);
+
+ /* set the main hbox */
+ hbox = gtk_hbox_new(FALSE, 0);
+ xsane_separator_new(vbox, 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_MEDIUM_DEFINITION_NAME);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
+
+
+ button = gtk_button_new_with_label("OK");
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_add_medium_definition_button_callback, (void *) 1);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label("Cancel");
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_add_medium_definition_button_callback, (void *) -1);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(add_medium_dialog);
+
+ xsane_add_medium_definition_flag = 0;
+
+ while (xsane_add_medium_definition_flag == 0)
+ {
+ while (gtk_events_pending())
+ {
+ DBG(DBG_info, "xsane_add_medium_definition_callback: calling gtk_main_iteration\n");
+ gtk_main_iteration();
+ }
+ }
+
+ if (xsane_add_medium_definition_flag == 1)
+ {
+ xsane_add_medium_definition(gtk_entry_get_text(GTK_ENTRY(text)));
+ }
+
+ gtk_widget_destroy(add_medium_dialog);
+
+ xsane_set_sensitivity(TRUE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_delete_medium_definition_callback()
+{
+ int i;
+
+ if (xsane.medium_nr == 0) /* do not allow to delete "full range" */
+ {
+ return;
+ }
+
+ free(preferences.medium[xsane.medium_nr]);
+
+ preferences.medium_definitions--;
+
+ for (i = xsane.medium_nr; i < preferences.medium_definitions; i++)
+ {
+ preferences.medium[i] = preferences.medium[i+1];
+ }
+
+ if (xsane.medium_nr > 0)
+ {
+ xsane.medium_nr--;
+ }
+
+ xsane.medium_changed = TRUE;
+
+ xsane_set_medium(preferences.medium[xsane.medium_nr]);
+
+ xsane_update_gamma_curve(TRUE); /* if necessary update preview gamma */
+
+ preview_display_valid(xsane.preview); /* update valid status of preview image */
+ /* the valid status depends on gamma handling an medium change */
+
+ xsane_back_gtk_refresh_dialog(); /* update menu */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_option_defined(char *string)
+{
+ if (string)
+ {
+ while (*string == ' ') /* skip spaces */
+ {
+ string++;
+ }
+ if (*string != 0)
+ {
+ return 1;
+ }
+ }
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_threshold_changed()
+{
+ DBG(DBG_proc, "xsane_threshold_changed\n");
+
+ if (xsane.param.depth == 1) /* lineart mode */
+ {
+ if ( (xsane.lineart_mode == XSANE_LINEART_GRAYSCALE) || (xsane.lineart_mode == XSANE_LINEART_XSANE) )
+ {
+ const SANE_Option_Descriptor *opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.threshold);
+
+ if (opt)
+ {
+ SANE_Word threshold_value;
+ double threshold = xsane.threshold * xsane.threshold_mul + xsane.threshold_off;
+
+ if (opt->type == SANE_TYPE_FIXED)
+ {
+ threshold_value = SANE_FIX(threshold);
+ }
+ else
+ {
+ threshold_value = (int) threshold;
+ }
+
+ xsane_back_gtk_set_option(xsane.well_known.threshold, &threshold_value, SANE_ACTION_SET_VALUE);
+ }
+ }
+ }
+}
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_gamma_changed(GtkAdjustment *adj_data, double *val)
+{
+ DBG(DBG_proc, "xsane_gamma_changed\n");
+
+ *val = adj_data->value;
+ xsane_enhancement_by_gamma();
+
+ xsane_threshold_changed();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_set_modus_defaults(void)
+{
+ DBG(DBG_proc, "xsane_set_modus_defaults\n");
+
+ switch(xsane.xsane_mode)
+ {
+ case XSANE_VIEWER:
+ xsane_define_maximum_output_size();
+ break;
+
+ case XSANE_SAVE:
+ xsane_define_maximum_output_size();
+ break;
+
+ case XSANE_COPY: /* set zoomfactor to 1.0 and select full preview area */
+ {
+ int printer_resolution;
+
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_GRAY:
+ if (xsane.param.depth == 1)
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->lineart_resolution;
+ }
+ else
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->grayscale_resolution;
+ }
+ break;
+
+ case SANE_FRAME_RGB:
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ default:
+ printer_resolution = preferences.printer[preferences.printernr]->color_resolution;
+ break;
+ }
+ xsane.zoom = 1.0;
+ xsane.zoom_x = 1.0;
+ xsane.zoom_y = 1.0;
+
+ xsane.resolution = xsane.zoom * printer_resolution;
+ xsane.resolution_x = xsane.zoom_x * printer_resolution;
+ xsane.resolution_y = xsane.zoom_y * printer_resolution;
+
+ xsane_set_all_resolutions();
+ xsane_define_maximum_output_size(); /* must come before select_full_preview_area */
+ preview_select_full_preview_area(xsane.preview);
+ }
+ break;
+
+ case XSANE_FAX:
+ /* select full preview area */
+ xsane_define_maximum_output_size(); /* must come before select_full_preview_area */
+ preview_select_full_preview_area(xsane.preview);
+ break;
+
+ case XSANE_MAIL:
+ xsane_define_maximum_output_size();
+ break;
+
+ default:
+ xsane_define_maximum_output_size();
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_modus_callback(GtkWidget *xsane_parent, int *num)
+{
+ DBG(DBG_proc, "xsane_modus_callback\n");
+
+ if (xsane.filetype) /* add extension to filename */
+ {
+ char buffer[256];
+
+ snprintf(buffer, sizeof(buffer), "%s%s", preferences.filename, xsane.filetype);
+ free(preferences.filename);
+ free(xsane.filetype);
+ xsane.filetype = NULL;
+ preferences.filename = strdup(buffer);
+ }
+
+ xsane.xsane_mode = *num;
+
+ xsane_set_modus_defaults(); /* set defaults and maximum output size */
+ xsane_refresh_dialog();
+
+ if ((xsane.xsane_mode == XSANE_SAVE) || (xsane.xsane_mode == XSANE_VIEWER) || (xsane.xsane_mode == XSANE_COPY))
+ {
+ gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE);
+ }
+
+ if (xsane.xsane_mode != XSANE_FAX)
+ {
+ xsane_fax_dialog_close();
+ }
+
+#ifdef XSANE_ACTIVATE_MAIL
+ if (xsane.xsane_mode != XSANE_MAIL)
+ {
+ if (xsane.mail_project_save)
+ {
+ xsane.mail_project_save = 0;
+ xsane_mail_project_save();
+ }
+
+ xsane_mail_dialog_close();
+ }
+#endif
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_filename_counter_step_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_filename_counter_step_callback\n");
+
+ preferences.filename_counter_step = (int) data;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_filetype_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_filetype_callback\n");
+
+ if (data)
+ {
+ char *extension, *filename;
+
+ extension = strrchr(preferences.filename, '.');
+
+ if ((extension) && (extension != preferences.filename))
+ {
+ if ( (!strcasecmp(extension, ".pnm")) || (!strcasecmp(extension, ".raw"))
+ || (!strcasecmp(extension, ".png")) || (!strcasecmp(extension, ".ps"))
+ || (!strcasecmp(extension, ".rgba"))
+ || (!strcasecmp(extension, ".tiff")) || (!strcasecmp(extension, ".tif"))
+ || (!strcasecmp(extension, ".jpg")) || (!strcasecmp(extension, ".jpeg"))
+ ) /* remove filetype extension */
+ {
+ filename = preferences.filename;
+ *extension = 0; /* remove extension */
+ preferences.filename = strdup(filename); /* filename without extension */
+ free(filename); /* free unused memory */
+ }
+ }
+ }
+ else if (xsane.filetype)
+ {
+ char buffer[256];
+
+ snprintf(buffer, sizeof(buffer), "%s%s", preferences.filename, xsane.filetype);
+ free(preferences.filename);
+ free(xsane.filetype);
+ xsane.filetype = NULL;
+ preferences.filename = strdup(buffer);
+ }
+
+ if (data)
+ {
+ xsane.filetype = strdup((char *) data); /* set extension for filename */
+ }
+
+ /* correct length of filename counter if it is shorter than minimum length */
+ xsane_update_counter_in_filename(&preferences.filename, FALSE, 0, preferences.filename_counter_len);
+ gtk_entry_set_text(GTK_ENTRY(xsane.outputfilename_entry), preferences.filename);
+ xsane_define_maximum_output_size(); /* is necessary in postscript mode */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_outputfilename_changed_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_outputfilename_changed_callback\n");
+
+ if (preferences.filename)
+ {
+ free((void *) preferences.filename);
+ }
+ preferences.filename = strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
+
+ xsane_define_maximum_output_size(); /* is necessary in postscript mode */
+}
+
+/* ----------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_browse_filename_callback(GtkWidget *widget, gpointer data)
+{
+ char filename[1024];
+ char windowname[256];
+
+ DBG(DBG_proc, "xsane_browse_filename_callback\n");
+
+ xsane_set_sensitivity(FALSE);
+
+ if (xsane.filetype) /* set filetype to "by ext." */
+ {
+ char buffer[256];
+
+ snprintf(buffer, sizeof(buffer), "%s%s", preferences.filename, xsane.filetype);
+ free(preferences.filename);
+ free(xsane.filetype);
+ xsane.filetype = NULL;
+ preferences.filename = strdup(buffer);
+ }
+
+ if (preferences.filename) /* make sure a correct filename is defined */
+ {
+ strncpy(filename, preferences.filename, sizeof(filename));
+ filename[sizeof(filename) - 1] = '\0';
+ }
+ else /* no filename given, take standard filename */
+ {
+ strcpy(filename, OUT_FILENAME);
+ }
+
+ snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_OUTPUT_FILENAME, xsane.device_text);
+
+ umask((mode_t) preferences.directory_umask); /* define new file permissions */
+ xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, TRUE, TRUE, FALSE);
+ umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
+
+ if (preferences.filename)
+ {
+ free((void *) preferences.filename);
+ }
+
+ xsane_set_sensitivity(TRUE);
+
+ preferences.filename = strdup(filename);
+
+ /* correct length of filename counter if it is shorter than minimum length */
+ xsane_update_counter_in_filename(&preferences.filename, FALSE, 0, preferences.filename_counter_len);
+
+ gtk_entry_set_text(GTK_ENTRY(xsane.outputfilename_entry), preferences.filename);
+
+ gtk_option_menu_set_history(GTK_OPTION_MENU(xsane.filetype_option_menu), 0); /* set menu to "by ext" */
+ xsane_define_maximum_output_size(); /* is necessary in postscript mode */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_outputfilename_new(GtkWidget *vbox)
+{
+ GtkWidget *hbox;
+ GtkWidget *text;
+ GtkWidget *button;
+ GtkWidget *xsane_filetype_menu, *xsane_filetype_item;
+ GtkWidget *xsane_filename_counter_step_option_menu;
+ GtkWidget *xsane_filename_counter_step_menu;
+ GtkWidget *xsane_filename_counter_step_item;
+ GtkWidget *xsane_label;
+ gchar buf[200];
+ int i,j;
+ int filetype_nr;
+ int select_item = 0;
+
+ DBG(DBG_proc, "xsane_outputfilename_new\n");
+
+ /* first line: disk icon, filename box */
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ button = xsane_button_new_with_pixmap(xsane.xsane_window->window, hbox, file_xpm, DESC_BROWSE_FILENAME,
+ (GtkSignalFunc) xsane_browse_filename_callback, NULL);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_B, GDK_CONTROL_MASK, GTK_ACCEL_LOCKED);
+
+ text = gtk_entry_new_with_max_length(255);
+ gtk_widget_set_usize(text, 80, 0); /* set minimum size */
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FILENAME);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.filename);
+ gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4);
+ gtk_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_outputfilename_changed_callback, NULL);
+
+ xsane.outputfilename_entry = text;
+
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+
+
+ /* second line: Step, Type */
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2);
+
+ /* filename counter step */
+
+ xsane_label = gtk_label_new(TEXT_FILENAME_COUNTER_STEP);
+ gtk_box_pack_start(GTK_BOX(hbox), xsane_label, FALSE, FALSE, 2);
+ gtk_widget_show(xsane_label);
+
+ xsane_filename_counter_step_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_filename_counter_step_option_menu, DESC_FILENAME_COUNTER_STEP);
+ gtk_box_pack_start(GTK_BOX(hbox), xsane_filename_counter_step_option_menu, FALSE, FALSE, 2);
+ gtk_widget_show(xsane_filename_counter_step_option_menu);
+ gtk_widget_show(hbox);
+
+ xsane_filename_counter_step_menu = gtk_menu_new();
+
+ select_item = 0;
+ j = -2;
+ for (i=0; i < 5; i++)
+ {
+ snprintf(buf, sizeof(buf), "%+d", j);
+ xsane_filename_counter_step_item = gtk_menu_item_new_with_label(buf);
+ gtk_container_add(GTK_CONTAINER(xsane_filename_counter_step_menu), xsane_filename_counter_step_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_filename_counter_step_item), "activate",
+ (GtkSignalFunc) xsane_filename_counter_step_callback, (void *) j);
+ gtk_widget_show(xsane_filename_counter_step_item);
+ if (preferences.filename_counter_step == j++)
+ {
+ select_item = i;
+ }
+ }
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane_filename_counter_step_option_menu), xsane_filename_counter_step_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(xsane_filename_counter_step_option_menu), select_item);
+
+ /* filetype */
+
+ xsane_filetype_menu = gtk_menu_new();
+
+ xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_BY_EXT);
+ gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
+ (GtkSignalFunc) xsane_filetype_callback, NULL);
+ gtk_widget_show(xsane_filetype_item);
+ filetype_nr = 0;
+ select_item = 0;
+
+#ifdef HAVE_LIBJPEG
+ xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_JPEG);
+ gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
+ (GtkSignalFunc) xsane_filetype_callback, XSANE_FILETYPE_JPEG);
+ gtk_widget_show(xsane_filetype_item);
+ filetype_nr++;
+ if ( (xsane.filetype) && (!strcasecmp(xsane.filetype, XSANE_FILETYPE_JPEG)) )
+ {
+ select_item = filetype_nr;
+ }
+#endif
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+ xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PNG);
+ gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
+ (GtkSignalFunc) xsane_filetype_callback, XSANE_FILETYPE_PNG);
+ gtk_widget_show(xsane_filetype_item);
+ filetype_nr++;
+ if ( (xsane.filetype) && (!strcasecmp(xsane.filetype, XSANE_FILETYPE_PNG)) )
+ {
+ select_item = filetype_nr;
+ }
+#endif
+#endif
+
+ xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PNM);
+ gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
+ (GtkSignalFunc) xsane_filetype_callback, XSANE_FILETYPE_PNM);
+ gtk_widget_show(xsane_filetype_item);
+ filetype_nr++;
+ if ( (xsane.filetype) && (!strcasecmp(xsane.filetype, XSANE_FILETYPE_PNM)) )
+ {
+ select_item = filetype_nr;
+ }
+
+ xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_PS);
+ gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
+ (GtkSignalFunc) xsane_filetype_callback, XSANE_FILETYPE_PS);
+ gtk_widget_show(xsane_filetype_item);
+ filetype_nr++;
+ if ( (xsane.filetype) && (!strcasecmp(xsane.filetype, XSANE_FILETYPE_PS)) )
+ {
+ select_item = filetype_nr;
+ }
+
+ xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_RAW);
+ gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
+ (GtkSignalFunc) xsane_filetype_callback, XSANE_FILETYPE_RAW);
+ gtk_widget_show(xsane_filetype_item);
+ filetype_nr++;
+ if ( (xsane.filetype) && (!strcasecmp(xsane.filetype, XSANE_FILETYPE_RAW)) )
+ {
+ select_item = filetype_nr;
+ }
+
+#ifdef SUPPORT_RGBA
+ xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_RGBA);
+ gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
+ (GtkSignalFunc) xsane_filetype_callback, XSANE_FILETYPE_RGBA);
+ gtk_widget_show(xsane_filetype_item);
+ filetype_nr++;
+ if ( (xsane.filetype) && (!strcasecmp(xsane.filetype, XSANE_FILETYPE_RGBA)) )
+ {
+ select_item = filetype_nr;
+ }
+#endif
+
+#ifdef HAVE_LIBTIFF
+ xsane_filetype_item = gtk_menu_item_new_with_label(MENU_ITEM_FILETYPE_TIFF);
+ gtk_container_add(GTK_CONTAINER(xsane_filetype_menu), xsane_filetype_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_filetype_item), "activate",
+ (GtkSignalFunc) xsane_filetype_callback, XSANE_FILETYPE_TIFF);
+ gtk_widget_show(xsane_filetype_item);
+ filetype_nr++;
+ if ( (xsane.filetype) && (!strcasecmp(xsane.filetype, XSANE_FILETYPE_TIFF)) )
+ {
+ select_item = filetype_nr;
+ }
+#endif
+
+ xsane.filetype_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, xsane.filetype_option_menu, DESC_FILETYPE);
+ gtk_box_pack_end(GTK_BOX(hbox), xsane.filetype_option_menu, FALSE, FALSE, 2);
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane.filetype_option_menu), xsane_filetype_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(xsane.filetype_option_menu), select_item);
+ gtk_widget_show(xsane.filetype_option_menu);
+
+ xsane_label = gtk_label_new(TEXT_FILETYPE); /* opposite order because of box_pack_end */
+ gtk_box_pack_end(GTK_BOX(hbox), xsane_label, FALSE, FALSE, 2);
+ gtk_widget_show(xsane_label);
+
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_enhancement_rgb_default_callback(GtkWidget * widget)
+{
+ DBG(DBG_proc, "xsane_enhancement_rgb_default_callback\n");
+
+ xsane.enhancement_rgb_default = (GTK_TOGGLE_BUTTON(widget)->active != 0);
+
+ if (xsane.enhancement_rgb_default)
+ {
+ xsane.gamma_red = 1.0;
+ xsane.gamma_green = 1.0;
+ xsane.gamma_blue = 1.0;
+
+ xsane.brightness_red = 0.0;
+ xsane.brightness_green = 0.0;
+ xsane.brightness_blue = 0.0;
+
+ xsane.contrast_red = 0.0;
+ xsane.contrast_green = 0.0;
+ xsane.contrast_blue = 0.0;
+
+ xsane.slider_red.value[0] = 0.0;
+ xsane.slider_red.value[1] = 50.0;
+ xsane.slider_red.value[2] = 100.0;
+
+ xsane.slider_green.value[0] = 0.0;
+ xsane.slider_green.value[1] = 50.0;
+ xsane.slider_green.value[2] = 100.0;
+
+ xsane.slider_blue.value[0] = 0.0;
+ xsane.slider_blue.value[1] = 50.0;
+ xsane.slider_blue.value[2] = 100.0;
+ }
+ else
+ {
+ xsane.slider_red.value[0] = xsane.slider_gray.value[0];
+ xsane.slider_red.value[1] = xsane.slider_gray.value[1];
+ xsane.slider_red.value[2] = xsane.slider_gray.value[2];
+
+ xsane.slider_green.value[0] = xsane.slider_gray.value[0];
+ xsane.slider_green.value[1] = xsane.slider_gray.value[1];
+ xsane.slider_green.value[2] = xsane.slider_gray.value[2];
+
+ xsane.slider_blue.value[0] = xsane.slider_gray.value[0];
+ xsane.slider_blue.value[1] = xsane.slider_gray.value[1];
+ xsane.slider_blue.value[2] = xsane.slider_gray.value[2];
+ }
+
+ xsane_update_sliders();
+ xsane_update_gamma_curve(FALSE);
+ xsane_refresh_dialog();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_enhancement_negative_callback(GtkWidget * widget)
+{
+ double v0;
+
+ DBG(DBG_proc, "xsane_enhancement_negative_callback\n");
+
+ if (xsane.negative != (GTK_TOGGLE_BUTTON(widget)->active != 0))
+ {
+ v0 = xsane.slider_gray.value[0];
+ xsane.slider_gray.value[0] = 100.0 - xsane.slider_gray.value[2];
+ xsane.slider_gray.value[1] = 100.0 - xsane.slider_gray.value[1];
+ xsane.slider_gray.value[2] = 100.0 - v0;
+
+ if (!xsane.enhancement_rgb_default)
+ {
+ v0 = xsane.slider_red.value[0];
+ xsane.slider_red.value[0] = 100.0 - xsane.slider_red.value[2];
+ xsane.slider_red.value[1] = 100.0 - xsane.slider_red.value[1];
+ xsane.slider_red.value[2] = 100.0 - v0;
+
+ v0 = xsane.slider_green.value[0];
+ xsane.slider_green.value[0] = 100.0 - xsane.slider_green.value[2];
+ xsane.slider_green.value[1] = 100.0 - xsane.slider_green.value[1];
+ xsane.slider_green.value[2] = 100.0 - v0;
+
+ v0 = xsane.slider_blue.value[0];
+ xsane.slider_blue.value[0] = 100.0 - xsane.slider_blue.value[2];
+ xsane.slider_blue.value[1] = 100.0 - xsane.slider_blue.value[1];
+ xsane.slider_blue.value[2] = 100.0 - v0;
+ }
+ }
+
+ xsane.negative = (GTK_TOGGLE_BUTTON(widget)->active != 0);
+
+ xsane_update_sliders();
+ xsane_enhancement_by_histogram(TRUE);
+ xsane_update_gamma_curve(TRUE /* update raw */);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_auto_enhancement_callback(GtkWidget * widget)
+{
+ DBG(DBG_proc, "xsane_auto_enhancement_callback\n");
+
+ xsane_calculate_raw_histogram();
+
+ xsane_set_auto_enhancement();
+
+ xsane_enhancement_by_histogram(preferences.auto_enhance_gamma);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_show_standard_options_callback(GtkWidget * widget)
+{
+ DBG(DBG_proc, "xsane_show_standard_options_callback\n");
+
+ preferences.show_standard_options = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
+ if (preferences.show_standard_options)
+ {
+ gtk_widget_show(xsane.standard_options_shell);
+ }
+ else
+ {
+ gtk_widget_hide(xsane.standard_options_shell);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_show_advanced_options_callback(GtkWidget * widget)
+{
+ DBG(DBG_proc, "xsane_show_advanced_options_callback\n");
+
+ preferences.show_advanced_options = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
+ if (preferences.show_advanced_options)
+ {
+ gtk_widget_show(xsane.advanced_options_shell);
+ }
+ else
+ {
+ gtk_widget_hide(xsane.advanced_options_shell);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_show_resolution_list_callback(GtkWidget *widget)
+{
+ DBG(DBG_proc, "xsane_show_resolution_list_callback\n");
+
+ preferences.show_resolution_list = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
+ xsane_refresh_dialog();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_page_rotate_callback(GtkWidget *widget)
+{
+ DBG(DBG_proc, "xsane_page_rotate_callback\n");
+
+ preferences.psrotate = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
+ xsane_define_maximum_output_size();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_show_histogram_callback(GtkWidget * widget)
+{
+ DBG(DBG_proc, "xsane_show_histogram_callback\n");
+
+ preferences.show_histogram = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
+ if (preferences.show_histogram)
+ {
+ xsane_update_histogram(TRUE /* update raw */);
+ gtk_widget_show(xsane.histogram_dialog);
+ }
+ else
+ {
+ gtk_widget_hide(xsane.histogram_dialog);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef HAVE_WORKING_GTK_GAMMACURVE
+static void xsane_show_gamma_callback(GtkWidget *widget)
+{
+ DBG(DBG_proc, "xsane_show_gamma_callback\n");
+
+ preferences.show_gamma = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
+ if (preferences.show_gamma)
+ {
+ xsane_update_gamma_dialog();
+ gtk_widget_show(xsane.gamma_dialog);
+ }
+ else
+ {
+ gtk_widget_hide(xsane.gamma_dialog);
+ }
+}
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_printer_callback(GtkWidget *widget, gpointer data)
+{
+ int printer_resolution;
+
+ DBG(DBG_proc, "xsane_printer_callback\n");
+
+ preferences.printernr = (int) data;
+
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_GRAY:
+ if (xsane.param.depth == 1)
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->lineart_resolution;
+ }
+ else
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->grayscale_resolution;
+ }
+ break;
+
+ case SANE_FRAME_RGB:
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ default:
+ printer_resolution = preferences.printer[preferences.printernr]->color_resolution;
+ break;
+ }
+
+ xsane.resolution = xsane.zoom * printer_resolution;
+ xsane.resolution_x = xsane.zoom_x * printer_resolution;
+ xsane.resolution_y = xsane.zoom_y * printer_resolution;
+
+ xsane_set_all_resolutions();
+ xsane_define_maximum_output_size();
+ xsane_back_gtk_refresh_dialog();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_resolution_scale_update(GtkAdjustment *adj_data, double *val)
+{
+ int printer_resolution;
+
+#if 1
+/* gtk does not make sure that the value is quantisized correct */
+ float diff, old, new, quant;
+
+ DBG(DBG_proc, "xsane_resolution_scale_update\n");
+
+ quant = adj_data->step_increment;
+
+ if (quant != 0)
+ {
+ new = adj_data->value;
+ old = *val;
+ diff = quant*((int) ((new - old)/quant));
+
+ *val = old + diff;
+ adj_data->value = *val;
+ }
+#else
+ DBG(DBG_proc, "xsane_resolution_scale_update\n");
+
+ *val = adj_data->value;
+#endif
+
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_GRAY:
+ if (xsane.param.depth == 1)
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->lineart_resolution;
+ }
+ else
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->grayscale_resolution;
+ }
+ break;
+
+ case SANE_FRAME_RGB:
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ default:
+ printer_resolution = preferences.printer[preferences.printernr]->color_resolution;
+ break;
+ }
+
+ xsane_set_all_resolutions();
+
+ xsane_update_param(0);
+ xsane.zoom = xsane.resolution / printer_resolution;
+ xsane.zoom_x = xsane.resolution_x / printer_resolution;
+ xsane.zoom_y = xsane.resolution_y / printer_resolution;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_resolution_list_callback(GtkWidget *widget, gpointer data)
+{
+ GSGMenuItem *menu_item = data;
+ SANE_Word val;
+ gchar *name = gtk_widget_get_name(widget->parent);
+ int printer_resolution;
+
+ DBG(DBG_proc, "xsane_resolution_list_callback\n");
+
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_GRAY:
+ if (xsane.param.depth == 1)
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->lineart_resolution;
+ }
+ else
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->grayscale_resolution;
+ }
+ break;
+
+ case SANE_FRAME_RGB:
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ default:
+ printer_resolution = preferences.printer[preferences.printernr]->color_resolution;
+ break;
+ }
+
+ sscanf(menu_item->label, "%d", &val);
+
+ if (!strcmp(name, XSANE_GTK_NAME_RESOLUTION))
+ {
+ xsane.resolution = val;
+ xsane.resolution_x = val;
+ xsane.resolution_y = val;
+
+ xsane_set_resolution(xsane.well_known.dpi, xsane.resolution);
+ xsane_set_resolution(xsane.well_known.dpi_x, xsane.resolution_x);
+ xsane_set_resolution(xsane.well_known.dpi_y, xsane.resolution_y);
+
+ xsane.zoom = xsane.resolution / printer_resolution;
+ xsane.zoom_x = xsane.resolution_x / printer_resolution;
+ xsane.zoom_y = xsane.resolution_y / printer_resolution;
+ }
+ else if (!strcmp(name, XSANE_GTK_NAME_X_RESOLUTION))
+ {
+ xsane.resolution = val;
+ xsane.resolution_x = val;
+ xsane_set_resolution(xsane.well_known.dpi_x, xsane.resolution_x);
+ xsane.zoom = xsane.resolution / printer_resolution;
+ }
+ else if (!strcmp(name, XSANE_GTK_NAME_Y_RESOLUTION))
+ {
+ xsane.resolution_y = val;
+ xsane_set_resolution(xsane.well_known.dpi_y, xsane.resolution_y);
+ xsane.zoom = xsane.resolution / printer_resolution;
+ }
+
+ xsane_update_param(0);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_resolution_widget_new(GtkWidget *parent, int well_known_option, double *resolution, const char *image_xpm[],
+ const gchar *desc, const gchar *widget_name)
+{
+ GtkObject *resolution_widget;
+ const SANE_Option_Descriptor *opt;
+
+ DBG(DBG_proc, "xsane_resolution_widget_new\n");
+
+ opt = xsane_get_option_descriptor(xsane.dev, well_known_option);
+
+ if (!opt)
+ {
+ return -1; /* options does not exist */
+ }
+ else
+ {
+ if (SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ switch (opt->constraint_type)
+ {
+ case SANE_CONSTRAINT_RANGE:
+ {
+ double quant= 0.0;
+ double min = 0.0;
+ double max = 0.0;
+ double val = 0.0;
+ SANE_Word value;
+
+ gtk_widget_set_sensitive(xsane.show_resolution_list_widget, TRUE);
+ xsane_control_option(xsane.dev, well_known_option, SANE_ACTION_GET_VALUE, &value, 0);
+
+ switch (opt->type)
+ {
+ case SANE_TYPE_INT:
+ min = opt->constraint.range->min;
+ max = opt->constraint.range->max;
+ quant = opt->constraint.range->quant;
+ val = (int) value;
+ break;
+
+ case SANE_TYPE_FIXED:
+ min = SANE_UNFIX(opt->constraint.range->min);
+ max = SANE_UNFIX(opt->constraint.range->max);
+ quant = SANE_UNFIX(opt->constraint.range->quant);
+ val = SANE_UNFIX(value);
+ break;
+
+ default:
+ DBG(DBG_error, "resolution_widget_new: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
+ }
+
+ if (quant == 0)
+ {
+ quant = 1.0;
+ }
+
+ *resolution = val; /* set backend predefined value */
+
+ if (!preferences.show_resolution_list) /* user wants slider */
+ {
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(parent), image_xpm, desc,
+ min, max, quant, quant*10, 0, 0, resolution, &resolution_widget,
+ well_known_option, xsane_resolution_scale_update, SANE_OPTION_IS_SETTABLE(opt->cap));
+ }
+ else /* user wants list instead of slider */
+ {
+ SANE_Int max_items = 20;
+ char **str_list;
+ char str[16];
+ int i;
+ int j = 0;
+ SANE_Word wanted_res;
+ SANE_Word val = max;
+ int res = max;
+ double mul;
+
+ xsane_control_option(xsane.dev, well_known_option, SANE_ACTION_GET_VALUE, &wanted_res, 0);
+ if (opt->type == SANE_TYPE_FIXED)
+ {
+ wanted_res = (int) SANE_UNFIX(wanted_res);
+ }
+
+ str_list = malloc((max_items + 1) * sizeof(str_list[0]));
+
+ sprintf(str, "%d", (int) max);
+ str_list[j++] = strdup(str);
+
+ i=9;
+ while ((j < max_items) && (res > 50) && (res > min) && (i > 0))
+ {
+ mul = ((double) i) / (i+1);
+ res = (int) (max * mul);
+ if (res/mul == max)
+ {
+ res = xsane_find_best_resolution(well_known_option, res);
+ sprintf(str, "%d", res);
+ str_list[j++] = strdup(str);
+ if (res >= wanted_res)
+ {
+ val = res;
+ }
+ }
+ i--;
+ }
+
+ i = 3;
+ while ((j < max_items) && (res > 50) && (res > min))
+ {
+ mul = 1.0/i;
+ res = max * mul;
+ if (res/mul == max)
+ {
+ res = xsane_find_best_resolution(well_known_option, res);
+ sprintf(str, "%d", res);
+ str_list[j++] = strdup(str);
+ if (res >= wanted_res)
+ {
+ val = res;
+ }
+ }
+ i++;
+ }
+
+ str_list[j] = 0;
+ sprintf(str, "%d", (int) val);
+
+ xsane_option_menu_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(parent), image_xpm, desc, str_list, str, &resolution_widget, well_known_option,
+ xsane_resolution_list_callback, SANE_OPTION_IS_SETTABLE(opt->cap), widget_name);
+
+ free(str_list);
+ *resolution = val;
+ xsane_set_resolution(well_known_option, *resolution);
+ }
+ }
+ break;
+
+ case SANE_CONSTRAINT_WORD_LIST:
+ {
+ /* use a "list-selection" widget */
+ SANE_Int items;
+ char **str_list;
+ char str[16];
+ int j;
+ SANE_Word val=0;
+
+ gtk_widget_set_sensitive(xsane.show_resolution_list_widget, FALSE);
+
+ items = opt->constraint.word_list[0];
+ str_list = malloc((items + 1) * sizeof(str_list[0]));
+ switch (opt->type)
+ {
+ case SANE_TYPE_INT:
+ for (j = 0; j < items; ++j)
+ {
+ sprintf(str, "%d", opt->constraint.word_list[j + 1]);
+ str_list[j] = strdup(str);
+ }
+ str_list[j] = 0;
+ xsane_control_option(xsane.dev, well_known_option, SANE_ACTION_GET_VALUE, &val, 0);
+ sprintf(str, "%d", (int) val);
+ break;
+
+ case SANE_TYPE_FIXED:
+ for (j = 0; j < items; ++j)
+ {
+ sprintf(str, "%d", (int) SANE_UNFIX(opt->constraint.word_list[j + 1]));
+ str_list[j] = strdup(str);
+ }
+ str_list[j] = 0;
+ xsane_control_option(xsane.dev, well_known_option, SANE_ACTION_GET_VALUE, &val, 0);
+ sprintf(str, "%d", (int) SANE_UNFIX(val));
+ break;
+
+ default:
+ DBG(DBG_error, "resolution_word_list_creation: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
+ }
+
+
+ xsane_option_menu_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(parent), image_xpm, desc,
+ str_list, str, &resolution_widget, well_known_option,
+ xsane_resolution_list_callback, SANE_OPTION_IS_SETTABLE(opt->cap), widget_name);
+ free(str_list);
+ }
+ break;
+
+ default:
+ break;
+ } /* constraint type */
+
+ return 0; /* everything is ok */
+
+ } /* if resolution option active */
+
+ return 1; /* not active */
+
+ } /* if (opt) */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_zoom_update(GtkAdjustment *adj_data, double *val)
+{
+ int printer_resolution;
+
+ DBG(DBG_proc, "xsane_zoom_update\n");
+
+ *val=adj_data->value;
+
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_GRAY:
+ if (xsane.param.depth == 1)
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->lineart_resolution;
+ }
+ else
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->grayscale_resolution;
+ }
+ break;
+
+ case SANE_FRAME_RGB:
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ default:
+ printer_resolution = preferences.printer[preferences.printernr]->color_resolution;
+ break;
+ }
+
+ /* update all resolutions */
+ xsane.resolution = xsane.zoom * printer_resolution;
+ xsane.resolution_x = xsane.zoom_x * printer_resolution;
+ xsane.resolution_y = xsane.zoom_y * printer_resolution;
+
+ xsane_set_all_resolutions();
+
+ xsane_update_param(0);
+
+ xsane_define_maximum_output_size();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_zoom_widget_new(GtkWidget *parent, int well_known_option, double *zoom, double resolution,
+ const char *image_xpm[], const gchar *desc)
+{
+ const SANE_Option_Descriptor *opt;
+ int printer_resolution;
+
+ DBG(DBG_proc, "xsane_zoom_widget_new\n");
+
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_GRAY:
+ if (xsane.param.depth == 1)
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->lineart_resolution;
+ }
+ else
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->grayscale_resolution;
+ }
+ break;
+
+ case SANE_FRAME_RGB:
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ default:
+ printer_resolution = preferences.printer[preferences.printernr]->color_resolution;
+ break;
+ }
+
+ opt = xsane_get_option_descriptor(xsane.dev, well_known_option);
+ if (!opt)
+ {
+ return -1; /* option not available */
+ }
+ else
+ {
+ if (SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ double min = 0.0;
+ double max = 0.0;
+ SANE_Word val = 0.0;
+
+ xsane_control_option(xsane.dev, well_known_option, SANE_ACTION_GET_VALUE, &val, 0);
+
+ switch (opt->constraint_type)
+ {
+ case SANE_CONSTRAINT_RANGE:
+ switch (opt->type)
+ {
+ case SANE_TYPE_INT:
+ min = ((double) opt->constraint.range->min) / printer_resolution;
+ max = ((double) opt->constraint.range->max) / printer_resolution;
+ break;
+
+ case SANE_TYPE_FIXED:
+ min = SANE_UNFIX(opt->constraint.range->min) / printer_resolution;
+ max = SANE_UNFIX(opt->constraint.range->max) / printer_resolution;
+ val = SANE_UNFIX(val);
+ break;
+
+ default:
+ DBG(DBG_error, "zoom_scale_update: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
+ }
+ break;
+
+ case SANE_CONSTRAINT_WORD_LIST:
+ xsane_get_bounds(opt, &min, &max);
+ min = min / printer_resolution;
+ max = max / printer_resolution;
+ break;
+
+ default:
+ DBG(DBG_error, "zoom_scale_update: %s %d\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
+ }
+
+ if (resolution == 0) /* no prefered value */
+ {
+ resolution = val; /* set backend predefined value */
+ }
+
+ *zoom = resolution / printer_resolution;
+
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(parent), image_xpm, desc, min, max, 0.01, 0.1, 0.1, 2,
+ zoom, &xsane.zoom_widget, well_known_option, xsane_zoom_update,
+ SANE_OPTION_IS_SETTABLE(opt->cap));
+
+ return 0; /* everything is ok */
+ }
+ return 1; /* option not active */
+ }
+}
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_scanmode_menu_callback(GtkWidget *widget, gpointer data)
+{
+ GSGMenuItem *menu_item = data;
+ GSGDialogElement *elem = menu_item->elem;
+ const SANE_Option_Descriptor *opt;
+ int opt_num;
+ int printer_resolution;
+ double zoom, zoom_x, zoom_y;
+
+ DBG(DBG_proc, "xsane_scanmode_menu_callback\n");
+
+ zoom = xsane.zoom;
+ zoom_x = xsane.zoom_x;
+ zoom_y = xsane.zoom_y;
+
+ opt_num = elem - xsane.element;
+ opt = xsane_get_option_descriptor(xsane.dev, opt_num);
+ xsane_back_gtk_set_option(opt_num, menu_item->label, SANE_ACTION_SET_VALUE);
+
+ if (xsane.xsane_mode == XSANE_COPY)
+ {
+ switch (xsane.param.format)
+ {
+ case SANE_FRAME_GRAY:
+ if (xsane.param.depth == 1)
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->lineart_resolution;
+ }
+ else
+ {
+ printer_resolution = preferences.printer[preferences.printernr]->grayscale_resolution;
+ }
+ break;
+
+ case SANE_FRAME_RGB:
+ case SANE_FRAME_RED:
+ case SANE_FRAME_GREEN:
+ case SANE_FRAME_BLUE:
+ default:
+ printer_resolution = preferences.printer[preferences.printernr]->color_resolution;
+ break;
+ }
+
+ xsane.resolution = xsane_find_best_resolution(xsane.well_known.dpi, zoom * printer_resolution);
+ xsane.resolution_x = xsane_find_best_resolution(xsane.well_known.dpi_x, zoom_x * printer_resolution);
+ xsane.resolution_y = xsane_find_best_resolution(xsane.well_known.dpi_y, zoom_y * printer_resolution);
+
+ xsane_set_all_resolutions(); /* make sure resolution, resolution_x and resolution_y are up to date */
+ xsane_back_gtk_refresh_dialog(); /* update resolution - a bit overkill, any better idea? */
+ xsane_define_maximum_output_size(); /* draw maximum output frame in preview window if necessary */
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+GtkWidget *xsane_update_xsane_callback() /* creates the XSane option window */
+{
+ GtkWidget *xsane_vbox, *xsane_hbox;
+ GtkWidget *xsane_modus_menu;
+ GtkWidget *xsane_modus_item;
+ GtkWidget *xsane_modus_option_menu;
+ GtkWidget *xsane_vbox_xsane_modus;
+ GtkWidget *xsane_hbox_xsane_modus;
+ GtkWidget *xsane_label;
+ GtkWidget *xsane_text;
+ GtkWidget *xsane_hbox_xsane_enhancement;
+ GtkWidget *xsane_frame;
+ GtkWidget *button;
+ gchar buf[200];
+
+ DBG(DBG_proc, "xsane_update_xsane_callback\n");
+
+ /* xsane main options */
+
+ xsane_hbox = gtk_hbox_new(FALSE, 2);
+ gtk_widget_show(xsane_hbox);
+ xsane_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
+ gtk_widget_show(xsane_vbox);
+/* gtk_box_pack_start(GTK_BOX(xsane_hbox), xsane_vbox, FALSE, FALSE, 0); */ /* make scales fixed */
+ gtk_box_pack_start(GTK_BOX(xsane_hbox), xsane_vbox, TRUE, TRUE, 0); /* make scales sizeable */
+
+ /* XSane Frame */
+
+ xsane_frame = gtk_frame_new(TEXT_XSANE_OPTIONS);
+ gtk_container_set_border_width(GTK_CONTAINER(xsane_frame), 4);
+ gtk_frame_set_shadow_type(GTK_FRAME(xsane_frame), GTK_SHADOW_ETCHED_IN);
+/* gtk_box_pack_start(GTK_BOX(xsane_vbox), xsane_frame, FALSE, FALSE, 0); */ /* fixed frameheight */
+ gtk_box_pack_start(GTK_BOX(xsane_vbox), xsane_frame, TRUE, TRUE, 0); /* sizeable framehight */
+ gtk_widget_show(xsane_frame);
+
+/* xsane_vbox_xsane_modus = gtk_vbox_new(FALSE, 5); */
+ xsane_vbox_xsane_modus = gtk_vbox_new(FALSE, 1);
+ gtk_container_add(GTK_CONTAINER(xsane_frame), xsane_vbox_xsane_modus);
+ gtk_widget_show(xsane_vbox_xsane_modus);
+
+/* scan copy fax selection */
+
+ if ( (xsane.mode == XSANE_STANDALONE) && (xsane.mode_selection) ) /* display xsane mode selection menu */
+ {
+ xsane_hbox_xsane_modus = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(xsane_hbox_xsane_modus), 2);
+ gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), xsane_hbox_xsane_modus, FALSE, FALSE, 0);
+
+ xsane_label = gtk_label_new(TEXT_XSANE_MODE);
+ gtk_box_pack_start(GTK_BOX(xsane_hbox_xsane_modus), xsane_label, FALSE, FALSE, 2);
+ gtk_widget_show(xsane_label);
+
+
+ xsane_modus_menu = gtk_menu_new();
+ gtk_menu_set_accel_group(GTK_MENU(xsane_modus_menu), xsane.accelerator_group);
+
+
+ xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_VIEWER);
+ gtk_widget_add_accelerator(xsane_modus_item, "activate", xsane.accelerator_group, GDK_V, GDK_CONTROL_MASK, GTK_ACCEL_LOCKED);
+ gtk_widget_lock_accelerators(xsane_modus_item);
+ gtk_widget_set_usize(xsane_modus_item, 60, 0);
+ gtk_container_add(GTK_CONTAINER(xsane_modus_menu), xsane_modus_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_modus_item), "activate",
+ (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_VIEWER]);
+ gtk_widget_show(xsane_modus_item);
+
+ xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_SAVE);
+ gtk_widget_add_accelerator(xsane_modus_item, "activate", xsane.accelerator_group, GDK_S, GDK_CONTROL_MASK, GTK_ACCEL_LOCKED);
+ gtk_container_add(GTK_CONTAINER(xsane_modus_menu), xsane_modus_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_modus_item), "activate",
+ (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_SAVE]);
+ gtk_widget_show(xsane_modus_item);
+
+ xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_COPY);
+ gtk_widget_add_accelerator(xsane_modus_item, "activate", xsane.accelerator_group, GDK_C, GDK_CONTROL_MASK, GTK_ACCEL_LOCKED);
+ gtk_container_add(GTK_CONTAINER(xsane_modus_menu), xsane_modus_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_modus_item), "activate",
+ (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_COPY]);
+ gtk_widget_show(xsane_modus_item);
+
+ xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_FAX);
+ gtk_widget_add_accelerator(xsane_modus_item, "activate", xsane.accelerator_group, GDK_F, GDK_CONTROL_MASK, GTK_ACCEL_LOCKED);
+ gtk_container_add(GTK_CONTAINER(xsane_modus_menu), xsane_modus_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_modus_item), "activate",
+ (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_FAX]);
+ gtk_widget_show(xsane_modus_item);
+
+#ifdef XSANE_ACTIVATE_MAIL
+ xsane_modus_item = gtk_menu_item_new_with_label(MENU_ITEM_MAIL);
+ gtk_widget_add_accelerator(xsane_modus_item, "activate", xsane.accelerator_group, GDK_M, GDK_CONTROL_MASK, GTK_ACCEL_LOCKED);
+ gtk_container_add(GTK_CONTAINER(xsane_modus_menu), xsane_modus_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_modus_item), "activate",
+ (GtkSignalFunc) xsane_modus_callback, &xsane_scanmode_number[XSANE_MAIL]);
+ gtk_widget_show(xsane_modus_item);
+#endif
+
+ xsane_modus_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_modus_option_menu, DESC_XSANE_MODE);
+ gtk_box_pack_end(GTK_BOX(xsane_hbox_xsane_modus), xsane_modus_option_menu, FALSE, FALSE, 2);
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane_modus_option_menu), xsane_modus_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(xsane_modus_option_menu), xsane.xsane_mode);
+ gtk_widget_show(xsane_modus_option_menu);
+ gtk_widget_show(xsane_hbox_xsane_modus);
+
+ xsane.xsanemode_widget = xsane_modus_option_menu;
+ }
+
+ {
+ GtkWidget *pixmapwidget;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap;
+ GtkWidget *hbox;
+ GtkWidget *xsane_medium_option_menu, *xsane_medium_menu, *xsane_medium_item;
+ const SANE_Option_Descriptor *opt;
+ int i;
+
+
+ /* scanmode */
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scanmode);
+ if (opt)
+ {
+ if (SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), hbox, FALSE, FALSE, 2);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) colormode_xpm);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
+ gdk_pixmap_unref(pixmap);
+ gtk_widget_show(pixmapwidget);
+
+ switch (opt->constraint_type)
+ {
+ case SANE_CONSTRAINT_STRING_LIST:
+ {
+ char *set;
+ SANE_Status status;
+
+ /* use a "list-selection" widget */
+ set = malloc(opt->size);
+ status = xsane_control_option(xsane.dev, xsane.well_known.scanmode, SANE_ACTION_GET_VALUE, set, 0);
+
+ xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, xsane.well_known.scanmode,
+ _BGT(opt->desc), xsane_scanmode_menu_callback, SANE_OPTION_IS_SETTABLE(opt->cap), 0);
+ }
+ break;
+
+ default:
+ DBG(DBG_error, "scanmode_selection: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
+ }
+ gtk_widget_show(hbox);
+ }
+ }
+
+
+ /* input selection */
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scansource);
+ if (opt)
+ {
+ if (SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), hbox, FALSE, FALSE, 2);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) scanner_xpm);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
+ gdk_pixmap_unref(pixmap);
+ gtk_widget_show(pixmapwidget);
+
+ switch (opt->constraint_type)
+ {
+ case SANE_CONSTRAINT_STRING_LIST:
+ {
+ char *set;
+ SANE_Status status;
+
+ /* use a "list-selection" widget */
+ set = malloc(opt->size);
+ status = xsane_control_option(xsane.dev, xsane.well_known.scansource, SANE_ACTION_GET_VALUE, set, 0);
+
+ xsane_option_menu_new(hbox, (char **) opt->constraint.string_list, set, xsane.well_known.scansource,
+ _BGT(opt->desc), 0, SANE_OPTION_IS_SETTABLE(opt->cap), 0);
+ }
+ break;
+
+ default:
+ DBG(DBG_error, "scansource_selection: %s %d\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
+ }
+ gtk_widget_show(hbox);
+ }
+ }
+
+
+ if (xsane.param.depth != 1) /* show medium selection of not lineart mode */
+ {
+ /* medium selection */
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), hbox, FALSE, FALSE, 2);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) medium_xpm);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
+ gdk_pixmap_unref(pixmap);
+ gtk_widget_show(pixmapwidget);
+
+ xsane_medium_menu = gtk_menu_new();
+
+ for (i=0; i<preferences.medium_definitions; i++)
+ {
+ xsane_medium_item = gtk_menu_item_new_with_label(preferences.medium[i]->name);
+ gtk_menu_append(GTK_MENU(xsane_medium_menu), xsane_medium_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_medium_item), "activate", (GtkSignalFunc) xsane_set_medium_callback, (void *)i);
+ gtk_widget_show(xsane_medium_item);
+ }
+
+ gtk_widget_show(xsane_medium_menu);
+
+ xsane_medium_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_medium_option_menu, DESC_XSANE_MEDIUM);
+ gtk_box_pack_end(GTK_BOX(hbox), xsane_medium_option_menu, FALSE, FALSE, 2);
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane_medium_option_menu), xsane_medium_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(xsane_medium_option_menu), xsane.medium_nr);
+ gtk_widget_show(xsane_medium_option_menu);
+ gtk_widget_show(hbox);
+
+ xsane.medium_widget = xsane_medium_option_menu;
+
+ xsane_set_medium(preferences.medium[xsane.medium_nr]); /* set selected medium */
+ }
+ else /* no medium selextion for lineart mode: use Full range gamma curve */
+ {
+ xsane_set_medium(preferences.medium[0]); /* make sure Full range is active */
+ }
+ }
+
+
+ if (xsane.xsane_mode == XSANE_SAVE)
+ {
+ xsane.copy_number_entry = NULL;
+
+ if ( (xsane.mode == XSANE_STANDALONE) && (!xsane.force_filename) )
+ {
+ xsane_outputfilename_new(xsane_vbox_xsane_modus); /* create filename box, step and type menu */
+ }
+ }
+
+ if ( (xsane.xsane_mode == XSANE_SAVE) || (xsane.xsane_mode == XSANE_VIEWER) )
+ {
+ /* resolution selection */
+ if (!xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_x, &xsane.resolution_x, resolution_x_xpm,
+ DESC_RESOLUTION_X, XSANE_GTK_NAME_X_RESOLUTION)) /* draw x resolution widget if possible */
+ {
+ xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_y, &xsane.resolution_y, resolution_y_xpm,
+ DESC_RESOLUTION_Y, XSANE_GTK_NAME_Y_RESOLUTION); /* ok, also draw y resolution widget */
+ }
+ else /* no x resolution, so lets draw common resolution widget */
+ {
+ xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi, &xsane.resolution, resolution_xpm,
+ DESC_RESOLUTION, XSANE_GTK_NAME_RESOLUTION);
+ }
+ }
+ else if (xsane.xsane_mode == XSANE_COPY)
+ {
+ GtkWidget *pixmapwidget, *hbox, *xsane_printer_option_menu, *xsane_printer_menu, *xsane_printer_item;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap;
+ int i;
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), hbox, FALSE, FALSE, 2);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(xsane.histogram_dialog->window, &mask, xsane.bg_trans, (gchar **) printer_xpm);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
+ gdk_pixmap_unref(pixmap);
+ gtk_widget_show(pixmapwidget);
+
+ xsane_printer_menu = gtk_menu_new();
+
+ for (i=0; i < preferences.printerdefinitions; i++)
+ {
+ xsane_printer_item = gtk_menu_item_new_with_label(preferences.printer[i]->name);
+ if (i<12)
+ {
+ gtk_widget_add_accelerator(xsane_printer_item, "activate", xsane.accelerator_group,
+ GDK_F1+i, GDK_SHIFT_MASK, GTK_ACCEL_LOCKED);
+ }
+ gtk_container_add(GTK_CONTAINER(xsane_printer_menu), xsane_printer_item);
+ gtk_signal_connect(GTK_OBJECT(xsane_printer_item), "activate", (GtkSignalFunc) xsane_printer_callback, (void *) i);
+ gtk_widget_show(xsane_printer_item);
+ }
+
+ xsane_printer_option_menu = gtk_option_menu_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_printer_option_menu, DESC_PRINTER_SELECT);
+ gtk_box_pack_end(GTK_BOX(hbox), xsane_printer_option_menu, FALSE, FALSE, 2);
+ gtk_widget_show(xsane_printer_option_menu);
+ gtk_widget_show(hbox);
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(xsane_printer_option_menu), xsane_printer_menu);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(xsane_printer_option_menu), preferences.printernr);
+
+ /* number of copies */
+ xsane_text = gtk_entry_new();
+ xsane_back_gtk_set_tooltip(xsane.tooltips, xsane_text, DESC_COPY_NUMBER);
+ gtk_widget_set_usize(xsane_text, 25, 0);
+ snprintf(buf, sizeof(buf), "%d", xsane.copy_number);
+ gtk_entry_set_text(GTK_ENTRY(xsane_text), (char *) buf);
+ gtk_box_pack_end(GTK_BOX(hbox), xsane_text, FALSE, FALSE, 10);
+ gtk_widget_show(xsane_text);
+ gtk_widget_show(hbox);
+ xsane.copy_number_entry = xsane_text;
+
+ /* zoom selection */
+ if (!xsane_zoom_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_x, &xsane.zoom_x,
+ xsane.resolution_x, zoom_x_xpm, DESC_ZOOM_X))
+ {
+ xsane_zoom_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_y, &xsane.zoom_y,
+ xsane.resolution_y, zoom_y_xpm, DESC_ZOOM_Y);
+ }
+ else
+ {
+ xsane_zoom_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi, &xsane.zoom,
+ xsane.resolution, zoom_xpm, DESC_ZOOM);
+ }
+ }
+ else if (xsane.xsane_mode == XSANE_FAX)
+ {
+ xsane.copy_number_entry = NULL;
+
+ xsane.resolution = 204;
+ xsane.resolution_x = 204;
+ xsane.resolution_y = 196;
+ xsane_set_all_resolutions();
+
+ xsane_fax_dialog();
+ }
+#ifdef XSANE_ACTIVATE_MAIL
+ else if (xsane.xsane_mode == XSANE_MAIL)
+ {
+ xsane.copy_number_entry = NULL;
+
+ /* resolution selection */
+ if (!xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_x, &xsane.resolution_x, resolution_x_xpm,
+ DESC_RESOLUTION_X, XSANE_GTK_NAME_X_RESOLUTION)) /* draw x resolution widget if possible */
+ {
+ xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi_y, &xsane.resolution_y, resolution_y_xpm,
+ DESC_RESOLUTION_Y, XSANE_GTK_NAME_Y_RESOLUTION); /* ok, also draw y resolution widget */
+ }
+ else /* no x resolution, so lets draw common resolution widget */
+ {
+ xsane_resolution_widget_new(xsane_vbox_xsane_modus, xsane.well_known.dpi, &xsane.resolution, resolution_xpm,
+ DESC_RESOLUTION, XSANE_GTK_NAME_RESOLUTION);
+ }
+
+ xsane_mail_dialog();
+ }
+#endif
+
+ /* test if scanner gamma table is selected */
+
+ xsane.scanner_gamma_gray = FALSE;
+ if (xsane.well_known.gamma_vector >0)
+ {
+ const SANE_Option_Descriptor *opt;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector);
+ if (SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ xsane.scanner_gamma_gray = TRUE;
+ }
+ }
+
+ xsane.scanner_gamma_color = FALSE;
+ if (xsane.well_known.gamma_vector_r >0)
+ {
+ const SANE_Option_Descriptor *opt;
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector_r);
+ if (SANE_OPTION_IS_ACTIVE(opt->cap))
+ {
+ xsane.scanner_gamma_color = TRUE;
+ }
+ }
+
+
+
+ /* XSane Frame Enhancement */
+
+ sane_get_parameters(xsane.dev, &xsane.param); /* update xsane.param */
+
+ if (xsane.param.depth == 1)
+ {
+ switch (xsane.lineart_mode)
+ {
+ case XSANE_LINEART_STANDARD:
+ break;
+
+ case XSANE_LINEART_GRAYSCALE:
+ case XSANE_LINEART_XSANE:
+ if (xsane.well_known.threshold > 0)
+ {
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), threshold_xpm, DESC_THRESHOLD,
+ xsane.threshold_min, xsane.threshold_max, 1.0, 10.0, 0.0, 0,
+ &xsane.threshold, &xsane.threshold_widget, 0, xsane_gamma_changed, TRUE);
+ xsane_threshold_changed();
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return(xsane_hbox);
+ }
+
+ xsane.slider_gray.active = XSANE_SLIDER_ACTIVE; /* mark slider active */
+
+ if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) )
+ {
+ xsane_separator_new(xsane_vbox_xsane_modus, 2);
+ }
+
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), Gamma_xpm, DESC_GAMMA,
+ XSANE_GAMMA_MIN, XSANE_GAMMA_MAX, 0.01, 0.1, 0.0, 2,
+ &xsane.gamma, &xsane.gamma_widget, 0, xsane_gamma_changed, TRUE);
+ if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) )
+ {
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), Gamma_red_xpm, DESC_GAMMA_R,
+ XSANE_GAMMA_MIN, XSANE_GAMMA_MAX, 0.01, 0.1, 0.0, 2,
+ &xsane.gamma_red , &xsane.gamma_red_widget, 0, xsane_gamma_changed, TRUE);
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), Gamma_green_xpm, DESC_GAMMA_G,
+ XSANE_GAMMA_MIN, XSANE_GAMMA_MAX, 0.01, 0.1, 0.0, 2,
+ &xsane.gamma_green, &xsane.gamma_green_widget, 0, xsane_gamma_changed, TRUE);
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), Gamma_blue_xpm, DESC_GAMMA_B,
+ XSANE_GAMMA_MIN, XSANE_GAMMA_MAX, 0.01, 0.1, 0.0, 2,
+ &xsane.gamma_blue , &xsane.gamma_blue_widget, 0, xsane_gamma_changed, TRUE);
+
+ xsane_separator_new(xsane_vbox_xsane_modus, 2);
+ }
+
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), brightness_xpm, DESC_BRIGHTNESS,
+ xsane.brightness_min, xsane.brightness_max, 1.0, 10.0, 0.0, 0,
+ &xsane.brightness, &xsane.brightness_widget, 0, xsane_gamma_changed, TRUE);
+ if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) )
+ {
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), brightness_red_xpm, DESC_BRIGHTNESS_R,
+ xsane.brightness_min, xsane.brightness_max, 1.0, 10.0, 0.0, 0,
+ &xsane.brightness_red , &xsane.brightness_red_widget, 0, xsane_gamma_changed, TRUE);
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), brightness_green_xpm, DESC_BRIGHTNESS_G,
+ xsane.brightness_min, xsane.brightness_max, 1.0, 10.0, 0.0, 0,
+ &xsane.brightness_green, &xsane.brightness_green_widget, 0, xsane_gamma_changed, TRUE);
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), brightness_blue_xpm, DESC_BRIGHTNESS_B,
+ xsane.brightness_min, xsane.brightness_max, 1.0, 10.0, 0.0, 0,
+ &xsane.brightness_blue, &xsane.brightness_blue_widget, 0, xsane_gamma_changed, TRUE);
+
+ xsane_separator_new(xsane_vbox_xsane_modus, 2);
+ }
+
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), contrast_xpm, DESC_CONTRAST,
+ xsane.contrast_gray_min, xsane.contrast_max, 1.0, 10.0, 0.0, 0,
+ &xsane.contrast, &xsane.contrast_widget, 0, xsane_gamma_changed, TRUE);
+ if ( (xsane.xsane_colors > 1) && (!xsane.enhancement_rgb_default) )
+ {
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), contrast_red_xpm, DESC_CONTRAST_R,
+ xsane.contrast_min, xsane.contrast_max, 1.0, 10.0, 0.0, 0,
+ &xsane.contrast_red , &xsane.contrast_red_widget, 0, xsane_gamma_changed, TRUE);
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), contrast_green_xpm, DESC_CONTRAST_G,
+ xsane.contrast_min, xsane.contrast_max, 1.0, 10.0, 0.0, 0,
+ &xsane.contrast_green, &xsane.contrast_green_widget, 0, xsane_gamma_changed, TRUE);
+ xsane_scale_new_with_pixmap(xsane.xsane_window->window, GTK_BOX(xsane_vbox_xsane_modus), contrast_blue_xpm, DESC_CONTRAST_B,
+ xsane.contrast_min, xsane.contrast_max, 1.0, 10.0, 0.0, 0,
+ &xsane.contrast_blue, &xsane.contrast_blue_widget, 0, xsane_gamma_changed, TRUE);
+ }
+
+ xsane_separator_new(xsane_vbox_xsane_modus, 2);
+
+ /* create lower button box (rgb default, negative ,... */
+ xsane_hbox_xsane_enhancement = gtk_hbox_new(TRUE, 4);
+ gtk_container_set_border_width(GTK_CONTAINER(xsane_hbox_xsane_enhancement), 4);
+ gtk_box_pack_start(GTK_BOX(xsane_vbox_xsane_modus), xsane_hbox_xsane_enhancement, FALSE, FALSE, 0);
+ gtk_widget_show(xsane_hbox_xsane_enhancement);
+
+ if (xsane.xsane_colors > 1)
+ {
+ button = xsane_toggle_button_new_with_pixmap(xsane.xsane_window->window, xsane_hbox_xsane_enhancement, rgb_default_xpm, DESC_RGB_DEFAULT,
+ &xsane.enhancement_rgb_default, xsane_enhancement_rgb_default_callback);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_B, GDK_SHIFT_MASK, GTK_ACCEL_LOCKED);
+ }
+
+ button = xsane_toggle_button_new_with_pixmap(xsane.xsane_window->window, xsane_hbox_xsane_enhancement, negative_xpm, DESC_NEGATIVE,
+ &xsane.negative, xsane_enhancement_negative_callback);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_N, GDK_SHIFT_MASK, GTK_ACCEL_LOCKED);
+
+ button = xsane_button_new_with_pixmap(xsane.xsane_window->window, xsane_hbox_xsane_enhancement, enhance_xpm, DESC_ENH_AUTO,
+ xsane_auto_enhancement_callback, NULL);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_E, GDK_SHIFT_MASK, GTK_ACCEL_LOCKED);
+
+ button = xsane_button_new_with_pixmap(xsane.xsane_window->window, xsane_hbox_xsane_enhancement, default_enhancement_xpm, DESC_ENH_DEFAULT,
+ xsane_enhancement_restore_default, NULL);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_D, GDK_SHIFT_MASK, GTK_ACCEL_LOCKED);
+
+ button = xsane_button_new_with_pixmap(xsane.xsane_window->window, xsane_hbox_xsane_enhancement, restore_enhancement_xpm, DESC_ENH_RESTORE,
+ xsane_enhancement_restore, NULL);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_R, GDK_SHIFT_MASK, GTK_ACCEL_LOCKED);
+
+ button = xsane_button_new_with_pixmap(xsane.xsane_window->window, xsane_hbox_xsane_enhancement, store_enhancement_xpm, DESC_ENH_STORE,
+ xsane_enhancement_store, NULL);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_M, GDK_SHIFT_MASK, GTK_ACCEL_LOCKED);
+
+ if (xsane.medium_calibration) /* are we running in medium calibration mode? */
+ {
+ button = xsane_button_new_with_pixmap(xsane.xsane_window->window, xsane_hbox_xsane_enhancement, medium_xpm, DESC_STORE_MEDIUM,
+ xsane_add_medium_definition_callback, NULL);
+
+ button = xsane_button_new_with_pixmap(xsane.xsane_window->window, xsane_hbox_xsane_enhancement, medium_delete_xpm, DESC_DELETE_MEDIUM,
+ xsane_delete_medium_definition_callback, NULL);
+ }
+
+ xsane_update_histogram(TRUE /* update raw */);
+#ifdef HAVE_WORKING_GTK_GAMMACURVE
+ xsane_update_gamma_dialog();
+#endif
+
+ return(xsane_hbox);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_pref_save(void)
+{
+ char filename[PATH_MAX];
+ int fd;
+
+ DBG(DBG_proc, "xsane_pref_save\n");
+
+ /* first save xsane-specific preferences: */
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", NULL, "xsane", NULL, ".rc", XSANE_PATH_LOCAL_SANE);
+
+ DBG(DBG_info2, "saving preferences to \"%s\"\n", filename);
+
+ umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
+ fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0600); /* rw- --- --- */
+
+ if (fd < 0)
+ {
+ char buf[256];
+
+ snprintf(buf, sizeof(buf), "%s %s.", ERR_FAILED_CREATE_FILE, strerror(errno));
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+ preferences_save(fd);
+ close(fd);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_pref_restore(void)
+/* returns true if this is the first time this xsane version is called */
+{
+ char filename[PATH_MAX];
+ int fd;
+ int result = TRUE;
+ int i;
+
+ DBG(DBG_proc, "xsane_pref_restore\n");
+
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", NULL, "xsane", NULL, ".rc", XSANE_PATH_LOCAL_SANE);
+ fd = open(filename, O_RDONLY);
+
+ if (fd >= 0)
+ {
+ preferences_restore(fd);
+ close(fd);
+
+ /* the version test only is done for the local xsane.rc file because each user */
+ /* shall accept (or not) the license for xsane */
+ if (preferences.xsane_version_str)
+ {
+ if (!strcmp(preferences.xsane_version_str, XSANE_VERSION))
+ {
+ result = FALSE; /* this version already has been started */
+ }
+ }
+ }
+ else /* no local sane file, look for system file */
+ {
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane", 0, ".rc", XSANE_PATH_SYSTEM);
+ fd = open(filename, O_RDONLY);
+
+ if (fd >= 0)
+ {
+ preferences_restore(fd);
+ close(fd);
+ }
+ }
+
+ if (!preferences.preset_area_definitions)
+ {
+ DBG(DBG_info, "no preset area definitions in preferences file, using predefined list\n");
+
+ preferences.preset_area_definitions = sizeof(pref_default_preset_area)/sizeof(pref_default_preset_area_t);
+ preferences.preset_area = calloc(preferences.preset_area_definitions, sizeof(void *));
+
+ for (i=0; i<preferences.preset_area_definitions; i++)
+ {
+ preferences.preset_area[i] = calloc(sizeof(Preferences_preset_area_t), 1);
+ preferences.preset_area[i]->name = strdup(_(pref_default_preset_area[i].name));
+ preferences.preset_area[i]->xoffset = pref_default_preset_area[i].xoffset;
+ preferences.preset_area[i]->yoffset = pref_default_preset_area[i].yoffset;
+ preferences.preset_area[i]->width = pref_default_preset_area[i].width;
+ preferences.preset_area[i]->height = pref_default_preset_area[i].height;
+ }
+ }
+
+ if (!preferences.medium_definitions)
+ {
+ DBG(DBG_info, "no medium definitions in preferences file, using predefined list\n");
+
+ preferences.medium_definitions = sizeof(pref_default_medium)/sizeof(Preferences_medium_t);
+ preferences.medium = calloc(preferences.medium_definitions, sizeof(void *));
+
+ for (i=0; i<preferences.medium_definitions; i++)
+ {
+ preferences.medium[i] = calloc(sizeof(Preferences_medium_t), 1);
+ preferences.medium[i]->name = strdup(_(pref_default_medium[i].name));
+ preferences.medium[i]->shadow_gray = pref_default_medium[i].shadow_gray;
+ preferences.medium[i]->shadow_red = pref_default_medium[i].shadow_red;
+ preferences.medium[i]->shadow_green = pref_default_medium[i].shadow_green;
+ preferences.medium[i]->shadow_blue = pref_default_medium[i].shadow_blue;
+ preferences.medium[i]->highlight_gray = pref_default_medium[i].highlight_gray;
+ preferences.medium[i]->highlight_red = pref_default_medium[i].highlight_red;
+ preferences.medium[i]->highlight_green = pref_default_medium[i].highlight_green;
+ preferences.medium[i]->highlight_blue = pref_default_medium[i].highlight_blue;
+ preferences.medium[i]->gamma_gray = pref_default_medium[i].gamma_gray;
+ preferences.medium[i]->gamma_red = pref_default_medium[i].gamma_red;
+ preferences.medium[i]->gamma_green = pref_default_medium[i].gamma_green;
+ preferences.medium[i]->gamma_blue = pref_default_medium[i].gamma_blue;
+ preferences.medium[i]->negative = pref_default_medium[i].negative;
+ }
+ }
+
+ if (preferences.xsane_version_str)
+ {
+ free(preferences.xsane_version_str);
+ }
+ preferences.xsane_version_str = strdup(XSANE_VERSION); /* store recent xsane-version */
+
+ if (!preferences.tmp_path)
+ {
+ if (getenv(STRINGIFY(ENVIRONMENT_TEMP_DIR_NAME))) /* if possible get temp path from environment */
+ {
+ preferences.tmp_path = strdup(getenv(STRINGIFY(ENVIRONMENT_TEMP_DIR_NAME)));
+ DBG(DBG_info, "setting temporary directory by environment variable %s: %s\n",
+ STRINGIFY(ENVIRONMENT_TEMP_DIR_NAME), preferences.tmp_path);
+ }
+ else /* otherwise use predefined path */
+ {
+ preferences.tmp_path = strdup(STRINGIFY(TEMP_PATH));
+ DBG(DBG_info, "setting temporary directory to %s\n", preferences.tmp_path);
+ }
+ }
+
+ if (!preferences.filename)
+ {
+ preferences.filename = strdup(OUT_FILENAME);
+ }
+
+ if (preferences.printerdefinitions == 0)
+ {
+ xsane_new_printer();
+ }
+
+ if (!preferences.fax_project)
+ {
+ preferences.fax_project = strdup(FAXPROJECT);
+ }
+
+ if (!preferences.fax_command)
+ {
+ preferences.fax_command = strdup(FAXCOMMAND);
+ }
+
+ if (!preferences.fax_receiver_option)
+ {
+ preferences.fax_receiver_option = strdup(FAXRECEIVEROPT);
+ }
+
+ if (!preferences.fax_postscript_option)
+ {
+ preferences.fax_postscript_option = strdup(FAXPOSTSCRIPTOPT);
+ }
+
+ if (!preferences.fax_normal_option)
+ {
+ preferences.fax_normal_option = strdup(FAXNORMALOPT);
+ }
+
+ if (!preferences.fax_fine_option)
+ {
+ preferences.fax_fine_option = strdup(FAXFINEOPT);
+ }
+
+ if (!preferences.fax_viewer)
+ {
+ preferences.fax_viewer = strdup(FAXVIEWER);
+ }
+
+
+#ifdef XSANE_ACTIVATE_MAIL
+ if (!preferences.mail_smtp_server)
+ {
+ preferences.mail_smtp_server = strdup("");
+ }
+
+ if (!preferences.mail_from)
+ {
+ preferences.mail_from = strdup("");
+ }
+
+ if (!preferences.mail_reply_to)
+ {
+ preferences.mail_reply_to = strdup("");
+ }
+
+ if (!preferences.mail_pop3_server)
+ {
+ preferences.mail_pop3_server = strdup("");
+ }
+
+ if (!preferences.mail_pop3_user)
+ {
+ preferences.mail_pop3_user = strdup("");
+ }
+
+ if (!preferences.mail_pop3_pass)
+ {
+ preferences.mail_pop3_pass = strdup("");
+ }
+
+ if (!preferences.mail_project)
+ {
+ preferences.mail_project = strdup(MAILPROJECT);
+ }
+
+ if (!preferences.mail_viewer)
+ {
+ preferences.mail_viewer = strdup(MAILVIEWER);
+ }
+#endif
+
+ if (!preferences.ocr_command)
+ {
+ preferences.ocr_command = strdup(OCRCOMMAND);
+ }
+
+ if (!preferences.ocr_inputfile_option)
+ {
+ preferences.ocr_inputfile_option = strdup(OCRINPUTFILEOPT);
+ }
+
+ if (!preferences.ocr_outputfile_option)
+ {
+ preferences.ocr_outputfile_option = strdup(OCROUTPUTFILEOPT);
+ }
+
+ if (!preferences.doc_viewer)
+ {
+ preferences.doc_viewer = strdup(DOCVIEWER);
+ }
+
+ return result;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static RETSIGTYPE xsane_quit_handler(int signal)
+{
+ DBG(DBG_proc, "xsane_quit_handler\n");
+
+ xsane_quit();
+}
+
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_quit(void)
+{
+ DBG(DBG_proc, "xsane_quit\n");
+
+ while (xsane.viewer_list) /* remove all viewer images */
+ {
+ Viewer *next_viewer = xsane.viewer_list->next_viewer; /* store pointer to next viewer */
+
+ DBG(DBG_info, "removing viewer image %s\n", xsane.viewer_list->filename);
+ remove(xsane.viewer_list->filename); /* remove image file */
+
+ gtk_widget_destroy(xsane.viewer_list->top); /* destroy the viewer window */
+ free(xsane.viewer_list); /* free memory of struct Viewer */
+
+ xsane.viewer_list = next_viewer;
+ }
+
+ if (xsane.preview)
+ {
+ Preview *preview = xsane.preview;
+ xsane.preview = 0;
+ preview_destroy(preview);
+ }
+
+#ifdef XSANE_ACTIVATE_MAIL
+ if (xsane.mail_project_save)
+ {
+ xsane.mail_project_save = 0;
+ xsane_mail_project_save();
+ }
+#endif
+
+ while (xsane.back_gtk_message_dialog_active)
+ {
+ gtk_main_iteration();
+ }
+
+ if (xsane.dev)
+ {
+ sane_close(xsane.dev);
+ }
+
+ sane_exit();
+ gtk_main_quit();
+
+ if (xsane.preview_gamma_data_red)
+ {
+ free(xsane.preview_gamma_data_red);
+ free(xsane.preview_gamma_data_green);
+ free(xsane.preview_gamma_data_blue);
+
+ xsane.preview_gamma_data_red = 0;
+ xsane.preview_gamma_data_green = 0;
+ xsane.preview_gamma_data_blue = 0;
+ }
+
+#ifdef HAVE_LIBGIMP_GIMP_H
+ if (xsane.mode == XSANE_GIMP_EXTENSION)
+ {
+ gimp_quit();
+ }
+#endif
+
+ if (preferences.printer)
+ {
+ free(preferences.printer);
+ }
+
+ exit(0);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_exit(void) /* this is called when xsane exits before gtk_main is called */
+{
+ DBG(DBG_proc, "xsane_exit\n");
+
+ while (xsane.back_gtk_message_dialog_active)
+ {
+ DBG(DBG_info, "calling gtk_main_iteration\n");
+ gtk_main_iteration();
+ }
+
+ sane_exit();
+
+#ifdef HAVE_LIBGIMP_GIMP_H
+ if (xsane.mode == XSANE_GIMP_EXTENSION)
+ {
+ gimp_quit();
+ }
+#endif
+ exit(0);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint xsane_standard_option_win_delete(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_standard_option_win_delete\n");
+
+ gtk_widget_hide(widget);
+ preferences.show_standard_options = FALSE;
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_standard_options_widget), preferences.show_standard_options);
+ return TRUE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint xsane_advanced_option_win_delete(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_advanced_option_win_delete\n");
+
+ gtk_widget_hide(widget);
+ preferences.show_advanced_options = FALSE;
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_advanced_options_widget), preferences.show_advanced_options);
+ return TRUE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* Invoked when window manager's "delete" (or "close") function is invoked. */
+static gint xsane_scan_win_delete(GtkWidget *w, gpointer data)
+{
+ int unsaved_images = 0;
+ Viewer *viewer = xsane.viewer_list;
+
+ DBG(DBG_proc, "xsane_scan_win_delete\n");
+
+ xsane_scan_done(-1); /* stop scanner when still scanning */
+
+ while (viewer)
+ {
+ if (!viewer->image_saved)
+ {
+ unsaved_images++;
+ }
+ viewer = viewer->next_viewer;
+ }
+
+ if (unsaved_images)
+ {
+ char buf[256];
+
+ snprintf(buf, sizeof(buf), WARN_UNSAVED_IMAGES, unsaved_images);
+ if (!xsane_back_gtk_decision(ERR_HEADER_WARNING, (gchar **) warning_xpm, buf, BUTTON_DO_NOT_CLOSE, BUTTON_DISCARD_ALL_IMAGES, TRUE /* wait */) == FALSE)
+ {
+ return TRUE;
+ }
+ }
+
+ if (xsane.filetype) /* add extension to filename */
+ {
+ char buffer[256];
+
+ snprintf(buffer, sizeof(buffer), "%s%s", preferences.filename, xsane.filetype);
+ free(preferences.filename);
+ free(xsane.filetype);
+ xsane.filetype = 0;
+ preferences.filename = strdup(buffer);
+ }
+
+ xsane_pref_save();
+
+ if (preferences.save_devprefs_at_exit)
+ {
+ xsane_device_preferences_store();
+ }
+
+ xsane_quit();
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint xsane_preview_window_destroyed(GtkWidget *widget, gpointer call_data)
+{
+ DBG(DBG_proc, "xsane_preview_window_destroyed\n");
+
+ gtk_widget_hide(widget);
+ xsane.show_preview = FALSE;
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_preview_widget), FALSE);
+ return TRUE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_show_preview_callback(GtkWidget * widget, gpointer call_data)
+{
+ DBG(DBG_proc, "xsane_show_preview_callback\n");
+
+ if (GTK_CHECK_MENU_ITEM(widget)->active)
+ {
+ gtk_widget_show(xsane.preview->top);
+ xsane.show_preview = TRUE;
+ }
+ else
+ {
+ gtk_widget_hide(xsane.preview->top);
+ xsane.show_preview = FALSE;
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static GtkWidget *xsane_files_build_menu(void)
+{
+ GtkWidget *menu, *item;
+
+ DBG(DBG_proc, "xsane_files_build_menu\n");
+
+ menu = gtk_menu_new();
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(menu));
+
+ /* XSane info dialog */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_INFO);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_I, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_info_dialog, NULL);
+ gtk_widget_show(item);
+
+
+ /* Quit */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_QUIT);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_Q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_container_add(GTK_CONTAINER(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_scan_win_delete, NULL);
+ gtk_widget_show(item);
+
+ return menu;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_set_medium_callback(GtkWidget *widget, gpointer data)
+{
+ int medium_nr = (int) data;
+
+ if (medium_nr != xsane.medium_nr)
+ {
+ xsane.medium_changed = TRUE;
+ }
+
+ xsane.medium_nr = medium_nr;
+
+ xsane_set_medium(preferences.medium[medium_nr]);
+
+ xsane_update_gamma_curve(TRUE); /* if necessary update preview gamma */
+
+ preview_display_valid(xsane.preview); /* update valid status of preview image */
+ /* the valid status depends on gamma handling an medium change */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_set_pref_unit_callback(GtkWidget *widget, gpointer data)
+{
+ const char *unit = data;
+ double unit_conversion_factor = 1.0;
+
+ DBG(DBG_proc, "xsane_set_pref_unit_callback\n");
+
+ gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.length_unit_mm), (GtkSignalFunc) xsane_set_pref_unit_callback, "mm");
+ gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.length_unit_cm), (GtkSignalFunc) xsane_set_pref_unit_callback, "cm");
+ gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.length_unit_in), (GtkSignalFunc) xsane_set_pref_unit_callback, "in");
+
+ if (strcmp(unit, "mm") == 0)
+ {
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_mm), TRUE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_cm), FALSE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_in), FALSE);
+ }
+ else if (strcmp(unit, "cm") == 0)
+ {
+ unit_conversion_factor = 10.0;
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_mm), FALSE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_cm), TRUE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_in), FALSE);
+ }
+ else if (strcmp(unit, "in") == 0)
+ {
+ unit_conversion_factor = 25.4;
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_mm), FALSE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_cm), FALSE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.length_unit_in), TRUE);
+ }
+
+ gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.length_unit_mm), (GtkSignalFunc) xsane_set_pref_unit_callback, "mm");
+ gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.length_unit_cm), (GtkSignalFunc) xsane_set_pref_unit_callback, "cm");
+ gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.length_unit_in), (GtkSignalFunc) xsane_set_pref_unit_callback, "in");
+
+ preferences.length_unit = unit_conversion_factor;
+
+ xsane_refresh_dialog();
+ if (xsane.preview)
+ {
+ preview_area_resize(xsane.preview); /* redraw rulers */
+ }
+
+ xsane_pref_save();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_set_update_policy_callback(GtkWidget *widget, gpointer data)
+{
+ GtkUpdateType policy = (GtkUpdateType) data;
+
+ DBG(DBG_proc, "xsane_set_update_policy_callback\n");
+
+ gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.update_policy_continu), (GtkSignalFunc) xsane_set_update_policy_callback,
+ (void *) GTK_UPDATE_CONTINUOUS);
+ gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.update_policy_discont), (GtkSignalFunc) xsane_set_update_policy_callback,
+ (void *) GTK_UPDATE_DISCONTINUOUS);
+ gtk_signal_handler_block_by_func(GTK_OBJECT(xsane.update_policy_delayed), (GtkSignalFunc) xsane_set_update_policy_callback,
+ (void *) GTK_UPDATE_DELAYED);
+
+ if (policy == GTK_UPDATE_CONTINUOUS)
+ {
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_continu), TRUE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_discont), FALSE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_delayed), FALSE);
+ }
+ else if (policy == GTK_UPDATE_DISCONTINUOUS)
+ {
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_continu), FALSE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_discont), TRUE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_delayed), FALSE);
+ }
+ else if (policy == GTK_UPDATE_DELAYED)
+ {
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_continu), FALSE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_discont), FALSE);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.update_policy_delayed), TRUE);
+ }
+
+ gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.update_policy_continu), (GtkSignalFunc) xsane_set_update_policy_callback,
+ (void *) GTK_UPDATE_CONTINUOUS);
+ gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.update_policy_discont), (GtkSignalFunc) xsane_set_update_policy_callback,
+ (void *) GTK_UPDATE_DISCONTINUOUS);
+ gtk_signal_handler_unblock_by_func(GTK_OBJECT(xsane.update_policy_delayed), (GtkSignalFunc) xsane_set_update_policy_callback,
+ (void *) GTK_UPDATE_DELAYED);
+
+ preferences.gtk_update_policy = policy;
+ xsane_pref_save();
+
+ xsane_back_gtk_refresh_dialog();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static gint xsane_close_info_callback(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *dialog_widget = data;
+
+ DBG(DBG_proc, "xsane_close_info_callback\n");
+
+ gtk_widget_destroy(dialog_widget);
+
+ xsane_set_sensitivity(TRUE);
+
+ xsane_update_histogram(TRUE /* update raw */);
+#ifdef HAVE_WORKING_GTK_GAMMACURVE
+ xsane_update_gamma_dialog();
+#endif
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_info_dialog(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *info_dialog, *vbox, *button, *label, *frame, *framebox, *hbox, *table;
+ char buf[256];
+ char *bufptr;
+ GtkAccelGroup *accelerator_group;
+
+ DBG(DBG_proc, "xsane_info_dialog\n");
+
+ sane_get_parameters(xsane.dev, &xsane.param); /* update xsane.param */
+
+ info_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_position(GTK_WINDOW(info_dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_policy(GTK_WINDOW(info_dialog), FALSE, FALSE, FALSE);
+ gtk_signal_connect(GTK_OBJECT(info_dialog), "destroy", GTK_SIGNAL_FUNC(xsane_close_info_callback), info_dialog);
+ snprintf(buf, sizeof(buf), "%s %s %s", xsane.prog_name, WINDOW_INFO, xsane.device_text);
+ gtk_window_set_title(GTK_WINDOW(info_dialog), buf);
+
+ accelerator_group = gtk_accel_group_new();
+ gtk_accel_group_attach(accelerator_group, GTK_OBJECT(info_dialog));
+
+ xsane_set_window_icon(info_dialog, 0);
+
+ vbox = gtk_vbox_new(/* not homogeneous */ FALSE, 5);
+ gtk_container_add(GTK_CONTAINER(info_dialog), vbox);
+ gtk_widget_show(vbox);
+
+ frame = gtk_frame_new(TEXT_SCANNER_BACKEND);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+ gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5);
+ gtk_widget_show(frame);
+
+ framebox = gtk_vbox_new(/* not homogeneous */ FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(frame), framebox);
+ gtk_widget_show(framebox);
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(framebox), hbox, TRUE, TRUE, 5);
+ gtk_widget_show(hbox);
+
+ table = gtk_table_new(6, 2, FALSE);
+ gtk_box_pack_start(GTK_BOX(hbox), table, FALSE, FALSE, 5);
+ gtk_widget_show(table);
+
+ snprintf(buf, sizeof(buf), TEXT_VENDOR);
+ label = xsane_info_table_text_new(table, buf, 0, 0);
+ snprintf(buf, sizeof(buf), "%s", xsane.devlist[xsane.selected_dev]->vendor);
+ label = xsane_info_table_text_new(table, buf, 1, 0);
+
+ snprintf(buf, sizeof(buf), TEXT_MODEL);
+ label = xsane_info_table_text_new(table, buf, 0, 1);
+ snprintf(buf, sizeof(buf), "%s", xsane.devlist[xsane.selected_dev]->model);
+ label = xsane_info_table_text_new(table, buf, 1, 1);
+
+ snprintf(buf, sizeof(buf), TEXT_TYPE);
+ label = xsane_info_table_text_new(table, buf, 0, 2);
+ snprintf(buf, sizeof(buf), "%s", _(xsane.devlist[xsane.selected_dev]->type));
+ label = xsane_info_table_text_new(table, buf, 1, 2);
+
+ snprintf(buf, sizeof(buf), TEXT_DEVICE);
+ label = xsane_info_table_text_new(table, buf, 0, 3);
+ bufptr = strrchr(xsane.devlist[xsane.selected_dev]->name, ':');
+ if (bufptr)
+ {
+ snprintf(buf, sizeof(buf), "%s", bufptr+1);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), xsane.devlist[xsane.selected_dev]->name);
+ }
+ label = xsane_info_table_text_new(table, buf, 1, 3);
+
+ snprintf(buf, sizeof(buf), "%s", xsane.devlist[xsane.selected_dev]->name);
+ bufptr = strrchr(buf, ':');
+ if (bufptr)
+ {
+ *bufptr = 0;
+ label = xsane_info_table_text_new(table, buf, 1, 4);
+ snprintf(buf, sizeof(buf), TEXT_LOADED_BACKEND);
+ label = xsane_info_table_text_new(table, buf, 0, 4);
+ }
+
+ snprintf(buf, sizeof(buf), TEXT_SANE_VERSION);
+ label = xsane_info_table_text_new(table, buf, 0, 5);
+ snprintf(buf, sizeof(buf), "%d.%d.%d",SANE_VERSION_MAJOR(xsane.sane_backend_versioncode),
+ SANE_VERSION_MINOR(xsane.sane_backend_versioncode),
+ SANE_VERSION_BUILD(xsane.sane_backend_versioncode));
+ label = xsane_info_table_text_new(table, buf, 1, 5);
+
+
+ frame = gtk_frame_new(TEXT_RECENT_VALUES);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+ gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5);
+ gtk_widget_show(frame);
+
+ framebox = gtk_vbox_new(/* not homogeneous */ FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(frame), framebox);
+ gtk_widget_show(framebox);
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(framebox), hbox, TRUE, TRUE, 5);
+ gtk_widget_show(hbox);
+
+ table = gtk_table_new(4, 2, FALSE);
+ gtk_box_pack_start(GTK_BOX(hbox), table, FALSE, FALSE, 5);
+ gtk_widget_show(table);
+
+ if ((xsane.xsane_colors > 1) && (xsane.scanner_gamma_color)) /* color gamma correction by scanner */
+ {
+ const SANE_Option_Descriptor *opt;
+
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_CORR_BY);
+ label = xsane_info_table_text_new(table, buf, 0, 0);
+ snprintf(buf, sizeof(buf), TEXT_SCANNER);
+ label = xsane_info_table_text_new(table, buf, 1, 0);
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector_r);
+
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_INPUT_DEPTH);
+ label = xsane_info_table_text_new(table, buf, 0, 1);
+ snprintf(buf, sizeof(buf), "%d bit", (int) (0.5 + log((double)opt->size / sizeof(opt->type)) / log(2.0)));
+ label = xsane_info_table_text_new(table, buf, 1, 1);
+
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_OUTPUT_DEPTH);
+ label = xsane_info_table_text_new(table, buf, 0, 2);
+ snprintf(buf, sizeof(buf), "%d bit", (int) (0.5 + log(opt->constraint.range->max+1.0) / log(2.0)));
+ label = xsane_info_table_text_new(table, buf, 1, 2);
+ }
+ else if ((!xsane.xsane_colors > 1) && (xsane.scanner_gamma_gray)) /* gray gamma correction by scanner */
+ {
+ const SANE_Option_Descriptor *opt;
+
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_CORR_BY);
+ label = xsane_info_table_text_new(table, buf, 0, 0);
+ snprintf(buf, sizeof(buf), TEXT_SCANNER);
+ label = xsane_info_table_text_new(table, buf, 1, 0);
+
+ opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.gamma_vector);
+
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_INPUT_DEPTH);
+ label = xsane_info_table_text_new(table, buf, 0, 1);
+ snprintf(buf, sizeof(buf), "%d bit", (int) (0.5 + log((double)opt->size / sizeof(opt->type)) / log(2.0)));
+ label = xsane_info_table_text_new(table, buf, 1, 1);
+
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_OUTPUT_DEPTH);
+ label = xsane_info_table_text_new(table, buf, 0, 2);
+ snprintf(buf, sizeof(buf), "%d bit", (int) (0.5 + log(opt->constraint.range->max+1.0) / log(2.0)));
+ label = xsane_info_table_text_new(table, buf, 1, 2);
+ }
+ else if (xsane.param.depth != 1) /* gamma correction by xsane */
+ {
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_CORR_BY);
+ label = xsane_info_table_text_new(table, buf, 0, 0);
+ snprintf(buf, sizeof(buf), TEXT_SOFTWARE_XSANE);
+ label = xsane_info_table_text_new(table, buf, 1, 0);
+
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_INPUT_DEPTH);
+ label = xsane_info_table_text_new(table, buf, 0, 1);
+ snprintf(buf, sizeof(buf), "%d bit", xsane.param.depth);
+ label = xsane_info_table_text_new(table, buf, 1, 1);
+
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_OUTPUT_DEPTH);
+ label = xsane_info_table_text_new(table, buf, 0, 2);
+/* snprintf(buf, sizeof(buf), "%d bit", 8); */
+ snprintf(buf, sizeof(buf), "%d bit", xsane.param.depth);
+ label = xsane_info_table_text_new(table, buf, 1, 2);
+ }
+ else /* no gamma enhancement */
+ {
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_CORR_BY);
+ label = xsane_info_table_text_new(table, buf, 0, 0);
+ snprintf(buf, sizeof(buf), TEXT_NONE);
+ label = xsane_info_table_text_new(table, buf, 1, 0);
+
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_INPUT_DEPTH);
+ label = xsane_info_table_text_new(table, buf, 0, 1);
+ snprintf(buf, sizeof(buf), TEXT_NONE);
+ label = xsane_info_table_text_new(table, buf, 1, 1);
+
+ snprintf(buf, sizeof(buf), TEXT_GAMMA_OUTPUT_DEPTH);
+ label = xsane_info_table_text_new(table, buf, 0, 2);
+ snprintf(buf, sizeof(buf), TEXT_NONE);
+ label = xsane_info_table_text_new(table, buf, 1, 2);
+ }
+
+ snprintf(buf, sizeof(buf), TEXT_SCANNER_OUTPUT_DEPTH);
+ label = xsane_info_table_text_new(table, buf, 0, 3);
+ snprintf(buf, sizeof(buf), "%d bit", xsane.param.depth);
+ label = xsane_info_table_text_new(table, buf, 1, 3);
+
+ frame = gtk_frame_new(TEXT_OUTPUT_FORMATS);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN);
+ gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5);
+ gtk_widget_show(frame);
+
+ framebox = gtk_vbox_new(/* not homogeneous */ FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(frame), framebox);
+ gtk_widget_show(framebox);
+
+ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(framebox), hbox, TRUE, TRUE, 5);
+ gtk_widget_show(hbox);
+
+ table = gtk_table_new(2, 2, FALSE);
+ gtk_box_pack_start(GTK_BOX(hbox), table, FALSE, FALSE, 5);
+ gtk_widget_show(table);
+
+ snprintf(buf, sizeof(buf), TEXT_8BIT_FORMATS);
+ label = xsane_info_table_text_new(table, buf, 0, 0);
+
+ bufptr=buf;
+
+#ifdef HAVE_LIBJPEG
+ sprintf(bufptr, "JPEG, ");
+ bufptr += strlen(bufptr);
+#endif
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+ sprintf(bufptr, "PNG, ");
+ bufptr += strlen(bufptr);
+#endif
+#endif
+
+ sprintf(bufptr, "PNM, ");
+ bufptr += strlen(bufptr);
+
+ sprintf(bufptr, "PS, ");
+ bufptr += strlen(bufptr);
+
+#ifdef SUPPORT_RGBA
+ sprintf(bufptr, "RGBA, ");
+ bufptr += strlen(bufptr);
+#endif
+
+#ifdef HAVE_LIBTIFF
+ sprintf(bufptr, "TIFF, ");
+ bufptr += strlen(bufptr);
+#endif
+
+ bufptr--;
+ bufptr--;
+ *bufptr = 0; /* erase last comma */
+
+ label = xsane_info_table_text_new(table, buf, 1, 0);
+
+ snprintf(buf, sizeof(buf), TEXT_16BIT_FORMATS);
+ label = xsane_info_table_text_new(table, buf, 0, 1);
+
+ bufptr=buf;
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+ sprintf(bufptr, "PNG, ");
+ bufptr += strlen(bufptr);
+#endif
+#endif
+
+ sprintf(bufptr, "PNM, ");
+ bufptr += strlen(bufptr);
+
+ sprintf(bufptr, "RAW, ");
+ bufptr += strlen(bufptr);
+
+#ifdef SUPPORT_RGBA
+ sprintf(bufptr, "RGBA, ");
+ bufptr += strlen(bufptr);
+#endif
+
+#ifdef HAVE_LIBTIFF
+ sprintf(bufptr, "TIFF, ");
+ bufptr += strlen(bufptr);
+#endif
+
+ bufptr--;
+ bufptr--;
+ *bufptr = 0; /* erase last comma */
+
+ label = xsane_info_table_text_new(table, buf, 1, 1);
+
+/* gtk_label_set((GtkLabel *)label, "HALLO"); */
+
+ button = gtk_button_new_with_label(BUTTON_CLOSE);
+ gtk_widget_add_accelerator(button, "clicked", accelerator_group, GDK_Escape, 0, GTK_ACCEL_LOCKED);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_close_info_callback, info_dialog);
+ gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+
+ gtk_widget_show(info_dialog);
+
+ xsane_clear_histogram(&xsane.histogram_raw);
+ xsane_clear_histogram(&xsane.histogram_enh);
+
+ xsane_set_sensitivity(FALSE);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static GtkWidget *about_dialog = NULL;
+
+static int xsane_close_about_dialog_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_close_about_dialog_callback\n");
+
+ gtk_widget_destroy(about_dialog);
+ about_dialog = NULL;
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_about_dialog(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *vbox, *hbox, *button, *label;
+ char buf[1024];
+ char filename[PATH_MAX];
+ GtkWidget *pixmapwidget;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap;
+ GtkStyle *style;
+ GdkColor *bg_trans;
+ GtkAccelGroup *accelerator_group;
+
+ DBG(DBG_proc, "xsane_about_dialog\n");
+
+ if (about_dialog)
+ {
+ return;
+ }
+
+ about_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_position(GTK_WINDOW(about_dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_policy(GTK_WINDOW(about_dialog), FALSE, FALSE, FALSE);
+ gtk_signal_connect(GTK_OBJECT(about_dialog), "destroy", GTK_SIGNAL_FUNC(xsane_close_about_dialog_callback), NULL);
+ snprintf(buf, sizeof(buf), "%s %s", WINDOW_ABOUT_XSANE, xsane.prog_name);
+ gtk_window_set_title(GTK_WINDOW(about_dialog), buf);
+
+ accelerator_group = gtk_accel_group_new();
+ gtk_accel_group_attach(accelerator_group, GTK_OBJECT(about_dialog));
+
+ xsane_set_window_icon(about_dialog, 0);
+
+ hbox = gtk_hbox_new(/* not homogeneous */ TRUE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_container_add(GTK_CONTAINER(about_dialog), hbox);
+ gtk_widget_show(hbox);
+
+ vbox = gtk_vbox_new(/* not homogeneous */ FALSE, 5);
+ gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 20);
+ gtk_widget_show(vbox);
+
+ /* xsane logo */
+ gtk_widget_realize(about_dialog);
+
+ style = gtk_widget_get_style(about_dialog);
+ bg_trans = &style->bg[GTK_STATE_NORMAL];
+
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane-logo", 0, ".xpm", XSANE_PATH_SYSTEM);
+ pixmap = gdk_pixmap_create_from_xpm(about_dialog->window, &mask, bg_trans, filename);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(vbox), pixmapwidget, FALSE, FALSE, 2);
+ gtk_widget_show(pixmapwidget);
+ gdk_pixmap_unref(pixmap);
+
+
+ xsane_separator_new(vbox, 5);
+
+
+ snprintf(buf, sizeof(buf), "XSane %s %s\n"
+ "%s %s\n"
+ "\n"
+ "%s %s\n"
+ "%s %s\n",
+ TEXT_VERSION, XSANE_VERSION,
+ XSANE_COPYRIGHT_SIGN, XSANE_COPYRIGHT_TXT,
+ TEXT_HOMEPAGE, XSANE_HOMEPAGE,
+ TEXT_EMAIL, XSANE_EMAIL);
+
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
+ gtk_widget_show(label);
+
+
+ button = gtk_button_new_with_label(BUTTON_CLOSE);
+ gtk_widget_add_accelerator(button, "clicked", accelerator_group, GDK_Escape, 0, GTK_ACCEL_LOCKED);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_close_about_dialog_callback, NULL);
+ gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+
+ gtk_widget_show(about_dialog);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static GtkWidget *about_translation_dialog = NULL;
+
+static int xsane_close_about_translation_dialog_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_close_about_translation_dialog_callback\n");
+
+ gtk_widget_destroy(about_translation_dialog);
+ about_translation_dialog = NULL;
+
+ return FALSE;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_about_translation_dialog(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *vbox, *hbox, *button, *label;
+ char buf[512];
+ char filename[PATH_MAX];
+ GtkWidget *pixmapwidget;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap;
+ GtkStyle *style;
+ GdkColor *bg_trans;
+ GtkAccelGroup *accelerator_group;
+
+ DBG(DBG_proc, "xsane_about_translation_dialog\n");
+
+ if (about_translation_dialog)
+ {
+ return;
+ }
+
+ about_translation_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_position(GTK_WINDOW(about_translation_dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_policy(GTK_WINDOW(about_translation_dialog), FALSE, FALSE, FALSE);
+ gtk_signal_connect(GTK_OBJECT(about_translation_dialog), "destroy", GTK_SIGNAL_FUNC(xsane_close_about_translation_dialog_callback), NULL);
+ snprintf(buf, sizeof(buf), "%s %s", WINDOW_ABOUT_TRANSLATION, xsane.prog_name);
+ gtk_window_set_title(GTK_WINDOW(about_translation_dialog), buf);
+
+ accelerator_group = gtk_accel_group_new();
+ gtk_accel_group_attach(accelerator_group, GTK_OBJECT(about_translation_dialog));
+
+ xsane_set_window_icon(about_translation_dialog, 0);
+
+ hbox = gtk_hbox_new(/* not homogeneous */ TRUE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_container_add(GTK_CONTAINER(about_translation_dialog), hbox);
+ gtk_widget_show(hbox);
+
+ vbox = gtk_vbox_new(/* not homogeneous */ FALSE, 5);
+ gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 20);
+ gtk_widget_show(vbox);
+
+ /* xsane logo */
+ gtk_widget_realize(about_translation_dialog);
+
+ style = gtk_widget_get_style(about_translation_dialog);
+ bg_trans = &style->bg[GTK_STATE_NORMAL];
+
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane-logo", 0, ".xpm", XSANE_PATH_SYSTEM);
+ pixmap = gdk_pixmap_create_from_xpm(about_translation_dialog->window, &mask, bg_trans, filename);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(vbox), pixmapwidget, FALSE, FALSE, 2);
+ gtk_widget_show(pixmapwidget);
+ gdk_pixmap_unref(pixmap);
+
+
+ xsane_separator_new(vbox, 5);
+
+ snprintf(buf, sizeof(buf), "%s\n"
+ "%s",
+ TEXT_TRANSLATION,
+ TEXT_TRANSLATION_INFO);
+
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
+ gtk_widget_show(label);
+
+
+ button = gtk_button_new_with_label(BUTTON_CLOSE);
+ gtk_widget_add_accelerator(button, "clicked", accelerator_group, GDK_Escape, 0, GTK_ACCEL_LOCKED);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_close_about_translation_dialog_callback, NULL);
+ gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+
+ gtk_widget_show(about_translation_dialog);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static SANE_Status xsane_get_area_value(int option, float *val, SANE_Int *unit)
+{
+ const SANE_Option_Descriptor *opt;
+ SANE_Handle dev;
+ SANE_Word word;
+
+ DBG(DBG_proc, "xsane_get_area_value\n");
+
+ if (option <= 0)
+ {
+ return -1;
+ }
+
+ if (xsane_control_option(xsane.dev, option, SANE_ACTION_GET_VALUE, &word, 0) == SANE_STATUS_GOOD)
+ {
+ dev = xsane.dev;
+ opt = xsane_get_option_descriptor(dev, option);
+
+ if (unit)
+ {
+ *unit = opt->unit;
+ }
+
+ if (val)
+ {
+ if (opt->type == SANE_TYPE_FIXED)
+ {
+ *val = (float) word / 65536.0;
+ }
+ else
+ {
+ *val = (float) word;
+ }
+ }
+
+ return 0;
+ }
+ else if (val)
+ {
+ *val = 0;
+ }
+ return -2;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef XSANE_TEST
+static void xsane_batch_scan_delete_callback(GtkWidget *widget, gpointer list)
+{
+ gtk_list_remove_items(GTK_LIST(list), GTK_LIST(list)->selection);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_batch_scan_add_callback(GtkWidget *widget, gpointer list)
+{
+ GtkWidget *list_item;
+ float tlx, tly, brx, bry;
+ SANE_Int unit;
+ char buf[255];
+
+ DBG(DBG_proc, "xsane_batch_scan_add_callback\n");
+
+ xsane_get_area_value(xsane.well_known.coord[0], &tlx, &unit);
+ xsane_get_area_value(xsane.well_known.coord[1], &tly, &unit);
+ xsane_get_area_value(xsane.well_known.coord[2], &brx, &unit);
+ xsane_get_area_value(xsane.well_known.coord[3], &bry, &unit);
+
+ if (unit == SANE_UNIT_MM)
+ {
+ snprintf(buf, sizeof(buf), " top left (%7.2fmm, %7.2fmm), bottom right (%7.2fmm, %7.2fmm)", tlx, tly, brx, bry);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), " top left (%5.0fpx, %5.0fpx), bottom right (%5.0fpx, %5.0fpx)", tlx, tly, brx, bry);
+ }
+
+ list_item = gtk_list_item_new_with_label(buf);
+ gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(buf));
+ gtk_container_add(GTK_CONTAINER(list), list_item);
+ gtk_widget_show(list_item);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_batch_scan_dialog(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *batch_scan_dialog, *batch_scan_vbox, *hbox, *button, *scrolled_window, *list;
+ char buf[64];
+
+ DBG(DBG_proc, "xsane_batch_scan_dialog\n");
+
+ batch_scan_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ xsane_set_window_icon(batch_scan_dialog, 0);
+
+ snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_BATCH_SCAN);
+ gtk_window_set_title(GTK_WINDOW(batch_scan_dialog), buf);
+
+ /* set the main vbox */
+ batch_scan_vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(batch_scan_vbox), 0);
+ gtk_container_add(GTK_CONTAINER(batch_scan_dialog), batch_scan_vbox);
+ gtk_widget_show(batch_scan_vbox);
+
+ /* set the main hbox */
+ hbox = gtk_hbox_new(FALSE, 0);
+ xsane_separator_new(vbox, 2);
+ gtk_box_pack_end(GTK_BOX(batch_scan_vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+ scrolled_window = gtk_scrolled_window_new(0, 0);
+ gtk_widget_set_usize(scrolled_window, 400, 200);
+ gtk_container_add(GTK_CONTAINER(batch_scan_vbox), scrolled_window);
+ gtk_widget_show(scrolled_window);
+
+ list = gtk_list_new();
+
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), list);
+
+ gtk_widget_show(list);
+
+
+ button = gtk_button_new_with_label(BUTTON_OK);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_close_dialog_callback, batch_scan_dialog);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_ADD_AREA);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_batch_scan_add_callback, list);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_DELETE);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_batch_scan_delete_callback, list);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(batch_scan_dialog);
+}
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_dialog_delete()
+{
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_dialog()
+{
+ GtkWidget *fax_dialog, *fax_scan_vbox, *fax_project_vbox, *hbox, *fax_project_exists_hbox, *button;
+ GtkWidget *scrolled_window, *list;
+ char buf[64];
+ GtkWidget *pixmapwidget, *text;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap;
+
+ DBG(DBG_proc, "xsane_fax_dialog\n");
+
+ if (xsane.fax_dialog)
+ {
+ return; /* window already is open */
+ }
+
+ /* GTK_WINDOW_DIALOG looks better but does not place it nice*/
+ fax_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title(GTK_WINDOW(fax_dialog), buf);
+
+ snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_FAX_PROJECT);
+ gtk_window_set_title(GTK_WINDOW(fax_dialog), buf);
+ gtk_signal_connect(GTK_OBJECT(fax_dialog), "delete_event", (GtkSignalFunc) xsane_fax_dialog_delete, NULL);
+ xsane_set_window_icon(fax_dialog, 0);
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(fax_dialog));
+
+ /* set the main vbox */
+ fax_scan_vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(fax_scan_vbox), 0);
+ gtk_container_add(GTK_CONTAINER(fax_dialog), fax_scan_vbox);
+ gtk_widget_show(fax_scan_vbox);
+
+ /* fax project */
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(fax_scan_vbox), hbox, FALSE, FALSE, 2);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(xsane.shell->window, &mask, xsane.bg_trans, (gchar **) fax_xpm);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
+ gdk_pixmap_unref(pixmap);
+
+ text = gtk_entry_new_with_max_length(128);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAXPROJECT);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.fax_project);
+ gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4);
+ gtk_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_fax_project_changed_callback, NULL);
+
+ xsane.fax_project_entry = text;
+
+ gtk_widget_show(pixmapwidget);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+
+ fax_project_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(fax_scan_vbox), fax_project_vbox, TRUE, TRUE, 0);
+ gtk_widget_show(fax_project_vbox);
+
+ /* fax receiver */
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(fax_project_vbox), hbox, FALSE, FALSE, 2);
+
+ gtk_widget_realize(fax_dialog);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(fax_dialog->window, &mask, xsane.bg_trans, (gchar **) faxreceiver_xpm);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
+ gdk_pixmap_unref(pixmap);
+
+ text = gtk_entry_new_with_max_length(128);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAXRECEIVER);
+ gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4);
+ gtk_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_fax_receiver_changed_callback, NULL);
+
+ xsane.fax_receiver_entry = text;
+
+ gtk_widget_show(pixmapwidget);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+
+ /* fine mode */
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_FINE_MODE);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_FAX_FINE_MODE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), xsane.fax_fine_mode);
+ gtk_box_pack_start(GTK_BOX(fax_project_vbox), button, FALSE, FALSE, 2);
+ gtk_widget_show(button);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_fine_mode_callback, NULL);
+
+
+ scrolled_window = gtk_scrolled_window_new(0, 0);
+ gtk_widget_set_usize(scrolled_window, 200, 100);
+ gtk_container_add(GTK_CONTAINER(fax_project_vbox), scrolled_window);
+ gtk_widget_show(scrolled_window);
+
+ list = gtk_list_new();
+/* gtk_list_set_selection_mode(list, GTK_SELECTION_BROWSE); */
+
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), list);
+
+ gtk_widget_show(list);
+
+ xsane.fax_list = list;
+
+
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(fax_project_vbox), hbox, FALSE, FALSE, 2);
+
+ button = gtk_button_new_with_label(BUTTON_FILE_INSERT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_insert_callback, list);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_PAGE_SHOW);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_show_callback, list);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_PAGE_RENAME);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_callback, list);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_PAGE_DELETE);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_delete_callback, list);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ xsane_button_new_with_pixmap(fax_dialog->window, hbox, move_up_xpm, 0, (GtkSignalFunc) xsane_fax_entry_move_up_callback, list);
+ xsane_button_new_with_pixmap(fax_dialog->window, hbox, move_down_xpm, 0, (GtkSignalFunc) xsane_fax_entry_move_down_callback, list);
+
+ gtk_widget_show(hbox);
+
+ xsane.fax_project_box = fax_project_vbox;
+
+ /* set the main hbox */
+ hbox = gtk_hbox_new(FALSE, 0);
+ xsane_separator_new(fax_project_vbox, 2);
+ gtk_box_pack_end(GTK_BOX(fax_scan_vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+
+ fax_project_exists_hbox = gtk_hbox_new(FALSE, 2);
+ gtk_box_pack_start(GTK_BOX(hbox), fax_project_exists_hbox, TRUE, TRUE, 0);
+
+ button = gtk_button_new_with_label(BUTTON_SEND_PROJECT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_send, NULL);
+ gtk_box_pack_start(GTK_BOX(fax_project_exists_hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_DELETE_PROJECT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_project_delete, NULL);
+ gtk_box_pack_start(GTK_BOX(fax_project_exists_hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(fax_project_exists_hbox);
+ xsane.fax_project_exists = fax_project_exists_hbox;
+
+ button = gtk_button_new_with_label(BUTTON_CREATE_PROJECT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_project_create, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ xsane.fax_project_not_exists = button;
+
+ xsane.fax_dialog = fax_dialog;
+
+ xsane_fax_project_load();
+
+ gtk_widget_show(fax_dialog);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_dialog_close()
+{
+ DBG(DBG_proc, "xsane_fax_dialog_close\n");
+
+ if (xsane.fax_dialog == NULL)
+ {
+ return;
+ }
+
+ gtk_accel_group_detach(xsane.accelerator_group, GTK_OBJECT(xsane.fax_dialog));
+ gtk_widget_destroy(xsane.fax_dialog);
+
+ xsane.fax_dialog = NULL;
+ xsane.fax_list = NULL;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_project_load()
+{
+ FILE *projectfile;
+ char page[256];
+ char buf[256];
+ GtkWidget *list_item;
+ int i;
+ char c;
+
+ DBG(DBG_proc, "xsane_fax_project_load\n");
+
+ gtk_signal_disconnect_by_func(GTK_OBJECT(xsane.fax_receiver_entry), GTK_SIGNAL_FUNC(xsane_fax_receiver_changed_callback), 0);
+ gtk_list_remove_items(GTK_LIST(xsane.fax_list), GTK_LIST(xsane.fax_list)->children);
+
+ snprintf(buf, sizeof(buf), "%s/xsane-fax-list", preferences.fax_project);
+ projectfile = fopen(buf, "rb"); /* read binary (b for win32) */
+
+ if ((!projectfile) || (feof(projectfile)))
+ {
+ snprintf(buf, sizeof(buf), "%s/page-1.ps", preferences.fax_project);
+ xsane.fax_filename=strdup(buf);
+ xsane_update_counter_in_filename(&xsane.fax_filename, FALSE, 0, preferences.filename_counter_len); /* correct counter len */
+
+ xsane.fax_receiver=strdup("");
+ gtk_entry_set_text(GTK_ENTRY(xsane.fax_receiver_entry), (char *) xsane.fax_receiver);
+
+ gtk_widget_set_sensitive(xsane.fax_project_box, FALSE);
+ gtk_widget_hide(xsane.fax_project_exists);
+ gtk_widget_show(xsane.fax_project_not_exists);
+ gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE);
+ }
+ else
+ {
+ i=0;
+ c=0;
+ while ((i<255) && (c != 10) && (c != EOF)) /* first line is receiver phone number or address */
+ {
+ c = fgetc(projectfile);
+ page[i++] = c;
+ }
+ page[i-1] = 0;
+
+ xsane.fax_receiver=strdup(page);
+ gtk_entry_set_text(GTK_ENTRY(xsane.fax_receiver_entry), (char *) xsane.fax_receiver);
+
+
+ i=0;
+ c=0;
+ while ((i<255) && (c != 10) && (c != EOF)) /* second line is next fax filename */
+ {
+ c = fgetc(projectfile);
+ page[i++] = c;
+ }
+ page[i-1] = 0;
+
+ snprintf(buf, sizeof(buf), "%s/%s", preferences.fax_project, page);
+ xsane.fax_filename=strdup(buf);
+
+ while (!feof(projectfile))
+ {
+ i=0;
+ c=0;
+
+ while ((i<255) && (c != 10) && (c != EOF))
+ {
+ c = fgetc(projectfile);
+ page[i++] = c;
+ }
+ page[i-1]=0;
+
+ if (c > 1)
+ {
+ list_item = gtk_list_item_new_with_label(page);
+ gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page));
+ gtk_container_add(GTK_CONTAINER(xsane.fax_list), list_item);
+ gtk_widget_show(list_item);
+ }
+ }
+ gtk_widget_set_sensitive(xsane.fax_project_box, TRUE);
+ gtk_widget_show(xsane.fax_project_exists);
+ gtk_widget_hide(xsane.fax_project_not_exists);
+ gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE);
+ }
+
+ if (projectfile)
+ {
+ fclose(projectfile);
+ }
+
+ gtk_signal_connect(GTK_OBJECT(xsane.fax_receiver_entry), "changed", (GtkSignalFunc) xsane_fax_receiver_changed_callback, NULL);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_project_delete()
+{
+ char *page;
+ char file[256];
+ GList *list = (GList *) GTK_LIST(xsane.fax_list)->children;
+ GtkObject *list_item;
+
+ DBG(DBG_proc, "xsane_fax_project_delete\n");
+
+ while (list)
+ {
+ list_item = GTK_OBJECT(list->data);
+ page = strdup((char *) gtk_object_get_data(list_item, "list_item_data"));
+ xsane_convert_text_to_filename(&page);
+ snprintf(file, sizeof(file), "%s/%s.ps", preferences.fax_project, page);
+ free(page);
+ remove(file);
+ list = list->next;
+ }
+ snprintf(file, sizeof(file), "%s/xsane-fax-list", preferences.fax_project);
+ remove(file);
+ snprintf(file, sizeof(file), "%s", preferences.fax_project);
+ rmdir(file);
+
+ xsane_fax_project_load();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_fax_project_save()
+{
+ FILE *projectfile;
+ char *page;
+ char filename[256];
+ GList *list = (GList *) GTK_LIST(xsane.fax_list)->children;
+ GtkObject *list_item;
+
+ DBG(DBG_proc, "xsane_fax_project_save\n");
+
+ umask((mode_t) preferences.directory_umask); /* define new file permissions */
+ mkdir(preferences.fax_project, 0777); /* make sure directory exists */
+
+ snprintf(filename, sizeof(filename), "%s/xsane-fax-list", preferences.fax_project);
+
+ if (xsane_create_secure_file(filename)) /* remove possibly existing symbolic links for security
+*/
+ {
+ char buf[256];
+
+ snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, filename);
+ xsane_back_gtk_error(buf, TRUE);
+ return; /* error */
+ }
+ projectfile = fopen(filename, "wb"); /* write binary (b for win32) */
+
+ if (!projectfile)
+ {
+ xsane_back_gtk_error(ERR_CREATE_FAX_PROJECT, TRUE);
+
+ return;
+ }
+
+ if (xsane.fax_receiver)
+ {
+ fprintf(projectfile, "%s\n", xsane.fax_receiver); /* first line is receiver phone number or address */
+ }
+ else
+ {
+ fprintf(projectfile, "\n");
+ }
+
+ if (xsane.fax_filename)
+ {
+ fprintf(projectfile, "%s\n", strrchr(xsane.fax_filename, '/')+1); /* second line is next fax filename */
+ }
+ else
+ {
+ fprintf(projectfile, "\n");
+ }
+
+
+ while (list)
+ {
+ list_item = GTK_OBJECT(list->data);
+ page = (char *) gtk_object_get_data(list_item, "list_item_data");
+ fprintf(projectfile, "%s\n", page);
+ list = list->next;
+ }
+ fclose(projectfile);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_project_create()
+{
+ DBG(DBG_proc, "xsane_fax_project_create\n");
+
+ if (strlen(preferences.fax_project))
+ {
+ xsane_fax_project_save();
+ xsane_fax_project_load();
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_receiver_changed_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_fax_receiver_changed_callback\n");
+
+ if (xsane.fax_receiver)
+ {
+ free((void *) xsane.fax_receiver);
+ }
+ xsane.fax_receiver = strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
+
+ xsane_fax_project_save();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_project_changed_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_fax_project_changed_callback\n");
+
+ if (preferences.fax_project)
+ {
+ free((void *) preferences.fax_project);
+ }
+ preferences.fax_project = strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
+
+ xsane_fax_project_load();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_fine_mode_callback(GtkWidget * widget)
+{
+ DBG(DBG_proc, "xsane_fax_fine_mode_callback\n");
+
+ xsane.fax_fine_mode = (GTK_TOGGLE_BUTTON(widget)->active != 0);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_list_entrys_swap(GtkWidget *list_item_1, GtkWidget *list_item_2)
+{
+ char *text1;
+ char *text2;
+
+ DBG(DBG_proc, "xsane_list_entrys_swap\n");
+
+ text1 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_1), "list_item_data");
+ text2 = (char *) gtk_object_get_data(GTK_OBJECT(list_item_2), "list_item_data");
+
+ gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item_1))->data), text2);
+ gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item_2))->data), text1);
+ gtk_object_set_data(GTK_OBJECT(list_item_1), "list_item_data", text2);
+ gtk_object_set_data(GTK_OBJECT(list_item_2), "list_item_data", text1);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_entry_move_up_callback(GtkWidget *widget, gpointer list)
+{
+ GList *select;
+ GList *item = GTK_LIST(list)->children;
+ GtkWidget *list_item_1;
+ GtkWidget *list_item_2;
+ int position;
+ int newpos;
+
+ DBG(DBG_proc, "xsane_fax_entry_move_up\n");
+
+ select = GTK_LIST(list)->selection;
+ if (select)
+ {
+ list_item_1 = select->data;
+
+ position = gtk_list_child_position(GTK_LIST(list), list_item_1);
+ position--; /* move up */
+ newpos = position;
+
+ if (position >= 0)
+ {
+ while (position>0)
+ {
+ item = item->next;
+ position--;
+ }
+
+ list_item_2 = item->data;
+ if (list_item_2)
+ {
+ xsane_list_entrys_swap(list_item_1, list_item_2);
+ gtk_list_select_item(GTK_LIST(list), newpos);
+ xsane_fax_project_save();
+ }
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_entry_move_down_callback(GtkWidget *widget, gpointer list)
+{
+ GList *select;
+ GList *item = GTK_LIST(list)->children;
+ GtkWidget *list_item_1;
+ GtkWidget *list_item_2;
+ int position;
+ int newpos;
+
+ DBG(DBG_proc, "xsane_fax_entry_move_down\n");
+
+ select = GTK_LIST(list)->selection;
+ if (select)
+ {
+ list_item_1 = select->data;
+
+ position = gtk_list_child_position(GTK_LIST(list), list_item_1);
+ position++; /* move down */
+ newpos = position;
+
+ while ((position>0) && (item))
+ {
+ item = item->next;
+ position--;
+ }
+
+ if (item)
+ {
+ list_item_2 = item->data;
+ if (list_item_2)
+ {
+ xsane_list_entrys_swap(list_item_1, list_item_2);
+ gtk_list_select_item(GTK_LIST(list), newpos);
+ xsane_fax_project_save();
+ }
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_fax_entry_rename;
+
+static void xsane_fax_entry_rename_button_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_fax_entry_rename\n");
+
+ xsane_fax_entry_rename = (int) data;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_entry_rename_callback(GtkWidget *widget, gpointer list)
+{
+ GtkWidget *list_item;
+ GList *select;
+ char *oldpage;
+ char *newpage;
+ char oldfile[256];
+ char newfile[256];
+
+ DBG(DBG_proc, "xsane_fax_entry_rename_callback\n");
+
+ select = GTK_LIST(list)->selection;
+ if (select)
+ {
+ GtkWidget *rename_dialog;
+ GtkWidget *text;
+ GtkWidget *button;
+ GtkWidget *vbox, *hbox;
+ char buf[256];
+
+ list_item = select->data;
+ oldpage = strdup((char *) gtk_object_get_data(GTK_OBJECT(list_item), "list_item_data"));
+
+ xsane_set_sensitivity(FALSE);
+
+ rename_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ xsane_set_window_icon(rename_dialog, 0);
+
+ /* set the main vbox */
+ vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 0);
+ gtk_container_add(GTK_CONTAINER(rename_dialog), vbox);
+ gtk_widget_show(vbox);
+
+ /* set the main hbox */
+ hbox = gtk_hbox_new(FALSE, 0);
+ xsane_separator_new(vbox, 2);
+ gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+ gtk_window_set_position(GTK_WINDOW(rename_dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_policy(GTK_WINDOW(rename_dialog), FALSE, FALSE, FALSE);
+ snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_FAX_RENAME);
+ gtk_window_set_title(GTK_WINDOW(rename_dialog), buf);
+ gtk_signal_connect(GTK_OBJECT(rename_dialog), "delete_event", (GtkSignalFunc) xsane_fax_entry_rename_button_callback, (void *) -1);
+ gtk_widget_show(rename_dialog);
+
+ text = gtk_entry_new_with_max_length(64);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_FAXPAGENAME);
+ gtk_entry_set_text(GTK_ENTRY(text), oldpage);
+ gtk_widget_set_usize(text, 300, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), text, TRUE, TRUE, 4);
+ gtk_widget_show(text);
+
+
+ button = gtk_button_new_with_label("OK");
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_button_callback, (void *) 1);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label("Cancel");
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_fax_entry_rename_button_callback, (void *) -1);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+
+ xsane_fax_entry_rename = 0;
+
+ while (xsane_fax_entry_rename == 0)
+ {
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+ }
+
+ newpage = strdup(gtk_entry_get_text(GTK_ENTRY(text)));
+
+ if (xsane_fax_entry_rename == 1)
+ {
+ gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item))->data), newpage);
+ gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(newpage));
+
+ xsane_convert_text_to_filename(&oldpage);
+ xsane_convert_text_to_filename(&newpage);
+ snprintf(oldfile, sizeof(oldfile), "%s/%s.ps", preferences.fax_project, oldpage);
+ snprintf(newfile, sizeof(newfile), "%s/%s.ps", preferences.fax_project, newpage);
+
+ rename(oldfile, newfile);
+
+ xsane_fax_project_save();
+ }
+
+ free(oldpage);
+ free(newpage);
+
+ gtk_widget_destroy(rename_dialog);
+
+ xsane_set_sensitivity(TRUE);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_entry_insert_callback(GtkWidget *widget, gpointer list)
+{
+ GtkWidget *list_item;
+ char filename[1024];
+ char windowname[255];
+
+ DBG(DBG_proc, "xsane_fax_entry_insert_callback\n");
+
+ xsane_clear_histogram(&xsane.histogram_raw);
+ xsane_clear_histogram(&xsane.histogram_enh);
+
+ xsane_set_sensitivity(FALSE);
+
+ snprintf(windowname, sizeof(windowname), "%s %s %s", xsane.prog_name, WINDOW_FAX_INSERT, preferences.fax_project);
+ filename[0] = 0;
+
+ umask((mode_t) preferences.directory_umask); /* define new file permissions */
+
+ if (!xsane_back_gtk_get_filename(windowname, filename, sizeof(filename), filename, TRUE, FALSE, FALSE)) /* filename is selected */
+ {
+ FILE *sourcefile;
+
+ sourcefile = fopen(filename, "rb"); /* read binary (b for win32) */
+ if (sourcefile) /* file exists */
+ {
+ char buf[1024];
+
+ fgets(buf, 1024, sourcefile);
+
+ if (!strncmp("%!PS", buf, 4))
+ {
+ FILE *destfile;
+
+ /* copy file to project directory */
+ if (xsane_create_secure_file(xsane.fax_filename)) /* remove possibly existing symbolic links for security
+*/
+ {
+ fclose(sourcefile);
+ snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, xsane.fax_filename);
+ xsane_back_gtk_error(buf, TRUE);
+ return; /* error */
+ }
+
+ destfile = fopen(xsane.fax_filename, "wb"); /* write binary (b for win32) */
+
+ if (destfile) /* file is created */
+ {
+ char *extension;
+ char *page;
+
+ fprintf(destfile, "%s\n", buf);
+
+ while (!feof(sourcefile))
+ {
+ fgets(buf, 1024, sourcefile);
+ fprintf(destfile, "%s", buf);
+ }
+
+ fclose(destfile);
+
+
+ /* add filename to fax page list */
+ page = strdup(strrchr(xsane.fax_filename,'/')+1);
+ extension = strrchr(page, '.');
+ if (extension)
+ {
+ *extension = 0;
+ }
+
+ list_item = gtk_list_item_new_with_label(page);
+ gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page));
+ gtk_container_add(GTK_CONTAINER(xsane.fax_list), list_item);
+ gtk_widget_show(list_item);
+
+ xsane_update_counter_in_filename(&xsane.fax_filename, TRUE, 1, preferences.filename_counter_len);
+ xsane_fax_project_save();
+ free(page);
+ }
+ else /* file could not be created */
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_OPEN_FAILED, filename);
+ xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */);
+ }
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), ERR_FILE_NOT_POSTSCRIPT, filename);
+ xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */);
+ }
+
+ fclose(sourcefile);
+ }
+ else
+ {
+ char buf[256];
+ snprintf(buf, sizeof(buf), ERR_FILE_NOT_EXISTS, filename);
+ xsane_back_gtk_decision(ERR_HEADER_ERROR, (gchar **) error_xpm, buf, BUTTON_OK, NULL, TRUE /* wait */);
+ }
+ }
+
+ umask(XSANE_DEFAULT_UMASK); /* define new file permissions */
+
+ xsane_set_sensitivity(TRUE);
+ xsane_update_histogram(TRUE /* update raw */);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_entry_delete_callback(GtkWidget *widget, gpointer list)
+{
+ GtkObject *list_item;
+ GList *select;
+ char *page;
+ char file[256];
+
+ DBG(DBG_proc, "xsane_fax_entry_delete_callback\n");
+
+ select = GTK_LIST(list)->selection;
+ if (select)
+ {
+ list_item = GTK_OBJECT(select->data);
+ page = strdup((char *) gtk_object_get_data(list_item, "list_item_data"));
+ xsane_convert_text_to_filename(&page);
+ snprintf(file, sizeof(file), "%s/%s.ps", preferences.fax_project, page);
+ free(page);
+ remove(file);
+ gtk_widget_destroy(GTK_WIDGET(list_item));
+ xsane_fax_project_save();
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_show_callback(GtkWidget *widget, gpointer list)
+{
+ GtkObject *list_item;
+ GList *select;
+ pid_t pid;
+ char *arg[100];
+ char *page;
+ char buf[256];
+ int argnr;
+
+ DBG(DBG_proc, "xsane_fax_entry_show_callback\n");
+
+ select = GTK_LIST(list)->selection;
+ if (select)
+ {
+ argnr = xsane_parse_options(preferences.fax_viewer, arg);
+
+ list_item = GTK_OBJECT(select->data);
+ page = (char *) gtk_object_get_data(list_item, "list_item_data");
+ page = strdup(page);
+ xsane_convert_text_to_filename(&page);
+ snprintf(buf, sizeof(buf), "%s/%s.ps", preferences.fax_project, page);
+ free(page);
+ arg[argnr++] = buf;
+ arg[argnr] = 0;
+
+ pid = fork();
+
+ if (pid == 0) /* new process */
+ {
+ DBG(DBG_info, "trying to change user id fo new subprocess:\n");
+ DBG(DBG_info, "old effective uid = %d\n", geteuid());
+ setuid(getuid());
+ DBG(DBG_info, "new effective uid = %d\n", geteuid());
+
+ execvp(arg[0], arg); /* does not return if successfully */
+ DBG(DBG_error, "%s %s\n", ERR_FAILED_EXEC_FAX_VIEWER, preferences.fax_viewer);
+ _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_fax_send()
+{
+ char *page;
+ GList *list = (GList *) GTK_LIST(xsane.fax_list)->children;
+ GtkObject *list_item;
+ pid_t pid;
+ char *arg[1000];
+ char buf[256];
+ int argnr = 0;
+ int i;
+
+ DBG(DBG_proc, "xsane_fax_send\n");
+
+ if (list)
+ {
+ if (!xsane_option_defined(xsane.fax_receiver))
+ {
+ snprintf(buf, sizeof(buf), "%s\n", ERR_SENDFAX_RECEIVER_MISSING);
+ xsane_back_gtk_error(buf, TRUE);
+ return;
+ }
+
+ xsane_clear_histogram(&xsane.histogram_raw);
+ xsane_clear_histogram(&xsane.histogram_enh);
+
+ xsane_set_sensitivity(FALSE);
+
+ argnr = xsane_parse_options(preferences.fax_command, arg);
+
+ if (xsane.fax_fine_mode) /* fine mode */
+ {
+ if (xsane_option_defined(preferences.fax_fine_option))
+ {
+ arg[argnr++] = strdup(preferences.fax_fine_option);
+ }
+ }
+ else /* normal mode */
+ {
+ if (xsane_option_defined(preferences.fax_normal_option))
+ {
+ arg[argnr++] = strdup(preferences.fax_normal_option);
+ }
+ }
+
+ if (xsane_option_defined(preferences.fax_receiver_option))
+ {
+ arg[argnr++] = strdup(preferences.fax_receiver_option);
+ }
+ arg[argnr++] = strdup(xsane.fax_receiver);
+
+ if (xsane_option_defined(preferences.fax_postscript_option))
+ {
+ arg[argnr++] = strdup(preferences.fax_postscript_option);
+ }
+
+ while ((list) && (argnr<999)) /* add pages to options */
+ {
+ list_item = GTK_OBJECT(list->data);
+ page = strdup((char *) gtk_object_get_data(list_item, "list_item_data"));
+ xsane_convert_text_to_filename(&page);
+ snprintf(buf, sizeof(buf), "%s/%s.ps", preferences.fax_project, page);
+ free(page);
+ arg[argnr++] = strdup(buf);
+ list = list->next;
+ }
+
+ arg[argnr] = 0;
+
+ pid = fork();
+
+ if (pid == 0) /* new process */
+ {
+ DBG(DBG_info, "trying to change user id fo new subprocess:\n");
+ DBG(DBG_info, "old effective uid = %d\n", geteuid());
+ setuid(getuid());
+ DBG(DBG_info, "new effective uid = %d\n", geteuid());
+
+ execvp(arg[0], arg); /* does not return if successfully */
+ DBG(DBG_error, "%s %s\n", ERR_FAILED_EXEC_FAX_CMD, preferences.fax_command);
+ _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
+ }
+
+ for (i=0; i<argnr; i++)
+ {
+ free(arg[i]);
+ }
+
+ while (pid)
+ {
+ int status = 0;
+ pid_t pid_status = waitpid(pid, &status, WNOHANG);
+
+ if (pid == pid_status)
+ {
+ pid = 0; /* ok, child process has terminated */
+ }
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+ }
+
+ xsane_set_sensitivity(TRUE);
+ xsane_update_histogram(TRUE /* update raw */);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+#ifdef XSANE_ACTIVATE_MAIL
+
+static void xsane_mail_dialog_delete()
+{
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_dialog()
+{
+ GtkWidget *mail_dialog, *mail_scan_vbox, *mail_project_vbox;
+ GtkWidget *mail_project_exists_hbox, *button;
+ GtkWidget *hbox;
+ GtkWidget *scrolled_window, *list;
+ GtkWidget *pixmapwidget, *text;
+ GtkWidget *vscrollbar;
+ GtkWidget *attachment_frame, *text_frame;
+ GtkWidget *label;
+ GdkPixmap *pixmap;
+ GdkBitmap *mask;
+ char buf[64];
+
+ DBG(DBG_proc, "xsane_mail_dialog\n");
+
+ if (xsane.mail_dialog)
+ {
+ return; /* window already is open */
+ }
+
+ /* GTK_WINDOW_DIALOG looks better but does not place it nice*/
+ mail_dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title(GTK_WINDOW(mail_dialog), buf);
+
+ snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_MAIL_PROJECT);
+ gtk_window_set_title(GTK_WINDOW(mail_dialog), buf);
+ gtk_signal_connect(GTK_OBJECT(mail_dialog), "delete_event", (GtkSignalFunc) xsane_mail_dialog_delete, NULL);
+ xsane_set_window_icon(mail_dialog, 0);
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(mail_dialog));
+
+ /* set the main vbox */
+ mail_scan_vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(mail_scan_vbox), 0);
+ gtk_container_add(GTK_CONTAINER(mail_dialog), mail_scan_vbox);
+ gtk_widget_show(mail_scan_vbox);
+
+
+ /* mail project */
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(mail_scan_vbox), hbox, FALSE, FALSE, 2);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(xsane.shell->window, &mask, xsane.bg_trans, (gchar **) mail_xpm);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
+ gdk_pixmap_unref(pixmap);
+
+ text = gtk_entry_new_with_max_length(128);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAILPROJECT);
+ gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_project);
+ gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4);
+ gtk_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_mail_project_changed_callback, NULL);
+
+ xsane.mail_project_entry = text;
+
+ gtk_widget_show(pixmapwidget);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+
+ mail_project_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(mail_scan_vbox), mail_project_vbox, TRUE, TRUE, 0);
+ gtk_widget_show(mail_project_vbox);
+
+
+ /* mail receiver */
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(mail_project_vbox), hbox, FALSE, FALSE, 2);
+
+ gtk_widget_realize(mail_dialog);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(mail_dialog->window, &mask, xsane.bg_trans, (gchar **) mailreceiver_xpm);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
+ gdk_pixmap_unref(pixmap);
+
+ text = gtk_entry_new_with_max_length(128);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAILRECEIVER);
+ gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4);
+ gtk_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_mail_receiver_changed_callback, NULL);
+
+ xsane.mail_receiver_entry = text;
+
+ gtk_widget_show(pixmapwidget);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+
+
+ /* subject */
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(mail_project_vbox), hbox, FALSE, FALSE, 2);
+
+ gtk_widget_realize(mail_dialog);
+
+ pixmap = gdk_pixmap_create_from_xpm_d(mail_dialog->window, &mask, xsane.bg_trans, (gchar **) subject_xpm);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(hbox), pixmapwidget, FALSE, FALSE, 2);
+ gdk_pixmap_unref(pixmap);
+
+ text = gtk_entry_new_with_max_length(128);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAILSUBJECT);
+ gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 4);
+ gtk_signal_connect(GTK_OBJECT(text), "changed", (GtkSignalFunc) xsane_mail_subject_changed_callback, NULL);
+
+ xsane.mail_subject_entry = text;
+
+ gtk_widget_show(pixmapwidget);
+ gtk_widget_show(text);
+ gtk_widget_show(hbox);
+
+
+ /* email text frame */
+ text_frame = gtk_frame_new(TEXT_MAIL_TEXT);
+ gtk_box_pack_start(GTK_BOX(mail_project_vbox), text_frame, TRUE, TRUE, 2);
+ gtk_widget_show(text_frame);
+
+ /* email text box */
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 4);
+ gtk_container_add(GTK_CONTAINER(text_frame), hbox);
+ gtk_widget_show(hbox);
+
+ /* Create the GtkText widget */
+ text = gtk_text_new(NULL, NULL);
+ gtk_text_set_editable(GTK_TEXT(text), TRUE); /* text is editable */
+ gtk_text_set_word_wrap(GTK_TEXT(text), TRUE); /* wrap complete words */
+ gtk_box_pack_start(GTK_BOX(hbox), text, TRUE, TRUE, 0);
+ gtk_widget_show(text);
+ xsane.mail_text_widget = text;
+
+ /* Add a vertical scrollbar to the GtkText widget */
+ vscrollbar = gtk_vscrollbar_new(GTK_TEXT(text)->vadj);
+ gtk_box_pack_start(GTK_BOX(hbox), vscrollbar, FALSE, FALSE, 0);
+ gtk_widget_show(vscrollbar);
+
+
+ /* html mail */
+ button = gtk_check_button_new_with_label(RADIO_BUTTON_HTML_MAIL);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_HTML_MAIL);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), xsane.mail_html_mode);
+ gtk_box_pack_start(GTK_BOX(mail_project_vbox), button, FALSE, FALSE, 2);
+ gtk_widget_show(button);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_html_mode_callback, NULL);
+ xsane.mail_html_mode_widget = button;
+
+ /* attachment frame */
+ attachment_frame = gtk_frame_new(TEXT_ATTACHMENTS);
+ gtk_box_pack_start(GTK_BOX(mail_project_vbox), attachment_frame, FALSE, FALSE, 2);
+ gtk_widget_show(attachment_frame);
+
+ /* attachment list */
+ scrolled_window = gtk_scrolled_window_new(0, 0);
+ gtk_widget_set_usize(scrolled_window, 200, 100);
+ gtk_container_add(GTK_CONTAINER(attachment_frame), scrolled_window);
+ gtk_widget_show(scrolled_window);
+
+ list = gtk_list_new();
+/* gtk_list_set_selection_mode(list, GTK_SELECTION_BROWSE); */
+
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), list);
+ gtk_widget_show(list);
+ xsane.mail_list = list;
+
+
+ /* button box, active when project exists */
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(mail_project_vbox), hbox, FALSE, FALSE, 2);
+
+ button = gtk_button_new_with_label(BUTTON_IMAGE_SHOW);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_show_callback, list);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_IMAGE_RENAME);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_entry_rename_callback, list);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_IMAGE_DELETE);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_entry_delete_callback, list);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ xsane_button_new_with_pixmap(mail_dialog->window, hbox, move_up_xpm, 0, (GtkSignalFunc) xsane_mail_entry_move_up_callback, list);
+ xsane_button_new_with_pixmap(mail_dialog->window, hbox, move_down_xpm, 0, (GtkSignalFunc) xsane_mail_entry_move_down_callback, list);
+
+ gtk_widget_show(hbox);
+
+ xsane.mail_project_box = mail_project_vbox;
+
+
+ /* status info */
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);
+ gtk_box_pack_start(GTK_BOX(mail_scan_vbox), hbox, FALSE, FALSE, 2);
+ gtk_widget_show(hbox);
+
+ label = gtk_label_new(TEXT_MAIL_STATUS);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ gtk_widget_show(label);
+
+ label = gtk_label_new("");
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ gtk_widget_show(label);
+ xsane.mail_status_label = label;
+
+ xsane_separator_new(mail_scan_vbox, 2);
+
+
+ /* set the main hbox */
+ hbox = gtk_hbox_new(FALSE, 0);
+ xsane_separator_new(mail_project_vbox, 2);
+ gtk_box_pack_end(GTK_BOX(mail_scan_vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+
+ mail_project_exists_hbox = gtk_hbox_new(FALSE, 2);
+ gtk_box_pack_start(GTK_BOX(hbox), mail_project_exists_hbox, TRUE, TRUE, 0);
+
+ button = gtk_button_new_with_label(BUTTON_SEND_PROJECT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_send, NULL);
+ gtk_box_pack_start(GTK_BOX(mail_project_exists_hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label(BUTTON_DELETE_PROJECT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_project_delete, NULL);
+ gtk_box_pack_start(GTK_BOX(mail_project_exists_hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(mail_project_exists_hbox);
+ xsane.mail_project_exists = mail_project_exists_hbox;
+
+ button = gtk_button_new_with_label(BUTTON_CREATE_PROJECT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_project_create, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ xsane.mail_project_not_exists = button;
+
+ xsane.mail_dialog = mail_dialog;
+
+ xsane_mail_project_load();
+
+ gtk_widget_show(mail_dialog);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_dialog_close()
+{
+ DBG(DBG_proc, "xsane_mail_dialog_close\n");
+
+ if (xsane.mail_dialog == NULL)
+ {
+ return;
+ }
+
+ gtk_accel_group_detach(xsane.accelerator_group, GTK_OBJECT(xsane.mail_dialog));
+ gtk_widget_destroy(xsane.mail_dialog);
+
+ xsane.mail_dialog = NULL;
+ xsane.mail_list = NULL;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_project_load()
+{
+ FILE *projectfile;
+ char page[256];
+ char buf[256];
+ GtkWidget *list_item;
+ int i;
+ char c;
+
+ DBG(DBG_proc, "xsane_mail_project_load\n");
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ xsane.mail_status = NULL;
+ }
+
+ if (xsane.mail_receiver)
+ {
+ free(xsane.mail_receiver);
+ xsane.mail_receiver = NULL;
+ }
+
+ if (xsane.mail_filename)
+ {
+ free(xsane.mail_filename);
+ xsane.mail_filename = NULL;
+ }
+
+ if (xsane.mail_subject)
+ {
+ free(xsane.mail_subject);
+ xsane.mail_subject = NULL;
+ }
+
+ gtk_signal_disconnect_by_func(GTK_OBJECT(xsane.mail_receiver_entry), GTK_SIGNAL_FUNC(xsane_mail_receiver_changed_callback), 0);
+ gtk_signal_disconnect_by_func(GTK_OBJECT(xsane.mail_subject_entry), GTK_SIGNAL_FUNC(xsane_mail_subject_changed_callback), 0);
+ gtk_signal_disconnect_by_func(GTK_OBJECT(xsane.mail_html_mode_widget), GTK_SIGNAL_FUNC(xsane_mail_html_mode_callback), 0);
+
+ gtk_text_set_point(GTK_TEXT(xsane.mail_text_widget), 0);
+ gtk_text_forward_delete(GTK_TEXT(xsane.mail_text_widget), gtk_text_get_length(GTK_TEXT(xsane.mail_text_widget)));
+ gtk_list_remove_items(GTK_LIST(xsane.mail_list), GTK_LIST(xsane.mail_list)->children);
+
+ snprintf(buf, sizeof(buf), "%s/xsane-mail-list", preferences.mail_project);
+ projectfile = fopen(buf, "rb"); /* read binary (b for win32) */
+
+ if ((!projectfile) || (feof(projectfile)))
+ {
+ snprintf(buf, sizeof(buf), "%s/page-1.png", preferences.mail_project);
+ xsane.mail_filename=strdup(buf);
+ xsane_update_counter_in_filename(&xsane.mail_filename, FALSE, 0, preferences.filename_counter_len); /* correct counter len */
+
+ xsane.mail_status=strdup("not existant");
+ gtk_label_set(GTK_LABEL(xsane.mail_status_label), _(xsane.mail_status));
+
+ xsane.mail_receiver=strdup("");
+ gtk_entry_set_text(GTK_ENTRY(xsane.mail_receiver_entry), (char *) xsane.mail_receiver);
+
+ xsane.mail_subject=strdup("");
+ gtk_entry_set_text(GTK_ENTRY(xsane.mail_subject_entry), (char *) xsane.mail_subject);
+
+ gtk_widget_set_sensitive(xsane.mail_project_box, FALSE);
+ gtk_widget_hide(xsane.mail_project_exists);
+ gtk_widget_show(xsane.mail_project_not_exists);
+ gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE);
+
+ xsane.mail_project_save = 0;
+ }
+ else
+ {
+ i=0;
+ c=0;
+ while ((i<255) && (c != 10) && (c != EOF)) /* first line is mail status */
+ {
+ c = fgetc(projectfile);
+ page[i++] = c;
+ }
+ page[i-1] = 0;
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup(page);
+ gtk_label_set(GTK_LABEL(xsane.mail_status_label), _(xsane.mail_status));
+
+
+ i=0;
+ c=0;
+ while ((i<255) && (c != 10) && (c != EOF)) /* second line is email address */
+ {
+ c = fgetc(projectfile);
+ page[i++] = c;
+ }
+ page[i-1] = 0;
+
+ xsane.mail_receiver=strdup(page);
+ gtk_entry_set_text(GTK_ENTRY(xsane.mail_receiver_entry), (char *) xsane.mail_receiver);
+
+
+ i=0;
+ c=0;
+ while ((i<255) && (c != 10) && (c != EOF)) /* third line is next mail filename */
+ {
+ c = fgetc(projectfile);
+ page[i++] = c;
+ }
+ page[i-1] = 0;
+
+ snprintf(buf, sizeof(buf), "%s/%s", preferences.mail_project, page);
+ xsane.mail_filename=strdup(buf);
+
+
+ i=0;
+ c=0;
+ while ((i<255) && (c != 10) && (c != EOF)) /* fourth line is subject */
+ {
+ c = fgetc(projectfile);
+ page[i++] = c;
+ }
+ page[i-1] = 0;
+
+ xsane.mail_subject=strdup(page);
+ gtk_entry_set_text(GTK_ENTRY(xsane.mail_subject_entry), (char *) xsane.mail_subject);
+
+
+ i=0;
+ c=0;
+ while ((i<255) && (c != 10) && (c != EOF)) /* fifth line is html/ascii */
+ {
+ c = fgetc(projectfile);
+ page[i++] = c;
+ }
+ page[i-1] = 0;
+
+ if (!strcasecmp("html", page))
+ {
+ xsane.mail_html_mode = 1;
+ }
+ else
+ {
+ xsane.mail_html_mode = 0;
+ }
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xsane.mail_html_mode_widget), xsane.mail_html_mode);
+
+
+ while (!feof(projectfile))
+ {
+ i=0;
+ c=0;
+
+ while ((i<255) && (c != 10) && (c != EOF))
+ {
+ c = fgetc(projectfile);
+ page[i++] = c;
+ }
+ page[i-1]=0;
+
+ if (!strcmp("mailtext:", page))
+ {
+ break; /* mailtext follows */
+ }
+
+ if (c > 1)
+ {
+ list_item = gtk_list_item_new_with_label(page);
+ gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(page));
+ gtk_container_add(GTK_CONTAINER(xsane.mail_list), list_item);
+ gtk_widget_show(list_item);
+ }
+ }
+
+ while (!feof(projectfile))
+ {
+ i = fread(buf, 1, sizeof(buf), projectfile);
+ gtk_text_insert(GTK_TEXT(xsane.mail_text_widget), NULL, NULL, NULL, buf, i);
+ }
+
+ if (xsane.mail_status[0] == '*') /* mail project is locked (sending) */
+ {
+ gtk_widget_set_sensitive(xsane.mail_project_box, FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE);
+ }
+ else
+ {
+ gtk_widget_set_sensitive(xsane.mail_project_box, TRUE);
+ gtk_widget_show(xsane.mail_project_exists);
+ gtk_widget_hide(xsane.mail_project_not_exists);
+ gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), TRUE);
+ }
+
+ xsane.mail_project_save = 1;
+ }
+
+ if (projectfile)
+ {
+ fclose(projectfile);
+ }
+
+ gtk_signal_connect(GTK_OBJECT(xsane.mail_html_mode_widget), "clicked", (GtkSignalFunc) xsane_mail_html_mode_callback, NULL);
+ gtk_signal_connect(GTK_OBJECT(xsane.mail_receiver_entry), "changed", (GtkSignalFunc) xsane_mail_receiver_changed_callback, NULL);
+ gtk_signal_connect(GTK_OBJECT(xsane.mail_subject_entry), "changed", (GtkSignalFunc) xsane_mail_subject_changed_callback, NULL);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_project_delete()
+{
+ char *page;
+ char file[256];
+ GList *list = (GList *) GTK_LIST(xsane.mail_list)->children;
+ GtkObject *list_item;
+
+ DBG(DBG_proc, "xsane_mail_project_delete\n");
+
+ while (list)
+ {
+ list_item = GTK_OBJECT(list->data);
+ page = strdup((char *) gtk_object_get_data(list_item, "list_item_data"));
+ xsane_convert_text_to_filename(&page);
+ snprintf(file, sizeof(file), "%s/%s.png", preferences.mail_project, page);
+ free(page);
+ remove(file);
+ list = list->next;
+ }
+ snprintf(file, sizeof(file), "%s/xsane-mail-list", preferences.mail_project);
+ remove(file);
+ snprintf(file, sizeof(file), "%s", preferences.mail_project);
+ rmdir(file);
+
+ xsane_mail_project_load();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_mail_project_update_status()
+{
+ FILE *projectfile;
+ char buf[256];
+
+ snprintf(buf, sizeof(buf), "%s/xsane-mail-list", preferences.mail_project);
+ projectfile = fopen(buf, "r+b"); /* r+ = read and write, position = start of file */
+ snprintf(buf, 32, "%s ", xsane.mail_status); /* fill 32 characters status line */
+ fprintf(projectfile, "%s\n", buf); /* first line is status of mail */
+ fclose(projectfile);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_mail_project_save()
+{
+ FILE *projectfile;
+ GList *list = (GList *) GTK_LIST(xsane.mail_list)->children;
+ GtkObject *list_item;
+ char *image;
+ gchar *mail_text;
+ char filename[256];
+
+ DBG(DBG_proc, "xsane_mail_project_save\n");
+
+ umask((mode_t) preferences.directory_umask); /* define new file permissions */
+ mkdir(preferences.mail_project, 0777); /* make sure directory exists */
+
+ snprintf(filename, sizeof(filename), "%s/xsane-mail-list", preferences.mail_project);
+
+ if (xsane.mail_status)
+ {
+ if (xsane.mail_status[0] == '?')
+ {
+ return;
+ }
+ }
+
+ if (xsane_create_secure_file(filename)) /* remove possibly existing symbolic links for security */
+ {
+ char buf[256];
+
+ snprintf(buf, sizeof(buf), "%s %s %s\n", ERR_DURING_SAVE, ERR_CREATE_SECURE_FILE, filename);
+ xsane_back_gtk_error(buf, TRUE);
+ return; /* error */
+ }
+
+ projectfile = fopen(filename, "wb"); /* write binary (b for win32) */
+
+ if (xsane.mail_status)
+ {
+ snprintf(filename, 32, "%s ", xsane.mail_status); /* fill 32 characters status line */
+ fprintf(projectfile, "%s\n", filename); /* first line is status of mail */
+ gtk_label_set(GTK_LABEL(xsane.mail_status_label), _(xsane.mail_status));
+ }
+ else
+ {
+ fprintf(projectfile, " \n"); /* no mail status */
+ gtk_label_set(GTK_LABEL(xsane.mail_status_label), "");
+ }
+
+ if (xsane.mail_receiver)
+ {
+ fprintf(projectfile, "%s\n", xsane.mail_receiver); /* second line is receiver phone number or address */
+ }
+ else
+ {
+ fprintf(projectfile, "\n");
+ }
+
+ if (xsane.mail_filename)
+ {
+ fprintf(projectfile, "%s\n", strrchr(xsane.mail_filename, '/')+1); /* third line is next mail filename */
+ }
+ else
+ {
+ fprintf(projectfile, "\n");
+ }
+
+ if (xsane.mail_subject)
+ {
+ fprintf(projectfile, "%s\n", xsane.mail_subject); /* fourth line is subject */
+ }
+ else
+ {
+ fprintf(projectfile, "\n");
+ }
+
+ if (xsane.mail_html_mode) /* fith line is mode html/ascii */
+ {
+ fprintf(projectfile, "html\n");
+ }
+ else
+ {
+ fprintf(projectfile, "ascii\n");
+ }
+
+
+ while (list)
+ {
+ list_item = GTK_OBJECT(list->data);
+ image = (char *) gtk_object_get_data(list_item, "list_item_data");
+ fprintf(projectfile, "%s\n", image);
+ list = list->next;
+ }
+
+ /* save mail text */
+ fprintf(projectfile, "mailtext:\n");
+ mail_text = gtk_editable_get_chars(GTK_EDITABLE(xsane.mail_text_widget), 0, -1);
+ fprintf(projectfile, "%s", mail_text);
+
+ fclose(projectfile);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_project_create()
+{
+ DBG(DBG_proc, "xsane_mail_project_create\n");
+
+ if (strlen(preferences.mail_project))
+ {
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("created");
+ xsane_mail_project_save();
+ xsane_mail_project_load();
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_receiver_changed_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_mail_receiver_changed_callback\n");
+
+ if (xsane.mail_receiver)
+ {
+ free((void *) xsane.mail_receiver);
+ }
+ xsane.mail_receiver = strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("changed");
+ xsane_mail_project_save();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_subject_changed_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_mail_subject_changed_callback\n");
+
+ if (xsane.mail_subject)
+ {
+ free((void *) xsane.mail_subject);
+ }
+ xsane.mail_subject = strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("changed");
+ xsane_mail_project_save();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_project_changed_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_mail_project_changed_callback\n");
+
+ if (xsane.mail_project_save)
+ {
+ xsane.mail_project_save = 0;
+ xsane_mail_project_save();
+ }
+
+ if (preferences.mail_project)
+ {
+ free((void *) preferences.mail_project);
+ }
+ preferences.mail_project = strdup(gtk_entry_get_text(GTK_ENTRY(widget)));
+
+ xsane_mail_project_load();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_html_mode_callback(GtkWidget * widget)
+{
+ DBG(DBG_proc, "xsane_mail_html_mode_callback\n");
+
+ xsane.mail_html_mode = (GTK_TOGGLE_BUTTON(widget)->active != 0);
+
+ /* we can save it because this routine is only called when the project already exists */
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("changed");
+ xsane_mail_project_save();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_entry_move_up_callback(GtkWidget *widget, gpointer list)
+{
+ GList *select;
+ GList *item = GTK_LIST(list)->children;
+ GtkWidget *list_item_1;
+ GtkWidget *list_item_2;
+ int position;
+ int newpos;
+
+ DBG(DBG_proc, "xsane_mail_entry_move_up\n");
+
+ select = GTK_LIST(list)->selection;
+ if (select)
+ {
+ list_item_1 = select->data;
+
+ position = gtk_list_child_position(GTK_LIST(list), list_item_1);
+ position--; /* move up */
+ newpos = position;
+
+ if (position >= 0)
+ {
+ while (position>0)
+ {
+ item = item->next;
+ position--;
+ }
+
+ list_item_2 = item->data;
+ if (list_item_2)
+ {
+ xsane_list_entrys_swap(list_item_1, list_item_2);
+ gtk_list_select_item(GTK_LIST(list), newpos);
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("changed");
+ xsane_mail_project_save();
+ }
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_entry_move_down_callback(GtkWidget *widget, gpointer list)
+{
+ GList *select;
+ GList *item = GTK_LIST(list)->children;
+ GtkWidget *list_item_1;
+ GtkWidget *list_item_2;
+ int position;
+ int newpos;
+
+ DBG(DBG_proc, "xsane_mail_entry_move_down\n");
+
+ select = GTK_LIST(list)->selection;
+ if (select)
+ {
+ list_item_1 = select->data;
+
+ position = gtk_list_child_position(GTK_LIST(list), list_item_1);
+ position++; /* move down */
+ newpos = position;
+
+ while ((position>0) && (item))
+ {
+ item = item->next;
+ position--;
+ }
+
+ if (item)
+ {
+ list_item_2 = item->data;
+ if (list_item_2)
+ {
+ xsane_list_entrys_swap(list_item_1, list_item_2);
+ gtk_list_select_item(GTK_LIST(list), newpos);
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("changed");
+ xsane_mail_project_save();
+ }
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int xsane_mail_entry_rename;
+
+static void xsane_mail_entry_rename_button_callback(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_mail_entry_rename\n");
+
+ xsane_mail_entry_rename = (int) data;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_entry_rename_callback(GtkWidget *widget, gpointer list)
+{
+ GtkWidget *list_item;
+ GList *select;
+ char *oldpage;
+ char *newpage;
+ char oldfile[256];
+ char newfile[256];
+
+ DBG(DBG_proc, "xsane_mail_entry_rename_callback\n");
+
+ select = GTK_LIST(list)->selection;
+ if (select)
+ {
+ GtkWidget *rename_dialog;
+ GtkWidget *text;
+ GtkWidget *button;
+ GtkWidget *vbox, *hbox;
+ char buf[256];
+
+ list_item = select->data;
+ oldpage = strdup((char *) gtk_object_get_data(GTK_OBJECT(list_item), "list_item_data"));
+
+ xsane_set_sensitivity(FALSE);
+
+ rename_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ xsane_set_window_icon(rename_dialog, 0);
+
+ /* set the main vbox */
+ vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 0);
+ gtk_container_add(GTK_CONTAINER(rename_dialog), vbox);
+ gtk_widget_show(vbox);
+
+ /* set the main hbox */
+ hbox = gtk_hbox_new(FALSE, 0);
+ xsane_separator_new(vbox, 2);
+ gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+ gtk_window_set_position(GTK_WINDOW(rename_dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_policy(GTK_WINDOW(rename_dialog), FALSE, FALSE, FALSE);
+ snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, WINDOW_MAIL_RENAME);
+ gtk_window_set_title(GTK_WINDOW(rename_dialog), buf);
+ gtk_signal_connect(GTK_OBJECT(rename_dialog), "delete_event", (GtkSignalFunc) xsane_mail_entry_rename_button_callback, (void *) -1);
+ gtk_widget_show(rename_dialog);
+
+ text = gtk_entry_new_with_max_length(64);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAILIMAGENAME);
+ gtk_entry_set_text(GTK_ENTRY(text), oldpage);
+ gtk_widget_set_usize(text, 300, 0);
+ gtk_box_pack_start(GTK_BOX(vbox), text, TRUE, TRUE, 4);
+ gtk_widget_show(text);
+
+
+ button = gtk_button_new_with_label("OK");
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_entry_rename_button_callback, (void *) 1);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label("Cancel");
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_mail_entry_rename_button_callback, (void *) -1);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+
+ xsane_mail_entry_rename = 0;
+
+ while (xsane_mail_entry_rename == 0)
+ {
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+ }
+
+ newpage = strdup(gtk_entry_get_text(GTK_ENTRY(text)));
+
+ if (xsane_mail_entry_rename == 1)
+ {
+ gtk_label_set(GTK_LABEL(gtk_container_children(GTK_CONTAINER(list_item))->data), newpage);
+ gtk_object_set_data(GTK_OBJECT(list_item), "list_item_data", strdup(newpage));
+
+ xsane_convert_text_to_filename(&oldpage);
+ xsane_convert_text_to_filename(&newpage);
+ snprintf(oldfile, sizeof(oldfile), "%s/%s.png", preferences.mail_project, oldpage);
+ snprintf(newfile, sizeof(newfile), "%s/%s.png", preferences.mail_project, newpage);
+
+ rename(oldfile, newfile);
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("changed");
+ xsane_mail_project_save();
+ }
+
+ free(oldpage);
+ free(newpage);
+
+ gtk_widget_destroy(rename_dialog);
+
+ xsane_set_sensitivity(TRUE);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_entry_delete_callback(GtkWidget *widget, gpointer list)
+{
+ GtkObject *list_item;
+ GList *select;
+ char *page;
+ char file[256];
+
+ DBG(DBG_proc, "xsane_mail_entry_delete_callback\n");
+
+ select = GTK_LIST(list)->selection;
+ if (select)
+ {
+ list_item = GTK_OBJECT(select->data);
+ page = strdup((char *) gtk_object_get_data(list_item, "list_item_data"));
+ xsane_convert_text_to_filename(&page);
+ snprintf(file, sizeof(file), "%s/%s.png", preferences.mail_project, page);
+ free(page);
+ remove(file);
+ gtk_widget_destroy(GTK_WIDGET(list_item));
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("changed");
+ xsane_mail_project_save();
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_show_callback(GtkWidget *widget, gpointer list)
+{
+ GtkObject *list_item;
+ GList *select;
+ pid_t pid;
+ char *arg[100];
+ char *page;
+ char buf[256];
+ int argnr;
+
+ DBG(DBG_proc, "xsane_mail_entry_show_callback\n");
+
+ select = GTK_LIST(list)->selection;
+ if (select)
+ {
+ argnr = xsane_parse_options(preferences.mail_viewer, arg);
+
+ list_item = GTK_OBJECT(select->data);
+ page = (char *) gtk_object_get_data(list_item, "list_item_data");
+ page = strdup(page);
+ xsane_convert_text_to_filename(&page);
+ snprintf(buf, sizeof(buf), "%s/%s.png", preferences.mail_project, page);
+ free(page);
+ arg[argnr++] = buf;
+ arg[argnr] = 0;
+
+ pid = fork();
+
+ if (pid == 0) /* new process */
+ {
+ DBG(DBG_info, "trying to change user id fo new subprocess:\n");
+ DBG(DBG_info, "old effective uid = %d\n", geteuid());
+ setuid(getuid());
+ DBG(DBG_info, "new effective uid = %d\n", geteuid());
+
+ execvp(arg[0], arg); /* does not return if successfully */
+ DBG(DBG_error, "%s %s\n", ERR_FAILED_EXEC_MAIL_VIEWER, preferences.mail_viewer);
+ _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_create_mail(int fd)
+{
+ FILE *attachment_file;
+ FILE *projectfile;
+ char *boundary="-----partseparator";
+ char *image_filename;
+ char *mail_text = NULL;
+ char *mail_text_pos = NULL;
+ char **attachment_filename = NULL;
+ char c;
+ char buf[256];
+ char filename[256];
+ char content_id[256];
+ char image[256];
+ int i, j;
+ int attachments = 0;
+ int use_attachment = 0;
+ int mail_text_size = 0;
+
+ snprintf(buf, sizeof(buf), "%s/xsane-mail-list", preferences.mail_project);
+ projectfile = fopen(buf, "rb"); /* read binary (b for win32) */
+
+ if ((!projectfile) || (feof(projectfile)))
+ {
+ DBG(DBG_error, "could not open mail project file %s\n", buf);
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("could not read mailproject");
+ xsane_mail_project_update_status();
+
+ return;
+ }
+
+ for (i=0; i<5; i++) /* skip 5 lines */
+ {
+ j=0;
+ c=0;
+ while ((j<255) && (c != 10) && (c != EOF)) /* first line is mail status */
+ {
+ c = fgetc(projectfile);
+ j++;
+ }
+ }
+
+ DBG(DBG_info, "reading list of attachments:\n");
+ /* read list of attachments */
+ while (!feof(projectfile))
+ {
+ /* read next attachment line */
+ i=0;
+ c=0;
+ while ((i<255) && (c != 10) && (c != EOF))
+ {
+ c = fgetc(projectfile);
+ image[i++] = c;
+ }
+ image[i-1]=0;
+
+ if (strcmp("mailtext:", image) && (c > 1))
+ {
+ DBG(DBG_info, " - %s\n", image);
+ attachment_filename = realloc(attachment_filename, (attachments+1)*sizeof(void *));
+ attachment_filename[attachments++] = strdup(image);
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ /* read mail text */
+ while (!feof(projectfile))
+ {
+ mail_text = realloc(mail_text, mail_text_size+1024); /* increase mail_text by 1KB */
+ mail_text_size += fread(mail_text+mail_text_size, 1, 1024, projectfile); /* read next KB */
+ }
+ DBG(DBG_info, "%d bytes mailtext read\n", mail_text_size);
+
+ mail_text_pos = mail_text;
+
+ if (xsane.mail_html_mode) /* create html mail */
+ {
+ DBG(DBG_info, "sending mail in html format\n");
+
+ write_mail_header(fd, preferences.mail_from, preferences.mail_reply_to, xsane.mail_receiver, xsane.mail_subject, boundary, 1 /* related */);
+ write_mail_mime_html(fd, boundary);
+
+ DBG(DBG_info, "sending mail text\n");
+ while (*mail_text_pos != 0)
+ {
+ if (!strncasecmp("<image>", mail_text_pos, 7)) /* insert image */
+ {
+ mail_text_pos += 6; /* <image> is 7 characters, 6 additional ones */
+
+ if (use_attachment < attachments)
+ {
+ image_filename = strdup(attachment_filename[use_attachment++]);
+ xsane_convert_text_to_filename(&image_filename);
+ DBG(DBG_info, "inserting image cid for %s\n", image_filename);
+ snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */
+ snprintf(buf, sizeof(buf), "<p><img SRC=\"cid:%s\">\n", content_id);
+ write(fd, buf, strlen(buf));
+ free(image_filename);
+ }
+ else /* more images selected than available */
+ {
+ }
+ }
+ else if (*mail_text_pos == 10) /* new line */
+ {
+ snprintf(buf, sizeof(buf), "<br>\n");
+ write(fd, buf, strlen(buf));
+ }
+ else
+ {
+ write(fd, mail_text_pos, 1);
+ }
+ mail_text_pos++;
+ }
+
+ while (use_attachment < attachments) /* append not already referenced images */
+ {
+ image_filename = strdup(attachment_filename[use_attachment++]);
+ xsane_convert_text_to_filename(&image_filename);
+ DBG(DBG_info, "appending image cid for %s\n", image_filename);
+ snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */
+ snprintf(buf, sizeof(buf), "<p><img SRC=\"cid:%s\">\n", content_id);
+ write(fd, buf, strlen(buf));
+ free(image_filename);
+ }
+
+ snprintf(buf, sizeof(buf), "</html>\n");
+ write(fd, buf, strlen(buf));
+
+
+ for (i=0; i<attachments; i++)
+ {
+ image_filename = strdup(attachment_filename[i]);
+ snprintf(filename, sizeof(filename), "%s.png", image_filename);
+
+ xsane_convert_text_to_filename(&image_filename);
+ snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */
+ snprintf(buf, sizeof(buf), "%s/%s.png", preferences.mail_project, image_filename);
+ attachment_file = fopen(buf, "rb"); /* read, b=binary for win32 */
+
+ if (attachment_file)
+ {
+ DBG(DBG_info, "attaching png file \"%s\"\n", image_filename);
+ write_mail_attach_image_png(fd, boundary, content_id, attachment_file, filename);
+ }
+ else /* could not open attachment file */
+ {
+ DBG(DBG_error, "could not oppen attachment png file \"%s\"\n", image_filename);
+ }
+
+ free(image_filename);
+ free(attachment_filename[i]);
+ }
+ free(attachment_filename);
+
+ write_mail_footer(fd, boundary);
+ }
+ else /* ascii mail */
+ {
+ DBG(DBG_info, "sending mail in ascii format\n");
+
+ write_mail_header(fd, preferences.mail_from, preferences.mail_reply_to, xsane.mail_receiver, xsane.mail_subject, boundary, 0 /* not related */);
+ write_mail_mime_ascii(fd, boundary);
+
+ write(fd, mail_text, strlen(mail_text));
+ write(fd, "\n\n", 2);
+
+ for (i=0; i<attachments; i++)
+ {
+ image_filename = strdup(attachment_filename[i]);
+ snprintf(filename, sizeof(filename), "%s.png", image_filename);
+
+ xsane_convert_text_to_filename(&image_filename);
+ snprintf(content_id, sizeof(content_id), "%s", image_filename); /* content_id */
+ snprintf(buf, sizeof(buf), "%s/%s.png", preferences.mail_project, image_filename);
+ attachment_file = fopen(buf, "rb"); /* read, b=binary for win32 */
+
+ if (attachment_file)
+ {
+ DBG(DBG_info, "attaching png file \"%s\"\n", image_filename);
+ write_mail_attach_image_png(fd, boundary, content_id, attachment_file, filename);
+ }
+ else /* could not open attachment file */
+ {
+ DBG(DBG_error, "could not oppen attachment png file \"%s\"\n", image_filename);
+ }
+
+ free(image_filename);
+ free(attachment_filename[i]);
+ }
+ free(attachment_filename);
+
+ write_mail_footer(fd, boundary);
+ }
+
+ free(mail_text);
+
+ if (projectfile)
+ {
+ fclose(projectfile);
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_send_process()
+{
+ int fd_socket;
+ int status;
+
+ DBG(DBG_proc, "xsane_mail_send_process\n");
+
+ /* pop3 authentification */
+ if (preferences.mail_pop3_authentification)
+ {
+ char *password;
+ int i;
+
+ fd_socket = open_socket(preferences.mail_pop3_server, preferences.mail_pop3_port);
+
+ if (fd_socket < 0) /* could not open socket */
+ {
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("pop3 connection failed");
+ xsane_mail_project_update_status();
+
+ return;
+ }
+
+ password = strdup(preferences.mail_pop3_pass);
+
+ for (i=0; i<strlen(password); i++)
+ {
+ password[i] ^= 0x53;
+ }
+
+ status = pop3_login(fd_socket, preferences.mail_pop3_user, password);
+
+ free(password);
+
+ close(fd_socket);
+
+ if (status == -1)
+ {
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("pop3 login failed");
+ xsane_mail_project_update_status();
+
+ return;
+ }
+ }
+
+
+ /* smtp mail */
+ fd_socket = open_socket(preferences.mail_smtp_server, preferences.mail_smtp_port);
+
+ if (fd_socket < 0) /* could not open socket */
+ {
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("smtp connection failed");
+ xsane_mail_project_update_status();
+
+ return;
+ }
+
+ write_smtp_header(fd_socket, preferences.mail_from, xsane.mail_receiver);
+
+ xsane_create_mail(fd_socket); /* create mail and write to socket */
+
+ write_smtp_footer(fd_socket);
+
+ close(fd_socket);
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("sent");
+ xsane_mail_project_update_status();
+ _exit(0);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static RETSIGTYPE xsane_mail_send_process_exited()
+{
+ if (xsane.xsane_mode == XSANE_MAIL) /* make sure we still are in email mode */
+ {
+ xsane_mail_project_load(); /* update status of mail project */
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_mail_send()
+{
+ pid_t pid;
+ struct SIGACTION act;
+
+ DBG(DBG_proc, "xsane_mail_send\n");
+
+ gtk_widget_set_sensitive(xsane.mail_project_box, FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(xsane.start_button), FALSE);
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("* sending");
+ xsane_mail_project_save();
+
+ pid = fork();
+
+ if (pid == 0) /* new process */
+ {
+ DBG(DBG_info, "trying to change user id fo new subprocess:\n");
+ DBG(DBG_info, "old effective uid = %d\n", geteuid());
+ setuid(getuid());
+ DBG(DBG_info, "new effective uid = %d\n", geteuid());
+
+ xsane_mail_send_process();
+
+ _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
+ }
+
+ memset (&act, 0, sizeof (act));
+ act.sa_handler = xsane_mail_send_process_exited;
+ sigaction (SIGCHLD, &act, 0);
+
+ if (xsane.mail_status)
+ {
+ free(xsane.mail_status);
+ }
+ xsane.mail_status = strdup("?");
+}
+
+#endif
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_pref_toggle_tooltips(GtkWidget *widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_pref_toggle_tooltips\n");
+
+ preferences.tooltips_enabled = (GTK_CHECK_MENU_ITEM(widget)->active != 0);
+ xsane_back_gtk_set_tooltips(preferences.tooltips_enabled);
+ xsane_pref_save();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_show_license(GtkWidget *widget, gpointer data)
+{
+ xsane_display_license(0);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_show_doc_via_nsr(GtkWidget *widget, gpointer data) /* show via netscape remote */
+{
+ char *name = (char *) data;
+ char buf[256];
+ pid_t pid;
+ char *arg[5];
+ struct stat st;
+ char netscape_lock_path[PATH_MAX];
+
+ DBG(DBG_proc, "xsane_show_doc_via_nsr(%s)\n", name);
+
+ /* at first we have to test if netscape is running */
+ /* a simple way is to take a look at ~/.netscape/lock */
+ /* when this is a link we can assume that netscape is running */
+
+ if (getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)) != NULL) /* $HOME defined? */
+ {
+ snprintf(netscape_lock_path, sizeof(netscape_lock_path), "%s%c.netscape%clock",
+ getenv(STRINGIFY(ENVIRONMENT_HOME_DIR_NAME)), SLASH, SLASH);
+ }
+ else
+ {
+ *netscape_lock_path = 0; /* empty path */
+ }
+
+#ifdef HAVE_LSTAT
+ if ((strlen(netscape_lock_path) > 0) && (lstat(netscape_lock_path, &st) == 0)) /* netscape is running */
+#else
+ if ((strlen(netscape_lock_path) > 0) && (stat(netscape_lock_path, &st) == 0)) /* netscape is running */
+#endif
+ {
+ DBG(DBG_proc, "xsane_show_doc_via_nsr: netscape is running\n");
+ snprintf(buf, sizeof(buf), "openFile(%s, new-window)", name);
+ arg[0] = "netscape";
+ arg[1] = "-no-about-splash";
+ arg[2] = "-remote";
+ arg[3] = buf;
+ arg[4] = 0;
+
+ pid = fork();
+
+ if (pid == 0) /* new process */
+ {
+ DBG(DBG_info, "trying to change user id fo new subprocess:\n");
+ DBG(DBG_info, "old effective uid = %d\n", geteuid());
+ setuid(getuid());
+ DBG(DBG_info, "new effective uid = %d\n", geteuid());
+
+ execvp(arg[0], arg); /* does not return if successfully */
+ DBG(DBG_error, "%s %s\n", ERR_FAILED_EXEC_DOC_VIEWER, preferences.doc_viewer);
+ _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
+ }
+ }
+ else /* netscape not running */
+ {
+ DBG(DBG_proc, "xsane_show_doc_via_nsr: netscape is not running, trying to start netscape\n");
+ arg[0] = "netscape";
+ arg[1] = name;
+ arg[2] = 0;
+
+ pid = fork();
+
+ if (pid == 0) /* new process */
+ {
+ DBG(DBG_info, "trying to change user id fo new subprocess:\n");
+ DBG(DBG_info, "old effective uid = %d\n", geteuid());
+ setuid(getuid());
+ DBG(DBG_info, "new effective uid = %d\n", geteuid());
+
+ execvp(arg[0], arg); /* does not return if successfully */
+ DBG(DBG_error, "%s %s\n", ERR_FAILED_EXEC_DOC_VIEWER, preferences.doc_viewer);
+ _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
+ }
+ }
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_show_doc(GtkWidget *widget, gpointer data)
+{
+ char *name = (char *) data;
+ char path[256];
+ pid_t pid;
+ char *arg[3];
+ struct stat st;
+ char *language_dir = NULL;
+
+ DBG(DBG_proc, "xsane_show_doc(%s)\n", name);
+
+ /* translation of language_dir gives the name of the subdirectory in */
+ /* which there may be a translation of a documentation */
+ language_dir = XSANE_LANGUAGE_DIR;
+ snprintf(path, sizeof(path), "%s/%s/%s-doc.html", STRINGIFY(PATH_XSANE_DOC_DIR), language_dir, name);
+ if (stat(path, &st) != 0) /* test if file does exist */
+ {
+ snprintf(path, sizeof(path), "%s/%s-doc.html", STRINGIFY(PATH_XSANE_DOC_DIR), name); /* no, we use original doc */
+ }
+
+ if (!strcmp(preferences.doc_viewer, DOCVIEWER_NETSCAPE))
+ {
+ xsane_show_doc_via_nsr(widget, (void *) path);
+ }
+ else
+ {
+ arg[0] = preferences.doc_viewer;
+ arg[1] = path;
+ arg[2] = 0;
+
+ pid = fork();
+
+ if (pid == 0) /* new process */
+ {
+ DBG(DBG_info, "trying to change user id fo new subprocess:\n");
+ DBG(DBG_info, "old effective uid = %d\n", geteuid());
+ setuid(getuid());
+ DBG(DBG_info, "new effective uid = %d\n", geteuid());
+
+ DBG(DBG_info, "executing %s %s\n", arg[0], arg[1]);
+ execvp(arg[0], arg); /* does not return if successfully */
+ DBG(DBG_error, "%s %s\n", ERR_FAILED_EXEC_DOC_VIEWER, preferences.doc_viewer);
+ _exit(0); /* do not use exit() here! otherwise gtk gets in trouble */
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static GtkWidget *xsane_view_build_menu(void)
+{
+ GtkWidget *menu, *item;
+
+ DBG(DBG_proc, "xsane_view_build_menu\n");
+
+ menu = gtk_menu_new();
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(menu));
+ /* gtk_menu_set_accel_group(GTK_MENU(menu), xsane.accelerator_group); */
+
+ /* show tooltips */
+
+ item = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_TOOLTIPS);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_1, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), preferences.tooltips_enabled);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+ gtk_signal_connect(GTK_OBJECT(item), "toggled", (GtkSignalFunc) xsane_pref_toggle_tooltips, NULL);
+
+
+ /* insert separator: */
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+
+ /* show preview */
+
+ xsane.show_preview_widget = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_PREVIEW);
+ gtk_widget_add_accelerator(xsane.show_preview_widget, "activate", xsane.accelerator_group, GDK_2, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_menu_append(GTK_MENU(menu), xsane.show_preview_widget);
+ gtk_widget_show(xsane.show_preview_widget);
+ gtk_signal_connect(GTK_OBJECT(xsane.show_preview_widget), "toggled", (GtkSignalFunc) xsane_show_preview_callback, NULL);
+
+ /* show histogram */
+
+ xsane.show_histogram_widget = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_HISTOGRAM);
+ gtk_widget_add_accelerator(xsane.show_histogram_widget, "activate", xsane.accelerator_group, GDK_3, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_histogram_widget), preferences.show_histogram);
+ gtk_menu_append(GTK_MENU(menu), xsane.show_histogram_widget);
+ gtk_widget_show(xsane.show_histogram_widget);
+ gtk_signal_connect(GTK_OBJECT(xsane.show_histogram_widget), "toggled", (GtkSignalFunc) xsane_show_histogram_callback, NULL);
+
+
+#ifdef HAVE_WORKING_GTK_GAMMACURVE
+ /* show gamma */
+
+ xsane.show_gamma_widget = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_GAMMA);
+ gtk_widget_add_accelerator(xsane.show_gamma_widget, "activate", xsane.accelerator_group, GDK_4, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_gamma_widget), preferences.show_gamma);
+ gtk_menu_append(GTK_MENU(menu), xsane.show_gamma_widget);
+ gtk_widget_show(xsane.show_gamma_widget);
+ gtk_signal_connect(GTK_OBJECT(xsane.show_gamma_widget), "toggled", (GtkSignalFunc) xsane_show_gamma_callback, NULL);
+#endif
+
+
+ /* show standard options */
+
+ xsane.show_standard_options_widget = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_STANDARDOPTIONS);
+ gtk_widget_add_accelerator(xsane.show_standard_options_widget, "activate", xsane.accelerator_group, GDK_5, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_standard_options_widget), preferences.show_standard_options);
+ gtk_menu_append(GTK_MENU(menu), xsane.show_standard_options_widget);
+ gtk_widget_show(xsane.show_standard_options_widget);
+ gtk_signal_connect(GTK_OBJECT(xsane.show_standard_options_widget), "toggled",
+ (GtkSignalFunc) xsane_show_standard_options_callback, NULL);
+
+
+ /* show advanced options */
+
+ xsane.show_advanced_options_widget = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_ADVANCEDOPTIONS);
+ gtk_widget_add_accelerator(xsane.show_advanced_options_widget, "activate", xsane.accelerator_group, GDK_6, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_advanced_options_widget), preferences.show_advanced_options);
+ gtk_menu_append(GTK_MENU(menu), xsane.show_advanced_options_widget);
+ gtk_widget_show(xsane.show_advanced_options_widget);
+ gtk_signal_connect(GTK_OBJECT(xsane.show_advanced_options_widget), "toggled",
+ (GtkSignalFunc) xsane_show_advanced_options_callback, NULL);
+
+ return menu;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static GtkWidget *xsane_pref_build_menu(void)
+{
+ GtkWidget *menu, *item, *submenu, *subitem;
+
+ DBG(DBG_proc, "xsane_pref_build_menu\n");
+
+ menu = gtk_menu_new();
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(menu));
+
+
+ /* XSane setup dialog */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_SETUP);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_S, GDK_SHIFT_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_setup_dialog, NULL);
+ gtk_widget_show(item);
+
+ /* insert separator: */
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+
+#ifdef XSANE_TEST
+ /* XSane batch scan dialog */
+
+ item = gtk_menu_item_new_with_label("Batch scan");
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_batch_scan_dialog, NULL);
+ gtk_widget_show(item);
+
+ /* insert separator: */
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+#endif
+
+
+ /* length unit */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_LENGTH_UNIT);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+ submenu = gtk_menu_new();
+
+ subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_LENGTH_MILLIMETERS);
+ gtk_menu_append(GTK_MENU(submenu), subitem);
+ if ( (preferences.length_unit > 0.9) && (preferences.length_unit < 1.1))
+ {
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
+ }
+ gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_pref_unit_callback, "mm");
+ gtk_widget_show(subitem);
+ xsane.length_unit_mm = subitem;
+
+ subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_LENGTH_CENTIMETERS);
+ gtk_menu_append(GTK_MENU(submenu), subitem);
+ if ( (preferences.length_unit > 9.9) && (preferences.length_unit < 10.1))
+ {
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
+ }
+ gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_pref_unit_callback, "cm");
+ gtk_widget_show(subitem);
+ xsane.length_unit_cm = subitem;
+
+ subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_LENGTH_INCHES);
+ gtk_menu_append(GTK_MENU(submenu), subitem);
+ if ( (preferences.length_unit > 25.3) && (preferences.length_unit < 25.5))
+ {
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
+ }
+ gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_pref_unit_callback, "in");
+ gtk_widget_show(subitem);
+ xsane.length_unit_in = subitem;
+
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
+
+ /* insert separator: */
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+ /* update policy */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_UPDATE_POLICY);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+ submenu = gtk_menu_new();
+
+ subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_POLICY_CONTINUOUS);
+ gtk_menu_append(GTK_MENU(submenu), subitem);
+ if (preferences.gtk_update_policy == GTK_UPDATE_CONTINUOUS)
+ {
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
+ }
+ gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_update_policy_callback, (void *) GTK_UPDATE_CONTINUOUS);
+ gtk_widget_show(subitem);
+ xsane.update_policy_continu = subitem;
+
+ subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_POLICY_DISCONTINU);
+ gtk_menu_append(GTK_MENU(submenu), subitem);
+ if (preferences.gtk_update_policy == GTK_UPDATE_DISCONTINUOUS)
+ {
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
+ }
+ gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_update_policy_callback, (void *) GTK_UPDATE_DISCONTINUOUS);
+ gtk_widget_show(subitem);
+ xsane.update_policy_discont = subitem;
+
+ subitem = gtk_check_menu_item_new_with_label(SUBMENU_ITEM_POLICY_DELAYED);
+ gtk_menu_append(GTK_MENU(submenu), subitem);
+ if (preferences.gtk_update_policy == GTK_UPDATE_DELAYED)
+ {
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(subitem), TRUE);
+ }
+ gtk_signal_connect(GTK_OBJECT(subitem), "activate", (GtkSignalFunc) xsane_set_update_policy_callback, (void *) GTK_UPDATE_DELAYED);
+ gtk_widget_show(subitem);
+ xsane.update_policy_delayed = subitem;
+
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
+
+
+ /* insert separator: */
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+
+ /* show resolution list */
+
+ xsane.show_resolution_list_widget = gtk_check_menu_item_new_with_label(MENU_ITEM_SHOW_RESOLUTIONLIST);
+ gtk_widget_add_accelerator(xsane.show_resolution_list_widget, "activate", xsane.accelerator_group, GDK_L, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_resolution_list_widget), preferences.show_resolution_list);
+ gtk_menu_append(GTK_MENU(menu), xsane.show_resolution_list_widget);
+ gtk_widget_show(xsane.show_resolution_list_widget);
+ gtk_signal_connect(GTK_OBJECT(xsane.show_resolution_list_widget), "toggled",
+ (GtkSignalFunc) xsane_show_resolution_list_callback, NULL);
+
+
+ /* insert separator: */
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+
+ /* page orientation */
+
+ item = gtk_check_menu_item_new_with_label(MENU_ITEM_PAGE_ROTATE);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_R, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), preferences.psrotate);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+ gtk_signal_connect(GTK_OBJECT(item), "toggled", (GtkSignalFunc) xsane_page_rotate_callback, NULL);
+
+
+
+ /* insert separator: */
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+ /* Save device setting */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_SAVE_DEVICE_SETTINGS);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_P, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_device_preferences_save, NULL);
+ gtk_widget_show(item);
+
+ /* Load device setting */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_LOAD_DEVICE_SETTINGS);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_G, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_device_preferences_load, NULL);
+ gtk_widget_show(item);
+
+ /* insert separator: */
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+ /* change working directory */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_CHANGE_WORKING_DIR);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_D, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_change_working_directory, NULL);
+ gtk_widget_show(item);
+
+ return menu;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static GtkWidget *xsane_help_build_menu(void)
+{
+ GtkWidget *menu, *item;
+
+ DBG(DBG_proc, "xsane_help_build_menu\n");
+
+ menu = gtk_menu_new();
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(menu));
+
+
+ /* XSane about dialog */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_ABOUT_XSANE);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_about_dialog, NULL);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_F6, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_widget_show(item);
+
+ /* XSane about translation dialog */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_ABOUT_TRANSLATION);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_about_translation_dialog, NULL);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_F7, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_widget_show(item);
+
+
+ /* separator */
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+
+ /* XSane license */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_XSANE_LICENSE);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_show_license, NULL);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_F8, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_widget_show(item);
+
+
+ /* separator */
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+
+ /* XSane doc -> html viewer */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_XSANE_DOC);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_show_doc, (void *) "sane-xsane");
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_F1, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_widget_show(item);
+
+
+ /* separator */
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+
+ /* Backend doc -> html viewer */
+
+ if (xsane.backend)
+ {
+ item = gtk_menu_item_new_with_label(MENU_ITEM_BACKEND_DOC);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_show_doc, (void *) xsane.backend);
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_F2, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_widget_show(item);
+ }
+
+
+ /* available backends -> html viewer */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_AVAILABLE_BACKENDS);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_show_doc, (void *) "sane-backends");
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_F3, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_widget_show(item);
+
+
+ /* problems -> html viewer */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_PROBLEMS);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_show_doc, (void *) "sane-problems");
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_F4, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_widget_show(item);
+
+ item = gtk_menu_item_new();
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_widget_show(item);
+
+
+ /* scantips -> html viewer */
+
+ item = gtk_menu_item_new_with_label(MENU_ITEM_SCANTIPS);
+ gtk_menu_append(GTK_MENU(menu), item);
+ gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc) xsane_show_doc, (void *) "sane-scantips");
+ gtk_widget_add_accelerator(item, "activate", xsane.accelerator_group, GDK_F5, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_widget_show(item);
+
+ return menu;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_panel_build()
+{
+ GtkWidget *standard_vbox;
+ GtkWidget *advanced_vbox;
+ GtkWidget *parent, *vbox, *button, *label;
+ const SANE_Option_Descriptor *opt;
+ SANE_Handle dev = xsane.dev;
+ double dval, dmin, dmax, dquant;
+ char *buf, str[16], title[256];
+ GSGDialogElement *elem;
+ SANE_Word quant, val;
+ SANE_Status status;
+ SANE_Int num_words;
+ char **str_list;
+ int i, j;
+ int num_vector_opts = 0;
+ int *vector_opts;
+
+ DBG(DBG_proc, "xsane_panel_build\n");
+
+ /* reset well-known options: */
+ xsane.well_known.scanmode = -1;
+ xsane.well_known.scansource = -1;
+ xsane.well_known.preview = -1;
+ xsane.well_known.dpi = -1;
+ xsane.well_known.dpi_x = -1;
+ xsane.well_known.dpi_y = -1;
+ xsane.well_known.coord[xsane_back_gtk_TL_X] = -1;
+ xsane.well_known.coord[xsane_back_gtk_TL_Y] = -1;
+ xsane.well_known.coord[xsane_back_gtk_BR_X] = -1;
+ xsane.well_known.coord[xsane_back_gtk_BR_Y] = -1;
+ xsane.well_known.gamma_vector = -1;
+ xsane.well_known.gamma_vector_r = -1;
+ xsane.well_known.gamma_vector_g = -1;
+ xsane.well_known.gamma_vector_b = -1;
+ xsane.well_known.bit_depth = -1;
+ xsane.well_known.threshold = -1;
+ xsane.well_known.shadow = -1;
+ xsane.well_known.shadow_r = -1;
+ xsane.well_known.shadow_g = -1;
+ xsane.well_known.shadow_b = -1;
+ xsane.well_known.highlight = -1;
+ xsane.well_known.highlight_r = -1;
+ xsane.well_known.highlight_g = -1;
+ xsane.well_known.highlight_b = -1;
+
+
+ /* standard options */
+ xsane.standard_hbox = gtk_hbox_new(FALSE, 2);
+ gtk_widget_show(xsane.standard_hbox);
+ standard_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
+ gtk_widget_show(standard_vbox);
+/* gtk_box_pack_start(GTK_BOX(xsane.standard_hbox), standard_vbox, FALSE, FALSE, 0); */ /* make frame fixed */
+ gtk_box_pack_start(GTK_BOX(xsane.standard_hbox), standard_vbox, TRUE, TRUE, 0); /* make frame sizeable */
+
+ /* advanced options */
+ xsane.advanced_hbox = gtk_hbox_new(FALSE, 2);
+ gtk_widget_show(xsane.advanced_hbox);
+ advanced_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
+ gtk_widget_show(advanced_vbox);
+/* gtk_box_pack_start(GTK_BOX(xsane.advanced_hbox), advanced_vbox, FALSE, FALSE, 0); */ /* make frame fixed */
+ gtk_box_pack_start(GTK_BOX(xsane.advanced_hbox), advanced_vbox, TRUE, TRUE, 0); /* make frame sizeable */
+
+#if 0
+ /* free gamma curve */
+ xsane.gamma_hbox = gtk_hbox_new(FALSE, 2);
+ gtk_widget_show(xsane.gamma_hbox);
+ gamma_vbox = gtk_vbox_new(/* homogeneous */ FALSE, 0);
+ gtk_widget_show(gamma_vbox);
+/* gtk_box_pack_start(GTK_BOX(xsane.gamma_hbox), gamma_vbox, FALSE, FALSE, 0); */ /* make frame fixed */
+ gtk_box_pack_start(GTK_BOX(xsane.gamma_hbox), gamma_vbox, TRUE, TRUE, 0); /* make frame sizeable */
+#endif
+
+ vector_opts = alloca(xsane.num_elements * sizeof (int));
+
+ parent = standard_vbox;
+ for (i = 1; i < xsane.num_elements; ++i)
+ {
+ opt = xsane_get_option_descriptor(dev, i);
+ if (!SANE_OPTION_IS_ACTIVE(opt->cap))
+ continue;
+
+ /* pick up well-known options as we go: */
+ if (opt->name)
+ {
+ if (strcmp(opt->name, SANE_NAME_PREVIEW) == 0 && opt->type == SANE_TYPE_BOOL)
+ {
+ xsane.well_known.preview = i;
+ continue;
+ }
+ else if (strcmp(opt->name, SANE_NAME_SCAN_RESOLUTION) == 0
+ && opt->unit == SANE_UNIT_DPI && (opt->type == SANE_TYPE_INT || opt->type == SANE_TYPE_FIXED))
+ xsane.well_known.dpi = i;
+ else if (strcmp(opt->name, SANE_NAME_SCAN_X_RESOLUTION) == 0
+ && opt->unit == SANE_UNIT_DPI && (opt->type == SANE_TYPE_INT || opt->type == SANE_TYPE_FIXED))
+ xsane.well_known.dpi_x = i;
+ else if (strcmp(opt->name, SANE_NAME_SCAN_Y_RESOLUTION) == 0
+ && opt->unit == SANE_UNIT_DPI && (opt->type == SANE_TYPE_INT || opt->type == SANE_TYPE_FIXED))
+ xsane.well_known.dpi_y = i;
+ else if (strcmp (opt->name, SANE_NAME_SCAN_MODE) == 0)
+ xsane.well_known.scanmode = i;
+ else if (strcmp (opt->name, SANE_NAME_SCAN_SOURCE) == 0)
+ xsane.well_known.scansource = i;
+ else if (strcmp (opt->name, SANE_NAME_SCAN_TL_X) == 0)
+ xsane.well_known.coord[xsane_back_gtk_TL_X] = i;
+ else if (strcmp (opt->name, SANE_NAME_SCAN_TL_Y) == 0)
+ xsane.well_known.coord[xsane_back_gtk_TL_Y] = i;
+ else if (strcmp (opt->name, SANE_NAME_SCAN_BR_X) == 0)
+ xsane.well_known.coord[xsane_back_gtk_BR_X] = i;
+ else if (strcmp (opt->name, SANE_NAME_SCAN_BR_Y) == 0)
+ xsane.well_known.coord[xsane_back_gtk_BR_Y] = i;
+ else if (strcmp (opt->name, SANE_NAME_GAMMA_VECTOR) == 0)
+ xsane.well_known.gamma_vector = i;
+ else if (strcmp (opt->name, SANE_NAME_GAMMA_VECTOR_R) == 0)
+ xsane.well_known.gamma_vector_r = i;
+ else if (strcmp (opt->name, SANE_NAME_GAMMA_VECTOR_G) == 0)
+ xsane.well_known.gamma_vector_g = i;
+ else if (strcmp (opt->name, SANE_NAME_GAMMA_VECTOR_B) == 0)
+ xsane.well_known.gamma_vector_b = i;
+ else if (strcmp (opt->name, SANE_NAME_BIT_DEPTH) == 0)
+ xsane.well_known.bit_depth = i;
+ else if (strcmp (opt->name, SANE_NAME_THRESHOLD) == 0)
+ xsane.well_known.threshold = i;
+ else if (strcmp (opt->name, SANE_NAME_HIGHLIGHT) == 0)
+ xsane.well_known.highlight = i;
+ else if (strcmp (opt->name, SANE_NAME_HIGHLIGHT_R) == 0)
+ xsane.well_known.highlight_r = i;
+ else if (strcmp (opt->name, SANE_NAME_HIGHLIGHT_G) == 0)
+ xsane.well_known.highlight_g = i;
+ else if (strcmp (opt->name, SANE_NAME_HIGHLIGHT_B) == 0)
+ xsane.well_known.highlight_b = i;
+ else if (strcmp (opt->name, SANE_NAME_SHADOW) == 0)
+ xsane.well_known.shadow = i;
+ else if (strcmp (opt->name, SANE_NAME_SHADOW_R) == 0)
+ xsane.well_known.shadow_r = i;
+ else if (strcmp (opt->name, SANE_NAME_SHADOW_G) == 0)
+ xsane.well_known.shadow_g = i;
+ else if (strcmp (opt->name, SANE_NAME_SHADOW_B) == 0)
+ xsane.well_known.shadow_b = i;
+ }
+
+ elem = xsane.element + i;
+
+ if (opt->unit == SANE_UNIT_NONE)
+ {
+ snprintf(title, sizeof(title), "%s", _BGT(opt->title));
+ }
+ else
+ {
+ snprintf(title, sizeof(title), "%s [%s]", _BGT(opt->title), xsane_back_gtk_unit_string(opt->unit));
+ }
+
+ switch (opt->type)
+ {
+ case SANE_TYPE_GROUP:
+ /* group a set of options */
+ vbox = standard_vbox;
+ if (opt->cap & SANE_CAP_ADVANCED)
+ {
+ vbox = advanced_vbox;
+ }
+ parent = xsane_back_gtk_group_new(vbox, title);
+ elem->widget = parent;
+ break;
+
+ case SANE_TYPE_BOOL:
+ assert(opt->size == sizeof(SANE_Word));
+ status = xsane_control_option(xsane.dev, i, SANE_ACTION_GET_VALUE, &val, 0);
+ if (status != SANE_STATUS_GOOD)
+ {
+ goto get_value_failed;
+ }
+ xsane_back_gtk_button_new(parent, title, val, elem, xsane.tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
+ gtk_widget_show(parent->parent);
+ break;
+
+ case SANE_TYPE_INT:
+ if (opt->size != sizeof(SANE_Word))
+ {
+ vector_opts[num_vector_opts++] = i;
+ break;
+ }
+ status = xsane_control_option(xsane.dev, i, SANE_ACTION_GET_VALUE, &val, 0);
+ if (status != SANE_STATUS_GOOD)
+ {
+ goto get_value_failed;
+ }
+
+ switch (opt->constraint_type)
+ {
+ case SANE_CONSTRAINT_RANGE:
+ if ( (strcmp(opt->name, SANE_NAME_SCAN_RESOLUTION) ) && /* do not show resolution */
+ (strcmp(opt->name, SANE_NAME_SCAN_X_RESOLUTION)) && /* do not show x-resolution */
+ (strcmp(opt->name, SANE_NAME_SCAN_Y_RESOLUTION)) ) /* do not show y-resolution */
+ {
+ /* use a scale */
+ quant = opt->constraint.range->quant;
+ if (quant == 0)
+ {
+ quant = 1; /* we have integers */
+ }
+
+ xsane_back_gtk_scale_new(parent, title, val, opt->constraint.range->min, opt->constraint.range->max, quant,
+ (opt->cap & SANE_CAP_AUTOMATIC), elem, xsane.tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
+ gtk_widget_show(parent->parent);
+ }
+ break;
+
+ case SANE_CONSTRAINT_WORD_LIST:
+ if ( (strcmp(opt->name, SANE_NAME_SCAN_RESOLUTION) ) && /* do not show resolution */
+ (strcmp(opt->name, SANE_NAME_SCAN_X_RESOLUTION)) && /* do not show x-resolution */
+ (strcmp(opt->name, SANE_NAME_SCAN_Y_RESOLUTION)) ) /* do not show y-resolution */
+ {
+ /* use a "list-selection" widget */
+ num_words = opt->constraint.word_list[0];
+ str_list = malloc((num_words + 1) * sizeof(str_list[0]));
+ for (j = 0; j < num_words; ++j)
+ {
+ sprintf(str, "%d", opt->constraint.word_list[j + 1]);
+ str_list[j] = strdup(str);
+ }
+ str_list[j] = 0;
+ sprintf(str, "%d", val);
+ xsane_back_gtk_option_menu_new(parent, title, str_list, str, elem, xsane.tooltips, _BGT(opt->desc),
+ SANE_OPTION_IS_SETTABLE(opt->cap));
+ free(str_list);
+ gtk_widget_show(parent->parent);
+ }
+ break;
+
+ default:
+ DBG(DBG_error, "xsane_panel_build: %s %d!\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
+ break;
+ }
+ break;
+
+ case SANE_TYPE_FIXED:
+ if (opt->size != sizeof (SANE_Word))
+ {
+ vector_opts[num_vector_opts++] = i;
+ break;
+ }
+ status = xsane_control_option(xsane.dev, i, SANE_ACTION_GET_VALUE, &val, 0);
+ if (status != SANE_STATUS_GOOD)
+ {
+ goto get_value_failed;
+ }
+
+ switch (opt->constraint_type)
+ {
+ case SANE_CONSTRAINT_RANGE:
+ if ( (strcmp(opt->name, SANE_NAME_SCAN_RESOLUTION) ) && /* do not show resolution */
+ (strcmp(opt->name, SANE_NAME_SCAN_X_RESOLUTION)) && /* do not show x-resolution */
+ (strcmp(opt->name, SANE_NAME_SCAN_Y_RESOLUTION)) && /* do not show y-resolution */
+ ((strcmp(opt->name, SANE_NAME_THRESHOLD) || (xsane.lineart_mode == XSANE_LINEART_STANDARD)))
+ /* do not show threshold if user wants the slider in the xsane main window */
+ )
+ {
+ /* use a scale */
+ dval = SANE_UNFIX(val);
+ dmin = SANE_UNFIX(opt->constraint.range->min);
+ dmax = SANE_UNFIX(opt->constraint.range->max);
+ dquant = SANE_UNFIX(quant = opt->constraint.range->quant);
+
+ if (opt->unit == SANE_UNIT_MM)
+ {
+ dval /= preferences.length_unit;
+ dmin /= preferences.length_unit;
+ dmax /= preferences.length_unit;
+ dquant /= preferences.length_unit;
+ }
+
+ if (dquant == 0) /* no quantization specified */
+ {
+ dquant = 0.01; /* display x.2 digits */
+ }
+
+ xsane_back_gtk_scale_new(parent, title, dval, dmin, dmax, dquant, (opt->cap & SANE_CAP_AUTOMATIC), elem,
+ xsane.tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
+ gtk_widget_show(parent->parent);
+ }
+ break;
+
+ case SANE_CONSTRAINT_WORD_LIST:
+ if ( (strcmp(opt->name, SANE_NAME_SCAN_RESOLUTION) ) && /* do not show resolution */
+ (strcmp(opt->name, SANE_NAME_SCAN_X_RESOLUTION)) && /* do not show x-resolution */
+ (strcmp(opt->name, SANE_NAME_SCAN_Y_RESOLUTION)) ) /* do not show y-resolution */
+ {
+ /* use a "list-selection" widget */
+ num_words = opt->constraint.word_list[0];
+ str_list = malloc ((num_words + 1) * sizeof (str_list[0]));
+ for (j = 0; j < num_words; ++j)
+ {
+ sprintf(str, "%g", SANE_UNFIX(opt->constraint.word_list[j + 1]));
+ str_list[j] = strdup(str);
+ }
+ str_list[j] = 0;
+ sprintf(str, "%g", SANE_UNFIX(val));
+ xsane_back_gtk_option_menu_new(parent, title, str_list, str, elem, xsane.tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
+ free (str_list);
+ gtk_widget_show(parent->parent);
+ }
+ break;
+
+ default:
+ DBG(DBG_error, "xsane_panel_build: %s %d!\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
+ break;
+ }
+ break;
+
+ case SANE_TYPE_STRING:
+ buf = malloc (opt->size);
+ status = xsane_control_option(xsane.dev, i, SANE_ACTION_GET_VALUE, buf, 0);
+ if (status != SANE_STATUS_GOOD)
+ {
+ free (buf);
+ goto get_value_failed;
+ }
+
+ switch (opt->constraint_type)
+ {
+ case SANE_CONSTRAINT_STRING_LIST:
+ if ( (strcmp (opt->name, SANE_NAME_SCAN_MODE) != 0) && /* do not show scanmode */
+ (strcmp (opt->name, SANE_NAME_SCAN_SOURCE) != 0) ) /* do not show scansource */
+ {
+ /* use a "list-selection" widget */
+ xsane_back_gtk_option_menu_new(parent, title, (char **) opt->constraint.string_list, buf,
+ elem, xsane.tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
+ gtk_widget_show (parent->parent);
+ }
+ break;
+
+ case SANE_CONSTRAINT_NONE:
+ xsane_back_gtk_text_entry_new(parent, title, buf, elem, xsane.tooltips, _BGT(opt->desc), SANE_OPTION_IS_SETTABLE(opt->cap));
+ gtk_widget_show (parent->parent);
+ break;
+
+ default:
+ DBG(DBG_error, "xsane_panel_build: %s %d!\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type);
+ break;
+ }
+ free (buf);
+ break;
+
+ case SANE_TYPE_BUTTON:
+ button = gtk_button_new();
+ gtk_signal_connect(GTK_OBJECT (button), "clicked", (GtkSignalFunc) xsane_back_gtk_push_button_callback, elem);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, _BGT(opt->desc));
+
+ label = gtk_label_new(title);
+ gtk_container_add(GTK_CONTAINER (button), label);
+
+ gtk_box_pack_start(GTK_BOX (parent), button, FALSE, TRUE, 0);
+
+ gtk_widget_show(label);
+ gtk_widget_show(button);
+
+ gtk_widget_set_sensitive(button, SANE_OPTION_IS_SETTABLE(opt->cap));
+
+ elem->widget = button;
+ gtk_widget_show(parent->parent);
+ break;
+
+ default:
+ DBG(DBG_error, "xsane_panel_build: %s %d\n", ERR_UNKNOWN_TYPE, opt->type);
+ break;
+ }
+ continue;
+
+ get_value_failed:
+ {
+ char msg[256];
+
+ sprintf(msg, "%s %s: %s.", ERR_GET_OPTION, opt->name, XSANE_STRSTATUS(status));
+ xsane_back_gtk_error(msg, TRUE);
+ }
+ }
+
+ if ((xsane.well_known.dpi_x == -1) && (xsane.well_known.dpi_y != -1))
+ {
+ xsane.well_known.dpi_x = xsane.well_known.dpi;
+ }
+
+ xsane.xsane_hbox = xsane_update_xsane_callback();
+
+ gtk_container_add(GTK_CONTAINER(xsane.xsane_window), xsane.xsane_hbox);
+ gtk_container_add(GTK_CONTAINER(xsane.standard_window), xsane.standard_hbox);
+ gtk_container_add(GTK_CONTAINER(xsane.advanced_window), xsane.advanced_hbox);
+
+ xsane_update_histogram(TRUE /* update raw */);
+ xsane_update_sliders();
+
+#ifdef HAVE_WORKING_GTK_GAMMACURVE
+ xsane_update_gamma_dialog();
+#endif
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+/* connect to backend and create main dialogs:
+ - sane_open
+ - create dialog xsane.shell
+ - build menues
+ - create dialog xsane.standard_options_shell
+ - create dialog xsane.advanced_options_shell
+ - create tooltip style
+ - create dialog xsane.histogram_dialog
+ - create dialog xsane.gamma_dialog
+ - panel_build()
+ - create dialog xsane.preview
+*/
+
+static void xsane_device_dialog(void)
+{
+ GtkWidget *vbox, *hbox, *button, *frame, *infobox;
+ GtkWidget *menubar, *menubar_item;
+ const gchar *devname;
+ char buf[256];
+ char windowname[255];
+ char devicetext[255];
+ char *textptr;
+ GtkWidget *xsane_window;
+ GtkWidget *xsane_vbox_main;
+ GtkWidget *xsane_vbox_standard;
+ GtkWidget *xsane_vbox_advanced;
+ GdkColormap *colormap;
+ SANE_Status status;
+
+ DBG(DBG_proc, "xsane_device_dialog\n");
+
+ devname = xsane.devlist[xsane.selected_dev]->name;
+
+ status = sane_open(devname, (SANE_Handle *) &xsane.dev);
+ if (status != SANE_STATUS_GOOD)
+ {
+ snprintf(buf, sizeof(buf), "%s `%s':\n %s.", ERR_DEVICE_OPEN_FAILED, devname, XSANE_STRSTATUS(status));
+ xsane_back_gtk_error(buf, TRUE);
+ xsane_exit();
+ /* will never come to here */
+ }
+
+ if (xsane_control_option(xsane.dev, 0, SANE_ACTION_GET_VALUE, &xsane.num_elements, 0) != SANE_STATUS_GOOD)
+ {
+ xsane_back_gtk_error(ERR_OPTION_COUNT, TRUE);
+ sane_close(xsane.dev);
+ xsane_exit();
+ /* will never come to here */
+ }
+
+ snprintf(buf, sizeof(buf), "%s", xsane.devlist[xsane.selected_dev]->name); /* generate "sane-BACKENDNAME" */
+ textptr = strrchr(buf, ':'); /* format is midend:midend:midend:backend:device or backend:device */
+ if (textptr)
+ {
+ *textptr = 0; /* erase ":device" at end of text */
+ textptr = strrchr(buf, ':');
+ if (textptr) /* midend:backend:device */
+ {
+ textptr++;
+ }
+ else /* backend:device */
+ {
+ textptr = buf;
+ }
+
+ xsane.backend = malloc(strlen(textptr)+6);
+ sprintf(xsane.backend, "sane-%s", textptr); /* add "sane-" */
+
+ DBG(DBG_info, "Setting backend \"%s\" localedir: %s\n", xsane.backend, STRINGIFY(LOCALEDIR));
+ bindtextdomain(xsane.backend, STRINGIFY(LOCALEDIR)); /* set path for backend translation texts */
+ }
+
+ /* create device-text for window titles */
+
+ snprintf(devicetext, sizeof(devicetext), "%s", xsane.devlist[xsane.selected_dev]->model);
+ textptr = devicetext + strlen(devicetext);
+ while (*(textptr-1) == ' ') /* erase spaces at end of text */
+ {
+ textptr--;
+ }
+
+ *textptr = ':';
+ textptr++;
+ *textptr = 0;
+
+ if (!strncmp(devname, "net:", 4)) /* network device ? */
+ {
+ sprintf(textptr, "net:");
+ textptr = devicetext + strlen(devicetext);
+ }
+
+ snprintf(buf, sizeof(buf), ":%s", devname);
+ snprintf(buf, sizeof(buf), "/%s", (strrchr(buf, ':')+1));
+ sprintf(textptr, (strrchr(buf, '/')+1));
+
+ xsane.device_text = strdup(devicetext);
+
+
+ /* if no preferences filename is given on commandline create one from devicenaname */
+
+ if (!xsane.device_set_filename)
+ {
+ if (!strcmp(xsane.devlist[xsane.selected_dev]->vendor, TEXT_UNKNOWN))
+ {
+ snprintf(buf, sizeof(buf), "%s", xsane.devlist[xsane.selected_dev]->name);
+ }
+ else
+ {
+ snprintf(buf, sizeof(buf), "%s:%s", xsane.devlist[xsane.selected_dev]->vendor, xsane.devlist[xsane.selected_dev]->model);
+ }
+ xsane.device_set_filename = strdup(buf); /* set preferences filename */
+ }
+
+ if (xsane.main_window_fixed == -1) /* no command line option given */
+ {
+ xsane.main_window_fixed = preferences.main_window_fixed;
+ }
+
+
+ /* create the xsane dialog box */
+
+ xsane.shell = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_widget_set_uposition(xsane.shell, XSANE_SHELL_POS_X, XSANE_SHELL_POS_Y);
+ sprintf(windowname, "%s %s %s", xsane.prog_name, XSANE_VERSION, xsane.device_text);
+ gtk_window_set_title(GTK_WINDOW(xsane.shell), (char *) windowname);
+ gtk_signal_connect(GTK_OBJECT(xsane.shell), "delete_event", GTK_SIGNAL_FUNC(xsane_scan_win_delete), NULL);
+
+ xsane_set_window_icon(xsane.shell, 0);
+
+ /* create the xsane main window accelerator table */
+ xsane.accelerator_group = gtk_accel_group_new();
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(xsane.shell));
+
+
+ /* set the main vbox */
+ xsane_window = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(xsane_window), 0);
+ gtk_container_add(GTK_CONTAINER(xsane.shell), xsane_window);
+ gtk_widget_show(xsane_window);
+
+ /* create the menubar */
+ menubar = gtk_menu_bar_new();
+ gtk_box_pack_start(GTK_BOX(xsane_window), menubar, FALSE, FALSE, 0);
+
+ /* "Files" submenu: */
+ menubar_item = gtk_menu_item_new_with_label(MENU_FILE);
+ gtk_container_add(GTK_CONTAINER(menubar), menubar_item);
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_item), xsane_files_build_menu());
+/* gtk_widget_add_accelerator(menubar_item, "select", xsane.accelerator_group, GDK_F, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED); */
+ gtk_widget_show(menubar_item);
+
+ /* "Preferences" submenu: */
+ menubar_item = gtk_menu_item_new_with_label(MENU_PREFERENCES);
+ gtk_container_add(GTK_CONTAINER(menubar), menubar_item);
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_item), xsane_pref_build_menu());
+/* gtk_widget_add_accelerator(menubar_item, "select", xsane.accelerator_group, GDK_P, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED); */
+ gtk_widget_show(menubar_item);
+
+ /* "View" submenu: */
+ menubar_item = gtk_menu_item_new_with_label(MENU_VIEW);
+ gtk_container_add(GTK_CONTAINER(menubar), menubar_item);
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_item), xsane_view_build_menu());
+/* gtk_widget_add_accelerator(menubar_item, "select", xsane.accelerator_group, GDK_V, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED); */
+ gtk_widget_show(menubar_item);
+
+
+ /* "Help" submenu: */
+ menubar_item = gtk_menu_item_new_with_label(MENU_HELP);
+ gtk_container_add(GTK_CONTAINER(menubar), menubar_item);
+ gtk_menu_item_right_justify((GtkMenuItem *) menubar_item);
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_item), xsane_help_build_menu());
+/* gtk_widget_add_accelerator(menubar_item, "select", xsane.accelerator_group, GDK_H, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED); */
+ gtk_widget_show(menubar_item);
+
+ gtk_widget_show(menubar);
+ xsane.menubar = menubar;
+
+
+ if (xsane.main_window_fixed) /* fixed window: use it like it is */
+ {
+ /* shrink grow auto_shrink */
+ gtk_window_set_policy(GTK_WINDOW(xsane.shell), FALSE, FALSE, TRUE); /* auto size */
+
+ xsane_vbox_main = gtk_vbox_new(TRUE, 5); /* we need this to set the wanted borders */
+ gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_main), 5);
+ gtk_container_add(GTK_CONTAINER(xsane_window), xsane_vbox_main);
+ }
+ else /* scrolled window: create a scrolled window and put it into the xsane dialog box */
+ {
+ gtk_window_set_default_size(GTK_WINDOW(xsane.shell), XSANE_SHELL_WIDTH, XSANE_SHELL_HEIGHT); /* set default size */
+
+ /* shrink grow auto_shrink */
+ gtk_window_set_policy(GTK_WINDOW(xsane.shell), TRUE, TRUE, FALSE); /* allow resizing */
+
+ xsane.main_dialog_scrolled = gtk_scrolled_window_new(0, 0);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(xsane.main_dialog_scrolled),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+
+ gtk_container_add(GTK_CONTAINER(xsane_window), xsane.main_dialog_scrolled);
+ gtk_widget_show(xsane.main_dialog_scrolled);
+
+ xsane_vbox_main = gtk_vbox_new(TRUE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_main), 5);
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(xsane.main_dialog_scrolled), xsane_vbox_main);
+ }
+
+ /* create a subwindow so the main dialog keeps its position on rebuilds: */
+ xsane.xsane_window = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(xsane_vbox_main), xsane.xsane_window, TRUE, TRUE, 0);
+ gtk_widget_show(xsane.xsane_window);
+
+ gtk_widget_show(xsane_vbox_main);
+
+#if 0
+ /* add vendor´s logo */
+ xsane_vendor_pixmap_new(xsane.shell->window, xsane_window);
+#endif
+
+
+ /* create the scanner standard options dialog box */
+
+ xsane.standard_options_shell = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_widget_set_uposition(xsane.standard_options_shell, XSANE_STD_OPTIONS_POS_X, XSANE_STD_OPTIONS_POS_Y);
+ sprintf(windowname, "%s %s", WINDOW_STANDARD_OPTIONS, xsane.device_text);
+ gtk_window_set_title(GTK_WINDOW(xsane.standard_options_shell), (char *) windowname);
+
+ /* shrink grow auto_shrink */
+ gtk_window_set_policy(GTK_WINDOW(xsane.standard_options_shell), FALSE, FALSE, TRUE);
+ gtk_signal_connect(GTK_OBJECT(xsane.standard_options_shell), "delete_event",
+ GTK_SIGNAL_FUNC(xsane_standard_option_win_delete), NULL);
+
+ xsane_set_window_icon(xsane.standard_options_shell, 0);
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(xsane.standard_options_shell));
+
+ xsane_vbox_standard = gtk_vbox_new(FALSE, 5); /* has been TRUE before I added backend pixmap */
+ gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_standard), 5);
+ gtk_container_add(GTK_CONTAINER(xsane.standard_options_shell), xsane_vbox_standard);
+ gtk_widget_show(xsane_vbox_standard);
+
+ /* add vendor´s logo */
+ xsane_vendor_pixmap_new(xsane.standard_options_shell->window, xsane_vbox_standard);
+
+ /* create a subwindow so the standard dialog keeps its position on rebuilds: */
+ xsane.standard_window = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(xsane_vbox_standard), xsane.standard_window, TRUE, TRUE, 0);
+ gtk_widget_show(xsane.standard_window);
+
+
+ /* create the scanner advanced options dialog box */
+
+ xsane.advanced_options_shell = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_widget_set_uposition(xsane.advanced_options_shell, XSANE_ADV_OPTIONS_POS_X, XSANE_ADV_OPTIONS_POS_Y);
+ sprintf(windowname, "%s %s",WINDOW_ADVANCED_OPTIONS, xsane.device_text);
+ gtk_window_set_title(GTK_WINDOW(xsane.advanced_options_shell), (char *) windowname);
+
+ /* shrink grow auto_shrink */
+ gtk_window_set_policy(GTK_WINDOW(xsane.advanced_options_shell), FALSE, FALSE, TRUE);
+ gtk_signal_connect(GTK_OBJECT(xsane.advanced_options_shell), "delete_event",
+ GTK_SIGNAL_FUNC(xsane_advanced_option_win_delete), NULL);
+
+ xsane_set_window_icon(xsane.advanced_options_shell, 0);
+ gtk_accel_group_attach(xsane.accelerator_group, GTK_OBJECT(xsane.advanced_options_shell));
+
+ xsane_vbox_advanced = gtk_vbox_new(FALSE, 5); /* has been TRUE before I added backend pixmap */
+ gtk_container_set_border_width(GTK_CONTAINER(xsane_vbox_advanced), 5);
+ gtk_container_add(GTK_CONTAINER(xsane.advanced_options_shell), xsane_vbox_advanced);
+ gtk_widget_show(xsane_vbox_advanced);
+
+ /* add vendor´s logo */
+ xsane_vendor_pixmap_new(xsane.advanced_options_shell->window, xsane_vbox_advanced);
+
+ /* create a subwindow so the advanced dialog keeps its position on rebuilds: */
+ xsane.advanced_window = gtk_hbox_new(/* homogeneous */ FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(xsane_vbox_advanced), xsane.advanced_window, TRUE, TRUE, 0);
+ gtk_widget_show(xsane.advanced_window);
+
+
+ /* fill in dialog structure */
+
+ xsane.dev_name = strdup(devname);
+ xsane.element = malloc(xsane.num_elements * sizeof(xsane.element[0]));
+ memset(xsane.element, 0, xsane.num_elements * sizeof(xsane.element[0]));
+
+
+ /* realize xsane main dialog */
+ /* normally a realize should be ok, but then
+ the default size of the scrollwed window is ignored
+ so we use a widget_show in that case */
+
+ if (xsane.main_window_fixed)
+ {
+ gtk_widget_realize(xsane.shell);
+ }
+ else
+ {
+ gtk_widget_show(xsane.shell);
+ /* the disadavantage of this is that the main window does
+ not have the focus when every window is shown */
+ }
+
+
+
+ /* define tooltips colors */
+
+ xsane.tooltips = gtk_tooltips_new();
+ colormap = gdk_window_get_colormap(xsane.shell->window);
+
+/* I don`t know why the following does not work with gtk-1.2.x */
+/* but the gimp has the same problems ;-) */
+ /* use black as foreground: */
+ xsane.tooltips_fg.red = 0;
+ xsane.tooltips_fg.green = 0;
+ xsane.tooltips_fg.blue = 0;
+ gdk_color_alloc(colormap, &xsane.tooltips_fg);
+
+ /* postit yellow (khaki) as background: */
+ xsane.tooltips_bg.red = 61669;
+ xsane.tooltips_bg.green = 59113;
+ xsane.tooltips_bg.blue = 35979;
+ gdk_color_alloc(colormap, &xsane.tooltips_bg);
+
+/* as long as gtk_tooltips_set_colors() does not work : */
+#ifdef BUGGY_GTK_TOOLTIPS_SET_COLORS
+ gtk_tooltips_force_window(xsane.tooltips);
+ {
+ GtkStyle *current_style = gtk_style_copy(gtk_widget_get_style(xsane.tooltips->tip_window));
+
+ current_style->bg[GTK_STATE_NORMAL] = xsane.tooltips_bg;
+ current_style->fg[GTK_STATE_NORMAL] = xsane.tooltips_fg;
+ gtk_widget_set_style(xsane.tooltips->tip_window, current_style);
+ }
+#else
+ gtk_tooltips_set_colors(xsane.tooltips, &xsane.tooltips_bg, &xsane.tooltips_fg);
+#endif
+ xsane_back_gtk_set_tooltips(preferences.tooltips_enabled);
+
+
+
+ /* create histogram dialog and set colors */
+ xsane_create_histogram_dialog(xsane.device_text); /* create the histogram dialog */
+
+#ifdef HAVE_WORKING_GTK_GAMMACURVE
+ /* create gamma dialog and set colors */
+ xsane_create_gamma_dialog(xsane.device_text); /* create the free gamma curve dialog */
+#endif
+
+ /* The bottom area: info frame, progress bar, start and cancel button */
+ xsane_separator_new(xsane_window, 2);
+ hbox = gtk_hbox_new(FALSE, 5);
+ gtk_box_pack_end(GTK_BOX(xsane_window), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+
+ /* vertical box for info frame and progress bar */
+ vbox = gtk_vbox_new(FALSE, 5);
+ gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
+ gtk_widget_show(vbox);
+
+
+ /* Info frame */
+ frame = gtk_frame_new(0);
+ gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
+ gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
+ gtk_widget_show(frame);
+
+ infobox = gtk_hbox_new(FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(infobox), 2);
+ gtk_container_add(GTK_CONTAINER(frame), infobox);
+ gtk_widget_show(infobox);
+
+ xsane.info_label = gtk_label_new(TEXT_INFO_BOX);
+ gtk_box_pack_start(GTK_BOX(infobox), xsane.info_label, TRUE, TRUE, 0);
+ gtk_widget_show(xsane.info_label);
+
+ /* progress bar */
+ xsane.progress_bar = (GtkProgressBar *) gtk_progress_bar_new();
+ gtk_box_pack_start(GTK_BOX(vbox), (GtkWidget *) xsane.progress_bar, TRUE, TRUE, 0);
+ gtk_progress_set_show_text(GTK_PROGRESS(xsane.progress_bar), TRUE);
+ gtk_progress_set_format_string(GTK_PROGRESS(xsane.progress_bar), "");
+ gtk_widget_show(GTK_WIDGET(xsane.progress_bar));
+
+
+ /* vertical box for scan and cancel button */
+ vbox = gtk_vbox_new(FALSE, 5);
+ gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
+ gtk_widget_show(vbox);
+
+ /* The Scan button */
+ button = gtk_button_new_with_label(BUTTON_START);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_SCAN_START);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_Return, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_scan_dialog, NULL);
+ gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
+ gtk_widget_show(button);
+ xsane.start_button = GTK_OBJECT(button);
+
+ /* The Cancel button */
+ button = gtk_button_new_with_label(BUTTON_CANCEL);
+ xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_SCAN_CANCEL);
+ gtk_widget_add_accelerator(button, "clicked", xsane.accelerator_group, GDK_Escape, 0, GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
+ gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
+ gtk_widget_show(button);
+ gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
+ xsane.cancel_button = GTK_OBJECT(button);
+
+
+ /* create backend dependend options */
+ xsane_panel_build();
+
+
+ /* create preview dialog */
+ xsane.preview = preview_new();
+ gtk_signal_connect(GTK_OBJECT(xsane.preview->top), "delete_event", GTK_SIGNAL_FUNC(xsane_preview_window_destroyed), NULL);
+
+ xsane_device_preferences_restore(); /* restore device-settings */
+ xsane_set_modus_defaults();
+ xsane_update_param(0);
+ xsane_update_gamma_curve(TRUE);
+
+ gtk_widget_realize(xsane.standard_options_shell); /* is needed for saving window geometry */
+ gtk_widget_realize(xsane.advanced_options_shell);
+
+ if (preferences.show_standard_options)
+ {
+ gtk_widget_show(xsane.standard_options_shell);
+ }
+
+ if (preferences.show_advanced_options)
+ {
+ gtk_widget_show(xsane.advanced_options_shell);
+ }
+
+ gtk_widget_show(xsane.shell); /* call as last so focus is on it */
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ xsane_update_sliders();
+
+ if (xsane.show_preview)
+ {
+ gtk_widget_show(xsane.preview->top);
+ }
+ else
+ {
+ gtk_widget_hide(xsane.preview->top);
+ }
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(xsane.show_preview_widget), xsane.show_preview);
+
+ xsane_set_all_resolutions(); /* make sure resolution, resolution_x and resolution_y are up to date */
+ xsane_define_maximum_output_size(); /* draw maximum output frame in preview window if necessary */
+ xsane_refresh_dialog();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_choose_dialog_ok_callback(void)
+{
+ DBG(DBG_proc, "xsane_choose_dialog_ok_callback\n");
+
+ gtk_signal_disconnect_by_func(GTK_OBJECT(xsane.choose_device_dialog), GTK_SIGNAL_FUNC(xsane_exit), 0);
+ gtk_widget_destroy(xsane.choose_device_dialog);
+ xsane_device_dialog();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_select_device_by_key_callback(GtkWidget * widget, gpointer data)
+{
+ DBG(DBG_proc, "xsane_select_device_by_key_callback\n");
+
+ xsane.selected_dev = (int) data;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_select_device_by_mouse_callback(GtkWidget * widget, GdkEventButton *event, gpointer data)
+{
+ DBG(DBG_proc, "xsane_select_device_by_mouse_callback\n");
+
+ xsane.selected_dev = (int) data;
+ if (event->type == GDK_2BUTTON_PRESS && event->button == 1)
+ {
+ xsane_choose_dialog_ok_callback();
+ }
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_choose_device(void)
+{
+ GtkWidget *main_vbox, *vbox, *hbox, *button, *device_frame, *device_vbox, *pixmapwidget, *label;
+ GdkBitmap *mask;
+ GdkPixmap *pixmap;
+ GtkStyle *style;
+ GdkColor *bg_trans;
+ GSList *owner;
+ GtkAccelGroup *device_selection_accelerator_group;
+ gint i;
+ const SANE_Device *adev;
+ char buf[256];
+ char vendor[9];
+ char model[17];
+ char type[20];
+ char filename[PATH_MAX];
+ int j;
+ char *xsane_default_device = NULL;
+ int ndevs;
+
+#define TEXT_NO_VENDOR "no vendor\0"
+#define TEXT_NO_MODEL "no model\0"
+#define TEXT_NO_TYPE "no type\0"
+
+ DBG(DBG_proc, "xsane_choose_device\n");
+
+ xsane_default_device = getenv(XSANE_DEFAULT_DEVICE);
+ if (xsane_default_device)
+ {
+ for (ndevs = 0; xsane.devlist[ndevs]; ++ndevs)
+ {
+ if (!strncmp(xsane.devlist[ndevs]->name, xsane_default_device, strlen(xsane_default_device)))
+ {
+ xsane.selected_dev = ndevs;
+ break;
+ }
+ }
+ }
+
+ xsane.choose_device_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_position(GTK_WINDOW(xsane.choose_device_dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_policy(GTK_WINDOW(xsane.choose_device_dialog), FALSE, FALSE, FALSE);
+ gtk_signal_connect(GTK_OBJECT(xsane.choose_device_dialog), "destroy", GTK_SIGNAL_FUNC(xsane_exit), NULL);
+ snprintf(buf, sizeof(buf), "%s %s %s", xsane.prog_name, XSANE_VERSION, WINDOW_DEVICE_SELECTION);
+ gtk_window_set_title(GTK_WINDOW(xsane.choose_device_dialog), buf);
+
+ device_selection_accelerator_group = gtk_accel_group_new(); /* do we have to delete it when dialog is closed ? */
+ gtk_accel_group_attach(device_selection_accelerator_group, GTK_OBJECT(xsane.choose_device_dialog));
+
+ main_vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(main_vbox), 0);
+ gtk_container_add(GTK_CONTAINER(xsane.choose_device_dialog), main_vbox);
+ gtk_widget_show(main_vbox);
+
+ vbox = gtk_vbox_new(FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 3);
+ gtk_box_pack_start(GTK_BOX(main_vbox), vbox, TRUE, TRUE, 0);
+ gtk_widget_show(vbox);
+
+ /* xsane logo */
+ gtk_widget_realize(xsane.choose_device_dialog);
+
+ style = gtk_widget_get_style(xsane.choose_device_dialog);
+ bg_trans = &style->bg[GTK_STATE_NORMAL];
+
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane-logo", 0, ".xpm", XSANE_PATH_SYSTEM);
+ pixmap = gdk_pixmap_create_from_xpm(xsane.choose_device_dialog->window, &mask, bg_trans, filename);
+ pixmapwidget = gtk_pixmap_new(pixmap, mask);
+ gtk_box_pack_start(GTK_BOX(vbox), pixmapwidget, FALSE, FALSE, 2);
+ gtk_widget_show(pixmapwidget);
+ gdk_pixmap_unref(pixmap);
+
+ xsane_set_window_icon(xsane.choose_device_dialog, (gchar **) 0);
+
+ snprintf(buf, sizeof(buf), "%s %s\n", XSANE_COPYRIGHT_SIGN, XSANE_COPYRIGHT_TXT);
+ label = gtk_label_new(buf);
+ gtk_widget_show(label);
+ gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 2);
+
+ xsane_separator_new(vbox, 5);
+
+
+ /* list the drivers with radiobuttons */
+ device_frame = gtk_frame_new(TEXT_AVAILABLE_DEVICES);
+ gtk_box_pack_start(GTK_BOX(vbox), device_frame, FALSE, FALSE, 2);
+ gtk_widget_show(device_frame);
+
+ device_vbox = gtk_vbox_new(FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(device_vbox), 3);
+ gtk_container_add(GTK_CONTAINER(device_frame), device_vbox);
+
+ owner = 0;
+ for (i = 0; i < xsane.num_of_devs; i++)
+ {
+ adev = xsane.devlist[i];
+
+ if (adev->vendor)
+ {
+ strncpy(vendor, adev->vendor, sizeof(vendor)-1);
+ }
+ else
+ {
+ strncpy(vendor, TEXT_NO_VENDOR, sizeof(vendor)-1);
+ }
+
+ vendor[sizeof(vendor)-1] = 0;
+ for (j = strlen(vendor); j < sizeof(vendor)-1; j++)
+ {
+ vendor[j] = ' ';
+ }
+
+ if (adev->model)
+ {
+ strncpy(model, adev->model, sizeof(model)-1);
+ }
+ else
+ {
+ strncpy(model, TEXT_NO_MODEL, sizeof(model)-1);
+ }
+
+ model[sizeof(model)-1] = 0;
+ for (j = strlen(model); j < sizeof(model)-1; j++)
+ {
+ model[j] = ' ';
+ }
+
+ if (adev->type)
+ {
+ strncpy(type, _(adev->type), sizeof(type)-1); /* allow translation of device type */
+ }
+ else
+ {
+ strncpy(type, TEXT_NO_TYPE, sizeof(type)-1);
+ }
+
+ type[sizeof(type)-1] = 0;
+ for (j = strlen(type); j < sizeof(type)-1; j++)
+ {
+ type[j] = ' ';
+ }
+
+ snprintf(buf, sizeof(buf), "%s %s %s [%s]", vendor, model, type, adev->name);
+ button = gtk_radio_button_new_with_label(owner, (char *) buf);
+
+ if (i<12)
+ {
+ gtk_widget_add_accelerator(button, "clicked", device_selection_accelerator_group, GDK_F1+i, 0, GTK_ACCEL_LOCKED);
+ }
+
+ gtk_signal_connect(GTK_OBJECT(button), "button_press_event",
+ (GtkSignalFunc) xsane_select_device_by_mouse_callback, (void *) (long) i);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked",
+ (GtkSignalFunc) xsane_select_device_by_key_callback, (void *) (long) i);
+ gtk_box_pack_start(GTK_BOX(device_vbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+ owner = gtk_radio_button_group(GTK_RADIO_BUTTON(button));;
+
+ if (i == xsane.selected_dev)
+ {
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (button), TRUE);
+ }
+ }
+ gtk_widget_show(device_vbox);
+
+ /* The bottom row of buttons */
+ hbox = gtk_hbox_new(FALSE, 5);
+ xsane_separator_new(main_vbox, 5);
+ gtk_box_pack_end(GTK_BOX(main_vbox), hbox, FALSE, FALSE, 5);
+ gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+ gtk_widget_show(hbox);
+
+ /* The OK button */
+ button = gtk_button_new_with_label(BUTTON_OK);
+ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_choose_dialog_ok_callback, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_grab_default(button);
+ gtk_widget_show(button);
+
+ /* The Cancel button */
+ button = gtk_button_new_with_label(BUTTON_CANCEL);
+ gtk_widget_add_accelerator(button, "clicked", device_selection_accelerator_group, GDK_Escape, 0, GTK_ACCEL_LOCKED);
+ gtk_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_exit, NULL);
+ gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_widget_show(xsane.choose_device_dialog);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static void xsane_usage(void)
+{
+ printf("XSane %s %s\n", TEXT_VERSION, XSANE_VERSION);
+ printf("%s %s\n\n", XSANE_COPYRIGHT_SIGN, XSANE_COPYRIGHT_TXT);
+ printf("%s %s %s\n\n", TEXT_USAGE, xsane.prog_name, TEXT_USAGE_OPTIONS);
+ printf("%s\n\n", TEXT_HELP);
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+static int xsane_init(int argc, char **argv)
+/* returns 0 - if ok
+ 1 - if license was not accepted
+ 2 - if canceld because xsane was started as root
+ 3 - if wrong sane major version was found */
+{
+ GtkWidget *device_scanning_dialog;
+ GtkWidget *main_vbox;
+ GtkWidget *label;
+ struct stat st;
+ char filename[PATH_MAX];
+ char buf[256];
+
+ DBG(DBG_proc, "xsane_init\n");
+
+#ifndef _WIN32
+ gtk_set_locale();
+#endif
+ gtk_init(&argc, &argv);
+ setlocale(LC_NUMERIC, "C");
+
+#ifdef HAVE_LIBGIMP_GIMP_H
+ gtk_rc_parse(gimp_gtkrc());
+
+ gdk_set_use_xshm(gimp_use_xshm());
+#endif
+
+ /* before we open any windows we have to read the style file */
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane-style", 0, ".rc", XSANE_PATH_LOCAL_SANE);
+ if (stat(filename, &st) >= 0)
+ {
+ DBG(DBG_info, "loading %s\n", filename);
+ gtk_rc_parse(filename);
+ }
+ else /* no local xsane-style.rc, look for system file */
+ {
+ xsane_back_gtk_make_path(sizeof(filename), filename, "xsane", 0, "xsane-style", 0, ".rc", XSANE_PATH_SYSTEM);
+ if (stat(filename, &st) >= 0)
+ {
+ DBG(DBG_info, "loading %s\n", filename);
+ gtk_rc_parse(filename);
+ }
+ }
+
+ if (argc > 1)
+ {
+ int ch;
+
+ while((ch = getopt_long(argc, argv, "cd:fghlmnpsvFMN:RV", long_options, 0)) != EOF)
+ {
+ switch(ch)
+ {
+ case 'g': /* This options is set when xsane is called from the */
+ /* GIMP. If xsane is compiled without GIMP support */
+ /* then you get the error message when GIMP does */
+ /* query or tries to start the xsane plugin! */
+#ifndef HAVE_LIBGIMP_GIMP_H
+ printf("%s: %s\n", argv[0], ERR_GIMP_SUPPORT_MISSING);
+ exit(0);
+#endif
+ break;
+
+ case 'v': /* --version */
+ printf("%s-%s %s %s\n", xsane.prog_name, XSANE_VERSION, XSANE_COPYRIGHT_SIGN, XSANE_COPYRIGHT_TXT);
+ printf(" %s %s\n", TEXT_EMAIL, XSANE_EMAIL);
+ printf(" %s %s\n", TEXT_PACKAGE, PACKAGE_VERSION);
+ printf(" %s%d.%d.%d\n", TEXT_GTK_VERSION, GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
+
+#ifdef HAVE_LIBGIMP_GIMP_H
+ printf(" %s, %s%s\n", TEXT_WITH_GIMP_SUPPORT, TEXT_GIMP_VERSION, GIMP_VERSION);
+#else
+ printf(" %s\n", TEXT_WITHOUT_GIMP_SUPPORT);
+#endif
+
+ printf(" %s ", TEXT_OUTPUT_FORMATS);
+
+#ifdef HAVE_LIBJPEG
+ printf("jpeg, ");
+#endif
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+ printf("png, ");
+#endif
+#endif
+
+ printf("pnm, ");
+ printf("ps, ");
+ printf("raw");
+
+#ifdef SUPPORT_RGBA
+ printf(", rgba");
+#endif
+
+#ifdef HAVE_LIBTIFF
+ printf(", tiff");
+#endif
+ printf("\n");
+ exit(0);
+ break;
+
+ case 'l': /* --license */
+ printf("%s-%s %s %s\n\n", xsane.prog_name, XSANE_VERSION, XSANE_COPYRIGHT_SIGN, XSANE_COPYRIGHT_TXT);
+ printf("%s\n", TEXT_GPL);
+ exit(0);
+ break;
+
+ case 'd': /* --device-settings */
+ xsane.device_set_filename = strdup(optarg);
+ break;
+
+ case 'V': /* --viewer, default */
+ xsane.xsane_mode = XSANE_VIEWER;
+ break;
+
+ case 's': /* --save */
+ xsane.xsane_mode = XSANE_SAVE;
+ break;
+
+ case 'c': /* --copy */
+ xsane.xsane_mode = XSANE_COPY;
+ break;
+
+ case 'f': /* --fax */
+ xsane.xsane_mode = XSANE_FAX;
+ break;
+
+ case 'm': /* --mail */
+ xsane.xsane_mode = XSANE_MAIL;
+ break;
+
+ case 'n': /* --No-mode-selection */
+ xsane.mode_selection = 0;
+ break;
+
+ case 'F': /* --Fixed */
+ xsane.main_window_fixed = 1;
+ break;
+
+ case 'R': /* --Resizeable */
+ xsane.main_window_fixed = 0;
+ break;
+
+ case 'N': /* --No-filenameselection filename */
+ xsane.force_filename = TRUE;
+ xsane.external_filename = strdup(optarg);
+ break;
+
+ case 'p': /* --print-filenames */
+ xsane.print_filenames = TRUE;
+ break;
+
+ case 'M': /* --Medium-calibration */
+ xsane.medium_calibration = TRUE;
+ xsane.no_preview_medium_gamma = TRUE;
+
+ xsane.brightness_min = XSANE_MEDIUM_CALIB_BRIGHTNESS_MIN;
+ xsane.brightness_max = XSANE_MEDIUM_CALIB_BRIGHTNESS_MAX;
+ xsane.contrast_gray_min = XSANE_MEDIUM_CALIB_CONTRAST_MIN;
+ xsane.contrast_min = XSANE_MEDIUM_CALIB_CONTRAST_MIN;
+ xsane.contrast_max = XSANE_MEDIUM_CALIB_CONTRAST_MAX;
+ break;
+
+ case 'h': /* --help */
+ default:
+ xsane_usage();
+ exit(0);
+ }
+ }
+ }
+
+ if (xsane_pref_restore()) /* restore preferences, returns TRUE if license is not accpted yet */
+ {
+ if (xsane_display_license(1)) /* show license and ask for accept/not accept */
+ {
+ DBG(DBG_info, "user did not accept license, we abort\n");
+ return 1; /* User did not accept license */
+ }
+ }
+
+#ifndef HAVE_OS2_H
+ if (!getuid()) /* root ? */
+ {
+ if (xsane_back_gtk_decision(ERR_HEADER_WARNING, (gchar **) warning_xpm, WARN_XSANE_AS_ROOT,
+ BUTTON_CANCEL, BUTTON_CONT_AT_OWN_RISK, TRUE /* wait */) == TRUE)
+ {
+ return 2; /* User selected CANCEL */
+ }
+ }
+#endif
+
+ sane_init(&xsane.sane_backend_versioncode, (void *) xsane_authorization_callback);
+
+ if (SANE_VERSION_MAJOR(xsane.sane_backend_versioncode) != SANE_V_MAJOR)
+ {
+ DBG(DBG_error0, "\n\n"
+ "%s %s:\n"
+ " %s\n"
+ " %s %d\n"
+ " %s %d\n"
+ "%s\n\n",
+ xsane.prog_name, ERR_ERROR,
+ ERR_MAJOR_VERSION_NR_CONFLICT,
+ ERR_XSANE_MAJOR_VERSION, SANE_V_MAJOR,
+ ERR_BACKEND_MAJOR_VERSION, SANE_VERSION_MAJOR(xsane.sane_backend_versioncode),
+ ERR_PROGRAM_ABORTED);
+ return 3;
+ }
+
+ device_scanning_dialog = gtk_window_new(GTK_WINDOW_DIALOG);
+ gtk_window_set_position(GTK_WINDOW(device_scanning_dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_policy(GTK_WINDOW(device_scanning_dialog), FALSE, FALSE, FALSE);
+ snprintf(buf, sizeof(buf), "%s %s", xsane.prog_name, XSANE_VERSION);
+ gtk_window_set_title(GTK_WINDOW(device_scanning_dialog), buf);
+
+
+ main_vbox = gtk_vbox_new(FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(main_vbox), 20);
+ gtk_container_add(GTK_CONTAINER(device_scanning_dialog), main_vbox);
+ gtk_widget_show(main_vbox);
+
+ snprintf(buf, sizeof(buf), " %s ", TEXT_SCANNING_DEVICES);
+ label = gtk_label_new(buf);
+ gtk_box_pack_start(GTK_BOX(main_vbox), label, FALSE, FALSE, 2);
+ gtk_widget_show(label);
+
+ xsane_set_window_icon(device_scanning_dialog, 0);
+
+ gtk_widget_show(device_scanning_dialog);
+
+ xsane_widget_test_uposition(device_scanning_dialog);
+
+ /* wait 100 ms to make sure window is displayed */
+ usleep(100000); /* this makes sure that the text "scanning for devices" is displayed */
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ sane_get_devices(&xsane.devlist, SANE_FALSE /* local and network devices */);
+
+
+ gtk_widget_destroy(device_scanning_dialog);
+
+ while (gtk_events_pending())
+ {
+ gtk_main_iteration();
+ }
+
+ /* if devicename is given try to identify it, if not found, open device list */
+ if (optind < argc)
+ {
+ int ndevs;
+
+ for (ndevs = 0; xsane.devlist[ndevs]; ++ndevs)
+ {
+ if (!strncmp(xsane.devlist[ndevs]->name, argv[argc - 1], strlen(argv[argc - 1])))
+ {
+ xsane.selected_dev = ndevs;
+ break;
+ }
+ }
+
+ if ((xsane.selected_dev < 0) && (argc > 1))
+ {
+ static SANE_Device dev;
+ static const SANE_Device *device_list[] = { &dev, 0 };
+
+ memset(&dev, 0, sizeof(dev));
+ dev.name = argv[argc - 1];
+ dev.vendor = TEXT_UNKNOWN;
+ dev.type = TEXT_UNKNOWN;
+ dev.model = TEXT_UNKNOWN;
+
+ xsane.devlist = device_list;
+ xsane.selected_dev = 0;
+ }
+ }
+
+ return 0; /* everything is ok */
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+void xsane_interface(int argc, char **argv)
+{
+ struct SIGACTION act;
+
+ DBG(DBG_proc, "xsane_interface\n");
+
+ xsane.info_label = NULL;
+
+ if (xsane_init(argc, argv)) /* initialize xsane variables if command line option is given, set xsane.selected_dev */
+ {
+ return; /* we have to abort (license not accepted, aborted because xsane runs as root) */
+ }
+
+ for (xsane.num_of_devs = 0; xsane.devlist[xsane.num_of_devs]; ++xsane.num_of_devs); /* count available devices */
+
+ if (xsane.selected_dev >= 0) /* device name is given on cammand line */
+ {
+ xsane_device_dialog(); /* open device xsane.selected_dev */
+ }
+ else /* no device name given on command line */
+ {
+ if (xsane.num_of_devs > 0) /* devices available */
+ {
+ xsane.selected_dev = 0;
+ if (xsane.num_of_devs == 1)
+ {
+ xsane_device_dialog(); /* open device xsane.selected_dev */
+ }
+ else
+ {
+ xsane_choose_device(); /* open device selection window and get device */
+ }
+ }
+ else /* xsane.num_of_devs == 0, no devices available */
+ {
+ char buf[256];
+
+ snprintf(buf, sizeof(buf), "%s: %s\n", xsane.prog_name, ERR_NO_DEVICES);
+ xsane_back_gtk_error(buf, TRUE);
+ xsane_exit();
+ }
+ }
+
+ /* define SIGTERM-handler to make sure that e.g. all temporary files are deleted */
+ /* when xsane gets a SIGTERM signal */
+ memset(&act, 0, sizeof(act));
+ act.sa_handler = xsane_quit_handler;
+ sigaction(SIGTERM, &act, 0);
+
+ gtk_main();
+ sane_exit();
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+int main(int argc, char **argv)
+{
+ DBG_init();
+
+ DBG(DBG_error, "This is xsane version %s\n", XSANE_VERSION);
+
+ memset(&xsane, 0, sizeof(xsane)); /* set all values in xsane to 0 */
+
+ umask(XSANE_DEFAULT_UMASK); /* define permissions of new files */
+
+ xsane.selected_dev = -1; /* no selected device */
+
+ xsane.sensitivity = TRUE;
+
+ xsane.main_window_fixed = -1; /* no command line option given, use preferences or fixed */
+
+ xsane.get_deskrelative_origin = 0;
+
+ xsane.mode = XSANE_STANDALONE;
+ xsane.xsane_mode = XSANE_VIEWER;
+ xsane.lineart_mode = XSANE_LINEART_STANDARD;
+ xsane.xsane_output_format = XSANE_PNM;
+ xsane.mode_selection = 1; /* enable selection of xsane mode */
+
+ xsane.input_tag = -1; /* no input tag */
+
+ xsane.histogram_lines = 1;
+
+ xsane.zoom = 1.0;
+ xsane.zoom_x = 1.0;
+ xsane.zoom_y = 1.0;
+ xsane.resolution = 72.0;
+ xsane.resolution_x = 72.0;
+ xsane.resolution_y = 72.0;
+ xsane.copy_number = 1;
+
+ xsane.medium_shadow_gray = 0.0;
+ xsane.medium_shadow_red = 0.0;
+ xsane.medium_shadow_green = 0.0;
+ xsane.medium_shadow_blue = 0.0;
+ xsane.medium_highlight_gray = 100.0;
+ xsane.medium_highlight_red = 100.0;
+ xsane.medium_highlight_green = 100.0;
+ xsane.medium_highlight_blue = 100.0;
+ xsane.medium_gamma_gray = 1.0;
+ xsane.medium_gamma_red = 1.0;
+ xsane.medium_gamma_green = 1.0;
+ xsane.medium_gamma_blue = 1.0;
+ xsane.medium_negative = 0;
+ xsane.medium_changed = FALSE;
+
+ xsane.brightness_min = XSANE_BRIGHTNESS_MIN;
+ xsane.brightness_max = XSANE_BRIGHTNESS_MAX;
+ xsane.contrast_gray_min = XSANE_CONTRAST_GRAY_MIN;
+ xsane.contrast_min = XSANE_CONTRAST_MIN;
+ xsane.contrast_max = XSANE_CONTRAST_MAX;
+
+ xsane.gamma = 1.0;
+ xsane.gamma_red = 1.0;
+ xsane.gamma_green = 1.0;
+ xsane.gamma_blue = 1.0;
+ xsane.brightness = 0.0;
+ xsane.brightness_red = 0.0;
+ xsane.brightness_green = 0.0;
+ xsane.brightness_blue = 0.0;
+ xsane.contrast = 0.0;
+ xsane.contrast_red = 0.0;
+ xsane.contrast_green = 0.0;
+ xsane.contrast_blue = 0.0;
+ xsane.threshold = 50.0;
+
+ xsane.slider_gray.value[2] = 100.0;
+ xsane.slider_gray.value[1] = 50.0;
+ xsane.slider_gray.value[0] = 0.0;
+ xsane.slider_red.value[2] = 100.0;
+ xsane.slider_red.value[1] = 50.0;
+ xsane.slider_red.value[0] = 0.0;
+ xsane.slider_green.value[2] = 100.0;
+ xsane.slider_green.value[1] = 50.0;
+ xsane.slider_green.value[0] = 0.0;
+ xsane.slider_blue.value[2] = 100.0;
+ xsane.slider_blue.value[1] = 50.0;
+ xsane.slider_blue.value[0] = 0.0;
+
+ xsane.auto_white = 100.0;
+ xsane.auto_gray = 50.0;
+ xsane.auto_black = 0.0;
+
+ xsane.histogram_red = 1;
+ xsane.histogram_green = 1;
+ xsane.histogram_blue = 1;
+ xsane.histogram_int = 1;
+ xsane.histogram_log = 1;
+
+ xsane.xsane_colors = -1; /* unused value to make sure that change of this vlaue is detected */
+ xsane.scanner_gamma_color = FALSE;
+ xsane.scanner_gamma_gray = FALSE;
+ xsane.enhancement_rgb_default = TRUE;
+
+ xsane.adf_page_counter = 0;
+ xsane.print_filenames = FALSE;
+ xsane.force_filename = FALSE;
+
+ xsane.prog_name = strrchr(argv[0], '/');
+ if (xsane.prog_name)
+ {
+ ++xsane.prog_name;
+ }
+ else
+ {
+ xsane.prog_name = argv[0];
+ }
+
+#if 0
+ bindtextdomain(PACKAGE, STRINGIFY(LOCALEDIR));
+ textdomain(PACKAGE);
+#else
+ DBG(DBG_info, "Setting xsane localedir: %s\n", STRINGIFY(LOCALEDIR));
+ bindtextdomain(xsane.prog_name, STRINGIFY(LOCALEDIR));
+ textdomain(xsane.prog_name);
+#endif
+
+#ifdef HAVE_LIBGIMP_GIMP_H
+ {
+ GPrintFunc old_print_func;
+ GPrintFunc old_printerr_func;
+ int result;
+
+ /* Temporarily install a print function that discards all output.
+ This is to avoid annoying "you must run this program under
+ gimp" messages when xsane gets invoked in stand-alone
+ mode. */
+ old_print_func = g_set_print_handler((GPrintFunc) null_print_func);
+ old_printerr_func = g_set_printerr_handler((GPrintFunc) null_print_func);
+
+#ifdef _WIN32
+ /* don`t know why, but win32 does need this */
+ set_gimp_PLUG_IN_INFO_PTR(&PLUG_IN_INFO);
+#endif
+
+#ifdef HAVE_OS2_H
+ /* don`t know why, but os2 does need this one, a bit different to WIN32 */
+ set_gimp_PLUG_IN_INFO(&PLUG_IN_INFO);
+#endif
+ /* gimp_main() returns 1 if xsane wasn't invoked by GIMP */
+ result = gimp_main(argc, argv);
+
+#if 0
+ /* this is the old version that seems to use the compatibility functions */
+ g_set_message_handler(old_print_func);
+ g_set_error_handler(old_printerr_func);
+#else
+ /* this is the new version that I think is the one that should be used */
+ g_set_print_handler(old_print_func);
+ g_set_printerr_handler(old_printerr_func);
+#endif
+
+ if (result)
+ {
+ xsane_interface(argc, argv);
+ }
+ }
+#else
+ xsane_interface(argc, argv);
+#endif
+ return 0;
+}
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
diff --git a/frontend/xsane.h b/src/xsane.h
index ad82912..579bb0c 100644
--- a/frontend/xsane.h
+++ b/src/xsane.h
@@ -2,8 +2,8 @@
xsane.h
- Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
- Copyright (C) 1998-2000 Oliver Rauch
+ Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+ Copyright (C) 1998-2002 Oliver Rauch
This file is part of the XSANE package.
This program is free software; you can redistribute it and/or modify
@@ -32,17 +32,38 @@
/* ---------------------------------------------------------------------------------------------------------------------- */
-#define XSANE_VERSION "0.50"
-#define XSANE_AUTHOR "Oliver Rauch"
-#define XSANE_COPYRIGHT "Oliver Rauch"
-#define XSANE_DATE "1998-2000"
-#define XSANE_EMAIL "Oliver.Rauch@Wolfsburg.DE"
+#define XSANE_VERSION "0.84"
+#define XSANE_AUTHOR "Oliver Rauch"
+#define XSANE_COPYRIGHT "Oliver Rauch"
+#define XSANE_DATE "1998-2002"
+#define XSANE_EMAIL "Oliver.Rauch@xsane.org"
+#define XSANE_HOMEPAGE "http://www.xsane.org"
+#define XSANE_COPYRIGHT_TXT XSANE_DATE " " XSANE_COPYRIGHT
/* ---------------------------------------------------------------------------------------------------------------------- */
-#define PATH_SANE_TMP "/tmp"
-// #define XSANE_DEFAULT_UMASK 0157
+#define XSANE_DEBUG_ENVIRONMENT "XSANE_DEBUG"
+
#define XSANE_DEFAULT_UMASK 0007
+#define XSANE_HOLD_TIME 200
+#define XSANE_CONTINUOUS_HOLD_TIME 10
+#define XSANE_DEFAULT_DEVICE "SANE_DEFAULT_DEVICE"
+
+#ifndef SLASH
+# define SLASH '/'
+#endif
+
+#ifndef XSANE_FIXED_HOME_PATH
+# define XSANE_FIXED_HOME_PATH /tmp
+#endif
+
+#ifndef ENVIRONMENT_HOME_DIR_NAME
+# define ENVIRONMENT_HOME_DIR_NAME HOME
+#endif
+
+#ifndef ENVIRONMENT_TEMP_DIR_NAME
+# define ENVIRONMENT_TEMP_DIR_NAME TMP
+#endif
/* ---------------------------------------------------------------------------------------------------------------------- */
@@ -52,6 +73,10 @@
# include <lalloca.h>
#endif
+#ifdef __hpux
+# include <alloca.h>
+#endif
+
#include <assert.h>
#include <errno.h>
#include <memory.h>
@@ -70,14 +95,22 @@
#include <sys/stat.h>
#include <sys/types.h>
+#include <locale.h>
+
#include <sane/sane.h>
#include <sane/saneopts.h>
-#include "sane/config.h"
-#include "sane/sanei_signal.h"
+#include "../include/config.h"
+#include "../include/sanei_signal.h"
#include "xsane-text.h"
+#include "xsane-fixedtext.h"
#include "xsane-icons.h"
+#include "xsane-viewer.h"
+
+#include <gdk/gdkkeysyms.h>
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
#ifdef ENABLE_NLS
# include <libintl.h>
@@ -98,10 +131,122 @@
# define N_(String) (String)
#endif
-/* ----------------------------- */
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+#ifdef HAVE_LIBPNG
+#ifdef HAVE_LIBZ
+# define XSANE_ACTIVATE_MAIL
+#endif
+#endif
+
+#ifdef _WIN32
+# define BUGGY_GTK_TOOLTIPS_SET_COLORS
+#endif
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+enum
+{
+ XSANE_PATH_LOCAL_SANE = 0,
+ XSANE_PATH_SYSTEM,
+ XSANE_PATH_TMP
+};
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+typedef struct
+{
+ char *name;
+ float xoffset;
+ float yoffset;
+ float width;
+ float height;
+} pref_default_preset_area_t;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+typedef struct
+ {
+ /* The option number of the well-known options. Each of these may
+ be -1 in case the backend doesn't define the respective option. */
+ int scanmode;
+ int scansource;
+ int preview;
+ int dpi;
+ int dpi_x;
+ int dpi_y;
+ int coord[4];
+ int gamma_vector;
+ int gamma_vector_r;
+ int gamma_vector_g;
+ int gamma_vector_b;
+ int bit_depth;
+ int threshold;
+ int highlight;
+ int highlight_r;
+ int highlight_g;
+ int highlight_b;
+ int shadow;
+ int shadow_r;
+ int shadow_g;
+ int shadow_b;
+ }
+GSGWellKnownOptions;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+typedef struct
+ {
+ gchar *label;
+ struct GSGDialogElement *elem;
+ gint index;
+ }
+GSGMenuItem;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+typedef struct GSGDialogElement
+ {
+ GtkWidget *automatic; /* auto button for options that support this */
+ GtkWidget *widget;
+ GtkObject *data;
+ int menu_size; /* # of items in menu (if any) */
+ GSGMenuItem *menu;
+ }
+GSGDialogElement;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
+typedef struct Image_info
+ {
+ int image_width;
+ int image_height;
+
+ int depth;
+ int colors;
+
+ double resolution_x;
+ double resolution_y;
+
+ double gamma;
+ double gamma_red;
+ double gamma_green;
+ double gamma_blue;
+
+ double brightness;
+ double brightness_red;
+ double brightness_green;
+ double brightness_blue;
+
+ double contrast;
+ double contrast_red;
+ double contrast_green;
+ double contrast_blue;
-/* needed for xsane.h */
-#include "xsane-back-gtk.h"
+ double threshold;
+ }
+Image_info;
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
#include "xsane-preferences.h"
#include "xsane-preview.h"
@@ -116,35 +261,33 @@
# define GIMP_CHECK_VERSION(major, minor, micro) 0
# endif /* HAVE_LIBGIMP_GIMPFEATURES_H */
+# ifdef GIMP_CHECK_VERSION
+# if GIMP_CHECK_VERSION(1,1,25)
+/* ok, we have the new gimp interface */
+# else
+/* we have the old gimp interface and need the compatibility header file */
+# include "xsane-gimp-1_0-compat.h"
+# endif
+# else
+/* we have the old gimp interface and need the compatibility header file */
+# include "xsane-gimp-1_0-compat.h"
+# endif
+
+ extern GimpPlugInInfo PLUG_IN_INFO; /* needed for win32 */
+
#endif /* HAVE_LIBGIMP_GIMP_H */
/* ---------------------------------------------------------------------------------------------------------------------- */
-enum { XSANE_SCAN, XSANE_COPY, XSANE_FAX };
+enum { XSANE_VIEWER, XSANE_SAVE, XSANE_COPY, XSANE_FAX, XSANE_MAIL };
+enum { XSANE_LINEART_STANDARD, XSANE_LINEART_XSANE, XSANE_LINEART_GRAYSCALE };
/* ---------------------------------------------------------------------------------------------------------------------- */
extern void xsane_pref_save(void);
extern void xsane_interface(int argc, char **argv);
extern void xsane_fax_project_save(void);
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-extern const char *prog_name;
-extern const char *device_text;
-extern GtkWidget *choose_device_dialog;
-extern GSGDialog *dialog;
-extern const SANE_Device **devlist;
-extern gint seldev; /* The selected device */
-extern gint ndevs; /* The number of available devices */
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-extern int xsane_scanmode_number[];
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
-extern char *path_sane_tmp;
+extern void xsane_mail_project_save(void);
/* ---------------------------------------------------------------------------------------------------------------------- */
@@ -153,27 +296,41 @@ extern char *path_sane_tmp;
#endif
/* ---------------------------------------------------------------------------------------------------------------------- */
+#ifndef TEMP_PATH
+# define TEMP_PATH /tmp/
+#endif
-#define OUTFILENAME "out.pnm"
-#define FAXPROJECT "faxproject"
-#define FAXFILENAME "page-001.fax"
+#define OUT_FILENAME "out.pnm"
#define PRINTERNAME "new printer"
-#define PRINTERCOMMAND "lpr -"
+#define PRINTERCOMMAND "lpr"
#define PRINTERCOPYNUMBEROPTION "-#"
+#define FAXPROJECT "faxproject"
#define FAXCOMMAND "sendfax"
#define FAXRECEIVEROPT "-d"
#define FAXPOSTSCRIPTOPT ""
#define FAXNORMALOPT "-l"
#define FAXFINEOPT "-m"
-#define FAXVIEWER "xv"
-#define DOCVIEWERNETSCAPEREMOTE "netscape-remote"
-#define DOCVIEWER DOCVIEWERNETSCAPEREMOTE
-
-#define XSANE_BRIGHTNESS_MIN -400.0
-#define XSANE_BRIGHTNESS_MAX 400.0
+#define FAXVIEWER "gv"
+#define MAILPROJECT "mailproject"
+#define MAILCOMMAND "sendmail"
+#define MAILVIEWER "xv"
+#define OCRCOMMAND "gocr"
+#define OCRINPUTFILEOPT "-i"
+#define OCROUTPUTFILEOPT "-o"
+#define DOCVIEWER_NETSCAPE "netscape"
+#define DOCVIEWER DOCVIEWER_NETSCAPE
+
+#define XSANE_MEDIUM_CALIB_BRIGHTNESS_MIN -1000.0
+#define XSANE_MEDIUM_CALIB_BRIGHTNESS_MAX 1000.0
+#define XSANE_MEDIUM_CALIB_CONTRAST_MIN 0.0
+#define XSANE_MEDIUM_CALIB_CONTRAST_MAX 1000.0
+
+#define XSANE_BRIGHTNESS_MIN -100.0
+#define XSANE_BRIGHTNESS_MAX 100.0
#define XSANE_CONTRAST_GRAY_MIN -100.0
-#define XSANE_CONTRAST_MIN -400.0
-#define XSANE_CONTRAST_MAX 400.0
+#define XSANE_CONTRAST_MIN -100.0
+#define XSANE_CONTRAST_MAX 100.0
+
#define XSANE_GAMMA_MIN 0.3
#define XSANE_GAMMA_MAX 3.0
@@ -185,6 +342,8 @@ extern char *path_sane_tmp;
#define XSANE_SHELL_POS_Y 50
#define XSANE_HISTOGRAM_POS_X 280
#define XSANE_HISTOGRAM_POS_Y 50
+#define XSANE_GAMMA_POS_X 280
+#define XSANE_GAMMA_POS_Y 420
#define XSANE_STD_OPTIONS_POS_X 1
#define XSANE_STD_OPTIONS_POS_Y 400
#define XSANE_ADV_OPTIONS_POS_X 280
@@ -207,12 +366,6 @@ extern char *path_sane_tmp;
/* ---------------------------------------------------------------------------------------------------------------------- */
-#ifndef SANE_NAME_DOCUMENT_FEEDER
-#define SANE_NAME_DOCUMENT_FEEDER "Automatic Document Feeder"
-#endif
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
#define STRINGIFY1(x) #x
#define STRINGIFY(x) STRINGIFY1(x)
@@ -235,16 +388,6 @@ enum
/* ---------------------------------------------------------------------------------------------------------------------- */
-typedef struct XsaneProgress_t
-{
- GtkSignalFunc callback;
- gpointer callback_data;
- GtkWidget *shell;
- GtkWidget *pbar;
-} XsaneProgress_t;
-
-/* ---------------------------------------------------------------------------------------------------------------------- */
-
typedef struct XsanePixmap
{
GtkWidget *frame;
@@ -277,65 +420,116 @@ typedef struct Xsane
SANE_Int sensitivity;
+ GtkWidget *xsane_window;
+ GtkWidget *standard_window;
+ GtkWidget *advanced_window;
+ GtkWidget *gamma_window;
+ GtkWidget *xsane_hbox;
+ GtkWidget *standard_hbox;
+ GtkWidget *advanced_hbox;
+ GtkWidget *xsanemode_widget;
+
+ GtkAccelGroup *accelerator_group;
+ GtkTooltips *tooltips;
+ GdkColor tooltips_fg;
+ GdkColor tooltips_bg;
+
+ SANE_Handle *dev;
+ const char *dev_name;
+ GSGWellKnownOptions well_known;
+ int num_elements;
+ GSGDialogElement *element;
+ u_int rebuild : 1;
+ int pixelcolor;
+ int scanning;
+ int reading_data;
+ int cancel_scan;
+
+/* free gamma curve widgets */
+ GtkWidget *gamma_curve_gray;
+ GtkWidget *gamma_curve_red;
+ GtkWidget *gamma_curve_green;
+ GtkWidget *gamma_curve_blue;
+
+/* previous global stand alone varaibales */
+ const char *prog_name; /* name of this program, normally "xsane" */
+ const char *device_text; /* name of the selected device */
+ GtkWidget *choose_device_dialog; /* the widget of the device selection dialog */
+ const SANE_Device **devlist; /* the list of available devices */
+ int selected_dev; /* the selected device */
+ int num_of_devs;
+ int back_gtk_message_dialog_active;
+
+
/* dialogs */
GtkWidget *shell;
+ GtkWidget *menubar;
GtkWidget *standard_options_shell;
GtkWidget *advanced_options_shell;
GtkWidget *main_dialog_scrolled;
GtkWidget *histogram_dialog;
+ GtkWidget *gamma_dialog;
+
GtkWidget *fax_dialog;
GtkWidget *fax_list;
-
GtkWidget *fax_project_box;
GtkWidget *fax_project_exists;
GtkWidget *fax_project_not_exists;
+ GtkWidget *fax_project_entry;
+ GtkWidget *fax_receiver_entry;
+
+ GtkWidget *mail_dialog;
+ GtkWidget *mail_list;
+ GtkWidget *mail_project_box;
+ GtkWidget *mail_project_exists;
+ GtkWidget *mail_project_not_exists;
+ GtkWidget *mail_project_entry;
+ GtkWidget *mail_receiver_entry;
+ GtkWidget *mail_subject_entry;
+ GtkWidget *mail_text_widget;
+ GtkWidget *mail_html_mode_widget;
+ GtkWidget *mail_status_label;
GdkPixmap *window_icon_pixmap;
GdkBitmap *window_icon_mask;
- /* window position and geometry */
- SANE_Int shell_posx;
- SANE_Int shell_posy;
- SANE_Int shell_height;
- SANE_Int shell_width;
- SANE_Int standard_options_shell_posx;
- SANE_Int standard_options_shell_posy;
- SANE_Int advanced_options_shell_posx;
- SANE_Int advanced_options_shell_posy;
- SANE_Int histogram_dialog_posx;
- SANE_Int histogram_dialog_posy;
- SANE_Int preview_dialog_posx;
- SANE_Int preview_dialog_posy;
- SANE_Int preview_dialog_width;
- SANE_Int preview_dialog_height;
-
GtkWidget *hruler;
GtkWidget *vruler;
GtkWidget *info_label;
GtkObject *start_button;
+ GtkObject *cancel_button;
+ GtkSignalFunc cancel_callback;
+ Viewer *viewer_list;
Preview *preview;
- gint32 mode;
+ int preview_gamma_size;
+ int mode;
+ int medium_nr;
int main_window_fixed;
int mode_selection;
+ int get_deskrelative_origin;
+
/* various scanning related state: */
+ SANE_Int depth;
size_t num_bytes;
size_t bytes_read;
- XsaneProgress_t *progress;
+ GtkProgressBar *progress_bar;
int input_tag;
SANE_Parameters param;
- int x, y;
+ int adf_page_counter;
/* for standalone mode: */
GtkWidget *filename_entry;
- GtkWidget *fax_project_entry;
- GtkWidget *fax_receiver_entry;
GtkWidget *filetype_option_menu;
+
+ /* saving and transformation values: */
FILE *out;
int xsane_mode;
int xsane_output_format;
long header_size;
+ int expand_lineart_to_grayscale;
+ int reduce_16bit_to_8bit;
/* histogram window */
struct XsanePixmap histogram_raw;
@@ -345,20 +539,8 @@ typedef struct Xsane
struct XsaneSlider slider_red;
struct XsaneSlider slider_green;
struct XsaneSlider slider_blue;
-
- int negative;
- double gamma;
- double gamma_red;
- double gamma_green;
- double gamma_blue;
- double brightness;
- double brightness_red;
- double brightness_green;
- double brightness_blue;
- double contrast;
- double contrast_red;
- double contrast_green;
- double contrast_blue;
+ guint slider_timer; /* has to be guint */
+ int slider_timer_restart;
double auto_white;
double auto_gray;
@@ -380,6 +562,14 @@ typedef struct Xsane
int histogram_lines;
int histogram_log;
+ int no_preview_medium_gamma; /* disable preview medium gamma */
+ int medium_calibration; /* enable calibration mode for medium */
+ int brightness_min;
+ int brightness_max;
+ int contrast_gray_min;
+ int contrast_min;
+ int contrast_max;
+
/* colors */
GdkGC *gc_red;
GdkGC *gc_green;
@@ -397,7 +587,7 @@ typedef struct Xsane
double resolution_x;
double resolution_y;
- GtkWidget *length_unit_widget;
+ GtkWidget *medium_widget;
GtkWidget *length_unit_mm;
GtkWidget *length_unit_cm;
GtkWidget *length_unit_in;
@@ -406,6 +596,7 @@ typedef struct Xsane
GtkWidget *update_policy_delayed;
GtkWidget *show_preview_widget;
GtkWidget *show_histogram_widget;
+ GtkWidget *show_gamma_widget;
GtkWidget *show_standard_options_widget;
GtkWidget *show_advanced_options_widget;
GtkWidget *show_resolution_list_widget;
@@ -422,38 +613,117 @@ typedef struct Xsane
GtkObject *contrast_red_widget;
GtkObject *contrast_green_widget;
GtkObject *contrast_blue_widget;
+ GtkObject *threshold_widget;
- SANE_Int xsane_color;
- SANE_Bool show_preview;
+ SANE_Int xsane_colors;
SANE_Bool scanner_gamma_color;
SANE_Bool scanner_gamma_gray;
- SANE_Bool enhancement_rgb_default;
- SANE_Bool fax_fine_mode;
+ int fax_fine_mode;
+ int mail_project_save;
+ int mail_html_mode;
GtkWidget *outputfilename_entry;
GtkWidget *copy_number_entry;
+ gfloat *free_gamma_data, *free_gamma_data_red, *free_gamma_data_green, *free_gamma_data_blue;
SANE_Int *gamma_data, *gamma_data_red, *gamma_data_green, *gamma_data_blue;
- SANE_Int *preview_gamma_data_red, *preview_gamma_data_green, *preview_gamma_data_blue;
- SANE_Int *histogram_gamma_data_red, *histogram_gamma_data_green, *histogram_gamma_data_blue;
+ u_char *preview_gamma_data_red, *preview_gamma_data_green, *preview_gamma_data_blue;
+ u_char *histogram_gamma_data_red, *histogram_gamma_data_green, *histogram_gamma_data_blue;
+ u_char *histogram_medium_gamma_data_red, *histogram_medium_gamma_data_green, *histogram_medium_gamma_data_blue;
char *fax_filename;
char *fax_receiver;
+ char *mail_status;
+ char *mail_filename;
+ char *mail_receiver;
+ char *mail_subject;
+
int block_update_param;
int broken_pipe; /* for printercommand pipe */
-#ifdef HAVE_LIBGIMP_GIMP_H
- /* for GIMP mode: */
- gint32 image_ID;
- GDrawable *drawable;
- guchar *tile;
- unsigned tile_offset;
- GPixelRgn region;
- int first_frame; /* used for RED/GREEN/BLUE frames */
-#endif
+ int cancel_save;
+
+/* -------------------------------------------------- */
+
+/* device preferences: */
+
+/* we have to use double and int here, gint or SANE_Word
+ is not allowed because we need a defined size for
+ rc_io-routintes that are based on double, int, ... */
+
+ /* window position and geometry */
+ int shell_posx;
+ int shell_posy;
+ int shell_height;
+ int shell_width;
+ int standard_options_shell_posx;
+ int standard_options_shell_posy;
+ int advanced_options_shell_posx;
+ int advanced_options_shell_posy;
+ int histogram_dialog_posx;
+ int histogram_dialog_posy;
+ int gamma_dialog_posx;
+ int gamma_dialog_posy;
+ int preview_dialog_posx;
+ int preview_dialog_posy;
+ int preview_dialog_width;
+ int preview_dialog_height;
+
+ double medium_gamma_gray;
+ double medium_gamma_red;
+ double medium_gamma_green;
+ double medium_gamma_blue;
+
+ double medium_shadow_gray;
+ double medium_shadow_red;
+ double medium_shadow_green;
+ double medium_shadow_blue;
+
+ double medium_highlight_gray;
+ double medium_highlight_red;
+ double medium_highlight_green;
+ double medium_highlight_blue;
+
+ int medium_negative;
+
+ int medium_changed;
+
+ double gamma;
+ double gamma_red;
+ double gamma_green;
+ double gamma_blue;
+
+ double brightness;
+ double brightness_red;
+ double brightness_green;
+ double brightness_blue;
+
+ double contrast;
+ double contrast_red;
+ double contrast_green;
+ double contrast_blue;
+
+ int lineart_mode;
+ double threshold;
+ double threshold_min;
+ double threshold_max;
+ double threshold_mul;
+ double threshold_off;
+ char *grayscale_scanmode;
+
+ int enhancement_rgb_default;
+ int negative;
+ int show_preview;
+ int print_filenames;
+ int force_filename;
+ char *external_filename;
+ char *adf_scansource;
+
+/* -------------------------------------------------- */
+
} Xsane;
extern struct Xsane xsane;
@@ -465,7 +735,9 @@ typedef struct XsaneSetup
GtkWidget *printer_name_entry;
GtkWidget *printer_command_entry;
GtkWidget *printer_copy_number_option_entry;
- GtkWidget *printer_resolution_entry;
+ GtkWidget *printer_lineart_resolution_entry;
+ GtkWidget *printer_grayscale_resolution_entry;
+ GtkWidget *printer_color_resolution_entry;
GtkWidget *printer_leftoffset_entry;
GtkWidget *printer_bottomoffset_entry;
GtkWidget *printer_gamma_entry;
@@ -477,9 +749,11 @@ typedef struct XsaneSetup
GtkWidget *jpeg_image_quality_scale;
GtkWidget *pnm_image_compression_scale;
+ GtkWidget *save_devprefs_at_exit_button;
GtkWidget *overwrite_warning_button;
GtkWidget *increase_filename_counter_button;
GtkWidget *skip_existing_numbers_button;
+ GtkWidget *reduce_16bit_to_8bit_button;
GtkWidget *main_window_fixed_button;
@@ -487,7 +761,17 @@ typedef struct XsaneSetup
GtkWidget *preview_gamma_red_entry;
GtkWidget *preview_gamma_green_entry;
GtkWidget *preview_gamma_blue_entry;
- GtkWidget *preview_preserve_button;
+ GtkWidget *preview_lineart_mode_entry;
+ GtkWidget *preview_grayscale_scanmode_widget;
+ GtkWidget *preview_threshold_min_entry;
+ GtkWidget *preview_threshold_max_entry;
+ GtkWidget *preview_threshold_mul_entry;
+ GtkWidget *preview_threshold_off_entry;
+ GtkWidget *auto_enhance_gamma_button;
+ GtkWidget *preselect_scanarea_button;
+ GtkWidget *auto_correct_colors_button;
+ GtkWidget *disable_gimp_preview_gamma_button;
+ GtkWidget *preview_oversampling_entry;
GtkWidget *preview_own_cmap_button;
GtkWidget *doc_viewer_entry;
@@ -501,17 +785,83 @@ typedef struct XsaneSetup
GtkWidget *fax_leftoffset_entry;
GtkWidget *fax_bottomoffset_entry;
GtkWidget *fax_height_entry;
+ GtkWidget *tmp_path_entry;
+
+ GtkWidget *mail_smtp_server_entry;
+ GtkWidget *mail_smtp_port_entry;
+ GtkWidget *mail_from_entry;
+ GtkWidget *mail_reply_to_entry;
+ GtkWidget *mail_pop3_authentification_entry;
+ GtkWidget *mail_pop3_server_entry;
+ GtkWidget *mail_pop3_port_entry;
+ GtkWidget *mail_pop3_user_entry;
+ GtkWidget *mail_pop3_pass_entry;
+ GtkWidget *mail_viewer_entry;
+
+ GtkWidget *ocr_command_entry;
+ GtkWidget *ocr_inputfile_option_entry;
+ GtkWidget *ocr_outputfile_option_entry;
+
+ int filename_counter_len;
- int tiff_compression_nr;
- int tiff_compression_1_nr;
+ int tiff_compression16_nr;
+ int tiff_compression8_nr;
+ int tiff_compression1_nr;
+
+ int lineart_mode;
int image_permissions;
int directory_permissions;
+ int preview_pipette_range;
+
+ char *grayscale_scanmode;
+ char *adf_scansource;
+
} XsaneSetup;
extern struct XsaneSetup xsane_setup;
/* ---------------------------------------------------------------------------------------------------------------------- */
+extern int DBG_LEVEL;
+
+#ifdef __GNUC__
+# define DBG(level, msg, args...) \
+ { \
+ if (DBG_LEVEL >= (level)) \
+ { \
+ fprintf (stderr, "[xsane] " msg, ##args); \
+ fflush(stderr); \
+ } \
+ }
+#else
+ extern void xsane_debug_message(int level, const char *fmt, ...);
+# define DBG xsane_debug_message
+#endif
+
+# define DBG_init() \
+ { \
+ char *dbg_level_string = getenv(XSANE_DEBUG_ENVIRONMENT); \
+ \
+ if (dbg_level_string) \
+ { \
+ DBG_LEVEL = atoi(dbg_level_string); \
+ DBG(1, "Setting debug level to %d\n", DBG_LEVEL); \
+ } \
+ }
+
+#define DBG_error0 0
+#define DBG_error 1
+#define DBG_warning 2
+#define DBG_info 3
+#define DBG_info2 4
+#define DBG_proc 5
+#define DBG_proc2 50
+#define DBG_optdesc 70 /* xsane_get_option_descriptor */
+#define DBG_proc3 100 /* for routines that are called very very often */
+#define DBG_wire 100 /* rc_io_w routines */
+
+/* ---------------------------------------------------------------------------------------------------------------------- */
+
#endif
diff --git a/src/xsane.ico b/src/xsane.ico
new file mode 100644
index 0000000..4408721
--- /dev/null
+++ b/src/xsane.ico
Binary files differ
diff --git a/xsane-0.50.lsm b/xsane-0.50.lsm
deleted file mode 100644
index c859862..0000000
--- a/xsane-0.50.lsm
+++ /dev/null
@@ -1,17 +0,0 @@
-Begin3
-Title: XSANE
-Version: 0.50
-Entered-date: 11JAN2000
-Description: XSANE is a gtk based X11 frontend for
- SANE (Scanner Access Now Easy)
-Keywords: scanner, graphical user interface, GUI
-Author: Oliver.Rauch@Wolfsburg.DE (Oliver.Rauch)
-Maintained-by: Oliver.Rauch@Wolfsburg.DE (Oliver.Rauch)
-Primary-site: http://www.wolfsburg.de/~rauch/sane/sane-xsane.html
- 646kB xsane-0.50.tar.gz
-Alternate-site:
-Platforms: AIX, Digital Unix, HP Apollo Domain/OS, FreeBSD, HP-UX, IRIX,
- Linux (Alpha, m68k, SPARC, x86), NetBSD, OpenStep (x86),
- SCO OpenServer 5.x (x86), Solaris (SPARC, x86), SunOS
-Copying-policy: GPL
-End
diff --git a/xsane-WIN32-compilation.txt b/xsane-WIN32-compilation.txt
new file mode 100644
index 0000000..40a07bd
--- /dev/null
+++ b/xsane-WIN32-compilation.txt
@@ -0,0 +1,142 @@
+This is the list of what I did to compile and install xsane-win32.
+Some parts may not be exact because I wrote them down from my mind.
+
+
+I) Needed installation of cygwin:
+
+ I.1) go to http://cygwin.com
+ I.2) click the install cygwin button
+ I.3) follow the instructions (I installed all packages
+ but not all packages are necessary)
+ - install to c:\cygwin
+ - use preselected options
+ I.4) mkdir c:/sane
+
+ I.5) cp /bin/cygwin1.dll c:/sane
+ I.6) cp /bin/cygjpeg*.dll c:/sane
+ I.7) cp /bin/cygpng*.dll c:/sane
+ I.8) cp /bin/cygtiff*.dll c:/sane
+ I.9) cp /bin/cygz.dll c:/sane
+ I.a) cp /bin/cygintl.dll c:/sane
+
+
+
+II) Needed gtk+ and glib:
+
+ II.1) get glib-dev-*.zip and gtk+-dev-*.zip and iconv-dev*.zip
+ from http://user.sgic.fi/~tml/gimp/win32/
+
+ II.2) start cygwin bash shell
+ II.3) mkdir /src
+
+ II.4) unpack gtk+, glib and iconv to c:\cygwin
+
+ II.5) cd /src/glib
+ II.6) cp *.h /usr/include
+ II.7) cp libglib*.a /usr/lib
+ II.8) cp glib-*.dll c:/sane
+
+ II.9) cd /src/gtk+/gdk
+ II.a) mkdir /usr/include/gdk
+ II.b) cp *.h /usr/include/gdk
+ II.c) cp libgdk-*.a /usr/lib
+ II.d) cp gdk-*.dll c:/sane
+
+ II.e) cd /src/gtk+/gtk
+ II.f) mkdir /usr/include/gtk
+ II.g) cp *.h /usr/include/gtk
+ II.h) cp libgtk-*.a /usr/lib
+ II.i) cp gtk-*.dll c:/sane
+
+ II.j) cd /src/libiconv*/src
+ II.k) cp iconv*.dll c:/sane
+
+
+IIb) If GIMP-Plugin shall be compiled (otherwise skip this section):
+
+ IIb.1) get gimp-dev-*.zip
+ from http://user.sgic.fi/~tml/gimp/win32/
+
+ IIb.2) unpack gimp-dev to c:\cygwin
+ IIb.3) cd /src/gimp/libgimp
+ IIb.4) mkdir /usr/include/libgimp
+ IIb.5) cp *.h /usr/include/libgimp
+ IIb.6) cp gimp-*.dll c:/sane
+ IIb.7) cp libgimp-*.a /usr/lib
+
+
+III) Needed sane-parts:
+
+ III.1) copy sane-source-package to /src
+ III.2) cd /src
+ III.3) tar xvzf sane-*.tar.gz
+ III.4) cd /src/sane-*
+ III.5) edit backend/net.c and change sanei_backend.h to sanei_backend_win32.h
+ III.6) cp src/sane-*/include/sane/sanei_backend.h to include/sane/sanei_backend_win32.h
+ III.7) remove all lines containing "ENTRY" from sane/include/sanei_backend_win32.h
+ III.8) call ./configure --prefix=/cygdrive/c/sane
+ (do not use c:/sane because ":" is used as path separator)
+ III.9) edit backend/Makefile
+ - remove all backends but net from PRELOADABLE_BACKENDS
+ - remove dll from ALL_BACKENDS
+ - add net to DLL_PRELOAD
+ - remove dll.lo dll-s.lo from line beginning with "libsane.la:"
+ III.a) Remove lines with isfdtype and vsyslog from sanei/sanei_init_debug.c
+ III.b) compile sane (in directory sane-1.0.*) (call make)
+ this should create a file backend/.libs/libsane.a and frontend/scanimage.exe
+ III.c) mkdir /usr/include/sane
+ III.d) cp include/sane/sane.h /usr/include/sane
+ III.e) cp include/sane/saneopts.h /usr/include/sane
+ III.f) cp backend/.libs/libsane.a /usr/lib
+ III.g) cp frontend/scanimage.exe /sane
+
+
+
+IV) compiling xsane:
+
+ IV.1) copy xsane-source-package to /src
+ IV.2) cd /src
+ IV.3) tar xvzf xsane-*.tar.gz
+ IV.4) cd /xsane-*
+ IV.5) edit configure and remove "exit" after "ERROR: SANE" and "ERROR: GTK"
+ IV.6) copy src/Makefile.in.WIN32 to src/Makefile.in
+ IV.7) call ./configure --prefix="c:'\\\\'sane"
+ ignore errors about missing gtk, gimp and sane
+ IV.8) In src/Makefile do:
+ - check GTK-DLL names, GDK-DLL names in GTK_LIBS:
+ GTK_LIBS = -lgtk-1.3 -lgdk-1.3
+ and name of gimp-library:
+ GIMP_LIBS = -lgimp-1.2 -lglib-1.3
+ - When you want to compile xsane without gimp support:
+ comment out GIMP_LIBS ... with a "#"
+ - When you want to compile xsane with debug output,
+ remove "-mwindows" from the CC=... line
+ (this creates a Dosbox when xsane is started,
+ XSANE_DEBUG=128 and SANE_DEBUG_NET=128 enables
+ debug messages)
+ IV.9) compile xsane (in directory xsane-0.*/) (call make)
+ IV.a) make install
+
+
+
+
+V) set up correct environment
+
+ V.1) mkdir c:/sane/etc
+ V.2) mkdir c:/sane/etc/sane.d
+ V.3) vi c:/sane/etc/sane.d/net.conf
+ and enter a list of NetBEUI names or of IP-addresses
+ of machines you want to connect to. On some Windows
+ system IP-addresses are not accepted; if you experience
+ any problems try the NetBUI names.
+
+ example for net.conf:
+ myhost1
+ myhost2.mydomain.com
+ 192.168.0.1
+ 192.169.1.73
+ V.4) mkdir c:/sane/home
+ V.5) mkdir c:/sane/home/xsane
+
+
+
diff --git a/xsane-convert-to-0.46.c b/xsane-convert-to-0.46.c
deleted file mode 100644
index 0b7afd3..0000000
--- a/xsane-convert-to-0.46.c
+++ /dev/null
@@ -1,85 +0,0 @@
-#include "stdio.h"
-
-main(int argc, char *argv[])
-{
- double val_double;
- long int val_sane;
- char option[255];
- char *string = 0;
- char *filename = 0;
- FILE *file;
- int len = 0;
-
- if (argc != 2) /* error ? */
- {
- fprintf(stderr,"USAGE: %s file.drc >outputfile.drc\n", argv[0]);
- return;
- }
-
- filename = argv[1];
-
- file = fopen(filename, "r");
- if (file == 0) /* error ? */
- {
- fprintf(stderr,"Could not open %s for reading *** ABORTED ***\n", filename);
- return;
- }
-
- while (!feof(file))
- {
- fgets(option, sizeof(option), file); /* get option name */
- option[strlen(option)-1] = 0; /* remove cr */
-
- len = strlen(option);
-
- if (len)
- {
- if (option[len-1] == 34)
- {
- option[len-1] = 0; /* remove " */
- }
- }
- string = option+1;
-
- if ((!strcmp(string, "xsane-main-window-x-position")) ||
- (!strcmp(string, "xsane-main-window-y-position")) ||
- (!strcmp(string, "xsane-main-window-width")) ||
- (!strcmp(string, "xsane-main-window-height")) ||
- (!strcmp(string, "xsane-standard-options-window-x-position")) ||
- (!strcmp(string, "xsane-standard-options-window-y-position")) ||
- (!strcmp(string, "xsane-advanced-options-window-x-position")) ||
- (!strcmp(string, "xsane-advanced-options-window-y-position")) ||
- (!strcmp(string, "xsane-histogram-window-x-position")) ||
- (!strcmp(string, "xsane-histogram-window-y-position")) ||
- (!strcmp(string, "xsane-preview-window-x-position")) ||
- (!strcmp(string, "xsane-preview-window-y-position")) ||
- (!strcmp(string, "xsane-preview-window-width")) ||
- (!strcmp(string, "xsane-preview-window-height")) ||
- (!strcmp(string, "xsane-gamma")) ||
- (!strcmp(string, "xsane-gamma-red")) ||
- (!strcmp(string, "xsane-gamma-green")) ||
- (!strcmp(string, "xsane-gamma-blue")) ||
- (!strcmp(string, "xsane-brightness")) ||
- (!strcmp(string, "xsane-brightness-red")) ||
- (!strcmp(string, "xsane-brightness-green")) ||
- (!strcmp(string, "xsane-brightness-blue")) ||
- (!strcmp(string, "xsane-contrast")) ||
- (!strcmp(string, "xsane-contrast-red")) ||
- (!strcmp(string, "xsane-contrast-green")) ||
- (!strcmp(string, "xsane-contrast-blue")))
- {
- printf("\"%s\"\n", string);
- fscanf(file, "%lf\n", &val_double);
- val_sane = val_double * 65536;
- printf("%d\n", val_sane);
- }
- else
- {
- printf("\"%s\"\n", string);
- fgets(option, sizeof(option), file); /* get option name */
- option[strlen(option)-1] = 0; /* remove cr */
- printf("%s\n", option);
- }
- }
- fclose(file);
-}
diff --git a/xsane-convert-to-0.49.c b/xsane-convert-to-0.49.c
deleted file mode 100644
index 59975eb..0000000
--- a/xsane-convert-to-0.49.c
+++ /dev/null
@@ -1,65 +0,0 @@
-#include "stdio.h"
-
-#define MM_PER_INCH 25.4
-
-main(int argc, char *argv[])
-{
- int val_in;
- int val_out;
- char option[255];
- char *string = 0;
- char *filename = 0;
- FILE *file;
- int len = 0;
-
- if (argc != 2) /* error ? */
- {
- fprintf(stderr,"USAGE: %s old-xsane.rc >new-xsane.rc\n", argv[0]);
- return;
- }
-
- filename = argv[1];
-
- file = fopen(filename, "r");
- if (file == 0) /* error ? */
- {
- fprintf(stderr,"Could not open %s for reading *** ABORTED ***\n", filename);
- return;
- }
-
- while (!feof(file))
- {
- fgets(option, sizeof(option), file); /* get option name */
- option[strlen(option)-1] = 0; /* remove cr */
-
- len = strlen(option);
-
- if (len)
- {
- if (option[len-1] == 34)
- {
- option[len-1] = 0; /* remove " */
- }
- }
- string = option+1;
-
- if ((!strcmp(string, "printer-width")) ||
- (!strcmp(string, "printer-height")) ||
- (!strcmp(string, "printer-left-offset")) ||
- (!strcmp(string, "printer-bottom-offset")))
- {
- printf("\"%s\"\n", string);
- fscanf(file, "%d\n", &val_in);
- val_out = val_in * 65536 * MM_PER_INCH/72.0;
- printf("%d\n", val_out);
- }
- else
- {
- printf("\"%s\"\n", string);
- fgets(option, sizeof(option), file); /* get option name */
- option[strlen(option)-1] = 0; /* remove cr */
- printf("%s\n", option);
- }
- }
- fclose(file);
-}
diff --git a/xsane.ACCELKEYS b/xsane.ACCELKEYS
new file mode 100644
index 0000000..c847d5c
--- /dev/null
+++ b/xsane.ACCELKEYS
@@ -0,0 +1,61 @@
+In general:
+Ctl: Main Window
+Shift: Main Window
+Alt: alternative windows
+
+F1-F8 Help functions
+F Menu File
+P Menu Preferences
+V Menu View
+H Menu Help
+
+Ctl S Scanmode
+Ctl C Copymode
+Ctl F Faxmode
+
+Ctl ENTER Start Scan
+ESC Cancel Scan
+
+Ctl I Info Dialog
+Ctl Q Quit
+
+Ctl L Resolution List
+Ctl R Rotoate Postscript
+Ctl P Save Device Settings (Put)
+Ctl G Load Device Settings (Get)
+Ctl D Change Directory
+
+Ctl 1 Show Tooltips
+Ctl 2 Show preview
+Ctl 3 Show Histogram
+Ctl 3 (Show Gamma Dialog)
+Ctl 4 Show Advanced Options
+Ctl 5 Show Advanced Options
+
+Ctl B Browse Filename
+
+Shift Fi Printer selection in copy mode
+
+Shift B Bind RGB
+Shift N negative
+Shift E AutoEnhance
+Shift D Default
+Shift R Restore Settings
+Shift M Memory (store) settings
+Shift S Setup
+
+Alt P Start Preview Scan
+Alt ESC Cancel Preview Scan
+Alt KP_+ Zoom in
+Alt KP_- Zoom out
+Alt KP_* Zoom not
+Alt KP_/ Zoom undo
+Alt A Autoselect scanarea
+Alt V Select visible scanarea
+
+Alt I Histogram lines for intensity
+Alt R Histogram lines for red
+Alt G Histogram lines for green
+Alt B Histogram lines for blue
+Alt M Histogram lines mode (line/pixel)
+Alt L Histogram lines logarithm
diff --git a/xsane.AUTHOR b/xsane.AUTHOR
index 9f4fb83..0615cb3 100644
--- a/xsane.AUTHOR
+++ b/xsane.AUTHOR
@@ -1,2 +1,2 @@
-author: Oliver Rauch <Oliver.Rauch@Wolfsburg.DE>
+author: Oliver Rauch <Oliver.Rauch@xsane.org>
diff --git a/xsane.BACKENDS b/xsane.BACKENDS
new file mode 100644
index 0000000..09be014
--- /dev/null
+++ b/xsane.BACKENDS
@@ -0,0 +1,42 @@
+The following backends are known to work with xsane
+
+backend version reported xsane-version remark
+=========================================================================================
+ sane-artec 0.5 0.46
+ sane-avision 0.2 0.49
+ sane-canon ? 0.47
+ sane-coolscan 0.42 0.50, 0.61
+ sane-dll ok ok
+ sane-epson sane-1.0.1, >=0.13 0.50
+ sane-fujitsu ? ?
+ sane-hp 0.83 0.50
+ sane-m3096g 1.3 (sane-1.0.3) 0.60 (all?)
+ sane-microtek ? ?
+ sane-microtek2 0.8, pre0.9.020100 0.50 and earlier
+ sane-mustek ? 0.48, 0.50
+ sane-mustek_pp 0.6-alpha .. 0.9-devel 0.61
+ sane-net ok ok
+ sane-plustek 0.37 0.62?
+ sane-pnm sane-1.0.1 0.52 and earlier
+ sane-sharp ? 0.47
+ sane-snapscan 0.57+ some problems
+ sane-sp15c 1.3 (sane-1.0.3) 0.60 (all?)
+ sane-tamarack ? 0.40
+ sane-umax 1.0-build-* all
+ sane-v4l2 ? 0.51 not in the sane package
+
+
+unknown state:
+--------------
+ sane-abaton
+ sane-agfafocus
+ sane-apple
+ sane-dc210
+ sane-dc25
+ sane-dmc
+ sane-pint
+ sane-qcam
+ sane-ricoh
+ sane-st400
+ sane-s9036
+
diff --git a/xsane.BEGINNERS-INFO b/xsane.BEGINNERS-INFO
new file mode 100644
index 0000000..d2be006
--- /dev/null
+++ b/xsane.BEGINNERS-INFO
@@ -0,0 +1,31 @@
+If you are a begginer with linux/unix please read this...:
+
+On almost all linux/unix sourcecode packages you find files that you should
+read at first like README, INSTALL, programname.README ...
+
+for Xsane this is:
+ xsane.INSTALL and xsane.PROBLEMS
+there you find a description what you need and how to build the package.
+
+If something goes wrong or you have any questions first read xsane.FAQ
+There are several other files (xsane.XXX) that might help/answer your question.
+
+After all that is done and you still have problems - if possible - ask a friend
+how knows a bit more about linux/unix.
+
+If all that does not help contact me.
+
+This way you learn a lot about linux/unix and if the next problem occurs you
+have a good chance to solve it on your own.
+
+If you do not understand what is written in these texts, you should start
+with more simple things. Please do not ask me in that case - I want to
+spend my free time to improve Xsane and not to tell beginners how to
+build/install it - please understand that.
+
+If you checked all described in the xsane.XYZ files and you still have
+problems, contact me.
+
+Thanks
+Oliver Rauch <Oliver.Rauch@rauch-domain.de>
+
diff --git a/xsane.BUGS b/xsane.BUGS
new file mode 100644
index 0000000..fa403c8
--- /dev/null
+++ b/xsane.BUGS
@@ -0,0 +1,27 @@
+----------------------------------------------------------------------------------
+
+ - preview selection does not fit exact the scanned image? (I can not reproduce
+ this)
+
+ - on some systems it is reported that:
+ - saving as png -> coredump
+ it looks like this is caused by wrong png versions
+ (old bug report, does anyown still have this problem?)
+
+If you have one of the problem above please contact me and tell me:
+ - used xsane version
+ - cpu
+ - operating system
+ - byteorder of the cpu - if you know
+ - ram size
+ - used sane version
+ - used backend and version
+ - used scanner
+ - bit depth (lineart, 8bits/color or 16bits/color)
+ - local scanner or via net backend
+ - does the problem also occur when you do the same
+ (if possible) with xscanimage?
+
+Mail to: Oliver.Rauch@xsane.org
+
+----------------------------------------------------------------------------------
diff --git a/xsane.CHANGES b/xsane.CHANGES
index 3491a27..d436827 100644
--- a/xsane.CHANGES
+++ b/xsane.CHANGES
@@ -709,3 +709,1251 @@ xsane-0.49 -> 0.50:
- changed dynamic menue list definition in xsane_setup for TIFF_COMPRESSION menu
+
+xsane-0.50 -> 0.51:
+-------------------
+
+ - added some rangechecks to histogram->gamma calculation
+ it is done as histogram->gamma->histogram now
+
+ - changed redraw frame in preview_display_partial_image(),
+ now the old image is completely overpainted!
+
+ - added xsane_set_all_resolutions() to xsane_printer_callback,
+ now paper size frame is updated when printer is changed
+
+ - corrected wrong error message in setting of scansource_selection
+ from "unknown type" to "unknown constraint type"
+
+ - moved xsane.header_size = 0; to the end of xsane_scan_done so it is called in each case
+ the missing command was responsible for a segfault when starting a scan after xsane_cancel
+ has been called
+
+ - moved progress_bar from it's own window to the bottom of the main window
+ progress_bar texts are displayed in info frame and in progress bar
+
+ - added size in mm/cm/in to progress bar when not scanning
+
+ - in scales the number of digits is defined by quantization now, if no quantization is given
+ by backend (quant=0, SANE_TYPE_FIXED) x.2 digits are displayed
+
+ - corrected page_step for scales
+
+ - selection_active is reset in preview_display_partial_image instead of preview_paint_image
+
+ - updated czech translation file cs.po.in - thanks to Stansislav Brabec
+
+
+xsane-0.51 -> 0.52:
+-------------------
+
+ - changed gimp_install_procedure(...) for specified device: "RGB, GRAY" -> 0
+
+ - in xsane-scan.c and xsane-preview.c added " | GDK_INPUT_EXCEPTION" to
+ gdk_input_add(fd, GDK_INPUT_READ | GDK_INPUT_EXCEPTION, preview_read_image_data, p);
+
+ - added static int xsane_set_modus_defaults(void)
+ zoomfactor is set to 1.0 if copy mode is selected
+ full preview area is selected if copy or fax mode is selected
+
+ - removed a second xsane_device_preferences_restore(); in static void xsane_device_dialog(void)
+
+ - zoom factor keeps unchanged when printer is changed
+
+ - added psfile-geometry to setup/saving options, it is used when saving postscript in scanmode
+
+ - moved exisiting routines to open functions to xsane-front-gtk.c:
+ void xsane_define_output_filename(void);
+ void xsane_identify_output_format(char **ext);
+
+ - define_maximum_output_size is called in each routine that changes filename or fileextension
+ because the output frame is also drawn in scanmode with filetype postscript now
+
+ - included Stanislav Brabec's <utx@penguin.cz> sed-scripts and changes for Makefile.in in xsane-*/po
+
+ - added creation of newlanguage.po in po/Makefile.in
+
+ - updated german translation file de.po
+
+ - updated czech translation file cs.po - thanks to Stanislav Brabec <utx@k332.feld.cvut.cz>
+
+ - updated french translation file fr.po
+
+
+xsane-0.52 -> 0.53:
+-------------------
+
+ - added test if vendor, model and type strings do exists (pointer != 0)
+ otherwise "no vendor",... is printed
+
+ - changed
+ ext = &extension;
+ to
+ if (extension)
+ {
+ *ext = strdup(extension);
+ }
+ else
+ {
+ *ext = 0;
+ }
+ in xsane_identify_output_format - bad thing, I get old ;-)
+
+ - added new routine xsane_find_best_resolution that makes sure that the selected resolution
+ fits into range/quantization given by backend.
+ This is used by xsane_set_resolution and when resolution_list is created.
+
+ - added xsane_set_all_resolutions to xsane_set_modus_defaults
+
+ - xsane resolution can be changed by backend now
+
+
+xsane-0.53 -> 0.54:
+-------------------
+
+ - updated french translation table
+
+ - updated german translation table
+
+ - changed type of umask in preferences from mode_t to int because
+ sizeof(mode_t) is on some machines only 2 bytes what cause problems.
+ all calls of umask(foo) are changed to umask((mode_t) foo)
+
+ - changed preferences update_policy from GtkUpdateType to int.
+
+ - selection box can not be moved out of the preview window, the
+ size of the selection keeps unchanged in that case now.
+
+ - removed some gtk_main_iteration and reordered some selection drawing routines.
+
+ - removed unused files/directories from package:
+ sanei, include/sane/sanei_(some).h, po_old
+
+
+xsane-0.54 -> 0.55:
+-------------------
+
+ - added preview support for 16 bpp (transformed to 8bpp)
+
+ - added copyright line in devcie selection dialog
+
+ - preview selection frame is only active when backend supports coordinate selection
+
+ - added preview oversampling factor (multiplier for calculated preview resolution)
+
+ - added lineart enhancement: preview can be done in grayscale now,
+ threshold value change is displayed without a new preview scan.
+
+ - added "device options" to setup dialog:
+ - Scanner dependant options for grayscale->lineart conversion have
+ to be entered there.
+
+ - a color preview is now displayed gray when grayscale mode is selected
+
+ - updated de.po, cs.po, fr.po
+
+ - updated po/xsane-pot.sed
+
+
+xsane-0.55 -> 0.56:
+-------------------
+
+ - added hold timer to preview (update-policy=delayed)
+
+ - added hold timer to xsane_slider (update-policy=delayed)
+
+ - moved help menu from file to help
+
+ - added swedish (sv) translation - thanks to Johan Bengtsson <johanb@lls.se>
+
+ - removed bug in xsane_rc_io_w_string, it returns EINVAL now each time when the string
+ does not begin with "
+
+
+xsane-0.56 -> 0.57:
+-------------------
+
+ - made xsane_choose_device return type to void (was gint32)
+
+ - arranged device-preferences in struct xsane in the order they are used
+ as device preferences, made sure that all variable types are correct:
+ - changed type of xsane.mode from gint32 to int
+ - changed type of xsane.lineart_mode from gint32 to int
+ - changed type of xsane.show_preview from SANE_Bool to int
+ - changed type of xsane.enhancement_rgb_default from SANE_Bool to int
+ - changed type of xsane.fax_finemode from SANE_Bool to int
+
+ - added mask for *_lock in preview motion_notify_event handling
+ Preview selection can be done with locks activated now
+
+ - histogram is cleared before/redrawn after saving/loading device settings
+
+ - added xsane_control_option() that tests if option >= 0 and returns SANE_STATUS_INVAL if not
+
+ - added xsane_get_option_descriptor() that tests if option >= 0 and returns NULL if not
+
+ - changed parameters of preview_area_resize and added preview_area_resize_handler
+
+ - removed a lot of gtk_main_iterations from xsane_preview.c
+ they make problems in the redrawing order and can cause display problems
+
+
+xsane-0.57 -> 0.58:
+-------------------
+
+ - split the preview_event_handler into
+ - preview_press_button_event_handler
+ - preview_motion_event_handler
+ - preview_release_button_event_handler
+
+ - the preview_expose_event_handler now is called twice,
+ the second call has been placed in the preview_event_handler_before
+
+ - reactivated gtk_main_iteration after at the end of motion_event
+
+ - added warning window when xsane is started as root
+
+ - added selection of temporary directory in preferences/setup/saving options
+
+ - added gdk_input_remove(xsane.input_tag); before xsane_start_scan is called
+ in 3-pass scanning mode (suggestion from Heiko_Schroeder@t-online.de)
+
+ - changed output of "xsane -v"
+
+ - in xsane_scan_done moved xsane.header_size = 0; before test for ADF
+ Thanks to Russell Coggrave for the info about it.
+
+ - added gtk_set_locale() before gtk_init()
+
+ - added copyright sign "(c)" to translated texts because it is not available on all charsets
+
+ - temporary filenames are created random and unique (mktemp + random number)
+ due to security problems with fixed/calculateable tempfiles.
+
+ - the preview-files are created (empty) at program startup now
+
+ - when program exits the previews are erased
+ there is no way to store the preview images any more when the program is closed
+
+ - preview_restore_image() creates the xsane-startimage if no preview is stored
+
+ - renamed directory frontend to src
+
+ - create xsane-help script that opens online helpfile
+
+
+xsane-0.58 -> 0.59:
+-------------------
+
+ - preview_do_gamma_correction does test for 3 pass scanner color mode
+
+ - changed fax x-resolution and standard resolution from 98 ppi to 204 ppi
+ and with of faxpage from 210.0 to 215.7 (so we get 1728 pixels in x direction,
+ hxlafax-faq says that is the correct size)
+
+ - split preferences.printer[..].resolution -> lineart, grayscale and color_resolution
+
+ - added setlocale(LC_NUMERIC, "C"); in xsane_init() and #include <locale.h> in xsane.h
+ this should solve the problems with empty images (100%transparent) with gimp
+ and other problems that were caused by local settings (1.3 <=> 1,3).
+
+ - added setup-option "disable gimp preview gamma"
+
+ - added selection (preferences/setup/enhancement options) if autoenhancement changes gamma value
+
+ - renamed Preferences/Setup/"Device options" to "Enhancement options"
+
+ - removed xsane internal callbacks from dialog struct, the functions are called directly now
+
+ - changed the reading of the preview image header. The last newline character before the image
+ data starts again made some problems, this seems to depend on the data that follows. So I added
+ a fgets() command to skip the newline character - this seems to work.
+
+ - changed increase_filename_in_counter, does work now if the only character of the base-filename
+ is the counter
+
+ - reduced size of src/xsane-startimage.pnm (1MB => 0.6MB)
+
+
+xsane-0.59 -> 0.60:
+-------------------
+
+ - after filename counter is increased the cursor in the outputfilename entry is moved to the right
+
+ - in preview_read_image_data when image is complete:
+ preview_update_surface(p, 0);
+ is called before
+ preview_display_image(p);
+ this way the geometry of the first preview scan is correct.
+
+ - moved xsane_set_all_resolutions in xsane_update_xsane_callback(),
+ it now also is called when the backend only uses one reesolution
+
+ - added calibration image (xsane-calibration.pnm) that is loaded when setup window is created.
+ The xsane enhancement functions are disabled in calibration mode, the image can not be
+ resized (xscale = yscale = 1.0).
+ The previsous image is reloaded when the setup window is closed again.
+
+ - enviornment variable SANE_DEFAULT_DEVICE is used to activate the radiobutton in the
+ device selection menu
+
+ - removed unused item "custom" from preview surface menu
+
+ - changed preview surface menu items:
+ A3 -> A3P (portrait)
+ A4 -> A4P (portrait)
+ A4H -> A4L (landscape)
+ A5 -> A5P (portrait)
+ A5H -> A5L (landscape)
+
+ - removed script xsane-help, necessary command now is listed in xsane.PROBLEMS
+
+
+xsane-0.60 -> 0.61:
+-------------------
+
+ - added debug output function and messages (environment variable XSANE_DEBUG)
+
+ - moved all global variables and struct GSGdialog to global struct xsane
+
+ - cleaned up some variable names
+
+ - added free gamma curve dialog (not ready)
+
+ - prepared xsane for win32:
+ - when BUGGY_GDK_INPUT_EXCEPTION is defined only blocking mode is used
+ (needed because GDK input exception does not work on win32)
+ - on win32 you cannot get a homedirectory, for this
+ XSANE_FIXED_HOME_PATH has to be set to the path that shall be
+ used as homedirectory
+ - replaced all gtk_dialog_new by gtk_window_new and added hbox and vbox to the window
+ (gtk_dialog_new does not work on WIN32)
+ - added xsane.WIN32 and xsane.WIN32-compilation that describes how xsane
+ is build on WIN32 with CYGWIN
+ - replaced "/" in all paths, added label SLASH that is predefined to '/' if it is
+ not defined by compiler option. For WIN32 it is set to '\' by compiler option
+ - all fopen functions use argument "rb" or "wb" now (b=binary). This is needed for WIN32
+ and the b is ignored on unix systems.
+ - published binary version xsane-win32-0v01 and xsane-win32-0v02 based on
+ xsane-pre0.61 versions
+
+ - removed an ugly bug: in struct Preferences there was predefined a string ("/tmp/")
+ that caused a bad memory state when the string memory was freed,
+ instead the string is defined in xsane_pref_restore now
+
+ - changes for tiff format:
+ - added support for 16 bit tiff format.
+ - predefined tiff-compression is changed from 5 to PACKBITS(16bit), JPEG(8bit), FAXG3(1bit).
+ - add resoultion-tags and datetime-tag to tiff files.
+
+ - added "change directory" entry to preferences menu
+
+ - added "scanning for devices" dialog
+
+
+xsane-0.61 -> 0.62:
+-------------------
+
+ - updated manpage (was about 1 year old)
+
+ - removed sigprocmask.c from xsane-*/lib (not used)
+
+ - added icons (32x32 and 48x48) for unix(xpm) and Windows(ico)
+
+ - some additional changes for rotating preview
+
+ - removed bug in preview_get_color that caused segfault when
+ click with pipette was placed into preview area but outside the image,
+ ( there was no test for image size )
+
+ - in info dialog tiff is now listed as supported 16 bit format
+
+ - filename counter is increased now if path or filename includes a "."
+ and fileytpe is seleced by menu
+
+ - added possibility to move the edge of the preview selection frame
+ thanks to Laurent Martelli for his suggestion for that
+
+ - added sane_get_parameters(xsane.dev, &xsane.param) at end of preview_scan_done
+ this way it is made sure that xsane.param is correct after preview scan
+ (was not correct in copy mode with lineart=grayscale->lineart preview)
+
+ - added explaination of "[DEVICE]" in xsane help message
+
+ - gimp handling now is always called in xsane_scan_done
+ (was not called when an error occured or the cancel button was pressed).
+
+ - moved selection of fax finemode to fax-project window, image is always scanned
+ in fine mode resolution.
+
+ - html-documentation is updated (a bit)
+
+ - removed bad "+ 0.5" from calculation in preview_set_option_float: word = SANE_FIX(value) + 0.5;
+
+ - included italian translation table (it.po), thanks to Mauro Colorio <macolori@tin.it>
+
+ - added error message in xsane_control_option if command failed
+
+ - p->startimage is set to 0 in preview_scan_start
+
+
+xsane-0.62 -> 0.63:
+-------------------
+
+ - added turkish translation (thanks to Togan Muftuoglu <toganm@turk.net>)
+
+ - changed gimp interface from 1.0 to 1.1.2x (GParam->GimpParam etc),
+ added xsane-oldgimp.h that adds #defines for the old gimp interface
+
+ - added "make uninstall"
+
+ - changed confiure.in, added test for x_includes before it is used,
+ renamed it to configure.old
+
+ - new configure.in file that does use "sane-config" now to find the sane libraries
+
+
+xsane-0.63 -> 0.64:
+-------------------
+
+ - changed xsane-oldgimp.h to work with gimp-1.0.4
+
+ - added info icon (green triangle with explanation mark)
+
+ - added info window function: xsane_back_gtk_info
+
+ - ADF mode: if first scan fails with NO_DOCS => error message: no docs
+ if another scan ends with NO_DOCS => info message: scanned pages: #
+
+ - added some accelerator keys. The key definitions may change any time,
+ this is a first test version. The key-definitions are listed in xsane.ACCELKEYS
+
+ - added grab_default for close buttton in info and about dialog
+
+ - changed test for sane-libs in aclocal.m4, "-lintl" is removed from
+ the output of "sane-config --libs"
+ (this caused segfaults when gettext is included in libc)
+
+ - added about translation dialog
+
+ - added options "-p", "--print-filenames", if enabled and xsane runs in scanmode it
+ prints names of produced image files to stdout
+
+ - added options "-N name", "--force-filename name", if set the user filename selection
+ is disabled and the given name is used as filename. The filename should be of the
+ form "basename-00001.filetype". The size of the counter has to be suffisunt large.
+
+ - some changes in configure script (missing libs needed by sane are not linked any more)
+
+
+xsane-0.64 -> 0.65:
+-------------------
+
+ - src/Makefile.in: added usage of SANE_CFLAGS and GTK_CFLAGS
+
+ - added secure password transmission for authorisation (md5digest)
+
+ - ~/.sane/pass is used for reading user:password:resource from file before asking the user
+
+ - configure: removed test for X (AC_PATH_X), this is done in GTK (gtk-config)
+ gtk includes and libs are used for png test (because png often is in X directories)
+
+ - changed xsane_*_with_pixmap:
+ old status: routines used xsane.histogram_dialog->window as window for gdk_pixmap_create_from_xpm_d()
+ this made problems with preview window if X default color depth differd from X color depth
+ new status: routines are called with parameter GdkWindow *window now.
+
+
+xsane-0.65 -> 0.66:
+-------------------
+
+ - added setup menu for Automatic Document Feeder Scansource
+ (ADF-Scansource name was predefined to "Automatic Document Feeder" before,
+ now it can be defined for each device (is saved in decice settings))
+
+ - changed setup for lineart->grayscale scanmode from entry to menu with available scanmodes
+
+ - updated xsane.WIN32-compilation and src/Makefile.in.WIN32
+ I compiled a pre version of xsane-0.66 with the cygwin snapshot from 2000-12-10 and
+ gtk+-dev-20001023.zip, glib-dev-20001023.zip, libiconv-dev-20001007.zip
+ with the way described in xsane.WIN32-compilation without any problems.
+ The problem with the fork() seems to be solved in this cygwin version.
+
+ - updated aclocal.m4 and configure (gimp test)
+
+
+xsane-0.66 -> 0.67:
+-------------------
+
+ - added test if (xsane.adf_scansource) before usage of xsane.adf_scansource
+ (caused segfault when no ADF Scanmode was defined in setup)
+
+
+xsane-0.67 -> 0.68:
+-------------------
+
+ - changed src/Makefile.in.WIN32 so that the installation directory can
+ be selected by configure --prefix=... and the used paths are more
+ common to the one on unix (/usr/local => c:\sane)
+
+ - changed src/Makefile.in.WIN32 for gimp support (uncomment GIMP_LIBS)
+
+ - WIN32+gimp-support: set_gimp_PLUG_IN_INFO_PTR(&PLUG_IN_INFO) is called
+
+ - added extern GimpPlugIn PLUG_IN_INFO to xsane.h (needed in xsane.c for win32)
+
+ - replaced free(xsane.tile) by g_free(xsane.tile)
+ (the free(...) caused a crash on win32)
+
+ - changed aclocal.m4: gimp test does work with gimp-1.0.x version again
+
+ - renamed xsane.WIN32 and xsane.WIN32-compilation to xsane-WIN32.txt
+ and xsane-WIN32-compilation.txt (it is easer to use on windows)
+
+ - removed (#ifndef _WIN32) gtk_set_locale() from xsane.c for win32
+ (when it was called gimp plugin created transparent images)
+
+ - saved xsane-style.rc in DOS mode (\n\r)
+
+
+xsane-0.68 -> 0.69:
+-------------------
+
+ - some changes in aclocal.m4 for gimp test:
+ - When gimp-config is not found, the output of gtk-config is used
+ - GTK_CFLAGS or GIMP_CFLAGS are added to CPPFLAGS for test for gimp.h and gimpfeatures.h
+ - GTK_CFLAGS and GTK_LIBS are erased when gimp_config is available
+
+ - changed src/Makefile.in: GIMP_CFLAGS is used now
+
+ - saved xsane-style.rc in unix mode (\n) because DOS mode (\n\r) made problems
+
+ - added new way to call netscape remote command:
+ at first xsane tries to find out if netscape is running, for this it tries to
+ find out if there is a link "~/.netscape/lock". If this link exists netscape should
+ be running and xsane calls "netscape -remote openFile(...)". Otherwise xsane calls
+ "netscape ..."
+
+ - changed keywork "netscape-remote" as docviewer to "netscape"
+
+ - changed way to find out home directory in xsane-back-gtk.c:
+ now getenv(ENVIRONMENT_HOME_DIR_NAME) is used instead of getpwuid(...)->pw_dir.
+ (getenv is usable for Win32 and unix, getpwuid makes problems on Win32)
+
+
+
+xsane-0.69 -> 0.70:
+-------------------
+
+ - removed some bugs in text for pipette in sane-xsane-preview-doc.html
+
+ - changed acloacal.m4: when gimp-config is not found we look for gimptool
+
+ - for WIN32 the filetypes listed in the filetype menu are ".jpg" and ".tif"
+ instead of ".jpeg" and ".tiff"
+
+ - added manufacturer image to bottom of standard and advanced options window.
+ The name of the image is "vendor"-logo.xpm" or "sane-"backend"-logo.xpm",
+ the size of the image should be 256x48 pixels with a transparent background.
+
+ - changed src/Makfile.in: *-logo.xpm are installed (make install) and
+ uninstalled (make uninstall) now
+
+ - changed src/Makfile.in.WIN32: *-logo.xpm are installed (make install)now
+
+ - several changes in xsane-preview.c for rotating preview by 0/90/180/270 degree
+ the preview rotation is ready now
+
+ - added new routine xsane_save_rotate_image to xsane-save.c
+
+ - added new routine xsane_save_grayscale_image_as_lineart to xsane-save.c
+
+ - lineart images are saved in grayscale mode at first if transformation has to be done
+
+ - xsane_save_rotate_image is called beween scanning and saving image
+
+ - xsane_save_grayscale_image_as_lineart is called beween rotating and saving image
+
+ - aclocal.m4/configure: changed sane_major_version etc to SANE_CURRENT_MAJOR
+
+ - fileheader of raw format changed. This format is not defined, but some programs
+ can read it as 16 bit pnm binary data, so we use a compatible header now:
+ P5
+ # This file is in a not public defined data format.
+ # It is a 16 bit gray binary format.
+ # Some programs can read this as pnm/pgm format.
+ # SANE data follows.
+ 100 100
+ 65535
+
+
+
+xsane-0.70 -> 0.71:
+-------------------
+
+ - corrected aspect ratio in xsane-preview.c in routine that calculates preview resolution
+
+ - corrected user definition of maximum scanner surface
+
+ - added translation of preview menu maximum surface(preset area)
+
+ - added tooltip for maximum surface(preset area) menu and rotation menu
+
+ - finished preview_autoselect_scanarea()
+
+ - added autoselect scanarea button to preview window
+
+ - changed automaitic increase of filename counter:
+ - the step direction and length is not forced to +1,
+ the user can select one of the values -2/-1/0/+1/+2.
+ It is defined by preferences.filename_counter_step.
+ This way it is possible to scan double sided papers
+ with correct automatic page number generation.
+ - the digits are not increased by a loop any more,
+ the number is read, the new number is calculated
+ and the new filename is generated. The user can
+ select a minimum filename counter length now,
+ it is defined in preferences.filename_counter_len
+ and can be selected by the user in setup/saving options
+ - when the number of digits are not enough the number is
+ automatically increased now.
+ - a message comes up when counter gets smaller than 0
+
+ - pipette the color is averaged on a square, the size of the
+ square can be defined by the user
+
+ - updated html doc (not complete)
+
+ - added tooltips to permission buttons (r,w,x)
+ permission texts: user, group, all, read, write, execute can be translated now.
+
+ - added japanese translation (thanks to Kimizuka Tomokazu <sgtom@pluto.dti.ne.jp>)
+
+ - renamed oldgimp.h to gimp-1_0-compat.h
+
+
+xsane-0.71 -> 0.72:
+-------------------
+
+ - changed default postscript viewer from xv to gv
+
+ - moved int i, select = 1; in static void xsane_saving_notebook() out of #ifdef HAVE_LIBTIFF block
+
+ - filename counter length correction is only done in sane_start when there is a user selectable filename
+
+ - if external filename is given the counter len is not touched when not necessary
+
+ - added "insert file" function to fax mode
+
+ - added output of gamma, brightness and contrast settings to pnm headers
+
+ - updated xsane online-documentation (html)
+
+ - added license dialog, it is shown when it was not already accepted for this xsane version
+ (tested in local xsane.rc)
+
+ - about and about translation dialogs do not set XSane´s sensitivity to false any more
+
+ - copyright sign is now always defined as "(c)", can be translated with \251 if character is available
+
+ - device preferences are not saved/loaded any more when file selection is aborted
+
+ - in xsane_info_dialog the scanner type is translated now
+
+ - added accelerator keys to device selection dialog:
+ Escape -> Cancel
+ F1,F2,.. -> select device number 1,2,...
+
+ - added usleep(100ms) in device selection dialog before scanning for devices, this way we make
+ sure that the text "scanning for devices" is displayed
+
+ - added some accelarator keys to the preview window:
+ Alt ESC Cancel Preview Scan
+ Alt KP+ Zoom in
+ Alt KP- Zoom out
+ Alt KP* Zoom not
+ Alt KP/ Zoom undo
+ Alt A Autoselect scanarea
+ Alt V Select visible scanarea
+
+ - added accelerator key Escape to file-selection-dialog, about-dialog and about-translation-dialog
+ attached to cancel/close button
+
+ - updated translations:
+ - german translation
+ - czech translation - thanks to Stanislav Brabec <utx@penguin.cz>
+ - turkish translation - thanks to Togan Muftuoglo <toganm@yahoo.com>
+ - japanese translation - thanks to Kimizuka Tomokazu <sgtom@pluto.dti.ne.jp>
+ - french translation - thanks to Laurent Grawet <laurent.grawet@ibelgique.com>
+
+
+xsane-0.72 -> 0.73:
+-------------------
+
+ - moved call to display license after test for command line options,
+ so it is not necessary to accept the license to print help/version/license
+
+ - added slowenian translation, thanks to Ales Kosir <ales.kosir@zaslon.com>
+
+ - an error message is printed when a preview file could not be created
+
+ - netscape is called with option new-window now
+
+ - rotating scanned image uses memory mapped image file if possible
+ thanks to Salvador Pinto Abreu <spa@di.uevora.pt> for his suggestions
+
+ - xsane windows are set insensitive while faxproject is generated/queued.
+ For this waitpid is called in a loop.
+
+ - before a html documentation is displayed xsane does test if the requetsted file
+ does exist in the subdirectory language_dir = gettext("language_dir")
+ (what e.g. gives "de" for german). If it does exist it is displayed, otherwise
+ the original english doc is displayed.
+ "language_dir" has to be part of the translation table, it should be
+ translated to the correct translation direcotry name, e.g. de for german
+
+ - preferences.printer momory is defined dynamicall now (has been defined to 10
+ pointers to printerdefinition before)
+
+ - chaged with of some setup fields - have been too small for large fonts
+
+ - xsane-scan:xsane_scan_dialog():
+ added test for color scan to the test if gamma tables for red, green and blue
+ exists (coolscan backend defines color gamma tables in grayscale mode
+ what caused segfault in xsane).
+
+ - added preselect scanarea after preview scan (selection in enhancment setup)
+
+ - added automatic color correction after preview scan (selection in enhancement setup)
+
+ - removed bug (that caused segfault when opening setup dialog) in xsane_enhance_notebook
+ while setting up menu itmes for grayscale scanmode selection:
+ replaced xsane.well_known.scanSOURCE xsane.well_known.scanMODE
+
+ - added option in prefences/setup saving options: save device preferences at exit
+
+ - now using always gdk_window_get_root_origin() to get a position of a window on desktop
+
+
+xsane-0.73 -> 0.74:
+-------------------
+
+ - transfering data to gimp plugin now is handled like saving to a special file format.
+ this way it is possibe to support handheld scanners and to get advance of
+ some xsane features like image rotation.
+
+ - corrected mmap() part in xsane-save.c/rotation:
+ data is mmaped with offset pos0, the offset pos0 is removed from pointer calculation
+
+ - changed xsane_enhancement_by_histogram() and xsane_histogram_to_gamma(): the ranges
+ for gamma, brightness and contrast are checked correct now
+
+ - added function preview_transform_coordinate_window_to_image(), it is used in
+ preview_get_color(). Pipette functions do work with rotated preview now.
+
+ - corrected bug in ruler calculation. The rulers do work correct now with rotated preview
+
+ - corrected bug in reading 16 bit preview data: sizeof(buf16)-> sizeof(buf)
+ now preview transformation from 16 to 8 bit is as fast as 8 bit preview
+
+ - preset areas are defined with position (new) and size (old) now.
+
+ - surface changes (size and rotation) do not change the selected preview area
+ any more if possible
+
+
+xsane-0.74 -> 0.75:
+-------------------
+
+ - xsane_read_image_data() does reduce 16 bit images to 8 bit when necessary/requested
+
+ - when scanning with 16 bits/color in gimp mode, to jpeg-file or postscript-file
+ xsane does ask if the image should be reduced to 8 bits/color
+
+ - added functions for mirroring preview and mirroring while rotating scan
+
+ - moved saving device preferences from xsane_quit() to xsane_scan_win_delete()
+ and replaced call to xsane_quit() by xsane_exit() in choose_device dialog
+ (this could cause a segfault).
+
+ - corrected a bug in calculation of histogram for rotation of 270 degree
+
+ - added xsane_bound_int(&mid, min, max) to xsane_calculate_auto_enhancement()
+ a segfault could occur when autoenhancement was activated when only a few
+ preview-pixels where available for calculation of autoenhancement values
+
+
+xsane-0.75 -> 0.76:
+-------------------
+
+ - rotoation routine: mmap does map the full image file (not only from pos0)
+
+ - added xsane.depth, it stores the depth of the scanned image,
+ it may differ from xsane.param.depth when lineart is converted to grayscale
+ or 16 bit image is reduced to 8 bit
+
+ - preview: preset_area list is read from xsane.rc
+
+ - added context menu to preview preset_area menu, the preset areas can
+ be changed by user now
+
+ - transformation 16->8 bits/color: replaced val/256 by val >> 8,
+ a user said that his compiler is too stupid for such an optimization
+
+ - updated translations: cs, de, fr, ja, sv
+
+ - calibration image is not rotated any more
+
+ - corrected exposure event handling (drawing of the selection frame)
+
+ - added call of preview_restore_image() at the beginning of preview_update_surface().
+ This way the correct image parameters are used for the calculation in
+ preview_update_surface(). preview_restore_image() does not paint the image any
+ more, this is done at the end of preview_update_surface() now.
+
+ - corrected bug in xsane_calculate_histogram() with zoomed and rotated preview
+ with angels 90 and 270 degree.
+
+ - info dialog does print sane version as #.#.# (instead of #.#) again.
+ sane-dll will return the version of the sane package from sane-1.0.5
+ so it is possible to find out the used library version in most cases.
+
+ - xsane-scan.c: scan data is not written with fwrite() in 1 byte steps
+ any more because it looks like some systems (at least HP 9000/B1000
+ (processor PA8500/300 MHz, 384 MB RAM) operating system HP-UX 10.20)
+ have problems with this. The data is stored in the read buffer when
+ any transformation (gamma, 16->8 bit) is needed, the complete
+ buffer that is read with sane_read is written in one part.
+
+ - added xsane.spec - created by Sebastian Wenzler <wenzler@techie.com>
+
+ - autoselection of scanarea is not done for startimage
+
+ - preview image files (level 0-2) are removed and recreated when
+ the temporary directory is changed in the saving setup
+ (Preview scan has to be reacquried after changing the temporary directory)
+
+ - directory selection dialogs (change working directory and select temporary directory)
+ do not display filelist and delete-file widgets.
+
+ - xsane-preview.c and xsane-gamma.c:
+ - raw preview data is stored with 16 bits/color
+ - gamma correction is done with (8-16) bit to 8 bit enhanced data
+ the gamma input bits is set to 12 (but could be changed if we
+ add a widget that can change this value)
+ 12 bit = 4096 values for each gamma table, this is a good
+ compromise between image quality, speed and memory usage
+ - All this slows down gamma and histogram routines, because of this
+ I accelerated these routines again:
+ - replaced field indexes by optimized pointer routines
+ - preview_motion_event_handler improved: continuous mode does use
+ a timer function now. this way the selection has a higher priority
+ than displaying the histograms.
+ - the raw histogram is only recalculated and displayed when it has been changed.
+
+ - improved event handling of the histogram sliders:
+ when continuous mode is active xsane_enhancement_by_histogram() is not called
+ directly any more, it is called via the xsane_slider_hold_event handler now
+
+ - split setup notebook "saving options" into "saving options" and "image options"
+
+ - added option "reduce 16 bit image to 8 bit" to setup/image options
+ This way you can use the preview with the full bit depth the scanner
+ can output and save it as image with 8 bits/color.
+ This is interesting e.g. when you scan slides or negatives.
+
+ - changed ouput in parameter box from "width x height (size unit)" to
+ "witdh x height x depth (size unit)"
+
+ - filetype menu is displayed correct now when xsane main window is rebuild
+
+ - removed a bug in aclocal.m4 wehn gimp was not found
+
+
+xsane-0.76 -> 0.77:
+-------------------
+
+ - removed "+0.5" in calculation of gamma table. A gamma value of 1.000 does
+ not change the image data any more
+
+ - xsane_update_gamma_curve(TRUE /* update raw */); is called when setup dialog is closed
+ (apply and cancel), now the preview is displayed with correct gamma values when setup
+ dialog is closed.
+
+ - configure does set gtk parameters correct when compiling gimp testprogram failed
+
+ - xsane internal gamma tables for scanning are created after sane_start is called,
+ this makes sure that the gamma table size calculated with param.depth really is correct
+
+ - setup uses selected length unit
+
+ - length unit is printed in top left edge between rulers in preview window
+
+ - when length unit is saved as inch the length unit submenu "in" now is selected at program start
+
+ - removed xsane.spec because I got a mail that it does not produce working installations
+
+ - length unit also can be selected now when backend length unit is pixel, so it
+ is possible to change the length unit of the setup window
+
+ - save device preferneces dialog is opened when user closes setup dialog and any
+ device options have been changed
+
+ - replaced all fprintf(stderr, ... by DBG(...
+
+ - updated translations: cs, de, fr, ja, sv, tr
+
+
+xsane-0.77 -> 0.78:
+-------------------
+
+ - when the backend defines a new scanner surface it is updated correct now
+ when the reduced preview surface does not limit the new surface
+ (added expand_surface to preview_update_surface()
+
+ - preview scan is aborted when backend sends more image data than expected,
+ the preview image is saved in this case
+
+ - the preview image is saved now when the preview scan is canceld, so the
+ already scanned part of the preview keeps visible
+
+ - when two preview levels have comparable quality it is used the preview
+ that is more up to date (scanned later)
+
+ - applied sanei_wire.c patches from sane-backends-1.0.5 to xsane-rc-io.c
+
+ - changed default values: histogram, and standard options windows are visible by default now
+
+ - added function (pirate icon) to delete preview image cache
+
+ - added mail project dialog
+
+ - added mail setup dialog
+
+ - added routines for sending images by mail (base64encoding, mail headers, smtp headers)
+
+
+xsane-0.78 -> 0.79:
+-------------------
+
+ - added test for lstat in configure/configure.in/config.h.in
+
+ - when lstat is available it is used for testing netscape lock file,
+ otherwise stat is used
+
+ - changed order of include lines in xsane-save.c
+
+ - for OS/2: in xsane_back_gtk_make_path() a colon ":" is replacte by "_"
+
+ - changed last argument of xsane_back_gtk_set_tooltip from char to gchar
+
+ - added function xsane_widget_test_uposition(GtkWidget *gtk_window)
+ that does test if gdk_window_get_deskrelative_origin or
+ gdk_window_get_root_origin gives the correct positions.
+ test is done with "scanning for devices" window.
+
+ - in xsane.c changed #if 1 to #ifdef BUGGY_GTK_TOOLTIPS_SET_COLORS
+
+ - split preview_increment_image_y in ... and preview_test_image_y,
+ test is called before a byte is copied into the buffer
+
+ - xsane-preview.c: preview_scan_start: preview image memory is only cleaned for
+ single pass mode and 1 pass of 3 pass mode (3 pass preview does work again)
+
+ - mail is sent in subprocess
+
+ - added "MIME-Version: 1.0" to mail header
+
+ - added mail status in mailfile, error messages while sending are stored in this file too
+
+ - aclocal.m4 test for gimp: moved saving of GTK_* to beginning of routine,
+ the GTK_* things should be set correct now when gimp-config is not found
+
+ - xsane.h: mail is deactivated when png is not available
+
+ - added preferences menu item "Medium":
+ The highlight/shadow/gamma values are defined to the intensity range
+ of the selected medium (e.g. agfa negative).
+ If possible the analog highlight/shadow function is used,
+ if not then the scanner internal digital gamma table is used
+ in bot then xsane´s internal gamma correction is used.
+ When the correct medium is selected it only is necessary to
+ do "soft" color corrections. Because of this the 400% values
+ in brightness/contrast have been reduced to 100% values now.
+ This is a typically range that e.g. also is used by the gimp.
+ If someone needs the larger ranges, change the following definitions
+ in sane.h:
+ #define XSANE_BRIGHTNESS_MIN -100.0
+ #define XSANE_BRIGHTNESS_MAX 100.0
+ #define XSANE_CONTRAST_GRAY_MIN -100.0
+ #define XSANE_CONTRAST_MIN -100.0
+ #define XSANE_CONTRAST_MAX 100.0
+
+ - moved call xsane_update_counter_in_filename as correction for counter length from
+ xsane_start_scan to xsane_scan_dialog (before open command), this way the
+ counter also is correct when the file is not transformed (pnm).
+
+ - corrected xsane_update_counter_in_filename: removed some pointer bugs when skipping
+ exisiting filenames
+
+ - added test for os2.h to configure/configure.in
+
+ - added set_gimp_PLUG_IN_INFO(&PLUG_IN_INFO); for os2
+
+ - removed "+0.5" in calculation of negative preview gamma table. A gamma value of 1.000 does
+ not change the image data any more
+
+ - effective user id is set to real user id in all subprocesses
+
+ - cancel preview does now only call sane_cancel and tests for SANE_STATUS_CANCELLED while
+ reading image data.
+
+
+xsane-0.79 -> 0.80:
+-------------------
+
+ - moved setting of medium gamma correction values from xsane_set_medium_callback in xsane.c
+ to xsane_set_medium in xsane-gamma.c
+
+ - xsane_set_medium is called in xsane_scan_dialog and in preview_scan
+
+ - replaced predefined areas 10x14 cm and 14x10 cm by 10x15 cm and 15x10 cm
+
+ - updated documentation (partly)
+
+ - correcting image height when canceling conversion to jpeg format,
+ program does not crash any more
+
+ - added russian translation - thanks to John Profic <profic@lrn.ru>
+
+ - solved problem with lineart image saved as png (wrong byte width)
+
+ - moved medium selection menue from preferences menu to xsane main dialog
+
+ - inactive backend options are not saved to the device-rc file
+
+ - added progress_bar to the paramter list of xsane_save_*
+
+ - added xsane-viewer.c and xsane-viewer.h to the src directory
+
+ - added fflush(outfile); to end of rotation routine, this seems to
+ solve a problem of incomplete files when rotating the image file
+
+ - added routine xsane_read_pnm_header to get correct header offset
+ and read geometrie values
+
+ - for saving routines now the header offset and geometrie values of
+ xsane_load_pnm_header are used instead of xsane´s internal values
+
+ - changed handling of color identification:
+ old: xsane_color == 0 => grayscale/lineart
+ new: xsane_colors == 1 => grayscale/lineart
+
+ - when image is saved as postscript file (not copy mode etc)
+ then the bounding box exactly surrounds the image now.
+ Removed psfile parts from setup and preferences.
+
+ - xsane_widget_test_uposition(gtk_window) does wait now until
+ gtk_window is realized before gtk_widget_set/get_uposition
+ test is done
+
+ - for hpux added include of alloca.h to sane.h
+
+ - added function xsane_debug_message that is used for DBG when
+ gcc is not used because defines with variable arguments is
+ not ANSI.
+
+ - updated translations: cs, de, fr, ja, ru, tr
+
+
+xsane-0.80 -> 0.81:
+-------------------
+
+ - xsane-gamma.c:
+ void xsane_calculate_raw_histogram(void): changed "maxval_raw = 0;" to "... = 1;"
+ void xsane_calculate_enh_histogram(void): changed "maxval_enh = 0;" to "... = 1;"
+ this avoids a floating point exception on some systems
+
+ - xsane-viewer.c: set default viewer size from 400, 400 to
+ 0.3 * screen_width, 0.5 * screen height
+
+ - xsane-save.c: xsane_save_rotate_image() swaps x and y resolution when
+ rotation 90 or 270 degree
+
+ - removed slash at end of mkdir("~/.sane/xsane/"), OS/2 did not like this
+
+ - when temporary direcotry is not defined (xsane.rc does not exist)
+ then xsane at first tries to read the environment variable
+ defined by ENVIRONMENT_TEMP_DIR_NAME (default TMP) and if that
+ does not exist it uses a predefined (TEMP_PATH) path.
+ When xsane.rc does exist the temporary directory stored in xsane.rc is used.
+
+ - added blur and despeckle selction dialog to select filter radius
+
+ - changed viewer and preview window type from GTK_WINDOW_DIALOG to GTK_WINDOW_TOPLEVEL
+
+ - preview gamma does not have any effect to the enhanced histogram any more
+
+ - preview does medium gamma correction now when scanner does not support
+ gamma tables
+
+ - medium selection is disabled for lineart mode, gamma table is set to default
+ in this case. This guarantees that advanced lineart preview (by grayscale scan)
+ does work conform to the real scan.
+
+ - default resolution set to 72 dpi (if no resolution is defined by backend)
+
+ - added scanning/valid/incomplete/invalid pixmap to preview action area
+
+ - preview cancel does call preview_get_image_data after canceling the
+ scan, this makes sure that xsane does detect a cancled scan when
+ gdk_input does not detect closing the select_fd (what happens when
+ the backend does close the select_fd too early (what is allowed by
+ the sane standard))
+
+ - scan cancel does make sure that xsane_read_image_data is run
+ after sane_cancel is called
+
+ - added SIGTERM handler: xsane_quit() is called on SIGTERM
+
+ - when faxproject/xsane-fax-list can not be created an error
+ message is printed and the creation of the project is aborted
+
+ - in saving mode temporary conversion file is removed after conversion
+
+ - corrected wrong filenames while saving mail image after scanning
+
+ - added ocr function to viewer
+
+
+xsane-0.81 -> 0.82:
+-------------------
+
+ - number of medium items and area definitions is calculated by size of the
+ structure now.
+
+ - Improved security of temporary file handling:
+ - replaced mktemp() my mkstemp() in xsane_back_gtk_make_path.
+ The filename format changed because mkstemp creates the file
+ and so it is not possible to add an extension and the file
+ has to end with "XXXXXX" what is replaced by the safe random number
+ generated by mkstemp.
+
+ - before creating the image filename in xsane-scan.c the filename
+ is removed only if the created file is not a temporary file.
+
+ - removed remove() in xsane_save_image_as_lineart()
+
+ - added routine xsane_create_secure_file() that makes sure that the created
+ file does not follow a symlink
+
+
+ - when an error occurs while saving a file or the saving is aborted then
+ the created image is removed
+
+ - swaped order of opening inputfile and outputfile (outputfile now first) in
+ xsane_save_image_as_lineart()
+
+ - viewer_save_callback(): several changes for saving as lineart
+
+ - moved xsane_update_histogram() at end of xsane_update_gamma_curve()
+ into if (xsane.preview) block - this avoids segfault on some systems
+
+ - despeckle radius and blur radius dialogs are closed before routine is started
+
+ - removed bug in despeckle routine
+
+ - increased speed of despeckle routine by about factor 6
+
+ - changed despeckle radius range from 1-9 to 2-10
+
+ - changed blur radius range from 1-9 to 2-20
+
+ - routines xsane_draw_histogram_with_*() do not have parameter "int invert" any more,
+ the inversion already is done in the medium dependant histogram of the preview.
+
+ - added image scaling routine to viewer
+
+ - added spanish translation (es.po) - thanks to
+ Gustavo D. Vranjes <gvranjes@abaconet.com.ar>
+
+ - added dutch translation (nl.po) - thanks to
+ "Wim Sinke" <sinke@wirehub.nl>
+
+
+xsane-0.82 -> 0.83:
+-------------------
+
+ - scaling image size does work for 16 bit images now
+
+ - xsane_create_secure_file() now always removes the file (not only if it is a link),
+ this is needed because open(..., O_EXCL) does fail when the file exists (what can
+ happend when we want to overwrite an existing file).
+
+ - removed buggy ";" at end of if statement in xsane_enhancement_negative_callback
+
+ - default mode is viewer instead of saving mode
+
+ - updated po-files: nl
+
+ - xsane-front-gtk.c: void xsane_progress_cancel(GtkWidget *widget, gpointer data)
+ changed GtkSignalFunc callback = (GtkSignalFunc) data; to
+ GtkFunction callback = (GtkFunction) data;
+
+ - added media, experimentally determined values with UMAX Powerlook3:
+ Agfa XRG 200-4
+ Agfa HDC 100
+ Konica VX 100
+ Rossmann HR 100
+
+ - preview.c: preview_update_surface calls preview_update_selection at first to
+ make sure that the preview selection is up to date. Now xsane comes up with
+ the saved area selection when e.g. transparency mode is stored which forces
+ a change of the surface
+
+ - removed parameter negative from xsane_calculate_auto_enhancement,
+ autoenhancement does work again when negative button is pressed
+
+ - added mode "--Medium-definition"/"-M":
+ - preview is done without scanner gamma correction for medium
+ - added two icons to the main dialog: medium new and medium delete
+
+ - added xsanedocdir to doc/Makefile.in and src/Makefile.in
+ the path is used by xsane.c and the mentioned Makefiles
+
+ - removed in xsane-viewer.c, line 222: xsane_create_secure_file(outputfilename) before
+ xsane_save_image_as(...)
+
+
+xsane-0.83 -> 0.84:
+-------------------
+
+ - if xsane-license.txt is not file when it shall be displayed then xsane does
+ print an error message and behaves like when the user did not accept the license.
+
+ - if xsane-startimage.pnm is not found then an image of the size 1x1 pixel is
+ created instead. This should normally never happen but some people start
+ xsane without that it has been installed. Then the behaviour of the preview
+ has been undefined before.
+
+ - removed "rm -f $cache_file" when gtk or sane was not found in configure.in,
+ this was bad when a user used a global cache file
+
+ - viewer is created with image size - if possible
+
+ - added serbian translation file (sr.po) - thanks to Duško Rusmir <drusmir@gmx.ch>
+
+ - xsane_sigpipe_handler: changed
+ xsane_cancel_save(0);
+ to
+ xsane_cancel_save(&xsane.cancel_save);
+
+ - updated po-files: es, fr, ja, nl, ru, sr, tr
+
+ - x and y resolution information are added to jpeg and png files now
+
+ - preview zoom buttons are now also available when backend does geometry
+ options with unit pixel
+
+ - added Plustek logo
+
diff --git a/xsane.IMAGE b/xsane.IMAGE
deleted file mode 100644
index c730fbb..0000000
--- a/xsane.IMAGE
+++ /dev/null
@@ -1,4 +0,0 @@
-The SANE/XSANE-Image is the winner of the Gimp-Contest in December 1998.
-It has been created by Stefan Kamphausen <kampi@physik3.gwdg.de>
-
-The image is placed in SANE_DATA_DIR/sane/ = /usr/local/share/sane
diff --git a/xsane.INSTALL b/xsane.INSTALL
index 3bee8dc..c5e7446 100644
--- a/xsane.INSTALL
+++ b/xsane.INSTALL
@@ -1,18 +1,20 @@
REQUIREMENTS:
-------------
-- You need sane-1.0 or newer installed!
+- You need sane-1.0 or newer (since sane-1.0.4: sane-backends-1.0.4 or newer) installed!
If you installed sane from an rpm binary, you also have to install sane-devel.rpm !!!
Pay attention the sane-rpm and sane-devel-rpm are of the same version.
Sane-0.xx is NOT SUPPORTED!
-- You need gtk+-1.2.x and suitable glib-1.2.x
+- You need gtk+-1.2.x and suitable glib-1.2.x (I suggest to use gtk+-1.2.5 or newer).
+ If you install it as rpm you also may need the suitable *-devel Packages.
- For png support you need libz and libpng installed!
- For jpeg support you need jpeglib installed!
- For tiff support you need libtiff installed!
-- gcc (tested with gcc-v2.7.2.3), don`t use g++/c++ compilers,
- the egcs compiler sometimes makes problems!!!
+- gcc (tested with gcc-v2.7.2.3 and 2.95.2), don`t use g++/c++ compilers,
+ - the egcs compiler sometimes makes problems!!!
+ - the redhat gcc 2.96 is not an offical gcc version, it is known to make problems
+ with sane & xsane.
- To run xsane as gimp plugin: gimp has to be installed before configuring and
- compiling xsane. Use gimp-1.0.4 or above. Take care that gimp-1.1.x are
- development versions, gimp-1.1.3 does work, gimp-1.1.4 does not work!
+ compiling xsane. If you install it as rpm you also may need a gimp-devel package.
COMPILATION AND INSTALLATION:
@@ -21,28 +23,32 @@ DO THE FOLLOWING AS NORMAL USER, NOT AS ROOT:
- Unpack the xsane archiv in a directory of your choice.
- Enter xsane-0.xx directory.
- To compile call ./configure and make.
- - If you use kwm (KDE window manager), call configure with environment
- variable CPPFLAGS set to
- "-DXSANE_BUGGY_WINDOWMANAGER_WINDOW_POSITION".
- - When you already called ./configure it may be good to do a
- make distclean
- before you call ./configure again.
- If that does not work, remove config.cache:
- rm -f config.cache
-
-DO THE FOLLOWING AS ROOT:
+- When you already called ./configure it may be good to do a
+ make distclean
+ before you call ./configure again.
+ If that does not work, remove config.cache:
+ rm -f config.cache
+
+THE FOLLOWING POSSIBLY HAS TO BE DONE AS ROOT:
- Call make install
DO THE FOLLOWING AS NORMAL USER:
- Call xsane.
-- If you get an error message that libsane-dll.so.1 is not found, you have to
+- If you get an error message that libsane-dll.so.1 or libsane-so.1 is not found, you have to
tell your system where the SANE-libraries are installed.
- For linux: edit /etc/ld.so.conf and add a line with the path to the
- libraries (normally /usr/local/lib/sane), then call ldconfig.
- THIS MUST BE DONE AS ROOT!
- If you use a SuSE linux, you may have to edit /etc/ld.so.conf.in instead and call
- SuSEconfig instead of ldconfig.
+ - On some systems the library directory "/usr/local/lib" is not searched by the
+ system´s dynamic library loader. If SANE is installed in "/usr/local/..."
+ you have to tell your systems dynamic library loader to search in "/usr/local/lib".
+ For linux: add the path "/usr/local/lib" to /etc/ld.so.conf and call ldconfig (as root).
+ In this case also make sure that /usr/local/bin is in your path!
+ - For sane-1.0.1 you have to add a line with the path to the SANE libraries
+ (normally /usr/local/lib/sane) to /etc/ld.so.conf and call ldconfig (as root).
+ For sane-1.0.2 (and later versions) the path to the SANE libs (normally /usr/local/lib/sane)
+ MUST NOT be listed in /etc/ld.so.conf (don`t mix it with the path /usr/local/lib that
+ has to be listed in /etc/ld.so.conf)
If something does not work like expected read file xsane.PROBLEMS
+DO NOT RUN XSANE AS ROOT!
+
diff --git a/xsane.LANGUAGES b/xsane.LANGUAGES
index c77db9e..87add6c 100644
--- a/xsane.LANGUAGES
+++ b/xsane.LANGUAGES
@@ -1,6 +1,6 @@
Since version 0.36 xsane supports NLS, you can add a translation
file for your language now. If you want to add a new language to
-xsane please read the file po/README.ADD_NEW_LANGUAGE!
+xsane please read the file po/README
Backend text translation is done by an own translation table for the
backend sane-"backendname".mo that has to be made available by the backend!
@@ -9,6 +9,10 @@ To select your language, set environment variable LANG to the
abbreviation of your language, eg:
export LANG=de
+on some systems this must be specified this way:
+export LANG=german
+or
+export LANG=de_DE
Oliver Rauch
diff --git a/xsane.LOGO b/xsane.LOGO
new file mode 100644
index 0000000..be7492e
--- /dev/null
+++ b/xsane.LOGO
@@ -0,0 +1,7 @@
+The SANE/XSANE-Logo is the winner of the Gimp-Contest in December 1998.
+It has been created by Stefan Kamphausen <mail@skamphausen.de>
+
+The icon (xsane.xpm) (reduced size) of the logo has been created by
+Arcady Genkin <antipode@thpoon.com>.
+
+The image is placed in SANE_DATA_DIR/sane/ = /usr/local/share/sane
diff --git a/xsane.NEWS b/xsane.NEWS
index 228e219..15291f2 100644
--- a/xsane.NEWS
+++ b/xsane.NEWS
@@ -1,19 +1,14 @@
NEWS:
-****************************************************************
-* *
-* xsane-0.49: *
-* The format of the xsane.rc file has changed: the printer *
-* geometry values are saved in mm instead of 1/72 inch now. *
-* Use xsane-convert-to-0.49 to convert xsane.rc BEFORE you *
-* start xsane! *
-* To compile it call *
-* make xsane-convert-to-0.49 *
-* *
-****************************************************************
+ no special you have to care about to get xsane to work.
+ Read xsane.CHANGES if you are interested in details of
+ what has changed.
- if you update from a version before xsane-0.48 please
- read xsane.OLDER_NEWS
+ If you experience any problems after you upgraded xsane
+ it may help to remove the setup and preferences files
+ of xsane:
+
+ rm -rf ~/.sane/xsane
diff --git a/xsane.OLDER_NEWS b/xsane.OLDER_NEWS
deleted file mode 100644
index 08c291d..0000000
--- a/xsane.OLDER_NEWS
+++ /dev/null
@@ -1,19 +0,0 @@
-----------------------------------------------------------------
- OLDER NEWS:
-
- xsane-0.48:
- If you use KDE (kwm), call configure with environment
- variable CPPFLAGS set to
- "-DXSANE_BUGGY_WINDOWMANAGER_WINDOW_POSITION"
-
-
- xsane-0.46:
- The format of the *.drc files has changed from xsane-0.45 to
- xsane-0.46. Use xsane-convert-to-0.46 to convert the files
- ~/.sane/xsane/*.drc BEFORE you start xsane!
-
- To compile it call
- make xsane-convert-to-0.46
-
-----------------------------------------------------------------
-
diff --git a/xsane.PROBLEMS b/xsane.PROBLEMS
index 65e56e7..d3a7c04 100644
--- a/xsane.PROBLEMS
+++ b/xsane.PROBLEMS
@@ -1,21 +1,63 @@
READ THIS FILE IF YOU EXPERIENCE ANY PROBLEM
- - If you get segmentation faults or unexpected problems:
+ - there is a html documentation for xsane.
+ If you have problems compiling xsane call
+ netscape xsane-0.??/doc/sane-xsane-doc.html
+
+ If you can start xsane you can open the online helpfile via the menu
+ help->XSane doc
+
+ - If you get segmentation faults or unexpected problems (device not found):
- make sure there is only one sane version installed before
you compile xsane
(try as root: $find / -name "*sane*" | less)
- - If you compiled xsane/gtk/glib with the egcs compiler try
- recompiling all with the "normal" gcc compiler (test with gcc -v)!
-
- - If you get an error message that libsane-dll.so.1 is not found, you have to
- tell your system where the SANE-libraries are installed.
- For linux: edit /etc/ld.so.conf and add a line with the path to the
- libraries (normally /usr/local/lib/sane), then call ldconfig.
- THIS MUST BE DONE A ROOT!
- If you use a SuSE linux, edit /etc/ld.so.conf.in instead and call
- SuSEconfig instead of ldconfig.
-
- - The online-help-viewer is now selectable.
+ *** !!! ABOUT 50% OF ALL PROBLEM REPORTS I GET ARE CAUSED !!! ***
+ *** !!! BY MULTIPLE SANE VERSIONS INSTALLED !!! ***
+ - If you used an earlier version of xsane before remove the configuration
+ directory: rm -rf ~/.sane/xsane
+ (you have to enter all configurations again afterwards).
+ - make sure there is only one gtk-config and only one gimp-config
+ file on your system (find / -name "g*-config") or set path to
+ the correct one (./configure --help)
+ - Do not install any self compiled source package over binary packages,
+ in most cases the installation paths are different so the old versions
+ are not overwritten and you may have two versions installed!
+
+- If you get an error message that libsane-dll.so.1 or libsane-so.1 is not found, you have to
+ tell your system where the SANE-libraries are installed.
+ - On some systems the library directory "/usr/local/lib" is not searched by
+ the systems dynamic library loader. If SANE is installed in
+ "/usr/local/..." you have to tell your systems dynamic library loader to
+ search in "/usr/local/lib". For linux: add the path "/usr/local/lib" to
+ /etc/ld.so.conf and call ldconfig (as root).
+ - For sane-1.0.1 you have to add a line with the path to the SANE libraries
+ (normally /usr/local/lib/sane) to /etc/ld.so.conf and call ldconfig (as
+ root). For sane-1.0.2 (and later versions) the path to the SANE libs
+ (normally /usr/local/lib/sane) MUST NOT be listed in /etc/ld.so.conf.
+ (don`t mix it with /usr/local/lib that has to be listed in /etc/ld.so.conf).
+ - If all that does not help, make sure that /usr/local/lib/libsane.so.* are symbolic
+ links to /usr/local/lib/sane/libsane-dll.so.* or ./sane/libsane-dll.so.*
+
+ short explaination:
+ xsane does not search itself for the library libsane.so, that is done by the
+ dynamic library loader of your system.
+ For linux: Edit /etc/ld.so.conf and call ldconfig to tell your
+ dynamic library loader where it shall search for dlls.
+ On other systems this is configured in other ways. Some systems use the
+ environment variable LD_LIBRARY_PATH for additional search paths.
+
+ When sane is installed in "/usr/local/....."
+ the libraries are placed in "/usr/local/lib/sane/".
+ The path "/usr/local/lib" has to be listed in /etc/ld.so.conf
+ (call ldconfig after changing that file).
+ In /usr/local/lib there are some links "libsane.so*" that point
+ to the subdirectory ./sane to the fitting files "libsane-dll.so*".
+
+ The libraries that are placed in ..../lib/sane are not accessed by the
+ system´s dynamic library loader also not by xsane directly. These libraries
+ are loaded by sane´s dynamic library loader (sane-dll).
+
+ - The online-help-viewer is selectable.
If you use kde you can enter kdehelp in setup/display.
Preselected is netscape with usage of remote commands.
@@ -34,31 +76,30 @@ READ THIS FILE IF YOU EXPERIENCE ANY PROBLEM
/usr/lib/libgimp.so: undefined reference to `g_message'
/usr/lib/libgimp.so: undefined reference to `g_warning'
/usr/lib/libgimp.so: undefined reference to `g_error'
- update to gimp-1.0.4 or newer!
+ update to gimp-1.0.4 or newer! I suggest to use gimp-1.2.0 or newer.
- If the compilation aborts with
- sanei_wire.c:49: sane/sane.h: No such file or directory
+ ...: sane/sane.h: No such file or directory
you did not install sane-devel.rpm! Get sane-devel.rpm from
the site you got sane.rpm and install it!
- If make aborts with missing library "-lintl" try
make distclean
./configure --with-included-gettext
-
- - If configure does not find libsane, try
- ./configure --enable-intl-patch
+ or
+ ./configure --disable-nls
- If gtk+ is compiled with NLS/gettext, you have to use the same
- gettext version. So if gtk+ is compiled with gettext in libc
+ gettext version for xsane. So if gtk+ is compiled with gettext in libc
do NOT compile xsane with included gettext!
Otherwise gtk will crash when gtk texts shall be translated.
+ - If you have any problems with gtk/gdk/gimp, please call print-libs.
+ It prints all libs/includes etc. that are relevant for xsane.
+ Make sure that you do not have installed more than one version of
+ each lib!
+
- If you are running BSD and gtk-config is not in your path or is
- named-gtk?.?-config, make sure environment variable GTK_CONFIG
+ named gtk?.?-config, make sure environment variable GTK_CONFIG
is set with full path to the config file that shall be used
- - If you get a segmentation fault when opening the preview (or histogram)
- window and your system is IRIX, make sure the default visual is 24-bit
- (edit /usr/lib/X11/xdm/Xservers)
-
-
diff --git a/xsane.REMOVE b/xsane.REMOVE
new file mode 100644
index 0000000..7336428
--- /dev/null
+++ b/xsane.REMOVE
@@ -0,0 +1,36 @@
+To remove sane or xsane:
+
+if sane is installed in /usr/:
+ rm -rf /usr/lib/sane
+ rm -rf /usr/lib/libsane*
+ rm -rf /usr/include/sane
+ rm -rf /usr/etc/sane.d
+ rm -rf /usr/share/sane*
+ rm -rf /usr/bin/scanimage
+ rm -rf /usr/bin/xscanimage
+
+if sane is installed in /usr/local/:
+ rm -rf /usr/local/lib/sane
+ rm -rf /usr/local/lib/libsane*
+ rm -rf /usr/local/include/sane
+ rm -rf /usr/local/etc/sane.d
+ rm -rf /usr/local/share/sane*
+ rm -rf /usr/local/bin/scanimage
+ rm -rf /usr/local/bin/xscanimage
+
+
+For xsane in /usr:
+ rm -rf /usr/bin/xsane
+ rm -rf /usr/share/sane/xsane
+
+For xsane in /usr/local
+ rm -rf /usr/local/bin/xsane
+ rm -rf /usr/local/share/sane/xsane
+
+xsane also installs translation tables for different languages,
+the path is different on different systems, but
+find / -name "xsane.mo"
+should list the directories and in these directories
+there also could be sane-umax.mo and sane-pnm.mo
+
+Oliver Rauch
diff --git a/xsane.ROOT b/xsane.ROOT
new file mode 100644
index 0000000..0ff5825
--- /dev/null
+++ b/xsane.ROOT
@@ -0,0 +1,49 @@
+If you run xsane as root xsane comes up with a warning message at startup.
+Some people asked me to remove this warning, e.g:
+
+Q: "... But there is something I very disagree with: This horrible message when
+ I launch XSane, saying me that I mustn't run XSane as root.
+ If I run as root it's MY problem! Running as root has inconvenience, but
+ has also lots of advantages. Like I am the only user of my conputer I
+ run as root"
+
+A: 1) It does not matter if you are the only user on your system. There still
+ is a big security problem also in this case. When you run XSane as root
+ then XSane has pemission to remove or change any file on your system.
+ XSane is a really complex program and for sure there are still bugs
+ that may cause an unexpected behaviour like removing or writing into
+ files. Imagine what happens when XSane removes your home directory or
+ any important system files. Another issue is that you can accidently
+ remove or change all files on the system using XSane.
+
+ 2) early versions of XSane did not print this message and a lot of people
+ did run XSane as root. This caused a lot of problems and I got a lot of
+ problem reports and please-help-me mails. This took a lot of my time.
+ So it also is my problem when several people run XSane as root.
+
+
+ Please think about your decision to do all you work as root. This really
+ is dangerous. I do not know any professional system adminstrator who works
+ all the time as root. All system administrators work as a normal user
+ and if there is something that has to be done as root, then the admin
+ gets root permission only for this command.
+
+ Please beleve me that these people do know a lot of their machines and that
+ is the reason why they know it is dangerous to work all the time as root.
+
+ Doing a "rm -f *" in the wrong directory can kill your complete system when
+ you run as root. As normal user nothing will happen with a bit luck.
+
+ The decision if you work as root all the time has nothing to do if you are
+ the only user on the system.
+
+
+Q: "But I am using a parallel port scanner and need to be root to access the scanner"
+
+A: It is not necessary that the frontend (xsane) runs as root. The backend (driver) that
+ does access your scanner may need root access. If possible you sould compile your
+ backend with a parallel port library that allows acces as non privileged user.
+ If your backend does not support such a library then you can set up network scanning
+ on your system. Configure saned to run as root. To connect to the scanner connect
+ via the network protocol to localhost, e.g.: xsane net:localhost:epson
+
diff --git a/xsane.RPM b/xsane.RPM
new file mode 100644
index 0000000..7fbc5b8
--- /dev/null
+++ b/xsane.RPM
@@ -0,0 +1,7 @@
+
+anyone who wants to make an rpm should use a script like
+checkinstall (available at http://mayams.net/~izto/checkinstall-en.html )
+
+Thanks to Michael Blaustein <m-blaustein@sjca.edu> for this tip
+
+
diff --git a/xsane.TODO b/xsane.TODO
index dc68ac7..4ffa305 100644
--- a/xsane.TODO
+++ b/xsane.TODO
@@ -1,62 +1,89 @@
This is a list of what I want to change/include for xsane.
-If you have any suggestions: mail to Oliver.Rauch@Wolfsburg.DE
+If you have any suggestions: mail to Oliver.Rauch@rauch-domain.de
-(+ planned to do this soon/higher priority, - comes later/lower priority)
+Sign explaination:
+ # planned for XSane-1.0.0
+ + planned to do this soon/higher priority (but not promised for XSane-1.0)
+ - comes later/lower priority
-errors:
- + autoenhancement crashes if selected area is totally white
- + segfault if pipette pick out of preview image
+ save-function:
+ # filetype ".txt" => call ocr function
-first steps:
- * options:
- - fax-function:
+ copy-function:
+ + select image position on printer (centered/left/right/free) for copy
+
+ fax-function:
+ # use internal viewer to display images
+ # while scanning save image as pnm
+ # convtert all images to one postscript file when sending fax
+ + create lock file, add information while spooling fax
+ + add coverpage with edit like mail function
- add send delayed option
- add options for sender/receiver Name
- - what about faxprojects with mixed normal- and fine-mode pages?
- - zoom ?
- - email-function:
- - based on fax mode
- - image type = ?
- - resolution selectable
- - create a html mail
- - mail editor = ?
- - copy mode:
- + select image position on printer (centered/left/right/free) for copy
- and show it in the preview.
- + selection of portrait/landscape for output
- - scan mode into postscript file:
- - define image position on paper the same way it is done in copy mode
- - add postscript definition to setup and handle it as printer
- like copy mode options:
- - resolution
- - with, height, dx, dy
- - preview:
- + 16 bit preview scan, gamma conversion to 8 bit
- + preview always in greyscale or always in color
+ + zoom ?
+
+ email-function:
+ # use internal viewer to display images
+ # while scanning save image as pnm
+ # convtert image to target format when sending email
+ # add new image types to email fileformat: tiff, jpeg
+
+ gamma function:
+ # add target gamma (e.g. for web publishing)
+ # correct gtk custom gamma functions and include it
+ may be write an own gamma curve widget
+
+ medium selection:
+ - medium definition in dependance of the scanner (?)
+ (I am not sure if this makes sense with color managemant)
+
+ preview function:
- force aspect ratio of selection area
- - force size of selection area
- - add oversampling factor for preview resolution to
- improve zoomed previews without a new scan
- - enhancement:
- - move threshold in lineart-mode to main window ?
- - add grayscale preview scan -> gamma 0/255 -> displayed preview for lineart mode
- + batch scan function
-
- * internal:
- - include much more parameters when saving images
- - test memory after all calls of malloc
- - make better backend-dependend option handling and error handling (mostly done!)
- - other output formats for saving - *** which? ***
- - gif will not be supported because of licence
- - more/better online helpfiles
- - printer setup: geometry in inch/millimeter/centimeter
-
-second steps:
- - correct gtk custom gamma functions and include it
- - include special functions for GNOME/KDE - *** DOES ANYONE HAVE ANY SUGGESTIONS TO THIS ? ***
+ - force size of scanarea in pixels (calculate resolution)
+
+ batch scan function
+ - select multiple scan areas before starting the scan
+
+ viewer function:
+ # add more filters (sharpen?)
+ suggestions? - ONLY REALLY IMPORTANT FILTERS,
+ FOR OTHER IMAGE MANIPULATION THERE IS THE GIMP
+ # crop
+ # what about automatic increase of filename counter???
+ this is not simple because there may be several
+ viewers opend at the same time
+
+ internal:
+ + add color management - may be via xcmsdb or scarse (www.scarse.org)
+ (not until xsane-1.0 I think)
+ - average of a multiple scan of the same image
+ + add range check / valid value when reading xsane.rc/*.drc files
+ + add several defaults (fax=> mode=gray,...)
+ - include much more parameters when saving images
+ + test memory after each call of malloc - partly done
+ - more/better online helpfiles (mostly done)
+ - added infrared filter for transmisse rgbi scans:
+ use next neighbour with high transmission(i) value
+ (may be to viewer)
+
+ include special functions for GNOME/KDE
+ *** DOES ANYONE HAVE ANY SUGGESTIONS TO THIS ? ***
- GNOME:
- gnome-print support?
- - session management
+ - session management ?
- drag and drop for preview image?
- + add color management - may be via xcmsdb
+ - other drag and drop functions?
+
+ TWAIN:
+ - add a twain-win32 interface (for xsane-win32)
+ - define a twain-unix interface in cooperation with TWAIN-group
+ (first contact to TWAIN in summer 1999, TWAIN is intersted in
+ creating a TWAIN-unix interface that uses sane as scanner driver API
+ - add a twain-unix interface to xsane
+
+ WIN32 version of xsane/sane
+ + make internationalization work (looks like a charset problem)
+ - may be xsane-win32 without cygwin.dll on native win32 mode
+ - may be later we make a sane-WIN32 version so that the backends do work too
+
diff --git a/xsane.VENDOR-STRINGS b/xsane.VENDOR-STRINGS
new file mode 100644
index 0000000..5e4cff8
--- /dev/null
+++ b/xsane.VENDOR-STRINGS
@@ -0,0 +1,9 @@
+- sane-*-log.xpm font: utopia bold kursiv 32
+
+- umax backend generates:
+UMAX
+LinoHell
+Nikon
+KYE
+EPSON
+
diff --git a/xsane.WIP b/xsane.WIP
deleted file mode 100644
index df72c82..0000000
--- a/xsane.WIP
+++ /dev/null
@@ -1,4 +0,0 @@
-
-- Added quantization in xsane_resolution_scale_update(GtkAdjustment *adj_data, double *val)
- in xsane-front-gtk.c, this quantisation is not done by gtk, so xsane has to do it.
-
diff --git a/xsane.spec b/xsane.spec
new file mode 100644
index 0000000..79ce06a
--- /dev/null
+++ b/xsane.spec
@@ -0,0 +1,43 @@
+%define name xsane
+%define version 0.84
+%define release 1
+%define prefix /usr
+
+Name: %{name}
+Version: %{version}
+Release: %{release}
+Summary: Xsane is a graphical frontend for the scanner library SANE
+Group: Graphics
+URL: http://www.xsane.org
+Buildroot: /var/tmp/%{name}-buildroot
+Requires: sane
+Source: ftp://ftp.mostang.com/pub/sane/xsane/%{name}-%{version}.tar.gz
+Copyright: GPL
+BuildRequires: gtk+ >= 1.2.0 libsane1-devel >= 1.0.2
+
+%description
+Xsane is a grahical frontend for sane. Install this if you want a grahpical
+frontend for sane for use in the X Windowing System.
+
+%prep
+%setup -q -n %{name}-%{version}
+
+%build
+CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix}
+uname -a | grep -qi SMP && make -j 2 || make
+
+%install
+rm -rf %{buildroot}
+mkdir -p %{buildroot}%{prefix}
+make prefix=%{buildroot}%{prefix} install
+strip %{buildroot}%{prefix}/bin/* || :
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root)
+%doc xsane*
+/usr/share/*
+/usr/bin/xsane
+/usr/man/man1/xsane.1*
diff --git a/xsane.spec.in b/xsane.spec.in
new file mode 100644
index 0000000..a12e97c
--- /dev/null
+++ b/xsane.spec.in
@@ -0,0 +1,43 @@
+%define name xsane
+%define version @VERSION@
+%define release 1
+%define prefix /usr
+
+Name: %{name}
+Version: %{version}
+Release: %{release}
+Summary: Xsane is a graphical frontend for the scanner library SANE
+Group: Graphics
+URL: http://www.xsane.org
+Buildroot: /var/tmp/%{name}-buildroot
+Requires: sane
+Source: ftp://ftp.mostang.com/pub/sane/xsane/%{name}-%{version}.tar.gz
+Copyright: GPL
+BuildRequires: gtk+ >= 1.2.0 libsane1-devel >= 1.0.2
+
+%description
+Xsane is a grahical frontend for sane. Install this if you want a grahpical
+frontend for sane for use in the X Windowing System.
+
+%prep
+%setup -q -n %{name}-%{version}
+
+%build
+CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix}
+uname -a | grep -qi SMP && make -j 2 || make
+
+%install
+rm -rf %{buildroot}
+mkdir -p %{buildroot}%{prefix}
+make prefix=%{buildroot}%{prefix} install
+strip %{buildroot}%{prefix}/bin/* || :
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root)
+%doc xsane*
+/usr/share/*
+/usr/bin/xsane
+/usr/man/man1/xsane.1*