<pre style='margin:0'>
Marius Schamschula (Schamschula) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/af11993aab38d7ba77c2df895aa5ce9b405c5681">https://github.com/macports/macports-ports/commit/af11993aab38d7ba77c2df895aa5ce9b405c5681</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit af11993aab38d7ba77c2df895aa5ce9b405c5681
</span>Author: Marius Schamschula <mps@macports.org>
AuthorDate: Fri Nov 23 10:07:41 2018 -0600

<span style='display:block; white-space:pre;color:#404040;'>    ghostscript: update to version 9.26
</span>---
 print/ghostscript/Portfile                         |  13 +-
 .../files/patch-9.25-security_fixes-2.diff         | 988 ---------------------
 2 files changed, 5 insertions(+), 996 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/print/ghostscript/Portfile b/print/ghostscript/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index afcd1a0..866dfdf 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/print/ghostscript/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/print/ghostscript/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,8 +4,7 @@ PortSystem          1.0
</span> PortGroup           muniversal 1.0
 
 name                ghostscript
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             9.25
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             9.26
</span> categories          print
 license             AGPL-3 BSD
 maintainers         nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -30,14 +29,12 @@ distfiles           ${distname}.tar.gz:source \
</span> 
 # The security patch (courtesy Ken Moffat) should only be needed until
 # 9.26 is released.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles          patch-base_unix-dll.mak.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-9.25-security_fixes-2.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          patch-base_unix-dll.mak.diff
</span> 
 checksums           ${distname}.tar.gz \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  bb7e20fbcbcc36f45b3f19964e19d6ff70d802fd \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  baafa64740b090bff50b220a6df3be95c46069b7e30f4b4effed28316e5b2389 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    42017635 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  52011d909683f131042044f9cd8d7317bf98d90b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  831fc019bd477f7cc2d481dc5395ebfa4a593a95eb2fe1eb231a97e450d7540d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    42084660 \
</span>                     ghostscript-fonts-other-6.0.tar.gz \
                     rmd160  ab60dbf71e7d91283a106c3df381cadfe173082f \
                     sha256  4fa051e341167008d37fe34c19d241060cd17b13909932cd7ca7fe759243c2de \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/print/ghostscript/files/patch-9.25-security_fixes-2.diff b/print/ghostscript/files/patch-9.25-security_fixes-2.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 3bda4f7..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/print/ghostscript/files/patch-9.25-security_fixes-2.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,988 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-not yet Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: 2018-10-20
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Initial Package Version: 9.25
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Upstream Status: Applied
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Origin: Upstream
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Description: Fixes another -dSAFER sandbox escape, probably in all
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-all versions still in use.  This is exploitable from e.g. gimp,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-evince, and probably from some other applications which can use
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-postscript files.  And add further updates.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Commits added (from http://git.ghostscript.com/?p=ghostpdl.git) with notes:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-7c3e7ee to help applying 34cc326
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-c76bf1c ditto
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-f8ccc7d again for help in applying 34cc326, -ve offsets in gs_init
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-a54c9e6 fix, failures in gs_fonts.ps manually fixed up, looks like
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        maybe a partial reversal of xsome earlier change
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-1778db6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-a680739
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-a5a9bf8 -ve offsets in gs_fonts.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-34cc326 -ve offsets in gs_init.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-8d19fdf -ve offsets in gs_fonts.ps, gs_init.ps, gs_setpd.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/base/gdevdflt.c ghostscript-9.25-1/base/gdevdflt.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- base/gdevdflt.c        2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ base/gdevdflt.c        2018-10-19 23:12:55.395883189 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1044,6 +1044,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 dev_param_req_t *request = (dev_param_req_t *)data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 return gx_default_get_param(pdev, request->Param, request->list);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        case gxdso_current_output_device:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                *(gx_device **)data = pdev;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return_error(gs_error_undefined);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/base/gxdevsop.h ghostscript-9.25-1/base/gxdevsop.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- base/gxdevsop.h        2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ base/gxdevsop.h        2018-10-19 23:12:55.395883189 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -327,6 +327,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     gxdso_JPEG_passthrough_data,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     gxdso_JPEG_passthrough_end,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     gxdso_supports_iccpostrender,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    /* Retrieve the last device in a device chain
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       (either forwarding or subclass devices).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gxdso_current_output_device,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     /* Add new gxdso_ keys above this. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     gxdso_pattern__LAST
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/psi/interp.c ghostscript-9.25-1/psi/interp.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- psi/interp.c   2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ psi/interp.c   2018-10-20 01:32:43.867083905 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -142,7 +142,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int oparray_cleanup(i_ctx_t *);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int zerrorexec(i_ctx_t *);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int zfinderrorobject(i_ctx_t *);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static int errorexec_find(i_ctx_t *, ref *);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int errorexec_pop(i_ctx_t *);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int errorexec_cleanup(i_ctx_t *);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int zsetstackprotect(i_ctx_t *);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -662,31 +661,24 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (gs_errorname(i_ctx_p, code, &error_name) < 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return code;            /* out-of-range error code! */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    /*  If LockFilePermissions is true, we only refer to gserrordict, which
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--     *  is not accessible to Postcript jobs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    /*  We refer to gserrordict first, which is not accessible to Postcript jobs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     *  If we're running with SAFERERRORS all the handlers are copied to gserrordict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     *  so we'll always find the default one. If not SAFERERRORS, only gs specific
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     *  errors are in gserrordict.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (i_ctx_p->LockFilePermissions) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        if (((dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              dict_find(perrordict, &error_name, &epref) <= 0))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            return code;            /* error name not in errordict??? */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         * For greater Adobe compatibility, only the standard PostScript errors
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         * are defined in errordict; the rest are in gserrordict.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        if (dict_find_string(systemdict, "errordict", &perrordict) <= 0 ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            (dict_find(perrordict, &error_name, &epref) <= 0 &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--             (dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              dict_find(perrordict, &error_name, &epref) <= 0))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            return code;            /* error name not in errordict??? */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        (dict_find(perrordict, &error_name, &epref) <= 0 &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+         (dict_find_string(systemdict, "errordict", &perrordict) <= 0 ||
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          dict_find(perrordict, &error_name, &epref) <= 0))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return code;            /* error name not in errordict??? */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     doref = *epref;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     epref = &doref;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     /* Push the error object on the operand stack if appropriate. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (!GS_ERROR_IS_INTERRUPT(code)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        byte buf[260], *bufptr;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        uint rlen;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         /* Replace the error object if within an oparray or .errorexec. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         osp++;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (osp >= ostop) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -695,6 +687,37 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         *osp = *perror_object;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         errorexec_find(i_ctx_p, osp);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (!r_has_type(osp, t_string) && !r_has_type(osp, t_name)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            code = obj_cvs(imemory, osp, buf + 2, 256, &rlen, (const byte **)&bufptr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (code < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                const char *unknownstr = "--unknown--";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                rlen = strlen(unknownstr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                memcpy(buf, unknownstr, rlen);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                bufptr = buf;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                ref *tobj;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                bufptr[rlen] = '\0';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                /* Only pass a name object if the operator doesn't exist in systemdict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                 * i.e. it's an internal operator we have hidden
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                code = dict_find_string(systemdict, (const char *)bufptr, &tobj);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                if (code < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    buf[0] = buf[1] = buf[rlen + 2] = buf[rlen + 3] = '-';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    rlen += 4;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    bufptr = buf;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    bufptr = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (bufptr) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                code = name_ref(imemory, buf, rlen, osp, 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                if (code < 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    make_null(osp);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     goto again;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -737,7 +760,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint size = ref_stack_count(pstack) - skip;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint save_space = ialloc_space(idmemory);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    int code;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    int code, i;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (size > 65535)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         size = 65535;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -746,6 +769,15 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (code >= 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         code = ref_stack_store(pstack, arr, size, 0, 1, true, idmemory,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                "copy_stack");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    /* If we are copying the exec stack, try to replace any oparrays with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     * with the operator than references them
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (pstack == &e_stack) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        for (i = 0; i < size; i++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (errorexec_find(i_ctx_p, &arr->value.refs[i]) < 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                make_null(&arr->value.refs[i]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ialloc_set_space(idmemory, save_space);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return code;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1910,7 +1942,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * .errorexec with errobj != null, store it in *perror_object and return 1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * otherwise return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- errorexec_find(i_ctx_t *i_ctx_p, ref *perror_object)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     long i;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/psi/interp.h ghostscript-9.25-1/psi/interp.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- psi/interp.h   2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ psi/interp.h   2018-10-20 01:32:43.867083905 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -91,5 +91,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Define the top-level interface to the interpreter. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int gs_interpret(i_ctx_t **pi_ctx_p, ref * pref, int user_errors,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                  int *pexit_code, ref * perror_object);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+errorexec_find(i_ctx_t *i_ctx_p, ref *perror_object);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif /* interp_INCLUDED */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/psi/int.mak ghostscript-9.25-1/psi/int.mak
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- psi/int.mak    2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ psi/int.mak    2018-10-20 01:32:43.867083905 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -323,7 +323,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $(PSOBJ)zcontrol.$(OBJ) : $(PSSRC)zcontrol.c $(OP) $(string__h)\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  $(estack_h) $(files_h) $(ipacked_h) $(iutil_h) $(store_h) $(stream_h)\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- $(INT_MAK) $(MAKEDIRS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ $(interp_h) $(INT_MAK) $(MAKEDIRS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(PSCC) $(PSO_)zcontrol.$(OBJ) $(C_) $(PSSRC)zcontrol.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $(PSOBJ)zdict.$(OBJ) : $(PSSRC)zdict.c $(OP)\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/psi/zcontrol.c ghostscript-9.25-1/psi/zcontrol.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- psi/zcontrol.c 2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ psi/zcontrol.c 2018-10-20 01:32:43.867083905 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -24,6 +24,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "ipacked.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "iutil.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "store.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include "interp.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Forward references */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int check_for_exec(const_os_ptr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -787,7 +788,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Continuation operator to do the actual transfer. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* r_size(op1) was set just above. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--do_execstack(i_ctx_t *i_ctx_p, bool include_marks, os_ptr op1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+do_execstack(i_ctx_t *i_ctx_p, bool include_marks, bool include_oparrays, os_ptr op1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     os_ptr op = osp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ref *arefs = op1->value.refs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -829,6 +830,12 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                   strlen(tname), (const byte *)tname);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            case t_array:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            case t_shortarray:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            case t_mixedarray:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                if (!include_oparrays && errorexec_find(i_ctx_p, rq) < 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    make_null(rq);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             default:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 ;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -841,14 +848,14 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     os_ptr op = osp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    return do_execstack(i_ctx_p, false, op);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return do_execstack(i_ctx_p, false, false, op);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- execstack2_continue(i_ctx_t *i_ctx_p)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     os_ptr op = osp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    return do_execstack(i_ctx_p, op->value.boolval, op - 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return do_execstack(i_ctx_p, op->value.boolval, true, op - 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* - .needinput - */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/psi/zdevice.c ghostscript-9.25-1/psi/zdevice.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- psi/zdevice.c  2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ psi/zdevice.c  2018-10-19 23:12:55.395883189 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -57,6 +57,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* - currentdevice <device> */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Returns the current device in the graphics state */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- zcurrentdevice(i_ctx_t *i_ctx_p)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -71,6 +72,34 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* - .currentoutputdevice <device> */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Returns the *output* device - which will often
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   be the same as above, but not always: if a compositor
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   or other forwarding device, or subclassing device is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   in force, that will be referenced by the graphics state
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   rather than the output device.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   This is equivalent of currentdevice device, but returns
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   the *device* object, rather than the dictionary describing
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   the device and device state.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+zcurrentoutputdevice(i_ctx_t *i_ctx_p)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    os_ptr op = osp;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gx_device *odev = NULL, *dev = gs_currentdevice(igs);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gs_ref_memory_t *mem = (gs_ref_memory_t *) dev->memory;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    int code = dev_proc(dev, dev_spec_op)(dev,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                        gxdso_current_output_device, (void *)&odev, 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (code < 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return code;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    push(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    make_tav(op, t_device,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+             (mem == 0 ? avm_foreign : imemory_space(mem)) | a_all,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+             pdevice, odev);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* <device> .devicename <string> */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- zdevicename(i_ctx_t *i_ctx_p)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -614,6 +643,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {"1.copydevice2", zcopydevice2},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {"0currentdevice", zcurrentdevice},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {"0.currentoutputdevice", zcurrentoutputdevice},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {"1.devicename", zdevicename},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {"0.doneshowpage", zdoneshowpage},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {"0flushpage", zflushpage},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_diskn.ps ghostscript-9.25-1/Resource/Init/gs_diskn.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_diskn.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_diskn.ps      2018-10-20 01:34:43.827823372 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -53,7 +53,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     exch .setglobal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind executeonly def % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Modify .putdevparams to force regeneration of .searchabledevs list
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.putdevparams {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -61,7 +61,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   % doesn't get run enough to justify the complication
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   //.putdevparams
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   //systemdict /.searchabledevs .forceundef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind odef % must be bound and hidden for .forceundef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef % must be bound and hidden for .forceundef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % ------ extend filenameforall to handle wildcards in %dev% part of pattern -------%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /filenameforall {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_dps1.ps ghostscript-9.25-1/Resource/Init/gs_dps1.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_dps1.ps       2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_dps1.ps       2018-10-20 01:27:39.874278223 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -21,7 +21,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % ------ Virtual memory ------ %
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /currentshared /.currentglobal load def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/scheck /.gcheck load def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/scheck {.gcheck} bind odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- %****** FOLLOWING IS WRONG ******
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /shareddict currentdict /globaldict .knownget not { 20 dict } if def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_dps.ps ghostscript-9.25-1/Resource/Init/gs_dps.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_dps.ps        2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_dps.ps        2018-10-20 01:34:43.827823372 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -70,7 +70,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 % Save a copy of the initial gstate.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   //systemdict /savedinitialgstate gstate readonly .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   .setglobal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind executeonly def % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Initialize local dictionaries and gstate when creating a new context.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Note that until this completes, we are in the anomalous situation of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -124,7 +124,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /savedinitialgstate .systemvar setgstate gsave
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 % Wrap up.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   end .setglobal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Check whether an object is a procedure.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.proccheck {                     % <obj> .proccheck <bool>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_epsf.ps ghostscript-9.25-1/Resource/Init/gs_epsf.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_epsf.ps       2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_epsf.ps       2018-10-20 01:34:43.827823372 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -31,7 +31,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /EPSBoundingBoxState 5 def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /EPSBoundingBoxSetState {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   //systemdict /EPSBoundingBoxState 3 -1 roll .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind odef % .forceput must be bound and hidden
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef % .forceput must be bound and hidden
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Parse 4 numbers for a bounding box
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /EPSBoundingBoxParse { % (llx lly urx ury) -- llx lly urx ury true OR false
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_fntem.ps ghostscript-9.25-1/Resource/Init/gs_fntem.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_fntem.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_fntem.ps      2018-10-19 23:32:36.960622205 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -408,7 +408,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     exit
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } loop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   exch setglobal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind executeonly def % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- currentdict end /ProcSet defineresource pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_fonts.ps ghostscript-9.25-1/Resource/Init/gs_fonts.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_fonts.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_fonts.ps      2018-10-20 01:34:43.827823372 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -373,7 +373,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % and the access path.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.setnativefontmapbuilt { % set whether we've been run
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   systemdict exch /.nativefontmapbuilt exch .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- systemdict /NONATIVEFONTMAP known .setnativefontmapbuilt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.buildnativefontmap {   % - .buildnativefontmap <bool>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   systemdict /.nativefontmapbuilt .knownget not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -578,7 +578,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } bind def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.setloadingfont {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    //systemdict /.loadingfont 3 -1 roll .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind odef % .forceput must be bound and hidden
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef % .forceput must be bound and hidden
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.loadfont
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  {              % Some buggy fonts leave extra junk on the stack,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 % so we have to make a closure that records the stack depth
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1007,7 +1007,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     dup length string copy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     .forceput setglobal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind odef % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Attempt to load a font from a file.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.tryloadfont {         % <fontname> .tryloadfont <font> true
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1098,7 +1098,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 % Check to make sure the font was actually loaded.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         dup 3 index .fontknownget
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         { dup /PathLoad 4 index //.putgstringcopy exec
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+         { dup /PathLoad 4 index .putgstringcopy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            4 1 roll pop pop pop //true exit
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1110,7 +1110,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          {            % Stack: origfontname fontdirectory path filefontname
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            2 index 1 index .fontknownget
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             {   % Yes.  Stack: origfontname fontdirectory path filefontname fontdict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--              dup 4 -1 roll /PathLoad exch //.putgstringcopy exec
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              dup 4 -1 roll /PathLoad exch .putgstringcopy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                       % Stack: origfontname fontdirectory filefontname fontdict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               3 -1 roll pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                       % Stack: origfontname filefontname fontdict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1143,7 +1143,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     } loop              % end of loop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- } bind executeonly def % must be bound and hidden for .putgstringcopy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ } bind executeonly odef % must be bound and hidden for .putgstringcopy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- currentdict /.putgstringcopy .undef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_init.ps ghostscript-9.25-1/Resource/Init/gs_init.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_init.ps       2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_init.ps       2018-10-20 01:34:43.828823362 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -188,6 +188,16 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   currentdict /PARANOIDSAFER known or     % PARANOIDSAFER is equivalent
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ifelse def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/SAFERERRORS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+currentdict /NOSAFERERRORS known
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  //false
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  currentdict /SAFERERRORS known
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} ifelse def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- currentdict /SHORTERRORS known   /SHORTERRORS exch def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- currentdict /TTYPAUSE known   /TTYPAUSE exch def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- currentdict /WRITESYSTEMDICT known   /WRITESYSTEMDICT exch def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -831,12 +841,26 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.runstring {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   0 0 .systemvmstring .systemvmSFD cvx { .runexec } execute0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } bind def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Define the procedure that the C code uses to set up for executing
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % a string that may be received in pieces.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% Immediate evaluation doesn't work on operators (like .needinput)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% so calling .runstringbegin will throw an undefined error if we
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% undefined .needinput so it cannot be accessed outside the init
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% code. But, we can store the operator in an array, use immediate
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% evaluation on the array to get the operator, then undefined the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% array (and because they are both of the same name, the operator
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% get undefined too).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% This prevents random Postscript from erroneously calling .needinput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% and forcing the interpreter into an invalid state.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/.needinput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+1 .systemvmarray dup 0 /.needinput load put
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.runstringbegin {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  1 .systemvmarray dup 0 /.needinput load put cvx % { .needinput } in systemvm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  1 .systemvmarray dup 0 //.needinput 0 get put cvx       % { .needinput } in systemvm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   0 0 .systemvmstring .systemvmSFD cvx .runexec
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Define a special version of runlibfile that aborts on errors.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /runlibfile0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1123,12 +1147,23 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  } bind def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- end               % errordict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--% Put all the default handlers in gserrordict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--gserrordict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--errordict {2 index 3 1 roll put} forall
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--noaccess pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--% remove the non-standard errors from errordict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+gserrordict /unknownerror errordict /unknownerror get put
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- errordict /unknownerror .undef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/.SAFERERRORLIST ErrorNames def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/.setsafererrors
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% Put all the requested handlers in gserrordict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  gserrordict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  //.SAFERERRORLIST
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {dup errordict exch get 2 index 3 1 roll put} forall
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  noaccess pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  systemdict /.setsafeerrors .forceundef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  systemdict /.SAFERERRORLIST .forceundef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SAFERERRORS {.setsafererrors} if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Define a stable private copy of handleerror that we will always use under
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % JOBSERVER mode.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.GShandleerror errordict /handleerror get def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1760,18 +1795,15 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Bind all the operators defined as procedures.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.bindoperators           % binds operators in currentdict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- { % Temporarily disable the typecheck error.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   errordict /typecheck 2 copy get
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   errordict /typecheck { pop } put       % pop the command
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    currentdict
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     { dup type /operatortype eq
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       { % This might be a real operator, so bind might cause a typecheck,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         % but we've made the error a no-op temporarily.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         .bind
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+         % This might be a real operator, so bind might cause a typecheck
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+         {.bind} .internalstopped pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       if pop pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     } forall
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   put
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  } def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- DELAYBIND not { .bindoperators } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2173,7 +2205,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   %% but can be easily restored (just delete the name from the list in the array). In future
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   %% we may remove the operator and the code implementation entirely.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   [
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  /.bitadd /.charboxpath /.cond /.countexecstack /.execstack /.runandhide /.popdevicefilter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  /.bitadd /.charboxpath /.cond /.runandhide /.popdevicefilter
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /.execfile /.filenamesplit /.file_name_parent
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /.setdefaultmatrix /.isprocfilter /.unread /.psstringencode
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /.buildsampledfunction /.isencapfunction /.currentaccuratecurves /.currentcurvejoin /.currentdashadapt /.currentdotlength
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2211,7 +2243,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /.shfill /.argindex /.bytestring /.namestring /.stringbreak /.stringmatch /.globalvmarray /.globalvmdict /.globalvmpackedarray /.globalvmstring
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /.localvmarray /.localvmdict /.localvmpackedarray /.localvmstring /.systemvmarray /.systemvmdict /.systemvmpackedarray /.systemvmstring /.systemvmfile /.systemvmlibfile
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /.systemvmSFD /.settrapparams /.currentsystemparams /.currentuserparams /.getsystemparam /.getuserparam /.setsystemparams /.setuserparams
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  /.checkpassword /.locale_to_utf8 /.currentglobal /.gcheck /.imagepath
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  /.checkpassword /.locale_to_utf8 /.currentglobal /.gcheck /.imagepath /.currentoutputdevice
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  /.type /.writecvs /.setSMask /.currentSMask /.needinput /.countexecstack /.execstack /.applypolicies
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   % Used by a free user in the Library of Congress. Apparently this is used to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   % draw a partial page, which is then filled in by the results of a barcode
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2230,7 +2263,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   % test files/utilities, or engineers expressed a desire to keep them visible.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   %
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   %/currentdevice /.sort /.buildfont0 /.buildfont1 /.buildfont2 /.buildfont3 /.buildfont4 /.buildfont9 /.buildfont10 /.buildfont11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  %/.buildfotn32 /.buildfont42 /.type9mapcid /.type11mapcid /.swapcolors
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  %/.buildfont32 /.buildfont42 /.type9mapcid /.type11mapcid /.swapcolors
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   %/currentdevice  /.quit /.setuseciecolor /.needinput /.setoverprintmode /.special_op /.dicttomark /.knownget
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   %/.FAPIavailable /.FAPIpassfont /.FAPIrebuildfont /.FAPIBuildGlyph /.FAPIBuildChar /.FAPIBuildGlyph9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   %/.tempfile /.numicc_components /.set_outputintent  /.max /.min /.vmreclaim /.getpath /.setglobal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_lev2.ps ghostscript-9.25-1/Resource/Init/gs_lev2.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_lev2.ps       2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_lev2.ps       2018-10-19 23:32:36.960622205 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -163,10 +163,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         % Set them again to the new values.  From here on, we are safe,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         % since a context switch will consult userparams.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   .setuserparams
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind executeonly def % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /setuserparams {          % <dict> setuserparams -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    .setuserparams2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {.setuserparams2} stopped
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {/setuserparams load $error /errorname get signalerror} if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } .bind odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Initialize user parameters managed here.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /JobName () .definepsuserparam
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -415,7 +416,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % VMReclaim and VMThreshold are user parameters.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /setvmthreshold {         % <int> setvmthreshold -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  mark /VMThreshold 2 .argindex .dicttomark .setuserparams2 pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  mark /VMThreshold 2 .argindex .dicttomark {.setuserparams2} stopped
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {pop /setvmthreshold load $error /errorname get signalerror}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {pop} ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /vmreclaim {                      % <int> vmreclaim -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   dup 0 gt {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -427,7 +430,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     % VMReclaim userparam controls enable/disable GC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    mark /VMReclaim 2 index .dicttomark .setuserparams2 pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    mark /VMReclaim 2 index .dicttomark {.setuserparams2} stopped
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {pop /vmreclaim load $error /errorname get signalerror}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {pop} ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -1 setvmthreshold
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_pdfwr.ps ghostscript-9.25-1/Resource/Init/gs_pdfwr.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_pdfwr.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_pdfwr.ps      2018-10-19 23:32:36.960622205 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -660,7 +660,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind executeonly def % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Use the DSC processing hook to pass DSC comments to the driver.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % We use a pseudo-parameter named DSC whose value is an array:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_resmp.ps ghostscript-9.25-1/Resource/Init/gs_resmp.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_resmp.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_resmp.ps      2018-10-20 01:32:43.867083905 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -183,7 +183,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   % We don't check them.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   currentglobal //false setglobal                  % <object> bGlobal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  countexecstack array execstack                   % <object> bGlobal [execstack]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  //false .countexecstack array //false .execstack % <object> bGlobal [execstack]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   dup //null exch                                  % <object> bGlobal [execstack] null [execstack]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   length 3 sub -1 0 {                              % <object> bGlobal [execstack] null i
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     2 index exch get                               % <object> bGlobal [execstack] null proc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_setpd.ps ghostscript-9.25-1/Resource/Init/gs_setpd.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_setpd.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_setpd.ps      2018-10-20 01:34:43.828823362 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -608,59 +608,72 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % in the <failed> dictionary with the policy value,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % and we replace the key in the <merged> dictionary with its prior value
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % (or remove it if it had no prior value).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/.policyprocs mark
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % These procedures are called with the following on the stack:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- %   <orig> <merged> <failed> <Policies> <key> <policy>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % They are expected to consume the top 2 operands.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % NOTE: we currently treat all values other than 0, 1, or 7 (for PageSize)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % the same as 0, i.e., we signal an error.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--% M. Sweet, Easy Software Products:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--%
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--% selection policies for setpagedevice.  This is used by CUPS to support
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--% the standard Adobe media attributes.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  0 {             % Set errorinfo and signal a configurationerror.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      NOMEDIAATTRS {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        % NOMEDIAATTRS means that the default policy is 7...
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        pop 2 index exch 7 put
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        pop dup 4 index exch get 2 array astore
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        $error /errorinfo 3 -1 roll put
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        cleartomark
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        /setpagedevice .systemvar /configurationerror signalerror
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  } bind
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  1 {             % Roll back the failed request to its previous status.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--SETPDDEBUG { (Rolling back.) = pstack flush } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        3 index 2 index 3 -1 roll .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        4 index 1 index .knownget
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         { 4 index 3 1 roll .forceput }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         { 3 index exch .undef }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  } .bind executeonly % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  7 {             % For PageSize only, just impose the request.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        1 index /PageSize eq
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         { pop pop 1 index /PageSize 7 put }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         { .policyprocs 0 get exec }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  } bind
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--.dicttomark readonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/0Policy {                % Set errorinfo and signal a configurationerror.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  NOMEDIAATTRS {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    % NOMEDIAATTRS means that the default policy is 7...
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    pop 2 index exch 7 put
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    pop dup 4 index exch get 2 array astore
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    $error /errorinfo 3 -1 roll put
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    cleartomark
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    /setpagedevice .systemvar /configurationerror signalerror
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% Making this an operator means we can properly hide
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+% the contents - specifically .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/1Policy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  % Roll back the failed request to its previous status.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  SETPDDEBUG { (Rolling back.) = pstack flush } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  3 index 2 index 3 -1 roll .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  4 index 1 index .knownget
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  { 4 index 3 1 roll .forceput }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  { 3 index exch .undef }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/7Policy {                % For PageSize only, just impose the request.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  1 index /PageSize eq
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  { pop pop 1 index /PageSize 7 put }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  { .policyprocs 0 get exec }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.applypolicies           % <orig> <merged> <failed> .applypolicies
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                         %   <orig> <merged'> <failed'>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- { 1 index /Policies get 1 index
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    { type /integertype eq
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       { pop              % already processed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       { 2 copy .knownget not { 1 index /PolicyNotFound get } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                        % Stack: <orig> <merged> <failed> <Policies> <key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                        %   <policy>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--         .policyprocs 1 index .knownget not { .policyprocs 0 get } if exec
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   forall pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- } bind def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  1 index /Policies get 1 index
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  { type /integertype eq
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       pop                % already processed
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     }{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       2 copy .knownget not { 1 index /PolicyNotFound get } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      % Stack: <orig> <merged> <failed> <Policies> <key>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      %   <policy>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        dup 1 eq {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          1Policy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          dup 7 eq {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            7Policy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          }{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            0Policy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  forall pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+currentdict /0Policy undef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+currentdict /1Policy undef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+currentdict /7Policy undef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Prepare to present parameters to the device, by spreading them onto the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % operand stack and removing any that shouldn't be presented.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -877,7 +890,13 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 % Stack: mark <orig> <request> <merged> <failed>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- SETPDDEBUG { (Constructing.) = pstack flush } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   currentdevice .devicename 2 index /OutputDevice get eq
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   % Non-obvious: we need to check the name of the output device, to tell
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   % whether we're going to have to replace the entire device chain (which
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   % may be only one device, or may be multiple devices.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   % If we're not replacing the entire change, we have to use the device in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   % the graphics state, so the configuration of the entire device chain is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   % correctly set.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   .currentoutputdevice .devicename 2 index /OutputDevice get eq
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     { currentdevice }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     { 1 index /OutputDevice get finddevice }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -997,7 +1016,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     .postinstall
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   setglobal           % return to original VM allocation mode
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % We break out the code after calling the Install procedure into a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % separate procedure, since it is executed even if Install causes an error.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_typ32.ps ghostscript-9.25-1/Resource/Init/gs_typ32.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_typ32.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_typ32.ps      2018-10-19 23:32:36.960622205 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -79,15 +79,19 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- .dicttomark /ProcSet defineresource pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.cidfonttypes where { pop } { /.cidfonttypes 6 dict def } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--.cidfonttypes begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--4 % CIDFontType 4 = FontType 32
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{ dup /FontType 32 .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/CIDFontType4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  dup /FontType 32 .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   dup /CharStrings 20 dict .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   1 index exch .buildfont32 exch pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind executeonly def % must be bound and hidden for .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+.cidfonttypes begin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+4 /CIDFontType4 load def % CIDFontType 4 = FontType 32
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- end               % .cidfonttypes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+currentdict /CIDFontType4 .forceundef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Define the BuildGlyph procedure.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Since Type 32 fonts are indexed by CID, there is no BuildChar procedure.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/gs_type1.ps ghostscript-9.25-1/Resource/Init/gs_type1.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/gs_type1.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/gs_type1.ps      2018-10-19 23:32:36.961622195 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -283,7 +283,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   2 copy /WeightVector exch .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   .setweightvector
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} .bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} .bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- end
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Register the font types for definefont.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/pdf_base.ps ghostscript-9.25-1/Resource/Init/pdf_base.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/pdf_base.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/pdf_base.ps      2018-10-19 23:32:36.961622195 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -218,7 +218,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /PDFScanRules_true << /PDFScanRules //true >> def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /PDFScanRules_null << /PDFScanRules //null >> def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.pdfrun {                        % <file> <opdict> .pdfrun -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/pdf_draw.ps ghostscript-9.25-1/Resource/Init/pdf_draw.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/pdf_draw.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/pdf_draw.ps      2018-10-19 23:32:36.961622195 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1158,7 +1158,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   Q
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   PDFDEBUG { pdfdict /PDFSTEPcount .knownget { 1 le } { //true } ifelse { (%End PaintProc) print dup === flush } if } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   PDFfile exch setfileposition
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.pdfpaintproc {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     %% Get the /m from pdfopdict (must be present)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1189,7 +1189,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       switch_to_text_marking_ops
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /resolvepattern { % <patternstreamdict> resolvepattern <patterndict>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 % Don't do the resolvestream now: just capture the data
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2353,7 +2353,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     pdfdict /AppearanceNumber 0 .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /MakeAppearanceName {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   pdfdict /AppearanceNumber get
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2382,7 +2382,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   DoForm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   pdfdict /.PreservePDFForm 3 -1 roll .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   grestore
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /DoForm {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   %% save the current value, if its true we will set it to false later, in order
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2541,7 +2541,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     end
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   pdfdict /.PreservePDFForm 3 -1 roll .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /_dops_save 1 array def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/pdf_font.ps ghostscript-9.25-1/Resource/Init/pdf_font.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/pdf_font.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/pdf_font.ps      2018-10-19 23:32:36.961622195 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -718,7 +718,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {pop pop pop}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- currentdict /.DoToUnicode? .forceundef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1241,7 +1241,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     } bdef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     dup currentdict Encoding .processToUnicode
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     currentdict end .completefont exch pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.adjustcharwidth {       % <wx> <wy> .adjustcharwidth <wx'> <wy'>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   % Enforce the metrics, in glyph space, to the values found in the PDF Font object
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   % - force wy == 0 (assumed, and not stored in the PDF font)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2026,7 +2026,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     /findresource cvx /undefined signalerror
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } loop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /buildCIDType0 {  % <CIDFontType0-font-resource> buildCIDType0 <font>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   dup /BaseFont get findCIDFont exch pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2211,7 +2211,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /Type0 //buildType0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /Type1 //buildType1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /MMType1 //buildType1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  /Type3 //buildType3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  /Type3 /buildType3 load
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /TrueType //buildTrueType
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /CIDFontType0 //buildCIDType0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /CIDFontType2 //buildCIDType2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/pdf_main.ps ghostscript-9.25-1/Resource/Init/pdf_main.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/pdf_main.ps      2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/pdf_main.ps      2018-10-19 23:32:36.961622195 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -660,7 +660,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     } forall
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     pop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- currentdict /pdf_collection_files .undef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2715,7 +2715,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   .setglobal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /RepairedAnError exch def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /Repaired exch def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Display the contents of a page (including annotations).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /showpagecontents {       % <pagedict> showpagecontents -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Naur ghostscript-9.25/Resource/Init/pdf_ops.ps ghostscript-9.25-1/Resource/Init/pdf_ops.ps
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Resource/Init/pdf_ops.ps       2018-09-13 11:02:01.000000000 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Resource/Init/pdf_ops.ps       2018-10-19 23:32:36.962622184 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -193,7 +193,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       pdfformaterror
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     } ifelse
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   } if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- % Save PDF gstate
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /qstate {       % - qstate <qstate>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -451,7 +451,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   %% a gsave, so we haven't copied it to /self, if we don't do that here
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   %% then transparent annotations cause an invalid access error.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   currentdict //nodict eq {/self dup load end 5 dict begin def} if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /AIS { .setalphaisshape } bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /BM {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   /.setblendmode where {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1077,7 +1077,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     pdfopdict /v {inside_text_v} bind .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     pdfopdict /y {inside_text_y} bind .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     pdfopdict /re {inside_text_re} bind .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /switch_to_normal_marking_ops {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     pdfopdict /m {normal_m} bind .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1086,7 +1086,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     pdfopdict /v {normal_v} bind .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     pdfopdict /y {normal_y} bind .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     pdfopdict /re {normal_re} bind .forceput
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} bind executeonly def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} bind executeonly odef
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /BT {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   currentdict /TextSaveMatrix known {
</span></pre><pre style='margin:0'>

</pre>