Hello community,

here is the log from the commit of package dcraw for openSUSE:Factory checked 
in at 2020-08-28 21:18:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dcraw (Old)
 and      /work/SRC/openSUSE:Factory/.dcraw.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dcraw"

Fri Aug 28 21:18:30 2020 rev:38 rq:828966 version:9.28.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/dcraw/dcraw.changes      2019-07-31 
14:12:51.546932384 +0200
+++ /work/SRC/openSUSE:Factory/.dcraw.new.3399/dcraw.changes    2020-08-28 
21:20:59.092313241 +0200
@@ -1,0 +2,15 @@
+Sun Aug 16 22:39:47 UTC 2020 - Matthias Eliasson <eli...@opensuse.org>
+
+- Update to version 9.28.0:
+  dcraw - revision 1.478
+  * Caught up on two years' worth of new cameras.
+- Update upstream URL to new address
+- Add patches for CVEs:
+  * dcraw-CVE-2017-13735.patch (CVE-2017-13735, bsc#1056170)
+  * dcraw-CVE-2017-14608.patch (CVE-2017-14608, bsc#1063798)
+  * dcraw-CVE-2018-19655.patch (CVE-2018-19655, bsc#1117896)
+  * dcraw-CVE-2018-5801.patch (CVE-2018-5801, bsc#1084690)
+- Run spec-cleaner
+  * Remove package groups
+
+-------------------------------------------------------------------

Old:
----
  dcraw-9.27.0.tar.gz

New:
----
  dcraw-9.28.0.tar.gz
  dcraw-CVE-2017-13735.patch
  dcraw-CVE-2017-14608.patch
  dcraw-CVE-2018-19655.patch
  dcraw-CVE-2018-5801.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dcraw.spec ++++++
--- /var/tmp/diff_new_pack.kwwf5y/_old  2020-08-28 21:21:01.100314216 +0200
+++ /var/tmp/diff_new_pack.kwwf5y/_new  2020-08-28 21:21:01.104314218 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package dcraw
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,37 +12,43 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           dcraw
-Version:        9.27.0
+Version:        9.28.0
 Release:        0
 Summary:        Raw Digital Photo Decoding
 License:        GPL-2.0-or-later
-Group:          Productivity/Graphics/Convertors
-Url:            http://www.cybercom.net/~dcoffin/dcraw/
+URL:            https://www.dechifro.org/dcraw/
 #*** NOTE: run "sh update_dcraw" to update to latest version of the following 
sources ("wget", "rcs" and "lynx" packages are required for the update).
-Source0:        
http://www.cybercom.net/~dcoffin/dcraw/archive/%{name}-%{version}.tar.gz
+Source0:        https://www.dechifro.org/dcraw/archive/dcraw-%{version}.tar.gz
 Source1:        README
 # http://www.cybercom.net/~dcoffin/dcraw/.badpixels
 Source2:        badpixels
-Source3:        http://www.cybercom.net/~dcoffin/dcraw/clean_crw.c
-Source4:        http://www.cybercom.net/~dcoffin/dcraw/fuji_green.c
-Source5:        http://www.cybercom.net/~dcoffin/dcraw/fujiturn.c
-Source6:        http://www.cybercom.net/~dcoffin/dcraw/parse.c
-Source7:        http://www.cybercom.net/~dcoffin/dcraw/rawphoto.c
+Source3:        https://www.dechifro.org/dcraw/clean_crw.c
+Source4:        https://www.dechifro.org/dcraw/fuji_green.c
+Source5:        https://www.dechifro.org/dcraw/fujiturn.c
+Source6:        https://www.dechifro.org/dcraw/parse.c
+Source7:        https://www.dechifro.org/dcraw/rawphoto.c
 #***
 Source100:      README.openSUSE
 Source101:      update_dcraw
 # PATCH-FIX-OPENSUSE fuji_green.c_fix_gcc_warnings.patch 
asterios.dra...@gmail.com -- Fix gcc implicit declaration warning
 Patch0:         fuji_green.c_fix_gcc_warnings.patch
+# PATCH-FIX-UPSTREAM dcraw-CVE-2017-13735.patch
+Patch1:         dcraw-CVE-2017-13735.patch
+# PATCH-FIX-UPSTREAM dcraw-CVE-2017-14608.patch
+Patch2:         dcraw-CVE-2017-14608.patch
+# PATCH-FIX-UPSTREAM dcraw-CVE-2018-19655.patch
+Patch3:         dcraw-CVE-2018-19655.patch
+# PATCH-FIX-UPSTREAM dcraw-CVE-2018-5801.patch
+Patch4:         dcraw-CVE-2018-5801.patch
 BuildRequires:  gettext-runtime
 BuildRequires:  libjpeg-devel
 BuildRequires:  liblcms2-devel
 Recommends:     %{name}-lang = %{version}
-BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
 Command line tools for raw digital photo decoding and processing.
@@ -53,6 +59,10 @@
 %setup -q -n %{name}
 cp -a %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} .
 %patch0
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
 
 %build
 export CFLAGS="%{optflags} -fno-strict-aliasing -fstack-protector-all"
@@ -114,7 +124,6 @@
 %find_lang %{name} --with-man
 
 %files
-%defattr(-,root,root,-)
 %doc .badpixels README README.openSUSE rawphoto.c
 %{_bindir}/clean_crw
 %{_bindir}/dcparse
@@ -122,10 +131,9 @@
 %{_bindir}/fuji_green
 %{_bindir}/fujiturn
 %{_bindir}/fujiturn16
-%{_mandir}/man1/dcraw.1%{ext_man}
+%{_mandir}/man1/dcraw.1%{?ext_man}
 
 %files lang -f %{name}.lang
-%defattr(-,root,root,-)
 %dir %{_mandir}/ca
 %dir %{_mandir}/ca/man1
 %dir %{_mandir}/cs

++++++ README ++++++
--- /var/tmp/diff_new_pack.kwwf5y/_old  2020-08-28 21:21:01.172314251 +0200
+++ /var/tmp/diff_new_pack.kwwf5y/_new  2020-08-28 21:21:01.172314251 +0200
@@ -1,4 +1,4 @@
-http://www.cybercom.net/~dcoffin/dcraw/:
+https://www.dechifro.org/dcraw/:
 
    [1]Back to Dave Coffin's Home Page
 
@@ -71,7 +71,7 @@
    execute permission.
      * [17]dcraw.c -- decodes raw photos, extracts thumbnails, and
        displays metadata
-       Supports 688 cameras at last count. Compile with "gcc -o dcraw -O4
+       Supports 731 cameras at last count. Compile with "gcc -o dcraw -O4
        dcraw.c -lm -ljasper -ljpeg -llcms2" or "gcc -o dcraw -O4 dcraw.c
        -lm -DNODEPS". Run with no arguments to see a usage message. Don't
        complain that 16-bit output is too dark -- read the [18]FAQ!
@@ -465,6 +465,7 @@
      * Canon EOS 50D
      * Canon EOS 60D
      * Canon EOS 70D
+     * Canon EOS 77D / 9000D
      * Canon EOS 80D
      * Canon EOS 300D / Digital Rebel / Kiss Digital
      * Canon EOS 350D / Digital Rebel XT / Kiss Digital N
@@ -477,11 +478,14 @@
      * Canon EOS 700D / Digital Rebel T5i / Kiss Digital X7i
      * Canon EOS 750D / Digital Rebel T6i / Kiss Digital X8i
      * Canon EOS 760D / Digital Rebel T6s / Kiss Digital X9
+     * Canon EOS 800D / Digital Rebel T7i / Kiss Digital X9i
      * Canon EOS 100D / Digital Rebel SL1 / Kiss Digital X7
      * Canon EOS 1000D / Digital Rebel XS / Kiss Digital F
      * Canon EOS 1100D / Digital Rebel T3 / Kiss Digital X50
      * Canon EOS 1200D / Digital Rebel T5 / Kiss Digital X70
      * Canon EOS 1300D / Digital Rebel T6 / Kiss Digital X80
+     * Canon EOS 1500D / Digital Rebel T7 / Kiss Digital X90 / EOS 2000D
+     * Canon EOS 3000D / Digital Rebel T100 / EOS 4000D
      * Canon EOS C500
      * Canon EOS D2000C
      * Canon EOS M
@@ -564,15 +568,19 @@
      * Fuji X-E1
      * Fuji X-E2
      * Fuji X-E2S
+     * Fuji X-H1
      * Fuji X-M1
      * Fuji X-S1
      * Fuji X-T1
+     * Fuji X-T2
      * Fuji X-T10
+     * Fuji X-T20
      * Fuji XF1
      * Fuji XQ1
      * Fuji XQ2
      * Fuji X100
-     * Fuji X100s
+     * Fuji X100F
+     * Fuji X100S
      * Fuji X100T
      * Fuji X10
      * Fuji X20
@@ -584,6 +592,7 @@
      * Hasselblad H3D
      * Hasselblad H4D
      * Hasselblad V96C
+     * Hasselblad X1D
      * Imacon Ixpress 16-megapixel
      * Imacon Ixpress 22-megapixel
      * Imacon Ixpress 39-megapixel
@@ -649,6 +658,7 @@
      * Leaf Valeo 22
      * Leaf Volare
      * Leica C (Typ 112)
+     * Leica CL
      * Leica Digilux 2
      * Leica Digilux 3
      * Leica D-LUX2
@@ -662,11 +672,14 @@
      * Leica M Monochrom (Typ 246)
      * Leica M8
      * Leica M9
+     * Leica M10
      * Leica Q (Typ 116)
      * Leica R8
      * Leica S (Typ 007)
      * Leica SL (Typ 601)
      * Leica T (Typ 701)
+     * Leica TL
+     * Leica TL2
      * Leica V-LUX1
      * Leica V-LUX2
      * Leica V-LUX3
@@ -733,10 +746,12 @@
      * Nikon D800
      * Nikon D800E
      * Nikon D810
+     * Nikon D850
      * Nikon D3000
      * Nikon D3100
      * Nikon D3200
      * Nikon D3300
+     * Nikon D3400
      * Nikon D5000
      * Nikon D5100
      * Nikon D5200
@@ -745,6 +760,7 @@
      * Nikon D7000
      * Nikon D7100
      * Nikon D7200
+     * Nikon D7500
      * Nikon 1 AW1
      * Nikon 1 J1
      * Nikon 1 J2
@@ -814,10 +830,12 @@
      * Olympus E-520
      * Olympus E-620
      * Olympus E-M1
+     * Olympus E-M1 Mark II
      * Olympus E-M5
-     * Olympus E-M5MarkII
+     * Olympus E-M5 Mark II
      * Olympus E-M10
-     * Olympus E-M10MarkII
+     * Olympus E-M10 Mark II
+     * Olympus E-M10 Mark III
      * Olympus E-P1
      * Olympus E-P2
      * Olympus E-P3
@@ -828,6 +846,8 @@
      * Olympus E-PL3
      * Olympus E-PL5
      * Olympus E-PL7
+     * Olympus E-PL8
+     * Olympus E-PL9
      * Olympus E-PM1
      * Olympus E-PM2
      * Olympus PEN-F
@@ -842,6 +862,7 @@
      * Olympus SP570UZ
      * Olympus STYLUS1
      * Olympus TG-4
+     * Olympus TG-5
      * Olympus XZ-1
      * Olympus XZ-2
      * Olympus XZ-10
@@ -855,12 +876,14 @@
      * Panasonic DMC-FZ40
      * Panasonic DMC-FZ50
      * Panasonic DMC-FZ70
+     * Panasonic DC-FZ80
      * Panasonic DMC-FZ100
      * Panasonic DMC-FZ150
      * Panasonic DMC-FZ200
      * Panasonic DMC-FZ300
      * Panasonic DMC-FZ330
      * Panasonic DMC-FZ1000
+     * Panasonic DMC-FZ2000
      * Panasonic DMC-FX150
      * Panasonic DMC-G1
      * Panasonic DMC-G2
@@ -868,6 +891,8 @@
      * Panasonic DMC-G5
      * Panasonic DMC-G6
      * Panasonic DMC-G7
+     * Panasonic DC-G9
+     * Panasonic DMC-G80
      * Panasonic DMC-GF1
      * Panasonic DMC-GF2
      * Panasonic DMC-GF3
@@ -878,12 +903,15 @@
      * Panasonic DMC-GH2
      * Panasonic DMC-GH3
      * Panasonic DMC-GH4
+     * Panasonic DC-GH5
      * Panasonic DMC-GM1
      * Panasonic DMC-GM5
      * Panasonic DMC-GX1
      * Panasonic DMC-GX7
      * Panasonic DMC-GX8
+     * Panasonic DC-GX9
      * Panasonic DMC-GX80
+     * Panasonic DC-GX800
      * Panasonic DMC-L1
      * Panasonic DMC-L10
      * Panasonic DMC-LC1
@@ -893,10 +921,13 @@
      * Panasonic DMC-LX3
      * Panasonic DMC-LX5
      * Panasonic DMC-LX7
+     * Panasonic DMC-LX15
      * Panasonic DMC-LX100
      * Panasonic DMC-TZ61
      * Panasonic DMC-TZ80
+     * Panasonic DC-TZ90
      * Panasonic DMC-TZ100
+     * Panasonic DC-TZ200
      * Panasonic DMC-ZS40
      * Pentax *ist D
      * Pentax *ist DL
@@ -918,10 +949,12 @@
      * Pentax K-5 II
      * Pentax K-5 II s
      * Pentax K-50
+     * Pentax K-70
      * Pentax K-500
      * Pentax K-7
      * Pentax K-S1
      * Pentax K-S2
+     * Pentax KP
      * Pentax Optio S
      * Pentax Optio S4
      * Pentax Optio 33WR
@@ -1000,15 +1033,19 @@
      * SMaL Ultra-Pocket 5
      * Sony DSC-F828
      * Sony DSC-R1
+     * Sony DSC-RX0
      * Sony DSC-RX1
      * Sony DSC-RX1R
      * Sony DSC-RX1RM2
      * Sony DSC-RX10
      * Sony DSC-RX10M2
+     * Sony DSC-RX10M3
+     * Sony DSC-RX10M4
      * Sony DSC-RX100
      * Sony DSC-RX100M2
      * Sony DSC-RX100M3
      * Sony DSC-RX100M4
+     * Sony DSC-RX100M5
      * Sony DSC-V3
      * Sony DSLR-A100
      * Sony DSLR-A200
@@ -1027,17 +1064,22 @@
      * Sony DSLR-A900
      * Sony ILCA-68
      * Sony ILCA-77M2
-     * Sony ILCE-7M2
+     * Sony ILCA-99M2
      * Sony ILCE-7
+     * Sony ILCE-7M2
+     * Sony ILCE-7M3
      * Sony ILCE-7R
      * Sony ILCE-7RM2
+     * Sony ILCE-7RM3
      * Sony ILCE-7S
      * Sony ILCE-7SM2
+     * Sony ILCE-9
      * Sony ILCE-3000
      * Sony ILCE-5000
      * Sony ILCE-5100
      * Sony ILCE-6000
      * Sony ILCE-6300
+     * Sony ILCE-6500
      * Sony ILCE-QX1
      * Sony NEX-3
      * Sony NEX-3N
@@ -1060,63 +1102,65 @@
      * Sony SLT-A99V
      * Sony XCD-SX910CR
      * STV680 VGA
+     * Xiro Xplorer V
+     * YI M1
      __________________________________________________________________
 
 References
 
-   1. http://www.cybercom.net/~dcoffin/
-   2. http://www.cybercom.net/~dcoffin/dcraw/plate_large.jpg
-   3. http://www.cybercom.net/~dcoffin/dcraw/index_eo.html
-   4. http://www.cybercom.net/~dcoffin/dcraw/index_pt.html
-   5. http://www.cybercom.net/~dcoffin/dcraw/index_de.html
-   6. http://www.cybercom.net/~dcoffin/dcraw/index_ru.html
+   1. https://www.dechifro.org/
+   2. https://www.dechifro.org/dcraw/plate_large.jpg
+   3. https://www.dechifro.org/dcraw/index_eo.html
+   4. https://www.dechifro.org/dcraw/index_pt.html
+   5. https://www.dechifro.org/dcraw/index_de.html
+   6. https://www.dechifro.org/dcraw/index_ru.html
    7. http://science-all.com/dcraw.html
    8. http://gphoto.sourceforge.net/
-   9. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c
-  10. http://www.cybercom.net/~dcoffin/resume.html
+   9. https://www.dechifro.org/dcraw/dcraw.c
+  10. https://www.dechifro.org/resume.html
   11. http://www.outbackphoto.com/artofraw/raw_07/essay.html
   12. 
http://news.cnet.com/Nikons-photo-encryption-reported-broken/2100-1030_3-5679848.html
   13. http://www.dpreview.com/news/0504/05042701davecoffininterview.asp
   14. http://www.editorsguild.com/v2/magazine/archives/0705/cover_story.htm
   15. http://archive.is/0FyJw
   16. 
https://web.archive.org/web/20121015035554/http://www.ladinamo.org/english/raw-format-the-captive-photo.php
-  17. http://www.cybercom.net/~dcoffin/dcraw/dcraw.c
-  18. http://www.cybercom.net/~dcoffin/dcraw/#faq
-  19. http://www.cybercom.net/~dcoffin/dcraw/dcraw.1.html
-  20. http://www.cybercom.net/~dcoffin/dcraw/rawphoto.c
+  17. https://www.dechifro.org/dcraw/dcraw.c
+  18. https://www.dechifro.org/dcraw/#faq
+  19. https://www.dechifro.org/dcraw/dcraw.1.html
+  20. https://www.dechifro.org/dcraw/rawphoto.c
   21. http://ufraw.sourceforge.net/
   22. http://homepages.ihug.co.nz/~peps/
-  23. http://www.cybercom.net/~dcoffin/dcraw/.badpixels
-  24. http://www.cybercom.net/~dcoffin/dcraw/RCS/dcraw.c,v
+  23. https://www.dechifro.org/dcraw/.badpixels
+  24. https://www.dechifro.org/dcraw/RCS/dcraw.c,v
   25. http://www.cs.purdue.edu/homes/trinkle/RCS/
-  26. http://www.cybercom.net/~dcoffin/dcraw/parse.c
-  27. http://www.cybercom.net/~dcoffin/dcraw/clean_crw.c
-  28. http://www.cybercom.net/~dcoffin/dcraw/fujiturn.c
-  29. http://www.cybercom.net/~dcoffin/dcraw/fuji_green.c
-  30. http://www.cybercom.net/~dcoffin/dcraw/decompress.c
-  31. http://www.cybercom.net/~dcoffin/dcraw/sony_clear.c
-  32. http://www.cybercom.net/~dcoffin/dcraw/archive/
-  33. http://www.cybercom.net/~dcoffin/dcraw/dcraw_eo.1.html
-  34. http://www.cybercom.net/~dcoffin/dcraw/dcraw_ru.1.html
-  35. http://www.cybercom.net/~dcoffin/dcraw/dcraw_fr.1.html
-  36. http://www.cybercom.net/~dcoffin/dcraw/dcraw_it.1.html
-  37. http://www.cybercom.net/~dcoffin/dcraw/dcraw_de.1.html
-  38. http://www.cybercom.net/~dcoffin/dcraw/dcraw_pt.1.html
-  39. http://www.cybercom.net/~dcoffin/dcraw/dcraw_es.1.html
-  40. http://www.cybercom.net/~dcoffin/dcraw/dcraw_nl.1.html
-  41. http://www.cybercom.net/~dcoffin/dcraw/dcraw_pl.1.html
-  42. http://www.cybercom.net/~dcoffin/dcraw/dcraw_hu.1.html
-  43. http://www.cybercom.net/~dcoffin/dcraw/dcraw_cs.1.html
-  44. http://www.cybercom.net/~dcoffin/dcraw/dcraw_sv.1.html
-  45. http://www.cybercom.net/~dcoffin/dcraw/dcraw_ca.1.html
-  46. http://www.cybercom.net/~dcoffin/dcraw/dcraw_da.1.html
-  47. http://www.cybercom.net/~dcoffin/dcraw/dcraw_ro.1.html
-  48. http://www.cybercom.net/~dcoffin/dcraw/dcraw_ja.1.html
-  49. http://www.cybercom.net/~dcoffin/dcraw/dcraw_zh_TW.1.html
-  50. http://www.cybercom.net/~dcoffin/dcraw/dcraw_zh_CN.1.html
-  51. http://www.cybercom.net/~dcoffin/dcraw/msdos/
-  52. http://www.cybercom.net/~dcoffin/dcraw/dcraw.1
-  53. http://www.cybercom.net/~dcoffin/dcraw/dcraw_eo.po
+  26. https://www.dechifro.org/dcraw/parse.c
+  27. https://www.dechifro.org/dcraw/clean_crw.c
+  28. https://www.dechifro.org/dcraw/fujiturn.c
+  29. https://www.dechifro.org/dcraw/fuji_green.c
+  30. https://www.dechifro.org/dcraw/decompress.c
+  31. https://www.dechifro.org/dcraw/sony_clear.c
+  32. https://www.dechifro.org/dcraw/archive/
+  33. https://www.dechifro.org/dcraw/dcraw_eo.1.html
+  34. https://www.dechifro.org/dcraw/dcraw_ru.1.html
+  35. https://www.dechifro.org/dcraw/dcraw_fr.1.html
+  36. https://www.dechifro.org/dcraw/dcraw_it.1.html
+  37. https://www.dechifro.org/dcraw/dcraw_de.1.html
+  38. https://www.dechifro.org/dcraw/dcraw_pt.1.html
+  39. https://www.dechifro.org/dcraw/dcraw_es.1.html
+  40. https://www.dechifro.org/dcraw/dcraw_nl.1.html
+  41. https://www.dechifro.org/dcraw/dcraw_pl.1.html
+  42. https://www.dechifro.org/dcraw/dcraw_hu.1.html
+  43. https://www.dechifro.org/dcraw/dcraw_cs.1.html
+  44. https://www.dechifro.org/dcraw/dcraw_sv.1.html
+  45. https://www.dechifro.org/dcraw/dcraw_ca.1.html
+  46. https://www.dechifro.org/dcraw/dcraw_da.1.html
+  47. https://www.dechifro.org/dcraw/dcraw_ro.1.html
+  48. https://www.dechifro.org/dcraw/dcraw_ja.1.html
+  49. https://www.dechifro.org/dcraw/dcraw_zh_TW.1.html
+  50. https://www.dechifro.org/dcraw/dcraw_zh_CN.1.html
+  51. https://www.dechifro.org/dcraw/msdos/
+  52. https://www.dechifro.org/dcraw/dcraw.1
+  53. https://www.dechifro.org/dcraw/dcraw_eo.po
   54. http://www.acdsystems.com/
   55. http://www.adobe.com/products/photoshop/cameraraw.html
   56. http://www.br-software.com/
@@ -1178,10 +1222,10 @@
  112. http://www.delorie.com/djgpp/
  113. http://www.trnicely.net/misc/vista.html
  114. http://www.sno.phy.queensu.ca/~phil/exiftool/
- 115. http://www.cybercom.net/~dcoffin/dcraw/scan.c
- 116. http://www.cybercom.net/~dcoffin/dcraw/read_ndf.c
+ 115. https://www.dechifro.org/dcraw/scan.c
+ 116. https://www.dechifro.org/dcraw/read_ndf.c
  117. http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf
- 118. http://www.cybercom.net/~dcoffin/N4378.pdf
+ 118. https://www.dechifro.org/N4378.pdf
  119. http://www.adobe.com/products/dng/pdfs/dng_spec.pdf
  120. http://xyrion.org/ciff/
  121. 
http://web.archive.org/web/20070317042320/http://www.x3f.info/technotes/FileDocs/X3F_Format.pdf
@@ -1189,13 +1233,13 @@
  123. http://www.imaging-resource.com/MFR1.HTM
  124. http://www.rawsamples.ch/
  125. http://dl.maptools.org/dl/libtiff/tiff-3.8.2.tar.gz
- 126. http://www.cybercom.net/~dcoffin/dcraw/libtiff.patch
- 127. http://www.cybercom.net/~dcoffin/dcraw/elphel_dng.c
+ 126. https://www.dechifro.org/dcraw/libtiff.patch
+ 127. https://www.dechifro.org/dcraw/elphel_dng.c
  128. http://www.adobe.com/products/dng/main.html
  129. http://www.adobe.com/products/photoshop/main.html
  130. http://cinepaint.sourceforge.net/
- 131. http://www.cybercom.net/~dcoffin/dcraw/ahd_maze.png
- 132. http://www.cybercom.net/~dcoffin/dcraw/vng_grid.png
+ 131. https://www.dechifro.org/dcraw/ahd_maze.png
+ 132. https://www.dechifro.org/dcraw/vng_grid.png
  133. http://netpbm.sourceforge.net/
  134. http://www.imagemagick.org/
  135. http://www.faqs.org/docs/artu/multiprogramchapter.html

++++++ dcraw-9.27.0.tar.gz -> dcraw-9.28.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dcraw/dcraw.c new/dcraw/dcraw.c
--- old/dcraw/dcraw.c   2016-05-10 23:40:17.000000000 +0200
+++ new/dcraw/dcraw.c   2018-06-01 23:20:44.000000000 +0200
@@ -1,6 +1,6 @@
 /*
    dcraw.c -- Dave Coffin's raw photo decoder
-   Copyright 1997-2016 by Dave Coffin, dcoffin a cybercom o net
+   Copyright 1997-2018 by Dave Coffin, dcoffin a cybercom o net
 
    This is a command-line ANSI C program to convert raw photos from
    any digital camera on any computer running any operating system.
@@ -19,11 +19,11 @@
    *If you have not modified dcraw.c in any way, a link to my
    homepage qualifies as "full source code".
 
-   $Revision: 1.477 $
-   $Date: 2016/05/10 21:30:43 $
+   $Revision: 1.478 $
+   $Date: 2018/06/01 20:36:25 $
  */
 
-#define DCRAW_VERSION "9.27"
+#define DCRAW_VERSION "9.28"
 
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE
@@ -98,8 +98,9 @@
 
 /*
    All global variables are defined here, and all functions that
-   access them are prefixed with "CLASS".  Note that a thread-safe
-   C++ class cannot have non-const static local variables.
+   access them are prefixed with "CLASS".  For thread-safety, all
+   non-const static local variables except cbrt[] must be declared
+   "thread_local".
  */
 FILE *ifp, *ofp;
 short order;
@@ -1640,7 +1641,7 @@
            for (col = (qc ? ph1.split_col : 0);
                 col < (qc ? raw_width : ph1.split_col); col++)
              RAW(row,col) = curve[RAW(row,col)];
-        }
+       }
       }
       qmult_applied = 1;
       qlin_applied = 1;
@@ -1923,10 +1924,10 @@
   UINT64 bitbuf=0;
 
   bwide = raw_width * tiff_bps / 8;
-  bwide += bwide & load_flags >> 7;
+  bwide += bwide & load_flags >> 9;
   rbits = bwide * 8 - raw_width * tiff_bps;
   if (load_flags & 1) bwide = bwide * 16 / 15;
-  bite = 8 + (load_flags & 24);
+  bite = 8 + (load_flags & 56);
   half = (raw_height+1) >> 1;
   for (irow=0; irow < raw_height; irow++) {
     row = irow;
@@ -1944,10 +1945,10 @@
       for (vbits -= tiff_bps; vbits < 0; vbits += bite) {
        bitbuf <<= bite;
        for (i=0; i < bite; i+=8)
-         bitbuf |= (unsigned) (fgetc(ifp) << i);
+         bitbuf |= ((UINT64) fgetc(ifp) << i);
       }
       val = bitbuf << (64-tiff_bps-vbits) >> (64-tiff_bps);
-      RAW(row,col ^ (load_flags >> 6 & 1)) = val;
+      RAW(row,col ^ (load_flags >> 6 & 3)) = val;
       if (load_flags & 1 && (col % 10) == 9 && fgetc(ifp) &&
        row < height+top_margin && col < width+left_margin) derror();
     }
@@ -2084,6 +2085,14 @@
   }
 }
 
+void CLASS canon_crx_load_raw()
+{
+}
+
+void CLASS fuji_xtrans_load_raw()
+{
+}
+
 void CLASS minolta_rd175_load_raw()
 {
   uchar pixel[768];
@@ -2763,7 +2772,7 @@
       }
       for (c=0; c < 16; c+=2) {
        i = len[((c & 1) << 1) | (c >> 3)];
-        RAW(row,col+c) = ((signed) ph1_bits(i) << (32-i) >> (32-i)) +
+       RAW(row,col+c) = ((signed) ph1_bits(i) << (32-i) >> (32-i)) +
          (dir ? RAW(row+(~c | -2),col+c) : col ? RAW(row,col+(c | -2)) : 128);
        if (c == 14) c = -1;
       }
@@ -3776,7 +3785,7 @@
       load_raw == &CLASS sony_load_raw ||
      (load_raw == &CLASS eight_bit_load_raw && strncmp(model,"DC2",3)) ||
       load_raw == &CLASS kodak_262_load_raw ||
-     (load_raw == &CLASS packed_load_raw && (load_flags & 32))) {
+     (load_raw == &CLASS packed_load_raw && (load_flags & 256))) {
 sides:
     mask[0][0] = mask[1][0] = top_margin;
     mask[0][2] = mask[1][2] = top_margin+height;
@@ -5210,7 +5219,7 @@
     offset = get4();
     fseek (ifp, offset-8, SEEK_CUR);
   } else if (!strcmp (buf,"OLYMPUS") ||
-             !strcmp (buf,"PENTAX ")) {
+            !strcmp (buf,"PENTAX ")) {
     base = ftell(ifp)-10;
     fseek (ifp, -2, SEEK_CUR);
     order = get2();
@@ -5735,14 +5744,13 @@
       case 258:                                /* BitsPerSample */
       case 61443:
        tiff_ifd[ifd].samples = len & 7;
-       tiff_ifd[ifd].bps = getint(type);
+       if ((tiff_ifd[ifd].bps = getint(type)) > 32)
+            tiff_ifd[ifd].bps = 8;
        if (tiff_bps < tiff_ifd[ifd].bps)
            tiff_bps = tiff_ifd[ifd].bps;
        break;
       case 61446:
        raw_height = 0;
-       if (tiff_ifd[ifd].bps > 12) break;
-       load_raw = &CLASS packed_load_raw;
        load_flags = get4() ? 24:80;
        break;
       case 259:                                /* Compression */
@@ -6030,7 +6038,7 @@
       case 50708:                      /* UniqueCameraModel */
        if (model[0]) break;
        fgets (make, 64, ifp);
-        if ((cp = strchr(make,' '))) {
+       if ((cp = strchr(make,' '))) {
          strcpy(model,cp+1);
          *cp = 0;
        }
@@ -6121,7 +6129,7 @@
        width = getint(type) - left_margin;
        break;
       case 50830:                      /* MaskedAreas */
-        for (i=0; i < len && i < 32; i++)
+       for (i=0; i < len && i < 32; i++)
          ((int *)mask)[i] = getint(type);
        black = 0;
        break;
@@ -6243,6 +6251,7 @@
       case 32767:
        if (tiff_ifd[raw].bytes == raw_width*raw_height) {
          tiff_bps = 12;
+         maximum = 4095;
          load_raw = &CLASS sony_arw2_load_raw;                 break;
        }
        if (tiff_ifd[raw].bytes*8 != raw_width*raw_height*tiff_bps) {
@@ -6258,6 +6267,9 @@
        if (!strncmp(make,"OLYMPUS",7) &&
                tiff_ifd[raw].bytes*2 == raw_width*raw_height*3)
          load_flags = 24;
+       if (!strcmp(make,"SONY") && tiff_bps < 14 &&
+               tiff_ifd[raw].bytes == raw_width*raw_height*2)
+           tiff_bps = 14;
        if (tiff_ifd[raw].bytes*5 == raw_width*raw_height*8) {
          load_flags = 81;
          tiff_bps = 12;
@@ -6267,12 +6279,16 @@
          case 12: if (tiff_ifd[raw].phint == 2)
                     load_flags = 6;
                   load_raw = &CLASS packed_load_raw;           break;
-         case 14: load_flags = 0;
+         case 14: load_raw = &CLASS packed_load_raw;
+                  if (tiff_ifd[raw].bytes*4 == raw_width*raw_height*7) break;
+                  load_flags = 0;
          case 16: load_raw = &CLASS unpacked_load_raw;
                   if (!strncmp(make,"OLYMPUS",7) &&
                        tiff_ifd[raw].bytes*7 > raw_width*raw_height)
                     load_raw = &CLASS olympus_load_raw;
        }
+       if (filters == 9 && tiff_ifd[raw].bytes*8 < 
raw_width*raw_height*tiff_bps)
+         load_raw = &CLASS fuji_xtrans_load_raw;
        break;
       case 6:  case 7:  case 99:
        load_raw = &CLASS lossless_jpeg_load_raw;               break;
@@ -6728,7 +6744,7 @@
       FORC(36) xtrans_abs[0][35-c] = fgetc(ifp) & 3;
     } else if (tag == 0x2ff0) {
       FORC4 cam_mul[c ^ 1] = get2();
-    } else if (tag == 0xc000) {
+    } else if (tag == 0xc000 && len > 20000) {
       c = order;
       order = 0x4949;
       while ((tag = get4()) > raw_width);
@@ -6808,6 +6824,72 @@
     fseek (ifp, size, SEEK_CUR);
 }
 
+void CLASS parse_crx (int end)
+{
+  unsigned i, save, size, tag, base;
+  static int index=0, wide, high, off, len;
+
+  order = 0x4d4d;
+  while (ftell(ifp)+7 < end) {
+    save = ftell(ifp);
+    if ((size = get4()) < 8) break;
+    switch (tag = get4()) {
+      case 0x6d6f6f76:                         /* moov */
+      case 0x7472616b:                         /* trak */
+      case 0x6d646961:                         /* mdia */
+      case 0x6d696e66:                         /* minf */
+      case 0x7374626c:                         /* stbl */
+       parse_crx (save+size);
+       break;
+      case 0x75756964:                         /* uuid */
+       switch (i=get4()) {
+         case 0xeaf42b5e: fseek (ifp,  8, SEEK_CUR);
+         case 0x85c0b687: fseek (ifp, 12, SEEK_CUR);
+           parse_crx (save+size);
+       }
+       break;
+      case 0x434d5431:                         /* CMT1 */
+      case 0x434d5432:                         /* CMT2 */
+       base = ftell(ifp);
+       order = get2();
+       fseek (ifp, 6, SEEK_CUR);
+       tag & 1 ? parse_tiff_ifd (base) : parse_exif (base);
+       order = 0x4d4d;
+       break;
+      case 0x746b6864:                         /* tkhd */
+       fseek (ifp, 12, SEEK_CUR);
+       index = get4();
+       fseek (ifp, 58, SEEK_CUR);
+       wide = get4();
+       high = get4();
+       break;
+      case 0x7374737a:                         /* stsz */
+       len = (get4(),get4());
+       break;
+      case 0x636f3634:                         /* co64 */
+       fseek (ifp, 12, SEEK_CUR);
+       off = get4();
+       switch (index) {
+         case 1:                       /* 1 = full size, 2 = 27% size */
+           thumb_width  = wide;
+           thumb_height = high;
+           thumb_length = len;
+           thumb_offset = off;
+           break;
+         case 3:
+           raw_width  = wide;
+           raw_height = high;
+           data_offset = off;
+           load_raw = &CLASS canon_crx_load_raw;
+       }
+       break;
+      case 0x50525657:                         /* PRVW */
+       fseek (ifp, 6, SEEK_CUR);
+    }
+    fseek (ifp, save+size, SEEK_SET);
+  }
+}
+
 void CLASS parse_qt (int end)
 {
   unsigned save, size;
@@ -7049,12 +7131,16 @@
        { 6188,-1341,-890,-7168,14489,2937,-2640,3228,8483 } },
     { "Canon EOS 5DS", 0, 0x3c96,
        { 6250,-711,-808,-5153,12794,2636,-1249,2198,5610 } },
+    { "Canon EOS 5D Mark IV", 0, 0,
+       { 6446,-366,-864,-4436,12204,2513,-952,2496,6348 } },
     { "Canon EOS 5D Mark III", 0, 0x3c80,
        { 6722,-635,-963,-4287,12460,2028,-908,2162,5668 } },
     { "Canon EOS 5D Mark II", 0, 0x3cf0,
        { 4716,603,-830,-7798,15474,2480,-1496,1937,6651 } },
     { "Canon EOS 5D", 0, 0xe6c,
        { 6347,-479,-972,-8297,15954,2480,-1968,2131,7649 } },
+    { "Canon EOS 6D Mark II", 0, 0,
+       { 6875,-970,-932,-4691,12459,2501,-874,1953,5809 } },
     { "Canon EOS 6D", 0, 0x3c82,
        { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } },
     { "Canon EOS 7D Mark II", 0, 0x3510,
@@ -7077,10 +7163,14 @@
        { 6719,-994,-925,-4408,12426,2211,-887,2129,6051 } },
     { "Canon EOS 70D", 0, 0x3bc7,
        { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } },
+    { "Canon EOS 77D", 0, 0,
+       { 7377,-742,-998,-4235,11981,2549,-673,1918,5538 } },
     { "Canon EOS 80D", 0, 0,
        { 7457,-671,-937,-4849,12495,2643,-1213,2354,5492 } },
     { "Canon EOS 100D", 0, 0x350f,
        { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
+    { "Canon EOS 200D", 0, 0,
+       { 7377,-742,-998,-4235,11981,2549,-673,1918,5538 } },
     { "Canon EOS 300D", 0, 0xfa0,
        { 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } },
     { "Canon EOS 350D", 0, 0xfff,
@@ -7103,6 +7193,8 @@
        { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
     { "Canon EOS 760D", 0, 0x350f,
        { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
+    { "Canon EOS 800D", 0, 0,
+       { 6970,-512,-968,-4425,12161,2553,-739,1982,5601 } },
     { "Canon EOS 1000D", 0, 0xe43,
        { 6771,-1139,-977,-7818,15123,2928,-1244,1437,7533 } },
     { "Canon EOS 1100D", 0, 0x3510,
@@ -7111,8 +7203,18 @@
        { 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } },
     { "Canon EOS 1300D", 0, 0x3510,
        { 6939,-1016,-866,-4428,12473,2177,-1175,2178,6162 } },
+    { "Canon EOS 1500D", 0, 0,
+       { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
+    { "Canon EOS 3000D", 0, 0,
+       { 6939,-1016,-866,-4428,12473,2177,-1175,2178,6162 } },
+    { "Canon EOS M6", 0, 0,
+       { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
+    { "Canon EOS M5", 0, 0,    /* also M50 */
+       { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
     { "Canon EOS M3", 0, 0,
        { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
+    { "Canon EOS M100", 0, 0,
+       { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
     { "Canon EOS M10", 0, 0,
        { 6400,-480,-888,-5294,13416,2047,-1296,2203,6137 } },
     { "Canon EOS M", 0, 0,
@@ -7157,6 +7259,8 @@
        { 7474,-2301,-567,-4056,11456,2975,-222,716,4181 } },
     { "Canon PowerShot G16", 0, 0,
        { 8020,-2687,-682,-3704,11879,2052,-965,1921,5556 } },
+    { "Canon PowerShot G1 X Mark III", 0, 0,
+       { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
     { "Canon PowerShot G1 X", 0, 0,
        { 7378,-1255,-1043,-4088,12251,2048,-876,1946,5805 } },
     { "Canon PowerShot G1", 0, 0,
@@ -7175,6 +7279,8 @@
        { 9877,-3775,-871,-7613,14807,3072,-1448,1305,7485 } },
     { "Canon PowerShot G7 X", 0, 0,
        { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
+    { "Canon PowerShot G9 X Mark II", 0, 0,
+       { 10056,-4131,-944,-2576,11143,1625,-238,1294,5179 } },
     { "Canon PowerShot G9 X", 0, 0,
        { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
     { "Canon PowerShot G9", 0, 0,
@@ -7269,6 +7375,8 @@
        { 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } },
     { "Fujifilm F8", 0, 0,
        { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
+    { "Fujifilm GFX 50S", 0, 0,
+       { 11756,-4754,-874,-3056,11045,2305,-381,1457,6006 } },
     { "Fujifilm S100FS", 514, 0,
        { 11521,-4355,-1065,-6524,13767,3058,-1466,1984,6045 } },
     { "Fujifilm S1", 0, 0,
@@ -7277,9 +7385,9 @@
        { 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } },
     { "Fujifilm S20", 512, 0x3fff,
        { 11401,-4498,-1312,-5088,12751,2613,-838,1568,5941 } },
-    { "Fujifilm S2Pro", 128, 0,
+    { "Fujifilm S2Pro", 128, 0xf15,
        { 12492,-4690,-1402,-7033,15423,1647,-1507,2111,7697 } },
-    { "Fujifilm S3Pro", 0, 0,
+    { "Fujifilm S3Pro", 0, 0x3dff,
        { 11807,-4612,-1294,-8927,16968,1988,-2120,2741,8006 } },
     { "Fujifilm S5Pro", 0, 0,
        { 12300,-5110,-1304,-9117,17143,1998,-1947,2448,8100 } },
@@ -7313,7 +7421,7 @@
        { 12300,-5110,-1304,-9117,17143,1998,-1947,2448,8100 } },
     { "Fujifilm HS10 HS11", 0, 0xf68,
        { 12440,-3954,-1183,-1123,9674,1708,-83,1614,4086 } },
-    { "Fujifilm HS2", 0, 0,
+    { "Fujifilm HS2", 0, 0xfef,
        { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
     { "Fujifilm HS3", 0, 0,
        { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
@@ -7321,6 +7429,8 @@
        { 12085,-4727,-953,-3257,11489,2002,-511,2046,4592 } },
     { "Fujifilm F900EXR", 0, 0,
        { 12085,-4727,-953,-3257,11489,2002,-511,2046,4592 } },
+    { "Fujifilm X100F", 0, 0,
+       { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } },
     { "Fujifilm X100S", 0, 0,
        { 10592,-4262,-1008,-3514,11355,2465,-870,2025,6386 } },
     { "Fujifilm X100T", 0, 0,
@@ -7339,26 +7449,42 @@
        { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } },
     { "Fujifilm X-Pro2", 0, 0,
        { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } },
+    { "Fujifilm X-A10", 0, 0,
+       { 11540,-4999,-991,-2949,10963,2278,-382,1049,5605 } },
+    { "Fujifilm X-A20", 0, 0,
+       { 11540,-4999,-991,-2949,10963,2278,-382,1049,5605 } },
     { "Fujifilm X-A1", 0, 0,
        { 11086,-4555,-839,-3512,11310,2517,-815,1341,5940 } },
     { "Fujifilm X-A2", 0, 0,
        { 10763,-4560,-917,-3346,11311,2322,-475,1135,5843 } },
+    { "Fujifilm X-A3", 0, 0,
+       { 12407,-5222,-1086,-2971,11116,2120,-294,1029,5284 } },
+    { "Fujifilm X-A5", 0, 0,
+       { 11673,-4760,-1041,-3988,12058,2166,-771,1417,5569 } },
     { "Fujifilm X-E1", 0, 0,
        { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } },
     { "Fujifilm X-E2S", 0, 0,
        { 11562,-5118,-961,-3022,11007,2311,-525,1569,6097 } },
     { "Fujifilm X-E2", 0, 0,
        { 8458,-2451,-855,-4597,12447,2407,-1475,2482,6526 } },
+    { "Fujifilm X-E3", 0, 0,
+       { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } },
+    { "Fujifilm X-H1", 0, 0,
+       { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } },
     { "Fujifilm X-M1", 0, 0,
        { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } },
     { "Fujifilm X-S1", 0, 0,
        { 13509,-6199,-1254,-4430,12733,1865,-331,1441,5022 } },
     { "Fujifilm X-T1", 0, 0,   /* also X-T10 */
        { 8458,-2451,-855,-4597,12447,2407,-1475,2482,6526 } },
+    { "Fujifilm X-T2", 0, 0,   /* also X-T20 */
+       { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } },
     { "Fujifilm XF1", 0, 0,
        { 13509,-6199,-1254,-4430,12733,1865,-331,1441,5022 } },
     { "Fujifilm XQ", 0, 0,     /* XQ1 and XQ2 */
        { 9252,-2704,-1064,-5893,14265,1717,-1101,2341,4349 } },
+    { "GoPro HERO5 Black", 0, 0,
+       { 10344,-4210,-620,-2315,10625,1948,93,1058,5541 } },
     { "Imacon Ixpress", 0, 0,          /* DJC */
        { 7025,-1415,-704,-5188,13765,1424,-1248,2742,6038 } },
     { "Kodak NC2000", 0, 0,
@@ -7471,6 +7597,8 @@
        { 7013,-1408,-635,-5268,12902,2640,-1470,2801,7379 } },
     { "Nikon D3300", 0, 0,
        { 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 } },
+    { "Nikon D3400", 0, 0,
+       { 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 } },
     { "Nikon D300", 0, 0,
        { 9030,-1992,-715,-8465,16302,2255,-2689,3217,8069 } },
     { "Nikon D3X", 0, 0,
@@ -7499,6 +7627,8 @@
        { 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 } },
     { "Nikon D5500", 0, 0,
        { 8821,-2938,-785,-4178,12142,2287,-824,1651,6860 } },
+    { "Nikon D5600", 0, 0,
+       { 8821,-2938,-785,-4178,12142,2287,-824,1651,6860 } },
     { "Nikon D500", 0, 0,
        { 8813,-3210,-1036,-4703,12868,2021,-1054,1940,6129 } },
     { "Nikon D50", 0, 0,
@@ -7517,12 +7647,16 @@
        { 8322,-3112,-1047,-6367,14342,2179,-988,1638,6394 } },
     { "Nikon D7200", 0, 0,
        { 8322,-3112,-1047,-6367,14342,2179,-988,1638,6394 } },
+    { "Nikon D7500", 0, 0,
+       { 8813,-3210,-1036,-4703,12868,2021,-1054,1940,6129 } },
     { "Nikon D750", 0, 0,
        { 9020,-2890,-715,-4535,12436,2348,-934,1919,7086 } },
     { "Nikon D700", 0, 0,
        { 8139,-2171,-663,-8747,16541,2295,-1925,2008,8093 } },
     { "Nikon D70", 0, 0,
        { 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } },
+    { "Nikon D850", 0, 0,
+       { 10405,-3755,-1270,-5461,13787,1793,-1040,2015,6785 } },
     { "Nikon D810", 0, 0,
        { 9369,-3195,-791,-4488,12430,2301,-893,1796,6872 } },
     { "Nikon D800", 0, 0,
@@ -7563,6 +7697,8 @@
        { 7971,-2314,-913,-8451,15762,2894,-1442,1520,7610 } },
     { "Nikon COOLPIX A", 0, 0,
        { 8198,-2239,-724,-4871,12389,2798,-1043,2050,7181 } },
+    { "Nikon COOLPIX B700", 200, 0,
+       { 14387,-6014,-1299,-1357,9975,1616,467,1047,4744 } },
     { "Nikon COOLPIX P330", 200, 0,
        { 10321,-3920,-931,-2750,11146,1824,-442,1545,5539 } },
     { "Nikon COOLPIX P340", 200, 0,
@@ -7661,12 +7797,18 @@
        { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
     { "Olympus E-PL7", 0, 0,
        { 9197,-3190,-659,-2606,10830,2039,-458,1250,5458 } },
+    { "Olympus E-PL8", 0, 0,
+       { 9197,-3190,-659,-2606,10830,2039,-458,1250,5458 } },
+    { "Olympus E-PL9", 0, 0,
+       { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
     { "Olympus E-PM1", 0, 0,
        { 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } },
     { "Olympus E-PM2", 0, 0,
        { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
-    { "Olympus E-M10", 0, 0,   /* also E-M10 Mark II */
+    { "Olympus E-M10", 0, 0,   /* also E-M10 Mark II & III */
        { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
+    { "Olympus E-M1Mark II", 0, 0,
+       { 9383,-3170,-763,-2457,10702,2020,-384,1236,5552 } },
     { "Olympus E-M1", 0, 0,
        { 7687,-1984,-606,-4327,11928,2721,-1381,2339,6452 } },
     { "Olympus E-M5MarkII", 0, 0,
@@ -7695,6 +7837,8 @@
        { 8360,-2420,-880,-3928,12353,1739,-1381,2416,5173 } },
     { "Olympus TG-4", 0, 0,
        { 11426,-4159,-1126,-2066,10678,1593,-120,1327,4998 } },
+    { "Olympus TG-5", 0, 0,
+       { 10899,-3833,-1082,-2112,10736,1575,-267,1452,5269 } },
     { "Olympus XZ-10", 0, 0,
        { 9777,-3483,-925,-2886,11297,1800,-602,1663,5134 } },
     { "Olympus XZ-1", 0, 0,
@@ -7730,7 +7874,7 @@
     { "Pentax K-r", 0, 0,
        { 9895,-3077,-850,-5304,13035,2521,-883,1768,6936 } },
     { "Pentax K-1", 0, 0,
-       { 8566,-2746,-1201,-3612,12204,1550,-893,1680,6264 } },
+       { 8596,-2981,-639,-4202,12046,2431,-685,1424,6122 } },
     { "Pentax K-30", 0, 0,
        { 8710,-2632,-1167,-3995,12301,1881,-981,1719,6535 } },
     { "Pentax K-3 II", 0, 0,
@@ -7741,37 +7885,45 @@
        { 8170,-2725,-639,-4440,12017,2744,-771,1465,6599 } },
     { "Pentax K-5", 0, 0,
        { 8713,-2833,-743,-4342,11900,2772,-722,1543,6247 } },
+    { "Pentax K-70", 0, 0,
+       { 8270,-2117,-1299,-4359,12953,1515,-1078,1933,5975 } },
     { "Pentax K-7", 0, 0,
        { 9142,-2947,-678,-8648,16967,1663,-2224,2898,8615 } },
     { "Pentax K-S1", 0, 0,
        { 8512,-3211,-787,-4167,11966,2487,-638,1288,6054 } },
     { "Pentax K-S2", 0, 0,
        { 8662,-3280,-798,-3928,11771,2444,-586,1232,6054 } },
+    { "Pentax KP", 0, 0,
+       { 8617,-3228,-1034,-4674,12821,2044,-803,1577,5728 } },
     { "Pentax Q-S1", 0, 0,
        { 12995,-5593,-1107,-1879,10139,2027,-64,1233,4919 } },
     { "Pentax 645D", 0, 0x3e00,
        { 10646,-3593,-1158,-3329,11699,1831,-667,2874,6287 } },
     { "Panasonic DMC-CM1", 15, 0,
        { 8770,-3194,-820,-2871,11281,1803,-513,1552,4434 } },
+    { "Panasonic DC-FZ80", 0, 0,
+       { 8550,-2908,-842,-3195,11529,1881,-338,1603,4631 } },
     { "Panasonic DMC-FZ8", 0, 0xf7f,
        { 8986,-2755,-802,-6341,13575,3077,-1476,2144,6379 } },
     { "Panasonic DMC-FZ18", 0, 0,
        { 9932,-3060,-935,-5809,13331,2753,-1267,2155,5575 } },
     { "Panasonic DMC-FZ28", 15, 0xf96,
        { 10109,-3488,-993,-5412,12812,2916,-1305,2140,5543 } },
+    { "Panasonic DMC-FZ2500", 15, 0,
+       { 7386,-2443,-743,-3437,11864,1757,-608,1660,4766 } },
     { "Panasonic DMC-FZ330", 15, 0,
        { 8378,-2798,-769,-3068,11410,1877,-538,1792,4623 } },
     { "Panasonic DMC-FZ300", 15, 0,
        { 8378,-2798,-769,-3068,11410,1877,-538,1792,4623 } },
     { "Panasonic DMC-FZ30", 0, 0xf94,
        { 10976,-4029,-1141,-7918,15491,2600,-1670,2071,8246 } },
-    { "Panasonic DMC-FZ3", 15, 0,
+    { "Panasonic DMC-FZ3", 15, 0,      /* FZ35, FZ38 */
        { 9938,-2780,-890,-4604,12393,2480,-1117,2304,4620 } },
-    { "Panasonic DMC-FZ4", 15, 0,
+    { "Panasonic DMC-FZ4", 15, 0,      /* FZ40, FZ45 */
        { 13639,-5535,-1371,-1698,9633,2430,316,1152,4108 } },
     { "Panasonic DMC-FZ50", 0, 0,
        { 7906,-2709,-594,-6231,13351,3220,-1922,2631,6537 } },
-    { "Panasonic DMC-FZ7", 15, 0,
+    { "Panasonic DMC-FZ7", 15, 0,      /* FZ70, FZ72 */
        { 11532,-4324,-1066,-2375,10847,1749,-564,1699,4351 } },
     { "Leica V-LUX1", 0, 0,
        { 7906,-2709,-594,-6231,13351,3220,-1922,2631,6537 } },
@@ -7813,6 +7965,8 @@
        { 10148,-3743,-991,-2837,11366,1659,-701,1893,4899 } },
     { "Leica D-LUX 6", 15, 0,
        { 10148,-3743,-991,-2837,11366,1659,-701,1893,4899 } },
+    { "Panasonic DMC-LX9", 15, 0,
+       { 7790,-2736,-755,-3452,11870,1769,-628,1647,4898 } },
     { "Panasonic DMC-FZ1000", 15, 0,
        { 7830,-2696,-763,-3325,11667,1866,-641,1712,4824 } },
     { "Leica V-LUX (Typ 114)", 15, 0,
@@ -7845,6 +7999,10 @@
        { 8294,-2891,-651,-3869,11590,2595,-1183,2267,5352 } },
     { "Panasonic DMC-G7", 15, 0xfff,
        { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
+    { "Panasonic DMC-G8", 15, 0xfff,   /* G8, G80, G81, G85 */
+       { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
+    { "Panasonic DC-G9", 15, 0xfff,
+       { 7685,-2375,-634,-3687,11700,2249,-748,1546,5111 } },
     { "Panasonic DMC-GF1", 15, 0xf92,
        { 7888,-1902,-1011,-8106,16085,2099,-2353,2866,7330 } },
     { "Panasonic DMC-GF2", 15, 0xfff,
@@ -7859,6 +8017,8 @@
        { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
     { "Panasonic DMC-GF8", 15, 0,
        { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
+    { "Panasonic DC-GF9", 15, 0,
+       { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
     { "Panasonic DMC-GH1", 15, 0xf92,
        { 6299,-1466,-532,-6535,13852,2969,-2331,3112,5984 } },
     { "Panasonic DMC-GH2", 15, 0xf95,
@@ -7867,6 +8027,10 @@
        { 6559,-1752,-491,-3672,11407,2586,-962,1875,5130 } },
     { "Panasonic DMC-GH4", 15, 0,
        { 7122,-2108,-512,-3155,11201,2231,-541,1423,5045 } },
+    { "Panasonic DC-GH5S", 15, 0,
+       { 6929,-2355,-708,-4192,12534,1828,-1097,1989,5195 } },
+    { "Panasonic DC-GH5", 15, 0,
+       { 7641,-2336,-605,-3218,11299,2187,-485,1338,5121 } },
     { "Panasonic DMC-GM1", 15, 0,
        { 6770,-1895,-744,-5232,13145,2303,-1664,2691,5703 } },
     { "Panasonic DMC-GM5", 15, 0,
@@ -7875,24 +8039,26 @@
        { 6763,-1919,-863,-3868,11515,2684,-1216,2387,5879 } },
     { "Panasonic DMC-GX7", 15, 0,
        { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
+    { "Panasonic DMC-GX85", 15, 0,
+       { 7771,-3020,-629,-4029,11950,2345,-821,1977,6119 } },
     { "Panasonic DMC-GX8", 15, 0,
        { 7564,-2263,-606,-3148,11239,2177,-540,1435,4853 } },
-    { "Panasonic DMC-TZ1", 15, 0,
+    { "Panasonic DC-GX9", 15, 0,
+       { 7564,-2263,-606,-3148,11239,2177,-540,1435,4853 } },
+    { "Panasonic DMC-ZS100", 15, 0,
        { 7790,-2736,-755,-3452,11870,1769,-628,1647,4898 } },
-    { "Panasonic DMC-ZS1", 15, 0,
+    { "Panasonic DC-ZS200", 15, 0,
        { 7790,-2736,-755,-3452,11870,1769,-628,1647,4898 } },
-    { "Panasonic DMC-TZ6", 15, 0,
-       { 8607,-2822,-808,-3755,11930,2049,-820,2060,5224 } },
-    { "Panasonic DMC-ZS4", 15, 0,
+    { "Panasonic DMC-ZS40", 15, 0,
        { 8607,-2822,-808,-3755,11930,2049,-820,2060,5224 } },
-    { "Panasonic DMC-TZ7", 15, 0,
+    { "Panasonic DMC-ZS50", 15, 0,
        { 8802,-3135,-789,-3151,11468,1904,-550,1745,4810 } },
-    { "Panasonic DMC-ZS5", 15, 0,
-       { 8802,-3135,-789,-3151,11468,1904,-550,1745,4810 } },
-    { "Panasonic DMC-TZ8", 15, 0,
+    { "Panasonic DMC-TZ82", 15, 0,
        { 8550,-2908,-842,-3195,11529,1881,-338,1603,4631 } },
     { "Panasonic DMC-ZS6", 15, 0,
        { 8550,-2908,-842,-3195,11529,1881,-338,1603,4631 } },
+    { "Panasonic DMC-ZS70", 15, 0,
+       { 9052,-3117,-883,-3045,11346,1927,-205,1520,4730 } },
     { "Leica S (Typ 007)", 0, 0,
        { 6063,-2234,-231,-5210,13787,1500,-1043,2866,6997 } },
     { "Leica X", 0, 0,         /* X and X-U, both (Typ 113) */
@@ -7902,7 +8068,15 @@
     { "Leica M (Typ 262)", 0, 0,
        { 6653,-1486,-611,-4221,13303,929,-881,2416,7226 } },
     { "Leica SL (Typ 601)", 0, 0,
-       { 11865,-4523,-1441,-5423,14458,935,-1587,2687,4830} },
+       { 11865,-4523,-1441,-5423,14458,935,-1587,2687,4830 } },
+    { "Leica TL2", 0, 0,
+       { 5836,-1626,-647,-5384,13326,2261,-1207,2129,5861 } },
+    { "Leica TL", 0, 0,
+       { 5463,-988,-364,-4634,12036,2946,-766,1389,6522 } },
+    { "Leica CL", 0, 0,
+       { 7414,-2393,-840,-5127,13180,2138,-1585,2468,5064 } },
+    { "Leica M10", 0, 0,
+       { 8249,-2849,-620,-5415,14756,565,-957,3074,6517 } },
     { "Phase One H 20", 0, 0,          /* DJC */
        { 1313,1855,-109,-6715,15908,808,-327,1840,6020 } },
     { "Phase One H 25", 0, 0,
@@ -7973,16 +8147,20 @@
        { 8512,-2641,-694,-8042,15670,2526,-1821,2117,7414 } },
     { "Sony DSC-V3", 0, 0,
        { 7511,-2571,-692,-7894,15088,3060,-948,1111,8128 } },
-    { "Sony DSC-RX100M", 0, 0,         /* M2, M3, and M4 */
+    { "Sony DSC-RX100M", 0, 0,         /* M2, M3, M4, and M5 */
        { 6596,-2079,-562,-4782,13016,1933,-970,1581,5181 } },
     { "Sony DSC-RX100", 0, 0,
        { 8651,-2754,-1057,-3464,12207,1373,-568,1398,4434 } },
-    { "Sony DSC-RX10", 0, 0,           /* also RX10M2 */
+    { "Sony DSC-RX10M4", 0, 0,
+       { 7699,-2566,-629,-2967,11270,1928,-378,1286,4807 } },
+    { "Sony DSC-RX10", 0, 0,           /* also RX10M2, RX10M3 */
        { 6679,-1825,-745,-5047,13256,1953,-1580,2422,5183 } },
     { "Sony DSC-RX1RM2", 0, 0,
        { 6629,-1900,-483,-4618,12349,2550,-622,1381,6514 } },
     { "Sony DSC-RX1", 0, 0,
        { 6344,-1612,-462,-4863,12477,2681,-865,1786,6899 } },
+    { "Sony DSC-RX0", 200, 0,
+       { 9396,-3507,-843,-2497,11111,1572,-343,1355,5089 } },
     { "Sony DSLR-A100", 0, 0xfeb,
        { 9437,-2811,-774,-8405,16215,2290,-710,596,7181 } },
     { "Sony DSLR-A290", 0, 0,
@@ -8017,18 +8195,26 @@
        { 6435,-1903,-536,-4722,12449,2550,-663,1363,6517 } },
     { "Sony ILCA-77M2", 0, 0,
        { 5991,-1732,-443,-4100,11989,2381,-704,1467,5992 } },
-    { "Sony ILCE-6300", 0, 0,
+    { "Sony ILCA-99M2", 0, 0,
+       { 6660,-1918,-471,-4613,12398,2485,-649,1433,6447 } },
+    { "Sony ILCE-6", 0, 0,             /* 6300, 6500 */
        { 5973,-1695,-419,-3826,11797,2293,-639,1398,5789 } },
     { "Sony ILCE-7M2", 0, 0,
        { 5271,-712,-347,-6153,13653,2763,-1601,2366,7242 } },
+    { "Sony ILCE-7M3", 0, 0,
+       { 7374,-2389,-551,-5435,13162,2519,-1006,1795,6552 } },
     { "Sony ILCE-7S", 0, 0,    /* also ILCE-7SM2 */
        { 5838,-1430,-246,-3497,11477,2297,-748,1885,5778 } },
+    { "Sony ILCE-7RM3", 0, 0,
+       { 6640,-1847,-503,-5238,13010,2474,-993,1673,6527 } },
     { "Sony ILCE-7RM2", 0, 0,
        { 6629,-1900,-483,-4618,12349,2550,-622,1381,6514 } },
     { "Sony ILCE-7R", 0, 0,
        { 4913,-541,-202,-6130,13513,2906,-1564,2151,7183 } },
     { "Sony ILCE-7", 0, 0,
        { 5271,-712,-347,-6153,13653,2763,-1601,2366,7242 } },
+    { "Sony ILCE-9", 0, 0,
+       { 6389,-1703,-378,-4562,12265,2587,-670,1489,6550 } },
     { "Sony ILCE", 0, 0,       /* 3000, 5000, 5100, 6000, and QX1 */
        { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
     { "Sony NEX-5N", 0, 0,
@@ -8071,6 +8257,8 @@
        { 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } },
     { "Sony SLT-A99", 0, 0,
        { 6344,-1612,-462,-4863,12477,2681,-865,1786,6899 } },
+    { "YI M1", 0, 0,
+       { 7712,-2059,-653,-3882,11494,2726,-710,1332,5958 } },
   };
   double cam_xyz[4][3];
   char name[130];
@@ -8226,8 +8414,11 @@
     { 5712, 3774,  62, 20, 10,  2 },
     { 5792, 3804, 158, 51,  0,  0 },
     { 5920, 3950, 122, 80,  2,  0 },
+    { 6096, 4051,  76, 35,  0,  0 },
     { 6096, 4056,  72, 34,  0,  0 },
-    { 6288, 4056, 264, 34,  0,  0 },
+    { 6288, 4056, 264, 36,  0,  0 },
+    { 6384, 4224, 120, 44,  0,  0 },
+    { 6880, 4544, 136, 42,  0,  0 },
     { 8896, 5920, 160, 64,  0,  0 },
   };
   static const struct {
@@ -8241,7 +8432,10 @@
     { 0x261, "EOS 50D" },    { 0x281, "EOS-1D Mark IV" },
     { 0x287, "EOS 60D" },    { 0x167, "EOS-1DS" },
     { 0x325, "EOS 70D" },
+    { 0x408, "EOS 77D" },    { 0x331, "EOS M" },
     { 0x350, "EOS 80D" },    { 0x328, "EOS-1D X Mark II" },
+    { 0x346, "EOS 100D" },
+    { 0x417, "EOS 200D" },
     { 0x170, "EOS 300D" },   { 0x188, "EOS-1Ds Mark II" },
     { 0x176, "EOS 450D" },   { 0x215, "EOS-1Ds Mark III" },
     { 0x189, "EOS 350D" },   { 0x324, "EOS-1D C" },
@@ -8252,12 +8446,14 @@
     { 0x301, "EOS 650D" },   { 0x302, "EOS 6D" },
     { 0x326, "EOS 700D" },   { 0x250, "EOS 7D" },
     { 0x393, "EOS 750D" },   { 0x289, "EOS 7D Mark II" },
-    { 0x347, "EOS 760D" },
+    { 0x347, "EOS 760D" },   { 0x406, "EOS 6D Mark II" },
+    { 0x405, "EOS 800D" },   { 0x349, "EOS 5D Mark IV" },
     { 0x254, "EOS 1000D" },
     { 0x288, "EOS 1100D" },
-    { 0x327, "EOS 1200D" },  { 0x382, "Canon EOS 5DS" },
-    { 0x404, "EOS 1300D" },  { 0x401, "Canon EOS 5DS R" },
-    { 0x346, "EOS 100D" },
+    { 0x327, "EOS 1200D" },  { 0x382, "EOS 5DS" },
+    { 0x404, "EOS 1300D" },  { 0x401, "EOS 5DS R" },
+    { 0x422, "EOS 1500D" },
+    { 0x432, "EOS 3000D" },
   }, sonique[] = {
     { 0x002, "DSC-R1" },     { 0x100, "DSLR-A100" },
     { 0x101, "DSLR-A900" },  { 0x102, "DSLR-A700" },
@@ -8287,7 +8483,30 @@
     { 0x155, "DSC-RX100M4" },{ 0x156, "DSC-RX10M2" },
     { 0x158, "DSC-RX1RM2" }, { 0x15a, "ILCE-QX1" },
     { 0x15b, "ILCE-7RM2" },  { 0x15e, "ILCE-7SM2" },
-    { 0x161, "ILCA-68" },    { 0x165, "ILCE-6300" },
+    { 0x161, "ILCA-68" },    { 0x162, "ILCA-99M2" },
+    { 0x163, "DSC-RX10M3" }, { 0x164, "DSC-RX100M5" },
+    { 0x165, "ILCE-6300" },  { 0x166, "ILCE-9" },
+    { 0x168, "ILCE-6500" },  { 0x16a, "ILCE-7RM3" },
+    { 0x16b, "ILCE-7M3" },   { 0x16c, "DSC-RX0" },
+    { 0x16d, "DSC-RX10M4" },
+  };
+  static const char *orig, panalias[][12] = {
+    "@DC-FZ80", "DC-FZ82", "DC-FZ85",
+    "@DC-FZ81", "DC-FZ83",
+    "@DC-GF9", "DC-GX800", "DC-GX850",
+    "@DC-GF10", "DC-GF90",
+    "@DC-GX9", "DC-GX7MK3",
+    "@DC-ZS70", "DC-TZ90", "DC-TZ91", "DC-TZ92", "DC-TZ93",
+    "@DMC-FZ40", "DMC-FZ45",
+    "@DMC-FZ2500", "DMC-FZ2000", "DMC-FZH1",
+    "@DMC-G8", "DMC-G80", "DMC-G81", "DMC-G85",
+    "@DMC-GX85", "DMC-GX80", "DMC-GX7MK2",
+    "@DMC-LX9", "DMC-LX10", "DMC-LX15",
+    "@DMC-ZS40", "DMC-TZ60", "DMC-TZ61",
+    "@DMC-ZS50", "DMC-TZ70", "DMC-TZ71",
+    "@DMC-ZS60", "DMC-TZ80", "DMC-TZ81", "DMC-TZ85",
+    "@DMC-ZS100", "DMC-ZS110", "DMC-TZ100", "DMC-TZ101", "DMC-TZ110", 
"DMC-TX1",
+    "@DC-ZS200", "DC-TX2", "DC-TZ200", "DC-TZ202", "DC-TZ220", "DC-ZS220",
   };
   static const struct {
     unsigned fsize;
@@ -8307,24 +8526,24 @@
     { 15980544,3264,2448, 0, 0, 0, 0, 8,0x61,0,1,"AgfaPhoto","DC-833m" },
     {  9631728,2532,1902, 0, 0, 0, 0,96,0x61,0,0,"Alcatel","5035D" },
     {  2868726,1384,1036, 0, 0, 0, 0,64,0x49,0,8,"Baumer","TXG14",1078 },
-    {  5298000,2400,1766,12,12,44, 2,40,0x94,0,2,"Canon","PowerShot SD300" },
-    {  6553440,2664,1968, 4, 4,44, 4,40,0x94,0,2,"Canon","PowerShot A460" },
-    {  6573120,2672,1968,12, 8,44, 0,40,0x94,0,2,"Canon","PowerShot A610" },
-    {  6653280,2672,1992,10, 6,42, 2,40,0x94,0,2,"Canon","PowerShot A530" },
-    {  7710960,2888,2136,44, 8, 4, 0,40,0x94,0,2,"Canon","PowerShot S3 IS" },
-    {  9219600,3152,2340,36,12, 4, 0,40,0x94,0,2,"Canon","PowerShot A620" },
-    {  9243240,3152,2346,12, 7,44,13,40,0x49,0,2,"Canon","PowerShot A470" },
-    { 10341600,3336,2480, 6, 5,32, 3,40,0x94,0,2,"Canon","PowerShot A720 IS" },
-    { 10383120,3344,2484,12, 6,44, 6,40,0x94,0,2,"Canon","PowerShot A630" },
-    { 12945240,3736,2772,12, 6,52, 6,40,0x94,0,2,"Canon","PowerShot A640" },
-    { 15636240,4104,3048,48,12,24,12,40,0x94,0,2,"Canon","PowerShot A650" },
-    { 15467760,3720,2772, 6,12,30, 0,40,0x94,0,2,"Canon","PowerShot SX110 IS" 
},
-    { 15534576,3728,2778,12, 9,44, 9,40,0x94,0,2,"Canon","PowerShot SX120 IS" 
},
-    { 18653760,4080,3048,24,12,24,12,40,0x94,0,2,"Canon","PowerShot SX20 IS" },
-    { 19131120,4168,3060,92,16, 4, 1,40,0x94,0,2,"Canon","PowerShot SX220 HS" 
},
-    { 21936096,4464,3276,25,10,73,12,40,0x16,0,2,"Canon","PowerShot SX30 IS" },
-    { 24724224,4704,3504, 8,16,56, 8,40,0x94,0,2,"Canon","PowerShot A3300 IS" 
},
-    { 30858240,5248,3920, 8,16,56,16,40,0x94,0,2,"Canon","IXUS 160" },
+    {  5298000,2400,1766,12,12,44, 2, 8,0x94,0,2,"Canon","PowerShot SD300" },
+    {  6553440,2664,1968, 4, 4,44, 4, 8,0x94,0,2,"Canon","PowerShot A460" },
+    {  6573120,2672,1968,12, 8,44, 0, 8,0x94,0,2,"Canon","PowerShot A610" },
+    {  6653280,2672,1992,10, 6,42, 2, 8,0x94,0,2,"Canon","PowerShot A530" },
+    {  7710960,2888,2136,44, 8, 4, 0, 8,0x94,0,2,"Canon","PowerShot S3 IS" },
+    {  9219600,3152,2340,36,12, 4, 0, 8,0x94,0,2,"Canon","PowerShot A620" },
+    {  9243240,3152,2346,12, 7,44,13, 8,0x49,0,2,"Canon","PowerShot A470" },
+    { 10341600,3336,2480, 6, 5,32, 3, 8,0x94,0,2,"Canon","PowerShot A720 IS" },
+    { 10383120,3344,2484,12, 6,44, 6, 8,0x94,0,2,"Canon","PowerShot A630" },
+    { 12945240,3736,2772,12, 6,52, 6, 8,0x94,0,2,"Canon","PowerShot A640" },
+    { 15636240,4104,3048,48,12,24,12, 8,0x94,0,2,"Canon","PowerShot A650" },
+    { 15467760,3720,2772, 6,12,30, 0, 8,0x94,0,2,"Canon","PowerShot SX110 IS" 
},
+    { 15534576,3728,2778,12, 9,44, 9, 8,0x94,0,2,"Canon","PowerShot SX120 IS" 
},
+    { 18653760,4080,3048,24,12,24,12, 8,0x94,0,2,"Canon","PowerShot SX20 IS" },
+    { 19131120,4168,3060,92,16, 4, 1, 8,0x94,0,2,"Canon","PowerShot SX220 HS" 
},
+    { 21936096,4464,3276,25,10,73,12, 8,0x16,0,2,"Canon","PowerShot SX30 IS" },
+    { 24724224,4704,3504, 8,16,56, 8, 8,0x94,0,2,"Canon","PowerShot A3300 IS" 
},
+    { 30858240,5248,3920, 8,16,56,16, 8,0x94,0,2,"Canon","IXUS 160" },
     {  1976352,1632,1211, 0, 2, 0, 1, 0,0x94,0,1,"Casio","QV-2000UX" },
     {  3217760,2080,1547, 0, 0,10, 1, 0,0x94,0,1,"Casio","QV-3*00EX" },
     {  6218368,2585,1924, 0, 0, 9, 0, 0,0x94,0,1,"Casio","QV-5700" },
@@ -8397,12 +8616,13 @@
     { 44390468,4080,5440, 0, 0, 0, 0,33,0x61,0,0,"Sinar","",68 },
     {  1409024,1376,1024, 0, 0, 1, 0, 0,0x49,0,0,"Sony","XCD-SX910CR" },
     {  2818048,1376,1024, 0, 0, 1, 0,97,0x49,0,0,"Sony","XCD-SX910CR" },
+    { 17496000,4320,3240, 0, 0, 0,0,224,0x94,0,0,"Xiro","Xplorer V" },
   };
   static const char *corp[] =
     { "AgfaPhoto", "Canon", "Casio", "Epson", "Fujifilm",
       "Mamiya", "Minolta", "Motorola", "Kodak", "Konica", "Leica",
       "Nikon", "Nokia", "Olympus", "Ricoh", "Pentax", "Phase One",
-      "Samsung", "Sigma", "Sinar", "Sony" };
+      "Samsung", "Sigma", "Sinar", "Sony", "YI" };
   char head[32], *cp;
   int hlen, flen, fsize, zero_fsize=1, i, c;
   struct jhead jh;
@@ -8490,14 +8710,20 @@
       if (is_raw == 2 && shot_select)
        parse_fuji (i);
     }
-    load_raw = &CLASS unpacked_load_raw;
     fseek (ifp, 100+28*(shot_select > 0), SEEK_SET);
     parse_tiff (data_offset = get4());
     parse_tiff (thumb_offset+12);
     apply_tiff();
+    if (!load_raw) {
+      load_raw = &CLASS unpacked_load_raw;
+      tiff_bps = 14;
+    }
   } else if (!memcmp (head,"RIFF",4)) {
     fseek (ifp, 0, SEEK_SET);
     parse_riff();
+  } else if (!memcmp (head+4,"ftypcrx ",8)) {
+    fseek (ifp, 0, SEEK_SET);
+    parse_crx (fsize);
   } else if (!memcmp (head+4,"ftypqt   ",9)) {
     fseek (ifp, 0, SEEK_SET);
     parse_qt (fsize);
@@ -8593,7 +8819,8 @@
          case 8:
            load_raw = &CLASS eight_bit_load_raw;  break;
          case 10: case 12:
-           load_flags |= 128;
+           load_flags |= 512;
+           if (!strcmp(make,"Canon")) load_flags |= 256;
            load_raw = &CLASS packed_load_raw;     break;
          case 16:
            order = 0x4949 | 0x404 * (load_flags & 1);
@@ -8648,17 +8875,25 @@
     { height  = 2616;   width  = 3896; }
   if (height == 3136 && width == 4864)  /* Pentax K20D and Samsung GX20 */
     { height  = 3124;   width  = 4688; filters = 0x16161616; }
-  if (width == 4352 && (!strcmp(model,"K-r") || !strcmp(model,"K-x")))
+  if (raw_height == 2868 && (!strcmp(model,"K-r") || !strcmp(model,"K-x")))
     {                  width  = 4309; filters = 0x16161616; }
-  if (width >= 4960 && !strncmp(model,"K-5",3))
-    { left_margin = 10; width  = 4950; filters = 0x16161616; }
-  if (width == 4736 && !strcmp(model,"K-7"))
+  if (raw_height == 3136 && !strcmp(model,"K-7"))
     { height  = 3122;   width  = 4684; filters = 0x16161616; top_margin = 2; }
-  if (width == 6080 && !strcmp(model,"K-3"))
-    { left_margin = 4;  width  = 6040; }
-  if (width == 7424 && !strcmp(model,"645D"))
-    { height  = 5502;   width  = 7328; filters = 0x61616161; top_margin = 29;
-      left_margin = 48; }
+  if (raw_height == 3284 && !strncmp(model,"K-5",3))
+    { left_margin = 10; width  = 4950; filters = 0x16161616; }
+  if (raw_height == 3300 && !strncmp(model,"K-50",4))
+    { height  = 3288,   width  = 4952;  left_margin = 0;  top_margin = 12; }
+  if (raw_height == 3664 && !strncmp(model,"K-S",3))
+    {                  width  = 5492;  left_margin = 0; }
+  if (raw_height == 4032 && !strcmp(model,"K-3"))
+    { height  = 4032;   width  = 6040;  left_margin = 4; }
+  if (raw_height == 4060 && !strcmp(model,"KP"))
+    { height  = 4032;   width  = 6032;  left_margin = 52; top_margin = 28; }
+  if (raw_height == 4950 && !strcmp(model,"K-1"))
+    { height  = 4932;   width  = 7380;  left_margin = 4;  top_margin = 18; }
+  if (raw_height == 5552 && !strcmp(model,"645D"))
+    { height  = 5502;   width  = 7328;  left_margin = 48; top_margin = 29;
+      filters = 0x61616161; }
   if (height == 3014 && width == 4096) /* Ricoh GX200 */
                        width  = 4014;
   if (dng_version) {
@@ -8703,6 +8938,10 @@
   for (i=0; i < sizeof sonique / sizeof *sonique; i++)
     if (unique_id == sonique[i].id)
       strcpy (model, sonique[i].model);
+  for (i=0; i < sizeof panalias / sizeof *panalias; i++)
+    if (panalias[i][0] == '@') orig = panalias[i]+1;
+    else if (!strcmp(model,panalias[i]))
+      adobe_coeff ("Panasonic", orig);
   if (!strcmp(make,"Nikon")) {
     if (!load_raw)
       load_raw = &CLASS packed_load_raw;
@@ -8770,7 +9009,7 @@
     colors = 4;
     tiff_bps = 10;
     load_raw = &CLASS packed_load_raw;
-    load_flags = 40;
+    load_flags = 264;
   } else if (!strcmp(model,"PowerShot Pro90 IS") ||
             !strcmp(model,"PowerShot G1")) {
     colors = 4;
@@ -8782,6 +9021,9 @@
   } else if (!strcmp(model,"EOS D2000C")) {
     filters = 0x61616161;
     black = curve[200];
+  } else if (!strcmp(model,"EOS 80D")) {
+    top_margin -= 2;
+    height += 2;
   } else if (!strcmp(model,"D1")) {
     cam_mul[0] *= 256/527.0;
     cam_mul[2] *= 256/317.0;
@@ -8836,6 +9078,8 @@
     else width -= 8;
   } else if (!strncmp(model,"D300",4)) {
     width -= 32;
+  } else if (!strncmp(model,"COOLPIX B",9)) {
+    load_flags = 24;
   } else if (!strncmp(model,"COOLPIX P",9) && raw_width != 4032) {
     load_flags = 24;
     filters = 0x94949494;
@@ -8908,12 +9152,11 @@
       height = 2144;
       width  = 2880;
       flip = 6;
-    } else if (load_raw != &CLASS packed_load_raw)
-      maximum = (is_raw == 2 && shot_select) ? 0x2f00 : 0x3e00;
+    }
     top_margin = (raw_height - height) >> 2 << 1;
     left_margin = (raw_width - width ) >> 2 << 1;
     if (width == 2848 || width == 3664) filters = 0x16161616;
-    if (width == 4032 || width == 4952 || width == 6032) left_margin = 0;
+    if (width == 4032 || width == 4952 || width == 6032 || width == 8280) 
left_margin = 0;
     if (width == 3328 && (width -= 66)) left_margin = 34;
     if (width == 4936) left_margin = 4;
     if (!strcmp(model,"HS50EXR") ||
@@ -8975,7 +9218,7 @@
   } else if (!strcmp(make,"Samsung") && raw_width == 4704) {
     height -= top_margin = 8;
     width -= 2 * (left_margin = 8);
-    load_flags = 32;
+    load_flags = 256;
   } else if (!strcmp(make,"Samsung") && raw_height == 3714) {
     height -= top_margin = 18;
     left_margin = raw_width - (width = 5536);
@@ -9045,6 +9288,11 @@
       top_margin  = 4;
       left_margin = 41;
       filters = 0x61616161;
+    } else if (raw_width == 8384) {
+      height = 6208;
+      width  = 8280;
+      top_margin  = 96;
+      left_margin = 46;
     } else if (raw_width == 9044) {
       height = 6716;
       width  = 8964;
@@ -9158,6 +9406,8 @@
       thumb_width  = 640;
     } else if (!strcmp(model,"TG-4")) {
       width -= 16;
+    } else if (!strcmp(model,"TG-5")) {
+      width -= 6;
     }
   } else if (!strcmp(model,"N Digital")) {
     height = 2047;
@@ -9203,11 +9453,6 @@
     width -= 30;
   } else if (!strcmp(make,"Sony") && raw_width == 8000) {
     width -= 32;
-    if (!strncmp(model,"DSC",3)) {
-      tiff_bps = 14;
-      load_raw = &CLASS unpacked_load_raw;
-      black = 512;
-    }
   } else if (!strcmp(model,"DSLR-A100")) {
     if (width == 3880) {
       height--;

++++++ dcraw-CVE-2017-13735.patch ++++++
diff -urNp old/dcraw.c new/dcraw.c
--- old/dcraw.c 2018-07-11 10:33:06.280425391 +0200
+++ new/dcraw.c 2018-07-11 10:45:52.722922118 +0200
@@ -2250,6 +2250,10 @@ void CLASS kodak_radc_load_raw()
     ((short *)buf)[i] = 2048;
   for (row=0; row < height; row+=4) {
     FORC3 mul[c] = getbits(6);
+#ifdef LIBRAW_LIBRARY_BUILD
+    if(!mul[0] || !mul[1] || !mul[2])
+      throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
     FORC3 {
       val = ((0x1000000/last[c] + 0x7ff) >> 12) * mul[c];
       s = val > 65564 ? 10:12;
++++++ dcraw-CVE-2017-14608.patch ++++++
diff -urNp old/dcraw.c new/dcraw.c
--- old/dcraw.c 2018-07-11 10:53:51.141803505 +0200
+++ new/dcraw.c 2018-07-11 11:30:08.850528389 +0200
@@ -2627,8 +2627,15 @@ void CLASS kodak_65000_load_raw()
       len = MIN (256, width-col);
       ret = kodak_65000_decode (buf, len);
       for (i=0; i < len; i++)
-       if ((RAW(row,col+i) =   curve[ret ? buf[i] :
-               (pred[i & 1] += buf[i])]) >> 12) derror();
+       {
+       int idx = ret ? buf[i] : (pred[i & 1] += buf[i]);
+       if(idx >=0 && idx <= 0xffff)
+        {
+          if ((RAW(row,col+i) = curve[idx]) >> 12) derror();
+         }
+        else
+          derror();
+      }        
     }
 }
 
++++++ dcraw-CVE-2018-19655.patch ++++++
Author: Filip Hroch <hr...@physics.muni.cz>
Description: stack-based buffer overflow bug
--- a/dcraw.c
+++ b/dcraw.c
@@ -8345,9 +8345,15 @@
 {
   UINT64 bitbuf=0;
   int vbits, col, i, c;
-  ushort img[2][2064];
+  ushort *img;
   double sum[]={0,0};
 
+#define IMG2D(row,col) \
+  img[(row)*width+(col)]
+
+  img = (ushort *) malloc(2*width*sizeof(ushort));
+  merror (img, "find_green()");
+
   FORC(2) {
     fseek (ifp, c ? off1:off0, SEEK_SET);
     for (vbits=col=0; col < width; col++) {
@@ -8356,13 +8362,14 @@
        for (i=0; i < bite; i+=8)
          bitbuf |= (unsigned) (fgetc(ifp) << i);
       }
-      img[c][col] = bitbuf << (64-bps-vbits) >> (64-bps);
+      IMG2D(c,col) = bitbuf << (64-bps-vbits) >> (64-bps);
     }
   }
   FORC(width-1) {
-    sum[ c & 1] += ABS(img[0][c]-img[1][c+1]);
-    sum[~c & 1] += ABS(img[1][c]-img[0][c+1]);
+    sum[ c & 1] += ABS(IMG2D(0,c)-IMG2D(1,c+1));
+    sum[~c & 1] += ABS(IMG2D(1,c)-IMG2D(0,c+1));
   }
+  free(img);
   return 100 * log(sum[0]/sum[1]);
 }
 
++++++ dcraw-CVE-2018-5801.patch ++++++
diff -urNp old/dcraw.c new/dcraw.c
--- old/dcraw.c 2018-06-14 12:38:10.519964843 +0200
+++ new/dcraw.c 2018-06-14 13:31:46.304679761 +0200
@@ -1248,6 +1248,10 @@ void CLASS nikon_load_raw()
 
 void CLASS nikon_yuv_load_raw()
 {
+#ifdef LIBRAW_LIBRARY_BUILD
+  if(!image)
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
   int row, col, yuv[4], rgb[3], b, c;
   UINT64 bitbuf=0;
 
@@ -1889,6 +1893,10 @@ void CLASS sinar_4shot_load_raw()
     unpacked_load_raw();
     return;
   }
+#ifdef LIBRAW_LIBRARY_BUILD
+  else if(!image)
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
   pixel = (ushort *) calloc (raw_width, sizeof *pixel);
   merror (pixel, "sinar_4shot_load_raw()");
   for (shot=0; shot < 4; shot++) {
@@ -2188,6 +2196,11 @@ void CLASS quicktake_100_load_raw()
 
 void CLASS kodak_radc_load_raw()
 {
+#ifdef LIBRAW_LIBRARY_BUILD
+  // All kodak radc images are 768x512
+  if(width>768 || raw_width>768 || height > 512 || raw_height>512 )
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
   static const char src[] = {
     1,1, 2,3, 3,4, 4,2, 5,7, 6,5, 7,6, 7,8,
     1,0, 2,1, 3,3, 4,4, 5,2, 6,7, 7,6, 8,5, 8,8,
@@ -2348,6 +2361,10 @@ void CLASS gamma_curve (double pwr, doub
 
 void CLASS lossy_dng_load_raw()
 {
+#ifdef LIBRAW_LIBRARY_BUILD
+  if(!image)
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
   struct jpeg_decompress_struct cinfo;
   struct jpeg_error_mgr jerr;
   JSAMPARRAY buf;
@@ -2444,6 +2461,10 @@ void CLASS eight_bit_load_raw()
 
 void CLASS kodak_c330_load_raw()
 {
+#ifdef LIBRAW_LIBRARY_BUILD
+  if(!image)
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
   uchar *pixel;
   int row, col, y, cb, cr, rgb[3], c;
 
@@ -2469,6 +2490,10 @@ void CLASS kodak_c330_load_raw()
 
 void CLASS kodak_c603_load_raw()
 {
+#ifdef LIBRAW_LIBRARY_BUILD
+  if(!image)
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
   uchar *pixel;
   int row, col, y, cb, cr, rgb[3], c;
 
@@ -2596,6 +2621,10 @@ void CLASS kodak_65000_load_raw()
 
 void CLASS kodak_ycbcr_load_raw()
 {
+#ifdef LIBRAW_LIBRARY_BUILD
+  if(!image)
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
   short buf[384], *bp;
   int row, col, len, c, i, j, k, y[2][2], cb, cr, rgb[3];
   ushort *ip;
@@ -2624,6 +2653,10 @@ void CLASS kodak_ycbcr_load_raw()
 
 void CLASS kodak_rgb_load_raw()
 {
+#ifdef LIBRAW_LIBRARY_BUILD
+  if(!image)
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
   short buf[768], *bp;
   int row, col, len, c, i, rgb[3];
   ushort *ip=image[0];
@@ -2640,6 +2673,10 @@ void CLASS kodak_rgb_load_raw()
 
 void CLASS kodak_thumb_load_raw()
 {
+#ifdef LIBRAW_LIBRARY_BUILD
+  if(!image)
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
   int row, col;
   colors = thumb_misc >> 5;
   for (row=0; row < height; row++)
@@ -3109,6 +3146,10 @@ void CLASS foveon_thumb()
 
 void CLASS foveon_sd_load_raw()
 {
+#ifdef LIBRAW_LIBRARY_BUILD
+  if(!image)
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
   struct decode *dindex;
   short diff[1024];
   unsigned bitbuf=0;
@@ -3156,6 +3197,10 @@ void CLASS foveon_huff (ushort *huff)
 
 void CLASS foveon_dp_load_raw()
 {
+#ifdef LIBRAW_LIBRARY_BUILD
+  if(!image)
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
+#endif
   unsigned c, roff[4], row, col, diff;
   ushort huff[512], vpred[2][2], hpred[2];
 
++++++ parse.c ++++++
--- /var/tmp/diff_new_pack.kwwf5y/_old  2020-08-28 21:21:01.396314360 +0200
+++ /var/tmp/diff_new_pack.kwwf5y/_new  2020-08-28 21:21:01.396314360 +0200
@@ -5,8 +5,8 @@
    This program displays raw metadata for all raw photo formats.
    It is free for all uses.
 
-   $Revision: 1.77 $
-   $Date: 2015/02/14 00:17:36 $
+   $Revision: 1.78 $
+   $Date: 2018/06/01 21:26:34 $
  */
 
 #include <stdio.h>
@@ -1110,6 +1110,47 @@
   } while (len);
 }
 
+void parse_crx (int level, int end)
+{
+  int i, uuid[4], size, save;
+  char tag[4], buf[400];
+
+  while ((save = ftell(ifp)) < end) {
+    order = 0x4d4d;
+    size = get4();
+    if (size < 8 || save+size > end) {
+      fseek (ifp, -4, SEEK_CUR);
+      fread (buf, 1, 400, ifp);
+      printf (" =");
+      for (i=0; i < 400 && i < end-save; i++)
+        printf ("%s%02x",i & 3 ? "":" ",buf[i] & 255);
+      fseek (ifp, end, SEEK_SET);
+      return;
+    }
+    fread (tag, 4, 1, ifp);
+    printf ("\n%*.4s size %d", level*2+4, tag, size);
+    memset (uuid, 0, 16);
+    if (!memcmp(tag,"uuid",4)) {
+      for (i=0; i < 4; i++) uuid[i] = get4();
+      fseek (ifp, -16, SEEK_CUR);
+      printf(" = ");
+      for (i=0; i < 16; i++)
+       printf ("%s%02x",(0x550 >> i) & 1 ? "-":"", fgetc(ifp));
+    }
+    if (!memcmp(tag,"stsd",4))
+      fseek (ifp, 8, SEEK_CUR);
+    if (!memcmp(tag,"CMT",3)) {
+      putchar ('\n');
+      parse_tiff (ftell(ifp),level+1);
+    } else parse_crx (level+1, save+size);
+    fseek (ifp, save+size, SEEK_SET);
+  }
+  if (!level) {
+    printf ("Finished parsing at offset 0x%lx, ",ftell(ifp));
+    printf ("mdat %sfound\n", get4() == 0x6d646174 ? "":"not ");
+  }
+}
+
 void parse_qt (int level, int end)
 {
   unsigned i, lcase, size, save;
@@ -1198,6 +1239,9 @@
   } else if (!memcmp (head,"RIFF",4)) {
     fseek (ifp, 0, SEEK_SET);
     parse_riff(0);
+  } else if (!memcmp (head+4,"ftypcrx ",8)) {
+    fseek (ifp, 0, SEEK_SET);
+    parse_crx (0, fsize);
   } else if (!memcmp (head+4,"ftypqt   ",9)) {
     fseek (ifp, 0, SEEK_SET);
     parse_qt (0, fsize);

++++++ update_dcraw ++++++
--- /var/tmp/diff_new_pack.kwwf5y/_old  2020-08-28 21:21:01.424314373 +0200
+++ /var/tmp/diff_new_pack.kwwf5y/_new  2020-08-28 21:21:01.424314373 +0200
@@ -3,25 +3,25 @@
 # Call this script to update dcraw files to latest version.
 # "wget", "rcs" and "lynx" packages are required for the update
 
-wget -N http://www.cybercom.net/~dcoffin/dcraw/parse.c
-wget -N http://www.cybercom.net/~dcoffin/dcraw/fujiturn.c
-wget -N http://www.cybercom.net/~dcoffin/dcraw/rawphoto.c
-wget -N http://www.cybercom.net/~dcoffin/dcraw/clean_crw.c
-wget -N http://www.cybercom.net/~dcoffin/dcraw/fuji_green.c
+wget -N https://www.dechifro.org/dcraw/parse.c
+wget -N https://www.dechifro.org/dcraw/fujiturn.c
+wget -N https://www.dechifro.org/dcraw/rawphoto.c
+wget -N https://www.dechifro.org/dcraw/clean_crw.c
+wget -N https://www.dechifro.org/dcraw/fuji_green.c
 mv badpixels .badpixels
-wget -N http://www.cybercom.net/~dcoffin/dcraw/.badpixels
+wget -N https://www.dechifro.org/dcraw/.badpixels
 mv .badpixels badpixels
-( URL="http://www.cybercom.net/~dcoffin/dcraw/"; ; echo -e "$URL:\n" ; LC_ALL=C 
lynx -display_charset=utf-8 -dump "$URL" | sed '1d;3,4d' ) >README
+( URL="https://www.dechifro.org/dcraw/"; ; echo -e "$URL:\n" ; LC_ALL=C lynx 
-display_charset=utf-8 -dump "$URL" | sed '1d;3,4d' ) >README
 OLDVERSION=`sed -ne 's/^Version:[[:space:]]*\([0-9.]\+\)[[:space:]]*$/\1/p' 
dcraw.spec`
-NEWVERSION=`lynx -dump http://www.cybercom.net/~dcoffin/dcraw/archive/ | sed 
-n -e 's/^.*dcraw-\([0-9.]\+\)\.tar\.gz.*$/\1/p' |sort -nr |head -1`
-wget -N 
http://www.cybercom.net/~dcoffin/dcraw/archive/dcraw-${NEWVERSION}.tar.gz
+NEWVERSION=`lynx -dump https://www.dechifro.org/dcraw/archive/ | sed -n -e 
's/^.*dcraw-\([0-9.]\+\)\.tar\.gz.*$/\1/p' |sort -nr |head -1`
+wget -N https://www.dechifro.org/dcraw/archive/dcraw-${NEWVERSION}.tar.gz
 sed -i -e "s/^\(Version:[[:space:]]*\)[0-9.]\+[[:space:]]*$/\1${NEWVERSION}/" 
dcraw.spec
 tar --strip-components=1 -xf dcraw-${OLDVERSION}.tar.gz dcraw/dcraw.c
 rm dcraw-${OLDVERSION}.tar.gz
-wget -N http://www.cybercom.net/~dcoffin/dcraw/RCS/dcraw.c,v
+wget -N https://www.dechifro.org/dcraw/RCS/dcraw.c,v
 rlog dcraw.c >dcraw.log
 rm -f dcraw.c dcraw.c,v
-wget -N http://www.cybercom.net/~dcoffin/dcraw/RCS/parse.c,v
+wget -N https://www.dechifro.org/dcraw/RCS/parse.c,v
 rlog parse.c >parse.log
 rm parse.c,v
 echo


Reply via email to