From 9b6356b3990dbab1de12792c4ac2b90a03c9749c Mon Sep 17 00:00:00 2001
From: Luigi Scarso <luigi.scarso@gmail.com>
Date: Mon, 23 Oct 2017 09:28:37 +0000
Subject: [PATCH] sync with experimental

---
 manual/luatex-modifications.tex               |    3 +-
 manual/luatex-tex.tex                         |   16 +-
 manual/luatex.pdf                             |  Bin 1101374 -> 1154955 bytes
 manual/luatex.tex                             |    2 +-
 source/libs/poppler/ChangeLog                 |    8 +
 source/libs/poppler/Makefile.am               |   27 +-
 source/libs/poppler/Makefile.in               |  126 +-
 source/libs/poppler/TLpatches/ChangeLog       |    7 +
 source/libs/poppler/TLpatches/TL-Changes      |    2 +-
 .../TLpatches/patch-03-Object-functions       |   32 +-
 source/libs/poppler/configure                 |   22 +-
 .../libs/poppler/poppler-src/CMakeLists.txt   |   99 +-
 source/libs/poppler/poppler-src/COPYING3      |  674 ++
 source/libs/poppler/poppler-src/ChangeLog     |  858 +++
 source/libs/poppler/poppler-src/INSTALL       |  244 +-
 source/libs/poppler/poppler-src/Makefile.am   |  133 -
 .../poppler/poppler-src/README.contributors   |   21 +
 source/libs/poppler/poppler-src/TODO          |   40 -
 .../libs/poppler/poppler-src/config.h.cmake   |  255 -
 source/libs/poppler/poppler-src/config.h.in   |  290 -
 source/libs/poppler/poppler-src/configure.ac  | 1154 ---
 .../poppler/poppler-src/fofi/FoFiTrueType.cc  |    6 +-
 .../poppler/poppler-src/fofi/FoFiType1C.cc    |  438 +-
 .../libs/poppler/poppler-src/fofi/Makefile.am |   28 -
 .../libs/poppler/poppler-src/goo/GooString.cc |   10 +-
 .../libs/poppler/poppler-src/goo/GooString.h  |    5 +-
 .../poppler/poppler-src/goo/JpegWriter.cc     |    3 +-
 .../libs/poppler/poppler-src/goo/Makefile.am  |   69 -
 source/libs/poppler/poppler-src/goo/glibc.h   |    2 +-
 source/libs/poppler/poppler-src/goo/gmem.h    |    4 +-
 source/libs/poppler/poppler-src/gtk-doc.make  |  305 -
 .../poppler-cairo-uninstalled.pc.in           |    6 -
 .../poppler-src/poppler-cairo.pc.cmake        |    9 -
 .../poppler/poppler-src/poppler-cairo.pc.in   |    9 -
 .../poppler-src/poppler-cpp-uninstalled.pc.in |    7 -
 .../poppler/poppler-src/poppler-cpp.pc.cmake  |   13 -
 .../poppler/poppler-src/poppler-cpp.pc.in     |   13 -
 .../poppler-glib-uninstalled.pc.in            |    7 -
 .../poppler/poppler-src/poppler-glib.pc.cmake |   13 -
 .../poppler/poppler-src/poppler-glib.pc.in    |   13 -
 .../poppler-src/poppler-qt4-uninstalled.pc.in |    7 -
 .../poppler/poppler-src/poppler-qt4.pc.cmake  |   13 -
 .../poppler/poppler-src/poppler-qt4.pc.in     |   13 -
 .../poppler-src/poppler-qt5-uninstalled.pc.in |    7 -
 .../poppler/poppler-src/poppler-qt5.pc.cmake  |   13 -
 .../poppler/poppler-src/poppler-qt5.pc.in     |   13 -
 .../poppler-splash-uninstalled.pc.in          |    7 -
 .../poppler-src/poppler-splash.pc.cmake       |    9 -
 .../poppler/poppler-src/poppler-splash.pc.in  |    9 -
 .../poppler-src/poppler-uninstalled.pc.in     |    6 -
 .../libs/poppler/poppler-src/poppler.pc.cmake |   11 -
 source/libs/poppler/poppler-src/poppler.pc.in |   11 -
 .../libs/poppler/poppler-src/poppler/Annot.cc |   91 +-
 .../libs/poppler/poppler-src/poppler/Array.cc |    8 +-
 .../libs/poppler/poppler-src/poppler/Array.h  |   12 +-
 .../poppler-src/poppler/CairoOutputDev.cc     |   20 +-
 .../poppler-src/poppler/CurlPDFDocBuilder.cc  |    8 +-
 .../poppler/poppler-src/poppler/Decrypt.cc    |    4 +-
 .../libs/poppler/poppler-src/poppler/Dict.cc  |   18 +-
 .../libs/poppler/poppler-src/poppler/Dict.h   |   26 +-
 .../libs/poppler/poppler-src/poppler/Form.cc  |  107 +-
 .../libs/poppler/poppler-src/poppler/Form.h   |   16 +
 .../libs/poppler/poppler-src/poppler/Gfx.cc   |   71 +-
 source/libs/poppler/poppler-src/poppler/Gfx.h |    1 +
 .../poppler/poppler-src/poppler/GfxFont.cc    |   56 +-
 .../poppler/poppler-src/poppler/GfxFont.h     |    1 +
 .../poppler/poppler-src/poppler/GfxState.cc   |   33 +-
 .../poppler/poppler-src/poppler/GfxState.h    |   17 +-
 .../poppler-src/poppler/GlobalParams.cc       |  145 +-
 .../poppler-src/poppler/GlobalParams.h        |   36 -
 .../poppler-src/poppler/GlobalParamsWin.cc    |    2 +-
 .../poppler-src/poppler/JBIG2Stream.cc        |    4 +-
 .../poppler/poppler-src/poppler/Makefile.am   |  348 -
 .../poppler/poppler-src/poppler/Object.cc     |    4 +-
 .../libs/poppler/poppler-src/poppler/Object.h |  152 +-
 .../poppler-src/poppler/PSOutputDev.cc        |   24 +-
 .../poppler/poppler-src/poppler/PSOutputDev.h |    3 +-
 .../poppler-src/poppler/SplashOutputDev.cc    |   14 +-
 .../poppler/poppler-src/poppler/Stream.cc     |    5 +-
 .../libs/poppler/poppler-src/poppler/Stream.h |    2 +-
 .../poppler-src/poppler/StructElement.cc      |   16 +-
 .../poppler-src/poppler/TextOutputDev.cc      |    2 +-
 .../poppler/poppler-src/poppler/UnicodeMap.cc |    4 +-
 .../libs/poppler/poppler-src/poppler/XRef.cc  |    3 +
 .../poppler-src/poppler/poppler-config.h.in   |    8 +-
 .../poppler/poppler-src/splash/Makefile.am    |   73 -
 .../libs/poppler/poppler-src/splash/Splash.cc | 6477 -----------------
 .../libs/poppler/poppler-src/splash/Splash.h  |  431 --
 .../poppler-src/splash/SplashBitmap.cc        |  853 ---
 .../poppler/poppler-src/splash/SplashBitmap.h |  126 -
 .../poppler/poppler-src/splash/SplashClip.cc  |  411 --
 .../poppler/poppler-src/splash/SplashClip.h   |  152 -
 .../poppler-src/splash/SplashErrorCodes.h     |   50 -
 .../poppler-src/splash/SplashFTFont.cc        |  513 --
 .../poppler/poppler-src/splash/SplashFTFont.h |   80 -
 .../poppler-src/splash/SplashFTFontEngine.cc  |  180 -
 .../poppler-src/splash/SplashFTFontEngine.h   |   81 -
 .../poppler-src/splash/SplashFTFontFile.cc    |  148 -
 .../poppler-src/splash/SplashFTFontFile.h     |   86 -
 .../poppler/poppler-src/splash/SplashFont.cc  |  224 -
 .../poppler/poppler-src/splash/SplashFont.h   |  121 -
 .../poppler-src/splash/SplashFontEngine.cc    |  337 -
 .../poppler-src/splash/SplashFontEngine.h     |  110 -
 .../poppler-src/splash/SplashFontFile.cc      |  124 -
 .../poppler-src/splash/SplashFontFile.h       |   95 -
 .../poppler-src/splash/SplashFontFileID.cc    |   23 -
 .../poppler-src/splash/SplashFontFileID.h     |   28 -
 .../poppler-src/splash/SplashGlyphBitmap.h    |   24 -
 .../poppler/poppler-src/splash/SplashMath.h   |  245 -
 .../poppler/poppler-src/splash/SplashPath.cc  |  185 -
 .../poppler/poppler-src/splash/SplashPath.h   |  123 -
 .../poppler-src/splash/SplashPattern.cc       |   55 -
 .../poppler-src/splash/SplashPattern.h        |  104 -
 .../poppler-src/splash/SplashScreen.cc        |  390 -
 .../poppler/poppler-src/splash/SplashScreen.h |   80 -
 .../poppler/poppler-src/splash/SplashState.cc |  272 -
 .../poppler/poppler-src/splash/SplashState.h  |  142 -
 .../poppler-src/splash/SplashT1Font.cc        |  309 -
 .../poppler/poppler-src/splash/SplashT1Font.h |   69 -
 .../poppler-src/splash/SplashT1FontEngine.cc  |  138 -
 .../poppler-src/splash/SplashT1FontEngine.h   |   50 -
 .../poppler-src/splash/SplashT1FontFile.cc    |  134 -
 .../poppler-src/splash/SplashT1FontFile.h     |   70 -
 .../poppler/poppler-src/splash/SplashXPath.cc |  472 --
 .../poppler/poppler-src/splash/SplashXPath.h  |  107 -
 .../poppler-src/splash/SplashXPathScanner.cc  |  544 --
 .../poppler-src/splash/SplashXPathScanner.h   |  108 -
 source/libs/poppler/version.ac                |    2 +-
 source/texk/web2c/luatexdir/font/writefont.w  |    2 +-
 source/texk/web2c/luatexdir/font/writetype2.w |   34 +-
 source/texk/web2c/luatexdir/image/image.h     |    2 +
 source/texk/web2c/luatexdir/image/pdftoepdf.w |   12 +-
 source/texk/web2c/luatexdir/image/writeimg.w  |    5 +-
 .../texk/web2c/luatexdir/image/writejbig2.w   |    2 +-
 source/texk/web2c/luatexdir/image/writejpg.w  |   14 +-
 source/texk/web2c/luatexdir/lua/lpdflib.c     |   21 +
 source/texk/web2c/luatexdir/lua/ltexlib.c     |  141 +-
 source/texk/web2c/luatexdir/luapeg/lpeg.h     |    2 +-
 source/texk/web2c/luatexdir/luatex.c          |    4 +-
 .../texk/web2c/luatexdir/luatex_svnversion.h  |    2 +-
 source/texk/web2c/luatexdir/pdf/pdfgen.h      |    2 +-
 source/texk/web2c/luatexdir/pdf/pdfgen.w      |   74 +-
 source/texk/web2c/luatexdir/pdf/pdftables.h   |    3 +
 source/texk/web2c/luatexdir/pdf/pdftypes.h    |    1 +
 source/texk/web2c/luatexdir/pdf/pdfxform.h    |    4 +-
 source/texk/web2c/luatexdir/pdf/pdfxform.w    |    6 +
 source/texk/web2c/luatexdir/tex/dumpdata.w    |    2 +-
 source/texk/web2c/luatexdir/tex/linebreak.w   |   13 +-
 source/texk/web2c/luatexdir/tex/maincontrol.w |    4 +-
 source/texk/web2c/luatexdir/tex/texnodes.w    |   33 +-
 source/texk/web2c/luatexdir/tex/textoken.w    |    1 +
 151 files changed, 2748 insertions(+), 18335 deletions(-)
 create mode 100644 source/libs/poppler/poppler-src/COPYING3
 delete mode 100644 source/libs/poppler/poppler-src/Makefile.am
 create mode 100644 source/libs/poppler/poppler-src/README.contributors
 delete mode 100644 source/libs/poppler/poppler-src/TODO
 delete mode 100644 source/libs/poppler/poppler-src/config.h.cmake
 delete mode 100644 source/libs/poppler/poppler-src/config.h.in
 delete mode 100644 source/libs/poppler/poppler-src/configure.ac
 delete mode 100644 source/libs/poppler/poppler-src/fofi/Makefile.am
 delete mode 100644 source/libs/poppler/poppler-src/goo/Makefile.am
 delete mode 100644 source/libs/poppler/poppler-src/gtk-doc.make
 delete mode 100644 source/libs/poppler/poppler-src/poppler-cairo-uninstalled.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-cairo.pc.cmake
 delete mode 100644 source/libs/poppler/poppler-src/poppler-cairo.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-cpp-uninstalled.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-cpp.pc.cmake
 delete mode 100644 source/libs/poppler/poppler-src/poppler-cpp.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-glib-uninstalled.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-glib.pc.cmake
 delete mode 100644 source/libs/poppler/poppler-src/poppler-glib.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-qt4-uninstalled.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-qt4.pc.cmake
 delete mode 100644 source/libs/poppler/poppler-src/poppler-qt4.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-qt5-uninstalled.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-qt5.pc.cmake
 delete mode 100644 source/libs/poppler/poppler-src/poppler-qt5.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-splash-uninstalled.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-splash.pc.cmake
 delete mode 100644 source/libs/poppler/poppler-src/poppler-splash.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler-uninstalled.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler.pc.cmake
 delete mode 100644 source/libs/poppler/poppler-src/poppler.pc.in
 delete mode 100644 source/libs/poppler/poppler-src/poppler/Makefile.am
 delete mode 100644 source/libs/poppler/poppler-src/splash/Makefile.am
 delete mode 100644 source/libs/poppler/poppler-src/splash/Splash.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/Splash.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashBitmap.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashBitmap.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashClip.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashClip.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashErrorCodes.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFTFont.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFTFont.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFTFontEngine.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFTFontEngine.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFTFontFile.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFTFontFile.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFont.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFont.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFontEngine.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFontEngine.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFontFile.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFontFile.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFontFileID.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashFontFileID.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashGlyphBitmap.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashMath.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashPath.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashPath.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashPattern.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashPattern.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashScreen.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashScreen.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashState.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashState.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashT1Font.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashT1Font.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashT1FontEngine.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashT1FontEngine.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashT1FontFile.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashT1FontFile.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashXPath.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashXPath.h
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashXPathScanner.cc
 delete mode 100644 source/libs/poppler/poppler-src/splash/SplashXPathScanner.h

diff --git a/manual/luatex-modifications.tex b/manual/luatex-modifications.tex
index af2c69363..ee9a51de6 100644
--- a/manual/luatex-modifications.tex
+++ b/manual/luatex-modifications.tex
@@ -1082,8 +1082,7 @@ difference. Watch your spaces.
     \NC
     \NC \NR \HL
 }
-
-\starttabulate[|l|pT(0pt)|w(5em)|pT(0pt)|p|]
+\starttabulate[|l|Tp(0pt)|w(5em)|Tp(0pt)|p|]
     \HL
     \BC \type{\breakafterdirmode}
     \BC \type{0}
diff --git a/manual/luatex-tex.tex b/manual/luatex-tex.tex
index 4e8418d55..250c2cbe6 100644
--- a/manual/luatex-tex.tex
+++ b/manual/luatex-tex.tex
@@ -225,10 +225,13 @@ is a \type {glue_spec} node btu when you pass \type {false} as last argument to
 \type {tex.get} you get the width of the glue and when you pass \type {true} you
 get all five values. Otherwise you get a node which is a copy of the internal
 value so you are responsible for its freeing at the \LUA\ end. When you set a
-glue quantity you can either pass a \type {glue_spec} or upto five numbers.
+glue quantity you can either pass a \type {glue_spec} or upto five numbers. If
+you pass \type {true} to \type {get} you get 5 values returned for a glue and
+when you pass \type {false} you only get the width returned.
 
 For the registers you can use \type {getskip} (node), \type {getglue} (numbers)
-\type {setskip} (node) and \type {setglue} (numbers).
+\type {setskip} (node) and \type {setglue} (numbers). If you pass \type {false}
+as second argument to \type {getglue} you only get the width returned.
 
 There are also dedicated setters, getters and checkers:
 
@@ -776,13 +779,14 @@ called xforms in \PDF). You can (re)use the box with \type {\useboxresource} or
 by creating a rule node with subtype~2.
 
 \starttyping
-local index = tex.saveboxresource(n,attributes,resources,immediate,type)
+local index = tex.saveboxresource(n,attributes,resources,immediate,type,margin)
 \stoptyping
 
 The optional second and third arguments are strings, the fourth is a boolean. The
 fifth argument is a type. When set to non|-|zero the \type {/Type} entry is
 omitted. A value of 1 or 3 still writes a \type {/BBox}, while 2 or 3 will write
-a \type {/Matrix}.
+a \type {/Matrix}. The sixth argument is the (virtual) margin that extends beyond
+the effective boundingbox as seen by \TEX.
 
 You can generate the reference (a rule type) with:
 
@@ -795,9 +799,11 @@ following is just a bonus (no dimensions returned means that the resource is
 unknown):
 
 \starttyping
-local w, h, d = tex.getboxresourcedimensions(n)
+local w, h, d, m = tex.getboxresourcedimensions(n)
 \stoptyping
 
+This returns the width, height, depth and margin of the resource.
+
 You can split a box:
 
 \starttyping
diff --git a/manual/luatex.pdf b/manual/luatex.pdf
index 39b903d44be1cf025df4fae9b4046b97837fc2f4..5dc9ebba2e091d48a3acff0e2210c7490700da7a 100644
GIT binary patch
delta 259916
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%0D$+LhTgWbQkryDB~$)07`a@*JMer*VJf5T#@p
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
Wvv=T7P*7G;QC8v*6Vo%%=lDO{4~c02

delta 206257
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%0DO6kMST~Auku=SpUeG&5{0hC#RS2sGCWi$bM
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

diff --git a/manual/luatex.tex b/manual/luatex.tex
index 68f88ed08..4a9489865 100644
--- a/manual/luatex.tex
+++ b/manual/luatex.tex
@@ -45,7 +45,7 @@
 
 \startdocument
   [status=beta,
-   version=1.06.1]
+   version=1.06.2]
 
 \startnotmode[*export]
     \component luatex-titlepage
diff --git a/source/libs/poppler/ChangeLog b/source/libs/poppler/ChangeLog
index 02dd81b55..5faeaf54d 100644
--- a/source/libs/poppler/ChangeLog
+++ b/source/libs/poppler/ChangeLog
@@ -1,3 +1,11 @@
+2017-10-04  Luigi Scarso  <luigi.scarso@gmail.com>
+
+	Import poppler-0.60.0.
+	* version.ac: Adjust.
+	* manually created poppler-config.h.in from poppler-config.h.cmake
+	* deleted useless files from splash folder
+
+
 2017-02-17  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
 
 	Import poppler-0.52.0.
diff --git a/source/libs/poppler/Makefile.am b/source/libs/poppler/Makefile.am
index 627f70c5d..c145329ee 100644
--- a/source/libs/poppler/Makefile.am
+++ b/source/libs/poppler/Makefile.am
@@ -41,17 +41,22 @@ nodist_libpoppler_a_SOURCES = \
 	$(poppler_libpoppler_a_sources)
 
 goo_libGoo_a_sources = \
+	@POPPLER_TREE@/goo/FixedPoint.cc \
+	@POPPLER_TREE@/goo/GooHash.cc \
+	@POPPLER_TREE@/goo/GooList.cc \
+	@POPPLER_TREE@/goo/GooString.cc \
+	@POPPLER_TREE@/goo/GooTimer.cc \
+	@POPPLER_TREE@/goo/ImgWriter.cc \
+	@POPPLER_TREE@/goo/JpegWriter.cc \
+	@POPPLER_TREE@/goo/NetPBMWriter.cc \
+	@POPPLER_TREE@/goo/PNGWriter.cc \
+	@POPPLER_TREE@/goo/TiffWriter.cc \
 	@POPPLER_TREE@/goo/gfile.cc \
 	@POPPLER_TREE@/goo/glibc.cc \
 	@POPPLER_TREE@/goo/gmem.cc \
 	@POPPLER_TREE@/goo/gmempp.cc \
 	@POPPLER_TREE@/goo/grandom.cc \
-	@POPPLER_TREE@/goo/gstrtod.cc \
-	@POPPLER_TREE@/goo/FixedPoint.cc \
-	@POPPLER_TREE@/goo/GooHash.cc \
-	@POPPLER_TREE@/goo/GooList.cc \
-	@POPPLER_TREE@/goo/GooString.cc \
-	@POPPLER_TREE@/goo/GooTimer.cc
+	@POPPLER_TREE@/goo/gstrtod.cc 
 
 fofi_libfofi_a_sources = \
 	@POPPLER_TREE@/fofi/FoFiBase.cc \
@@ -59,9 +64,7 @@ fofi_libfofi_a_sources = \
 	@POPPLER_TREE@/fofi/FoFiIdentifier.cc \
 	@POPPLER_TREE@/fofi/FoFiTrueType.cc \
 	@POPPLER_TREE@/fofi/FoFiType1.cc \
-	@POPPLER_TREE@/fofi/FoFiType1C.cc
-
-
+	@POPPLER_TREE@/fofi/FoFiType1C.cc 
 
 poppler_libpoppler_a_sources = \
 	@POPPLER_TREE@/poppler/Annot.cc \
@@ -77,6 +80,7 @@ poppler_libpoppler_a_sources = \
 	@POPPLER_TREE@/poppler/Dict.cc \
 	@POPPLER_TREE@/poppler/Error.cc \
 	@POPPLER_TREE@/poppler/FileSpec.cc \
+	@POPPLER_TREE@/poppler/FlateEncoder.cc \
 	@POPPLER_TREE@/poppler/FlateStream.cc \
 	@POPPLER_TREE@/poppler/FontEncodingTables.cc \
 	@POPPLER_TREE@/poppler/FontInfo.cc \
@@ -93,6 +97,7 @@ poppler_libpoppler_a_sources = \
 	@POPPLER_TREE@/poppler/Lexer.cc \
 	@POPPLER_TREE@/poppler/Linearization.cc \
 	@POPPLER_TREE@/poppler/Link.cc \
+	@POPPLER_TREE@/poppler/LocalPDFDocBuilder.cc \
 	@POPPLER_TREE@/poppler/MarkedContentOutputDev.cc \
 	@POPPLER_TREE@/poppler/Movie.cc \
 	@POPPLER_TREE@/poppler/NameToCharCode.cc \
@@ -103,6 +108,7 @@ poppler_libpoppler_a_sources = \
 	@POPPLER_TREE@/poppler/PDFDoc.cc \
 	@POPPLER_TREE@/poppler/PDFDocEncoding.cc \
 	@POPPLER_TREE@/poppler/PDFDocFactory.cc \
+	@POPPLER_TREE@/poppler/PSOutputDev.cc \
 	@POPPLER_TREE@/poppler/PSTokenizer.cc \
 	@POPPLER_TREE@/poppler/Page.cc \
 	@POPPLER_TREE@/poppler/PageLabelInfo.cc \
@@ -125,8 +131,7 @@ poppler_libpoppler_a_sources = \
 	@POPPLER_TREE@/poppler/UnicodeTypeTable.cc \
 	@POPPLER_TREE@/poppler/ViewerPreferences.cc \
 	@POPPLER_TREE@/poppler/XRef.cc \
-	@POPPLER_TREE@/poppler/XpdfPluginAPI.cc \
-	@POPPLER_TREE@/poppler/strtok_r.cpp
+	@POPPLER_TREE@/poppler/XpdfPluginAPI.cc 
 
 $(libpoppler_a_OBJECTS): config.force
 
diff --git a/source/libs/poppler/Makefile.in b/source/libs/poppler/Makefile.in
index b32e442d3..ebb0426b2 100644
--- a/source/libs/poppler/Makefile.in
+++ b/source/libs/poppler/Makefile.in
@@ -114,17 +114,22 @@ am__v_AR_1 =
 libpoppler_a_AR = $(AR) $(ARFLAGS)
 libpoppler_a_LIBADD =
 am__dirstamp = $(am__leading_dot)dirstamp
-am__objects_1 = @POPPLER_TREE@/goo/gfile.$(OBJEXT) \
+am__objects_1 = @POPPLER_TREE@/goo/FixedPoint.$(OBJEXT) \
+	@POPPLER_TREE@/goo/GooHash.$(OBJEXT) \
+	@POPPLER_TREE@/goo/GooList.$(OBJEXT) \
+	@POPPLER_TREE@/goo/GooString.$(OBJEXT) \
+	@POPPLER_TREE@/goo/GooTimer.$(OBJEXT) \
+	@POPPLER_TREE@/goo/ImgWriter.$(OBJEXT) \
+	@POPPLER_TREE@/goo/JpegWriter.$(OBJEXT) \
+	@POPPLER_TREE@/goo/NetPBMWriter.$(OBJEXT) \
+	@POPPLER_TREE@/goo/PNGWriter.$(OBJEXT) \
+	@POPPLER_TREE@/goo/TiffWriter.$(OBJEXT) \
+	@POPPLER_TREE@/goo/gfile.$(OBJEXT) \
 	@POPPLER_TREE@/goo/glibc.$(OBJEXT) \
 	@POPPLER_TREE@/goo/gmem.$(OBJEXT) \
 	@POPPLER_TREE@/goo/gmempp.$(OBJEXT) \
 	@POPPLER_TREE@/goo/grandom.$(OBJEXT) \
-	@POPPLER_TREE@/goo/gstrtod.$(OBJEXT) \
-	@POPPLER_TREE@/goo/FixedPoint.$(OBJEXT) \
-	@POPPLER_TREE@/goo/GooHash.$(OBJEXT) \
-	@POPPLER_TREE@/goo/GooList.$(OBJEXT) \
-	@POPPLER_TREE@/goo/GooString.$(OBJEXT) \
-	@POPPLER_TREE@/goo/GooTimer.$(OBJEXT)
+	@POPPLER_TREE@/goo/gstrtod.$(OBJEXT)
 am__objects_2 = @POPPLER_TREE@/fofi/FoFiBase.$(OBJEXT) \
 	@POPPLER_TREE@/fofi/FoFiEncodings.$(OBJEXT) \
 	@POPPLER_TREE@/fofi/FoFiIdentifier.$(OBJEXT) \
@@ -144,6 +149,7 @@ am__objects_3 = @POPPLER_TREE@/poppler/Annot.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/Dict.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/Error.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/FileSpec.$(OBJEXT) \
+	@POPPLER_TREE@/poppler/FlateEncoder.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/FlateStream.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/FontEncodingTables.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/FontInfo.$(OBJEXT) \
@@ -160,6 +166,7 @@ am__objects_3 = @POPPLER_TREE@/poppler/Annot.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/Lexer.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/Linearization.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/Link.$(OBJEXT) \
+	@POPPLER_TREE@/poppler/LocalPDFDocBuilder.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/MarkedContentOutputDev.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/Movie.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/NameToCharCode.$(OBJEXT) \
@@ -170,6 +177,7 @@ am__objects_3 = @POPPLER_TREE@/poppler/Annot.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/PDFDoc.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/PDFDocEncoding.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/PDFDocFactory.$(OBJEXT) \
+	@POPPLER_TREE@/poppler/PSOutputDev.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/PSTokenizer.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/Page.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/PageLabelInfo.$(OBJEXT) \
@@ -192,8 +200,7 @@ am__objects_3 = @POPPLER_TREE@/poppler/Annot.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/UnicodeTypeTable.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/ViewerPreferences.$(OBJEXT) \
 	@POPPLER_TREE@/poppler/XRef.$(OBJEXT) \
-	@POPPLER_TREE@/poppler/XpdfPluginAPI.$(OBJEXT) \
-	@POPPLER_TREE@/poppler/strtok_r.$(OBJEXT)
+	@POPPLER_TREE@/poppler/XpdfPluginAPI.$(OBJEXT)
 nodist_libpoppler_a_OBJECTS = $(am__objects_1) $(am__objects_2) \
 	$(am__objects_3)
 libpoppler_a_OBJECTS = $(nodist_libpoppler_a_OBJECTS)
@@ -452,17 +459,22 @@ nodist_libpoppler_a_SOURCES = \
 	$(poppler_libpoppler_a_sources)
 
 goo_libGoo_a_sources = \
+	@POPPLER_TREE@/goo/FixedPoint.cc \
+	@POPPLER_TREE@/goo/GooHash.cc \
+	@POPPLER_TREE@/goo/GooList.cc \
+	@POPPLER_TREE@/goo/GooString.cc \
+	@POPPLER_TREE@/goo/GooTimer.cc \
+	@POPPLER_TREE@/goo/ImgWriter.cc \
+	@POPPLER_TREE@/goo/JpegWriter.cc \
+	@POPPLER_TREE@/goo/NetPBMWriter.cc \
+	@POPPLER_TREE@/goo/PNGWriter.cc \
+	@POPPLER_TREE@/goo/TiffWriter.cc \
 	@POPPLER_TREE@/goo/gfile.cc \
 	@POPPLER_TREE@/goo/glibc.cc \
 	@POPPLER_TREE@/goo/gmem.cc \
 	@POPPLER_TREE@/goo/gmempp.cc \
 	@POPPLER_TREE@/goo/grandom.cc \
-	@POPPLER_TREE@/goo/gstrtod.cc \
-	@POPPLER_TREE@/goo/FixedPoint.cc \
-	@POPPLER_TREE@/goo/GooHash.cc \
-	@POPPLER_TREE@/goo/GooList.cc \
-	@POPPLER_TREE@/goo/GooString.cc \
-	@POPPLER_TREE@/goo/GooTimer.cc
+	@POPPLER_TREE@/goo/gstrtod.cc 
 
 fofi_libfofi_a_sources = \
 	@POPPLER_TREE@/fofi/FoFiBase.cc \
@@ -470,7 +482,7 @@ fofi_libfofi_a_sources = \
 	@POPPLER_TREE@/fofi/FoFiIdentifier.cc \
 	@POPPLER_TREE@/fofi/FoFiTrueType.cc \
 	@POPPLER_TREE@/fofi/FoFiType1.cc \
-	@POPPLER_TREE@/fofi/FoFiType1C.cc
+	@POPPLER_TREE@/fofi/FoFiType1C.cc 
 
 poppler_libpoppler_a_sources = \
 	@POPPLER_TREE@/poppler/Annot.cc \
@@ -486,6 +498,7 @@ poppler_libpoppler_a_sources = \
 	@POPPLER_TREE@/poppler/Dict.cc \
 	@POPPLER_TREE@/poppler/Error.cc \
 	@POPPLER_TREE@/poppler/FileSpec.cc \
+	@POPPLER_TREE@/poppler/FlateEncoder.cc \
 	@POPPLER_TREE@/poppler/FlateStream.cc \
 	@POPPLER_TREE@/poppler/FontEncodingTables.cc \
 	@POPPLER_TREE@/poppler/FontInfo.cc \
@@ -502,6 +515,7 @@ poppler_libpoppler_a_sources = \
 	@POPPLER_TREE@/poppler/Lexer.cc \
 	@POPPLER_TREE@/poppler/Linearization.cc \
 	@POPPLER_TREE@/poppler/Link.cc \
+	@POPPLER_TREE@/poppler/LocalPDFDocBuilder.cc \
 	@POPPLER_TREE@/poppler/MarkedContentOutputDev.cc \
 	@POPPLER_TREE@/poppler/Movie.cc \
 	@POPPLER_TREE@/poppler/NameToCharCode.cc \
@@ -512,6 +526,7 @@ poppler_libpoppler_a_sources = \
 	@POPPLER_TREE@/poppler/PDFDoc.cc \
 	@POPPLER_TREE@/poppler/PDFDocEncoding.cc \
 	@POPPLER_TREE@/poppler/PDFDocFactory.cc \
+	@POPPLER_TREE@/poppler/PSOutputDev.cc \
 	@POPPLER_TREE@/poppler/PSTokenizer.cc \
 	@POPPLER_TREE@/poppler/Page.cc \
 	@POPPLER_TREE@/poppler/PageLabelInfo.cc \
@@ -534,8 +549,7 @@ poppler_libpoppler_a_sources = \
 	@POPPLER_TREE@/poppler/UnicodeTypeTable.cc \
 	@POPPLER_TREE@/poppler/ViewerPreferences.cc \
 	@POPPLER_TREE@/poppler/XRef.cc \
-	@POPPLER_TREE@/poppler/XpdfPluginAPI.cc \
-	@POPPLER_TREE@/poppler/strtok_r.cpp
+	@POPPLER_TREE@/poppler/XpdfPluginAPI.cc 
 
 
 # Reconfig
@@ -550,7 +564,7 @@ all: config.h poppler-config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
-.SUFFIXES: .cc .cpp .o .obj
+.SUFFIXES: .cc .o .obj
 am--refresh: Makefile
 	@:
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/../../am/reconfig.am $(srcdir)/../../am/rebuild.am $(am__configure_deps)
@@ -617,36 +631,51 @@ clean-noinstLIBRARIES:
 @POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp):
 	@$(MKDIR_P) @POPPLER_TREE@/goo/$(DEPDIR)
 	@: > @POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/goo/gfile.$(OBJEXT):  \
+@POPPLER_TREE@/goo/FixedPoint.$(OBJEXT):  \
 	@POPPLER_TREE@/goo/$(am__dirstamp) \
 	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/goo/glibc.$(OBJEXT):  \
+@POPPLER_TREE@/goo/GooHash.$(OBJEXT):  \
 	@POPPLER_TREE@/goo/$(am__dirstamp) \
 	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/goo/gmem.$(OBJEXT): @POPPLER_TREE@/goo/$(am__dirstamp) \
+@POPPLER_TREE@/goo/GooList.$(OBJEXT):  \
+	@POPPLER_TREE@/goo/$(am__dirstamp) \
 	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/goo/gmempp.$(OBJEXT):  \
+@POPPLER_TREE@/goo/GooString.$(OBJEXT):  \
 	@POPPLER_TREE@/goo/$(am__dirstamp) \
 	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/goo/grandom.$(OBJEXT):  \
+@POPPLER_TREE@/goo/GooTimer.$(OBJEXT):  \
 	@POPPLER_TREE@/goo/$(am__dirstamp) \
 	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/goo/gstrtod.$(OBJEXT):  \
+@POPPLER_TREE@/goo/ImgWriter.$(OBJEXT):  \
 	@POPPLER_TREE@/goo/$(am__dirstamp) \
 	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/goo/FixedPoint.$(OBJEXT):  \
+@POPPLER_TREE@/goo/JpegWriter.$(OBJEXT):  \
 	@POPPLER_TREE@/goo/$(am__dirstamp) \
 	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/goo/GooHash.$(OBJEXT):  \
+@POPPLER_TREE@/goo/NetPBMWriter.$(OBJEXT):  \
 	@POPPLER_TREE@/goo/$(am__dirstamp) \
 	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/goo/GooList.$(OBJEXT):  \
+@POPPLER_TREE@/goo/PNGWriter.$(OBJEXT):  \
 	@POPPLER_TREE@/goo/$(am__dirstamp) \
 	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/goo/GooString.$(OBJEXT):  \
+@POPPLER_TREE@/goo/TiffWriter.$(OBJEXT):  \
 	@POPPLER_TREE@/goo/$(am__dirstamp) \
 	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/goo/GooTimer.$(OBJEXT):  \
+@POPPLER_TREE@/goo/gfile.$(OBJEXT):  \
+	@POPPLER_TREE@/goo/$(am__dirstamp) \
+	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
+@POPPLER_TREE@/goo/glibc.$(OBJEXT):  \
+	@POPPLER_TREE@/goo/$(am__dirstamp) \
+	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
+@POPPLER_TREE@/goo/gmem.$(OBJEXT): @POPPLER_TREE@/goo/$(am__dirstamp) \
+	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
+@POPPLER_TREE@/goo/gmempp.$(OBJEXT):  \
+	@POPPLER_TREE@/goo/$(am__dirstamp) \
+	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
+@POPPLER_TREE@/goo/grandom.$(OBJEXT):  \
+	@POPPLER_TREE@/goo/$(am__dirstamp) \
+	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
+@POPPLER_TREE@/goo/gstrtod.$(OBJEXT):  \
 	@POPPLER_TREE@/goo/$(am__dirstamp) \
 	@POPPLER_TREE@/goo/$(DEPDIR)/$(am__dirstamp)
 @POPPLER_TREE@/fofi/$(am__dirstamp):
@@ -718,6 +747,9 @@ clean-noinstLIBRARIES:
 @POPPLER_TREE@/poppler/FileSpec.$(OBJEXT):  \
 	@POPPLER_TREE@/poppler/$(am__dirstamp) \
 	@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
+@POPPLER_TREE@/poppler/FlateEncoder.$(OBJEXT):  \
+	@POPPLER_TREE@/poppler/$(am__dirstamp) \
+	@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
 @POPPLER_TREE@/poppler/FlateStream.$(OBJEXT):  \
 	@POPPLER_TREE@/poppler/$(am__dirstamp) \
 	@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
@@ -766,6 +798,9 @@ clean-noinstLIBRARIES:
 @POPPLER_TREE@/poppler/Link.$(OBJEXT):  \
 	@POPPLER_TREE@/poppler/$(am__dirstamp) \
 	@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
+@POPPLER_TREE@/poppler/LocalPDFDocBuilder.$(OBJEXT):  \
+	@POPPLER_TREE@/poppler/$(am__dirstamp) \
+	@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
 @POPPLER_TREE@/poppler/MarkedContentOutputDev.$(OBJEXT):  \
 	@POPPLER_TREE@/poppler/$(am__dirstamp) \
 	@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
@@ -796,6 +831,9 @@ clean-noinstLIBRARIES:
 @POPPLER_TREE@/poppler/PDFDocFactory.$(OBJEXT):  \
 	@POPPLER_TREE@/poppler/$(am__dirstamp) \
 	@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
+@POPPLER_TREE@/poppler/PSOutputDev.$(OBJEXT):  \
+	@POPPLER_TREE@/poppler/$(am__dirstamp) \
+	@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
 @POPPLER_TREE@/poppler/PSTokenizer.$(OBJEXT):  \
 	@POPPLER_TREE@/poppler/$(am__dirstamp) \
 	@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
@@ -865,9 +903,6 @@ clean-noinstLIBRARIES:
 @POPPLER_TREE@/poppler/XpdfPluginAPI.$(OBJEXT):  \
 	@POPPLER_TREE@/poppler/$(am__dirstamp) \
 	@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
-@POPPLER_TREE@/poppler/strtok_r.$(OBJEXT):  \
-	@POPPLER_TREE@/poppler/$(am__dirstamp) \
-	@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
 
 libpoppler.a: $(libpoppler_a_OBJECTS) $(libpoppler_a_DEPENDENCIES) $(EXTRA_libpoppler_a_DEPENDENCIES) 
 	$(AM_V_at)-rm -f libpoppler.a
@@ -894,6 +929,11 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/goo/$(DEPDIR)/GooList.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/goo/$(DEPDIR)/GooString.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/goo/$(DEPDIR)/GooTimer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/goo/$(DEPDIR)/ImgWriter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/goo/$(DEPDIR)/JpegWriter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/goo/$(DEPDIR)/NetPBMWriter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/goo/$(DEPDIR)/PNGWriter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/goo/$(DEPDIR)/TiffWriter.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/goo/$(DEPDIR)/gfile.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/goo/$(DEPDIR)/glibc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/goo/$(DEPDIR)/gmem.Po@am__quote@
@@ -913,6 +953,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/Dict.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/Error.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/FileSpec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/FlateEncoder.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/FlateStream.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/FontEncodingTables.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/FontInfo.Po@am__quote@
@@ -929,6 +970,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/Lexer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/Linearization.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/Link.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/LocalPDFDocBuilder.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/MarkedContentOutputDev.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/Movie.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/NameToCharCode.Po@am__quote@
@@ -939,6 +981,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/PDFDoc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/PDFDocEncoding.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/PDFDocFactory.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/PSOutputDev.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/PSTokenizer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/Page.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/PageLabelInfo.Po@am__quote@
@@ -962,7 +1005,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/ViewerPreferences.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/XRef.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/XpdfPluginAPI.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/strtok_r.Po@am__quote@
 
 .cc.o:
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -980,22 +1022,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
-.cpp.o:
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run 'make' without going through this Makefile.
 # To change the values of 'make' variables: instead of editing Makefiles,
diff --git a/source/libs/poppler/TLpatches/ChangeLog b/source/libs/poppler/TLpatches/ChangeLog
index c11001c10..8b900ff4d 100644
--- a/source/libs/poppler/TLpatches/ChangeLog
+++ b/source/libs/poppler/TLpatches/ChangeLog
@@ -1,3 +1,10 @@
+2017-10-04  Luigi Scarso <luigi.scarso@gmail.com>
+
+	Imported poppler-0.60.0 source tree from:
+	  http://poppler.freedesktop.org/
+	* patch-02-LLONG_MAX, patch-03-Object-functions: Adapted.
+	* removed all files but SplashTypes.h in the  splash/ directory
+
 2017-09-25  Luigi Scarso <luigi.scarso@gmail.com>
 
 	Imported poppler-0.59.0 source tree from:
diff --git a/source/libs/poppler/TLpatches/TL-Changes b/source/libs/poppler/TLpatches/TL-Changes
index 883eb5f75..9a1ab73cd 100644
--- a/source/libs/poppler/TLpatches/TL-Changes
+++ b/source/libs/poppler/TLpatches/TL-Changes
@@ -1,4 +1,4 @@
-Changes applied to the poppler-0.52.0 tree as obtained from:
+Changes applied to the poppler-0.60.0 tree as obtained from:
 	http://poppler.freedesktop.org/
 
 Removed:
diff --git a/source/libs/poppler/TLpatches/patch-03-Object-functions b/source/libs/poppler/TLpatches/patch-03-Object-functions
index 9a5a41107..03511d2af 100644
--- a/source/libs/poppler/TLpatches/patch-03-Object-functions
+++ b/source/libs/poppler/TLpatches/patch-03-Object-functions
@@ -1,35 +1,33 @@
-diff -u Object.h.std Object.h
---- Object.h.std	2017-09-18 19:14:36.231203342 +0200
-+++ Object.h	2017-09-18 19:15:49.387200342 +0200
+--- Object.h.std	2017-10-02 23:29:21.000000000 +0200
++++ Object.h	2017-10-03 10:13:36.496259318 +0200
 @@ -207,7 +207,7 @@
-   GBool isName(const char *nameA)
+   GBool isName(const char *nameA) const
      { return type == objName && !strcmp(cString, nameA); }
-   GBool isDict(const char *dictType);
--  GBool isStream(char *dictType);
-+  GBool isStream(const char *dictType);
-   GBool isCmd(const char *cmdA)
+   GBool isDict(const char *dictType) const;
+-  GBool isStream(char *dictType) const;
++  GBool isStream(const char *dictType) const;
+   GBool isCmd(const char *cmdA) const
      { return type == objCmd && !strcmp(cString, cmdA); }
  
 @@ -264,7 +264,7 @@
-   Object dictGetValNF(int i);
+   Object dictGetValNF(int i) const;
  
    // Stream accessors.
--  GBool streamIs(char *dictType);
-+  GBool streamIs(const char *dictType);
+-  GBool streamIs(char *dictType) const;
++  GBool streamIs(const char *dictType) const;
    void streamReset();
    void streamClose();
-   int streamGetChar();
+   int streamGetChar() const;
 @@ -379,10 +379,10 @@
  
  #include "Stream.h"
  
--inline GBool Object::streamIs(char *dictType)
-+inline GBool Object::streamIs(const char *dictType)
+-inline GBool Object::streamIs(char *dictType) const
++inline GBool Object::streamIs(const char *dictType) const
    { OBJECT_TYPE_CHECK(objStream); return stream->getDict()->is(dictType); }
  
--inline GBool Object::isStream(char *dictType)
-+inline GBool Object::isStream(const char *dictType)
+-inline GBool Object::isStream(char *dictType) const
++inline GBool Object::isStream(const char *dictType) const
    { return type == objStream && streamIs(dictType); }
  
  inline void Object::streamReset()
-
diff --git a/source/libs/poppler/configure b/source/libs/poppler/configure
index d8480aad6..4b6fd0880 100755
--- a/source/libs/poppler/configure
+++ b/source/libs/poppler/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for poppler (TeX Live) 0.59.0.
+# Generated by GNU Autoconf 2.69 for poppler (TeX Live) 0.60.0.
 #
 # Report bugs to <tex-k@tug.org>.
 #
@@ -580,8 +580,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='poppler (TeX Live)'
 PACKAGE_TARNAME='poppler--tex-live-'
-PACKAGE_VERSION='0.59.0'
-PACKAGE_STRING='poppler (TeX Live) 0.59.0'
+PACKAGE_VERSION='0.60.0'
+PACKAGE_STRING='poppler (TeX Live) 0.60.0'
 PACKAGE_BUGREPORT='tex-k@tug.org'
 PACKAGE_URL=''
 
@@ -1319,7 +1319,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures poppler (TeX Live) 0.59.0 to adapt to many kinds of systems.
+\`configure' configures poppler (TeX Live) 0.60.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1387,7 +1387,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of poppler (TeX Live) 0.59.0:";;
+     short | recursive ) echo "Configuration of poppler (TeX Live) 0.60.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1502,7 +1502,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-poppler (TeX Live) configure 0.59.0
+poppler (TeX Live) configure 0.60.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2092,7 +2092,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by poppler (TeX Live) $as_me 0.59.0, which was
+It was created by poppler (TeX Live) $as_me 0.60.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4015,7 +4015,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='poppler--tex-live-'
- VERSION='0.59.0'
+ VERSION='0.60.0'
 
 
 # Some tools Automake needs.
@@ -6624,7 +6624,7 @@ ac_config_headers="$ac_config_headers poppler-config.h:poppler-src/poppler/poppl
 
 
 cat >>confdefs.h <<_ACEOF
-#define POPPLER_VERSION "0.59.0"
+#define POPPLER_VERSION "0.60.0"
 _ACEOF
 
 
@@ -7318,7 +7318,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by poppler (TeX Live) $as_me 0.59.0, which was
+This file was extended by poppler (TeX Live) $as_me 0.60.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -7384,7 +7384,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-poppler (TeX Live) config.status 0.59.0
+poppler (TeX Live) config.status 0.60.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/source/libs/poppler/poppler-src/CMakeLists.txt b/source/libs/poppler/poppler-src/CMakeLists.txt
index a5b0a5be5..887b0cc7f 100644
--- a/source/libs/poppler/poppler-src/CMakeLists.txt
+++ b/source/libs/poppler/poppler-src/CMakeLists.txt
@@ -38,20 +38,26 @@ option(BUILD_CPP_TESTS "Whether compile the CPP test programs." ON)
 option(ENABLE_SPLASH "Build the Splash graphics backend." ON)
 option(ENABLE_UTILS "Compile poppler command line utils." ON)
 option(ENABLE_CPP "Compile poppler cpp wrapper." ON)
+option(ENABLE_GLIB "Compile poppler glib wrapper." ON)
+option(ENABLE_GTK_DOC "Whether to generate glib API documentation." OFF)
+option(ENABLE_QT4 "Compile poppler qt4 wrapper." ON)
+option(ENABLE_QT5 "Compile poppler qt5 wrapper." ON)
 set(ENABLE_LIBOPENJPEG "auto" CACHE STRING "Use libopenjpeg for JPX streams. Possible values: auto, openjpeg1, openjpeg2, unmaintained, none. 'auto' prefers openjpeg2 over openjpeg1 if both are available. 'unmaintained' gives you the internal unmaintained decoder. Use at your own risk. 'none' compiles no JPX decoder at all. Default: auto")
 set(ENABLE_CMS "auto" CACHE STRING "Use color management system. Possible values: auto, lcms1, lcms2. 'auto' prefers lcms2 over lcms1 if both are available. Unset to disable color management system.")
 set(ENABLE_DCTDECODER "libjpeg" CACHE STRING "Use libjpeg for DCT streams. Possible values: libjpeg, unmaintained, none. will use libjpeg if available or fail if not. 'unmaintained' gives you the internal unmaintained decoder. Use at your own risk. 'none' compiles no DCT decoder at all. Default: libjpeg")
-option(ENABLE_LIBCURL "Build libcurl based HTTP support." OFF)
+option(ENABLE_LIBCURL "Build libcurl based HTTP support." ON)
 option(ENABLE_ZLIB "Build with zlib." ON)
 option(ENABLE_ZLIB_UNCOMPRESS "Use zlib to uncompress flate streams (not totally safe)." OFF)
 option(SPLASH_CMYK "Include support for CMYK rasterization." OFF)
 option(USE_FIXEDPOINT "Use fixed point arithmetic in the Splash backend" OFF)
 option(USE_FLOAT "Use single precision arithmetic in the Splash backend" OFF)
+option(BUILD_SHARED_LIBS "Build poppler as a shared library" ON)
 if(WIN32)
   option(ENABLE_RELOCATABLE "Do not hardcode the poppler library location (on Windows)." ON)
 else()
   set(ENABLE_RELOCATABLE OFF)
 endif()
+option(EXTRA_WARN "Enable extra compile warnings" OFF)
 
 set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)")
 set(SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share" CACHE STRING "Share directory name")
@@ -129,17 +135,24 @@ elseif(ENABLE_DCTDECODER STREQUAL "none")
 else()
   message(FATAL_ERROR "Invalid ENABLE_DCTDECODER value.")
 endif()
-macro_optional_find_package(Qt4)
-find_package(Qt5Core)
-find_package(Qt5Gui)
-find_package(Qt5Xml)
-find_package(Qt5Widgets)
-find_package(Qt5Test)
-if (Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND)
-  set(QT5_FOUND true)
-else ()
-  message("-- Package Qt5Core or Qt5Gui or Qt5Xml or Qt5Widgets or Qt5Test not found")
-  set(QT5_FOUND false)
+
+if (ENABLE_QT4)
+  macro_optional_find_package(Qt4)
+  if (NOT QT4_FOUND)
+    set(ENABLE_QT4 OFF)
+  endif()
+endif()
+
+if (ENABLE_QT5)
+  find_package(Qt5Core)
+  find_package(Qt5Gui)
+  find_package(Qt5Xml)
+  find_package(Qt5Widgets)
+  find_package(Qt5Test)
+  if (NOT (Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND))
+    message("-- Package Qt5Core or Qt5Gui or Qt5Xml or Qt5Widgets or Qt5Test not found")
+    set(ENABLE_QT5 OFF)
+  endif()
 endif()
 
 macro_optional_find_package(Cairo ${CAIRO_VERSION})
@@ -149,9 +162,13 @@ if(CAIRO_FOUND)
   set(CAIRO_REQ "cairo")
   set(POPPLER_GLIB_DISABLE_DEPRECATED "")
   set(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES "")
-  macro_optional_find_package(GLIB)
-  if(GLIB_FOUND)
-    set(ENABLE_GLIB ON)
+  if(ENABLE_GLIB)
+    macro_optional_find_package(GLIB)
+    if(NOT GLIB_FOUND)
+      set(ENABLE_GLIB OFF)
+    endif()
+  endif()
+  if(ENABLE_GLIB)
     # Check for introspection
     macro_optional_find_package(GObjectIntrospection 0.9.12)
     set(HAVE_INTROSPECTION ${INTROSPECTION_FOUND})
@@ -161,6 +178,7 @@ if(CAIRO_FOUND)
   endif()
 else()
   set(CAIRO_FEATURE "#undef POPPLER_HAS_CAIRO")
+  set(ENABLE_GLIB OFF)
 endif()
 if(ENABLE_CPP)
   macro_optional_find_package(Iconv)
@@ -238,8 +256,12 @@ elseif(ENABLE_CMS STREQUAL "lcms2")
 endif()
 if(ENABLE_LIBCURL)
   find_package(CURL)
-  include_directories(${CURL_INCLUDE_DIR})
-  set(POPPLER_HAS_CURL_SUPPORT ON)
+  if(CURL_FOUND)
+    include_directories(${CURL_INCLUDE_DIR})
+    set(POPPLER_HAS_CURL_SUPPORT ON)
+  else()
+    set(ENABLE_LIBCURL OFF)
+  endif()
 endif()
 
 add_definitions(-DHAVE_CONFIG_H=1)
@@ -319,21 +341,12 @@ if(NOT DEFINED POPPLER_DATADIR)
   set(POPPLER_DATADIR "${CMAKE_INSTALL_PREFIX}/share/poppler")
 endif()
 
-if(DEFINED COMPILE_WARNINGS)
-else()
-  set(COMPILE_WARNINGS "yes")
-endif()
-string(TOLOWER "${COMPILE_WARNINGS}" _comp_warnings)
-if(_comp_warnings STREQUAL "no")
-  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_NO} ${CMAKE_CXX_FLAGS}")
-endif()
-if(_comp_warnings STREQUAL "yes")
+if(EXTRA_WARN)
   set(CMAKE_C_FLAGS "-Wall ${CMAKE_C_FLAGS}")
-  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_YES} ${CMAKE_CXX_FLAGS}")
-endif()
-if(_comp_warnings STREQUAL "kde")
+  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_EXTRA} ${CMAKE_CXX_FLAGS}")
+else()
   set(CMAKE_C_FLAGS "-Wall ${CMAKE_C_FLAGS}")
-  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS_KDE} ${CMAKE_CXX_FLAGS}")
+  set(CMAKE_CXX_FLAGS "${DEFAULT_COMPILE_WARNINGS} ${CMAKE_CXX_FLAGS}")
 endif()
 
 
@@ -535,7 +548,7 @@ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
 set(CMAKE_CXX_FLAGS "/Zc:wchar_t- ${CMAKE_CXX_FLAGS}")
 add_library(poppler STATIC ${poppler_SRCS})
 else()
-add_library(poppler SHARED ${poppler_SRCS})
+add_library(poppler ${poppler_SRCS})
 endif()
 set_target_properties(poppler PROPERTIES VERSION 70.0.0 SOVERSION 70)
 target_link_libraries(poppler LINK_PRIVATE ${poppler_LIBS})
@@ -716,10 +729,10 @@ if(ENABLE_GLIB)
   add_subdirectory(glib)
 endif()
 add_subdirectory(test)
-if(QT4_FOUND)
+if(ENABLE_QT4)
   add_subdirectory(qt4)
 endif()
-if(QT5_FOUND)
+if(ENABLE_QT5)
   add_subdirectory(qt5)
 endif()
 if(ENABLE_CPP)
@@ -743,10 +756,10 @@ poppler_create_install_pkgconfig(poppler.pc lib${LIB_SUFFIX}/pkgconfig)
 if(ENABLE_SPLASH)
   poppler_create_install_pkgconfig(poppler-splash.pc lib${LIB_SUFFIX}/pkgconfig)
 endif()
-if(QT4_FOUND)
+if(ENABLE_QT4)
   poppler_create_install_pkgconfig(poppler-qt4.pc lib${LIB_SUFFIX}/pkgconfig)
 endif()
-if(QT5_FOUND)
+if(ENABLE_QT5)
   poppler_create_install_pkgconfig(poppler-qt5.pc lib${LIB_SUFFIX}/pkgconfig)
 endif()
 if(ENABLE_GLIB)
@@ -767,12 +780,12 @@ if(SPLASH_CMYK)
   message("      with CMYK support")
 endif()
 show_end_message_yesno("cairo output" CAIRO_FOUND)
-show_end_message_yesno("qt4 wrapper" QT4_FOUND)
-show_end_message_yesno("qt5 wrapper" QT5_FOUND)
+show_end_message_yesno("qt4 wrapper" ENABLE_QT4)
+show_end_message_yesno("qt5 wrapper" ENABLE_QT5)
 show_end_message_yesno("glib wrapper" ENABLE_GLIB)
 show_end_message_yesno("  introspection" INTROSPECTION_FOUND)
+show_end_message_yesno("  gtk-doc" ENABLE_GTK_DOC)
 show_end_message_yesno("cpp wrapper" ENABLE_CPP)
-show_end_message("use gtk-doc" "not supported with this CMake build system")
 show_end_message_yesno("use libjpeg" ENABLE_LIBJPEG)
 show_end_message_yesno("use libpng" ENABLE_LIBPNG)
 show_end_message_yesno("use libtiff" ENABLE_LIBTIFF)
@@ -824,3 +837,13 @@ endif()
 if(NOT HAVE_JPX_DECODER)
   message("Warning: You're not compiling any JPX decoder. Some files will fail to display properly.")
 endif()
+
+set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${POPPLER_VERSION})
+add_custom_target(dist
+    COMMAND
+        COMMAND git log --stat | fmt --split-only > ${CMAKE_BINARY_DIR}/ChangeLog
+        COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar
+        COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar ChangeLog --transform='s,,${ARCHIVE_NAME}/,'
+        COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar glib/reference/html --transform='s,,${ARCHIVE_NAME}/,'
+        COMMAND xz -9 ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar
+    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
diff --git a/source/libs/poppler/poppler-src/COPYING3 b/source/libs/poppler/poppler-src/COPYING3
new file mode 100644
index 000000000..94a9ed024
--- /dev/null
+++ b/source/libs/poppler/poppler-src/COPYING3
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  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
+them 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 prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  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.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey 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;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If 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 convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU 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 that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  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.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+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.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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 3 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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/source/libs/poppler/poppler-src/ChangeLog b/source/libs/poppler/poppler-src/ChangeLog
index a0b4add84..00799729a 100644
--- a/source/libs/poppler/poppler-src/ChangeLog
+++ b/source/libs/poppler/poppler-src/ChangeLog
@@ -1,3 +1,861 @@
+commit 9432e0bfc4c4f2e16b7c152aa8b04d6d19ed4898
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Mon Oct 2 23:29:21 2017 +0200
+
+    Add missing (C)
+
+ cpp/poppler-private.cpp      | 1 +
+ fofi/FoFiTrueType.cc         | 2 +-
+ goo/GooString.cc             | 2 +-
+ goo/GooString.h              | 2 +-
+ goo/JpegWriter.cc            | 1 +
+ goo/gmem.h                   | 2 +-
+ poppler/CairoOutputDev.cc    | 2 +-
+ poppler/CurlPDFDocBuilder.cc | 2 +-
+ poppler/Decrypt.cc           | 2 +-
+ poppler/GfxState.h           | 2 +-
+ poppler/GlobalParams.cc      | 2 +-
+ poppler/PSOutputDev.cc       | 2 +-
+ poppler/PSOutputDev.h        | 2 +-
+ poppler/UnicodeMap.cc        | 1 +
+ qt4/src/poppler-link.cc      | 2 +-
+ qt4/src/poppler-private.cc   | 2 +-
+ qt5/src/poppler-link.cc      | 2 +-
+ qt5/src/poppler-private.cc   | 2 +-
+ qt5/src/poppler-qt5.h        | 1 +
+ splash/Splash.cc             | 2 +-
+ splash/SplashFTFontFile.cc   | 1 +
+ splash/SplashFTFontFile.h    | 1 +
+ utils/pdfseparate.cc         | 2 +-
+ 23 files changed, 23 insertions(+), 17 deletions(-)
+
+commit da02d7c683f1788d38cccb3716edd1ba011cb94c
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Mon Oct 2 23:05:59 2017 +0200
+
+    remove m4 gtk-doc.make and add comments to poppler-features.h.cmake
+
+ glib/poppler-features.h.cmake |  55 ++++++++
+ gtk-doc.make                  | 305
+ ----------------------------------------
+ m4/.gitignore                 |   5 -
+ m4/ax_pthread.m4              | 317
+ ------------------------------------------
+ m4/define-dir.m4              |  34 -----
+ m4/gtk-doc.m4                 |  88 ------------
+ m4/iconv.m4                   | 180 ------------------------
+ m4/introspection.m4           |  94 -------------
+ m4/libjpeg.m4                 | 114 ---------------
+ 9 files changed, 55 insertions(+), 1137 deletions(-)
+
+commit f871b82edfd632f79ec7bdd0b4d560cd348d8b1a
+Author: Oliver Sander <oliver.sander@tu-dresden.de>
+Date:   Fri Sep 8 23:27:45 2017 +0200
+
+    qt5: ArthurOutputDev: Fix several small bugs related to dash pattern
+    handling
+
+ qt5/src/ArthurOutputDev.cc | 21 ++++++++++++++++++++-
+ 1 file changed, 20 insertions(+), 1 deletion(-)
+
+commit 3ec5e86ca000653525650a99755c85e512a04bdc
+Author: Oliver Sander <oliver.sander@tu-dresden.de>
+Date:   Fri Sep 29 21:24:23 2017 +0200
+
+    qt5: ArthurOutputDev: Implement the drawSoftMaskedImage method
+
+ qt5/src/ArthurOutputDev.cc | 67
+ ++++++++++++++++++++++++++++++++++++++++++++++
+ qt5/src/ArthurOutputDev.h  |  9 +++++++
+ 2 files changed, 76 insertions(+)
+
+commit 376ae2f8b8a92fd7bd751fbfcd0aa46530b59ca4
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Sat Sep 30 11:27:44 2017 +0200
+
+    Remove the gir-girs target
+
+    It depends on the same files (subset) as the gir-typelibs target
+    meaning that sometimes when doing a parallel build you'd get the
+    two commands trying to generate the same file at once and bad
+    things happen
+
+ cmake/modules/GObjectIntrospectionMacros.cmake | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 19eedc6fb693a62f305e13079501e3105f869f3c
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Sat Sep 30 11:12:31 2017 +0200
+
+    Fix crash in broken files
+
+    Bug #103045
+
+ fofi/FoFiTrueType.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5df4a8b0ad56b11c9be3b362e33810c5af57952b
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Tue Sep 26 23:49:41 2017 +0200
+
+    Enable libcurl support by default
+
+ CMakeLists.txt | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+commit 2c92c7b6a828c9db8a38f079ea7a3d51c12a481d
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Mon Sep 25 19:33:44 2017 +0200
+
+    Fix infinite recursion on broken files
+
+    Bug #102969
+
+ poppler/Gfx.cc      | 46 ++++++++++++++++++++++++++++++++++------------
+ poppler/GfxState.cc | 33 ++++++++++++++++++---------------
+ poppler/GfxState.h  | 15 +++++++++------
+ 3 files changed, 61 insertions(+), 33 deletions(-)
+
+commit d3f12611b30e6421f05603a9838ed9131b1aa61e
+Author: Bernd Kuhls <berndkuhls@hotmail.com>
+Date:   Sun Sep 24 23:56:29 2017 +0200
+
+    include ctype.h for isdigit
+
+    Bug #102951
+
+ poppler/Form.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit a1a4be92323ae45f1ecc16595438520309554eb0
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date:   Sun Sep 24 13:21:58 2017 +0200
+
+    cairo: do not use the custom downscaling for rendering images when
+    using cairo >= 1.14
+
+ poppler/CairoOutputDev.cc | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+commit 3b64fc488e7ff10634aa2dd76ad4f152ebfe7edc
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date:   Sun Sep 24 12:39:06 2017 +0200
+
+    regtest: change default value of utils dir to ../build/utils
+
+ regtest/main.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit deba5f3c57929a96105d822c8cba46e5334694c7
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date:   Sun Sep 24 12:31:43 2017 +0200
+
+    cairo: Do not extend the pattern in drawImageMaskRegular
+
+    This is causing some documents with tiling patterns to take ages
+    to render,
+    since we switched to use drawImageMaskRegular in 00a536a4. This patch
+    applies the same changes made in 7d8dfb09 and db87dc7f for
+    drawImageMaskPrescaled to drawImageMaskRegular.
+
+ poppler/CairoOutputDev.cc | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+commit cceb80b353ca748d1e04373d238195fd548319b8
+Author: Carlos Garcia Campos <cgarcia@igalia.com>
+Date:   Sun Sep 24 08:24:44 2017 +0200
+
+    glib: Make g-ir-scanner always link to the libs in build directory
+
+    It was using the installed libraries, causing a build failure when
+    there's new API added to the poppler core.
+
+ glib/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2afde7084ab55893182c2da59c429b48eb5d5a35
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 22 18:18:54 2017 +0200
+
+    Remove GlobalParams::splashResolution
+
+    Noone was setting or getting the variable
+
+ poppler/GlobalParams.h | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit df783c5d10490e94e911316a6f42bb2d91a22dea
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 22 18:18:50 2017 +0200
+
+    Add a const to the static structure
+
+ poppler/GlobalParamsWin.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit a309cbfdd831b37461284b95763ca5a872e6af2b
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 22 18:18:46 2017 +0200
+
+    Remove GlobalParams::setPSFile
+
+    It had a setter but not a getter so wasn't used for anything
+
+ poppler/GlobalParams.cc | 13 -------------
+ poppler/GlobalParams.h  |  2 --
+ 2 files changed, 15 deletions(-)
+
+commit 7af5f7cadbdb89e0eaab148940c2c65cb12cc6d6
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 22 18:18:42 2017 +0200
+
+    Remove GlobalParams::ccFontFiles
+
+    it was never filled so it was basically a noop
+
+ poppler/GfxFont.cc      | 10 ----------
+ poppler/GlobalParams.cc | 14 --------------
+ poppler/GlobalParams.h  |  3 ---
+ 3 files changed, 27 deletions(-)
+
+commit b5f8be7ede64e55d44ed484797a66ca068ba955f
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 22 18:18:39 2017 +0200
+
+    Remove GlobalParams::fontDirs
+
+    It was only read but never filled so it was basically a noop
+
+ poppler/GlobalParams.cc | 31 +------------------------------
+ poppler/GlobalParams.h  |  1 -
+ 2 files changed, 1 insertion(+), 31 deletions(-)
+
+commit 3463537624a24e3bdcaa42c135d337c6cd452ea5
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 22 18:18:22 2017 +0200
+
+    Remove GlobalParams::getPSResidentFont*
+
+    There was no way to set its contents so it's basically a noop
+
+ poppler/GfxFont.cc      | 38 ----------------------
+ poppler/GlobalParams.cc | 85
+ -------------------------------------------------
+ poppler/GlobalParams.h  | 29 -----------------
+ poppler/PSOutputDev.cc  |  6 ----
+ 4 files changed, 158 deletions(-)
+
+commit 851bc59c6f4b007333d064af5c6992702b92cdf6
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Thu Sep 21 20:45:52 2017 +0200
+
+    Remove the autotools based build system
+
+ .gitignore                       |   20 +-
+ INSTALL                          |  244 ++------
+ INSTALL.cmake                    |   76 ---
+ Makefile.am                      |  133 -----
+ autogen.sh                       |  117 ----
+ configure.ac                     | 1154
+ --------------------------------------
+ cpp/Makefile.am                  |   74 ---
+ cpp/tests/Makefile.am            |   21 -
+ fofi/Makefile.am                 |   28 -
+ glib/Makefile.am                 |  122 ----
+ glib/demo/Makefile.am            |   56 --
+ glib/poppler-features.h.in       |   88 ---
+ glib/reference/Makefile.am       |   92 ---
+ glib/reference/version.xml.in    |    1 -
+ goo/Makefile.am                  |   69 ---
+ poppler-cairo-uninstalled.pc.in  |    6 -
+ poppler-cairo.pc.in              |    9 -
+ poppler-cpp-uninstalled.pc.in    |    7 -
+ poppler-cpp.pc.in                |   13 -
+ poppler-glib-uninstalled.pc.in   |    7 -
+ poppler-glib.pc.in               |   13 -
+ poppler-qt4-uninstalled.pc.in    |    7 -
+ poppler-qt4.pc.in                |   13 -
+ poppler-qt5-uninstalled.pc.in    |    7 -
+ poppler-qt5.pc.in                |   13 -
+ poppler-splash-uninstalled.pc.in |    7 -
+ poppler-splash.pc.in             |    9 -
+ poppler-uninstalled.pc.in        |    6 -
+ poppler.pc.in                    |   11 -
+ poppler/Makefile.am              |  348 ------------
+ poppler/poppler-config.h.in      |  196 -------
+ qt4/Makefile.am                  |    1 -
+ qt4/demos/Makefile.am            |   65 ---
+ qt4/src/Makefile.am              |   76 ---
+ qt4/tests/Makefile.am            |  141 -----
+ qt5/Makefile.am                  |    1 -
+ qt5/demos/Makefile.am            |   65 ---
+ qt5/src/Makefile.am              |   78 ---
+ qt5/tests/Makefile.am            |  141 -----
+ splash/Makefile.am               |   73 ---
+ test/Makefile.am                 |   67 ---
+ utils/Makefile.am                |  155 -----
+ 42 files changed, 43 insertions(+), 3787 deletions(-)
+
+commit 1a33f60da2996ea64c1b903580885697940cf046
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Thu Sep 21 20:32:25 2017 +0200
+
+    Add some constness to the basic classes
+
+ goo/GooString.cc  |   2 +-
+ goo/GooString.h   |   2 +-
+ poppler/Array.cc  |   8 +--
+ poppler/Array.h   |  12 ++---
+ poppler/Dict.cc   |  18 +++----
+ poppler/Dict.h    |  26 +++++-----
+ poppler/Object.cc |   4 +-
+ poppler/Object.h  | 152
+ +++++++++++++++++++++++++++---------------------------
+ 8 files changed, 112 insertions(+), 112 deletions(-)
+
+commit 135843fa8398364e0559c2b0b96f9be4a44572c5
+Author: Carlos Garcia Campos <cgarcia@igalia.com>
+Date:   Wed Sep 20 19:38:14 2017 +0200
+
+    Add gtk-doc support to CMake build
+
+ CMakeLists.txt                |   4 +-
+ glib/CMakeLists.txt           |   4 +
+ glib/reference/CMakeLists.txt |  12 ++
+ gtkdoc.py                     | 440
+ ++++++++++++++++++++++++++++++++++++++++++
+ make-glib-api-docs            |  66 +++++++
+ 5 files changed, 525 insertions(+), 1 deletion(-)
+
+commit e51db61a33cdbe6307f048b65912a85f6cd1ec5b
+Author: William Bader <william@newspapersystems.com>
+Date:   Wed Sep 20 19:36:46 2017 +0200
+
+    PSOutputDev: Fix wrong text generation
+
+    This patch moves the code to update the max valid glyph hash into its
+    own function and updates the max valid glyph only if the new value is
+    higher than the previous value.
+    This fixes a problem with pages that have multiple copies of the same
+    font with different glyph counts. If poppler processed the font
+    with the
+    smaller count last, and then the PDF wrote text in the font with the
+    larger count, pdftops would not show the glyphs above the maximum
+    of the
+    smaller font.
+
+    Bug #102760
+
+ poppler/PSOutputDev.cc | 16 ++++++++++------
+ poppler/PSOutputDev.h  |  1 +
+ 2 files changed, 11 insertions(+), 6 deletions(-)
+
+commit 6665839b5ce2e4f6fb2acc682ce2f91ed2404ce8
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Wed Sep 20 19:36:29 2017 +0200
+
+    qt5: The tests don't need GUI
+
+ qt5/tests/check_actualtext.cpp     | 2 +-
+ qt5/tests/check_attachments.cpp    | 2 +-
+ qt5/tests/check_dateConversion.cpp | 2 +-
+ qt5/tests/check_fonts.cpp          | 2 +-
+ qt5/tests/check_goostring.cpp      | 2 +-
+ qt5/tests/check_lexer.cpp          | 2 +-
+ qt5/tests/check_links.cpp          | 2 +-
+ qt5/tests/check_metadata.cpp       | 2 +-
+ qt5/tests/check_optcontent.cpp     | 2 +-
+ qt5/tests/check_pagelabelinfo.cpp  | 2 +-
+ qt5/tests/check_pagelayout.cpp     | 2 +-
+ qt5/tests/check_pagemode.cpp       | 2 +-
+ qt5/tests/check_password.cpp       | 2 +-
+ qt5/tests/check_permissions.cpp    | 2 +-
+ qt5/tests/check_search.cpp         | 2 +-
+ qt5/tests/check_strings.cpp        | 2 +-
+ 16 files changed, 16 insertions(+), 16 deletions(-)
+
+commit 26a067d4a84f80eeb892e30a5ab608d0fbea1de5
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Wed Sep 20 10:36:04 2017 +0200
+
+    Remove the moc includes
+
+    Some people are having trouble with them and automoc really should
+    be taking care of this so no need to have the include. Let's hope this
+    doesn't break some other people :D
+
+ qt5/demos/abstractinfodock.cpp  | 1 -
+ qt5/demos/embeddedfiles.cpp     | 1 -
+ qt5/demos/fonts.cpp             | 1 -
+ qt5/demos/info.cpp              | 1 -
+ qt5/demos/metadata.cpp          | 1 -
+ qt5/demos/navigationtoolbar.cpp | 1 -
+ qt5/demos/optcontent.cpp        | 1 -
+ qt5/demos/pageview.cpp          | 1 -
+ qt5/demos/permissions.cpp       | 1 -
+ qt5/demos/thumbnails.cpp        | 1 -
+ qt5/demos/toc.cpp               | 1 -
+ qt5/demos/viewer.cpp            | 1 -
+ qt5/src/poppler-optcontent.cc   | 1 -
+ 13 files changed, 13 deletions(-)
+
+commit 939465c40902d72e0c05d4f3a27ee67e4a007ed7
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Tue Sep 19 21:19:03 2017 +0200
+
+    Fix crash in broken files
+
+    Bug #102854
+
+ poppler/Stream.cc | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+commit a8aa61f774503c9ebd840e148c4fa31a6959600d
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Tue Sep 19 21:17:49 2017 +0200
+
+    autotools: Fix build
+
+ qt5/src/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 6b82904b717994c887f33bfc72e4999363fc8e72
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Sun Sep 17 23:03:48 2017 +0200
+
+    Fix printf-like format warnings
+
+ poppler/Stream.h  | 2 +-
+ test/perf-test.cc | 2 ++
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+commit b26924e32128b7ba57260e9fdc54be1893bcff77
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Sun Sep 17 02:06:32 2017 +0200
+
+    A few more static markers
+
+ test/perf-test.cc         | 2 +-
+ utils/pdftocairo-win32.cc | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 4a4e291246f238731429729e10633ee1f627eb77
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Sun Sep 17 01:58:36 2017 +0200
+
+    Make newer gcc happy about fallthrough
+
+    on HtmlOutputDev.cc fixes a leak when printHtml is false
+
+ fofi/FoFiTrueType.cc       | 2 ++
+ poppler/Annot.cc           | 4 ++--
+ poppler/SplashOutputDev.cc | 8 ++++++++
+ splash/Splash.cc           | 2 ++
+ utils/HtmlOutputDev.cc     | 9 ++++-----
+ 5 files changed, 18 insertions(+), 7 deletions(-)
+
+commit 0790dd3afb8370aebca8e7e154bbd2b5ae5cd5a2
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Sat Sep 16 18:01:49 2017 +0200
+
+    Fix missing-declarations warnings
+
+    ... and add it to default warning set
+
+ cmake/modules/PopplerMacros.cmake |  2 +-
+ cpp/tests/poppler-dump.cpp        |  2 +-
+ glib/poppler-action.cc            |  1 +
+ goo/JpegWriter.cc                 |  2 +-
+ goo/gmem.h                        |  2 +-
+ poppler/Annot.cc                  |  6 ++--
+ poppler/Decrypt.cc                |  2 +-
+ poppler/TextOutputDev.cc          |  2 +-
+ qt4/src/poppler-link.cc           |  2 +-
+ qt4/src/poppler-private.cc        |  6 ++--
+ qt4/tests/check_links.cpp         |  4 +--
+ qt4/tests/poppler-forms.cpp       | 14 ++++-----
+ qt5/src/poppler-link.cc           |  2 +-
+ qt5/src/poppler-private.cc        |  6 ++--
+ qt5/tests/check_links.cpp         |  4 +--
+ qt5/tests/poppler-forms.cpp       | 18 ++++++------
+ test/perf-test-preview-dummy.cc   |  4 +++
+ test/perf-test.cc                 | 62
+ +++++++++++++++++++--------------------
+ utils/pdfinfo.cc                  |  4 +--
+ utils/pdfseparate.cc              |  2 +-
+ utils/pdfsig.cc                   |  6 ++--
+ utils/pdftotext.cc                |  2 +-
+ utils/pdfunite.cc                 |  6 ++--
+ 23 files changed, 83 insertions(+), 78 deletions(-)
+
+commit afd91b148d3d0ba025821740ff4c075b1de2fdc5
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Sat Sep 16 17:47:42 2017 +0200
+
+    Fix warning: format ‘%x’ expects argument of type ‘unsigned
+    int*’, but argument 3 has type ‘int*’
+
+ poppler/UnicodeMap.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit a0ed20f3fb8025706ad9a580f6a692316bf6df66
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Sat Sep 16 17:45:42 2017 +0200
+
+    -Woverflow fixes
+
+ cpp/poppler-private.cpp    |  4 ++--
+ glib/poppler-document.cc   |  3 +--
+ goo/GooString.cc           |  6 ++++++
+ goo/GooString.h            |  1 +
+ poppler/Annot.cc           |  9 +++------
+ poppler/Form.cc            | 13 +++++--------
+ qt4/src/poppler-private.cc |  4 ++--
+ qt5/src/poppler-private.cc |  4 ++--
+ 8 files changed, 22 insertions(+), 22 deletions(-)
+
+commit d51cc34d7d51b6ddb7bfba318ed12bcbe763be6a
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Sat Sep 16 17:35:15 2017 +0200
+
+    -pedantic fixes
+
+ glib/poppler-media.cc             |  2 +-
+ glib/poppler-movie.cc             |  2 +-
+ glib/poppler-structure-element.cc |  2 +-
+ goo/glibc.h                       |  2 +-
+ poppler/StructElement.cc          | 14 +++++++-------
+ utils/JSInfo.cc                   |  2 +-
+ 6 files changed, 12 insertions(+), 12 deletions(-)
+
+commit 804a823a67fedc3e633e89f817232d3c15715b56
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date:   Sat Sep 16 20:16:58 2017 +0930
+
+    cmake: restructure the warnings into a "default" and "extra" group
+
+    Most of the previous warnings are now in default. Extra warnings that
+    should be fixed but currently result in a lot of warnings are in the
+    extra group.
+
+    The old no/yes/kde COMPILE_WARNINGS option has been replaced with the
+    boolean option EXTRA_WARN (default off) to enable the extra warnings.
+
+ CMakeLists.txt                    | 18 +++++-------------
+ cmake/modules/PopplerMacros.cmake | 32 ++++++++++++++++++++++++--------
+ 2 files changed, 29 insertions(+), 21 deletions(-)
+
+commit 6d40d4bad46ce1b53624feca7410b35e4fe0048d
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 15 01:07:59 2017 +0200
+
+    CurlPDFDocBuilder don't crash if given a url that doesn't exist
+
+ poppler/CurlPDFDocBuilder.cc | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit cc43c720e857548175a9e35b0686a1a7a8957f50
+Author: Oliver Sander <oliver.sander@tu-dresden.de>
+Date:   Fri Aug 18 11:51:06 2017 +0200
+
+    Replace Splash font rendering by Qt font rendering
+
+    Previously, the Arthur backend would use Splash code to do
+    its font rendering.  That was not a satisfactory solution:
+    Qt can do font rendering directly.  Also, the Splash font
+    rendering in the Arthur code had a few bugs, which lead
+    to legible-but-not-pretty fonts.
+
+    This patch replaces the Splash font rendering by Qt font
+    rendering.  Some Splash code will have to remain, because
+    Qt seems unable to do the proper charcode-to-glyph-index
+    transformations.
+
+    I took a lot of inspiration from Mihai Niculescu's patch at
+
+      https://lists.freedesktop.org/archives/poppler/2013-June/010370.html
+
+    That's why the patch adds Mihai's name in the copyright list.
+
+ qt5/src/ArthurOutputDev.cc | 254
+ +++++++++++++++++++++++++--------------------
+ qt5/src/ArthurOutputDev.h  |  31 +++++-
+ splash/SplashFTFontFile.cc |   4 +
+ splash/SplashFTFontFile.h  |   3 +
+ 4 files changed, 177 insertions(+), 115 deletions(-)
+
+commit da63c35549e8852a410946ab016a3f25ac701bdf
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Thu Sep 14 19:14:41 2017 +0200
+
+    FoFiType1C::convertToType0: Fix crash in broken files
+
+    Bug #102724
+
+ fofi/FoFiType1C.cc | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 504b3590182175390f474657a372e78fb1508262
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Thu Sep 14 19:14:23 2017 +0200
+
+    Splash::scaleImage: Do not try to scale if srcHeight or srcWidth
+    are < 1
+
+    Bug #102719
+
+ splash/Splash.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 500ce88a3b5b0bd556ac6941ba66a86cae44663a
+Author: Oliver Sander <oliver.sander@tu-dresden.de>
+Date:   Wed Sep 13 12:12:29 2017 +0200
+
+    Fix two minor typos
+
+ qt5/tests/test-render-to-file.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 80f9819b6233f9f9b5fd44f0e4cad026e5d048c2
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Wed Sep 13 23:09:45 2017 +0200
+
+    isImageInterpolationRequired: Fix divide by 0 on broken documents
+
+    Bug #102688
+
+ splash/Splash.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit aaf5327649e8f7371c9d3270e7813c43ddfd47ee
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Wed Sep 13 23:01:03 2017 +0200
+
+    Gfx::doShowText: Fix infinite recursion on broken files
+
+    Bug #102701
+
+ poppler/Gfx.cc     | 25 +++++++++++++++++++++++--
+ poppler/Gfx.h      |  1 +
+ poppler/GfxFont.cc |  8 ++++++++
+ poppler/GfxFont.h  |  1 +
+ 4 files changed, 33 insertions(+), 2 deletions(-)
+
+commit 476394e7a025e02e4897da2e765df2c895d0708f
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Wed Sep 13 22:58:14 2017 +0200
+
+    XRef::parseEntry: Fix crash in broken file
+
+    Bug #102687
+
+ poppler/XRef.cc | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 0f891b85169dabd3d23348aba40266547bd4bcf6
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date:   Wed Sep 13 20:12:52 2017 +0930
+
+    pdfinfo: don't truncate dest name
+
+ utils/pdfinfo.cc | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 951e7b3c1f337ceaf490edce3c575f89c45cb6d4
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date:   Wed Sep 13 19:24:07 2017 +0930
+
+    cmake: ensure user cflags/cxxflags are appended to end
+
+ cmake/modules/PopplerMacros.cmake | 44
+ +++++++++++++++++++++------------------
+ 1 file changed, 24 insertions(+), 20 deletions(-)
+
+commit a5c616a65a77bf597836cced6f987e5b93480ca5
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date:   Mon Sep 11 20:55:01 2017 +0930
+
+    cmake INSTALL file
+
+ INSTALL.cmake | 76
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 76 insertions(+)
+
+commit a5e5649ecf16fa05770620dbbd4985935dc2bbff
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Mon Sep 11 12:35:16 2017 +0200
+
+    Fix crash in FoFiType1C::convertToType0 in broken files
+
+    Bug #102653
+
+ fofi/FoFiType1C.cc | 435
+ +++++++++++++++++++++++++++--------------------------
+ 1 file changed, 220 insertions(+), 215 deletions(-)
+
+commit 325887ebef8ea1c6ef9d3607a59d95ffea383986
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Sun Sep 10 17:41:47 2017 +0200
+
+    Make JBIG2Stream::readGenericBitmap return cleanly on error
+
+    instead of causing abort
+
+    Also fixes warning when compiled with newer gcc
+
+ poppler/JBIG2Stream.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit f253a28f4c5bb65c363d31b8b46f984c660499ee
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 8 19:05:36 2017 +0200
+
+    qt5: in development -> is stable
+
+    The API itself is done-ish even if it gets improvements from time to
+    time. In development seems to imply "don't use me yet"
+
+ qt5/src/Mainpage.dox | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 1316c7a41f4dd7276f404f775ebb5fef2d24ab1c
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 8 18:29:42 2017 +0200
+
+    Annot: Fix crash on broken files
+
+    Bug #102607
+
+ poppler/Annot.cc | 42 +++++++++++++++++++++++-------------------
+ 1 file changed, 23 insertions(+), 19 deletions(-)
+
+commit 2532df6060092e9fab7f041ae9598aff9cdd94bb
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 8 18:28:15 2017 +0200
+
+    Annot: Fix crash on broken files
+
+    Bug #102601
+
+ poppler/Annot.cc | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 6472d8493f7e82cc78b41da20a2bf19fcb4e0a7d
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 8 18:26:05 2017 +0200
+
+    SplashOutputDev: Fix crash on broken files
+
+    Bug #102604
+
+ poppler/SplashOutputDev.cc | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 3ab44e2a77b560198c1e1616cfb39c1ac7374e29
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Fri Sep 8 18:21:40 2017 +0200
+
+    Remove unmaintained TODO file
+
+ TODO | 40 ----------------------------------------
+ 1 file changed, 40 deletions(-)
+
+commit dfcf997e6fbca31dbe051fbd9c32aca818825e38
+Author: Hans-Ulrich Jüttner <huj@froreich-bioscientia.de>
+Date:   Wed Sep 6 11:03:52 2017 +0200
+
+    Added methods to get and set the font size of text fields
+
+    Fixes bug #101692
+
+ poppler/Annot.cc        | 24 +++----------
+ poppler/Form.cc         | 92
+ +++++++++++++++++++++++++++++++++++++++++++++++++
+ poppler/Form.h          | 16 +++++++++
+ qt5/src/poppler-form.cc | 12 ++++++-
+ qt5/src/poppler-form.h  | 10 ++++++
+ 5 files changed, 134 insertions(+), 20 deletions(-)
+
+commit 0bda8bb8eda838316a61238441665abfd24eb020
+Author: Oliver Sander <oliver.sander@tu-dresden.de>
+Date:   Thu Sep 7 19:55:54 2017 +0200
+
+    Disable glib if cairo is not found
+
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 118cd73a3c4eba78bbfed16cfc2996dec5491944
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Wed Sep 6 19:42:26 2017 +0200
+
+    cmake: Give people the option to build poppler as a static library
+
+ CMakeLists.txt | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 766a32ff59dadd9ae4639d8a79861a17be6aec52
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date:   Tue Sep 5 20:55:45 2017 +0930
+
+    cmake: add options to disable glib/qt4/qt5
+
+ CMakeLists.txt | 54
+ ++++++++++++++++++++++++++++++++++--------------------
+ 1 file changed, 34 insertions(+), 20 deletions(-)
+
+commit 101aba9a8d6623bca419946262fea6b46a790454
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Tue Sep 5 19:34:12 2017 +0200
+
+    cmake: Fix build when using a cairo different than the system one
+
+ glib/demo/CMakeLists.txt | 2 +-
+ test/CMakeLists.txt      | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 1d3f00e8c53dbbd3a8409993b7b66667df434b5d
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date:   Tue Sep 5 06:39:49 2017 +0930
+
+    ignore build directory
+
+ .gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 340a99f580b9f7b6add831e9a0252574bfea66f2
+Author: Oliver Sander <oliver.sander@tu-dresden.de>
+Date:   Fri Sep 1 22:16:49 2017 +0200
+
+    Control whether renderToImage shows annotations
+
+    I'd like to control whether the renderToImage and renderToPainter
+    methods show annotations or not. To this end, this patch introduces
+    a new value 'HideAnnotations' to the Document::RenderHint enum.
+
+ qt5/src/poppler-page.cc | 36 ++++++++++++++++++++++++++++++++++--
+ qt5/src/poppler-qt5.h   |  3 ++-
+ 2 files changed, 36 insertions(+), 3 deletions(-)
+
+commit dd80c182cbcb188af0dd590f222ba9bbb31e3fb7
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Mon Sep 4 19:36:06 2017 +0200
+
+    Fix building with old clang
+
+ poppler/StructElement.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit a22cd0badbc177f8a2eedb0386895ddf3379c618
+Author: Albert Astals Cid <aacid@kde.org>
+Date:   Sun Sep 3 23:35:08 2017 +0200
+
+    Initial make dist support in cmake
+
+ .gitattributes | 5 +++++
+ CMakeLists.txt | 9 +++++++++
+ 2 files changed, 14 insertions(+)
+
 commit 85bfedad416906b1a5dff377d470387692b5ca70
 Author: Albert Astals Cid <aacid@kde.org>
 Date:   Sun Sep 3 22:54:32 2017 +0200
diff --git a/source/libs/poppler/poppler-src/INSTALL b/source/libs/poppler/poppler-src/INSTALL
index 56b077d6a..7b5d65856 100644
--- a/source/libs/poppler/poppler-src/INSTALL
+++ b/source/libs/poppler/poppler-src/INSTALL
@@ -1,236 +1,76 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
-Software Foundation, Inc.
-
-This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-
 Basic Installation
 ==================
 
-These are generic installation instructions.
-
-   The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation.  It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions.  Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
-   It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  (Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.)
-
-   If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release.  If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
-   The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
-  1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
-
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
-
-  2. Type `make' to compile the package.
-
-  3. Optionally, type `make check' to run any self-tests that come with
-     the package.
-
-  4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
-     source code directory by typing `make clean'.  To also remove the
-     files that `configure' created (so you can compile the package for
-     a different kind of computer), type `make distclean'.  There is
-     also a `make maintainer-clean' target, but that is intended mainly
-     for the package's developers.  If you use it, you may have to get
-     all sorts of other programs in order to regenerate files that came
-     with the distribution.
-
-Compilers and Options
-=====================
-
-Some systems require unusual options for compilation or linking that the
-`configure' script does not know about.  Run `./configure --help' for
-details on some of the pertinent environment variables.
-
-   You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment.  Here
-is an example:
-
-     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
-
-   *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
-You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
-   If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory.  After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
-
-Installation Names
-==================
-
-By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc.  You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PREFIX'.
+mkdir build
+cd build
+cmake ..
+make
+make install
 
-   You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.  If you
-give `configure' the option `--exec-prefix=PREFIX', the package will
-use PREFIX as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
 
-   In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
+CMake configuration options can be set using the -D option. eg
 
-   If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
+  cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=release
 
-Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System).  The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
 
-   For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
+Build Options
+=============
 
-Specifying the System Type
-==========================
+Set install prefix:
 
-There may be some features `configure' cannot figure out automatically,
-but needs to determine by the type of machine the package will run on.
-Usually, assuming the package is built to be run on the _same_
-architectures, `configure' can figure that out, but if it prints a
-message saying it cannot guess the machine type, give it the
-`--build=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
+  -DCMAKE_INSTALL_PREFIX=<path>
 
-     CPU-COMPANY-SYSTEM
+Set build type. This sets the standard compiler flags for the build
+type.
 
-where SYSTEM can have one of these forms:
+  -DCMAKE_BUILD_TYPE=debug  or  -DCMAKE_BUILD_TYPE=release
 
-     OS KERNEL-OS
+Set compiler flags:
 
-   See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
+  -DCMAKE_CXX_FLAGS=<flags>   or set CXXFLAGS environment variable
 
-   If you are _building_ compiler tools for cross-compiling, you should
-use the `--target=TYPE' option to select the type of system they will
-produce code for.
+Set linker flags:
 
-   If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
+  -DCMAKE_LD_FLAGS=<flags>   or set LDFLAGS environment variable
 
-Sharing Defaults
-================
 
-If you want to set default values for `configure' scripts to share, you
-can create a site shell script called `config.site' that gives default
-values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists.  Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
-Variables not defined in a site shell script can be set in the
-environment passed to `configure'.  However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost.  In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'.  For example:
-
-     ./configure CC=/usr/local2/bin/gcc
+Optional Features
+=================
 
-causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).  Here is a another example:
+  -D<FEATURE>=<ON|OFF>
 
-     /bin/bash ./configure CONFIG_SHELL=/bin/bash
+eg
 
-Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
-configuration-related scripts to be executed by `/bin/bash'.
+  -DENABLE_SPLASH=ON -DBUILD_GTK_TESTS=OFF
 
-`configure' Invocation
-======================
+A list of all options can be display with the commmand:
 
-`configure' recognizes the following options to control how it operates.
+  egrep '^ *(option|set.*STRING)' CMakeLists.txt
 
-`--help'
-`-h'
-     Print a summary of the options to `configure', and exit.
+Alternatively, the options can be edited by running "ccmake ." in the
+build directory.
 
-`--version'
-`-V'
-     Print the version of Autoconf used to generate the `configure'
-     script, and exit.
 
-`--cache-file=FILE'
-     Enable the cache: use and save the results of the tests in FILE,
-     traditionally `config.cache'.  FILE defaults to `/dev/null' to
-     disable caching.
+Cross Compiling
+===============
 
-`--config-cache'
-`-C'
-     Alias for `--cache-file=config.cache'.
+A toolchain file is required to specify the target specific compiler
+tools. Run cmake with the option:
 
-`--quiet'
-`--silent'
-`-q'
-     Do not print messages saying which checks are being made.  To
-     suppress all normal output, redirect it to `/dev/null' (any error
-     messages will still be shown).
+  -DCMAKE_TOOLCHAIN_FILE=<Toolchain file>
 
-`--srcdir=DIR'
-     Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
+A sample toolchain for a 64-bit mingw build is shown below. Replace
+/path/to/win/root with the install prefix for the target environment.
 
-`configure' also accepts some other, not widely useful, options.  Run
-`configure --help' for more details.
+  SET(CMAKE_SYSTEM_NAME Windows)
+  SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
+  SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
+  SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
+  SET(CMAKE_FIND_ROOT_PATH  /usr/x86_64-w64-mingw32 /path/to/win/root )
+  set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+  set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
 
diff --git a/source/libs/poppler/poppler-src/Makefile.am b/source/libs/poppler/poppler-src/Makefile.am
deleted file mode 100644
index bf878bad4..000000000
--- a/source/libs/poppler/poppler-src/Makefile.am
+++ /dev/null
@@ -1,133 +0,0 @@
-ACLOCAL_AMFLAGS = -I m4
-DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --with-testdatadir=$(TESTDATADIR)
-
-if BUILD_SPLASH_OUTPUT
-splash_subdir = splash
-splash_pc_file = poppler-splash.pc
-endif
-
-if BUILD_CAIRO_OUTPUT
-cairo_pc_file = poppler-cairo.pc
-endif
-
-if BUILD_POPPLER_GLIB
-glib_subdir = glib
-glib_pc_file = poppler-glib.pc
-endif
-
-if BUILD_POPPLER_QT5
-qt5_subdir = qt5
-qt5_pc_file = poppler-qt5.pc
-endif
-
-if BUILD_POPPLER_QT4
-qt4_subdir = qt4
-qt4_pc_file = poppler-qt4.pc
-endif
-
-
-if BUILD_POPPLER_CPP
-cpp_subdir = cpp
-cpp_pc_file = poppler-cpp.pc
-endif
-
-SUBDIRS = goo fofi $(splash_subdir) poppler utils $(glib_subdir) test $(qt4_subdir) $(qt5_subdir) $(cpp_subdir)
-
-EXTRA_DIST =					\
-	README-XPDF				\
-	poppler.pc.in				\
-	poppler-uninstalled.pc.in		\
-	poppler-cairo.pc.in			\
-	poppler-cairo-uninstalled.pc.in		\
-	poppler-splash.pc.in			\
-	poppler-splash-uninstalled.pc.in	\
-	poppler-qt4.pc.in			\
-	poppler-qt4-uninstalled.pc.in		\
-	poppler-qt5.pc.in			\
-	poppler-qt5-uninstalled.pc.in		\
-	poppler-cpp.pc.in			\
-	poppler-cpp-uninstalled.pc.in
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA =				\
-	poppler.pc				\
-	$(cairo_pc_file)			\
-	$(splash_pc_file)			\
-	$(glib_pc_file)				\
-	$(qt4_pc_file)				\
-	$(qt5_pc_file)				\
-	$(cpp_pc_file)
-
-# Add CMake buildsystem files here so they get added on make dist
-EXTRA_DIST +=							\
-	cpp/tests/CMakeLists.txt				\
-	cpp/CMakeLists.txt					\
-	glib/demo/CMakeLists.txt				\
-	glib/CMakeLists.txt					\
-	glib/poppler-features.h.cmake				\
-	qt4/src/CMakeLists.txt					\
-	qt4/tests/CMakeLists.txt				\
-	qt4/CMakeLists.txt					\
-	qt4/demos/CMakeLists.txt				\
-	qt5/src/CMakeLists.txt					\
-	qt5/tests/CMakeLists.txt				\
-	qt5/CMakeLists.txt					\
-	qt5/demos/CMakeLists.txt				\
-	test/CMakeLists.txt					\
-	utils/CMakeLists.txt					\
-	CMakeLists.txt						\
-	ConfigureChecks.cmake					\
-	cmake/modules/CheckFileOffsetBits.c			\
-	cmake/modules/CheckFileOffsetBits.cmake			\
-	cmake/modules/COPYING-CMAKE-SCRIPTS			\
-	cmake/modules/FindCairo.cmake				\
-	cmake/modules/FindFontconfig.cmake			\
-	cmake/modules/FindGLIB.cmake				\
-	cmake/modules/FindGObjectIntrospection.cmake		\
-	cmake/modules/FindGTK.cmake				\
-	cmake/modules/FindIconv.cmake				\
-	cmake/modules/FindLCMS.cmake				\
-	cmake/modules/FindLCMS2.cmake				\
-        cmake/modules/FindNSS3.cmake				\
-	cmake/modules/FindQt4.cmake				\
-	cmake/modules/GObjectIntrospectionMacros.cmake		\
-	cmake/modules/MacroBoolTo01.cmake			\
-	cmake/modules/MacroEnsureVersion.cmake			\
-	cmake/modules/MacroOptionalFindPackage.cmake		\
-	cmake/modules/MacroPushRequiredVars.cmake		\
-	cmake/modules/PopplerDefaults.cmake			\
-	cmake/modules/PopplerMacros.cmake			\
-	cmake/modules/FindLIBOPENJPEG.cmake			\
-	cmake/modules/FindLIBOPENJPEG2.cmake			\
-	config.h.cmake						\
-	poppler-cairo.pc.cmake					\
-	poppler/poppler-config.h.cmake				\
-	poppler-cpp.pc.cmake					\
-	poppler-glib.pc.cmake					\
-	poppler-qt4.pc.cmake					\
-	poppler-qt5.pc.cmake					\
-	poppler-splash.pc.cmake					\
-	poppler.pc.cmake
-
-
-
-distclean-local:
-	if test "$(srcdir)" = "."; then :; else \
-		rm -f ChangeLog; \
-	fi
-
-ChangeLog:
-	$(AM_V_GEN) if test -d "$(srcdir)/.git"; then \
-	  (GIT_DIR=$(top_srcdir)/.git ./missing --run git log --stat) | fmt --split-only > $@.tmp \
-	  && mv -f $@.tmp $@ \
-	  || ($(RM) $@.tmp; \
-	      echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
-	      (test -f $@ || echo git log is required to generate this file >> $@)); \
-	else \
-	  test -f $@ || \
-	  (echo A git checkout and git log is required to generate ChangeLog >&2 && \
-	  echo A git checkout and git log is required to generate this file >> $@); \
-	fi
-
-.PHONY: ChangeLog
-
diff --git a/source/libs/poppler/poppler-src/README.contributors b/source/libs/poppler/poppler-src/README.contributors
new file mode 100644
index 000000000..5e45331e6
--- /dev/null
+++ b/source/libs/poppler/poppler-src/README.contributors
@@ -0,0 +1,21 @@
+If you want to become or are a poppler contributor, this is a README for you, keep reading!
+
+Licensing
+---------
+Only send patches to poppler if you agree to license (or relicense) them under
+GPLv2 and later (or something more permissive that can be "upgraded" to GPLv2
+and later). If you do not agree to this license, please explain the problem / bug
+and how you would solve it in words instead of code.
+
+By default all patches attached to the bugzilla or sent to the mailing list will
+be assumed to agree with the licensing expressed here.
+
+Channels of contact
+-------------------
+Poppler has three main channels of contact:
+ * The poppler mailing list http://lists.freedesktop.org/mailman/listinfo/poppler
+ * The poppler bug tracker (bugzilla) http://bugs.freedesktop.org
+ * The #poppler channel at the freenode network
+Do not hesitate to drop by talk to people there.
+
+And keep hacking on poppler!
diff --git a/source/libs/poppler/poppler-src/TODO b/source/libs/poppler/poppler-src/TODO
deleted file mode 100644
index e067c2a31..000000000
--- a/source/libs/poppler/poppler-src/TODO
+++ /dev/null
@@ -1,40 +0,0 @@
-* general items:
-	- Investigate better (that is, normal) text selection.
-	- Use PDF font descriptors to create an FcPattern.
-	- Add simle performance benchmark that takes a pdf and renders
-	  every page 100 times or so.  Start keeping track of
-	  performance.
-	- make color space conversion stuff more sane (right now we
-	  hack around some of it in the cairo backend)
-	- move away from getChar to a more read(2) like interface
-
-* core:
-	- use libtiff for ccitt decoding?
-
-* Qt4 frontend:
-	- expose Rendition media through the MovieObject API
-	- use Q_GLOBAL_STATIC for GlobalParams?
-	- use QSettings or another system for loading/saving Document/global settings?
-	- expose API for lcms/color management system
-	- make the ArthurOutputDev optional
-
-* glib frontend:
-        - Sound/Movie actions support
-	- API to create annotations
-
-* new frontends:
-	- Java/JNI-based frontend for Android
-
-* cairo backend:
-  	- Implement linear/radial gradients with cairo gradients
-	- PDF Blend Modes
-	- Make the cairo backend feature complete and optimize the
-	  heck out of it.
-
-Jeff Muizelaar's TODO:
-	Short Term:
-	- factor out some of the color conversion code from CairoOutputDev and ArthurOutputDev.
-	- fix patterned text fills.
-	Long Term:
-	- use cairo glyph cache for type3 fonts.
-	- try to use cairo pattern support.
diff --git a/source/libs/poppler/poppler-src/config.h.cmake b/source/libs/poppler/poppler-src/config.h.cmake
deleted file mode 100644
index a8e1bbd7a..000000000
--- a/source/libs/poppler/poppler-src/config.h.cmake
+++ /dev/null
@@ -1,255 +0,0 @@
-/* config.h.  Generated from config.h.cmake by cmake.  */
-
-/* Build against libcurl. */
-#cmakedefine ENABLE_LIBCURL 1
-
-/* Use libjpeg instead of builtin jpeg decoder. */
-#cmakedefine ENABLE_LIBJPEG 1
-
-/* Use libopenjpeg instead of builtin jpeg2000 decoder. */
-#cmakedefine ENABLE_LIBOPENJPEG 1
-
-/* Build against libtiff. */
-#cmakedefine ENABLE_LIBTIFF 1
-
-/* Build against libpng. */
-#cmakedefine ENABLE_LIBPNG 1
-
-/* Do not hardcode the library location */
-#cmakedefine ENABLE_RELOCATABLE 1
-
-/* Build against zlib. */
-#cmakedefine ENABLE_ZLIB 1
-
-/* Use zlib instead of builtin zlib decoder to uncompress flate streams. */
-#cmakedefine ENABLE_ZLIB_UNCOMPRESS 1
-
-/* Build against libnss3 for digital signature validation */
-#cmakedefine ENABLE_NSS3 1
-
-/* Use cairo for rendering. */
-#cmakedefine HAVE_CAIRO 1
-
-/* Do we have any DCT decoder?. */
-#cmakedefine HAVE_DCT_DECODER 1
-
-/* Do we have any JPX decoder?. */
-#cmakedefine HAVE_JPX_DECODER 1
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
-#cmakedefine HAVE_DIRENT_H 1
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#cmakedefine HAVE_DLFCN_H 1
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#cmakedefine HAVE_FCNTL_H 1
-
-/* Have FreeType2 include files */
-#cmakedefine HAVE_FREETYPE_H 1
-
-/* Define to 1 if you have the `fseek64' function. */
-#cmakedefine HAVE_FSEEK64 1
-
-/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
-#cmakedefine HAVE_FSEEKO 1
-
-/* Define to 1 if you have the `ftell64' function. */
-#cmakedefine HAVE_FTELL64 1
-
-/* Define to 1 if you have the `pread64' function. */
-#cmakedefine HAVE_PREAD64 1
-
-/* Define to 1 if you have the `lseek64' function. */
-#cmakedefine HAVE_LSEEK64 1
-
-/* Defines if gettimeofday is available on your system */
-#cmakedefine HAVE_GETTIMEOFDAY 1
-
-/* Defines if gmtime_r is available on your system */
-#cmakedefine HAVE_GMTIME_R 1
-
-/* Defines if timegm is available on your system */
-#cmakedefine HAVE_TIMEGM 1
-
-/* Define if you have the iconv() function and it works. */
-#cmakedefine HAVE_ICONV 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#cmakedefine HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the `openjpeg' library (-lopenjpeg). */
-#cmakedefine HAVE_LIBOPENJPEG 1
-
-/* Define to 1 if you have the `z' library (-lz). */
-#cmakedefine HAVE_LIBZ 1
-
-/* Defines if localtime_r is available on your system */
-#cmakedefine HAVE_LOCALTIME_R 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#cmakedefine HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `mkstemp' function. */
-#cmakedefine HAVE_MKSTEMP 1
-
-/* Define to 1 if you have the `mkstemps' function. */
-#cmakedefine HAVE_MKSTEMPS 1
-
-/* Define to 1 if you have the `rand_r' function. */
-#cmakedefine HAVE_RAND_R 1
-
-/* Define to 1 if you have the `strcpy_s' function. */
-#cmakedefine HAVE_STRCPY_S 1
-
-/* Define to 1 if you have the `strcat_s' function. */
-#cmakedefine HAVE_STRCAT_S 1
-
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-#cmakedefine HAVE_NDIR_H 1
-
-/* Define to 1 if you have the <openjpeg.h> header file. */
-#cmakedefine HAVE_OPENJPEG_H 1
-
-/* Define to 1 if you have the `popen' function. */
-#cmakedefine HAVE_POPEN 1
-
-/* Define if you have POSIX threads libraries and header files. */
-#cmakedefine HAVE_PTHREAD 1
-
-/* Use splash for rendering. */
-#cmakedefine HAVE_SPLASH 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#cmakedefine HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#cmakedefine HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#cmakedefine HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#cmakedefine HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
-   */
-#cmakedefine HAVE_SYS_DIR_H 1
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#cmakedefine HAVE_SYS_MMAN_H 1
-
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
-   */
-#cmakedefine HAVE_SYS_NDIR_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#cmakedefine HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#cmakedefine HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#cmakedefine HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the <zlib.h> header file. */
-#cmakedefine HAVE_ZLIB_H 1
-
-/* Define to 1 if you have a big endian machine */
-#cmakedefine WORDS_BIGENDIAN 1
-
-/* Define as const if the declaration of iconv() needs const. */
-#define ICONV_CONST ${ICONV_CONST}
-
-/* Enable multithreading support. */
-#cmakedefine MULTITHREADED 1
-
-/* Generate OPI comments in PS output. */
-#cmakedefine OPI_SUPPORT 1
-
-/* Name of package */
-#define PACKAGE "poppler"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=poppler"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "poppler"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "poppler ${POPPLER_VERSION}"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "poppler"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "${POPPLER_VERSION}"
-
-/* Poppler data dir */
-#define POPPLER_DATADIR "${POPPLER_DATADIR}"
-
-/* Support for curl based doc builder is compiled in. */
-#cmakedefine POPPLER_HAS_CURL_SUPPORT 1
-
-/* Include support for CMYK rasterization */
-#cmakedefine SPLASH_CMYK 1
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Enable word list support. */
-#cmakedefine TEXTOUT_WORD_LIST 1
-
-/* Defines if use cms */
-#cmakedefine USE_CMS 1
-
-/* Use fixed point arithmetic in the Splash backend */
-#cmakedefine USE_FIXEDPOINT 1
-
-/* Use single precision arithmetic in the Splash backend */
-#cmakedefine USE_FLOAT 1
-
-/* Defines if use lcms1 */
-#cmakedefine USE_LCMS1 1
-
-/* Version number of package */
-#define VERSION "${POPPLER_VERSION}"
-
-/* Use fontconfig font configuration backend */
-#cmakedefine WITH_FONTCONFIGURATION_FONTCONFIG 1
-
-/* Use win32 font configuration backend */
-#cmakedefine WITH_FONTCONFIGURATION_WIN32 1
-
-/* OpenJPEG with the OPJ_DPARAMETERS_IGNORE_PCLR_CMAP_CDEF_FLAG flag */
-#cmakedefine WITH_OPENJPEG_IGNORE_PCLR_CMAP_CDEF_FLAG 1
-
-/* Define to 1 if the X Window System is missing or not being used. */
-/* #undef X_DISPLAY_MISSING */
-
-/*
- * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system
- * headers and I'm too lazy to write a configure test as long as only
- * unixware is related
- */
-#ifdef _UNIXWARE
-#define HAVE_BOOLEAN
-#endif
-
-/* MS defined snprintf as deprecated but then added it in Visual Studio 2015. */
-#if defined(_MSC_VER) && _MSC_VER < 1900
-#define snprintf _snprintf
-#endif
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@
-
-/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
-/* TODO This is wrong, port if needed #undef _LARGEFILE_SOURCE */
-
-/* Define for large files, on AIX-style hosts. */
-/* TODO This is wrong, port if needed #undef _LARGE_FILES */
diff --git a/source/libs/poppler/poppler-src/config.h.in b/source/libs/poppler/poppler-src/config.h.in
deleted file mode 100644
index 57479a799..000000000
--- a/source/libs/poppler/poppler-src/config.h.in
+++ /dev/null
@@ -1,290 +0,0 @@
-/* config.h.in.  Generated from configure.ac by autoheader.  */
-
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
-
-/* Build against libcurl. */
-#undef ENABLE_LIBCURL
-
-/* Use libjpeg instead of builtin unmaintained jpeg decoder. */
-#undef ENABLE_LIBJPEG
-
-/* Use libopenjpeg instead of builtin jpeg2000 decoder. */
-#undef ENABLE_LIBOPENJPEG
-
-/* Build against libpng. */
-#undef ENABLE_LIBPNG
-
-/* Build against libtiff. */
-#undef ENABLE_LIBTIFF
-
-/* Build Poppler against NSS for digital signature support. */
-#undef ENABLE_NSS3
-
-/* Do not hardcode the library location */
-#undef ENABLE_RELOCATABLE
-
-/* Build against zlib. */
-#undef ENABLE_ZLIB
-
-/* Use zlib instead of builtin zlib decoder to uncompress flate streams. */
-#undef ENABLE_ZLIB_UNCOMPRESS
-
-/* Use cairo for rendering. */
-#undef HAVE_CAIRO
-
-/* Do we have any DCT decoder?. */
-#undef HAVE_DCT_DECODER
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_DIRENT_H
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Have FreeType2 include files */
-#undef HAVE_FREETYPE_H
-
-/* Define to 1 if you have the `fseek64' function. */
-#undef HAVE_FSEEK64
-
-/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
-#undef HAVE_FSEEKO
-
-/* Define to 1 if you have the `ftell64' function. */
-#undef HAVE_FTELL64
-
-/* Defines if gettimeofday is available on your system */
-#undef HAVE_GETTIMEOFDAY
-
-/* Defines if gmtime_r is available on your system */
-#undef HAVE_GMTIME_R
-
-/* Define if you have the iconv() function and it works. */
-#undef HAVE_ICONV
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Do we have any JPX decoder?. */
-#undef HAVE_JPX_DECODER
-
-/* Define to 1 if you have the `tiff' library (-ltiff). */
-#undef HAVE_LIBTIFF
-
-/* Define to 1 if you have the `z' library (-lz). */
-#undef HAVE_LIBZ
-
-/* Defines if localtime_r is available on your system */
-#undef HAVE_LOCALTIME_R
-
-/* Define to 1 if you have the `lseek64' function. */
-#undef HAVE_LSEEK64
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `mkstemp' function. */
-#undef HAVE_MKSTEMP
-
-/* Define to 1 if you have the `mkstemps' function. */
-#undef HAVE_MKSTEMPS
-
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-#undef HAVE_NDIR_H
-
-/* Define to 1 if you have the <openjpeg.h> header file. */
-#undef HAVE_OPENJPEG_H
-
-/* Define to 1 if you have the `popen' function. */
-#undef HAVE_POPEN
-
-/* Define to 1 if you have the `pread64' function. */
-#undef HAVE_PREAD64
-
-/* Define if you have POSIX threads libraries and header files. */
-#undef HAVE_PTHREAD
-
-/* Have PTHREAD_PRIO_INHERIT. */
-#undef HAVE_PTHREAD_PRIO_INHERIT
-
-/* Defines if rand_r is available on your system */
-#undef HAVE_RAND_R
-
-/* Use splash for rendering. */
-#undef HAVE_SPLASH
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strcat_s' function. */
-#undef HAVE_STRCAT_S
-
-/* Define to 1 if you have the `strcpy_s' function. */
-#undef HAVE_STRCPY_S
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_SYS_DIR_H
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#undef HAVE_SYS_MMAN_H
-
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
-   */
-#undef HAVE_SYS_NDIR_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <tiffio.h> header file. */
-#undef HAVE_TIFFIO_H
-
-/* Defines if timegm is available on your system */
-#undef HAVE_TIMEGM
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the <zlib.h> header file. */
-#undef HAVE_ZLIB_H
-
-/* Define as const if the declaration of iconv() needs const. */
-#undef ICONV_CONST
-
-/* Define to the sub-directory where libtool stores uninstalled libraries. */
-#undef LT_OBJDIR
-
-/* Enable multithreading support. */
-#undef MULTITHREADED
-
-/* Generate OPI comments in PS output. */
-#undef OPI_SUPPORT
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Poppler data dir */
-#undef POPPLER_DATADIR
-
-/* Support for curl based doc builder is compiled in. */
-#undef POPPLER_HAS_CURL_SUPPORT
-
-/* Defines the poppler version */
-#undef POPPLER_VERSION
-
-/* Define to necessary symbol if this constant uses a non-standard name on
-   your system. */
-#undef PTHREAD_CREATE_JOINABLE
-
-/* Include support for CMYK rasterization */
-#undef SPLASH_CMYK
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Enable word list support. */
-#undef TEXTOUT_WORD_LIST
-
-/* Defines if use cms */
-#undef USE_CMS
-
-/* Use fixed point arithmetic in the Splash backend */
-#undef USE_FIXEDPOINT
-
-/* Use single precision arithmetic in the Splash backend */
-#undef USE_FLOAT
-
-/* Defines if use lcms1 */
-#undef USE_LCMS1
-
-/* Defined if using openjpeg1 */
-#undef USE_OPENJPEG1
-
-/* Defined if using openjpeg2 */
-#undef USE_OPENJPEG2
-
-/* Version number of package */
-#undef VERSION
-
-/* Use fontconfig font configuration backend */
-#undef WITH_FONTCONFIGURATION_FONTCONFIG
-
-/* Use win32 font configuration backend */
-#undef WITH_FONTCONFIGURATION_WIN32
-
-/* OpenJPEG with the OPJ_DPARAMETERS_IGNORE_PCLR_CMAP_CDEF_FLAG flag. */
-#undef WITH_OPENJPEG_IGNORE_PCLR_CMAP_CDEF_FLAG
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
-   significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-#  define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-#  undef WORDS_BIGENDIAN
-# endif
-#endif
-
-/* Define to 1 if the X Window System is missing or not being used. */
-#undef X_DISPLAY_MISSING
-
-/*
- * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system
- * headers and I'm too lazy to write a configure test as long as only
- * unixware is related
- */
-#ifdef _UNIXWARE
-#define HAVE_BOOLEAN
-#endif
-
-
-/* Enable large inode numbers on Mac OS X 10.5.  */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#undef _FILE_OFFSET_BITS
-
-/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
-#undef _LARGEFILE_SOURCE
-
-/* Define for large files, on AIX-style hosts. */
-#undef _LARGE_FILES
diff --git a/source/libs/poppler/poppler-src/configure.ac b/source/libs/poppler/poppler-src/configure.ac
deleted file mode 100644
index e4054581e..000000000
--- a/source/libs/poppler/poppler-src/configure.ac
+++ /dev/null
@@ -1,1154 +0,0 @@
-m4_define([poppler_version_major],[0])
-m4_define([poppler_version_minor],[59])
-m4_define([poppler_version_micro],[0])
-m4_define([poppler_version],[poppler_version_major.poppler_version_minor.poppler_version_micro])
-
-AC_PREREQ(2.59)
-AC_INIT([poppler],[poppler_version],[https://bugs.freedesktop.org/enter_bug.cgi?product=poppler])
-AC_CONFIG_MACRO_DIR([m4])
-AM_INIT_AUTOMAKE([1.7 foreign])
-m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
-AC_CONFIG_HEADERS([config.h poppler/poppler-config.h])
-AC_C_BIGENDIAN
-
-dnl ##### Initialize libtool.
-AC_LIBTOOL_WIN32_DLL
-define([AC_LIBTOOL_LANG_F77_CONFIG], [:])
-AC_PROG_LIBTOOL
-
-dnl ##### Checks for programs.
-AC_PROG_CC
-AC_PROG_CXX
-AC_ISC_POSIX
-AC_PROG_CC_STDC
-#if test -z "$CXX" -a "$CC" = "gcc"; then
-#  CXX="gcc"
-#fi
-AC_PROG_CXX
-AC_PROG_INSTALL
-CXXFLAGS="$CXXFLAGS -std=c++11 -D_DEFAULT_SOURCE"
-
-dnl ##### Check for pkgconfig
-PKG_PROG_PKG_CONFIG
-
-dnl ##### Export the version
-AC_DEFINE_UNQUOTED([POPPLER_VERSION], ["poppler_version"], [Defines the poppler version])
-
-dnl Enable these unconditionally.
-AC_DEFINE([OPI_SUPPORT], [1], [Generate OPI comments in PS output.])
-AC_DEFINE([MULTITHREADED], [1], [Enable multithreading support.])
-AC_DEFINE([TEXTOUT_WORD_LIST], [1], [Enable word list support.])
-
-dnl Check for OS specific flags
-win32_libs=""
-create_shared_lib=""
-auto_import_flags=""
-case "$host_os" in
-  cygwin*)
-    create_shared_lib="-no-undefined"
-  ;;
-  mingw*)
-    os_win32=yes
-    win32_libs="-lgdi32 -lwinspool -lcomdlg32"
-    create_shared_lib="-no-undefined"
-    auto_import_flags="-Wl,--enable-auto-import"
-
-    # Use mingw's ansi stdio extensions
-    CXXFLAGS="$CXXFLAGS -D__USE_MINGW_ANSI_STDIO=1"
-  ;;
-esac
-
-AC_SUBST(win32_libs)
-AC_SUBST(create_shared_lib)
-AC_SUBST(auto_import_flags)
-
-AX_PTHREAD()
-
-dnl Install xpdf headers
-AC_ARG_ENABLE(xpdf-headers,
-	      AC_HELP_STRING([--enable-xpdf-headers],
-	                     [Install unsupported xpdf headers.]),
-              enable_xpdf_headers=$enableval,
-              enable_xpdf_headers="no")
-AM_CONDITIONAL(ENABLE_XPDF_HEADERS, test x$enable_xpdf_headers = xyes)
-
-dnl ##### Emulate cmake -DCMAKE_BUILD_TYPE=Release using options from cmake/modules/PopplerMacros.cmake
-
-AC_ARG_ENABLE(build-type,
-              AC_HELP_STRING([--enable-build-type=@<:@relwithdebinfo/release/debug/debugfull/profile@:>@],
-                             [Build with options similar to 'cmake -DCMAKE_BUILD_TYPE=' values.]),
-              [enable_build_type=no;
-              case "$enableval" in
-              relwithdebinfo|release|debug|debugfull|profile) enable_build_type="$enableval" ;;
-              *) AC_MSG_ERROR([bad value $enableval for --enable-build-type option.
-                               Options are relwithdebinfo, release, debug, debugfull, and profile.]) ;;
-              esac],
-              enable_build_type=no)
-
-if test "x$GCC" = "xyes"; then
-    case "$enable_build_type" in
-    relwithdebinfo)
-        CFLAGS="-O2 -g $CFLAGS"
-        CXXFLAGS="-O2 -g $CXXFLAGS"
-        ;;
-    release)
-        CFLAGS="-O2 $CFLAGS -g0 -DNDEBUG"
-        CXXFLAGS="-O2 $CXXFLAGS -g0 -DNDEBUG"
-        ;;
-    debug)
-        CFLAGS="-O2 -g $CFLAGS -fno-reorder-blocks -fno-schedule-insns -fno-inline"
-        CXXFLAGS="-O2 -g $CXXFLAGS -fno-reorder-blocks -fno-schedule-insns -fno-inline"
-        ;;
-    debugfull)
-        CFLAGS="$CFLAGS -g3 -fno-inline"
-        CXXFLAGS="$CXXFLAGS -g3 -fno-inline"
-        ;;
-    profile)
-        CFLAGS="$CFLAGS -g3 -fno-inline -ftest-coverage -fprofile-arcs"
-        CXXFLAGS="$CXXFLAGS -g3 -fno-inline -ftest-coverage -fprofile-arcs"
-        LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage -lgcov"
-        ;;
-    *)
-        enable_build_type=no
-        ;;
-    esac
-else
-    case "$enable_build_type" in
-    relwithdebinfo|release|debug|debugfull|profile)
-        echo "  Warning: --enable-build-type ignored for non-gcc compiler."
-        ;;
-    esac
-    enable_build_type=no
-fi
-
-AC_ARG_ENABLE(single-precision,
-        AC_HELP_STRING([--enable-single-precision],
-                       [use single precision arithmetic (instead of double
-                        precision) in the Splash backend]),
-        enable_single_precision=$enableval,
-        enable_single_precision=no)
-if test x$enable_single_precision != xno; then
-        AC_DEFINE(USE_FLOAT, [1], [Use single precision arithmetic in the Splash backend])
-fi
-
-AC_ARG_ENABLE(fixedpoint,
-        AC_HELP_STRING([--enable-fixedpoint],
-                       [use fixed point (instead of double precision) arithmetic
-                        in the Splash backend]),
-        enable_fixedpoint=$enableval,
-        enable_fixedpoint=no)
-if test x$enable_fixedpoint != xno; then
-        if test x$enable_single_precision != xno; then
-                AC_MSG_ERROR([Choose only one of --enable-single-precision or --enable-fixedpoint!])
-        fi
-        AC_DEFINE(USE_FIXEDPOINT, [1], [Use fixed point arithmetic in the Splash backend])
-fi
-
-AC_ARG_ENABLE(cmyk,
-        AC_HELP_STRING([--enable-cmyk],
-                       [Include support for CMYK rasterization]),
-        enable_cmyk=$enableval,
-        enable_cmyk=no)
-if test x$enable_cmyk != xno; then
-        AC_DEFINE(SPLASH_CMYK, [1], [Include support for CMYK rasterization])
-fi
-
-dnl Relocation support
-AC_ARG_ENABLE(relocatable,
-    AC_HELP_STRING([--disable-relocatable],
-                   [Hardcode the poppler library location (on Windows).]),
-    enable_relocatable=$enableval,
-    [if test x$os_win32 = xyes; then
-         # default to yes on native Windows.
-         enable_relocatable="yes"
-     else
-         # default to no everywhere else.
-         enable_relocatable="no"
-     fi
-    ]
-)
-
-if test x$enable_relocatable = xyes; then
-    if test x$os_win32 = xyes; then
-     AC_DEFINE([ENABLE_RELOCATABLE],
-               [1],[Do not hardcode the library location])
-    else
-        AC_MSG_ERROR(
-               [Invalid setting for relocatable, only supported on windows])
-
-    fi
-fi
-
-dnl ##### Check for installed poppler-data. Use the same datarootdir as default otherwise.
-PKG_CHECK_EXISTS(poppler-data,
-                 [POPPLER_DATADIR=`$PKG_CONFIG --variable=poppler_datadir poppler-data`
-                  AC_DEFINE_DIR(POPPLER_DATADIR, "{POPPLER_DATADIR}", [Poppler data dir])],
-                 [AC_DEFINE_DIR(POPPLER_DATADIR, "{datarootdir}/poppler", [Poppler data dir])]
-                 )
-
-dnl ##### Checks for header files.
-AC_PATH_XTRA
-AC_HEADER_DIRENT
-AC_CHECK_HEADERS([stdint.h])
-
-dnl ##### Switch over to C++.  This will make the checks below a little
-dnl ##### bit stricter (requiring function prototypes in include files).
-dnl ##### (99% of xpdf is written in C++.)
-AC_LANG_CPLUSPLUS
-
-AC_CHECK_DECL(gettimeofday, [AC_CHECK_FUNC(gettimeofday, AC_DEFINE(HAVE_GETTIMEOFDAY, 1, [Defines if gettimeofday is available on your system]))],[],[#include <sys/time.h>])
-AC_CHECK_FUNC(localtime_r, AC_DEFINE(HAVE_LOCALTIME_R, 1, [Defines if localtime_r is available on your system]))
-AC_CHECK_FUNC(gmtime_r, AC_DEFINE(HAVE_GMTIME_R, 1, [Defines if gmtime_r is available on your system]))
-AC_CHECK_FUNC(timegm, AC_DEFINE(HAVE_TIMEGM, 1, [Defines if timegm is available on your system]))
-AC_CHECK_FUNC(rand_r, AC_DEFINE(HAVE_RAND_R, 1, [Defines if rand_r is available on your system]))
-
-dnl ##### Check for extra libraries needed by X.  (LynxOS needs this.)
-AC_CHECK_FUNC(nanosleep,,)
-dnl try in librt if not found in current LIBS
-if test x$ac_cv_func_nanosleep = xno
-then
-   AC_CHECK_LIB(rt,nanosleep, X_EXTRA_LIBS="$X_EXTRA_LIBS -lrt")
-fi
-
-dnl try in libposix4, if not found so far
-if test x$ac_cv_func_nanosleep = xno && test x$ac_cv_lib_rt_nanosleep = xno
-then
-   AC_CHECK_LIB(posix4,nanosleep, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix4")
-fi
-
-
-dnl ##### Test for libopenjpeg. Versions prior to 1.4 do not provide a pkgconfig file.
-openjpeg1="no"
-openjpeg2="no"
-AC_ARG_ENABLE(libopenjpeg,
-	      AC_HELP_STRING([--enable-libopenjpeg=@<:@auto/openjpeg1/openjpeg2/unmaintained/none@:>@],
-                             [Use openjpeg for JPEG2000 images. 'auto' prefers openjpeg2 over openjpeg1 if both are available. 'unmaintained' gives you the internal unmaintained decoder. Use at your own risk. 'none' compiles no JPX decoder at all. [[default=auto]]]),
-              [enable_libopenjpeg=$enableval],
-              [enable_libopenjpeg="auto"])
-
-openjpeg_header=yes
-
-dnl test for libopenjpeg2
-if test x$enable_libopenjpeg = xopenjpeg2 || test x$enable_libopenjpeg = xauto; then
-  PKG_CHECK_MODULES(LIBOPENJPEG, libopenjp2,
-                    [openjpeg2=yes],[openjpeg2=no])
-fi
-
-dnl test for libopenjpeg1
-if test x$openjpeg2 = xno; then
-  if test x$enable_libopenjpeg = xopenjpeg1 || test x$enable_libopenjpeg = xauto; then
-    PKG_CHECK_MODULES(LIBOPENJPEG, libopenjpeg,
-      [openjpeg1="yes"],
-      [AC_CHECK_LIB([openjpeg], [opj_cio_open],
-        [openjpeg1="yes"
-         LIBOPENJPEG_LIBS="-lopenjpeg"],[openjpeg_header=no])
-       AC_CHECK_HEADERS([openjpeg.h],,
-		        [openjpeg_header="no"])])
-  fi
-fi
-
-
-if test x$enable_libopenjpeg = xopenjpeg1 && test x$openjpeg1 = xno; then
-  if test x$openjpeg_header = xno; then
-    AC_MSG_ERROR("*** libopenjpeg headers not found ***")
-  else
-    AC_MSG_ERROR("*** libopenjpeg library not found ***")
-  fi
-fi
-
-if test x$enable_libopenjpeg = xopenjpeg2 && test x$openjpeg2 = xno; then
-  AC_MSG_ERROR("*** libopenjp2 library not found ***")
-fi
-
-if test x$openjpeg1 = xyes || test x$openjpeg2 = xyes; then
-  enable_libopenjpeg=yes
-  if test x$openjpeg1 = xyes; then
-    AC_DEFINE(USE_OPENJPEG1, 1, [Defined if using openjpeg1])
-  fi
-  if test x$openjpeg2 = xyes; then
-    AC_DEFINE(USE_OPENJPEG2, 1, [Defined if using openjpeg2])
-  fi
-
-  AC_SUBST(LIBOPENJPEG_CFLAGS)
-  AC_SUBST(LIBOPENJPEG_LIBS)
-  AC_DEFINE(ENABLE_LIBOPENJPEG)
-  PKG_CHECK_EXISTS(libopenjpeg >= 1.5,
-      [AC_DEFINE(WITH_OPENJPEG_IGNORE_PCLR_CMAP_CDEF_FLAG, 1, [OpenJPEG with the OPJ_DPARAMETERS_IGNORE_PCLR_CMAP_CDEF_FLAG flag.])],
-      [PKG_CHECK_EXISTS(libopenjpeg1 >= 1.5,
-       [AC_DEFINE(WITH_OPENJPEG_IGNORE_PCLR_CMAP_CDEF_FLAG, 1, [OpenJPEG with the OPJ_DPARAMETERS_IGNORE_PCLR_CMAP_CDEF_FLAG flag.])],
-       [])
-      ])
-  have_jpx_decoder=yes
-  AC_DEFINE(HAVE_JPX_DECODER)
-else
-  if test x$enable_libopenjpeg = xunmaintained; then
-    enable_libopenjpeg=no
-    have_jpx_decoder=yes
-    AC_DEFINE(HAVE_JPX_DECODER)
-  elif test x$enable_libopenjpeg = xnone; then
-    enable_libopenjpeg=no
-    have_jpx_decoder=no
-  else
-    if test x$enable_libopenjpeg = xopenjpeg2 || test x$enable_libopenjpeg = xopenjpeg1 || test x$enable_libopenjpeg = xauto; then
-      AC_MSG_ERROR([Install libopenjpeg2 or libopenjpeg1 before trying to build poppler. You can also decide to use the internal unmaintained JPX decoder or none at all. See --help.])
-    else
-      AC_MSG_ERROR([Invalid --enable-libopenjpeg value. See --help.])
-    fi
-  fi
-fi
-
-AH_TEMPLATE([HAVE_JPX_DECODER], [Do we have any JPX decoder?.])
-
-dnl Test for NSS
-AC_ARG_ENABLE(libnss,
-        AC_HELP_STRING([--disable-libnss],
-                       [Do not build against libnss3.]),
-              enable_libnss=$enableval,
-              enable_libnss="try")
-
-if test x$enable_libnss != xno; then
-  PKG_CHECK_MODULES(NSS3, nss, [enable_nss="yes"],
-      [enable_nss="no"])
-fi
-
-if test x$enable_nss = xyes; then
-  AC_DEFINE(ENABLE_NSS3, 1, [Build against NSS.])
-fi
-
-AM_CONDITIONAL(BUILD_LIBOPENJPEG, test x$openjpeg1 = xyes || test x$openjpeg2 = xyes)
-AH_TEMPLATE([ENABLE_LIBOPENJPEG],
-	    [Use libopenjpeg instead of builtin jpeg2000 decoder.])
-
-AM_CONDITIONAL(BUILD_NSS, test x$enable_nss = xyes)
-AH_TEMPLATE([ENABLE_NSS3], [Build Poppler against NSS for digital signature support.])
-
-dnl ##### Test for libtiff
-AC_ARG_ENABLE(libtiff,
-		AC_HELP_STRING([--disable-libtiff],
-				[Don't build against libtiff.]),
-		enable_libtiff=$enableval,
-		enable_libtiff="try")
-
-AC_ARG_VAR([LIBTIFF_CFLAGS], [C compiler flags for LIBTIFF])
-AC_ARG_VAR([LIBTIFF_LIBS], [linker flags to link LIBTIFF (default is -ltiff)])
-ac_save_CPPFLAGS="$CPPFLAGS"
-ac_save_CXXFLAGS="$CXXFLAGS"
-ac_save_LIBS="$LDFLAGS"
-CPPFLAGS="$CPPFLAGS $LIBTIFF_CFLAGS"
-CXXFLAGS="$CXXFLAGS $LIBTIFF_CFLAGS"
-LIBS="$LIBS $LIBTIFF_LIBS"
-if test x$enable_libtiff = xyes; then
-  if test x"$LIBTIFF_LIBS" != x; then
-    AC_CHECK_FUNC([TIFFOpen],,
-		  AC_MSG_ERROR("*** libtiff library not found ***"))
-  else
-    AC_CHECK_LIB([tiff], [TIFFOpen],,
-		  AC_MSG_ERROR("*** libtiff library not found ***"))
-  fi
-  AC_CHECK_HEADERS([tiffio.h],,
-		AC_MSG_ERROR("*** libtiff headers not found ***"))
-elif test x$enable_libtiff = xtry; then
-  if test x"$LIBTIFF_LIBS" != x; then
-    AC_CHECK_FUNC([TIFFOpen],
-		  [enable_libtiff="yes"],
-		  [enable_libtiff="no"])
-  else
-    AC_CHECK_LIB([tiff], [TIFFOpen],
-		 [enable_libtiff="yes"],
-		 [enable_libtiff="no"])
-  fi
-  AC_CHECK_HEADERS([tiffio.h],,
-		[enable_libtiff="no"])
-fi
-CPPFLAGS="$ac_save_CPPFLAGS"
-CXXFLAGS="$ac_save_CXXFLAGS"
-LIBS="$ac_save_LIBS"
-
-if test x$enable_libtiff = xyes; then
-  if test x"$LIBTIFF_LIBS" = x; then
-    LIBTIFF_LIBS="-ltiff"
-  fi
-  AC_SUBST(LIBTIFF_CFLAGS)
-  AC_SUBST(LIBTIFF_LIBS)
-  AC_DEFINE(ENABLE_LIBTIFF)
-fi
-
-AM_CONDITIONAL(BUILD_LIBTIFF, test x$enable_libtiff = xyes)
-AH_TEMPLATE([ENABLE_LIBTIFF], [Build against libtiff.])
-if test x$enable_libtiff = xyes; then
-  AC_DEFINE(ENABLE_LIBTIFF, 1, [Build against libtiff.])
-fi
-
-dnl ##### Checks for library functions.
-AC_CHECK_FUNCS(popen mkstemp mkstemps)
-AC_CHECK_FUNCS(strcpy_s strcat_s)
-
-dnl ##### Back to C for the library tests.
-AC_LANG_C
-
-dnl ##### Check for fseeko/ftello or fseek64/ftell64
-dnl The LARGEFILE and FSEEKO macros have to be called in C, not C++, mode.
-AC_SYS_LARGEFILE
-AC_FUNC_FSEEKO
-AC_CHECK_FUNCS(fseek64, xpdf_cv_func_fseek64=yes, xpdf_cv_func_fseek64=no)
-AC_CHECK_FUNCS(ftell64, xpdf_cv_func_ftell64=yes, xpdf_cv_func_ftell64=no)
-if test "$xpdf_cv_func_fseek64" = yes -a "$xpdf_cv_func_ftell64" = yes; then
-  AC_DEFINE(HAVE_FSEEK64)
-fi
-AC_CHECK_FUNCS(pread64 lseek64)
-
-dnl Test for zlib
-AC_ARG_ENABLE(zlib,
-	      AC_HELP_STRING([--disable-zlib],
-			     [Don't build against zlib.]),
-	      enable_zlib=$enableval,
-	      enable_zlib="try")
-
-AC_ARG_ENABLE([zlib_uncompress],
-	      AS_HELP_STRING([--enable-zlib-uncompress],
-			     [Use zlib to uncompress flate streams (not totally safe)]),
-              enable_zlib_uncompress=$enableval,
-              enable_zlib_uncompress="no")
-
-if test x$enable_zlib = xyes; then
-   AC_CHECK_LIB([z], [inflate],,
-        AC_MSG_ERROR("*** zlib library not found ***"))
-   AC_CHECK_HEADERS([zlib.h],,
-	AC_MSG_ERROR("*** zlib headers not found ***"))
-elif test x$enable_zlib = xtry; then
-   AC_CHECK_LIB([z], [inflate],
-	        [enable_zlib="yes"],
-		[enable_zlib="no"])
-   AC_CHECK_HEADERS([zlib.h],,
-		[enable_zlib="no"])
-fi
-
-if test x$enable_zlib = xyes; then
-    ZLIB_LIBS="-lz"
-    AC_SUBST(ZLIB_LIBS)
-    AC_DEFINE(ENABLE_ZLIB, 1, [Build against zlib.])
-
-    if test x$enable_zlib_uncompress = xyes; then
-        AC_DEFINE(ENABLE_ZLIB_UNCOMPRESS, 1,
-             [Use zlib instead of builtin zlib decoder to uncompress flate streams.])
-    fi
-else
-    if test x$enable_zlib_uncompress = xyes; then
-	echo "  Warning: --enable-zlib-uncompress is incompatible with --disable-zlib."
-    fi
-    enable_zlib_uncompress="no"
-fi
-
-AM_CONDITIONAL(BUILD_ZLIB, test x$enable_zlib = xyes)
-AH_TEMPLATE([ENABLE_ZLIB],
-	    [Build against zlib.])
-AM_CONDITIONAL(BUILD_ZLIB_UNCOMPRESS, test x$enable_zlib_uncompress = xyes)
-AH_TEMPLATE([ENABLE_ZLIB_UNCOMPRESS],
-	    [Use zlib instead of builtin zlib decoder to uncompress flate streams.])
-
-dnl Test for libcurl
-AC_ARG_ENABLE(libcurl,
-	      AC_HELP_STRING([--enable-libcurl],
-	                     [Build with libcurl based HTTP support.]),
-              enable_libcurl=$enableval,
-              enable_libcurl="no")
-
-if test x$enable_libcurl = xyes; then
-  PKG_CHECK_MODULES(LIBCURL, libcurl)
-  AC_DEFINE(ENABLE_LIBCURL, 1, [Build against libcurl.])
-  AC_DEFINE(POPPLER_HAS_CURL_SUPPORT, 1,
-     [Support for curl based doc builder is compiled in.])
-fi
-
-AM_CONDITIONAL(BUILD_LIBCURL, test x$enable_libcurl = xyes)
-
-dnl Test for dct decoder
-AC_ARG_ENABLE(dctdecoder,
-	      AC_HELP_STRING([--enable-dctdecoder=@<:@libjpeg/unmaintained/none@:>@],
-                             [Decides which DCT decoder to use. 'libjpeg' will use libjpeg if available or fail if not. 'unmaintained' gives you the internal unmaintained decoder. Use at your own risk. 'none' compiles no DCT decoder at all. [[default=libjpeg]]]),
-              [dctdecoder=$enableval],
-              [dctdecoder="libjpeg"])
-
-AC_ARG_VAR([LIBJPEG_CFLAGS], [C compiler flags for LIBJPEG])
-if test x$dctdecoder = x"libjpeg"; then
-
-  dnl
-  dnl POPPLER_FIND_JPEG uses "USER_INCLUDES" and "USER_LIBS"
-  dnl to receive the flags for header and library directories.
-  dnl
-  ac_save_USER_INCLUDES="$USER_INCLUDES"
-  ac_save_USER_LDFLAGS="$USER_LDFLAGS"
-  USER_INCLUDES="$USER_INCLUDES $LIBJPEG_CFLAGS"
-  USER_LDFLAGS="$USER_LDFLAGS $LIBJPEG_CFLAGS"
-  POPPLER_FIND_JPEG
-
-  dnl check INT16, INT32 typedef conflict in jmorecfg.h
-  ac_save_CPPFLAGS="$CPPFLAGS"
-  ac_save_CFLAGS="$CFLAGS"
-  CPPFLAGS="$CPPFLAGS $LIBJPEG_CFLAGS"
-  CFLAGS="$CFLAGS $LIBJPEG_CFLAGS"
-  AC_MSG_CHECKING([libjpeg.h works correctly])
-  AC_COMPILE_IFELSE([
-    AC_LANG_PROGRAM([
-#ifdef _WIN32
-#include <windows.h>
-#endif
-#include <sys/types.h>
-#include <stdio.h>
-#include <jpeglib.h>
-],[{return 0;}])],[
-    AC_MSG_RESULT([ok])
-  ],[
-    AC_MSG_RESULT([no])
-    AC_MSG_CHECKING([libjpeg.h problem can be fixed by XMD_H macro])
-    CPPFLAGS="$CPPFLAGS -DXMD_H"
-    CFLAGS="$CFLAGS -DXMD_H"
-    AC_COMPILE_IFELSE([
-      AC_LANG_PROGRAM([
-#ifdef _WIN32
-#include <windows.h>
-#endif
-#include <sys/types.h>
-#include <stdio.h>
-#include <jpeglib.h>
-],[{return 0;}])],[
-      AC_MSG_RESULT([ok, -DXMD_H is added to LIBJPEG_CFLAGS])
-      LIBJPEG_CFLAGS="$LIBJPEG_CFLAGS -DXMD_H"
-    ],[
-      AC_MSG_RESULT([no, disable libjpeg])
-      enable_libjpeg="no"
-    ])
-  ])
-  CPPFLAGS="$ac_save_CPPFLAGS"
-  CFLAGS="$ac_save_CFLAGS"
-
-  dnl POPPLER_FIND_JPEG sets LIBJPEG_LIBS
-  AC_SUBST(LIBJPEG_CFLAGS)
-  USER_INCLUDES="$ac_save_USER_INCLUDES"
-  USER_LDFLAGS="$ac_save_USER_LDFLAGS"
-
-  if test x$enable_libjpeg != x"yes"; then
-    AC_MSG_ERROR([Install libjpeg before trying to build poppler. You can also decide to use the internal unmaintained DCT decoder or none at all. See --help.])
-  fi
-  have_dct_decoder="yes"
-  AC_DEFINE(HAVE_DCT_DECODER)
-elif test x$dctdecoder = x"unmaintained"; then
-  enable_libjpeg="no"
-  have_dct_decoder="yes"
-  AC_DEFINE(HAVE_DCT_DECODER)
-elif test x$dctdecoder = x"none"; then
-  enable_libjpeg="no"
-  have_dct_decoder="no"
-else
-    AC_MSG_ERROR([Invalid --enable-dctdecoder value. See --help.])
-fi
-
-AH_TEMPLATE([HAVE_DCT_DECODER], [Do we have any DCT decoder?.])
-
-AM_CONDITIONAL(BUILD_LIBJPEG, test x$enable_libjpeg = xyes)
-AH_TEMPLATE([ENABLE_LIBJPEG],
-            [Use libjpeg instead of builtin unmaintained jpeg decoder.])
-
-dnl Test for libpng
-AC_ARG_ENABLE(libpng,
-	      AC_HELP_STRING([--disable-libpng],
-	                     [Do not build against libpng.]),
-              enable_libpng=$enableval,
-              enable_libpng="try")
-
-if test x$enable_libpng != xno; then
-  PKG_CHECK_MODULES(LIBPNG, libpng, [enable_libpng="yes"],
-      [enable_libpng="no"])
-fi
-
-if test x$enable_libpng = xyes; then
-  AC_DEFINE(ENABLE_LIBPNG, 1, [Build against libpng.])
-fi
-
-AM_CONDITIONAL(BUILD_LIBPNG, test x$enable_libpng = xyes)
-
-dnl Check for freetype headers
-
-PKG_CHECK_MODULES(FREETYPE, freetype2,
-                  [freetype_pkgconfig=yes], [freetype_pkgconfig=no])
-
-if test "x$freetype_pkgconfig" = "xyes"; then
-
-  AC_DEFINE(HAVE_FREETYPE_H, 1, [Have FreeType2 include files])
-
-else
-
-  FREETYPE_LIBS=
-  FREETYPE_CFLAGS=
-
-  AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
-  if test "x$FREETYPE_CONFIG" != "xno" ; then
-
-    FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
-    FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
-    AC_DEFINE(HAVE_FREETYPE_H, 1, [Have FreeType2 include files])
-
-  fi
-
-fi
-
-AC_SUBST(FREETYPE_CFLAGS)
-AC_SUBST(FREETYPE_LIBS)
-
-AC_MSG_CHECKING([which font configuration to use])
-AC_ARG_WITH([font_configuration],
-   [AS_HELP_STRING([--with-font-configuration=fontconfig|win32],
-                   [Select font configuration backend])],
-   [],
-   [if test x$os_win32 = xyes; then
-        # default to win32 on native Windows.
-        with_font_configuration=win32
-    else
-        # default to fontconig everywhere else.
-        with_font_configuration=fontconfig
-    fi
-   ]
-)
-AC_MSG_RESULT([$with_font_configuration])
-
-case $with_font_configuration in
-  win32)
-     AC_DEFINE([WITH_FONTCONFIGURATION_WIN32],
-               [1],[Use win32 font configuration backend])
-     # Set the minimum required Internet Explorer version to 5.0
-     CPPFLAGS="$CPPFLAGS -D_WIN32_IE=0x0500"
-     ;;
-  fontconfig)
-     AC_DEFINE([WITH_FONTCONFIGURATION_FONTCONFIG],
-               [1],[Use fontconfig font configuration backend])
-     PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 2.0.0)
-     ;;
-  *)
-     AC_MSG_ERROR(
-               [Invalid font configuration setting: $with_font_configuration])
-     ;;
-esac
-
-AM_CONDITIONAL(BUILD_WITH_WIN32_FONTCONFIGURATION,
-               test x$with_font_configuration = xwin32)
-
-AC_ARG_ENABLE(splash-output,
-              AC_HELP_STRING([--disable-splash-output],
-	                     [Don't build the Splash graphics backend.]),,
-              enable_splash_output="yes")
-AM_CONDITIONAL(BUILD_SPLASH_OUTPUT, test x$enable_splash_output = xyes)
-AH_TEMPLATE([HAVE_SPLASH], [Use splash for rendering.])
-if test x$enable_splash_output = xyes; then
-  AC_DEFINE(HAVE_SPLASH)
-fi
-
-CAIRO_VERSION="1.10.0"
-AC_SUBST(CAIRO_VERSION)
-CAIRO_DEPS="cairo >= $CAIRO_VERSION cairo-ft >= $CAIRO_VERSION"
-AC_ARG_ENABLE(cairo-output,
-              AC_HELP_STRING([--disable-cairo-output],
-                             [Don't build the cairo graphics backend.]),
-              enable_cairo_output=$enableval,
-              enable_cairo_output="try")
-use_cairo=""
-if test x$enable_cairo_output = xyes; then
-  PKG_CHECK_MODULES(CAIRO, $CAIRO_DEPS)
-elif test x$enable_cairo_output = xtry; then
-  PKG_CHECK_MODULES(CAIRO, $CAIRO_DEPS,
-                    [enable_cairo_output="yes"],
-                    [enable_cairo_output="no"
-		     use_cairo="no (requires cairo >= $CAIRO_VERSION)"])
-fi
-if test "x$use_cairo" = "x"; then
-   use_cairo=$enable_cairo_output
-fi
-
-AC_SUBST(CAIRO_CFLAGS)
-AC_SUBST(CAIRO_LIBS)
-
-AM_CONDITIONAL(BUILD_CAIRO_OUTPUT, test x$enable_cairo_output = xyes)
-AH_TEMPLATE([HAVE_CAIRO], [Use cairo for rendering.])
-if test x$enable_cairo_output = xyes; then
-  PDFTOCAIRO_DEPS="cairo cairo-ft"
-  dnl Check for optional cairo backends used by pdftocairo
-  PKG_CHECK_EXISTS(cairo-pdf, [PDFTOCAIRO_DEPS="$PDFTOCAIRO_DEPS cairo-pdf"], [])
-  PKG_CHECK_EXISTS(cairo-ps,  [PDFTOCAIRO_DEPS="$PDFTOCAIRO_DEPS cairo-ps"],  [])
-  PKG_CHECK_EXISTS(cairo-svg, [PDFTOCAIRO_DEPS="$PDFTOCAIRO_DEPS cairo-svg"], [])
-
-  PKG_CHECK_MODULES(PDFTOCAIRO, $PDFTOCAIRO_DEPS)
-  AC_SUBST(PDFTOCAIRO_CFLAGS)
-  AC_SUBST(PDFTOCAIRO_LIBS)
-
-  AC_DEFINE(HAVE_CAIRO)
-  CAIRO_FEATURE="#define POPPLER_HAS_CAIRO 1"
-  CAIRO_REQ="cairo"
-  AC_CHECK_HEADERS(fcntl.h sys/mman.h sys/stat.h)
-else
-  CAIRO_FEATURE="#undef POPPLER_HAS_CAIRO"
-  CAIRO_REQ=""
-fi
-AC_SUBST(CAIRO_FEATURE)
-AC_SUBST(CAIRO_REQ)
-
-use_glib=""
-found_introspection=no
-if test x$enable_cairo_output = xyes; then
-  POPPLER_GLIB_DISABLE_DEPRECATED=""
-  POPPLER_GLIB_DISABLE_SINGLE_INCLUDES=""
-
-  GLIB_REQUIRED=2.41
-  AC_SUBST(GLIB_REQUIRED)
-  AC_ARG_ENABLE(poppler-glib,
-	        AC_HELP_STRING([--disable-poppler-glib],
-		               [Don't compile poppler glib wrapper.]),
-              		       enable_poppler_glib=$enableval,
-			       enable_poppler_glib="try")
-  if test x$enable_poppler_glib = xyes; then
-    PKG_CHECK_MODULES(POPPLER_GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gio-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION)
-  elif test x$enable_poppler_glib = xtry; then
-    PKG_CHECK_MODULES(POPPLER_GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gio-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION,
-                      [enable_poppler_glib="yes"],
-                      [enable_poppler_glib="no"
-                      use_glib="no (requires glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gio-2.0 >= $GLIB_REQUIRED cairo >= $CAIRO_VERSION)"])
-  fi
-  if test x$enable_poppler_glib = xyes; then
-    # Check for introspection
-    GOBJECT_INTROSPECTION_CHECK([0.6.7])
-
-    AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums])
-    POPPLER_GLIB_DISABLE_DEPRECATED="$POPPLER_GLIB_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED"
-    POPPLER_GLIB_DISABLE_SINGLE_INCLUDES="$POPPLER_GLIB_DISABLE_SINGLE_INCLUDES -DG_DISABLE_SINGLE_INCLUDES"
-  fi
-else
-  if test x$enable_poppler_glib = xyes; then
-    AC_MSG_ERROR("Cairo output is required to build glib frontend")
-  fi
-  use_glib="no (requires cairo output)"
-  enable_poppler_glib="no"
-fi
-if test x"$use_glib" = x; then
-   use_glib="$enable_poppler_glib"
-fi
-AM_CONDITIONAL(BUILD_POPPLER_GLIB, test x$enable_poppler_glib = xyes)
-AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
-AC_SUBST(GLIB_REQ)
-AC_SUBST(POPPLER_GLIB_DISABLE_DEPRECATED)
-AC_SUBST(POPPLER_GLIB_DISABLE_SINGLE_INCLUDES)
-
-GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
-
-dnl 
-dnl Try Qt4
-dnl
-
-AC_ARG_ENABLE(poppler-qt4,
-              AC_HELP_STRING([--disable-poppler-qt4],
-	                     [Don't compile poppler Qt4 wrapper.]),
-              enable_poppler_qt4=$enableval,
-              enable_poppler_qt4="try")
-if test x$enable_poppler_qt4 = xyes; then
-  PKG_CHECK_MODULES(POPPLER_QT4, 
-	            QtCore >= 4.7.0 QtGui >= 4.7.0 QtXml >= 4.7.0)
-  PKG_CHECK_MODULES(POPPLER_QT4_TEST, 
-	            QtTest >= 4.7.0)
-elif test x$enable_poppler_qt4 = xtry; then
-  PKG_CHECK_MODULES(POPPLER_QT4,
-                    QtCore >= 4.7.0 QtGui >= 4.7.0 QtXml >= 4.7.0,
-                    [enable_poppler_qt4="yes"],
-                    [enable_poppler_qt4="no"])
-  if test x$enable_poppler_qt4 = xyes; then
-    PKG_CHECK_MODULES(POPPLER_QT4_TEST,
-                    QtTest >= 4.7.0,
-                    [enable_poppler_qt4="yes"],
-                    [enable_poppler_qt4="no"])
-  fi
-fi
-
-AC_SUBST(POPPLER_QT4_CXXFLAGS)
-AC_SUBST(POPPLER_QT4_LIBS)
-AC_SUBST(POPPLER_QT4_TEST_LIBS)
-
-if test x$enable_poppler_qt4 = xyes; then
-  AC_CHECK_TOOL(MOCQT4, moc)
-  AC_MSG_CHECKING([for Qt4 moc])
-  mocversion=`$MOCQT4 -v 2>&1`
-  mocversiongrep=`echo $mocversion | grep "Qt 4"`
-  if test x"$mocversiongrep" != x"$mocversion"; then
-    AC_MSG_RESULT([no])
-    # moc was not the qt4 one, try with moc-qt4
-    AC_CHECK_TOOL(MOCQT42, moc-qt4)
-    AC_MSG_CHECKING([for Qt4 moc-qt4])
-    mocversion=`$MOCQT42 -v 2>&1`
-    mocversiongrep=`echo $mocversion | grep "Qt 4"`
-    if test x"$mocversiongrep" != x"$mocversion"; then
-      # no valid moc found
-      enable_poppler_qt4=no;
-      MOCQT4="not found"
-    else
-      MOCQT4=$MOCQT42
-    fi
-  fi
-  AC_SUBST(MOCQT4)
-  AC_MSG_RESULT([$MOCQT4])
-fi
-
-AM_CONDITIONAL(BUILD_POPPLER_QT4, test "x$enable_poppler_qt4" = "xyes")
-
-dnl 
-dnl Try Qt5
-dnl
-
-AC_ARG_ENABLE(poppler-qt5,
-              AC_HELP_STRING([--disable-poppler-qt5],
-	                     [Don't compile poppler Qt5 wrapper.]),
-              enable_poppler_qt5=$enableval,
-              enable_poppler_qt5="try")
-if test x$enable_poppler_qt5 = xyes; then
-  PKG_CHECK_MODULES(POPPLER_QT5, 
-	            Qt5Core >= 5.0.0 Qt5Gui >= 5.0.0 Qt5Xml >= 5.0.0 Qt5Widgets >= 5.0.0)
-  PKG_CHECK_MODULES(POPPLER_QT5_TEST, 
-	            Qt5Test >= 5.0.0 ) 
-elif test x$enable_poppler_qt5 = xtry; then
-  PKG_CHECK_MODULES(POPPLER_QT5,
-                    Qt5Core >= 5.0.0 Qt5Gui >= 5.0.0 Qt5Xml >= 5.0.0 Qt5Widgets >= 5.0.0,
-                    [enable_poppler_qt5="yes"],
-                    [enable_poppler_qt5="no"])
-  if test x$enable_poppler_qt5 = xyes; then
-    PKG_CHECK_MODULES(POPPLER_QT5_TEST,
-                    Qt5Test >= 5.0.0,
-                    [enable_poppler_qt5="yes"],
-                    [enable_poppler_qt5="no"])
-  fi
-fi
-
-AC_SUBST(POPPLER_QT5_CXXFLAGS)
-AC_SUBST(POPPLER_QT5_LIBS)
-AC_SUBST(POPPLER_QT5_TEST_LIBS)
-
-if test x$enable_poppler_qt5 = xyes; then
-  AC_CHECK_TOOL(MOCQT5, moc)
-  AC_MSG_CHECKING([for Qt5 moc])
-  mocversion=`$MOCQT5 -v 2>&1`
-  mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"`
-  if test x"$mocversiongrep" != x"$mocversion"; then
-    AC_MSG_RESULT([no])
-    # moc was not the qt5 one, try with moc-qt5
-    AC_CHECK_TOOL(MOCQT52, moc-qt5)
-    AC_MSG_CHECKING([for Qt5 moc-qt5])
-    mocversion=`$MOCQT52 -v 2>&1`
-    mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc-qt5 5|moc 5"`
-    if test x"$mocversiongrep" != x"$mocversion"; then
-      AC_CHECK_TOOL(QTCHOOSER, qtchooser)
-      AC_MSG_CHECKING([for qtchooser])
-      qt5tooldir=`QT_SELECT=qt5 qtchooser -print-env | grep QTTOOLDIR | cut -d '=' -f 2 | cut -d \" -f 2`
-      mocversion=`$qt5tooldir/moc -v 2>&1`
-      mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"`
-      if test x"$mocversiongrep" != x"$mocversion"; then
-        # no valid moc found
-        enable_poppler_qt5=no;
-        MOCQT5="not found"
-      else
-        MOCQT5=$qt5tooldir/moc
-      fi
-    else
-      MOCQT5=$MOCQT52
-    fi
-  fi
-  AC_SUBST(MOCQT5)
-  AC_MSG_RESULT([$MOCQT5])
-fi
-
-AM_CONDITIONAL(BUILD_POPPLER_QT5, test "x$enable_poppler_qt5" = "xyes")
-
-dnl
-dnl CPP frontend
-dnl
-
-AC_ARG_ENABLE(poppler-cpp,
-              AC_HELP_STRING([--disable-poppler-cpp],
-                             [Don't compile poppler cpp wrapper.]),
-              enable_poppler_cpp=$enableval,
-              enable_poppler_cpp="yes")
-if test x$enable_poppler_cpp = xyes; then
-  AM_ICONV()
-  if test x$am_func_iconv != xyes; then
-    enable_poppler_cpp=no
-  fi
-fi
-
-AM_CONDITIONAL(BUILD_POPPLER_CPP, test "x$enable_poppler_cpp" = "xyes")
-
-
-GTK_TEST_DEPS='gtk+-3.0 >= 3.8 gdk-pixbuf-2.0'
-if test x$enable_cairo_output = xyes; then
-  GTK_TEST_DEPS="$GTK_TEST_DEPS $CAIRO_DEPS"
-fi
-AC_ARG_ENABLE(gtk-test,
-              AC_HELP_STRING([--disable-gtk-test],
-	                     [Don't compile GTK+ test program.]),
-              enable_gtk_test=$enableval,
-              enable_gtk_test="try")
-if test x$enable_gtk_test = xyes; then
-  PKG_CHECK_MODULES(GTK_TEST, $GTK_TEST_DEPS)
-elif test x$enable_gtk_test = xtry; then
-  PKG_CHECK_MODULES(GTK_TEST, $GTK_TEST_DEPS,
-                    [enable_gtk_test="yes"],
-                    [enable_gtk_test="no"])
-fi
-AM_CONDITIONAL(BUILD_GTK_TEST, test x$enable_gtk_test = xyes -a x$enable_poppler_glib = xyes)
-
-AC_ARG_ENABLE(utils,
-              AC_HELP_STRING([--disable-utils],
-	                     [Don't compile poppler command line utils.]),
-              enable_utils=$enableval,
-              enable_utils="yes")
-AM_CONDITIONAL(BUILD_UTILS, test x$enable_utils = xyes)
-
-AC_ARG_ENABLE(compile-warnings,
-              AC_HELP_STRING([--enable-compile-warnings=@<:@no/yes/kde@:>@],
-                             [Turn on compiler warnings.]),,
-              [enable_compile_warnings="yes"])
-
-dnl
-dnl   Color Management
-dnl
-
-AC_ARG_ENABLE(cms,
-              AC_HELP_STRING([--enable-cms=@<:@auto/lcms1/lcms2/none@:>@],
-                             [Use color management system. 'auto' prefers lcms2 over lcms1 if both are available [[default=auto]]]),
-              [enable_cms=$enableval],
-              [enable_cms="auto"])
-if test x$enable_cms = xauto; then
-  PKG_CHECK_MODULES(LCMS, lcms2, [lcms2=yes], [lcms2=no])
-  if test x$lcms2 = xno; then
-      PKG_CHECK_MODULES(LCMS, lcms, [lcms1=yes], [lcms1=no])
-  fi
-elif test x$enable_cms = xlcms1; then
-  PKG_CHECK_MODULES(LCMS, lcms, [lcms1=yes], [lcms1=no])
-elif test x$enable_cms = xlcms2; then
-  PKG_CHECK_MODULES(LCMS, lcms2, [lcms2=yes], [lcms2=no])
-fi
-
-if test x$lcms1 = xyes || test x$lcms2 = xyes; then
-  enable_cms=yes
-  AC_DEFINE(USE_CMS, 1, [Defines if use cms])
-  if test x$lcms1 = xyes; then
-    lcms1=yes;
-    AC_DEFINE(USE_LCMS1, 1, [Defines if use lcms1])
-  fi
-else
-  enable_cms=no
-fi
-
-AM_CONDITIONAL(USE_CMS, test x$enable_cms = xyes)
-AM_CONDITIONAL(USE_LCMS1, test x$lcms1 = xyes)
-
-AC_ARG_WITH([testdatadir],
-   [AS_HELP_STRING([--with-testdatadir=/path/to/testdatadir],
-                   [Specify test data dir])],
-   [case $withval in
-       [[\\/]]* | ?:[[\\/]]* )  # Absolute name.
-          TESTDATADIR=$withval ;;
-       *) # Relative name.
-          TESTDATADIR=$ac_pwd/$withval ;;
-    esac
-   ],
-   [case $srcdir in
-       [[\\/]]* | ?:[[\\/]]* )  # Absolute name.
-          TESTDATADIR=$srcdir/../test ;;
-       *) # Relative name.
-          TESTDATADIR=$ac_pwd/$srcdir/../test ;;
-    esac
-   ]
-)
-AC_MSG_CHECKING([for test data in $TESTDATADIR])
-if test -d $TESTDATADIR && test -f $TESTDATADIR/test-poppler.c; then
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-  AC_MSG_WARN([
- No test data found in $TESTDATADIR.
- You will not be able to run 'make check' successfully.
-
- The test data is not included in the source packages
- and is also not part of the main git repository. Instead,
- you can checkout the test data from its own git
- repository with:
-
-   git clone git://git.freedesktop.org/git/poppler/test
-
- You should checkout the test data as a sibling of your
- poppler source folder or specify the location of your
- checkout with --with-testdatadir=/path/to/checkoutdir/test.
-])
-fi
-AC_SUBST(TESTDATADIR)
-
-# some compilers do not support this flag (see bug #76963)
-fno_check_new=
-AC_MSG_CHECKING([for -fno-check-new compiler flag])
-AC_LANG_PUSH([C++])
-saved_CXXFLAGS=$CXXFLAGS
-CXXFLAGS="-fno-check-new $CXXFLAGS"
-AC_TRY_COMPILE([], [],
-  [AC_MSG_RESULT([yes])
-  fno_check_new="-fno-check-new"],
-  AC_MSG_RESULT([no])
-)
-CXXFLAGS=$saved_CXXFLAGS
-AC_LANG_POP
-
-if test "x$GCC" != xyes; then
-  enable_compile_warnings=no
-fi
-case "$enable_compile_warnings" in
-  no)	;;
-  yes)	CXXFLAGS="-Wall -Woverloaded-virtual -Wnon-virtual-dtor -Wcast-align -fno-exceptions $fno_check_new -fno-common $CXXFLAGS";
-        CFLAGS="-Wall $CFLAGS" ;;
-  kde)	CXXFLAGS="-Wnon-virtual-dtor -Wno-long-long -Wundef \
-		-D_XOPEN_SOURCE=600 -D_BSD_SOURCE -Wcast-align \
-		-Wconversion -Wall -W -Wpointer-arith \
-		-Wwrite-strings -O2 -Wformat-security \
-		-Wmissing-format-attribute -fno-exceptions $fno_check_new \
-		-fno-common $CXXFLAGS" ;;
-esac
-
-case "$host_os" in
-  mingw*|cygwin*)
-    # mingw and cygwin print "warning: -fPIC ignored for target (all code is position independent)"
-    # for every file
-    ;;
-  *)
-    CXXFLAGS="-fPIC $CXXFLAGS";
-    ;;
-esac
-
-
-case `$PKG_CONFIG --version` in
-  0.?|0.1[0-7])
-    PC_REQUIRES_PRIVATE="";
-    PC_REQUIRES="poppler = $VERSION";;
-  *)
-    PC_REQUIRES_PRIVATE="Requires.private: poppler = $VERSION";
-    PC_REQUIRES="";;
-esac
-
-AC_SUBST(PC_REQUIRES)
-AC_SUBST(PC_REQUIRES_PRIVATE)
-
-AC_SUBST([POPPLER_MAJOR_VERSION],[poppler_version_major])
-AC_SUBST([POPPLER_MINOR_VERSION],[poppler_version_minor])
-AC_SUBST([POPPLER_MICRO_VERSION],[poppler_version_micro])
-AC_SUBST([POPPLER_VERSION],[poppler_version])
-
-AC_OUTPUT([
-Makefile
-goo/Makefile
-fofi/Makefile
-splash/Makefile
-poppler/Makefile
-utils/Makefile
-glib/Makefile
-glib/poppler-features.h
-glib/reference/Makefile
-glib/reference/version.xml
-glib/demo/Makefile
-test/Makefile
-qt4/Makefile
-qt4/src/Makefile
-qt4/tests/Makefile
-qt4/demos/Makefile
-qt5/Makefile
-qt5/src/Makefile
-qt5/tests/Makefile
-qt5/demos/Makefile
-cpp/Makefile
-cpp/poppler-version.h
-cpp/tests/Makefile
-poppler.pc
-poppler-uninstalled.pc
-poppler-cairo.pc
-poppler-cairo-uninstalled.pc
-poppler-splash.pc
-poppler-splash-uninstalled.pc
-poppler-glib.pc
-poppler-glib-uninstalled.pc
-poppler-qt4.pc
-poppler-qt4-uninstalled.pc
-poppler-qt5.pc
-poppler-qt5-uninstalled.pc
-poppler-cpp.pc
-poppler-cpp-uninstalled.pc])
-
-
-echo ""
-echo "Building poppler with support for:"
-echo "  font configuration:  $with_font_configuration"
-echo "  splash output:       $enable_splash_output"
-if test x$enable_cmyk = xyes;then
-        echo "      with CMYK support"
-fi
-echo "  cairo output:        $use_cairo"
-echo "  qt4 wrapper:         $enable_poppler_qt4"
-echo "  qt5 wrapper:         $enable_poppler_qt5"
-echo "  glib wrapper:        $use_glib"
-echo "    introspection:     $found_introspection"
-echo "  cpp wrapper:         $enable_poppler_cpp"
-echo "  use gtk-doc:         $enable_gtk_doc"
-echo "  use libjpeg:         $enable_libjpeg"
-echo "  use libpng:          $enable_libpng"
-echo "  use libtiff:         $enable_libtiff"
-echo "  use zlib compress:   $enable_zlib"
-echo "  use zlib uncompress: $enable_zlib_uncompress"
-echo "  use nss:             $enable_nss"
-echo "  use libcurl:         $enable_libcurl"
-echo "  use libopenjpeg:     $enable_libopenjpeg"
-if test x$enable_libopenjpeg = xyes;then
-    if test x$openjpeg1 = xyes;then
-        echo "      with openjpeg1"
-    else
-        echo "      with openjpeg2"
-    fi
-fi
-echo "  use cms:             $enable_cms"
-if test x$enable_cms = xyes;then
-    if test x$lcms1 = xyes;then
-        echo "      with lcms1"
-    else
-        echo "      with lcms2"
-    fi
-fi
-if test x$enable_build_type != xno;then
-        echo "  build type:          $enable_build_type"
-fi
-echo "  command line utils:  $enable_utils"
-echo "  test data dir:       $TESTDATADIR"
-echo ""
-
-if test x$enable_splash_output = xno -a x$enable_cairo_output = xno; then
-	echo "  Warning: There is no rendering backend enabled"
-fi
-
-if test x$enable_single_precision = xyes -a x$enable_fixedpoint = xyes; then
-	echo "  Warning: Single precision and fixed point options should not be enabled at the same time"
-fi
-
-if test x$enable_libjpeg != xyes -a x$have_dct_decoder = xyes; then
-	echo "  Warning: Using libjpeg is recommended. The internal DCT decoder is unmaintained."
-fi
-
-if test x$have_dct_decoder = xno; then
-	echo "  Warning: You're not compiling any DCT decoder. Some files will fail to display properly."
-fi
-
-if test x$enable_zlib_uncompress != xno; then
-	echo "  Warning: Using zlib for decompression is not totally safe"
-fi
-
-if test x$enable_libopenjpeg != xyes -a x$have_jpx_decoder = xyes; then
-	echo "  Warning: Using libopenjpeg2 is recommended. The internal JPX decoder is unmaintained."
-fi
-
-if test x$have_jpx_decoder = xno; then
-	echo "  Warning: You're not compiling any JPX decoder. Some files will fail to display properly."
-fi
diff --git a/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc b/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc
index f1a15e004..291329568 100644
--- a/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc
+++ b/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc
@@ -16,7 +16,7 @@
 // Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
 // Copyright (C) 2007 Koji Otani <sho@bbr.jp>
 // Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org>
-// Copyright (C) 2008, 2009, 2012, 2014-2016 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2008, 2009, 2012, 2014-2017 Albert Astals Cid <aacid@kde.org>
 // Copyright (C) 2008 Tomas Are Haavet <tomasare@gmail.com>
 // Copyright (C) 2012 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp>
 // Copyright (C) 2012 Adrian Johnson <ajohnson@redneon.com>
@@ -451,7 +451,7 @@ int FoFiTrueType::mapNameToGID(char *name) {
 GBool FoFiTrueType::getCFFBlock(char **start, int *length) {
   int i;
 
-  if (!openTypeCFF) {
+  if (!openTypeCFF || !tables) {
     return gFalse;
   }
   i = seekTable("CFF ");
@@ -1307,8 +1307,10 @@ Guint FoFiTrueType::computeTableChecksum(Guchar *data, int length) {
     switch (length & 3) {
     case 3:
       word |= (data[i+2] & 0xff) <<  8;
+      // fallthrough
     case 2:
       word |= (data[i+1] & 0xff) << 16;
+      // fallthrough
     case 1:
       word |= (data[i  ] & 0xff) << 24;
       break;
diff --git a/source/libs/poppler/poppler-src/fofi/FoFiType1C.cc b/source/libs/poppler/poppler-src/fofi/FoFiType1C.cc
index c4595a326..7c9494f57 100644
--- a/source/libs/poppler/poppler-src/fofi/FoFiType1C.cc
+++ b/source/libs/poppler/poppler-src/fofi/FoFiType1C.cc
@@ -13,7 +13,7 @@
 // All changes made under the Poppler project to this file are licensed
 // under GPL version 2 or later
 //
-// Copyright (C) 2009, 2010 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009, 2010, 2017 Albert Astals Cid <aacid@kde.org>
 // Copyright (C) 2012 Thomas Freitag <Thomas.Freitag@alfa.de>
 //
 // To see a description of the changes please see the Changelog file that
@@ -33,6 +33,7 @@
 #include "goo/gmem.h"
 #include "goo/gstrtod.h"
 #include "goo/GooString.h"
+#include "poppler/Error.h"
 #include "FoFiEncodings.h"
 #include "FoFiType1C.h"
 
@@ -879,253 +880,260 @@ void FoFiType1C::convertToType0(char *psName, int *codeMap, int nCodes,
     }
   }
 
+  if (privateDicts) {
   // write the descendant Type 1 fonts
-  for (i = 0; i < nCIDs; i += 256) {
-
-    //~ this assumes that all CIDs in this block have the same FD --
-    //~ to handle multiple FDs correctly, need to somehow divide the
-    //~ font up by FD; as a kludge we ignore CID 0, which is .notdef
-    fd = 0;
-    // if fdSelect is NULL, we have an 8-bit font, so just leave fd=0
-    if (fdSelect) {
-      for (j = i==0 ? 1 : 0; j < 256 && i+j < nCIDs; ++j) {
-        if (cidMap[i+j] >= 0) {
-          fd = fdSelect[cidMap[i+j]];
-          break;
-        }
+    for (i = 0; i < nCIDs; i += 256) {
+
+      //~ this assumes that all CIDs in this block have the same FD --
+      //~ to handle multiple FDs correctly, need to somehow divide the
+      //~ font up by FD; as a kludge we ignore CID 0, which is .notdef
+      fd = 0;
+      // if fdSelect is NULL, we have an 8-bit font, so just leave fd=0
+      if (fdSelect) {
+	for (j = i==0 ? 1 : 0; j < 256 && i+j < nCIDs; ++j) {
+	  if (cidMap[i+j] >= 0) {
+	    fd = fdSelect[cidMap[i+j]];
+	    break;
+	  }
+	}
       }
-    }
 
-    // font dictionary (unencrypted section)
-    (*outputFunc)(outputStream, "16 dict begin\n", 14);
-    (*outputFunc)(outputStream, "/FontName /", 11);
-    (*outputFunc)(outputStream, psName, strlen(psName));
-    buf = GooString::format("_{0:02x} def\n", i >> 8);
-    (*outputFunc)(outputStream, buf->getCString(), buf->getLength());
-    delete buf;
-    (*outputFunc)(outputStream, "/FontType 1 def\n", 16);
-    if (privateDicts[fd].hasFontMatrix) {
-      buf = GooString::format("/FontMatrix [{0:.8g} {1:.8g} {2:.8g} {3:.8g} {4:.8g} {5:.8g}] def\n",
-			    privateDicts[fd].fontMatrix[0],
-			    privateDicts[fd].fontMatrix[1],
-			    privateDicts[fd].fontMatrix[2],
-			    privateDicts[fd].fontMatrix[3],
-			    privateDicts[fd].fontMatrix[4],
-			    privateDicts[fd].fontMatrix[5]);
-      (*outputFunc)(outputStream, buf->getCString(), buf->getLength());
-      delete buf;
-    } else if (topDict.hasFontMatrix) {
-      (*outputFunc)(outputStream, "/FontMatrix [1 0 0 1 0 0] def\n", 30);
-    } else {
-      (*outputFunc)(outputStream,
-		    "/FontMatrix [0.001 0 0 0.001 0 0] def\n", 38);
-    }
-    buf = GooString::format("/FontBBox [{0:.4g} {1:.4g} {2:.4g} {3:.4g}] def\n",
-			  topDict.fontBBox[0], topDict.fontBBox[1],
-			  topDict.fontBBox[2], topDict.fontBBox[3]);
-    (*outputFunc)(outputStream, buf->getCString(), buf->getLength());
-    delete buf;
-    buf = GooString::format("/PaintType {0:d} def\n", topDict.paintType);
-    (*outputFunc)(outputStream, buf->getCString(), buf->getLength());
-    delete buf;
-    if (topDict.paintType != 0) {
-      buf = GooString::format("/StrokeWidth {0:.4g} def\n", topDict.strokeWidth);
+      if (fd >= nFDs)
+	continue;
+
+      // font dictionary (unencrypted section)
+      (*outputFunc)(outputStream, "16 dict begin\n", 14);
+      (*outputFunc)(outputStream, "/FontName /", 11);
+      (*outputFunc)(outputStream, psName, strlen(psName));
+      buf = GooString::format("_{0:02x} def\n", i >> 8);
       (*outputFunc)(outputStream, buf->getCString(), buf->getLength());
       delete buf;
-    }
-    (*outputFunc)(outputStream, "/Encoding 256 array\n", 20);
-    for (j = 0; j < 256 && i+j < nCIDs; ++j) {
-      buf = GooString::format("dup {0:d} /c{1:02x} put\n", j, j);
+      (*outputFunc)(outputStream, "/FontType 1 def\n", 16);
+      if (privateDicts[fd].hasFontMatrix) {
+	buf = GooString::format("/FontMatrix [{0:.8g} {1:.8g} {2:.8g} {3:.8g} {4:.8g} {5:.8g}] def\n",
+			      privateDicts[fd].fontMatrix[0],
+			      privateDicts[fd].fontMatrix[1],
+			      privateDicts[fd].fontMatrix[2],
+			      privateDicts[fd].fontMatrix[3],
+			      privateDicts[fd].fontMatrix[4],
+			      privateDicts[fd].fontMatrix[5]);
+	(*outputFunc)(outputStream, buf->getCString(), buf->getLength());
+	delete buf;
+      } else if (topDict.hasFontMatrix) {
+	(*outputFunc)(outputStream, "/FontMatrix [1 0 0 1 0 0] def\n", 30);
+      } else {
+	(*outputFunc)(outputStream,
+		      "/FontMatrix [0.001 0 0 0.001 0 0] def\n", 38);
+      }
+      buf = GooString::format("/FontBBox [{0:.4g} {1:.4g} {2:.4g} {3:.4g}] def\n",
+			    topDict.fontBBox[0], topDict.fontBBox[1],
+			    topDict.fontBBox[2], topDict.fontBBox[3]);
       (*outputFunc)(outputStream, buf->getCString(), buf->getLength());
       delete buf;
-    }
-    if (j < 256) {
-      buf = GooString::format("{0:d} 1 255 {{ 1 index exch /.notdef put }} for\n",
-			    j);
+      buf = GooString::format("/PaintType {0:d} def\n", topDict.paintType);
       (*outputFunc)(outputStream, buf->getCString(), buf->getLength());
       delete buf;
-    }
-    (*outputFunc)(outputStream, "readonly def\n", 13);
-    (*outputFunc)(outputStream, "currentdict end\n", 16);
-
-    // start the binary section
-    (*outputFunc)(outputStream, "currentfile eexec\n", 18);
-    eb.outputFunc = outputFunc;
-    eb.outputStream = outputStream;
-    eb.ascii = gTrue;
-    eb.r1 = 55665;
-    eb.line = 0;
-
-    // start the private dictionary
-    eexecWrite(&eb, "\x83\xca\x73\xd5");
-    eexecWrite(&eb, "dup /Private 32 dict dup begin\n");
-    eexecWrite(&eb, "/RD {string currentfile exch readstring pop}"
-	       " executeonly def\n");
-    eexecWrite(&eb, "/ND {noaccess def} executeonly def\n");
-    eexecWrite(&eb, "/NP {noaccess put} executeonly def\n");
-    eexecWrite(&eb, "/MinFeature {16 16} def\n");
-    eexecWrite(&eb, "/password 5839 def\n");
-    if (privateDicts[fd].nBlueValues) {
-      eexecWrite(&eb, "/BlueValues [");
-      for (k = 0; k < privateDicts[fd].nBlueValues; ++k) {
-	buf = GooString::format("{0:s}{1:d}",
-			      k > 0 ? " " : "",
-			      privateDicts[fd].blueValues[k]);
+      if (topDict.paintType != 0) {
+	buf = GooString::format("/StrokeWidth {0:.4g} def\n", topDict.strokeWidth);
+	(*outputFunc)(outputStream, buf->getCString(), buf->getLength());
+	delete buf;
+      }
+      (*outputFunc)(outputStream, "/Encoding 256 array\n", 20);
+      for (j = 0; j < 256 && i+j < nCIDs; ++j) {
+	buf = GooString::format("dup {0:d} /c{1:02x} put\n", j, j);
+	(*outputFunc)(outputStream, buf->getCString(), buf->getLength());
+	delete buf;
+      }
+      if (j < 256) {
+	buf = GooString::format("{0:d} 1 255 {{ 1 index exch /.notdef put }} for\n",
+			      j);
+	(*outputFunc)(outputStream, buf->getCString(), buf->getLength());
+	delete buf;
+      }
+      (*outputFunc)(outputStream, "readonly def\n", 13);
+      (*outputFunc)(outputStream, "currentdict end\n", 16);
+
+      // start the binary section
+      (*outputFunc)(outputStream, "currentfile eexec\n", 18);
+      eb.outputFunc = outputFunc;
+      eb.outputStream = outputStream;
+      eb.ascii = gTrue;
+      eb.r1 = 55665;
+      eb.line = 0;
+
+      // start the private dictionary
+      eexecWrite(&eb, "\x83\xca\x73\xd5");
+      eexecWrite(&eb, "dup /Private 32 dict dup begin\n");
+      eexecWrite(&eb, "/RD {string currentfile exch readstring pop}"
+		" executeonly def\n");
+      eexecWrite(&eb, "/ND {noaccess def} executeonly def\n");
+      eexecWrite(&eb, "/NP {noaccess put} executeonly def\n");
+      eexecWrite(&eb, "/MinFeature {16 16} def\n");
+      eexecWrite(&eb, "/password 5839 def\n");
+      if (privateDicts[fd].nBlueValues) {
+	eexecWrite(&eb, "/BlueValues [");
+	for (k = 0; k < privateDicts[fd].nBlueValues; ++k) {
+	  buf = GooString::format("{0:s}{1:d}",
+				k > 0 ? " " : "",
+				privateDicts[fd].blueValues[k]);
+	  eexecWrite(&eb, buf->getCString());
+	  delete buf;
+	}
+	eexecWrite(&eb, "] def\n");
+      }
+      if (privateDicts[fd].nOtherBlues) {
+	eexecWrite(&eb, "/OtherBlues [");
+	for (k = 0; k < privateDicts[fd].nOtherBlues; ++k) {
+	  buf = GooString::format("{0:s}{1:d}",
+				k > 0 ? " " : "",
+				privateDicts[fd].otherBlues[k]);
+	  eexecWrite(&eb, buf->getCString());
+	  delete buf;
+	}
+	eexecWrite(&eb, "] def\n");
+      }
+      if (privateDicts[fd].nFamilyBlues) {
+	eexecWrite(&eb, "/FamilyBlues [");
+	for (k = 0; k < privateDicts[fd].nFamilyBlues; ++k) {
+	  buf = GooString::format("{0:s}{1:d}", k > 0 ? " " : "",
+				privateDicts[fd].familyBlues[k]);
+	  eexecWrite(&eb, buf->getCString());
+	  delete buf;
+	}
+	eexecWrite(&eb, "] def\n");
+      }
+      if (privateDicts[fd].nFamilyOtherBlues) {
+	eexecWrite(&eb, "/FamilyOtherBlues [");
+	for (k = 0; k < privateDicts[fd].nFamilyOtherBlues; ++k) {
+	  buf = GooString::format("{0:s}{1:d}", k > 0 ? " " : "",
+				privateDicts[fd].familyOtherBlues[k]);
+	  eexecWrite(&eb, buf->getCString());
+	  delete buf;
+	}
+	eexecWrite(&eb, "] def\n");
+      }
+      if (privateDicts[fd].blueScale != 0.039625) {
+	buf = GooString::format("/BlueScale {0:.4g} def\n",
+			      privateDicts[fd].blueScale);
 	eexecWrite(&eb, buf->getCString());
 	delete buf;
       }
-      eexecWrite(&eb, "] def\n");
-    }
-    if (privateDicts[fd].nOtherBlues) {
-      eexecWrite(&eb, "/OtherBlues [");
-      for (k = 0; k < privateDicts[fd].nOtherBlues; ++k) {
-	buf = GooString::format("{0:s}{1:d}",
-			      k > 0 ? " " : "",
-			      privateDicts[fd].otherBlues[k]);
+      if (privateDicts[fd].blueShift != 7) {
+	buf = GooString::format("/BlueShift {0:d} def\n",
+			      privateDicts[fd].blueShift);
 	eexecWrite(&eb, buf->getCString());
 	delete buf;
       }
-      eexecWrite(&eb, "] def\n");
-    }
-    if (privateDicts[fd].nFamilyBlues) {
-      eexecWrite(&eb, "/FamilyBlues [");
-      for (k = 0; k < privateDicts[fd].nFamilyBlues; ++k) {
-	buf = GooString::format("{0:s}{1:d}", k > 0 ? " " : "",
-			      privateDicts[fd].familyBlues[k]);
+      if (privateDicts[fd].blueFuzz != 1) {
+	buf = GooString::format("/BlueFuzz {0:d} def\n",
+			      privateDicts[fd].blueFuzz);
 	eexecWrite(&eb, buf->getCString());
 	delete buf;
       }
-      eexecWrite(&eb, "] def\n");
-    }
-    if (privateDicts[fd].nFamilyOtherBlues) {
-      eexecWrite(&eb, "/FamilyOtherBlues [");
-      for (k = 0; k < privateDicts[fd].nFamilyOtherBlues; ++k) {
-	buf = GooString::format("{0:s}{1:d}", k > 0 ? " " : "",
-			      privateDicts[fd].familyOtherBlues[k]);
+      if (privateDicts[fd].hasStdHW) {
+	buf = GooString::format("/StdHW [{0:.4g}] def\n", privateDicts[fd].stdHW);
 	eexecWrite(&eb, buf->getCString());
 	delete buf;
       }
-      eexecWrite(&eb, "] def\n");
-    }
-    if (privateDicts[fd].blueScale != 0.039625) {
-      buf = GooString::format("/BlueScale {0:.4g} def\n",
-			    privateDicts[fd].blueScale);
-      eexecWrite(&eb, buf->getCString());
-      delete buf;
-    }
-    if (privateDicts[fd].blueShift != 7) {
-      buf = GooString::format("/BlueShift {0:d} def\n",
-			    privateDicts[fd].blueShift);
-      eexecWrite(&eb, buf->getCString());
-      delete buf;
-    }
-    if (privateDicts[fd].blueFuzz != 1) {
-      buf = GooString::format("/BlueFuzz {0:d} def\n",
-			    privateDicts[fd].blueFuzz);
-      eexecWrite(&eb, buf->getCString());
-      delete buf;
-    }
-    if (privateDicts[fd].hasStdHW) {
-      buf = GooString::format("/StdHW [{0:.4g}] def\n", privateDicts[fd].stdHW);
-      eexecWrite(&eb, buf->getCString());
-      delete buf;
-    }
-    if (privateDicts[fd].hasStdVW) {
-      buf = GooString::format("/StdVW [{0:.4g}] def\n", privateDicts[fd].stdVW);
-      eexecWrite(&eb, buf->getCString());
-      delete buf;
-    }
-    if (privateDicts[fd].nStemSnapH) {
-      eexecWrite(&eb, "/StemSnapH [");
-      for (k = 0; k < privateDicts[fd].nStemSnapH; ++k) {
-	buf = GooString::format("{0:s}{1:.4g}",
-			      k > 0 ? " " : "", privateDicts[fd].stemSnapH[k]);
+      if (privateDicts[fd].hasStdVW) {
+	buf = GooString::format("/StdVW [{0:.4g}] def\n", privateDicts[fd].stdVW);
 	eexecWrite(&eb, buf->getCString());
 	delete buf;
       }
-      eexecWrite(&eb, "] def\n");
-    }
-    if (privateDicts[fd].nStemSnapV) {
-      eexecWrite(&eb, "/StemSnapV [");
-      for (k = 0; k < privateDicts[fd].nStemSnapV; ++k) {
-	buf = GooString::format("{0:s}{1:.4g}",
-			      k > 0 ? " " : "", privateDicts[fd].stemSnapV[k]);
+      if (privateDicts[fd].nStemSnapH) {
+	eexecWrite(&eb, "/StemSnapH [");
+	for (k = 0; k < privateDicts[fd].nStemSnapH; ++k) {
+	  buf = GooString::format("{0:s}{1:.4g}",
+				k > 0 ? " " : "", privateDicts[fd].stemSnapH[k]);
+	  eexecWrite(&eb, buf->getCString());
+	  delete buf;
+	}
+	eexecWrite(&eb, "] def\n");
+      }
+      if (privateDicts[fd].nStemSnapV) {
+	eexecWrite(&eb, "/StemSnapV [");
+	for (k = 0; k < privateDicts[fd].nStemSnapV; ++k) {
+	  buf = GooString::format("{0:s}{1:.4g}",
+				k > 0 ? " " : "", privateDicts[fd].stemSnapV[k]);
+	  eexecWrite(&eb, buf->getCString());
+	  delete buf;
+	}
+	eexecWrite(&eb, "] def\n");
+      }
+      if (privateDicts[fd].hasForceBold) {
+	buf = GooString::format("/ForceBold {0:s} def\n",
+			      privateDicts[fd].forceBold ? "true" : "false");
+	eexecWrite(&eb, buf->getCString());
+	delete buf;
+      }
+      if (privateDicts[fd].forceBoldThreshold != 0) {
+	buf = GooString::format("/ForceBoldThreshold {0:.4g} def\n",
+			      privateDicts[fd].forceBoldThreshold);
+	eexecWrite(&eb, buf->getCString());
+	delete buf;
+      }
+      if (privateDicts[fd].languageGroup != 0) {
+	buf = GooString::format("/LanguageGroup {0:d} def\n",
+			      privateDicts[fd].languageGroup);
+	eexecWrite(&eb, buf->getCString());
+	delete buf;
+      }
+      if (privateDicts[fd].expansionFactor != 0.06) {
+	buf = GooString::format("/ExpansionFactor {0:.4g} def\n",
+			      privateDicts[fd].expansionFactor);
 	eexecWrite(&eb, buf->getCString());
 	delete buf;
       }
-      eexecWrite(&eb, "] def\n");
-    }
-    if (privateDicts[fd].hasForceBold) {
-      buf = GooString::format("/ForceBold {0:s} def\n",
-			    privateDicts[fd].forceBold ? "true" : "false");
-      eexecWrite(&eb, buf->getCString());
-      delete buf;
-    }
-    if (privateDicts[fd].forceBoldThreshold != 0) {
-      buf = GooString::format("/ForceBoldThreshold {0:.4g} def\n",
-			    privateDicts[fd].forceBoldThreshold);
-      eexecWrite(&eb, buf->getCString());
-      delete buf;
-    }
-    if (privateDicts[fd].languageGroup != 0) {
-      buf = GooString::format("/LanguageGroup {0:d} def\n",
-			    privateDicts[fd].languageGroup);
-      eexecWrite(&eb, buf->getCString());
-      delete buf;
-    }
-    if (privateDicts[fd].expansionFactor != 0.06) {
-      buf = GooString::format("/ExpansionFactor {0:.4g} def\n",
-			    privateDicts[fd].expansionFactor);
-      eexecWrite(&eb, buf->getCString());
-      delete buf;
-    }
 
-    // set up the subroutines
-    ok = gTrue;
-    getIndex(privateDicts[fd].subrsOffset, &subrIdx, &ok);
-    if (!ok) {
-      subrIdx.pos = -1;
-    }
+      // set up the subroutines
+      ok = gTrue;
+      getIndex(privateDicts[fd].subrsOffset, &subrIdx, &ok);
+      if (!ok) {
+	subrIdx.pos = -1;
+      }
 
-    // start the CharStrings
-    eexecWrite(&eb, "2 index /CharStrings 256 dict dup begin\n");
+      // start the CharStrings
+      eexecWrite(&eb, "2 index /CharStrings 256 dict dup begin\n");
 
-    // write the .notdef CharString
-    ok = gTrue;
-    getIndexVal(&charStringsIdx, 0, &val, &ok);
-    if (ok) {
-      eexecCvtGlyph(&eb, ".notdef", val.pos, val.len,
-		    &subrIdx, &privateDicts[fd]);
-    }
-
-    // write the CharStrings
-    for (j = 0; j < 256 && i+j < nCIDs; ++j) {
-      if (cidMap[i+j] >= 0) {
-	ok = gTrue;
-	getIndexVal(&charStringsIdx, cidMap[i+j], &val, &ok);
-	if (ok) {
-	  buf = GooString::format("c{0:02x}", j);
-	  eexecCvtGlyph(&eb, buf->getCString(), val.pos, val.len,
-			&subrIdx, &privateDicts[fd]);
-	  delete buf;
-	}
+      // write the .notdef CharString
+      ok = gTrue;
+      getIndexVal(&charStringsIdx, 0, &val, &ok);
+      if (ok) {
+	eexecCvtGlyph(&eb, ".notdef", val.pos, val.len,
+		      &subrIdx, &privateDicts[fd]);
       }
-    }
-    eexecWrite(&eb, "end\n");
-    eexecWrite(&eb, "end\n");
-    eexecWrite(&eb, "readonly put\n");
-    eexecWrite(&eb, "noaccess put\n");
-    eexecWrite(&eb, "dup /FontName get exch definefont pop\n");
-    eexecWrite(&eb, "mark currentfile closefile\n");
 
-    // trailer
-    if (eb.line > 0) {
-      (*outputFunc)(outputStream, "\n", 1);
-    }
-    for (j = 0; j < 8; ++j) {
-      (*outputFunc)(outputStream, "0000000000000000000000000000000000000000000000000000000000000000\n", 65);
+      // write the CharStrings
+      for (j = 0; j < 256 && i+j < nCIDs; ++j) {
+	if (cidMap[i+j] >= 0) {
+	  ok = gTrue;
+	  getIndexVal(&charStringsIdx, cidMap[i+j], &val, &ok);
+	  if (ok) {
+	    buf = GooString::format("c{0:02x}", j);
+	    eexecCvtGlyph(&eb, buf->getCString(), val.pos, val.len,
+			  &subrIdx, &privateDicts[fd]);
+	    delete buf;
+	  }
+	}
+      }
+      eexecWrite(&eb, "end\n");
+      eexecWrite(&eb, "end\n");
+      eexecWrite(&eb, "readonly put\n");
+      eexecWrite(&eb, "noaccess put\n");
+      eexecWrite(&eb, "dup /FontName get exch definefont pop\n");
+      eexecWrite(&eb, "mark currentfile closefile\n");
+
+      // trailer
+      if (eb.line > 0) {
+	(*outputFunc)(outputStream, "\n", 1);
+      }
+      for (j = 0; j < 8; ++j) {
+	(*outputFunc)(outputStream, "0000000000000000000000000000000000000000000000000000000000000000\n", 65);
+      }
+      (*outputFunc)(outputStream, "cleartomark\n", 12);
     }
-    (*outputFunc)(outputStream, "cleartomark\n", 12);
+  } else {
+    error(errSyntaxError, -1, "FoFiType1C::convertToType0 without privateDicts");
   }
 
   // write the Type 0 parent font
diff --git a/source/libs/poppler/poppler-src/fofi/Makefile.am b/source/libs/poppler/poppler-src/fofi/Makefile.am
deleted file mode 100644
index 4deb7d5e0..000000000
--- a/source/libs/poppler/poppler-src/fofi/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-noinst_LTLIBRARIES = libfofi.la
-
-if ENABLE_XPDF_HEADERS
-poppler_fofi_includedir = $(includedir)/poppler/fofi
-poppler_fofi_include_HEADERS =	\
-	FoFiBase.h		\
-	FoFiEncodings.h		\
-	FoFiTrueType.h		\
-	FoFiType1.h		\
-	FoFiIdentifier.h	\
-	FoFiType1C.h
-endif
-
-libfofi_la_SOURCES =		\
-	FoFiBase.cc		\
-	FoFiBase.h		\
-	FoFiEncodings.cc	\
-	FoFiEncodings.h		\
-	FoFiTrueType.cc		\
-	FoFiTrueType.h		\
-	FoFiType1.cc		\
-	FoFiType1.h		\
-	FoFiType1C.cc		\
-	FoFiIdentifier.cc	\
-	FoFiType1C.h
-
-libfofi_la_CPPFLAGS =		\
-	-I$(top_srcdir)
diff --git a/source/libs/poppler/poppler-src/goo/GooString.cc b/source/libs/poppler/poppler-src/goo/GooString.cc
index 12592e490..f055b37f4 100644
--- a/source/libs/poppler/poppler-src/goo/GooString.cc
+++ b/source/libs/poppler/poppler-src/goo/GooString.cc
@@ -18,7 +18,7 @@
 // Copyright (C) 2006 Kristian Høgsberg <krh@redhat.com>
 // Copyright (C) 2006 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
 // Copyright (C) 2007 Jeff Muizelaar <jeff@infidigm.net>
-// Copyright (C) 2008-2011, 2016 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2008-2011, 2016, 2017 Albert Astals Cid <aacid@kde.org>
 // Copyright (C) 2011 Kenji Uno <ku@digitaldolphins.jp>
 // Copyright (C) 2012, 2013 Fabio D'Urso <fabiodurso@hotmail.it>
 // Copyright (C) 2012 Adrian Johnson <ajohnson@redneon.com>
@@ -917,7 +917,13 @@ GBool GooString::hasUnicodeMarker(void) const
   return length > 1 && (s[0] & 0xff) == 0xfe && (s[1] & 0xff) == 0xff;
 }
 
-GooString *GooString::sanitizedName(GBool psmode)
+void GooString::prependUnicodeMarker()
+{
+    insert(0, (char)0xff);
+    insert(0, (char)0xfe);
+}
+
+GooString *GooString::sanitizedName(GBool psmode) const
 {
   GooString *name;
   char buf[8];
diff --git a/source/libs/poppler/poppler-src/goo/GooString.h b/source/libs/poppler/poppler-src/goo/GooString.h
index 70cfe3b47..167ea1ab6 100644
--- a/source/libs/poppler/poppler-src/goo/GooString.h
+++ b/source/libs/poppler/poppler-src/goo/GooString.h
@@ -17,7 +17,7 @@
 //
 // Copyright (C) 2006 Kristian Høgsberg <krh@redhat.com>
 // Copyright (C) 2006 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
-// Copyright (C) 2008-2010, 2012, 2014 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2008-2010, 2012, 2014, 2017 Albert Astals Cid <aacid@kde.org>
 // Copyright (C) 2012-2014 Fabio D'Urso <fabiodurso@hotmail.it>
 // Copyright (C) 2013 Jason Crain <jason@aquaticape.us>
 // Copyright (C) 2015 Adam Reichold <adam.reichold@t-online.de>
@@ -176,13 +176,14 @@ public:
   GBool endsWith(const char *suffix) const;
 
   GBool hasUnicodeMarker(void) const;
+  void prependUnicodeMarker();
   GBool hasJustUnicodeMarker(void) const { return length == 2 && hasUnicodeMarker(); }
 
   // Sanitizes the string so that it does
   // not contain any ( ) < > [ ] { } / %
   // The postscript mode also has some more strict checks
   // The caller owns the return value
-  GooString *sanitizedName(GBool psmode);
+  GooString *sanitizedName(GBool psmode) const;
 
 private:
   GooString(const GooString &other);
diff --git a/source/libs/poppler/poppler-src/goo/JpegWriter.cc b/source/libs/poppler/poppler-src/goo/JpegWriter.cc
index a5a4d5a6f..37c15c2ab 100644
--- a/source/libs/poppler/poppler-src/goo/JpegWriter.cc
+++ b/source/libs/poppler/poppler-src/goo/JpegWriter.cc
@@ -9,6 +9,7 @@
 // Copyright (C) 2010 Harry Roberts <harry.roberts@midnight-labs.org>
 // Copyright (C) 2011 Thomas Freitag <Thomas.Freitag@alfa.de>
 // Copyright (C) 2013 Peter Breitenlohner <peb@mppmu.mpg.de>
+// Copyright (C) 2017 Albert Astals Cid <aacid@kde.org>
 //
 //========================================================================
 
@@ -30,7 +31,7 @@ struct JpegWriterPrivate {
   struct jpeg_error_mgr jerr;
 };
 
-void outputMessage(j_common_ptr cinfo)
+static void outputMessage(j_common_ptr cinfo)
 {
   char buffer[JMSG_LENGTH_MAX];
 
diff --git a/source/libs/poppler/poppler-src/goo/Makefile.am b/source/libs/poppler/poppler-src/goo/Makefile.am
deleted file mode 100644
index 004775a48..000000000
--- a/source/libs/poppler/poppler-src/goo/Makefile.am
+++ /dev/null
@@ -1,69 +0,0 @@
-noinst_LTLIBRARIES = libgoo.la
-
-if ENABLE_XPDF_HEADERS
-
-poppler_goo_includedir = $(includedir)/poppler/goo
-poppler_goo_include_HEADERS =			\
-	GooHash.h				\
-	GooList.h				\
-	GooTimer.h				\
-	GooMutex.h				\
-	GooString.h				\
-	gtypes.h				\
-	gmem.h					\
-	gfile.h					\
-	FixedPoint.h				\
-	NetPBMWriter.h				\
-	PNGWriter.h				\
-	JpegWriter.h				\
-	TiffWriter.h				\
-	ImgWriter.h				\
-	GooLikely.h				\
-	gstrtod.h				\
-	grandom.h
-
-endif
-
-libgoo_la_SOURCES =				\
-	gfile.cc				\
-	gmempp.cc				\
-	GooHash.cc				\
-	GooList.cc				\
-	GooTimer.cc				\
-	GooString.cc				\
-	gmem.cc					\
-	FixedPoint.cc				\
-	NetPBMWriter.cc				\
-	PNGWriter.cc				\
-	JpegWriter.cc				\
-	TiffWriter.cc				\
-	ImgWriter.cc				\
-	gtypes_p.h				\
-	gstrtod.cc				\
-	grandom.cc                              \
-	glibc.cc
-
-if BUILD_LIBJPEG
-libjpeg_includes = $(LIBJPEG_CFLAGS)
-endif
-
-if BUILD_LIBTIFF
-libtiff_includes = $(LIBTIFF_CFLAGS)
-endif
-
-if BUILD_LIBOPENJPEG
-libjpeg2000_includes = $(LIBOPENJPEG_CFLAGS)
-endif
-
-if BUILD_LIBPNG
-libpng_includes = $(LIBPNG_CFLAGS)
-endif
-
-libgoo_la_CPPFLAGS =				\
-	-I$(top_srcdir)				\
-	$(libjpeg_includes)                     \
-	$(libtiff_includes)                     \
-	$(libjpeg2000_includes)                 \
-	$(libpng_includes)
-
-EXTRA_DIST = glibc.h
\ No newline at end of file
diff --git a/source/libs/poppler/poppler-src/goo/glibc.h b/source/libs/poppler/poppler-src/goo/glibc.h
index 49479e9d2..45aff9df0 100644
--- a/source/libs/poppler/poppler-src/goo/glibc.h
+++ b/source/libs/poppler/poppler-src/goo/glibc.h
@@ -31,7 +31,7 @@ struct tm *localtime_r(const time_t *timep, struct tm *result);
 time_t timegm(struct tm *tm);
 #endif
 
-};
+}
 
 #endif // GLIBC_H
 
diff --git a/source/libs/poppler/poppler-src/goo/gmem.h b/source/libs/poppler/poppler-src/goo/gmem.h
index 898f33933..4c76f0fb6 100644
--- a/source/libs/poppler/poppler-src/goo/gmem.h
+++ b/source/libs/poppler/poppler-src/goo/gmem.h
@@ -14,7 +14,7 @@
 // under GPL version 2 or later
 //
 // Copyright (C) 2005 Takashi Iwai <tiwai@suse.de>
-// Copyright (C) 2007-2010 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2007-2010, 2017 Albert Astals Cid <aacid@kde.org>
 // Copyright (C) 2008 Jonathan Kew <jonathan_kew@sil.org>
 //
 // To see a description of the changes please see the Changelog file that
@@ -44,7 +44,7 @@ extern void *gmalloc_checkoverflow(size_t size);
  * returns NULL.  If <p> is NULL, calls malloc instead of realloc().
  */
 extern void *grealloc(void *p, size_t size);
-extern void *grealloc_checkoverflow(size_t size);
+extern void *grealloc_checkoverflow(void *p, size_t size);
 
 /*
  * These are similar to gmalloc and grealloc, but take an object count
diff --git a/source/libs/poppler/poppler-src/gtk-doc.make b/source/libs/poppler/poppler-src/gtk-doc.make
deleted file mode 100644
index 2454c2857..000000000
--- a/source/libs/poppler/poppler-src/gtk-doc.make
+++ /dev/null
@@ -1,305 +0,0 @@
-# -*- mode: makefile -*-
-
-####################################
-# Everything below here is generic #
-####################################
-
-if GTK_DOC_USE_LIBTOOL
-GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
-GTKDOC_RUN = $(LIBTOOL) --mode=execute
-else
-GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
-GTKDOC_RUN =
-endif
-
-# We set GPATH here; this gives us semantics for GNU make
-# which are more like other make's VPATH, when it comes to
-# whether a source that is a target of one rule is then
-# searched for in VPATH/GPATH.
-#
-GPATH = $(srcdir)
-
-TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
-
-SETUP_FILES = \
-	$(content_files)		\
-	$(expand_content_files)		\
-	$(DOC_MAIN_SGML_FILE)		\
-	$(DOC_MODULE)-sections.txt	\
-	$(DOC_MODULE)-overrides.txt
-
-EXTRA_DIST = 				\
-	$(HTML_IMAGES)			\
-	$(SETUP_FILES)
-
-DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \
-	html-build.stamp pdf-build.stamp \
-	sgml.stamp html.stamp pdf.stamp
-
-SCANOBJ_FILES = 		 \
-	$(DOC_MODULE).args 	 \
-	$(DOC_MODULE).hierarchy  \
-	$(DOC_MODULE).interfaces \
-	$(DOC_MODULE).prerequisites \
-	$(DOC_MODULE).signals
-
-REPORT_FILES = \
-	$(DOC_MODULE)-undocumented.txt \
-	$(DOC_MODULE)-undeclared.txt \
-	$(DOC_MODULE)-unused.txt
-
-gtkdoc-check.test: Makefile
-	$(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
-		echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
-		chmod +x $@
-
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test
-
-if GTK_DOC_BUILD_HTML
-HTML_BUILD_STAMP=html-build.stamp
-else
-HTML_BUILD_STAMP=
-endif
-if GTK_DOC_BUILD_PDF
-PDF_BUILD_STAMP=pdf-build.stamp
-else
-PDF_BUILD_STAMP=
-endif
-
-all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
-.PHONY: all-gtk-doc
-
-if ENABLE_GTK_DOC
-all-local: all-gtk-doc
-endif
-
-docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
-
-$(REPORT_FILES): sgml-build.stamp
-
-#### setup ####
-
-GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V))
-GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
-GTK_DOC_V_SETUP_0=@echo "  DOC   Preparing build";
-
-setup-build.stamp:
-	-$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-	    files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
-	    if test "x$$files" != "x" ; then \
-	        for file in $$files ; do \
-	            destdir=`dirname $(abs_builddir)/$$file`; \
-	            test -d "$$destdir" || mkdir -p "$$destdir"; \
-	            test -f $(abs_srcdir)/$$file && \
-	                cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
-	        done; \
-	    fi; \
-	fi
-	$(AM_V_at)touch setup-build.stamp
-
-
-#### scan ####
-
-GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V))
-GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
-GTK_DOC_V_SCAN_0=@echo "  DOC   Scanning header files";
-
-GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V))
-GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
-GTK_DOC_V_INTROSPECT_0=@echo "  DOC   Introspecting gobjects";
-
-scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
-	$(GTK_DOC_V_SCAN)_source_dir='' ; \
-	for i in $(DOC_SOURCE_DIR) ; do \
-	    _source_dir="$${_source_dir} --source-dir=$$i" ; \
-	done ; \
-	gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
-	$(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
-	    scanobj_options=""; \
-	    gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-	    if test "$$?" = "0"; then \
-	        if test "x$(V)" = "x1"; then \
-	            scanobj_options="--verbose"; \
-	        fi; \
-	    fi; \
-	    CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
-	    gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
-	else \
-	    for i in $(SCANOBJ_FILES) ; do \
-	        test -f $$i || touch $$i ; \
-	    done \
-	fi
-	$(AM_V_at)touch scan-build.stamp
-
-$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
-	@true
-
-#### xml ####
-
-GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V))
-GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
-GTK_DOC_V_XML_0=@echo "  DOC   Building XML";
-
-sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent
-	$(GTK_DOC_V_XML)_source_dir='' ; \
-	for i in $(DOC_SOURCE_DIR) ; do \
-	    _source_dir="$${_source_dir} --source-dir=$$i" ; \
-	done ; \
-	gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
-	$(AM_V_at)touch sgml-build.stamp
-
-sgml.stamp: sgml-build.stamp
-	@true
-
-xml/gtkdocentities.ent: Makefile
-	$(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \
-		echo "<!ENTITY package \"$(PACKAGE)\">"; \
-		echo "<!ENTITY package_bugreport \"$(PACKAGE_BUGREPORT)\">"; \
-		echo "<!ENTITY package_name \"$(PACKAGE_NAME)\">"; \
-		echo "<!ENTITY package_string \"$(PACKAGE_STRING)\">"; \
-		echo "<!ENTITY package_tarname \"$(PACKAGE_TARNAME)\">"; \
-		echo "<!ENTITY package_url \"$(PACKAGE_URL)\">"; \
-		echo "<!ENTITY package_version \"$(PACKAGE_VERSION)\">"; \
-	) > $@
-
-#### html ####
-
-GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V))
-GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
-GTK_DOC_V_HTML_0=@echo "  DOC   Building HTML";
-
-GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V))
-GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
-GTK_DOC_V_XREF_0=@echo "  DOC   Fixing cross-references";
-
-html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
-	$(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
-	mkhtml_options=""; \
-	gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-	if test "$$?" = "0"; then \
-	  if test "x$(V)" = "x1"; then \
-	    mkhtml_options="$$mkhtml_options --verbose"; \
-	  fi; \
-	fi; \
-	gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
-	if test "$$?" = "0"; then \
-	  mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
-	fi; \
-	cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-	-@test "x$(HTML_IMAGES)" = "x" || \
-	for file in $(HTML_IMAGES) ; do \
-	  if test -f $(abs_srcdir)/$$file ; then \
-	    cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
-	  fi; \
-	  if test -f $(abs_builddir)/$$file ; then \
-	    cp $(abs_builddir)/$$file $(abs_builddir)/html; \
-	  fi; \
-	  test -f $$file && cp $$file $(abs_builddir)/html; \
-	done;
-	$(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-	$(AM_V_at)touch html-build.stamp
-
-#### pdf ####
-
-GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V))
-GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
-GTK_DOC_V_PDF_0=@echo "  DOC   Building PDF";
-
-pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
-	$(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
-	mkpdf_options=""; \
-	gtkdoc-mkpdf 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
-	if test "$$?" = "0"; then \
-	  if test "x$(V)" = "x1"; then \
-	    mkpdf_options="$$mkpdf_options --verbose"; \
-	  fi; \
-	fi; \
-	if test "x$(HTML_IMAGES)" != "x"; then \
-	  for img in $(HTML_IMAGES); do \
-	    part=`dirname $$img`; \
-	    echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \
-	    if test $$? != 0; then \
-	      mkpdf_options="$$mkpdf_options --imgdir=$$part"; \
-	    fi; \
-	  done; \
-	fi; \
-	gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
-	$(AM_V_at)touch pdf-build.stamp
-
-##############
-
-clean-local:
-	@rm -f *~ *.bak
-	@rm -rf .libs
-	@if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
-	  rm -f $(DOC_MODULE).types; \
-	fi
-	@if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \
-	  rm -f $(DOC_MODULE)-sections.txt; \
-	fi
-
-distclean-local:
-	@rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
-	    $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
-	@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-	    rm -f $(SETUP_FILES) $(DOC_MODULE).types; \
-	fi
-
-maintainer-clean-local:
-	@rm -rf xml html
-
-install-data-local:
-	@installfiles=`echo $(builddir)/html/*`; \
-	if test "$$installfiles" = '$(builddir)/html/*'; \
-	then echo 1>&2 'Nothing to install' ; \
-	else \
-	  if test -n "$(DOC_MODULE_VERSION)"; then \
-	    installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
-	  else \
-	    installdir="$(DESTDIR)$(TARGET_DIR)"; \
-	  fi; \
-	  $(mkinstalldirs) $${installdir} ; \
-	  for i in $$installfiles; do \
-	    echo ' $(INSTALL_DATA) '$$i ; \
-	    $(INSTALL_DATA) $$i $${installdir}; \
-	  done; \
-	  if test -n "$(DOC_MODULE_VERSION)"; then \
-	    mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
-	      $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
-	  fi; \
-	  $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
-	fi
-
-uninstall-local:
-	@if test -n "$(DOC_MODULE_VERSION)"; then \
-	  installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
-	else \
-	  installdir="$(DESTDIR)$(TARGET_DIR)"; \
-	fi; \
-	rm -rf $${installdir}
-
-#
-# Require gtk-doc when making dist
-#
-if HAVE_GTK_DOC
-dist-check-gtkdoc: docs
-else
-dist-check-gtkdoc:
-	@echo "*** gtk-doc is needed to run 'make dist'.         ***"
-	@echo "*** gtk-doc was not found when 'configure' ran.   ***"
-	@echo "*** please install gtk-doc and rerun 'configure'. ***"
-	@false
-endif
-
-dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
-	@mkdir $(distdir)/html
-	@cp ./html/* $(distdir)/html
-	@-cp ./$(DOC_MODULE).pdf $(distdir)/
-	@-cp ./$(DOC_MODULE).types $(distdir)/
-	@-cp ./$(DOC_MODULE)-sections.txt $(distdir)/
-	@cd $(distdir) && rm -f $(DISTCLEANFILES)
-	@$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
-
-.PHONY : dist-hook-local docs
diff --git a/source/libs/poppler/poppler-src/poppler-cairo-uninstalled.pc.in b/source/libs/poppler/poppler-src/poppler-cairo-uninstalled.pc.in
deleted file mode 100644
index 2458eb20d..000000000
--- a/source/libs/poppler/poppler-src/poppler-cairo-uninstalled.pc.in
+++ /dev/null
@@ -1,6 +0,0 @@
-Name: poppler-cairo
-Description: Cairo backend for Poppler PDF rendering library - uninstalled
-Version: @VERSION@
-Requires: poppler = @VERSION@ cairo >= @CAIRO_VERSION@
-
-Libs: ${pc_top_builddir}/${pcfiledir}/poppler/libpoppler-cairo.la
diff --git a/source/libs/poppler/poppler-src/poppler-cairo.pc.cmake b/source/libs/poppler/poppler-src/poppler-cairo.pc.cmake
deleted file mode 100644
index b32f11831..000000000
--- a/source/libs/poppler/poppler-src/poppler-cairo.pc.cmake
+++ /dev/null
@@ -1,9 +0,0 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib@LIB_SUFFIX@
-includedir=${prefix}/include
-
-Name: poppler-cairo
-Description: Cairo backend for Poppler PDF rendering library
-Version: @POPPLER_VERSION@
-Requires: poppler = @POPPLER_VERSION@ cairo >= @CAIRO_VERSION@
diff --git a/source/libs/poppler/poppler-src/poppler-cairo.pc.in b/source/libs/poppler/poppler-src/poppler-cairo.pc.in
deleted file mode 100644
index 367a5b690..000000000
--- a/source/libs/poppler/poppler-src/poppler-cairo.pc.in
+++ /dev/null
@@ -1,9 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: poppler-cairo
-Description: Cairo backend for Poppler PDF rendering library
-Version: @VERSION@
-Requires: poppler = @VERSION@ cairo >= @CAIRO_VERSION@
diff --git a/source/libs/poppler/poppler-src/poppler-cpp-uninstalled.pc.in b/source/libs/poppler/poppler-src/poppler-cpp-uninstalled.pc.in
deleted file mode 100644
index af3640eb2..000000000
--- a/source/libs/poppler/poppler-src/poppler-cpp-uninstalled.pc.in
+++ /dev/null
@@ -1,7 +0,0 @@
-Name: poppler-cpp
-Description: cpp backend for Poppler PDF rendering library - uninstalled
-Version: @VERSION@
-Requires: poppler = @VERSION@
-
-Libs: ${pc_top_builddir}/${pcfiledir}/cpp/libpoppler-cpp.la
-Cflags: -I${pc_top_builddir}/${pcfiledir}/cpp
diff --git a/source/libs/poppler/poppler-src/poppler-cpp.pc.cmake b/source/libs/poppler/poppler-src/poppler-cpp.pc.cmake
deleted file mode 100644
index 3f56b3d9d..000000000
--- a/source/libs/poppler/poppler-src/poppler-cpp.pc.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib@LIB_SUFFIX@
-includedir=${prefix}/include
-
-Name: poppler-cpp
-Description: cpp backend for Poppler PDF rendering library
-Version: @POPPLER_VERSION@
-Requires: @PC_REQUIRES@
-@PC_REQUIRES_PRIVATE@
-
-Libs: -L${libdir} -lpoppler-cpp
-Cflags: -I${includedir}/poppler/cpp
diff --git a/source/libs/poppler/poppler-src/poppler-cpp.pc.in b/source/libs/poppler/poppler-src/poppler-cpp.pc.in
deleted file mode 100644
index a7e97c25d..000000000
--- a/source/libs/poppler/poppler-src/poppler-cpp.pc.in
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: poppler-cpp
-Description: cpp backend for Poppler PDF rendering library
-Version: @VERSION@
-Requires: @PC_REQUIRES@
-@PC_REQUIRES_PRIVATE@
-
-Libs: -L${libdir} -lpoppler-cpp
-Cflags: -I${includedir}/poppler/cpp
diff --git a/source/libs/poppler/poppler-src/poppler-glib-uninstalled.pc.in b/source/libs/poppler/poppler-src/poppler-glib-uninstalled.pc.in
deleted file mode 100644
index 5506c4e53..000000000
--- a/source/libs/poppler/poppler-src/poppler-glib-uninstalled.pc.in
+++ /dev/null
@@ -1,7 +0,0 @@
-Name: poppler-glib
-Description: GLib wrapper for poppler - uninstalled
-Version: @VERSION@
-Requires: glib-2.0 >= @GLIB_REQUIRED@ gobject-2.0 >= @GLIB_REQUIRED@ gio-2.0 >= @GLIB_REQUIRED@ cairo >= @CAIRO_VERSION@
-
-Libs: ${pc_top_builddir}/${pcfiledir}/glib/libpoppler-glib.la
-Cflags: -I${pc_top_builddir}/${pcfiledir}/glib
diff --git a/source/libs/poppler/poppler-src/poppler-glib.pc.cmake b/source/libs/poppler/poppler-src/poppler-glib.pc.cmake
deleted file mode 100644
index e15e6699a..000000000
--- a/source/libs/poppler/poppler-src/poppler-glib.pc.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib@LIB_SUFFIX@
-includedir=${prefix}/include
-
-Name: poppler-glib
-Description: GLib wrapper for poppler
-Version: @POPPLER_VERSION@
-Requires: glib-2.0 >= @GLIB_REQUIRED@ gobject-2.0 >= @GLIB_REQUIRED@ cairo >= @CAIRO_VERSION@
-@PC_REQUIRES_PRIVATE@
-
-Libs: -L${libdir} -lpoppler-glib
-Cflags: -I${includedir}/poppler/glib
diff --git a/source/libs/poppler/poppler-src/poppler-glib.pc.in b/source/libs/poppler/poppler-src/poppler-glib.pc.in
deleted file mode 100644
index cd30feb72..000000000
--- a/source/libs/poppler/poppler-src/poppler-glib.pc.in
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: poppler-glib
-Description: GLib wrapper for poppler
-Version: @VERSION@
-Requires: glib-2.0 >= @GLIB_REQUIRED@ gobject-2.0 >= @GLIB_REQUIRED@ gio-2.0 >= @GLIB_REQUIRED@ cairo >= @CAIRO_VERSION@
-@PC_REQUIRES_PRIVATE@
-
-Libs: -L${libdir} -lpoppler-glib
-Cflags: -I${includedir}/poppler/glib
diff --git a/source/libs/poppler/poppler-src/poppler-qt4-uninstalled.pc.in b/source/libs/poppler/poppler-src/poppler-qt4-uninstalled.pc.in
deleted file mode 100644
index 3a336c6c2..000000000
--- a/source/libs/poppler/poppler-src/poppler-qt4-uninstalled.pc.in
+++ /dev/null
@@ -1,7 +0,0 @@
-Name: poppler-qt4
-Description: Qt4 bindings for poppler - uninstalled
-Version: @VERSION@
-Requires: poppler = @VERSION@ 
-
-Libs: ${pc_top_builddir}/${pcfiledir}/qt4/src/libpoppler-qt4.la
-Cflags: -I${pc_top_builddir}/${pcfiledir}/qt4/src
diff --git a/source/libs/poppler/poppler-src/poppler-qt4.pc.cmake b/source/libs/poppler/poppler-src/poppler-qt4.pc.cmake
deleted file mode 100644
index b17fd5d84..000000000
--- a/source/libs/poppler/poppler-src/poppler-qt4.pc.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib@LIB_SUFFIX@
-includedir=${prefix}/include
-
-Name: poppler-qt4
-Description: Qt4 bindings for poppler
-Version: @POPPLER_VERSION@
-Requires: @PC_REQUIRES@
-@PC_REQUIRES_PRIVATE@
-
-Libs: -L${libdir} -lpoppler-qt4
-Cflags: -I${includedir}/poppler/qt4
diff --git a/source/libs/poppler/poppler-src/poppler-qt4.pc.in b/source/libs/poppler/poppler-src/poppler-qt4.pc.in
deleted file mode 100644
index 306ae46e0..000000000
--- a/source/libs/poppler/poppler-src/poppler-qt4.pc.in
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: poppler-qt4
-Description: Qt4 bindings for poppler
-Version: @VERSION@
-Requires: @PC_REQUIRES@
-@PC_REQUIRES_PRIVATE@
-
-Libs: -L${libdir} -lpoppler-qt4
-Cflags: -I${includedir}/poppler/qt4
diff --git a/source/libs/poppler/poppler-src/poppler-qt5-uninstalled.pc.in b/source/libs/poppler/poppler-src/poppler-qt5-uninstalled.pc.in
deleted file mode 100644
index a91e1d5a3..000000000
--- a/source/libs/poppler/poppler-src/poppler-qt5-uninstalled.pc.in
+++ /dev/null
@@ -1,7 +0,0 @@
-Name: poppler-qt5
-Description: Qt5 bindings for poppler - uninstalled
-Version: @VERSION@
-Requires: poppler = @VERSION@ 
-
-Libs: ${pc_top_builddir}/${pcfiledir}/qt5/src/libpoppler-qt5.la
-Cflags: -I${pc_top_builddir}/${pcfiledir}/qt5/src
diff --git a/source/libs/poppler/poppler-src/poppler-qt5.pc.cmake b/source/libs/poppler/poppler-src/poppler-qt5.pc.cmake
deleted file mode 100644
index b4d87b766..000000000
--- a/source/libs/poppler/poppler-src/poppler-qt5.pc.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib@LIB_SUFFIX@
-includedir=${prefix}/include
-
-Name: poppler-qt5
-Description: Qt5 bindings for poppler
-Version: @POPPLER_VERSION@
-Requires: @PC_REQUIRES@
-@PC_REQUIRES_PRIVATE@
-
-Libs: -L${libdir} -lpoppler-qt5
-Cflags: -I${includedir}/poppler/qt5
diff --git a/source/libs/poppler/poppler-src/poppler-qt5.pc.in b/source/libs/poppler/poppler-src/poppler-qt5.pc.in
deleted file mode 100644
index cda4c6f80..000000000
--- a/source/libs/poppler/poppler-src/poppler-qt5.pc.in
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: poppler-qt5
-Description: Qt5 bindings for poppler
-Version: @VERSION@
-Requires: @PC_REQUIRES@
-@PC_REQUIRES_PRIVATE@
-
-Libs: -L${libdir} -lpoppler-qt5
-Cflags: -I${includedir}/poppler/qt5
diff --git a/source/libs/poppler/poppler-src/poppler-splash-uninstalled.pc.in b/source/libs/poppler/poppler-src/poppler-splash-uninstalled.pc.in
deleted file mode 100644
index 436ecdb8f..000000000
--- a/source/libs/poppler/poppler-src/poppler-splash-uninstalled.pc.in
+++ /dev/null
@@ -1,7 +0,0 @@
-Name: poppler-splash
-Description: Splash backend for Poppler PDF rendering library - uninstalled
-Version: @VERSION@
-Requires: poppler = @VERSION@
-
-Libs: ${pc_top_builddir}/${pcfiledir}/splash/libsplash.la
-
diff --git a/source/libs/poppler/poppler-src/poppler-splash.pc.cmake b/source/libs/poppler/poppler-src/poppler-splash.pc.cmake
deleted file mode 100644
index cb95b3d2d..000000000
--- a/source/libs/poppler/poppler-src/poppler-splash.pc.cmake
+++ /dev/null
@@ -1,9 +0,0 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib@LIB_SUFFIX@
-includedir=${prefix}/include
-
-Name: poppler-splash
-Description: Splash backend for Poppler PDF rendering library
-Version: @POPPLER_VERSION@
-Requires: poppler = @POPPLER_VERSION@
diff --git a/source/libs/poppler/poppler-src/poppler-splash.pc.in b/source/libs/poppler/poppler-src/poppler-splash.pc.in
deleted file mode 100644
index cf3491fc7..000000000
--- a/source/libs/poppler/poppler-src/poppler-splash.pc.in
+++ /dev/null
@@ -1,9 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: poppler-splash
-Description: Splash backend for Poppler PDF rendering library
-Version: @VERSION@
-Requires: poppler = @VERSION@
diff --git a/source/libs/poppler/poppler-src/poppler-uninstalled.pc.in b/source/libs/poppler/poppler-src/poppler-uninstalled.pc.in
deleted file mode 100644
index 6076e80c5..000000000
--- a/source/libs/poppler/poppler-src/poppler-uninstalled.pc.in
+++ /dev/null
@@ -1,6 +0,0 @@
-Name: poppler
-Description: PDF rendering library - uninstalled
-Version: @VERSION@
-
-Libs: ${pc_top_builddir}/${pcfiledir}/poppler/libpoppler.la
-Cflags: -I${pc_top_builddir}/${pcfiledir}/poppler
diff --git a/source/libs/poppler/poppler-src/poppler.pc.cmake b/source/libs/poppler/poppler-src/poppler.pc.cmake
deleted file mode 100644
index f1aebedbe..000000000
--- a/source/libs/poppler/poppler-src/poppler.pc.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib@LIB_SUFFIX@
-includedir=${prefix}/include
-
-Name: poppler
-Description: PDF rendering library
-Version: @POPPLER_VERSION@
-
-Libs: -L${libdir} -lpoppler
-Cflags: -I${includedir}/poppler
diff --git a/source/libs/poppler/poppler-src/poppler.pc.in b/source/libs/poppler/poppler-src/poppler.pc.in
deleted file mode 100644
index 8605b2867..000000000
--- a/source/libs/poppler/poppler-src/poppler.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: poppler
-Description: PDF rendering library
-Version: @VERSION@
-
-Libs: -L${libdir} -lpoppler
-Cflags: -I${includedir}/poppler
diff --git a/source/libs/poppler/poppler-src/poppler/Annot.cc b/source/libs/poppler/poppler-src/poppler/Annot.cc
index bda5a9059..1474c2cfe 100644
--- a/source/libs/poppler/poppler-src/poppler/Annot.cc
+++ b/source/libs/poppler/poppler-src/poppler/Annot.cc
@@ -35,6 +35,7 @@
 // Copyright (C) 2015 Petr Gajdos <pgajdos@suse.cz>
 // Copyright (C) 2015 Philipp Reinkemeier <philipp.reinkemeier@offis.de>
 // Copyright (C) 2015 Tamas Szekeres <szekerest@gmail.com>
+// Copyright (C) 2017 Hans-Ulrich Jüttner <huj@froreich-bioscientia.de>
 //
 // To see a description of the changes please see the Changelog file that
 // came with your tarball or type make ChangeLog if you are building from git
@@ -112,7 +113,7 @@
 // = (4 * (sqrt(2) - 1) / 3) * r
 #define bezierCircle 0.55228475
 
-AnnotLineEndingStyle parseAnnotLineEndingStyle(GooString *string) {
+static AnnotLineEndingStyle parseAnnotLineEndingStyle(GooString *string) {
   if (string != NULL) {
     if (!string->cmp("Square")) {
       return annotLineEndingSquare;
@@ -140,7 +141,7 @@ AnnotLineEndingStyle parseAnnotLineEndingStyle(GooString *string) {
   }  
 }
 
-const char* convertAnnotLineEndingStyle(AnnotLineEndingStyle style) {
+static const char* convertAnnotLineEndingStyle(AnnotLineEndingStyle style) {
   switch (style) {
     case annotLineEndingSquare:
       return "Square";
@@ -184,7 +185,7 @@ static AnnotExternalDataType parseAnnotExternalData(Dict* dict) {
   return type;
 }
 
-PDFRectangle *parseDiffRectangle(Array *array, PDFRectangle *rect) {
+static PDFRectangle *parseDiffRectangle(Array *array, PDFRectangle *rect) {
   PDFRectangle *newRect = NULL;
   if (array->getLength() == 4) {
     // deltas
@@ -1397,8 +1398,7 @@ void Annot::setContents(GooString *new_content) {
     contents = new GooString(new_content);
     //append the unicode marker <FE FF> if needed	
     if (!contents->hasUnicodeMarker()) {
-      contents->insert(0, 0xff);
-      contents->insert(0, 0xfe);
+      contents->prependUnicodeMarker();
     }
   } else {
     contents = new GooString();
@@ -1986,8 +1986,7 @@ void AnnotMarkup::setLabel(GooString *new_label) {
     label = new GooString(new_label);
     //append the unicode marker <FE FF> if needed
     if (!label->hasUnicodeMarker()) {
-      label->insert(0, 0xff);
-      label->insert(0, 0xfe);
+      label->prependUnicodeMarker();
     }
   } else {
     label = new GooString();
@@ -2763,8 +2762,7 @@ void AnnotFreeText::setStyleString(GooString *new_string) {
     styleString = new GooString(new_string);
     //append the unicode marker <FE FF> if needed
     if (!styleString->hasUnicodeMarker()) {
-      styleString->insert(0, 0xff);
-      styleString->insert(0, 0xfe);
+      styleString->prependUnicodeMarker();
     }
   } else {
     styleString = new GooString();
@@ -2839,29 +2837,14 @@ void AnnotFreeText::parseAppearanceString(GooString *da, double &fontsize, Annot
   fontcolor = NULL;
   if (da) {
     GooList * daToks = new GooList();
-    int j, i = 0;
+    int i = FormFieldText::tokenizeDA(da, daToks, "Tf");
 
-    // Tokenize
-    while (i < da->getLength()) {
-      while (i < da->getLength() && Lexer::isSpace(da->getChar(i))) {
-        ++i;
-      }
-      if (i < da->getLength()) {
-        for (j = i + 1; j < da->getLength() && !Lexer::isSpace(da->getChar(j)); ++j) {
-        }
-        daToks->append(new GooString(da, i, j - i));
-        i = j;
-      }
+    if (i >= 1) {
+      fontsize = gatof(( (GooString *)daToks->get(i-1) )->getCString());
+      // TODO: Font name
     }
-
     // Scan backwards: we are looking for the last set value
     for (i = daToks->getLength()-1; i >= 0; --i) {
-      if (fontsize == -1) {
-        if (!((GooString *)daToks->get(i))->cmp("Tf") && i >= 2) {
-            // TODO: Font name
-            fontsize = gatof(( (GooString *)daToks->get(i-1) )->getCString());
-        }
-      }
       if (fontcolor == NULL) {
         if (!((GooString *)daToks->get(i))->cmp("g") && i >= 1) {
           fontcolor = new AnnotColor(gatof(( (GooString *)daToks->get(i-1) )->getCString()));
@@ -4698,7 +4681,7 @@ void AnnotWidget::drawBorder() {
         appearBuf->appendf(" {0:.2f}", dash[i]);
       }
       appearBuf->append("] 0 d\n");
-      // fall through to the solid case
+      // fallthrough
     case AnnotBorder::borderSolid:
     case AnnotBorder::borderUnderlined:
       appearBuf->appendf("{0:.2f} w\n", w);
@@ -4730,7 +4713,7 @@ void AnnotWidget::drawBorder() {
         appearBuf->appendf(" {0:.2f}", dash[i]);
       }
       appearBuf->append("] 0 d\n");
-      // fall through to the solid case
+      // fallthrough
     case AnnotBorder::borderSolid:
       appearBuf->appendf("{0:.2f} w\n", w);
       setColor(aColor, gFalse);
@@ -6573,11 +6556,11 @@ AnnotRichMedia::Content::Content(Dict *dict) {
       assets = (Asset **)gmallocn(nAssets, sizeof(Asset *));
 
       int counter = 0;
-      for (int i = 0; i < obj2.arrayGetLength(); i += 2) {
+      for (int i = 0; i < nAssets; ++i) {
         assets[counter] = new AnnotRichMedia::Asset;
 
-        Object objKey = obj2.arrayGet(i);
-        assets[counter]->fileSpec = obj2.arrayGet(i + 1);
+        Object objKey = obj2.arrayGet(i * 2);
+        assets[counter]->fileSpec = obj2.arrayGet(i * 2 + 1);
 
         assets[counter]->name = new GooString( objKey.getString() );
         ++counter;
@@ -6681,26 +6664,30 @@ AnnotRichMedia::Configuration::Configuration(Dict *dict)
     } else if (!strcmp(name, "Video")) {
       type = typeVideo;
     } else {
-      // determine from first instance
+      // determine from first non null instance
+      type = typeFlash; // default in case all instances are null
       if (instances && nInstances > 0) {
-        AnnotRichMedia::Instance *instance = instances[0];
-        switch (instance->getType()) {
-          case AnnotRichMedia::Instance::type3D:
-            type = type3D;
-            break;
-          case AnnotRichMedia::Instance::typeFlash:
-            type = typeFlash;
-            break;
-          case AnnotRichMedia::Instance::typeSound:
-            type = typeSound;
-            break;
-          case AnnotRichMedia::Instance::typeVideo:
-            type = typeVideo;
-            break;
-          default:
-            type = typeFlash;
-            break;
-        }
+	for (int i = 0; i < nInstances; ++i) {
+	  AnnotRichMedia::Instance *instance = instances[i];
+	  if (instance) {
+	    switch (instance->getType()) {
+	      case AnnotRichMedia::Instance::type3D:
+		type = type3D;
+		break;
+	      case AnnotRichMedia::Instance::typeFlash:
+		type = typeFlash;
+		break;
+	      case AnnotRichMedia::Instance::typeSound:
+		type = typeSound;
+		break;
+	      case AnnotRichMedia::Instance::typeVideo:
+		type = typeVideo;
+		break;
+	    }
+	    // break the loop since we found the first non null instance
+	    break;
+	  }
+	}
       }
     }
   }
diff --git a/source/libs/poppler/poppler-src/poppler/Array.cc b/source/libs/poppler/poppler-src/poppler/Array.cc
index c2c4040d9..94b8d66af 100644
--- a/source/libs/poppler/poppler-src/poppler/Array.cc
+++ b/source/libs/poppler/poppler-src/poppler/Array.cc
@@ -65,7 +65,7 @@ Array::~Array() {
 #endif
 }
 
-Object Array::copy(XRef *xrefA) {
+Object Array::copy(XRef *xrefA) const {
   arrayLocker();
   Array *a = new Array(xrefA);
   for (int i = 0; i < length; ++i) {
@@ -114,7 +114,7 @@ void Array::remove(int i) {
   memmove( elems + i, elems + i + 1, sizeof(elems[0]) * (length - i) );
 }
 
-Object Array::get(int i, int recursion) {
+Object Array::get(int i, int recursion) const {
   if (i < 0 || i >= length) {
 #ifdef DEBUG_MEM
     abort();
@@ -125,7 +125,7 @@ Object Array::get(int i, int recursion) {
   return elems[i].fetch(xref, recursion);
 }
 
-Object Array::getNF(int i) {
+Object Array::getNF(int i) const {
   if (i < 0 || i >= length) {
 #ifdef DEBUG_MEM
     abort();
@@ -136,7 +136,7 @@ Object Array::getNF(int i) {
   return elems[i].copy();
 }
 
-GBool Array::getString(int i, GooString *string)
+GBool Array::getString(int i, GooString *string) const
 {
   Object obj = getNF(i);
   if (obj.isString()) {
diff --git a/source/libs/poppler/poppler-src/poppler/Array.h b/source/libs/poppler/poppler-src/poppler/Array.h
index 8043c830b..d2cdf65ff 100644
--- a/source/libs/poppler/poppler-src/poppler/Array.h
+++ b/source/libs/poppler/poppler-src/poppler/Array.h
@@ -50,10 +50,10 @@ public:
   ~Array();
 
   // Get number of elements.
-  int getLength() { return length; }
+  int getLength() const { return length; }
 
   // Copy array with new xref
-  Object copy(XRef *xrefA);
+  Object copy(XRef *xrefA) const;
 
   // Add an element
   // elem becomes a dead object after this call
@@ -63,9 +63,9 @@ public:
   void remove(int i);
 
   // Accessors.
-  Object get(int i, int resursion = 0);
-  Object getNF(int i);
-  GBool getString(int i, GooString *string);
+  Object get(int i, int resursion = 0) const;
+  Object getNF(int i) const;
+  GBool getString(int i, GooString *string) const;
 
 private:
   friend class Object; // for incRef/decRef
@@ -80,7 +80,7 @@ private:
   int length;			// number of elements in array
   int ref;			// reference count
 #if MULTITHREADED
-  GooMutex mutex;
+  mutable GooMutex mutex;
 #endif
 };
 
diff --git a/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc b/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc
index 24b9e65e6..ffd39ef77 100644
--- a/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc
+++ b/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc
@@ -18,7 +18,7 @@
 // Copyright (C) 2005, 2006 Kristian Høgsberg <krh@redhat.com>
 // Copyright (C) 2005, 2009, 2012, 2017 Albert Astals Cid <aacid@kde.org>
 // Copyright (C) 2005 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
-// Copyright (C) 2006-2011, 2013, 2014 Carlos Garcia Campos <carlosgc@gnome.org>
+// Copyright (C) 2006-2011, 2013, 2014, 2017 Carlos Garcia Campos <carlosgc@gnome.org>
 // Copyright (C) 2008 Carl Worth <cworth@cworth.org>
 // Copyright (C) 2008-2017 Adrian Johnson <ajohnson@redneon.com>
 // Copyright (C) 2008 Michael Vrable <mvrable@cs.ucsd.edu>
@@ -2178,9 +2178,6 @@ void CairoOutputDev::drawImageMaskRegular(GfxState *state, Object *ref, Stream *
 
   cairo_pattern_set_filter (pattern, filter);
 
-  if (!printing)
-    cairo_pattern_set_extend (pattern, CAIRO_EXTEND_PAD);
-
   cairo_matrix_init_translate (&matrix, 0, height);
   cairo_matrix_scale (&matrix, width, -height);
   cairo_pattern_set_matrix (pattern, &matrix);
@@ -2196,6 +2193,11 @@ void CairoOutputDev::drawImageMaskRegular(GfxState *state, Object *ref, Stream *
     cairo_save (cairo);
     cairo_rectangle (cairo, 0., 0., 1., 1.);
     cairo_clip (cairo);
+    if (strokePathClip) {
+      cairo_push_group (cairo);
+      fillToStrokePathClip (state);
+      cairo_pop_group_to_source (cairo);
+    }
     cairo_mask (cairo, pattern);
     cairo_restore (cairo);
   } else {
@@ -3075,7 +3077,13 @@ public:
       }
     }
 
-    if (printing || scaledWidth >= width || scaledHeight >= height) {
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 14, 0)
+    bool needsCustomDownscaling = false;
+#else
+    bool needsCustomDownscaling = true;
+#endif
+
+    if (!needsCustomDownscaling || printing || scaledWidth >= width || scaledHeight >= height) {
       // No downscaling. Create cairo image containing the source image data.
       unsigned char *buffer;
       int stride;
@@ -3189,7 +3197,7 @@ void CairoOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
   cairo_matrix_t matrix;
   int width, height;
   int scaledWidth, scaledHeight;
-  cairo_filter_t filter = CAIRO_FILTER_BILINEAR;
+  cairo_filter_t filter = CAIRO_FILTER_BEST;
   RescaleDrawImage rescale;
 
   LOG (printf ("drawImage %dx%d\n", widthA, heightA));
diff --git a/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc b/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc
index 91d4c3070..4dae58e7e 100644
--- a/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc
+++ b/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc
@@ -5,7 +5,7 @@
 // This file is licensed under the GPLv2 or later
 //
 // Copyright 2010 Hib Eris <hib@hiberis.nl>
-// Copyright 2010 Albert Astals Cid <aacid@kde.org>
+// Copyright 2010, 2017 Albert Astals Cid <aacid@kde.org>
 //
 //========================================================================
 
@@ -15,6 +15,7 @@
 
 #include "CachedFile.h"
 #include "CurlCachedFile.h"
+#include "ErrorCodes.h"
 
 //------------------------------------------------------------------------
 // CurlPDFDocBuilder
@@ -27,6 +28,11 @@ CurlPDFDocBuilder::buildPDFDoc(const GooString &uri,
     CachedFile *cachedFile = new CachedFile(
         new CurlCachedFileLoader(), uri.copy());
 
+    if (cachedFile->getLength() == ((Guint) -1)) {
+        cachedFile->decRefCnt();
+        return PDFDoc::ErrorPDFDoc(errOpenFile, uri.copy());
+    }
+
     BaseStream *str = new CachedFileStream(
          cachedFile, 0, gFalse, cachedFile->getLength(), Object(objNull));
 
diff --git a/source/libs/poppler/poppler-src/poppler/Decrypt.cc b/source/libs/poppler/poppler-src/poppler/Decrypt.cc
index c8246fab7..5d24d0a90 100644
--- a/source/libs/poppler/poppler-src/poppler/Decrypt.cc
+++ b/source/libs/poppler/poppler-src/poppler/Decrypt.cc
@@ -14,7 +14,7 @@
 // under GPL version 2 or later
 //
 // Copyright (C) 2008 Julien Rebetez <julien@fhtagn.net>
-// Copyright (C) 2008, 2010, 2016 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2008, 2010, 2016, 2017 Albert Astals Cid <aacid@kde.org>
 // Copyright (C) 2009 Matthias Franz <matthias@ktug.or.kr>
 // Copyright (C) 2009 David Benjamin <davidben@mit.edu>
 // Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it>
@@ -1345,7 +1345,7 @@ static inline Guint sha256sigma1(Guint x) {
   return rotr(x, 17) ^ rotr(x, 19) ^ (x >> 10);
 }
 
-void sha256HashBlock(Guchar *blk, Guint *H) {
+static void sha256HashBlock(Guchar *blk, Guint *H) {
   Guint W[64];
   Guint a, b, c, d, e, f, g, h;
   Guint T1, T2;
diff --git a/source/libs/poppler/poppler-src/poppler/Dict.cc b/source/libs/poppler/poppler-src/poppler/Dict.cc
index 5c231d14f..2bd86abf4 100644
--- a/source/libs/poppler/poppler-src/poppler/Dict.cc
+++ b/source/libs/poppler/poppler-src/poppler/Dict.cc
@@ -163,7 +163,7 @@ void Dict::add(char *key, Object &&val) {
   ++length;
 }
 
-inline DictEntry *Dict::find(const char *key) {
+inline DictEntry *Dict::find(const char *key) const {
   if (!sorted && length >= SORT_LENGTH_LOWER_LIMIT)
   {
       dictLocker();
@@ -187,7 +187,7 @@ inline DictEntry *Dict::find(const char *key) {
   return NULL;
 }
 
-GBool Dict::hasKey(const char *key) {
+GBool Dict::hasKey(const char *key) const {
   return find(key) != NULL;
 }
 
@@ -247,25 +247,25 @@ void Dict::set(const char *key, Object &&val) {
 }
 
 
-GBool Dict::is(const char *type) {
+GBool Dict::is(const char *type) const {
   DictEntry *e;
 
   return (e = find("Type")) && e->val.isName(type);
 }
 
-Object Dict::lookup(const char *key, int recursion) {
+Object Dict::lookup(const char *key, int recursion) const {
   DictEntry *e;
 
   return (e = find(key)) ? e->val.fetch(xref, recursion) : Object(objNull);
 }
 
-Object Dict::lookupNF(const char *key) {
+Object Dict::lookupNF(const char *key) const {
   DictEntry *e;
 
   return (e = find(key)) ? e->val.copy() : Object(objNull);
 }
 
-GBool Dict::lookupInt(const char *key, const char *alt_key, int *value)
+GBool Dict::lookupInt(const char *key, const char *alt_key, int *value) const
 {
   GBool success = gFalse;
   Object obj1 = lookup ((char *) key);
@@ -283,14 +283,14 @@ GBool Dict::lookupInt(const char *key, const char *alt_key, int *value)
   return success;
 }
 
-char *Dict::getKey(int i) {
+char *Dict::getKey(int i) const {
   return entries[i].key;
 }
 
-Object Dict::getVal(int i) {
+Object Dict::getVal(int i) const {
   return entries[i].val.fetch(xref);
 }
 
-Object Dict::getValNF(int i) {
+Object Dict::getValNF(int i) const {
   return entries[i].val.copy();
 }
diff --git a/source/libs/poppler/poppler-src/poppler/Dict.h b/source/libs/poppler/poppler-src/poppler/Dict.h
index b775a574d..1b922b0e8 100644
--- a/source/libs/poppler/poppler-src/poppler/Dict.h
+++ b/source/libs/poppler/poppler-src/poppler/Dict.h
@@ -57,7 +57,7 @@ public:
   ~Dict();
 
   // Get number of entries.
-  int getLength() { return length; }
+  int getLength() const { return length; }
 
   // Add an entry.  NB: does not copy key.
   // val becomes a dead object after the call
@@ -70,27 +70,27 @@ public:
   void remove(const char *key);
 
   // Check if dictionary is of specified type.
-  GBool is(const char *type);
+  GBool is(const char *type) const;
 
   // Look up an entry and return the value.  Returns a null object
   // if <key> is not in the dictionary.
-  Object lookup(const char *key, int recursion = 0);
-  Object lookupNF(const char *key);
-  GBool lookupInt(const char *key, const char *alt_key, int *value);
+  Object lookup(const char *key, int recursion = 0) const;
+  Object lookupNF(const char *key) const;
+  GBool lookupInt(const char *key, const char *alt_key, int *value) const;
 
   // Iterative accessors.
-  char *getKey(int i);
-  Object getVal(int i);
-  Object getValNF(int i);
+  char *getKey(int i) const;
+  Object getVal(int i) const;
+  Object getValNF(int i) const;
 
   // Set the xref pointer.  This is only used in one special case: the
   // trailer dictionary, which is read before the xref table is
   // parsed.
   void setXRef(XRef *xrefA) { xref = xrefA; }
   
-  XRef *getXRef() { return xref; }
+  XRef *getXRef() const { return xref; }
   
-  GBool hasKey(const char *key);
+  GBool hasKey(const char *key) const;
 
 private:
   friend class Object; // for incRef/decRef
@@ -99,17 +99,17 @@ private:
   int incRef();
   int decRef();
 
-  GBool sorted;
+  mutable GBool sorted;
   XRef *xref;			// the xref table for this PDF file
   DictEntry *entries;		// array of entries
   int size;			// size of <entries> array
   int length;			// number of entries in dictionary
   int ref;			// reference count
 #if MULTITHREADED
-  GooMutex mutex;
+  mutable GooMutex mutex;
 #endif
 
-  DictEntry *find(const char *key);
+  DictEntry *find(const char *key) const;
 };
 
 #endif
diff --git a/source/libs/poppler/poppler-src/poppler/Form.cc b/source/libs/poppler/poppler-src/poppler/Form.cc
index 0f4718ed0..62bba1032 100644
--- a/source/libs/poppler/poppler-src/poppler/Form.cc
+++ b/source/libs/poppler/poppler-src/poppler/Form.cc
@@ -18,6 +18,7 @@
 // Copyright 2015 André Guerreiro <aguerreiro1985@gmail.com>
 // Copyright 2015 André Esser <bepandre@hotmail.com>
 // Copyright 2017 Hans-Ulrich Jüttner <huj@froreich-bioscientia.de>
+// Copyright 2017 Bernd Kuhls <berndkuhls@hotmail.com>
 //
 //========================================================================
 
@@ -30,7 +31,9 @@
 #include <set>
 #include <limits>
 #include <stddef.h>
+#include <stdlib.h>
 #include <string.h>
+#include <ctype.h>
 #include "goo/gmem.h"
 #include "goo/GooString.h"
 #include "Error.h"
@@ -49,6 +52,7 @@
 #include "PDFDocEncoding.h"
 #include "Annot.h"
 #include "Link.h"
+#include "Lexer.h"
 
 //return a newly allocated char* containing an UTF16BE string of size length
 char* pdfDocEncodingToUTF16 (GooString* orig, int* length)
@@ -58,8 +62,8 @@ char* pdfDocEncodingToUTF16 (GooString* orig, int* length)
   char *result = new char[(*length)];
   char *cstring = orig->getCString();
   //unicode marker
-  result[0] = 0xfe;
-  result[1] = 0xff;
+  result[0] = (char)0xfe;
+  result[1] = (char)0xff;
   //convert to utf16
   for(int i=2,j=0; i<(*length); i+=2,j++) {
     Unicode u = pdfDocEncoding[(unsigned int)((unsigned char)cstring[j])]&0xffff;
@@ -312,6 +316,16 @@ int FormWidgetText::getMaxLen () const
   return parent()->getMaxLen ();
 }
 
+double FormWidgetText::getTextFontSize()
+{
+  return parent()->getTextFontSize();
+}
+
+void FormWidgetText::setTextFontSize(int fontSize)
+{
+  parent()->setTextFontSize(fontSize);
+}
+
 void FormWidgetText::setContent(GooString* new_content)
 {
   parent()->setContentCopy(new_content);
@@ -906,8 +920,7 @@ GooString* FormField::getFullyQualifiedName() {
   }
   
   if (unicode_encoded) {
-    full_name->insert(0, 0xff);
-    full_name->insert(0, 0xfe);
+    full_name->prependUnicodeMarker();
   }
 
   fullyQualifiedName = full_name;
@@ -1170,8 +1183,7 @@ void FormFieldText::setContentCopy (GooString* new_content)
 
     //append the unicode marker <FE FF> if needed
     if (!content->hasUnicodeMarker()) {
-      content->insert(0, 0xff);
-      content->insert(0, 0xfe);
+      content->prependUnicodeMarker();
     }
   }
 
@@ -1185,6 +1197,86 @@ FormFieldText::~FormFieldText()
   delete content;
 }
 
+double FormFieldText::getTextFontSize()
+{
+  GooList* daToks = new GooList();
+  int idx = parseDA(daToks);
+  double fontSize = -1;
+  if (idx >= 0) {
+    char* p = nullptr;
+    fontSize = strtod(static_cast<GooString*>(daToks->get(idx))->getCString(), &p);
+    if (!p || *p)
+      fontSize = -1;
+  }
+  deleteGooList(daToks, GooString);
+  return fontSize;
+}
+
+void FormFieldText::setTextFontSize(int fontSize)
+{
+  if (fontSize > 0 && obj.isDict()) {
+    GooList* daToks = new GooList();
+    int idx = parseDA(daToks);
+    if (idx == -1) {
+      error(errSyntaxError, -1, "FormFieldText:: invalid DA object\n");
+      return;
+    }
+    if (defaultAppearance)
+      delete defaultAppearance;
+    defaultAppearance = new GooString;
+    for (int i = 0; i < daToks->getLength(); ++i) {
+      if (i > 0)
+        defaultAppearance->append(' ');
+      if (i == idx) {
+        defaultAppearance->appendf("{0:d}", fontSize);
+      } else {
+        defaultAppearance->append(static_cast<GooString*>(daToks->get(i)));
+      }
+    }
+    deleteGooList(daToks, GooString);
+    obj.dictSet("DA", Object(defaultAppearance->copy()));
+    xref->setModifiedObject(&obj, ref);
+    updateChildrenAppearance();
+  }
+}
+
+int FormFieldText::tokenizeDA(GooString* da, GooList* daToks, const char* searchTok)
+{
+  int idx = -1;
+  if(da && daToks) {
+    int i = 0;
+    int j = 0;
+    while (i < da->getLength()) {
+      while (i < da->getLength() && Lexer::isSpace(da->getChar(i))) {
+        ++i;
+      }
+      if (i < da->getLength()) {
+        for (j = i + 1; j < da->getLength() && !Lexer::isSpace(da->getChar(j)); ++j) {
+        }
+        GooString* tok = new GooString(da, i, j - i);
+        if (searchTok && !tok->cmp(searchTok))
+          idx = daToks->getLength();
+        daToks->append(tok);
+        i = j;
+      }
+    }
+  }
+  return idx;
+}
+
+int FormFieldText::parseDA(GooList* daToks)
+{
+  int idx = -1;
+  if (obj.isDict()) {
+    Object objDA(obj.dictLookup("DA"));
+    if (objDA.isString()) {
+      GooString* da = objDA.getString();
+      idx = tokenizeDA(da, daToks, "Tf") - 1;
+    }
+  }
+  return idx;
+}
+
 
 //------------------------------------------------------------------------
 // FormFieldChoice
@@ -1447,8 +1539,7 @@ void FormFieldChoice::setEditChoice (GooString* new_content)
 
     //append the unicode marker <FE FF> if needed
     if (!editedChoice->hasUnicodeMarker()) {
-      editedChoice->insert(0, 0xff);
-      editedChoice->insert(0, 0xfe);
+      editedChoice->prependUnicodeMarker();
     }
   }
   updateSelection();
diff --git a/source/libs/poppler/poppler-src/poppler/Form.h b/source/libs/poppler/poppler-src/poppler/Form.h
index 8498752e6..8e72334d0 100644
--- a/source/libs/poppler/poppler-src/poppler/Form.h
+++ b/source/libs/poppler/poppler-src/poppler/Form.h
@@ -25,6 +25,7 @@
 #pragma interface
 #endif
 
+#include "goo/GooList.h"
 #include "Object.h"
 #include "Annot.h"
 
@@ -206,6 +207,11 @@ public:
   bool isComb () const; 
   bool isRichText () const;
   int getMaxLen () const;
+  //return the font size of the field's text
+  double getTextFontSize();
+  //set the font size of the field's text (currently only integer values)
+  void setTextFontSize(int fontSize);
+
 protected:
   FormFieldText *parent() const;
 };
@@ -421,10 +427,20 @@ public:
 
   int getMaxLen () const { return maxLen; }
 
+  //return the font size of the field's text
+  double getTextFontSize();
+  //set the font size of the field's text (currently only integer values)
+  void setTextFontSize(int fontSize);
+
 #ifdef DEBUG_FORMS
   void print(int indent = 0);
 #endif
+
+  static int tokenizeDA(GooString* daString, GooList* daToks, const char* searchTok);
+
 protected:
+  int parseDA(GooList* daToks);
+
   GooString* content;
   bool multiline;
   bool password;
diff --git a/source/libs/poppler/poppler-src/poppler/Gfx.cc b/source/libs/poppler/poppler-src/poppler/Gfx.cc
index 6ffb7bcf2..eaef798f3 100644
--- a/source/libs/poppler/poppler-src/poppler/Gfx.cc
+++ b/source/libs/poppler/poppler-src/poppler/Gfx.cc
@@ -458,9 +458,15 @@ GfxPattern *GfxResources::lookupPattern(char *name, OutputDev *out, GfxState *st
 
   for (resPtr = this; resPtr; resPtr = resPtr->next) {
     if (resPtr->patternDict.isDict()) {
-      Object obj = resPtr->patternDict.dictLookup(name);
+      Object obj = resPtr->patternDict.dictLookupNF(name);
       if (!obj.isNull()) {
-	pattern = GfxPattern::parse(resPtr, &obj, out, state);
+	Ref patternRef = { -1, -1 };
+	if (obj.isRef()) {
+	  patternRef = obj.getRef();
+	  obj = obj.fetch(resPtr->patternDict.getDict()->getXRef());
+	}
+
+	pattern = GfxPattern::parse(resPtr, &obj, out, state, patternRef.num);
 	return pattern;
       }
     }
@@ -2224,18 +2230,34 @@ void Gfx::doTilingPatternFill(GfxTilingPattern *tPat,
 		       xi0, yi0, xi1, yi1, xstep, ystep)) {
     goto restore;
   } else {
-    out->updatePatternOpacity(state);
-    for (yi = yi0; yi < yi1; ++yi) {
-      for (xi = xi0; xi < xi1; ++xi) {
-        x = xi * xstep;
-        y = yi * ystep;
-        m1[4] = x * m[0] + y * m[2] + m[4];
-        m1[5] = x * m[1] + y * m[3] + m[5];
-        drawForm(tPat->getContentStream(), tPat->getResDict(),
-        	  m1, tPat->getBBox());
+    bool shouldDrawForm = gTrue;
+    std::set<int>::iterator patternRefIt;
+    const int patternRefNum = tPat->getPatternRefNum();
+    if (patternRefNum != -1) {
+      if (formsDrawing.find(patternRefNum) == formsDrawing.end()) {
+	patternRefIt = formsDrawing.insert(patternRefNum).first;
+      } else {
+	shouldDrawForm = gFalse;
+      }
+    }
+
+    if (shouldDrawForm) {
+      out->updatePatternOpacity(state);
+      for (yi = yi0; yi < yi1; ++yi) {
+	for (xi = xi0; xi < xi1; ++xi) {
+	  x = xi * xstep;
+	  y = yi * ystep;
+	  m1[4] = x * m[0] + y * m[2] + m[4];
+	  m1[5] = x * m[1] + y * m[3] + m[5];
+	  drawForm(tPat->getContentStream(), tPat->getResDict(),
+		  m1, tPat->getBBox());
+	}
+      }
+      out->clearPatternOpacity(state);
+      if (patternRefNum != -1) {
+	formsDrawing.erase(patternRefIt);
       }
     }
-    out->clearPatternOpacity(state);
   }
 
   // restore graphics state
@@ -3953,12 +3975,33 @@ void Gfx::doShowText(GooString *s) {
       state->transformDelta(dx, dy, &ddx, &ddy);
       if (!out->beginType3Char(state, curX + riseX, curY + riseY, ddx, ddy,
 			       code, u, uLen)) {
-	Object charProc = ((Gfx8BitFont *)font)->getCharProc(code);
+	Object charProc = ((Gfx8BitFont *)font)->getCharProcNF(code);
+	int refNum = -1;
+	if (charProc.isRef()) {
+	  refNum = charProc.getRef().num;
+	  charProc = charProc.fetch(((Gfx8BitFont *)font)->getCharProcs()->getXRef());
+	}
 	if ((resDict = ((Gfx8BitFont *)font)->getResources())) {
 	  pushResources(resDict);
 	}
 	if (charProc.isStream()) {
-	  display(&charProc, gFalse);
+	  std::set<int>::iterator charProcDrawingIt;
+	  bool displayCharProc = true;
+	  if (refNum != -1) {
+	    if (charProcDrawing.find(refNum) == charProcDrawing.end()) {
+	      charProcDrawingIt = charProcDrawing.insert(refNum).first;
+	    } else {
+	      displayCharProc = false;
+	      error(errSyntaxError, -1, "CharProc wants to draw a CharProc that is already beign drawn");
+	    }
+	  }
+	  if (displayCharProc) {
+	    display(&charProc, gFalse);
+
+	    if (refNum != -1) {
+	      charProcDrawing.erase(charProcDrawingIt);
+	    }
+	  }
 	} else {
 	  error(errSyntaxError, getPos(), "Missing or bad Type3 CharProc entry");
 	}
diff --git a/source/libs/poppler/poppler-src/poppler/Gfx.h b/source/libs/poppler/poppler-src/poppler/Gfx.h
index 00eaec494..293f4551e 100644
--- a/source/libs/poppler/poppler-src/poppler/Gfx.h
+++ b/source/libs/poppler/poppler-src/poppler/Gfx.h
@@ -228,6 +228,7 @@ private:
   Parser *parser;		// parser for page content stream(s)
   
   std::set<int> formsDrawing;	// the forms that are being drawn
+  std::set<int> charProcDrawing;	// the charProc that are being drawn
 
   GBool				// callback to check for an abort
     (*abortCheckCbk)(void *data);
diff --git a/source/libs/poppler/poppler-src/poppler/GfxFont.cc b/source/libs/poppler/poppler-src/poppler/GfxFont.cc
index d95f8f7c1..04431b3c4 100644
--- a/source/libs/poppler/poppler-src/poppler/GfxFont.cc
+++ b/source/libs/poppler/poppler-src/poppler/GfxFont.cc
@@ -594,7 +594,6 @@ GfxFontLoc *GfxFont::locateFont(XRef *xref, PSOutputDev *ps) {
   GfxFontLoc *fontLoc;
   SysFontType sysFontType;
   GooString *path, *base14Name, *substName;
-  PSFontParam16 *psFont16;
   int substIdx, fontNum;
   GBool embed;
 
@@ -715,17 +714,6 @@ GfxFontLoc *GfxFont::locateFont(XRef *xref, PSOutputDev *ps) {
 
   if (!isCIDFont()) {
 
-    //----- 8-bit PS resident font
-    if (name && ps) {
-      if ((path = globalParams->getPSResidentFont(name))) {
-	fontLoc = new GfxFontLoc();
-	fontLoc->locType = gfxFontLocResident;
-	fontLoc->fontType = fontType1;
-	fontLoc->path = path;
-	return fontLoc;
-      }
-    }
-
     //----- 8-bit font substitution
     if (flags & fontFixedWidth) {
       substIdx = 0;
@@ -768,42 +756,6 @@ GfxFontLoc *GfxFont::locateFont(XRef *xref, PSOutputDev *ps) {
     return NULL;
   }
 
-  //----- 16-bit PS resident font
-  if (ps && ((psFont16 = globalParams->getPSResidentFont16(
-					 name,
-					 ((GfxCIDFont *)this)->getWMode())))) {
-    fontLoc = new GfxFontLoc();
-    fontLoc->locType = gfxFontLocResident;
-    fontLoc->fontType = fontCIDType0; // this is not used
-    fontLoc->path = psFont16->psFontName->copy();
-    fontLoc->encoding = psFont16->encoding->copy();
-    fontLoc->wMode = psFont16->wMode;
-    return fontLoc;
-  }
-  if (ps && ((psFont16 = globalParams->getPSResidentFontCC(
-				 ((GfxCIDFont *)this)->getCollection(),
-				 ((GfxCIDFont *)this)->getWMode())))) {
-    error(errSyntaxWarning, -1, "Substituting font '{0:t}' for '{1:t}'",
-	  psFont16->psFontName, name);
-    fontLoc = new GfxFontLoc();
-    fontLoc->locType = gfxFontLocResident;
-    fontLoc->fontType = fontCIDType0; // this is not used
-    fontLoc->path = psFont16->psFontName->copy();
-    fontLoc->encoding = psFont16->encoding->copy();
-    fontLoc->wMode = psFont16->wMode;
-    return fontLoc;
-  }
-
-  //----- CID font substitution
-  if ((path = globalParams->findCCFontFile(
-				((GfxCIDFont *)this)->getCollection()))) {
-    if ((fontLoc = getExternalFont(path, gTrue))) {
-      error(errSyntaxWarning, -1, "Substituting font '{0:t}' for '{1:t}'",
-	    fontLoc->path, name);
-      return fontLoc;
-    }
-  }
-
   // failed to find a substitute font
   return NULL;
 }
@@ -1759,6 +1711,14 @@ Object Gfx8BitFont::getCharProc(int code) {
   }
 }
 
+Object Gfx8BitFont::getCharProcNF(int code) {
+  if (enc[code] && charProcs.isDict()) {
+    return charProcs.dictLookupNF(enc[code]);
+  } else {
+    return Object(objNull);
+  }
+}
+
 Dict *Gfx8BitFont::getResources() {
   return resources.isDict() ? resources.getDict() : (Dict *)NULL;
 }
diff --git a/source/libs/poppler/poppler-src/poppler/GfxFont.h b/source/libs/poppler/poppler-src/poppler/GfxFont.h
index 06c1df6d6..5985912a8 100644
--- a/source/libs/poppler/poppler-src/poppler/GfxFont.h
+++ b/source/libs/poppler/poppler-src/poppler/GfxFont.h
@@ -353,6 +353,7 @@ public:
 
   // Return the Type 3 CharProc for the character associated with <code>.
   Object getCharProc(int code);
+  Object getCharProcNF(int code);
 
   // Return the Type 3 Resources dictionary, or NULL if none.
   Dict *getResources();
diff --git a/source/libs/poppler/poppler-src/poppler/GfxState.cc b/source/libs/poppler/poppler-src/poppler/GfxState.cc
index b2971ec05..3e30edf02 100644
--- a/source/libs/poppler/poppler-src/poppler/GfxState.cc
+++ b/source/libs/poppler/poppler-src/poppler/GfxState.cc
@@ -3351,14 +3351,17 @@ void GfxPatternColorSpace::getDefaultColor(GfxColor *color) {
 // Pattern
 //------------------------------------------------------------------------
 
-GfxPattern::GfxPattern(int typeA) {
-  type = typeA;
+GfxPattern::GfxPattern(int typeA, int patternRefNumA)
+ : type(typeA)
+ , patternRefNum(patternRefNumA)
+{
+
 }
 
 GfxPattern::~GfxPattern() {
 }
 
-GfxPattern *GfxPattern::parse(GfxResources *res, Object *obj, OutputDev *out, GfxState *state) {
+GfxPattern *GfxPattern::parse(GfxResources *res, Object *obj, OutputDev *out, GfxState *state, int patternRefNum) {
   GfxPattern *pattern;
   Object obj1;
 
@@ -3371,9 +3374,9 @@ GfxPattern *GfxPattern::parse(GfxResources *res, Object *obj, OutputDev *out, Gf
   }
   pattern = NULL;
   if (obj1.isInt() && obj1.getInt() == 1) {
-    pattern = GfxTilingPattern::parse(obj);
+    pattern = GfxTilingPattern::parse(obj, patternRefNum);
   } else if (obj1.isInt() && obj1.getInt() == 2) {
-    pattern = GfxShadingPattern::parse(res, obj, out, state);
+    pattern = GfxShadingPattern::parse(res, obj, out, state, patternRefNum);
   }
   return pattern;
 }
@@ -3382,7 +3385,7 @@ GfxPattern *GfxPattern::parse(GfxResources *res, Object *obj, OutputDev *out, Gf
 // GfxTilingPattern
 //------------------------------------------------------------------------
 
-GfxTilingPattern *GfxTilingPattern::parse(Object *patObj) {
+GfxTilingPattern *GfxTilingPattern::parse(Object *patObj, int patternRefNum) {
   Dict *dict;
   int paintTypeA, tilingTypeA;
   double bboxA[4], matrixA[6];
@@ -3455,14 +3458,14 @@ GfxTilingPattern *GfxTilingPattern::parse(Object *patObj) {
   }
 
   return new GfxTilingPattern(paintTypeA, tilingTypeA, bboxA, xStepA, yStepA,
-			     &resDictA, matrixA, patObj);
+			     &resDictA, matrixA, patObj, patternRefNum);
 }
 
 GfxTilingPattern::GfxTilingPattern(int paintTypeA, int tilingTypeA,
 				   double *bboxA, double xStepA, double yStepA,
 				   Object *resDictA, double *matrixA,
-				   Object *contentStreamA):
-  GfxPattern(1)
+				   Object *contentStreamA, int patternRefNumA) :
+  GfxPattern(1, patternRefNumA)
 {
   int i;
 
@@ -3485,14 +3488,14 @@ GfxTilingPattern::~GfxTilingPattern() {
 
 GfxPattern *GfxTilingPattern::copy() {
   return new GfxTilingPattern(paintType, tilingType, bbox, xStep, yStep,
-			      &resDict, matrix, &contentStream);
+			      &resDict, matrix, &contentStream, getPatternRefNum());
 }
 
 //------------------------------------------------------------------------
 // GfxShadingPattern
 //------------------------------------------------------------------------
 
-GfxShadingPattern *GfxShadingPattern::parse(GfxResources *res, Object *patObj, OutputDev *out, GfxState *state) {
+GfxShadingPattern *GfxShadingPattern::parse(GfxResources *res, Object *patObj, OutputDev *out, GfxState *state, int patternRefNum) {
   Dict *dict;
   GfxShading *shadingA;
   double matrixA[6];
@@ -3523,11 +3526,11 @@ GfxShadingPattern *GfxShadingPattern::parse(GfxResources *res, Object *patObj, O
     }
   }
 
-  return new GfxShadingPattern(shadingA, matrixA);
+  return new GfxShadingPattern(shadingA, matrixA, patternRefNum);
 }
 
-GfxShadingPattern::GfxShadingPattern(GfxShading *shadingA, double *matrixA):
-  GfxPattern(2)
+GfxShadingPattern::GfxShadingPattern(GfxShading *shadingA, double *matrixA, int patternRefNumA):
+  GfxPattern(2, patternRefNumA)
 {
   int i;
 
@@ -3542,7 +3545,7 @@ GfxShadingPattern::~GfxShadingPattern() {
 }
 
 GfxPattern *GfxShadingPattern::copy() {
-  return new GfxShadingPattern(shading->copy(), matrix);
+  return new GfxShadingPattern(shading->copy(), matrix, getPatternRefNum());
 }
 
 //------------------------------------------------------------------------
diff --git a/source/libs/poppler/poppler-src/poppler/GfxState.h b/source/libs/poppler/poppler-src/poppler/GfxState.h
index 7bcedf2a8..57f372527 100644
--- a/source/libs/poppler/poppler-src/poppler/GfxState.h
+++ b/source/libs/poppler/poppler-src/poppler/GfxState.h
@@ -17,7 +17,7 @@
 // Copyright (C) 2006, 2007 Jeff Muizelaar <jeff@infidigm.net>
 // Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org>
 // Copyright (C) 2009 Koji Otani <sho@bbr.jp>
-// Copyright (C) 2009-2011, 2013, 2016 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009-2011, 2013, 2016, 2017 Albert Astals Cid <aacid@kde.org>
 // Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com>
 // Copyright (C) 2011 Andrea Canciani <ranma42@gmail.com>
 // Copyright (C) 2011-2014, 2016 Thomas Freitag <Thomas.Freitag@alfa.de>
@@ -762,18 +762,21 @@ private:
 class GfxPattern {
 public:
 
-  GfxPattern(int typeA);
+  GfxPattern(int typeA, int patternRefNumA);
   virtual ~GfxPattern();
 
-  static GfxPattern *parse(GfxResources *res, Object *obj, OutputDev *out, GfxState *state);
+  static GfxPattern *parse(GfxResources *res, Object *obj, OutputDev *out, GfxState *state, int patternRefNum);
 
   virtual GfxPattern *copy() = 0;
 
   int getType() { return type; }
 
+  int getPatternRefNum() const { return patternRefNum; }
+
 private:
 
   int type;
+  int patternRefNum;
 };
 
 //------------------------------------------------------------------------
@@ -783,7 +786,7 @@ private:
 class GfxTilingPattern: public GfxPattern {
 public:
 
-  static GfxTilingPattern *parse(Object *patObj);
+  static GfxTilingPattern *parse(Object *patObj, int patternRefNum);
   ~GfxTilingPattern();
 
   GfxPattern *copy() override;
@@ -803,7 +806,7 @@ private:
   GfxTilingPattern(int paintTypeA, int tilingTypeA,
 		   double *bboxA, double xStepA, double yStepA,
 		   Object *resDictA, double *matrixA,
-		   Object *contentStreamA);
+		   Object *contentStreamA, int patternRefNumA);
 
   int paintType;
   int tilingType;
@@ -821,7 +824,7 @@ private:
 class GfxShadingPattern: public GfxPattern {
 public:
 
-  static GfxShadingPattern *parse(GfxResources *res, Object *patObj, OutputDev *out, GfxState *state);
+  static GfxShadingPattern *parse(GfxResources *res, Object *patObj, OutputDev *out, GfxState *state, int patternRefNum);
   ~GfxShadingPattern();
 
   GfxPattern *copy() override;
@@ -831,7 +834,7 @@ public:
 
 private:
 
-  GfxShadingPattern(GfxShading *shadingA, double *matrixA);
+  GfxShadingPattern(GfxShading *shadingA, double *matrixA, int patternRefNumA);
 
   GfxShading *shading;
   double matrix[6];
diff --git a/source/libs/poppler/poppler-src/poppler/GlobalParams.cc b/source/libs/poppler/poppler-src/poppler/GlobalParams.cc
index 10830944b..93c42d2a7 100644
--- a/source/libs/poppler/poppler-src/poppler/GlobalParams.cc
+++ b/source/libs/poppler/poppler-src/poppler/GlobalParams.cc
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2005 Martin Kretzschmar <martink@gnome.org>
 // Copyright (C) 2005, 2006 Kristian Høgsberg <krh@redhat.com>
-// Copyright (C) 2005, 2007-2010, 2012, 2015 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2007-2010, 2012, 2015, 2017 Albert Astals Cid <aacid@kde.org>
 // Copyright (C) 2005 Jonathan Blandford <jrb@redhat.com>
 // Copyright (C) 2006, 2007 Jeff Muizelaar <jeff@infidigm.net>
 // Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
@@ -127,24 +127,6 @@ extern XpdfPluginVecTable xpdfPluginVecTable;
 
 GlobalParams *globalParams = NULL;
 
-//------------------------------------------------------------------------
-// PSFontParam16
-//------------------------------------------------------------------------
-
-PSFontParam16::PSFontParam16(GooString *nameA, int wModeA,
-			     GooString *psFontNameA, GooString *encodingA) {
-  name = nameA;
-  wMode = wModeA;
-  psFontName = psFontNameA;
-  encoding = encodingA;
-}
-
-PSFontParam16::~PSFontParam16() {
-  delete name;
-  delete psFontName;
-  delete encoding;
-}
-
 #if ENABLE_RELOCATABLE && defined(_WIN32)
 
 /* search for data relative to where we are installed */
@@ -587,17 +569,11 @@ GlobalParams::GlobalParams(const char *customPopplerDataDir)
   cMapDirs = new GooHash(gTrue);
   toUnicodeDirs = new GooList();
   fontFiles = new GooHash(gTrue);
-  fontDirs = new GooList();
-  ccFontFiles = new GooHash(gTrue);
   sysFonts = new SysFontList();
   psExpandSmaller = gFalse;
   psShrinkLarger = gTrue;
   psCenter = gTrue;
   psLevel = psLevel2;
-  psFile = NULL;
-  psResidentFonts = new GooHash(gTrue);
-  psResidentFonts16 = new GooList();
-  psResidentFontsCC = new GooList();
   textEncoding = new GooString("UTF-8");
 #if defined(_WIN32)
   textEOL = eolDOS;
@@ -796,18 +772,10 @@ GlobalParams::~GlobalParams() {
   deleteGooHash(unicodeMaps, GooString);
   deleteGooList(toUnicodeDirs, GooString);
   deleteGooHash(fontFiles, GooString);
-  deleteGooList(fontDirs, GooString);
-  deleteGooHash(ccFontFiles, GooString);
 #ifdef _WIN32
   deleteGooHash(substFiles, GooString);
 #endif
   delete sysFonts;
-  if (psFile) {
-    delete psFile;
-  }
-  deleteGooHash(psResidentFonts, GooString);
-  deleteGooList(psResidentFonts16, PSFontParam16);
-  deleteGooList(psResidentFontsCC, PSFontParam16);
   delete textEncoding;
 
   GooHashIter *iter;
@@ -1105,14 +1073,7 @@ static FcPattern *buildFcPattern(GfxFont *font, GooString *base14Name)
 #endif
 
 GooString *GlobalParams::findFontFile(GooString *fontName) {
-  static const char *exts[] = { ".pfa", ".pfb", ".ttf", ".ttc", ".otf" };
-  GooString *path, *dir;
-#ifdef WIN32
-  GooString *fontNameU;
-#endif
-  const char *ext;
-  FILE *f;
-  int i, j;
+  GooString *path;
 
   setupBaseFonts(NULL);
   lockGlobalParams;
@@ -1121,26 +1082,6 @@ GooString *GlobalParams::findFontFile(GooString *fontName) {
     unlockGlobalParams;
     return path;
   }
-  for (i = 0; i < fontDirs->getLength(); ++i) {
-    dir = (GooString *)fontDirs->get(i);
-    for (j = 0; j < (int)(sizeof(exts) / sizeof(exts[0])); ++j) {
-      ext = exts[j];
-#ifdef WIN32
-      fontNameU = fileNameToUTF8(fontName->getCString());
-      path = appendToPath(dir->copy(), fontNameU->getCString());
-      delete fontNameU;
-#else
-      path = appendToPath(dir->copy(), fontName->getCString());
-#endif
-      path->append(ext);
-      if ((f = openFile(path->getCString(), "rb"))) {
-	fclose(f);
-	unlockGlobalParams;
-	return path;
-      }
-      delete path;
-    }
-  }
   unlockGlobalParams;
   return NULL;
 }
@@ -1425,18 +1366,6 @@ GooString *GlobalParams::findSystemFontFile(GfxFont *font,
 }
 #endif
 
-GooString *GlobalParams::findCCFontFile(GooString *collection) {
-  GooString *path;
-
-  lockGlobalParams;
-  if ((path = (GooString *)ccFontFiles->lookup(collection))) {
-    path = path->copy();
-  }
-  unlockGlobalParams;
-  return path;
-}
-
-
 GBool GlobalParams::getPSExpandSmaller() {
   GBool f;
 
@@ -1473,67 +1402,6 @@ PSLevel GlobalParams::getPSLevel() {
   return level;
 }
 
-GooString *GlobalParams::getPSResidentFont(GooString *fontName) {
-  GooString *psName;
-
-  lockGlobalParams;
-  psName = (GooString *)psResidentFonts->lookup(fontName);
-  unlockGlobalParams;
-  return psName;
-}
-
-GooList *GlobalParams::getPSResidentFonts() {
-  GooList *names;
-  GooHashIter *iter;
-  GooString *name;
-  GooString *psName;
-
-  names = new GooList();
-  lockGlobalParams;
-  psResidentFonts->startIter(&iter);
-  while (psResidentFonts->getNext(&iter, &name, (void **)&psName)) {
-    names->append(psName->copy());
-  }
-  unlockGlobalParams;
-  return names;
-}
-
-PSFontParam16 *GlobalParams::getPSResidentFont16(GooString *fontName,
-						 int wMode) {
-  PSFontParam16 *p;
-  int i;
-
-  lockGlobalParams;
-  p = NULL;
-  for (i = 0; i < psResidentFonts16->getLength(); ++i) {
-    p = (PSFontParam16 *)psResidentFonts16->get(i);
-    if (!(p->name->cmp(fontName)) && p->wMode == wMode) {
-      break;
-    }
-    p = NULL;
-  }
-  unlockGlobalParams;
-  return p;
-}
-
-PSFontParam16 *GlobalParams::getPSResidentFontCC(GooString *collection,
-						 int wMode) {
-  PSFontParam16 *p;
-  int i;
-
-  lockGlobalParams;
-  p = NULL;
-  for (i = 0; i < psResidentFontsCC->getLength(); ++i) {
-    p = (PSFontParam16 *)psResidentFontsCC->get(i);
-    if (!(p->name->cmp(collection)) && p->wMode == wMode) {
-      break;
-    }
-    p = NULL;
-  }
-  unlockGlobalParams;
-  return p;
-}
-
 GooString *GlobalParams::getTextEncodingName() {
   GooString *s;
 
@@ -1791,15 +1659,6 @@ void GlobalParams::addFontFile(GooString *fontName, GooString *path) {
   unlockGlobalParams;
 }
 
-void GlobalParams::setPSFile(char *file) {
-  lockGlobalParams;
-  if (psFile) {
-    delete psFile;
-  }
-  psFile = new GooString(file);
-  unlockGlobalParams;
-}
-
 void GlobalParams::setPSExpandSmaller(GBool expand) {
   lockGlobalParams;
   psExpandSmaller = expand;
diff --git a/source/libs/poppler/poppler-src/poppler/GlobalParams.h b/source/libs/poppler/poppler-src/poppler/GlobalParams.h
index 1a65085f8..16dc7a4a0 100644
--- a/source/libs/poppler/poppler-src/poppler/GlobalParams.h
+++ b/source/libs/poppler/poppler-src/poppler/GlobalParams.h
@@ -81,22 +81,6 @@ enum SysFontType {
 
 //------------------------------------------------------------------------
 
-class PSFontParam16 {
-public:
-
-  GooString *name;		// PDF font name for psResidentFont16;
-				//   char collection name for psResidentFontCC
-  int wMode;			// writing mode (0=horiz, 1=vert)
-  GooString *psFontName;		// PostScript font name
-  GooString *encoding;		// encoding
-
-  PSFontParam16(GooString *nameA, int wModeA,
-		GooString *psFontNameA, GooString *encodingA);
-  ~PSFontParam16();
-};
-
-//------------------------------------------------------------------------
-
 enum PSLevel {
   psLevel1,
   psLevel1Sep,
@@ -156,15 +140,10 @@ public:
   GooString *findSystemFontFile(GfxFont *font, SysFontType *type,
 			      int *fontNum, GooString *substituteFontName = NULL, 
 		              GooString *base14Name = NULL);
-  GooString *findCCFontFile(GooString *collection);
   GBool getPSExpandSmaller();
   GBool getPSShrinkLarger();
   GBool getPSCenter();
   PSLevel getPSLevel();
-  GooString *getPSResidentFont(GooString *fontName);
-  GooList *getPSResidentFonts();
-  PSFontParam16 *getPSResidentFont16(GooString *fontName, int wMode);
-  PSFontParam16 *getPSResidentFontCC(GooString *collection, int wMode);
   GooString *getTextEncodingName();
   EndOfLineKind getTextEOL();
   GBool getTextPageBreaks();
@@ -198,7 +177,6 @@ public:
 
   //----- functions to set parameters
   void addFontFile(GooString *fontName, GooString *path);
-  void setPSFile(char *file);
   void setPSExpandSmaller(GBool expand);
   void setPSShrinkLarger(GBool shrink);
   void setPSCenter(GBool center);
@@ -270,24 +248,11 @@ private:
 #endif
   GooHash *fontFiles;		// font files: font name mapped to path
 				//   [GString]
-  GooList *fontDirs;		// list of font dirs [GString]
-  GooHash *ccFontFiles;	// character collection font files:
-				//   collection name  mapped to path [GString]
   SysFontList *sysFonts;	// system fonts
-  GooString *psFile;		// PostScript file or command (for xpdf)
   GBool psExpandSmaller;	// expand smaller pages to fill paper
   GBool psShrinkLarger;		// shrink larger pages to fit paper
   GBool psCenter;		// center pages on the paper
   PSLevel psLevel;		// PostScript level to generate
-  GooHash *psResidentFonts;	// 8-bit fonts resident in printer:
-				//   PDF font name mapped to PS font name
-				//   [GString]
-  GooList *psResidentFonts16;	// 16-bit fonts resident in printer:
-				//   PDF font name mapped to font info
-				//   [PSFontParam16]
-  GooList *psResidentFontsCC;	// 16-bit character collection fonts
-				//   resident in printer: collection name
-				//   mapped to font info [PSFontParam16]
   GooString *textEncoding;	// encoding (unicodeMap) to use for text
 				//   output
   EndOfLineKind textEOL;	// type of EOL marker to use for text
@@ -310,7 +275,6 @@ private:
   GBool printCommands;		// print the drawing commands
   GBool profileCommands;	// profile the drawing commands
   GBool errQuiet;		// suppress error messages?
-  double splashResolution;	// resolution when rasterizing images
 
   CharCodeToUnicodeCache *cidToUnicodeCache;
   CharCodeToUnicodeCache *unicodeToUnicodeCache;
diff --git a/source/libs/poppler/poppler-src/poppler/GlobalParamsWin.cc b/source/libs/poppler/poppler-src/poppler/GlobalParamsWin.cc
index 1dc3d4ab5..eba72fa00 100644
--- a/source/libs/poppler/poppler-src/poppler/GlobalParamsWin.cc
+++ b/source/libs/poppler/poppler-src/poppler/GlobalParamsWin.cc
@@ -78,7 +78,7 @@ description for all fonts available in Windows. That's how MuPDF works.
 #define DEFAULT_CID_FONT_AK1_MSWIN "Batang"    /* Adobe-Korea1 */
 #define DEFAULT_CID_FONT_MSWIN "ArialUnicode"  /* Unknown */
 
-static struct {
+static const struct {
     const char *name;
     const char *t1FileName;
     const char *ttFileName;
diff --git a/source/libs/poppler/poppler-src/poppler/JBIG2Stream.cc b/source/libs/poppler/poppler-src/poppler/JBIG2Stream.cc
index 50c6eee6f..bda7f42eb 100644
--- a/source/libs/poppler/poppler-src/poppler/JBIG2Stream.cc
+++ b/source/libs/poppler/poppler-src/poppler/JBIG2Stream.cc
@@ -2964,8 +2964,8 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
     mmrDecoder->reset();
     if (w > INT_MAX - 2) {
       error(errSyntaxError, curStr->getPos(), "Bad width in JBIG2 generic bitmap");
-      // force a call to gmalloc(-1), which will throw an exception
-      w = -3;
+      delete bitmap;
+      return NULL;
     }
     // 0 <= codingLine[0] < codingLine[1] < ... < codingLine[n] = w
     // ---> max codingLine size = w + 1
diff --git a/source/libs/poppler/poppler-src/poppler/Makefile.am b/source/libs/poppler/poppler-src/poppler/Makefile.am
deleted file mode 100644
index 8cf7af850..000000000
--- a/source/libs/poppler/poppler-src/poppler/Makefile.am
+++ /dev/null
@@ -1,348 +0,0 @@
-CFLAGS+=$(PTHREAD_CFLAGS)
-CXXFLAGS+=$(PTHREAD_CFLAGS)
-
-AM_CPPFLAGS =					\
-	-I$(top_srcdir)				\
-	-I$(top_srcdir)/goo
-
-lib_LTLIBRARIES = libpoppler.la
-
-if BUILD_CAIRO_OUTPUT
-noinst_LTLIBRARIES = libpoppler-cairo.la
-endif
-
-if BUILD_SPLASH_OUTPUT
-
-splash_sources =				\
-	SplashOutputDev.cc
-
-splash_headers =				\
-	SplashOutputDev.h
-
-splash_includes =				\
-	$(SPLASH_CFLAGS)
-
-splash_libs =					\
-	$(SPLASH_LIBS)				\
-	$(top_builddir)/splash/libsplash.la
-
-endif
-
-if BUILD_LIBJPEG
-
-libjpeg_sources =				\
-	DCTStream.h				\
-	DCTStream.cc
-
-libjpeg_libs =					\
-	$(LIBJPEG_LIBS)
-libjpeg_includes =				\
-	$(LIBJPEG_CFLAGS)
-
-endif
-
-if BUILD_LIBPNG
-
-libpng_libs =					\
-	$(LIBPNG_LIBS)
-libpng_includes =				\
-	$(LIBPNG_CFLAGS)
-
-endif
-
-if BUILD_LIBTIFF
-
-libtiff_libs =					\
-	$(LIBTIFF_LIBS)
-libtiff_includes =				\
-	$(LIBTIFF_CFLAGS)
-
-endif
-
-if BUILD_LIBOPENJPEG
-
-libjpeg2000_sources =				\
-	JPEG2000Stream.h			\
-	JPEG2000Stream.cc
-
-libjpeg2000_libs =				\
-	$(LIBOPENJPEG_LIBS)
-libjpeg2000_includes =				\
-	$(LIBOPENJPEG_CFLAGS)
-
-else
-
-libjpeg2000_sources =				\
-	JPXStream.h			\
-	JPXStream.cc
-
-endif
-
-if BUILD_NSS
-
-nss_sources =                   \
-	SignatureHandler.cc
-
-nss_libs =                      \
-	$(NSS3_LIBS)
-
-nss_includes =                  \
-	$(NSS3_CFLAGS)
-
-nss_headers =                   \
-	SignatureHandler.h
-
-endif	
-
-
-if BUILD_ZLIB
-
-zlib_sources =					\
-	FlateEncoder.h				\
-	FlateEncoder.cc
-
-zlib_libs = 					\
-	$(ZLIB_LIBS)
-
-endif
-
-if BUILD_ZLIB_UNCOMPRESS
-
-zlib_uncompress_sources =			\
-	FlateStream.h				\
-	FlateStream.cc
-
-endif
-
-if BUILD_LIBCURL
-
-libcurl_libs =					\
-	$(LIBCURL_LIBS)
-
-libcurl_includes =				\
-	$(LIBCURL_CFLAGS)
-
-curl_headers =					\
-	CurlCachedFile.h			\
-	CurlPDFDocBuilder.h
-
-curl_sources =					\
-	CurlCachedFile.cc			\
-	CurlPDFDocBuilder.cc
-
-endif
-
-if USE_CMS
-cms_includes = $(LCMS_CFLAGS)
-cms_libs = $(LCMS_LIBS)
-endif
-
-if ENABLE_XPDF_HEADERS
-
-poppler_includedir = $(includedir)/poppler
-poppler_include_HEADERS =	\
-	$(splash_headers)	\
-	$(curl_headers)		\
-	$(nss_headers) 		\
-	Annot.h			\
-	Array.h			\
-	BuiltinFont.h		\
-	BuiltinFontTables.h	\
-	CachedFile.h		\
-	Catalog.h		\
-	CharCodeToUnicode.h	\
-	CMap.h			\
-	DateInfo.h		\
-	Decrypt.h		\
-	Dict.h			\
-	Error.h			\
-	FileSpec.h		\
-	FontEncodingTables.h	\
-	FontInfo.h		\
-	Form.h 			\
-	Function.h		\
-	Gfx.h			\
-	GfxFont.h		\
-	GfxState.h		\
-	GfxState_helpers.h	\
-	GlobalParams.h		\
-	Hints.h			\
-	JArithmeticDecoder.h	\
-	JBIG2Stream.h		\
-	Lexer.h			\
-	Linearization.h 	\
-	Link.h			\
-	LocalPDFDocBuilder.h	\
-	Movie.h                 \
-	NameToCharCode.h	\
-	Object.h		\
-	OptionalContent.h	\
-	Outline.h		\
-	OutputDev.h		\
-	Page.h			\
-	PageTransition.h	\
-	Parser.h		\
-	PDFDoc.h		\
-	PDFDocBuilder.h		\
-	PDFDocEncoding.h	\
-	PDFDocFactory.h		\
-	PopplerCache.h		\
-	ProfileData.h		\
-	PreScanOutputDev.h	\
-	PSTokenizer.h		\
-	Rendition.h		\
-	SignatureInfo.h		\
-	StdinCachedFile.h	\
-	StdinPDFDocBuilder.h	\
-	Stream-CCITT.h		\
-	Stream.h		\
-	StructElement.h		\
-	StructTreeRoot.h	\
-	UnicodeMap.h		\
-	UnicodeMapTables.h	\
-	UnicodeTypeTable.h	\
-	UnicodeCClassTables.h	\
-	UnicodeCompTables.h	\
-	UnicodeDecompTables.h	\
-	ViewerPreferences.h	\
-	XRef.h			\
-	CharTypes.h		\
-	CompactFontTables.h	\
-	ErrorCodes.h		\
-	NameToUnicodeTable.h	\
-	PSOutputDev.h		\
-	TextOutputDev.h		\
-	MarkedContentOutputDev.h \
-	SecurityHandler.h	\
-	UTF.h			\
-	UTF8.h			\
-	XpdfPluginAPI.h		\
-	Sound.h
-nodist_poppler_include_HEADERS = poppler-config.h
-
-endif
-
-libpoppler_la_SOURCES =		\
-	$(splash_sources)	\
-	$(libjpeg_sources)	\
-	$(zlib_sources)		\
-	$(zlib_uncompress_sources) \
-	$(nss_sources)      \
-	$(libjpeg2000_sources)	\
-	$(curl_sources)		\
-	Annot.cc		\
-	Array.cc 		\
-	BuiltinFont.cc		\
-	BuiltinFontTables.cc	\
-	CachedFile.cc		\
-	Catalog.cc 		\
-	CharCodeToUnicode.cc	\
-	CMap.cc			\
-	DateInfo.cc		\
-	Decrypt.cc		\
-	Dict.cc 		\
-	Error.cc 		\
-	FileSpec.cc		\
-	FontEncodingTables.cc	\
-	Form.cc 		\
-	FontInfo.cc		\
-	Function.cc		\
-	Gfx.cc 			\
-	GfxFont.cc 		\
-	GfxState.cc		\
-	GlobalParams.cc		\
-	Hints.cc		\
-	JArithmeticDecoder.cc	\
-	JBIG2Stream.cc		\
-	Lexer.cc 		\
-	Linearization.cc 	\
-	Link.cc 		\
-	LocalPDFDocBuilder.cc	\
-	Movie.cc                \
-	NameToCharCode.cc	\
-	Object.cc 		\
-	OptionalContent.cc	\
-	Outline.cc		\
-	OutputDev.cc 		\
-	Page.cc 		\
-	PageTransition.cc	\
-	Parser.cc 		\
-	PDFDoc.cc 		\
-	PDFDocEncoding.cc	\
-	PDFDocFactory.cc	\
-	PopplerCache.cc		\
-	ProfileData.cc		\
-	PreScanOutputDev.cc \
-	PSTokenizer.cc		\
-	Rendition.cc		\
-	SignatureInfo.cc	\
-	StdinCachedFile.cc	\
-	StdinPDFDocBuilder.cc	\
-	Stream.cc 		\
-	StructTreeRoot.cc	\
-	StructElement.cc	\
-	strtok_r.cpp		\
-	UnicodeMap.cc		\
-	UnicodeTypeTable.cc	\
-	UTF.cc                  \
-	ViewerPreferences.cc	\
-	XRef.cc			\
-	PSOutputDev.cc		\
-	TextOutputDev.cc	\
-	MarkedContentOutputDev.cc \
-	PageLabelInfo.h		\
-	PageLabelInfo.cc	\
-	SecurityHandler.cc	\
-	Sound.cc		\
-	XpdfPluginAPI.cc
-
-libpoppler_la_CPPFLAGS =			\
-	$(cms_includes)				\
-	$(splash_includes)			\
-	$(libjpeg_includes)			\
-	$(libtiff_includes)			\
-	$(libjpeg2000_includes)			\
-	$(libpng_includes)			\
-	$(libcurl_includes)			\
-	$(nss_includes)				\
-	$(FREETYPE_CFLAGS)			\
-	$(FONTCONFIG_CFLAGS)			\
-	$(AM_CPPFLAGS)
-
-libpoppler_la_LIBADD =				\
-	$(top_builddir)/goo/libgoo.la		\
-	$(top_builddir)/fofi/libfofi.la		\
-	$(cms_libs)				\
-	$(splash_libs)				\
-	$(libtiff_libs)				\
-	$(libjpeg_libs)				\
-	$(libpng_libs)				\
-	$(zlib_libs)				\
-	$(libcurl_libs)				\
-	$(nss_libs)                 \
-	$(libjpeg2000_libs)			\
-	$(FREETYPE_LIBS)			\
-	$(FONTCONFIG_LIBS)			\
-	$(PTHREAD_LIBS)				\
-	$(win32_libs)
-
-libpoppler_la_LDFLAGS =				\
-	-version-info 70:0:0			\
-	@create_shared_lib@			\
-	@auto_import_flags@
-
-libpoppler_cairo_la_SOURCES =			\
-	CairoFontEngine.cc			\
-	CairoFontEngine.h			\
-	CairoOutputDev.cc			\
-	CairoOutputDev.h			\
-	CairoRescaleBox.cc			\
-	CairoRescaleBox.h
-
-libpoppler_cairo_la_CPPFLAGS =			\
-	$(CAIRO_CFLAGS)				\
-	$(AM_CPPFLAGS)
-
-EXTRA_DIST = gen-unicode-tables.py	\
-             GlobalParamsWin.cc         \
-             PageLabelInfo_p.h
diff --git a/source/libs/poppler/poppler-src/poppler/Object.cc b/source/libs/poppler/poppler-src/poppler/Object.cc
index 4fce012dc..d3adc4473 100644
--- a/source/libs/poppler/poppler-src/poppler/Object.cc
+++ b/source/libs/poppler/poppler-src/poppler/Object.cc
@@ -160,11 +160,11 @@ void Object::free() {
   type = objNone;
 }
 
-const char *Object::getTypeName() {
+const char *Object::getTypeName() const {
   return objTypeNames[type];
 }
 
-void Object::print(FILE *f) {
+void Object::print(FILE *f) const {
   Object obj;
   int i;
 
diff --git a/source/libs/poppler/poppler-src/poppler/Object.h b/source/libs/poppler/poppler-src/poppler/Object.h
index 331854781..50b2c1611 100644
--- a/source/libs/poppler/poppler-src/poppler/Object.h
+++ b/source/libs/poppler/poppler-src/poppler/Object.h
@@ -184,100 +184,100 @@ public:
   Object fetch(XRef *xref, int recursion = 0) const;
 
   // Type checking.
-  ObjType getType() { CHECK_NOT_DEAD; return type; }
-  GBool isBool() { CHECK_NOT_DEAD; return type == objBool; }
-  GBool isInt() { CHECK_NOT_DEAD; return type == objInt; }
-  GBool isReal() { CHECK_NOT_DEAD; return type == objReal; }
-  GBool isNum() { CHECK_NOT_DEAD; return type == objInt || type == objReal || type == objInt64; }
-  GBool isString() { CHECK_NOT_DEAD; return type == objString; }
-  GBool isName() { CHECK_NOT_DEAD; return type == objName; }
-  GBool isNull() { CHECK_NOT_DEAD; return type == objNull; }
-  GBool isArray() { CHECK_NOT_DEAD; return type == objArray; }
-  GBool isDict() { CHECK_NOT_DEAD; return type == objDict; }
-  GBool isStream() { CHECK_NOT_DEAD; return type == objStream; }
-  GBool isRef() { CHECK_NOT_DEAD; return type == objRef; }
-  GBool isCmd() { CHECK_NOT_DEAD; return type == objCmd; }
-  GBool isError() { CHECK_NOT_DEAD; return type == objError; }
-  GBool isEOF() { CHECK_NOT_DEAD; return type == objEOF; }
-  GBool isNone() { CHECK_NOT_DEAD; return type == objNone; }
-  GBool isInt64() { CHECK_NOT_DEAD; return type == objInt64; }
-  GBool isIntOrInt64() { CHECK_NOT_DEAD; return type == objInt || type == objInt64; }
+  ObjType getType() const { CHECK_NOT_DEAD; return type; }
+  GBool isBool() const { CHECK_NOT_DEAD; return type == objBool; }
+  GBool isInt() const { CHECK_NOT_DEAD; return type == objInt; }
+  GBool isReal() const { CHECK_NOT_DEAD; return type == objReal; }
+  GBool isNum() const { CHECK_NOT_DEAD; return type == objInt || type == objReal || type == objInt64; }
+  GBool isString() const { CHECK_NOT_DEAD; return type == objString; }
+  GBool isName() const { CHECK_NOT_DEAD; return type == objName; }
+  GBool isNull() const { CHECK_NOT_DEAD; return type == objNull; }
+  GBool isArray() const { CHECK_NOT_DEAD; return type == objArray; }
+  GBool isDict() const { CHECK_NOT_DEAD; return type == objDict; }
+  GBool isStream() const { CHECK_NOT_DEAD; return type == objStream; }
+  GBool isRef() const { CHECK_NOT_DEAD; return type == objRef; }
+  GBool isCmd() const { CHECK_NOT_DEAD; return type == objCmd; }
+  GBool isError() const { CHECK_NOT_DEAD; return type == objError; }
+  GBool isEOF() const { CHECK_NOT_DEAD; return type == objEOF; }
+  GBool isNone() const { CHECK_NOT_DEAD; return type == objNone; }
+  GBool isInt64() const { CHECK_NOT_DEAD; return type == objInt64; }
+  GBool isIntOrInt64() const { CHECK_NOT_DEAD; return type == objInt || type == objInt64; }
 
   // Special type checking.
-  GBool isName(const char *nameA)
+  GBool isName(const char *nameA) const
     { return type == objName && !strcmp(cString, nameA); }
-  GBool isDict(const char *dictType);
-  GBool isStream(const char *dictType);
-  GBool isCmd(const char *cmdA)
+  GBool isDict(const char *dictType) const;
+  GBool isStream(const char *dictType) const;
+  GBool isCmd(const char *cmdA) const
     { return type == objCmd && !strcmp(cString, cmdA); }
 
   // Accessors.
-  GBool getBool() { OBJECT_TYPE_CHECK(objBool); return booln; }
-  int getInt() { OBJECT_TYPE_CHECK(objInt); return intg; }
-  double getReal() { OBJECT_TYPE_CHECK(objReal); return real; }
+  GBool getBool() const { OBJECT_TYPE_CHECK(objBool); return booln; }
+  int getInt() const { OBJECT_TYPE_CHECK(objInt); return intg; }
+  double getReal() const { OBJECT_TYPE_CHECK(objReal); return real; }
 
   // Note: integers larger than 2^53 can not be exactly represented by a double.
   // Where the exact value of integers up to 2^63 is required, use isInt64()/getInt64().
-  double getNum() { OBJECT_3TYPES_CHECK(objInt, objInt64, objReal);
+  double getNum() const { OBJECT_3TYPES_CHECK(objInt, objInt64, objReal);
     return type == objInt ? (double)intg : type == objInt64 ? (double)int64g : real; }
-  double getNum(bool *ok) {
+  double getNum(bool *ok) const {
     if (unlikely(type != objInt && type != objInt64 && type != objReal)) {
       *ok = false;
       return 0.;
     }
     return type == objInt ? (double)intg : type == objInt64 ? (double)int64g : real;
   }
-  GooString *getString() { OBJECT_TYPE_CHECK(objString); return string; }
+  GooString *getString() const { OBJECT_TYPE_CHECK(objString); return string; }
   // After takeString() the only method that should be called for the object is free()
   // because the object it's not expected to have a NULL string.
   GooString *takeString() {
     OBJECT_TYPE_CHECK(objString); GooString *s = string; string = NULL; return s; }
-  char *getName() { OBJECT_TYPE_CHECK(objName); return cString; }
-  Array *getArray() { OBJECT_TYPE_CHECK(objArray); return array; }
-  Dict *getDict() { OBJECT_TYPE_CHECK(objDict); return dict; }
-  Stream *getStream() { OBJECT_TYPE_CHECK(objStream); return stream; }
-  Ref getRef() { OBJECT_TYPE_CHECK(objRef); return ref; }
-  int getRefNum() { OBJECT_TYPE_CHECK(objRef); return ref.num; }
-  int getRefGen() { OBJECT_TYPE_CHECK(objRef); return ref.gen; }
-  char *getCmd() { OBJECT_TYPE_CHECK(objCmd); return cString; }
-  long long getInt64() { OBJECT_TYPE_CHECK(objInt64); return int64g; }
-  long long getIntOrInt64() { OBJECT_2TYPES_CHECK(objInt, objInt64);
+  char *getName() const { OBJECT_TYPE_CHECK(objName); return cString; }
+  Array *getArray() const { OBJECT_TYPE_CHECK(objArray); return array; }
+  Dict *getDict() const { OBJECT_TYPE_CHECK(objDict); return dict; }
+  Stream *getStream() const { OBJECT_TYPE_CHECK(objStream); return stream; }
+  Ref getRef() const { OBJECT_TYPE_CHECK(objRef); return ref; }
+  int getRefNum() const { OBJECT_TYPE_CHECK(objRef); return ref.num; }
+  int getRefGen() const { OBJECT_TYPE_CHECK(objRef); return ref.gen; }
+  char *getCmd() const { OBJECT_TYPE_CHECK(objCmd); return cString; }
+  long long getInt64() const { OBJECT_TYPE_CHECK(objInt64); return int64g; }
+  long long getIntOrInt64() const { OBJECT_2TYPES_CHECK(objInt, objInt64);
     return type == objInt ? intg : int64g; }
 
   // Array accessors.
-  int arrayGetLength();
+  int arrayGetLength() const;
   void arrayAdd(Object &&elem);
   void arrayRemove(int i);
-  Object arrayGet(int i, int recursion);
-  Object arrayGetNF(int i);
+  Object arrayGet(int i, int recursion) const;
+  Object arrayGetNF(int i) const;
 
   // Dict accessors.
-  int dictGetLength();
+  int dictGetLength() const;
   void dictAdd(char *key, Object &&val);
   void dictSet(const char *key, Object &&val);
   void dictRemove(const char *key);
-  GBool dictIs(const char *dictType);
-  Object dictLookup(const char *key, int recursion = 0);
-  Object dictLookupNF(const char *key);
-  char *dictGetKey(int i);
-  Object dictGetVal(int i);
-  Object dictGetValNF(int i);
+  GBool dictIs(const char *dictType) const;
+  Object dictLookup(const char *key, int recursion = 0) const;
+  Object dictLookupNF(const char *key) const;
+  char *dictGetKey(int i) const;
+  Object dictGetVal(int i) const;
+  Object dictGetValNF(int i) const;
 
   // Stream accessors.
-  GBool streamIs(const char *dictType);
+  GBool streamIs(const char *dictType) const;
   void streamReset();
   void streamClose();
-  int streamGetChar();
-  int streamGetChars(int nChars, Guchar *buffer);
-  int streamLookChar();
-  char *streamGetLine(char *buf, int size);
-  Goffset streamGetPos();
+  int streamGetChar() const;
+  int streamGetChars(int nChars, Guchar *buffer) const;
+  int streamLookChar() const;
+  char *streamGetLine(char *buf, int size) const;
+  Goffset streamGetPos() const;
   void streamSetPos(Goffset pos, int dir = 0);
-  Dict *streamGetDict();
+  Dict *streamGetDict() const;
 
   // Output.
-  const char *getTypeName();
-  void print(FILE *f = stdout);
+  const char *getTypeName() const;
+  void print(FILE *f = stdout) const;
 
   // Memory testing.
   static void memCheck(FILE *f);
@@ -319,7 +319,7 @@ private:
 
 #include "Array.h"
 
-inline int Object::arrayGetLength()
+inline int Object::arrayGetLength() const
   { OBJECT_TYPE_CHECK(objArray); return array->getLength(); }
 
 inline void Object::arrayAdd(Object &&elem)
@@ -328,10 +328,10 @@ inline void Object::arrayAdd(Object &&elem)
 inline void Object::arrayRemove(int i)
   { OBJECT_TYPE_CHECK(objArray); array->remove(i); }
 
-inline Object Object::arrayGet(int i, int recursion = 0)
+inline Object Object::arrayGet(int i, int recursion = 0) const
   { OBJECT_TYPE_CHECK(objArray); return array->get(i, recursion); }
 
-inline Object Object::arrayGetNF(int i)
+inline Object Object::arrayGetNF(int i) const
   { OBJECT_TYPE_CHECK(objArray); return array->getNF(i); }
 
 //------------------------------------------------------------------------
@@ -340,7 +340,7 @@ inline Object Object::arrayGetNF(int i)
 
 #include "Dict.h"
 
-inline int Object::dictGetLength()
+inline int Object::dictGetLength() const
   { OBJECT_TYPE_CHECK(objDict); return dict->getLength(); }
 
 inline void Object::dictAdd(char *key, Object &&val)
@@ -352,25 +352,25 @@ inline void Object::dictSet(const char *key, Object &&val)
 inline void Object::dictRemove(const char *key)
   { OBJECT_TYPE_CHECK(objDict); dict->remove(key); }
 
-inline GBool Object::dictIs(const char *dictType)
+inline GBool Object::dictIs(const char *dictType) const
   { OBJECT_TYPE_CHECK(objDict); return dict->is(dictType); }
 
-inline GBool Object::isDict(const char *dictType)
+inline GBool Object::isDict(const char *dictType) const
   { return type == objDict && dictIs(dictType); }
 
-inline Object Object::dictLookup(const char *key, int recursion)
+inline Object Object::dictLookup(const char *key, int recursion) const
   { OBJECT_TYPE_CHECK(objDict); return dict->lookup(key, recursion); }
 
-inline Object Object::dictLookupNF(const char *key)
+inline Object Object::dictLookupNF(const char *key) const
   { OBJECT_TYPE_CHECK(objDict); return dict->lookupNF(key); }
 
-inline char *Object::dictGetKey(int i)
+inline char *Object::dictGetKey(int i) const
   { OBJECT_TYPE_CHECK(objDict); return dict->getKey(i); }
 
-inline Object Object::dictGetVal(int i)
+inline Object Object::dictGetVal(int i) const
   { OBJECT_TYPE_CHECK(objDict); return dict->getVal(i); }
 
-inline Object Object::dictGetValNF(int i)
+inline Object Object::dictGetValNF(int i) const
   { OBJECT_TYPE_CHECK(objDict); return dict->getValNF(i); }
 
 //------------------------------------------------------------------------
@@ -379,10 +379,10 @@ inline Object Object::dictGetValNF(int i)
 
 #include "Stream.h"
 
-inline GBool Object::streamIs(const char *dictType)
+inline GBool Object::streamIs(const char *dictType) const
   { OBJECT_TYPE_CHECK(objStream); return stream->getDict()->is(dictType); }
 
-inline GBool Object::isStream(const char *dictType)
+inline GBool Object::isStream(const char *dictType) const
   { return type == objStream && streamIs(dictType); }
 
 inline void Object::streamReset()
@@ -391,25 +391,25 @@ inline void Object::streamReset()
 inline void Object::streamClose()
   { OBJECT_TYPE_CHECK(objStream); stream->close(); }
 
-inline int Object::streamGetChar()
+inline int Object::streamGetChar() const
   { OBJECT_TYPE_CHECK(objStream); return stream->getChar(); }
 
-inline int Object::streamGetChars(int nChars, Guchar *buffer)
+inline int Object::streamGetChars(int nChars, Guchar *buffer) const
   { OBJECT_TYPE_CHECK(objStream); return stream->doGetChars(nChars, buffer); }
 
-inline int Object::streamLookChar()
+inline int Object::streamLookChar() const
   { OBJECT_TYPE_CHECK(objStream); return stream->lookChar(); }
 
-inline char *Object::streamGetLine(char *buf, int size)
+inline char *Object::streamGetLine(char *buf, int size) const
   { OBJECT_TYPE_CHECK(objStream); return stream->getLine(buf, size); }
 
-inline Goffset Object::streamGetPos()
+inline Goffset Object::streamGetPos() const
   { OBJECT_TYPE_CHECK(objStream); return stream->getPos(); }
 
 inline void Object::streamSetPos(Goffset pos, int dir)
   { OBJECT_TYPE_CHECK(objStream); stream->setPos(pos, dir); }
 
-inline Dict *Object::streamGetDict()
+inline Dict *Object::streamGetDict() const
   { OBJECT_TYPE_CHECK(objStream); return stream->getDict(); }
 
 #endif
diff --git a/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc b/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc
index b2d6d3a94..5e4226f42 100644
--- a/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc
+++ b/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc
@@ -23,7 +23,7 @@
 // Copyright (C) 2009-2013 Thomas Freitag <Thomas.Freitag@alfa.de>
 // Copyright (C) 2009 Till Kamppeter <till.kamppeter@gmail.com>
 // Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org>
-// Copyright (C) 2009, 2011, 2012, 2014-2016 William Bader <williambader@hotmail.com>
+// Copyright (C) 2009, 2011, 2012, 2014-2017 William Bader <williambader@hotmail.com>
 // Copyright (C) 2009 Kovid Goyal <kovid@kovidgoyal.net>
 // Copyright (C) 2009-2011, 2013-2015 Adrian Johnson <ajohnson@redneon.com>
 // Copyright (C) 2012, 2014 Fabio D'Urso <fabiodurso@hotmail.it>
@@ -1311,7 +1311,6 @@ void PSOutputDev::postInit()
   Catalog *catalog;
   PDFRectangle *box;
   PSOutPaperSize *size;
-  GooList *names;
   int w, h, i;
 
   if (postInitDone || !ok) {
@@ -1405,11 +1404,6 @@ void PSOutputDev::postInit()
   for (i = 0; i < 14; ++i) {
     fontNames->add(new GooString(psBase14SubstFonts[i].psName), 1);
   }
-  names = globalParams->getPSResidentFonts();
-  for (i = 0; i < names->getLength(); ++i) {
-    fontNames->add((GooString *)names->get(i), 1);
-  }
-  delete names;
   t1FontNameSize = 64;
   t1FontNameLen = 0;
   t1FontNames = (PST1FontName *)gmallocn(t1FontNameSize, sizeof(PST1FontName));
@@ -2544,6 +2538,14 @@ void PSOutputDev::setupExternalTrueTypeFont(GfxFont *font, GooString *fileName,
   writePS("%%EndResource\n");
 }
 
+void PSOutputDev::updateFontMaxValidGlyph(GfxFont *font, int maxValidGlyph) {
+  if (maxValidGlyph >= 0 && font->getName()) {
+    if (maxValidGlyph > fontMaxValidGlyph->lookupInt(font->getName())) {
+      fontMaxValidGlyph->replace(font->getName()->copy(), maxValidGlyph);
+    }
+  }
+}
+
 void PSOutputDev::setupExternalCIDTrueTypeFont(GfxFont *font,
 					       GooString *fileName,
 					       GooString *psName,
@@ -2594,9 +2596,7 @@ void PSOutputDev::setupExternalCIDTrueTypeFont(GfxFont *font,
 		needVerticalMetrics,
 		&maxValidGlyph,
 		outputFunc, outputStream);
-	if (maxValidGlyph >= 0 && font->getName()) {
-	  fontMaxValidGlyph->replace(font->getName()->copy(), maxValidGlyph);
-	}
+	updateFontMaxValidGlyph(font, maxValidGlyph);
       }
       gfree(codeToGID);
     } else {
@@ -2696,9 +2696,7 @@ void PSOutputDev::setupEmbeddedCIDTrueTypeFont(GfxFont *font, Ref *id,
 			     needVerticalMetrics,
 			     &maxValidGlyph,
 			     outputFunc, outputStream);
-	if (maxValidGlyph > 0 && font->getName()) {
-	  fontMaxValidGlyph->replace(font->getName()->copy(), maxValidGlyph);
-	}
+	updateFontMaxValidGlyph(font, maxValidGlyph);
       }
       delete ffTT;
     }
diff --git a/source/libs/poppler/poppler-src/poppler/PSOutputDev.h b/source/libs/poppler/poppler-src/poppler/PSOutputDev.h
index 833f686ea..8dd1c9504 100644
--- a/source/libs/poppler/poppler-src/poppler/PSOutputDev.h
+++ b/source/libs/poppler/poppler-src/poppler/PSOutputDev.h
@@ -20,7 +20,7 @@
 // Copyright (C) 2009-2013 Thomas Freitag <Thomas.Freitag@alfa.de>
 // Copyright (C) 2009 Till Kamppeter <till.kamppeter@gmail.com>
 // Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org>
-// Copyright (C) 2009, 2011, 2015-2016 William Bader <williambader@hotmail.com>
+// Copyright (C) 2009, 2011, 2015-2017 William Bader <williambader@hotmail.com>
 // Copyright (C) 2010 Hib Eris <hib@hiberis.nl>
 // Copyright (C) 2011, 2014 Adrian Johnson <ajohnson@redneon.com>
 // Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it>
@@ -355,6 +355,7 @@ private:
   void setupFonts(Dict *resDict);
   void setupFont(GfxFont *font, Dict *parentResDict);
   void setupEmbeddedType1Font(Ref *id, GooString *psName);
+  void updateFontMaxValidGlyph(GfxFont *font, int maxValidGlyph);
   void setupExternalType1Font(GooString *fileName, GooString *psName);
   void setupEmbeddedType1CFont(GfxFont *font, Ref *id, GooString *psName);
   void setupEmbeddedOpenTypeT1CFont(GfxFont *font, Ref *id, GooString *psName);
diff --git a/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc b/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc
index 60edb8ac8..dc5b68714 100644
--- a/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc
+++ b/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc
@@ -128,6 +128,7 @@ static inline void convertGfxColor(SplashColorPtr dest,
     break;
     case splashModeXBGR8:
       color[3] = 255;
+      // fallthrough
     case splashModeBGR8:
     case splashModeRGB8:
       colorSpace->getRGB(src, &rgb);
@@ -175,6 +176,7 @@ static inline void convertGfxShortColor(SplashColorPtr dest,
     break;
     case splashModeXBGR8:
       dest[3] = 255;
+      // fallthrough
     case splashModeBGR8:
     case splashModeRGB8:
     {
@@ -1016,6 +1018,7 @@ static void splashOutBlendHue(SplashColorPtr src, SplashColorPtr dest,
     break;
   case splashModeXBGR8:
     src[3] = 255;
+    // fallthrough
   case splashModeRGB8:
   case splashModeBGR8:
     setSat(src[0], src[1], src[2], getSat(dest[0], dest[1], dest[2]),
@@ -1066,6 +1069,7 @@ static void splashOutBlendSaturation(SplashColorPtr src, SplashColorPtr dest,
     break;
   case splashModeXBGR8:
     src[3] = 255;
+    // fallthrough
   case splashModeRGB8:
   case splashModeBGR8:
     setSat(dest[0], dest[1], dest[2], getSat(src[0], src[1], src[2]),
@@ -1113,6 +1117,7 @@ static void splashOutBlendColor(SplashColorPtr src, SplashColorPtr dest,
     break;
   case splashModeXBGR8:
     src[3] = 255;
+    // fallthrough
   case splashModeRGB8:
   case splashModeBGR8:
     setLum(src[0], src[1], src[2], getLum(dest[0], dest[1], dest[2]),
@@ -1157,6 +1162,7 @@ static void splashOutBlendLuminosity(SplashColorPtr src, SplashColorPtr dest,
     break;
   case splashModeXBGR8:
     src[3] = 255;
+    // fallthrough
   case splashModeRGB8:
   case splashModeBGR8:
     setLum(dest[0], dest[1], dest[2], getLum(src[0], src[1], src[2]),
@@ -1570,6 +1576,7 @@ void SplashOutputDev::startPage(int pageNum, GfxState *state, XRef *xrefA) {
     break;
   case splashModeXBGR8:
     color[3] = 255;
+    // fallthrough
   case splashModeRGB8:
   case splashModeBGR8:
     color[0] = color[1] = color[2] = 0;
@@ -2716,7 +2723,11 @@ void SplashOutputDev::endType3Char(GfxState *state) {
 }
 
 void SplashOutputDev::type3D0(GfxState *state, double wx, double wy) {
-  t3GlyphStack->haveDx = gTrue;
+  if (likely(t3GlyphStack != nullptr)) {
+    t3GlyphStack->haveDx = gTrue;
+  } else {
+    error(errSyntaxWarning, -1, "t3GlyphStack was null in SplashOutputDev::type3D0");
+  }
 }
 
 void SplashOutputDev::type3D1(GfxState *state, double wx, double wy,
@@ -4424,6 +4435,7 @@ void SplashOutputDev::setSoftMask(GfxState *state, double *bbox,
 	break;
       case splashModeXBGR8:
 	color[3] = 255;
+	// fallthrough
       case splashModeRGB8:
       case splashModeBGR8:
 	transpGroupStack->blendingColorSpace->getRGB(backdropColor, &rgb);
diff --git a/source/libs/poppler/poppler-src/poppler/Stream.cc b/source/libs/poppler/poppler-src/poppler/Stream.cc
index f4eda85b3..0ad602c79 100644
--- a/source/libs/poppler/poppler-src/poppler/Stream.cc
+++ b/source/libs/poppler/poppler-src/poppler/Stream.cc
@@ -454,11 +454,10 @@ ImageStream::ImageStream(Stream *strA, int widthA, int nCompsA, int nBitsA) {
     } else {
       imgLineSize = nVals;
     }
-    if (width > INT_MAX / nComps) {
-      // force a call to gmallocn(-1,...), which will throw an exception
+    if (nComps <= 0 || width > INT_MAX / nComps) {
       imgLineSize = -1;
     }
-    imgLine = (Guchar *)gmallocn(imgLineSize, sizeof(Guchar));
+    imgLine = (Guchar *)gmallocn_checkoverflow(imgLineSize, sizeof(Guchar));
   }
   imgIdx = nVals;
 }
diff --git a/source/libs/poppler/poppler-src/poppler/Stream.h b/source/libs/poppler/poppler-src/poppler/Stream.h
index 4f83275d3..c2c48111c 100644
--- a/source/libs/poppler/poppler-src/poppler/Stream.h
+++ b/source/libs/poppler/poppler-src/poppler/Stream.h
@@ -284,7 +284,7 @@ public:
 
   void put (char c) override;
 
-  void printf (const char *format, ...) override;
+  void printf (const char *format, ...) override GCC_PRINTF_FORMAT(2,3);
 private:
   FILE *f;
   Goffset start;
diff --git a/source/libs/poppler/poppler-src/poppler/StructElement.cc b/source/libs/poppler/poppler-src/poppler/StructElement.cc
index 0fbd336a6..629254743 100644
--- a/source/libs/poppler/poppler-src/poppler/StructElement.cc
+++ b/source/libs/poppler/poppler-src/poppler/StructElement.cc
@@ -226,13 +226,13 @@ static GBool isTextString(Object *value)
       return okay;                                                      \
     }
 
-ARRAY_CHECKER(isRGBColorOrOptionalArray4, isRGBColor,        4, gTrue,  gTrue );
-ARRAY_CHECKER(isPositiveOrOptionalArray4, isPositive,        4, gTrue,  gTrue );
-ARRAY_CHECKER(isPositiveOrArray4,         isPositive,        4, gTrue,  gFalse);
-ARRAY_CHECKER(isBorderStyle,              isBorderStyleName, 4, gTrue,  gTrue );
-ARRAY_CHECKER(isNumberArray4,             isNumber,          4, gFalse, gFalse);
-ARRAY_CHECKER(isNumberOrArrayN,           isNumber,          0, gTrue,  gFalse);
-ARRAY_CHECKER(isTableHeaders,             isTextString,      0, gFalse, gFalse);
+ARRAY_CHECKER(isRGBColorOrOptionalArray4, isRGBColor,        4, gTrue,  gTrue )
+ARRAY_CHECKER(isPositiveOrOptionalArray4, isPositive,        4, gTrue,  gTrue )
+ARRAY_CHECKER(isPositiveOrArray4,         isPositive,        4, gTrue,  gFalse)
+ARRAY_CHECKER(isBorderStyle,              isBorderStyleName, 4, gTrue,  gTrue )
+ARRAY_CHECKER(isNumberArray4,             isNumber,          4, gFalse, gFalse)
+ARRAY_CHECKER(isNumberOrArrayN,           isNumber,          0, gTrue,  gFalse)
+ARRAY_CHECKER(isTableHeaders,             isTextString,      0, gFalse, gFalse)
 
 
 // Type of functions used to do type-checking on attribute values
@@ -248,6 +248,8 @@ struct AttributeMapEntry {
 };
 
 struct AttributeDefaults {
+  AttributeDefaults() {}; // needed to support old clang
+
   Object Inline  = Object(objName, "Inline");
   Object LrTb = Object(objName, "LrTb");
   Object Normal = Object(objName, "Normal");
diff --git a/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc b/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc
index a89ba23cd..d30874cf3 100644
--- a/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc
+++ b/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc
@@ -565,7 +565,7 @@ static struct CombiningTable combiningTable[] = {
 };
 
 // returning combining versions of characters
-Unicode getCombiningChar(Unicode u) {
+static Unicode getCombiningChar(Unicode u) {
   int len = sizeof(combiningTable) / sizeof(combiningTable[0]);
   for (int i = 0; i < len; ++i) {
     if (u == combiningTable[i].base)
diff --git a/source/libs/poppler/poppler-src/poppler/UnicodeMap.cc b/source/libs/poppler/poppler-src/poppler/UnicodeMap.cc
index 131966677..15d9a81e6 100644
--- a/source/libs/poppler/poppler-src/poppler/UnicodeMap.cc
+++ b/source/libs/poppler/poppler-src/poppler/UnicodeMap.cc
@@ -14,6 +14,7 @@
 // under GPL version 2 or later
 //
 // Copyright (C) 2010 Jakub Wilk <jwilk@jwilk.net>
+// Copyright (C) 2017 Albert Astals Cid <aacid@kde.org>
 //
 // To see a description of the changes please see the Changelog file that
 // came with your tarball or type make ChangeLog if you are building from git
@@ -55,7 +56,7 @@ UnicodeMap *UnicodeMap::parse(GooString *encodingNameA) {
   UnicodeMapExt *eMap;
   int size, eMapsSize;
   char buf[256];
-  int line, nBytes, i, x;
+  int line, nBytes, i;
   char *tok1, *tok2, *tok3;
   char *tokptr;
 
@@ -102,6 +103,7 @@ UnicodeMap *UnicodeMap::parse(GooString *encodingNameA) {
 	eMap = &map->eMaps[map->eMapsLen];
 	sscanf(tok1, "%x", &eMap->u);
 	for (i = 0; i < nBytes; ++i) {
+	  unsigned int x;
 	  sscanf(tok3 + i*2, "%2x", &x);
 	  eMap->code[i] = (char)x;
 	}
diff --git a/source/libs/poppler/poppler-src/poppler/XRef.cc b/source/libs/poppler/poppler-src/poppler/XRef.cc
index eca2dc708..f3b88ec0e 100644
--- a/source/libs/poppler/poppler-src/poppler/XRef.cc
+++ b/source/libs/poppler/poppler-src/poppler/XRef.cc
@@ -1526,6 +1526,9 @@ GBool XRef::parseEntry(Goffset offset, XRefEntry *entry)
 {
   GBool r;
 
+  if (unlikely(entry == nullptr))
+    return gFalse;
+
   Parser parser(NULL, new Lexer(NULL,
      str->makeSubStream(offset, gFalse, 20, Object(objNull))), gTrue);
 
diff --git a/source/libs/poppler/poppler-src/poppler/poppler-config.h.in b/source/libs/poppler/poppler-src/poppler/poppler-config.h.in
index 0d0aa9e52..142f6df87 100644
--- a/source/libs/poppler/poppler-src/poppler/poppler-config.h.in
+++ b/source/libs/poppler/poppler-src/poppler/poppler-config.h.in
@@ -34,7 +34,7 @@
 
 /* Defines the poppler version. */
 #ifndef POPPLER_VERSION
-#undef POPPLER_VERSION
+#define POPPLER_VERSION "${POPPLER_VERSION}"
 #endif
 
 /* Enable multithreading support. */
@@ -82,9 +82,9 @@
 #undef ENABLE_LIBPNG
 #endif
 
-/* Use zlib instead of builtin zlib decoder for uncompressing flate streams. */
-#ifndef ENABLE_ZLIB_UNCOMPRESS
-#undef ENABLE_ZLIB_UNCOMPRESS
+/* Use zlib instead of builtin zlib decoder. */
+#ifndef ENABLE_ZLIB
+#undef ENABLE_ZLIB
 #endif
 
 /* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
diff --git a/source/libs/poppler/poppler-src/splash/Makefile.am b/source/libs/poppler/poppler-src/splash/Makefile.am
deleted file mode 100644
index 5c265d636..000000000
--- a/source/libs/poppler/poppler-src/splash/Makefile.am
+++ /dev/null
@@ -1,73 +0,0 @@
-noinst_LTLIBRARIES = libsplash.la
-
-if ENABLE_XPDF_HEADERS
-
-poppler_splash_includedir = $(includedir)/poppler/splash
-poppler_splash_include_HEADERS =		\
-	Splash.h				\
-	SplashBitmap.h				\
-	SplashClip.h				\
-	SplashErrorCodes.h			\
-	SplashFTFont.h				\
-	SplashFTFontEngine.h			\
-	SplashFTFontFile.h			\
-	SplashFont.h				\
-	SplashFontEngine.h			\
-	SplashFontFile.h			\
-	SplashFontFileID.h			\
-	SplashGlyphBitmap.h			\
-	SplashMath.h				\
-	SplashPath.h				\
-	SplashPattern.h				\
-	SplashScreen.h				\
-	SplashState.h				\
-	SplashT1Font.h				\
-	SplashT1FontEngine.h			\
-	SplashT1FontFile.h			\
-	SplashTypes.h				\
-	SplashXPath.h				\
-	SplashXPathScanner.h
-
-endif
-
-libsplash_la_SOURCES =				\
-	Splash.cc				\
-	SplashBitmap.cc				\
-	SplashClip.cc				\
-	SplashFTFont.cc				\
-	SplashFTFontEngine.cc			\
-	SplashFTFontFile.cc			\
-	SplashFont.cc				\
-	SplashFontEngine.cc			\
-	SplashFontFile.cc			\
-	SplashFontFileID.cc			\
-	SplashPath.cc				\
-	SplashPattern.cc			\
-	SplashScreen.cc				\
-	SplashState.cc				\
-	SplashT1Font.cc				\
-	SplashT1FontEngine.cc			\
-	SplashT1FontFile.cc			\
-	SplashXPath.cc				\
-	SplashXPathScanner.cc
-
-# SplashBitmap includes JpegWriter.h, TiffWriter.h, PNGWriter.h
-if BUILD_LIBJPEG
-libjpeg_includes = $(LIBJPEG_CFLAGS)
-endif
-
-if BUILD_LIBTIFF
-libtiff_includes = $(LIBTIFF_CFLAGS)
-endif
-
-if BUILD_LIBPNG
-libpng_includes = $(LIBPNG_CFLAGS)
-endif
-
-libsplash_la_CPPFLAGS =				\
-	-I$(top_srcdir)				\
-	-I$(top_srcdir)/goo			\
-	$(libjpeg_includes)			\
-	$(libtiff_includes)			\
-	$(libpng_includes)			\
-	$(FREETYPE_CFLAGS)
diff --git a/source/libs/poppler/poppler-src/splash/Splash.cc b/source/libs/poppler/poppler-src/splash/Splash.cc
deleted file mode 100644
index 46b8ce292..000000000
--- a/source/libs/poppler/poppler-src/splash/Splash.cc
+++ /dev/null
@@ -1,6477 +0,0 @@
-//========================================================================
-//
-// Splash.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2005-2016 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2005 Marco Pesenti Gritti <mpg@redhat.com>
-// Copyright (C) 2010-2016 Thomas Freitag <Thomas.Freitag@alfa.de>
-// Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com>
-// Copyright (C) 2011-2013, 2015 William Bader <williambader@hotmail.com>
-// Copyright (C) 2012 Markus Trippelsdorf <markus@trippelsdorf.de>
-// Copyright (C) 2012 Adrian Johnson <ajohnson@redneon.com>
-// Copyright (C) 2012 Matthias Kramm <kramm@quiss.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-#include <assert.h>
-#include <math.h>
-#include "goo/gmem.h"
-#include "goo/GooLikely.h"
-#include "goo/GooList.h"
-#include "poppler/Error.h"
-#include "SplashErrorCodes.h"
-#include "SplashMath.h"
-#include "SplashBitmap.h"
-#include "SplashState.h"
-#include "SplashPath.h"
-#include "SplashXPath.h"
-#include "SplashXPathScanner.h"
-#include "SplashPattern.h"
-#include "SplashScreen.h"
-#include "SplashFont.h"
-#include "SplashGlyphBitmap.h"
-#include "Splash.h"
-#include <algorithm>
-
-//------------------------------------------------------------------------
-
-#define splashAAGamma 1.5
-
-// distance of Bezier control point from center for circle approximation
-// = (4 * (sqrt(2) - 1) / 3) * r
-#define bezierCircle ((SplashCoord)0.55228475)
-#define bezierCircle2 ((SplashCoord)(0.5 * 0.55228475))
-
-// Divide a 16-bit value (in [0, 255*255]) by 255, returning an 8-bit result.
-static inline Guchar div255(int x) {
-  return (Guchar)((x + (x >> 8) + 0x80) >> 8);
-}
-
-// Clip x to lie in [0, 255].
-static inline Guchar clip255(int x) {
-  return x < 0 ? 0 : x > 255 ? 255 : x;
-}
-
-template<typename T>
-inline void Guswap( T&a, T&b ) { T tmp = a; a=b; b=tmp; }
-
-// The PDF spec says that all pixels whose *centers* lie within the
-// image target region get painted, so we want to round n+0.5 down to
-// n.  But this causes problems, e.g., with PDF files that fill a
-// rectangle with black and then draw an image to the exact same
-// rectangle, so we instead use the fill scan conversion rule.
-// However, the correct rule works better for glyphs, so we also
-// provide that option in fillImageMask.
-#if 0
-static inline int imgCoordMungeLower(SplashCoord x) {
-  return splashCeil(x + 0.5) - 1;
-}
-static inline int imgCoordMungeUpper(SplashCoord x) {
-  return splashCeil(x + 0.5) - 1;
-}
-#else
-static inline int imgCoordMungeLower(SplashCoord x) {
-  return splashFloor(x);
-}
-static inline int imgCoordMungeUpper(SplashCoord x) {
-  return splashFloor(x) + 1;
-}
-static inline int imgCoordMungeLowerC(SplashCoord x, GBool glyphMode) {
-  return glyphMode ? (splashCeil(x + 0.5) - 1) : splashFloor(x);
-}
-static inline int imgCoordMungeUpperC(SplashCoord x, GBool glyphMode) {
-  return glyphMode ? (splashCeil(x + 0.5) - 1) : (splashFloor(x) + 1);
-}
-#endif
-
-// Used by drawImage and fillImageMask to divide the target
-// quadrilateral into sections.
-struct ImageSection {
-  int y0, y1;				// actual y range
-  int ia0, ia1;				// vertex indices for edge A
-  int ib0, ib1;				// vertex indices for edge A
-  SplashCoord xa0, ya0, xa1, ya1;	// edge A
-  SplashCoord dxdya;			// slope of edge A
-  SplashCoord xb0, yb0, xb1, yb1;	// edge B
-  SplashCoord dxdyb;			// slope of edge B
-};
-
-//------------------------------------------------------------------------
-// SplashPipe
-//------------------------------------------------------------------------
-
-#define splashPipeMaxStages 9
-
-struct SplashPipe {
-  // pixel coordinates
-  int x, y;
-
-  // source pattern
-  SplashPattern *pattern;
-
-  // source alpha and color
-  Guchar aInput;
-  GBool usesShape;
-  SplashColorPtr cSrc;
-  SplashColor cSrcVal;
-
-  // non-isolated group alpha0
-  Guchar *alpha0Ptr;
-
-  // knockout groups
-  GBool knockout;
-  Guchar knockoutOpacity;
-
-  // soft mask
-  SplashColorPtr softMaskPtr;
-
-  // destination alpha and color
-  SplashColorPtr destColorPtr;
-  int destColorMask;
-  Guchar *destAlphaPtr;
-
-  // shape
-  Guchar shape;
-
-  // result alpha and color
-  GBool noTransparency;
-  SplashPipeResultColorCtrl resultColorCtrl;
-
-  // non-isolated group correction
-  GBool nonIsolatedGroup;
-
-  // the "run" function
-  void (Splash::*run)(SplashPipe *pipe);
-};
-
-SplashPipeResultColorCtrl Splash::pipeResultColorNoAlphaBlend[] = {
-  splashPipeResultColorNoAlphaBlendMono,
-  splashPipeResultColorNoAlphaBlendMono,
-  splashPipeResultColorNoAlphaBlendRGB,
-  splashPipeResultColorNoAlphaBlendRGB,
-  splashPipeResultColorNoAlphaBlendRGB
-#if SPLASH_CMYK
-  ,
-  splashPipeResultColorNoAlphaBlendCMYK,
-  splashPipeResultColorNoAlphaBlendDeviceN
-#endif
-};
-
-SplashPipeResultColorCtrl Splash::pipeResultColorAlphaNoBlend[] = {
-  splashPipeResultColorAlphaNoBlendMono,
-  splashPipeResultColorAlphaNoBlendMono,
-  splashPipeResultColorAlphaNoBlendRGB,
-  splashPipeResultColorAlphaNoBlendRGB,
-  splashPipeResultColorAlphaNoBlendRGB
-#if SPLASH_CMYK
-  ,
-  splashPipeResultColorAlphaNoBlendCMYK,
-  splashPipeResultColorAlphaNoBlendDeviceN
-#endif
-};
-
-SplashPipeResultColorCtrl Splash::pipeResultColorAlphaBlend[] = {
-  splashPipeResultColorAlphaBlendMono,
-  splashPipeResultColorAlphaBlendMono,
-  splashPipeResultColorAlphaBlendRGB,
-  splashPipeResultColorAlphaBlendRGB,
-  splashPipeResultColorAlphaBlendRGB
-#if SPLASH_CMYK
-  ,
-  splashPipeResultColorAlphaBlendCMYK,
-  splashPipeResultColorAlphaBlendDeviceN
-#endif
-};
-
-//------------------------------------------------------------------------
-
-static void blendXor(SplashColorPtr src, SplashColorPtr dest,
-		     SplashColorPtr blend, SplashColorMode cm) {
-  int i;
-
-  for (i = 0; i < splashColorModeNComps[cm]; ++i) {
-    blend[i] = src[i] ^ dest[i];
-  }
-}
-
-//------------------------------------------------------------------------
-// modified region
-//------------------------------------------------------------------------
-
-void Splash::clearModRegion() {
-  modXMin = bitmap->getWidth();
-  modYMin = bitmap->getHeight();
-  modXMax = -1;
-  modYMax = -1;
-}
-
-inline void Splash::updateModX(int x) {
-  if (x < modXMin) {
-    modXMin = x;
-  }
-  if (x > modXMax) {
-    modXMax = x;
-  }
-}
-
-inline void Splash::updateModY(int y) {
-  if (y < modYMin) {
-    modYMin = y;
-  }
-  if (y > modYMax) {
-    modYMax = y;
-  }
-}
-
-//------------------------------------------------------------------------
-// pipeline
-//------------------------------------------------------------------------
-
-inline void Splash::pipeInit(SplashPipe *pipe, int x, int y,
-			     SplashPattern *pattern, SplashColorPtr cSrc,
-			     Guchar aInput, GBool usesShape,
-			     GBool nonIsolatedGroup,
-			     GBool knockout, Guchar knockoutOpacity) {
-  pipeSetXY(pipe, x, y);
-  pipe->pattern = NULL;
-
-  // source color
-  if (pattern) {
-    if (pattern->isStatic()) {
-      pattern->getColor(x, y, pipe->cSrcVal);
-    } else {
-      pipe->pattern = pattern;
-    }
-    pipe->cSrc = pipe->cSrcVal;
-  } else {
-    pipe->cSrc = cSrc;
-  }
-
-  // source alpha
-  pipe->aInput = aInput;
-  pipe->usesShape = usesShape;
-  pipe->shape = 0;
-
-  // knockout
-  pipe->knockout = knockout;
-  pipe->knockoutOpacity = knockoutOpacity;
-
-  // result alpha
-  if (aInput == 255 && !state->softMask && !usesShape &&
-      !state->inNonIsolatedGroup && !nonIsolatedGroup) {
-    pipe->noTransparency = gTrue;
-  } else {
-    pipe->noTransparency = gFalse;
-  }
-
-  // result color
-  if (pipe->noTransparency) {
-    // the !state->blendFunc case is handled separately in pipeRun
-    pipe->resultColorCtrl = pipeResultColorNoAlphaBlend[bitmap->mode];
-  } else if (!state->blendFunc) {
-    pipe->resultColorCtrl = pipeResultColorAlphaNoBlend[bitmap->mode];
-  } else {
-    pipe->resultColorCtrl = pipeResultColorAlphaBlend[bitmap->mode];
-  }
-
-  // non-isolated group correction
-  pipe->nonIsolatedGroup = nonIsolatedGroup;
-
-  // select the 'run' function
-  pipe->run = &Splash::pipeRun;
-  if (!pipe->pattern && pipe->noTransparency && !state->blendFunc) {
-    if (bitmap->mode == splashModeMono1 && !pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunSimpleMono1;
-    } else if (bitmap->mode == splashModeMono8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunSimpleMono8;
-    } else if (bitmap->mode == splashModeRGB8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunSimpleRGB8;
-    } else if (bitmap->mode == splashModeXBGR8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunSimpleXBGR8;
-    } else if (bitmap->mode == splashModeBGR8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunSimpleBGR8;
-#if SPLASH_CMYK
-    } else if (bitmap->mode == splashModeCMYK8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunSimpleCMYK8;
-    } else if (bitmap->mode == splashModeDeviceN8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunSimpleDeviceN8;
-#endif
-    }
-  } else if (!pipe->pattern && !pipe->noTransparency && !state->softMask &&
-	     pipe->usesShape &&
-	     !(state->inNonIsolatedGroup && alpha0Bitmap->alpha) &&
-	     !state->blendFunc && !pipe->nonIsolatedGroup) {
-    if (bitmap->mode == splashModeMono1 && !pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunAAMono1;
-    } else if (bitmap->mode == splashModeMono8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunAAMono8;
-    } else if (bitmap->mode == splashModeRGB8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunAARGB8;
-    } else if (bitmap->mode == splashModeXBGR8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunAAXBGR8;
-    } else if (bitmap->mode == splashModeBGR8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunAABGR8;
-#if SPLASH_CMYK
-    } else if (bitmap->mode == splashModeCMYK8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunAACMYK8;
-    } else if (bitmap->mode == splashModeDeviceN8 && pipe->destAlphaPtr) {
-      pipe->run = &Splash::pipeRunAADeviceN8;
-#endif
-    }
-  }
-}
-
-// general case
-void Splash::pipeRun(SplashPipe *pipe) {
-  Guchar aSrc, aDest, alphaI, alphaIm1, alpha0, aResult;
-  SplashColor cSrcNonIso, cDest, cBlend;
-  SplashColorPtr cSrc;
-  Guchar cResult0, cResult1, cResult2, cResult3;
-  int t;
-#if SPLASH_CMYK
-  int cp, mask;
-  Guchar cResult[SPOT_NCOMPS+4];
-#endif
-
-  //----- source color
-
-  // static pattern: handled in pipeInit
-  // fixed color: handled in pipeInit
-
-  // dynamic pattern
-  if (pipe->pattern) {
-    if (!pipe->pattern->getColor(pipe->x, pipe->y, pipe->cSrcVal)) {
-      pipeIncX(pipe);
-      return;
-    }
-#if SPLASH_CMYK
-    if (bitmap->mode == splashModeCMYK8 || bitmap->mode == splashModeDeviceN8) {
-      if (state->fillOverprint && state->overprintMode && pipe->pattern->isCMYK()) {
-        Guint mask = 15;
-        if (pipe->cSrcVal[0] == 0) {
-          mask &= ~1;
-        }
-        if (pipe->cSrcVal[1] == 0) {
-          mask &= ~2;
-        }
-        if (pipe->cSrcVal[2] == 0) {
-          mask &= ~4;
-        }
-        if (pipe->cSrcVal[3] == 0) {
-          mask &= ~8;
-        }
-        state->overprintMask = mask;
-      }
-    }
-#endif
-  }
-
-  if (pipe->noTransparency && !state->blendFunc) {
-
-    //----- write destination pixel
-
-    switch (bitmap->mode) {
-    case splashModeMono1:
-      cResult0 = state->grayTransfer[pipe->cSrc[0]];
-      if (state->screen->test(pipe->x, pipe->y, cResult0)) {
-	*pipe->destColorPtr |= pipe->destColorMask;
-      } else {
-	*pipe->destColorPtr &= ~pipe->destColorMask;
-      }
-      if (!(pipe->destColorMask >>= 1)) {
-	pipe->destColorMask = 0x80;
-	++pipe->destColorPtr;
-      }
-      break;
-    case splashModeMono8:
-      *pipe->destColorPtr++ = state->grayTransfer[pipe->cSrc[0]];
-      break;
-    case splashModeRGB8:
-      *pipe->destColorPtr++ = state->rgbTransferR[pipe->cSrc[0]];
-      *pipe->destColorPtr++ = state->rgbTransferG[pipe->cSrc[1]];
-      *pipe->destColorPtr++ = state->rgbTransferB[pipe->cSrc[2]];
-      break;
-    case splashModeXBGR8:
-      *pipe->destColorPtr++ = state->rgbTransferB[pipe->cSrc[2]];
-      *pipe->destColorPtr++ = state->rgbTransferG[pipe->cSrc[1]];
-      *pipe->destColorPtr++ = state->rgbTransferR[pipe->cSrc[0]];
-      *pipe->destColorPtr++ = 255;
-      break;
-    case splashModeBGR8:
-      *pipe->destColorPtr++ = state->rgbTransferB[pipe->cSrc[2]];
-      *pipe->destColorPtr++ = state->rgbTransferG[pipe->cSrc[1]];
-      *pipe->destColorPtr++ = state->rgbTransferR[pipe->cSrc[0]];
-      break;
-#if SPLASH_CMYK
-    case splashModeCMYK8:
-      if (state->overprintMask & 1) {
-	pipe->destColorPtr[0] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[0] + state->cmykTransferC[pipe->cSrc[0]], 255) :
-              state->cmykTransferC[pipe->cSrc[0]];
-      }
-      if (state->overprintMask & 2) {
-	pipe->destColorPtr[1] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[1] + state->cmykTransferM[pipe->cSrc[1]], 255) :
-              state->cmykTransferM[pipe->cSrc[1]];
-      }
-      if (state->overprintMask & 4) {
-	pipe->destColorPtr[2] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[2] + state->cmykTransferY[pipe->cSrc[2]], 255) :
-              state->cmykTransferY[pipe->cSrc[2]];
-      }
-      if (state->overprintMask & 8) {
-	pipe->destColorPtr[3] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[3] + state->cmykTransferK[pipe->cSrc[3]], 255) :
-              state->cmykTransferK[pipe->cSrc[3]];
-      }
-      pipe->destColorPtr += 4;
-      break;
-    case splashModeDeviceN8:
-      mask = 1;
-      for (cp = 0; cp < SPOT_NCOMPS + 4; cp ++) {
-        if (state->overprintMask & mask) {
-          pipe->destColorPtr[cp] = state->deviceNTransfer[cp][pipe->cSrc[cp]];
-        }
-        mask <<= 1;
-      }
-      pipe->destColorPtr += (SPOT_NCOMPS+4);
-      break;
-#endif
-    }
-    if (pipe->destAlphaPtr) {
-      *pipe->destAlphaPtr++ = 255;
-    }
-
-  } else {
-
-    //----- read destination pixel
-
-    Guchar *destColorPtr;
-    if (pipe->shape && state->blendFunc && pipe->knockout && alpha0Bitmap != NULL) {
-      destColorPtr = alpha0Bitmap->data + (alpha0Y+pipe->y)*alpha0Bitmap->rowSize;
-      switch (bitmap->mode) {
-        case splashModeMono1:
-          destColorPtr += (alpha0X+pipe->x) / 8;
-          break;
-        case splashModeMono8:
-          destColorPtr += (alpha0X+pipe->x);
-          break;
-        case splashModeRGB8:
-        case splashModeBGR8:
-          destColorPtr += (alpha0X+pipe->x) * 3;
-          break;
-        case splashModeXBGR8:
-#if SPLASH_CMYK
-        case splashModeCMYK8:
-#endif
-          destColorPtr += (alpha0X+pipe->x) * 4;
-          break;
-#if SPLASH_CMYK
-        case splashModeDeviceN8:
-          destColorPtr += (alpha0X+pipe->x) * (SPOT_NCOMPS + 4);
-          break;
-#endif
-      }
-    } else {
-      destColorPtr = pipe->destColorPtr;
-    }
-    switch (bitmap->mode) {
-    case splashModeMono1:
-      cDest[0] = (*destColorPtr & pipe->destColorMask) ? 0xff : 0x00;
-      break;
-    case splashModeMono8:
-      cDest[0] = *destColorPtr;
-      break;
-    case splashModeRGB8:
-      cDest[0] = destColorPtr[0];
-      cDest[1] = destColorPtr[1];
-      cDest[2] = destColorPtr[2];
-      break;
-    case splashModeXBGR8:
-      cDest[0] = destColorPtr[2];
-      cDest[1] = destColorPtr[1];
-      cDest[2] = destColorPtr[0];
-      cDest[3] = 255;
-      break;
-    case splashModeBGR8:
-      cDest[0] = destColorPtr[2];
-      cDest[1] = destColorPtr[1];
-      cDest[2] = destColorPtr[0];
-      break;
-#if SPLASH_CMYK
-    case splashModeCMYK8:
-      cDest[0] = destColorPtr[0];
-      cDest[1] = destColorPtr[1];
-      cDest[2] = destColorPtr[2];
-      cDest[3] = destColorPtr[3];
-      break;
-    case splashModeDeviceN8:
-      for (cp = 0; cp < SPOT_NCOMPS + 4; cp++)
-        cDest[cp] = destColorPtr[cp];
-      break;
-#endif
-    }
-    if (pipe->destAlphaPtr) {
-      aDest = *pipe->destAlphaPtr;
-    } else {
-      aDest = 0xff;
-    }
-
-    //----- source alpha
-
-    if (state->softMask) {
-      if (pipe->usesShape) {
-	aSrc = div255(div255(pipe->aInput * *pipe->softMaskPtr++) *
-		      pipe->shape);
-      } else {
-	aSrc = div255(pipe->aInput * *pipe->softMaskPtr++);
-      }
-    } else if (pipe->usesShape) {
-      aSrc = div255(pipe->aInput * pipe->shape);
-    } else {
-      aSrc = pipe->aInput;
-    }
-
-    //----- non-isolated group correction
-
-    if (pipe->nonIsolatedGroup) {
-      // This path is only used when Splash::composite() is called to
-      // composite a non-isolated group onto the backdrop.  In this
-      // case, pipe->shape is the source (group) alpha.
-      if (pipe->shape == 0) {
-	// this value will be multiplied by zero later, so it doesn't
-	// matter what we use
-	cSrc = pipe->cSrc;
-      } else {
-	t = (aDest * 255) / pipe->shape - aDest;
-	switch (bitmap->mode) {
-#if SPLASH_CMYK
-	case splashModeDeviceN8:
-	  for (cp = 0; cp < SPOT_NCOMPS + 4; cp++)
-	    cSrcNonIso[cp] = clip255(pipe->cSrc[cp] +
-				  ((pipe->cSrc[cp] - cDest[cp]) * t) / 255);
-	  break;
-	case splashModeCMYK8:
-	  for (cp = 0; cp < 4; cp++)
-	    cSrcNonIso[cp] = clip255(pipe->cSrc[cp] +
-				  ((pipe->cSrc[cp] - cDest[cp]) * t) / 255);
-	  break;
-#endif
-	case splashModeXBGR8:
-	  cSrcNonIso[3] = 255;
-	case splashModeRGB8:
-	case splashModeBGR8:
-	  cSrcNonIso[2] = clip255(pipe->cSrc[2] +
-				  ((pipe->cSrc[2] - cDest[2]) * t) / 255);
-	  cSrcNonIso[1] = clip255(pipe->cSrc[1] +
-				  ((pipe->cSrc[1] - cDest[1]) * t) / 255);
-	case splashModeMono1:
-	case splashModeMono8:
-	  cSrcNonIso[0] = clip255(pipe->cSrc[0] +
-				  ((pipe->cSrc[0] - cDest[0]) * t) / 255);
-	  break;
-	}
-	cSrc = cSrcNonIso;
-        // knockout: remove backdrop color
-        if (pipe->knockout && pipe->shape >= pipe->knockoutOpacity) {
-          aDest = 0;
-        }
-      }
-    } else {
-      cSrc = pipe->cSrc;
-    }
-
-    //----- blend function
-
-    if (state->blendFunc) {
-#if SPLASH_CMYK
-      if (bitmap->mode == splashModeDeviceN8) {
-        for (int k = 4; k < 4 + SPOT_NCOMPS; k++) {
-          cBlend[k] = 0;
-        }
-      }
-#endif
-      (*state->blendFunc)(cSrc, cDest, cBlend, bitmap->mode);
-    }
-
-    //----- result alpha and non-isolated group element correction
-
-    if (pipe->noTransparency) {
-      alphaI = alphaIm1 = aResult = 255;
-    } else {
-      aResult = aSrc + aDest - div255(aSrc * aDest);
-
-      // alphaI = alpha_i
-      // alphaIm1 = alpha_(i-1)
-      if (pipe->alpha0Ptr) {
-	alpha0 = *pipe->alpha0Ptr++;
-	alphaI = aResult + alpha0 - div255(aResult * alpha0);
-	alphaIm1 = alpha0 + aDest - div255(alpha0 * aDest);
-      } else {
-	alphaI = aResult;
-	alphaIm1 = aDest;
-      }
-    }
-
-    //----- result color
-
-    cResult0 = cResult1 = cResult2 = cResult3 = 0; // make gcc happy
-
-    switch (pipe->resultColorCtrl) {
-
-    case splashPipeResultColorNoAlphaBlendMono:
-      cResult0 = state->grayTransfer[div255((255 - aDest) * cSrc[0] +
-					    aDest * cBlend[0])];
-      break;
-    case splashPipeResultColorNoAlphaBlendRGB:
-      cResult0 = state->rgbTransferR[div255((255 - aDest) * cSrc[0] +
-					    aDest * cBlend[0])];
-      cResult1 = state->rgbTransferG[div255((255 - aDest) * cSrc[1] +
-					    aDest * cBlend[1])];
-      cResult2 = state->rgbTransferB[div255((255 - aDest) * cSrc[2] +
-					    aDest * cBlend[2])];
-      break;
-#if SPLASH_CMYK
-    case splashPipeResultColorNoAlphaBlendCMYK:
-      cResult0 = state->cmykTransferC[div255((255 - aDest) * cSrc[0] +
-					     aDest * cBlend[0])];
-      cResult1 = state->cmykTransferM[div255((255 - aDest) * cSrc[1] +
-					     aDest * cBlend[1])];
-      cResult2 = state->cmykTransferY[div255((255 - aDest) * cSrc[2] +
-					     aDest * cBlend[2])];
-      cResult3 = state->cmykTransferK[div255((255 - aDest) * cSrc[3] +
-					     aDest * cBlend[3])];
-      break;
-    case splashPipeResultColorNoAlphaBlendDeviceN:
-      for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
-        cResult[cp] = state->deviceNTransfer[cp][div255((255 - aDest) * cSrc[cp] +
-					     aDest * cBlend[cp])];
-      break;
-#endif
-
-    case splashPipeResultColorAlphaNoBlendMono:
-      if (alphaI == 0) {
-	cResult0 = 0;
-      } else {
-	cResult0 = state->grayTransfer[((alphaI - aSrc) * cDest[0] +
-					aSrc * cSrc[0]) / alphaI];
-      }
-      break;
-    case splashPipeResultColorAlphaNoBlendRGB:
-      if (alphaI == 0) {
-	cResult0 = 0;
-	cResult1 = 0;
-	cResult2 = 0;
-      } else {
-	cResult0 = state->rgbTransferR[((alphaI - aSrc) * cDest[0] +
-					aSrc * cSrc[0]) / alphaI];
-	cResult1 = state->rgbTransferG[((alphaI - aSrc) * cDest[1] +
-					aSrc * cSrc[1]) / alphaI];
-	cResult2 = state->rgbTransferB[((alphaI - aSrc) * cDest[2] +
-					aSrc * cSrc[2]) / alphaI];
-      }
-      break;
-#if SPLASH_CMYK
-    case splashPipeResultColorAlphaNoBlendCMYK:
-      if (alphaI == 0) {
-	cResult0 = 0;
-	cResult1 = 0;
-	cResult2 = 0;
-	cResult3 = 0;
-      } else {
-	cResult0 = state->cmykTransferC[((alphaI - aSrc) * cDest[0] +
-					 aSrc * cSrc[0]) / alphaI];
-	cResult1 = state->cmykTransferM[((alphaI - aSrc) * cDest[1] +
-					 aSrc * cSrc[1]) / alphaI];
-	cResult2 = state->cmykTransferY[((alphaI - aSrc) * cDest[2] +
-					 aSrc * cSrc[2]) / alphaI];
-	cResult3 = state->cmykTransferK[((alphaI - aSrc) * cDest[3] +
-					 aSrc * cSrc[3]) / alphaI];
-      }
-      break;
-    case splashPipeResultColorAlphaNoBlendDeviceN:
-      if (alphaI == 0) {
-        for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
-          cResult[cp] = 0;
-      } else {
-        for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
-          cResult[cp] = state->deviceNTransfer[cp][((alphaI - aSrc) * cDest[cp] +
-					 aSrc * cSrc[cp]) / alphaI];
-      }
-      break;
-#endif
-
-    case splashPipeResultColorAlphaBlendMono:
-      if (alphaI == 0) {
-	cResult0 = 0;
-      } else {
-	cResult0 = state->grayTransfer[((alphaI - aSrc) * cDest[0] +
-					aSrc * ((255 - alphaIm1) * cSrc[0] +
-						alphaIm1 * cBlend[0]) / 255) /
-				       alphaI];
-      }
-      break;
-    case splashPipeResultColorAlphaBlendRGB:
-      if (alphaI == 0) {
-	cResult0 = 0;
-	cResult1 = 0;
-	cResult2 = 0;
-      } else {
-	cResult0 = state->rgbTransferR[((alphaI - aSrc) * cDest[0] +
-					aSrc * ((255 - alphaIm1) * cSrc[0] +
-						alphaIm1 * cBlend[0]) / 255) /
-				       alphaI];
-	cResult1 = state->rgbTransferG[((alphaI - aSrc) * cDest[1] +
-					aSrc * ((255 - alphaIm1) * cSrc[1] +
-						alphaIm1 * cBlend[1]) / 255) /
-				       alphaI];
-	cResult2 = state->rgbTransferB[((alphaI - aSrc) * cDest[2] +
-					aSrc * ((255 - alphaIm1) * cSrc[2] +
-						alphaIm1 * cBlend[2]) / 255) /
-				       alphaI];
-      }
-      break;
-#if SPLASH_CMYK
-    case splashPipeResultColorAlphaBlendCMYK:
-      if (alphaI == 0) {
-	cResult0 = 0;
-	cResult1 = 0;
-	cResult2 = 0;
-	cResult3 = 0;
-      } else {
-	cResult0 = state->cmykTransferC[((alphaI - aSrc) * cDest[0] +
-					 aSrc * ((255 - alphaIm1) * cSrc[0] +
-						 alphaIm1 * cBlend[0]) / 255) /
-					alphaI];
-	cResult1 = state->cmykTransferM[((alphaI - aSrc) * cDest[1] +
-					 aSrc * ((255 - alphaIm1) * cSrc[1] +
-						 alphaIm1 * cBlend[1]) / 255) /
-					alphaI];
-	cResult2 = state->cmykTransferY[((alphaI - aSrc) * cDest[2] +
-					 aSrc * ((255 - alphaIm1) * cSrc[2] +
-						 alphaIm1 * cBlend[2]) / 255) /
-					alphaI];
-	cResult3 = state->cmykTransferK[((alphaI - aSrc) * cDest[3] +
-					 aSrc * ((255 - alphaIm1) * cSrc[3] +
-						 alphaIm1 * cBlend[3]) / 255) /
-					alphaI];
-      }
-      break;
-    case splashPipeResultColorAlphaBlendDeviceN:
-      if (alphaI == 0) {
-        for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
-          cResult[cp] = 0;
-      } else {
-        for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
-          cResult[cp] = state->deviceNTransfer[cp][((alphaI - aSrc) * cDest[cp] +
-            aSrc * ((255 - alphaIm1) * cSrc[cp] +
-						alphaIm1 * cBlend[cp]) / 255) /
-					  alphaI];
-      }
-      break;
-#endif
-    }
-
-    //----- write destination pixel
-
-    switch (bitmap->mode) {
-    case splashModeMono1:
-      if (state->screen->test(pipe->x, pipe->y, cResult0)) {
-	*pipe->destColorPtr |= pipe->destColorMask;
-      } else {
-	*pipe->destColorPtr &= ~pipe->destColorMask;
-      }
-      if (!(pipe->destColorMask >>= 1)) {
-	pipe->destColorMask = 0x80;
-	++pipe->destColorPtr;
-      }
-      break;
-    case splashModeMono8:
-      *pipe->destColorPtr++ = cResult0;
-      break;
-    case splashModeRGB8:
-      *pipe->destColorPtr++ = cResult0;
-      *pipe->destColorPtr++ = cResult1;
-      *pipe->destColorPtr++ = cResult2;
-      break;
-    case splashModeXBGR8:
-      *pipe->destColorPtr++ = cResult2;
-      *pipe->destColorPtr++ = cResult1;
-      *pipe->destColorPtr++ = cResult0;
-      *pipe->destColorPtr++ = 255;
-      break;
-    case splashModeBGR8:
-      *pipe->destColorPtr++ = cResult2;
-      *pipe->destColorPtr++ = cResult1;
-      *pipe->destColorPtr++ = cResult0;
-      break;
-#if SPLASH_CMYK
-    case splashModeCMYK8:
-      if (state->overprintMask & 1) {
-	pipe->destColorPtr[0] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[0] + cResult0, 255) :
-              cResult0;
-      }
-      if (state->overprintMask & 2) {
-	pipe->destColorPtr[1] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[1] + cResult1, 255) :
-              cResult1;
-      }
-      if (state->overprintMask & 4) {
-	pipe->destColorPtr[2] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[2] + cResult2, 255) :
-              cResult2;
-      }
-      if (state->overprintMask & 8) {
-	pipe->destColorPtr[3] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[3] + cResult3, 255) :
-              cResult3;
-      }
-      pipe->destColorPtr += 4;
-      break;
-    case splashModeDeviceN8:
-      mask = 1;
-      for (cp = 0; cp < SPOT_NCOMPS+4; cp++) {
-        if (state->overprintMask & mask) {
-          pipe->destColorPtr[cp] = cResult[cp];
-        }
-        mask <<=1;
-      }
-      pipe->destColorPtr += (SPOT_NCOMPS+4);
-      break;
-#endif
-    }
-    if (pipe->destAlphaPtr) {
-      *pipe->destAlphaPtr++ = aResult;
-    }
-
-  }
-
-  ++pipe->x;
-}
-
-// special case:
-// !pipe->pattern && pipe->noTransparency && !state->blendFunc &&
-// bitmap->mode == splashModeMono1 && !pipe->destAlphaPtr) {
-void Splash::pipeRunSimpleMono1(SplashPipe *pipe) {
-  Guchar cResult0;
-
-  //----- write destination pixel
-  cResult0 = state->grayTransfer[pipe->cSrc[0]];
-  if (state->screen->test(pipe->x, pipe->y, cResult0)) {
-    *pipe->destColorPtr |= pipe->destColorMask;
-  } else {
-    *pipe->destColorPtr &= ~pipe->destColorMask;
-  }
-  if (!(pipe->destColorMask >>= 1)) {
-    pipe->destColorMask = 0x80;
-    ++pipe->destColorPtr;
-  }
-
-  ++pipe->x;
-}
-
-// special case:
-// !pipe->pattern && pipe->noTransparency && !state->blendFunc &&
-// bitmap->mode == splashModeMono8 && pipe->destAlphaPtr) {
-void Splash::pipeRunSimpleMono8(SplashPipe *pipe) {
-  //----- write destination pixel
-  *pipe->destColorPtr++ = state->grayTransfer[pipe->cSrc[0]];
-  *pipe->destAlphaPtr++ = 255;
-
-  ++pipe->x;
-}
-
-// special case:
-// !pipe->pattern && pipe->noTransparency && !state->blendFunc &&
-// bitmap->mode == splashModeRGB8 && pipe->destAlphaPtr) {
-void Splash::pipeRunSimpleRGB8(SplashPipe *pipe) {
-  //----- write destination pixel
-  *pipe->destColorPtr++ = state->rgbTransferR[pipe->cSrc[0]];
-  *pipe->destColorPtr++ = state->rgbTransferG[pipe->cSrc[1]];
-  *pipe->destColorPtr++ = state->rgbTransferB[pipe->cSrc[2]];
-  *pipe->destAlphaPtr++ = 255;
-
-  ++pipe->x;
-}
-
-// special case:
-// !pipe->pattern && pipe->noTransparency && !state->blendFunc &&
-// bitmap->mode == splashModeXBGR8 && pipe->destAlphaPtr) {
-void Splash::pipeRunSimpleXBGR8(SplashPipe *pipe) {
-  //----- write destination pixel
-  *pipe->destColorPtr++ = state->rgbTransferB[pipe->cSrc[2]];
-  *pipe->destColorPtr++ = state->rgbTransferG[pipe->cSrc[1]];
-  *pipe->destColorPtr++ = state->rgbTransferR[pipe->cSrc[0]];
-  *pipe->destColorPtr++ = 255;
-  *pipe->destAlphaPtr++ = 255;
-
-  ++pipe->x;
-}
-
-// special case:
-// !pipe->pattern && pipe->noTransparency && !state->blendFunc &&
-// bitmap->mode == splashModeBGR8 && pipe->destAlphaPtr) {
-void Splash::pipeRunSimpleBGR8(SplashPipe *pipe) {
-  //----- write destination pixel
-  *pipe->destColorPtr++ = state->rgbTransferB[pipe->cSrc[2]];
-  *pipe->destColorPtr++ = state->rgbTransferG[pipe->cSrc[1]];
-  *pipe->destColorPtr++ = state->rgbTransferR[pipe->cSrc[0]];
-  *pipe->destAlphaPtr++ = 255;
-
-  ++pipe->x;
-}
-
-#if SPLASH_CMYK
-// special case:
-// !pipe->pattern && pipe->noTransparency && !state->blendFunc &&
-// bitmap->mode == splashModeCMYK8 && pipe->destAlphaPtr) {
-void Splash::pipeRunSimpleCMYK8(SplashPipe *pipe) {
-  //----- write destination pixel
-  if (state->overprintMask & 1) {
-    pipe->destColorPtr[0] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[0] + state->cmykTransferC[pipe->cSrc[0]], 255) :
-              state->cmykTransferC[pipe->cSrc[0]];
-  }
-  if (state->overprintMask & 2) {
-    pipe->destColorPtr[1] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[1] + state->cmykTransferM[pipe->cSrc[1]], 255) :
-              state->cmykTransferM[pipe->cSrc[1]];
-  }
-  if (state->overprintMask & 4) {
-    pipe->destColorPtr[2] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[2] + state->cmykTransferY[pipe->cSrc[2]], 255) :
-              state->cmykTransferY[pipe->cSrc[2]];
-  }
-  if (state->overprintMask & 8) {
-    pipe->destColorPtr[3] = (state->overprintAdditive) ? 
-              std::min<int>(pipe->destColorPtr[3] + state->cmykTransferK[pipe->cSrc[3]], 255) :
-              state->cmykTransferK[pipe->cSrc[3]];
-  }
-  pipe->destColorPtr += 4;
-  *pipe->destAlphaPtr++ = 255;
-
-  ++pipe->x;
-}
-
-// special case:
-// !pipe->pattern && pipe->noTransparency && !state->blendFunc &&
-// bitmap->mode == splashModeDeviceN8 && pipe->destAlphaPtr) {
-void Splash::pipeRunSimpleDeviceN8(SplashPipe *pipe) {
-  //----- write destination pixel
-  int mask = 1;
-  for (int cp = 0; cp < SPOT_NCOMPS+4; cp++) {
-    if (state->overprintMask & mask) {
-      pipe->destColorPtr[cp] = state->deviceNTransfer[cp][pipe->cSrc[cp]];
-    }
-    mask <<=1;
-  }
-  pipe->destColorPtr += (SPOT_NCOMPS+4);
-  *pipe->destAlphaPtr++ = 255;
-
-  ++pipe->x;
-}
-#endif
-
-// special case:
-// !pipe->pattern && !pipe->noTransparency && !state->softMask &&
-// pipe->usesShape && !pipe->alpha0Ptr && !state->blendFunc &&
-// !pipe->nonIsolatedGroup &&
-// bitmap->mode == splashModeMono1 && !pipe->destAlphaPtr
-void Splash::pipeRunAAMono1(SplashPipe *pipe) {
-  Guchar aSrc;
-  SplashColor cDest;
-  Guchar cResult0;
-
-  //----- read destination pixel
-  cDest[0] = (*pipe->destColorPtr & pipe->destColorMask) ? 0xff : 0x00;
-
-  //----- source alpha
-  aSrc = div255(pipe->aInput * pipe->shape);
-
-  //----- result color
-  // note: aDest = alpha2 = aResult = 0xff
-  cResult0 = state->grayTransfer[(Guchar)div255((0xff - aSrc) * cDest[0] +
-						aSrc * pipe->cSrc[0])];
-
-  //----- write destination pixel
-  if (state->screen->test(pipe->x, pipe->y, cResult0)) {
-    *pipe->destColorPtr |= pipe->destColorMask;
-  } else {
-    *pipe->destColorPtr &= ~pipe->destColorMask;
-  }
-  if (!(pipe->destColorMask >>= 1)) {
-    pipe->destColorMask = 0x80;
-    ++pipe->destColorPtr;
-  }
-
-  ++pipe->x;
-}
-
-// special case:
-// !pipe->pattern && !pipe->noTransparency && !state->softMask &&
-// pipe->usesShape && !pipe->alpha0Ptr && !state->blendFunc &&
-// !pipe->nonIsolatedGroup &&
-// bitmap->mode == splashModeMono8 && pipe->destAlphaPtr
-void Splash::pipeRunAAMono8(SplashPipe *pipe) {
-  Guchar aSrc, aDest, alpha2, aResult;
-  SplashColor cDest;
-  Guchar cResult0;
-
-  //----- read destination pixel
-  cDest[0] = *pipe->destColorPtr;
-  aDest = *pipe->destAlphaPtr;
-
-  //----- source alpha
-  aSrc = div255(pipe->aInput * pipe->shape);
-
-  //----- result alpha and non-isolated group element correction
-  aResult = aSrc + aDest - div255(aSrc * aDest);
-  alpha2 = aResult;
-
-  //----- result color
-  if (alpha2 == 0) {
-    cResult0 = 0;
-  } else {
-    cResult0 = state->grayTransfer[(Guchar)(((alpha2 - aSrc) * cDest[0] +
-					     aSrc * pipe->cSrc[0]) / alpha2)];
-  }
-
-  //----- write destination pixel
-  *pipe->destColorPtr++ = cResult0;
-  *pipe->destAlphaPtr++ = aResult;
-
-  ++pipe->x;
-}
-
-// special case:
-// !pipe->pattern && !pipe->noTransparency && !state->softMask &&
-// pipe->usesShape && !pipe->alpha0Ptr && !state->blendFunc &&
-// !pipe->nonIsolatedGroup &&
-// bitmap->mode == splashModeRGB8 && pipe->destAlphaPtr
-void Splash::pipeRunAARGB8(SplashPipe *pipe) {
-  Guchar aSrc, aDest, alpha2, aResult;
-  SplashColor cDest;
-  Guchar cResult0, cResult1, cResult2;
-
-  //----- read destination pixel
-  cDest[0] = pipe->destColorPtr[0];
-  cDest[1] = pipe->destColorPtr[1];
-  cDest[2] = pipe->destColorPtr[2];
-  aDest = *pipe->destAlphaPtr;
-
-  //----- source alpha
-  aSrc = div255(pipe->aInput * pipe->shape);
-
-  //----- result alpha and non-isolated group element correction
-  aResult = aSrc + aDest - div255(aSrc * aDest);
-  alpha2 = aResult;
-
-  //----- result color
-  if (alpha2 == 0) {
-    cResult0 = 0;
-    cResult1 = 0;
-    cResult2 = 0;
-  } else {
-    cResult0 = state->rgbTransferR[(Guchar)(((alpha2 - aSrc) * cDest[0] +
-					     aSrc * pipe->cSrc[0]) / alpha2)];
-    cResult1 = state->rgbTransferG[(Guchar)(((alpha2 - aSrc) * cDest[1] +
-					     aSrc * pipe->cSrc[1]) / alpha2)];
-    cResult2 = state->rgbTransferB[(Guchar)(((alpha2 - aSrc) * cDest[2] +
-					     aSrc * pipe->cSrc[2]) / alpha2)];
-  }
-
-  //----- write destination pixel
-  *pipe->destColorPtr++ = cResult0;
-  *pipe->destColorPtr++ = cResult1;
-  *pipe->destColorPtr++ = cResult2;
-  *pipe->destAlphaPtr++ = aResult;
-
-  ++pipe->x;
-}
-
-// special case:
-// !pipe->pattern && !pipe->noTransparency && !state->softMask &&
-// pipe->usesShape && !pipe->alpha0Ptr && !state->blendFunc &&
-// !pipe->nonIsolatedGroup &&
-// bitmap->mode == splashModeXBGR8 && pipe->destAlphaPtr
-void Splash::pipeRunAAXBGR8(SplashPipe *pipe) {
-  Guchar aSrc, aDest, alpha2, aResult;
-  SplashColor cDest;
-  Guchar cResult0, cResult1, cResult2;
-
-  //----- read destination pixel
-  cDest[0] = pipe->destColorPtr[2];
-  cDest[1] = pipe->destColorPtr[1];
-  cDest[2] = pipe->destColorPtr[0];
-  aDest = *pipe->destAlphaPtr;
-
-  //----- source alpha
-  aSrc = div255(pipe->aInput * pipe->shape);
-
-  //----- result alpha and non-isolated group element correction
-  aResult = aSrc + aDest - div255(aSrc * aDest);
-  alpha2 = aResult;
-
-  //----- result color
-  if (alpha2 == 0) {
-    cResult0 = 0;
-    cResult1 = 0;
-    cResult2 = 0;
-  } else {
-    cResult0 = state->rgbTransferR[(Guchar)(((alpha2 - aSrc) * cDest[0] +
-					     aSrc * pipe->cSrc[0]) / alpha2)];
-    cResult1 = state->rgbTransferG[(Guchar)(((alpha2 - aSrc) * cDest[1] +
-					     aSrc * pipe->cSrc[1]) / alpha2)];
-    cResult2 = state->rgbTransferB[(Guchar)(((alpha2 - aSrc) * cDest[2] +
-					     aSrc * pipe->cSrc[2]) / alpha2)];
-  }
-
-  //----- write destination pixel
-  *pipe->destColorPtr++ = cResult2;
-  *pipe->destColorPtr++ = cResult1;
-  *pipe->destColorPtr++ = cResult0;
-  *pipe->destColorPtr++ = 255;
-  *pipe->destAlphaPtr++ = aResult;
-
-  ++pipe->x;
-}
-
-// special case:
-// !pipe->pattern && !pipe->noTransparency && !state->softMask &&
-// pipe->usesShape && !pipe->alpha0Ptr && !state->blendFunc &&
-// !pipe->nonIsolatedGroup &&
-// bitmap->mode == splashModeBGR8 && pipe->destAlphaPtr
-void Splash::pipeRunAABGR8(SplashPipe *pipe) {
-  Guchar aSrc, aDest, alpha2, aResult;
-  SplashColor cDest;
-  Guchar cResult0, cResult1, cResult2;
-
-  //----- read destination pixel
-  cDest[0] = pipe->destColorPtr[2];
-  cDest[1] = pipe->destColorPtr[1];
-  cDest[2] = pipe->destColorPtr[0];
-  aDest = *pipe->destAlphaPtr;
-
-  //----- source alpha
-  aSrc = div255(pipe->aInput * pipe->shape);
-
-  //----- result alpha and non-isolated group element correction
-  aResult = aSrc + aDest - div255(aSrc * aDest);
-  alpha2 = aResult;
-
-  //----- result color
-  if (alpha2 == 0) {
-    cResult0 = 0;
-    cResult1 = 0;
-    cResult2 = 0;
-  } else {
-    cResult0 = state->rgbTransferR[(Guchar)(((alpha2 - aSrc) * cDest[0] +
-					     aSrc * pipe->cSrc[0]) / alpha2)];
-    cResult1 = state->rgbTransferG[(Guchar)(((alpha2 - aSrc) * cDest[1] +
-					     aSrc * pipe->cSrc[1]) / alpha2)];
-    cResult2 = state->rgbTransferB[(Guchar)(((alpha2 - aSrc) * cDest[2] +
-					     aSrc * pipe->cSrc[2]) / alpha2)];
-  }
-
-  //----- write destination pixel
-  *pipe->destColorPtr++ = cResult2;
-  *pipe->destColorPtr++ = cResult1;
-  *pipe->destColorPtr++ = cResult0;
-  *pipe->destAlphaPtr++ = aResult;
-
-  ++pipe->x;
-}
-
-#if SPLASH_CMYK
-// special case:
-// !pipe->pattern && !pipe->noTransparency && !state->softMask &&
-// pipe->usesShape && !pipe->alpha0Ptr && !state->blendFunc &&
-// !pipe->nonIsolatedGroup &&
-// bitmap->mode == splashModeCMYK8 && pipe->destAlphaPtr
-void Splash::pipeRunAACMYK8(SplashPipe *pipe) {
-  Guchar aSrc, aDest, alpha2, aResult;
-  SplashColor cDest;
-  Guchar cResult0, cResult1, cResult2, cResult3;
-
-  //----- read destination pixel
-  cDest[0] = pipe->destColorPtr[0];
-  cDest[1] = pipe->destColorPtr[1];
-  cDest[2] = pipe->destColorPtr[2];
-  cDest[3] = pipe->destColorPtr[3];
-  aDest = *pipe->destAlphaPtr;
-
-  //----- source alpha
-  aSrc = div255(pipe->aInput * pipe->shape);
-
-  //----- result alpha and non-isolated group element correction
-  aResult = aSrc + aDest - div255(aSrc * aDest);
-  alpha2 = aResult;
-
-  //----- result color
-  if (alpha2 == 0) {
-    cResult0 = 0;
-    cResult1 = 0;
-    cResult2 = 0;
-    cResult3 = 0;
-  } else {
-    cResult0 = state->cmykTransferC[(Guchar)(((alpha2 - aSrc) * cDest[0] +
-					      aSrc * pipe->cSrc[0]) / alpha2)];
-    cResult1 = state->cmykTransferM[(Guchar)(((alpha2 - aSrc) * cDest[1] +
-					      aSrc * pipe->cSrc[1]) / alpha2)];
-    cResult2 = state->cmykTransferY[(Guchar)(((alpha2 - aSrc) * cDest[2] +
-					      aSrc * pipe->cSrc[2]) / alpha2)];
-    cResult3 = state->cmykTransferK[(Guchar)(((alpha2 - aSrc) * cDest[3] +
-					      aSrc * pipe->cSrc[3]) / alpha2)];
-  }
-
-  //----- write destination pixel
-  if (state->overprintMask & 1) {
-    pipe->destColorPtr[0] = (state->overprintAdditive && pipe->shape != 0) ? 
-              std::min<int>(pipe->destColorPtr[0] + cResult0, 255) :
-              cResult0;
-  }
-  if (state->overprintMask & 2) {
-    pipe->destColorPtr[1] = (state->overprintAdditive && pipe->shape != 0) ? 
-              std::min<int>(pipe->destColorPtr[1] + cResult1, 255) :
-              cResult1;
-  }
-  if (state->overprintMask & 4) {
-    pipe->destColorPtr[2] = (state->overprintAdditive && pipe->shape != 0) ? 
-              std::min<int>(pipe->destColorPtr[2] + cResult2, 255) :
-              cResult2;
-  }
-  if (state->overprintMask & 8) {
-    pipe->destColorPtr[3] = (state->overprintAdditive && pipe->shape != 0) ? 
-              std::min<int>(pipe->destColorPtr[3] + cResult3, 255) :
-              cResult3;
-  }
-  pipe->destColorPtr += 4;
-  *pipe->destAlphaPtr++ = aResult;
-
-  ++pipe->x;
-}
-
-// special case:
-// !pipe->pattern && !pipe->noTransparency && !state->softMask &&
-// pipe->usesShape && !pipe->alpha0Ptr && !state->blendFunc &&
-// !pipe->nonIsolatedGroup &&
-// bitmap->mode == splashModeDeviceN8 && pipe->destAlphaPtr
-void Splash::pipeRunAADeviceN8(SplashPipe *pipe) {
-  Guchar aSrc, aDest, alpha2, aResult;
-  SplashColor cDest;
-  Guchar cResult[SPOT_NCOMPS+4];
-  int cp, mask;
-
-  //----- read destination pixel
-  for (cp=0; cp < SPOT_NCOMPS+4; cp++)
-    cDest[cp] = pipe->destColorPtr[cp];
-  aDest = *pipe->destAlphaPtr;
-
-  //----- source alpha
-  aSrc = div255(pipe->aInput * pipe->shape);
-
-  //----- result alpha and non-isolated group element correction
-  aResult = aSrc + aDest - div255(aSrc * aDest);
-  alpha2 = aResult;
-
-  //----- result color
-  if (alpha2 == 0) {
-    for (cp=0; cp < SPOT_NCOMPS+4; cp++)
-      cResult[cp] = 0;
-  } else {
-    for (cp=0; cp < SPOT_NCOMPS+4; cp++)
-      cResult[cp] = state->deviceNTransfer[cp][(Guchar)(((alpha2 - aSrc) * cDest[cp] +
-					      aSrc * pipe->cSrc[cp]) / alpha2)];
-  }
-
-  //----- write destination pixel
-  mask = 1;
-  for (cp=0; cp < SPOT_NCOMPS+4; cp++) {
-    if (state->overprintMask & mask) {
-      pipe->destColorPtr[cp] = cResult[cp];
-    }
-    mask <<= 1;
-  }
-  pipe->destColorPtr += (SPOT_NCOMPS+4);
-  *pipe->destAlphaPtr++ = aResult;
-
-  ++pipe->x;
-}
-#endif
-
-inline void Splash::pipeSetXY(SplashPipe *pipe, int x, int y) {
-  pipe->x = x;
-  pipe->y = y;
-  if (state->softMask) {
-    pipe->softMaskPtr =
-        &state->softMask->data[y * state->softMask->rowSize + x];
-  }
-  switch (bitmap->mode) {
-  case splashModeMono1:
-    pipe->destColorPtr = &bitmap->data[y * bitmap->rowSize + (x >> 3)];
-    pipe->destColorMask = 0x80 >> (x & 7);
-    break;
-  case splashModeMono8:
-    pipe->destColorPtr = &bitmap->data[y * bitmap->rowSize + x];
-    break;
-  case splashModeRGB8:
-  case splashModeBGR8:
-    pipe->destColorPtr = &bitmap->data[y * bitmap->rowSize + 3 * x];
-    break;
-  case splashModeXBGR8:
-    pipe->destColorPtr = &bitmap->data[y * bitmap->rowSize + 4 * x];
-    break;
-#if SPLASH_CMYK
-  case splashModeCMYK8:
-    pipe->destColorPtr = &bitmap->data[y * bitmap->rowSize + 4 * x];
-    break;
-  case splashModeDeviceN8:
-    pipe->destColorPtr = &bitmap->data[y * bitmap->rowSize + (SPOT_NCOMPS + 4) * x];
-    break;
-#endif
-  }
-  if (bitmap->alpha) {
-    pipe->destAlphaPtr = &bitmap->alpha[y * bitmap->width + x];
-  } else {
-    pipe->destAlphaPtr = NULL;
-  }
-  if (state->inNonIsolatedGroup && alpha0Bitmap->alpha) {
-    pipe->alpha0Ptr =
-        &alpha0Bitmap->alpha[(alpha0Y + y) * alpha0Bitmap->width +
-			     (alpha0X + x)];
-  } else {
-    pipe->alpha0Ptr = NULL;
-  }
-}
-
-inline void Splash::pipeIncX(SplashPipe *pipe) {
-  ++pipe->x;
-  if (state->softMask) {
-    ++pipe->softMaskPtr;
-  }
-  switch (bitmap->mode) {
-  case splashModeMono1:
-    if (!(pipe->destColorMask >>= 1)) {
-      pipe->destColorMask = 0x80;
-      ++pipe->destColorPtr;
-    }
-    break;
-  case splashModeMono8:
-    ++pipe->destColorPtr;
-    break;
-  case splashModeRGB8:
-  case splashModeBGR8:
-    pipe->destColorPtr += 3;
-    break;
-  case splashModeXBGR8:
-    pipe->destColorPtr += 4;
-    break;
-#if SPLASH_CMYK
-  case splashModeCMYK8:
-    pipe->destColorPtr += 4;
-    break;
-  case splashModeDeviceN8:
-    pipe->destColorPtr += (SPOT_NCOMPS+4);
-    break;
-#endif
-  }
-  if (pipe->destAlphaPtr) {
-    ++pipe->destAlphaPtr;
-  }
-  if (pipe->alpha0Ptr) {
-    ++pipe->alpha0Ptr;
-  }
-}
-
-inline void Splash::drawPixel(SplashPipe *pipe, int x, int y, GBool noClip) {
-  if (unlikely(y < 0))
-    return;
-
-  if (noClip || state->clip->test(x, y)) {
-    pipeSetXY(pipe, x, y);
-    (this->*pipe->run)(pipe);
-    updateModX(x);
-    updateModY(y);
-  }
-}
-
-inline void Splash::drawAAPixelInit() {
-  aaBufY = -1;
-}
-
-inline void Splash::drawAAPixel(SplashPipe *pipe, int x, int y) {
-#if splashAASize == 4
-  static int bitCount4[16] = { 0, 1, 1, 2, 1, 2, 2, 3,
-			       1, 2, 2, 3, 2, 3, 3, 4 };
-  int w;
-#else
-  int xx, yy;
-#endif
-  SplashColorPtr p;
-  int x0, x1, t;
-
-  if (x < 0 || x >= bitmap->width ||
-      y < state->clip->getYMinI() || y > state->clip->getYMaxI()) {
-    return;
-  }
-
-  // update aaBuf
-  if (y != aaBufY) {
-    memset(aaBuf->getDataPtr(), 0xff,
-	   aaBuf->getRowSize() * aaBuf->getHeight());
-    x0 = 0;
-    x1 = bitmap->width - 1;
-    state->clip->clipAALine(aaBuf, &x0, &x1, y);
-    aaBufY = y;
-  }
-
-  // compute the shape value
-#if splashAASize == 4
-  p = aaBuf->getDataPtr() + (x >> 1);
-  w = aaBuf->getRowSize();
-  if (x & 1) {
-    t = bitCount4[*p & 0x0f] + bitCount4[p[w] & 0x0f] +
-        bitCount4[p[2*w] & 0x0f] + bitCount4[p[3*w] & 0x0f];
-  } else {
-    t = bitCount4[*p >> 4] + bitCount4[p[w] >> 4] +
-        bitCount4[p[2*w] >> 4] + bitCount4[p[3*w] >> 4];
-  }
-#else
-  t = 0;
-  for (yy = 0; yy < splashAASize; ++yy) {
-    for (xx = 0; xx < splashAASize; ++xx) {
-      p = aaBuf->getDataPtr() + yy * aaBuf->getRowSize() +
-	  ((x * splashAASize + xx) >> 3);
-      t += (*p >> (7 - ((x * splashAASize + xx) & 7))) & 1;
-    }
-  }
-#endif
-
-  // draw the pixel
-  if (t != 0) {
-    pipeSetXY(pipe, x, y);
-    pipe->shape = div255(aaGamma[t] * pipe->shape);
-    (this->*pipe->run)(pipe);
-    updateModX(x);
-    updateModY(y);
-  }
-}
-
-inline void Splash::drawSpan(SplashPipe *pipe, int x0, int x1, int y,
-			     GBool noClip) {
-  int x;
-
-  if (noClip) {
-    pipeSetXY(pipe, x0, y);
-    for (x = x0; x <= x1; ++x) {
-      (this->*pipe->run)(pipe);
-    }
-    updateModX(x0);
-    updateModX(x1);
-    updateModY(y);
-  } else {
-    if (x0 < state->clip->getXMinI()) {
-      x0 = state->clip->getXMinI();
-    }
-    if (x1 > state->clip->getXMaxI()) {
-      x1 = state->clip->getXMaxI();
-    }
-    pipeSetXY(pipe, x0, y);
-    for (x = x0; x <= x1; ++x) {
-      if (state->clip->test(x, y)) {
-	(this->*pipe->run)(pipe);
-	updateModX(x);
-	updateModY(y);
-      } else {
-	pipeIncX(pipe);
-      }
-    }
-  }
-}
-
-inline void Splash::drawAALine(SplashPipe *pipe, int x0, int x1, int y, GBool adjustLine, Guchar lineOpacity) {
-#if splashAASize == 4
-  static int bitCount4[16] = { 0, 1, 1, 2, 1, 2, 2, 3,
-			       1, 2, 2, 3, 2, 3, 3, 4 };
-  SplashColorPtr p0, p1, p2, p3;
-  int t;
-#else
-  SplashColorPtr p;
-  int xx, yy, t;
-#endif
-  int x;
-
-#if splashAASize == 4
-  p0 = aaBuf->getDataPtr() + (x0 >> 1);
-  p1 = p0 + aaBuf->getRowSize();
-  p2 = p1 + aaBuf->getRowSize();
-  p3 = p2 + aaBuf->getRowSize();
-#endif
-  pipeSetXY(pipe, x0, y);
-  for (x = x0; x <= x1; ++x) {
-
-    // compute the shape value
-#if splashAASize == 4
-    if (x & 1) {
-      t = bitCount4[*p0 & 0x0f] + bitCount4[*p1 & 0x0f] +
-	  bitCount4[*p2 & 0x0f] + bitCount4[*p3 & 0x0f];
-      ++p0; ++p1; ++p2; ++p3;
-    } else {
-      t = bitCount4[*p0 >> 4] + bitCount4[*p1 >> 4] +
-	  bitCount4[*p2 >> 4] + bitCount4[*p3 >> 4];
-    }
-#else
-    t = 0;
-    for (yy = 0; yy < splashAASize; ++yy) {
-      for (xx = 0; xx < splashAASize; ++xx) {
-	p = aaBuf->getDataPtr() + yy * aaBuf->getRowSize() +
-	    ((x * splashAASize + xx) >> 3);
-	t += (*p >> (7 - ((x * splashAASize + xx) & 7))) & 1;
-      }
-    }
-#endif
-
-    if (t != 0) {
-      pipe->shape = (adjustLine) ? div255((int) lineOpacity * (double)aaGamma[t]) : (double)aaGamma[t];
-      (this->*pipe->run)(pipe);
-      updateModX(x);
-      updateModY(y);
-    } else {
-      pipeIncX(pipe);
-    }
-  }
-}
-
-//------------------------------------------------------------------------
-
-// Transform a point from user space to device space.
-inline void Splash::transform(SplashCoord *matrix,
-			      SplashCoord xi, SplashCoord yi,
-			      SplashCoord *xo, SplashCoord *yo) {
-  //                          [ m[0] m[1] 0 ]
-  // [xo yo 1] = [xi yi 1] *  [ m[2] m[3] 0 ]
-  //                          [ m[4] m[5] 1 ]
-  *xo = xi * matrix[0] + yi * matrix[2] + matrix[4];
-  *yo = xi * matrix[1] + yi * matrix[3] + matrix[5];
-}
-
-//------------------------------------------------------------------------
-// Splash
-//------------------------------------------------------------------------
-
-Splash::Splash(SplashBitmap *bitmapA, GBool vectorAntialiasA,
-	       SplashScreenParams *screenParams) {
-  int i;
-
-  bitmap = bitmapA;
-  vectorAntialias = vectorAntialiasA;
-  inShading = gFalse;
-  state = new SplashState(bitmap->width, bitmap->height, vectorAntialias,
-			  screenParams);
-  if (vectorAntialias) {
-    aaBuf = new SplashBitmap(splashAASize * bitmap->width, splashAASize,
-			     1, splashModeMono1, gFalse);
-    for (i = 0; i <= splashAASize * splashAASize; ++i) {
-      aaGamma[i] = (Guchar)splashRound(
-		       splashPow((SplashCoord)i /
-				 (SplashCoord)(splashAASize * splashAASize),
-				 splashAAGamma) * 255);
-    }
-  } else {
-    aaBuf = NULL;
-  }
-  minLineWidth = 0;
-  thinLineMode = splashThinLineDefault;
-  clearModRegion();
-  debugMode = gFalse;
-  alpha0Bitmap = NULL;
-}
-
-Splash::Splash(SplashBitmap *bitmapA, GBool vectorAntialiasA,
-	       SplashScreen *screenA) {
-  int i;
-
-  bitmap = bitmapA;
-  inShading = gFalse;
-  vectorAntialias = vectorAntialiasA;
-  state = new SplashState(bitmap->width, bitmap->height, vectorAntialias,
-			  screenA);
-  if (vectorAntialias) {
-    aaBuf = new SplashBitmap(splashAASize * bitmap->width, splashAASize,
-			     1, splashModeMono1, gFalse);
-    for (i = 0; i <= splashAASize * splashAASize; ++i) {
-      aaGamma[i] = (Guchar)splashRound(
-		       splashPow((SplashCoord)i /
-				 (SplashCoord)(splashAASize * splashAASize),
-				 splashAAGamma) * 255);
-    }
-  } else {
-    aaBuf = NULL;
-  }
-  minLineWidth = 0;
-  thinLineMode = splashThinLineDefault;
-  clearModRegion();
-  debugMode = gFalse;
-  alpha0Bitmap = NULL;
-}
-
-Splash::~Splash() {
-  while (state->next) {
-    restoreState();
-  }
-  delete state;
-  delete aaBuf;
-}
-
-//------------------------------------------------------------------------
-// state read
-//------------------------------------------------------------------------
-
-SplashCoord *Splash::getMatrix() {
-  return state->matrix;
-}
-
-SplashPattern *Splash::getStrokePattern() {
-  return state->strokePattern;
-}
-
-SplashPattern *Splash::getFillPattern() {
-  return state->fillPattern;
-}
-
-SplashScreen *Splash::getScreen() {
-  return state->screen;
-}
-
-SplashBlendFunc Splash::getBlendFunc() {
-  return state->blendFunc;
-}
-
-SplashCoord Splash::getStrokeAlpha() {
-  return state->strokeAlpha;
-}
-
-SplashCoord Splash::getFillAlpha() {
-  return state->fillAlpha;
-}
-
-SplashCoord Splash::getLineWidth() {
-  return state->lineWidth;
-}
-
-int Splash::getLineCap() {
-  return state->lineCap;
-}
-
-int Splash::getLineJoin() {
-  return state->lineJoin;
-}
-
-SplashCoord Splash::getMiterLimit() {
-  return state->miterLimit;
-}
-
-SplashCoord Splash::getFlatness() {
-  return state->flatness;
-}
-
-SplashCoord *Splash::getLineDash() {
-  return state->lineDash;
-}
-
-int Splash::getLineDashLength() {
-  return state->lineDashLength;
-}
-
-SplashCoord Splash::getLineDashPhase() {
-  return state->lineDashPhase;
-}
-
-GBool Splash::getStrokeAdjust() {
-  return state->strokeAdjust;
-}
-
-SplashClip *Splash::getClip() {
-  return state->clip;
-}
-
-SplashBitmap *Splash::getSoftMask() {
-  return state->softMask;
-}
-
-GBool Splash::getInNonIsolatedGroup() {
-  return state->inNonIsolatedGroup;
-}
-
-//------------------------------------------------------------------------
-// state write
-//------------------------------------------------------------------------
-
-void Splash::setMatrix(SplashCoord *matrix) {
-  memcpy(state->matrix, matrix, 6 * sizeof(SplashCoord));
-}
-
-void Splash::setStrokePattern(SplashPattern *strokePattern) {
-  state->setStrokePattern(strokePattern);
-}
-
-void Splash::setFillPattern(SplashPattern *fillPattern) {
-  state->setFillPattern(fillPattern);
-}
-
-void Splash::setScreen(SplashScreen *screen) {
-  state->setScreen(screen);
-}
-
-void Splash::setBlendFunc(SplashBlendFunc func) {
-  state->blendFunc = func;
-}
-
-void Splash::setStrokeAlpha(SplashCoord alpha) {
-  state->strokeAlpha = (state->multiplyPatternAlpha) ? alpha *  state->patternStrokeAlpha : alpha;
-}
-
-void Splash::setFillAlpha(SplashCoord alpha) {
-  state->fillAlpha = (state->multiplyPatternAlpha) ? alpha *  state->patternFillAlpha : alpha;
-}
-
-void Splash::setPatternAlpha(SplashCoord strokeAlpha, SplashCoord fillAlpha) {
-  state->patternStrokeAlpha = strokeAlpha;
-  state->patternFillAlpha = fillAlpha;
-  state->multiplyPatternAlpha = gTrue;
-}
-
-void Splash::clearPatternAlpha() {
-  state->patternStrokeAlpha = 1;
-  state->patternFillAlpha = 1;
-  state->multiplyPatternAlpha = gFalse;
-}
-
-void Splash::setFillOverprint(GBool fop) {
-  state->fillOverprint = fop;
-}
-
-void Splash::setStrokeOverprint(GBool gop) {
-  state->strokeOverprint = gop;
-}
-
-void Splash::setOverprintMode(int opm) {
-  state->overprintMode = opm;
-}
-
-void Splash::setLineWidth(SplashCoord lineWidth) {
-  state->lineWidth = lineWidth;
-}
-
-void Splash::setLineCap(int lineCap) {
-  state->lineCap = lineCap;
-}
-
-void Splash::setLineJoin(int lineJoin) {
-  state->lineJoin = lineJoin;
-}
-
-void Splash::setMiterLimit(SplashCoord miterLimit) {
-  state->miterLimit = miterLimit;
-}
-
-void Splash::setFlatness(SplashCoord flatness) {
-  if (flatness < 1) {
-    state->flatness = 1;
-  } else {
-    state->flatness = flatness;
-  }
-}
-
-void Splash::setLineDash(SplashCoord *lineDash, int lineDashLength,
-			 SplashCoord lineDashPhase) {
-  state->setLineDash(lineDash, lineDashLength, lineDashPhase);
-}
-
-void Splash::setStrokeAdjust(GBool strokeAdjust) {
-  state->strokeAdjust = strokeAdjust;
-}
-
-void Splash::clipResetToRect(SplashCoord x0, SplashCoord y0,
-			     SplashCoord x1, SplashCoord y1) {
-  state->clip->resetToRect(x0, y0, x1, y1);
-}
-
-SplashError Splash::clipToRect(SplashCoord x0, SplashCoord y0,
-			       SplashCoord x1, SplashCoord y1) {
-  return state->clip->clipToRect(x0, y0, x1, y1);
-}
-
-SplashError Splash::clipToPath(SplashPath *path, GBool eo) {
-  return state->clip->clipToPath(path, state->matrix, state->flatness, eo);
-}
-
-void Splash::setSoftMask(SplashBitmap *softMask) {
-  state->setSoftMask(softMask);
-}
-
-void Splash::setInNonIsolatedGroup(SplashBitmap *alpha0BitmapA,
-				   int alpha0XA, int alpha0YA) {
-  alpha0Bitmap = alpha0BitmapA;
-  alpha0X = alpha0XA;
-  alpha0Y = alpha0YA;
-  state->inNonIsolatedGroup = gTrue;
-}
-
-void Splash::setTransfer(Guchar *red, Guchar *green, Guchar *blue,
-			 Guchar *gray) {
-  state->setTransfer(red, green, blue, gray);
-}
-
-void Splash::setOverprintMask(Guint overprintMask, GBool additive) {
-  state->overprintMask = overprintMask;
-  state->overprintAdditive = additive;
-}
-
-//------------------------------------------------------------------------
-// state save/restore
-//------------------------------------------------------------------------
-
-void Splash::saveState() {
-  SplashState *newState;
-
-  newState = state->copy();
-  newState->next = state;
-  state = newState;
-}
-
-SplashError Splash::restoreState() {
-  SplashState *oldState;
-
-  if (!state->next) {
-    return splashErrNoSave;
-  }
-  oldState = state;
-  state = state->next;
-  delete oldState;
-  return splashOk;
-}
-
-//------------------------------------------------------------------------
-// drawing operations
-//------------------------------------------------------------------------
-
-void Splash::clear(SplashColorPtr color, Guchar alpha) {
-  SplashColorPtr row, p;
-  Guchar mono;
-  int x, y;
-
-  switch (bitmap->mode) {
-  case splashModeMono1:
-    mono = (color[0] & 0x80) ? 0xff : 0x00;
-    if (bitmap->rowSize < 0) {
-      memset(bitmap->data + bitmap->rowSize * (bitmap->height - 1),
-	     mono, -bitmap->rowSize * bitmap->height);
-    } else {
-      memset(bitmap->data, mono, bitmap->rowSize * bitmap->height);
-    }
-    break;
-  case splashModeMono8:
-    if (bitmap->rowSize < 0) {
-      memset(bitmap->data + bitmap->rowSize * (bitmap->height - 1),
-	     color[0], -bitmap->rowSize * bitmap->height);
-    } else {
-      memset(bitmap->data, color[0], bitmap->rowSize * bitmap->height);
-    }
-    break;
-  case splashModeRGB8:
-    if (color[0] == color[1] && color[1] == color[2]) {
-      if (bitmap->rowSize < 0) {
-	memset(bitmap->data + bitmap->rowSize * (bitmap->height - 1),
-	       color[0], -bitmap->rowSize * bitmap->height);
-      } else {
-	memset(bitmap->data, color[0], bitmap->rowSize * bitmap->height);
-      }
-    } else {
-      row = bitmap->data;
-      for (y = 0; y < bitmap->height; ++y) {
-	p = row;
-	for (x = 0; x < bitmap->width; ++x) {
-	  *p++ = color[2];
-	  *p++ = color[1];
-	  *p++ = color[0];
-	}
-	row += bitmap->rowSize;
-      }
-    }
-    break;
-  case splashModeXBGR8:
-    if (color[0] == color[1] && color[1] == color[2]) {
-      if (bitmap->rowSize < 0) {
-	memset(bitmap->data + bitmap->rowSize * (bitmap->height - 1),
-	       color[0], -bitmap->rowSize * bitmap->height);
-      } else {
-	memset(bitmap->data, color[0], bitmap->rowSize * bitmap->height);
-      }
-    } else {
-      row = bitmap->data;
-      for (y = 0; y < bitmap->height; ++y) {
-	p = row;
-	for (x = 0; x < bitmap->width; ++x) {
-	  *p++ = color[0];
-	  *p++ = color[1];
-	  *p++ = color[2];
-	  *p++ = 255;
-	}
-	row += bitmap->rowSize;
-      }
-    }
-    break;
-  case splashModeBGR8:
-    if (color[0] == color[1] && color[1] == color[2]) {
-      if (bitmap->rowSize < 0) {
-	memset(bitmap->data + bitmap->rowSize * (bitmap->height - 1),
-	       color[0], -bitmap->rowSize * bitmap->height);
-      } else {
-	memset(bitmap->data, color[0], bitmap->rowSize * bitmap->height);
-      }
-    } else {
-      row = bitmap->data;
-      for (y = 0; y < bitmap->height; ++y) {
-	p = row;
-	for (x = 0; x < bitmap->width; ++x) {
-	  *p++ = color[0];
-	  *p++ = color[1];
-	  *p++ = color[2];
-	}
-	row += bitmap->rowSize;
-      }
-    }
-    break;
-#if SPLASH_CMYK
-  case splashModeCMYK8:
-    if (color[0] == color[1] && color[1] == color[2] && color[2] == color[3]) {
-      if (bitmap->rowSize < 0) {
-	memset(bitmap->data + bitmap->rowSize * (bitmap->height - 1),
-	       color[0], -bitmap->rowSize * bitmap->height);
-      } else {
-	memset(bitmap->data, color[0], bitmap->rowSize * bitmap->height);
-      }
-    } else {
-      row = bitmap->data;
-      for (y = 0; y < bitmap->height; ++y) {
-	p = row;
-	for (x = 0; x < bitmap->width; ++x) {
-	  *p++ = color[0];
-	  *p++ = color[1];
-	  *p++ = color[2];
-	  *p++ = color[3];
-	}
-	row += bitmap->rowSize;
-      }
-    }
-    break;
-  case splashModeDeviceN8:
-    row = bitmap->data;
-    for (y = 0; y < bitmap->height; ++y) {
-      p = row;
-      for (x = 0; x < bitmap->width; ++x) {
-        for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
-          *p++ = color[cp];
-      }
-      row += bitmap->rowSize;
-    }
-    break;
-#endif
-  }
-
-  if (bitmap->alpha) {
-    memset(bitmap->alpha, alpha, bitmap->width * bitmap->height);
-  }
-
-  updateModX(0);
-  updateModY(0);
-  updateModX(bitmap->width - 1);
-  updateModY(bitmap->height - 1);
-}
-
-SplashError Splash::stroke(SplashPath *path) {
-  SplashPath *path2, *dPath;
-  SplashCoord d1, d2, t1, t2, w;
-
-  if (debugMode) {
-    printf("stroke [dash:%d] [width:%.2f]:\n",
-	   state->lineDashLength, (double)state->lineWidth);
-    dumpPath(path);
-  }
-  opClipRes = splashClipAllOutside;
-  if (path->length == 0) {
-    return splashErrEmptyPath;
-  }
-  path2 = flattenPath(path, state->matrix, state->flatness);
-  if (state->lineDashLength > 0) {
-    dPath = makeDashedPath(path2);
-    delete path2;
-    path2 = dPath;
-    if (path2->length == 0) {
-      delete path2;
-      return splashErrEmptyPath;
-    }
-  }
-
-  // transform a unit square, and take the half the max of the two
-  // diagonals; the product of this number and the line width is the
-  // (approximate) transformed line width
-  t1 = state->matrix[0] + state->matrix[2];
-  t2 = state->matrix[1] + state->matrix[3];
-  d1 = t1 * t1 + t2 * t2;
-  t1 = state->matrix[0] - state->matrix[2];
-  t2 = state->matrix[1] - state->matrix[3];
-  d2 = t1 * t1 + t2 * t2;
-  if (d2 > d1) {
-    d1 = d2;
-  }
-  d1 *= 0.5;
-  if (d1 > 0 &&
-      d1 * state->lineWidth * state->lineWidth < minLineWidth * minLineWidth) {
-    w = minLineWidth / splashSqrt(d1);
-    strokeWide(path2, w);
-  } else if (bitmap->mode == splashModeMono1) {
-    // this gets close to Adobe's behavior in mono mode
-    if (d1 * state->lineWidth <= 2) {
-      strokeNarrow(path2);
-    } else {
-      strokeWide(path2, state->lineWidth);
-    }
-  } else {
-    if (state->lineWidth == 0) {
-      strokeNarrow(path2);
-    } else {
-      strokeWide(path2, state->lineWidth);
-    }
-  }
-
-  delete path2;
-  return splashOk;
-}
-
-void Splash::strokeNarrow(SplashPath *path) {
-  SplashPipe pipe;
-  SplashXPath *xPath;
-  SplashXPathSeg *seg;
-  int x0, x1, y0, y1, xa, xb, y;
-  SplashCoord dxdy;
-  SplashClipResult clipRes;
-  int nClipRes[3];
-  int i;
-
-  nClipRes[0] = nClipRes[1] = nClipRes[2] = 0;
-
-  xPath = new SplashXPath(path, state->matrix, state->flatness, gFalse);
-
-  pipeInit(&pipe, 0, 0, state->strokePattern, NULL,
-	   (Guchar)splashRound(state->strokeAlpha * 255),
-	   gFalse, gFalse);
-
-  for (i = 0, seg = xPath->segs; i < xPath->length; ++i, ++seg) {
-    if (seg->y0 <= seg->y1) {
-      y0 = splashFloor(seg->y0);
-      y1 = splashFloor(seg->y1);
-      x0 = splashFloor(seg->x0);
-      x1 = splashFloor(seg->x1);
-    } else {
-      y0 = splashFloor(seg->y1);
-      y1 = splashFloor(seg->y0);
-      x0 = splashFloor(seg->x1);
-      x1 = splashFloor(seg->x0);
-    }
-    if ((clipRes = state->clip->testRect(x0 <= x1 ? x0 : x1, y0,
-					 x0 <= x1 ? x1 : x0, y1))
-	!= splashClipAllOutside) {
-      if (y0 == y1) {
-	if (x0 <= x1) {
-	  drawSpan(&pipe, x0, x1, y0, clipRes == splashClipAllInside);
-	} else {
-	  drawSpan(&pipe, x1, x0, y0, clipRes == splashClipAllInside);
-	}
-      } else {
-	dxdy = seg->dxdy;
-	if (y0 < state->clip->getYMinI()) {
-	  y0 = state->clip->getYMinI();
-	  x0 = splashFloor(seg->x0 + ((SplashCoord)y0 - seg->y0) * dxdy);
-	}
-	if (y1 > state->clip->getYMaxI()) {
-	  y1 = state->clip->getYMaxI();
-	  x1 = splashFloor(seg->x0 + ((SplashCoord)y1 - seg->y0) * dxdy);
-	}
-	if (x0 <= x1) {
-	  xa = x0;
-	  for (y = y0; y <= y1; ++y) {
-	    if (y < y1) {
-	      xb = splashFloor(seg->x0 +
-			       ((SplashCoord)y + 1 - seg->y0) * dxdy);
-	    } else {
-	      xb = x1 + 1;
-	    }
-	    if (xa == xb) {
-	      drawPixel(&pipe, xa, y, clipRes == splashClipAllInside);
-	    } else {
-	      drawSpan(&pipe, xa, xb - 1, y, clipRes == splashClipAllInside);
-	    }
-	    xa = xb;
-	  }
-	} else {
-	  xa = x0;
-	  for (y = y0; y <= y1; ++y) {
-	    if (y < y1) {
-	      xb = splashFloor(seg->x0 +
-			       ((SplashCoord)y + 1 - seg->y0) * dxdy);
-	    } else {
-	      xb = x1 - 1;
-	    }
-	    if (xa == xb) {
-	      drawPixel(&pipe, xa, y, clipRes == splashClipAllInside);
-	    } else {
-	      drawSpan(&pipe, xb + 1, xa, y, clipRes == splashClipAllInside);
-	    }
-	    xa = xb;
-	  }
-	}
-      }
-    }
-    ++nClipRes[clipRes];
-  }
-  if (nClipRes[splashClipPartial] ||
-      (nClipRes[splashClipAllInside] && nClipRes[splashClipAllOutside])) {
-    opClipRes = splashClipPartial;
-  } else if (nClipRes[splashClipAllInside]) {
-    opClipRes = splashClipAllInside;
-  } else {
-    opClipRes = splashClipAllOutside;
-  }
-
-  delete xPath;
-}
-
-void Splash::strokeWide(SplashPath *path, SplashCoord w) {
-  SplashPath *path2;
-
-  path2 = makeStrokePath(path, w, gFalse);
-  fillWithPattern(path2, gFalse, state->strokePattern, state->strokeAlpha);
-  delete path2;
-}
-
-SplashPath *Splash::flattenPath(SplashPath *path, SplashCoord *matrix,
-				SplashCoord flatness) {
-  SplashPath *fPath;
-  SplashCoord flatness2;
-  Guchar flag;
-  int i;
-
-  fPath = new SplashPath();
-#if USE_FIXEDPOINT
-  flatness2 = flatness;
-#else
-  flatness2 = flatness * flatness;
-#endif
-  i = 0;
-  while (i < path->length) {
-    flag = path->flags[i];
-    if (flag & splashPathFirst) {
-      fPath->moveTo(path->pts[i].x, path->pts[i].y);
-      ++i;
-    } else {
-      if (flag & splashPathCurve) {
-	flattenCurve(path->pts[i-1].x, path->pts[i-1].y,
-		     path->pts[i  ].x, path->pts[i  ].y,
-		     path->pts[i+1].x, path->pts[i+1].y,
-		     path->pts[i+2].x, path->pts[i+2].y,
-		     matrix, flatness2, fPath);
-	i += 3;
-      } else {
-	fPath->lineTo(path->pts[i].x, path->pts[i].y);
-	++i;
-      }
-      if (path->flags[i-1] & splashPathClosed) {
-	fPath->close();
-      }
-    }
-  }
-  return fPath;
-}
-
-void Splash::flattenCurve(SplashCoord x0, SplashCoord y0,
-			  SplashCoord x1, SplashCoord y1,
-			  SplashCoord x2, SplashCoord y2,
-			  SplashCoord x3, SplashCoord y3,
-			  SplashCoord *matrix, SplashCoord flatness2,
-			  SplashPath *fPath) {
-  SplashCoord cx[splashMaxCurveSplits + 1][3];
-  SplashCoord cy[splashMaxCurveSplits + 1][3];
-  int cNext[splashMaxCurveSplits + 1];
-  SplashCoord xl0, xl1, xl2, xr0, xr1, xr2, xr3, xx1, xx2, xh;
-  SplashCoord yl0, yl1, yl2, yr0, yr1, yr2, yr3, yy1, yy2, yh;
-  SplashCoord dx, dy, mx, my, tx, ty, d1, d2;
-  int p1, p2, p3;
-
-  // initial segment
-  p1 = 0;
-  p2 = splashMaxCurveSplits;
-  cx[p1][0] = x0;  cy[p1][0] = y0;
-  cx[p1][1] = x1;  cy[p1][1] = y1;
-  cx[p1][2] = x2;  cy[p1][2] = y2;
-  cx[p2][0] = x3;  cy[p2][0] = y3;
-  cNext[p1] = p2;
-
-  while (p1 < splashMaxCurveSplits) {
-
-    // get the next segment
-    xl0 = cx[p1][0];  yl0 = cy[p1][0];
-    xx1 = cx[p1][1];  yy1 = cy[p1][1];
-    xx2 = cx[p1][2];  yy2 = cy[p1][2];
-    p2 = cNext[p1];
-    xr3 = cx[p2][0];  yr3 = cy[p2][0];
-
-    // compute the distances (in device space) from the control points
-    // to the midpoint of the straight line (this is a bit of a hack,
-    // but it's much faster than computing the actual distances to the
-    // line)
-    transform(matrix, (xl0 + xr3) * 0.5, (yl0 + yr3) * 0.5, &mx, &my);
-    transform(matrix, xx1, yy1, &tx, &ty);
-#if USE_FIXEDPOINT
-    d1 = splashDist(tx, ty, mx, my);
-#else
-    dx = tx - mx;
-    dy = ty - my;
-    d1 = dx*dx + dy*dy;
-#endif
-    transform(matrix, xx2, yy2, &tx, &ty);
-#if USE_FIXEDPOINT
-    d2 = splashDist(tx, ty, mx, my);
-#else
-    dx = tx - mx;
-    dy = ty - my;
-    d2 = dx*dx + dy*dy;
-#endif
-
-    // if the curve is flat enough, or no more subdivisions are
-    // allowed, add the straight line segment
-    if (p2 - p1 == 1 || (d1 <= flatness2 && d2 <= flatness2)) {
-      fPath->lineTo(xr3, yr3);
-      p1 = p2;
-
-    // otherwise, subdivide the curve
-    } else {
-      xl1 = splashAvg(xl0, xx1);
-      yl1 = splashAvg(yl0, yy1);
-      xh = splashAvg(xx1, xx2);
-      yh = splashAvg(yy1, yy2);
-      xl2 = splashAvg(xl1, xh);
-      yl2 = splashAvg(yl1, yh);
-      xr2 = splashAvg(xx2, xr3);
-      yr2 = splashAvg(yy2, yr3);
-      xr1 = splashAvg(xh, xr2);
-      yr1 = splashAvg(yh, yr2);
-      xr0 = splashAvg(xl2, xr1);
-      yr0 = splashAvg(yl2, yr1);
-      // add the new subdivision points
-      p3 = (p1 + p2) / 2;
-      cx[p1][1] = xl1;  cy[p1][1] = yl1;
-      cx[p1][2] = xl2;  cy[p1][2] = yl2;
-      cNext[p1] = p3;
-      cx[p3][0] = xr0;  cy[p3][0] = yr0;
-      cx[p3][1] = xr1;  cy[p3][1] = yr1;
-      cx[p3][2] = xr2;  cy[p3][2] = yr2;
-      cNext[p3] = p2;
-    }
-  }
-}
-
-SplashPath *Splash::makeDashedPath(SplashPath *path) {
-  SplashPath *dPath;
-  SplashCoord lineDashTotal;
-  SplashCoord lineDashStartPhase, lineDashDist, segLen;
-  SplashCoord x0, y0, x1, y1, xa, ya;
-  GBool lineDashStartOn, lineDashOn, newPath;
-  int lineDashStartIdx, lineDashIdx;
-  int i, j, k;
-
-  lineDashTotal = 0;
-  for (i = 0; i < state->lineDashLength; ++i) {
-    lineDashTotal += state->lineDash[i];
-  }
-  // Acrobat simply draws nothing if the dash array is [0]
-  if (lineDashTotal == 0) {
-    return new SplashPath();
-  }
-  lineDashStartPhase = state->lineDashPhase;
-  i = splashFloor(lineDashStartPhase / lineDashTotal);
-  lineDashStartPhase -= (SplashCoord)i * lineDashTotal;
-  lineDashStartOn = gTrue;
-  lineDashStartIdx = 0;
-  if (lineDashStartPhase > 0) {
-    while (lineDashStartIdx < state->lineDashLength && lineDashStartPhase >= state->lineDash[lineDashStartIdx]) {
-      lineDashStartOn = !lineDashStartOn;
-      lineDashStartPhase -= state->lineDash[lineDashStartIdx];
-      ++lineDashStartIdx;
-    }
-    if (unlikely(lineDashStartIdx == state->lineDashLength)) {
-      return new SplashPath();
-    }
-  }
-
-  dPath = new SplashPath();
-
-  // process each subpath
-  i = 0;
-  while (i < path->length) {
-
-    // find the end of the subpath
-    for (j = i;
-	 j < path->length - 1 && !(path->flags[j] & splashPathLast);
-	 ++j) ;
-
-    // initialize the dash parameters
-    lineDashOn = lineDashStartOn;
-    lineDashIdx = lineDashStartIdx;
-    lineDashDist = state->lineDash[lineDashIdx] - lineDashStartPhase;
-
-    // process each segment of the subpath
-    newPath = gTrue;
-    for (k = i; k < j; ++k) {
-
-      // grab the segment
-      x0 = path->pts[k].x;
-      y0 = path->pts[k].y;
-      x1 = path->pts[k+1].x;
-      y1 = path->pts[k+1].y;
-      segLen = splashDist(x0, y0, x1, y1);
-
-      // process the segment
-      while (segLen > 0) {
-
-	if (lineDashDist >= segLen) {
-	  if (lineDashOn) {
-	    if (newPath) {
-	      dPath->moveTo(x0, y0);
-	      newPath = gFalse;
-	    }
-	    dPath->lineTo(x1, y1);
-	  }
-	  lineDashDist -= segLen;
-	  segLen = 0;
-
-	} else {
-	  xa = x0 + (lineDashDist / segLen) * (x1 - x0);
-	  ya = y0 + (lineDashDist / segLen) * (y1 - y0);
-	  if (lineDashOn) {
-	    if (newPath) {
-	      dPath->moveTo(x0, y0);
-	      newPath = gFalse;
-	    }
-	    dPath->lineTo(xa, ya);
-	  }
-	  x0 = xa;
-	  y0 = ya;
-	  segLen -= lineDashDist;
-	  lineDashDist = 0;
-	}
-
-	// get the next entry in the dash array
-	if (lineDashDist <= 0) {
-	  lineDashOn = !lineDashOn;
-	  if (++lineDashIdx == state->lineDashLength) {
-	    lineDashIdx = 0;
-	  }
-	  lineDashDist = state->lineDash[lineDashIdx];
-	  newPath = gTrue;
-	}
-      }
-    }
-    i = j + 1;
-  }
-  
-  if (dPath->length == 0) {
-    GBool allSame = gTrue;
-    for (int i = 0; allSame && i < path->length - 1; ++i) {
-      allSame = path->pts[i].x == path->pts[i + 1].x && path->pts[i].y == path->pts[i + 1].y;
-    }
-    if (allSame) {
-      x0 = path->pts[0].x;
-      y0 = path->pts[0].y;
-      dPath->moveTo(x0, y0);
-      dPath->lineTo(x0, y0);
-    }
-  }
-
-  return dPath;
-}
-
-SplashError Splash::fill(SplashPath *path, GBool eo) {
-  if (debugMode) {
-    printf("fill [eo:%d]:\n", eo);
-    dumpPath(path);
-  }
-  return fillWithPattern(path, eo, state->fillPattern, state->fillAlpha);
-}
-
-inline void Splash::getBBoxFP(SplashPath *path, SplashCoord *xMinA, SplashCoord *yMinA,
-				   SplashCoord *xMaxA, SplashCoord *yMaxA) {
-  SplashCoord xMinFP, yMinFP, xMaxFP, yMaxFP, tx, ty;
-
-  // make compiler happy:
-  xMinFP = xMaxFP = yMinFP = yMaxFP = 0;
-  for (int i = 0; i < path->length; ++i) {
-    transform(state->matrix, path->pts[i].x, path->pts[i].y, &tx, &ty);
-    if (i == 0) {
-      xMinFP = xMaxFP = tx;
-      yMinFP = yMaxFP = ty;
-    } else {
-      if (tx < xMinFP) xMinFP = tx;
-      if (tx > xMaxFP) xMaxFP = tx;
-      if (ty < yMinFP) yMinFP = ty;
-      if (ty > yMaxFP) yMaxFP = ty;
-    }
-  }
-
-  *xMinA = xMinFP;
-  *yMinA = yMinFP;
-  *xMaxA = xMaxFP;
-  *yMaxA = yMaxFP;
-}
-
-SplashError Splash::fillWithPattern(SplashPath *path, GBool eo,
-				    SplashPattern *pattern,
-				    SplashCoord alpha) {
-  SplashPipe pipe;
-  SplashXPath *xPath;
-  SplashXPathScanner *scanner;
-  int xMinI, yMinI, xMaxI, yMaxI, x0, x1, y;
-  SplashClipResult clipRes, clipRes2;
-  GBool adjustLine = gFalse; 
-  int linePosI = 0;
-
-  if (path->length == 0) {
-    return splashErrEmptyPath;
-  }
-  if (pathAllOutside(path)) {
-    opClipRes = splashClipAllOutside;
-    return splashOk;
-  }
-
-  // add stroke adjustment hints for filled rectangles -- this only
-  // applies to paths that consist of a single subpath
-  // (this appears to match Acrobat's behavior)
-  if (state->strokeAdjust && !path->hints) {
-    int n;
-    n = path->getLength();
-    if (n == 4 &&
-	!(path->flags[0] & splashPathClosed) &&
-	!(path->flags[1] & splashPathLast) &&
-	!(path->flags[2] & splashPathLast)) {
-      path->close(gTrue);
-      path->addStrokeAdjustHint(0, 2, 0, 4);
-      path->addStrokeAdjustHint(1, 3, 0, 4);
-    } else if (n == 5 &&
-	       (path->flags[0] & splashPathClosed) &&
-	       !(path->flags[1] & splashPathLast) &&
-	       !(path->flags[2] & splashPathLast) &&
-	       !(path->flags[3] & splashPathLast)) {
-      path->addStrokeAdjustHint(0, 2, 0, 4);
-      path->addStrokeAdjustHint(1, 3, 0, 4);
-    }
-  }
-
-  if (thinLineMode != splashThinLineDefault) {
-    if (state->clip->getXMinI() == state->clip->getXMaxI()) {
-      linePosI = state->clip->getXMinI();
-      adjustLine = gTrue;
-    } else if (state->clip->getXMinI() == state->clip->getXMaxI() - 1) {
-      adjustLine = gTrue;
-      linePosI = splashFloor(state->clip->getXMin() + state->lineWidth);
-    } else if (state->clip->getYMinI() == state->clip->getYMaxI()) {
-      linePosI = state->clip->getYMinI();
-      adjustLine = gTrue;
-    } else if (state->clip->getYMinI() == state->clip->getYMaxI() - 1) {
-      adjustLine = gTrue;
-      linePosI = splashFloor(state->clip->getYMin() + state->lineWidth);
-    }
-  }
-
-  xPath = new SplashXPath(path, state->matrix, state->flatness, gTrue, 
-    adjustLine, linePosI);
-  if (vectorAntialias && !inShading) {
-    xPath->aaScale();
-  }
-  xPath->sort();
-  yMinI = state->clip->getYMinI();
-  yMaxI = state->clip->getYMaxI();
-  if (vectorAntialias && !inShading) {
-    yMinI = yMinI * splashAASize;
-    yMaxI = (yMaxI + 1) * splashAASize - 1;
-  }
-  scanner = new SplashXPathScanner(xPath, eo, yMinI, yMaxI);
-
-  // get the min and max x and y values
-  if (vectorAntialias && !inShading) {
-    scanner->getBBoxAA(&xMinI, &yMinI, &xMaxI, &yMaxI);
-  } else {
-    scanner->getBBox(&xMinI, &yMinI, &xMaxI, &yMaxI);
-  }
-
-  if (eo && (yMinI == yMaxI || xMinI == xMaxI) && thinLineMode != splashThinLineDefault) {
-    SplashCoord delta, xMinFP, yMinFP, xMaxFP, yMaxFP;
-    getBBoxFP(path, &xMinFP, &yMinFP, &xMaxFP, &yMaxFP);
-    delta = (yMinI == yMaxI) ? yMaxFP - yMinFP : xMaxFP - xMinFP;
-    if (delta < 0.2) {
-      opClipRes = splashClipAllOutside;
-      delete scanner;
-      delete xPath;
-      return splashOk;
-    }
-  }
-
-  // check clipping
-  if ((clipRes = state->clip->testRect(xMinI, yMinI, xMaxI, yMaxI))
-      != splashClipAllOutside) {
-    if (scanner->hasPartialClip()) {
-      clipRes = splashClipPartial;
-    }
-
-    pipeInit(&pipe, 0, yMinI, pattern, NULL, (Guchar)splashRound(alpha * 255),
-	     vectorAntialias && !inShading, gFalse);
-
-    // draw the spans
-    if (vectorAntialias && !inShading) {
-      for (y = yMinI; y <= yMaxI; ++y) {
-	scanner->renderAALine(aaBuf, &x0, &x1, y, thinLineMode != splashThinLineDefault && xMinI == xMaxI);
-	if (clipRes != splashClipAllInside) {
-	  state->clip->clipAALine(aaBuf, &x0, &x1, y, thinLineMode != splashThinLineDefault && xMinI == xMaxI);
-	}
-	Guchar lineShape = 255;
-	GBool adjustLine = gFalse;
-	if (thinLineMode == splashThinLineShape && (xMinI == xMaxI || yMinI == yMaxI)) {
-	  // compute line shape for thin lines:
-	  SplashCoord mx, my, delta;
-	  transform(state->matrix, 0, 0, &mx, &my);
-	  transform(state->matrix, state->lineWidth, 0, &delta, &my);
-	  adjustLine = gTrue;
-	  lineShape = clip255((delta - mx) * 255);
-	}
-	drawAALine(&pipe, x0, x1, y, adjustLine, lineShape);
-      }
-    } else {
-      for (y = yMinI; y <= yMaxI; ++y) {
-	while (scanner->getNextSpan(y, &x0, &x1)) {
-	  if (clipRes == splashClipAllInside) {
-	    drawSpan(&pipe, x0, x1, y, gTrue);
-	  } else {
-	    // limit the x range
-	    if (x0 < state->clip->getXMinI()) {
-	      x0 = state->clip->getXMinI();
-	    }
-	    if (x1 > state->clip->getXMaxI()) {
-	      x1 = state->clip->getXMaxI();
-	    }
-	    clipRes2 = state->clip->testSpan(x0, x1, y);
-	    drawSpan(&pipe, x0, x1, y, clipRes2 == splashClipAllInside);
-	  }
-	}
-      }
-    }
-  }
-  opClipRes = clipRes;
-
-  delete scanner;
-  delete xPath;
-  return splashOk;
-}
-
-GBool Splash::pathAllOutside(SplashPath *path) {
-  SplashCoord xMin1, yMin1, xMax1, yMax1;
-  SplashCoord xMin2, yMin2, xMax2, yMax2;
-  SplashCoord x, y;
-  int xMinI, yMinI, xMaxI, yMaxI;
-  int i;
-
-  xMin1 = xMax1 = path->pts[0].x;
-  yMin1 = yMax1 = path->pts[0].y;
-  for (i = 1; i < path->length; ++i) {
-    if (path->pts[i].x < xMin1) {
-      xMin1 = path->pts[i].x;
-    } else if (path->pts[i].x > xMax1) {
-      xMax1 = path->pts[i].x;
-    }
-    if (path->pts[i].y < yMin1) {
-      yMin1 = path->pts[i].y;
-    } else if (path->pts[i].y > yMax1) {
-      yMax1 = path->pts[i].y;
-    }
-  }
-
-  transform(state->matrix, xMin1, yMin1, &x, &y);
-  xMin2 = xMax2 = x;
-  yMin2 = yMax2 = y;
-  transform(state->matrix, xMin1, yMax1, &x, &y);
-  if (x < xMin2) {
-    xMin2 = x;
-  } else if (x > xMax2) {
-    xMax2 = x;
-  }
-  if (y < yMin2) {
-    yMin2 = y;
-  } else if (y > yMax2) {
-    yMax2 = y;
-  }
-  transform(state->matrix, xMax1, yMin1, &x, &y);
-  if (x < xMin2) {
-    xMin2 = x;
-  } else if (x > xMax2) {
-    xMax2 = x;
-  }
-  if (y < yMin2) {
-    yMin2 = y;
-  } else if (y > yMax2) {
-    yMax2 = y;
-  }
-  transform(state->matrix, xMax1, yMax1, &x, &y);
-  if (x < xMin2) {
-    xMin2 = x;
-  } else if (x > xMax2) {
-    xMax2 = x;
-  }
-  if (y < yMin2) {
-    yMin2 = y;
-  } else if (y > yMax2) {
-    yMax2 = y;
-  }
-  xMinI = splashFloor(xMin2);
-  yMinI = splashFloor(yMin2);
-  xMaxI = splashFloor(xMax2);
-  yMaxI = splashFloor(yMax2);
-
-  return state->clip->testRect(xMinI, yMinI, xMaxI, yMaxI) ==
-         splashClipAllOutside;
-}
-
-SplashError Splash::xorFill(SplashPath *path, GBool eo) {
-  SplashPipe pipe;
-  SplashXPath *xPath;
-  SplashXPathScanner *scanner;
-  int xMinI, yMinI, xMaxI, yMaxI, x0, x1, y;
-  SplashClipResult clipRes, clipRes2;
-  SplashBlendFunc origBlendFunc;
-
-  if (path->length == 0) {
-    return splashErrEmptyPath;
-  }
-  xPath = new SplashXPath(path, state->matrix, state->flatness, gTrue);
-  xPath->sort();
-  scanner = new SplashXPathScanner(xPath, eo, state->clip->getYMinI(),
-				   state->clip->getYMaxI());
-
-  // get the min and max x and y values
-  scanner->getBBox(&xMinI, &yMinI, &xMaxI, &yMaxI);
-
-  // check clipping
-  if ((clipRes = state->clip->testRect(xMinI, yMinI, xMaxI, yMaxI))
-      != splashClipAllOutside) {
-    if (scanner->hasPartialClip()) {
-      clipRes = splashClipPartial;
-    }
-
-    origBlendFunc = state->blendFunc;
-    state->blendFunc = &blendXor;
-    pipeInit(&pipe, 0, yMinI, state->fillPattern, NULL, 255, gFalse, gFalse);
-
-    // draw the spans
-    for (y = yMinI; y <= yMaxI; ++y) {
-      while (scanner->getNextSpan(y, &x0, &x1)) {
-	if (clipRes == splashClipAllInside) {
-	  drawSpan(&pipe, x0, x1, y, gTrue);
-	} else {
-	  // limit the x range
-	  if (x0 < state->clip->getXMinI()) {
-	    x0 = state->clip->getXMinI();
-	  }
-	  if (x1 > state->clip->getXMaxI()) {
-	    x1 = state->clip->getXMaxI();
-	  }
-	  clipRes2 = state->clip->testSpan(x0, x1, y);
-	  drawSpan(&pipe, x0, x1, y, clipRes2 == splashClipAllInside);
-	}
-      }
-    }
-    state->blendFunc = origBlendFunc;
-  }
-  opClipRes = clipRes;
-
-  delete scanner;
-  delete xPath;
-  return splashOk;
-}
-
-SplashError Splash::fillChar(SplashCoord x, SplashCoord y,
-			     int c, SplashFont *font) {
-  SplashGlyphBitmap glyph;
-  SplashCoord xt, yt;
-  int x0, y0, xFrac, yFrac;
-  SplashClipResult clipRes;
-
-  if (debugMode) {
-    printf("fillChar: x=%.2f y=%.2f c=%3d=0x%02x='%c'\n",
-	   (double)x, (double)y, c, c, c);
-  }
-  transform(state->matrix, x, y, &xt, &yt);
-  x0 = splashFloor(xt);
-  xFrac = splashFloor((xt - x0) * splashFontFraction);
-  y0 = splashFloor(yt);
-  yFrac = splashFloor((yt - y0) * splashFontFraction);
-  if (!font->getGlyph(c, xFrac, yFrac, &glyph, x0, y0, state->clip, &clipRes)) {
-    return splashErrNoGlyph;
-  }
-  if (clipRes != splashClipAllOutside) {
-    fillGlyph2(x0, y0, &glyph, clipRes == splashClipAllInside);
-  }
-  opClipRes = clipRes;
-  if (glyph.freeData) {
-    gfree(glyph.data);
-  }
-  return splashOk;
-}
-
-void Splash::fillGlyph(SplashCoord x, SplashCoord y,
-			      SplashGlyphBitmap *glyph) {
-  SplashCoord xt, yt;
-  int x0, y0;
-
-  transform(state->matrix, x, y, &xt, &yt);
-  x0 = splashFloor(xt);
-  y0 = splashFloor(yt);
-  SplashClipResult clipRes = state->clip->testRect(x0 - glyph->x,
-                             y0 - glyph->y,
-                             x0 - glyph->x + glyph->w - 1,
-                             y0 - glyph->y + glyph->h - 1);
-  if (clipRes != splashClipAllOutside) {
-    fillGlyph2(x0, y0, glyph, clipRes == splashClipAllInside);
-  }
-  opClipRes = clipRes;
-}
-
-void Splash::fillGlyph2(int x0, int y0, SplashGlyphBitmap *glyph, GBool noClip) {
-  SplashPipe pipe;
-  int alpha0;
-  Guchar alpha;
-  Guchar *p;
-  int x1, y1, xx, xx1, yy;
-
-  p = glyph->data;
-  int xStart = x0 - glyph->x;
-  int yStart = y0 - glyph->y;
-  int xxLimit = glyph->w;
-  int yyLimit = glyph->h;
-  int xShift = 0;
-
-  if (yStart < 0)
-  {
-    p += (glyph->aa ? glyph->w : splashCeil(glyph->w / 8.0)) * -yStart; // move p to the beginning of the first painted row
-    yyLimit += yStart;
-    yStart = 0;
-  }
-
-  if (xStart < 0)
-  {
-    if (glyph->aa) {
-      p += -xStart;
-    } else {
-      p += (-xStart) / 8;
-      xShift = (-xStart) % 8;
-    }
-    xxLimit += xStart;
-    xStart = 0;
-  }
-
-  if (xxLimit + xStart >= bitmap->width) xxLimit = bitmap->width - xStart;
-  if (yyLimit + yStart >= bitmap->height) yyLimit = bitmap->height - yStart;
-
-  if (noClip) {
-    if (glyph->aa) {
-      pipeInit(&pipe, xStart, yStart,
-               state->fillPattern, NULL, (Guchar)splashRound(state->fillAlpha * 255), gTrue, gFalse);
-      for (yy = 0, y1 = yStart; yy < yyLimit; ++yy, ++y1) {
-        pipeSetXY(&pipe, xStart, y1);
-        for (xx = 0, x1 = xStart; xx < xxLimit; ++xx, ++x1) {
-          alpha = p[xx];
-          if (alpha != 0) {
-            pipe.shape = alpha;
-            (this->*pipe.run)(&pipe);
-            updateModX(x1);
-            updateModY(y1);
-          } else {
-            pipeIncX(&pipe);
-          }
-        }
-        p += glyph->w;
-      }
-    } else {
-      const int widthEight = splashCeil(glyph->w / 8.0);
-
-      pipeInit(&pipe, xStart, yStart,
-               state->fillPattern, NULL, (Guchar)splashRound(state->fillAlpha * 255), gFalse, gFalse);
-      for (yy = 0, y1 = yStart; yy < yyLimit; ++yy, ++y1) {
-        pipeSetXY(&pipe, xStart, y1);
-        for (xx = 0, x1 = xStart; xx < xxLimit; xx += 8) {
-          alpha0 = (xShift > 0 ? (p[xx / 8] << xShift) | (p[xx / 8 + 1] >> (8 - xShift)) : p[xx / 8]);
-          for (xx1 = 0; xx1 < 8 && xx + xx1 < xxLimit; ++xx1, ++x1) {
-            if (alpha0 & 0x80) {
-              (this->*pipe.run)(&pipe);
-              updateModX(x1);
-              updateModY(y1);
-            } else {
-              pipeIncX(&pipe);
-            }
-            alpha0 <<= 1;
-          }
-        }
-        p += widthEight;
-      }
-    }
-  } else {
-    if (glyph->aa) {
-      pipeInit(&pipe, xStart, yStart,
-               state->fillPattern, NULL, (Guchar)splashRound(state->fillAlpha * 255), gTrue, gFalse);
-      for (yy = 0, y1 = yStart; yy < yyLimit; ++yy, ++y1) {
-        pipeSetXY(&pipe, xStart, y1);
-        for (xx = 0, x1 = xStart; xx < xxLimit; ++xx, ++x1) {
-          if (state->clip->test(x1, y1)) {
-            alpha = p[xx];
-            if (alpha != 0) {
-              pipe.shape = alpha;
-              (this->*pipe.run)(&pipe);
-              updateModX(x1);
-              updateModY(y1);
-            } else {
-              pipeIncX(&pipe);
-            }
-          } else {
-            pipeIncX(&pipe);
-          }
-        }
-        p += glyph->w;
-      }
-    } else {
-      const int widthEight = splashCeil(glyph->w / 8.0);
-
-      pipeInit(&pipe, xStart, yStart,
-               state->fillPattern, NULL, (Guchar)splashRound(state->fillAlpha * 255), gFalse, gFalse);
-      for (yy = 0, y1 = yStart; yy < yyLimit; ++yy, ++y1) {
-        pipeSetXY(&pipe, xStart, y1);
-        for (xx = 0, x1 = xStart; xx < xxLimit; xx += 8) {
-          alpha0 = (xShift > 0 ? (p[xx / 8] << xShift) | (p[xx / 8 + 1] >> (8 - xShift)) : p[xx / 8]);
-          for (xx1 = 0; xx1 < 8 && xx + xx1 < xxLimit; ++xx1, ++x1) {
-            if (state->clip->test(x1, y1)) {
-              if (alpha0 & 0x80) {
-                (this->*pipe.run)(&pipe);
-                updateModX(x1);
-                updateModY(y1);
-              } else {
-                pipeIncX(&pipe);
-              }
-            } else {
-              pipeIncX(&pipe);
-            }
-            alpha0 <<= 1;
-          }
-        }
-        p += widthEight;
-      }
-    }
-  }
-}
-
-SplashError Splash::fillImageMask(SplashImageMaskSource src, void *srcData,
-				  int w, int h, SplashCoord *mat,
-				  GBool glyphMode) {
-  SplashBitmap *scaledMask;
-  SplashClipResult clipRes;
-  GBool minorAxisZero;
-  int x0, y0, x1, y1, scaledWidth, scaledHeight;
-  int yp;
-
-  if (debugMode) {
-    printf("fillImageMask: w=%d h=%d mat=[%.2f %.2f %.2f %.2f %.2f %.2f]\n",
-	   w, h, (double)mat[0], (double)mat[1], (double)mat[2],
-	   (double)mat[3], (double)mat[4], (double)mat[5]);
-  }
-
-  if (w == 0 && h == 0) return splashErrZeroImage;
-
-  // check for singular matrix
-  if (!splashCheckDet(mat[0], mat[1], mat[2], mat[3], 0.000001)) {
-    return splashErrSingularMatrix;
-  }
-
-  minorAxisZero = mat[1] == 0 && mat[2] == 0;
-
-  // scaling only
-  if (mat[0] > 0 && minorAxisZero && mat[3] > 0) {
-    x0 = imgCoordMungeLowerC(mat[4], glyphMode);
-    y0 = imgCoordMungeLowerC(mat[5], glyphMode);
-    x1 = imgCoordMungeUpperC(mat[0] + mat[4], glyphMode);
-    y1 = imgCoordMungeUpperC(mat[3] + mat[5], glyphMode);
-    // make sure narrow images cover at least one pixel
-    if (x0 == x1) {
-      ++x1;
-    }
-    if (y0 == y1) {
-      ++y1;
-    }
-    clipRes = state->clip->testRect(x0, y0, x1 - 1, y1 - 1);
-    opClipRes = clipRes;
-    if (clipRes != splashClipAllOutside) {
-      scaledWidth = x1 - x0;
-      scaledHeight = y1 - y0;
-      yp = h / scaledHeight;
-      if (yp < 0 || yp > INT_MAX - 1) {
-        return splashErrBadArg;
-      }
-      scaledMask = scaleMask(src, srcData, w, h, scaledWidth, scaledHeight);
-      blitMask(scaledMask, x0, y0, clipRes);
-      delete scaledMask;
-    }
-
-  // scaling plus vertical flip
-  } else if (mat[0] > 0 && minorAxisZero && mat[3] < 0) {
-    x0 = imgCoordMungeLowerC(mat[4], glyphMode);
-    y0 = imgCoordMungeLowerC(mat[3] + mat[5], glyphMode);
-    x1 = imgCoordMungeUpperC(mat[0] + mat[4], glyphMode);
-    y1 = imgCoordMungeUpperC(mat[5], glyphMode);
-    // make sure narrow images cover at least one pixel
-    if (x0 == x1) {
-      ++x1;
-    }
-    if (y0 == y1) {
-      ++y1;
-    }
-    clipRes = state->clip->testRect(x0, y0, x1 - 1, y1 - 1);
-    opClipRes = clipRes;
-    if (clipRes != splashClipAllOutside) {
-      scaledWidth = x1 - x0;
-      scaledHeight = y1 - y0;
-      yp = h / scaledHeight;
-      if (yp < 0 || yp > INT_MAX - 1) {
-        return splashErrBadArg;
-      }
-      scaledMask = scaleMask(src, srcData, w, h, scaledWidth, scaledHeight);
-      vertFlipImage(scaledMask, scaledWidth, scaledHeight, 1);
-      blitMask(scaledMask, x0, y0, clipRes);
-      delete scaledMask;
-    }
-
-  // all other cases
-  } else {
-    arbitraryTransformMask(src, srcData, w, h, mat, glyphMode);
-  }
-
-  return splashOk;
-}
-
-void Splash::arbitraryTransformMask(SplashImageMaskSource src, void *srcData,
-				    int srcWidth, int srcHeight,
-				    SplashCoord *mat, GBool glyphMode) {
-  SplashBitmap *scaledMask;
-  SplashClipResult clipRes, clipRes2;
-  SplashPipe pipe;
-  int scaledWidth, scaledHeight, t0, t1;
-  SplashCoord r00, r01, r10, r11, det, ir00, ir01, ir10, ir11;
-  SplashCoord vx[4], vy[4];
-  int xMin, yMin, xMax, yMax;
-  ImageSection section[3];
-  int nSections;
-  int y, xa, xb, x, i, xx, yy;
-
-  // compute the four vertices of the target quadrilateral
-  vx[0] = mat[4];                    vy[0] = mat[5];
-  vx[1] = mat[2] + mat[4];           vy[1] = mat[3] + mat[5];
-  vx[2] = mat[0] + mat[2] + mat[4];  vy[2] = mat[1] + mat[3] + mat[5];
-  vx[3] = mat[0] + mat[4];           vy[3] = mat[1] + mat[5];
-
-  // clipping
-  xMin = imgCoordMungeLowerC(vx[0], glyphMode);
-  xMax = imgCoordMungeUpperC(vx[0], glyphMode);
-  yMin = imgCoordMungeLowerC(vy[0], glyphMode);
-  yMax = imgCoordMungeUpperC(vy[0], glyphMode);
-  for (i = 1; i < 4; ++i) {
-    t0 = imgCoordMungeLowerC(vx[i], glyphMode);
-    if (t0 < xMin) {
-      xMin = t0;
-    }
-    t0 = imgCoordMungeUpperC(vx[i], glyphMode);
-    if (t0 > xMax) {
-      xMax = t0;
-    }
-    t1 = imgCoordMungeLowerC(vy[i], glyphMode);
-    if (t1 < yMin) {
-      yMin = t1;
-    }
-    t1 = imgCoordMungeUpperC(vy[i], glyphMode);
-    if (t1 > yMax) {
-      yMax = t1;
-    }
-  }
-  clipRes = state->clip->testRect(xMin, yMin, xMax - 1, yMax - 1);
-  opClipRes = clipRes;
-  if (clipRes == splashClipAllOutside) {
-    return;
-  }
-
-  // compute the scale factors
-  if (mat[0] >= 0) {
-    t0 = imgCoordMungeUpperC(mat[0] + mat[4], glyphMode) -
-         imgCoordMungeLowerC(mat[4], glyphMode);
-  } else {
-    t0 = imgCoordMungeUpperC(mat[4], glyphMode) -
-         imgCoordMungeLowerC(mat[0] + mat[4], glyphMode);
-  }
-  if (mat[1] >= 0) {
-    t1 = imgCoordMungeUpperC(mat[1] + mat[5], glyphMode) -
-         imgCoordMungeLowerC(mat[5], glyphMode);
-  } else {
-    t1 = imgCoordMungeUpperC(mat[5], glyphMode) -
-         imgCoordMungeLowerC(mat[1] + mat[5], glyphMode);
-  }
-  scaledWidth = t0 > t1 ? t0 : t1;
-  if (mat[2] >= 0) {
-    t0 = imgCoordMungeUpperC(mat[2] + mat[4], glyphMode) -
-         imgCoordMungeLowerC(mat[4], glyphMode);
-  } else {
-    t0 = imgCoordMungeUpperC(mat[4], glyphMode) -
-         imgCoordMungeLowerC(mat[2] + mat[4], glyphMode);
-  }
-  if (mat[3] >= 0) {
-    t1 = imgCoordMungeUpperC(mat[3] + mat[5], glyphMode) -
-         imgCoordMungeLowerC(mat[5], glyphMode);
-  } else {
-    t1 = imgCoordMungeUpperC(mat[5], glyphMode) -
-         imgCoordMungeLowerC(mat[3] + mat[5], glyphMode);
-  }
-  scaledHeight = t0 > t1 ? t0 : t1;
-  if (scaledWidth == 0) {
-    scaledWidth = 1;
-  }
-  if (scaledHeight == 0) {
-    scaledHeight = 1;
-  }
-
-  // compute the inverse transform (after scaling) matrix
-  r00 = mat[0] / scaledWidth;
-  r01 = mat[1] / scaledWidth;
-  r10 = mat[2] / scaledHeight;
-  r11 = mat[3] / scaledHeight;
-  det = r00 * r11 - r01 * r10;
-  if (splashAbs(det) < 1e-6) {
-    // this should be caught by the singular matrix check in fillImageMask
-    return;
-  }
-  ir00 = r11 / det;
-  ir01 = -r01 / det;
-  ir10 = -r10 / det;
-  ir11 = r00 / det;
-
-  // scale the input image
-  scaledMask = scaleMask(src, srcData, srcWidth, srcHeight,
-			 scaledWidth, scaledHeight);
-  if (scaledMask->data == NULL) {
-    error(errInternal, -1, "scaledMask->data is NULL in Splash::arbitraryTransformMask");
-    delete scaledMask;
-    return;
-  }
-
-  // construct the three sections
-  i = (vy[2] <= vy[3]) ? 2 : 3;
-  if (vy[1] <= vy[i]) {
-    i = 1;
-  }
-  if (vy[0] < vy[i] || (i != 3 && vy[0] == vy[i])) {
-    i = 0;
-  }
-  if (vy[i] == vy[(i+1) & 3]) {
-    section[0].y0 = imgCoordMungeLowerC(vy[i], glyphMode);
-    section[0].y1 = imgCoordMungeUpperC(vy[(i+2) & 3], glyphMode) - 1;
-    if (vx[i] < vx[(i+1) & 3]) {
-      section[0].ia0 = i;
-      section[0].ia1 = (i+3) & 3;
-      section[0].ib0 = (i+1) & 3;
-      section[0].ib1 = (i+2) & 3;
-    } else {
-      section[0].ia0 = (i+1) & 3;
-      section[0].ia1 = (i+2) & 3;
-      section[0].ib0 = i;
-      section[0].ib1 = (i+3) & 3;
-    }
-    nSections = 1;
-  } else {
-    section[0].y0 = imgCoordMungeLowerC(vy[i], glyphMode);
-    section[2].y1 = imgCoordMungeUpperC(vy[(i+2) & 3], glyphMode) - 1;
-    section[0].ia0 = section[0].ib0 = i;
-    section[2].ia1 = section[2].ib1 = (i+2) & 3;
-    if (vx[(i+1) & 3] < vx[(i+3) & 3]) {
-      section[0].ia1 = section[2].ia0 = (i+1) & 3;
-      section[0].ib1 = section[2].ib0 = (i+3) & 3;
-    } else {
-      section[0].ia1 = section[2].ia0 = (i+3) & 3;
-      section[0].ib1 = section[2].ib0 = (i+1) & 3;
-    }
-    if (vy[(i+1) & 3] < vy[(i+3) & 3]) {
-      section[1].y0 = imgCoordMungeLowerC(vy[(i+1) & 3], glyphMode);
-      section[2].y0 = imgCoordMungeUpperC(vy[(i+3) & 3], glyphMode);
-      if (vx[(i+1) & 3] < vx[(i+3) & 3]) {
-	section[1].ia0 = (i+1) & 3;
-	section[1].ia1 = (i+2) & 3;
-	section[1].ib0 = i;
-	section[1].ib1 = (i+3) & 3;
-      } else {
-	section[1].ia0 = i;
-	section[1].ia1 = (i+3) & 3;
-	section[1].ib0 = (i+1) & 3;
-	section[1].ib1 = (i+2) & 3;
-      }
-    } else {
-      section[1].y0 = imgCoordMungeLowerC(vy[(i+3) & 3], glyphMode);
-      section[2].y0 = imgCoordMungeUpperC(vy[(i+1) & 3], glyphMode);
-      if (vx[(i+1) & 3] < vx[(i+3) & 3]) {
-	section[1].ia0 = i;
-	section[1].ia1 = (i+1) & 3;
-	section[1].ib0 = (i+3) & 3;
-	section[1].ib1 = (i+2) & 3;
-      } else {
-	section[1].ia0 = (i+3) & 3;
-	section[1].ia1 = (i+2) & 3;
-	section[1].ib0 = i;
-	section[1].ib1 = (i+1) & 3;
-      }
-    }
-    section[0].y1 = section[1].y0 - 1;
-    section[1].y1 = section[2].y0 - 1;
-    nSections = 3;
-  }
-  for (i = 0; i < nSections; ++i) {
-    section[i].xa0 = vx[section[i].ia0];
-    section[i].ya0 = vy[section[i].ia0];
-    section[i].xa1 = vx[section[i].ia1];
-    section[i].ya1 = vy[section[i].ia1];
-    section[i].xb0 = vx[section[i].ib0];
-    section[i].yb0 = vy[section[i].ib0];
-    section[i].xb1 = vx[section[i].ib1];
-    section[i].yb1 = vy[section[i].ib1];
-    section[i].dxdya = (section[i].xa1 - section[i].xa0) /
-                       (section[i].ya1 - section[i].ya0);
-    section[i].dxdyb = (section[i].xb1 - section[i].xb0) /
-                       (section[i].yb1 - section[i].yb0);
-  }
-
-  // initialize the pixel pipe
-  pipeInit(&pipe, 0, 0, state->fillPattern, NULL,
-	   (Guchar)splashRound(state->fillAlpha * 255), gTrue, gFalse);
-  if (vectorAntialias) {
-    drawAAPixelInit();
-  }
-
-  // make sure narrow images cover at least one pixel
-  if (nSections == 1) {
-    if (section[0].y0 == section[0].y1) {
-      ++section[0].y1;
-      clipRes = opClipRes = splashClipPartial;
-    }
-  } else {
-    if (section[0].y0 == section[2].y1) {
-      ++section[1].y1;
-      clipRes = opClipRes = splashClipPartial;
-    }
-  }
-
-  // scan all pixels inside the target region
-  for (i = 0; i < nSections; ++i) {
-    for (y = section[i].y0; y <= section[i].y1; ++y) {
-      xa = imgCoordMungeLowerC(section[i].xa0 +
-			         ((SplashCoord)y + 0.5 - section[i].ya0) *
-			           section[i].dxdya,
-			       glyphMode);
-      xb = imgCoordMungeUpperC(section[i].xb0 +
-			         ((SplashCoord)y + 0.5 - section[i].yb0) *
-			           section[i].dxdyb,
-			       glyphMode);
-      if (unlikely(xa < 0))
-        xa = 0;
-      // make sure narrow images cover at least one pixel
-      if (xa == xb) {
-	++xb;
-      }
-      if (clipRes != splashClipAllInside) {
-	clipRes2 = state->clip->testSpan(xa, xb - 1, y);
-      } else {
-	clipRes2 = clipRes;
-      }
-      for (x = xa; x < xb; ++x) {
-	// map (x+0.5, y+0.5) back to the scaled image
-	xx = splashFloor(((SplashCoord)x + 0.5 - mat[4]) * ir00 +
-			 ((SplashCoord)y + 0.5 - mat[5]) * ir10);
-	yy = splashFloor(((SplashCoord)x + 0.5 - mat[4]) * ir01 +
-			 ((SplashCoord)y + 0.5 - mat[5]) * ir11);
-	// xx should always be within bounds, but floating point
-	// inaccuracy can cause problems
-	if (xx < 0) {
-	  xx = 0;
-	} else if (xx >= scaledWidth) {
-	  xx = scaledWidth - 1;
-	}
-	if (yy < 0) {
-	  yy = 0;
-	} else if (yy >= scaledHeight) {
-	  yy = scaledHeight - 1;
-	}
-	pipe.shape = scaledMask->data[yy * scaledWidth + xx];
-	if (vectorAntialias && clipRes2 != splashClipAllInside) {
-	  drawAAPixel(&pipe, x, y);
-	} else {
-	  drawPixel(&pipe, x, y, clipRes2 == splashClipAllInside);
-	}
-      }
-    }
-  }
-
-  delete scaledMask;
-}
-
-// Scale an image mask into a SplashBitmap.
-SplashBitmap *Splash::scaleMask(SplashImageMaskSource src, void *srcData,
-				int srcWidth, int srcHeight,
-				int scaledWidth, int scaledHeight) {
-  SplashBitmap *dest;
-
-  dest = new SplashBitmap(scaledWidth, scaledHeight, 1, splashModeMono8,
-			  gFalse);
-  if (scaledHeight < srcHeight) {
-    if (scaledWidth < srcWidth) {
-      scaleMaskYdXd(src, srcData, srcWidth, srcHeight,
-		    scaledWidth, scaledHeight, dest);
-    } else {
-      scaleMaskYdXu(src, srcData, srcWidth, srcHeight,
-		    scaledWidth, scaledHeight, dest);
-    }
-  } else {
-    if (scaledWidth < srcWidth) {
-      scaleMaskYuXd(src, srcData, srcWidth, srcHeight,
-		    scaledWidth, scaledHeight, dest);
-    } else {
-      scaleMaskYuXu(src, srcData, srcWidth, srcHeight,
-		    scaledWidth, scaledHeight, dest);
-    }
-  }
-  return dest;
-}
-
-void Splash::scaleMaskYdXd(SplashImageMaskSource src, void *srcData,
-			   int srcWidth, int srcHeight,
-			   int scaledWidth, int scaledHeight,
-			   SplashBitmap *dest) {
-  Guchar *lineBuf;
-  Guint *pixBuf;
-  Guint pix;
-  Guchar *destPtr;
-  int yp, yq, xp, xq, yt, y, yStep, xt, x, xStep, xx, d, d0, d1;
-  int i, j;
-
-  // Bresenham parameters for y scale
-  yp = srcHeight / scaledHeight;
-  yq = srcHeight % scaledHeight;
-
-  // Bresenham parameters for x scale
-  xp = srcWidth / scaledWidth;
-  xq = srcWidth % scaledWidth;
-
-  // allocate buffers
-  lineBuf = (Guchar *)gmalloc(srcWidth);
-  pixBuf = (Guint *)gmallocn(srcWidth, sizeof(int));
-
-  // init y scale Bresenham
-  yt = 0;
-
-  destPtr = dest->data;
-  for (y = 0; y < scaledHeight; ++y) {
-
-    // y scale Bresenham
-    if ((yt += yq) >= scaledHeight) {
-      yt -= scaledHeight;
-      yStep = yp + 1;
-    } else {
-      yStep = yp;
-    }
-
-    // read rows from image
-    memset(pixBuf, 0, srcWidth * sizeof(int));
-    for (i = 0; i < yStep; ++i) {
-      (*src)(srcData, lineBuf);
-      for (j = 0; j < srcWidth; ++j) {
-	pixBuf[j] += lineBuf[j];
-      }
-    }
-
-    // init x scale Bresenham
-    xt = 0;
-    d0 = (255 << 23) / (yStep * xp);
-    d1 = (255 << 23) / (yStep * (xp + 1));
-
-    xx = 0;
-    for (x = 0; x < scaledWidth; ++x) {
-
-      // x scale Bresenham
-      if ((xt += xq) >= scaledWidth) {
-	xt -= scaledWidth;
-	xStep = xp + 1;
-	d = d1;
-      } else {
-	xStep = xp;
-	d = d0;
-      }
-
-      // compute the final pixel
-      pix = 0;
-      for (i = 0; i < xStep; ++i) {
-	pix += pixBuf[xx++];
-      }
-      // (255 * pix) / xStep * yStep
-      pix = (pix * d) >> 23;
-
-      // store the pixel
-      *destPtr++ = (Guchar)pix;
-    }
-  }
-
-  gfree(pixBuf);
-  gfree(lineBuf);
-}
-
-void Splash::scaleMaskYdXu(SplashImageMaskSource src, void *srcData,
-			   int srcWidth, int srcHeight,
-			   int scaledWidth, int scaledHeight,
-			   SplashBitmap *dest) {
-  Guchar *lineBuf;
-  Guint *pixBuf;
-  Guint pix;
-  Guchar *destPtr;
-  int yp, yq, xp, xq, yt, y, yStep, xt, x, xStep, d;
-  int i, j;
-  
-  destPtr = dest->data;
-  if (destPtr == NULL) {
-    error(errInternal, -1, "dest->data is NULL in Splash::scaleMaskYdXu");
-    return;
-  }
-
-  // Bresenham parameters for y scale
-  yp = srcHeight / scaledHeight;
-  yq = srcHeight % scaledHeight;
-
-  // Bresenham parameters for x scale
-  xp = scaledWidth / srcWidth;
-  xq = scaledWidth % srcWidth;
-
-  // allocate buffers
-  lineBuf = (Guchar *)gmalloc(srcWidth);
-  pixBuf = (Guint *)gmallocn(srcWidth, sizeof(int));
-
-  // init y scale Bresenham
-  yt = 0;
-
-  for (y = 0; y < scaledHeight; ++y) {
-
-    // y scale Bresenham
-    if ((yt += yq) >= scaledHeight) {
-      yt -= scaledHeight;
-      yStep = yp + 1;
-    } else {
-      yStep = yp;
-    }
-
-    // read rows from image
-    memset(pixBuf, 0, srcWidth * sizeof(int));
-    for (i = 0; i < yStep; ++i) {
-      (*src)(srcData, lineBuf);
-      for (j = 0; j < srcWidth; ++j) {
-	pixBuf[j] += lineBuf[j];
-      }
-    }
-
-    // init x scale Bresenham
-    xt = 0;
-    d = (255 << 23) / yStep;
-
-    for (x = 0; x < srcWidth; ++x) {
-
-      // x scale Bresenham
-      if ((xt += xq) >= srcWidth) {
-	xt -= srcWidth;
-	xStep = xp + 1;
-      } else {
-	xStep = xp;
-      }
-
-      // compute the final pixel
-      pix = pixBuf[x];
-      // (255 * pix) / yStep
-      pix = (pix * d) >> 23;
-
-      // store the pixel
-      for (i = 0; i < xStep; ++i) {
-	*destPtr++ = (Guchar)pix;
-      }
-    }
-  }
-
-  gfree(pixBuf);
-  gfree(lineBuf);
-}
-
-void Splash::scaleMaskYuXd(SplashImageMaskSource src, void *srcData,
-			   int srcWidth, int srcHeight,
-			   int scaledWidth, int scaledHeight,
-			   SplashBitmap *dest) {
-  Guchar *lineBuf;
-  Guint pix;
-  Guchar *destPtr0, *destPtr;
-  int yp, yq, xp, xq, yt, y, yStep, xt, x, xStep, xx, d, d0, d1;
-  int i;
-  
-  destPtr0 = dest->data;
-  if (destPtr0 == NULL) {
-    error(errInternal, -1, "dest->data is NULL in Splash::scaleMaskYuXd");
-    return;
-  }
-
-  // Bresenham parameters for y scale
-  yp = scaledHeight / srcHeight;
-  yq = scaledHeight % srcHeight;
-
-  // Bresenham parameters for x scale
-  xp = srcWidth / scaledWidth;
-  xq = srcWidth % scaledWidth;
-
-  // allocate buffers
-  lineBuf = (Guchar *)gmalloc(srcWidth);
-
-  // init y scale Bresenham
-  yt = 0;
-
-  for (y = 0; y < srcHeight; ++y) {
-
-    // y scale Bresenham
-    if ((yt += yq) >= srcHeight) {
-      yt -= srcHeight;
-      yStep = yp + 1;
-    } else {
-      yStep = yp;
-    }
-
-    // read row from image
-    (*src)(srcData, lineBuf);
-
-    // init x scale Bresenham
-    xt = 0;
-    d0 = (255 << 23) / xp;
-    d1 = (255 << 23) / (xp + 1);
-
-    xx = 0;
-    for (x = 0; x < scaledWidth; ++x) {
-
-      // x scale Bresenham
-      if ((xt += xq) >= scaledWidth) {
-	xt -= scaledWidth;
-	xStep = xp + 1;
-	d = d1;
-      } else {
-	xStep = xp;
-	d = d0;
-      }
-
-      // compute the final pixel
-      pix = 0;
-      for (i = 0; i < xStep; ++i) {
-	pix += lineBuf[xx++];
-      }
-      // (255 * pix) / xStep
-      pix = (pix * d) >> 23;
-
-      // store the pixel
-      for (i = 0; i < yStep; ++i) {
-	destPtr = destPtr0 + i * scaledWidth + x;
-	*destPtr = (Guchar)pix;
-      }
-    }
-
-    destPtr0 += yStep * scaledWidth;
-  }
-
-  gfree(lineBuf);
-}
-
-void Splash::scaleMaskYuXu(SplashImageMaskSource src, void *srcData,
-			   int srcWidth, int srcHeight,
-			   int scaledWidth, int scaledHeight,
-			   SplashBitmap *dest) {
-  Guchar *lineBuf;
-  Guint pix;
-  Guchar *destPtr0, *destPtr;
-  int yp, yq, xp, xq, yt, y, yStep, xt, x, xStep, xx;
-  int i, j;
-
-  destPtr0 = dest->data;
-  if (destPtr0 == NULL) {
-    error(errInternal, -1, "dest->data is NULL in Splash::scaleMaskYuXu");
-    return;
-  }
-
-  // Bresenham parameters for y scale
-  yp = scaledHeight / srcHeight;
-  yq = scaledHeight % srcHeight;
-
-  // Bresenham parameters for x scale
-  xp = scaledWidth / srcWidth;
-  xq = scaledWidth % srcWidth;
-
-  // allocate buffers
-  lineBuf = (Guchar *)gmalloc(srcWidth);
-
-  // init y scale Bresenham
-  yt = 0;
-
-  for (y = 0; y < srcHeight; ++y) {
-
-    // y scale Bresenham
-    if ((yt += yq) >= srcHeight) {
-      yt -= srcHeight;
-      yStep = yp + 1;
-    } else {
-      yStep = yp;
-    }
-
-    // read row from image
-    (*src)(srcData, lineBuf);
-
-    // init x scale Bresenham
-    xt = 0;
-
-    xx = 0;
-    for (x = 0; x < srcWidth; ++x) {
-
-      // x scale Bresenham
-      if ((xt += xq) >= srcWidth) {
-	xt -= srcWidth;
-	xStep = xp + 1;
-      } else {
-	xStep = xp;
-      }
-
-      // compute the final pixel
-      pix = lineBuf[x] ? 255 : 0;
-
-      // store the pixel
-      for (i = 0; i < yStep; ++i) {
-	for (j = 0; j < xStep; ++j) {
-	  destPtr = destPtr0 + i * scaledWidth + xx + j;
-	  *destPtr++ = (Guchar)pix;
-	}
-      }
-
-      xx += xStep;
-    }
-
-    destPtr0 += yStep * scaledWidth;
-  }
-
-  gfree(lineBuf);
-}
-
-void Splash::blitMask(SplashBitmap *src, int xDest, int yDest,
-		      SplashClipResult clipRes) {
-  SplashPipe pipe;
-  Guchar *p;
-  int w, h, x, y;
-
-  w = src->getWidth();
-  h = src->getHeight();
-  p = src->getDataPtr();
-  if (p == NULL) {
-    error(errInternal, -1, "src->getDataPtr() is NULL in Splash::blitMask");
-    return;    
-  }
-  if (vectorAntialias && clipRes != splashClipAllInside) {
-    pipeInit(&pipe, xDest, yDest, state->fillPattern, NULL,
-	     (Guchar)splashRound(state->fillAlpha * 255), gTrue, gFalse);
-    drawAAPixelInit();
-    for (y = 0; y < h; ++y) {
-      for (x = 0; x < w; ++x) {
-	pipe.shape = *p++;
-	drawAAPixel(&pipe, xDest + x, yDest + y);
-      }
-    }
-  } else {
-    pipeInit(&pipe, xDest, yDest, state->fillPattern, NULL,
-	     (Guchar)splashRound(state->fillAlpha * 255), gTrue, gFalse);
-    if (clipRes == splashClipAllInside) {
-      for (y = 0; y < h; ++y) {
-	pipeSetXY(&pipe, xDest, yDest + y);
-	for (x = 0; x < w; ++x) {
-	  if (*p) {
-	    pipe.shape = *p;
-	    (this->*pipe.run)(&pipe);
-	  } else {
-	    pipeIncX(&pipe);
-	  }
-	  ++p;
-	}
-      }
-      updateModX(xDest);
-      updateModX(xDest + w - 1);
-      updateModY(yDest);
-      updateModY(yDest + h - 1);
-    } else {
-      for (y = 0; y < h; ++y) {
-	pipeSetXY(&pipe, xDest, yDest + y);
-	for (x = 0; x < w; ++x) {
-	  if (*p && state->clip->test(xDest + x, yDest + y)) {
-	    pipe.shape = *p;
-	    (this->*pipe.run)(&pipe);
-	    updateModX(xDest + x);
-	    updateModY(yDest + y);
-	  } else {
-	    pipeIncX(&pipe);
-	  }
-	  ++p;
-	}
-      }
-    }
-  }
-}
-
-SplashError Splash::drawImage(SplashImageSource src, SplashICCTransform tf, void *srcData,
-			      SplashColorMode srcMode, GBool srcAlpha,
-			      int w, int h, SplashCoord *mat, GBool interpolate,
-			      GBool tilingPattern) {
-  GBool ok;
-  SplashBitmap *scaledImg;
-  SplashClipResult clipRes;
-  GBool minorAxisZero;
-  int x0, y0, x1, y1, scaledWidth, scaledHeight;
-  int nComps;
-  int yp;
-
-  if (debugMode) {
-    printf("drawImage: srcMode=%d srcAlpha=%d w=%d h=%d mat=[%.2f %.2f %.2f %.2f %.2f %.2f]\n",
-	   srcMode, srcAlpha, w, h, (double)mat[0], (double)mat[1], (double)mat[2],
-	   (double)mat[3], (double)mat[4], (double)mat[5]);
-  }
-
-  // check color modes
-  ok = gFalse; // make gcc happy
-  nComps = 0; // make gcc happy
-  switch (bitmap->mode) {
-  case splashModeMono1:
-  case splashModeMono8:
-    ok = srcMode == splashModeMono8;
-    nComps = 1;
-    break;
-  case splashModeRGB8:
-    ok = srcMode == splashModeRGB8;
-    nComps = 3;
-    break;
-  case splashModeXBGR8:
-    ok = srcMode == splashModeXBGR8;
-    nComps = 4;
-    break;
-  case splashModeBGR8:
-    ok = srcMode == splashModeBGR8;
-    nComps = 3;
-    break;
-#if SPLASH_CMYK
-  case splashModeCMYK8:
-    ok = srcMode == splashModeCMYK8;
-    nComps = 4;
-    break;
-  case splashModeDeviceN8:
-    ok = srcMode == splashModeDeviceN8;
-    nComps = SPOT_NCOMPS+4;
-    break;
-#endif
-  default:
-    ok = gFalse;
-    break;
-  }
-  if (!ok) {
-    return splashErrModeMismatch;
-  }
-
-  // check for singular matrix
-  if (!splashCheckDet(mat[0], mat[1], mat[2], mat[3], 0.000001)) {
-    return splashErrSingularMatrix;
-  }
-
-  minorAxisZero = mat[1] == 0 && mat[2] == 0;
-
-  // scaling only
-  if (mat[0] > 0 && minorAxisZero && mat[3] > 0) {
-    x0 = imgCoordMungeLower(mat[4]);
-    y0 = imgCoordMungeLower(mat[5]);
-    x1 = imgCoordMungeUpper(mat[0] + mat[4]);
-    y1 = imgCoordMungeUpper(mat[3] + mat[5]);
-    // make sure narrow images cover at least one pixel
-    if (x0 == x1) {
-      ++x1;
-    }
-    if (y0 == y1) {
-      ++y1;
-    }
-    clipRes = state->clip->testRect(x0, y0, x1 - 1, y1 - 1);
-    opClipRes = clipRes;
-    if (clipRes != splashClipAllOutside) {
-      scaledWidth = x1 - x0;
-      scaledHeight = y1 - y0;
-      yp = h / scaledHeight;
-      if (yp < 0 || yp > INT_MAX - 1) {
-        return splashErrBadArg;
-      }
-      scaledImg = scaleImage(src, srcData, srcMode, nComps, srcAlpha, w, h,
-			     scaledWidth, scaledHeight, interpolate, tilingPattern);
-      if (scaledImg == NULL) {
-        return splashErrBadArg;
-      }
-      if  (tf != NULL) {
-	(*tf)(srcData, scaledImg);
-      }
-      blitImage(scaledImg, srcAlpha, x0, y0, clipRes);
-      delete scaledImg;
-    }
-
-  // scaling plus vertical flip
-  } else if (mat[0] > 0 && minorAxisZero && mat[3] < 0) {
-    x0 = imgCoordMungeLower(mat[4]);
-    y0 = imgCoordMungeLower(mat[3] + mat[5]);
-    x1 = imgCoordMungeUpper(mat[0] + mat[4]);
-    y1 = imgCoordMungeUpper(mat[5]);
-    if (x0 == x1) {
-      if (mat[4] + mat[0] * 0.5 < x0) {
-	--x0;
-      } else {
-	++x1;
-      }
-    }
-    if (y0 == y1) {
-      if (mat[5] + mat[1] * 0.5 < y0) {
-	--y0;
-      } else {
-	++y1;
-      }
-    }
-    clipRes = state->clip->testRect(x0, y0, x1 - 1, y1 - 1);
-    opClipRes = clipRes;
-    if (clipRes != splashClipAllOutside) {
-      scaledWidth = x1 - x0;
-      scaledHeight = y1 - y0;
-      yp = h / scaledHeight;
-      if (yp < 0 || yp > INT_MAX - 1) {
-        return splashErrBadArg;
-      }
-      scaledImg = scaleImage(src, srcData, srcMode, nComps, srcAlpha, w, h,
-			     scaledWidth, scaledHeight, interpolate, tilingPattern);
-      if (scaledImg == NULL) {
-        return splashErrBadArg;
-      }
-      if  (tf != NULL) {
-	(*tf)(srcData, scaledImg);
-      }
-      vertFlipImage(scaledImg, scaledWidth, scaledHeight, nComps);
-      blitImage(scaledImg, srcAlpha, x0, y0, clipRes);
-      delete scaledImg;
-    }
-
-  // all other cases
-  } else {
-    return arbitraryTransformImage(src, tf, srcData, srcMode, nComps, srcAlpha,
-			    w, h, mat, interpolate, tilingPattern);
-  }
-
-  return splashOk;
-}
-
-SplashError Splash::arbitraryTransformImage(SplashImageSource src, SplashICCTransform tf, void *srcData,
-				     SplashColorMode srcMode, int nComps,
-				     GBool srcAlpha,
-				     int srcWidth, int srcHeight,
-				     SplashCoord *mat, GBool interpolate,
-             GBool tilingPattern) {
-  SplashBitmap *scaledImg;
-  SplashClipResult clipRes, clipRes2;
-  SplashPipe pipe;
-  SplashColor pixel;
-  int scaledWidth, scaledHeight, t0, t1, th;
-  SplashCoord r00, r01, r10, r11, det, ir00, ir01, ir10, ir11;
-  SplashCoord vx[4], vy[4];
-  int xMin, yMin, xMax, yMax;
-  ImageSection section[3];
-  int nSections;
-  int y, xa, xb, x, i, xx, yy, yp;
-
-  // compute the four vertices of the target quadrilateral
-  vx[0] = mat[4];                    vy[0] = mat[5];
-  vx[1] = mat[2] + mat[4];           vy[1] = mat[3] + mat[5];
-  vx[2] = mat[0] + mat[2] + mat[4];  vy[2] = mat[1] + mat[3] + mat[5];
-  vx[3] = mat[0] + mat[4];           vy[3] = mat[1] + mat[5];
-
-  // clipping
-  xMin = imgCoordMungeLower(vx[0]);
-  xMax = imgCoordMungeUpper(vx[0]);
-  yMin = imgCoordMungeLower(vy[0]);
-  yMax = imgCoordMungeUpper(vy[0]);
-  for (i = 1; i < 4; ++i) {
-    t0 = imgCoordMungeLower(vx[i]);
-    if (t0 < xMin) {
-      xMin = t0;
-    }
-    t0 = imgCoordMungeUpper(vx[i]);
-    if (t0 > xMax) {
-      xMax = t0;
-    }
-    t1 = imgCoordMungeLower(vy[i]);
-    if (t1 < yMin) {
-      yMin = t1;
-    }
-    t1 = imgCoordMungeUpper(vy[i]);
-    if (t1 > yMax) {
-      yMax = t1;
-    }
-  }
-  clipRes = state->clip->testRect(xMin, yMin, xMax, yMax);
-  opClipRes = clipRes;
-  if (clipRes == splashClipAllOutside) {
-    return splashOk;
-  }
-
-  // compute the scale factors
-  if (splashAbs(mat[0]) >= splashAbs(mat[1])) {
-    scaledWidth = xMax - xMin;
-    scaledHeight = yMax - yMin;
-  } else {
-    scaledWidth = yMax - yMin;
-    scaledHeight = xMax - xMin;
-  }
-  if (scaledHeight <= 1 || scaledWidth <= 1 || tilingPattern) {
-    if (mat[0] >= 0) {
-      t0 = imgCoordMungeUpper(mat[0] + mat[4]) - imgCoordMungeLower(mat[4]);
-    } else {
-      t0 = imgCoordMungeUpper(mat[4]) - imgCoordMungeLower(mat[0] + mat[4]);
-    }
-    if (mat[1] >= 0) {
-      t1 = imgCoordMungeUpper(mat[1] + mat[5]) - imgCoordMungeLower(mat[5]);
-    } else {
-      t1 = imgCoordMungeUpper(mat[5]) - imgCoordMungeLower(mat[1] + mat[5]);
-    }
-    scaledWidth = t0 > t1 ? t0 : t1;
-    if (mat[2] >= 0) {
-      t0 = imgCoordMungeUpper(mat[2] + mat[4]) - imgCoordMungeLower(mat[4]);
-      if (splashAbs(mat[1]) >= 1) {
-        th = imgCoordMungeUpper(mat[2]) - imgCoordMungeLower(mat[0] * mat[3] / mat[1]);
-	    if (th > t0) t0 = th;
-      }
-    } else {
-      t0 = imgCoordMungeUpper(mat[4]) - imgCoordMungeLower(mat[2] + mat[4]);
-      if (splashAbs(mat[1]) >= 1) {
-        th = imgCoordMungeUpper(mat[0] * mat[3] / mat[1]) - imgCoordMungeLower(mat[2]);
-        if (th > t0) t0 = th;
-      }
-    }
-    if (mat[3] >= 0) {
-      t1 = imgCoordMungeUpper(mat[3] + mat[5]) - imgCoordMungeLower(mat[5]);
-      if (splashAbs(mat[0]) >= 1) {
-        th = imgCoordMungeUpper(mat[3]) - imgCoordMungeLower(mat[1] * mat[2] / mat[0]);
-	    if (th > t1) t1 = th;
-      }
-    } else {
-      t1 = imgCoordMungeUpper(mat[5]) - imgCoordMungeLower(mat[3] + mat[5]);
-      if (splashAbs(mat[0]) >= 1) {
-        th = imgCoordMungeUpper(mat[1] * mat[2] / mat[0]) - imgCoordMungeLower(mat[3]);
-	    if (th > t1) t1 = th;
-      }
-    }
-    scaledHeight = t0 > t1 ? t0 : t1;
-  }
-  if (scaledWidth == 0) {
-    scaledWidth = 1;
-  }
-  if (scaledHeight == 0) {
-    scaledHeight = 1;
-  }
-
-  // compute the inverse transform (after scaling) matrix
-  r00 = mat[0] / scaledWidth;
-  r01 = mat[1] / scaledWidth;
-  r10 = mat[2] / scaledHeight;
-  r11 = mat[3] / scaledHeight;
-  det = r00 * r11 - r01 * r10;
-  if (splashAbs(det) < 1e-6) {
-    // this should be caught by the singular matrix check in drawImage
-    return splashErrBadArg;
-  }
-  ir00 = r11 / det;
-  ir01 = -r01 / det;
-  ir10 = -r10 / det;
-  ir11 = r00 / det;
-
-  // scale the input image
-  yp = srcHeight / scaledHeight;
-  if (yp < 0 || yp > INT_MAX - 1) {
-    return splashErrBadArg;
-  }
-  scaledImg = scaleImage(src, srcData, srcMode, nComps, srcAlpha,
-			 srcWidth, srcHeight, scaledWidth, scaledHeight, interpolate);
-
-  if (scaledImg == NULL) {
-    return splashErrBadArg;
-  }
-
-  if  (tf != NULL) {
-    (*tf)(srcData, scaledImg);
-  }
-  // construct the three sections
-  i = 0;
-  if (vy[1] < vy[i]) {
-    i = 1;
-  }
-  if (vy[2] < vy[i]) {
-    i = 2;
-  }
-  if (vy[3] < vy[i]) {
-    i = 3;
-  }
-  // NB: if using fixed point, 0.000001 will be truncated to zero,
-  // so these two comparisons must be <=, not <
-  if (splashAbs(vy[i] - vy[(i-1) & 3]) <= 0.000001 &&
-      vy[(i-1) & 3] < vy[(i+1) & 3]) {
-    i = (i-1) & 3;
-  }
-  if (splashAbs(vy[i] - vy[(i+1) & 3]) <= 0.000001) {
-    section[0].y0 = imgCoordMungeLower(vy[i]);
-    section[0].y1 = imgCoordMungeUpper(vy[(i+2) & 3]) - 1;
-    if (vx[i] < vx[(i+1) & 3]) {
-      section[0].ia0 = i;
-      section[0].ia1 = (i+3) & 3;
-      section[0].ib0 = (i+1) & 3;
-      section[0].ib1 = (i+2) & 3;
-    } else {
-      section[0].ia0 = (i+1) & 3;
-      section[0].ia1 = (i+2) & 3;
-      section[0].ib0 = i;
-      section[0].ib1 = (i+3) & 3;
-    }
-    nSections = 1;
-  } else {
-    section[0].y0 = imgCoordMungeLower(vy[i]);
-    section[2].y1 = imgCoordMungeUpper(vy[(i+2) & 3]) - 1;
-    section[0].ia0 = section[0].ib0 = i;
-    section[2].ia1 = section[2].ib1 = (i+2) & 3;
-    if (vx[(i+1) & 3] < vx[(i+3) & 3]) {
-      section[0].ia1 = section[2].ia0 = (i+1) & 3;
-      section[0].ib1 = section[2].ib0 = (i+3) & 3;
-    } else {
-      section[0].ia1 = section[2].ia0 = (i+3) & 3;
-      section[0].ib1 = section[2].ib0 = (i+1) & 3;
-    }
-    if (vy[(i+1) & 3] < vy[(i+3) & 3]) {
-      section[1].y0 = imgCoordMungeLower(vy[(i+1) & 3]);
-      section[2].y0 = imgCoordMungeUpper(vy[(i+3) & 3]);
-      if (vx[(i+1) & 3] < vx[(i+3) & 3]) {
-	section[1].ia0 = (i+1) & 3;
-	section[1].ia1 = (i+2) & 3;
-	section[1].ib0 = i;
-	section[1].ib1 = (i+3) & 3;
-      } else {
-	section[1].ia0 = i;
-	section[1].ia1 = (i+3) & 3;
-	section[1].ib0 = (i+1) & 3;
-	section[1].ib1 = (i+2) & 3;
-      }
-    } else {
-      section[1].y0 = imgCoordMungeLower(vy[(i+3) & 3]);
-      section[2].y0 = imgCoordMungeUpper(vy[(i+1) & 3]);
-      if (vx[(i+1) & 3] < vx[(i+3) & 3]) {
-	section[1].ia0 = i;
-	section[1].ia1 = (i+1) & 3;
-	section[1].ib0 = (i+3) & 3;
-	section[1].ib1 = (i+2) & 3;
-      } else {
-	section[1].ia0 = (i+3) & 3;
-	section[1].ia1 = (i+2) & 3;
-	section[1].ib0 = i;
-	section[1].ib1 = (i+1) & 3;
-      }
-    }
-    section[0].y1 = section[1].y0 - 1;
-    section[1].y1 = section[2].y0 - 1;
-    nSections = 3;
-  }
-  for (i = 0; i < nSections; ++i) {
-    section[i].xa0 = vx[section[i].ia0];
-    section[i].ya0 = vy[section[i].ia0];
-    section[i].xa1 = vx[section[i].ia1];
-    section[i].ya1 = vy[section[i].ia1];
-    section[i].xb0 = vx[section[i].ib0];
-    section[i].yb0 = vy[section[i].ib0];
-    section[i].xb1 = vx[section[i].ib1];
-    section[i].yb1 = vy[section[i].ib1];
-    section[i].dxdya = (section[i].xa1 - section[i].xa0) /
-                       (section[i].ya1 - section[i].ya0);
-    section[i].dxdyb = (section[i].xb1 - section[i].xb0) /
-                       (section[i].yb1 - section[i].yb0);
-  }
-
-  // initialize the pixel pipe
-  pipeInit(&pipe, 0, 0, NULL, pixel,
-	   (Guchar)splashRound(state->fillAlpha * 255),
-	   srcAlpha || (vectorAntialias && clipRes != splashClipAllInside),
-	   gFalse);
-  if (vectorAntialias) {
-    drawAAPixelInit();
-  }
-
-  // make sure narrow images cover at least one pixel
-  if (nSections == 1) {
-    if (section[0].y0 == section[0].y1) {
-      ++section[0].y1;
-      clipRes = opClipRes = splashClipPartial;
-    }
-  } else {
-    if (section[0].y0 == section[2].y1) {
-      ++section[1].y1;
-      clipRes = opClipRes = splashClipPartial;
-    }
-  }
-
-  // scan all pixels inside the target region
-  for (i = 0; i < nSections; ++i) {
-    for (y = section[i].y0; y <= section[i].y1; ++y) {
-      xa = imgCoordMungeLower(section[i].xa0 +
-			      ((SplashCoord)y + 0.5 - section[i].ya0) *
-			        section[i].dxdya);
-      if (unlikely(xa < 0))
-        xa = 0;
-      xb = imgCoordMungeUpper(section[i].xb0 +
-			      ((SplashCoord)y + 0.5 - section[i].yb0) *
-			        section[i].dxdyb);
-      // make sure narrow images cover at least one pixel
-      if (xa == xb) {
-	++xb;
-      }
-      if (clipRes != splashClipAllInside) {
-	clipRes2 = state->clip->testSpan(xa, xb - 1, y);
-      } else {
-	clipRes2 = clipRes;
-      }
-      for (x = xa; x < xb; ++x) {
-	// map (x+0.5, y+0.5) back to the scaled image
-	xx = splashFloor(((SplashCoord)x + 0.5 - mat[4]) * ir00 +
-			 ((SplashCoord)y + 0.5 - mat[5]) * ir10);
-	yy = splashFloor(((SplashCoord)x + 0.5 - mat[4]) * ir01 +
-			 ((SplashCoord)y + 0.5 - mat[5]) * ir11);
-	// xx should always be within bounds, but floating point
-	// inaccuracy can cause problems
-	if (xx < 0) {
-	  xx = 0;
-	} else if (xx >= scaledWidth) {
-	  xx = scaledWidth - 1;
-	}
-	if (yy < 0) {
-	  yy = 0;
-	} else if (yy >= scaledHeight) {
-	  yy = scaledHeight - 1;
-	}
-	scaledImg->getPixel(xx, yy, pixel);
-	if (srcAlpha) {
-	  pipe.shape = scaledImg->alpha[yy * scaledWidth + xx];
-	} else {
-	  pipe.shape = 255;
-	}
-	if (vectorAntialias && clipRes2 != splashClipAllInside) {
-	  drawAAPixel(&pipe, x, y);
-	} else {
-	  drawPixel(&pipe, x, y, clipRes2 == splashClipAllInside);
-	}
-      }
-    }
-  }
-
-  delete scaledImg;
-  return splashOk;
-}
-
-// determine if a scaled image requires interpolation based on the scale and
-// the interpolate flag from the image dictionary
-static GBool isImageInterpolationRequired(int srcWidth, int srcHeight,
-                                          int scaledWidth, int scaledHeight,
-                                          GBool interpolate) {
-  if (interpolate)
-    return gTrue;
-
-  /* When scale factor is >= 400% we don't interpolate. See bugs #25268, #9860 */
-  if (scaledWidth / srcWidth >= 4 || scaledHeight / srcHeight >= 4)
-    return gFalse;
-
-  return gTrue;
-}
-
-// Scale an image into a SplashBitmap.
-SplashBitmap *Splash::scaleImage(SplashImageSource src, void *srcData,
-				 SplashColorMode srcMode, int nComps,
-				 GBool srcAlpha, int srcWidth, int srcHeight,
-				 int scaledWidth, int scaledHeight, GBool interpolate, GBool tilingPattern) {
-  SplashBitmap *dest;
-
-  dest = new SplashBitmap(scaledWidth, scaledHeight, 1, srcMode, srcAlpha, gTrue, bitmap->getSeparationList());
-  if (dest->getDataPtr() != NULL) {
-    if (scaledHeight < srcHeight) {
-      if (scaledWidth < srcWidth) {
-	scaleImageYdXd(src, srcData, srcMode, nComps, srcAlpha,
-		      srcWidth, srcHeight, scaledWidth, scaledHeight, dest);
-      } else {
-	scaleImageYdXu(src, srcData, srcMode, nComps, srcAlpha,
-		      srcWidth, srcHeight, scaledWidth, scaledHeight, dest);
-      }
-    } else {
-      if (scaledWidth < srcWidth) {
-	scaleImageYuXd(src, srcData, srcMode, nComps, srcAlpha,
-		      srcWidth, srcHeight, scaledWidth, scaledHeight, dest);
-      } else {
-	if (!tilingPattern && isImageInterpolationRequired(srcWidth, srcHeight, scaledWidth, scaledHeight, interpolate)) {
-	  scaleImageYuXuBilinear(src, srcData, srcMode, nComps, srcAlpha,
-				srcWidth, srcHeight, scaledWidth, scaledHeight, dest);
-	} else {
-	  scaleImageYuXu(src, srcData, srcMode, nComps, srcAlpha,
-			srcWidth, srcHeight, scaledWidth, scaledHeight, dest);
-	}
-      }
-    }
-  } else {
-    delete dest;
-    dest = NULL;
-  }
-  return dest;
-}
-
-void Splash::scaleImageYdXd(SplashImageSource src, void *srcData,
-			    SplashColorMode srcMode, int nComps,
-			    GBool srcAlpha, int srcWidth, int srcHeight,
-			    int scaledWidth, int scaledHeight,
-			    SplashBitmap *dest) {
-  Guchar *lineBuf, *alphaLineBuf;
-  Guint *pixBuf, *alphaPixBuf;
-  Guint pix0, pix1, pix2;
-#if SPLASH_CMYK
-  Guint pix3;
-  Guint pix[SPOT_NCOMPS+4], cp;
-#endif
-  Guint alpha;
-  Guchar *destPtr, *destAlphaPtr;
-  int yp, yq, xp, xq, yt, y, yStep, xt, x, xStep, xx, xxa, d, d0, d1;
-  int i, j;
-
-  // Bresenham parameters for y scale
-  yp = srcHeight / scaledHeight;
-  yq = srcHeight % scaledHeight;
-
-  // Bresenham parameters for x scale
-  xp = srcWidth / scaledWidth;
-  xq = srcWidth % scaledWidth;
-
-  // allocate buffers
-  lineBuf = (Guchar *)gmallocn(srcWidth, nComps);
-  pixBuf = (Guint *)gmallocn(srcWidth, nComps * sizeof(int));
-  if (srcAlpha) {
-    alphaLineBuf = (Guchar *)gmalloc(srcWidth);
-    alphaPixBuf = (Guint *)gmallocn(srcWidth, sizeof(int));
-  } else {
-    alphaLineBuf = NULL;
-    alphaPixBuf = NULL;
-  }
-
-  // init y scale Bresenham
-  yt = 0;
-
-  destPtr = dest->data;
-  destAlphaPtr = dest->alpha;
-  for (y = 0; y < scaledHeight; ++y) {
-
-    // y scale Bresenham
-    if ((yt += yq) >= scaledHeight) {
-      yt -= scaledHeight;
-      yStep = yp + 1;
-    } else {
-      yStep = yp;
-    }
-
-    // read rows from image
-    memset(pixBuf, 0, srcWidth * nComps * sizeof(int));
-    if (srcAlpha) {
-      memset(alphaPixBuf, 0, srcWidth * sizeof(int));
-    }
-    for (i = 0; i < yStep; ++i) {
-      (*src)(srcData, lineBuf, alphaLineBuf);
-      for (j = 0; j < srcWidth * nComps; ++j) {
-	pixBuf[j] += lineBuf[j];
-      }
-      if (srcAlpha) {
-	for (j = 0; j < srcWidth; ++j) {
-	  alphaPixBuf[j] += alphaLineBuf[j];
-	}
-      }
-    }
-
-    // init x scale Bresenham
-    xt = 0;
-    d0 = (1 << 23) / (yStep * xp);
-    d1 = (1 << 23) / (yStep * (xp + 1));
-
-    xx = xxa = 0;
-    for (x = 0; x < scaledWidth; ++x) {
-
-      // x scale Bresenham
-      if ((xt += xq) >= scaledWidth) {
-	xt -= scaledWidth;
-	xStep = xp + 1;
-	d = d1;
-      } else {
-	xStep = xp;
-	d = d0;
-      }
-
-      switch (srcMode) {
-
-      case splashModeMono8:
-
-	// compute the final pixel
-	pix0 = 0;
-	for (i = 0; i < xStep; ++i) {
-	  pix0 += pixBuf[xx++];
-	}
-	// pix / xStep * yStep
-	pix0 = (pix0 * d) >> 23;
-
-	// store the pixel
-	*destPtr++ = (Guchar)pix0;
-	break;
-
-      case splashModeRGB8:
-
-	// compute the final pixel
-	pix0 = pix1 = pix2 = 0;
-	for (i = 0; i < xStep; ++i) {
-	  pix0 += pixBuf[xx];
-	  pix1 += pixBuf[xx+1];
-	  pix2 += pixBuf[xx+2];
-	  xx += 3;
-	}
-	// pix / xStep * yStep
-	pix0 = (pix0 * d) >> 23;
-	pix1 = (pix1 * d) >> 23;
-	pix2 = (pix2 * d) >> 23;
-
-	// store the pixel
-	*destPtr++ = (Guchar)pix0;
-	*destPtr++ = (Guchar)pix1;
-	*destPtr++ = (Guchar)pix2;
-	break;
-
-      case splashModeXBGR8:
-
-	// compute the final pixel
-	pix0 = pix1 = pix2 = 0;
-	for (i = 0; i < xStep; ++i) {
-	  pix0 += pixBuf[xx];
-	  pix1 += pixBuf[xx+1];
-	  pix2 += pixBuf[xx+2];
-	  xx += 4;
-	}
-	// pix / xStep * yStep
-	pix0 = (pix0 * d) >> 23;
-	pix1 = (pix1 * d) >> 23;
-	pix2 = (pix2 * d) >> 23;
-
-	// store the pixel
-	*destPtr++ = (Guchar)pix2;
-	*destPtr++ = (Guchar)pix1;
-	*destPtr++ = (Guchar)pix0;
-	*destPtr++ = (Guchar)255;
-	break;
-
-      case splashModeBGR8:
-
-	// compute the final pixel
-	pix0 = pix1 = pix2 = 0;
-	for (i = 0; i < xStep; ++i) {
-	  pix0 += pixBuf[xx];
-	  pix1 += pixBuf[xx+1];
-	  pix2 += pixBuf[xx+2];
-	  xx += 3;
-	}
-	// pix / xStep * yStep
-	pix0 = (pix0 * d) >> 23;
-	pix1 = (pix1 * d) >> 23;
-	pix2 = (pix2 * d) >> 23;
-
-	// store the pixel
-	*destPtr++ = (Guchar)pix2;
-	*destPtr++ = (Guchar)pix1;
-	*destPtr++ = (Guchar)pix0;
-	break;
-
-#if SPLASH_CMYK
-      case splashModeCMYK8:
-
-	// compute the final pixel
-	pix0 = pix1 = pix2 = pix3 = 0;
-	for (i = 0; i < xStep; ++i) {
-	  pix0 += pixBuf[xx];
-	  pix1 += pixBuf[xx+1];
-	  pix2 += pixBuf[xx+2];
-	  pix3 += pixBuf[xx+3];
-	  xx += 4;
-	}
-	// pix / xStep * yStep
-	pix0 = (pix0 * d) >> 23;
-	pix1 = (pix1 * d) >> 23;
-	pix2 = (pix2 * d) >> 23;
-	pix3 = (pix3 * d) >> 23;
-
-	// store the pixel
-	*destPtr++ = (Guchar)pix0;
-	*destPtr++ = (Guchar)pix1;
-	*destPtr++ = (Guchar)pix2;
-	*destPtr++ = (Guchar)pix3;
-	break;
-      case splashModeDeviceN8:
-
-	// compute the final pixel
-  for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
-    pix[cp] = 0;
-	for (i = 0; i < xStep; ++i) {
-    for (cp = 0; cp < SPOT_NCOMPS+4; cp++) {
-      pix[cp] += pixBuf[xx + cp];
-    }
-    xx += (SPOT_NCOMPS+4);
-	}
-	// pix / xStep * yStep
-  for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
-    pix[cp] = (pix[cp] * d) >> 23;
-
-	// store the pixel
-  for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
-    *destPtr++ = (Guchar)pix[cp];
-	break;
-#endif
-
-
-      case splashModeMono1: // mono1 is not allowed
-      default:
-	break;
-      }
-
-      // process alpha
-      if (srcAlpha) {
-	alpha = 0;
-	for (i = 0; i < xStep; ++i, ++xxa) {
-	  alpha += alphaPixBuf[xxa];
-	}
-	// alpha / xStep * yStep
-	alpha = (alpha * d) >> 23;
-	*destAlphaPtr++ = (Guchar)alpha;
-      }
-    }
-  }
-
-  gfree(alphaPixBuf);
-  gfree(alphaLineBuf);
-  gfree(pixBuf);
-  gfree(lineBuf);
-}
-
-void Splash::scaleImageYdXu(SplashImageSource src, void *srcData,
-			    SplashColorMode srcMode, int nComps,
-			    GBool srcAlpha, int srcWidth, int srcHeight,
-			    int scaledWidth, int scaledHeight,
-			    SplashBitmap *dest) {
-  Guchar *lineBuf, *alphaLineBuf;
-  Guint *pixBuf, *alphaPixBuf;
-  Guint pix[splashMaxColorComps];
-  Guint alpha;
-  Guchar *destPtr, *destAlphaPtr;
-  int yp, yq, xp, xq, yt, y, yStep, xt, x, xStep, d;
-  int i, j;
-
-  // Bresenham parameters for y scale
-  yp = srcHeight / scaledHeight;
-  yq = srcHeight % scaledHeight;
-
-  // Bresenham parameters for x scale
-  xp = scaledWidth / srcWidth;
-  xq = scaledWidth % srcWidth;
-
-  // allocate buffers
-  lineBuf = (Guchar *)gmallocn(srcWidth, nComps);
-  pixBuf = (Guint *)gmallocn(srcWidth, nComps * sizeof(int));
-  if (srcAlpha) {
-    alphaLineBuf = (Guchar *)gmalloc(srcWidth);
-    alphaPixBuf = (Guint *)gmallocn(srcWidth, sizeof(int));
-  } else {
-    alphaLineBuf = NULL;
-    alphaPixBuf = NULL;
-  }
-
-  // init y scale Bresenham
-  yt = 0;
-
-  destPtr = dest->data;
-  destAlphaPtr = dest->alpha;
-  for (y = 0; y < scaledHeight; ++y) {
-
-    // y scale Bresenham
-    if ((yt += yq) >= scaledHeight) {
-      yt -= scaledHeight;
-      yStep = yp + 1;
-    } else {
-      yStep = yp;
-    }
-
-    // read rows from image
-    memset(pixBuf, 0, srcWidth * nComps * sizeof(int));
-    if (srcAlpha) {
-      memset(alphaPixBuf, 0, srcWidth * sizeof(int));
-    }
-    for (i = 0; i < yStep; ++i) {
-      (*src)(srcData, lineBuf, alphaLineBuf);
-      for (j = 0; j < srcWidth * nComps; ++j) {
-	pixBuf[j] += lineBuf[j];
-      }
-      if (srcAlpha) {
-	for (j = 0; j < srcWidth; ++j) {
-	  alphaPixBuf[j] += alphaLineBuf[j];
-	}
-      }
-    }
-
-    // init x scale Bresenham
-    xt = 0;
-    d = (1 << 23) / yStep;
-
-    for (x = 0; x < srcWidth; ++x) {
-
-      // x scale Bresenham
-      if ((xt += xq) >= srcWidth) {
-	xt -= srcWidth;
-	xStep = xp + 1;
-      } else {
-	xStep = xp;
-      }
-
-      // compute the final pixel
-      for (i = 0; i < nComps; ++i) {
-	// pixBuf[] / yStep
-	pix[i] = (pixBuf[x * nComps + i] * d) >> 23;
-      }
-
-      // store the pixel
-      switch (srcMode) {
-      case splashModeMono1: // mono1 is not allowed
-	break;
-      case splashModeMono8:
-	for (i = 0; i < xStep; ++i) {
-	  *destPtr++ = (Guchar)pix[0];
-	}
-	break;
-      case splashModeRGB8:
-	for (i = 0; i < xStep; ++i) {
-	  *destPtr++ = (Guchar)pix[0];
-	  *destPtr++ = (Guchar)pix[1];
-	  *destPtr++ = (Guchar)pix[2];
-	}
-	break;
-      case splashModeXBGR8:
-	for (i = 0; i < xStep; ++i) {
-	  *destPtr++ = (Guchar)pix[2];
-	  *destPtr++ = (Guchar)pix[1];
-	  *destPtr++ = (Guchar)pix[0];
-	  *destPtr++ = (Guchar)255;
-	}
-	break;
-      case splashModeBGR8:
-	for (i = 0; i < xStep; ++i) {
-	  *destPtr++ = (Guchar)pix[2];
-	  *destPtr++ = (Guchar)pix[1];
-	  *destPtr++ = (Guchar)pix[0];
-	}
-	break;
-#if SPLASH_CMYK
-      case splashModeCMYK8:
-	for (i = 0; i < xStep; ++i) {
-	  *destPtr++ = (Guchar)pix[0];
-	  *destPtr++ = (Guchar)pix[1];
-	  *destPtr++ = (Guchar)pix[2];
-	  *destPtr++ = (Guchar)pix[3];
-	}
-	break;
-      case splashModeDeviceN8:
-	for (i = 0; i < xStep; ++i) {
-    for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
-      *destPtr++ = (Guchar)pix[cp];
-	}
-	break;
-#endif
-      }
-
-      // process alpha
-      if (srcAlpha) {
-	// alphaPixBuf[] / yStep
-	alpha = (alphaPixBuf[x] * d) >> 23;
-	for (i = 0; i < xStep; ++i) {
-	  *destAlphaPtr++ = (Guchar)alpha;
-	}
-      }
-    }
-  }
-
-  gfree(alphaPixBuf);
-  gfree(alphaLineBuf);
-  gfree(pixBuf);
-  gfree(lineBuf);
-}
-
-void Splash::scaleImageYuXd(SplashImageSource src, void *srcData,
-			    SplashColorMode srcMode, int nComps,
-			    GBool srcAlpha, int srcWidth, int srcHeight,
-			    int scaledWidth, int scaledHeight,
-			    SplashBitmap *dest) {
-  Guchar *lineBuf, *alphaLineBuf;
-  Guint pix[splashMaxColorComps];
-  Guint alpha;
-  Guchar *destPtr0, *destPtr, *destAlphaPtr0, *destAlphaPtr;
-  int yp, yq, xp, xq, yt, y, yStep, xt, x, xStep, xx, xxa, d, d0, d1;
-  int i, j;
-
-  // Bresenham parameters for y scale
-  yp = scaledHeight / srcHeight;
-  yq = scaledHeight % srcHeight;
-
-  // Bresenham parameters for x scale
-  xp = srcWidth / scaledWidth;
-  xq = srcWidth % scaledWidth;
-
-  // allocate buffers
-  lineBuf = (Guchar *)gmallocn_checkoverflow(srcWidth, nComps);
-  if (unlikely(!lineBuf))
-    return;
-  if (srcAlpha) {
-    alphaLineBuf = (Guchar *)gmalloc(srcWidth);
-  } else {
-    alphaLineBuf = NULL;
-  }
-
-  // init y scale Bresenham
-  yt = 0;
-
-  destPtr0 = dest->data;
-  destAlphaPtr0 = dest->alpha;
-  for (y = 0; y < srcHeight; ++y) {
-
-    // y scale Bresenham
-    if ((yt += yq) >= srcHeight) {
-      yt -= srcHeight;
-      yStep = yp + 1;
-    } else {
-      yStep = yp;
-    }
-
-    // read row from image
-    (*src)(srcData, lineBuf, alphaLineBuf);
-
-    // init x scale Bresenham
-    xt = 0;
-    d0 = (1 << 23) / xp;
-    d1 = (1 << 23) / (xp + 1);
-
-    xx = xxa = 0;
-    for (x = 0; x < scaledWidth; ++x) {
-
-      // x scale Bresenham
-      if ((xt += xq) >= scaledWidth) {
-	xt -= scaledWidth;
-	xStep = xp + 1;
-	d = d1;
-      } else {
-	xStep = xp;
-	d = d0;
-      }
-
-      // compute the final pixel
-      for (i = 0; i < nComps; ++i) {
-	pix[i] = 0;
-      }
-      for (i = 0; i < xStep; ++i) {
-	for (j = 0; j < nComps; ++j, ++xx) {
-	  pix[j] += lineBuf[xx];
-	}
-      }
-      for (i = 0; i < nComps; ++i) {
-	// pix[] / xStep
-	pix[i] = (pix[i] * d) >> 23;
-      }
-
-      // store the pixel
-      switch (srcMode) {
-      case splashModeMono1: // mono1 is not allowed
-	break;
-      case splashModeMono8:
-	for (i = 0; i < yStep; ++i) {
-	  destPtr = destPtr0 + (i * scaledWidth + x) * nComps;
-	  *destPtr++ = (Guchar)pix[0];
-	}
-	break;
-      case splashModeRGB8:
-	for (i = 0; i < yStep; ++i) {
-	  destPtr = destPtr0 + (i * scaledWidth + x) * nComps;
-	  *destPtr++ = (Guchar)pix[0];
-	  *destPtr++ = (Guchar)pix[1];
-	  *destPtr++ = (Guchar)pix[2];
-	}
-	break;
-      case splashModeXBGR8:
-	for (i = 0; i < yStep; ++i) {
-	  destPtr = destPtr0 + (i * scaledWidth + x) * nComps;
-	  *destPtr++ = (Guchar)pix[2];
-	  *destPtr++ = (Guchar)pix[1];
-	  *destPtr++ = (Guchar)pix[0];
-	  *destPtr++ = (Guchar)255;
-	}
-	break;
-      case splashModeBGR8:
-	for (i = 0; i < yStep; ++i) {
-	  destPtr = destPtr0 + (i * scaledWidth + x) * nComps;
-	  *destPtr++ = (Guchar)pix[2];
-	  *destPtr++ = (Guchar)pix[1];
-	  *destPtr++ = (Guchar)pix[0];
-	}
-	break;
-#if SPLASH_CMYK
-      case splashModeCMYK8:
-	for (i = 0; i < yStep; ++i) {
-	  destPtr = destPtr0 + (i * scaledWidth + x) * nComps;
-	  *destPtr++ = (Guchar)pix[0];
-	  *destPtr++ = (Guchar)pix[1];
-	  *destPtr++ = (Guchar)pix[2];
-	  *destPtr++ = (Guchar)pix[3];
-	}
-	break;
-      case splashModeDeviceN8:
-	for (i = 0; i < yStep; ++i) {
-	  destPtr = destPtr0 + (i * scaledWidth + x) * nComps;
-    for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
-      *destPtr++ = (Guchar)pix[cp];
-	}
-	break;
-#endif
-      }
-
-      // process alpha
-      if (srcAlpha) {
-	alpha = 0;
-	for (i = 0; i < xStep; ++i, ++xxa) {
-	  alpha += alphaLineBuf[xxa];
-	}
-	// alpha / xStep
-	alpha = (alpha * d) >> 23;
-	for (i = 0; i < yStep; ++i) {
-	  destAlphaPtr = destAlphaPtr0 + i * scaledWidth + x;
-	  *destAlphaPtr = (Guchar)alpha;
-	}
-      }
-    }
-
-    destPtr0 += yStep * scaledWidth * nComps;
-    if (srcAlpha) {
-      destAlphaPtr0 += yStep * scaledWidth;
-    }
-  }
-
-  gfree(alphaLineBuf);
-  gfree(lineBuf);
-}
-
-void Splash::scaleImageYuXu(SplashImageSource src, void *srcData,
-			    SplashColorMode srcMode, int nComps,
-			    GBool srcAlpha, int srcWidth, int srcHeight,
-			    int scaledWidth, int scaledHeight,
-			    SplashBitmap *dest) {
-  Guchar *lineBuf, *alphaLineBuf;
-  Guint pix[splashMaxColorComps];
-  Guint alpha;
-  Guchar *destPtr0, *destPtr, *destAlphaPtr0, *destAlphaPtr;
-  int yp, yq, xp, xq, yt, y, yStep, xt, x, xStep, xx;
-  int i, j;
-
-  // Bresenham parameters for y scale
-  yp = scaledHeight / srcHeight;
-  yq = scaledHeight % srcHeight;
-
-  // Bresenham parameters for x scale
-  xp = scaledWidth / srcWidth;
-  xq = scaledWidth % srcWidth;
-
-  // allocate buffers
-  lineBuf = (Guchar *)gmallocn(srcWidth, nComps);
-  if (srcAlpha) {
-    alphaLineBuf = (Guchar *)gmalloc(srcWidth);
-  } else {
-    alphaLineBuf = NULL;
-  }
-
-  // init y scale Bresenham
-  yt = 0;
-
-  destPtr0 = dest->data;
-  destAlphaPtr0 = dest->alpha;
-  for (y = 0; y < srcHeight; ++y) {
-
-    // y scale Bresenham
-    if ((yt += yq) >= srcHeight) {
-      yt -= srcHeight;
-      yStep = yp + 1;
-    } else {
-      yStep = yp;
-    }
-
-    // read row from image
-    (*src)(srcData, lineBuf, alphaLineBuf);
-
-    // init x scale Bresenham
-    xt = 0;
-
-    xx = 0;
-    for (x = 0; x < srcWidth; ++x) {
-
-      // x scale Bresenham
-      if ((xt += xq) >= srcWidth) {
-	xt -= srcWidth;
-	xStep = xp + 1;
-      } else {
-	xStep = xp;
-      }
-
-      // compute the final pixel
-      for (i = 0; i < nComps; ++i) {
-	pix[i] = lineBuf[x * nComps + i];
-      }
-
-      // store the pixel
-      switch (srcMode) {
-      case splashModeMono1: // mono1 is not allowed
-	break;
-      case splashModeMono8:
-	for (i = 0; i < yStep; ++i) {
-	  for (j = 0; j < xStep; ++j) {
-	    destPtr = destPtr0 + (i * scaledWidth + xx + j) * nComps;
-	    *destPtr++ = (Guchar)pix[0];
-	  }
-	}
-	break;
-      case splashModeRGB8:
-	for (i = 0; i < yStep; ++i) {
-	  for (j = 0; j < xStep; ++j) {
-	    destPtr = destPtr0 + (i * scaledWidth + xx + j) * nComps;
-	    *destPtr++ = (Guchar)pix[0];
-	    *destPtr++ = (Guchar)pix[1];
-	    *destPtr++ = (Guchar)pix[2];
-	  }
-	}
-	break;
-      case splashModeXBGR8:
-	for (i = 0; i < yStep; ++i) {
-	  for (j = 0; j < xStep; ++j) {
-	    destPtr = destPtr0 + (i * scaledWidth + xx + j) * nComps;
-	    *destPtr++ = (Guchar)pix[2];
-	    *destPtr++ = (Guchar)pix[1];
-	    *destPtr++ = (Guchar)pix[0];
-	    *destPtr++ = (Guchar)255;
-	  }
-	}
-	break;
-      case splashModeBGR8:
-	for (i = 0; i < yStep; ++i) {
-	  for (j = 0; j < xStep; ++j) {
-	    destPtr = destPtr0 + (i * scaledWidth + xx + j) * nComps;
-	    *destPtr++ = (Guchar)pix[2];
-	    *destPtr++ = (Guchar)pix[1];
-	    *destPtr++ = (Guchar)pix[0];
-	  }
-	}
-	break;
-#if SPLASH_CMYK
-      case splashModeCMYK8:
-	for (i = 0; i < yStep; ++i) {
-	  for (j = 0; j < xStep; ++j) {
-	    destPtr = destPtr0 + (i * scaledWidth + xx + j) * nComps;
-	    *destPtr++ = (Guchar)pix[0];
-	    *destPtr++ = (Guchar)pix[1];
-	    *destPtr++ = (Guchar)pix[2];
-	    *destPtr++ = (Guchar)pix[3];
-	  }
-	}
-	break;
-      case splashModeDeviceN8:
-	for (i = 0; i < yStep; ++i) {
-	  for (j = 0; j < xStep; ++j) {
-	    destPtr = destPtr0 + (i * scaledWidth + xx + j) * nComps;
-      for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
-        *destPtr++ = (Guchar)pix[cp];
-	  }
-	}
-	break;
-#endif
-      }
-
-      // process alpha
-      if (srcAlpha) {
-	alpha = alphaLineBuf[x];
-	for (i = 0; i < yStep; ++i) {
-	  for (j = 0; j < xStep; ++j) {
-	    destAlphaPtr = destAlphaPtr0 + i * scaledWidth + xx + j;
-	    *destAlphaPtr = (Guchar)alpha;
-	  }
-	}
-      }
-
-      xx += xStep;
-    }
-
-    destPtr0 += yStep * scaledWidth * nComps;
-    if (srcAlpha) {
-      destAlphaPtr0 += yStep * scaledWidth;
-    }
-  }
-
-  gfree(alphaLineBuf);
-  gfree(lineBuf);
-}
-
-// expand source row to scaledWidth using linear interpolation
-static void expandRow(Guchar *srcBuf, Guchar *dstBuf, int srcWidth, int scaledWidth, int nComps)
-{
-  double xStep = (double)srcWidth/scaledWidth;
-  double xSrc = 0.0;
-  double xFrac, xInt;
-  int p;
-
-  // pad the source with an extra pixel equal to the last pixel
-  // so that when xStep is inside the last pixel we still have two
-  // pixels to interpolate between.
-  for (int i = 0; i < nComps; i++)
-    srcBuf[srcWidth*nComps + i] = srcBuf[(srcWidth-1)*nComps + i];
-
-  for (int x = 0; x < scaledWidth; x++) {
-    xFrac = modf(xSrc, &xInt);
-    p = (int)xInt;
-    for (int c = 0; c < nComps; c++) {
-      dstBuf[nComps*x + c] = srcBuf[nComps*p + c]*(1.0 - xFrac) + srcBuf[nComps*(p+1) + c]*xFrac;
-    }
-    xSrc += xStep;
-  }
-}
-
-// Scale up image using bilinear interpolation
-void Splash::scaleImageYuXuBilinear(SplashImageSource src, void *srcData,
-                                    SplashColorMode srcMode, int nComps,
-                                    GBool srcAlpha, int srcWidth, int srcHeight,
-                                    int scaledWidth, int scaledHeight,
-                                    SplashBitmap *dest) {
-  Guchar *srcBuf, *lineBuf1, *lineBuf2, *alphaSrcBuf, *alphaLineBuf1, *alphaLineBuf2;
-  Guint pix[splashMaxColorComps];
-  Guchar *destPtr0, *destPtr, *destAlphaPtr0, *destAlphaPtr;
-  int i;
-
-  if (srcWidth < 1 || srcHeight < 1)
-    return;
-
-  // allocate buffers
-  srcBuf = (Guchar *)gmallocn(srcWidth+1, nComps); // + 1 pixel of padding
-  lineBuf1 = (Guchar *)gmallocn(scaledWidth, nComps);
-  lineBuf2 = (Guchar *)gmallocn(scaledWidth, nComps);
-  if (srcAlpha) {
-    alphaSrcBuf = (Guchar *)gmalloc(srcWidth+1); // + 1 pixel of padding
-    alphaLineBuf1 = (Guchar *)gmalloc(scaledWidth);
-    alphaLineBuf2 = (Guchar *)gmalloc(scaledWidth);
-  } else {
-    alphaSrcBuf = NULL;
-    alphaLineBuf1 = NULL;
-    alphaLineBuf2 = NULL;
-  }
-
-  double ySrc = 0.0;
-  double yStep = (double)srcHeight/scaledHeight;
-  double yFrac, yInt;
-  int currentSrcRow = -1;
-  (*src)(srcData, srcBuf, alphaSrcBuf);
-  expandRow(srcBuf, lineBuf2, srcWidth, scaledWidth, nComps);
-  if (srcAlpha)
-    expandRow(alphaSrcBuf, alphaLineBuf2, srcWidth, scaledWidth, 1);
-
-  destPtr0 = dest->data;
-  destAlphaPtr0 = dest->alpha;
-  for (int y = 0; y < scaledHeight; y++) {
-    yFrac = modf(ySrc, &yInt);
-    if ((int)yInt > currentSrcRow) {
-      currentSrcRow++;
-      // Copy line2 data to line1 and get next line2 data.
-      // If line2 already contains the last source row we don't touch it.
-      // This effectively adds an extra row of padding for interpolating the
-      // last source row with.
-      memcpy(lineBuf1, lineBuf2, scaledWidth * nComps);
-      if (srcAlpha)
-        memcpy(alphaLineBuf1, alphaLineBuf2, scaledWidth);
-      if (currentSrcRow < srcHeight) {
-        (*src)(srcData, srcBuf, alphaSrcBuf);
-        expandRow(srcBuf, lineBuf2, srcWidth, scaledWidth, nComps);
-        if (srcAlpha)
-          expandRow(alphaSrcBuf, alphaLineBuf2, srcWidth, scaledWidth, 1);
-      }
-    }
-
-    // write row y using linear interpolation on lineBuf1 and lineBuf2
-    for (int x = 0; x < scaledWidth; ++x) {
-      // compute the final pixel
-      for (i = 0; i < nComps; ++i) {
-	pix[i] = lineBuf1[x*nComps + i]*(1.0 - yFrac) + lineBuf2[x*nComps + i]*yFrac;
-      }
-
-      // store the pixel
-      destPtr = destPtr0 + (y * scaledWidth + x) * nComps;
-      switch (srcMode) {
-        case splashModeMono1: // mono1 is not allowed
-          break;
-        case splashModeMono8:
-          *destPtr++ = (Guchar)pix[0];
-          break;
-        case splashModeRGB8:
-          *destPtr++ = (Guchar)pix[0];
-          *destPtr++ = (Guchar)pix[1];
-          *destPtr++ = (Guchar)pix[2];
-          break;
-        case splashModeXBGR8:
-          *destPtr++ = (Guchar)pix[2];
-          *destPtr++ = (Guchar)pix[1];
-          *destPtr++ = (Guchar)pix[0];
-          *destPtr++ = (Guchar)255;
-          break;
-        case splashModeBGR8:
-          *destPtr++ = (Guchar)pix[2];
-          *destPtr++ = (Guchar)pix[1];
-          *destPtr++ = (Guchar)pix[0];
-          break;
-#if SPLASH_CMYK
-        case splashModeCMYK8:
-          *destPtr++ = (Guchar)pix[0];
-          *destPtr++ = (Guchar)pix[1];
-          *destPtr++ = (Guchar)pix[2];
-          *destPtr++ = (Guchar)pix[3];
-          break;
-        case splashModeDeviceN8:
-          for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
-            *destPtr++ = (Guchar)pix[cp];
-          break;
-#endif
-      }
-
-      // process alpha
-      if (srcAlpha) {
-        destAlphaPtr = destAlphaPtr0 + y*scaledWidth + x;
-        *destAlphaPtr = alphaLineBuf1[x]*(1.0 - yFrac) + alphaLineBuf2[x]*yFrac;
-      }
-    }
-
-    ySrc += yStep;
-  }
-
-  gfree(alphaSrcBuf);
-  gfree(alphaLineBuf1);
-  gfree(alphaLineBuf2);
-  gfree(srcBuf);
-  gfree(lineBuf1);
-  gfree(lineBuf2);
-}
-
-void Splash::vertFlipImage(SplashBitmap *img, int width, int height,
-			   int nComps) {
-  Guchar *lineBuf;
-  Guchar *p0, *p1;
-  int w;
-  
-  if (unlikely(img->data == NULL)) {
-    error(errInternal, -1, "img->data is NULL in Splash::vertFlipImage");
-    return;
-  }
-
-  w = width * nComps;
-  lineBuf = (Guchar *)gmalloc(w);
-  for (p0 = img->data, p1 = img->data + (height - 1) * w;
-       p0 < p1;
-       p0 += w, p1 -= w) {
-    memcpy(lineBuf, p0, w);
-    memcpy(p0, p1, w);
-    memcpy(p1, lineBuf, w);
-  }
-  if (img->alpha) {
-    for (p0 = img->alpha, p1 = img->alpha + (height - 1) * width;
-	 p0 < p1;
-	 p0 += width, p1 -= width) {
-      memcpy(lineBuf, p0, width);
-      memcpy(p0, p1, width);
-      memcpy(p1, lineBuf, width);
-    }
-  }
-  gfree(lineBuf);
-}
-
-void Splash::blitImage(SplashBitmap *src, GBool srcAlpha, int xDest, int yDest) {
-  SplashClipResult clipRes = state->clip->testRect(xDest, yDest, xDest + src->getWidth() - 1, yDest + src->getHeight() - 1);
-  if (clipRes != splashClipAllOutside) {
-    blitImage(src, srcAlpha, xDest, yDest, clipRes);
-  }
-}
-
-void Splash::blitImage(SplashBitmap *src, GBool srcAlpha, int xDest, int yDest,
-		       SplashClipResult clipRes) {
-  SplashPipe pipe;
-  SplashColor pixel;
-  Guchar *ap;
-  int w, h, x0, y0, x1, y1, x, y;
-
-  // split the image into clipped and unclipped regions
-  w = src->getWidth();
-  h = src->getHeight();
-  if (clipRes == splashClipAllInside) {
-    x0 = 0;
-    y0 = 0;
-    x1 = w;
-    y1 = h;
-  } else {
-    if (state->clip->getNumPaths()) {
-      x0 = x1 = w;
-      y0 = y1 = h;
-    } else {
-      if ((x0 = splashCeil(state->clip->getXMin()) - xDest) < 0) {
-	x0 = 0;
-      }
-      if ((y0 = splashCeil(state->clip->getYMin()) - yDest) < 0) {
-	y0 = 0;
-      }
-      if ((x1 = splashFloor(state->clip->getXMax()) - xDest) > w) {
-	x1 = w;
-      }
-      if (x1 < x0) {
-	x1 = x0;
-      }
-      if ((y1 = splashFloor(state->clip->getYMax()) - yDest) > h) {
-	y1 = h;
-      }
-      if (y1 < y0) {
-	y1 = y0;
-      }
-    }
-  }
-
-  // draw the unclipped region
-  if (x0 < w && y0 < h && x0 < x1 && y0 < y1) {
-    pipeInit(&pipe, xDest + x0, yDest + y0, NULL, pixel,
-	     (Guchar)splashRound(state->fillAlpha * 255), srcAlpha, gFalse);
-    if (srcAlpha) {
-      for (y = y0; y < y1; ++y) {
-	pipeSetXY(&pipe, xDest + x0, yDest + y);
-	ap = src->getAlphaPtr() + y * w + x0;
-	for (x = x0; x < x1; ++x) {
-	  src->getPixel(x, y, pixel);
-	  pipe.shape = *ap++;
-	  (this->*pipe.run)(&pipe);
-	}
-      }
-    } else {
-      for (y = y0; y < y1; ++y) {
-	pipeSetXY(&pipe, xDest + x0, yDest + y);
-	for (x = x0; x < x1; ++x) {
-	  src->getPixel(x, y, pixel);
-	  (this->*pipe.run)(&pipe);
-	}
-      }
-    }
-    updateModX(xDest + x0);
-    updateModX(xDest + x1 - 1);
-    updateModY(yDest + y0);
-    updateModY(yDest + y1 - 1);
-  }
-
-  // draw the clipped regions
-  if (y0 > 0) {
-    blitImageClipped(src, srcAlpha, 0, 0, xDest, yDest, w, y0);
-  }
-  if (y1 < h) {
-    blitImageClipped(src, srcAlpha, 0, y1, xDest, yDest + y1, w, h - y1);
-  }
-  if (x0 > 0 && y0 < y1) {
-    blitImageClipped(src, srcAlpha, 0, y0, xDest, yDest + y0, x0, y1 - y0);
-  }
-  if (x1 < w && y0 < y1) {
-    blitImageClipped(src, srcAlpha, x1, y0, xDest + x1, yDest + y0,
-		     w - x1, y1 - y0);
-  }
-}
-
-void Splash::blitImageClipped(SplashBitmap *src, GBool srcAlpha,
-			      int xSrc, int ySrc, int xDest, int yDest,
-			      int w, int h) {
-  SplashPipe pipe;
-  SplashColor pixel;
-  Guchar *ap;
-  int x, y;
-
-  if (vectorAntialias) {
-    pipeInit(&pipe, xDest, yDest, NULL, pixel,
-	     (Guchar)splashRound(state->fillAlpha * 255), gTrue, gFalse);
-    drawAAPixelInit();
-    if (srcAlpha) {
-      for (y = 0; y < h; ++y) {
-	ap = src->getAlphaPtr() + (ySrc + y) * src->getWidth() + xSrc;
-	for (x = 0; x < w; ++x) {
-	  src->getPixel(xSrc + x, ySrc + y, pixel);
-	  pipe.shape = *ap++;
-	  drawAAPixel(&pipe, xDest + x, yDest + y);
-	}
-      }
-    } else {
-      for (y = 0; y < h; ++y) {
-	for (x = 0; x < w; ++x) {
-	  src->getPixel(xSrc + x, ySrc + y, pixel);
-	  pipe.shape = 255;
-	  drawAAPixel(&pipe, xDest + x, yDest + y);
-	}
-      }
-    }
-  } else {
-    pipeInit(&pipe, xDest, yDest, NULL, pixel,
-	     (Guchar)splashRound(state->fillAlpha * 255), srcAlpha, gFalse);
-    if (srcAlpha) {
-      for (y = 0; y < h; ++y) {
-	ap = src->getAlphaPtr() + (ySrc + y) * src->getWidth() + xSrc;
-	pipeSetXY(&pipe, xDest, yDest + y);
-	for (x = 0; x < w; ++x) {
-	  if (state->clip->test(xDest + x, yDest + y)) {
-	    src->getPixel(xSrc + x, ySrc + y, pixel);
-	    pipe.shape = *ap++;
-	    (this->*pipe.run)(&pipe);
-	    updateModX(xDest + x);
-	    updateModY(yDest + y);
-	  } else {
-	    pipeIncX(&pipe);
-	    ++ap;
-	  }
-	}
-      }
-    } else {
-      for (y = 0; y < h; ++y) {
-	pipeSetXY(&pipe, xDest, yDest + y);
-	for (x = 0; x < w; ++x) {
-	  if (state->clip->test(xDest + x, yDest + y)) {
-	    src->getPixel(xSrc + x, ySrc + y, pixel);
-	    (this->*pipe.run)(&pipe);
-	    updateModX(xDest + x);
-	    updateModY(yDest + y);
-	  } else {
-	    pipeIncX(&pipe);
-	  }
-	}
-      }
-    }
-  }
-}
-
-SplashError Splash::composite(SplashBitmap *src, int xSrc, int ySrc,
-			      int xDest, int yDest, int w, int h,
-			      GBool noClip, GBool nonIsolated,
-			      GBool knockout, SplashCoord knockoutOpacity) {
-  SplashPipe pipe;
-  SplashColor pixel;
-  Guchar alpha;
-  Guchar *ap;
-  int x, y;
-
-  if (src->mode != bitmap->mode) {
-    return splashErrModeMismatch;
-  }
-
-  if (unlikely(!bitmap->data)) {
-    return splashErrZeroImage;
-  }
-
-  if(src->getSeparationList()->getLength() > bitmap->getSeparationList()->getLength()) {
-    for (x = bitmap->getSeparationList()->getLength(); x < src->getSeparationList()->getLength(); x++)
-      bitmap->getSeparationList()->append(((GfxSeparationColorSpace *)src->getSeparationList()->get(x))->copy());
-  }
-  if (src->alpha) {
-    pipeInit(&pipe, xDest, yDest, NULL, pixel,
-	     (Guchar)splashRound(state->fillAlpha * 255), gTrue, nonIsolated,
-	     knockout, (Guchar)splashRound(knockoutOpacity * 255));
-    if (noClip) {
-      for (y = 0; y < h; ++y) {
-	pipeSetXY(&pipe, xDest, yDest + y);
-	ap = src->getAlphaPtr() + (ySrc + y) * src->getWidth() + xSrc;
-	for (x = 0; x < w; ++x) {
-	  src->getPixel(xSrc + x, ySrc + y, pixel);
-	  alpha = *ap++;
-	  // this uses shape instead of alpha, which isn't technically
-	  // correct, but works out the same
-	  pipe.shape = alpha;
-	  (this->*pipe.run)(&pipe);
-	}
-      }
-      updateModX(xDest);
-      updateModX(xDest + w - 1);
-      updateModY(yDest);
-      updateModY(yDest + h - 1);
-    } else {
-      for (y = 0; y < h; ++y) {
-	pipeSetXY(&pipe, xDest, yDest + y);
-	ap = src->getAlphaPtr() + (ySrc + y) * src->getWidth() + xSrc;
-	for (x = 0; x < w; ++x) {
-	  src->getPixel(xSrc + x, ySrc + y, pixel);
-	  alpha = *ap++;
-	  if (state->clip->test(xDest + x, yDest + y)) {
-	    // this uses shape instead of alpha, which isn't technically
-	    // correct, but works out the same
-	    pipe.shape = alpha;
-	    (this->*pipe.run)(&pipe);
-	    updateModX(xDest + x);
-	    updateModY(yDest + y);
-	  } else {
-	    pipeIncX(&pipe);
-	  }
-	}
-      }
-    }
-  } else {
-    pipeInit(&pipe, xDest, yDest, NULL, pixel,
-	     (Guchar)splashRound(state->fillAlpha * 255), gFalse, nonIsolated);
-    if (noClip) {
-      for (y = 0; y < h; ++y) {
-	pipeSetXY(&pipe, xDest, yDest + y);
-	for (x = 0; x < w; ++x) {
-	  src->getPixel(xSrc + x, ySrc + y, pixel);
-	  (this->*pipe.run)(&pipe);
-	}
-      }
-      updateModX(xDest);
-      updateModX(xDest + w - 1);
-      updateModY(yDest);
-      updateModY(yDest + h - 1);
-    } else {
-      for (y = 0; y < h; ++y) {
-	pipeSetXY(&pipe, xDest, yDest + y);
-	for (x = 0; x < w; ++x) {
-	  src->getPixel(xSrc + x, ySrc + y, pixel);
-	  if (state->clip->test(xDest + x, yDest + y)) {
-	    (this->*pipe.run)(&pipe);
-	    updateModX(xDest + x);
-	    updateModY(yDest + y);
-	  } else {
-	    pipeIncX(&pipe);
-	  }
-	}
-      }
-    }
-  }
-
-  return splashOk;
-}
-
-void Splash::compositeBackground(SplashColorPtr color) {
-  SplashColorPtr p;
-  Guchar *q;
-  Guchar alpha, alpha1, c, color0, color1, color2;
-#if SPLASH_CMYK
-  Guchar color3;
-  Guchar colorsp[SPOT_NCOMPS+4], cp;
-#endif
-  int x, y, mask;
-
-  if (unlikely(bitmap->alpha == NULL)) {
-    error(errInternal, -1, "bitmap->alpha is NULL in Splash::compositeBackground");
-    return;
-  }
-
-  switch (bitmap->mode) {
-  case splashModeMono1:
-    color0 = color[0];
-    for (y = 0; y < bitmap->height; ++y) {
-      p = &bitmap->data[y * bitmap->rowSize];
-      q = &bitmap->alpha[y * bitmap->width];
-      mask = 0x80;
-      for (x = 0; x < bitmap->width; ++x) {
-	alpha = *q++;
-	alpha1 = 255 - alpha;
-	c = (*p & mask) ? 0xff : 0x00;
-	c = div255(alpha1 * color0 + alpha * c);
-	if (c & 0x80) {
-	  *p |= mask;
-	} else {
-	  *p &= ~mask;
-	}
-	if (!(mask >>= 1)) {
-	  mask = 0x80;
-	  ++p;
-	}
-      }
-    }
-    break;
-  case splashModeMono8:
-    color0 = color[0];
-    for (y = 0; y < bitmap->height; ++y) {
-      p = &bitmap->data[y * bitmap->rowSize];
-      q = &bitmap->alpha[y * bitmap->width];
-      for (x = 0; x < bitmap->width; ++x) {
-	alpha = *q++;
-	alpha1 = 255 - alpha;
-	p[0] = div255(alpha1 * color0 + alpha * p[0]);
-	++p;
-      }
-    }
-    break;
-  case splashModeRGB8:
-  case splashModeBGR8:
-    color0 = color[0];
-    color1 = color[1];
-    color2 = color[2];
-    for (y = 0; y < bitmap->height; ++y) {
-      p = &bitmap->data[y * bitmap->rowSize];
-      q = &bitmap->alpha[y * bitmap->width];
-      for (x = 0; x < bitmap->width; ++x) {
-	alpha = *q++;
-	if (alpha == 0)
-	{
-	  p[0] = color0;
-	  p[1] = color1;
-	  p[2] = color2;
-	}
-	else if (alpha != 255)
-	{
-	  alpha1 = 255 - alpha;
-	  p[0] = div255(alpha1 * color0 + alpha * p[0]);
-	  p[1] = div255(alpha1 * color1 + alpha * p[1]);
-	  p[2] = div255(alpha1 * color2 + alpha * p[2]);
-	}
-	p += 3;
-      }
-    }
-    break;
-  case splashModeXBGR8:
-    color0 = color[0];
-    color1 = color[1];
-    color2 = color[2];
-    for (y = 0; y < bitmap->height; ++y) {
-      p = &bitmap->data[y * bitmap->rowSize];
-      q = &bitmap->alpha[y * bitmap->width];
-      for (x = 0; x < bitmap->width; ++x) {
-	alpha = *q++;
-	if (alpha == 0)
-	{
-	  p[0] = color0;
-	  p[1] = color1;
-	  p[2] = color2;
-	}
-	else if (alpha != 255)
-	{
-	  alpha1 = 255 - alpha;
-	  p[0] = div255(alpha1 * color0 + alpha * p[0]);
-	  p[1] = div255(alpha1 * color1 + alpha * p[1]);
-	  p[2] = div255(alpha1 * color2 + alpha * p[2]);
-	}
-	p[3] = 255;
-	p += 4;
-      }
-    }
-    break;
-#if SPLASH_CMYK
-  case splashModeCMYK8:
-    color0 = color[0];
-    color1 = color[1];
-    color2 = color[2];
-    color3 = color[3];
-    for (y = 0; y < bitmap->height; ++y) {
-      p = &bitmap->data[y * bitmap->rowSize];
-      q = &bitmap->alpha[y * bitmap->width];
-      for (x = 0; x < bitmap->width; ++x) {
-	alpha = *q++;
-	if (alpha == 0)
-	{
-	  p[0] = color0;
-	  p[1] = color1;
-	  p[2] = color2;
-	  p[3] = color3;
-	}
-	else if (alpha != 255)
-	{
-	  alpha1 = 255 - alpha;
-	  p[0] = div255(alpha1 * color0 + alpha * p[0]);
-	  p[1] = div255(alpha1 * color1 + alpha * p[1]);
-	  p[2] = div255(alpha1 * color2 + alpha * p[2]);
-    p[3] = div255(alpha1 * color3 + alpha * p[3]);
-	}
-	p += 4;
-      }
-    }
-    break;
-  case splashModeDeviceN8:
-    for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
-      colorsp[cp] = color[cp];
-    for (y = 0; y < bitmap->height; ++y) {
-      p = &bitmap->data[y * bitmap->rowSize];
-      q = &bitmap->alpha[y * bitmap->width];
-      for (x = 0; x < bitmap->width; ++x) {
-	alpha = *q++;
-	if (alpha == 0)
-	{
-    for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
-      p[cp] = colorsp[cp];
-	}
-	else if (alpha != 255)
-	{
-	  alpha1 = 255 - alpha;
-    for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
-      p[cp] = div255(alpha1 * colorsp[cp] + alpha * p[cp]);
-	}
-	p += (SPOT_NCOMPS+4);
-      }
-    }
-    break;
-#endif
-  }
-  memset(bitmap->alpha, 255, bitmap->width * bitmap->height);
-}
-
-GBool Splash::gouraudTriangleShadedFill(SplashGouraudColor *shading)
-{
-  double xdbl[3] = {0., 0., 0.};
-  double ydbl[3] = {0., 0., 0.};
-  int    x[3] = {0, 0, 0};
-  int    y[3] = {0, 0, 0};
-  double xt=0., xa=0., yt=0.;
-  double ca=0., ct=0.;
-
-  // triangle interpolation:
-  //
-  double scanLimitMapL[2] = {0., 0.};
-  double scanLimitMapR[2] = {0., 0.};
-  double scanColorMapL[2] = {0., 0.};
-  double scanColorMapR[2] = {0., 0.};
-  double scanColorMap[2] = {0., 0.};
-  int scanEdgeL[2] = { 0, 0 };
-  int scanEdgeR[2] = { 0, 0 };
-  GBool hasFurtherSegment = gFalse;
-
-  int scanLineOff = 0;
-  int bitmapOff = 0;
-  int scanLimitR = 0, scanLimitL = 0;
-
-  int bitmapWidth = bitmap->getWidth();
-  SplashClip* clip = getClip();
-  SplashBitmap *blitTarget = bitmap;
-  SplashColorPtr bitmapData = bitmap->getDataPtr();
-  int bitmapOffLimit = bitmap->getHeight() * bitmap->getRowSize();
-  SplashColorPtr bitmapAlpha = bitmap->getAlphaPtr();
-  SplashColorPtr cur = NULL;
-  SplashCoord* userToCanvasMatrix = getMatrix();
-  SplashColorMode bitmapMode = bitmap->getMode();
-  GBool hasAlpha = (bitmapAlpha != NULL);
-  int rowSize = bitmap->getRowSize();
-  int colorComps = 0;
-  switch (bitmapMode) {
-    case splashModeMono1:
-    break;
-    case splashModeMono8:
-      colorComps=1;
-    break;
-    case splashModeRGB8:
-      colorComps=3;
-    break;
-    case splashModeBGR8:
-      colorComps=3;
-    break;
-    case splashModeXBGR8:
-      colorComps=4;
-    break;
-#if SPLASH_CMYK
-    case splashModeCMYK8:
-      colorComps=4;
-    break;
-    case splashModeDeviceN8:
-      colorComps=SPOT_NCOMPS+4;
-    break;
-#endif
-  }
-
-  SplashPipe pipe;
-  SplashColor cSrcVal;
-
-  pipeInit(&pipe, 0, 0, NULL, cSrcVal, (Guchar)splashRound(state->strokeAlpha * 255), gFalse, gFalse);
-
-  if (vectorAntialias) {
-    if (aaBuf == NULL)
-      return gFalse; // fall back to old behaviour
-    drawAAPixelInit();
-  }
-
-  // idea:
-  // 1. If pipe->noTransparency && !state->blendFunc
-  //  -> blit directly into the drawing surface!
-  //  -> disable alpha manually.
-  // 2. Otherwise:
-  // - blit also directly, but into an intermediate surface.
-  // Afterwards, blit the intermediate surface using the drawing pipeline.
-  // This is necessary because triangle elements can be on top of each
-  // other, so the complete shading needs to be drawn before opacity is
-  // applied.
-  // - the final step, is performed using a SplashPipe:
-  // - assign the actual color into cSrcVal: pipe uses cSrcVal by reference
-  // - invoke drawPixel(&pipe,X,Y,bNoClip);
-  GBool bDirectBlit = vectorAntialias ? gFalse : pipe.noTransparency && !state->blendFunc;
-  if (!bDirectBlit) {
-    blitTarget = new SplashBitmap(bitmap->getWidth(),
-                                  bitmap->getHeight(),
-                                  bitmap->getRowPad(),
-                                  bitmap->getMode(),
-                                  gTrue,
-                                  bitmap->getRowSize() >= 0);
-    bitmapData = blitTarget->getDataPtr();
-    bitmapAlpha = blitTarget->getAlphaPtr();
-
-    // initialisation seems to be necessary:
-    int S = bitmap->getWidth() * bitmap->getHeight();
-    for (int i = 0; i < S; ++i)
-      bitmapAlpha[i] = 0;
-    hasAlpha = gTrue;
-  }
-
-  if (shading->isParameterized()) {
-    double color[3];
-    double colorinterp;
-
-    for (int i = 0; i < shading->getNTriangles(); ++i) {
-      shading->getTriangle(i,
-                           xdbl + 0, ydbl + 0, color + 0,
-                           xdbl + 1, ydbl + 1, color + 1,
-                           xdbl + 2, ydbl + 2, color + 2);
-      for (int m = 0; m < 3; ++m) {
-        xt = xdbl[m] * (double)userToCanvasMatrix[0] + ydbl[m] * (double)userToCanvasMatrix[2] + (double)userToCanvasMatrix[4];
-        yt = xdbl[m] * (double)userToCanvasMatrix[1] + ydbl[m] * (double)userToCanvasMatrix[3] + (double)userToCanvasMatrix[5];
-        xdbl[m] = xt;
-        ydbl[m] = yt;
-        // we operate on scanlines which are integer offsets into the
-        // raster image. The double offsets are of no use here.
-        x[m] = splashRound(xt);
-        y[m] = splashRound(yt);
-      }
-      // sort according to y coordinate to simplify sweep through scanlines:
-      // INSERTION SORT.
-      if (y[0] > y[1]) {
-        Guswap(x[0], x[1]);
-        Guswap(y[0], y[1]);
-        Guswap(color[0], color[1]);
-      }
-      // first two are sorted.
-      assert(y[0] <= y[1]);
-      if (y[1] > y[2]) {
-        int tmpX = x[2];
-        int tmpY = y[2];
-        double tmpC = color[2];
-        x[2] = x[1]; y[2] = y[1]; color[2] = color[1];
-
-        if (y[0] > tmpY) {
-          x[1] = x[0]; y[1] = y[0]; color[1] = color[0];
-          x[0] = tmpX; y[0] = tmpY; color[0] = tmpC;
-        } else {
-          x[1] = tmpX; y[1] = tmpY; color[1] = tmpC;
-        }
-      }
-      // first three are sorted
-      assert(y[0] <= y[1]);
-      assert(y[1] <= y[2]);
-      /////
-
-      // this here is det( T ) == 0
-      // where T is the matrix to map to barycentric coordinates.
-      if ((x[0] - x[2]) * (y[1] - y[2]) - (x[1] - x[2]) * (y[0] - y[2]) == 0)
-        continue; // degenerate triangle.
-
-      // this here initialises the scanline generation.
-      // We start with low Y coordinates and sweep up to the large Y
-      // coordinates.
-      //
-      // scanEdgeL[m] in {0,1,2} m=0,1
-      // scanEdgeR[m] in {0,1,2} m=0,1
-      //
-      // are the two edges between which scanlines are (currently)
-      // sweeped. The values {0,1,2} are indices into 'x' and 'y'.
-      // scanEdgeL[0] = 0 means: the left scan edge has (x[0],y[0]) as vertex.
-      //
-      scanEdgeL[0] = 0;
-      scanEdgeR[0] = 0;
-      if (y[0] == y[1]) {
-        scanEdgeL[0] = 1;
-        scanEdgeL[1] = scanEdgeR[1] = 2;
-
-      } else {
-        scanEdgeL[1] = 1; scanEdgeR[1] = 2;
-      }
-      assert(y[scanEdgeL[0]] < y[scanEdgeL[1]]);
-      assert(y[scanEdgeR[0]] < y[scanEdgeR[1]]);
-
-      // Ok. Now prepare the linear maps which map the y coordinate of
-      // the current scanline to the corresponding LEFT and RIGHT x
-      // coordinate (which define the scanline).
-      scanLimitMapL[0] = double(x[scanEdgeL[1]] - x[scanEdgeL[0]]) / (y[scanEdgeL[1]] - y[scanEdgeL[0]]);
-      scanLimitMapL[1] = x[scanEdgeL[0]] - y[scanEdgeL[0]] * scanLimitMapL[0];
-      scanLimitMapR[0] = double(x[scanEdgeR[1]] - x[scanEdgeR[0]]) / (y[scanEdgeR[1]] - y[scanEdgeR[0]]);
-      scanLimitMapR[1] = x[scanEdgeR[0]] - y[scanEdgeR[0]] * scanLimitMapR[0];
-
-      xa = y[1] * scanLimitMapL[0] + scanLimitMapL[1];
-      xt = y[1] * scanLimitMapR[0] + scanLimitMapR[1];
-      if (xa > xt) {
-        // I have "left" is to the right of "right".
-        // Exchange sides!
-        Guswap(scanEdgeL[0], scanEdgeR[0]);
-        Guswap(scanEdgeL[1], scanEdgeR[1]);
-        Guswap(scanLimitMapL[0], scanLimitMapR[0]);
-        Guswap(scanLimitMapL[1], scanLimitMapR[1]);
-        // FIXME I'm sure there is a more efficient way to check this.
-      }
-
-      // Same game: we can linearly interpolate the color based on the
-      // current y coordinate (that's correct for triangle
-      // interpolation due to linearity. We could also have done it in
-      // barycentric coordinates, but that's slightly more involved)
-      scanColorMapL[0] = (color[scanEdgeL[1]] - color[scanEdgeL[0]]) / (y[scanEdgeL[1]] - y[scanEdgeL[0]]);
-      scanColorMapL[1] = color[scanEdgeL[0]] - y[scanEdgeL[0]] * scanColorMapL[0];
-      scanColorMapR[0] = (color[scanEdgeR[1]] - color[scanEdgeR[0]]) / (y[scanEdgeR[1]] - y[scanEdgeR[0]]);
-      scanColorMapR[1] = color[scanEdgeR[0]] - y[scanEdgeR[0]] * scanColorMapR[0];
-
-      hasFurtherSegment = (y[1] < y[2]);
-      scanLineOff = y[0] * rowSize;
-
-      for (int Y = y[0]; Y <= y[2]; ++Y, scanLineOff += rowSize) {
-        if (hasFurtherSegment && Y == y[1]) {
-          // SWEEP EVENT: we encountered the next segment.
-          //
-          // switch to next segment, either at left end or at right
-          // end:
-          if (scanEdgeL[1] == 1) {
-            scanEdgeL[0] = 1;
-            scanEdgeL[1] = 2;
-            scanLimitMapL[0] = double(x[scanEdgeL[1]] - x[scanEdgeL[0]]) / (y[scanEdgeL[1]] - y[scanEdgeL[0]]);
-            scanLimitMapL[1] = x[scanEdgeL[0]] - y[scanEdgeL[0]] * scanLimitMapL[0];
-
-            scanColorMapL[0] = (color[scanEdgeL[1]] - color[scanEdgeL[0]]) / (y[scanEdgeL[1]] - y[scanEdgeL[0]]);
-            scanColorMapL[1] = color[scanEdgeL[0]] - y[scanEdgeL[0]] * scanColorMapL[0];
-          } else if (scanEdgeR[1] == 1) {
-            scanEdgeR[0] = 1;
-            scanEdgeR[1] = 2;
-            scanLimitMapR[0] = double(x[scanEdgeR[1]] - x[scanEdgeR[0]]) / (y[scanEdgeR[1]] - y[scanEdgeR[0]]);
-            scanLimitMapR[1] = x[scanEdgeR[0]] - y[scanEdgeR[0]] * scanLimitMapR[0];
-
-            scanColorMapR[0] = (color[scanEdgeR[1]] - color[scanEdgeR[0]]) / (y[scanEdgeR[1]] - y[scanEdgeR[0]]);
-            scanColorMapR[1] = color[scanEdgeR[0]] - y[scanEdgeR[0]] * scanColorMapR[0];
-          }
-          assert( y[scanEdgeL[0]]  <  y[scanEdgeL[1]] );
-          assert( y[scanEdgeR[0]] <  y[scanEdgeR[1]] );
-          hasFurtherSegment = gFalse;
-        }
-
-        yt = Y;
-
-        xa = yt * scanLimitMapL[0] + scanLimitMapL[1];
-        xt = yt * scanLimitMapR[0] + scanLimitMapR[1];
-
-        ca = yt * scanColorMapL[0] + scanColorMapL[1];
-        ct = yt * scanColorMapR[0] + scanColorMapR[1];
-
-        scanLimitL = splashRound(xa);
-        scanLimitR = splashRound(xt);
-
-        // Ok. Now: init the color interpolation depending on the X
-        // coordinate inside of the current scanline:
-        scanColorMap[0] = (scanLimitR == scanLimitL) ? 0. : ((ct - ca) / (scanLimitR - scanLimitL));
-        scanColorMap[1] = ca - scanLimitL * scanColorMap[0];
-
-        // handled by clipping:
-        // assert( scanLimitL >= 0 && scanLimitR < bitmap->getWidth() );
-        assert(scanLimitL <= scanLimitR || abs(scanLimitL - scanLimitR) <= 2); // allow rounding inaccuracies
-        assert(scanLineOff == Y * rowSize);
-
-        colorinterp = scanColorMap[0] * scanLimitL + scanColorMap[1];
-
-        bitmapOff = scanLineOff + scanLimitL * colorComps;
-        if (likely(bitmapOff >= 0)) {
-	  for (int X = scanLimitL; X <= scanLimitR && bitmapOff + colorComps <= bitmapOffLimit; ++X, colorinterp += scanColorMap[0], bitmapOff += colorComps) {
-	    // FIXME : standard rectangular clipping can be done for a
-	    // complete scanline which is faster
-	    // --> see SplashClip and its methods
-	    if (!clip->test(X, Y))
-	      continue;
-
-	    assert(fabs(colorinterp - (scanColorMap[0] * X + scanColorMap[1])) < 1e-10);
-	    assert(bitmapOff == Y * rowSize + colorComps * X && scanLineOff == Y * rowSize);
-
-	    shading->getParameterizedColor(colorinterp, bitmapMode, &bitmapData[bitmapOff]);
-
-	    // make the shading visible.
-	    // Note that opacity is handled by the bDirectBlit stuff, see
-	    // above for comments and below for implementation.
-	    if (hasAlpha)
-	      bitmapAlpha[Y * bitmapWidth + X] = 255;
-	  }
-	}
-      }
-    }
-  } else {
-    if (!bDirectBlit) {
-      delete blitTarget;
-    }
-    return gFalse;
-  }
-
-  if (!bDirectBlit) {
-    // ok. Finalize the stuff by blitting the shading into the final
-    // geometry, this time respecting the rendering pipe.
-    int W = blitTarget->getWidth();
-    int H = blitTarget->getHeight();
-    cur = cSrcVal;
-
-    for (int X = 0; X < W; ++X) {
-      for (int Y = 0; Y < H; ++Y) {
-        if (!bitmapAlpha[Y * bitmapWidth + X])
-          continue; // draw only parts of the shading!
-        bitmapOff = Y * rowSize + colorComps * X;
-
-        for (int m = 0; m < colorComps; ++m)
-          cur[m] = bitmapData[bitmapOff + m];
-        if (vectorAntialias) {
-          drawAAPixel(&pipe, X, Y);
-        } else {
-          drawPixel(&pipe, X, Y, gTrue); // no clipping - has already been done.
-        }
-      }
-    }
-
-    delete blitTarget;
-    blitTarget = NULL;
-  }
-
-  return gTrue;
-}
-
-SplashError Splash::blitTransparent(SplashBitmap *src, int xSrc, int ySrc,
-				    int xDest, int yDest, int w, int h) {
-  SplashColorPtr p, sp;
-  Guchar *q;
-  int x, y, mask, srcMask;
-
-  if (src->mode != bitmap->mode) {
-    return splashErrModeMismatch;
-  }
-
-  if (unlikely(!bitmap->data)) {
-    return splashErrZeroImage;
-  }
-
-  switch (bitmap->mode) {
-  case splashModeMono1:
-    for (y = 0; y < h; ++y) {
-      p = &bitmap->data[(yDest + y) * bitmap->rowSize + (xDest >> 3)];
-      mask = 0x80 >> (xDest & 7);
-      sp = &src->data[(ySrc + y) * src->rowSize + (xSrc >> 3)];
-      srcMask = 0x80 >> (xSrc & 7);
-      for (x = 0; x < w; ++x) {
-	if (*sp & srcMask) {
-	  *p |= mask;
-	} else {
-	  *p &= ~mask;
-	}
-	if (!(mask >>= 1)) {
-	  mask = 0x80;
-	  ++p;
-	}
-	if (!(srcMask >>= 1)) {
-	  srcMask = 0x80;
-	  ++sp;
-	}
-      }
-    }
-    break;
-  case splashModeMono8:
-    for (y = 0; y < h; ++y) {
-      p = &bitmap->data[(yDest + y) * bitmap->rowSize + xDest];
-      sp = &src->data[(ySrc + y) * bitmap->rowSize + xSrc];
-      for (x = 0; x < w; ++x) {
-	*p++ = *sp++;
-      }
-    }
-    break;
-  case splashModeRGB8:
-  case splashModeBGR8:
-    for (y = 0; y < h; ++y) {
-      p = &bitmap->data[(yDest + y) * bitmap->rowSize + 3 * xDest];
-      sp = &src->data[(ySrc + y) * src->rowSize + 3 * xSrc];
-      for (x = 0; x < w; ++x) {
-	*p++ = *sp++;
-	*p++ = *sp++;
-	*p++ = *sp++;
-      }
-    }
-    break;
-  case splashModeXBGR8:
-    for (y = 0; y < h; ++y) {
-      p = &bitmap->data[(yDest + y) * bitmap->rowSize + 4 * xDest];
-      sp = &src->data[(ySrc + y) * src->rowSize + 4 * xSrc];
-      for (x = 0; x < w; ++x) {
-	*p++ = *sp++;
-	*p++ = *sp++;
-	*p++ = *sp++;
-	*p++ = 255;
-	sp++;
-      }
-    }
-    break;
-#if SPLASH_CMYK
-  case splashModeCMYK8:
-    for (y = 0; y < h; ++y) {
-      p = &bitmap->data[(yDest + y) * bitmap->rowSize + 4 * xDest];
-      sp = &src->data[(ySrc + y) * src->rowSize + 4 * xSrc];
-      for (x = 0; x < w; ++x) {
-	*p++ = *sp++;
-	*p++ = *sp++;
-	*p++ = *sp++;
-	*p++ = *sp++;
-      }
-    }
-    break;
-  case splashModeDeviceN8:
-    for (y = 0; y < h; ++y) {
-      p = &bitmap->data[(yDest + y) * bitmap->rowSize + (SPOT_NCOMPS+4) * xDest];
-      sp = &src->data[(ySrc + y) * src->rowSize + (SPOT_NCOMPS+4) * xSrc];
-      for (x = 0; x < w; ++x) {
-        for (int cp=0; cp < SPOT_NCOMPS+4; cp++)
-          *p++ = *sp++;
-      }
-    }
-    break;
-#endif
-  }
-
-  if (bitmap->alpha) {
-    for (y = 0; y < h; ++y) {
-      q = &bitmap->alpha[(yDest + y) * bitmap->width + xDest];
-      memset(q, 0x00, w);
-    }
-  }
-
-  return splashOk;
-}
-
-SplashPath *Splash::makeStrokePath(SplashPath *path, SplashCoord w,
-				    GBool flatten) {
-SplashPath *pathIn, *dashPath, *pathOut;
-  SplashCoord d, dx, dy, wdx, wdy, dxNext, dyNext, wdxNext, wdyNext;
-  SplashCoord crossprod, dotprod, miter, m;
-  GBool first, last, closed, hasangle;
-  int subpathStart0, subpathStart1, seg, i0, i1, j0, j1, k0, k1;
-  int left0, left1, left2, right0, right1, right2, join0, join1, join2;
-  int leftFirst, rightFirst, firstPt;
-
-  pathOut = new SplashPath();
-
-  if (path->length == 0) {
-    return pathOut;
-  }
-
-  if (flatten) {
-    pathIn = flattenPath(path, state->matrix, state->flatness);
-    if (state->lineDashLength > 0) {
-      dashPath = makeDashedPath(pathIn);
-      delete pathIn;
-      pathIn = dashPath;
-      if (pathIn->length == 0) {
-	delete pathIn;
-	return pathOut;
-      }
-    }
-  } else {
-    pathIn = path;
-  }
-
-  subpathStart0 = subpathStart1 = 0; // make gcc happy
-  seg = 0; // make gcc happy
-  closed = gFalse; // make gcc happy
-  left0 = left1 = right0 = right1 = join0 = join1 = 0; // make gcc happy
-  leftFirst = rightFirst = firstPt = 0; // make gcc happy
-
-  i0 = 0;
-  for (i1 = i0;
-       !(pathIn->flags[i1] & splashPathLast) &&
-	 i1 + 1 < pathIn->length &&
-	 pathIn->pts[i1+1].x == pathIn->pts[i1].x &&
-	 pathIn->pts[i1+1].y == pathIn->pts[i1].y;
-       ++i1) ;
-
-  while (i1 < pathIn->length) {
-    if ((first = pathIn->flags[i0] & splashPathFirst)) {
-      subpathStart0 = i0;
-      subpathStart1 = i1;
-      seg = 0;
-      closed = pathIn->flags[i0] & splashPathClosed;
-    }
-    j0 = i1 + 1;
-    if (j0 < pathIn->length) {
-      for (j1 = j0;
-	   !(pathIn->flags[j1] & splashPathLast) &&
-	     j1 + 1 < pathIn->length &&
-	     pathIn->pts[j1+1].x == pathIn->pts[j1].x &&
-	     pathIn->pts[j1+1].y == pathIn->pts[j1].y;
-	   ++j1) ;
-    } else {
-      j1 = j0;
-    }
-    if (pathIn->flags[i1] & splashPathLast) {
-      if (first && state->lineCap == splashLineCapRound) {
-	// special case: zero-length subpath with round line caps -->
-	// draw a circle
-	pathOut->moveTo(pathIn->pts[i0].x + (SplashCoord)0.5 * w,
-			pathIn->pts[i0].y);
-	pathOut->curveTo(pathIn->pts[i0].x + (SplashCoord)0.5 * w,
-			 pathIn->pts[i0].y + bezierCircle2 * w,
-			 pathIn->pts[i0].x + bezierCircle2 * w,
-			 pathIn->pts[i0].y + (SplashCoord)0.5 * w,
-			 pathIn->pts[i0].x,
-			 pathIn->pts[i0].y + (SplashCoord)0.5 * w);
-	pathOut->curveTo(pathIn->pts[i0].x - bezierCircle2 * w,
-			 pathIn->pts[i0].y + (SplashCoord)0.5 * w,
-			 pathIn->pts[i0].x - (SplashCoord)0.5 * w,
-			 pathIn->pts[i0].y + bezierCircle2 * w,
-			 pathIn->pts[i0].x - (SplashCoord)0.5 * w,
-			 pathIn->pts[i0].y);
-	pathOut->curveTo(pathIn->pts[i0].x - (SplashCoord)0.5 * w,
-			 pathIn->pts[i0].y - bezierCircle2 * w,
-			 pathIn->pts[i0].x - bezierCircle2 * w,
-			 pathIn->pts[i0].y - (SplashCoord)0.5 * w,
-			 pathIn->pts[i0].x,
-			 pathIn->pts[i0].y - (SplashCoord)0.5 * w);
-	pathOut->curveTo(pathIn->pts[i0].x + bezierCircle2 * w,
-			 pathIn->pts[i0].y - (SplashCoord)0.5 * w,
-			 pathIn->pts[i0].x + (SplashCoord)0.5 * w,
-			 pathIn->pts[i0].y - bezierCircle2 * w,
-			 pathIn->pts[i0].x + (SplashCoord)0.5 * w,
-			 pathIn->pts[i0].y);
-	pathOut->close();
-      }
-      i0 = j0;
-      i1 = j1;
-      continue;
-    }
-    last = pathIn->flags[j1] & splashPathLast;
-    if (last) {
-      k0 = subpathStart1 + 1;
-    } else {
-      k0 = j1 + 1;
-    }
-    for (k1 = k0;
-	 !(pathIn->flags[k1] & splashPathLast) &&
-	   k1 + 1 < pathIn->length &&
-	   pathIn->pts[k1+1].x == pathIn->pts[k1].x &&
-	   pathIn->pts[k1+1].y == pathIn->pts[k1].y;
-	 ++k1) ;
-
-    // compute the deltas for segment (i1, j0)
-#if USE_FIXEDPOINT
-    // the 1/d value can be small, which introduces significant
-    // inaccuracies in fixed point mode
-    d = splashDist(pathIn->pts[i1].x, pathIn->pts[i1].y,
-		   pathIn->pts[j0].x, pathIn->pts[j0].y);
-    dx = (pathIn->pts[j0].x - pathIn->pts[i1].x) / d;
-    dy = (pathIn->pts[j0].y - pathIn->pts[i1].y) / d;
-#else
-    d = (SplashCoord)1 / splashDist(pathIn->pts[i1].x, pathIn->pts[i1].y,
-				    pathIn->pts[j0].x, pathIn->pts[j0].y);
-    dx = d * (pathIn->pts[j0].x - pathIn->pts[i1].x);
-    dy = d * (pathIn->pts[j0].y - pathIn->pts[i1].y);
-#endif
-    wdx = (SplashCoord)0.5 * w * dx;
-    wdy = (SplashCoord)0.5 * w * dy;
-
-    // draw the start cap
-    pathOut->moveTo(pathIn->pts[i0].x - wdy, pathIn->pts[i0].y + wdx);
-    if (i0 == subpathStart0) {
-      firstPt = pathOut->length - 1;
-    }
-    if (first && !closed) {
-      switch (state->lineCap) {
-      case splashLineCapButt:
-	pathOut->lineTo(pathIn->pts[i0].x + wdy, pathIn->pts[i0].y - wdx);
-	break;
-      case splashLineCapRound:
-	pathOut->curveTo(pathIn->pts[i0].x - wdy - bezierCircle * wdx,
-			 pathIn->pts[i0].y + wdx - bezierCircle * wdy,
-			 pathIn->pts[i0].x - wdx - bezierCircle * wdy,
-			 pathIn->pts[i0].y - wdy + bezierCircle * wdx,
-			 pathIn->pts[i0].x - wdx,
-			 pathIn->pts[i0].y - wdy);
-	pathOut->curveTo(pathIn->pts[i0].x - wdx + bezierCircle * wdy,
-			 pathIn->pts[i0].y - wdy - bezierCircle * wdx,
-			 pathIn->pts[i0].x + wdy - bezierCircle * wdx,
-			 pathIn->pts[i0].y - wdx - bezierCircle * wdy,
-			 pathIn->pts[i0].x + wdy,
-			 pathIn->pts[i0].y - wdx);
-	break;
-      case splashLineCapProjecting:
-	pathOut->lineTo(pathIn->pts[i0].x - wdx - wdy,
-			pathIn->pts[i0].y + wdx - wdy);
-	pathOut->lineTo(pathIn->pts[i0].x - wdx + wdy,
-			pathIn->pts[i0].y - wdx - wdy);
-	pathOut->lineTo(pathIn->pts[i0].x + wdy,
-			pathIn->pts[i0].y - wdx);
-	break;
-      }
-    } else {
-      pathOut->lineTo(pathIn->pts[i0].x + wdy, pathIn->pts[i0].y - wdx);
-    }
-
-    // draw the left side of the segment rectangle
-    left2 = pathOut->length - 1;
-    pathOut->lineTo(pathIn->pts[j0].x + wdy, pathIn->pts[j0].y - wdx);
-
-    // draw the end cap
-    if (last && !closed) {
-      switch (state->lineCap) {
-      case splashLineCapButt:
-	pathOut->lineTo(pathIn->pts[j0].x - wdy, pathIn->pts[j0].y + wdx);
-	break;
-      case splashLineCapRound:
-	pathOut->curveTo(pathIn->pts[j0].x + wdy + bezierCircle * wdx,
-			 pathIn->pts[j0].y - wdx + bezierCircle * wdy,
-			 pathIn->pts[j0].x + wdx + bezierCircle * wdy,
-			 pathIn->pts[j0].y + wdy - bezierCircle * wdx,
-			 pathIn->pts[j0].x + wdx,
-			 pathIn->pts[j0].y + wdy);
-	pathOut->curveTo(pathIn->pts[j0].x + wdx - bezierCircle * wdy,
-			 pathIn->pts[j0].y + wdy + bezierCircle * wdx,
-			 pathIn->pts[j0].x - wdy + bezierCircle * wdx,
-			 pathIn->pts[j0].y + wdx + bezierCircle * wdy,
-			 pathIn->pts[j0].x - wdy,
-			 pathIn->pts[j0].y + wdx);
-	break;
-      case splashLineCapProjecting:
-	pathOut->lineTo(pathIn->pts[j0].x + wdy + wdx,
-			pathIn->pts[j0].y - wdx + wdy);
-	pathOut->lineTo(pathIn->pts[j0].x - wdy + wdx,
-			pathIn->pts[j0].y + wdx + wdy);
-	pathOut->lineTo(pathIn->pts[j0].x - wdy,
-			pathIn->pts[j0].y + wdx);
-	break;
-      }
-    } else {
-      pathOut->lineTo(pathIn->pts[j0].x - wdy, pathIn->pts[j0].y + wdx);
-    }
-
-    // draw the right side of the segment rectangle
-    // (NB: if stroke adjustment is enabled, the closepath operation MUST
-    // add a segment because this segment is used for a hint)
-    right2 = pathOut->length - 1;
-    pathOut->close(state->strokeAdjust);
-
-    // draw the join
-    join2 = pathOut->length;
-    if (!last || closed) {
-
-      // compute the deltas for segment (j1, k0)
-#if USE_FIXEDPOINT
-      // the 1/d value can be small, which introduces significant
-      // inaccuracies in fixed point mode
-      d = splashDist(pathIn->pts[j1].x, pathIn->pts[j1].y,
-		     pathIn->pts[k0].x, pathIn->pts[k0].y);
-      dxNext = (pathIn->pts[k0].x - pathIn->pts[j1].x) / d;
-      dyNext = (pathIn->pts[k0].y - pathIn->pts[j1].y) / d;
-#else
-      d = (SplashCoord)1 / splashDist(pathIn->pts[j1].x, pathIn->pts[j1].y,
-				      pathIn->pts[k0].x, pathIn->pts[k0].y);
-      dxNext = d * (pathIn->pts[k0].x - pathIn->pts[j1].x);
-      dyNext = d * (pathIn->pts[k0].y - pathIn->pts[j1].y);
-#endif
-      wdxNext = (SplashCoord)0.5 * w * dxNext;
-      wdyNext = (SplashCoord)0.5 * w * dyNext;
-
-      // compute the join parameters
-      crossprod = dx * dyNext - dy * dxNext;
-      dotprod = -(dx * dxNext + dy * dyNext);
-      hasangle = crossprod != 0 || dx * dxNext < 0 || dy * dyNext < 0;
-      if (dotprod > 0.9999) {
-	// avoid a divide-by-zero -- set miter to something arbitrary
-	// such that sqrt(miter) will exceed miterLimit (and m is never
-	// used in that situation)
-	// (note: the comparison value (0.9999) has to be less than
-	// 1-epsilon, where epsilon is the smallest value
-	// representable in the fixed point format)
-	miter = (state->miterLimit + 1) * (state->miterLimit + 1);
-	m = 0;
-      } else {
-	miter = (SplashCoord)2 / ((SplashCoord)1 - dotprod);
-	if (miter < 1) {
-	  // this can happen because of floating point inaccuracies
-	  miter = 1;
-	}
-	m = splashSqrt(miter - 1);
-      }
-
-      // round join
-      if (hasangle && state->lineJoin == splashLineJoinRound) {
-	pathOut->moveTo(pathIn->pts[j0].x + (SplashCoord)0.5 * w,
-			pathIn->pts[j0].y);
-	pathOut->curveTo(pathIn->pts[j0].x + (SplashCoord)0.5 * w,
-			 pathIn->pts[j0].y + bezierCircle2 * w,
-			 pathIn->pts[j0].x + bezierCircle2 * w,
-			 pathIn->pts[j0].y + (SplashCoord)0.5 * w,
-			 pathIn->pts[j0].x,
-			 pathIn->pts[j0].y + (SplashCoord)0.5 * w);
-	pathOut->curveTo(pathIn->pts[j0].x - bezierCircle2 * w,
-			 pathIn->pts[j0].y + (SplashCoord)0.5 * w,
-			 pathIn->pts[j0].x - (SplashCoord)0.5 * w,
-			 pathIn->pts[j0].y + bezierCircle2 * w,
-			 pathIn->pts[j0].x - (SplashCoord)0.5 * w,
-			 pathIn->pts[j0].y);
-	pathOut->curveTo(pathIn->pts[j0].x - (SplashCoord)0.5 * w,
-			 pathIn->pts[j0].y - bezierCircle2 * w,
-			 pathIn->pts[j0].x - bezierCircle2 * w,
-			 pathIn->pts[j0].y - (SplashCoord)0.5 * w,
-			 pathIn->pts[j0].x,
-			 pathIn->pts[j0].y - (SplashCoord)0.5 * w);
-	pathOut->curveTo(pathIn->pts[j0].x + bezierCircle2 * w,
-			 pathIn->pts[j0].y - (SplashCoord)0.5 * w,
-			 pathIn->pts[j0].x + (SplashCoord)0.5 * w,
-			 pathIn->pts[j0].y - bezierCircle2 * w,
-			 pathIn->pts[j0].x + (SplashCoord)0.5 * w,
-			 pathIn->pts[j0].y);
-
-      } else if (hasangle) {
-	pathOut->moveTo(pathIn->pts[j0].x, pathIn->pts[j0].y);
-
-	// angle < 180
-	if (crossprod < 0) {
-	  pathOut->lineTo(pathIn->pts[j0].x - wdyNext,
-			  pathIn->pts[j0].y + wdxNext);
-	  // miter join inside limit
-	  if (state->lineJoin == splashLineJoinMiter &&
-	      splashSqrt(miter) <= state->miterLimit) {
-	    pathOut->lineTo(pathIn->pts[j0].x - wdy + wdx * m,
-			    pathIn->pts[j0].y + wdx + wdy * m);
-	    pathOut->lineTo(pathIn->pts[j0].x - wdy,
-			    pathIn->pts[j0].y + wdx);
-	  // bevel join or miter join outside limit
-	  } else {
-	    pathOut->lineTo(pathIn->pts[j0].x - wdy,
-			    pathIn->pts[j0].y + wdx);
-	  }
-
-	// angle >= 180
-	} else {
-	  pathOut->lineTo(pathIn->pts[j0].x + wdy,
-			  pathIn->pts[j0].y - wdx);
-	  // miter join inside limit
-	  if (state->lineJoin == splashLineJoinMiter &&
-	      splashSqrt(miter) <= state->miterLimit) {
-	    pathOut->lineTo(pathIn->pts[j0].x + wdy + wdx * m,
-			    pathIn->pts[j0].y - wdx + wdy * m);
-	    pathOut->lineTo(pathIn->pts[j0].x + wdyNext,
-			    pathIn->pts[j0].y - wdxNext);
-	  // bevel join or miter join outside limit
-	  } else {
-	    pathOut->lineTo(pathIn->pts[j0].x + wdyNext,
-			    pathIn->pts[j0].y - wdxNext);
-	  }
-	}
-      }
-
-      pathOut->close();
-    }
-
-    // add stroke adjustment hints
-    if (state->strokeAdjust) {
-      if (seg == 0 && !closed) {
-	if (state->lineCap == splashLineCapButt) {
-	  pathOut->addStrokeAdjustHint(firstPt, left2 + 1,
-				       firstPt, firstPt + 1);
-	  if (last) {
-	    pathOut->addStrokeAdjustHint(firstPt, left2 + 1,
-					 left2 + 1, left2 + 2);
-	  }
-	} else if (state->lineCap == splashLineCapProjecting) {
-	  if (last) {
-	    pathOut->addStrokeAdjustHint(firstPt + 1, left2 + 2,
-					 firstPt + 1, firstPt + 2);
-	    pathOut->addStrokeAdjustHint(firstPt + 1, left2 + 2,
-					 left2 + 2, left2 + 3);
-	  } else {
-	    pathOut->addStrokeAdjustHint(firstPt + 1, left2 + 1,
-					 firstPt + 1, firstPt + 2);
-	  }
-	}
-      }
-      if (seg >= 1) {
-	if (seg >= 2) {
-	  pathOut->addStrokeAdjustHint(left1, right1, left0 + 1, right0);
-	  pathOut->addStrokeAdjustHint(left1, right1, join0, left2);
-	} else {
-	  pathOut->addStrokeAdjustHint(left1, right1, firstPt, left2);
-	}
-	pathOut->addStrokeAdjustHint(left1, right1, right2 + 1, right2 + 1);
-      }
-      left0 = left1;
-      left1 = left2;
-      right0 = right1;
-      right1 = right2;
-      join0 = join1;
-      join1 = join2;
-      if (seg == 0) {
-	leftFirst = left2;
-	rightFirst = right2;
-      }
-      if (last) {
-	if (seg >= 2) {
-	  pathOut->addStrokeAdjustHint(left1, right1, left0 + 1, right0);
-	  pathOut->addStrokeAdjustHint(left1, right1,
-				       join0, pathOut->length - 1);
-	} else {
-	  pathOut->addStrokeAdjustHint(left1, right1,
-				       firstPt, pathOut->length - 1);
-	}
-	if (closed) {
-	  pathOut->addStrokeAdjustHint(left1, right1, firstPt, leftFirst);
-	  pathOut->addStrokeAdjustHint(left1, right1,
-				       rightFirst + 1, rightFirst + 1);
-	  pathOut->addStrokeAdjustHint(leftFirst, rightFirst,
-				       left1 + 1, right1);
-	  pathOut->addStrokeAdjustHint(leftFirst, rightFirst,
-				       join1, pathOut->length - 1);
-	}
-	if (!closed && seg > 0) {
-	  if (state->lineCap == splashLineCapButt) {
-	    pathOut->addStrokeAdjustHint(left1 - 1, left1 + 1,
-					 left1 + 1, left1 + 2);
-	  } else if (state->lineCap == splashLineCapProjecting) {
-	    pathOut->addStrokeAdjustHint(left1 - 1, left1 + 2,
-					 left1 + 2, left1 + 3);
-	  }
-	}
-      }
-    }
-
-    i0 = j0;
-    i1 = j1;
-    ++seg;
-  }
-
-  if (pathIn != path) {
-    delete pathIn;
-  }
-
-  return pathOut;
-}
-
-void Splash::dumpPath(SplashPath *path) {
-  int i;
-
-  for (i = 0; i < path->length; ++i) {
-    printf("  %3d: x=%8.2f y=%8.2f%s%s%s%s\n",
-	   i, (double)path->pts[i].x, (double)path->pts[i].y,
-	   (path->flags[i] & splashPathFirst) ? " first" : "",
-	   (path->flags[i] & splashPathLast) ? " last" : "",
-	   (path->flags[i] & splashPathClosed) ? " closed" : "",
-	   (path->flags[i] & splashPathCurve) ? " curve" : "");
-  }
-}
-
-void Splash::dumpXPath(SplashXPath *path) {
-  int i;
-
-  for (i = 0; i < path->length; ++i) {
-    printf("  %4d: x0=%8.2f y0=%8.2f x1=%8.2f y1=%8.2f %s%s%s\n",
-	   i, (double)path->segs[i].x0, (double)path->segs[i].y0,
-	   (double)path->segs[i].x1, (double)path->segs[i].y1,
-	   (path->segs[i].flags	& splashXPathHoriz) ? "H" : " ",
-	   (path->segs[i].flags	& splashXPathVert) ? "V" : " ",
-	   (path->segs[i].flags	& splashXPathFlip) ? "P" : " ");
-  }
-}
-
-SplashError Splash::shadedFill(SplashPath *path, GBool hasBBox,
-                               SplashPattern *pattern) {
-  SplashPipe pipe;
-  SplashXPath *xPath;
-  SplashXPathScanner *scanner;
-  int xMinI, yMinI, xMaxI, yMaxI, x0, x1, y;
-  SplashClipResult clipRes;
-
-  if (vectorAntialias && aaBuf == NULL) { // should not happen, but to be secure
-    return splashErrGeneric;
-  }
-  if (path->length == 0) {
-    return splashErrEmptyPath;
-  }
-  xPath = new SplashXPath(path, state->matrix, state->flatness, gTrue);
-  if (vectorAntialias) {
-    xPath->aaScale();
-  }
-  xPath->sort();
-  yMinI = state->clip->getYMinI();
-  yMaxI = state->clip->getYMaxI();
-  if (vectorAntialias && !inShading) {
-    yMinI = yMinI * splashAASize;
-    yMaxI = (yMaxI + 1) * splashAASize - 1;
-  }
-  scanner = new SplashXPathScanner(xPath, gFalse, yMinI, yMaxI);
-
-  // get the min and max x and y values
-  if (vectorAntialias) {
-    scanner->getBBoxAA(&xMinI, &yMinI, &xMaxI, &yMaxI);
-  } else {
-    scanner->getBBox(&xMinI, &yMinI, &xMaxI, &yMaxI);
-  }
-
-  // check clipping
-  if ((clipRes = state->clip->testRect(xMinI, yMinI, xMaxI, yMaxI)) != splashClipAllOutside) {
-    // limit the y range
-    if (yMinI < state->clip->getYMinI()) {
-      yMinI = state->clip->getYMinI();
-    }
-    if (yMaxI > state->clip->getYMaxI()) {
-      yMaxI = state->clip->getYMaxI();
-    }
-
-    pipeInit(&pipe, 0, yMinI, pattern, NULL, (Guchar)splashRound(state->fillAlpha * 255), vectorAntialias && !hasBBox, gFalse);
-
-    // draw the spans
-    if (vectorAntialias) {
-      for (y = yMinI; y <= yMaxI; ++y) {
-        scanner->renderAALine(aaBuf, &x0, &x1, y);
-        if (clipRes != splashClipAllInside) {
-          state->clip->clipAALine(aaBuf, &x0, &x1, y);
-        }
-#if splashAASize == 4
-        if (!hasBBox && y > yMinI && y < yMaxI) {
-          // correct shape on left side if clip is
-          // vertical through the middle of shading:
-          Guchar *p0, *p1, *p2, *p3;
-          Guchar c1, c2, c3, c4;
-          p0 = aaBuf->getDataPtr() + (x0 >> 1);
-          p1 = p0 + aaBuf->getRowSize();
-          p2 = p1 + aaBuf->getRowSize();
-          p3 = p2 + aaBuf->getRowSize();
-          if (x0 & 1) {
-           c1 = (*p0 & 0x0f); c2 =(*p1 & 0x0f); c3 = (*p2 & 0x0f) ; c4 = (*p3 & 0x0f);
-          } else {
-            c1 = (*p0 >> 4); c2 = (*p1 >> 4); c3 = (*p2 >> 4); c4 = (*p3 >> 4);
-          }
-          if ( (c1 & 0x03) == 0x03 && (c2 & 0x03) == 0x03 && (c3 & 0x03) == 0x03 && (c4 & 0x03) == 0x03
-            && c1 == c2 && c2 == c3 && c3 == c4 &&
-            pattern->testPosition(x0 - 1, y) )
-          {
-            Guchar shapeCorrection = (x0 & 1) ? 0x0f : 0xf0;
-            *p0 |= shapeCorrection;
-            *p1 |= shapeCorrection;
-            *p2 |= shapeCorrection;
-            *p3 |= shapeCorrection;
-          }
-          // correct shape on right side if clip is
-          // through the middle of shading:
-          p0 = aaBuf->getDataPtr() + (x1 >> 1);
-          p1 = p0 + aaBuf->getRowSize();
-          p2 = p1 + aaBuf->getRowSize();
-          p3 = p2 + aaBuf->getRowSize();
-          if (x1 & 1) {
-            c1 = (*p0 & 0x0f); c2 =(*p1 & 0x0f); c3 = (*p2 & 0x0f) ; c4 = (*p3 & 0x0f);
-          } else {
-            c1 = (*p0 >> 4); c2 = (*p1 >> 4); c3 = (*p2 >> 4); c4 = (*p3 >> 4);
-          }
-
-          if ( (c1 & 0xc) == 0x0c && (c2 & 0x0c) == 0x0c && (c3 & 0x0c) == 0x0c && (c4 & 0x0c) == 0x0c
-            && c1 == c2 && c2 == c3 && c3 == c4 &&
-            pattern->testPosition(x1 + 1, y) )
-          {
-            Guchar shapeCorrection = (x1 & 1) ? 0x0f : 0xf0;
-            *p0 |= shapeCorrection;
-            *p1 |= shapeCorrection;
-            *p2 |= shapeCorrection;
-            *p3 |= shapeCorrection;
-          }
-        }
-#endif
-        drawAALine(&pipe, x0, x1, y);
-      }
-    } else {
-      SplashClipResult clipRes2;
-      for (y = yMinI; y <= yMaxI; ++y) {
-        while (scanner->getNextSpan(y, &x0, &x1)) {
-          if (clipRes == splashClipAllInside) {
-            drawSpan(&pipe, x0, x1, y, gTrue);
-          } else {
-            // limit the x range
-            if (x0 < state->clip->getXMinI()) {
-              x0 = state->clip->getXMinI();
-            }
-            if (x1 > state->clip->getXMaxI()) {
-              x1 = state->clip->getXMaxI();
-            }
-            clipRes2 = state->clip->testSpan(x0, x1, y);
-            drawSpan(&pipe, x0, x1, y, clipRes2 == splashClipAllInside);
-          }
-        }
-      }
-    }
-  }
-  opClipRes = clipRes;
-
-  delete scanner;
-  delete xPath;
-  return splashOk;
-}
diff --git a/source/libs/poppler/poppler-src/splash/Splash.h b/source/libs/poppler/poppler-src/splash/Splash.h
deleted file mode 100644
index 3ca15c38b..000000000
--- a/source/libs/poppler/poppler-src/splash/Splash.h
+++ /dev/null
@@ -1,431 +0,0 @@
-//========================================================================
-//
-// Splash.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2005 Marco Pesenti Gritti <mpg@redhat.com>
-// Copyright (C) 2007, 2011 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2010-2013, 2015 Thomas Freitag <Thomas.Freitag@alfa.de>
-// Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com>
-// Copyright (C) 2012 Adrian Johnson <ajohnson@redneon.com>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASH_H
-#define SPLASH_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include <stddef.h>
-#include "SplashTypes.h"
-#include "SplashClip.h"
-#include "SplashPattern.h"
-
-class SplashBitmap;
-struct SplashGlyphBitmap;
-class SplashState;
-class SplashScreen;
-class SplashPath;
-class SplashXPath;
-class SplashFont;
-struct SplashPipe;
-
-//------------------------------------------------------------------------
-
-// Retrieves the next line of pixels in an image mask.  Normally,
-// fills in *<line> and returns true.  If the image stream is
-// exhausted, returns false.
-typedef GBool (*SplashImageMaskSource)(void *data, SplashColorPtr pixel);
-
-// Retrieves the next line of pixels in an image.  Normally, fills in
-// *<line> and returns true.  If the image stream is exhausted,
-// returns false.
-typedef GBool (*SplashImageSource)(void *data, SplashColorPtr colorLine,
-				   Guchar *alphaLine);
-
-// Use ICCColorSpace to transform a bitmap
-typedef void (*SplashICCTransform)(void *data, SplashBitmap *bitmap);
-
-//------------------------------------------------------------------------
-
-enum SplashPipeResultColorCtrl {
-#if SPLASH_CMYK
-  splashPipeResultColorNoAlphaBlendCMYK,
-  splashPipeResultColorNoAlphaBlendDeviceN,
-#endif
-  splashPipeResultColorNoAlphaBlendRGB,
-  splashPipeResultColorNoAlphaBlendMono,
-  splashPipeResultColorAlphaNoBlendMono,
-  splashPipeResultColorAlphaNoBlendRGB,
-#if SPLASH_CMYK
-  splashPipeResultColorAlphaNoBlendCMYK,
-  splashPipeResultColorAlphaNoBlendDeviceN,
-#endif
-  splashPipeResultColorAlphaBlendMono,
-  splashPipeResultColorAlphaBlendRGB
-#if SPLASH_CMYK
-  ,
-  splashPipeResultColorAlphaBlendCMYK,
-  splashPipeResultColorAlphaBlendDeviceN
-#endif
-};
-
-//------------------------------------------------------------------------
-// Splash
-//------------------------------------------------------------------------
-
-class Splash {
-public:
-
-  // Create a new rasterizer object.
-  Splash(SplashBitmap *bitmapA, GBool vectorAntialiasA,
-	 SplashScreenParams *screenParams = NULL);
-  Splash(SplashBitmap *bitmapA, GBool vectorAntialiasA,
-	 SplashScreen *screenA);
-
-  ~Splash();
-
-  //----- state read
-
-  SplashCoord *getMatrix();
-  SplashPattern *getStrokePattern();
-  SplashPattern *getFillPattern();
-  SplashScreen *getScreen();
-  SplashBlendFunc getBlendFunc();
-  SplashCoord getStrokeAlpha();
-  SplashCoord getFillAlpha();
-  SplashCoord getLineWidth();
-  int getLineCap();
-  int getLineJoin();
-  SplashCoord getMiterLimit();
-  SplashCoord getFlatness();
-  SplashCoord *getLineDash();
-  int getLineDashLength();
-  SplashCoord getLineDashPhase();
-  GBool getStrokeAdjust();
-  SplashClip *getClip();
-  SplashBitmap *getSoftMask();
-  GBool getInNonIsolatedGroup();
-
-  //----- state write
-
-  void setMatrix(SplashCoord *matrix);
-  void setStrokePattern(SplashPattern *strokeColor);
-  void setFillPattern(SplashPattern *fillColor);
-  void setScreen(SplashScreen *screen);
-  void setBlendFunc(SplashBlendFunc func);
-  void setStrokeAlpha(SplashCoord alpha);
-  void setFillAlpha(SplashCoord alpha);
-  void setPatternAlpha(SplashCoord strokeAlpha, SplashCoord fillAlpha);
-  void clearPatternAlpha();
-  void setFillOverprint(GBool fop);
-  void setStrokeOverprint(GBool sop);
-  void setOverprintMode(int opm);
-  void setLineWidth(SplashCoord lineWidth);
-  void setLineCap(int lineCap);
-  void setLineJoin(int lineJoin);
-  void setMiterLimit(SplashCoord miterLimit);
-  void setFlatness(SplashCoord flatness);
-  // the <lineDash> array will be copied
-  void setLineDash(SplashCoord *lineDash, int lineDashLength,
-		   SplashCoord lineDashPhase);
-  void setStrokeAdjust(GBool strokeAdjust);
-  // NB: uses transformed coordinates.
-  void clipResetToRect(SplashCoord x0, SplashCoord y0,
-		       SplashCoord x1, SplashCoord y1);
-  // NB: uses transformed coordinates.
-  SplashError clipToRect(SplashCoord x0, SplashCoord y0,
-			 SplashCoord x1, SplashCoord y1);
-  // NB: uses untransformed coordinates.
-  SplashError clipToPath(SplashPath *path, GBool eo);
-  void setSoftMask(SplashBitmap *softMask);
-  void setInNonIsolatedGroup(SplashBitmap *alpha0BitmapA,
-			     int alpha0XA, int alpha0YA);
-  void setTransfer(Guchar *red, Guchar *green, Guchar *blue, Guchar *gray);
-  void setOverprintMask(Guint overprintMask, GBool additive);
-
-  //----- state save/restore
-
-  void saveState();
-  SplashError restoreState();
-
-  //----- drawing operations
-
-  // Fill the bitmap with <color>.  This is not subject to clipping.
-  void clear(SplashColorPtr color, Guchar alpha = 0x00);
-
-  // Stroke a path using the current stroke pattern.
-  SplashError stroke(SplashPath *path);
-
-  // Fill a path using the current fill pattern.
-  SplashError fill(SplashPath *path, GBool eo);
-
-  // Fill a path, XORing with the current fill pattern.
-  SplashError xorFill(SplashPath *path, GBool eo);
-
-  // Draw a character, using the current fill pattern.
-  SplashError fillChar(SplashCoord x, SplashCoord y, int c, SplashFont *font);
-
-  // Draw a glyph, using the current fill pattern.  This function does
-  // not free any data, i.e., it ignores glyph->freeData.
-  void fillGlyph(SplashCoord x, SplashCoord y,
-			SplashGlyphBitmap *glyph);
-
-  // Draws an image mask using the fill color.  This will read <h>
-  // lines of <w> pixels from <src>, starting with the top line.  "1"
-  // pixels will be drawn with the current fill color; "0" pixels are
-  // transparent.  The matrix:
-  //    [ mat[0] mat[1] 0 ]
-  //    [ mat[2] mat[3] 0 ]
-  //    [ mat[4] mat[5] 1 ]
-  // maps a unit square to the desired destination for the image, in
-  // PostScript style:
-  //    [x' y' 1] = [x y 1] * mat
-  // Note that the Splash y axis points downward, and the image source
-  // is assumed to produce pixels in raster order, starting from the
-  // top line.
-  SplashError fillImageMask(SplashImageMaskSource src, void *srcData,
-			    int w, int h, SplashCoord *mat,
-			    GBool glyphMode);
-
-  // Draw an image.  This will read <h> lines of <w> pixels from
-  // <src>, starting with the top line.  These pixels are assumed to
-  // be in the source mode, <srcMode>.  If <srcAlpha> is true, the
-  // alpha values returned by <src> are used; otherwise they are
-  // ignored.  The following combinations of source and target modes
-  // are supported:
-  //    source       target
-  //    ------       ------
-  //    Mono1        Mono1
-  //    Mono8        Mono1   -- with dithering
-  //    Mono8        Mono8
-  //    RGB8         RGB8
-  //    BGR8         BGR8
-  //    CMYK8        CMYK8
-  // The matrix behaves as for fillImageMask.
-  SplashError drawImage(SplashImageSource src, SplashICCTransform tf, void *srcData,
-			SplashColorMode srcMode, GBool srcAlpha,
-			int w, int h, SplashCoord *mat, GBool interpolate,
-			GBool tilingPattern = gFalse);
-
-  // Composite a rectangular region from <src> onto this Splash
-  // object.
-  SplashError composite(SplashBitmap *src, int xSrc, int ySrc,
-			int xDest, int yDest, int w, int h,
-			GBool noClip, GBool nonIsolated,
-			GBool knockout = gFalse, SplashCoord knockoutOpacity = 1.0);
-
-  // Composite this Splash object onto a background color.  The
-  // background alpha is assumed to be 1.
-  void compositeBackground(SplashColorPtr color);
-
-  // Copy a rectangular region from <src> onto the bitmap belonging to
-  // this Splash object.  The destination alpha values are all set to
-  // zero.
-  SplashError blitTransparent(SplashBitmap *src, int xSrc, int ySrc,
-			      int xDest, int yDest, int w, int h);
-  void blitImage(SplashBitmap *src, GBool srcAlpha, int xDest, int yDest);
-
-  //----- misc
-
-  // Construct a path for a stroke, given the path to be stroked and
-  // the line width <w>.  All other stroke parameters are taken from
-  // the current state.  If <flatten> is true, this function will
-  // first flatten the path and handle the linedash.
-  SplashPath *makeStrokePath(SplashPath *path, SplashCoord w,
-			     GBool flatten = gTrue);
-
-  // Return the associated bitmap.
-  SplashBitmap *getBitmap() { return bitmap; }
-
-  // Set the minimum line width.
-  void setMinLineWidth(SplashCoord w) { minLineWidth = w; }
-
-  // Setter/Getter for thin line mode
-  void setThinLineMode(SplashThinLineMode thinLineModeA) { thinLineMode = thinLineModeA; }
-  SplashThinLineMode getThinLineMode() { return thinLineMode; }
-
-  // Get a bounding box which includes all modifications since the
-  // last call to clearModRegion.
-  void getModRegion(int *xMin, int *yMin, int *xMax, int *yMax)
-    { *xMin = modXMin; *yMin = modYMin; *xMax = modXMax; *yMax = modYMax; }
-
-  // Clear the modified region bounding box.
-  void clearModRegion();
-
-  // Get clipping status for the last drawing operation subject to
-  // clipping.
-  SplashClipResult getClipRes() { return opClipRes; }
-
-  // Toggle debug mode on or off.
-  void setDebugMode(GBool debugModeA) { debugMode = debugModeA; }
-
-#if 1 //~tmp: turn off anti-aliasing temporarily
-  void setInShading(GBool sh) { inShading = sh; }
-  GBool getVectorAntialias() { return vectorAntialias; }
-  void setVectorAntialias(GBool vaa) { vectorAntialias = vaa; }
-#endif
-
-  // Do shaded fills with dynamic patterns
-  SplashError shadedFill(SplashPath *path, GBool hasBBox,
-                         SplashPattern *pattern);
-  // Draw a gouraud triangle shading.
-  GBool gouraudTriangleShadedFill(SplashGouraudColor *shading);
-
-private:
-
-  void pipeInit(SplashPipe *pipe, int x, int y,
-		SplashPattern *pattern, SplashColorPtr cSrc,
-		Guchar aInput, GBool usesShape,
-		GBool nonIsolatedGroup,
-		GBool knockout = gFalse, Guchar knockoutOpacity = 255);
-  void pipeRun(SplashPipe *pipe);
-  void pipeRunSimpleMono1(SplashPipe *pipe);
-  void pipeRunSimpleMono8(SplashPipe *pipe);
-  void pipeRunSimpleRGB8(SplashPipe *pipe);
-  void pipeRunSimpleXBGR8(SplashPipe *pipe);
-  void pipeRunSimpleBGR8(SplashPipe *pipe);
-#if SPLASH_CMYK
-  void pipeRunSimpleCMYK8(SplashPipe *pipe);
-  void pipeRunSimpleDeviceN8(SplashPipe *pipe);
-#endif
-  void pipeRunAAMono1(SplashPipe *pipe);
-  void pipeRunAAMono8(SplashPipe *pipe);
-  void pipeRunAARGB8(SplashPipe *pipe);
-  void pipeRunAAXBGR8(SplashPipe *pipe);
-  void pipeRunAABGR8(SplashPipe *pipe);
-#if SPLASH_CMYK
-  void pipeRunAACMYK8(SplashPipe *pipe);
-  void pipeRunAADeviceN8(SplashPipe *pipe);
-#endif
-  void pipeSetXY(SplashPipe *pipe, int x, int y);
-  void pipeIncX(SplashPipe *pipe);
-  void drawPixel(SplashPipe *pipe, int x, int y, GBool noClip);
-  void drawAAPixelInit();
-  void drawAAPixel(SplashPipe *pipe, int x, int y);
-  void drawSpan(SplashPipe *pipe, int x0, int x1, int y, GBool noClip);
-  void drawAALine(SplashPipe *pipe, int x0, int x1, int y, GBool adjustLine = gFalse, Guchar lineOpacity = 0);
-  void transform(SplashCoord *matrix, SplashCoord xi, SplashCoord yi,
-		 SplashCoord *xo, SplashCoord *yo);
-  void updateModX(int x);
-  void updateModY(int y);
-  void strokeNarrow(SplashPath *path);
-  void strokeWide(SplashPath *path, SplashCoord w);
-  SplashPath *flattenPath(SplashPath *path, SplashCoord *matrix,
-			  SplashCoord flatness);
-  void flattenCurve(SplashCoord x0, SplashCoord y0,
-		    SplashCoord x1, SplashCoord y1,
-		    SplashCoord x2, SplashCoord y2,
-		    SplashCoord x3, SplashCoord y3,
-		    SplashCoord *matrix, SplashCoord flatness2,
-		    SplashPath *fPath);
-  SplashPath *makeDashedPath(SplashPath *xPath);
-  void getBBoxFP(SplashPath *path, SplashCoord *xMinA, SplashCoord *yMinA, SplashCoord *xMaxA, SplashCoord *yMaxA);
-  SplashError fillWithPattern(SplashPath *path, GBool eo,
-			      SplashPattern *pattern, SplashCoord alpha);
-  GBool pathAllOutside(SplashPath *path);
-  void fillGlyph2(int x0, int y0, SplashGlyphBitmap *glyph, GBool noclip);
-  void arbitraryTransformMask(SplashImageMaskSource src, void *srcData,
-			      int srcWidth, int srcHeight,
-			      SplashCoord *mat, GBool glyphMode);
-  SplashBitmap *scaleMask(SplashImageMaskSource src, void *srcData,
-			  int srcWidth, int srcHeight,
-			  int scaledWidth, int scaledHeight);
-  void scaleMaskYdXd(SplashImageMaskSource src, void *srcData,
-		     int srcWidth, int srcHeight,
-		     int scaledWidth, int scaledHeight,
-		     SplashBitmap *dest);
-  void scaleMaskYdXu(SplashImageMaskSource src, void *srcData,
-		     int srcWidth, int srcHeight,
-		     int scaledWidth, int scaledHeight,
-		     SplashBitmap *dest);
-  void scaleMaskYuXd(SplashImageMaskSource src, void *srcData,
-		     int srcWidth, int srcHeight,
-		     int scaledWidth, int scaledHeight,
-		     SplashBitmap *dest);
-  void scaleMaskYuXu(SplashImageMaskSource src, void *srcData,
-		     int srcWidth, int srcHeight,
-		     int scaledWidth, int scaledHeight,
-		     SplashBitmap *dest);
-  void blitMask(SplashBitmap *src, int xDest, int yDest,
-		SplashClipResult clipRes);
-  SplashError arbitraryTransformImage(SplashImageSource src, SplashICCTransform tf, void *srcData,
-			       SplashColorMode srcMode, int nComps,
-			       GBool srcAlpha,
-			       int srcWidth, int srcHeight,
-                               SplashCoord *mat, GBool interpolate, GBool tilingPattern = gFalse);
-  SplashBitmap *scaleImage(SplashImageSource src, void *srcData,
-			   SplashColorMode srcMode, int nComps,
-			   GBool srcAlpha, int srcWidth, int srcHeight,
-			   int scaledWidth, int scaledHeight, GBool interpolate, GBool tilingPattern = gFalse);
-  void scaleImageYdXd(SplashImageSource src, void *srcData,
-		      SplashColorMode srcMode, int nComps,
-		      GBool srcAlpha, int srcWidth, int srcHeight,
-		      int scaledWidth, int scaledHeight,
-		      SplashBitmap *dest);
-  void scaleImageYdXu(SplashImageSource src, void *srcData,
-		      SplashColorMode srcMode, int nComps,
-		      GBool srcAlpha, int srcWidth, int srcHeight,
-		      int scaledWidth, int scaledHeight,
-		      SplashBitmap *dest);
-  void scaleImageYuXd(SplashImageSource src, void *srcData,
-		      SplashColorMode srcMode, int nComps,
-		      GBool srcAlpha, int srcWidth, int srcHeight,
-		      int scaledWidth, int scaledHeight,
-		      SplashBitmap *dest);
-  void scaleImageYuXu(SplashImageSource src, void *srcData,
-		      SplashColorMode srcMode, int nComps,
-		      GBool srcAlpha, int srcWidth, int srcHeight,
-		      int scaledWidth, int scaledHeight,
-		      SplashBitmap *dest);
-  void scaleImageYuXuBilinear(SplashImageSource src, void *srcData,
-		      SplashColorMode srcMode, int nComps,
-		      GBool srcAlpha, int srcWidth, int srcHeight,
-		      int scaledWidth, int scaledHeight,
-		      SplashBitmap *dest);
-  void vertFlipImage(SplashBitmap *img, int width, int height,
-		     int nComps);
-  void blitImage(SplashBitmap *src, GBool srcAlpha, int xDest, int yDest,
-		 SplashClipResult clipRes);
-  void blitImageClipped(SplashBitmap *src, GBool srcAlpha,
-			int xSrc, int ySrc, int xDest, int yDest,
-			int w, int h);
-  void dumpPath(SplashPath *path);
-  void dumpXPath(SplashXPath *path);
-
-  static SplashPipeResultColorCtrl pipeResultColorNoAlphaBlend[];
-  static SplashPipeResultColorCtrl pipeResultColorAlphaNoBlend[];
-  static SplashPipeResultColorCtrl pipeResultColorAlphaBlend[];
-  static int pipeNonIsoGroupCorrection[];
-
-  SplashBitmap *bitmap;
-  SplashState *state;
-  SplashBitmap *aaBuf;
-  int aaBufY;
-  SplashBitmap *alpha0Bitmap;	// for non-isolated groups, this is the
-				//   bitmap containing the alpha0 values
-  int alpha0X, alpha0Y;		// offset within alpha0Bitmap
-  SplashCoord aaGamma[splashAASize * splashAASize + 1];
-  SplashCoord minLineWidth;
-  SplashThinLineMode thinLineMode;
-  int modXMin, modYMin, modXMax, modYMax;
-  SplashClipResult opClipRes;
-  GBool vectorAntialias;
-  GBool inShading;
-  GBool debugMode;
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashBitmap.cc b/source/libs/poppler/poppler-src/splash/SplashBitmap.cc
deleted file mode 100644
index 060a858ee..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashBitmap.cc
+++ /dev/null
@@ -1,853 +0,0 @@
-//========================================================================
-//
-// SplashBitmap.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006, 2009, 2010, 2012, 2015 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2007 Ilmari Heikkinen <ilmari.heikkinen@gmail.com>
-// Copyright (C) 2009 Shen Liang <shenzhuxi@gmail.com>
-// Copyright (C) 2009 Stefan Thomas <thomas@eload24.com>
-// Copyright (C) 2010, 2012, 2017 Adrian Johnson <ajohnson@redneon.com>
-// Copyright (C) 2010 Harry Roberts <harry.roberts@midnight-labs.org>
-// Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com>
-// Copyright (C) 2010, 2015 William Bader <williambader@hotmail.com>
-// Copyright (C) 2011-2013 Thomas Freitag <Thomas.Freitag@alfa.de>
-// Copyright (C) 2012 Anthony Wesley <awesley@smartnetworks.com.au>
-// Copyright (C) 2015 Adam Reichold <adamreichold@myopera.com>
-// Copyright (C) 2016 Kenji Uno <ku@digitaldolphins.jp>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <limits.h>
-#include "goo/gmem.h"
-#include "SplashErrorCodes.h"
-#include "SplashBitmap.h"
-#include "poppler/Error.h"
-#include "goo/JpegWriter.h"
-#include "goo/PNGWriter.h"
-#include "goo/TiffWriter.h"
-#include "goo/ImgWriter.h"
-#include "goo/GooList.h"
-
-//------------------------------------------------------------------------
-// SplashBitmap
-//------------------------------------------------------------------------
-
-SplashBitmap::SplashBitmap(int widthA, int heightA, int rowPadA,
-			   SplashColorMode modeA, GBool alphaA,
-			   GBool topDown, GooList *separationListA) {
-  width = widthA;
-  height = heightA;
-  mode = modeA;
-  rowPad = rowPadA;
-  switch (mode) {
-  case splashModeMono1:
-    if (width > 0) {
-      rowSize = (width + 7) >> 3;
-    } else {
-      rowSize = -1;
-    }
-    break;
-  case splashModeMono8:
-    if (width > 0) {
-      rowSize = width;
-    } else {
-      rowSize = -1;
-    }
-    break;
-  case splashModeRGB8:
-  case splashModeBGR8:
-    if (width > 0 && width <= INT_MAX / 3) {
-      rowSize = width * 3;
-    } else {
-      rowSize = -1;
-    }
-    break;
-  case splashModeXBGR8:
-    if (width > 0 && width <= INT_MAX / 4) {
-      rowSize = width * 4;
-    } else {
-      rowSize = -1;
-    }
-    break;
-#if SPLASH_CMYK
-  case splashModeCMYK8:
-    if (width > 0 && width <= INT_MAX / 4) {
-      rowSize = width * 4;
-    } else {
-      rowSize = -1;
-    }
-    break;
-  case splashModeDeviceN8:
-    if (width > 0 && width <= INT_MAX / 4) {
-      rowSize = width * (SPOT_NCOMPS + 4);
-    } else {
-      rowSize = -1;
-    }
-    break;
-#endif
-  }
-  if (rowSize > 0) {
-    rowSize += rowPad - 1;
-    rowSize -= rowSize % rowPad;
-  }
-  data = (SplashColorPtr)gmallocn_checkoverflow(rowSize, height);
-  if (data != NULL) {
-    if (!topDown) {
-      data += (height - 1) * rowSize;
-      rowSize = -rowSize;
-    }
-    if (alphaA) {
-      alpha = (Guchar *)gmallocn(width, height);
-    } else {
-      alpha = NULL;
-    }
-  } else {
-    alpha = NULL;
-  }
-  separationList = new GooList();
-  if (separationListA != NULL)
-    for (int i = 0; i < separationListA->getLength(); i++)
-      separationList->append(((GfxSeparationColorSpace *) separationListA->get(i))->copy());
-}
-
-SplashBitmap *SplashBitmap::copy(SplashBitmap *src) {
-  SplashBitmap *result = new SplashBitmap(src->getWidth(), src->getHeight(), src->getRowPad(), 
-    src->getMode(), src->getAlphaPtr() != NULL, src->getRowSize() >= 0, src->getSeparationList());
-  Guchar *dataSource = src->getDataPtr();
-  Guchar *dataDest = result->getDataPtr();
-  int amount = src->getRowSize();
-  if (amount < 0) {
-    dataSource = dataSource + (src->getHeight() - 1) * amount;
-    dataDest = dataDest + (src->getHeight() - 1) * amount;
-    amount *= -src->getHeight();
-  } else {
-    amount *= src->getHeight();
-  }
-  memcpy(dataDest, dataSource, amount);
-  if (src->getAlphaPtr() != NULL) {
-    memcpy(result->getAlphaPtr(), src->getAlphaPtr(), src->getWidth() * src->getHeight());
-  }
-  return result;
-}
-
-SplashBitmap::~SplashBitmap() {
-  if (data) {
-    if (rowSize < 0) {
-      gfree(data + (height - 1) * rowSize);
-    } else {
-      gfree(data);
-    }
-  }
-  gfree(alpha);
-  deleteGooList(separationList, GfxSeparationColorSpace);
-}
-
-
-SplashError SplashBitmap::writePNMFile(char *fileName) {
-  FILE *f;
-  SplashError e;
-
-  if (!(f = fopen(fileName, "wb"))) {
-    return splashErrOpenFile;
-  }
-
-  e = this->writePNMFile(f);
-  
-  fclose(f);
-  return e;
-}
-
-
-SplashError SplashBitmap::writePNMFile(FILE *f) {
-  SplashColorPtr row, p;
-  int x, y;
-
-  switch (mode) {
-
-  case splashModeMono1:
-    fprintf(f, "P4\n%d %d\n", width, height);
-    row = data;
-    for (y = 0; y < height; ++y) {
-      p = row;
-      for (x = 0; x < width; x += 8) {
-	fputc(*p ^ 0xff, f);
-	++p;
-      }
-      row += rowSize;
-    }
-    break;
-
-  case splashModeMono8:
-    fprintf(f, "P5\n%d %d\n255\n", width, height);
-    row = data;
-    for (y = 0; y < height; ++y) {
-      fwrite(row, 1, width, f);
-      row += rowSize;
-    }
-    break;
-
-  case splashModeRGB8:
-    fprintf(f, "P6\n%d %d\n255\n", width, height);
-    row = data;
-    for (y = 0; y < height; ++y) {
-      fwrite(row, 1, 3 * width, f);
-      row += rowSize;
-    }
-    break;
-
-  case splashModeXBGR8:
-    fprintf(f, "P6\n%d %d\n255\n", width, height);
-    row = data;
-    for (y = 0; y < height; ++y) {
-      p = row;
-      for (x = 0; x < width; ++x) {
-	fputc(splashBGR8R(p), f);
-	fputc(splashBGR8G(p), f);
-	fputc(splashBGR8B(p), f);
-	p += 4;
-      }
-      row += rowSize;
-    }
-    break;
-
-
-  case splashModeBGR8:
-    fprintf(f, "P6\n%d %d\n255\n", width, height);
-    row = data;
-    for (y = 0; y < height; ++y) {
-      p = row;
-      for (x = 0; x < width; ++x) {
-	fputc(splashBGR8R(p), f);
-	fputc(splashBGR8G(p), f);
-	fputc(splashBGR8B(p), f);
-	p += 3;
-      }
-      row += rowSize;
-    }
-    break;
-
-#if SPLASH_CMYK
-  case splashModeCMYK8:
-  case splashModeDeviceN8:
-    // PNM doesn't support CMYK
-    error(errInternal, -1, "unsupported SplashBitmap mode");
-    return splashErrGeneric;
-    break;
-#endif
-  }
-  return splashOk;
-}
-
-SplashError SplashBitmap::writeAlphaPGMFile(char *fileName) {
-  FILE *f;
-
-  if (!alpha) {
-    return splashErrModeMismatch;
-  }
-  if (!(f = fopen(fileName, "wb"))) {
-    return splashErrOpenFile;
-  }
-  fprintf(f, "P5\n%d %d\n255\n", width, height);
-  fwrite(alpha, 1, width * height, f);
-  fclose(f);
-  return splashOk;
-}
-
-void SplashBitmap::getPixel(int x, int y, SplashColorPtr pixel) {
-  SplashColorPtr p;
-
-  if (y < 0 || y >= height || x < 0 || x >= width || !data) {
-    return;
-  }
-  switch (mode) {
-  case splashModeMono1:
-    p = &data[y * rowSize + (x >> 3)];
-    pixel[0] = (p[0] & (0x80 >> (x & 7))) ? 0xff : 0x00;
-    break;
-  case splashModeMono8:
-    p = &data[y * rowSize + x];
-    pixel[0] = p[0];
-    break;
-  case splashModeRGB8:
-    p = &data[y * rowSize + 3 * x];
-    pixel[0] = p[0];
-    pixel[1] = p[1];
-    pixel[2] = p[2];
-    break;
-  case splashModeXBGR8:
-    p = &data[y * rowSize + 4 * x];
-    pixel[0] = p[2];
-    pixel[1] = p[1];
-    pixel[2] = p[0];
-    pixel[3] = p[3];
-    break;
-  case splashModeBGR8:
-    p = &data[y * rowSize + 3 * x];
-    pixel[0] = p[2];
-    pixel[1] = p[1];
-    pixel[2] = p[0];
-    break;
-#if SPLASH_CMYK
-  case splashModeCMYK8:
-    p = &data[y * rowSize + 4 * x];
-    pixel[0] = p[0];
-    pixel[1] = p[1];
-    pixel[2] = p[2];
-    pixel[3] = p[3];
-    break;
-  case splashModeDeviceN8:
-    p = &data[y * rowSize + (SPOT_NCOMPS + 4) * x];
-    for (int cp = 0; cp < SPOT_NCOMPS + 4; cp++)
-      pixel[cp] = p[cp];
-    break;
-#endif
-  }
-}
-
-Guchar SplashBitmap::getAlpha(int x, int y) {
-  return alpha[y * width + x];
-}
-
-SplashColorPtr SplashBitmap::takeData() {
-  SplashColorPtr data2;
-
-  data2 = data;
-  data = NULL;
-  return data2;
-}
-
-SplashError SplashBitmap::writeImgFile(SplashImageFileFormat format, char *fileName, int hDPI, int vDPI, WriteImgParams* params) {
-  FILE *f;
-  SplashError e;
-
-  if (!(f = fopen(fileName, "wb"))) {
-    return splashErrOpenFile;
-  }
-
-  e = writeImgFile(format, f, hDPI, vDPI, params);
-
-  fclose(f);
-  return e;
-}
-
-void SplashBitmap::setJpegParams(ImgWriter *writer, WriteImgParams* params)
-{
-#ifdef ENABLE_LIBJPEG
-  if (params) {
-    static_cast<JpegWriter*>(writer)->setProgressive(params->jpegProgressive);
-    if (params->jpegQuality >= 0)
-      static_cast<JpegWriter*>(writer)->setQuality(params->jpegQuality);
-  }
-#endif
-}
-
-SplashError SplashBitmap::writeImgFile(SplashImageFileFormat format, FILE *f, int hDPI, int vDPI, WriteImgParams* params) {
-  ImgWriter *writer;
-	SplashError e;
-  
-  SplashColorMode imageWriterFormat = splashModeRGB8;
-
-  switch (format) {
-    #ifdef ENABLE_LIBPNG
-    case splashFormatPng:
-	  writer = new PNGWriter();
-      break;
-    #endif
-
-    #ifdef ENABLE_LIBJPEG
-    #if SPLASH_CMYK
-    case splashFormatJpegCMYK:
-      writer = new JpegWriter(JpegWriter::CMYK);
-      setJpegParams(writer, params);
-      break;
-    #endif
-    case splashFormatJpeg:
-      writer = new JpegWriter();
-      setJpegParams(writer, params);
-      break;
-    #endif
-	
-    #ifdef ENABLE_LIBTIFF
-    case splashFormatTiff:
-      switch (mode) {
-      case splashModeMono1:
-        writer = new TiffWriter(TiffWriter::MONOCHROME);
-        imageWriterFormat = splashModeMono1;
-        break;
-      case splashModeMono8:
-        writer = new TiffWriter(TiffWriter::GRAY);
-        imageWriterFormat = splashModeMono8;
-        break;
-      case splashModeRGB8:
-      case splashModeBGR8:
-        writer = new TiffWriter(TiffWriter::RGB);
-        break;
-#if SPLASH_CMYK
-      case splashModeCMYK8:
-      case splashModeDeviceN8:
-        writer = new TiffWriter(TiffWriter::CMYK);
-        break;
-#endif
-      default:
-        fprintf(stderr, "TiffWriter: Mode %d not supported\n", mode);
-        writer = new TiffWriter();
-      }
-      if (writer && params) {
-        ((TiffWriter *)writer)->setCompressionString(params->tiffCompression.getCString());
-      }
-      break;
-    #endif
-
-    default:
-      // Not the greatest error message, but users of this function should
-      // have already checked whether their desired format is compiled in.
-      error(errInternal, -1, "Support for this image type not compiled in");
-      return splashErrGeneric;
-  }
-
-	e = writeImgFile(writer, f, hDPI, vDPI, imageWriterFormat);
-	delete writer;
-	return e;
-}
-
-#include "poppler/GfxState_helpers.h"
-
-void SplashBitmap::getRGBLine(int yl, SplashColorPtr line) {
-  SplashColor col;
-  double c, m, y, k, c1, m1, y1, k1, r, g, b;
-
-  for (int x = 0; x < width; x++) {
-    getPixel(x, yl, col);
-    c = byteToDbl(col[0]);
-    m = byteToDbl(col[1]);
-    y = byteToDbl(col[2]);
-    k = byteToDbl(col[3]);
-#if SPLASH_CMYK
-    if (separationList->getLength() > 0) {
-      for (int i = 0; i < separationList->getLength(); i++) {
-        if (col[i+4] > 0) {
-          GfxCMYK cmyk;
-          GfxColor input;
-          input.c[0] = byteToCol(col[i+4]);
-          GfxSeparationColorSpace *sepCS = (GfxSeparationColorSpace *)separationList->get(i);
-          sepCS->getCMYK(&input, &cmyk);
-          col[0] = colToByte(cmyk.c);
-          col[1] = colToByte(cmyk.m);
-          col[2] = colToByte(cmyk.y);
-          col[3] = colToByte(cmyk.k);
-          c += byteToDbl(col[0]);
-          m += byteToDbl(col[1]);
-          y += byteToDbl(col[2]);
-          k += byteToDbl(col[3]);
-        }
-      }
-      if (c > 1) c = 1;
-      if (m > 1) m = 1;
-      if (y > 1) y = 1;
-      if (k > 1) k = 1;
-    }
-#endif
-    c1 = 1 - c;
-    m1 = 1 - m;
-    y1 = 1 - y;
-    k1 = 1 - k;
-    cmykToRGBMatrixMultiplication(c, m, y, k, c1, m1, y1, k1, r, g, b);
-    *line++ = dblToByte(clip01(r));
-    *line++ = dblToByte(clip01(g));
-    *line++ = dblToByte(clip01(b));
-  }
-}
-
-void SplashBitmap::getXBGRLine(int yl, SplashColorPtr line, ConversionMode conversionMode) {
-  SplashColor col;
-  double c, m, y, k, c1, m1, y1, k1, r, g, b;
-
-  for (int x = 0; x < width; x++) {
-    getPixel(x, yl, col);
-    c = byteToDbl(col[0]);
-    m = byteToDbl(col[1]);
-    y = byteToDbl(col[2]);
-    k = byteToDbl(col[3]);
-#if SPLASH_CMYK
-    if (separationList->getLength() > 0) {
-      for (int i = 0; i < separationList->getLength(); i++) {
-        if (col[i+4] > 0) {
-          GfxCMYK cmyk;
-          GfxColor input;
-          input.c[0] = byteToCol(col[i+4]);
-          GfxSeparationColorSpace *sepCS = (GfxSeparationColorSpace *)separationList->get(i);
-          sepCS->getCMYK(&input, &cmyk);
-          col[0] = colToByte(cmyk.c);
-          col[1] = colToByte(cmyk.m);
-          col[2] = colToByte(cmyk.y);
-          col[3] = colToByte(cmyk.k);
-          c += byteToDbl(col[0]);
-          m += byteToDbl(col[1]);
-          y += byteToDbl(col[2]);
-          k += byteToDbl(col[3]);
-        }
-      }
-      if (c > 1) c = 1;
-      if (m > 1) m = 1;
-      if (y > 1) y = 1;
-      if (k > 1) k = 1;
-    }
-#endif
-    c1 = 1 - c;
-    m1 = 1 - m;
-    y1 = 1 - y;
-    k1 = 1 - k;
-    cmykToRGBMatrixMultiplication(c, m, y, k, c1, m1, y1, k1, r, g, b);
-
-    if (conversionMode == conversionAlphaPremultiplied) {
-        const double a = getAlpha(x, yl) / 255.0;
-
-        *line++ = dblToByte(clip01(b * a));
-        *line++ = dblToByte(clip01(g * a));
-        *line++ = dblToByte(clip01(r * a));
-    } else {
-        *line++ = dblToByte(clip01(b));
-        *line++ = dblToByte(clip01(g));
-        *line++ = dblToByte(clip01(r));
-    }
-
-    if (conversionMode != conversionOpaque) {
-        *line++ = getAlpha(x, yl);
-    } else {
-        *line++ = 255;
-    }
-  }
-}
-
-static inline Guchar div255(int x) {
-  return (Guchar)((x + (x >> 8) + 0x80) >> 8);
-}
-
-GBool SplashBitmap::convertToXBGR(ConversionMode conversionMode) {
-  if (mode == splashModeXBGR8) {
-    if (conversionMode != conversionOpaque) {
-      // Copy the alpha channel into the fourth component so that XBGR becomes ABGR.
-      const SplashColorPtr dbegin = data;
-      const SplashColorPtr dend = data + rowSize * height;
-
-      Guchar *const abegin = alpha;
-      Guchar *const aend = alpha + width * height;
-
-      SplashColorPtr d = dbegin;
-      Guchar *a = abegin;
-
-      if (conversionMode == conversionAlphaPremultiplied) {
-          for (; d < dend && a < aend; d += 4, a += 1) {
-              d[0] = div255(d[0] * *a);
-              d[1] = div255(d[1] * *a);
-              d[2] = div255(d[2] * *a);
-              d[3] = *a;
-          }
-      } else {
-          for (d += 3; d < dend && a < aend; d += 4, a += 1) {
-              *d = *a;
-          }
-      }
-    }
-
-    return gTrue;
-  }
-  
-  int newrowSize = width * 4;
-  SplashColorPtr newdata = (SplashColorPtr)gmallocn_checkoverflow(newrowSize, height);
-  if (newdata != NULL) {
-    for (int y = 0; y < height; y++) {
-      unsigned char *row = newdata + y * newrowSize;
-      getXBGRLine(y, row, conversionMode);
-    }
-    if (rowSize < 0) {
-      gfree(data + (height - 1) * rowSize);
-    } else {
-      gfree(data);
-    }
-    data = newdata;
-    rowSize = newrowSize;
-    mode = splashModeXBGR8;
-  }
-  return newdata != NULL;
-}
-
-#if SPLASH_CMYK
-void SplashBitmap::getCMYKLine(int yl, SplashColorPtr line) {
-  SplashColor col;
-
-  for (int x = 0; x < width; x++) {
-    getPixel(x, yl, col);
-    if (separationList->getLength() > 0) {
-      double c, m, y, k;
-      c = byteToDbl(col[0]);
-      m = byteToDbl(col[1]);
-      y = byteToDbl(col[2]);
-      k = byteToDbl(col[3]);
-      for (int i = 0; i < separationList->getLength(); i++) {
-        if (col[i+4] > 0) {
-          GfxCMYK cmyk;
-          GfxColor input;
-          input.c[0] = byteToCol(col[i+4]);
-          GfxSeparationColorSpace *sepCS = (GfxSeparationColorSpace *)separationList->get(i);
-          sepCS->getCMYK(&input, &cmyk);
-          col[0] = colToByte(cmyk.c);
-          col[1] = colToByte(cmyk.m);
-          col[2] = colToByte(cmyk.y);
-          col[3] = colToByte(cmyk.k);
-          c += byteToDbl(col[0]);
-          m += byteToDbl(col[1]);
-          y += byteToDbl(col[2]);
-          k += byteToDbl(col[3]);
-        }
-      }
-      col[0] = dblToByte(clip01(c));
-      col[1] = dblToByte(clip01(m));
-      col[2] = dblToByte(clip01(y));
-      col[3] = dblToByte(clip01(k));
-    }
-    *line++ = col[0];
-    *line++ = col[1];
-    *line++ = col[2];
-    *line++ = col[3];
-  }
-}
-#endif
-
-SplashError SplashBitmap::writeImgFile(ImgWriter *writer, FILE *f, int hDPI, int vDPI, SplashColorMode imageWriterFormat) {
-  if (mode != splashModeRGB8 && mode != splashModeMono8 && mode != splashModeMono1 && mode != splashModeXBGR8 && mode != splashModeBGR8
-#if SPLASH_CMYK
-      && mode != splashModeCMYK8 && mode != splashModeDeviceN8
-#endif
-     ) {
-    error(errInternal, -1, "unsupported SplashBitmap mode");
-    return splashErrGeneric;
-  }
-
-  if (!writer->init(f, width, height, hDPI, vDPI)) {
-    return splashErrGeneric;
-  }
-
-  switch (mode) {
-#if SPLASH_CMYK
-    case splashModeCMYK8:
-      if (writer->supportCMYK()) {
-        SplashColorPtr row;
-        unsigned char **row_pointers = new unsigned char*[height];
-        row = data;
-
-        for (int y = 0; y < height; ++y) {
-          row_pointers[y] = row;
-          row += rowSize;
-        }
-        if (!writer->writePointers(row_pointers, height)) {
-          delete[] row_pointers;
-          return splashErrGeneric;
-        }
-        delete[] row_pointers;
-      } else {
-        unsigned char *row = new unsigned char[3 * width];
-        for (int y = 0; y < height; y++) {
-          getRGBLine(y, row);
-          if (!writer->writeRow(&row)) {
-            delete[] row;
-            return splashErrGeneric;
-          }
-        }
-        delete[] row;
-      }
-    break;
-    case splashModeDeviceN8:
-      if (writer->supportCMYK()) {
-        unsigned char *row = new unsigned char[4 * width];
-        for (int y = 0; y < height; y++) {
-          getCMYKLine(y, row);
-          if (!writer->writeRow(&row)) {
-            delete[] row;
-            return splashErrGeneric;
-          }
-        }
-        delete[] row;
-      } else {
-        unsigned char *row = new unsigned char[3 * width];
-        for (int y = 0; y < height; y++) {
-          getRGBLine(y, row);
-          if (!writer->writeRow(&row)) {
-            delete[] row;
-            return splashErrGeneric;
-          }
-        }
-        delete[] row;
-      }
-    break;
-#endif
-    case splashModeRGB8:
-    {
-      SplashColorPtr row;
-      unsigned char **row_pointers = new unsigned char*[height];
-      row = data;
-
-      for (int y = 0; y < height; ++y) {
-        row_pointers[y] = row;
-        row += rowSize;
-      }
-      if (!writer->writePointers(row_pointers, height)) {
-        delete[] row_pointers;
-        return splashErrGeneric;
-      }
-      delete[] row_pointers;
-    }
-    break;
-    
-    case splashModeBGR8:
-    {
-      unsigned char *row = new unsigned char[3 * width];
-      for (int y = 0; y < height; y++) {
-        // Convert into a PNG row
-        for (int x = 0; x < width; x++) {
-          row[3*x] = data[y * rowSize + x * 3 + 2];
-          row[3*x+1] = data[y * rowSize + x * 3 + 1];
-          row[3*x+2] = data[y * rowSize + x * 3];
-        }
-
-        if (!writer->writeRow(&row)) {
-          delete[] row;
-          return splashErrGeneric;
-        }
-      }
-      delete[] row;
-    }
-    break;
-    
-    case splashModeXBGR8:
-    {
-      unsigned char *row = new unsigned char[3 * width];
-      for (int y = 0; y < height; y++) {
-        // Convert into a PNG row
-        for (int x = 0; x < width; x++) {
-          row[3*x] = data[y * rowSize + x * 4 + 2];
-          row[3*x+1] = data[y * rowSize + x * 4 + 1];
-          row[3*x+2] = data[y * rowSize + x * 4];
-        }
-
-        if (!writer->writeRow(&row)) {
-          delete[] row;
-          return splashErrGeneric;
-        }
-      }
-      delete[] row;
-    }
-    break;
-    
-    case splashModeMono8:
-    {
-      if (imageWriterFormat == splashModeMono8) {
-        SplashColorPtr row;
-        unsigned char **row_pointers = new unsigned char*[height];
-        row = data;
-
-        for (int y = 0; y < height; ++y) {
-          row_pointers[y] = row;
-          row += rowSize;
-        }
-        if (!writer->writePointers(row_pointers, height)) {
-          delete[] row_pointers;
-          return splashErrGeneric;
-        }
-        delete[] row_pointers;
-      } else if (imageWriterFormat == splashModeRGB8) {
-        unsigned char *row = new unsigned char[3 * width];
-        for (int y = 0; y < height; y++) {
-          // Convert into a PNG row
-          for (int x = 0; x < width; x++) {
-            row[3*x] = data[y * rowSize + x];
-            row[3*x+1] = data[y * rowSize + x];
-            row[3*x+2] = data[y * rowSize + x];
-          }
-
-          if (!writer->writeRow(&row)) {
-            delete[] row;
-            return splashErrGeneric;
-          }
-        }
-        delete[] row;
-      }
-      else {
-        // only splashModeMono8 or splashModeRGB8
-        return splashErrGeneric;
-      }
-    }
-    break;
-    
-    case splashModeMono1:
-    {
-      if (imageWriterFormat == splashModeMono1) {
-        SplashColorPtr row;
-        unsigned char **row_pointers = new unsigned char*[height];
-        row = data;
-
-        for (int y = 0; y < height; ++y) {
-          row_pointers[y] = row;
-          row += rowSize;
-        }
-        if (!writer->writePointers(row_pointers, height)) {
-          delete[] row_pointers;
-          return splashErrGeneric;
-        }
-        delete[] row_pointers;
-      } else if (imageWriterFormat == splashModeRGB8) {
-        unsigned char *row = new unsigned char[3 * width];
-        for (int y = 0; y < height; y++) {
-          // Convert into a PNG row
-          for (int x = 0; x < width; x++) {
-            getPixel(x, y, &row[3*x]);
-            row[3*x+1] = row[3*x];
-            row[3*x+2] = row[3*x];
-          }
-
-          if (!writer->writeRow(&row)) {
-            delete[] row;
-            return splashErrGeneric;
-          }
-        }
-        delete[] row;
-      }
-      else {
-        // only splashModeMono1 or splashModeRGB8
-        return splashErrGeneric;
-      }
-    }
-    break;
-    
-    default:
-    // can't happen
-    break;
-  }
-  
-  if (!writer->close()) {
-    return splashErrGeneric;
-  }
-
-  return splashOk;
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashBitmap.h b/source/libs/poppler/poppler-src/splash/SplashBitmap.h
deleted file mode 100644
index deb65c120..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashBitmap.h
+++ /dev/null
@@ -1,126 +0,0 @@
-//========================================================================
-//
-// SplashBitmap.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2007 Ilmari Heikkinen <ilmari.heikkinen@gmail.com>
-// Copyright (C) 2009 Shen Liang <shenzhuxi@gmail.com>
-// Copyright (C) 2009, 2012 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2009 Stefan Thomas <thomas@eload24.com>
-// Copyright (C) 2010, 2017 Adrian Johnson <ajohnson@redneon.com>
-// Copyright (C) 2010 Harry Roberts <harry.roberts@midnight-labs.org>
-// Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com>
-// Copyright (C) 2010 William Bader <williambader@hotmail.com>
-// Copyright (C) 2012 Thomas Freitag <Thomas.Freitag@alfa.de>
-// Copyright (C) 2015 Adam Reichold <adamreichold@myopera.com>
-// Copyright (C) 2016 Kenji Uno <ku@digitaldolphins.jp>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHBITMAP_H
-#define SPLASHBITMAP_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "SplashTypes.h"
-#include "poppler/GfxState.h"
-#include <stdio.h>
-
-class ImgWriter;
-
-//------------------------------------------------------------------------
-// SplashBitmap
-//------------------------------------------------------------------------
-
-class SplashBitmap {
-public:
-
-  // Create a new bitmap.  It will have <widthA> x <heightA> pixels in
-  // color mode <modeA>.  Rows will be padded out to a multiple of
-  // <rowPad> bytes.  If <topDown> is false, the bitmap will be stored
-  // upside-down, i.e., with the last row first in memory.
-  SplashBitmap(int widthA, int heightA, int rowPad,
-	       SplashColorMode modeA, GBool alphaA,
-	       GBool topDown = gTrue, GooList *separationList = NULL);
-  static SplashBitmap *copy(SplashBitmap *src);
-
-  ~SplashBitmap();
-
-  int getWidth() { return width; }
-  int getHeight() { return height; }
-  int getRowSize() { return rowSize; }
-  int getAlphaRowSize() { return width; }
-  int getRowPad() { return rowPad; }
-  SplashColorMode getMode() { return mode; }
-  SplashColorPtr getDataPtr() { return data; }
-  Guchar *getAlphaPtr() { return alpha; }
-  GooList *getSeparationList() { return separationList; }
-
-  SplashError writePNMFile(char *fileName);
-  SplashError writePNMFile(FILE *f);
-  SplashError writeAlphaPGMFile(char *fileName);
-
-  struct WriteImgParams
-  {
-    int jpegQuality = -1;
-    GBool jpegProgressive = gFalse;
-    GooString tiffCompression;
-  };
-
-  SplashError writeImgFile(SplashImageFileFormat format, char *fileName, int hDPI, int vDPI, WriteImgParams* params = nullptr);
-  SplashError writeImgFile(SplashImageFileFormat format, FILE *f, int hDPI, int vDPI, WriteImgParams* params = nullptr);
-  SplashError writeImgFile(ImgWriter *writer, FILE *f, int hDPI, int vDPI, SplashColorMode imageWriterFormat);
-
-  enum ConversionMode
-  {
-      conversionOpaque,
-      conversionAlpha,
-      conversionAlphaPremultiplied
-  };
-
-  GBool convertToXBGR(ConversionMode conversionMode = conversionOpaque);
-
-  void getPixel(int x, int y, SplashColorPtr pixel);
-  void getRGBLine(int y, SplashColorPtr line);
-  void getXBGRLine(int y, SplashColorPtr line, ConversionMode conversionMode = conversionOpaque);
-#if SPLASH_CMYK
-  void getCMYKLine(int y, SplashColorPtr line);
-#endif
-  Guchar getAlpha(int x, int y);
-
-  // Caller takes ownership of the bitmap data.  The SplashBitmap
-  // object is no longer valid -- the next call should be to the
-  // destructor.
-  SplashColorPtr takeData();
-
-private:
-
-  int width, height;		// size of bitmap
-  int rowPad;
-  int rowSize;			// size of one row of data, in bytes
-				//   - negative for bottom-up bitmaps
-  SplashColorMode mode;		// color mode
-  SplashColorPtr data;		// pointer to row zero of the color data
-  Guchar *alpha;		// pointer to row zero of the alpha data
-				//   (always top-down)
-  GooList *separationList; // list of spot colorants and their mapping functions
-
-  friend class Splash;
-
-  void setJpegParams(ImgWriter *writer, WriteImgParams* params);
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashClip.cc b/source/libs/poppler/poppler-src/splash/SplashClip.cc
deleted file mode 100644
index 85c6b1147..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashClip.cc
+++ /dev/null
@@ -1,411 +0,0 @@
-//========================================================================
-//
-// SplashClip.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2010 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include "goo/gmem.h"
-#include "SplashErrorCodes.h"
-#include "SplashPath.h"
-#include "SplashXPath.h"
-#include "SplashXPathScanner.h"
-#include "SplashBitmap.h"
-#include "SplashClip.h"
-
-//------------------------------------------------------------------------
-// SplashClip.flags
-//------------------------------------------------------------------------
-
-#define splashClipEO       0x01	// use even-odd rule
-
-//------------------------------------------------------------------------
-// SplashClip
-//------------------------------------------------------------------------
-
-SplashClip::SplashClip(SplashCoord x0, SplashCoord y0,
-		       SplashCoord x1, SplashCoord y1,
-		       GBool antialiasA) {
-  antialias = antialiasA;
-  if (x0 < x1) {
-    xMin = x0;
-    xMax = x1;
-  } else {
-    xMin = x1;
-    xMax = x0;
-  }
-  if (y0 < y1) {
-    yMin = y0;
-    yMax = y1;
-  } else {
-    yMin = y1;
-    yMax = y0;
-  }
-  xMinI = splashFloor(xMin);
-  yMinI = splashFloor(yMin);
-  xMaxI = splashCeil(xMax) - 1;
-  yMaxI = splashCeil(yMax) - 1;
-  paths = NULL;
-  flags = NULL;
-  scanners = NULL;
-  length = size = 0;
-}
-
-SplashClip::SplashClip(SplashClip *clip) {
-  int yMinAA, yMaxAA;
-  int i;
-
-  antialias = clip->antialias;
-  xMin = clip->xMin;
-  yMin = clip->yMin;
-  xMax = clip->xMax;
-  yMax = clip->yMax;
-  xMinI = clip->xMinI;
-  yMinI = clip->yMinI;
-  xMaxI = clip->xMaxI;
-  yMaxI = clip->yMaxI;
-  length = clip->length;
-  size = clip->size;
-  paths = (SplashXPath **)gmallocn(size, sizeof(SplashXPath *));
-  flags = (Guchar *)gmallocn(size, sizeof(Guchar));
-  scanners = (SplashXPathScanner **)
-                 gmallocn(size, sizeof(SplashXPathScanner *));
-  for (i = 0; i < length; ++i) {
-    paths[i] = clip->paths[i]->copy();
-    flags[i] = clip->flags[i];
-    if (antialias) {
-      yMinAA = yMinI * splashAASize;
-      yMaxAA = (yMaxI + 1) * splashAASize - 1;
-    } else {
-      yMinAA = yMinI;
-      yMaxAA = yMaxI;
-    }
-    scanners[i] = new SplashXPathScanner(paths[i], flags[i] & splashClipEO,
-					 yMinAA, yMaxAA);
-  }
-}
-
-SplashClip::~SplashClip() {
-  int i;
-
-  for (i = 0; i < length; ++i) {
-    delete paths[i];
-    delete scanners[i];
-  }
-  gfree(paths);
-  gfree(flags);
-  gfree(scanners);
-}
-
-void SplashClip::grow(int nPaths) {
-  if (length + nPaths > size) {
-    if (size == 0) {
-      size = 32;
-    }
-    while (size < length + nPaths) {
-      size *= 2;
-    }
-    paths = (SplashXPath **)greallocn(paths, size, sizeof(SplashXPath *));
-    flags = (Guchar *)greallocn(flags, size, sizeof(Guchar));
-    scanners = (SplashXPathScanner **)
-                   greallocn(scanners, size, sizeof(SplashXPathScanner *));
-  }
-}
-
-void SplashClip::resetToRect(SplashCoord x0, SplashCoord y0,
-			     SplashCoord x1, SplashCoord y1) {
-  int i;
-
-  for (i = 0; i < length; ++i) {
-    delete paths[i];
-    delete scanners[i];
-  }
-  gfree(paths);
-  gfree(flags);
-  gfree(scanners);
-  paths = NULL;
-  flags = NULL;
-  scanners = NULL;
-  length = size = 0;
-
-  if (x0 < x1) {
-    xMin = x0;
-    xMax = x1;
-  } else {
-    xMin = x1;
-    xMax = x0;
-  }
-  if (y0 < y1) {
-    yMin = y0;
-    yMax = y1;
-  } else {
-    yMin = y1;
-    yMax = y0;
-  }
-  xMinI = splashFloor(xMin);
-  yMinI = splashFloor(yMin);
-  xMaxI = splashCeil(xMax) - 1;
-  yMaxI = splashCeil(yMax) - 1;
-}
-
-SplashError SplashClip::clipToRect(SplashCoord x0, SplashCoord y0,
-				   SplashCoord x1, SplashCoord y1) {
-  if (x0 < x1) {
-    if (x0 > xMin) {
-      xMin = x0;
-      xMinI = splashFloor(xMin);
-    }
-    if (x1 < xMax) {
-      xMax = x1;
-      xMaxI = splashCeil(xMax) - 1;
-    }
-  } else {
-    if (x1 > xMin) {
-      xMin = x1;
-      xMinI = splashFloor(xMin);
-    }
-    if (x0 < xMax) {
-      xMax = x0;
-      xMaxI = splashCeil(xMax) - 1;
-    }
-  }
-  if (y0 < y1) {
-    if (y0 > yMin) {
-      yMin = y0;
-      yMinI = splashFloor(yMin);
-    }
-    if (y1 < yMax) {
-      yMax = y1;
-      yMaxI = splashCeil(yMax) - 1;
-    }
-  } else {
-    if (y1 > yMin) {
-      yMin = y1;
-      yMinI = splashFloor(yMin);
-    }
-    if (y0 < yMax) {
-      yMax = y0;
-      yMaxI = splashCeil(yMax) - 1;
-    }
-  }
-  return splashOk;
-}
-
-SplashError SplashClip::clipToPath(SplashPath *path, SplashCoord *matrix,
-				   SplashCoord flatness, GBool eo) {
-  SplashXPath *xPath;
-  int yMinAA, yMaxAA;
-
-  xPath = new SplashXPath(path, matrix, flatness, gTrue);
-
-  // check for an empty path
-  if (xPath->length == 0) {
-    xMax = xMin - 1;
-    yMax = yMin - 1;
-    xMaxI = splashCeil(xMax) - 1;
-    yMaxI = splashCeil(yMax) - 1;
-    delete xPath;
-
-  // check for a rectangle
-  } else if (xPath->length == 4 &&
-	     ((xPath->segs[0].x0 == xPath->segs[0].x1 &&
-	       xPath->segs[0].x0 == xPath->segs[1].x0 &&
-	       xPath->segs[0].x0 == xPath->segs[3].x1 &&
-	       xPath->segs[2].x0 == xPath->segs[2].x1 &&
-	       xPath->segs[2].x0 == xPath->segs[1].x1 &&
-	       xPath->segs[2].x0 == xPath->segs[3].x0 &&
-	       xPath->segs[1].y0 == xPath->segs[1].y1 &&
-	       xPath->segs[1].y0 == xPath->segs[0].y1 &&
-	       xPath->segs[1].y0 == xPath->segs[2].y0 &&
-	       xPath->segs[3].y0 == xPath->segs[3].y1 &&
-	       xPath->segs[3].y0 == xPath->segs[0].y0 &&
-	       xPath->segs[3].y0 == xPath->segs[2].y1) ||
-	      (xPath->segs[0].y0 == xPath->segs[0].y1 &&
-	       xPath->segs[0].y0 == xPath->segs[1].y0 &&
-	       xPath->segs[0].y0 == xPath->segs[3].y1 &&
-	       xPath->segs[2].y0 == xPath->segs[2].y1 &&
-	       xPath->segs[2].y0 == xPath->segs[1].y1 &&
-	       xPath->segs[2].y0 == xPath->segs[3].y0 &&
-	       xPath->segs[1].x0 == xPath->segs[1].x1 &&
-	       xPath->segs[1].x0 == xPath->segs[0].x1 &&
-	       xPath->segs[1].x0 == xPath->segs[2].x0 &&
-	       xPath->segs[3].x0 == xPath->segs[3].x1 &&
-	       xPath->segs[3].x0 == xPath->segs[0].x0 &&
-	       xPath->segs[3].x0 == xPath->segs[2].x1))) {
-    clipToRect(xPath->segs[0].x0, xPath->segs[0].y0,
-	       xPath->segs[2].x0, xPath->segs[2].y0);
-    delete xPath;
-
-  } else {
-    grow(1);
-    if (antialias) {
-      xPath->aaScale();
-    }
-    xPath->sort();
-    paths[length] = xPath;
-    flags[length] = eo ? splashClipEO : 0;
-    if (antialias) {
-      yMinAA = yMinI * splashAASize;
-      yMaxAA = (yMaxI + 1) * splashAASize - 1;
-    } else {
-      yMinAA = yMinI;
-      yMaxAA = yMaxI;
-    }
-    scanners[length] = new SplashXPathScanner(xPath, eo, yMinAA, yMaxAA);
-    ++length;
-  }
-
-  return splashOk;
-}
-
-SplashClipResult SplashClip::testRect(int rectXMin, int rectYMin,
-				      int rectXMax, int rectYMax) {
-  // This tests the rectangle:
-  //     x = [rectXMin, rectXMax + 1)    (note: rect coords are ints)
-  //     y = [rectYMin, rectYMax + 1)
-  // against the clipping region:
-  //     x = [xMin, xMax)                (note: clipping coords are fp)
-  //     y = [yMin, yMax)
-  if ((SplashCoord)(rectXMax + 1) <= xMin || (SplashCoord)rectXMin >= xMax ||
-      (SplashCoord)(rectYMax + 1) <= yMin || (SplashCoord)rectYMin >= yMax) {
-    return splashClipAllOutside;
-  }
-  if ((SplashCoord)rectXMin >= xMin && (SplashCoord)(rectXMax + 1) <= xMax &&
-      (SplashCoord)rectYMin >= yMin && (SplashCoord)(rectYMax + 1) <= yMax &&
-      length == 0) {
-    return splashClipAllInside;
-  }
-  return splashClipPartial;
-}
-
-SplashClipResult SplashClip::testSpan(int spanXMin, int spanXMax, int spanY) {
-  int i;
-
-  // This tests the rectangle:
-  //     x = [spanXMin, spanXMax + 1)    (note: span coords are ints)
-  //     y = [spanY, spanY + 1)
-  // against the clipping region:
-  //     x = [xMin, xMax)                (note: clipping coords are fp)
-  //     y = [yMin, yMax)
-  if ((SplashCoord)(spanXMax + 1) <= xMin || (SplashCoord)spanXMin >= xMax ||
-      (SplashCoord)(spanY + 1) <= yMin || (SplashCoord)spanY >= yMax) {
-    return splashClipAllOutside;
-  }
-  if (!((SplashCoord)spanXMin >= xMin && (SplashCoord)(spanXMax + 1) <= xMax &&
-	(SplashCoord)spanY >= yMin && (SplashCoord)(spanY + 1) <= yMax)) {
-    return splashClipPartial;
-  }
-  if (antialias) {
-    for (i = 0; i < length; ++i) {
-      if (!scanners[i]->testSpan(spanXMin * splashAASize,
-				 spanXMax * splashAASize + (splashAASize - 1),
-				 spanY * splashAASize)) {
-	return splashClipPartial;
-      }
-    }
-  } else {
-    for (i = 0; i < length; ++i) {
-      if (!scanners[i]->testSpan(spanXMin, spanXMax, spanY)) {
-	return splashClipPartial;
-      }
-    }
-  }
-  return splashClipAllInside;
-}
-
-void SplashClip::clipAALine(SplashBitmap *aaBuf, int *x0, int *x1, int y, GBool adjustVertLine) {
-  int xx0, xx1, xx, yy, i;
-  SplashColorPtr p;
-
-  // zero out pixels with x < xMin
-  xx0 = *x0 * splashAASize;
-  xx1 = splashFloor(xMin * splashAASize);
-  if (xx1 > aaBuf->getWidth()) {
-    xx1 = aaBuf->getWidth();
-  }
-  if (xx0 < xx1) {
-    xx0 &= ~7;
-    for (yy = 0; yy < splashAASize; ++yy) {
-      p = aaBuf->getDataPtr() + yy * aaBuf->getRowSize() + (xx0 >> 3);
-      for (xx = xx0; xx + 7 < xx1; xx += 8) {
-	*p++ = 0;
-      }
-      if (xx < xx1 && !adjustVertLine) {
-	*p &= 0xff >> (xx1 & 7);
-      }
-    }
-    *x0 = splashFloor(xMin);
-  }
-
-  // zero out pixels with x > xMax
-  xx0 = splashFloor(xMax * splashAASize) + 1;
-  if (xx0 < 0) {
-    xx0 = 0;
-  }
-  xx1 = (*x1 + 1) * splashAASize;
-  if (xx0 < xx1 && !adjustVertLine) {
-    for (yy = 0; yy < splashAASize; ++yy) {
-      p = aaBuf->getDataPtr() + yy * aaBuf->getRowSize() + (xx0 >> 3);
-      xx = xx0;
-      if (xx & 7) {
-	*p &= 0xff00 >> (xx & 7);
-	xx = (xx & ~7) + 8;
-	++p;
-      }
-      for (; xx < xx1; xx += 8) {
-	*p++ = 0;
-      }
-    }
-    *x1 = splashFloor(xMax);
-  }
-
-  // check the paths
-  for (i = 0; i < length; ++i) {
-    scanners[i]->clipAALine(aaBuf, x0, x1, y);
-  }
-  if (*x0 > *x1) {
-    *x0 = *x1;
-  }
-  if (*x0 < 0) {
-    *x0 = 0;
-  }
-  if ((*x0>>1) >= aaBuf->getRowSize()) {
-    xx0 = *x0;
-    *x0 = (aaBuf->getRowSize() - 1) << 1;
-    if (xx0 & 1) {
-      *x0 = *x0 + 1;
-    }
-  }
-  if (*x1 < *x0) {
-    *x1 = *x0;
-  }
-  if ((*x1>>1) >= aaBuf->getRowSize()) {
-    xx0 = *x1;
-    *x1 = (aaBuf->getRowSize() - 1) << 1;
-    if (xx0 & 1) {
-      *x1 = *x1 + 1;
-    }
-  }
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashClip.h b/source/libs/poppler/poppler-src/splash/SplashClip.h
deleted file mode 100644
index 5c0fdba99..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashClip.h
+++ /dev/null
@@ -1,152 +0,0 @@
-//========================================================================
-//
-// SplashClip.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2010 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHCLIP_H
-#define SPLASHCLIP_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "SplashTypes.h"
-#include "SplashMath.h"
-#include "SplashXPathScanner.h"
-
-class SplashPath;
-class SplashXPath;
-class SplashBitmap;
-
-//------------------------------------------------------------------------
-
-enum SplashClipResult {
-  splashClipAllInside,
-  splashClipAllOutside,
-  splashClipPartial
-};
-
-//------------------------------------------------------------------------
-// SplashClip
-//------------------------------------------------------------------------
-
-class SplashClip {
-public:
-
-  // Create a clip, for the given rectangle.
-  SplashClip(SplashCoord x0, SplashCoord y0,
-	     SplashCoord x1, SplashCoord y1,
-	     GBool antialiasA);
-
-  // Copy a clip.
-  SplashClip *copy() { return new SplashClip(this); }
-
-  ~SplashClip();
-
-  // Reset the clip to a rectangle.
-  void resetToRect(SplashCoord x0, SplashCoord y0,
-		   SplashCoord x1, SplashCoord y1);
-
-  // Intersect the clip with a rectangle.
-  SplashError clipToRect(SplashCoord x0, SplashCoord y0,
-			 SplashCoord x1, SplashCoord y1);
-
-  // Interesect the clip with <path>.
-  SplashError clipToPath(SplashPath *path, SplashCoord *matrix,
-			 SplashCoord flatness, GBool eo);
-
-  // Returns true if (<x>,<y>) is inside the clip.
-  GBool test(int x, int y)
-  {
-    int i;
-
-    // check the rectangle
-    if (x < xMinI || x > xMaxI || y < yMinI || y > yMaxI) {
-      return gFalse;
-    }
-
-    // check the paths
-    if (antialias) {
-      for (i = 0; i < length; ++i) {
-        if (!scanners[i]->test(x * splashAASize, y * splashAASize)) {
-	  return gFalse;
-        }
-      }
-    } else {
-      for (i = 0; i < length; ++i) {
-        if (!scanners[i]->test(x, y)) {
-	  return gFalse;
-        }
-      }
-    }
-
-    return gTrue;
-  }
-
-  // Tests a rectangle against the clipping region.  Returns one of:
-  //   - splashClipAllInside if the entire rectangle is inside the
-  //     clipping region, i.e., all pixels in the rectangle are
-  //     visible
-  //   - splashClipAllOutside if the entire rectangle is outside the
-  //     clipping region, i.e., all the pixels in the rectangle are
-  //     clipped
-  //   - splashClipPartial if the rectangle is part inside and part
-  //     outside the clipping region
-  SplashClipResult testRect(int rectXMin, int rectYMin,
-			    int rectXMax, int rectYMax);
-
-  // Similar to testRect, but tests a horizontal span.
-  SplashClipResult testSpan(int spanXMin, int spanXMax, int spanY);
-
-  // Clips an anti-aliased line by setting pixels to zero.  On entry,
-  // all non-zero pixels are between <x0> and <x1>.  This function
-  // will update <x0> and <x1>.
-  void clipAALine(SplashBitmap *aaBuf, int *x0, int *x1, int y,
-    GBool adjustVertLine = gFalse);
-
-  // Get the rectangle part of the clip region.
-  SplashCoord getXMin() { return xMin; }
-  SplashCoord getXMax() { return xMax; }
-  SplashCoord getYMin() { return yMin; }
-  SplashCoord getYMax() { return yMax; }
-
-  // Get the rectangle part of the clip region, in integer coordinates.
-  int getXMinI() { return xMinI; }
-  int getXMaxI() { return xMaxI; }
-  int getYMinI() { return yMinI; }
-  int getYMaxI() { return yMaxI; }
-
-  // Get the number of arbitrary paths used by the clip region.
-  int getNumPaths() { return length; }
-
-protected:
-
-  SplashClip(SplashClip *clip);
-  void grow(int nPaths);
-
-  GBool antialias;
-  SplashCoord xMin, yMin, xMax, yMax;
-  int xMinI, yMinI, xMaxI, yMaxI;
-  SplashXPath **paths;
-  Guchar *flags;
-  SplashXPathScanner **scanners;
-  int length, size;
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashErrorCodes.h b/source/libs/poppler/poppler-src/splash/SplashErrorCodes.h
deleted file mode 100644
index d1f81f85d..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashErrorCodes.h
+++ /dev/null
@@ -1,50 +0,0 @@
-//========================================================================
-//
-// SplashErrorCodes.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006, 2009 Albert Astals Cid <aacid@kde.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHERRORCODES_H
-#define SPLASHERRORCODES_H
-
-//------------------------------------------------------------------------
-
-#define splashOk                 0	// no error
-
-#define splashErrNoCurPt         1	// no current point
-
-#define splashErrEmptyPath       2	// zero points in path
-
-#define splashErrBogusPath       3	// only one point in subpath
-
-#define splashErrNoSave	         4	// state stack is empty
-
-#define splashErrOpenFile        5	// couldn't open file
-
-#define splashErrNoGlyph         6	// couldn't get the requested glyph
-
-#define splashErrModeMismatch    7	// invalid combination of color modes
-
-#define splashErrSingularMatrix  8	// matrix is singular
-
-#define splashErrBadArg          9      // bad argument
-
-#define splashErrZeroImage     254      // image of 0x0
-
-#define splashErrGeneric       255
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashFTFont.cc b/source/libs/poppler/poppler-src/splash/SplashFTFont.cc
deleted file mode 100644
index b785826d6..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFTFont.cc
+++ /dev/null
@@ -1,513 +0,0 @@
-//========================================================================
-//
-// SplashFTFont.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2005, 2007-2011, 2014 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2006 Kristian Høgsberg <krh@bitplanet.net>
-// Copyright (C) 2009 Petr Gajdos <pgajdos@novell.com>
-// Copyright (C) 2010 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp>
-// Copyright (C) 2011 Andreas Hartmetz <ahartmetz@gmail.com>
-// Copyright (C) 2012 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <ft2build.h>
-#include FT_OUTLINE_H
-#include FT_SIZES_H
-#include FT_GLYPH_H
-#include "goo/gmem.h"
-#include "SplashMath.h"
-#include "SplashGlyphBitmap.h"
-#include "SplashPath.h"
-#include "SplashFTFontEngine.h"
-#include "SplashFTFontFile.h"
-#include "SplashFTFont.h"
-
-//------------------------------------------------------------------------
-
-static int glyphPathMoveTo(const FT_Vector *pt, void *path);
-static int glyphPathLineTo(const FT_Vector *pt, void *path);
-static int glyphPathConicTo(const FT_Vector *ctrl, const FT_Vector *pt,
-			    void *path);
-static int glyphPathCubicTo(const FT_Vector *ctrl1, const FT_Vector *ctrl2,
-			    const FT_Vector *pt, void *path);
-
-//------------------------------------------------------------------------
-// SplashFTFont
-//------------------------------------------------------------------------
-
-SplashFTFont::SplashFTFont(SplashFTFontFile *fontFileA, SplashCoord *matA,
-			   SplashCoord *textMatA):
-  SplashFont(fontFileA, matA, textMatA, fontFileA->engine->aa), 
-  enableFreeTypeHinting(fontFileA->engine->enableFreeTypeHinting),
-  enableSlightHinting(fontFileA->engine->enableSlightHinting)
-{
-  FT_Face face;
-  int div;
-  int x, y;
-#if USE_FIXEDPOINT
-  SplashCoord scale;
-#endif
-
-  face = fontFileA->face;
-  if (FT_New_Size(face, &sizeObj)) {
-    return;
-  }
-  face->size = sizeObj;
-  size = splashRound(splashDist(0, 0, mat[2], mat[3]));
-  if (size < 1) {
-    size = 1;
-  }
-  if (FT_Set_Pixel_Sizes(face, 0, size)) {
-    return;
-  }
-  // if the textMat values are too small, FreeType's fixed point
-  // arithmetic doesn't work so well
-  textScale = splashDist(0, 0, textMat[2], textMat[3]) / size;
-
-  div = face->bbox.xMax > 20000 ? 65536 : 1;
-
-#if USE_FIXEDPOINT
-  scale = (SplashCoord)1 / (SplashCoord)face->units_per_EM;
-
-  // transform the four corners of the font bounding box -- the min
-  // and max values form the bounding box of the transformed font
-  x = (int)(mat[0] * (scale * (face->bbox.xMin / div)) +
-	    mat[2] * (scale * (face->bbox.yMin / div)));
-  xMin = xMax = x;
-  y = (int)(mat[1] * (scale * (face->bbox.xMin / div)) +
-	    mat[3] * (scale * (face->bbox.yMin / div)));
-  yMin = yMax = y;
-  x = (int)(mat[0] * (scale * (face->bbox.xMin / div)) +
-	    mat[2] * (scale * (face->bbox.yMax / div)));
-  if (x < xMin) {
-    xMin = x;
-  } else if (x > xMax) {
-    xMax = x;
-  }
-  y = (int)(mat[1] * (scale * (face->bbox.xMin / div)) +
-	    mat[3] * (scale * (face->bbox.yMax / div)));
-  if (y < yMin) {
-    yMin = y;
-  } else if (y > yMax) {
-    yMax = y;
-  }
-  x = (int)(mat[0] * (scale * (face->bbox.xMax / div)) +
-	    mat[2] * (scale * (face->bbox.yMin / div)));
-  if (x < xMin) {
-    xMin = x;
-  } else if (x > xMax) {
-    xMax = x;
-  }
-  y = (int)(mat[1] * (scale * (face->bbox.xMax / div)) +
-	    mat[3] * (scale * (face->bbox.yMin / div)));
-  if (y < yMin) {
-    yMin = y;
-  } else if (y > yMax) {
-    yMax = y;
-  }
-  x = (int)(mat[0] * (scale * (face->bbox.xMax / div)) +
-	    mat[2] * (scale * (face->bbox.yMax / div)));
-  if (x < xMin) {
-    xMin = x;
-  } else if (x > xMax) {
-    xMax = x;
-  }
-  y = (int)(mat[1] * (scale * (face->bbox.xMax / div)) +
-	    mat[3] * (scale * (face->bbox.yMax / div)));
-  if (y < yMin) {
-    yMin = y;
-  } else if (y > yMax) {
-    yMax = y;
-  }
-#else // USE_FIXEDPOINT
-  // transform the four corners of the font bounding box -- the min
-  // and max values form the bounding box of the transformed font
-  x = (int)((mat[0] * face->bbox.xMin + mat[2] * face->bbox.yMin) /
-	    (div * face->units_per_EM));
-  xMin = xMax = x;
-  y = (int)((mat[1] * face->bbox.xMin + mat[3] * face->bbox.yMin) /
-	    (div * face->units_per_EM));
-  yMin = yMax = y;
-  x = (int)((mat[0] * face->bbox.xMin + mat[2] * face->bbox.yMax) /
-	    (div * face->units_per_EM));
-  if (x < xMin) {
-    xMin = x;
-  } else if (x > xMax) {
-    xMax = x;
-  }
-  y = (int)((mat[1] * face->bbox.xMin + mat[3] * face->bbox.yMax) /
-	    (div * face->units_per_EM));
-  if (y < yMin) {
-    yMin = y;
-  } else if (y > yMax) {
-    yMax = y;
-  }
-  x = (int)((mat[0] * face->bbox.xMax + mat[2] * face->bbox.yMin) /
-	    (div * face->units_per_EM));
-  if (x < xMin) {
-    xMin = x;
-  } else if (x > xMax) {
-    xMax = x;
-  }
-  y = (int)((mat[1] * face->bbox.xMax + mat[3] * face->bbox.yMin) /
-	    (div * face->units_per_EM));
-  if (y < yMin) {
-    yMin = y;
-  } else if (y > yMax) {
-    yMax = y;
-  }
-  x = (int)((mat[0] * face->bbox.xMax + mat[2] * face->bbox.yMax) /
-	    (div * face->units_per_EM));
-  if (x < xMin) {
-    xMin = x;
-  } else if (x > xMax) {
-    xMax = x;
-  }
-  y = (int)((mat[1] * face->bbox.xMax + mat[3] * face->bbox.yMax) /
-	    (div * face->units_per_EM));
-  if (y < yMin) {
-    yMin = y;
-  } else if (y > yMax) {
-    yMax = y;
-  }
-#endif // USE_FIXEDPOINT
-  // This is a kludge: some buggy PDF generators embed fonts with
-  // zero bounding boxes.
-  if (xMax == xMin) {
-    xMin = 0;
-    xMax = size;
-  }
-  if (yMax == yMin) {
-    yMin = 0;
-    yMax = (int)((SplashCoord)1.2 * size);
-  }
-
-  // compute the transform matrix
-#if USE_FIXEDPOINT
-  matrix.xx = (FT_Fixed)((mat[0] / size).get16Dot16());
-  matrix.yx = (FT_Fixed)((mat[1] / size).get16Dot16());
-  matrix.xy = (FT_Fixed)((mat[2] / size).get16Dot16());
-  matrix.yy = (FT_Fixed)((mat[3] / size).get16Dot16());
-  textMatrix.xx = (FT_Fixed)((textMat[0] / (textScale * size)).get16Dot16());
-  textMatrix.yx = (FT_Fixed)((textMat[1] / (textScale * size)).get16Dot16());
-  textMatrix.xy = (FT_Fixed)((textMat[2] / (textScale * size)).get16Dot16());
-  textMatrix.yy = (FT_Fixed)((textMat[3] / (textScale * size)).get16Dot16());
-#else
-  matrix.xx = (FT_Fixed)((mat[0] / size) * 65536);
-  matrix.yx = (FT_Fixed)((mat[1] / size) * 65536);
-  matrix.xy = (FT_Fixed)((mat[2] / size) * 65536);
-  matrix.yy = (FT_Fixed)((mat[3] / size) * 65536);
-  textMatrix.xx = (FT_Fixed)((textMat[0] / (textScale * size)) * 65536);
-  textMatrix.yx = (FT_Fixed)((textMat[1] / (textScale * size)) * 65536);
-  textMatrix.xy = (FT_Fixed)((textMat[2] / (textScale * size)) * 65536);
-  textMatrix.yy = (FT_Fixed)((textMat[3] / (textScale * size)) * 65536);
-#endif
-}
-
-SplashFTFont::~SplashFTFont() {
-}
-
-GBool SplashFTFont::getGlyph(int c, int xFrac, int yFrac,
-			     SplashGlyphBitmap *bitmap, int x0, int y0, SplashClip *clip, SplashClipResult *clipRes) {
-  return SplashFont::getGlyph(c, xFrac, 0, bitmap, x0, y0, clip, clipRes);
-}
-
-static FT_Int32 getFTLoadFlags(GBool type1, GBool trueType, GBool aa, GBool enableFreeTypeHinting, GBool enableSlightHinting)
-{
-  int ret = FT_LOAD_DEFAULT;
-  if (aa)
-    ret |= FT_LOAD_NO_BITMAP;
-  
-  if (enableFreeTypeHinting) {
-    if (enableSlightHinting) {
-      ret |= FT_LOAD_TARGET_LIGHT;
-    } else {
-      if (trueType) {
-	// FT2's autohinting doesn't always work very well (especially with
-	// font subsets), so turn it off if anti-aliasing is enabled; if
-	// anti-aliasing is disabled, this seems to be a tossup - some fonts
-	// look better with hinting, some without, so leave hinting on
-	if (aa) {
-	  ret |= FT_LOAD_NO_AUTOHINT;
-	}
-      } else if (type1) {
-	// Type 1 fonts seem to look better with 'light' hinting mode
-	ret |= FT_LOAD_TARGET_LIGHT;
-      }
-    }
-  } else {
-    ret |= FT_LOAD_NO_HINTING;
-  }
-  return ret;
-}
-
-GBool SplashFTFont::makeGlyph(int c, int xFrac, int yFrac,
-			      SplashGlyphBitmap *bitmap, int x0, int y0, SplashClip *clip, SplashClipResult *clipRes) {
-  SplashFTFontFile *ff;
-  FT_Vector offset;
-  FT_GlyphSlot slot;
-  FT_UInt gid;
-  int rowSize;
-  Guchar *p, *q;
-  int i;
-
-  ff = (SplashFTFontFile *)fontFile;
-
-  ff->face->size = sizeObj;
-  offset.x = (FT_Pos)(int)((SplashCoord)xFrac * splashFontFractionMul * 64);
-  offset.y = 0;
-  FT_Set_Transform(ff->face, &matrix, &offset);
-  slot = ff->face->glyph;
-
-  if (ff->codeToGID && c < ff->codeToGIDLen && c >= 0) {
-    gid = (FT_UInt)ff->codeToGID[c];
-  } else {
-    gid = (FT_UInt)c;
-  }
-
-  if (FT_Load_Glyph(ff->face, gid, getFTLoadFlags(ff->type1, ff->trueType, aa, enableFreeTypeHinting, enableSlightHinting))) {
-    return gFalse;
-  }
-
-  // prelimirary values based on FT_Outline_Get_CBox
-  // we add two pixels to each side to be in the safe side
-  FT_BBox cbox;
-  FT_Outline_Get_CBox(&ff->face->glyph->outline, &cbox);
-  bitmap->x = -(cbox.xMin / 64) + 2;
-  bitmap->y =  (cbox.yMax / 64) + 2;
-  bitmap->w = ((cbox.xMax - cbox.xMin) / 64) + 4;
-  bitmap->h = ((cbox.yMax - cbox.yMin) / 64) + 4;
-
-  *clipRes = clip->testRect(x0 - bitmap->x,
-                            y0 - bitmap->y,
-                            x0 - bitmap->x + bitmap->w,
-                            y0 - bitmap->y + bitmap->h);
-  if (*clipRes == splashClipAllOutside) {
-    bitmap->freeData = gFalse;
-    return gTrue;
-  }
-
-  if (FT_Render_Glyph(slot, aa ? ft_render_mode_normal
-		               : ft_render_mode_mono)) {
-    return gFalse;
-  }
-
-  if (slot->bitmap.width == 0 || slot->bitmap.rows == 0) {
-    // this can happen if (a) the glyph is really tiny or (b) the
-    // metrics in the TrueType file are broken
-    return gFalse;
-  }
-
-  bitmap->x = -slot->bitmap_left;
-  bitmap->y = slot->bitmap_top;
-  bitmap->w = slot->bitmap.width;
-  bitmap->h = slot->bitmap.rows;
-  bitmap->aa = aa;
-  if (aa) {
-    rowSize = bitmap->w;
-  } else {
-    rowSize = (bitmap->w + 7) >> 3;
-  }
-  bitmap->data = (Guchar *)gmallocn_checkoverflow(rowSize, bitmap->h);
-  if (!bitmap->data) {
-    return gFalse;
-  }
-  bitmap->freeData = gTrue;
-  for (i = 0, p = bitmap->data, q = slot->bitmap.buffer;
-       i < bitmap->h;
-       ++i, p += rowSize, q += slot->bitmap.pitch) {
-    memcpy(p, q, rowSize);
-  }
-
-  return gTrue;
-}
-
-double SplashFTFont::getGlyphAdvance(int c)
-{
-  SplashFTFontFile *ff;
-  FT_Vector offset;
-  FT_UInt gid;
-  FT_Matrix identityMatrix;
-
-  ff = (SplashFTFontFile *)fontFile;
-
-  // init the matrix
-  identityMatrix.xx = 65536; // 1 in 16.16 format
-  identityMatrix.xy = 0;
-  identityMatrix.yx = 0;
-  identityMatrix.yy = 65536; // 1 in 16.16 format
-
-  // init the offset
-  offset.x = 0;
-  offset.y = 0;
-
-  ff->face->size = sizeObj;
-  FT_Set_Transform(ff->face, &identityMatrix, &offset);
-
-  if (ff->codeToGID && c < ff->codeToGIDLen) {
-    gid = (FT_UInt)ff->codeToGID[c];
-  } else {
-    gid = (FT_UInt)c;
-  }
-
-  if (FT_Load_Glyph(ff->face, gid, getFTLoadFlags(ff->type1, ff->trueType, aa, enableFreeTypeHinting, enableSlightHinting))) {
-    return -1;
-  }
-
-  // 64.0 is 1 in 26.6 format
-  return ff->face->glyph->metrics.horiAdvance / 64.0 / size;
-}
-
-struct SplashFTFontPath {
-  SplashPath *path;
-  SplashCoord textScale;
-  GBool needClose;
-};
-
-SplashPath *SplashFTFont::getGlyphPath(int c) {
-  static FT_Outline_Funcs outlineFuncs = {
-#if FREETYPE_MINOR <= 1
-    (int (*)(FT_Vector *, void *))&glyphPathMoveTo,
-    (int (*)(FT_Vector *, void *))&glyphPathLineTo,
-    (int (*)(FT_Vector *, FT_Vector *, void *))&glyphPathConicTo,
-    (int (*)(FT_Vector *, FT_Vector *, FT_Vector *, void *))&glyphPathCubicTo,
-#else
-    &glyphPathMoveTo,
-    &glyphPathLineTo,
-    &glyphPathConicTo,
-    &glyphPathCubicTo,
-#endif
-    0, 0
-  };
-  SplashFTFontFile *ff;
-  SplashFTFontPath path;
-  FT_GlyphSlot slot;
-  FT_UInt gid;
-  FT_Glyph glyph;
-
-  ff = (SplashFTFontFile *)fontFile;
-  ff->face->size = sizeObj;
-  FT_Set_Transform(ff->face, &textMatrix, NULL);
-  slot = ff->face->glyph;
-  if (ff->codeToGID && c < ff->codeToGIDLen && c >= 0) {
-    gid = ff->codeToGID[c];
-  } else {
-    gid = (FT_UInt)c;
-  }
-  if (FT_Load_Glyph(ff->face, gid, getFTLoadFlags(ff->type1, ff->trueType, aa, enableFreeTypeHinting, enableSlightHinting))) {
-    return NULL;
-  }
-  if (FT_Get_Glyph(slot, &glyph)) {
-    return NULL;
-  }
-  if (FT_Outline_Check(&((FT_OutlineGlyph)glyph)->outline)) {
-    return NULL;
-  }
-  path.path = new SplashPath();
-  path.textScale = textScale;
-  path.needClose = gFalse;
-  FT_Outline_Decompose(&((FT_OutlineGlyph)glyph)->outline,
-		       &outlineFuncs, &path);
-  if (path.needClose) {
-    path.path->close();
-  }
-  FT_Done_Glyph(glyph);
-  return path.path;
-}
-
-static int glyphPathMoveTo(const FT_Vector *pt, void *path) {
-  SplashFTFontPath *p = (SplashFTFontPath *)path;
-
-  if (p->needClose) {
-    p->path->close();
-    p->needClose = gFalse;
-  }
-  p->path->moveTo((SplashCoord)pt->x * p->textScale / 64.0,
-		  (SplashCoord)pt->y * p->textScale / 64.0);
-  return 0;
-}
-
-static int glyphPathLineTo(const FT_Vector *pt, void *path) {
-  SplashFTFontPath *p = (SplashFTFontPath *)path;
-
-  p->path->lineTo((SplashCoord)pt->x * p->textScale / 64.0,
-		  (SplashCoord)pt->y * p->textScale / 64.0);
-  p->needClose = gTrue;
-  return 0;
-}
-
-static int glyphPathConicTo(const FT_Vector *ctrl, const FT_Vector *pt,
-			    void *path) {
-  SplashFTFontPath *p = (SplashFTFontPath *)path;
-  SplashCoord x0, y0, x1, y1, x2, y2, x3, y3, xc, yc;
-
-  if (!p->path->getCurPt(&x0, &y0)) {
-    return 0;
-  }
-  xc = (SplashCoord)ctrl->x * p->textScale / 64.0;
-  yc = (SplashCoord)ctrl->y * p->textScale / 64.0;
-  x3 = (SplashCoord)pt->x * p->textScale / 64.0;
-  y3 = (SplashCoord)pt->y * p->textScale / 64.0;
-
-  // A second-order Bezier curve is defined by two endpoints, p0 and
-  // p3, and one control point, pc:
-  //
-  //     p(t) = (1-t)^2*p0 + t*(1-t)*pc + t^2*p3
-  //
-  // A third-order Bezier curve is defined by the same two endpoints,
-  // p0 and p3, and two control points, p1 and p2:
-  //
-  //     p(t) = (1-t)^3*p0 + 3t*(1-t)^2*p1 + 3t^2*(1-t)*p2 + t^3*p3
-  //
-  // Applying some algebra, we can convert a second-order curve to a
-  // third-order curve:
-  //
-  //     p1 = (1/3) * (p0 + 2pc)
-  //     p2 = (1/3) * (2pc + p3)
-
-  x1 = (SplashCoord)(1.0 / 3.0) * (x0 + (SplashCoord)2 * xc);
-  y1 = (SplashCoord)(1.0 / 3.0) * (y0 + (SplashCoord)2 * yc);
-  x2 = (SplashCoord)(1.0 / 3.0) * ((SplashCoord)2 * xc + x3);
-  y2 = (SplashCoord)(1.0 / 3.0) * ((SplashCoord)2 * yc + y3);
-
-  p->path->curveTo(x1, y1, x2, y2, x3, y3);
-  p->needClose = gTrue;
-  return 0;
-}
-
-static int glyphPathCubicTo(const FT_Vector *ctrl1, const FT_Vector *ctrl2,
-			    const FT_Vector *pt, void *path) {
-  SplashFTFontPath *p = (SplashFTFontPath *)path;
-
-  p->path->curveTo((SplashCoord)ctrl1->x * p->textScale / 64.0,
-		   (SplashCoord)ctrl1->y * p->textScale / 64.0,
-		   (SplashCoord)ctrl2->x * p->textScale / 64.0,
-		   (SplashCoord)ctrl2->y * p->textScale / 64.0,
-		   (SplashCoord)pt->x * p->textScale / 64.0,
-		   (SplashCoord)pt->y * p->textScale / 64.0);
-  p->needClose = gTrue;
-  return 0;
-}
-
-#endif // HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
diff --git a/source/libs/poppler/poppler-src/splash/SplashFTFont.h b/source/libs/poppler/poppler-src/splash/SplashFTFont.h
deleted file mode 100644
index 7d5c1e32b..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFTFont.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//========================================================================
-//
-// SplashFTFont.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2007-2009, 2011 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2009 Petr Gajdos <pgajdos@novell.com>
-// Copyright (C) 2011 Andreas Hartmetz <ahartmetz@gmail.com>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHFTFONT_H
-#define SPLASHFTFONT_H
-
-#include "poppler-config.h"
-
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include "SplashFont.h"
-
-class SplashFTFontFile;
-
-//------------------------------------------------------------------------
-// SplashFTFont
-//------------------------------------------------------------------------
-
-class SplashFTFont: public SplashFont {
-public:
-
-  SplashFTFont(SplashFTFontFile *fontFileA, SplashCoord *matA,
-	       SplashCoord *textMatA);
-
-  virtual ~SplashFTFont();
-
-  // Munge xFrac and yFrac before calling SplashFont::getGlyph.
-  GBool getGlyph(int c, int xFrac, int yFrac,
-		 SplashGlyphBitmap *bitmap, int x0, int y0, SplashClip *clip, SplashClipResult *clipRes) override;
-
-  // Rasterize a glyph.  The <xFrac> and <yFrac> values are the same
-  // as described for getGlyph.
-  GBool makeGlyph(int c, int xFrac, int yFrac,
-		  SplashGlyphBitmap *bitmap, int x0, int y0, SplashClip *clip, SplashClipResult *clipRes) override;
-
-  // Return the path for a glyph.
-  SplashPath *getGlyphPath(int c) override;
-
-  // Return the advance of a glyph. (in 0..1 range)
-  double getGlyphAdvance(int c) override;
-
-private:
-
-  FT_Size sizeObj;
-  FT_Matrix matrix;
-  FT_Matrix textMatrix;
-  SplashCoord textScale;
-  int size;
-  GBool enableFreeTypeHinting;
-  GBool enableSlightHinting;
-};
-
-#endif // HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashFTFontEngine.cc b/source/libs/poppler/poppler-src/splash/SplashFTFontEngine.cc
deleted file mode 100644
index 9fef8f007..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFTFontEngine.cc
+++ /dev/null
@@ -1,180 +0,0 @@
-//========================================================================
-//
-// SplashFTFontEngine.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
-// Copyright (C) 2009, 2011, 2012 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2009 Petr Gajdos <pgajdos@novell.com>
-// Copyright (C) 2011 Andreas Hartmetz <ahartmetz@gmail.com>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <stdio.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include "goo/gmem.h"
-#include "goo/GooString.h"
-#include "goo/gfile.h"
-#include "fofi/FoFiTrueType.h"
-#include "fofi/FoFiType1C.h"
-#include "SplashFTFontFile.h"
-#include "SplashFTFontEngine.h"
-
-#ifdef VMS
-#if (__VMS_VER < 70000000)
-extern "C" int unlink(char *filename);
-#endif
-#endif
-
-//------------------------------------------------------------------------
-// SplashFTFontEngine
-//------------------------------------------------------------------------
-
-SplashFTFontEngine::SplashFTFontEngine(GBool aaA, GBool enableFreeTypeHintingA,
-				       GBool enableSlightHintingA, FT_Library libA) {
-  FT_Int major, minor, patch;
-
-  aa = aaA;
-  enableFreeTypeHinting = enableFreeTypeHintingA;
-  enableSlightHinting = enableSlightHintingA;
-  lib = libA;
-
-  // as of FT 2.1.8, CID fonts are indexed by CID instead of GID
-  FT_Library_Version(lib, &major, &minor, &patch);
-  useCIDs = major > 2 ||
-            (major == 2 && (minor > 1 || (minor == 1 && patch > 7)));
-}
-
-SplashFTFontEngine *SplashFTFontEngine::init(GBool aaA, GBool enableFreeTypeHintingA,
-					     GBool enableSlightHintingA) {
-  FT_Library libA;
-
-  if (FT_Init_FreeType(&libA)) {
-    return NULL;
-  }
-  return new SplashFTFontEngine(aaA, enableFreeTypeHintingA, enableSlightHintingA, libA);
-}
-
-SplashFTFontEngine::~SplashFTFontEngine() {
-  FT_Done_FreeType(lib);
-}
-
-SplashFontFile *SplashFTFontEngine::loadType1Font(SplashFontFileID *idA,
-						  SplashFontSrc *src,
-						  const char **enc) {
-  return SplashFTFontFile::loadType1Font(this, idA, src, enc);
-}
-
-SplashFontFile *SplashFTFontEngine::loadType1CFont(SplashFontFileID *idA,
-						   SplashFontSrc *src,
-						   const char **enc) {
-  return SplashFTFontFile::loadType1Font(this, idA, src, enc);
-}
-
-SplashFontFile *SplashFTFontEngine::loadOpenTypeT1CFont(SplashFontFileID *idA,
-							SplashFontSrc *src,
-							const char **enc) {
-  return SplashFTFontFile::loadType1Font(this, idA, src, enc);
-}
-
-SplashFontFile *SplashFTFontEngine::loadCIDFont(SplashFontFileID *idA,
-						SplashFontSrc *src) {
-  FoFiType1C *ff;
-  int *cidToGIDMap;
-  int nCIDs;
-  SplashFontFile *ret;
-
-  // check for a CFF font
-  if (useCIDs) {
-    cidToGIDMap = NULL;
-    nCIDs = 0;
-  } else {
-    if (src->isFile) {
-      ff = FoFiType1C::load(src->fileName->getCString());
-    } else {
-      ff = FoFiType1C::make(src->buf, src->bufLen);
-    }
-    if (ff) {
-      cidToGIDMap = ff->getCIDToGIDMap(&nCIDs);
-      delete ff;
-    } else {
-      cidToGIDMap = NULL;
-      nCIDs = 0;
-    }
-  }
-  ret = SplashFTFontFile::loadCIDFont(this, idA, src, cidToGIDMap, nCIDs);
-  if (!ret) {
-    gfree(cidToGIDMap);
-  }
-  return ret;
-}
-
-SplashFontFile *SplashFTFontEngine::loadOpenTypeCFFFont(SplashFontFileID *idA,
-							SplashFontSrc *src,
-                                                        int *codeToGID,
-                                                        int codeToGIDLen) {
-  FoFiTrueType *ff;
-  int *cidToGIDMap;
-  int nCIDs;
-  SplashFontFile *ret;
-
-  cidToGIDMap = NULL;
-  nCIDs = 0;
-  if (!codeToGID) {
-    if (!useCIDs) {
-      if (src->isFile) {
-        ff = FoFiTrueType::load(src->fileName->getCString());
-      } else {
-        ff = FoFiTrueType::make(src->buf, src->bufLen);
-      }
-      if (ff) {
-        if (ff->isOpenTypeCFF()) {
-          cidToGIDMap = ff->getCIDToGIDMap(&nCIDs);
-        }
-        delete ff;
-      }
-    }
-  }
-  ret = SplashFTFontFile::loadCIDFont(this, idA, src,
-                                      codeToGID ? codeToGID : cidToGIDMap,
-                                      codeToGID ? codeToGIDLen : nCIDs);
-  if (!ret) {
-    gfree(cidToGIDMap);
-  }
-  return ret;
-}
-
-SplashFontFile *SplashFTFontEngine::loadTrueTypeFont(SplashFontFileID *idA,
-						     SplashFontSrc *src,
-						     int *codeToGID,
-						     int codeToGIDLen,
-						     int faceIndex) {
-  SplashFontFile *ret;
-  ret = SplashFTFontFile::loadTrueTypeFont(this, idA, src,
-					   codeToGID, codeToGIDLen,
-					   faceIndex);
-  return ret;
-}
-
-#endif // HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
diff --git a/source/libs/poppler/poppler-src/splash/SplashFTFontEngine.h b/source/libs/poppler/poppler-src/splash/SplashFTFontEngine.h
deleted file mode 100644
index 11bbea74a..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFTFontEngine.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//========================================================================
-//
-// SplashFTFontEngine.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
-// Copyright (C) 2009 Petr Gajdos <pgajdos@novell.com>
-// Copyright (C) 2009 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2011 Andreas Hartmetz <ahartmetz@gmail.com>
-// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHFTFONTENGINE_H
-#define SPLASHFTFONTENGINE_H
-
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include "goo/gtypes.h"
-
-class SplashFontFile;
-class SplashFontFileID;
-class SplashFontSrc;
-
-//------------------------------------------------------------------------
-// SplashFTFontEngine
-//------------------------------------------------------------------------
-
-class SplashFTFontEngine {
-public:
-
-  static SplashFTFontEngine *init(GBool aaA, GBool enableFreeTypeHintingA, GBool enableSlightHinting);
-
-  ~SplashFTFontEngine();
-
-  // Load fonts.
-  SplashFontFile *loadType1Font(SplashFontFileID *idA, SplashFontSrc *src,  const char **enc);
-  SplashFontFile *loadType1CFont(SplashFontFileID *idA, SplashFontSrc *src,  const char **enc);
-  SplashFontFile *loadOpenTypeT1CFont(SplashFontFileID *idA, SplashFontSrc *src,  const char **enc);
-  SplashFontFile *loadCIDFont(SplashFontFileID *idA, SplashFontSrc *src);
-  SplashFontFile *loadOpenTypeCFFFont(SplashFontFileID *idA, SplashFontSrc *src,
-                                      int *codeToGID, int codeToGIDLen);
-  SplashFontFile *loadTrueTypeFont(SplashFontFileID *idA, SplashFontSrc *src,
-				   int *codeToGID, int codeToGIDLen, int faceIndex = 0);
-  GBool getAA() { return aa; }
-  void setAA(GBool aaA) { aa = aaA; }
-
-private:
-
-  SplashFTFontEngine(GBool aaA, GBool enableFreeTypeHintingA, GBool enableSlightHintingA, FT_Library libA);
-
-  GBool aa;
-  GBool enableFreeTypeHinting;
-  GBool enableSlightHinting;
-  FT_Library lib;
-  GBool useCIDs;
-
-  friend class SplashFTFontFile;
-  friend class SplashFTFont;
-};
-
-#endif // HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashFTFontFile.cc b/source/libs/poppler/poppler-src/splash/SplashFTFontFile.cc
deleted file mode 100644
index f0dcf5038..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFTFontFile.cc
+++ /dev/null
@@ -1,148 +0,0 @@
-//========================================================================
-//
-// SplashFTFontFile.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
-// Copyright (C) 2014 Adrian Johnson <ajohnson@redneon.com>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include "goo/gmem.h"
-#include "goo/GooString.h"
-#include "poppler/GfxFont.h"
-#include "SplashFTFontEngine.h"
-#include "SplashFTFont.h"
-#include "SplashFTFontFile.h"
-
-//------------------------------------------------------------------------
-// SplashFTFontFile
-//------------------------------------------------------------------------
-
-SplashFontFile *SplashFTFontFile::loadType1Font(SplashFTFontEngine *engineA,
-						SplashFontFileID *idA,
-						SplashFontSrc *src,
-						const char **encA) {
-  FT_Face faceA;
-  int *codeToGIDA;
-  const char *name;
-  int i;
-
-  if (src->isFile) {
-    if (FT_New_Face(engineA->lib, src->fileName->getCString(), 0, &faceA))
-      return NULL;
-  } else {
-    if (FT_New_Memory_Face(engineA->lib, (const FT_Byte *)src->buf, src->bufLen, 0, &faceA))
-      return NULL;
-  }
-  codeToGIDA = (int *)gmallocn(256, sizeof(int));
-  for (i = 0; i < 256; ++i) {
-    codeToGIDA[i] = 0;
-    if ((name = encA[i])) {
-      codeToGIDA[i] = (int)FT_Get_Name_Index(faceA, (char *)name);
-      if (codeToGIDA[i] == 0) {
-	name = GfxFont::getAlternateName(name);
-	if (name) {
-	  codeToGIDA[i] = FT_Get_Name_Index(faceA, (char *)name);
-	}
-      }
-    }
-  }
-
-  return new SplashFTFontFile(engineA, idA, src,
-			      faceA, codeToGIDA, 256, gFalse, gTrue);
-}
-
-SplashFontFile *SplashFTFontFile::loadCIDFont(SplashFTFontEngine *engineA,
-					      SplashFontFileID *idA,
-					      SplashFontSrc *src,
-					      int *codeToGIDA,
-					      int codeToGIDLenA) {
-  FT_Face faceA;
-
-  if (src->isFile) {
-    if (FT_New_Face(engineA->lib, src->fileName->getCString(), 0, &faceA))
-      return NULL;
-  } else {
-    if (FT_New_Memory_Face(engineA->lib, (const FT_Byte *)src->buf, src->bufLen, 0, &faceA))
-      return NULL;
-  }
-
-  return new SplashFTFontFile(engineA, idA, src,
-			      faceA, codeToGIDA, codeToGIDLenA, gFalse, gFalse);
-}
-
-SplashFontFile *SplashFTFontFile::loadTrueTypeFont(SplashFTFontEngine *engineA,
-						   SplashFontFileID *idA,
-						   SplashFontSrc *src,
-						   int *codeToGIDA,
-						   int codeToGIDLenA,
-						   int faceIndexA) {
-  FT_Face faceA;
-
-  if (src->isFile) {
-    if (FT_New_Face(engineA->lib, src->fileName->getCString(), faceIndexA, &faceA))
-      return NULL;
-  } else {
-    if (FT_New_Memory_Face(engineA->lib, (const FT_Byte *)src->buf, src->bufLen, faceIndexA, &faceA))
-      return NULL;
-  }
-
-  return new SplashFTFontFile(engineA, idA, src,
-			      faceA, codeToGIDA, codeToGIDLenA, gTrue, gFalse);
-}
-
-SplashFTFontFile::SplashFTFontFile(SplashFTFontEngine *engineA,
-				   SplashFontFileID *idA,
-				   SplashFontSrc *src,
-				   FT_Face faceA,
-				   int *codeToGIDA, int codeToGIDLenA,
-				   GBool trueTypeA, GBool type1A):
-  SplashFontFile(idA, src)
-{
-  engine = engineA;
-  face = faceA;
-  codeToGID = codeToGIDA;
-  codeToGIDLen = codeToGIDLenA;
-  trueType = trueTypeA;
-  type1 = type1A;
-}
-
-SplashFTFontFile::~SplashFTFontFile() {
-  if (face) {
-    FT_Done_Face(face);
-  }
-  if (codeToGID) {
-    gfree(codeToGID);
-  }
-}
-
-SplashFont *SplashFTFontFile::makeFont(SplashCoord *mat,
-				       SplashCoord *textMat) {
-  SplashFont *font;
-
-  font = new SplashFTFont(this, mat, textMat);
-  font->initCache();
-  return font;
-}
-
-#endif // HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
diff --git a/source/libs/poppler/poppler-src/splash/SplashFTFontFile.h b/source/libs/poppler/poppler-src/splash/SplashFTFontFile.h
deleted file mode 100644
index 7a7bb218e..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFTFontFile.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//========================================================================
-//
-// SplashFTFontFile.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHFTFONTFILE_H
-#define SPLASHFTFONTFILE_H
-
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include "SplashFontFile.h"
-
-class SplashFontFileID;
-class SplashFTFontEngine;
-
-//------------------------------------------------------------------------
-// SplashFTFontFile
-//------------------------------------------------------------------------
-
-class SplashFTFontFile: public SplashFontFile {
-public:
-
-  static SplashFontFile *loadType1Font(SplashFTFontEngine *engineA,
-				       SplashFontFileID *idA,
-				       SplashFontSrc *src, const char **encA);
-  static SplashFontFile *loadCIDFont(SplashFTFontEngine *engineA,
-					 SplashFontFileID *idA,
-					 SplashFontSrc *src,
-					 int *codeToCIDA, int codeToGIDLenA);
-  static SplashFontFile *loadTrueTypeFont(SplashFTFontEngine *engineA,
-					  SplashFontFileID *idA,
-					  SplashFontSrc *src,
-					  int *codeToGIDA,
-					  int codeToGIDLenA,
-					  int faceIndexA=0);
-
-  ~SplashFTFontFile();
-
-  // Create a new SplashFTFont, i.e., a scaled instance of this font
-  // file.
-  SplashFont *makeFont(SplashCoord *mat,
-		       SplashCoord *textMat) override;
-
-private:
-
-  SplashFTFontFile(SplashFTFontEngine *engineA,
-		   SplashFontFileID *idA,
-		   SplashFontSrc *src,
-		   FT_Face faceA,
-		   int *codeToGIDA, int codeToGIDLenA,
-		   GBool trueTypeA, GBool type1A);
-
-  SplashFTFontEngine *engine;
-  FT_Face face;
-  int *codeToGID;
-  int codeToGIDLen;
-  GBool trueType;
-  GBool type1;
-
-  friend class SplashFTFont;
-};
-
-#endif // HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashFont.cc b/source/libs/poppler/poppler-src/splash/SplashFont.cc
deleted file mode 100644
index 3d6d6b234..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFont.cc
+++ /dev/null
@@ -1,224 +0,0 @@
-//========================================================================
-//
-// SplashFont.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2007-2008, 2010, 2014 Albert Astals Cid <aacid@kde.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <limits.h>
-#include <string.h>
-#include "goo/gmem.h"
-#include "SplashMath.h"
-#include "SplashGlyphBitmap.h"
-#include "SplashFontFile.h"
-#include "SplashFont.h"
-
-//------------------------------------------------------------------------
-
-struct SplashFontCacheTag {
-  int c;
-  short xFrac, yFrac;		// x and y fractions
-  int mru;			// valid bit (0x80000000) and MRU index
-  int x, y, w, h;		// offset and size of glyph
-};
-
-//------------------------------------------------------------------------
-// SplashFont
-//------------------------------------------------------------------------
-
-SplashFont::SplashFont(SplashFontFile *fontFileA, SplashCoord *matA,
-		       SplashCoord *textMatA, GBool aaA) {
-  fontFile = fontFileA;
-  fontFile->incRefCnt();
-  mat[0] = matA[0];
-  mat[1] = matA[1];
-  mat[2] = matA[2];
-  mat[3] = matA[3];
-  textMat[0] = textMatA[0];
-  textMat[1] = textMatA[1];
-  textMat[2] = textMatA[2];
-  textMat[3] = textMatA[3];
-  aa = aaA;
-
-  cache = NULL;
-  cacheTags = NULL;
-
-  xMin = yMin = xMax = yMax = 0;
-}
-
-void SplashFont::initCache() {
-  int i;
-
-  // this should be (max - min + 1), but we add some padding to
-  // deal with rounding errors
-  glyphW = xMax - xMin + 3;
-  glyphH = yMax - yMin + 3;
-  if (glyphW > INT_MAX / glyphH) {
-    glyphSize = -1;
-  } else {
-    if (aa) {
-      glyphSize = glyphW * glyphH;
-    } else {
-      glyphSize = ((glyphW + 7) >> 3) * glyphH;
-    }
-  }
-
-  // set up the glyph pixmap cache
-  cacheAssoc = 8;
-  if (glyphSize <= 64) {
-    cacheSets = 32;
-  } else if (glyphSize <= 128) {
-    cacheSets = 16;
-  } else if (glyphSize <= 256) {
-    cacheSets = 8;
-  } else if (glyphSize <= 512) {
-    cacheSets = 4;
-  } else if (glyphSize <= 1024) {
-    cacheSets = 2;
-  } else {
-    cacheSets = 1;
-  }
-  cache = (Guchar *)gmallocn_checkoverflow(cacheSets* cacheAssoc, glyphSize);
-  if (cache != NULL) {
-    cacheTags = (SplashFontCacheTag *)gmallocn(cacheSets * cacheAssoc,
-					     sizeof(SplashFontCacheTag));
-    for (i = 0; i < cacheSets * cacheAssoc; ++i) {
-      cacheTags[i].mru = i & (cacheAssoc - 1);
-    }
-  } else {
-    cacheAssoc = 0;
-  }
-}
-
-SplashFont::~SplashFont() {
-  fontFile->decRefCnt();
-  if (cache) {
-    gfree(cache);
-  }
-  if (cacheTags) {
-    gfree(cacheTags);
-  }
-}
-
-GBool SplashFont::getGlyph(int c, int xFrac, int yFrac,
-			   SplashGlyphBitmap *bitmap, int x0, int y0, SplashClip *clip, SplashClipResult *clipRes) {
-  SplashGlyphBitmap bitmap2;
-  int size;
-  Guchar *p;
-  int i, j, k;
-
-  // no fractional coordinates for large glyphs or non-anti-aliased
-  // glyphs
-  if (!aa || glyphH > 50) {
-    xFrac = yFrac = 0;
-  }
-
-  // check the cache
-  i = (c & (cacheSets - 1)) * cacheAssoc;
-  for (j = 0; j < cacheAssoc; ++j) {
-    if ((cacheTags[i+j].mru & 0x80000000) &&
-	cacheTags[i+j].c == c &&
-	(int)cacheTags[i+j].xFrac == xFrac &&
-	(int)cacheTags[i+j].yFrac == yFrac) {
-      bitmap->x = cacheTags[i+j].x;
-      bitmap->y = cacheTags[i+j].y;
-      bitmap->w = cacheTags[i+j].w;
-      bitmap->h = cacheTags[i+j].h;
-      for (k = 0; k < cacheAssoc; ++k) {
-	if (k != j &&
-	    (cacheTags[i+k].mru & 0x7fffffff) <
-	      (cacheTags[i+j].mru & 0x7fffffff)) {
-	  ++cacheTags[i+k].mru;
-	}
-      }
-      cacheTags[i+j].mru = 0x80000000;
-      bitmap->aa = aa;
-      bitmap->data = cache + (i+j) * glyphSize;
-      bitmap->freeData = gFalse;
-
-      *clipRes = clip->testRect(x0 - bitmap->x,
-                                y0 - bitmap->y,
-                                x0 - bitmap->x + bitmap->w - 1,
-                                y0 - bitmap->y + bitmap->h - 1);
-
-      return gTrue;
-    }
-  }
-
-  // generate the glyph bitmap
-  if (!makeGlyph(c, xFrac, yFrac, &bitmap2, x0, y0, clip, clipRes)) {
-    return gFalse;
-  }
-
-  if (*clipRes == splashClipAllOutside)
-  {
-    bitmap->freeData = gFalse;
-    if (bitmap2.freeData) gfree(bitmap2.data);
-    return gTrue;
-  }
-
-  // if the glyph doesn't fit in the bounding box, return a temporary
-  // uncached bitmap
-  if (bitmap2.w > glyphW || bitmap2.h > glyphH) {
-    *bitmap = bitmap2;
-    return gTrue;
-  }
-
-  // insert glyph pixmap in cache
-  if (aa) {
-    size = bitmap2.w * bitmap2.h;
-  } else {
-    size = ((bitmap2.w + 7) >> 3) * bitmap2.h;
-  }
-  p = NULL; // make gcc happy
-  if (cacheAssoc == 0)
-  {
-    // we had problems on the malloc of the cache, so ignore it
-    *bitmap = bitmap2;
-  }
-  else
-  {
-    for (j = 0; j < cacheAssoc; ++j) {
-      if ((cacheTags[i+j].mru & 0x7fffffff) == cacheAssoc - 1) {
-        cacheTags[i+j].mru = 0x80000000;
-        cacheTags[i+j].c = c;
-        cacheTags[i+j].xFrac = (short)xFrac;
-        cacheTags[i+j].yFrac = (short)yFrac;
-        cacheTags[i+j].x = bitmap2.x;
-        cacheTags[i+j].y = bitmap2.y;
-        cacheTags[i+j].w = bitmap2.w;
-        cacheTags[i+j].h = bitmap2.h;
-        p = cache + (i+j) * glyphSize;
-        memcpy(p, bitmap2.data, size);
-      } else {
-        ++cacheTags[i+j].mru;
-      }
-    }
-    *bitmap = bitmap2;
-    bitmap->data = p;
-    bitmap->freeData = gFalse;
-    if (bitmap2.freeData) {
-      gfree(bitmap2.data);
-    }
-  }
-  return gTrue;
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashFont.h b/source/libs/poppler/poppler-src/splash/SplashFont.h
deleted file mode 100644
index 78b00d2dc..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFont.h
+++ /dev/null
@@ -1,121 +0,0 @@
-//========================================================================
-//
-// SplashFont.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2007-2008 Albert Astals Cid <aacid@kde.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHFONT_H
-#define SPLASHFONT_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "goo/gtypes.h"
-#include "SplashTypes.h"
-#include "SplashClip.h"
-
-struct SplashGlyphBitmap;
-struct SplashFontCacheTag;
-class SplashFontFile;
-class SplashPath;
-
-//------------------------------------------------------------------------
-
-// Fractional positioning uses this many bits to the right of the
-// decimal points.
-#define splashFontFractionBits 2
-#define splashFontFraction     (1 << splashFontFractionBits)
-#define splashFontFractionMul \
-                       ((SplashCoord)1 / (SplashCoord)splashFontFraction)
-
-//------------------------------------------------------------------------
-// SplashFont
-//------------------------------------------------------------------------
-
-class SplashFont {
-public:
-
-  SplashFont(SplashFontFile *fontFileA, SplashCoord *matA,
-	     SplashCoord *textMatA, GBool aaA);
-
-  // This must be called after the constructor, so that the subclass
-  // constructor has a chance to compute the bbox.
-  void initCache();
-
-  virtual ~SplashFont();
-
-  SplashFontFile *getFontFile() { return fontFile; }
-
-  // Return true if <this> matches the specified font file and matrix.
-  GBool matches(SplashFontFile *fontFileA, SplashCoord *matA,
-		SplashCoord *textMatA) {
-    return fontFileA == fontFile &&
-           matA[0] == mat[0] && matA[1] == mat[1] &&
-           matA[2] == mat[2] && matA[3] == mat[3] &&
-           textMatA[0] == textMat[0] && textMatA[1] == textMat[1] &&
-           textMatA[2] == textMat[2] && textMatA[3] == textMat[3];
-  }
-
-  // Get a glyph - this does a cache lookup first, and if not found,
-  // creates a new bitmap and adds it to the cache.  The <xFrac> and
-  // <yFrac> values are splashFontFractionBits bits each, representing
-  // the numerators of fractions in [0, 1), where the denominator is
-  // splashFontFraction = 1 << splashFontFractionBits.  Subclasses
-  // should override this to zero out xFrac and/or yFrac if they don't
-  // support fractional coordinates.
-  virtual GBool getGlyph(int c, int xFrac, int yFrac,
-			 SplashGlyphBitmap *bitmap, int x0, int y0, SplashClip *clip, SplashClipResult *clipRes);
-
-  // Rasterize a glyph.  The <xFrac> and <yFrac> values are the same
-  // as described for getGlyph.
-  virtual GBool makeGlyph(int c, int xFrac, int yFrac,
-			  SplashGlyphBitmap *bitmap, int x0, int y0, SplashClip *clip, SplashClipResult *clipRes) = 0;
-
-  // Return the path for a glyph.
-  virtual SplashPath *getGlyphPath(int c) = 0;
-
-  // Return the advance of a glyph. (in 0..1 range)
-  // < 0 means not known
-  virtual double getGlyphAdvance(int c) { return -1; }
-
-  // Return the font transform matrix.
-  SplashCoord *getMatrix() { return mat; }
-
-  // Return the glyph bounding box.
-  void getBBox(int *xMinA, int *yMinA, int *xMaxA, int *yMaxA)
-    { *xMinA = xMin; *yMinA = yMin; *xMaxA = xMax; *yMaxA = yMax; }
-
-protected:
-
-  SplashFontFile *fontFile;
-  SplashCoord mat[4];		// font transform matrix
-				//   (text space -> device space)
-  SplashCoord textMat[4];	// text transform matrix
-				//   (text space -> user space)
-  GBool aa;			// anti-aliasing
-  int xMin, yMin, xMax, yMax;	// glyph bounding box
-  Guchar *cache;		// glyph bitmap cache
-  SplashFontCacheTag *		// cache tags
-    cacheTags;
-  int glyphW, glyphH;		// size of glyph bitmaps
-  int glyphSize;		// size of glyph bitmaps, in bytes
-  int cacheSets;		// number of sets in cache
-  int cacheAssoc;		// cache associativity (glyphs per set)
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashFontEngine.cc b/source/libs/poppler/poppler-src/splash/SplashFontEngine.cc
deleted file mode 100644
index 73ef8de08..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFontEngine.cc
+++ /dev/null
@@ -1,337 +0,0 @@
-//========================================================================
-//
-// SplashFontEngine.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
-// Copyright (C) 2009 Petr Gajdos <pgajdos@novell.com>
-// Copyright (C) 2009 Kovid Goyal <kovid@kovidgoyal.net>
-// Copyright (C) 2009 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2011 Andreas Hartmetz <ahartmetz@gmail.com>
-// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
-// Copyright (C) 2015 Dmytro Morgun <lztoad@gmail.com>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#if HAVE_T1LIB_H
-#include <t1lib.h>
-#endif
-
-#include <stdlib.h>
-#include <stdio.h>
-#ifdef HAVE_UNISTD_H
-#  include <unistd.h>
-#endif
-#include "goo/gmem.h"
-#include "goo/GooString.h"
-#include "SplashMath.h"
-#include "SplashT1FontEngine.h"
-#include "SplashFTFontEngine.h"
-#include "SplashFontFile.h"
-#include "SplashFontFileID.h"
-#include "SplashFont.h"
-#include "SplashFontEngine.h"
-
-#ifdef VMS
-#if (__VMS_VER < 70000000)
-extern "C" int unlink(char *filename);
-#endif
-#endif
-
-#ifdef VMS
-#if (__VMS_VER < 70000000)
-extern "C" int unlink(char *filename);
-#endif
-#endif
-
-//------------------------------------------------------------------------
-// SplashFontEngine
-//------------------------------------------------------------------------
-
-SplashFontEngine::SplashFontEngine(
-#if HAVE_T1LIB_H
-				   GBool enableT1lib,
-#endif
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-				   GBool enableFreeType,
-				   GBool enableFreeTypeHinting,
-				   GBool enableSlightHinting,
-#endif
-				   GBool aa) {
-  int i;
-
-  for (i = 0; i < splashFontCacheSize; ++i) {
-    fontCache[i] = NULL;
-  }
-
-#if HAVE_T1LIB_H
-  if (enableT1lib) {
-    t1Engine = SplashT1FontEngine::init(aa);
-  } else {
-    t1Engine = NULL;
-  }
-#endif
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-  if (enableFreeType) {
-    ftEngine = SplashFTFontEngine::init(aa, enableFreeTypeHinting, enableSlightHinting);
-  } else {
-    ftEngine = NULL;
-  }
-#endif
-}
-
-SplashFontEngine::~SplashFontEngine() {
-  int i;
-
-  for (i = 0; i < splashFontCacheSize; ++i) {
-    if (fontCache[i]) {
-      delete fontCache[i];
-    }
-  }
-
-#if HAVE_T1LIB_H
-  if (t1Engine) {
-    delete t1Engine;
-  }
-#endif
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-  if (ftEngine) {
-    delete ftEngine;
-  }
-#endif
-}
-
-SplashFontFile *SplashFontEngine::getFontFile(SplashFontFileID *id) {
-  SplashFontFile *fontFile;
-  int i;
-
-  for (i = 0; i < splashFontCacheSize; ++i) {
-    if (fontCache[i]) {
-      fontFile = fontCache[i]->getFontFile();
-      if (fontFile && fontFile->getID()->matches(id)) {
-	return fontFile;
-      }
-    }
-  }
-  return NULL;
-}
-
-SplashFontFile *SplashFontEngine::loadType1Font(SplashFontFileID *idA,
-						SplashFontSrc *src,
-						const char **enc) {
-  SplashFontFile *fontFile;
-
-  fontFile = NULL;
-#if HAVE_T1LIB_H
-  if (!fontFile && t1Engine) {
-    fontFile = t1Engine->loadType1Font(idA, src, enc);
-  }
-#endif
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-  if (!fontFile && ftEngine) {
-    fontFile = ftEngine->loadType1Font(idA, src, enc);
-  }
-#endif
-
-  // delete the (temporary) font file -- with Unix hard link
-  // semantics, this will remove the last link; otherwise it will
-  // return an error, leaving the file to be deleted later (if
-  // loadXYZFont failed, the file will always be deleted)
-  if (src->isFile)
-    src->unref();
-
-  return fontFile;
-}
-
-SplashFontFile *SplashFontEngine::loadType1CFont(SplashFontFileID *idA,
-						 SplashFontSrc *src,
-						 const char **enc) {
-  SplashFontFile *fontFile;
-
-  fontFile = NULL;
-#if HAVE_T1LIB_H
-  if (!fontFile && t1Engine) {
-    fontFile = t1Engine->loadType1CFont(idA, src, enc);
-  }
-#endif
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-  if (!fontFile && ftEngine) {
-    fontFile = ftEngine->loadType1CFont(idA, src, enc);
-  }
-#endif
-
-  // delete the (temporary) font file -- with Unix hard link
-  // semantics, this will remove the last link; otherwise it will
-  // return an error, leaving the file to be deleted later (if
-  // loadXYZFont failed, the file will always be deleted)
-  if (src->isFile)
-    src->unref();
-
-  return fontFile;
-}
-
-SplashFontFile *SplashFontEngine::loadOpenTypeT1CFont(SplashFontFileID *idA,
-						      SplashFontSrc *src,
-						      const char **enc) {
-  SplashFontFile *fontFile;
-
-  fontFile = NULL;
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-  if (!fontFile && ftEngine) {
-    fontFile = ftEngine->loadOpenTypeT1CFont(idA, src, enc);
-  }
-#endif
-
-  // delete the (temporary) font file -- with Unix hard link
-  // semantics, this will remove the last link; otherwise it will
-  // return an error, leaving the file to be deleted later (if
-  // loadXYZFont failed, the file will always be deleted)
-  if (src->isFile)
-    src->unref();
-
-  return fontFile;
-}
-
-SplashFontFile *SplashFontEngine::loadCIDFont(SplashFontFileID *idA,
-					      SplashFontSrc *src) {
-  SplashFontFile *fontFile;
-
-  fontFile = NULL;
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-  if (!fontFile && ftEngine) {
-    fontFile = ftEngine->loadCIDFont(idA, src);
-  }
-#endif
-
-  // delete the (temporary) font file -- with Unix hard link
-  // semantics, this will remove the last link; otherwise it will
-  // return an error, leaving the file to be deleted later (if
-  // loadXYZFont failed, the file will always be deleted)
-  if (src->isFile)
-    src->unref();
-
-  return fontFile;
-}
-
-SplashFontFile *SplashFontEngine::loadOpenTypeCFFFont(SplashFontFileID *idA,
-						      SplashFontSrc *src,
-                                                      int *codeToGID,
-                                                      int codeToGIDLen) {
-  SplashFontFile *fontFile;
-
-  fontFile = NULL;
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-  if (!fontFile && ftEngine) {
-    fontFile = ftEngine->loadOpenTypeCFFFont(idA, src, codeToGID, codeToGIDLen);
-  }
-#endif
-
-  // delete the (temporary) font file -- with Unix hard link
-  // semantics, this will remove the last link; otherwise it will
-  // return an error, leaving the file to be deleted later (if
-  // loadXYZFont failed, the file will always be deleted)
-  if (src->isFile)
-    src->unref();
-
-  return fontFile;
-}
-
-SplashFontFile *SplashFontEngine::loadTrueTypeFont(SplashFontFileID *idA,
-						   SplashFontSrc *src,
-						   int *codeToGID,
-						   int codeToGIDLen,
-						   int faceIndex) {
-  SplashFontFile *fontFile;
-
-  fontFile = NULL;
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-  if (!fontFile && ftEngine) {
-    fontFile = ftEngine->loadTrueTypeFont(idA, src,
-                                        codeToGID, codeToGIDLen, faceIndex);
-  }
-#endif
-
-  if (!fontFile) {
-    gfree(codeToGID);
-  }
-
-  // delete the (temporary) font file -- with Unix hard link
-  // semantics, this will remove the last link; otherwise it will
-  // return an error, leaving the file to be deleted later (if
-  // loadXYZFont failed, the file will always be deleted)
-  if (src->isFile)
-    src->unref();
-
-  return fontFile;
-}
-
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-GBool SplashFontEngine::getAA() {
-  return (ftEngine == NULL) ? gFalse : ftEngine->getAA();
-}
-
-void SplashFontEngine::setAA(GBool aa) {
-  if (ftEngine != NULL) {
-    ftEngine->setAA(aa);
-  }
-}
-#endif
-
-SplashFont *SplashFontEngine::getFont(SplashFontFile *fontFile,
-				      SplashCoord *textMat,
-				      SplashCoord *ctm) {
-  SplashCoord mat[4];
-  SplashFont *font;
-  int i, j;
-
-  mat[0] = textMat[0] * ctm[0] + textMat[1] * ctm[2];
-  mat[1] = -(textMat[0] * ctm[1] + textMat[1] * ctm[3]);
-  mat[2] = textMat[2] * ctm[0] + textMat[3] * ctm[2];
-  mat[3] = -(textMat[2] * ctm[1] + textMat[3] * ctm[3]);
-  if (!splashCheckDet(mat[0], mat[1], mat[2], mat[3], 0.01)) {
-    // avoid a singular (or close-to-singular) matrix
-    mat[0] = 0.01;  mat[1] = 0;
-    mat[2] = 0;     mat[3] = 0.01;
-  }
-
-  font = fontCache[0];
-  if (font && font->matches(fontFile, mat, textMat)) {
-    return font;
-  }
-  for (i = 1; i < splashFontCacheSize; ++i) {
-    font = fontCache[i];
-    if (font && font->matches(fontFile, mat, textMat)) {
-      for (j = i; j > 0; --j) {
-	fontCache[j] = fontCache[j-1];
-      }
-      fontCache[0] = font;
-      return font;
-    }
-  }
-  font = fontFile->makeFont(mat, textMat);
-  if (fontCache[splashFontCacheSize - 1]) {
-    delete fontCache[splashFontCacheSize - 1];
-  }
-  for (j = splashFontCacheSize - 1; j > 0; --j) {
-    fontCache[j] = fontCache[j-1];
-  }
-  fontCache[0] = font;
-  return font;
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashFontEngine.h b/source/libs/poppler/poppler-src/splash/SplashFontEngine.h
deleted file mode 100644
index 6502ea5a7..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFontEngine.h
+++ /dev/null
@@ -1,110 +0,0 @@
-//========================================================================
-//
-// SplashFontEngine.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
-// Copyright (C) 2009 Petr Gajdos <pgajdos@novell.com>
-// Copyright (C) 2009, 2011 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2011 Andreas Hartmetz <ahartmetz@gmail.com>
-// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHFONTENGINE_H
-#define SPLASHFONTENGINE_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "goo/gtypes.h"
-#include "SplashTypes.h"
-
-class SplashT1FontEngine;
-class SplashFTFontEngine;
-class SplashDTFontEngine;
-class SplashDT4FontEngine;
-class SplashFontFile;
-class SplashFontFileID;
-class SplashFont;
-class SplashFontSrc;
-
-//------------------------------------------------------------------------
-
-#define splashFontCacheSize 16
-
-//------------------------------------------------------------------------
-// SplashFontEngine
-//------------------------------------------------------------------------
-
-class SplashFontEngine {
-public:
-
-  // Create a font engine.
-  SplashFontEngine(
-#if HAVE_T1LIB_H
-		   GBool enableT1lib,
-#endif
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-		   GBool enableFreeType,
-		   GBool enableFreeTypeHinting,
-		   GBool enableSlightHinting,
-#endif
-		   GBool aa);
-
-  ~SplashFontEngine();
-
-  // Get a font file from the cache.  Returns NULL if there is no
-  // matching entry in the cache.
-  SplashFontFile *getFontFile(SplashFontFileID *id);
-
-  // Load fonts - these create new SplashFontFile objects.
-  SplashFontFile *loadType1Font(SplashFontFileID *idA, SplashFontSrc *src, const char **enc);
-  SplashFontFile *loadType1CFont(SplashFontFileID *idA, SplashFontSrc *src, const char **enc);
-  SplashFontFile *loadOpenTypeT1CFont(SplashFontFileID *idA, SplashFontSrc *src, const char **enc);
-  SplashFontFile *loadCIDFont(SplashFontFileID *idA, SplashFontSrc *src);
-  SplashFontFile *loadOpenTypeCFFFont(SplashFontFileID *idA, SplashFontSrc *src,
-                                      int *codeToGID, int codeToGIDLen);
-  SplashFontFile *loadTrueTypeFont(SplashFontFileID *idA, SplashFontSrc *src,
-				   int *codeToGID, int codeToGIDLen, int faceIndex = 0);
-
-  // Get a font - this does a cache lookup first, and if not found,
-  // creates a new SplashFont object and adds it to the cache.  The
-  // matrix, mat = textMat * ctm:
-  //    [ mat[0] mat[1] ]
-  //    [ mat[2] mat[3] ]
-  // specifies the font transform in PostScript style:
-  //    [x' y'] = [x y] * mat
-  // Note that the Splash y axis points downward.
-  SplashFont *getFont(SplashFontFile *fontFile,
-		      SplashCoord *textMat, SplashCoord *ctm);
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-  GBool getAA();
-  void setAA(GBool aa);
-#endif
-
-private:
-
-  SplashFont *fontCache[splashFontCacheSize];
-
-#if HAVE_T1LIB_H
-  SplashT1FontEngine *t1Engine;
-#endif
-#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
-  SplashFTFontEngine *ftEngine;
-#endif
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashFontFile.cc b/source/libs/poppler/poppler-src/splash/SplashFontFile.cc
deleted file mode 100644
index 68e8608b6..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFontFile.cc
+++ /dev/null
@@ -1,124 +0,0 @@
-//========================================================================
-//
-// SplashFontFile.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
-// Copyright (C) 2008 Albert Astals Cid <aacid@kde.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <stdio.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include "goo/gmem.h"
-#include "goo/GooString.h"
-#include "SplashFontFile.h"
-#include "SplashFontFileID.h"
-
-#ifdef VMS
-#if (__VMS_VER < 70000000)
-extern "C" int unlink(char *filename);
-#endif
-#endif
-
-//------------------------------------------------------------------------
-// SplashFontFile
-//------------------------------------------------------------------------
-
-SplashFontFile::SplashFontFile(SplashFontFileID *idA, SplashFontSrc *srcA) {
-  id = idA;
-  src = srcA;
-  src->ref();
-  refCnt = 0;
-  doAdjustMatrix = gFalse;
-}
-
-SplashFontFile::~SplashFontFile() {
-  src->unref();
-  delete id;
-}
-
-void SplashFontFile::incRefCnt() {
-  ++refCnt;
-}
-
-void SplashFontFile::decRefCnt() {
-  if (!--refCnt) {
-    delete this;
-  }
-}
-
-//
-
-SplashFontSrc::SplashFontSrc() {
-  isFile = gFalse;
-  deleteSrc = gFalse;
-  fileName = NULL;
-  buf = NULL;
-  refcnt = 1;
-}
-
-SplashFontSrc::~SplashFontSrc() {
-  if (deleteSrc) {
-    if (isFile) {
-      if (fileName)
-	unlink(fileName->getCString());
-    } else {
-      if (buf)
-	gfree(buf);
-    }
-  }
-
-  if (isFile && fileName)
-    delete fileName;
-}
-
-void SplashFontSrc::ref() {
-  refcnt++;
-}
-
-void SplashFontSrc::unref() {
-  if (! --refcnt)
-    delete this;
-}
-
-void SplashFontSrc::setFile(GooString *file, GBool del)
-{
-  isFile = gTrue;
-  fileName = file->copy();
-  deleteSrc = del;
-}
-
-void SplashFontSrc::setFile(const char *file, GBool del)
-{
-  isFile = gTrue;
-  fileName = new GooString(file);
-  deleteSrc = del;
-}
-
-void SplashFontSrc::setBuf(char *bufA, int bufLenA, GBool del)
-{
-  isFile = gFalse;
-  buf = bufA;
-  bufLen = bufLenA;
-  deleteSrc = del;
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashFontFile.h b/source/libs/poppler/poppler-src/splash/SplashFontFile.h
deleted file mode 100644
index ec87504b9..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFontFile.h
+++ /dev/null
@@ -1,95 +0,0 @@
-//========================================================================
-//
-// SplashFontFile.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
-// Copyright (C) 2008, 2010 Albert Astals Cid <aacid@kde.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHFONTFILE_H
-#define SPLASHFONTFILE_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "goo/gtypes.h"
-#include "SplashTypes.h"
-
-class GooString;
-class SplashFontEngine;
-class SplashFont;
-class SplashFontFileID;
-
-//------------------------------------------------------------------------
-// SplashFontFile
-//------------------------------------------------------------------------
-
-class SplashFontSrc {
-public:
-  SplashFontSrc();
-
-  void setFile(GooString *file, GBool del);
-  void setFile(const char *file, GBool del);
-  void setBuf(char *bufA, int buflenA, GBool del);
-
-  void ref();
-  void unref();
-
-  GBool isFile;
-  GooString *fileName;
-  char *buf;
-  int bufLen;
-
-private:
-  ~SplashFontSrc();
-  int refcnt;
-  GBool deleteSrc;
-};
-
-class SplashFontFile {
-public:
-
-  virtual ~SplashFontFile();
-
-  // Create a new SplashFont, i.e., a scaled instance of this font
-  // file.
-  virtual SplashFont *makeFont(SplashCoord *mat, SplashCoord *textMat) = 0;
-
-  // Get the font file ID.
-  SplashFontFileID *getID() { return id; }
-
-  // Increment the reference count.
-  void incRefCnt();
-
-  // Decrement the reference count.  If the new value is zero, delete
-  // the SplashFontFile object.
-  void decRefCnt();
-
-  GBool doAdjustMatrix;
-
-protected:
-
-  SplashFontFile(SplashFontFileID *idA, SplashFontSrc *srcA);
-
-  SplashFontFileID *id;
-  SplashFontSrc *src;
-  int refCnt;
-
-  friend class SplashFontEngine;
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashFontFileID.cc b/source/libs/poppler/poppler-src/splash/SplashFontFileID.cc
deleted file mode 100644
index a66dabf61..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFontFileID.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-//========================================================================
-//
-// SplashFontFileID.cc
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include "SplashFontFileID.h"
-
-//------------------------------------------------------------------------
-// SplashFontFileID
-//------------------------------------------------------------------------
-
-SplashFontFileID::SplashFontFileID() {
-}
-
-SplashFontFileID::~SplashFontFileID() {
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashFontFileID.h b/source/libs/poppler/poppler-src/splash/SplashFontFileID.h
deleted file mode 100644
index cfd89ebb5..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashFontFileID.h
+++ /dev/null
@@ -1,28 +0,0 @@
-//========================================================================
-//
-// SplashFontFileID.h
-//
-//========================================================================
-
-#ifndef SPLASHFONTFILEID_H
-#define SPLASHFONTFILEID_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "goo/gtypes.h"
-
-//------------------------------------------------------------------------
-// SplashFontFileID
-//------------------------------------------------------------------------
-
-class SplashFontFileID {
-public:
-
-  SplashFontFileID();
-  virtual ~SplashFontFileID();
-  virtual GBool matches(SplashFontFileID *id) = 0;
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashGlyphBitmap.h b/source/libs/poppler/poppler-src/splash/SplashGlyphBitmap.h
deleted file mode 100644
index c062c106e..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashGlyphBitmap.h
+++ /dev/null
@@ -1,24 +0,0 @@
-//========================================================================
-//
-// SplashGlyphBitmap.h
-//
-//========================================================================
-
-#ifndef SPLASHGLYPHBITMAP_H
-#define SPLASHGLYPHBITMAP_H
-
-#include "goo/gtypes.h"
-
-//------------------------------------------------------------------------
-// SplashGlyphBitmap
-//------------------------------------------------------------------------
-
-struct SplashGlyphBitmap {
-  int x, y, w, h;		// offset and size of glyph
-  GBool aa;			// anti-aliased: true means 8-bit alpha
-				//   bitmap; false means 1-bit
-  Guchar *data;			// bitmap data
-  GBool freeData;		// true if data memory should be freed
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashMath.h b/source/libs/poppler/poppler-src/splash/SplashMath.h
deleted file mode 100644
index ca73c2bd1..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashMath.h
+++ /dev/null
@@ -1,245 +0,0 @@
-//========================================================================
-//
-// SplashMath.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2009-2011 Albert Astals Cid <aacid@kde.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHMATH_H
-#define SPLASHMATH_H
-
-#include "poppler-config.h"
-
-#if USE_FIXEDPOINT
-#include "goo/FixedPoint.h"
-#else
-#include <math.h>
-#endif
-#include "SplashTypes.h"
-
-static inline SplashCoord splashAbs(SplashCoord x) {
-#if USE_FIXEDPOINT
-  return FixedPoint::abs(x);
-#elif USE_FLOAT
-  return fabsf(x);
-#else
-  return fabs(x);
-#endif
-}
-
-static inline int splashFloor(SplashCoord x) {
-  #if USE_FIXEDPOINT
-    return FixedPoint::floor(x);
-  #elif USE_FLOAT
-    return (int)floorf(x);
-  #elif __GNUC__ && __i386__
-    // floor() and (int)() are implemented separately, which results
-    // in changing the FPCW multiple times - so we optimize it with
-    // some inline assembly
-    Gushort oldCW, newCW, t;
-    int result;
-
-    __asm__ volatile("fldl   %4\n"
-		   "fnstcw %0\n"
-		   "movw   %0, %3\n"
-		   "andw   $0xf3ff, %3\n"
-		   "orw    $0x0400, %3\n"
-		   "movw   %3, %1\n"       // round down
-		   "fldcw  %1\n"
-		   "fistpl %2\n"
-		   "fldcw  %0\n"
-		   : "=m" (oldCW), "=m" (newCW), "=m" (result), "=r" (t)
-		   : "m" (x));
-    return result;
-  #elif defined(WIN32) && defined(_M_IX86)
-    // floor() and (int)() are implemented separately, which results
-    // in changing the FPCW multiple times - so we optimize it with
-    // some inline assembly
-    Gushort oldCW, newCW;
-    int result;
-
-    __asm fld QWORD PTR x
-    __asm fnstcw WORD PTR oldCW
-    __asm mov ax, WORD PTR oldCW
-    __asm and ax, 0xf3ff
-    __asm or ax, 0x0400
-    __asm mov WORD PTR newCW, ax     // round down
-    __asm fldcw WORD PTR newCW
-    __asm fistp DWORD PTR result
-    __asm fldcw WORD PTR oldCW
-    return result;
-  #else
-    if (x > 0) return (int)x;
-    else return (int)floor(x);
-  #endif
-}
-
-static inline int splashCeil(SplashCoord x) {
-#if USE_FIXEDPOINT
-  return FixedPoint::ceil(x);
-#elif USE_FLOAT
-  return (int)ceilf(x);
-#elif __GNUC__ && __i386__
-  // ceil() and (int)() are implemented separately, which results
-  // in changing the FPCW multiple times - so we optimize it with
-  // some inline assembly
-  Gushort oldCW, newCW, t;
-  int result;
-
-  __asm__ volatile("fldl   %4\n"
-		   "fnstcw %0\n"
-		   "movw   %0, %3\n"
-		   "andw   $0xf3ff, %3\n"
-		   "orw    $0x0800, %3\n"
-		   "movw   %3, %1\n"       // round up
-		   "fldcw  %1\n"
-		   "fistpl %2\n"
-		   "fldcw  %0\n"
-		   : "=m" (oldCW), "=m" (newCW), "=m" (result), "=r" (t)
-		   : "m" (x));
-  return result;
-#elif defined(WIN32) && defined(_M_IX86)
-  // ceil() and (int)() are implemented separately, which results
-  // in changing the FPCW multiple times - so we optimize it with
-  // some inline assembly
-  Gushort oldCW, newCW;
-  int result;
-
-  __asm fld QWORD PTR x
-  __asm fnstcw WORD PTR oldCW
-  __asm mov ax, WORD PTR oldCW
-  __asm and ax, 0xf3ff
-  __asm or ax, 0x0800
-  __asm mov WORD PTR newCW, ax     // round up
-  __asm fldcw WORD PTR newCW
-  __asm fistp DWORD PTR result
-  __asm fldcw WORD PTR oldCW
-  return result;
-#else
-  return (int)ceil(x);
-#endif
-}
-
-static inline int splashRound(SplashCoord x) {
-#if USE_FIXEDPOINT
-  return FixedPoint::round(x);
-#elif __GNUC__ && __i386__
-  // this could use round-to-nearest mode and avoid the "+0.5",
-  // but that produces slightly different results (because i+0.5
-  // sometimes rounds up and sometimes down using the even rule)
-  Gushort oldCW, newCW, t;
-  int result;
-
-  x += 0.5;
-  __asm__ volatile("fldl   %4\n"
-		   "fnstcw %0\n"
-		   "movw   %0, %3\n"
-		   "andw   $0xf3ff, %3\n"
-		   "orw    $0x0400, %3\n"
-		   "movw   %3, %1\n"       // round down
-		   "fldcw  %1\n"
-		   "fistpl %2\n"
-		   "fldcw  %0\n"
-		   : "=m" (oldCW), "=m" (newCW), "=m" (result), "=r" (t)
-		   : "m" (x));
-  return result;
-#elif defined(WIN32) && defined(_M_IX86)
-  // this could use round-to-nearest mode and avoid the "+0.5",
-  // but that produces slightly different results (because i+0.5
-  // sometimes rounds up and sometimes down using the even rule)
-  Gushort oldCW, newCW;
-  int result;
-
-  x += 0.5;
-  __asm fld QWORD PTR x
-  __asm fnstcw WORD PTR oldCW
-  __asm mov ax, WORD PTR oldCW
-  __asm and ax, 0xf3ff
-  __asm or ax, 0x0400
-  __asm mov WORD PTR newCW, ax     // round down
-  __asm fldcw WORD PTR newCW
-  __asm fistp DWORD PTR result
-  __asm fldcw WORD PTR oldCW
-  return result;
-#else
-  return (int)splashFloor(x + 0.5);
-#endif
-}
-
-static inline SplashCoord splashAvg(SplashCoord x, SplashCoord y) {
-#if USE_FIXEDPOINT
-  return FixedPoint::avg(x, y);
-#else
-  return 0.5 * (x + y);
-#endif
-}
- 
-static inline SplashCoord splashSqrt(SplashCoord x) {
-#if USE_FIXEDPOINT
-  return FixedPoint::sqrt(x);
-#elif USE_FLOAT
-  return sqrtf(x);
-#else
-  return sqrt(x);
-#endif
-}
-
-static inline SplashCoord splashPow(SplashCoord x, SplashCoord y) {
-#if USE_FIXEDPOINT
-  return FixedPoint::pow(x, y);
-#elif USE_FLOAT
-  return powf(x, y);
-#else
-  return pow(x, y);
-#endif
-}
-
-static inline SplashCoord splashDist(SplashCoord x0, SplashCoord y0,
-				     SplashCoord x1, SplashCoord y1) {
-  SplashCoord dx, dy;
-  dx = x1 - x0;
-  dy = y1 - y0;
-#if USE_FIXEDPOINT
-  // this handles the situation where dx*dx or dy*dy is too large to
-  // fit in the 16.16 fixed point format
-  SplashCoord dxa, dya, d;
-  dxa = splashAbs(dx);
-  dya = splashAbs(dy);
-  if (dxa == 0 && dya == 0) {
-    return 0;
-  } else if (dxa > dya) {
-    d = dya / dxa;
-    return dxa * FixedPoint::sqrt(d*d + 1);
-  } else {
-    d = dxa / dya;
-    return dya * FixedPoint::sqrt(d*d + 1);
-  }
-#else
-  return splashSqrt(dx * dx + dy * dy);
-#endif
-}
-
-static inline GBool splashCheckDet(SplashCoord m11, SplashCoord m12,
-				   SplashCoord m21, SplashCoord m22,
-				   SplashCoord epsilon) {
-#if USE_FIXEDPOINT
-  return FixedPoint::checkDet(m11, m12, m21, m22, epsilon);
-#else
-  return fabs(m11 * m22 - m12 * m21) >= epsilon;
-#endif
-}
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashPath.cc b/source/libs/poppler/poppler-src/splash/SplashPath.cc
deleted file mode 100644
index bc4ccd524..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashPath.cc
+++ /dev/null
@@ -1,185 +0,0 @@
-//========================================================================
-//
-// SplashPath.cc
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <string.h>
-#include "goo/gmem.h"
-#include "SplashErrorCodes.h"
-#include "SplashPath.h"
-
-//------------------------------------------------------------------------
-// SplashPath
-//------------------------------------------------------------------------
-
-// A path can be in three possible states:
-//
-// 1. no current point -- zero or more finished subpaths
-//    [curSubpath == length]
-//
-// 2. one point in subpath
-//    [curSubpath == length - 1]
-//
-// 3. open subpath with two or more points
-//    [curSubpath < length - 1]
-
-SplashPath::SplashPath() {
-  pts = NULL;
-  flags = NULL;
-  length = size = 0;
-  curSubpath = 0;
-  hints = NULL;
-  hintsLength = hintsSize = 0;
-}
-
-SplashPath::SplashPath(SplashPath *path) {
-  length = path->length;
-  size = path->size;
-  pts = (SplashPathPoint *)gmallocn(size, sizeof(SplashPathPoint));
-  flags = (Guchar *)gmallocn(size, sizeof(Guchar));
-  memcpy(pts, path->pts, length * sizeof(SplashPathPoint));
-  memcpy(flags, path->flags, length * sizeof(Guchar));
-  curSubpath = path->curSubpath;
-  if (path->hints) {
-    hintsLength = hintsSize = path->hintsLength;
-    hints = (SplashPathHint *)gmallocn(hintsSize, sizeof(SplashPathHint));
-    memcpy(hints, path->hints, hintsLength * sizeof(SplashPathHint));
-  } else {
-    hints = NULL;
-  }
-}
-
-SplashPath::~SplashPath() {
-  gfree(pts);
-  gfree(flags);
-  gfree(hints);
-}
-
-// Add space for <nPts> more points.
-void SplashPath::grow(int nPts) {
-  if (length + nPts > size) {
-    if (size == 0) {
-      size = 32;
-    }
-    while (size < length + nPts) {
-      size *= 2;
-    }
-    pts = (SplashPathPoint *)greallocn(pts, size, sizeof(SplashPathPoint));
-    flags = (Guchar *)greallocn(flags, size, sizeof(Guchar));
-  }
-}
-
-void SplashPath::append(SplashPath *path) {
-  int i;
-
-  curSubpath = length + path->curSubpath;
-  grow(path->length);
-  for (i = 0; i < path->length; ++i) {
-    pts[length] = path->pts[i];
-    flags[length] = path->flags[i];
-    ++length;
-  }
-}
-
-SplashError SplashPath::moveTo(SplashCoord x, SplashCoord y) {
-  if (onePointSubpath()) {
-    return splashErrBogusPath;
-  }
-  grow(1);
-  pts[length].x = x;
-  pts[length].y = y;
-  flags[length] = splashPathFirst | splashPathLast;
-  curSubpath = length++;
-  return splashOk;
-}
-
-SplashError SplashPath::lineTo(SplashCoord x, SplashCoord y) {
-  if (noCurrentPoint()) {
-    return splashErrNoCurPt;
-  }
-  flags[length-1] &= ~splashPathLast;
-  grow(1);
-  pts[length].x = x;
-  pts[length].y = y;
-  flags[length] = splashPathLast;
-  ++length;
-  return splashOk;
-}
-
-SplashError SplashPath::curveTo(SplashCoord x1, SplashCoord y1,
-				SplashCoord x2, SplashCoord y2,
-				SplashCoord x3, SplashCoord y3) {
-  if (noCurrentPoint()) {
-    return splashErrNoCurPt;
-  }
-  flags[length-1] &= ~splashPathLast;
-  grow(3);
-  pts[length].x = x1;
-  pts[length].y = y1;
-  flags[length] = splashPathCurve;
-  ++length;
-  pts[length].x = x2;
-  pts[length].y = y2;
-  flags[length] = splashPathCurve;
-  ++length;
-  pts[length].x = x3;
-  pts[length].y = y3;
-  flags[length] = splashPathLast;
-  ++length;
-  return splashOk;
-}
-
-SplashError SplashPath::close(GBool force) {
-  if (noCurrentPoint()) {
-    return splashErrNoCurPt;
-  }
-  if (force ||
-      curSubpath == length - 1 ||
-      pts[length - 1].x != pts[curSubpath].x ||
-      pts[length - 1].y != pts[curSubpath].y) {
-    lineTo(pts[curSubpath].x, pts[curSubpath].y);
-  }
-  flags[curSubpath] |= splashPathClosed;
-  flags[length - 1] |= splashPathClosed;
-  curSubpath = length;
-  return splashOk;
-}
-
-void SplashPath::addStrokeAdjustHint(int ctrl0, int ctrl1,
-				     int firstPt, int lastPt) {
-  if (hintsLength == hintsSize) {
-    hintsSize = hintsLength ? 2 * hintsLength : 8;
-    hints = (SplashPathHint *)greallocn(hints, hintsSize,
-					sizeof(SplashPathHint));
-  }
-  hints[hintsLength].ctrl0 = ctrl0;
-  hints[hintsLength].ctrl1 = ctrl1;
-  hints[hintsLength].firstPt = firstPt;
-  hints[hintsLength].lastPt = lastPt;
-  ++hintsLength;
-}
-
-void SplashPath::offset(SplashCoord dx, SplashCoord dy) {
-  int i;
-
-  for (i = 0; i < length; ++i) {
-    pts[i].x += dx;
-    pts[i].y += dy;
-  }
-}
-
-GBool SplashPath::getCurPt(SplashCoord *x, SplashCoord *y) {
-  if (noCurrentPoint()) {
-    return gFalse;
-  }
-  *x = pts[length - 1].x;
-  *y = pts[length - 1].y;
-  return gTrue;
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashPath.h b/source/libs/poppler/poppler-src/splash/SplashPath.h
deleted file mode 100644
index 81273c613..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashPath.h
+++ /dev/null
@@ -1,123 +0,0 @@
-//========================================================================
-//
-// SplashPath.h
-//
-//========================================================================
-
-#ifndef SPLASHPATH_H
-#define SPLASHPATH_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "SplashTypes.h"
-
-//------------------------------------------------------------------------
-// SplashPathPoint
-//------------------------------------------------------------------------
-
-struct SplashPathPoint {
-  SplashCoord x, y;
-};
-
-//------------------------------------------------------------------------
-// SplashPath.flags
-//------------------------------------------------------------------------
-
-// first point on each subpath sets this flag
-#define splashPathFirst         0x01
-
-// last point on each subpath sets this flag
-#define splashPathLast          0x02
-
-// if the subpath is closed, its first and last points must be
-// identical, and must set this flag
-#define splashPathClosed        0x04
-
-// curve control points set this flag
-#define splashPathCurve         0x08
-
-//------------------------------------------------------------------------
-// SplashPathHint
-//------------------------------------------------------------------------
-
-struct SplashPathHint {
-  int ctrl0, ctrl1;
-  int firstPt, lastPt;
-};
-
-//------------------------------------------------------------------------
-// SplashPath
-//------------------------------------------------------------------------
-
-class SplashPath {
-public:
-
-  // Create an empty path.
-  SplashPath();
-
-  // Copy a path.
-  SplashPath *copy() { return new SplashPath(this); }
-
-  ~SplashPath();
-
-  // Append <path> to <this>.
-  void append(SplashPath *path);
-
-  // Start a new subpath.
-  SplashError moveTo(SplashCoord x, SplashCoord y);
-
-  // Add a line segment to the last subpath.
-  SplashError lineTo(SplashCoord x, SplashCoord y);
-
-  // Add a third-order (cubic) Bezier curve segment to the last
-  // subpath.
-  SplashError curveTo(SplashCoord x1, SplashCoord y1,
-		      SplashCoord x2, SplashCoord y2,
-		      SplashCoord x3, SplashCoord y3);
-
-  // Close the last subpath, adding a line segment if necessary.  If
-  // <force> is true, this adds a line segment even if the current
-  // point is equal to the first point in the subpath.
-  SplashError close(GBool force = gFalse);
-
-  // Add a stroke adjustment hint.  The controlling segments are
-  // <ctrl0> and <ctrl1> (where segments are identified by their first
-  // point), and the points to be adjusted are <firstPt> .. <lastPt>.
-  void addStrokeAdjustHint(int ctrl0, int ctrl1, int firstPt, int lastPt);
-
-  // Add (<dx>, <dy>) to every point on this path.
-  void offset(SplashCoord dx, SplashCoord dy);
-
-  // Get the points on the path.
-  int getLength() { return length; }
-  void getPoint(int i, double *x, double *y, Guchar *f)
-    { *x = pts[i].x; *y = pts[i].y; *f = flags[i]; }
-
-  // Get the current point.
-  GBool getCurPt(SplashCoord *x, SplashCoord *y);
-
-protected:
-
-  SplashPath(SplashPath *path);
-  void grow(int nPts);
-  GBool noCurrentPoint() { return curSubpath == length; }
-  GBool onePointSubpath() { return curSubpath == length - 1; }
-  GBool openSubpath() { return curSubpath < length - 1; }
-
-  SplashPathPoint *pts;		// array of points
-  Guchar *flags;		// array of flags
-  int length, size;		// length/size of the pts and flags arrays
-  int curSubpath;		// index of first point in last subpath
-
-  SplashPathHint *hints;	// list of hints
-  int hintsLength, hintsSize;
-
-  friend class SplashXPath;
-  friend class Splash;
-  // this is a temporary hack, until we read FreeType paths directly
-  friend class ArthurOutputDev;
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashPattern.cc b/source/libs/poppler/poppler-src/splash/SplashPattern.cc
deleted file mode 100644
index 28ca49958..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashPattern.cc
+++ /dev/null
@@ -1,55 +0,0 @@
-//========================================================================
-//
-// SplashPattern.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2010, 2011 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include "SplashMath.h"
-#include "SplashScreen.h"
-#include "SplashPattern.h"
-
-//------------------------------------------------------------------------
-// SplashPattern
-//------------------------------------------------------------------------
-
-SplashPattern::SplashPattern() {
-}
-
-SplashPattern::~SplashPattern() {
-}
-
-//------------------------------------------------------------------------
-// SplashSolidColor
-//------------------------------------------------------------------------
-
-SplashSolidColor::SplashSolidColor(SplashColorPtr colorA) {
-  splashColorCopy(color, colorA);
-}
-
-SplashSolidColor::~SplashSolidColor() {
-}
-
-GBool SplashSolidColor::getColor(int x, int y, SplashColorPtr c) {
-  splashColorCopy(c, color);
-  return gTrue;
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashPattern.h b/source/libs/poppler/poppler-src/splash/SplashPattern.h
deleted file mode 100644
index 1e2881c81..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashPattern.h
+++ /dev/null
@@ -1,104 +0,0 @@
-//========================================================================
-//
-// SplashPattern.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2010, 2011, 2014 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHPATTERN_H
-#define SPLASHPATTERN_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "SplashTypes.h"
-
-class SplashScreen;
-
-//------------------------------------------------------------------------
-// SplashPattern
-//------------------------------------------------------------------------
-
-class SplashPattern {
-public:
-
-  SplashPattern();
-
-  virtual SplashPattern *copy() = 0;
-
-  virtual ~SplashPattern();
-
-  // Return the color value for a specific pixel.
-  virtual GBool getColor(int x, int y, SplashColorPtr c) = 0;
-
-  // Test if x,y-position is inside pattern.
-  virtual GBool testPosition(int x, int y) = 0;
-
-  // Returns true if this pattern object will return the same color
-  // value for all pixels.
-  virtual GBool isStatic() = 0;
-
-  // Returns true if this pattern colorspace is CMYK.
-  virtual GBool isCMYK() = 0;
-private:
-};
-
-//------------------------------------------------------------------------
-// SplashSolidColor
-//------------------------------------------------------------------------
-
-class SplashSolidColor: public SplashPattern {
-public:
-
-  SplashSolidColor(SplashColorPtr colorA);
-
-  SplashPattern *copy() override { return new SplashSolidColor(color); }
-
-  ~SplashSolidColor();
-
-  GBool getColor(int x, int y, SplashColorPtr c) override;
-
-  GBool testPosition(int x, int y) override { return gFalse; }
-
-  GBool isStatic() override { return gTrue; }
-
-  GBool isCMYK() override { return gFalse; }
-
-private:
-
-  SplashColor color;
-};
-
-//------------------------------------------------------------------------
-// SplashGouraudColor (needed for gouraudTriangleShadedFill)
-//------------------------------------------------------------------------
-
-class SplashGouraudColor: public SplashPattern {
-public:
-
-  virtual GBool isParameterized() = 0;
-
-  virtual int getNTriangles() = 0;
-
-  virtual  void getTriangle(int i, double *x0, double *y0, double *color0,
-                            double *x1, double *y1, double *color1,
-                            double *x2, double *y2, double *color2) = 0;
-
-  virtual void getParameterizedColor(double t, SplashColorMode mode, SplashColorPtr c) = 0;
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashScreen.cc b/source/libs/poppler/poppler-src/splash/SplashScreen.cc
deleted file mode 100644
index 28b1e7997..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashScreen.cc
+++ /dev/null
@@ -1,390 +0,0 @@
-//========================================================================
-//
-// SplashScreen.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2009, 2016 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <algorithm>
-#include "goo/gmem.h"
-#include "goo/grandom.h"
-#include "goo/GooLikely.h"
-#include "SplashMath.h"
-#include "SplashScreen.h"
-
-static SplashScreenParams defaultParams = {
-  splashScreenDispersed,	// type
-  2,				// size
-  2,				// dotRadius
-  1.0,				// gamma
-  0.0,				// blackThreshold
-  1.0				// whiteThreshold
-};
-
-//------------------------------------------------------------------------
-
-struct SplashScreenPoint {
-  int x, y;
-  int dist;
-};
-
-
-struct cmpDistancesFunctor {
-  bool operator()(const SplashScreenPoint &p0, const SplashScreenPoint &p1) {
-    return p0.dist < p1.dist;
-  }
-};
-
-//------------------------------------------------------------------------
-// SplashScreen
-//------------------------------------------------------------------------
-
-// If <clustered> is true, this generates a 45 degree screen using a
-// circular dot spot function.  DPI = resolution / ((size / 2) *
-// sqrt(2)).  If <clustered> is false, this generates an optimal
-// threshold matrix using recursive tesselation.  Gamma correction
-// (gamma = 1 / 1.33) is also computed here.
-SplashScreen::SplashScreen(SplashScreenParams *params) {
-
-  if (!params) {
-    params = &defaultParams;
-  }
-  
-  screenParams = params;
-  mat = NULL;
-  size = 0;
-  maxVal = 0;
-  minVal = 0;
-}
-
-void SplashScreen::createMatrix()
-{
-  Guchar u;
-  int black, white, i;
-  
-  SplashScreenParams *params = screenParams;
-
-  // size must be a power of 2, and at least 2
-  for (size = 2, log2Size = 1; size < params->size; size <<= 1, ++log2Size) ;
-
-  switch (params->type) {
-
-  case splashScreenDispersed:
-    mat = (Guchar *)gmallocn(size * size, sizeof(Guchar));
-    buildDispersedMatrix(size/2, size/2, 1, size/2, 1);
-    break;
-
-  case splashScreenClustered:
-    mat = (Guchar *)gmallocn(size * size, sizeof(Guchar));
-    buildClusteredMatrix();
-    break;
-
-  case splashScreenStochasticClustered:
-    // size must be at least 2*r
-    while (size < (params->dotRadius << 1)) {
-      size <<= 1;
-      ++log2Size;
-    }
-    mat = (Guchar *)gmallocn(size * size, sizeof(Guchar));
-    buildSCDMatrix(params->dotRadius);
-    break;
-  }
-  
-  sizeM1 = size - 1;
-
-  // do gamma correction and compute minVal/maxVal
-  minVal = 255;
-  maxVal = 0;
-  black = splashRound((SplashCoord)255.0 * params->blackThreshold);
-  if (black < 1) {
-    black = 1;
-  }
-  int whiteAux = splashRound((SplashCoord)255.0 * params->whiteThreshold);
-  if (whiteAux > 255) {
-    white = 255;
-  } else {
-    white = whiteAux;
-  }
-   for (i = 0; i < size * size; ++i) {
-    u = splashRound((SplashCoord)255.0 *
-		    splashPow((SplashCoord)mat[i] / 255.0, params->gamma));
-    if (u < black) {
-      u = (Guchar)black;
-    } else if (u >= white) {
-      u = (Guchar)white;
-    }
-    mat[i] = u;
-    if (u < minVal) {
-      minVal = u;
-    } else if (u > maxVal) {
-      maxVal = u;
-    }
-  }
-}
-
-void SplashScreen::buildDispersedMatrix(int i, int j, int val,
-					int delta, int offset) {
-  if (delta == 0) {
-    // map values in [1, size^2] --> [1, 255]
-    mat[(i << log2Size) + j] = 1 + (254 * (val - 1)) / (size * size - 1);
-  } else {
-    buildDispersedMatrix(i, j,
-			 val, delta / 2, 4*offset);
-    buildDispersedMatrix((i + delta) % size, (j + delta) % size,
-			 val + offset, delta / 2, 4*offset);
-    buildDispersedMatrix((i + delta) % size, j,
-			 val + 2*offset, delta / 2, 4*offset);
-    buildDispersedMatrix((i + 2*delta) % size, (j + delta) % size,
-			 val + 3*offset, delta / 2, 4*offset);
-  }
-}
-
-void SplashScreen::buildClusteredMatrix() {
-  SplashCoord *dist;
-  SplashCoord u, v, d;
-  Guchar val;
-  int size2, x, y, x1, y1, i;
-
-  size2 = size >> 1;
-
-  // initialize the threshold matrix
-  for (y = 0; y < size; ++y) {
-    for (x = 0; x < size; ++x) {
-      mat[(y << log2Size) + x] = 0;
-    }
-  }
-
-  // build the distance matrix
-  dist = (SplashCoord *)gmallocn(size * size2, sizeof(SplashCoord));
-  for (y = 0; y < size2; ++y) {
-    for (x = 0; x < size2; ++x) {
-      if (x + y < size2 - 1) {
-	u = (SplashCoord)x + 0.5 - 0;
-	v = (SplashCoord)y + 0.5 - 0;
-      } else {
-	u = (SplashCoord)x + 0.5 - (SplashCoord)size2;
-	v = (SplashCoord)y + 0.5 - (SplashCoord)size2;
-      }
-      dist[y * size2 + x] = u*u + v*v;
-    }
-  }
-  for (y = 0; y < size2; ++y) {
-    for (x = 0; x < size2; ++x) {
-      if (x < y) {
-	u = (SplashCoord)x + 0.5 - 0;
-	v = (SplashCoord)y + 0.5 - (SplashCoord)size2;
-      } else {
-	u = (SplashCoord)x + 0.5 - (SplashCoord)size2;
-	v = (SplashCoord)y + 0.5 - 0;
-      }
-      dist[(size2 + y) * size2 + x] = u*u + v*v;
-    }
-  }
-
-  // build the threshold matrix
-  x1 = y1 = 0; // make gcc happy
-  for (i = 0; i < size * size2; ++i) {
-    d = -1;
-    for (y = 0; y < size; ++y) {
-      for (x = 0; x < size2; ++x) {
-	if (mat[(y << log2Size) + x] == 0 &&
-	    dist[y * size2 + x] > d) {
-	  x1 = x;
-	  y1 = y;
-	  d = dist[y1 * size2 + x1];
-	}
-      }
-    }
-    // map values in [0, 2*size*size2-1] --> [1, 255]
-    val = 1 + (254 * (2*i)) / (2*size*size2 - 1);
-    mat[(y1 << log2Size) + x1] = val;
-    val = 1 + (254 * (2*i+1)) / (2*size*size2 - 1);
-    if (y1 < size2) {
-      mat[((y1 + size2) << log2Size) + x1 + size2] = val;
-    } else {
-      mat[((y1 - size2) << log2Size) + x1 + size2] = val;
-    }
-  }
-
-  gfree(dist);
-}
-
-// Compute the distance between two points on a toroid.
-int SplashScreen::distance(int x0, int y0, int x1, int y1) {
-  int dx0, dx1, dx, dy0, dy1, dy;
-
-  dx0 = abs(x0 - x1);
-  dx1 = size - dx0;
-  dx = dx0 < dx1 ? dx0 : dx1;
-  dy0 = abs(y0 - y1);
-  dy1 = size - dy0;
-  dy = dy0 < dy1 ? dy0 : dy1;
-  return dx * dx + dy * dy;
-}
-
-// Algorithm taken from:
-// Victor Ostromoukhov and Roger D. Hersch, "Stochastic Clustered-Dot
-// Dithering" in Color Imaging: Device-Independent Color, Color
-// Hardcopy, and Graphic Arts IV, SPIE Vol. 3648, pp. 496-505, 1999.
-void SplashScreen::buildSCDMatrix(int r) {
-  SplashScreenPoint *dots, *pts;
-  int dotsLen, dotsSize;
-  char *tmpl;
-  char *grid;
-  int *region, *dist;
-  int x, y, xx, yy, x0, x1, y0, y1, i, j, d, iMin, dMin, n;
-
-  // generate the random space-filling curve
-  pts = (SplashScreenPoint *)gmallocn(size * size, sizeof(SplashScreenPoint));
-  i = 0;
-  for (y = 0; y < size; ++y) {
-    for (x = 0; x < size; ++x) {
-      pts[i].x = x;
-      pts[i].y = y;
-      ++i;
-    }
-  }
-  for (i = 0; i < size * size; ++i) {
-    j = i + (int)((double)(size * size - i) * grandom_double());
-    x = pts[i].x;
-    y = pts[i].y;
-    pts[i].x = pts[j].x;
-    pts[i].y = pts[j].y;
-    pts[j].x = x;
-    pts[j].y = y;
-  }
-
-  // construct the circle template
-  tmpl = (char *)gmallocn((r+1)*(r+1), sizeof(char));
-  for (y = 0; y <= r; ++y) {
-    for (x = 0; x <= r; ++x) {
-      tmpl[y*(r+1) + x] = (x * y <= r * r) ? 1 : 0;
-    }
-  }
-
-  // mark all grid cells as free
-  grid = (char *)gmallocn(size * size, sizeof(char));
-  for (y = 0; y < size; ++y) {
-    for (x = 0; x < size; ++x) {
-      grid[(y << log2Size) + x] = 0;
-    }
-  }
-
-  // walk the space-filling curve, adding dots
-  dotsLen = 0;
-  dotsSize = 32;
-  dots = (SplashScreenPoint *)gmallocn(dotsSize, sizeof(SplashScreenPoint));
-  for (i = 0; i < size * size; ++i) {
-    x = pts[i].x;
-    y = pts[i].y;
-    if (!grid[(y << log2Size) + x]) {
-      if (dotsLen == dotsSize) {
-	dotsSize *= 2;
-	dots = (SplashScreenPoint *)greallocn(dots, dotsSize,
-					      sizeof(SplashScreenPoint));
-      }
-      dots[dotsLen++] = pts[i];
-      for (yy = 0; yy <= r; ++yy) {
-	y0 = (y + yy) % size;
-	y1 = (y - yy + size) % size;
-	for (xx = 0; xx <= r; ++xx) {
-	  if (tmpl[yy*(r+1) + xx]) {
-	    x0 = (x + xx) % size;
-	    x1 = (x - xx + size) % size;
-	    grid[(y0 << log2Size) + x0] = 1;
-	    grid[(y0 << log2Size) + x1] = 1;
-	    grid[(y1 << log2Size) + x0] = 1;
-	    grid[(y1 << log2Size) + x1] = 1;
-	  }
-	}
-      }
-    }
-  }
-
-  gfree(tmpl);
-  gfree(grid);
-
-  // assign each cell to a dot, compute distance to center of dot
-  region = (int *)gmallocn(size * size, sizeof(int));
-  dist = (int *)gmallocn(size * size, sizeof(int));
-  for (y = 0; y < size; ++y) {
-    for (x = 0; x < size; ++x) {
-      iMin = 0;
-      dMin = distance(dots[0].x, dots[0].y, x, y);
-      for (i = 1; i < dotsLen; ++i) {
-	d = distance(dots[i].x, dots[i].y, x, y);
-	if (d < dMin) {
-	  iMin = i;
-	  dMin = d;
-	}
-      }
-      region[(y << log2Size) + x] = iMin;
-      dist[(y << log2Size) + x] = dMin;
-    }
-  }
-
-  // compute threshold values
-  for (i = 0; i < dotsLen; ++i) {
-    n = 0;
-    for (y = 0; y < size; ++y) {
-      for (x = 0; x < size; ++x) {
-	if (region[(y << log2Size) + x] == i) {
-	  pts[n].x = x;
-	  pts[n].y = y;
-	  pts[n].dist = distance(dots[i].x, dots[i].y, x, y);
-	  ++n;
-	}
-      }
-    }
-    std::sort(pts, pts + n, cmpDistancesFunctor());
-    for (j = 0; j < n; ++j) {
-      // map values in [0 .. n-1] --> [255 .. 1]
-      mat[(pts[j].y << log2Size) + pts[j].x] = 255 - (254 * j) / (n - 1);
-    }
-  }
-
-  gfree(pts);
-  gfree(region);
-  gfree(dist);
-
-  gfree(dots);
-}
-
-SplashScreen::SplashScreen(SplashScreen *screen) {
-  screenParams = screen->screenParams;
-  size = screen->size;
-  sizeM1 = screen->sizeM1;
-  log2Size = screen->log2Size;
-  mat = (Guchar *)gmallocn(size * size, sizeof(Guchar));
-  if (likely(mat != NULL)) {
-    memcpy(mat, screen->mat, size * size * sizeof(Guchar));
-  }
-  minVal = screen->minVal;
-  maxVal = screen->maxVal;
-}
-
-SplashScreen::~SplashScreen() {
-  gfree(mat);
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashScreen.h b/source/libs/poppler/poppler-src/splash/SplashScreen.h
deleted file mode 100644
index a7fc45591..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashScreen.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//========================================================================
-//
-// SplashScreen.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2009 Albert Astals Cid <aacid@kde.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHSCREEN_H
-#define SPLASHSCREEN_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "SplashTypes.h"
-
-#include <stdlib.h>
-
-//------------------------------------------------------------------------
-// SplashScreen
-//------------------------------------------------------------------------
-
-class SplashScreen {
-public:
-
-  SplashScreen(SplashScreenParams *params);
-  SplashScreen(SplashScreen *screen);
-  ~SplashScreen();
-
-  SplashScreen *copy() { return new SplashScreen(this); }
-
-  // Return the computed pixel value (0=black, 1=white) for the gray
-  // level <value> at (<x>, <y>).
-  int test(int x, int y, Guchar value) {
-    int xx, yy;
-    if (mat == NULL) createMatrix();
-    xx = x & sizeM1;
-    yy = y & sizeM1;
-    return value < mat[(yy << log2Size) + xx] ? 0 : 1;
-  }
-
-  // Returns true if value is above the white threshold or below the
-  // black threshold, i.e., if the corresponding halftone will be
-  // solid white or black.
-  GBool isStatic(Guchar value) { if (mat == NULL) createMatrix(); return value < minVal || value >= maxVal; }
-
-private:
-  void createMatrix();
-
-  void buildDispersedMatrix(int i, int j, int val,
-			    int delta, int offset);
-  void buildClusteredMatrix();
-  int distance(int x0, int y0, int x1, int y1);
-  void buildSCDMatrix(int r);
-
-  SplashScreenParams *screenParams;	// params to create the other members
-  Guchar *mat;			// threshold matrix
-  int size;			// size of the threshold matrix
-  int sizeM1;			// size - 1
-  int log2Size;			// log2(size)
-  Guchar minVal;		// any pixel value below minVal generates
-				//   solid black
-  Guchar maxVal;		// any pixel value above maxVal generates
-				//   solid white
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashState.cc b/source/libs/poppler/poppler-src/splash/SplashState.cc
deleted file mode 100644
index f0c98c5ef..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashState.cc
+++ /dev/null
@@ -1,272 +0,0 @@
-//========================================================================
-//
-// SplashState.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2009, 2011, 2012, 2015 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <string.h>
-#include "goo/gmem.h"
-#include "SplashPattern.h"
-#include "SplashScreen.h"
-#include "SplashClip.h"
-#include "SplashBitmap.h"
-#include "SplashState.h"
-
-//------------------------------------------------------------------------
-// SplashState
-//------------------------------------------------------------------------
-
-// number of components in each color mode
-int splashColorModeNComps[] = {
-  1, 1, 3, 3, 4
-#if SPLASH_CMYK
-  , 4, 4 + SPOT_NCOMPS
-#endif
-};
-
-SplashState::SplashState(int width, int height, GBool vectorAntialias,
-			 SplashScreenParams *screenParams) {
-  SplashColor color;
-  int i;
-
-  matrix[0] = 1;  matrix[1] = 0;
-  matrix[2] = 0;  matrix[3] = 1;
-  matrix[4] = 0;  matrix[5] = 0;
-  memset(&color, 0, sizeof(SplashColor));
-  strokePattern = new SplashSolidColor(color);
-  fillPattern = new SplashSolidColor(color);
-  screen = new SplashScreen(screenParams);
-  blendFunc = NULL;
-  strokeAlpha = 1;
-  fillAlpha = 1;
-  multiplyPatternAlpha = gFalse;
-  patternStrokeAlpha = 1;
-  patternFillAlpha = 1;
-  lineWidth = 0;
-  lineCap = splashLineCapButt;
-  lineJoin = splashLineJoinMiter;
-  miterLimit = 10;
-  flatness = 1;
-  lineDash = NULL;
-  lineDashLength = 0;
-  lineDashPhase = 0;
-  strokeAdjust = gFalse;
-  clip = new SplashClip(0, 0, width - 0.001, height - 0.001, vectorAntialias);
-  softMask = NULL;
-  deleteSoftMask = gFalse;
-  inNonIsolatedGroup = gFalse;
-  fillOverprint = gFalse;
-  strokeOverprint = gFalse;
-  overprintMode = 0;	  
-  for (i = 0; i < 256; ++i) {
-    rgbTransferR[i] = (Guchar)i;
-    rgbTransferG[i] = (Guchar)i;
-    rgbTransferB[i] = (Guchar)i;
-    grayTransfer[i] = (Guchar)i;
-#if SPLASH_CMYK
-    cmykTransferC[i] = (Guchar)i;
-    cmykTransferM[i] = (Guchar)i;
-    cmykTransferY[i] = (Guchar)i;
-    cmykTransferK[i] = (Guchar)i;
-    for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
-      deviceNTransfer[cp][i] = (Guchar)i;
-#endif
-  }
-  overprintMask = 0xffffffff;
-  overprintAdditive = gFalse;
-  next = NULL;
-}
-
-SplashState::SplashState(int width, int height, GBool vectorAntialias,
-			 SplashScreen *screenA) {
-  SplashColor color;
-  int i;
-
-  matrix[0] = 1;  matrix[1] = 0;
-  matrix[2] = 0;  matrix[3] = 1;
-  matrix[4] = 0;  matrix[5] = 0;
-  memset(&color, 0, sizeof(SplashColor));
-  strokePattern = new SplashSolidColor(color);
-  fillPattern = new SplashSolidColor(color);
-  screen = screenA->copy();
-  blendFunc = NULL;
-  strokeAlpha = 1;
-  fillAlpha = 1;
-  multiplyPatternAlpha = gFalse;
-  patternStrokeAlpha = 1;
-  patternFillAlpha = 1;
-  lineWidth = 0;
-  lineCap = splashLineCapButt;
-  lineJoin = splashLineJoinMiter;
-  miterLimit = 10;
-  flatness = 1;
-  lineDash = NULL;
-  lineDashLength = 0;
-  lineDashPhase = 0;
-  strokeAdjust = gFalse;
-  clip = new SplashClip(0, 0, width - 0.001, height - 0.001, vectorAntialias);
-  softMask = NULL;
-  deleteSoftMask = gFalse;
-  inNonIsolatedGroup = gFalse;
-  fillOverprint = gFalse;
-  strokeOverprint = gFalse;
-  overprintMode = 0;	  
-  for (i = 0; i < 256; ++i) {
-    rgbTransferR[i] = (Guchar)i;
-    rgbTransferG[i] = (Guchar)i;
-    rgbTransferB[i] = (Guchar)i;
-    grayTransfer[i] = (Guchar)i;
-#if SPLASH_CMYK
-    cmykTransferC[i] = (Guchar)i;
-    cmykTransferM[i] = (Guchar)i;
-    cmykTransferY[i] = (Guchar)i;
-    cmykTransferK[i] = (Guchar)i;
-    for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
-      deviceNTransfer[cp][i] = (Guchar)i;
-#endif
-  }
-  overprintMask = 0xffffffff;
-  overprintAdditive = gFalse;
-  next = NULL;
-}
-
-SplashState::SplashState(SplashState *state) {
-  memcpy(matrix, state->matrix, 6 * sizeof(SplashCoord));
-  strokePattern = state->strokePattern->copy();
-  fillPattern = state->fillPattern->copy();
-  screen = state->screen->copy();
-  blendFunc = state->blendFunc;
-  strokeAlpha = state->strokeAlpha;
-  fillAlpha = state->fillAlpha;
-  multiplyPatternAlpha = state->multiplyPatternAlpha;
-  patternStrokeAlpha = state->patternStrokeAlpha;
-  patternFillAlpha = state->patternFillAlpha;
-  lineWidth = state->lineWidth;
-  lineCap = state->lineCap;
-  lineJoin = state->lineJoin;
-  miterLimit = state->miterLimit;
-  flatness = state->flatness;
-  if (state->lineDash) {
-    lineDashLength = state->lineDashLength;
-    lineDash = (SplashCoord *)gmallocn(lineDashLength, sizeof(SplashCoord));
-    memcpy(lineDash, state->lineDash, lineDashLength * sizeof(SplashCoord));
-  } else {
-    lineDash = NULL;
-    lineDashLength = 0;
-  }
-  lineDashPhase = state->lineDashPhase;
-  strokeAdjust = state->strokeAdjust;
-  clip = state->clip->copy();
-  softMask = state->softMask;
-  deleteSoftMask = gFalse;
-  inNonIsolatedGroup = state->inNonIsolatedGroup;
-  fillOverprint = state->fillOverprint;
-  strokeOverprint = state->strokeOverprint;
-  overprintMode = state->overprintMode;	  
-  memcpy(rgbTransferR, state->rgbTransferR, 256);
-  memcpy(rgbTransferG, state->rgbTransferG, 256);
-  memcpy(rgbTransferB, state->rgbTransferB, 256);
-  memcpy(grayTransfer, state->grayTransfer, 256);
-#if SPLASH_CMYK
-  memcpy(cmykTransferC, state->cmykTransferC, 256);
-  memcpy(cmykTransferM, state->cmykTransferM, 256);
-  memcpy(cmykTransferY, state->cmykTransferY, 256);
-  memcpy(cmykTransferK, state->cmykTransferK, 256);
-  for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
-    memcpy(deviceNTransfer[cp], state->deviceNTransfer[cp], 256);
-#endif
-  overprintMask = state->overprintMask;
-  overprintAdditive = state->overprintAdditive;
-  next = NULL;
-}
-
-SplashState::~SplashState() {
-  delete strokePattern;
-  delete fillPattern;
-  delete screen;
-  gfree(lineDash);
-  delete clip;
-  if (deleteSoftMask && softMask) {
-    delete softMask;
-  }
-}
-
-void SplashState::setStrokePattern(SplashPattern *strokePatternA) {
-  delete strokePattern;
-  strokePattern = strokePatternA;
-}
-
-void SplashState::setFillPattern(SplashPattern *fillPatternA) {
-  delete fillPattern;
-  fillPattern = fillPatternA;
-}
-
-void SplashState::setScreen(SplashScreen *screenA) {
-  delete screen;
-  screen = screenA;
-}
-
-void SplashState::setLineDash(SplashCoord *lineDashA, int lineDashLengthA,
-			      SplashCoord lineDashPhaseA) {
-  gfree(lineDash);
-  lineDashLength = lineDashLengthA;
-  if (lineDashLength > 0) {
-    lineDash = (SplashCoord *)gmallocn(lineDashLength, sizeof(SplashCoord));
-    memcpy(lineDash, lineDashA, lineDashLength * sizeof(SplashCoord));
-  } else {
-    lineDash = NULL;
-  }
-  lineDashPhase = lineDashPhaseA;
-}
-
-void SplashState::setSoftMask(SplashBitmap *softMaskA) {
-  if (deleteSoftMask) {
-    delete softMask;
-  }
-  softMask = softMaskA;
-  deleteSoftMask = gTrue;
-}
-
-void SplashState::setTransfer(Guchar *red, Guchar *green, Guchar *blue,
-			      Guchar *gray) {
-#if SPLASH_CMYK
-  int i;
-
-  for (i = 0; i < 256; ++i) {
-    cmykTransferC[i] = 255 - rgbTransferR[255 - i];
-    cmykTransferM[i] = 255 - rgbTransferG[255 - i];
-    cmykTransferY[i] = 255 - rgbTransferB[255 - i];
-    cmykTransferK[i] = 255 - grayTransfer[255 - i];
-  }
-  for (i = 0; i < 256; ++i) {
-    deviceNTransfer[0][i] = 255 - rgbTransferR[255 - i];
-    deviceNTransfer[1][i] = 255 - rgbTransferG[255 - i];
-    deviceNTransfer[2][i] = 255 - rgbTransferB[255 - i];
-    deviceNTransfer[3][i] = 255 - grayTransfer[255 - i];
-  }
-#endif
-  memcpy(rgbTransferR, red, 256);
-  memcpy(rgbTransferG, green, 256);
-  memcpy(rgbTransferB, blue, 256);
-  memcpy(grayTransfer, gray, 256);
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashState.h b/source/libs/poppler/poppler-src/splash/SplashState.h
deleted file mode 100644
index fea760350..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashState.h
+++ /dev/null
@@ -1,142 +0,0 @@
-//========================================================================
-//
-// SplashState.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2011, 2012, 2015 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHSTATE_H
-#define SPLASHSTATE_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "SplashTypes.h"
-
-class SplashPattern;
-class SplashScreen;
-class SplashClip;
-class SplashBitmap;
-
-//------------------------------------------------------------------------
-// line cap values
-//------------------------------------------------------------------------
-
-#define splashLineCapButt       0
-#define splashLineCapRound      1
-#define splashLineCapProjecting 2
-
-//------------------------------------------------------------------------
-// line join values
-//------------------------------------------------------------------------
-
-#define splashLineJoinMiter     0
-#define splashLineJoinRound     1
-#define splashLineJoinBevel     2
-
-//------------------------------------------------------------------------
-// SplashState
-//------------------------------------------------------------------------
-
-class SplashState {
-public:
-
-  // Create a new state object, initialized with default settings.
-  SplashState(int width, int height, GBool vectorAntialias,
-	      SplashScreenParams *screenParams);
-  SplashState(int width, int height, GBool vectorAntialias,
-	      SplashScreen *screenA);
-
-  // Copy a state object.
-  SplashState *copy() { return new SplashState(this); }
-
-  ~SplashState();
-
-  // Set the stroke pattern.  This does not copy <strokePatternA>.
-  void setStrokePattern(SplashPattern *strokePatternA);
-
-  // Set the fill pattern.  This does not copy <fillPatternA>.
-  void setFillPattern(SplashPattern *fillPatternA);
-
-  // Set the screen.  This does not copy <screenA>.
-  void setScreen(SplashScreen *screenA);
-
-  // Set the line dash pattern.  This copies the <lineDashA> array.
-  void setLineDash(SplashCoord *lineDashA, int lineDashLengthA,
-		   SplashCoord lineDashPhaseA);
-
-  // Set the soft mask bitmap.
-  void setSoftMask(SplashBitmap *softMaskA);
-
-  // Set the overprint parametes.
-  void setFillOverprint(GBool fillOverprintA) { fillOverprint = fillOverprintA; }
-  void setStrokeOverprint(GBool strokeOverprintA) { strokeOverprint = strokeOverprintA; }
-  void setOverprintMode(int overprintModeA) { overprintMode = overprintModeA; }
-
-  // Set the transfer function.
-  void setTransfer(Guchar *red, Guchar *green, Guchar *blue, Guchar *gray);
-
-private:
-
-  SplashState(SplashState *state);
-
-  SplashCoord matrix[6];
-  SplashPattern *strokePattern;
-  SplashPattern *fillPattern;
-  SplashScreen *screen;
-  SplashBlendFunc blendFunc;
-  SplashCoord strokeAlpha;
-  SplashCoord fillAlpha;
-  GBool multiplyPatternAlpha;
-  SplashCoord patternStrokeAlpha;
-  SplashCoord patternFillAlpha;
-  SplashCoord lineWidth;
-  int lineCap;
-  int lineJoin;
-  SplashCoord miterLimit;
-  SplashCoord flatness;
-  SplashCoord *lineDash;
-  int lineDashLength;
-  SplashCoord lineDashPhase;
-  GBool strokeAdjust;
-  SplashClip *clip;
-  SplashBitmap *softMask;
-  GBool deleteSoftMask;
-  GBool inNonIsolatedGroup;
-  GBool fillOverprint;
-  GBool strokeOverprint;
-  int overprintMode;
-  Guchar rgbTransferR[256],
-         rgbTransferG[256],
-         rgbTransferB[256];
-  Guchar grayTransfer[256];
-#if SPLASH_CMYK
-  Guchar cmykTransferC[256],
-         cmykTransferM[256],
-         cmykTransferY[256],
-         cmykTransferK[256];
-  Guchar deviceNTransfer[SPOT_NCOMPS+4][256];
-#endif
-  Guint overprintMask;
-  GBool overprintAdditive;
-
-  SplashState *next;		// used by Splash class
-
-  friend class Splash;
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashT1Font.cc b/source/libs/poppler/poppler-src/splash/SplashT1Font.cc
deleted file mode 100644
index 0fdfaaf51..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashT1Font.cc
+++ /dev/null
@@ -1,309 +0,0 @@
-//========================================================================
-//
-// SplashT1Font.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2007 Albert Astals Cid <aacid@kde.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#if HAVE_T1LIB_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <stdlib.h>
-#include <t1lib.h>
-#include "goo/gmem.h"
-#include "SplashMath.h"
-#include "SplashGlyphBitmap.h"
-#include "SplashPath.h"
-#include "SplashT1FontEngine.h"
-#include "SplashT1FontFile.h"
-#include "SplashT1Font.h"
-
-//------------------------------------------------------------------------
-
-static Guchar bitReverse[256] = {
-  0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
-  0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
-  0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
-  0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
-  0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
-  0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
-  0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
-  0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
-  0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
-  0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
-  0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
-  0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
-  0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
-  0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
-  0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
-  0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
-  0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
-  0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
-  0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
-  0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
-  0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
-  0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
-  0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
-  0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
-  0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
-  0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
-  0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
-  0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
-  0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
-  0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
-  0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
-  0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
-};
-
-//------------------------------------------------------------------------
-// SplashT1Font
-//------------------------------------------------------------------------
-
-SplashT1Font::SplashT1Font(SplashT1FontFile *fontFileA, SplashCoord *matA,
-			   SplashCoord *textMatA):
-  SplashFont(fontFileA, matA, textMatA, fontFileA->engine->aa)
-{
-  T1_TMATRIX matrix;
-  BBox bbox;
-  SplashCoord bbx0, bby0, bbx1, bby1;
-  int x, y;
-
-  t1libID = T1_CopyFont(fontFileA->t1libID);
-  outlineID = -1;
-
-  // compute font size
-  size = (float)splashDist(0, 0, mat[2], mat[3]);
-
-  // transform the four corners of the font bounding box -- the min
-  // and max values form the bounding box of the transformed font
-  bbox = T1_GetFontBBox(t1libID);
-  bbx0 = 0.001 * bbox.llx;
-  bby0 = 0.001 * bbox.lly;
-  bbx1 = 0.001 * bbox.urx;
-  bby1 = 0.001 * bbox.ury;
-  // some fonts are completely broken, so we fake it (with values
-  // large enough that most glyphs should fit)
-  if (bbx0 == 0 && bby0 == 0 && bbx1 == 0 && bby1 == 0) {
-    bbx0 = bby0 = -0.5;
-    bbx1 = bby1 = 1.5;
-  }
-  x = (int)(mat[0] * bbx0 + mat[2] * bby0);
-  xMin = xMax = x;
-  y = (int)(mat[1] * bbx0 + mat[3] * bby0);
-  yMin = yMax = y;
-  x = (int)(mat[0] * bbx0 + mat[2] * bby1);
-  if (x < xMin) {
-    xMin = x;
-  } else if (x > xMax) {
-    xMax = x;
-  }
-  y = (int)(mat[1] * bbx0 + mat[3] * bby1);
-  if (y < yMin) {
-    yMin = y;
-  } else if (y > yMax) {
-    yMax = y;
-  }
-  x = (int)(mat[0] * bbx1 + mat[2] * bby0);
-  if (x < xMin) {
-    xMin = x;
-  } else if (x > xMax) {
-    xMax = x;
-  }
-  y = (int)(mat[1] * bbx1 + mat[3] * bby0);
-  if (y < yMin) {
-    yMin = y;
-  } else if (y > yMax) {
-    yMax = y;
-  }
-  x = (int)(mat[0] * bbx1 + mat[2] * bby1);
-  if (x < xMin) {
-    xMin = x;
-  } else if (x > xMax) {
-    xMax = x;
-  }
-  y = (int)(mat[1] * bbx1 + mat[3] * bby1);
-  if (y < yMin) {
-    yMin = y;
-  } else if (y > yMax) {
-    yMax = y;
-  }
-  // This is a kludge: some buggy PDF generators embed fonts with
-  // zero bounding boxes.
-  if (xMax == xMin) {
-    xMin = 0;
-    xMax = (int)size;
-  }
-  if (yMax == yMin) {
-    yMin = 0;
-    yMax = (int)(1.2 * size);
-  }
-  // Another kludge: an unusually large xMin or yMin coordinate is
-  // probably wrong.
-  if (xMin > 0) {
-    xMin = 0;
-  }
-  if (yMin > 0) {
-    yMin = 0;
-  }
-  // Another kludge: t1lib doesn't correctly handle fonts with
-  // real (non-integer) bounding box coordinates.
-  if (xMax - xMin > 5000) {
-    xMin = 0;
-    xMax = (int)size;
-  }
-  if (yMax - yMin > 5000) {
-    yMin = 0;
-    yMax = (int)(1.2 * size);
-  }
-
-  // transform the font
-  matrix.cxx = (double)mat[0] / size;
-  matrix.cxy = (double)mat[1] / size;
-  matrix.cyx = (double)mat[2] / size;
-  matrix.cyy = (double)mat[3] / size;
-  T1_TransformFont(t1libID, &matrix);
-}
-
-SplashT1Font::~SplashT1Font() {
-  T1_DeleteFont(t1libID);
-  if (outlineID >= 0) {
-    T1_DeleteFont(outlineID);
-  }
-}
-
-GBool SplashT1Font::getGlyph(int c, int xFrac, int yFrac,
-			     SplashGlyphBitmap *bitmap, int x0, int y0, SplashClip *clip, SplashClipResult *clipRes) {
-  return SplashFont::getGlyph(c, 0, 0, bitmap, x0, y0, clip, clipRes);
-}
-
-GBool SplashT1Font::makeGlyph(int c, int xFrac, int yFrac,
-			      SplashGlyphBitmap *bitmap, int x0, int y0, SplashClip *clip, SplashClipResult *clipRes) {
-  GLYPH *glyph;
-  int n, i;
-
-  if (aa) {
-    glyph = T1_AASetChar(t1libID, c, size, NULL);
-  } else {
-    glyph = T1_SetChar(t1libID, c, size, NULL);
-  }
-  if (!glyph) {
-    return gFalse;
-  }
-
-  bitmap->x = -glyph->metrics.leftSideBearing;
-  bitmap->y = glyph->metrics.ascent;
-  bitmap->w = glyph->metrics.rightSideBearing - glyph->metrics.leftSideBearing;
-  bitmap->h = glyph->metrics.ascent - glyph->metrics.descent;
-  bitmap->aa = aa;
-  if (aa) {
-    bitmap->data = (Guchar *)glyph->bits;
-    bitmap->freeData = gFalse;
-  } else {
-    n = bitmap->h * ((bitmap->w + 7) >> 3);
-    bitmap->data = (Guchar *)gmalloc(n);
-    for (i = 0; i < n; ++i) {
-      bitmap->data[i] = bitReverse[glyph->bits[i] & 0xff];
-    }
-    bitmap->freeData = gTrue;
-  }
-
-  *clipRes = clip->testRect(x0 - bitmap->x,
-                            y0 - bitmap->y,
-                            x0 - bitmap->x + bitmap->w - 1,
-                            y0 - bitmap->y + bitmap->h - 1);
-
-  return gTrue;
-}
-
-SplashPath *SplashT1Font::getGlyphPath(int c) {
-  T1_TMATRIX matrix;
-  SplashPath *path;
-  T1_OUTLINE *outline;
-  T1_PATHSEGMENT *seg;
-  T1_BEZIERSEGMENT *bez;
-  int x, y, x1, y1;
-  GBool needClose;
-
-  if (outlineID < 0) {
-    outlineID = T1_CopyFont(((SplashT1FontFile *)fontFile)->t1libID);
-    outlineSize = (float)splashDist(0, 0, textMat[2], textMat[3]);
-    matrix.cxx = (double)textMat[0] / outlineSize;
-    matrix.cxy = (double)textMat[1] / outlineSize;
-    matrix.cyx = (double)textMat[2] / outlineSize;
-    matrix.cyy = (double)textMat[3] / outlineSize;
-    // t1lib doesn't seem to handle small sizes correctly here, so set
-    // the size to 1000, and scale the resulting coordinates later
-    outlineMul = (float)(outlineSize / 65536000.0);
-    outlineSize = 1000;
-    T1_TransformFont(outlineID, &matrix);
-  }
-
-  path = new SplashPath();
-  if ((outline = T1_GetCharOutline(outlineID, c, outlineSize, NULL))) {
-    // NB: t1lib uses integer coordinates here; we keep a running
-    // (x,y) total as integers, so that the final point in the path is
-    // exactly the same as the first point, thus avoiding weird
-    // mitered join glitches
-    x = y = 0;
-    needClose = gFalse;
-    for (seg = outline; seg; seg = seg->link) {
-      switch (seg->type) {
-      case T1_PATHTYPE_MOVE:
-	if (needClose) {
-	  path->close();
-	  needClose = gFalse;
-	}
-	x += seg->dest.x;
-	y += seg->dest.y;
-	path->moveTo(outlineMul * x, -outlineMul * y);
-	break;
-      case T1_PATHTYPE_LINE:
-	x += seg->dest.x;
-	y += seg->dest.y;
-	path->lineTo(outlineMul * x, -outlineMul * y);
-	needClose = gTrue;
-	break;
-      case T1_PATHTYPE_BEZIER:
-	bez = (T1_BEZIERSEGMENT *)seg;
-	x1 = x + bez->dest.x;
-	y1 = y + bez->dest.y;
-	path->curveTo(outlineMul * (x + bez->B.x),
-		      -outlineMul * (y + bez->B.y),
-		      outlineMul * (x + bez->C.x),
-		      -outlineMul * (y + bez->C.y),
-		      outlineMul * x1,
-		      -outlineMul * y1);
-	x = x1;
-	y = y1;
-	needClose = gTrue;
-	break;
-      }
-    }
-    if (needClose) {
-      path->close();
-    }
-    T1_FreeOutline(outline);
-  }
-
-  return path;
-}
-
-#endif // HAVE_T1LIB_H
diff --git a/source/libs/poppler/poppler-src/splash/SplashT1Font.h b/source/libs/poppler/poppler-src/splash/SplashT1Font.h
deleted file mode 100644
index 1dbe66cd7..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashT1Font.h
+++ /dev/null
@@ -1,69 +0,0 @@
-//========================================================================
-//
-// SplashT1Font.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2007 Albert Astals Cid <aacid@kde.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHT1FONT_H
-#define SPLASHT1FONT_H
-
-#if HAVE_T1LIB_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "SplashFont.h"
-
-class SplashT1FontFile;
-
-//------------------------------------------------------------------------
-// SplashT1Font
-//------------------------------------------------------------------------
-
-class SplashT1Font: public SplashFont {
-public:
-
-  SplashT1Font(SplashT1FontFile *fontFileA, SplashCoord *matA,
-	       SplashCoord *textMatA);
-
-  virtual ~SplashT1Font();
-
-  // Munge xFrac and yFrac before calling SplashFont::getGlyph.
-  virtual GBool getGlyph(int c, int xFrac, int yFrac,
-			 SplashGlyphBitmap *bitmap, int x0, int y0, SplashClip *clip, SplashClipResult *clipRes);
-
-  // Rasterize a glyph.  The <xFrac> and <yFrac> values are the same
-  // as described for getGlyph.
-  virtual GBool makeGlyph(int c, int xFrac, int yFrac,
-			  SplashGlyphBitmap *bitmap, int x0, int y0, SplashClip *clip, SplashClipResult *clipRes);
-
-  // Return the path for a glyph.
-  virtual SplashPath *getGlyphPath(int c);
-
-private:
-
-  int t1libID;			// t1lib font ID
-  int outlineID;		// t1lib font ID for glyph outlines
-  float size;
-  float outlineSize;		// size for glyph outlines
-  float outlineMul;
-};
-
-#endif // HAVE_T1LIB_H
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashT1FontEngine.cc b/source/libs/poppler/poppler-src/splash/SplashT1FontEngine.cc
deleted file mode 100644
index fb4b38dae..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashT1FontEngine.cc
+++ /dev/null
@@ -1,138 +0,0 @@
-//========================================================================
-//
-// SplashT1FontEngine.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
-// Copyright (C) 2009 Albert Astals Cid <aacid@kde.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#if HAVE_T1LIB_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <stdlib.h>
-#include <stdio.h>
-#ifdef HAVE_UNISTD_H
-#  include <unistd.h>
-#endif
-#include <t1lib.h>
-#include "goo/GooString.h"
-#include "goo/gfile.h"
-#include "fofi/FoFiType1C.h"
-#include "SplashT1FontFile.h"
-#include "SplashT1FontEngine.h"
-
-#ifdef VMS
-#if (__VMS_VER < 70000000)
-extern "C" int unlink(char *filename);
-#endif
-#endif
-
-//------------------------------------------------------------------------
-
-int SplashT1FontEngine::t1libInitCount = 0;
-
-//------------------------------------------------------------------------
-
-static void fileWrite(void *stream, const char *data, int len) {
-  fwrite(data, 1, len, (FILE *)stream);
-}
-
-//------------------------------------------------------------------------
-// SplashT1FontEngine
-//------------------------------------------------------------------------
-
-SplashT1FontEngine::SplashT1FontEngine(GBool aaA) {
-  aa = aaA;
-}
-
-SplashT1FontEngine *SplashT1FontEngine::init(GBool aaA) {
-  // grayVals[i] = round(i * 255 / 16)
-  static unsigned long grayVals[17] = {
-    0, 16, 32, 48, 64, 80, 96, 112, 128, 143, 159, 175, 191, 207, 223, 239, 255
-  };
-
-  //~ for multithreading: need a mutex here
-  if (t1libInitCount == 0) {
-    T1_SetBitmapPad(8);
-    if (!T1_InitLib(NO_LOGFILE | IGNORE_CONFIGFILE | IGNORE_FONTDATABASE |
-		    T1_NO_AFM)) {
-      return NULL;
-    }
-    if (aaA) {
-      T1_AASetBitsPerPixel(8);
-      T1_AASetLevel(T1_AA_HIGH);
-      T1_AAHSetGrayValues(grayVals);
-    } else {
-      T1_AANSetGrayValues(0, 1);
-    }
-  }
-  ++t1libInitCount;
-
-  return new SplashT1FontEngine(aaA);
-}
-
-SplashT1FontEngine::~SplashT1FontEngine() {
-  //~ for multithreading: need a mutex here
-  if (--t1libInitCount == 0) {
-    T1_CloseLib();
-  }
-}
-
-SplashFontFile *SplashT1FontEngine::loadType1Font(SplashFontFileID *idA,
-						  SplashFontSrc *src,
-						  const char **enc) {
-  return SplashT1FontFile::loadType1Font(this, idA, src, enc);
-}
-
-SplashFontFile *SplashT1FontEngine::loadType1CFont(SplashFontFileID *idA,
-						   SplashFontSrc *src,
-						   const char **enc) {
-  FoFiType1C *ff;
-  GooString *tmpFileName;
-  FILE *tmpFile;
-  SplashFontFile *ret;
-
-  SplashFontSrc *newsrc;
-  
-  if (src->isFile)
-    ff = FoFiType1C::load(src->fileName->getCString());
-  else
-    ff = FoFiType1C::make(src->buf, src->bufLen);
-  if (! ff)
-    return NULL;
-
-  tmpFileName = NULL;
-  if (!openTempFile(&tmpFileName, &tmpFile, "wb")) {
-    delete ff;
-    return NULL;
-  }
-  ff->convertToType1(NULL, NULL, gTrue, &fileWrite, tmpFile);
-  delete ff;
-  fclose(tmpFile);
-  newsrc = new SplashFontSrc;
-  newsrc->setFile(tmpFileName, gTrue);
-  delete tmpFileName;
-  ret = SplashT1FontFile::loadType1Font(this, idA, newsrc, enc);
-  newsrc->unref();
-  return ret;
-}
-
-#endif // HAVE_T1LIB_H
diff --git a/source/libs/poppler/poppler-src/splash/SplashT1FontEngine.h b/source/libs/poppler/poppler-src/splash/SplashT1FontEngine.h
deleted file mode 100644
index 268a01479..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashT1FontEngine.h
+++ /dev/null
@@ -1,50 +0,0 @@
-//========================================================================
-//
-// SplashT1FontEngine.h
-//
-//========================================================================
-
-#ifndef SPLASHT1FONTENGINE_H
-#define SPLASHT1FONTENGINE_H
-
-#if HAVE_T1LIB_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "goo/gtypes.h"
-
-class SplashFontFile;
-class SplashFontFileID;
-class SplashFontSrc;
-
-//------------------------------------------------------------------------
-// SplashT1FontEngine
-//------------------------------------------------------------------------
-
-class SplashT1FontEngine {
-public:
-
-  static SplashT1FontEngine *init(GBool aaA);
-
-  ~SplashT1FontEngine();
-
-  // Load fonts.
-  SplashFontFile *loadType1Font(SplashFontFileID *idA, SplashFontSrc *src, const char **enc);
-  SplashFontFile *loadType1CFont(SplashFontFileID *idA, SplashFontSrc *src, const char **enc);
-
-private:
-
-  SplashT1FontEngine(GBool aaA);
-
-  static int t1libInitCount;
-  GBool aa;
-
-  friend class SplashT1FontFile;
-  friend class SplashT1Font;
-};
-
-#endif // HAVE_T1LIB_H
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashT1FontFile.cc b/source/libs/poppler/poppler-src/splash/SplashT1FontFile.cc
deleted file mode 100644
index 1832a916d..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashT1FontFile.cc
+++ /dev/null
@@ -1,134 +0,0 @@
-//========================================================================
-//
-// SplashT1FontFile.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
-// Copyright (C) 2009 Albert Astals Cid <aacid@kde.org>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#if HAVE_T1LIB_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <string.h>
-#include <t1lib.h>
-#include "goo/GooString.h"
-#include "goo/gfile.h"
-#include "goo/gmem.h"
-#include "SplashT1FontEngine.h"
-#include "SplashT1Font.h"
-#include "SplashT1FontFile.h"
-
-//------------------------------------------------------------------------
-// SplashT1FontFile
-//------------------------------------------------------------------------
-
-SplashFontFile *SplashT1FontFile::loadType1Font(SplashT1FontEngine *engineA,
-						SplashFontFileID *idA,
-						SplashFontSrc *src,
-						const char **encA) {
-  int t1libIDA;
-  const char **encTmp;
-  char *encStrTmp;
-  int encStrSize;
-  char *encPtr;
-  int i;
-
-  GooString *fileNameA;
-  SplashFontSrc *newsrc = NULL;
-  SplashFontFile *ff;
-
-  if (! src->isFile) {
-    GooString *tmpFileName;
-    FILE *tmpFile;
-    if (!openTempFile(&tmpFileName, &tmpFile, "wb"))
-      return NULL;
-    fwrite(src->buf, 1, src->bufLen, tmpFile);
-    fclose(tmpFile);
-    newsrc = new SplashFontSrc;
-    newsrc->setFile(tmpFileName, gTrue);
-    src = newsrc;
-    delete tmpFileName;
-  }
-  fileNameA = src->fileName;
-  // load the font file
-  if ((t1libIDA = T1_AddFont(fileNameA->getCString())) < 0) {
-    delete newsrc;
-    return NULL;
-  }
-  T1_LoadFont(t1libIDA);
-
-  // reencode it
-  encStrSize = 0;
-  for (i = 0; i < 256; ++i) {
-    if (encA[i]) {
-      encStrSize += strlen(encA[i]) + 1;
-    }
-  }
-  encTmp = (const char **)gmallocn(257, sizeof(char *));
-  encStrTmp = (char *)gmallocn(encStrSize, sizeof(char));
-  encPtr = encStrTmp;
-  for (i = 0; i < 256; ++i) {
-    if (encA[i]) {
-      strcpy(encPtr, encA[i]);
-      encTmp[i] = encPtr;
-      encPtr += strlen(encPtr) + 1;
-    } else {
-      encTmp[i] = ".notdef";
-    }
-  }
-  encTmp[256] = "custom";
-  T1_ReencodeFont(t1libIDA, (char **)encTmp);
-
-  ff = new SplashT1FontFile(engineA, idA, src,
-			      t1libIDA, encTmp, encStrTmp);
-  if (newsrc)
-    newsrc->unref();
-  return ff;
-}
-
-SplashT1FontFile::SplashT1FontFile(SplashT1FontEngine *engineA,
-				   SplashFontFileID *idA,
-				   SplashFontSrc *srcA,
-				   int t1libIDA, const char **encA, char *encStrA):
-  SplashFontFile(idA, srcA)
-{
-  engine = engineA;
-  t1libID = t1libIDA;
-  enc = encA;
-  encStr = encStrA;
-}
-
-SplashT1FontFile::~SplashT1FontFile() {
-  gfree(encStr);
-  gfree(enc);
-  T1_DeleteFont(t1libID);
-}
-
-SplashFont *SplashT1FontFile::makeFont(SplashCoord *mat,
-				       SplashCoord *textMat) {
-  SplashFont *font;
-
-  font = new SplashT1Font(this, mat, textMat);
-  font->initCache();
-  return font;
-}
-
-#endif // HAVE_T1LIB_H
diff --git a/source/libs/poppler/poppler-src/splash/SplashT1FontFile.h b/source/libs/poppler/poppler-src/splash/SplashT1FontFile.h
deleted file mode 100644
index c094b6d8b..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashT1FontFile.h
+++ /dev/null
@@ -1,70 +0,0 @@
-//========================================================================
-//
-// SplashT1FontFile.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHT1FONTFILE_H
-#define SPLASHT1FONTFILE_H
-
-#if HAVE_T1LIB_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "SplashFontFile.h"
-
-class SplashT1FontEngine;
-
-//------------------------------------------------------------------------
-// SplashT1FontFile
-//------------------------------------------------------------------------
-
-class SplashT1FontFile: public SplashFontFile {
-public:
-
-  static SplashFontFile *loadType1Font(SplashT1FontEngine *engineA,
-				       SplashFontFileID *idA,
-				       SplashFontSrc *src,
-				       const char **encA);
-
-  virtual ~SplashT1FontFile();
-
-  // Create a new SplashT1Font, i.e., a scaled instance of this font
-  // file.
-  virtual SplashFont *makeFont(SplashCoord *mat,
-			       SplashCoord *textMat);
-
-private:
-
-  SplashT1FontFile(SplashT1FontEngine *engineA,
-		   SplashFontFileID *idA,
-		   SplashFontSrc *src,
-		   int t1libIDA, const char **encA, char *encStrA);
-
-  SplashT1FontEngine *engine;
-  int t1libID;			// t1lib font ID
-  const char **enc;
-  char *encStr;
-
-  friend class SplashT1Font;
-};
-
-#endif // HAVE_T1LIB_H
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashXPath.cc b/source/libs/poppler/poppler-src/splash/SplashXPath.cc
deleted file mode 100644
index 27106ee3d..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashXPath.cc
+++ /dev/null
@@ -1,472 +0,0 @@
-//========================================================================
-//
-// SplashXPath.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2010 Paweł Wiejacha <pawel.wiejacha@gmail.com>
-// Copyright (C) 2010, 2011 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <algorithm>
-#include "goo/gmem.h"
-#include "SplashMath.h"
-#include "SplashPath.h"
-#include "SplashXPath.h"
-
-//------------------------------------------------------------------------
-
-struct SplashXPathPoint {
-  SplashCoord x, y;
-};
-
-struct SplashXPathAdjust {
-  int firstPt, lastPt;		// range of points
-  GBool vert;			// vertical or horizontal hint
-  SplashCoord x0a, x0b,		// hint boundaries
-              xma, xmb,
-              x1a, x1b;
-  SplashCoord x0, x1, xm;	// adjusted coordinates
-};
-
-//------------------------------------------------------------------------
-
-// Transform a point from user space to device space.
-inline void SplashXPath::transform(SplashCoord *matrix,
-				   SplashCoord xi, SplashCoord yi,
-				   SplashCoord *xo, SplashCoord *yo) {
-  //                          [ m[0] m[1] 0 ]
-  // [xo yo 1] = [xi yi 1] *  [ m[2] m[3] 0 ]
-  //                          [ m[4] m[5] 1 ]
-  *xo = xi * matrix[0] + yi * matrix[2] + matrix[4];
-  *yo = xi * matrix[1] + yi * matrix[3] + matrix[5];
-}
-
-//------------------------------------------------------------------------
-// SplashXPath
-//------------------------------------------------------------------------
-
-SplashXPath::SplashXPath(SplashPath *path, SplashCoord *matrix,
-			 SplashCoord flatness, GBool closeSubpaths,
-			 GBool adjustLines, int linePosI) {
-  SplashPathHint *hint;
-  SplashXPathPoint *pts;
-  SplashXPathAdjust *adjusts, *adjust;
-  SplashCoord x0, y0, x1, y1, x2, y2, x3, y3, xsp, ysp;
-  SplashCoord adj0, adj1;
-  int curSubpath, i, j;
-
-  // transform the points
-  pts = (SplashXPathPoint *)gmallocn(path->length, sizeof(SplashXPathPoint));
-  for (i = 0; i < path->length; ++i) {
-    transform(matrix, path->pts[i].x, path->pts[i].y, &pts[i].x, &pts[i].y);
-  }
-
-  // set up the stroke adjustment hints
-  if (path->hints) {
-    adjusts = (SplashXPathAdjust *)gmallocn(path->hintsLength,
-					    sizeof(SplashXPathAdjust));
-    for (i = 0; i < path->hintsLength; ++i) {
-      hint = &path->hints[i];
-      if (hint->ctrl0 + 1 >= path->length || hint->ctrl1 + 1 >= path->length) {
-	gfree(adjusts);
-	adjusts = NULL;
-	break;
-      }
-      x0 = pts[hint->ctrl0    ].x;    y0 = pts[hint->ctrl0    ].y;
-      x1 = pts[hint->ctrl0 + 1].x;    y1 = pts[hint->ctrl0 + 1].y;
-      x2 = pts[hint->ctrl1    ].x;    y2 = pts[hint->ctrl1    ].y;
-      x3 = pts[hint->ctrl1 + 1].x;    y3 = pts[hint->ctrl1 + 1].y;
-      if (x0 == x1 && x2 == x3) {
-	adjusts[i].vert = gTrue;
-	adj0 = x0;
-	adj1 = x2;
-      } else if (y0 == y1 && y2 == y3) {
-	adjusts[i].vert = gFalse;
-	adj0 = y0;
-	adj1 = y2;
-      } else {
-	gfree(adjusts);
-	adjusts = NULL;
-	break;
-      }
-      if (adj0 > adj1) {
-	x0 = adj0;
-	adj0 = adj1;
-	adj1 = x0;
-      }
-      adjusts[i].x0a = adj0 - 0.01;
-      adjusts[i].x0b = adj0 + 0.01;
-      adjusts[i].xma = (SplashCoord)0.5 * (adj0 + adj1) - 0.01;
-      adjusts[i].xmb = (SplashCoord)0.5 * (adj0 + adj1) + 0.01;
-      adjusts[i].x1a = adj1 - 0.01;
-      adjusts[i].x1b = adj1 + 0.01;
-      // rounding both edge coordinates can result in lines of
-      // different widths (e.g., adj=10.1, adj1=11.3 --> x0=10, x1=11;
-      // adj0=10.4, adj1=11.6 --> x0=10, x1=12), but it has the
-      // benefit of making adjacent strokes/fills line up without any
-      // gaps between them
-      x0 = splashRound(adj0);
-      x1 = splashRound(adj1);
-      if (x1 == x0) {
-        if (adjustLines) {
-          // the adjustment moves thin lines (clip rectangle with
-          // empty width or height) out of clip area, here we need
-          // a special adjustment:
-          x0 = linePosI;
-          x1 = x0 + 1;
-        } else {
-          x1 = x1 + 1;
-        }
-      }
-      adjusts[i].x0 = (SplashCoord)x0;
-      adjusts[i].x1 = (SplashCoord)x1 - 0.01;
-      adjusts[i].xm = (SplashCoord)0.5 * (adjusts[i].x0 + adjusts[i].x1);
-      adjusts[i].firstPt = hint->firstPt;
-      adjusts[i].lastPt = hint->lastPt;
-    }
-
-  } else {
-    adjusts = NULL;
-  }
-
-  // perform stroke adjustment
-  if (adjusts) {
-    for (i = 0, adjust = adjusts; i < path->hintsLength; ++i, ++adjust) {
-      for (j = adjust->firstPt; j <= adjust->lastPt; ++j) {
-	strokeAdjust(adjust, &pts[j].x, &pts[j].y);
-      }
-    }
-    gfree(adjusts);
-  }
-
-  segs = NULL;
-  length = size = 0;
-
-  x0 = y0 = xsp = ysp = 0; // make gcc happy
-  adj0 = adj1 = 0; // make gcc happy
-  curSubpath = 0;
-  i = 0;
-  while (i < path->length) {
-
-    // first point in subpath - skip it
-    if (path->flags[i] & splashPathFirst) {
-      x0 = pts[i].x;
-      y0 = pts[i].y;
-      xsp = x0;
-      ysp = y0;
-      curSubpath = i;
-      ++i;
-
-    } else {
-
-      // curve segment
-      if (path->flags[i] & splashPathCurve) {
-	x1 = pts[i].x;
-	y1 = pts[i].y;
-	x2 = pts[i+1].x;
-	y2 = pts[i+1].y;
-	x3 = pts[i+2].x;
-	y3 = pts[i+2].y;
-	addCurve(x0, y0, x1, y1, x2, y2, x3, y3,
-		 flatness,
-		 (path->flags[i-1] & splashPathFirst),
-		 (path->flags[i+2] & splashPathLast),
-		 !closeSubpaths &&
-		   (path->flags[i-1] & splashPathFirst) &&
-		   !(path->flags[i-1] & splashPathClosed),
-		 !closeSubpaths &&
-		   (path->flags[i+2] & splashPathLast) &&
-		   !(path->flags[i+2] & splashPathClosed));
-	x0 = x3;
-	y0 = y3;
-	i += 3;
-
-      // line segment
-      } else {
-	x1 = pts[i].x;
-	y1 = pts[i].y;
-	addSegment(x0, y0, x1, y1);
-	x0 = x1;
-	y0 = y1;
-	++i;
-      }
-
-      // close a subpath
-      if (closeSubpaths &&
-	  (path->flags[i-1] & splashPathLast) &&
-	  (pts[i-1].x != pts[curSubpath].x ||
-	   pts[i-1].y != pts[curSubpath].y)) {
-	addSegment(x0, y0, xsp, ysp);
-      }
-    }
-  }
-
-  gfree(pts);
-}
-
-// Apply the stroke adjust hints to point <pt>: (*<xp>, *<yp>).
-void SplashXPath::strokeAdjust(SplashXPathAdjust *adjust,
-			       SplashCoord *xp, SplashCoord *yp) {
-  SplashCoord x, y;
-
-  if (adjust->vert) {
-    x = *xp;
-    if (x > adjust->x0a && x < adjust->x0b) {
-      *xp = adjust->x0;
-    } else if (x > adjust->xma && x < adjust->xmb) {
-      *xp = adjust->xm;
-    } else if (x > adjust->x1a && x < adjust->x1b) {
-      *xp = adjust->x1;
-    }
-  } else {
-    y = *yp;
-    if (y > adjust->x0a && y < adjust->x0b) {
-      *yp = adjust->x0;
-    } else if (y > adjust->xma && y < adjust->xmb) {
-      *yp = adjust->xm;
-    } else if (y > adjust->x1a && y < adjust->x1b) {
-      *yp = adjust->x1;
-    }
-  }
-}
-
-SplashXPath::SplashXPath(SplashXPath *xPath) {
-  length = xPath->length;
-  size = xPath->size;
-  segs = (SplashXPathSeg *)gmallocn(size, sizeof(SplashXPathSeg));
-  memcpy(segs, xPath->segs, length * sizeof(SplashXPathSeg));
-}
-
-SplashXPath::~SplashXPath() {
-  gfree(segs);
-}
-
-// Add space for <nSegs> more segments
-void SplashXPath::grow(int nSegs) {
-  if (length + nSegs > size) {
-    if (size == 0) {
-      size = 32;
-    }
-    while (size < length + nSegs) {
-      size *= 2;
-    }
-    segs = (SplashXPathSeg *)greallocn(segs, size, sizeof(SplashXPathSeg));
-  }
-}
-
-void SplashXPath::addCurve(SplashCoord x0, SplashCoord y0,
-			   SplashCoord x1, SplashCoord y1,
-			   SplashCoord x2, SplashCoord y2,
-			   SplashCoord x3, SplashCoord y3,
-			   SplashCoord flatness,
-			   GBool first, GBool last, GBool end0, GBool end1) {
-  SplashCoord *cx = new SplashCoord[(splashMaxCurveSplits + 1) * 3];
-  SplashCoord *cy = new SplashCoord[(splashMaxCurveSplits + 1) * 3];
-  int *cNext = new int[splashMaxCurveSplits + 1];
-  SplashCoord xl0, xl1, xl2, xr0, xr1, xr2, xr3, xx1, xx2, xh;
-  SplashCoord yl0, yl1, yl2, yr0, yr1, yr2, yr3, yy1, yy2, yh;
-  SplashCoord dx, dy, mx, my, d1, d2, flatness2;
-  int p1, p2, p3;
-
-#if USE_FIXEDPOINT
-  flatness2 = flatness;
-#else
-  flatness2 = flatness * flatness;
-#endif
-
-  // initial segment
-  p1 = 0;
-  p2 = splashMaxCurveSplits;
-
-  *(cx + p1 * 3 + 0) = x0;
-  *(cx + p1 * 3 + 1) = x1;
-  *(cx + p1 * 3 + 2) = x2;
-  *(cx + p2 * 3 + 0) = x3;
-
-  *(cy + p1 * 3 + 0) = y0;
-  *(cy + p1 * 3 + 1) = y1;
-  *(cy + p1 * 3 + 2) = y2;
-  *(cy + p2 * 3 + 0) = y3;
-
-  *(cNext + p1) = p2;
-
-  while (p1 < splashMaxCurveSplits) {
-
-    // get the next segment
-    xl0 = *(cx + p1 * 3 + 0);
-    xx1 = *(cx + p1 * 3 + 1);
-    xx2 = *(cx + p1 * 3 + 2);
-
-    yl0 = *(cy + p1 * 3 + 0);
-    yy1 = *(cy + p1 * 3 + 1);
-    yy2 = *(cy + p1 * 3 + 2);
-
-    p2 = *(cNext + p1);
-
-    xr3 = *(cx + p2 * 3 + 0);
-    yr3 = *(cy + p2 * 3 + 0);
-
-    // compute the distances from the control points to the
-    // midpoint of the straight line (this is a bit of a hack, but
-    // it's much faster than computing the actual distances to the
-    // line)
-    mx = (xl0 + xr3) * 0.5;
-    my = (yl0 + yr3) * 0.5;
-#if USE_FIXEDPOINT
-    d1 = splashDist(xx1, yy1, mx, my);
-    d2 = splashDist(xx2, yy2, mx, my);
-#else
-    dx = xx1 - mx;
-    dy = yy1 - my;
-    d1 = dx*dx + dy*dy;
-    dx = xx2 - mx;
-    dy = yy2 - my;
-    d2 = dx*dx + dy*dy;
-#endif    
-
-    // if the curve is flat enough, or no more subdivisions are
-    // allowed, add the straight line segment
-    if (p2 - p1 == 1 || (d1 <= flatness2 && d2 <= flatness2)) {
-      addSegment(xl0, yl0, xr3, yr3);
-      p1 = p2;
-
-    // otherwise, subdivide the curve
-    } else {
-      xl1 = (xl0 + xx1) * 0.5;
-      yl1 = (yl0 + yy1) * 0.5;
-      xh = (xx1 + xx2) * 0.5;
-      yh = (yy1 + yy2) * 0.5;
-      xl2 = (xl1 + xh) * 0.5;
-      yl2 = (yl1 + yh) * 0.5;
-      xr2 = (xx2 + xr3) * 0.5;
-      yr2 = (yy2 + yr3) * 0.5;
-      xr1 = (xh + xr2) * 0.5;
-      yr1 = (yh + yr2) * 0.5;
-      xr0 = (xl2 + xr1) * 0.5;
-      yr0 = (yl2 + yr1) * 0.5;
-      // add the new subdivision points
-      p3 = (p1 + p2) / 2;
-
-      *(cx + p1 * 3 + 1) = xl1;
-      *(cx + p1 * 3 + 2) = xl2;
-
-      *(cy + p1 * 3 + 1) = yl1;
-      *(cy + p1 * 3 + 2) = yl2;
-
-      *(cNext + p1) = p3;
-
-      *(cx + p3 * 3 + 0) = xr0;
-      *(cx + p3 * 3 + 1) = xr1;
-      *(cx + p3 * 3 + 2) = xr2;
-
-      *(cy + p3 * 3 + 0) = yr0;
-      *(cy + p3 * 3 + 1) = yr1;
-      *(cy + p3 * 3 + 2) = yr2;
-
-      *(cNext + p3) = p2;
-    }
-  }
-
-  delete [] cx;
-  delete [] cy;
-  delete [] cNext;
-}
-
-void SplashXPath::addSegment(SplashCoord x0, SplashCoord y0,
-			     SplashCoord x1, SplashCoord y1) {
-  grow(1);
-  segs[length].x0 = x0;
-  segs[length].y0 = y0;
-  segs[length].x1 = x1;
-  segs[length].y1 = y1;
-  segs[length].flags = 0;
-  if (y1 == y0) {
-    segs[length].dxdy = segs[length].dydx = 0;
-    segs[length].flags |= splashXPathHoriz;
-    if (x1 == x0) {
-      segs[length].flags |= splashXPathVert;
-    }
-  } else if (x1 == x0) {
-    segs[length].dxdy = segs[length].dydx = 0;
-    segs[length].flags |= splashXPathVert;
-  } else {
-#if USE_FIXEDPOINT
-    if (FixedPoint::divCheck(x1 - x0, y1 - y0, &segs[length].dxdy)) {
-      segs[length].dydx = (SplashCoord)1 / segs[length].dxdy;
-    } else {
-      segs[length].dxdy = segs[length].dydx = 0;
-      if (splashAbs(x1 - x0) > splashAbs(y1 - y0)) {
-	segs[length].flags |= splashXPathHoriz;
-      } else {
-	segs[length].flags |= splashXPathVert;
-      }
-    }
-#else
-    segs[length].dxdy = (x1 - x0) / (y1 - y0);
-    segs[length].dydx = (SplashCoord)1 / segs[length].dxdy;
-#endif
-  }
-  if (y0 > y1) {
-    segs[length].flags |= splashXPathFlip;
-  }
-  ++length;
-}
-
-struct cmpXPathSegsFunctor {
-  bool operator()(const SplashXPathSeg &seg0, const SplashXPathSeg &seg1) {
-    SplashCoord x0, y0, x1, y1;
-
-    if (seg0.flags & splashXPathFlip) {
-      x0 = seg0.x1;
-      y0 = seg0.y1;
-    } else {
-      x0 = seg0.x0;
-      y0 = seg0.y0;
-    }
-    if (seg1.flags & splashXPathFlip) {
-      x1 = seg1.x1;
-      y1 = seg1.y1;
-    } else {
-      x1 = seg1.x0;
-      y1 = seg1.y0;
-    }
-    return (y0 != y1) ? (y0 < y1) : (x0 < x1);
-  }
-};
-
-void SplashXPath::aaScale() {
-  SplashXPathSeg *seg;
-  int i;
-
-  for (i = 0, seg = segs; i < length; ++i, ++seg) {
-    seg->x0 *= splashAASize;
-    seg->y0 *= splashAASize;
-    seg->x1 *= splashAASize;
-    seg->y1 *= splashAASize;
-  }
-}
-
-void SplashXPath::sort() {
-  std::sort(segs, segs + length, cmpXPathSegsFunctor());
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashXPath.h b/source/libs/poppler/poppler-src/splash/SplashXPath.h
deleted file mode 100644
index 1c7040daa..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashXPath.h
+++ /dev/null
@@ -1,107 +0,0 @@
-//========================================================================
-//
-// SplashXPath.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHXPATH_H
-#define SPLASHXPATH_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "SplashTypes.h"
-
-class SplashPath;
-struct SplashXPathAdjust;
-
-//------------------------------------------------------------------------
-
-#define splashMaxCurveSplits (1 << 10)
-
-//------------------------------------------------------------------------
-// SplashXPathSeg
-//------------------------------------------------------------------------
-
-struct SplashXPathSeg {
-  SplashCoord x0, y0;		// first endpoint
-  SplashCoord x1, y1;		// second endpoint
-  SplashCoord dxdy;		// slope: delta-x / delta-y
-  SplashCoord dydx;		// slope: delta-y / delta-x
-  Guint flags;
-};
-
-#define splashXPathHoriz   0x01 // segment is vertical (y0 == y1)
-				//   (dxdy is undef)
-#define splashXPathVert    0x02 // segment is horizontal (x0 == x1)
-				//   (dydx is undef)
-#define splashXPathFlip	   0x04	// y0 > y1
-
-//------------------------------------------------------------------------
-// SplashXPath
-//------------------------------------------------------------------------
-
-class SplashXPath {
-public:
-
-  // Expands (converts to segments) and flattens (converts curves to
-  // lines) <path>.  Transforms all points from user space to device
-  // space, via <matrix>.  If <closeSubpaths> is true, closes all open
-  // subpaths.
-  SplashXPath(SplashPath *path, SplashCoord *matrix,
-	      SplashCoord flatness, GBool closeSubpaths,
-	      GBool adjustLines = gFalse, int linePosI = 0);
-
-  // Copy an expanded path.
-  SplashXPath *copy() { return new SplashXPath(this); }
-
-  ~SplashXPath();
-
-  // Multiply all coordinates by splashAASize, in preparation for
-  // anti-aliased rendering.
-  void aaScale();
-
-  // Sort by upper coordinate (lower y), in y-major order.
-  void sort();
-
-protected:
-
-  SplashXPath(SplashXPath *xPath);
-  void transform(SplashCoord *matrix, SplashCoord xi, SplashCoord yi,
-		 SplashCoord *xo, SplashCoord *yo);
-  void strokeAdjust(SplashXPathAdjust *adjust,
-		    SplashCoord *xp, SplashCoord *yp);
-  void grow(int nSegs);
-  void addCurve(SplashCoord x0, SplashCoord y0,
-		SplashCoord x1, SplashCoord y1,
-		SplashCoord x2, SplashCoord y2,
-		SplashCoord x3, SplashCoord y3,
-		SplashCoord flatness,
-		GBool first, GBool last, GBool end0, GBool end1);
-  void addSegment(SplashCoord x0, SplashCoord y0,
-		  SplashCoord x1, SplashCoord y1);
-
-  SplashXPathSeg *segs;
-  int length, size;		// length and size of segs array
-
-  friend class SplashXPathScanner;
-  friend class SplashClip;
-  friend class Splash;
-};
-
-#endif
diff --git a/source/libs/poppler/poppler-src/splash/SplashXPathScanner.cc b/source/libs/poppler/poppler-src/splash/SplashXPathScanner.cc
deleted file mode 100644
index ac47881cb..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashXPathScanner.cc
+++ /dev/null
@@ -1,544 +0,0 @@
-//========================================================================
-//
-// SplashXPathScanner.cc
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2008, 2010, 2014 Albert Astals Cid <aacid@kde.org>
-// Copyright (C) 2010 Paweł Wiejacha <pawel.wiejacha@gmail.com>
-// Copyright (C) 2013, 2014 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#include <config.h>
-
-#ifdef USE_GCC_PRAGMAS
-#pragma implementation
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <algorithm>
-#include "goo/gmem.h"
-#include "SplashMath.h"
-#include "SplashXPath.h"
-#include "SplashBitmap.h"
-#include "SplashXPathScanner.h"
-
-//------------------------------------------------------------------------
-
-struct SplashIntersect {
-  int y;
-  int x0, x1;			// intersection of segment with [y, y+1)
-  int count;			// EO/NZWN counter increment
-};
-
-struct cmpIntersectFunctor {
-  bool operator()(const SplashIntersect &i0, const SplashIntersect &i1) {
-    return (i0.y != i1.y) ? (i0.y < i1.y) : (i0.x0 < i1.x0);
-  }
-};
-
-//------------------------------------------------------------------------
-// SplashXPathScanner
-//------------------------------------------------------------------------
-
-SplashXPathScanner::SplashXPathScanner(SplashXPath *xPathA, GBool eoA,
-				       int clipYMin, int clipYMax) {
-  SplashXPathSeg *seg;
-  SplashCoord xMinFP, yMinFP, xMaxFP, yMaxFP;
-  int i;
-
-  xPath = xPathA;
-  eo = eoA;
-  partialClip = gFalse;
-
-  // compute the bbox
-  if (xPath->length == 0) {
-    xMin = yMin = 1;
-    xMax = yMax = 0;
-  } else {
-    seg = &xPath->segs[0];
-    if (seg->x0 <= seg->x1) {
-      xMinFP = seg->x0;
-      xMaxFP = seg->x1;
-    } else {
-      xMinFP = seg->x1;
-      xMaxFP = seg->x0;
-    }
-    if (seg->flags & splashXPathFlip) {
-      yMinFP = seg->y1;
-      yMaxFP = seg->y0;
-    } else {
-      yMinFP = seg->y0;
-      yMaxFP = seg->y1;
-    }
-    for (i = 1; i < xPath->length; ++i) {
-      seg = &xPath->segs[i];
-      if (seg->x0 < xMinFP) {
-	xMinFP = seg->x0;
-      } else if (seg->x0 > xMaxFP) {
-	xMaxFP = seg->x0;
-      }
-      if (seg->x1 < xMinFP) {
-	xMinFP = seg->x1;
-      } else if (seg->x1 > xMaxFP) {
-	xMaxFP = seg->x1;
-      }
-      if (seg->flags & splashXPathFlip) {
-	if (seg->y0 > yMaxFP) {
-	  yMaxFP = seg->y0;
-	}
-      } else {
-	if (seg->y1 > yMaxFP) {
-	  yMaxFP = seg->y1;
-	}
-      }
-    }
-    xMin = splashFloor(xMinFP);
-    xMax = splashFloor(xMaxFP);
-    yMin = splashFloor(yMinFP);
-    yMax = splashFloor(yMaxFP);
-    if (clipYMin > yMin) {
-      yMin = clipYMin;
-      partialClip = gTrue;
-    }
-    if (clipYMax < yMax) {
-      yMax = clipYMax;
-      partialClip = gTrue;
-    }
-  }
-
-  allInter = NULL;
-  inter = NULL;
-  computeIntersections();
-  interY = yMin - 1;
-}
-
-SplashXPathScanner::~SplashXPathScanner() {
-  gfree(inter);
-  gfree(allInter);
-}
-
-void SplashXPathScanner::getBBoxAA(int *xMinA, int *yMinA,
-				   int *xMaxA, int *yMaxA) {
-  *xMinA = xMin / splashAASize;
-  *yMinA = yMin / splashAASize;
-  *xMaxA = xMax / splashAASize;
-  *yMaxA = yMax / splashAASize;
-}
-
-void SplashXPathScanner::getSpanBounds(int y, int *spanXMin, int *spanXMax) {
-  int interBegin, interEnd, xx, i;
-
-  if (y < yMin || y > yMax) {
-    interBegin = interEnd = 0;
-  } else {
-    interBegin = inter[y - yMin];
-    interEnd = inter[y - yMin + 1];
-  }
-  if (interBegin < interEnd) {
-    *spanXMin = allInter[interBegin].x0;
-    xx = allInter[interBegin].x1;
-    for (i = interBegin + 1; i < interEnd; ++i) {
-      if (allInter[i].x1 > xx) {
-	xx = allInter[i].x1;
-      }
-    }
-    *spanXMax = xx;
-  } else {
-    *spanXMin = xMax + 1;
-    *spanXMax = xMax;
-  }
-}
-
-GBool SplashXPathScanner::test(int x, int y) {
-  int interBegin, interEnd, count, i;
-
-  if (y < yMin || y > yMax) {
-    return gFalse;
-  }
-  interBegin = inter[y - yMin];
-  interEnd = inter[y - yMin + 1];
-  count = 0;
-  for (i = interBegin; i < interEnd && allInter[i].x0 <= x; ++i) {
-    if (x <= allInter[i].x1) {
-      return gTrue;
-    }
-    count += allInter[i].count;
-  }
-  return eo ? (count & 1) : (count != 0);
-}
-
-GBool SplashXPathScanner::testSpan(int x0, int x1, int y) {
-  int interBegin, interEnd, count, xx1, i;
-
-  if (y < yMin || y > yMax) {
-    return gFalse;
-  }
-  interBegin = inter[y - yMin];
-  interEnd = inter[y - yMin + 1];
-  count = 0;
-  for (i = interBegin; i < interEnd && allInter[i].x1 < x0; ++i) {
-    count += allInter[i].count;
-  }
-
-  // invariant: the subspan [x0,xx1] is inside the path
-  xx1 = x0 - 1;
-  while (xx1 < x1) {
-    if (i >= interEnd) {
-      return gFalse;
-    }
-    if (allInter[i].x0 > xx1 + 1 &&
-	!(eo ? (count & 1) : (count != 0))) {
-      return gFalse;
-    }
-    if (allInter[i].x1 > xx1) {
-      xx1 = allInter[i].x1;
-    }
-    count += allInter[i].count;
-    ++i;
-  }
-
-  return gTrue;
-}
-
-GBool SplashXPathScanner::getNextSpan(int y, int *x0, int *x1) {
-  int interEnd, xx0, xx1;
-
-  if (y < yMin || y > yMax) {
-    return gFalse;
-  }
-  if (interY != y) {
-    interY = y;
-    interIdx = inter[y - yMin];
-    interCount = 0;
-  }
-  interEnd = inter[y - yMin + 1];
-  if (interIdx >= interEnd) {
-    return gFalse;
-  }
-  xx0 = allInter[interIdx].x0;
-  xx1 = allInter[interIdx].x1;
-  interCount += allInter[interIdx].count;
-  ++interIdx;
-  while (interIdx < interEnd &&
-	 (allInter[interIdx].x0 <= xx1 ||
-	  (eo ? (interCount & 1) : (interCount != 0)))) {
-    if (allInter[interIdx].x1 > xx1) {
-      xx1 = allInter[interIdx].x1;
-    }
-    interCount += allInter[interIdx].count;
-    ++interIdx;
-  }
-  *x0 = xx0;
-  *x1 = xx1;
-  return gTrue;
-}
-
-void SplashXPathScanner::computeIntersections() {
-  SplashXPathSeg *seg;
-  SplashCoord segXMin, segXMax, segYMin, segYMax, xx0, xx1;
-  int x, y, y0, y1, i;
-
-  if (yMin > yMax) {
-    return;
-  }
-
-  // build the list of all intersections
-  allInterLen = 0;
-  allInterSize = 16;
-  allInter = (SplashIntersect *)gmallocn(allInterSize,
-					 sizeof(SplashIntersect));
-  for (i = 0; i < xPath->length; ++i) {
-    seg = &xPath->segs[i];
-    if (seg->flags & splashXPathFlip) {
-      segYMin = seg->y1;
-      segYMax = seg->y0;
-    } else {
-      segYMin = seg->y0;
-      segYMax = seg->y1;
-    }
-    if (seg->flags & splashXPathHoriz) {
-      y = splashFloor(seg->y0);
-      if (y >= yMin && y <= yMax) {
-	if (!addIntersection(segYMin, segYMax, seg->flags,
-			y, splashFloor(seg->x0), splashFloor(seg->x1)))
-          break;
-      }
-    } else if (seg->flags & splashXPathVert) {
-      y0 = splashFloor(segYMin);
-      if (y0 < yMin) {
-	y0 = yMin;
-      }
-      y1 = splashFloor(segYMax);
-      if (y1 > yMax) {
-	y1 = yMax;
-      }
-      x = splashFloor(seg->x0);
-      for (y = y0; y <= y1; ++y) {
-	if (!addIntersection(segYMin, segYMax, seg->flags, y, x, x))
-          break;
-      }
-    } else {
-      if (seg->x0 < seg->x1) {
-	segXMin = seg->x0;
-	segXMax = seg->x1;
-      } else {
-	segXMin = seg->x1;
-	segXMax = seg->x0;
-      }
-      y0 = splashFloor(segYMin);
-      if (y0 < yMin) {
-	y0 = yMin;
-      }
-      y1 = splashFloor(segYMax);
-      if (y1 > yMax) {
-	y1 = yMax;
-      }
-      // this loop could just add seg->dxdy to xx1 on each iteration,
-      // but that introduces numerical accuracy problems
-      xx1 = seg->x0 + ((SplashCoord)y0 - seg->y0) * seg->dxdy;
-      for (y = y0; y <= y1; ++y) {
-	xx0 = xx1;
-	xx1 = seg->x0 + ((SplashCoord)(y + 1) - seg->y0) * seg->dxdy;
-	// the segment may not actually extend to the top and/or bottom edges
-	if (xx0 < segXMin) {
-	  xx0 = segXMin;
-	} else if (xx0 > segXMax) {
-	  xx0 = segXMax;
-	}
-	if (xx1 < segXMin) {
-	  xx1 = segXMin;
-	} else if (xx1 > segXMax) {
-	  xx1 = segXMax;
-	}
-	if (!addIntersection(segYMin, segYMax, seg->flags, y,
-			splashFloor(xx0), splashFloor(xx1)))
-          break;
-      }
-    }
-  }
-  std::sort(allInter, allInter + allInterLen, cmpIntersectFunctor());
-
-  // build the list of y pointers
-  inter = (int *)gmallocn(yMax - yMin + 2, sizeof(int));
-  i = 0;
-  for (y = yMin; y <= yMax; ++y) {
-    inter[y - yMin] = i;
-    while (i < allInterLen && allInter[i].y <= y) {
-      ++i;
-    }
-  }
-  inter[yMax - yMin + 1] = i;
-}
-
-GBool SplashXPathScanner::addIntersection(double segYMin, double segYMax,
-					 Guint segFlags,
-					 int y, int x0, int x1) {
-  if (allInterLen == allInterSize) {
-    unsigned int newInterSize = ((unsigned int) allInterSize * 2 > INT_MAX / sizeof(SplashIntersect)) ? allInterSize + 32768 : allInterSize * 2;
-    if (newInterSize >= INT_MAX / sizeof(SplashIntersect)) {
-      error(errInternal, -1, "Bogus memory allocation size in SplashXPathScanner::addIntersection {0:d}", newInterSize);
-      return gFalse;
-    }
-    allInterSize = newInterSize;
-    allInter = (SplashIntersect *)greallocn(allInter, newInterSize,
-					    sizeof(SplashIntersect));
-  }
-  allInter[allInterLen].y = y;
-  if (x0 < x1) {
-    allInter[allInterLen].x0 = x0;
-    allInter[allInterLen].x1 = x1;
-  } else {
-    allInter[allInterLen].x0 = x1;
-    allInter[allInterLen].x1 = x0;
-  }
-  if (segYMin <= y &&
-      (SplashCoord)y < segYMax &&
-      !(segFlags & splashXPathHoriz)) {
-    allInter[allInterLen].count = eo ? 1
-                                     : (segFlags & splashXPathFlip) ? 1 : -1;
-  } else {
-    allInter[allInterLen].count = 0;
-  }
-  ++allInterLen;
-  return gTrue;
-}
-
-void SplashXPathScanner::renderAALine(SplashBitmap *aaBuf,
-				      int *x0, int *x1, int y, GBool adjustVertLine) {
-  int xx0, xx1, xx, xxMin, xxMax, yy, interEnd;
-  Guchar mask;
-  SplashColorPtr p;
-
-  memset(aaBuf->getDataPtr(), 0, aaBuf->getRowSize() * aaBuf->getHeight());
-  xxMin = aaBuf->getWidth();
-  xxMax = -1;
-  if (yMin <= yMax) {
-    if (splashAASize * y < yMin) {
-      interIdx = inter[0];
-    } else if (splashAASize * y > yMax) {
-      interIdx = inter[yMax - yMin + 1];
-    } else {
-      interIdx = inter[splashAASize * y - yMin];
-    }
-    for (yy = 0; yy < splashAASize; ++yy) {
-      if (splashAASize * y + yy < yMin) {
-	interEnd = inter[0];
-      } else if (splashAASize * y + yy > yMax) {
-	interEnd = inter[yMax - yMin + 1];
-      } else {
-	interEnd = inter[splashAASize * y + yy - yMin + 1];
-      }
-      interCount = 0;
-      while (interIdx < interEnd) {
-	xx0 = allInter[interIdx].x0;
-	xx1 = allInter[interIdx].x1;
-	interCount += allInter[interIdx].count;
-	++interIdx;
-	while (interIdx < interEnd &&
-	       (allInter[interIdx].x0 <= xx1 ||
-		(eo ? (interCount & 1) : (interCount != 0)))) {
-	  if (allInter[interIdx].x1 > xx1) {
-	    xx1 = allInter[interIdx].x1;
-	  }
-	  interCount += allInter[interIdx].count;
-	  ++interIdx;
-	}
-	if (xx0 < 0) {
-	  xx0 = 0;
-	}
-	++xx1;
-	if (xx1 > aaBuf->getWidth()) {
-	  xx1 = aaBuf->getWidth();
-	}
-	// set [xx0, xx1) to 1
-	if (xx0 < xx1) {
-	  xx = xx0;
-	  p = aaBuf->getDataPtr() + yy * aaBuf->getRowSize() + (xx >> 3);
-	  if (xx & 7) {
-	    mask = adjustVertLine ? 0xff : 0xff >> (xx & 7);
-	    if (!adjustVertLine && (xx & ~7) == (xx1 & ~7)) {
-	      mask &= (Guchar)(0xff00 >> (xx1 & 7));
-	    }
-	    *p++ |= mask;
-	    xx = (xx & ~7) + 8;
-	  }
-	  for (; xx + 7 < xx1; xx += 8) {
-	    *p++ |= 0xff;
-	  }
-	  if (xx < xx1) {
-	    *p |= adjustVertLine ? 0xff : (Guchar)(0xff00 >> (xx1 & 7));
-	  }
-	}
-	if (xx0 < xxMin) {
-	  xxMin = xx0;
-	}
-	if (xx1 > xxMax) {
-	  xxMax = xx1;
-	}
-      }
-    }
-  }
-  if (xxMin > xxMax) {
-    xxMin = xxMax;
-  }
-  *x0 = xxMin / splashAASize;
-  *x1 = (xxMax - 1) / splashAASize;
-}
-
-void SplashXPathScanner::clipAALine(SplashBitmap *aaBuf,
-				    int *x0, int *x1, int y) {
-  int xx0, xx1, xx, yy, interEnd;
-  Guchar mask;
-  SplashColorPtr p;
-
-  for (yy = 0; yy < splashAASize; ++yy) {
-    xx = *x0 * splashAASize;
-    if (yMin <= yMax) {
-      if (splashAASize * y + yy < yMin) {
-	interIdx = interEnd = inter[0];
-      } else if (splashAASize * y + yy > yMax) {
-	interIdx = interEnd = inter[yMax - yMin + 1];
-      } else {
-	interIdx = inter[splashAASize * y + yy - yMin];
-	if (splashAASize * y + yy > yMax) {
-	  interEnd = inter[yMax - yMin + 1];
-	} else {
-	  interEnd = inter[splashAASize * y + yy - yMin + 1];
-	}
-      }
-      interCount = 0;
-      while (interIdx < interEnd && xx < (*x1 + 1) * splashAASize) {
-	xx0 = allInter[interIdx].x0;
-	xx1 = allInter[interIdx].x1;
-	interCount += allInter[interIdx].count;
-	++interIdx;
-	while (interIdx < interEnd &&
-	       (allInter[interIdx].x0 <= xx1 ||
-		(eo ? (interCount & 1) : (interCount != 0)))) {
-	  if (allInter[interIdx].x1 > xx1) {
-	    xx1 = allInter[interIdx].x1;
-	  }
-	  interCount += allInter[interIdx].count;
-	  ++interIdx;
-	}
-	if (xx0 > aaBuf->getWidth()) {
-	  xx0 = aaBuf->getWidth();
-	}
-	// set [xx, xx0) to 0
-	if (xx < xx0) {
-	  p = aaBuf->getDataPtr() + yy * aaBuf->getRowSize() + (xx >> 3);
-	  if (xx & 7) {
-	    mask = (Guchar)(0xff00 >> (xx & 7));
-	    if ((xx & ~7) == (xx0 & ~7)) {
-	      mask |= 0xff >> (xx0 & 7);
-	    }
-	    *p++ &= mask;
-	    xx = (xx & ~7) + 8;
-	  }
-	  for (; xx + 7 < xx0; xx += 8) {
-	    *p++ = 0x00;
-	  }
-	  if (xx < xx0) {
-	    *p &= 0xff >> (xx0 & 7);
-	  }
-	}
-	if (xx1 >= xx) {
-	  xx = xx1 + 1;
-	}
-      }
-    }
-    xx0 = (*x1 + 1) * splashAASize;
-    if (xx0 > aaBuf->getWidth()) xx0 = aaBuf->getWidth();
-    // set [xx, xx0) to 0
-    if (xx < xx0 && xx >= 0) {
-      p = aaBuf->getDataPtr() + yy * aaBuf->getRowSize() + (xx >> 3);
-      if (xx & 7) {
-	mask = (Guchar)(0xff00 >> (xx & 7));
-	if ((xx & ~7) == (xx0 & ~7)) {
-	  mask &= 0xff >> (xx0 & 7);
-	}
-	*p++ &= mask;
-	xx = (xx & ~7) + 8;
-      }
-      for (; xx + 7 < xx0; xx += 8) {
-	*p++ = 0x00;
-      }
-      if (xx < xx0) {
-	*p &= 0xff >> (xx0 & 7);
-      }
-    }
-  }
-}
diff --git a/source/libs/poppler/poppler-src/splash/SplashXPathScanner.h b/source/libs/poppler/poppler-src/splash/SplashXPathScanner.h
deleted file mode 100644
index cc295cb68..000000000
--- a/source/libs/poppler/poppler-src/splash/SplashXPathScanner.h
+++ /dev/null
@@ -1,108 +0,0 @@
-//========================================================================
-//
-// SplashXPathScanner.h
-//
-//========================================================================
-
-//========================================================================
-//
-// Modified under the Poppler project - http://poppler.freedesktop.org
-//
-// All changes made under the Poppler project to this file are licensed
-// under GPL version 2 or later
-//
-// Copyright (C) 2013, 2014 Thomas Freitag <Thomas.Freitag@alfa.de>
-//
-// To see a description of the changes please see the Changelog file that
-// came with your tarball or type make ChangeLog if you are building from git
-//
-//========================================================================
-
-#ifndef SPLASHXPATHSCANNER_H
-#define SPLASHXPATHSCANNER_H
-
-#ifdef USE_GCC_PRAGMAS
-#pragma interface
-#endif
-
-#include "SplashTypes.h"
-
-class SplashXPath;
-class SplashBitmap;
-struct SplashIntersect;
-
-//------------------------------------------------------------------------
-// SplashXPathScanner
-//------------------------------------------------------------------------
-
-class SplashXPathScanner {
-public:
-
-  // Create a new SplashXPathScanner object.  <xPathA> must be sorted.
-  SplashXPathScanner(SplashXPath *xPathA, GBool eoA,
-		     int clipYMin, int clipYMax);
-
-  ~SplashXPathScanner();
-
-  // Return the path's bounding box.
-  void getBBox(int *xMinA, int *yMinA, int *xMaxA, int *yMaxA)
-    { *xMinA = xMin; *yMinA = yMin; *xMaxA = xMax; *yMaxA = yMax; }
-
-  // Return the path's bounding box.
-  void getBBoxAA(int *xMinA, int *yMinA, int *xMaxA, int *yMaxA);
-
-  // Returns true if at least part of the path was outside the
-  // clipYMin/clipYMax bounds passed to the constructor.
-  GBool hasPartialClip() { return partialClip; }
-
-  // Return the min/max x values for the span at <y>.
-  void getSpanBounds(int y, int *spanXMin, int *spanXMax);
-
-  // Returns true if (<x>,<y>) is inside the path.
-  GBool test(int x, int y);
-
-  // Returns true if the entire span ([<x0>,<x1>], <y>) is inside the
-  // path.
-  GBool testSpan(int x0, int x1, int y);
-
-  // Returns the next span inside the path at <y>.  If <y> is
-  // different than the previous call to getNextSpan, this returns the
-  // first span at <y>; otherwise it returns the next span (relative
-  // to the previous call to getNextSpan).  Returns false if there are
-  // no more spans at <y>.
-  GBool getNextSpan(int y, int *x0, int *x1);
-
-  // Renders one anti-aliased line into <aaBuf>.  Returns the min and
-  // max x coordinates with non-zero pixels in <x0> and <x1>.
-  void renderAALine(SplashBitmap *aaBuf, int *x0, int *x1, int y,
-    GBool adjustVertLine = gFalse);
-
-  // Clips an anti-aliased line by setting pixels to zero.  On entry,
-  // all non-zero pixels are between <x0> and <x1>.  This function
-  // will update <x0> and <x1>.
-  void clipAALine(SplashBitmap *aaBuf, int *x0, int *x1, int y);
-
-private:
-
-  void computeIntersections();
-  GBool addIntersection(double segYMin, double segYMax,
-		       Guint segFlags,
-		       int y, int x0, int x1);
-
-  SplashXPath *xPath;
-  GBool eo;
-  int xMin, yMin, xMax, yMax;
-  GBool partialClip;
-
-  SplashIntersect *allInter;	// array of intersections
-  int allInterLen;		// number of intersections in <allInter>
-  int allInterSize;		// size of the <allInter> array
-  int *inter;			// indexes into <allInter> for each y value
-  int interY;			// current y value - used by getNextSpan
-  int interIdx;			// current index into <inter> - used by
-				//   getNextSpan 
-  int interCount;		// current EO/NZWN counter - used by
-				//   getNextSpan
-};
-
-#endif
diff --git a/source/libs/poppler/version.ac b/source/libs/poppler/version.ac
index 678ff6080..6f38baf5d 100644
--- a/source/libs/poppler/version.ac
+++ b/source/libs/poppler/version.ac
@@ -8,4 +8,4 @@ dnl
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current poppler version
-m4_define([poppler_version], [0.59.0])
+m4_define([poppler_version], [0.60.0])
diff --git a/source/texk/web2c/luatexdir/font/writefont.w b/source/texk/web2c/luatexdir/font/writefont.w
index 1cbe42cdb..2ba81d617 100644
--- a/source/texk/web2c/luatexdir/font/writefont.w
+++ b/source/texk/web2c/luatexdir/font/writefont.w
@@ -578,7 +578,7 @@ static void write_fontdescriptor(PDF pdf, fd_entry * fd)
                 assert(0);
         }
     }
-    if ((! pdf->omit_cidset) && (cidset != 0)) {
+    if ((! pdf->omit_cidset) && (pdf->major_version == 1) && (cidset != 0) ) {
         pdf_dict_add_ref(pdf, "CIDSet", cidset);
     }
     /*
diff --git a/source/texk/web2c/luatexdir/font/writetype2.w b/source/texk/web2c/luatexdir/font/writetype2.w
index dc1821c5e..81aefb1fb 100644
--- a/source/texk/web2c/luatexdir/font/writetype2.w
+++ b/source/texk/web2c/luatexdir/font/writetype2.w
@@ -387,24 +387,26 @@ boolean make_tt_subset(PDF pdf, fd_entry * fd, unsigned char *buff, int buflen)
     /* CIDSet: a table of bits indexed by cid, bytes with high order bit first,
        each (set) bit is a (present) CID. */
     if (is_subsetted(fd->fm)) {
-        cidset = pdf_create_obj(pdf, obj_type_others, 0);
-        if (cidset != 0) {
-            size_t l = (last_cid / 8) + 1;
-            char *stream = xmalloc(l);
-            memset(stream, 0, l);
-            for (cid = 1; cid <= (long) last_cid; cid++) {
-                if (used_chars[cid]) {
-                    stream[(cid / 8)] |= (1 << (7 - (cid % 8)));
+        if ((! pdf->omit_cidset) && (pdf->major_version == 1)) {
+            cidset = pdf_create_obj(pdf, obj_type_others, 0);
+            if (cidset != 0) {
+                size_t l = (last_cid / 8) + 1;
+                char *stream = xmalloc(l);
+                memset(stream, 0, l);
+                for (cid = 1; cid <= (long) last_cid; cid++) {
+                    if (used_chars[cid]) {
+                        stream[(cid / 8)] |= (1 << (7 - (cid % 8)));
+                    }
                 }
+                pdf_begin_obj(pdf, cidset, OBJSTM_NEVER);
+                pdf_begin_dict(pdf);
+                pdf_dict_add_streaminfo(pdf);
+                pdf_end_dict(pdf);
+                pdf_begin_stream(pdf);
+                pdf_out_block(pdf, stream, l);
+                pdf_end_stream(pdf);
+                pdf_end_obj(pdf);
             }
-            pdf_begin_obj(pdf, cidset, OBJSTM_NEVER);
-            pdf_begin_dict(pdf);
-            pdf_dict_add_streaminfo(pdf);
-            pdf_end_dict(pdf);
-            pdf_begin_stream(pdf);
-            pdf_out_block(pdf, stream, l);
-            pdf_end_stream(pdf);
-            pdf_end_obj(pdf);
         }
     }
 
diff --git a/source/texk/web2c/luatexdir/image/image.h b/source/texk/web2c/luatexdir/image/image.h
index 2ff07d448..7c79723f1 100644
--- a/source/texk/web2c/luatexdir/image/image.h
+++ b/source/texk/web2c/luatexdir/image/image.h
@@ -126,6 +126,7 @@ typedef struct {
     int luaref ;
     boolean keepopen;
     int errorlevel;
+    int pdfmajorversion;
     int pdfminorversion;
     union {
         pdf_stream_struct *pdfstream;
@@ -171,6 +172,7 @@ typedef struct {
 #  define img_luaref(N)           ((N)->luaref)
 #  define img_keepopen(N)         ((N)->keepopen)
 #  define img_errorlevel(N)       ((N)->errorlevel)
+#  define img_pdfmajorversion(N)  ((N)->pdfmajorversion)
 #  define img_pdfminorversion(N)  ((N)->pdfminorversion)
 
 #  define img_pdfstream_ptr(N)    ((N)->img_struct.pdfstream)
diff --git a/source/texk/web2c/luatexdir/image/pdftoepdf.w b/source/texk/web2c/luatexdir/image/pdftoepdf.w
index c60cd7d77..09dcd2515 100644
--- a/source/texk/web2c/luatexdir/image/pdftoepdf.w
+++ b/source/texk/web2c/luatexdir/image/pdftoepdf.w
@@ -27,7 +27,7 @@
 /*
     This file is mostly C and not very much C++; it's just used to interface
     the functions of poppler, which happens to be written in C++.
-    Patches for the new poppler 0.59 from 
+    Patches for the new poppler 0.59 from
     https://www.mail-archive.com/arch-commits@archlinux.org/msg357548.html
     with some modifications to comply the poppler API.
 
@@ -597,7 +597,7 @@ void read_pdf_info(image_dict * idict)
         pdf_doc = refPdfDocument(img_filepath(idict), FE_FAIL);
     else if (img_type(idict) == IMG_TYPE_PDFMEMSTREAM) {
         pdf_doc = findPdfDocument(img_filepath(idict)) ;
-        if (pdf_doc == NULL ) 
+        if (pdf_doc == NULL )
            normal_error("pdf inclusion", "memstream not initialized");
         if (pdf_doc->doc == NULL)
            normal_error("pdf inclusion", "memstream document is empty");
@@ -614,12 +614,12 @@ void read_pdf_info(image_dict * idict)
     */
     pdf_major_version_found = doc->getPDFMajorVersion();
     pdf_minor_version_found = doc->getPDFMinorVersion();
-    if ((pdf_major_version_found > 1) || (pdf_minor_version_found > img_pdfminorversion(idict))) {
-        const char *msg = "PDF inclusion: found PDF version '%d.%d', but at most version '1.%d' allowed";
+    if ((100 * pdf_major_version_found + pdf_major_version_found) > (100 * img_pdfmajorversion(idict) + img_pdfminorversion(idict))) {
+        const char *msg = "PDF inclusion: found PDF version '%d.%d', but at most version '%d.%d' allowed";
         if (img_errorlevel(idict) > 0) {
-            formatted_error("pdf inclusion",msg, pdf_major_version_found, pdf_minor_version_found, img_pdfminorversion(idict));
+            formatted_error("pdf inclusion",msg, pdf_major_version_found, pdf_minor_version_found, img_pdfmajorversion(idict), img_pdfminorversion(idict));
         } else {
-            formatted_warning("pdf inclusion",msg, pdf_major_version_found, pdf_minor_version_found, img_pdfminorversion(idict));
+            formatted_warning("pdf inclusion",msg, pdf_major_version_found, pdf_minor_version_found, img_pdfmajorversion(idict), img_pdfminorversion(idict));
         }
     }
     img_totalpages(idict) = catalog->getNumPages();
diff --git a/source/texk/web2c/luatexdir/image/writeimg.w b/source/texk/web2c/luatexdir/image/writeimg.w
index 0944509c0..95e1ec304 100644
--- a/source/texk/web2c/luatexdir/image/writeimg.w
+++ b/source/texk/web2c/luatexdir/image/writeimg.w
@@ -100,7 +100,7 @@ that a type has been found.
 #define HEADER_PNG "\x89PNG\r\n\x1A\n"
 #define HEADER_JBIG2 "\x97\x4A\x42\x32\x0D\x0A\x1A\x0A"
 #define HEADER_JP2 "\x6A\x50\x20\x20"
-#define HEADER_PDF "%PDF-1."
+#define HEADER_PDF "%PDF-"
 #define MAX_HEADER (sizeof(HEADER_PNG)-1)
 #define HEADER_PDF_MEMSTREAM "data:application/pdf," /* see epdf.h */
 #define LEN_PDF_MEMSTREAM 21 /* see epdf.h */
@@ -217,7 +217,8 @@ image_dict *new_image_dict(void)
     img_index(p) = -1; /* -1 = unused, used count from 0 */
     img_luaref(p) = 0;
     img_errorlevel(p) = pdf_inclusion_errorlevel;
-    fix_pdf_minorversion(static_pdf);
+    fix_pdf_version(static_pdf);
+    img_pdfmajorversion(p) = pdf_major_version;
     img_pdfminorversion(p) = pdf_minor_version;
     return p;
 }
diff --git a/source/texk/web2c/luatexdir/image/writejbig2.w b/source/texk/web2c/luatexdir/image/writejbig2.w
index d1ed0a408..a58313ce8 100644
--- a/source/texk/web2c/luatexdir/image/writejbig2.w
+++ b/source/texk/web2c/luatexdir/image/writejbig2.w
@@ -762,7 +762,7 @@ static void wr_jbig2(PDF pdf, image_dict * idict, FILEINFO * fip,
 @ @c
 boolean supported_jbig2(image_dict * idict)
 {
-    if (img_pdfminorversion(idict) < 4) {
+    if (img_pdfmajorversion(idict) < 2 && img_pdfminorversion(idict) < 4) {
         normal_error("readjbig2","you need to generate at least PDF 1.4");
         return false;
     } else {
diff --git a/source/texk/web2c/luatexdir/image/writejpg.w b/source/texk/web2c/luatexdir/image/writejpg.w
index 7d463b773..54ed47f0f 100644
--- a/source/texk/web2c/luatexdir/image/writejpg.w
+++ b/source/texk/web2c/luatexdir/image/writejpg.w
@@ -132,9 +132,9 @@ static unsigned int read_exif_bytes(unsigned char **p, int n, int b)
 XResolution, YResolution and ResolutionUnit (tag 282, 283 and 296)
 as well as PixelPerUnitX, PixelPerUnitY and PixelUnit (tag 0x5111,
 0x5112 and 0x5110). Tags 282, 293 and 296 have the priority,
-with ResolutionUnit set to inch by default, then 
+with ResolutionUnit set to inch by default, then
 tag 0x5110, 0x5111 and 0x5112, where the only valid value for PixelUnit is 0.0254,
-and finally the given value xx and yy, 
+and finally the given value xx and yy,
 choosen if the Exif x and y resolution are not strictly positive.
 
 
@@ -256,7 +256,7 @@ static void read_APP1_Exif (FILE *fp, unsigned short length, int *xx, int *yy, i
 		        res_unit_ms = 0.0254; /* Unit is meter */
 			break;
 		    default:
-  		        res_unit_ms = 0; 
+  		        res_unit_ms = 0;
 		}
 	   case 0x5111: /* PixelPerUnitX */
                 found_x_ms = true ;
@@ -269,13 +269,13 @@ static void read_APP1_Exif (FILE *fp, unsigned short length, int *xx, int *yy, i
            }
 
 
-    }    
+    }
     if (found_x && found_y && res_unit>0) {
-     found_res = true; 
+     found_res = true;
      tempx = (int)(xres * res_unit+0.5);
      tempy = (int)(yres * res_unit+0.5);
     } else if (found_x_ms && found_y_ms && res_unit_ms==0.0254) {
-     found_res = true; 
+     found_res = true;
      tempx = (int)(xres_ms * res_unit_ms+0.5);
      tempy = (int)(yres_ms * res_unit_ms+0.5);
     }
@@ -394,7 +394,7 @@ void read_jpg_info(image_dict * idict)
                 formatted_error("readjpg","unsupported compression SOF_%d", i - M_SOF0);
                 break;
             case M_SOF2:
-                if (img_pdfminorversion(idict) <= 2) {
+                if (img_pdfmajorversion(idict) < 2 && img_pdfminorversion(idict) <= 2) {
                     normal_error("readjpg","progressive DCT with PDF-1.2 is not permitted");
                 }
             case M_SOF0:
diff --git a/source/texk/web2c/luatexdir/lua/lpdflib.c b/source/texk/web2c/luatexdir/lua/lpdflib.c
index f20604ead..88f9eac7c 100644
--- a/source/texk/web2c/luatexdir/lua/lpdflib.c
+++ b/source/texk/web2c/luatexdir/lua/lpdflib.c
@@ -949,6 +949,25 @@ static int getpdfcreationdate(lua_State * L)
     return 1 ;
 }
 
+static int getpdfmajorversion(lua_State * L)
+{
+ /* lua_pushinteger(L,static_pdf->major_version); */
+    lua_pushinteger(L,pdf_major_version);
+    return 1 ;
+}
+
+static int setpdfmajorversion(lua_State * L)
+{
+    if (lua_type(L, 1) == LUA_TNUMBER) {
+        int c = (int) lua_tointeger(L, 1);
+        if ((c >= 1) && (c <= 2)) {
+            static_pdf->major_version = c;
+            set_pdf_major_version(c);
+        }
+    }
+    return 0 ;
+}
+
 static int getpdfminorversion(lua_State * L)
 {
  /* lua_pushinteger(L,static_pdf->minor_version); */
@@ -1199,6 +1218,8 @@ static const struct luaL_Reg pdflib[] = {
     { "xformname", getpdfxformname },
     { "getversion", getpdfversion },
     { "getcreationdate", getpdfcreationdate },
+    { "getmajorversion", getpdfmajorversion },
+    { "setmajorversion", setpdfmajorversion },
     { "getminorversion", getpdfminorversion },
     { "setminorversion", setpdfminorversion },
     { "newcolorstack", newpdfcolorstack },
diff --git a/source/texk/web2c/luatexdir/lua/ltexlib.c b/source/texk/web2c/luatexdir/lua/ltexlib.c
index f975dc90a..641bc578f 100644
--- a/source/texk/web2c/luatexdir/lua/ltexlib.c
+++ b/source/texk/web2c/luatexdir/lua/ltexlib.c
@@ -789,7 +789,7 @@ static int get_item_index(lua_State * L, int i, int base)
 
 static int gettex(lua_State * L);
 
-#define get_item_index_plus(L, where, base, what, value, is_assign, get_register, glue) { \
+#define get_item_index_plus(L, where, base, what, value, is_assign, get_register, texget) { \
     size_t len;                                                                       \
     const char *str;                                                                  \
     int key, cs;                                                                      \
@@ -804,7 +804,7 @@ static int gettex(lua_State * L);
                 if (key >= 0 && key <= 65535) {                                       \
                     value = get_register(key);                                        \
                 } else if (is_assign(eq_type(cs))) {                                  \
-                    gettex(L); /* lazy */                                             \
+                    texget = gettex(L); /* lazy */                                    \
                 } else {                                                              \
                     luaL_error(L, "incorrect %s name", what);                         \
                 }                                                                     \
@@ -849,7 +849,11 @@ static int setdimen(lua_State * L)
 static int getdimen(lua_State * L)
 {
     int value = 0;
-    get_item_index_plus(L, lua_gettop(L), scaled_base, "dimen", value, is_dim_assign, get_tex_dimen_register, false);
+    int texget = 0;
+    get_item_index_plus(L, lua_gettop(L), scaled_base, "dimen", value, is_dim_assign, get_tex_dimen_register, texget);
+    if (texget > 0) {
+        return texget;
+    }
     lua_pushinteger(L, value);
     return 1;
 }
@@ -877,7 +881,11 @@ static int setskip(lua_State * L)
 static int getskip(lua_State * L)
 {
     int value = 0;
-    get_item_index_plus(L, lua_gettop(L), skip_base, "skip", value, is_glue_assign, get_tex_skip_register, true);
+    int texget = 0;
+    get_item_index_plus(L, lua_gettop(L), skip_base, "skip", value, is_glue_assign, get_tex_skip_register, texget);
+    if (texget > 0) {
+        return texget;
+    }
     if (value == null) {
         lua_nodelib_push_fast(L, copy_node(zero_glue));
     } else {
@@ -910,22 +918,47 @@ static int setglue(lua_State * L)
 static int getglue(lua_State * L)
 {
     int value = 0;
+    int texget = 0;
     int top = lua_gettop(L);
-    get_item_index_plus(L, top, skip_base, "skip", value, is_glue_assign, get_tex_skip_register, true);
-    if (value == null) {
-        lua_pushinteger(L,0);
-        lua_pushinteger(L,0);
-        lua_pushinteger(L,0);
-        lua_pushinteger(L,0);
-        lua_pushinteger(L,0);
+    int dim = -1;
+    if (top > 1 && lua_type(L,top) == LUA_TBOOLEAN) {
+        dim = lua_toboolean(L,top);
+        top = top - 1;
     } else {
-        lua_pushinteger(L,width(value));
-        lua_pushinteger(L,stretch(value));
-        lua_pushinteger(L,shrink(value));
-        lua_pushinteger(L,stretch_order(value));
-        lua_pushinteger(L,shrink_order(value));
+        lua_pushboolean(L,1);
+        dim = 1 ;
+        /* no top adaption. somewhat messy, but the gettex fallback checks itself */
+    }
+    /* checks itself for the boolean */
+    get_item_index_plus(L, top, skip_base, "glue", value, is_glue_assign, get_tex_skip_register, texget);
+    if (texget > 0) {
+        return texget;
+    }
+    if (dim == 0) {
+        /* false */
+        if (value == null) {
+            lua_pushinteger(L,0);
+        } else {
+            lua_pushinteger(L,width(value));
+        }
+        return 1;
+   } else {
+        /* true and nil */
+        if (value == null) {
+            lua_pushinteger(L,0);
+            lua_pushinteger(L,0);
+            lua_pushinteger(L,0);
+            lua_pushinteger(L,0);
+            lua_pushinteger(L,0);
+        } else {
+            lua_pushinteger(L,width(value));
+            lua_pushinteger(L,stretch(value));
+            lua_pushinteger(L,shrink(value));
+            lua_pushinteger(L,stretch_order(value));
+            lua_pushinteger(L,shrink_order(value));
+        }
+        return 5;
     }
-    return 5;
 }
 
 static int ismuskip(lua_State * L)
@@ -947,7 +980,11 @@ static int setmuskip(lua_State * L)
 static int getmuskip(lua_State * L)
 {
     int value = 0;
-    get_item_index_plus(L, lua_gettop(L), mu_skip_base, "muskip", value, is_mu_glue_assign, get_tex_mu_skip_register, true);
+    int texget = 0;
+    get_item_index_plus(L, lua_gettop(L), mu_skip_base, "muskip", value, is_mu_glue_assign, get_tex_mu_skip_register, texget);
+    if (texget > 0) {
+        return texget;
+    }
     lua_nodelib_push_fast(L, copy_node(value));
     return 1;
 }
@@ -976,16 +1013,45 @@ static int setmuglue(lua_State * L)
 static int getmuglue(lua_State * L)
 {
     int value = 0;
-    get_item_index_plus(L, lua_gettop(L), mu_skip_base, "muskip", value, is_mu_glue_assign, get_tex_mu_skip_register, true);
-    if (value == null) {
-        lua_pushnil(L);
-        return 1;
+    int texget = 0;
+    int top = lua_gettop(L);
+    int dim = -1;
+    if (top > 1 && lua_type(L,top) == LUA_TBOOLEAN) {
+        dim = lua_toboolean(L,top);
+        top = top - 1;
     } else {
-        lua_pushinteger(L,width(value));
-        lua_pushinteger(L,stretch(value));
-        lua_pushinteger(L,shrink(value));
-        lua_pushinteger(L,stretch_order(value));
-        lua_pushinteger(L,shrink_order(value));
+        lua_pushboolean(L,1);
+        dim = 1 ;
+        /* no top adaption. somewhat messy, but the gettex fallback checks itself */
+    }
+    /* checks itself for the boolean */
+    get_item_index_plus(L, top, mu_skip_base, "muskip", value, is_mu_glue_assign, get_tex_mu_skip_register, texget);
+    if (texget > 0) {
+        return texget;
+    }
+    if (dim == 0) {
+        /* false */
+        if (value == null) {
+            lua_pushinteger(L,0);
+        } else {
+            lua_pushinteger(L,width(value));
+        }
+        return 1;
+   } else {
+        /* true and nil */
+        if (value == null) {
+            lua_pushinteger(L,0);
+            lua_pushinteger(L,0);
+            lua_pushinteger(L,0);
+            lua_pushinteger(L,0);
+            lua_pushinteger(L,0);
+        } else {
+            lua_pushinteger(L,width(value));
+            lua_pushinteger(L,stretch(value));
+            lua_pushinteger(L,shrink(value));
+            lua_pushinteger(L,stretch_order(value));
+            lua_pushinteger(L,shrink_order(value));
+        }
         return 5;
     }
 }
@@ -1015,7 +1081,11 @@ static int setcount(lua_State * L)
 static int getcount(lua_State * L)
 {
     int value = 0;
-    get_item_index_plus(L, lua_gettop(L), count_base, "count", value, is_int_assign, get_tex_count_register, false);
+    int texget = 0;
+    get_item_index_plus(L, lua_gettop(L), count_base, "count", value, is_int_assign, get_tex_count_register, texget);
+    if (texget > 0) {
+        return texget;
+    }
     lua_pushinteger(L, value);
     return 1;
 }
@@ -1047,7 +1117,11 @@ static int setattribute(lua_State * L)
 static int getattribute(lua_State * L)
 {
     int value = 0;
-    get_item_index_plus(L, lua_gettop(L), attribute_base, "attribute", value, is_attr_assign, get_tex_attribute_register, false);
+    int texget = 0;
+    get_item_index_plus(L, lua_gettop(L), attribute_base, "attribute", value, is_attr_assign, get_tex_attribute_register, texget);
+    if (texget > 0) {
+        return texget;
+    }
     lua_pushinteger(L, value);
     return 1;
 }
@@ -3041,6 +3115,7 @@ static int tex_save_box_resource(lua_State * L)
     int attributes = null;
     int resources = null;
     int type = 0;
+    int margin = pdf_xform_margin;
     boolean immediate = false;
     /* box attributes resources */
     halfword boxnumber = lua_tointeger(L,1);
@@ -3058,6 +3133,9 @@ static int tex_save_box_resource(lua_State * L)
     if (lua_type(L,5) == LUA_TNUMBER) {
         type = lua_tointeger(L, 5);
     }
+    if (lua_type(L,6) == LUA_TNUMBER) {
+        margin = lua_tointeger(L, 6);
+    }
     /* more or less same as scanner variant */
     boxdata = box(boxnumber);
     if (boxdata == null)
@@ -3074,6 +3152,7 @@ static int tex_save_box_resource(lua_State * L)
     set_obj_xform_height(static_pdf, index, height(boxdata));
     set_obj_xform_depth(static_pdf, index, depth(boxdata));
     set_obj_xform_type(static_pdf, index, type);
+    set_obj_xform_margin(static_pdf, index, margin);
     box(boxnumber) = null;
     last_saved_box_index = index;
     lua_pushinteger(L, index);
@@ -3138,14 +3217,16 @@ static int tex_get_box_resource_dimensions(lua_State * L)
         lua_pushnil(L);
         lua_pushnil(L);
         lua_pushnil(L);
+        lua_pushnil(L);
     } else {
         index = lua_tointeger(L,1);
         check_obj_type(static_pdf, obj_type_xform, index);
         lua_pushinteger(L, (int) obj_xform_width(static_pdf, index));
         lua_pushinteger(L, (int) obj_xform_height(static_pdf, index));
         lua_pushinteger(L, (int) obj_xform_depth(static_pdf, index));
+        lua_pushinteger(L, (int) obj_xform_margin(static_pdf, index));
     }
-    return 3;
+    return 4;
 }
 
 static int tex_build_page(lua_State * L)
diff --git a/source/texk/web2c/luatexdir/luapeg/lpeg.h b/source/texk/web2c/luatexdir/luapeg/lpeg.h
index 280e3eaeb..9bc79ff74 100644
--- a/source/texk/web2c/luatexdir/luapeg/lpeg.h
+++ b/source/texk/web2c/luatexdir/luapeg/lpeg.h
@@ -13,7 +13,7 @@
 #if !defined(lptypes_h)
 #define lptypes_h
 
-
+#define LPEG_DEBUG
 #if !defined(LPEG_DEBUG)
 #define NDEBUG
 #endif
diff --git a/source/texk/web2c/luatexdir/luatex.c b/source/texk/web2c/luatexdir/luatex.c
index 801906e8e..1d817b76d 100644
--- a/source/texk/web2c/luatexdir/luatex.c
+++ b/source/texk/web2c/luatexdir/luatex.c
@@ -33,8 +33,8 @@
 */
 
 int luatex_version = 106;
-int luatex_revision = '1';
-const char *luatex_version_string = "1.06.1";
+int luatex_revision = '2';
+const char *luatex_version_string = "1.06.2";
 const char *engine_name = my_name;
 
 #include <kpathsea/c-ctype.h>
diff --git a/source/texk/web2c/luatexdir/luatex_svnversion.h b/source/texk/web2c/luatexdir/luatex_svnversion.h
index 6ab2f3166..b4b5b28ca 100644
--- a/source/texk/web2c/luatexdir/luatex_svnversion.h
+++ b/source/texk/web2c/luatexdir/luatex_svnversion.h
@@ -1 +1 @@
-#define luatex_svn_revision 6409
+#define luatex_svn_revision 6420
diff --git a/source/texk/web2c/luatexdir/pdf/pdfgen.h b/source/texk/web2c/luatexdir/pdf/pdfgen.h
index f2086663c..01b0e74cd 100644
--- a/source/texk/web2c/luatexdir/pdf/pdfgen.h
+++ b/source/texk/web2c/luatexdir/pdf/pdfgen.h
@@ -81,7 +81,7 @@ extern int ten_pow[10];
 extern void pdf_flush(PDF);
 extern void pdf_room(PDF, int);
 
-extern void fix_pdf_minorversion(PDF);
+extern void fix_pdf_version(PDF);
 
 /* output a byte to PDF buffer without checking of overflow */
 
diff --git a/source/texk/web2c/luatexdir/pdf/pdfgen.w b/source/texk/web2c/luatexdir/pdf/pdfgen.w
index 0137755a5..26b7112ed 100644
--- a/source/texk/web2c/luatexdir/pdf/pdfgen.w
+++ b/source/texk/web2c/luatexdir/pdf/pdfgen.w
@@ -190,6 +190,7 @@ PDF init_pdf_struct(PDF pdf)
     memset(pdf->obj_tab, 0, sizeof(obj_entry));
 
     pdf->minor_version = -1;
+    pdf->major_version = -1;
     pdf->decimal_digits = 4;
     pdf->gamma = 65536;
     pdf->image_gamma = 65536;
@@ -262,35 +263,43 @@ void fix_o_mode(void)
     }
 }
 
-@ This ensures that |pdfminorversion| is set only before any bytes have been
-written to the generated \.{PDF} file. Here also all variables for \.{PDF} output
-are initialized, the \.{PDF} file is opened by |ensure_pdf_open|, and the \.{PDF}
-header is written.
+@ This ensures that |pdfmajorversion| and |pdfminorversion| are set only before any
+bytes have been written to the generated \.{PDF} file. Here also all variables for
+\.{PDF} output are initialized, the \.{PDF} file is opened by |ensure_pdf_open|, and
+the \.{PDF} header is written.
 
 @c
-void fix_pdf_minorversion(PDF pdf)
-{
-    if (pdf->minor_version < 0) {       /* unset */
+void fix_pdf_version(PDF pdf)
+{
+    if (pdf->major_version < 0) { /* unset */
+        if (pdf_major_version == 0) {
+            normal_warning("pdf backend","unset major version, using 1 instead");
+            pdf->major_version = 1;
+        } else if ((pdf_major_version < 0) || (pdf_major_version > 2)) {
+            formatted_warning("pdf backend","illegal major version %d, using 1 instead",pdf_major_version);
+            pdf->major_version = 1;
+        } else {
+            pdf->major_version = pdf_major_version;
+        }
+    } else if (pdf->major_version != pdf_major_version) {
+        normal_warning("pdf backend", "the major version cannot be changed after data is written to the PDF file");
+    }
+    if (pdf->minor_version < 0) { /* unset */
         if ((pdf_minor_version < 0) || (pdf_minor_version > 9)) {
-            const char *hlp[] = { "The pdfminorversion must be between 0 and 9.", "I changed this to 4.", NULL };
-            char msg[256];
-            (void) snprintf(msg, 255, "LuaTeX error (illegal pdfminorversion %d)", (int) pdf_minor_version);
-            tex_error(msg, hlp);
+            formatted_warning("pdf backend","illegal minor version %d, using 4 instead",pdf_minor_version);
             pdf->minor_version = 4;
         } else {
             pdf->minor_version = pdf_minor_version;
         }
-    } else {
-        /* Check that variables for \.{PDF} output are unchanged */
-        if (pdf->minor_version != pdf_minor_version)
-            normal_error("pdf backend", "minorversion cannot be changed after data is written to the PDF file");
+    } else if (pdf->minor_version != pdf_minor_version) {
+        normal_warning("pdf backend", "minorversion cannot be changed after data is written to the PDF file");
     }
 }
 
 static void fix_pdf_draftmode(PDF pdf)
 {
     if (pdf->draftmode != draft_mode_par)
-        normal_error("pdf backend", "draftmode cannot be changed after data is written to the PDF file");
+        normal_warning("pdf backend", "draftmode cannot be changed after data is written to the PDF file");
     if (pdf->draftmode != 0) {
         pdf->compress_level = 0;        /* re-fix it, might have been changed inbetween */
         pdf->objcompresslevel = 0;
@@ -1027,11 +1036,11 @@ static void ensure_output_file_open(PDF pdf, const char *ext)
 static void ensure_pdf_header_written(PDF pdf)
 {
     /* Initialize variables for \.{PDF} output */
-    fix_pdf_minorversion(pdf);
+    fix_pdf_version(pdf);
     init_pdf_outputparameters(pdf);
     fix_pdf_draftmode(pdf);
     /* Write \.{PDF} header */
-    pdf_printf(pdf, "%%PDF-1.%d\n", pdf->minor_version);
+    pdf_printf(pdf, "%%PDF-%d.%d\n", pdf->major_version, pdf->minor_version);
     /* The next blob will be removed 1.0. */
     pdf_out(pdf, '%');
     pdf_out(pdf, 'P' + 128);
@@ -1732,6 +1741,7 @@ void pdf_begin_page(PDF pdf)
             pdf_dict_add_int(pdf, "FormType", 1);
         }
         xform_attributes = pdf_xform_attr; /* lookup once */
+        form_margin = obj_xform_margin(pdf, pdf_cur_form); /* now stored in object */
         if (xform_attributes != null)
             pdf_print_toks(pdf, xform_attributes);
         if (obj_xform_attr(pdf, pdf_cur_form) != null) {
@@ -2062,19 +2072,21 @@ void pdf_end_page(PDF pdf)
         pdf_end_dict(pdf);
     }
     /* Generate ProcSet */
-    pdf_add_name(pdf, "ProcSet");
-    pdf_begin_array(pdf);
-    if ((procset & PROCSET_PDF) != 0)
-        pdf_add_name(pdf, "PDF");
-    if ((procset & PROCSET_TEXT) != 0)
-        pdf_add_name(pdf, "Text");
-    if ((procset & PROCSET_IMAGE_B) != 0)
-        pdf_add_name(pdf, "ImageB");
-    if ((procset & PROCSET_IMAGE_C) != 0)
-        pdf_add_name(pdf, "ImageC");
-    if ((procset & PROCSET_IMAGE_I) != 0)
-        pdf_add_name(pdf, "ImageI");
-    pdf_end_array(pdf);
+    if (pdf->major_version == 1) {
+        pdf_add_name(pdf, "ProcSet");
+        pdf_begin_array(pdf);
+        if ((procset & PROCSET_PDF) != 0)
+            pdf_add_name(pdf, "PDF");
+        if ((procset & PROCSET_TEXT) != 0)
+            pdf_add_name(pdf, "Text");
+        if ((procset & PROCSET_IMAGE_B) != 0)
+            pdf_add_name(pdf, "ImageB");
+        if ((procset & PROCSET_IMAGE_C) != 0)
+            pdf_add_name(pdf, "ImageC");
+        if ((procset & PROCSET_IMAGE_I) != 0)
+            pdf_add_name(pdf, "ImageI");
+        pdf_end_array(pdf);
+    }
     pdf_end_dict(pdf);
     pdf_end_obj(pdf);
 }
diff --git a/source/texk/web2c/luatexdir/pdf/pdftables.h b/source/texk/web2c/luatexdir/pdf/pdftables.h
index 9a14d65da..cfaab5df0 100644
--- a/source/texk/web2c/luatexdir/pdf/pdftables.h
+++ b/source/texk/web2c/luatexdir/pdf/pdftables.h
@@ -123,6 +123,7 @@ typedef enum {
     c_pdf_image_resolution,
     c_pdf_pk_resolution,
     c_pdf_unique_resname,
+    c_pdf_major_version,
     c_pdf_minor_version,
     c_pdf_pagebox,
     c_pdf_inclusion_errorlevel,
@@ -170,6 +171,7 @@ extern int pdf_retval;
 #  define pdf_image_resolution          get_tex_extension_count_register(c_pdf_image_resolution)
 #  define pdf_pk_resolution             get_tex_extension_count_register(c_pdf_pk_resolution)
 #  define pdf_unique_resname            get_tex_extension_count_register(c_pdf_unique_resname)
+#  define pdf_major_version             get_tex_extension_count_register(c_pdf_major_version)
 #  define pdf_minor_version             get_tex_extension_count_register(c_pdf_minor_version)
 #  define pdf_pagebox                   get_tex_extension_count_register(c_pdf_pagebox)
 #  define pdf_inclusion_errorlevel      get_tex_extension_count_register(c_pdf_inclusion_errorlevel)
@@ -200,6 +202,7 @@ extern int pdf_retval;
 #  define pdf_pk_mode                   get_tex_extension_toks_register(t_pdf_pk_mode)
 #  define pdf_trailer_id                get_tex_extension_toks_register(t_pdf_trailer_id)
 
+#  define set_pdf_major_version(i)      set_tex_extension_count_register(c_pdf_major_version,i)
 #  define set_pdf_minor_version(i)      set_tex_extension_count_register(c_pdf_minor_version,i)
 #  define set_pdf_compress_level(i)     set_tex_extension_count_register(c_pdf_compress_level,i)
 #  define set_pdf_obj_compress_level(i) set_tex_extension_count_register(c_pdf_obj_compress_level,i)
diff --git a/source/texk/web2c/luatexdir/pdf/pdftypes.h b/source/texk/web2c/luatexdir/pdf/pdftypes.h
index 34153600d..c5f0393cc 100644
--- a/source/texk/web2c/luatexdir/pdf/pdftypes.h
+++ b/source/texk/web2c/luatexdir/pdf/pdftypes.h
@@ -293,6 +293,7 @@ typedef struct pdf_output_file_ {
     int gen_tounicode;
     int omit_cidset;
     int inclusion_copy_font;
+    int major_version;          /* fixed major part of the PDF version */
     int minor_version;          /* fixed minor part of the PDF version */
     int compress_level;         /* level for zlib object stream compression */
     int objcompresslevel;       /* fixed level for activating PDF object streams */
diff --git a/source/texk/web2c/luatexdir/pdf/pdfxform.h b/source/texk/web2c/luatexdir/pdf/pdfxform.h
index 64525d837..2d6441ff4 100644
--- a/source/texk/web2c/luatexdir/pdf/pdfxform.h
+++ b/source/texk/web2c/luatexdir/pdf/pdfxform.h
@@ -22,7 +22,7 @@
 #ifndef PDFXFORM_H
 #  define PDFXFORM_H
 
-#  define pdfmem_xform_size 9 /* size of memory in |pdf->mem| which |obj_data_ptr| holds */
+#  define pdfmem_xform_size 10 /* size of memory in |pdf->mem| which |obj_data_ptr| holds */
 
 #  define obj_xform_width(pdf,A)          pdf->mem[obj_data_ptr(pdf,A) + 0]
 #  define obj_xform_height(pdf,A)         pdf->mem[obj_data_ptr(pdf,A) + 1]
@@ -33,6 +33,7 @@
 #  define obj_xform_attr_str(pdf,A)       pdf->mem[obj_data_ptr(pdf,A) + 6]
 #  define obj_xform_resources_str(pdf,A)  pdf->mem[obj_data_ptr(pdf,A) + 7]
 #  define obj_xform_type(pdf,A)           pdf->mem[obj_data_ptr(pdf,A) + 8]
+#  define obj_xform_margin(pdf,A)         pdf->mem[obj_data_ptr(pdf,A) + 9]
 
 #  define set_pdf_xform_objnum(A,B)            pdf_xform_objnum(A)=B
 #  define set_obj_xform_width(pdf,A,B)         obj_xform_width(pdf,A)=B
@@ -44,6 +45,7 @@
 #  define set_obj_xform_attr_str(pdf,A,B)      obj_xform_attr_str(pdf,A)=B
 #  define set_obj_xform_resources_str(pdf,A,B) obj_xform_resources_str(pdf,A)=B
 #  define set_obj_xform_type(pdf,A,B)          obj_xform_type(pdf,A)=B
+#  define set_obj_xform_margin(pdf,A,B)        obj_xform_margin(pdf,A)=B
 
 extern int pdf_cur_form; /* the form being output */
 
diff --git a/source/texk/web2c/luatexdir/pdf/pdfxform.w b/source/texk/web2c/luatexdir/pdf/pdfxform.w
index 4c83b0249..731dc2290 100644
--- a/source/texk/web2c/luatexdir/pdf/pdfxform.w
+++ b/source/texk/web2c/luatexdir/pdf/pdfxform.w
@@ -89,6 +89,12 @@ void scan_pdfxform(PDF pdf)
     } else {
         set_obj_xform_resources(pdf, k, null);
     }
+    if (scan_keyword("margin")) {
+        scan_int();
+        set_obj_xform_margin(pdf, k, cur_val);
+    } else {
+        set_obj_xform_margin(pdf, k, pdf_xform_margin);
+    }
     set_obj_xform_resources_str(pdf, k, null);
     scan_int();
     p = box(cur_val);
diff --git a/source/texk/web2c/luatexdir/tex/dumpdata.w b/source/texk/web2c/luatexdir/tex/dumpdata.w
index 6973fbf0e..8683318bd 100644
--- a/source/texk/web2c/luatexdir/tex/dumpdata.w
+++ b/source/texk/web2c/luatexdir/tex/dumpdata.w
@@ -23,7 +23,7 @@
 
 /* we start with 907: the sum of the values of the bytes of "don knuth" */
 
-#define FORMAT_ID (907+34)
+#define FORMAT_ID (907+35)
 #if ((FORMAT_ID>=0) && (FORMAT_ID<=256))
 #error Wrong value for FORMAT_ID.
 #endif
diff --git a/source/texk/web2c/luatexdir/tex/linebreak.w b/source/texk/web2c/luatexdir/tex/linebreak.w
index 665366660..345a1a424 100644
--- a/source/texk/web2c/luatexdir/tex/linebreak.w
+++ b/source/texk/web2c/luatexdir/tex/linebreak.w
@@ -755,6 +755,14 @@ Replacement texts and discretionary texts are supposed to contain
 only character nodes, kern nodes, and box or rule nodes.
 
 @c
+#define bad_node_in_disc_error(p) { \
+    if (type(p) == whatsit_node) { \
+        formatted_error("linebreak","invalid node with type %s and subtype %i found in discretionary",node_data[type(p)].name,subtype(p)); \
+    } else { \
+        formatted_error("linebreak","invalid node with type %s found in discretionary",node_data[type(p)].name); \
+    } \
+}
+
 static void add_to_widths(halfword s, int line_break_dir, int adjust_spacing, scaled * widths)
 {
     while (s != null) {
@@ -783,7 +791,8 @@ static void add_to_widths(halfword s, int line_break_dir, int adjust_spacing, sc
                 case disc_node:    /* TH temp */
                     break;
                 default:
-                    confusion("invalid node found in discretionary"); /* todo: report type */
+                    bad_node_in_disc_error(s);
+                    break;
             }
         }
         s = vlink(s);
@@ -825,7 +834,7 @@ static void sub_from_widths(halfword s, int line_break_dir, int adjust_spacing,
                 case disc_node:    /* TH temp */
                     break;
                 default:
-                    confusion("invalid node found in discretionary"); /* todo: report type */
+                    bad_node_in_disc_error(s);
                     break;
             }
         }
diff --git a/source/texk/web2c/luatexdir/tex/maincontrol.w b/source/texk/web2c/luatexdir/tex/maincontrol.w
index 8c712289f..30de71ad7 100644
--- a/source/texk/web2c/luatexdir/tex/maincontrol.w
+++ b/source/texk/web2c/luatexdir/tex/maincontrol.w
@@ -3660,7 +3660,9 @@ void initialize(void)
         set_eq_level(end_write, level_one);
         set_eq_type(end_write, outer_call_cmd);
         set_equiv(end_write, null);
-
+        /* bah */
+        set_pdf_major_version(1);
+        set_pdf_minor_version(0);
     }
     synctexoffset = int_base + synctex_code;
 
diff --git a/source/texk/web2c/luatexdir/tex/texnodes.w b/source/texk/web2c/luatexdir/tex/texnodes.w
index 75a8c7656..59c0627c5 100644
--- a/source/texk/web2c/luatexdir/tex/texnodes.w
+++ b/source/texk/web2c/luatexdir/tex/texnodes.w
@@ -656,11 +656,14 @@ static int test_count = 1;
 
 #define check_action_ref(a)    { dorangetest(p,a,var_mem_max); }
 #define check_attribute_ref(a) { dorangetest(p,a,var_mem_max); }
-#define check_token_ref(a) { \
+
+/* hm, we can just pass p then */
+
+#define check_token_ref(p) { \
     if (type(p) == whatsit_node) { \
-        formatted_error("nodes","fuzzy token cleanup in whatsit node with id %i and subtype %i",type(p),subtype(p)); \
+        formatted_error("nodes","fuzzy token cleanup in whatsit node with type %s and subtype %i",node_data[type(p)].name,subtype(p)); \
     } else { \
-        formatted_error("nodes","fuzzy token cleanup in node with id %i",type(p)); \
+        formatted_error("nodes","fuzzy token cleanup in node with type %s",node_data[type(p)].name); \
     } \
 }
 
@@ -1631,7 +1634,7 @@ static void check_node_wrapup_core(halfword p)
     switch (subtype(p)) {
         /* frontend code */
         case special_node:
-            check_token_ref(write_tokens(p));
+            check_token_ref(p);
             break;
         case user_defined_node:
             switch (user_node_type(p)) {
@@ -1639,7 +1642,7 @@ static void check_node_wrapup_core(halfword p)
                     check_attribute_ref(user_node_value(p));
                     break;
                 case 't':
-                    check_token_ref(user_node_value(p));
+                    check_token_ref(p);
                     break;
                 case 'n':
                     dorangetest(p, user_node_value(p), var_mem_max);
@@ -1669,39 +1672,39 @@ void check_node_wrapup_pdf(halfword p)
     switch (subtype(p)) {
         case pdf_literal_node:
             if (pdf_literal_type(p) == normal)
-                check_token_ref(pdf_literal_data(p));
+                check_token_ref(p);
             break;
         case pdf_colorstack_node:
             if (pdf_colorstack_cmd(p) <= colorstack_data)
-                check_token_ref(pdf_colorstack_data(p));
+                check_token_ref(p);
             break;
         case pdf_setmatrix_node:
-            check_token_ref(pdf_setmatrix_data(p));
+            check_token_ref(p);
             break;
         case late_lua_node:
             if (late_lua_name(p) > 0)
-                check_token_ref(late_lua_name(p));
+                check_token_ref(p);
             if (late_lua_type(p) == normal)
-                check_token_ref(late_lua_data(p));
+                check_token_ref(p);
             break;
         case pdf_annot_node:
-            check_token_ref(pdf_annot_data(p));
+            check_token_ref(p);
             break;
         case pdf_start_link_node:
             if (pdf_link_attr(p) != null)
-                check_token_ref(pdf_link_attr(p));
+                check_token_ref(p);
             check_action_ref(pdf_link_action(p));
             break;
         case pdf_dest_node:
             if (pdf_dest_named_id(p) > 0)
-                check_token_ref(pdf_dest_id(p));
+                check_token_ref(p);
             break;
         case pdf_thread_node:
         case pdf_start_thread_node:
             if (pdf_thread_named_id(p) > 0)
-                check_token_ref(pdf_thread_id(p));
+                check_token_ref(p);
             if (pdf_thread_attr(p) != null)
-                check_token_ref(pdf_thread_attr(p));
+                check_token_ref(p);
             break;
         case pdf_save_node:
         case pdf_restore_node:
diff --git a/source/texk/web2c/luatexdir/tex/textoken.w b/source/texk/web2c/luatexdir/tex/textoken.w
index b11169a89..bf14a9614 100644
--- a/source/texk/web2c/luatexdir/tex/textoken.w
+++ b/source/texk/web2c/luatexdir/tex/textoken.w
@@ -2311,6 +2311,7 @@ static int do_variable_pdf(halfword c)
     else if (scan_keyword("imageresolution"))      { do_variable_backend_int(c_pdf_image_resolution); }
     else if (scan_keyword("pkresolution"))         { do_variable_backend_int(c_pdf_pk_resolution); }
     else if (scan_keyword("uniqueresname"))        { do_variable_backend_int(c_pdf_unique_resname); }
+    else if (scan_keyword("majorversion"))         { do_variable_backend_int(c_pdf_major_version); }
     else if (scan_keyword("minorversion"))         { do_variable_backend_int(c_pdf_minor_version); }
     else if (scan_keyword("pagebox"))              { do_variable_backend_int(c_pdf_pagebox); }
     else if (scan_keyword("inclusionerrorlevel"))  { do_variable_backend_int(c_pdf_inclusion_errorlevel); }
-- 
GitLab