summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2018-11-14 22:23:24 +0100
committerAnatol Belski <ab@php.net>2018-11-14 22:23:24 +0100
commit2a062f3c020e8cc53e49fa823021f3e8ce591cfe (patch)
tree3e6e82daa229b7ac8b0c9273ad2cb163f17dcad9
parent9a2bd2f4530412f04dbb86becf9783eb5335be7a (diff)
downloadphp-git-2a062f3c020e8cc53e49fa823021f3e8ce591cfe.tar.gz
Rework magic data once more
The change reduces the input size on patterns using posix character classes. It is still better than reverting to the patterns from the older version, as the upstream data uses posix classes also in the later versions. The input reduction speeds up the pattern matching in some cases. This patch is functionally almost same as upstream, but might show some diff when the input is very long. While the magic data in the newer versions is functionally an improvement, with jit=0 it might show a performance regression. The slowdown is negligible in the normal usage and is still acceptable for the malicious input. If some functional regressions show up, this patch should be reverted and the tests timing should be adapted instead.
-rw-r--r--ext/fileinfo/data_file.c68
-rw-r--r--ext/fileinfo/magicdata.patch318
-rw-r--r--ext/fileinfo/tests/magic1581
-rw-r--r--ext/fileinfo/tests/magic私はガラスを食べられます1581
4 files changed, 307 insertions, 3241 deletions
diff --git a/ext/fileinfo/data_file.c b/ext/fileinfo/data_file.c
index 53470e80f2..ac2d26a75b 100644
--- a/ext/fileinfo/data_file.c
+++ b/ext/fileinfo/data_file.c
@@ -70372,7 +70372,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x40, 0x11, 0x00,
0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x75, 0x73, 0x69, 0x6E, 0x67, 0x5B, 0x5B,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x75, 0x73, 0x69, 0x6E, 0x67, 0x5B, 0x5B,
0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x28, 0x6E, 0x61, 0x6D, 0x65, 0x73,
0x70, 0x61, 0x63, 0x65, 0x20, 0x29, 0x3F, 0x73, 0x74, 0x64, 0x28, 0x3A, 0x3A, 0x29, 0x3F, 0x5B,
0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x5D, 0x2A, 0x5B, 0x5B, 0x3A, 0x73, 0x70,
@@ -84691,7 +84691,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x2B, 0x11, 0x00,
0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x28, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x7C, 0x6D, 0x6F, 0x64, 0x75,
0x6C, 0x65, 0x29, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x5B, 0x41,
0x2D, 0x5A, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -84734,7 +84734,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3D, 0x26, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x6E, 0x64, 0x28, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x3B, 0x23, 0x5D, 0x2E, 0x2A, 0x29, 0x3F, 0x24, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -86196,7 +86196,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x36, 0x11, 0x00,
0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x70, 0x61,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x6E, 0x61, 0x6D, 0x65, 0x73, 0x70, 0x61,
0x63, 0x65, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x5F,
0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x5D, 0x7B, 0x31, 0x2C, 0x33, 0x30, 0x7D,
0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x5C, 0x7B, 0x00, 0x00,
@@ -86217,7 +86217,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x1E, 0x3D, 0x32, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x74, 0x65, 0x6D,
0x70, 0x6C, 0x61, 0x74, 0x65, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D,
0x2A, 0x3C, 0x2E, 0x2A, 0x3E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D,
@@ -86239,7 +86239,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x2C, 0x11, 0x00,
0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5B, 0x5B, 0x3A, 0x73,
0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x27, 0x5B, 0x41, 0x2D, 0x5A, 0x61, 0x2D, 0x7A, 0x5F,
0x2F, 0x5D, 0x2B, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -86282,7 +86282,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3D, 0x26, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x6E, 0x64, 0x28, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x3B, 0x23, 0x5D, 0x2E, 0x2A, 0x29, 0x3F, 0x24, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -86303,7 +86303,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x1E, 0x3D, 0x33, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x76, 0x69, 0x72,
0x74, 0x75, 0x61, 0x6C, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B,
0x2E, 0x2A, 0x5B, 0x7D, 0x3B, 0x5D, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D,
@@ -86626,7 +86626,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x17, 0x11, 0x00,
0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x70, 0x72, 0x6F, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x3A, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -127648,7 +127648,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1E, 0x3D, 0x15, 0x11, 0x00,
0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x3A, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -189116,7 +189116,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x1E, 0x3D, 0x14, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x70, 0x75, 0x62,
0x6C, 0x69, 0x63, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -189181,7 +189181,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0D, 0x3D, 0x53, 0x11, 0x00,
0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61,
0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x5B, 0x3A, 0x64, 0x69, 0x67, 0x69, 0x74, 0x3A, 0x5D,
0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x3A, 0x5F, 0x5D, 0x2B, 0x5B, 0x5B, 0x3A,
@@ -203156,7 +203156,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x3D, 0x2B, 0x11, 0x00,
0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x28, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x7C, 0x6D, 0x6F, 0x64, 0x75,
0x6C, 0x65, 0x29, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x5B, 0x41,
0x2D, 0x5A, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -203177,7 +203177,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x02, 0x00, 0x3D, 0x28, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x6E, 0x64,
0x28, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x3B, 0x23,
0x69, 0x66, 0x5D, 0x2E, 0x2A, 0x29, 0x3F, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -204145,7 +204145,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x3D, 0x2E, 0x11, 0x00,
0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x64, 0x65, 0x66, 0x20, 0x5B, 0x61, 0x2D, 0x7A, 0x5D, 0x7C, 0x64,
0x65, 0x66, 0x20, 0x5B, 0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x5D, 0x2B, 0x3A,
0x3A, 0x5B, 0x61, 0x2D, 0x7A, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -204166,7 +204166,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x02, 0x00, 0x3D, 0x26, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x6E, 0x64,
0x28, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x5B, 0x3B, 0x23,
0x5D, 0x2E, 0x2A, 0x29, 0x3F, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -204682,7 +204682,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x02, 0x00, 0x3D, 0x17, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x78, 0x63,
0x65, 0x70, 0x74, 0x2E, 0x2A, 0x3A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -204768,7 +204768,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x0F, 0x3D, 0x2C, 0x11, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x7B, 0x30, 0x2C, 0x35,
0x30, 0x7D, 0x64, 0x65, 0x66, 0x20, 0x7B, 0x31, 0x2C, 0x35, 0x30, 0x7D, 0x5B, 0x5F, 0x61, 0x2D,
0x7A, 0x41, 0x2D, 0x5A, 0x5D, 0x7B, 0x31, 0x2C, 0x31, 0x30, 0x30, 0x7D, 0x00, 0x00, 0x00, 0x00,
@@ -204833,7 +204833,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x33, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x64, 0x6F, 0x75, 0x62, 0x6C, 0x65, 0x28, 0x20, 0x5C, 0x2A, 0x7C,
0x5C, 0x2A, 0x29, 0x28, 0x2E, 0x2B, 0x29, 0x28, 0x3D, 0x2E, 0x2A, 0x29, 0x3F, 0x3B, 0x5B, 0x5B,
0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -206746,7 +206746,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x3D, 0x12, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D,
0x5D, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -206811,7 +206811,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x32, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x66, 0x6C, 0x6F, 0x61, 0x74, 0x28, 0x20, 0x5C, 0x2A, 0x7C, 0x5C,
0x2A, 0x29, 0x28, 0x2E, 0x2B, 0x29, 0x28, 0x3D, 0x2E, 0x2A, 0x29, 0x3F, 0x3B, 0x5B, 0x5B, 0x3A,
0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -228483,7 +228483,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x31, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x63, 0x68, 0x61, 0x72, 0x28, 0x20, 0x5C, 0x2A, 0x7C, 0x5C, 0x2A,
0x29, 0x28, 0x2E, 0x2B, 0x29, 0x28, 0x3D, 0x2E, 0x2A, 0x29, 0x3F, 0x3B, 0x5B, 0x5B, 0x3A, 0x73,
0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -252262,7 +252262,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x28, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x69, 0x6E, 0x63, 0x6C, 0x75, 0x64, 0x65, 0x20, 0x28, 0x5B, 0x41,
0x2D, 0x5A, 0x5D, 0x2B, 0x5B, 0x61, 0x2D, 0x7A, 0x5D, 0x2A, 0x28, 0x3A, 0x3A, 0x29, 0x29, 0x2B,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -252434,7 +252434,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x31, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x20,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x69, 0x6D, 0x70, 0x6F, 0x72, 0x74, 0x20,
0x5B, 0x5F, 0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x5D, 0x2B, 0x20, 0x61, 0x73,
0x20, 0x5B, 0x5B, 0x3A, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x3A, 0x5D, 0x5D, 0x5B, 0x5B, 0x3A, 0x73,
0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -253552,7 +253552,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x19, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61,
0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x28, 0x69, 0x66, 0x7C, 0x69, 0x66, 0x6E, 0x29, 0x64, 0x65,
0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -253573,7 +253573,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x02, 0x00, 0x3D, 0x14, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x6E,
0x64, 0x69, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -253595,7 +253595,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x19, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61,
0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x28, 0x69, 0x66, 0x7C, 0x69, 0x66, 0x6E, 0x29, 0x64, 0x65,
0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -253616,7 +253616,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x02, 0x00, 0x3D, 0x14, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x64, 0x65,
0x66, 0x69, 0x6E, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -253810,7 +253810,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x2C, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63,
0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5B, 0x5B, 0x3A, 0x73,
0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x27, 0x5B, 0x41, 0x2D, 0x5A, 0x61, 0x2D, 0x7A, 0x5F,
0x2F, 0x5D, 0x2B, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -255186,7 +255186,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x3D, 0x10, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x29, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x29, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61,
0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x5C, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -261614,7 +261614,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x00, 0x3D, 0x1F, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x65, 0x78, 0x74,
0x65, 0x72, 0x6E, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -263205,7 +263205,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x00, 0x3D, 0x14, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x23, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2A, 0x70, 0x72,
0x61, 0x67, 0x6D, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -263850,7 +263850,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x00, 0x3D, 0x13, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5E, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5B, 0x5B, 0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A,
0x5D, 0x5D, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -264689,7 +264689,7 @@ const unsigned char php_magic_database[5191992] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x12, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x75, 0x6E, 0x69, 0x6F, 0x6E, 0x5B, 0x5B,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x75, 0x6E, 0x69, 0x6F, 0x6E, 0x5B, 0x5B,
0x3A, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3A, 0x5D, 0x5D, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
diff --git a/ext/fileinfo/magicdata.patch b/ext/fileinfo/magicdata.patch
index 18df20e10f..42db6c27c4 100644
--- a/ext/fileinfo/magicdata.patch
+++ b/ext/fileinfo/magicdata.patch
@@ -1,41 +1,107 @@
-diff --git a/magic/Magdir/rpm b/magic/Magdir/rpm
-index 9a795f8..31db083 100644
---- a/magic/Magdir/rpm
-+++ b/magic/Magdir/rpm
-@@ -29,6 +29,7 @@
- >>8 beshort 17 SuperH
- >>8 beshort 18 Xtensa
- >>8 beshort 255 noarch
-+>>10 string x %s
+diff -u a/magic/Magdir/c-lang b/magic/Magdir/c-lang
+--- a/magic/Magdir/c-lang 2017-08-14 09:40:38.000000000 +0200
++++ b/magic/Magdir/c-lang 2018-11-10 13:06:33.171398452 +0100
+@@ -13,61 +13,61 @@
+ # C
+ # Check for class if include is found, otherwise class is beaten by include becouse of lowered strength
+ 0 regex \^#include C
+->0 regex \^class[[:space:]]+
++>0 regex/4096 \^class[[:space:]]+
+ >>&0 regex \\{[\.\*]\\}(;)?$ \b++
+ >&0 clear x source text
+ !:strength + 13
+ !:mime text/x-c
+-0 regex \^#[[:space:]]*pragma C source text
++0 regex/4096 \^#[[:space:]]*pragma C source text
+ !:mime text/x-c
+-0 regex \^#[[:space:]]*(if\|ifn)def
+->&0 regex \^#[[:space:]]*endif$ C source text
++0 regex/4096 \^#[[:space:]]*(if\|ifn)def
++>&0 regex/4096 \^#[[:space:]]*endif$ C source text
+ !:mime text/x-c
+-0 regex \^#[[:space:]]*(if\|ifn)def
+->&0 regex \^#[[:space:]]*define C source text
++0 regex/4096 \^#[[:space:]]*(if\|ifn)def
++>&0 regex/4096 \^#[[:space:]]*define C source text
+ !:mime text/x-c
+-0 regex \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
++0 regex/4096 \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
+ !:mime text/x-c
+-0 regex \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
++0 regex/4096 \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
+ !:mime text/x-c
+-0 regex \^[[:space:]]*extern[[:space:]]+ C source text
++0 regex/4096 \^[[:space:]]*extern[[:space:]]+ C source text
+ !:mime text/x-c
+-0 regex \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
++0 regex/4096 \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
+ !:mime text/x-c
+-0 regex \^struct[[:space:]]+ C source text
++0 regex/4096 \^struct[[:space:]]+ C source text
+ !:mime text/x-c
+-0 regex \^union[[:space:]]+ C source text
++0 regex/4096 \^union[[:space:]]+ C source text
+ !:mime text/x-c
+ 0 search/8192 main(
+->&0 regex \\)[[:space:]]*\\{ C source text
++>&0 regex/4096 \\)[[:space:]]*\\{ C source text
+ !:mime text/x-c
- #delta RPM Daniel Novotny (dnovotny@redhat.com)
- 0 string drpm Delta RPM
-diff --git a/magic/Magdir/securitycerts b/magic/Magdir/securitycerts
-index 8785dd8..1c340be 100644
---- a/magic/Magdir/securitycerts
-+++ b/magic/Magdir/securitycerts
-@@ -4,3 +4,5 @@
- 0 search/1 -----BEGIN\ CERTIFICATE------ RFC1421 Security Certificate text
- 0 search/1 -----BEGIN\ NEW\ CERTIFICATE RFC1421 Security Certificate Signing Request text
- 0 belong 0xedfeedfe Sun 'jks' Java Keystore File data
-+
-+0 string \0volume_key volume_key escrow packet
-From fb1604080767501fde17eb601382e84f1c1ddca3 Mon Sep 17 00:00:00 2001
-From: Christos Zoulas <christos@zoulas.com>
-Date: Mon, 16 Jul 2018 12:30:41 +0000
-Subject: [PATCH] remember to put a space between the version and the number,
- plus more version parsing (Kamil Dudka)
-
-Upstream-commit: 1a7f58c9f253e3b902bfb7a77afd8375b0b428b7
-Signed-off-by: Kamil Dudka <kdudka@redhat.com>
----
- magic/Magdir/fsav | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/magic/Magdir/fsav b/magic/Magdir/fsav
-index 5714798..5d72ab9 100644
---- a/magic/Magdir/fsav
-+++ b/magic/Magdir/fsav
+ # C++
+ # The strength of these rules is increased so they beat the C rules above
+-0 regex \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{ C++ source text
++0 regex/4096 \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{ C++ source text
+ !:strength + 30
+ !:mime text/x-c++
+ # using namespace [namespace] or using std::[lib]
+-0 regex \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*; C++ source text
++0 regex/4096 \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*; C++ source text
+ !:strength + 30
+ !:mime text/x-c++
+-0 regex \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$ C++ source text
++0 regex/4096 \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$ C++ source text
+ !:strength + 30
+ !:mime text/x-c++
+-0 regex \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$ C++ source text
++0 regex/4096 \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$ C++ source text
+ !:strength + 30
+ !:mime text/x-c++
+ # But class alone is reduced to avoid beating php (Jens Schleusener)
+-0 regex \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$ C++ source text
++0 regex/4096 \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$ C++ source text
+ !:strength + 13
+ !:mime text/x-c++
+-0 regex \^[[:space:]]*public: C++ source text
++0 regex/4096 \^[[:space:]]*public: C++ source text
+ !:strength + 30
+ !:mime text/x-c++
+-0 regex \^[[:space:]]*private: C++ source text
++0 regex/4096 \^[[:space:]]*private: C++ source text
+ !:strength + 30
+ !:mime text/x-c++
+-0 regex \^[[:space:]]*protected: C++ source text
++0 regex/4096 \^[[:space:]]*protected: C++ source text
+ !:strength + 30
+ !:mime text/x-c++
+
+diff -u a/magic/Magdir/elf b/magic/Magdir/elf
+--- a/magic/Magdir/elf 2018-03-11 01:46:42.000000000 +0100
++++ b/magic/Magdir/elf 2018-11-10 12:27:29.858619326 +0100
+@@ -48,9 +48,8 @@
+ !:mime application/x-object
+ >16 leshort 2 executable,
+ !:mime application/x-executable
+->16 leshort 3 ${x?pie executable:shared object}
+-
+-!:mime application/x-${x?pie-executable:sharedlib}
++>16 leshort 3 shared object,
++!:mime application/x-sharedlib
+ >16 leshort 4 core file
+ !:mime application/x-coredump
+ # Core file detection is not reliable.
+diff -u a/magic/Magdir/fsav b/magic/Magdir/fsav
+--- a/magic/Magdir/fsav 2017-03-17 22:35:28.000000000 +0100
++++ b/magic/Magdir/fsav 2018-11-10 12:27:29.858619326 +0100
@@ -48,13 +48,15 @@
>11 string >\0 Clam AntiVirus database %-.23s
>>34 string :
@@ -54,27 +120,10 @@ index 5714798..5d72ab9 100644
>512 string \037\213 \b, gzipped
>769 string ustar\0 \b, tarred
---
-2.14.4
-
-From f0e846528e1c839ab44895a1f13d167a4ad8def3 Mon Sep 17 00:00:00 2001
-From: Marek Cermak <macermak@redhat.com>
-Date: Wed, 20 Dec 2017 16:18:46 +0100
-Subject: [PATCH] Resolves: #1515180 - image/gif classifed as
- application/octet-stream
-
-https://bugzilla.redhat.com/show_bug.cgi?id=1515180
-
-Signed-off-by: Marek Cermak <macermak@redhat.com>
----
- magic/Magdir/images | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/magic/Magdir/images b/magic/Magdir/images
-index 69e8e90f..76f7e7da 100644
---- a/magic/Magdir/images
-+++ b/magic/Magdir/images
-@@ -468,7 +468,9 @@
+diff -u a/magic/Magdir/images b/magic/Magdir/images
+--- a/magic/Magdir/images 2018-03-11 01:46:42.000000000 +0100
++++ b/magic/Magdir/images 2018-11-10 12:27:29.858619326 +0100
+@@ -464,7 +464,9 @@
!:mime image/x-unknown
# GIF
@@ -84,58 +133,10 @@ index 69e8e90f..76f7e7da 100644
!:mime image/gif
!:apple 8BIMGIFf
>4 string 7a \b, version 8%s,
---
-2.13.6
-
-From 719116b196fd873f5a463dfdb0fd6258cee51591 Mon Sep 17 00:00:00 2001
-From: Kamil Dudka <kdudka@redhat.com>
-Date: Tue, 22 May 2018 18:18:06 +0200
-Subject: [PATCH] Revert "add a conditional in description"
-
-Upstream-commit: 6876ebadcdf27224b3ffa9dfa4343127aa97c9b2
-
-... and partially revert upstream commit
-7dbecfe406a6bb2de1fe7ec2fe413dcd8871ac74
-
-Signed-off-by: Kamil Dudka <kdudka@redhat.com>
----
- magic/Magdir/elf | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/magic/Magdir/elf b/magic/Magdir/elf
-index 7fd5de1..dba5a73 100644
---- a/magic/Magdir/elf
-+++ b/magic/Magdir/elf
-@@ -48,9 +48,8 @@
- !:mime application/x-object
- >16 leshort 2 executable,
- !:mime application/x-executable
-->16 leshort 3 ${x?pie executable:shared object}
--
--!:mime application/x-${x?pie-executable:sharedlib}
-+>16 leshort 3 shared object,
-+!:mime application/x-sharedlib
- >16 leshort 4 core file
- !:mime application/x-coredump
- # Core file detection is not reliable.
---
-2.14.3
-
-From ed6062995ae60d6772f2dabc39e03cbf28ee7343 Mon Sep 17 00:00:00 2001
-From: Christos Zoulas <christos@zoulas.com>
-Date: Mon, 16 Jul 2018 12:32:08 +0000
-Subject: [PATCH] more info for ppc swapspace (Kamil Dudka)
-
-Upstream-commit: 65f9c7053548df8945df600c07123c9151531ee6
-Signed-off-by: Kamil Dudka <kdudka@redhat.com>
----
- magic/Magdir/linux | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/magic/Magdir/linux b/magic/Magdir/linux
-index 0630a8a..11e9237 100644
---- a/magic/Magdir/linux
-+++ b/magic/Magdir/linux
+Only in b/magic/Magdir/: images.orig
+diff -u a/magic/Magdir/linux b/magic/Magdir/linux
+--- a/magic/Magdir/linux 2017-03-17 22:35:28.000000000 +0100
++++ b/magic/Magdir/linux 2018-11-10 12:27:29.862619309 +0100
@@ -94,6 +94,16 @@
# From Daniel Novotny <dnovotny@redhat.com>
# swap file for PowerPC
@@ -153,6 +154,97 @@ index 0630a8a..11e9237 100644
16374 string SWAPSPACE2 Linux/ia64 swap file
#
# Linux kernel boot images, from Albert Cahalan <acahalan@cs.uml.edu>
---
-2.14.4
-
+diff -u a/magic/Magdir/python b/magic/Magdir/python
+--- a/magic/Magdir/python 2017-08-14 09:40:38.000000000 +0200
++++ b/magic/Magdir/python 2018-11-10 13:06:36.799268528 +0100
+@@ -63,7 +63,7 @@
+ !:mime text/x-python
+
+ # import module [as abrev]
+-0 regex \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
++0 regex/4096 \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
+ !:mime text/x-python
+
+ # comments
+@@ -79,7 +79,7 @@
+ # except: or finally:
+ # block
+ 0 search/4096 try:
+->&0 regex \^[[:space:]]*except.*:$ Python script text executable
++>&0 regex/4096 \^[[:space:]]*except.*:$ Python script text executable
+ !:strength + 15
+ !:mime text/x-python
+ >&0 search/4096 finally: Python script text executable
+@@ -91,7 +91,7 @@
+ !:mime text/x-python
+
+ # def name(*args, **kwargs):
+-0 regex \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
++0 regex/4096 \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
+ >&0 regex \\(([[:alpha:]*_,\ ]){0,255}\\):$ Python script text executable
+ !:strength + 15
+ !:mime text/x-python
+diff -u a/magic/Magdir/rpm b/magic/Magdir/rpm
+--- a/magic/Magdir/rpm 2013-01-11 17:45:23.000000000 +0100
++++ b/magic/Magdir/rpm 2018-11-10 12:27:29.858619326 +0100
+@@ -29,6 +29,7 @@
+ >>8 beshort 17 SuperH
+ >>8 beshort 18 Xtensa
+ >>8 beshort 255 noarch
++>>10 string x %s
+
+ #delta RPM Daniel Novotny (dnovotny@redhat.com)
+ 0 string drpm Delta RPM
+diff -u a/magic/Magdir/ruby b/magic/Magdir/ruby
+--- a/magic/Magdir/ruby 2017-08-14 15:39:18.000000000 +0200
++++ b/magic/Magdir/ruby 2018-11-10 13:06:28.703557761 +0100
+@@ -22,30 +22,30 @@
+ # What looks like ruby, but does not have a shebang
+ # (modules and such)
+ # From: Lubomir Rintel <lkundrak@v3.sk>
+-0 regex \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
++0 regex/4096 \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
+ >0 regex def\ [a-z]|\ do$
+->>&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
++>>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
+ !:strength + 30
+ !:mime text/x-ruby
+-0 regex \^[[:space:]]*(class|module)[[:space:]][A-Z]
++0 regex/4096 \^[[:space:]]*(class|module)[[:space:]][A-Z]
+ >0 regex (modul|includ)e\ [A-Z]|def\ [a-z]
+->>&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
++>>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
+ !:strength + 30
+ !:mime text/x-ruby
+ # Classes with no modules or defs, beats simple ASCII
+-0 regex \^[[:space:]]*(class|module)[[:space:]][A-Z]
+->&0 regex \^[[:space:]]*end([[:space:]]+[;#if].*)?$ Ruby script text
++0 regex/4096 \^[[:space:]]*(class|module)[[:space:]][A-Z]
++>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#if].*)?$ Ruby script text
+ !:strength + 10
+ !:mime text/x-ruby
+ # Looks for function definition to balance python magic
+ # def name (args)
+ # end
+-0 regex \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
+->&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
++0 regex/4096 \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
++>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
+ !:strength + 10
+ !:mime text/x-ruby
+
+-0 regex \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+' Ruby script text
++0 regex/4096 \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+' Ruby script text
+ !:mime text/x-ruby
+-0 regex \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+ Ruby script text
++0 regex/4096 \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+ Ruby script text
+ !:mime text/x-ruby
+diff -u a/magic/Magdir/securitycerts b/magic/Magdir/securitycerts
+--- a/magic/Magdir/securitycerts 2009-09-19 18:28:12.000000000 +0200
++++ b/magic/Magdir/securitycerts 2018-11-10 12:27:29.858619326 +0100
+@@ -4,3 +4,5 @@
+ 0 search/1 -----BEGIN\ CERTIFICATE------ RFC1421 Security Certificate text
+ 0 search/1 -----BEGIN\ NEW\ CERTIFICATE RFC1421 Security Certificate Signing Request text
+ 0 belong 0xedfeedfe Sun 'jks' Java Keystore File data
++
++0 string \0volume_key volume_key escrow packet
diff --git a/ext/fileinfo/tests/magic b/ext/fileinfo/tests/magic
index c66cc84c87..e2e92726a4 100644
--- a/ext/fileinfo/tests/magic
+++ b/ext/fileinfo/tests/magic
@@ -5368,61 +5368,61 @@
# C
# Check for class if include is found, otherwise class is beaten by include becouse of lowered strength
0 regex \^#include C
->0 regex \^class[[:space:]]+
+>0 regex/4096 \^class[[:space:]]+
>>&0 regex \\{[\.\*]\\}(;)?$ \b++
>&0 clear x source text
!:strength + 13
!:mime text/x-c
-0 regex \^#[[:space:]]*pragma C source text
+0 regex/4096 \^#[[:space:]]*pragma C source text
!:mime text/x-c
-0 regex \^#[[:space:]]*(if\|ifn)def
->&0 regex \^#[[:space:]]*endif$ C source text
+0 regex/4096 \^#[[:space:]]*(if\|ifn)def
+>&0 regex/4096 \^#[[:space:]]*endif$ C source text
!:mime text/x-c
-0 regex \^#[[:space:]]*(if\|ifn)def
->&0 regex \^#[[:space:]]*define C source text
+0 regex/4096 \^#[[:space:]]*(if\|ifn)def
+>&0 regex/4096 \^#[[:space:]]*define C source text
!:mime text/x-c
-0 regex \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
+0 regex/4096 \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
!:mime text/x-c
-0 regex \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
+0 regex/4096 \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
!:mime text/x-c
-0 regex \^[[:space:]]*extern[[:space:]]+ C source text
+0 regex/4096 \^[[:space:]]*extern[[:space:]]+ C source text
!:mime text/x-c
-0 regex \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
+0 regex/4096 \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
!:mime text/x-c
-0 regex \^struct[[:space:]]+ C source text
+0 regex/4096 \^struct[[:space:]]+ C source text
!:mime text/x-c
-0 regex \^union[[:space:]]+ C source text
+0 regex/4096 \^union[[:space:]]+ C source text
!:mime text/x-c
0 search/8192 main(
->&0 regex \\)[[:space:]]*\\{ C source text
+>&0 regex/4096 \\)[[:space:]]*\\{ C source text
!:mime text/x-c
# C++
# The strength of these rules is increased so they beat the C rules above
-0 regex \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{ C++ source text
+0 regex/4096 \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{ C++ source text
!:strength + 30
!:mime text/x-c++
# using namespace [namespace] or using std::[lib]
-0 regex \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*; C++ source text
+0 regex/4096 \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*; C++ source text
!:strength + 30
!:mime text/x-c++
-0 regex \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$ C++ source text
+0 regex/4096 \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$ C++ source text
!:strength + 30
!:mime text/x-c++
-0 regex \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$ C++ source text
+0 regex/4096 \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$ C++ source text
!:strength + 30
!:mime text/x-c++
# But class alone is reduced to avoid beating php (Jens Schleusener)
-0 regex \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$ C++ source text
+0 regex/4096 \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$ C++ source text
!:strength + 13
!:mime text/x-c++
-0 regex \^[[:space:]]*public: C++ source text
+0 regex/4096 \^[[:space:]]*public: C++ source text
!:strength + 30
!:mime text/x-c++
-0 regex \^[[:space:]]*private: C++ source text
+0 regex/4096 \^[[:space:]]*private: C++ source text
!:strength + 30
!:mime text/x-c++
-0 regex \^[[:space:]]*protected: C++ source text
+0 regex/4096 \^[[:space:]]*protected: C++ source text
!:strength + 30
!:mime text/x-c++
@@ -15541,1519 +15541,6 @@
>24 lelong x \b%d
#------------------------------------------------------------------------------
-# $File: images,v 1.131 2018/02/16 15:44:28 christos Exp $
-# images: file(1) magic for image formats (see also "iff", and "c-lang" for
-# XPM bitmaps)
-#
-# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
-# additions by janl@ifi.uio.no as well as others. Jan also suggested
-# merging several one- and two-line files into here.
-#
-# little magic: PCX (first byte is 0x0a)
-
-# Targa - matches `povray', `ppmtotga' and `xv' outputs
-# by Philippe De Muyter <phdm@macqel.be>
-# URL: http://justsolve.archiveteam.org/wiki/TGA
-# Reference: http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf
-# Update: Joerg Jenderek
-# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11
-# ,32 or 33 (both not observed)
-# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise
-# or theoretically 2-128 reserved for use by Truevision or 128-255 may be used for developer applications
-# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs
-# `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
-# `tgatoppm' recognizes a superset (Index may be anything)
-#
-# test of Color Map Type 0~no 1~color map
-# and Image Type 1 2 3 9 10 11 32 33
-# and Color Map Entry Size 0 15 16 24 32
-0 ubequad&0x00FeC400000000C0 0
-# skip more garbage like *.iso by looking for positive image type
->2 ubyte >0
-# skip some compiled terminfo like xterm+tmux by looking for image type less equal 33
->>2 ubyte <34
-# skip arches.3200 , Finder.Root , Slp.1 by looking for low pixel depth 1 8 15 16 24 32
->>>16 ubyte 1
->>>>0 use tga-image
->>>16 ubyte 8
->>>>0 use tga-image
->>>16 ubyte 15
->>>>0 use tga-image
->>>16 ubyte 16
->>>>0 use tga-image
->>>16 ubyte 24
->>>>0 use tga-image
->>>16 ubyte 32
->>>>0 use tga-image
-# display tga bitmap image information
-0 name tga-image
->2 ubyte <34 Targa image data
-!:mime image/x-tga
-!:apple ????TPIC
-# normal extension .tga but some Truevision products used others:
-# tpic (Apple),icb (Image Capture Board),vda (Video Display Adapter),vst (NuVista),win (UNSURE about that)
-!:ext tga/tpic/icb/vda/vst
-# image type 1 2 3 9 10 11 32 33
->2 ubyte&0xF7 1 - Map
->2 ubyte&0xF7 2 - RGB
-# alpha channel
->>17 ubyte&0x0F >0 \bA
->2 ubyte&0xF7 3 - Mono
-# type not found, but by http://www.fileformat.info/format/tga/corion.htm
-# Compressed color-mapped data, using Huffman, Delta, and runlength encoding
->2 ubyte 32 - Color
-# Compressed color-mapped data, using Huffman, Delta, and RLE. 4-pass quadtree- type process
->2 ubyte 33 - Color
-# Color Map Type 0~no 1~color map
->1 ubyte 1 (
-# first color map entry, 0 normal
->>3 uleshort >0 \b%d-
-# color map length 0 2 1dh 3bh d9h 100h
->>5 uleshort x \b%d)
-# 8~run length encoding bit
->2 ubyte&0x08 8 - RLE
-# gimp can create big pictures!
->12 uleshort >0 %d x
->12 uleshort =0 65536 x
-# image height. 0 interpreted as 65536
->14 uleshort >0 %d
->14 uleshort =0 65536
-# Image Pixel depth 1 8 15 16 24 32
->16 ubyte x x %d
-# X origin of image. 0 normal
->8 uleshort >0 +%d
-# Y origin of image. 0 normal; positive for top
->10 uleshort >0 +%d
-# Image descriptor: bits 3-0 give the alpha channel depth, bits 5-4 give direction
->17 ubyte&0x0F >0 - %d-bit alpha
-# bits 5-4 give direction. normal bottom left
->17 ubyte &0x20 - top
-#>17 ubyte ^0x20 - bottom
->17 ubyte &0x10 - right
-#>17 ubyte ^0x10 - left
-# some info say other bits 6-7 should be zero
-# but data storage interleave by http://www.fileformat.info/format/tga/corion.htm
-# 00 - no interleave;01 - even/odd interleave; 10 - four way interleave; 11 - reserved
-#>17 ubyte&0xC0 0x00 - no interleave
->17 ubyte&0xC0 0x40 - interleave
->17 ubyte&0xC0 0x80 - four way interleave
->17 ubyte&0xC0 0xC0 - reserved
-# positive length implies identification field
->0 ubyte >0
->>18 string x "%s"
-# last 18 bytes of newer tga file footer signature
->18 search/4261301/s TRUEVISION-XFILE.\0
-# extension area offset if not 0
->>&-8 ulelong >0
-# length of the extension area. normal 495 for version 2.0
->>>(&-4.l) uleshort 0x01EF
-# AuthorName[41]
->>>>&0 string >\0 - author "%-.40s"
-# Comment[324]=4 * 80 null terminated
->>>>&41 string >\0 - comment "%-.80s"
-# date
->>>>&365 ubequad&0xffffFFFFffff0000 !0
-# Day
->>>>>&-6 uleshort x %d
-# Month
->>>>>&-8 uleshort x \b-%d
-# Year
->>>>>&-4 uleshort x \b-%d
-# time
->>>>&371 ubequad&0xffffFFFFffff0000 !0
-# hour
->>>>>&-8 uleshort x %d
-# minutes
->>>>>&-6 uleshort x \b:%.2d
-# second
->>>>>&-4 uleshort x \b:%.2d
-# JobName[41]
->>>>&377 string >\0 - job "%-.40s"
-# JobHour Jobminute Jobsecond
->>>>&418 ubequad&0xffffFFFFffff0000 !0
->>>>>&-8 uleshort x %d
->>>>>&-6 uleshort x \b:%.2d
->>>>>&-4 uleshort x \b:%.2d
-# SoftwareId[41]
->>>>&424 string >\0 - %-.40s
-# SoftwareVersionNumber
->>>>&424 ubyte >0
->>>>>&40 uleshort/100 x %d
->>>>>&40 uleshort%100 x \b.%d
-# VersionLetter
->>>>>&42 ubyte >0x20 \b%c
-# KeyColor
->>>>&468 ulelong >0 - keycolor 0x%8.8x
-# Denominator of Pixel ratio. 0~no pixel aspect
->>>>&474 uleshort >0
-# Numerator
->>>>>&-4 uleshort >0 - aspect %d
->>>>>&-2 uleshort x \b/%d
-# Denominator of Gamma ratio. 0~no Gamma value
->>>>&478 uleshort >0
-# Numerator
->>>>>&-4 uleshort >0 - gamma %d
->>>>>&-2 uleshort x \b/%d
-# ColorOffset
-#>>>>&480 ulelong x - col offset 0x%8.8x
-# StampOffset
-#>>>>&484 ulelong x - stamp offset 0x%8.8x
-# ScanOffset
-#>>>>&488 ulelong x - scan offset 0x%8.8x
-# AttributesType
-#>>>>&492 ubyte x - Attributes 0x%x
-## EndOfTGA
-
-# PBMPLUS images
-# The next byte following the magic is always whitespace.
-# strength is changed to try these patterns before "x86 boot sector"
-0 name netpbm
->3 regex/s =[0-9]{1,50}\ [0-9]{1,50} Netpbm image data
->>&0 regex =[0-9]{1,50} \b, size = %s x
->>>&0 regex =[0-9]{1,50} \b %s
-
-0 search/1 P1
->0 regex/4 P1[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, bitmap
-!:strength + 45
-!:mime image/x-portable-bitmap
-
-0 search/1 P2
->0 regex/4 P2[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, greymap
-!:strength + 45
-!:mime image/x-portable-greymap
-
-0 search/1 P3
->0 regex/4 P3[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, pixmap
-!:strength + 45
-!:mime image/x-portable-pixmap
-
-0 string P4
->0 regex/4 P4[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, rawbits, bitmap
-!:strength + 45
-!:mime image/x-portable-bitmap
-
-0 string P5
->0 regex/4 P5[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, rawbits, greymap
-!:strength + 45
-!:mime image/x-portable-greymap
-
-0 string P6
->0 regex/4 P6[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, rawbits, pixmap
-!:strength + 45
-!:mime image/x-portable-pixmap
-
-0 string P7 Netpbm PAM image file
-!:mime image/x-portable-pixmap
-
-# From: bryanh@giraffe-data.com (Bryan Henderson)
-0 string \117\072 Solitaire Image Recorder format
->4 string \013 MGI Type 11
->4 string \021 MGI Type 17
-0 string .MDA MicroDesign data
->21 byte 48 version 2
->21 byte 51 version 3
-0 string .MDP MicroDesign page data
->21 byte 48 version 2
->21 byte 51 version 3
-
-# NIFF (Navy Interchange File Format, a modification of TIFF) images
-# [GRR: this *must* go before TIFF]
-0 string IIN1 NIFF image data
-!:mime image/x-niff
-
-# Canon RAW version 1 (CRW) files are a type of Canon Image File Format
-# (CIFF) file. These are apparently all little-endian.
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://www.sno.phy.queensu.ca/~phil/exiftool/canon_raw.html
-0 string II\x1a\0\0\0HEAPCCDR Canon CIFF raw image data
-!:mime image/x-canon-crw
->16 leshort x \b, version %d.
->14 leshort x \b%d
-
-# Canon RAW version 2 (CR2) files are a kind of TIFF with an extra magic
-# number. Put this above the TIFF test to make sure we detect them.
-# These are apparently all little-endian.
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://libopenraw.freedesktop.org/wiki/Canon_CR2
-0 string II\x2a\0\x10\0\0\0CR Canon CR2 raw image data
-!:mime image/x-canon-cr2
->10 byte x \b, version %d.
->11 byte x \b%d
-
-# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
-# The second word of TIFF files is the TIFF version number, 42, which has
-# never changed. The TIFF specification recommends testing for it.
-0 string MM\x00\x2a TIFF image data, big-endian
-!:mime image/tiff
->(4.L) use \^tiff_ifd
-0 string II\x2a\x00 TIFF image data, little-endian
-!:mime image/tiff
->(4.l) use tiff_ifd
-
-0 name tiff_ifd
->0 leshort x \b, direntries=%d
->2 use tiff_entry
-
-0 name tiff_entry
-# NewSubFileType
->0 leshort 0xfe
->>12 use tiff_entry
->0 leshort 0x100
->>4 lelong 1
->>>12 use tiff_entry
->>>8 leshort x \b, width=%d
->0 leshort 0x101
->>4 lelong 1
->>>8 leshort x \b, height=%d
->>>12 use tiff_entry
->0 leshort 0x102
->>8 leshort x \b, bps=%d
->>12 use tiff_entry
->0 leshort 0x103
->>4 lelong 1 \b, compression=
->>>8 leshort 1 \bnone
->>>8 leshort 2 \bhuffman
->>>8 leshort 3 \bbi-level group 3
->>>8 leshort 4 \bbi-level group 4
->>>8 leshort 5 \bLZW
->>>8 leshort 6 \bJPEG (old)
->>>8 leshort 7 \bJPEG
->>>8 leshort 8 \bdeflate
->>>8 leshort 9 \bJBIG, ITU-T T.85
->>>8 leshort 0xa \bJBIG, ITU-T T.43
->>>8 leshort 0x7ffe \bNeXT RLE 2-bit
->>>8 leshort 0x8005 \bPackBits (Macintosh RLE)
->>>8 leshort 0x8029 \bThunderscan RLE
->>>8 leshort 0x807f \bRasterPadding (CT or MP)
->>>8 leshort 0x8080 \bRLE (Line Work)
->>>8 leshort 0x8081 \bRLE (High-Res Cont-Tone)
->>>8 leshort 0x8082 \bRLE (Binary Line Work)
->>>8 leshort 0x80b2 \bDeflate (PKZIP)
->>>8 leshort 0x80b3 \bKodak DCS
->>>8 leshort 0x8765 \bJBIG
->>>8 leshort 0x8798 \bJPEG2000
->>>8 leshort 0x8799 \bNikon NEF Compressed
->>>8 default x
->>>>8 leshort x \b(unknown 0x%x)
->>>12 use tiff_entry
->0 leshort 0x106 \b, PhotometricIntepretation=
->>8 clear x
->>8 leshort 0 \bWhiteIsZero
->>8 leshort 1 \bBlackIsZero
->>8 leshort 2 \bRGB
->>8 leshort 3 \bRGB Palette
->>8 leshort 4 \bTransparency Mask
->>8 leshort 5 \bCMYK
->>8 leshort 6 \bYCbCr
->>8 leshort 8 \bCIELab
->>8 default x
->>>8 leshort x \b(unknown=0x%x)
->>12 use tiff_entry
-# FillOrder
->0 leshort 0x10a
->>4 lelong 1
->>>12 use tiff_entry
-# DocumentName
->0 leshort 0x10d
->>(8.l) string x \b, name=%s
->>>12 use tiff_entry
-# ImageDescription
->0 leshort 0x10e
->>(8.l) string x \b, description=%s
->>>12 use tiff_entry
-# Make
->0 leshort 0x10f
->>(8.l) string x \b, manufacturer=%s
->>>12 use tiff_entry
-# Model
->0 leshort 0x110
->>(8.l) string x \b, model=%s
->>>12 use tiff_entry
-# StripOffsets
->0 leshort 0x111
->>12 use tiff_entry
-# Orientation
->0 leshort 0x112 \b, orientation=
->>8 leshort 1 \bupper-left
->>8 leshort 3 \blower-right
->>8 leshort 6 \bupper-right
->>8 leshort 8 \blower-left
->>8 leshort 9 \bundefined
->>8 default x
->>>8 leshort x \b[*%d*]
->>12 use tiff_entry
-# XResolution
->0 leshort 0x11a
->>8 lelong x \b, xresolution=%d
->>12 use tiff_entry
-# YResolution
->0 leshort 0x11b
->>8 lelong x \b, yresolution=%d
->>12 use tiff_entry
-# ResolutionUnit
->0 leshort 0x128
->>8 leshort x \b, resolutionunit=%d
->>12 use tiff_entry
-# Software
->0 leshort 0x131
->>(8.l) string x \b, software=%s
->>12 use tiff_entry
-# Datetime
->0 leshort 0x132
->>(8.l) string x \b, datetime=%s
->>12 use tiff_entry
-# HostComputer
->0 leshort 0x13c
->>(8.l) string x \b, hostcomputer=%s
->>12 use tiff_entry
-# WhitePoint
->0 leshort 0x13e
->>12 use tiff_entry
-# PrimaryChromaticities
->0 leshort 0x13f
->>12 use tiff_entry
-# YCbCrCoefficients
->0 leshort 0x211
->>12 use tiff_entry
-# YCbCrPositioning
->0 leshort 0x213
->>12 use tiff_entry
-# ReferenceBlackWhite
->0 leshort 0x214
->>12 use tiff_entry
-# Copyright
->0 leshort 0x8298
->>(8.l) string x \b, copyright=%s
->>12 use tiff_entry
-# ExifOffset
->0 leshort 0x8769
->>12 use tiff_entry
-# GPS IFD
->0 leshort 0x8825 \b, GPS-Data
->>12 use tiff_entry
-
-#>0 leshort x \b, unknown=0x%x
-#>>12 use tiff_entry
-
-0 string MM\x00\x2b Big TIFF image data, big-endian
-!:mime image/tiff
-0 string II\x2b\x00 Big TIFF image data, little-endian
-!:mime image/tiff
-
-# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
-# (Greg Roelofs, newt@uchicago.edu)
-# (Albert Cahalan, acahalan@cs.uml.edu)
-#
-# 137 P N G \r \n ^Z \n [4-byte length] I H D R [HEAD data] [HEAD crc] ...
-#
-
-# IHDR parser
-0 name png-ihdr
->0 belong x \b, %d x
->4 belong x %d,
->8 byte x %d-bit
->9 byte 0 grayscale,
->9 byte 2 \b/color RGB,
->9 byte 3 colormap,
->9 byte 4 gray+alpha,
->9 byte 6 \b/color RGBA,
-#>10 byte 0 deflate/32K,
->12 byte 0 non-interlaced
->12 byte 1 interlaced
-
-# Standard PNG image.
-0 string \x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0DIHDR PNG image data
-!:mime image/png
-!:strength +10
->16 use png-ihdr
-
-# Apple CgBI PNG image.
-0 string \x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x04CgBI
->24 string \x00\x00\x00\x0DIHDR PNG image data (CgBI)
-!:mime image/png
-!:strength +10
->>32 use png-ihdr
-
-# possible GIF replacements; none yet released!
-# (Greg Roelofs, newt@uchicago.edu)
-#
-# GRR 950115: this was mine ("Zip GIF"):
-0 string GIF94z ZIF image (GIF+deflate alpha)
-!:mime image/x-unknown
-#
-# GRR 950115: this is Jeremy Wohl's Free Graphics Format (better):
-#
-0 string FGF95a FGF image (GIF+deflate beta)
-!:mime image/x-unknown
-#
-# GRR 950115: this is Thomas Boutell's Portable Bitmap Format proposal
-# (best; not yet implemented):
-#
-0 string PBF PBF image (deflate compression)
-!:mime image/x-unknown
-
-# GIF
-0 string GIF8 GIF image data
-!:mime image/gif
-!:apple 8BIMGIFf
->4 string 7a \b, version 8%s,
->4 string 9a \b, version 8%s,
->6 leshort >0 %d x
->8 leshort >0 %d
-#>10 byte &0x80 color mapped,
-#>10 byte&0x07 =0x00 2 colors
-#>10 byte&0x07 =0x01 4 colors
-#>10 byte&0x07 =0x02 8 colors
-#>10 byte&0x07 =0x03 16 colors
-#>10 byte&0x07 =0x04 32 colors
-#>10 byte&0x07 =0x05 64 colors
-#>10 byte&0x07 =0x06 128 colors
-#>10 byte&0x07 =0x07 256 colors
-
-# ITC (CMU WM) raster files. It is essentially a byte-reversed Sun raster,
-# 1 plane, no encoding.
-0 string \361\0\100\273 CMU window manager raster image data
->4 lelong >0 %d x
->8 lelong >0 %d,
->12 lelong >0 %d-bit
-
-# Magick Image File Format
-0 string id=ImageMagick MIFF image data
-
-# Artisan
-0 long 1123028772 Artisan image data
->4 long 1 \b, rectangular 24-bit
->4 long 2 \b, rectangular 8-bit with colormap
->4 long 3 \b, rectangular 32-bit (24-bit with matte)
-
-# FIG (Facility for Interactive Generation of figures), an object-based format
-0 search/1 #FIG FIG image text
->5 string x \b, version %.3s
-
-# PHIGS
-0 string ARF_BEGARF PHIGS clear text archive
-0 string @(#)SunPHIGS SunPHIGS
-# version number follows, in the form m.n
->40 string SunBin binary
->32 string archive archive
-
-# GKS (Graphics Kernel System)
-0 string GKSM GKS Metafile
->24 string SunGKS \b, SunGKS
-
-# CGM image files
-0 string BEGMF clear text Computer Graphics Metafile
-
-# MGR bitmaps (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
-0 string yz MGR bitmap, modern format, 8-bit aligned
-0 string zz MGR bitmap, old format, 1-bit deep, 16-bit aligned
-0 string xz MGR bitmap, old format, 1-bit deep, 32-bit aligned
-0 string yx MGR bitmap, modern format, squeezed
-
-# Fuzzy Bitmap (FBM) images
-0 string %bitmap\0 FBM image data
->30 long 0x31 \b, mono
->30 long 0x33 \b, color
-
-# facsimile data
-1 string PC\ Research,\ Inc group 3 fax data
->29 byte 0 \b, normal resolution (204x98 DPI)
->29 byte 1 \b, fine resolution (204x196 DPI)
-# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
-0 string Sfff structured fax file
-
-# From: Joerg Jenderek <joerg.jen.der.ek@gmx.net>
-# most files with the extension .EPA and some with .BMP
-0 string \x11\x06 Award BIOS Logo, 136 x 84
-!:mime image/x-award-bioslogo
-0 string \x11\x09 Award BIOS Logo, 136 x 126
-!:mime image/x-award-bioslogo
-#0 string \x07\x1f BIOS Logo corrupted?
-# http://www.blackfiveservices.co.uk/awbmtools.shtml
-# http://biosgfx.narod.ru/v3/
-# http://biosgfx.narod.ru/abr-2/
-0 string AWBM
->4 leshort <1981 Award BIOS bitmap
-!:mime image/x-award-bmp
-# image width is a multiple of 4
->>4 leshort&0x0003 0
->>>4 leshort x \b, %d
->>>6 leshort x x %d
->>4 leshort&0x0003 >0 \b,
->>>4 leshort&0x0003 =1
->>>>4 leshort x %d+3
->>>4 leshort&0x0003 =2
->>>>4 leshort x %d+2
->>>4 leshort&0x0003 =3
->>>>4 leshort x %d+1
->>>6 leshort x x %d
-# at offset 8 starts imagedata followed by "RGB " marker
-
-# PC bitmaps (OS/2, Windows BMP files) (Greg Roelofs, newt@uchicago.edu)
-# http://en.wikipedia.org/wiki/BMP_file_format#DIB_header_.\
-# 28bitmap_information_header.29
-0 string BM
->14 leshort 12 PC bitmap, OS/2 1.x format
-!:mime image/x-ms-bmp
->>18 leshort x \b, %d x
->>20 leshort x %d
->14 leshort 64 PC bitmap, OS/2 2.x format
-!:mime image/x-ms-bmp
->>18 leshort x \b, %d x
->>20 leshort x %d
->14 leshort 40 PC bitmap, Windows 3.x format
-!:mime image/x-ms-bmp
->>18 lelong x \b, %d x
->>22 lelong x %d x
->>28 leshort x %d
->14 leshort 124 PC bitmap, Windows 98/2000 and newer format
-!:mime image/x-ms-bmp
->>18 lelong x \b, %d x
->>22 lelong x %d x
->>28 leshort x %d
->14 leshort 108 PC bitmap, Windows 95/NT4 and newer format
-!:mime image/x-ms-bmp
->>18 lelong x \b, %d x
->>22 lelong x %d x
->>28 leshort x %d
->14 leshort 128 PC bitmap, Windows NT/2000 format
-!:mime image/x-ms-bmp
->>18 lelong x \b, %d x
->>22 lelong x %d x
->>28 leshort x %d
-# Too simple - MPi
-#0 string IC PC icon data
-#0 string PI PC pointer image data
-#0 string CI PC color icon data
-#0 string CP PC color pointer image data
-# Conflicts with other entries [BABYL]
-#0 string BA PC bitmap array data
-
-# XPM icons (Greg Roelofs, newt@uchicago.edu)
-0 search/1 /*\ XPM\ */ X pixmap image text
-!:mime image/x-xpmi
-
-# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
-0 leshort 0xcc52 RLE image data,
->6 leshort x %d x
->8 leshort x %d
->2 leshort >0 \b, lower left corner: %d
->4 leshort >0 \b, lower right corner: %d
->10 byte&0x1 =0x1 \b, clear first
->10 byte&0x2 =0x2 \b, no background
->10 byte&0x4 =0x4 \b, alpha channel
->10 byte&0x8 =0x8 \b, comment
->11 byte >0 \b, %d color channels
->12 byte >0 \b, %d bits per pixel
->13 byte >0 \b, %d color map channels
-
-# image file format (Robert Potter, potter@cs.rochester.edu)
-0 string Imagefile\ version- iff image data
-# this adds the whole header (inc. version number), informative but longish
->10 string >\0 %s
-
-# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
-0 belong 0x59a66a95 Sun raster image data
->4 belong >0 \b, %d x
->8 belong >0 %d,
->12 belong >0 %d-bit,
-#>16 belong >0 %d bytes long,
->20 belong 0 old format,
-#>20 belong 1 standard,
->20 belong 2 compressed,
->20 belong 3 RGB,
->20 belong 4 TIFF,
->20 belong 5 IFF,
->20 belong 0xffff reserved for testing,
->24 belong 0 no colormap
->24 belong 1 RGB colormap
->24 belong 2 raw colormap
-#>28 belong >0 colormap is %d bytes long
-
-# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
-#
-# See
-# http://reality.sgi.com/grafica/sgiimage.html
-#
-0 beshort 474 SGI image data
-#>2 byte 0 \b, verbatim
->2 byte 1 \b, RLE
-#>3 byte 1 \b, normal precision
->3 byte 2 \b, high precision
->4 beshort x \b, %d-D
->6 beshort x \b, %d x
->8 beshort x %d
->10 beshort x \b, %d channel
->10 beshort !1 \bs
->80 string >0 \b, "%s"
-
-0 string IT01 FIT image data
->4 belong x \b, %d x
->8 belong x %d x
->12 belong x %d
-#
-0 string IT02 FIT image data
->4 belong x \b, %d x
->8 belong x %d x
->12 belong x %d
-#
-2048 string PCD_IPI Kodak Photo CD image pack file
->0xe02 byte&0x03 0x00 , landscape mode
->0xe02 byte&0x03 0x01 , portrait mode
->0xe02 byte&0x03 0x02 , landscape mode
->0xe02 byte&0x03 0x03 , portrait mode
-0 string PCD_OPA Kodak Photo CD overview pack file
-
-# FITS format. Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
-# FITS is the Flexible Image Transport System, the de facto standard for
-# data and image transfer, storage, etc., for the astronomical community.
-# (FITS floating point formats are big-endian.)
-0 string SIMPLE\ \ = FITS image data
->109 string 8 \b, 8-bit, character or unsigned binary integer
->108 string 16 \b, 16-bit, two's complement binary integer
->107 string \ 32 \b, 32-bit, two's complement binary integer
->107 string -32 \b, 32-bit, floating point, single precision
->107 string -64 \b, 64-bit, floating point, double precision
-
-# other images
-0 string This\ is\ a\ BitMap\ file Lisp Machine bit-array-file
-
-# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
-# stuff.
-#
-0 beshort 0x1010 PEX Binary Archive
-
-# DICOM medical imaging data
-# URL: https://en.wikipedia.org/wiki/DICOM#Data_format
-# Note: "dcm" is the official file name extension
-# XnView mention also "dc3" and "acr" as file name extension
-128 string DICM DICOM medical imaging data
-!:mime application/dicom
-!:ext dcm/dicom/dic
-
-# XWD - X Window Dump file.
-# As described in /usr/X11R6/include/X11/XWDFile.h
-# used by the xwd program.
-# Bradford Castalia, idaeim, 1/01
-# updated by Adam Buchbinder, 2/09
-# The following assumes version 7 of the format; the first long is the length
-# of the header, which is at least 25 4-byte longs, and the one at offset 8
-# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
-# which is a maximum of 32.
-0 belong >100
->8 belong <3
->>12 belong <33
->>>4 belong 7 XWD X Window Dump image data
-!:mime image/x-xwindowdump
->>>>100 string >\0 \b, "%s"
->>>>16 belong x \b, %dx
->>>>20 belong x \b%dx
->>>>12 belong x \b%d
-
-# PDS - Planetary Data System
-# These files use Parameter Value Language in the header section.
-# Unfortunately, there is no certain magic, but the following
-# strings have been found to be most likely.
-0 string NJPL1I00 PDS (JPL) image data
-2 string NJPL1I PDS (JPL) image data
-0 string CCSD3ZF PDS (CCSD) image data
-2 string CCSD3Z PDS (CCSD) image data
-0 string PDS_ PDS image data
-0 string LBLSIZE= PDS (VICAR) image data
-
-# pM8x: ATARI STAD compressed bitmap format
-#
-# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
-# p M 8 5/6 xx yy zz data...
-# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
-# bytes either run horizontally (pM85) or vertically (pM86). yy is the
-# most frequent byte, xx and zz are runlength escape codes, where xx is
-# used for runs of yy.
-#
-0 string pM85 Atari ST STAD bitmap image data (hor)
->5 byte 0x00 (white background)
->5 byte 0xFF (black background)
-0 string pM86 Atari ST STAD bitmap image data (vert)
->5 byte 0x00 (white background)
->5 byte 0xFF (black background)
-
-# From: Alex Myczko <alex@aiei.ch>
-# http://www.atarimax.com/jindroush.atari.org/afmtatr.html
-0 leshort 0x0296 Atari ATR image
-
-# XXX:
-# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
-# magic.
-# SGI RICE image file <mpruett@sgi.com>
-#0 beshort 0x5249 RICE image
-#>2 beshort x v%d
-#>4 beshort x (%d x
-#>6 beshort x %d)
-#>8 beshort 0 8 bit
-#>8 beshort 1 10 bit
-#>8 beshort 2 12 bit
-#>8 beshort 3 13 bit
-#>10 beshort 0 4:2:2
-#>10 beshort 1 4:2:2:4
-#>10 beshort 2 4:4:4
-#>10 beshort 3 4:4:4:4
-#>12 beshort 1 RGB
-#>12 beshort 2 CCIR601
-#>12 beshort 3 RP175
-#>12 beshort 4 YUV
-
-# PCX image files
-# From: Dan Fandrich <dan@coneharvesters.com>
-# updated by Joerg Jenderek at Feb 2013 by http://de.wikipedia.org/wiki/PCX
-# http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt
-# GRR: original test was still too general as it catches xbase examples T5.DBT,T6.DBT with 0xa000000
-# test for bytes 0x0a,version byte (0,2,3,4,5),compression byte flag(0,1), bit depth (>0) of PCX or T5.DBT,T6.DBT
-0 ubelong&0xffF8fe00 0x0a000000
-# for PCX bit depth > 0
->3 ubyte >0
-# test for valid versions
->>1 ubyte <6
->>>1 ubyte !1 PCX
-!:mime image/x-pcx
-#!:mime image/pcx
->>>>1 ubyte 0 ver. 2.5 image data
->>>>1 ubyte 2 ver. 2.8 image data, with palette
->>>>1 ubyte 3 ver. 2.8 image data, without palette
->>>>1 ubyte 4 for Windows image data
->>>>1 ubyte 5 ver. 3.0 image data
->>>>4 uleshort x bounding box [%d,
->>>>6 uleshort x %d] -
->>>>8 uleshort x [%d,
->>>>10 uleshort x %d],
->>>>65 ubyte >1 %d planes each of
->>>>3 ubyte x %d-bit
->>>>68 byte 1 colour,
->>>>68 byte 2 grayscale,
-# this should not happen
->>>>68 default x image,
->>>>12 leshort >0 %d x
->>>>>14 uleshort x %d dpi,
->>>>2 byte 0 uncompressed
->>>>2 byte 1 RLE compressed
-
-# Adobe Photoshop
-# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
-0 string 8BPS Adobe Photoshop Image
-!:mime image/vnd.adobe.photoshop
->4 beshort 2 (PSB)
->18 belong x \b, %d x
->14 belong x %d,
->24 beshort 0 bitmap
->24 beshort 1 grayscale
->>12 beshort 2 with alpha
->24 beshort 2 indexed
->24 beshort 3 RGB
->>12 beshort 4 \bA
->24 beshort 4 CMYK
->>12 beshort 5 \bA
->24 beshort 7 multichannel
->24 beshort 8 duotone
->24 beshort 9 lab
->12 beshort > 1
->>12 beshort x \b, %dx
->12 beshort 1 \b,
->22 beshort x %d-bit channel
->12 beshort > 1 \bs
-
-# XV thumbnail indicator (ThMO)
-0 string P7\ 332 XV thumbnail image data
-
-# NITF is defined by United States MIL-STD-2500A
-0 string NITF National Imagery Transmission Format
->25 string >\0 dated %.14s
-
-# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
-# Format variations from: Bernd Nuernberger <bernd.nuernberger@web.de>
-# Update: Joerg Jenderek
-# See http://fileformats.archiveteam.org/wiki/GEM_Raster
-# For variations, also see:
-# http://www.seasip.info/Gem/ff_img.html (Ventura)
-# http://www.atari-wiki.com/?title=IMG_file (XIMG, STTT)
-# http://www.fileformat.info/format/gemraster/spec/index.htm (XIMG, STTT)
-# http://sylvana.net/1stguide/1STGUIDE.ENG (TIMG)
-0 beshort 0x0001
-# header_size
->2 beshort 0x0008
->>0 use gem_info
->2 beshort 0x0009
->>0 use gem_info
-# no example for NOSIG
->2 beshort 24
->>0 use gem_info
-# no example for HYPERPAINT
->2 beshort 25
->>0 use gem_info
-16 string XIMG\0
->0 use gem_info
-# no example
-16 string STTT\0\x10
->0 use gem_info
-# no example or description
-16 string TIMG\0
->0 use gem_info
-
-0 name gem_info
-# version is 2 for some XIMG and 1 for all others
->0 beshort <0x0003 GEM
-# http://www.snowstone.org.uk/riscos/mimeman/mimemap.txt
-!:mime image/x-gem
-# header_size 24 25 27 59 779 words for colored bitmaps
->>2 beshort >9
->>>16 string STTT\0\x10 STTT
->>>16 string TIMG\0 TIMG
-# HYPERPAINT or NOSIG variant
->>>16 string \0\x80
->>>>2 beshort =24 NOSIG
->>>>2 beshort !24 HYPERPAINT
-# NOSIG or XIMG variant
->>>16 default x
->>>>16 string !XIMG\0 NOSIG
->>16 string =XIMG\0 XIMG Image data
-!:ext img/ximg
-# to avoid Warning: Current entry does not yet have a description for adding a EXTENSION type
->>16 string !XIMG\0 Image data
-!:ext img
-# header_size is 9 for Ventura files and 8 for other GEM Paint files
->>2 beshort 9 (Ventura)
-#>>2 beshort 8 (Paint)
->>12 beshort x %d x
->>14 beshort x %d,
-# 1 4 8
->>4 beshort x %d planes,
-# in tenths of a millimetre
->>8 beshort x %d x
->>10 beshort x %d pixelsize
-# pattern_size 1-8. 2 for GEM Paint
->>6 beshort !2 \b, pattern size %d
-
-# GEM Metafile (Wolfram Kleff)
-0 lelong 0x0018FFFF GEM Metafile data
->4 leshort x version %d
-
-#
-# SMJPEG. A custom Motion JPEG format used by Loki Entertainment
-# Software Torbjorn Andersson <d91tan@Update.UU.SE>.
-#
-0 string \0\nSMJPEG SMJPEG
->8 belong x %d.x data
-# According to the specification you could find any number of _TXT
-# headers here, but I can't think of any way of handling that. None of
-# the SMJPEG files I tried it on used this feature. Even if such a
-# file is encountered the output should still be reasonable.
->16 string _SND \b,
->>24 beshort >0 %d Hz
->>26 byte 8 8-bit
->>26 byte 16 16-bit
->>28 string NONE uncompressed
-# >>28 string APCM ADPCM compressed
->>27 byte 1 mono
->>28 byte 2 stereo
-# Help! Isn't there any way to avoid writing this part twice?
->>32 string _VID \b,
-# >>>48 string JFIF JPEG
->>>40 belong >0 %d frames
->>>44 beshort >0 (%d x
->>>46 beshort >0 %d)
->16 string _VID \b,
-# >>32 string JFIF JPEG
->>24 belong >0 %d frames
->>28 beshort >0 (%d x
->>30 beshort >0 %d)
-
-0 string Paint\ Shop\ Pro\ Image\ File Paint Shop Pro Image File
-
-# "thumbnail file" (icon)
-# descended from "xv", but in use by other applications as well (Wolfram Kleff)
-0 string P7\ 332 XV "thumbnail file" (icon) data
-
-# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
-0 string KiSS KISS/GS
->4 byte 16 color
->>5 byte x %d bit
->>8 leshort x %d colors
->>10 leshort x %d groups
->4 byte 32 cell
->>5 byte x %d bit
->>8 leshort x %d x
->>10 leshort x %d
->>12 leshort x +%d
->>14 leshort x +%d
-
-# Webshots (www.webshots.com), by John Harrison
-0 string C\253\221g\230\0\0\0 Webshots Desktop .wbz file
-
-# Hercules DASD image files
-# From Jan Jaeger <jj@septa.nl>
-0 string CKD_P370 Hercules CKD DASD image file
->8 long x \b, %d heads per cylinder
->12 long x \b, track size %d bytes
->16 byte x \b, device type 33%2.2X
-
-0 string CKD_C370 Hercules compressed CKD DASD image file
->8 long x \b, %d heads per cylinder
->12 long x \b, track size %d bytes
->16 byte x \b, device type 33%2.2X
-
-0 string CKD_S370 Hercules CKD DASD shadow file
->8 long x \b, %d heads per cylinder
->12 long x \b, track size %d bytes
->16 byte x \b, device type 33%2.2X
-
-# Squeak images and programs - etoffi@softhome.net
-0 string \146\031\0\0 Squeak image data
-0 search/1 'From\040Squeak Squeak program text
-
-# partimage: file(1) magic for PartImage files (experimental, incomplete)
-# Author: Hans-Joachim Baader <hjb@pro-linux.de>
-0 string PaRtImAgE-VoLuMe PartImage
->0x0020 string 0.6.1 file version %s
->>0x0060 lelong >-1 volume %d
-#>>0x0064 8 byte identifier
-#>>0x007c reserved
->>0x0200 string >\0 type %s
->>0x1400 string >\0 device %s,
->>0x1600 string >\0 original filename %s,
-# Some fields omitted
->>0x2744 lelong 0 not compressed
->>0x2744 lelong 1 gzip compressed
->>0x2744 lelong 2 bzip2 compressed
->>0x2744 lelong >2 compressed with unknown algorithm
->0x0020 string >0.6.1 file version %s
->0x0020 string <0.6.1 file version %s
-
-# DCX is multi-page PCX, using a simple header of up to 1024
-# offsets for the respective PCX components.
-# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
-0 lelong 987654321 DCX multi-page PCX image data
-
-# Simon Walton <simonw@matteworld.com>
-# Kodak Cineon format for scanned negatives
-# http://www.kodak.com/US/en/motion/support/dlad/
-0 lelong 0xd75f2a80 Cineon image data
->200 belong >0 \b, %d x
->204 belong >0 %d
-
-
-# Bio-Rad .PIC is an image format used by microscope control systems
-# and related image processing software used by biologists.
-# From: Vebjorn Ljosa <vebjorn@ljosa.com>
-# BOOL values are two-byte integers; use them to rule out false positives.
-# http://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt
-# Samples: http://www.loci.wisc.edu/software/sample-data
-14 leshort <2
->62 leshort <2
->>54 leshort 12345 Bio-Rad .PIC Image File
->>>0 leshort >0 %d x
->>>2 leshort >0 %d,
->>>4 leshort =1 1 image in file
->>>4 leshort >1 %d images in file
-
-# From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
-# The description of *.mrw format can be found at
-# http://www.dalibor.cz/minolta/raw_file_format.htm
-0 string \000MRM Minolta Dimage camera raw image data
-
-# Summary: DjVu image / document
-# Extension: .djvu
-# Reference: http://djvu.org/docs/DjVu3Spec.djvu
-# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
-# Modified by (1): Abel Cheung <abelcheung@gmail.com>
-0 string AT&TFORM
->12 string DJVM DjVu multiple page document
-!:mime image/vnd.djvu
->12 string DJVU DjVu image or single page document
-!:mime image/vnd.djvu
->12 string DJVI DjVu shared document
-!:mime image/vnd.djvu
->12 string THUM DjVu page thumbnails
-!:mime image/vnd.djvu
-
-# Originally by Marc Espie
-# Modified by Robert Minsk <robertminsk at yahoo.com>
-# http://www.openexr.com/openexrfilelayout.pdf
-0 lelong 20000630 OpenEXR image data,
-!:mime image/x-exr
->4 lelong&0x000000ff x version %d,
->4 lelong ^0x00000200 storage: scanline
->4 lelong &0x00000200 storage: tiled
->8 search/0x1000 compression\0 \b, compression:
->>&16 byte 0 none
->>&16 byte 1 rle
->>&16 byte 2 zips
->>&16 byte 3 zip
->>&16 byte 4 piz
->>&16 byte 5 pxr24
->>&16 byte 6 b44
->>&16 byte 7 b44a
->>&16 byte 8 dwaa
->>&16 byte 9 dwab
->>&16 byte >9 unknown
->8 search/0x1000 dataWindow\0 \b, dataWindow:
->>&10 lelong x (%d
->>&14 lelong x %d)-
->>&18 lelong x \b(%d
->>&22 lelong x %d)
->8 search/0x1000 displayWindow\0 \b, displayWindow:
->>&10 lelong x (%d
->>&14 lelong x %d)-
->>&18 lelong x \b(%d
->>&22 lelong x %d)
->8 search/0x1000 lineOrder\0 \b, lineOrder:
->>&14 byte 0 increasing y
->>&14 byte 1 decreasing y
->>&14 byte 2 random y
->>&14 byte >2 unknown
-
-# SMPTE Digital Picture Exchange Format, SMPTE DPX
-#
-# ANSI/SMPTE 268M-1994, SMPTE Standard for File Format for Digital
-# Moving-Picture Exchange (DPX), v1.0, 18 February 1994
-# Robert Minsk <robertminsk at yahoo.com>
-# Modified by Harry Mallon <hjmallon at gmail.com>
-0 string SDPX DPX image data, big-endian,
-!:mime image/x-dpx
->0 use dpx_info
-0 string XPDS DPX image data, little-endian,
-!:mime image/x-dpx
->0 use \^dpx_info
-
-0 name dpx_info
->768 beshort <4
->>772 belong x %dx
->>776 belong x \b%d,
->768 beshort >3
->>776 belong x %dx
->>772 belong x \b%d,
->768 beshort 0 left to right/top to bottom
->768 beshort 1 right to left/top to bottom
->768 beshort 2 left to right/bottom to top
->768 beshort 3 right to left/bottom to top
->768 beshort 4 top to bottom/left to right
->768 beshort 5 top to bottom/right to left
->768 beshort 6 bottom to top/left to right
->768 beshort 7 bottom to top/right to left
-
-# From: Tom Hilinski <tom.hilinski@comcast.net>
-# http://www.unidata.ucar.edu/packages/netcdf/
-0 string CDF\001 NetCDF Data Format data
-
-#-----------------------------------------------------------------------
-# Hierarchical Data Format, used to facilitate scientific data exchange
-# specifications at http://hdf.ncsa.uiuc.edu/
-0 belong 0x0e031301 Hierarchical Data Format (version 4) data
-!:mime application/x-hdf
-0 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) data
-!:mime application/x-hdf
-512 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 512 bytes user block
-!:mime application/x-hdf
-1024 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 1k user block
-!:mime application/x-hdf
-2048 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 2k user block
-!:mime application/x-hdf
-4096 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 4k user block
-!:mime application/x-hdf
-
-
-# From: Tobias Burnus <burnus@net-b.de>
-# Xara (for a while: Corel Xara) is a graphic package, see
-# http://www.xara.com/ for Windows and as GPL application for Linux
-0 string XARA\243\243 Xara graphics file
-
-# http://www.cartesianinc.com/Tech/
-0 string CPC\262 Cartesian Perceptual Compression image
-!:mime image/x-cpi
-
-# From Albert Cahalan <acahalan@gmail.com>
-# puredigital used it for the CVS disposable camcorder
-#8 lelong 4 ZBM bitmap image data
-#>4 leshort x %u x
-#>6 leshort x %u
-
-# From Albert Cahalan <acahalan@gmail.com>
-# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
-0 string C565 OLPC firmware icon image data
->4 leshort x %u x
->6 leshort x %u
-
-# Applied Images - Image files from Cytovision
-# Gustavo Junior Alves <gjalves@gjalves.com.br>
-0 string \xce\xda\xde\xfa Cytovision Metaphases file
-0 string \xed\xad\xef\xac Cytovision Karyotype file
-0 string \x0b\x00\x03\x00 Cytovision FISH Probe file
-0 string \xed\xfe\xda\xbe Cytovision FLEX file
-0 string \xed\xab\xed\xfe Cytovision FLEX file
-0 string \xad\xfd\xea\xad Cytovision RATS file
-
-# Wavelet Scalar Quantization format used in gray-scale fingerprint images
-# From Tano M Fotang <mfotang@quanteq.com>
-0 string \xff\xa0\xff\xa8\x00 Wavelet Scalar Quantization image data
-
-# Type: PCO B16 image files
-# URL: http://www.pco.de/fileadmin/user_upload/db/download/MA_CWDCOPIE_0412b.pdf
-# From: Florian Philipp <florian.philipp@binarywings.net>
-# Extension: .b16
-# Description: Pixel image format produced by PCO Camware, typically used
-# together with PCO cameras.
-# Note: Different versions exist for e.g. 8 bit and 16 bit images.
-# Documentation is incomplete.
-0 string/b PCO- PCO B16 image data
->12 lelong x \b, %dx
->16 lelong x \b%d
->20 lelong 0 \b, short header
->20 lelong -1 \b, extended header
->>24 lelong 0 \b, grayscale
->>>36 lelong 0 linear LUT
->>>36 lelong 1 logarithmic LUT
->>>28 lelong x [%d
->>>32 lelong x \b,%d]
->>24 lelong 1 \b, color
->>>64 lelong 0 linear LUT
->>>64 lelong 1 logarithmic LUT
->>>40 lelong x r[%d
->>>44 lelong x \b,%d]
->>>48 lelong x g[%d
->>>52 lelong x \b,%d]
->>>56 lelong x b[%d
->>>60 lelong x \b,%d]
-
-# Polar Monitor Bitmap (.pmb) used as logo for Polar Electro watches
-# From: Markus Heidelberg <markus.heidelberg at web.de>
-0 string/t [BitmapInfo2] Polar Monitor Bitmap text
-!:mime image/x-polar-monitor-bitmap
-
-# From: Rick Richardson <rickrich@gmail.com>
-# updated by: Joerg Jenderek
-# URL: http://techmods.net/nuvi/
-0 string GARMIN\ BITMAP\ 01 Garmin Bitmap file
-# extension is also used for
-# Sony SRF raw image (image/x-sony-srf)
-# SRF map
-# Terragen Surface Map (http://www.planetside.co.uk/terragen)
-# FileLocator Pro search criteria file (http://www.mythicsoft.com/filelocatorpro)
-!:ext srf
-#!:mime image/x-garmin-srf
-# version 1.00,2.00,2.10,2.40,2.50
->0x2f string >0 \b, version %4.4s
-# width (2880,2881,3240)
->0x55 uleshort >0 \b, %dx
-# height (80,90)
->>0x53 uleshort x \b%d
-
-# Type: Ulead Photo Explorer5 (.pe5)
-# URL: http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
-# From: Simon Horman <horms@debian.org>
-0 string IIO2H Ulead Photo Explorer5
-
-# Type: X11 cursor
-# URL: http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
-# From: Mathias Brodala <info@noctus.net>
-0 string Xcur X11 cursor
-
-# Type: Olympus ORF raw images.
-# URL: http://libopenraw.freedesktop.org/wiki/Olympus_ORF
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-0 string MMOR Olympus ORF raw image data, big-endian
-!:mime image/x-olympus-orf
-0 string IIRO Olympus ORF raw image data, little-endian
-!:mime image/x-olympus-orf
-0 string IIRS Olympus ORF raw image data, little-endian
-!:mime image/x-olympus-orf
-
-# Type: files used in modern AVCHD camcoders to store clip information
-# Extension: .cpi
-# From: Alexander Danilov <alexander.a.danilov@gmail.com>
-0 string HDMV0100 AVCHD Clip Information
-
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/
-# Radiance HDR; usually has .pic or .hdr extension.
-0 string #?RADIANCE\n Radiance HDR image data
-#!mime image/vnd.radiance
-
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf
-# Used by the pfstools packages. The regex matches for the image size could
-# probably use some work. The MIME type is made up; if there's one in
-# actual common use, it should replace the one below.
-0 string PFS1\x0a PFS HDR image data
-#!mime image/x-pfs
->1 regex [0-9]*\ \b, %s
->>1 regex \ [0-9]{4} \bx%s
-
-# Type: Foveon X3F
-# URL: http://www.photofo.com/downloads/x3f-raw-format.pdf
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# Note that the MIME type isn't defined anywhere that I can find; if
-# there's a canonical type for this format, it should replace this one.
-0 string FOVb Foveon X3F raw image data
-!:mime image/x-x3f
->6 leshort x \b, version %d.
->4 leshort x \b%d
->28 lelong x \b, %dx
->32 lelong x \b%d
-
-# Paint.NET file
-# From Adam Buchbinder <adam.buchbinder@gmail.com>
-0 string PDN3 Paint.NET image data
-!:mime image/x-paintnet
-
-# Not really an image.
-# From: "Tano M. Fotang" <mfotang@quanteq.com>
-0 string \x46\x4d\x52\x00 ISO/IEC 19794-2 Format Minutiae Record (FMR)
-
-# doc: http://www.shikino.co.jp/eng/products/images/FLOWER.jpg.zip
-# example: http://www.shikino.co.jp/eng/products/images/FLOWER.wdp.zip
-90 bequad 0x574D50484F544F00 JPEG-XR Image
->98 byte&0x08 =0x08 \b, hard tiling
->99 byte&0x80 =0x80 \b, tiling present
->99 byte&0x40 =0x40 \b, codestream present
->99 byte&0x38 x \b, spatial xform=
->99 byte&0x38 0x00 \bTL
->99 byte&0x38 0x08 \bBL
->99 byte&0x38 0x10 \bTR
->99 byte&0x38 0x18 \bBR
->99 byte&0x38 0x20 \bBT
->99 byte&0x38 0x28 \bRB
->99 byte&0x38 0x30 \bLT
->99 byte&0x38 0x38 \bLB
->100 byte&0x80 =0x80 \b, short header
->>102 beshort+1 x \b, %d
->>104 beshort+1 x \bx%d
->100 byte&0x80 =0x00 \b, long header
->>102 belong+1 x \b, %x
->>106 belong+1 x \bx%x
->101 beshort&0xf x \b, bitdepth=
->>101 beshort&0xf 0x0 \b1-WHITE=1
->>101 beshort&0xf 0x1 \b8
->>101 beshort&0xf 0x2 \b16
->>101 beshort&0xf 0x3 \b16-SIGNED
->>101 beshort&0xf 0x4 \b16-FLOAT
->>101 beshort&0xf 0x5 \b(reserved 5)
->>101 beshort&0xf 0x6 \b32-SIGNED
->>101 beshort&0xf 0x7 \b32-FLOAT
->>101 beshort&0xf 0x8 \b5
->>101 beshort&0xf 0x9 \b10
->>101 beshort&0xf 0xa \b5-6-5
->>101 beshort&0xf 0xb \b(reserved %d)
->>101 beshort&0xf 0xc \b(reserved %d)
->>101 beshort&0xf 0xd \b(reserved %d)
->>101 beshort&0xf 0xe \b(reserved %d)
->>101 beshort&0xf 0xf \b1-BLACK=1
->101 beshort&0xf0 x \b, colorfmt=
->>101 beshort&0xf0 0x00 \bYONLY
->>101 beshort&0xf0 0x10 \bYUV240
->>101 beshort&0xf0 0x20 \bYWV422
->>101 beshort&0xf0 0x30 \bYWV444
->>101 beshort&0xf0 0x40 \bCMYK
->>101 beshort&0xf0 0x50 \bCMYKDIRECT
->>101 beshort&0xf0 0x60 \bNCOMPONENT
->>101 beshort&0xf0 0x70 \bRGB
->>101 beshort&0xf0 0x80 \bRGBE
->>101 beshort&0xf0 >0x80 \b(reserved 0x%x)
-
-# From: Johan van der Knijff <johan.vanderknijff@kb.nl>
-#
-# BPG (Better Portable Graphics) format
-# http://bellard.org/bpg/
-# http://fileformats.archiveteam.org/wiki/BPG
-#
-0 string \x42\x50\x47\xFB BPG (Better Portable Graphics)
-!:mime image/bpg
-
-# From: Joerg Jenderek
-# URL: https://en.wikipedia.org/wiki/Apple_Icon_Image_format
-0 string icns Mac OS X icon
-!:mime image/x-icns
-!:apple ????icns
-!:ext icns
->4 ubelong >0
-# file size
->>4 ubelong x \b, %d bytes
-# icon type
->>8 string x \b, "%4.4s" type
-
-# TIM images
-0 lelong 0x00000010 TIM image,
->4 lelong 0x8 4-Bit,
->4 lelong 0x9 8-Bit,
->4 lelong 0x2 15-Bit,
->4 lelong 0x3 24-Bit,
->4 lelong &8
->>(8.l+12) leshort x Pixel at (%d,
->>(8.l+14) leshort x \b%d)
->>(8.l+16) leshort x Size=%dx
->>(8.l+18) leshort x \b%d,
->>4 lelong 0x8 16 CLUT Entries at
->>4 lelong 0x9 256 CLUT Entries at
->>12 leshort x (%d,
->>14 leshort x \b%d)
->4 lelong ^8
->>12 leshort x Pixel at (%d,
->>14 leshort x \b%d)
->>16 leshort x Size=%dx
->>18 leshort x \b%d
-
-# MDEC streams
-0 lelong 0x80010160 MDEC video stream,
->16 leshort x %dx
->18 leshort x \b%d
-#>8 lelong x %d frames
-#>4 leshort x secCount=%d;
-#>6 leshort x nSectors=%d;
-#>12 lelong x frameSize=%d;
-
-# BS encoded bitstreams
-2 leshort 0x3800 BS image,
->6 leshort x Version %d,
->4 leshort x Quantization %d,
->0 leshort x (Decompresses to %d words)
-
-# Type: farbfeld image.
-# Url: http://tools.suckless.org/farbfeld/
-# From: Ian D. Scott <ian@iandouglasscott.com>
-#
-0 string farbfeld farbfeld image data,
->8 ubelong x %dx
->12 ubelong x \b%d
-
-# Type: Sega PVR image.
-# From: David Korth <gerbilsoft@gerbilsoft.com>
-# References:
-# - http://fabiensanglard.net/Mykaruga/tools/segaPVRFormat.txt
-# - https://github.com/yazgoo/pvrx2png
-# - https://github.com/nickworonekin/puyotools
-
-# Sega PVR header.
-0 name sega-pvr-image-header
->0x0C leshort x %d x
->0x0E leshort x %d
-# Image format.
->0x08 byte 0 \b, ARGB1555
->0x08 byte 1 \b, RGB565
->0x08 byte 2 \b, ARGB4444
->0x08 byte 3 \b, YUV442
->0x08 byte 4 \b, Bump
->0x08 byte 5 \b, 4bpp
->0x08 byte 6 \b, 8bpp
-# Image data type.
->0x09 byte 0x01 \b, square twiddled
->0x09 byte 0x02 \b, square twiddled & mipmap
->0x09 byte 0x03 \b, VQ
->0x09 byte 0x04 \b, VQ & mipmap
->0x09 byte 0x05 \b, 8-bit CLUT twiddled
->0x09 byte 0x06 \b, 4-bit CLUT twiddled
->0x09 byte 0x07 \b, 8-bit direct twiddled
->0x09 byte 0x08 \b, 4-bit direct twiddled
->0x09 byte 0x09 \b, rectangle
->0x09 byte 0x0B \b, rectangular stride
->0x09 byte 0x0D \b, rectangular twiddled
->0x09 byte 0x10 \b, small VQ
->0x09 byte 0x11 \b, small VQ & mipmap
->0x09 byte 0x12 \b, square twiddled & mipmap
-
-# Sega PVR (Xbox) image header.
-# Contains an embedded DirectDraw surface instead of PVR data.
-0 name sega-pvr-xbox-dds-header
->16 lelong x %d x
->12 lelong x %d,
->84 string x %.4s
-
-# Sega PVR image.
-0 string PVRT
->0x10 string DDS\040\174\000\000\000 Sega PVR (Xbox) image:
->>0x20 use sega-pvr-xbox-dds-header
->0x10 belong !0x44445320 Sega PVR image:
->>0 use sega-pvr-image-header
-
-# Sega PVR image with GBIX.
-0 string GBIX
->0x10 string PVRT
->>0x10 string DDS\040\174\000\000\000 Sega PVR (Xbox) image:
->>>0x20 use sega-pvr-xbox-dds-header
->>0x10 belong !0x44445320 Sega PVR image:
->>>0x10 use sega-pvr-image-header
->>0x08 lelong x \b, global index = %u
-
-# Sega GVR header.
-0 name sega-gvr-image-header
->0x0C beshort x %d x
->0x0E beshort x %d
-# Image data format.
->0x0B byte 0 \b, I4
->0x0B byte 1 \b, I8
->0x0B byte 2 \b, IA4
->0x0B byte 3 \b, IA8
->0x0B byte 4 \b, RGB565
->0x0B byte 5 \b, RGB5A3
->0x0B byte 6 \b, ARGB8888
->0x0B byte 8 \b, CI4
->0x0B byte 9 \b, CI8
->0x0B byte 14 \b, DXT1
-
-# Sega GVR image.
-0 string GVRT Sega GVR image:
->0x10 use sega-gvr-image-header
-
-# Sega GVR image with GBIX.
-0 string GBIX
->0x10 string GVRT Sega GVR image:
->>0x10 use sega-gvr-image-header
->>0x08 belong x \b, global index = %u
-
-# Light Field Picture
-# Documentation: http://optics.miloush.net/lytro/TheFileFormat.aspx
-# Typical file extensions: .lfp .lfr .lfx
-
-0 belong 0x894C4650
->4 belong 0x0D0A1A0A
->12 belong 0x00000000 Lytro Light Field Picture
->8 belong x \b, version %d
-
-# Type: Vision Research Phantom CINE Format
-# URL: https://www.phantomhighspeed.com/
-# URL2: http://phantomhighspeed.force.com/vriknowledge/servlet/fileField?id=0BEU0000000Cfyk
-# From: Harry Mallon <hjmallon at gmail.com>
-#
-# This has a short "CI" code but the 44 is the size of the struct which is
-# stable
-0 string CI
->2 leshort 44 Vision Research CINE Video,
->>4 leshort 0 Grayscale,
->>4 leshort 1 JPEG Compressed,
->>4 leshort 2 RAW,
->>6 leshort x version %d,
->>20 lelong x %d frames,
->>48 lelong x %dx
->>52 lelong x \b%d
-
-# Type: ARRI Raw Image
-# Info: SMPTE RDD30:2014
-# From: Harry Mallon <hjmallon at gmail.com>
-0 string ARRI ARRI ARI image data,
->4 lelong 0x78563412 little-endian,
->4 lelong 0x12345678 big-endian,
->12 lelong x version %d,
->20 lelong x %dx
->24 lelong x \b%d
-
-#------------------------------------------------------------------------------
# $File: inform,v 1.5 2009/09/19 16:28:09 christos Exp $
# inform: file(1) magic for Inform interactive fiction language
@@ -23720,7 +22207,7 @@
!:mime text/x-python
# import module [as abrev]
-0 regex \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
+0 regex/4096 \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
!:mime text/x-python
# comments
@@ -23736,7 +22223,7 @@
# except: or finally:
# block
0 search/4096 try:
->&0 regex \^[[:space:]]*except.*:$ Python script text executable
+>&0 regex/4096 \^[[:space:]]*except.*:$ Python script text executable
!:strength + 15
!:mime text/x-python
>&0 search/4096 finally: Python script text executable
@@ -23748,7 +22235,7 @@
!:mime text/x-python
# def name(*args, **kwargs):
-0 regex \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
+0 regex/4096 \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
>&0 regex \\(([[:alpha:]*_,\ ]){0,255}\\):$ Python script text executable
!:strength + 15
!:mime text/x-python
@@ -24270,32 +22757,32 @@
# What looks like ruby, but does not have a shebang
# (modules and such)
# From: Lubomir Rintel <lkundrak@v3.sk>
-0 regex \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
+0 regex/4096 \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
>0 regex def\ [a-z]|\ do$
->>&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
+>>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
!:strength + 30
!:mime text/x-ruby
-0 regex \^[[:space:]]*(class|module)[[:space:]][A-Z]
+0 regex/4096 \^[[:space:]]*(class|module)[[:space:]][A-Z]
>0 regex (modul|includ)e\ [A-Z]|def\ [a-z]
->>&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
+>>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
!:strength + 30
!:mime text/x-ruby
# Classes with no modules or defs, beats simple ASCII
-0 regex \^[[:space:]]*(class|module)[[:space:]][A-Z]
->&0 regex \^[[:space:]]*end([[:space:]]+[;#if].*)?$ Ruby script text
+0 regex/4096 \^[[:space:]]*(class|module)[[:space:]][A-Z]
+>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#if].*)?$ Ruby script text
!:strength + 10
!:mime text/x-ruby
# Looks for function definition to balance python magic
# def name (args)
# end
-0 regex \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
->&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
+0 regex/4096 \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
+>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
!:strength + 10
!:mime text/x-ruby
-0 regex \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+' Ruby script text
+0 regex/4096 \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+' Ruby script text
!:mime text/x-ruby
-0 regex \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+ Ruby script text
+0 regex/4096 \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+ Ruby script text
!:mime text/x-ruby
#------------------------------------------------------------------------------
diff --git a/ext/fileinfo/tests/magic私はガラスを食べられます b/ext/fileinfo/tests/magic私はガラスを食べられます
index c66cc84c87..e2e92726a4 100644
--- a/ext/fileinfo/tests/magic私はガラスを食べられます
+++ b/ext/fileinfo/tests/magic私はガラスを食べられます
@@ -5368,61 +5368,61 @@
# C
# Check for class if include is found, otherwise class is beaten by include becouse of lowered strength
0 regex \^#include C
->0 regex \^class[[:space:]]+
+>0 regex/4096 \^class[[:space:]]+
>>&0 regex \\{[\.\*]\\}(;)?$ \b++
>&0 clear x source text
!:strength + 13
!:mime text/x-c
-0 regex \^#[[:space:]]*pragma C source text
+0 regex/4096 \^#[[:space:]]*pragma C source text
!:mime text/x-c
-0 regex \^#[[:space:]]*(if\|ifn)def
->&0 regex \^#[[:space:]]*endif$ C source text
+0 regex/4096 \^#[[:space:]]*(if\|ifn)def
+>&0 regex/4096 \^#[[:space:]]*endif$ C source text
!:mime text/x-c
-0 regex \^#[[:space:]]*(if\|ifn)def
->&0 regex \^#[[:space:]]*define C source text
+0 regex/4096 \^#[[:space:]]*(if\|ifn)def
+>&0 regex/4096 \^#[[:space:]]*define C source text
!:mime text/x-c
-0 regex \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
+0 regex/4096 \^[[:space:]]*char(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
!:mime text/x-c
-0 regex \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
+0 regex/4096 \^[[:space:]]*double(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
!:mime text/x-c
-0 regex \^[[:space:]]*extern[[:space:]]+ C source text
+0 regex/4096 \^[[:space:]]*extern[[:space:]]+ C source text
!:mime text/x-c
-0 regex \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
+0 regex/4096 \^[[:space:]]*float(\ \\*|\\*)(.+)(=.*)?;[[:space:]]*$ C source text
!:mime text/x-c
-0 regex \^struct[[:space:]]+ C source text
+0 regex/4096 \^struct[[:space:]]+ C source text
!:mime text/x-c
-0 regex \^union[[:space:]]+ C source text
+0 regex/4096 \^union[[:space:]]+ C source text
!:mime text/x-c
0 search/8192 main(
->&0 regex \\)[[:space:]]*\\{ C source text
+>&0 regex/4096 \\)[[:space:]]*\\{ C source text
!:mime text/x-c
# C++
# The strength of these rules is increased so they beat the C rules above
-0 regex \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{ C++ source text
+0 regex/4096 \^namespace[[:space:]]+[_[:alpha:]]{1,30}[[:space:]]*\\{ C++ source text
!:strength + 30
!:mime text/x-c++
# using namespace [namespace] or using std::[lib]
-0 regex \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*; C++ source text
+0 regex/4096 \^using[[:space:]]+(namespace\ )?std(::)?[[:alpha:]]*[[:space:]]*; C++ source text
!:strength + 30
!:mime text/x-c++
-0 regex \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$ C++ source text
+0 regex/4096 \^[[:space:]]*template[[:space:]]*<.*>[[:space:]]*$ C++ source text
!:strength + 30
!:mime text/x-c++
-0 regex \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$ C++ source text
+0 regex/4096 \^[[:space:]]*virtual[[:space:]]+.*[};][[:space:]]*$ C++ source text
!:strength + 30
!:mime text/x-c++
# But class alone is reduced to avoid beating php (Jens Schleusener)
-0 regex \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$ C++ source text
+0 regex/4096 \^[[:space:]]*class[[:space:]]+[[:digit:][:alpha:]:_]+[[:space:]]*\\{(.*[\n]*)*\\}(;)?$ C++ source text
!:strength + 13
!:mime text/x-c++
-0 regex \^[[:space:]]*public: C++ source text
+0 regex/4096 \^[[:space:]]*public: C++ source text
!:strength + 30
!:mime text/x-c++
-0 regex \^[[:space:]]*private: C++ source text
+0 regex/4096 \^[[:space:]]*private: C++ source text
!:strength + 30
!:mime text/x-c++
-0 regex \^[[:space:]]*protected: C++ source text
+0 regex/4096 \^[[:space:]]*protected: C++ source text
!:strength + 30
!:mime text/x-c++
@@ -15541,1519 +15541,6 @@
>24 lelong x \b%d
#------------------------------------------------------------------------------
-# $File: images,v 1.131 2018/02/16 15:44:28 christos Exp $
-# images: file(1) magic for image formats (see also "iff", and "c-lang" for
-# XPM bitmaps)
-#
-# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
-# additions by janl@ifi.uio.no as well as others. Jan also suggested
-# merging several one- and two-line files into here.
-#
-# little magic: PCX (first byte is 0x0a)
-
-# Targa - matches `povray', `ppmtotga' and `xv' outputs
-# by Philippe De Muyter <phdm@macqel.be>
-# URL: http://justsolve.archiveteam.org/wiki/TGA
-# Reference: http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf
-# Update: Joerg Jenderek
-# at 2, byte ImgType must be 1, 2, 3, 9, 10 or 11
-# ,32 or 33 (both not observed)
-# at 1, byte CoMapType must be 1 if ImgType is 1 or 9, 0 otherwise
-# or theoretically 2-128 reserved for use by Truevision or 128-255 may be used for developer applications
-# at 3, leshort Index is 0 for povray, ppmtotga and xv outputs
-# `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
-# `tgatoppm' recognizes a superset (Index may be anything)
-#
-# test of Color Map Type 0~no 1~color map
-# and Image Type 1 2 3 9 10 11 32 33
-# and Color Map Entry Size 0 15 16 24 32
-0 ubequad&0x00FeC400000000C0 0
-# skip more garbage like *.iso by looking for positive image type
->2 ubyte >0
-# skip some compiled terminfo like xterm+tmux by looking for image type less equal 33
->>2 ubyte <34
-# skip arches.3200 , Finder.Root , Slp.1 by looking for low pixel depth 1 8 15 16 24 32
->>>16 ubyte 1
->>>>0 use tga-image
->>>16 ubyte 8
->>>>0 use tga-image
->>>16 ubyte 15
->>>>0 use tga-image
->>>16 ubyte 16
->>>>0 use tga-image
->>>16 ubyte 24
->>>>0 use tga-image
->>>16 ubyte 32
->>>>0 use tga-image
-# display tga bitmap image information
-0 name tga-image
->2 ubyte <34 Targa image data
-!:mime image/x-tga
-!:apple ????TPIC
-# normal extension .tga but some Truevision products used others:
-# tpic (Apple),icb (Image Capture Board),vda (Video Display Adapter),vst (NuVista),win (UNSURE about that)
-!:ext tga/tpic/icb/vda/vst
-# image type 1 2 3 9 10 11 32 33
->2 ubyte&0xF7 1 - Map
->2 ubyte&0xF7 2 - RGB
-# alpha channel
->>17 ubyte&0x0F >0 \bA
->2 ubyte&0xF7 3 - Mono
-# type not found, but by http://www.fileformat.info/format/tga/corion.htm
-# Compressed color-mapped data, using Huffman, Delta, and runlength encoding
->2 ubyte 32 - Color
-# Compressed color-mapped data, using Huffman, Delta, and RLE. 4-pass quadtree- type process
->2 ubyte 33 - Color
-# Color Map Type 0~no 1~color map
->1 ubyte 1 (
-# first color map entry, 0 normal
->>3 uleshort >0 \b%d-
-# color map length 0 2 1dh 3bh d9h 100h
->>5 uleshort x \b%d)
-# 8~run length encoding bit
->2 ubyte&0x08 8 - RLE
-# gimp can create big pictures!
->12 uleshort >0 %d x
->12 uleshort =0 65536 x
-# image height. 0 interpreted as 65536
->14 uleshort >0 %d
->14 uleshort =0 65536
-# Image Pixel depth 1 8 15 16 24 32
->16 ubyte x x %d
-# X origin of image. 0 normal
->8 uleshort >0 +%d
-# Y origin of image. 0 normal; positive for top
->10 uleshort >0 +%d
-# Image descriptor: bits 3-0 give the alpha channel depth, bits 5-4 give direction
->17 ubyte&0x0F >0 - %d-bit alpha
-# bits 5-4 give direction. normal bottom left
->17 ubyte &0x20 - top
-#>17 ubyte ^0x20 - bottom
->17 ubyte &0x10 - right
-#>17 ubyte ^0x10 - left
-# some info say other bits 6-7 should be zero
-# but data storage interleave by http://www.fileformat.info/format/tga/corion.htm
-# 00 - no interleave;01 - even/odd interleave; 10 - four way interleave; 11 - reserved
-#>17 ubyte&0xC0 0x00 - no interleave
->17 ubyte&0xC0 0x40 - interleave
->17 ubyte&0xC0 0x80 - four way interleave
->17 ubyte&0xC0 0xC0 - reserved
-# positive length implies identification field
->0 ubyte >0
->>18 string x "%s"
-# last 18 bytes of newer tga file footer signature
->18 search/4261301/s TRUEVISION-XFILE.\0
-# extension area offset if not 0
->>&-8 ulelong >0
-# length of the extension area. normal 495 for version 2.0
->>>(&-4.l) uleshort 0x01EF
-# AuthorName[41]
->>>>&0 string >\0 - author "%-.40s"
-# Comment[324]=4 * 80 null terminated
->>>>&41 string >\0 - comment "%-.80s"
-# date
->>>>&365 ubequad&0xffffFFFFffff0000 !0
-# Day
->>>>>&-6 uleshort x %d
-# Month
->>>>>&-8 uleshort x \b-%d
-# Year
->>>>>&-4 uleshort x \b-%d
-# time
->>>>&371 ubequad&0xffffFFFFffff0000 !0
-# hour
->>>>>&-8 uleshort x %d
-# minutes
->>>>>&-6 uleshort x \b:%.2d
-# second
->>>>>&-4 uleshort x \b:%.2d
-# JobName[41]
->>>>&377 string >\0 - job "%-.40s"
-# JobHour Jobminute Jobsecond
->>>>&418 ubequad&0xffffFFFFffff0000 !0
->>>>>&-8 uleshort x %d
->>>>>&-6 uleshort x \b:%.2d
->>>>>&-4 uleshort x \b:%.2d
-# SoftwareId[41]
->>>>&424 string >\0 - %-.40s
-# SoftwareVersionNumber
->>>>&424 ubyte >0
->>>>>&40 uleshort/100 x %d
->>>>>&40 uleshort%100 x \b.%d
-# VersionLetter
->>>>>&42 ubyte >0x20 \b%c
-# KeyColor
->>>>&468 ulelong >0 - keycolor 0x%8.8x
-# Denominator of Pixel ratio. 0~no pixel aspect
->>>>&474 uleshort >0
-# Numerator
->>>>>&-4 uleshort >0 - aspect %d
->>>>>&-2 uleshort x \b/%d
-# Denominator of Gamma ratio. 0~no Gamma value
->>>>&478 uleshort >0
-# Numerator
->>>>>&-4 uleshort >0 - gamma %d
->>>>>&-2 uleshort x \b/%d
-# ColorOffset
-#>>>>&480 ulelong x - col offset 0x%8.8x
-# StampOffset
-#>>>>&484 ulelong x - stamp offset 0x%8.8x
-# ScanOffset
-#>>>>&488 ulelong x - scan offset 0x%8.8x
-# AttributesType
-#>>>>&492 ubyte x - Attributes 0x%x
-## EndOfTGA
-
-# PBMPLUS images
-# The next byte following the magic is always whitespace.
-# strength is changed to try these patterns before "x86 boot sector"
-0 name netpbm
->3 regex/s =[0-9]{1,50}\ [0-9]{1,50} Netpbm image data
->>&0 regex =[0-9]{1,50} \b, size = %s x
->>>&0 regex =[0-9]{1,50} \b %s
-
-0 search/1 P1
->0 regex/4 P1[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, bitmap
-!:strength + 45
-!:mime image/x-portable-bitmap
-
-0 search/1 P2
->0 regex/4 P2[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, greymap
-!:strength + 45
-!:mime image/x-portable-greymap
-
-0 search/1 P3
->0 regex/4 P3[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, pixmap
-!:strength + 45
-!:mime image/x-portable-pixmap
-
-0 string P4
->0 regex/4 P4[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, rawbits, bitmap
-!:strength + 45
-!:mime image/x-portable-bitmap
-
-0 string P5
->0 regex/4 P5[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, rawbits, greymap
-!:strength + 45
-!:mime image/x-portable-greymap
-
-0 string P6
->0 regex/4 P6[\040\t\f\r\n]
->>0 use netpbm
->>>0 string x \b, rawbits, pixmap
-!:strength + 45
-!:mime image/x-portable-pixmap
-
-0 string P7 Netpbm PAM image file
-!:mime image/x-portable-pixmap
-
-# From: bryanh@giraffe-data.com (Bryan Henderson)
-0 string \117\072 Solitaire Image Recorder format
->4 string \013 MGI Type 11
->4 string \021 MGI Type 17
-0 string .MDA MicroDesign data
->21 byte 48 version 2
->21 byte 51 version 3
-0 string .MDP MicroDesign page data
->21 byte 48 version 2
->21 byte 51 version 3
-
-# NIFF (Navy Interchange File Format, a modification of TIFF) images
-# [GRR: this *must* go before TIFF]
-0 string IIN1 NIFF image data
-!:mime image/x-niff
-
-# Canon RAW version 1 (CRW) files are a type of Canon Image File Format
-# (CIFF) file. These are apparently all little-endian.
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://www.sno.phy.queensu.ca/~phil/exiftool/canon_raw.html
-0 string II\x1a\0\0\0HEAPCCDR Canon CIFF raw image data
-!:mime image/x-canon-crw
->16 leshort x \b, version %d.
->14 leshort x \b%d
-
-# Canon RAW version 2 (CR2) files are a kind of TIFF with an extra magic
-# number. Put this above the TIFF test to make sure we detect them.
-# These are apparently all little-endian.
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://libopenraw.freedesktop.org/wiki/Canon_CR2
-0 string II\x2a\0\x10\0\0\0CR Canon CR2 raw image data
-!:mime image/x-canon-cr2
->10 byte x \b, version %d.
->11 byte x \b%d
-
-# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com)
-# The second word of TIFF files is the TIFF version number, 42, which has
-# never changed. The TIFF specification recommends testing for it.
-0 string MM\x00\x2a TIFF image data, big-endian
-!:mime image/tiff
->(4.L) use \^tiff_ifd
-0 string II\x2a\x00 TIFF image data, little-endian
-!:mime image/tiff
->(4.l) use tiff_ifd
-
-0 name tiff_ifd
->0 leshort x \b, direntries=%d
->2 use tiff_entry
-
-0 name tiff_entry
-# NewSubFileType
->0 leshort 0xfe
->>12 use tiff_entry
->0 leshort 0x100
->>4 lelong 1
->>>12 use tiff_entry
->>>8 leshort x \b, width=%d
->0 leshort 0x101
->>4 lelong 1
->>>8 leshort x \b, height=%d
->>>12 use tiff_entry
->0 leshort 0x102
->>8 leshort x \b, bps=%d
->>12 use tiff_entry
->0 leshort 0x103
->>4 lelong 1 \b, compression=
->>>8 leshort 1 \bnone
->>>8 leshort 2 \bhuffman
->>>8 leshort 3 \bbi-level group 3
->>>8 leshort 4 \bbi-level group 4
->>>8 leshort 5 \bLZW
->>>8 leshort 6 \bJPEG (old)
->>>8 leshort 7 \bJPEG
->>>8 leshort 8 \bdeflate
->>>8 leshort 9 \bJBIG, ITU-T T.85
->>>8 leshort 0xa \bJBIG, ITU-T T.43
->>>8 leshort 0x7ffe \bNeXT RLE 2-bit
->>>8 leshort 0x8005 \bPackBits (Macintosh RLE)
->>>8 leshort 0x8029 \bThunderscan RLE
->>>8 leshort 0x807f \bRasterPadding (CT or MP)
->>>8 leshort 0x8080 \bRLE (Line Work)
->>>8 leshort 0x8081 \bRLE (High-Res Cont-Tone)
->>>8 leshort 0x8082 \bRLE (Binary Line Work)
->>>8 leshort 0x80b2 \bDeflate (PKZIP)
->>>8 leshort 0x80b3 \bKodak DCS
->>>8 leshort 0x8765 \bJBIG
->>>8 leshort 0x8798 \bJPEG2000
->>>8 leshort 0x8799 \bNikon NEF Compressed
->>>8 default x
->>>>8 leshort x \b(unknown 0x%x)
->>>12 use tiff_entry
->0 leshort 0x106 \b, PhotometricIntepretation=
->>8 clear x
->>8 leshort 0 \bWhiteIsZero
->>8 leshort 1 \bBlackIsZero
->>8 leshort 2 \bRGB
->>8 leshort 3 \bRGB Palette
->>8 leshort 4 \bTransparency Mask
->>8 leshort 5 \bCMYK
->>8 leshort 6 \bYCbCr
->>8 leshort 8 \bCIELab
->>8 default x
->>>8 leshort x \b(unknown=0x%x)
->>12 use tiff_entry
-# FillOrder
->0 leshort 0x10a
->>4 lelong 1
->>>12 use tiff_entry
-# DocumentName
->0 leshort 0x10d
->>(8.l) string x \b, name=%s
->>>12 use tiff_entry
-# ImageDescription
->0 leshort 0x10e
->>(8.l) string x \b, description=%s
->>>12 use tiff_entry
-# Make
->0 leshort 0x10f
->>(8.l) string x \b, manufacturer=%s
->>>12 use tiff_entry
-# Model
->0 leshort 0x110
->>(8.l) string x \b, model=%s
->>>12 use tiff_entry
-# StripOffsets
->0 leshort 0x111
->>12 use tiff_entry
-# Orientation
->0 leshort 0x112 \b, orientation=
->>8 leshort 1 \bupper-left
->>8 leshort 3 \blower-right
->>8 leshort 6 \bupper-right
->>8 leshort 8 \blower-left
->>8 leshort 9 \bundefined
->>8 default x
->>>8 leshort x \b[*%d*]
->>12 use tiff_entry
-# XResolution
->0 leshort 0x11a
->>8 lelong x \b, xresolution=%d
->>12 use tiff_entry
-# YResolution
->0 leshort 0x11b
->>8 lelong x \b, yresolution=%d
->>12 use tiff_entry
-# ResolutionUnit
->0 leshort 0x128
->>8 leshort x \b, resolutionunit=%d
->>12 use tiff_entry
-# Software
->0 leshort 0x131
->>(8.l) string x \b, software=%s
->>12 use tiff_entry
-# Datetime
->0 leshort 0x132
->>(8.l) string x \b, datetime=%s
->>12 use tiff_entry
-# HostComputer
->0 leshort 0x13c
->>(8.l) string x \b, hostcomputer=%s
->>12 use tiff_entry
-# WhitePoint
->0 leshort 0x13e
->>12 use tiff_entry
-# PrimaryChromaticities
->0 leshort 0x13f
->>12 use tiff_entry
-# YCbCrCoefficients
->0 leshort 0x211
->>12 use tiff_entry
-# YCbCrPositioning
->0 leshort 0x213
->>12 use tiff_entry
-# ReferenceBlackWhite
->0 leshort 0x214
->>12 use tiff_entry
-# Copyright
->0 leshort 0x8298
->>(8.l) string x \b, copyright=%s
->>12 use tiff_entry
-# ExifOffset
->0 leshort 0x8769
->>12 use tiff_entry
-# GPS IFD
->0 leshort 0x8825 \b, GPS-Data
->>12 use tiff_entry
-
-#>0 leshort x \b, unknown=0x%x
-#>>12 use tiff_entry
-
-0 string MM\x00\x2b Big TIFF image data, big-endian
-!:mime image/tiff
-0 string II\x2b\x00 Big TIFF image data, little-endian
-!:mime image/tiff
-
-# PNG [Portable Network Graphics, or "PNG's Not GIF"] images
-# (Greg Roelofs, newt@uchicago.edu)
-# (Albert Cahalan, acahalan@cs.uml.edu)
-#
-# 137 P N G \r \n ^Z \n [4-byte length] I H D R [HEAD data] [HEAD crc] ...
-#
-
-# IHDR parser
-0 name png-ihdr
->0 belong x \b, %d x
->4 belong x %d,
->8 byte x %d-bit
->9 byte 0 grayscale,
->9 byte 2 \b/color RGB,
->9 byte 3 colormap,
->9 byte 4 gray+alpha,
->9 byte 6 \b/color RGBA,
-#>10 byte 0 deflate/32K,
->12 byte 0 non-interlaced
->12 byte 1 interlaced
-
-# Standard PNG image.
-0 string \x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0DIHDR PNG image data
-!:mime image/png
-!:strength +10
->16 use png-ihdr
-
-# Apple CgBI PNG image.
-0 string \x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x04CgBI
->24 string \x00\x00\x00\x0DIHDR PNG image data (CgBI)
-!:mime image/png
-!:strength +10
->>32 use png-ihdr
-
-# possible GIF replacements; none yet released!
-# (Greg Roelofs, newt@uchicago.edu)
-#
-# GRR 950115: this was mine ("Zip GIF"):
-0 string GIF94z ZIF image (GIF+deflate alpha)
-!:mime image/x-unknown
-#
-# GRR 950115: this is Jeremy Wohl's Free Graphics Format (better):
-#
-0 string FGF95a FGF image (GIF+deflate beta)
-!:mime image/x-unknown
-#
-# GRR 950115: this is Thomas Boutell's Portable Bitmap Format proposal
-# (best; not yet implemented):
-#
-0 string PBF PBF image (deflate compression)
-!:mime image/x-unknown
-
-# GIF
-0 string GIF8 GIF image data
-!:mime image/gif
-!:apple 8BIMGIFf
->4 string 7a \b, version 8%s,
->4 string 9a \b, version 8%s,
->6 leshort >0 %d x
->8 leshort >0 %d
-#>10 byte &0x80 color mapped,
-#>10 byte&0x07 =0x00 2 colors
-#>10 byte&0x07 =0x01 4 colors
-#>10 byte&0x07 =0x02 8 colors
-#>10 byte&0x07 =0x03 16 colors
-#>10 byte&0x07 =0x04 32 colors
-#>10 byte&0x07 =0x05 64 colors
-#>10 byte&0x07 =0x06 128 colors
-#>10 byte&0x07 =0x07 256 colors
-
-# ITC (CMU WM) raster files. It is essentially a byte-reversed Sun raster,
-# 1 plane, no encoding.
-0 string \361\0\100\273 CMU window manager raster image data
->4 lelong >0 %d x
->8 lelong >0 %d,
->12 lelong >0 %d-bit
-
-# Magick Image File Format
-0 string id=ImageMagick MIFF image data
-
-# Artisan
-0 long 1123028772 Artisan image data
->4 long 1 \b, rectangular 24-bit
->4 long 2 \b, rectangular 8-bit with colormap
->4 long 3 \b, rectangular 32-bit (24-bit with matte)
-
-# FIG (Facility for Interactive Generation of figures), an object-based format
-0 search/1 #FIG FIG image text
->5 string x \b, version %.3s
-
-# PHIGS
-0 string ARF_BEGARF PHIGS clear text archive
-0 string @(#)SunPHIGS SunPHIGS
-# version number follows, in the form m.n
->40 string SunBin binary
->32 string archive archive
-
-# GKS (Graphics Kernel System)
-0 string GKSM GKS Metafile
->24 string SunGKS \b, SunGKS
-
-# CGM image files
-0 string BEGMF clear text Computer Graphics Metafile
-
-# MGR bitmaps (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de)
-0 string yz MGR bitmap, modern format, 8-bit aligned
-0 string zz MGR bitmap, old format, 1-bit deep, 16-bit aligned
-0 string xz MGR bitmap, old format, 1-bit deep, 32-bit aligned
-0 string yx MGR bitmap, modern format, squeezed
-
-# Fuzzy Bitmap (FBM) images
-0 string %bitmap\0 FBM image data
->30 long 0x31 \b, mono
->30 long 0x33 \b, color
-
-# facsimile data
-1 string PC\ Research,\ Inc group 3 fax data
->29 byte 0 \b, normal resolution (204x98 DPI)
->29 byte 1 \b, fine resolution (204x196 DPI)
-# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
-0 string Sfff structured fax file
-
-# From: Joerg Jenderek <joerg.jen.der.ek@gmx.net>
-# most files with the extension .EPA and some with .BMP
-0 string \x11\x06 Award BIOS Logo, 136 x 84
-!:mime image/x-award-bioslogo
-0 string \x11\x09 Award BIOS Logo, 136 x 126
-!:mime image/x-award-bioslogo
-#0 string \x07\x1f BIOS Logo corrupted?
-# http://www.blackfiveservices.co.uk/awbmtools.shtml
-# http://biosgfx.narod.ru/v3/
-# http://biosgfx.narod.ru/abr-2/
-0 string AWBM
->4 leshort <1981 Award BIOS bitmap
-!:mime image/x-award-bmp
-# image width is a multiple of 4
->>4 leshort&0x0003 0
->>>4 leshort x \b, %d
->>>6 leshort x x %d
->>4 leshort&0x0003 >0 \b,
->>>4 leshort&0x0003 =1
->>>>4 leshort x %d+3
->>>4 leshort&0x0003 =2
->>>>4 leshort x %d+2
->>>4 leshort&0x0003 =3
->>>>4 leshort x %d+1
->>>6 leshort x x %d
-# at offset 8 starts imagedata followed by "RGB " marker
-
-# PC bitmaps (OS/2, Windows BMP files) (Greg Roelofs, newt@uchicago.edu)
-# http://en.wikipedia.org/wiki/BMP_file_format#DIB_header_.\
-# 28bitmap_information_header.29
-0 string BM
->14 leshort 12 PC bitmap, OS/2 1.x format
-!:mime image/x-ms-bmp
->>18 leshort x \b, %d x
->>20 leshort x %d
->14 leshort 64 PC bitmap, OS/2 2.x format
-!:mime image/x-ms-bmp
->>18 leshort x \b, %d x
->>20 leshort x %d
->14 leshort 40 PC bitmap, Windows 3.x format
-!:mime image/x-ms-bmp
->>18 lelong x \b, %d x
->>22 lelong x %d x
->>28 leshort x %d
->14 leshort 124 PC bitmap, Windows 98/2000 and newer format
-!:mime image/x-ms-bmp
->>18 lelong x \b, %d x
->>22 lelong x %d x
->>28 leshort x %d
->14 leshort 108 PC bitmap, Windows 95/NT4 and newer format
-!:mime image/x-ms-bmp
->>18 lelong x \b, %d x
->>22 lelong x %d x
->>28 leshort x %d
->14 leshort 128 PC bitmap, Windows NT/2000 format
-!:mime image/x-ms-bmp
->>18 lelong x \b, %d x
->>22 lelong x %d x
->>28 leshort x %d
-# Too simple - MPi
-#0 string IC PC icon data
-#0 string PI PC pointer image data
-#0 string CI PC color icon data
-#0 string CP PC color pointer image data
-# Conflicts with other entries [BABYL]
-#0 string BA PC bitmap array data
-
-# XPM icons (Greg Roelofs, newt@uchicago.edu)
-0 search/1 /*\ XPM\ */ X pixmap image text
-!:mime image/x-xpmi
-
-# Utah Raster Toolkit RLE images (janl@ifi.uio.no)
-0 leshort 0xcc52 RLE image data,
->6 leshort x %d x
->8 leshort x %d
->2 leshort >0 \b, lower left corner: %d
->4 leshort >0 \b, lower right corner: %d
->10 byte&0x1 =0x1 \b, clear first
->10 byte&0x2 =0x2 \b, no background
->10 byte&0x4 =0x4 \b, alpha channel
->10 byte&0x8 =0x8 \b, comment
->11 byte >0 \b, %d color channels
->12 byte >0 \b, %d bits per pixel
->13 byte >0 \b, %d color map channels
-
-# image file format (Robert Potter, potter@cs.rochester.edu)
-0 string Imagefile\ version- iff image data
-# this adds the whole header (inc. version number), informative but longish
->10 string >\0 %s
-
-# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com)
-0 belong 0x59a66a95 Sun raster image data
->4 belong >0 \b, %d x
->8 belong >0 %d,
->12 belong >0 %d-bit,
-#>16 belong >0 %d bytes long,
->20 belong 0 old format,
-#>20 belong 1 standard,
->20 belong 2 compressed,
->20 belong 3 RGB,
->20 belong 4 TIFF,
->20 belong 5 IFF,
->20 belong 0xffff reserved for testing,
->24 belong 0 no colormap
->24 belong 1 RGB colormap
->24 belong 2 raw colormap
-#>28 belong >0 colormap is %d bytes long
-
-# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
-#
-# See
-# http://reality.sgi.com/grafica/sgiimage.html
-#
-0 beshort 474 SGI image data
-#>2 byte 0 \b, verbatim
->2 byte 1 \b, RLE
-#>3 byte 1 \b, normal precision
->3 byte 2 \b, high precision
->4 beshort x \b, %d-D
->6 beshort x \b, %d x
->8 beshort x %d
->10 beshort x \b, %d channel
->10 beshort !1 \bs
->80 string >0 \b, "%s"
-
-0 string IT01 FIT image data
->4 belong x \b, %d x
->8 belong x %d x
->12 belong x %d
-#
-0 string IT02 FIT image data
->4 belong x \b, %d x
->8 belong x %d x
->12 belong x %d
-#
-2048 string PCD_IPI Kodak Photo CD image pack file
->0xe02 byte&0x03 0x00 , landscape mode
->0xe02 byte&0x03 0x01 , portrait mode
->0xe02 byte&0x03 0x02 , landscape mode
->0xe02 byte&0x03 0x03 , portrait mode
-0 string PCD_OPA Kodak Photo CD overview pack file
-
-# FITS format. Jeff Uphoff <juphoff@tarsier.cv.nrao.edu>
-# FITS is the Flexible Image Transport System, the de facto standard for
-# data and image transfer, storage, etc., for the astronomical community.
-# (FITS floating point formats are big-endian.)
-0 string SIMPLE\ \ = FITS image data
->109 string 8 \b, 8-bit, character or unsigned binary integer
->108 string 16 \b, 16-bit, two's complement binary integer
->107 string \ 32 \b, 32-bit, two's complement binary integer
->107 string -32 \b, 32-bit, floating point, single precision
->107 string -64 \b, 64-bit, floating point, double precision
-
-# other images
-0 string This\ is\ a\ BitMap\ file Lisp Machine bit-array-file
-
-# From SunOS 5.5.1 "/etc/magic" - appeared right before Sun raster image
-# stuff.
-#
-0 beshort 0x1010 PEX Binary Archive
-
-# DICOM medical imaging data
-# URL: https://en.wikipedia.org/wiki/DICOM#Data_format
-# Note: "dcm" is the official file name extension
-# XnView mention also "dc3" and "acr" as file name extension
-128 string DICM DICOM medical imaging data
-!:mime application/dicom
-!:ext dcm/dicom/dic
-
-# XWD - X Window Dump file.
-# As described in /usr/X11R6/include/X11/XWDFile.h
-# used by the xwd program.
-# Bradford Castalia, idaeim, 1/01
-# updated by Adam Buchbinder, 2/09
-# The following assumes version 7 of the format; the first long is the length
-# of the header, which is at least 25 4-byte longs, and the one at offset 8
-# is a constant which is always either 1 or 2. Offset 12 is the pixmap depth,
-# which is a maximum of 32.
-0 belong >100
->8 belong <3
->>12 belong <33
->>>4 belong 7 XWD X Window Dump image data
-!:mime image/x-xwindowdump
->>>>100 string >\0 \b, "%s"
->>>>16 belong x \b, %dx
->>>>20 belong x \b%dx
->>>>12 belong x \b%d
-
-# PDS - Planetary Data System
-# These files use Parameter Value Language in the header section.
-# Unfortunately, there is no certain magic, but the following
-# strings have been found to be most likely.
-0 string NJPL1I00 PDS (JPL) image data
-2 string NJPL1I PDS (JPL) image data
-0 string CCSD3ZF PDS (CCSD) image data
-2 string CCSD3Z PDS (CCSD) image data
-0 string PDS_ PDS image data
-0 string LBLSIZE= PDS (VICAR) image data
-
-# pM8x: ATARI STAD compressed bitmap format
-#
-# from Oskar Schirmer <schirmer@scara.com> Feb 2, 2001
-# p M 8 5/6 xx yy zz data...
-# Atari ST STAD bitmap is always 640x400, bytewise runlength compressed.
-# bytes either run horizontally (pM85) or vertically (pM86). yy is the
-# most frequent byte, xx and zz are runlength escape codes, where xx is
-# used for runs of yy.
-#
-0 string pM85 Atari ST STAD bitmap image data (hor)
->5 byte 0x00 (white background)
->5 byte 0xFF (black background)
-0 string pM86 Atari ST STAD bitmap image data (vert)
->5 byte 0x00 (white background)
->5 byte 0xFF (black background)
-
-# From: Alex Myczko <alex@aiei.ch>
-# http://www.atarimax.com/jindroush.atari.org/afmtatr.html
-0 leshort 0x0296 Atari ATR image
-
-# XXX:
-# This is bad magic 0x5249 == 'RI' conflicts with RIFF and other
-# magic.
-# SGI RICE image file <mpruett@sgi.com>
-#0 beshort 0x5249 RICE image
-#>2 beshort x v%d
-#>4 beshort x (%d x
-#>6 beshort x %d)
-#>8 beshort 0 8 bit
-#>8 beshort 1 10 bit
-#>8 beshort 2 12 bit
-#>8 beshort 3 13 bit
-#>10 beshort 0 4:2:2
-#>10 beshort 1 4:2:2:4
-#>10 beshort 2 4:4:4
-#>10 beshort 3 4:4:4:4
-#>12 beshort 1 RGB
-#>12 beshort 2 CCIR601
-#>12 beshort 3 RP175
-#>12 beshort 4 YUV
-
-# PCX image files
-# From: Dan Fandrich <dan@coneharvesters.com>
-# updated by Joerg Jenderek at Feb 2013 by http://de.wikipedia.org/wiki/PCX
-# http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt
-# GRR: original test was still too general as it catches xbase examples T5.DBT,T6.DBT with 0xa000000
-# test for bytes 0x0a,version byte (0,2,3,4,5),compression byte flag(0,1), bit depth (>0) of PCX or T5.DBT,T6.DBT
-0 ubelong&0xffF8fe00 0x0a000000
-# for PCX bit depth > 0
->3 ubyte >0
-# test for valid versions
->>1 ubyte <6
->>>1 ubyte !1 PCX
-!:mime image/x-pcx
-#!:mime image/pcx
->>>>1 ubyte 0 ver. 2.5 image data
->>>>1 ubyte 2 ver. 2.8 image data, with palette
->>>>1 ubyte 3 ver. 2.8 image data, without palette
->>>>1 ubyte 4 for Windows image data
->>>>1 ubyte 5 ver. 3.0 image data
->>>>4 uleshort x bounding box [%d,
->>>>6 uleshort x %d] -
->>>>8 uleshort x [%d,
->>>>10 uleshort x %d],
->>>>65 ubyte >1 %d planes each of
->>>>3 ubyte x %d-bit
->>>>68 byte 1 colour,
->>>>68 byte 2 grayscale,
-# this should not happen
->>>>68 default x image,
->>>>12 leshort >0 %d x
->>>>>14 uleshort x %d dpi,
->>>>2 byte 0 uncompressed
->>>>2 byte 1 RLE compressed
-
-# Adobe Photoshop
-# From: Asbjoern Sloth Toennesen <asbjorn@lila.io>
-0 string 8BPS Adobe Photoshop Image
-!:mime image/vnd.adobe.photoshop
->4 beshort 2 (PSB)
->18 belong x \b, %d x
->14 belong x %d,
->24 beshort 0 bitmap
->24 beshort 1 grayscale
->>12 beshort 2 with alpha
->24 beshort 2 indexed
->24 beshort 3 RGB
->>12 beshort 4 \bA
->24 beshort 4 CMYK
->>12 beshort 5 \bA
->24 beshort 7 multichannel
->24 beshort 8 duotone
->24 beshort 9 lab
->12 beshort > 1
->>12 beshort x \b, %dx
->12 beshort 1 \b,
->22 beshort x %d-bit channel
->12 beshort > 1 \bs
-
-# XV thumbnail indicator (ThMO)
-0 string P7\ 332 XV thumbnail image data
-
-# NITF is defined by United States MIL-STD-2500A
-0 string NITF National Imagery Transmission Format
->25 string >\0 dated %.14s
-
-# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
-# Format variations from: Bernd Nuernberger <bernd.nuernberger@web.de>
-# Update: Joerg Jenderek
-# See http://fileformats.archiveteam.org/wiki/GEM_Raster
-# For variations, also see:
-# http://www.seasip.info/Gem/ff_img.html (Ventura)
-# http://www.atari-wiki.com/?title=IMG_file (XIMG, STTT)
-# http://www.fileformat.info/format/gemraster/spec/index.htm (XIMG, STTT)
-# http://sylvana.net/1stguide/1STGUIDE.ENG (TIMG)
-0 beshort 0x0001
-# header_size
->2 beshort 0x0008
->>0 use gem_info
->2 beshort 0x0009
->>0 use gem_info
-# no example for NOSIG
->2 beshort 24
->>0 use gem_info
-# no example for HYPERPAINT
->2 beshort 25
->>0 use gem_info
-16 string XIMG\0
->0 use gem_info
-# no example
-16 string STTT\0\x10
->0 use gem_info
-# no example or description
-16 string TIMG\0
->0 use gem_info
-
-0 name gem_info
-# version is 2 for some XIMG and 1 for all others
->0 beshort <0x0003 GEM
-# http://www.snowstone.org.uk/riscos/mimeman/mimemap.txt
-!:mime image/x-gem
-# header_size 24 25 27 59 779 words for colored bitmaps
->>2 beshort >9
->>>16 string STTT\0\x10 STTT
->>>16 string TIMG\0 TIMG
-# HYPERPAINT or NOSIG variant
->>>16 string \0\x80
->>>>2 beshort =24 NOSIG
->>>>2 beshort !24 HYPERPAINT
-# NOSIG or XIMG variant
->>>16 default x
->>>>16 string !XIMG\0 NOSIG
->>16 string =XIMG\0 XIMG Image data
-!:ext img/ximg
-# to avoid Warning: Current entry does not yet have a description for adding a EXTENSION type
->>16 string !XIMG\0 Image data
-!:ext img
-# header_size is 9 for Ventura files and 8 for other GEM Paint files
->>2 beshort 9 (Ventura)
-#>>2 beshort 8 (Paint)
->>12 beshort x %d x
->>14 beshort x %d,
-# 1 4 8
->>4 beshort x %d planes,
-# in tenths of a millimetre
->>8 beshort x %d x
->>10 beshort x %d pixelsize
-# pattern_size 1-8. 2 for GEM Paint
->>6 beshort !2 \b, pattern size %d
-
-# GEM Metafile (Wolfram Kleff)
-0 lelong 0x0018FFFF GEM Metafile data
->4 leshort x version %d
-
-#
-# SMJPEG. A custom Motion JPEG format used by Loki Entertainment
-# Software Torbjorn Andersson <d91tan@Update.UU.SE>.
-#
-0 string \0\nSMJPEG SMJPEG
->8 belong x %d.x data
-# According to the specification you could find any number of _TXT
-# headers here, but I can't think of any way of handling that. None of
-# the SMJPEG files I tried it on used this feature. Even if such a
-# file is encountered the output should still be reasonable.
->16 string _SND \b,
->>24 beshort >0 %d Hz
->>26 byte 8 8-bit
->>26 byte 16 16-bit
->>28 string NONE uncompressed
-# >>28 string APCM ADPCM compressed
->>27 byte 1 mono
->>28 byte 2 stereo
-# Help! Isn't there any way to avoid writing this part twice?
->>32 string _VID \b,
-# >>>48 string JFIF JPEG
->>>40 belong >0 %d frames
->>>44 beshort >0 (%d x
->>>46 beshort >0 %d)
->16 string _VID \b,
-# >>32 string JFIF JPEG
->>24 belong >0 %d frames
->>28 beshort >0 (%d x
->>30 beshort >0 %d)
-
-0 string Paint\ Shop\ Pro\ Image\ File Paint Shop Pro Image File
-
-# "thumbnail file" (icon)
-# descended from "xv", but in use by other applications as well (Wolfram Kleff)
-0 string P7\ 332 XV "thumbnail file" (icon) data
-
-# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
-0 string KiSS KISS/GS
->4 byte 16 color
->>5 byte x %d bit
->>8 leshort x %d colors
->>10 leshort x %d groups
->4 byte 32 cell
->>5 byte x %d bit
->>8 leshort x %d x
->>10 leshort x %d
->>12 leshort x +%d
->>14 leshort x +%d
-
-# Webshots (www.webshots.com), by John Harrison
-0 string C\253\221g\230\0\0\0 Webshots Desktop .wbz file
-
-# Hercules DASD image files
-# From Jan Jaeger <jj@septa.nl>
-0 string CKD_P370 Hercules CKD DASD image file
->8 long x \b, %d heads per cylinder
->12 long x \b, track size %d bytes
->16 byte x \b, device type 33%2.2X
-
-0 string CKD_C370 Hercules compressed CKD DASD image file
->8 long x \b, %d heads per cylinder
->12 long x \b, track size %d bytes
->16 byte x \b, device type 33%2.2X
-
-0 string CKD_S370 Hercules CKD DASD shadow file
->8 long x \b, %d heads per cylinder
->12 long x \b, track size %d bytes
->16 byte x \b, device type 33%2.2X
-
-# Squeak images and programs - etoffi@softhome.net
-0 string \146\031\0\0 Squeak image data
-0 search/1 'From\040Squeak Squeak program text
-
-# partimage: file(1) magic for PartImage files (experimental, incomplete)
-# Author: Hans-Joachim Baader <hjb@pro-linux.de>
-0 string PaRtImAgE-VoLuMe PartImage
->0x0020 string 0.6.1 file version %s
->>0x0060 lelong >-1 volume %d
-#>>0x0064 8 byte identifier
-#>>0x007c reserved
->>0x0200 string >\0 type %s
->>0x1400 string >\0 device %s,
->>0x1600 string >\0 original filename %s,
-# Some fields omitted
->>0x2744 lelong 0 not compressed
->>0x2744 lelong 1 gzip compressed
->>0x2744 lelong 2 bzip2 compressed
->>0x2744 lelong >2 compressed with unknown algorithm
->0x0020 string >0.6.1 file version %s
->0x0020 string <0.6.1 file version %s
-
-# DCX is multi-page PCX, using a simple header of up to 1024
-# offsets for the respective PCX components.
-# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
-0 lelong 987654321 DCX multi-page PCX image data
-
-# Simon Walton <simonw@matteworld.com>
-# Kodak Cineon format for scanned negatives
-# http://www.kodak.com/US/en/motion/support/dlad/
-0 lelong 0xd75f2a80 Cineon image data
->200 belong >0 \b, %d x
->204 belong >0 %d
-
-
-# Bio-Rad .PIC is an image format used by microscope control systems
-# and related image processing software used by biologists.
-# From: Vebjorn Ljosa <vebjorn@ljosa.com>
-# BOOL values are two-byte integers; use them to rule out false positives.
-# http://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt
-# Samples: http://www.loci.wisc.edu/software/sample-data
-14 leshort <2
->62 leshort <2
->>54 leshort 12345 Bio-Rad .PIC Image File
->>>0 leshort >0 %d x
->>>2 leshort >0 %d,
->>>4 leshort =1 1 image in file
->>>4 leshort >1 %d images in file
-
-# From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
-# The description of *.mrw format can be found at
-# http://www.dalibor.cz/minolta/raw_file_format.htm
-0 string \000MRM Minolta Dimage camera raw image data
-
-# Summary: DjVu image / document
-# Extension: .djvu
-# Reference: http://djvu.org/docs/DjVu3Spec.djvu
-# Submitted by: Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
-# Modified by (1): Abel Cheung <abelcheung@gmail.com>
-0 string AT&TFORM
->12 string DJVM DjVu multiple page document
-!:mime image/vnd.djvu
->12 string DJVU DjVu image or single page document
-!:mime image/vnd.djvu
->12 string DJVI DjVu shared document
-!:mime image/vnd.djvu
->12 string THUM DjVu page thumbnails
-!:mime image/vnd.djvu
-
-# Originally by Marc Espie
-# Modified by Robert Minsk <robertminsk at yahoo.com>
-# http://www.openexr.com/openexrfilelayout.pdf
-0 lelong 20000630 OpenEXR image data,
-!:mime image/x-exr
->4 lelong&0x000000ff x version %d,
->4 lelong ^0x00000200 storage: scanline
->4 lelong &0x00000200 storage: tiled
->8 search/0x1000 compression\0 \b, compression:
->>&16 byte 0 none
->>&16 byte 1 rle
->>&16 byte 2 zips
->>&16 byte 3 zip
->>&16 byte 4 piz
->>&16 byte 5 pxr24
->>&16 byte 6 b44
->>&16 byte 7 b44a
->>&16 byte 8 dwaa
->>&16 byte 9 dwab
->>&16 byte >9 unknown
->8 search/0x1000 dataWindow\0 \b, dataWindow:
->>&10 lelong x (%d
->>&14 lelong x %d)-
->>&18 lelong x \b(%d
->>&22 lelong x %d)
->8 search/0x1000 displayWindow\0 \b, displayWindow:
->>&10 lelong x (%d
->>&14 lelong x %d)-
->>&18 lelong x \b(%d
->>&22 lelong x %d)
->8 search/0x1000 lineOrder\0 \b, lineOrder:
->>&14 byte 0 increasing y
->>&14 byte 1 decreasing y
->>&14 byte 2 random y
->>&14 byte >2 unknown
-
-# SMPTE Digital Picture Exchange Format, SMPTE DPX
-#
-# ANSI/SMPTE 268M-1994, SMPTE Standard for File Format for Digital
-# Moving-Picture Exchange (DPX), v1.0, 18 February 1994
-# Robert Minsk <robertminsk at yahoo.com>
-# Modified by Harry Mallon <hjmallon at gmail.com>
-0 string SDPX DPX image data, big-endian,
-!:mime image/x-dpx
->0 use dpx_info
-0 string XPDS DPX image data, little-endian,
-!:mime image/x-dpx
->0 use \^dpx_info
-
-0 name dpx_info
->768 beshort <4
->>772 belong x %dx
->>776 belong x \b%d,
->768 beshort >3
->>776 belong x %dx
->>772 belong x \b%d,
->768 beshort 0 left to right/top to bottom
->768 beshort 1 right to left/top to bottom
->768 beshort 2 left to right/bottom to top
->768 beshort 3 right to left/bottom to top
->768 beshort 4 top to bottom/left to right
->768 beshort 5 top to bottom/right to left
->768 beshort 6 bottom to top/left to right
->768 beshort 7 bottom to top/right to left
-
-# From: Tom Hilinski <tom.hilinski@comcast.net>
-# http://www.unidata.ucar.edu/packages/netcdf/
-0 string CDF\001 NetCDF Data Format data
-
-#-----------------------------------------------------------------------
-# Hierarchical Data Format, used to facilitate scientific data exchange
-# specifications at http://hdf.ncsa.uiuc.edu/
-0 belong 0x0e031301 Hierarchical Data Format (version 4) data
-!:mime application/x-hdf
-0 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) data
-!:mime application/x-hdf
-512 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 512 bytes user block
-!:mime application/x-hdf
-1024 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 1k user block
-!:mime application/x-hdf
-2048 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 2k user block
-!:mime application/x-hdf
-4096 string \211HDF\r\n\032\n Hierarchical Data Format (version 5) with 4k user block
-!:mime application/x-hdf
-
-
-# From: Tobias Burnus <burnus@net-b.de>
-# Xara (for a while: Corel Xara) is a graphic package, see
-# http://www.xara.com/ for Windows and as GPL application for Linux
-0 string XARA\243\243 Xara graphics file
-
-# http://www.cartesianinc.com/Tech/
-0 string CPC\262 Cartesian Perceptual Compression image
-!:mime image/x-cpi
-
-# From Albert Cahalan <acahalan@gmail.com>
-# puredigital used it for the CVS disposable camcorder
-#8 lelong 4 ZBM bitmap image data
-#>4 leshort x %u x
-#>6 leshort x %u
-
-# From Albert Cahalan <acahalan@gmail.com>
-# uncompressed 5:6:5 HighColor image for OLPC XO firmware icons
-0 string C565 OLPC firmware icon image data
->4 leshort x %u x
->6 leshort x %u
-
-# Applied Images - Image files from Cytovision
-# Gustavo Junior Alves <gjalves@gjalves.com.br>
-0 string \xce\xda\xde\xfa Cytovision Metaphases file
-0 string \xed\xad\xef\xac Cytovision Karyotype file
-0 string \x0b\x00\x03\x00 Cytovision FISH Probe file
-0 string \xed\xfe\xda\xbe Cytovision FLEX file
-0 string \xed\xab\xed\xfe Cytovision FLEX file
-0 string \xad\xfd\xea\xad Cytovision RATS file
-
-# Wavelet Scalar Quantization format used in gray-scale fingerprint images
-# From Tano M Fotang <mfotang@quanteq.com>
-0 string \xff\xa0\xff\xa8\x00 Wavelet Scalar Quantization image data
-
-# Type: PCO B16 image files
-# URL: http://www.pco.de/fileadmin/user_upload/db/download/MA_CWDCOPIE_0412b.pdf
-# From: Florian Philipp <florian.philipp@binarywings.net>
-# Extension: .b16
-# Description: Pixel image format produced by PCO Camware, typically used
-# together with PCO cameras.
-# Note: Different versions exist for e.g. 8 bit and 16 bit images.
-# Documentation is incomplete.
-0 string/b PCO- PCO B16 image data
->12 lelong x \b, %dx
->16 lelong x \b%d
->20 lelong 0 \b, short header
->20 lelong -1 \b, extended header
->>24 lelong 0 \b, grayscale
->>>36 lelong 0 linear LUT
->>>36 lelong 1 logarithmic LUT
->>>28 lelong x [%d
->>>32 lelong x \b,%d]
->>24 lelong 1 \b, color
->>>64 lelong 0 linear LUT
->>>64 lelong 1 logarithmic LUT
->>>40 lelong x r[%d
->>>44 lelong x \b,%d]
->>>48 lelong x g[%d
->>>52 lelong x \b,%d]
->>>56 lelong x b[%d
->>>60 lelong x \b,%d]
-
-# Polar Monitor Bitmap (.pmb) used as logo for Polar Electro watches
-# From: Markus Heidelberg <markus.heidelberg at web.de>
-0 string/t [BitmapInfo2] Polar Monitor Bitmap text
-!:mime image/x-polar-monitor-bitmap
-
-# From: Rick Richardson <rickrich@gmail.com>
-# updated by: Joerg Jenderek
-# URL: http://techmods.net/nuvi/
-0 string GARMIN\ BITMAP\ 01 Garmin Bitmap file
-# extension is also used for
-# Sony SRF raw image (image/x-sony-srf)
-# SRF map
-# Terragen Surface Map (http://www.planetside.co.uk/terragen)
-# FileLocator Pro search criteria file (http://www.mythicsoft.com/filelocatorpro)
-!:ext srf
-#!:mime image/x-garmin-srf
-# version 1.00,2.00,2.10,2.40,2.50
->0x2f string >0 \b, version %4.4s
-# width (2880,2881,3240)
->0x55 uleshort >0 \b, %dx
-# height (80,90)
->>0x53 uleshort x \b%d
-
-# Type: Ulead Photo Explorer5 (.pe5)
-# URL: http://www.jisyo.com/cgibin/view.cgi?EXT=pe5 (Japanese)
-# From: Simon Horman <horms@debian.org>
-0 string IIO2H Ulead Photo Explorer5
-
-# Type: X11 cursor
-# URL: http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup
-# From: Mathias Brodala <info@noctus.net>
-0 string Xcur X11 cursor
-
-# Type: Olympus ORF raw images.
-# URL: http://libopenraw.freedesktop.org/wiki/Olympus_ORF
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-0 string MMOR Olympus ORF raw image data, big-endian
-!:mime image/x-olympus-orf
-0 string IIRO Olympus ORF raw image data, little-endian
-!:mime image/x-olympus-orf
-0 string IIRS Olympus ORF raw image data, little-endian
-!:mime image/x-olympus-orf
-
-# Type: files used in modern AVCHD camcoders to store clip information
-# Extension: .cpi
-# From: Alexander Danilov <alexander.a.danilov@gmail.com>
-0 string HDMV0100 AVCHD Clip Information
-
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://local.wasp.uwa.edu.au/~pbourke/dataformats/pic/
-# Radiance HDR; usually has .pic or .hdr extension.
-0 string #?RADIANCE\n Radiance HDR image data
-#!mime image/vnd.radiance
-
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# URL: http://www.mpi-inf.mpg.de/resources/pfstools/pfs_format_spec.pdf
-# Used by the pfstools packages. The regex matches for the image size could
-# probably use some work. The MIME type is made up; if there's one in
-# actual common use, it should replace the one below.
-0 string PFS1\x0a PFS HDR image data
-#!mime image/x-pfs
->1 regex [0-9]*\ \b, %s
->>1 regex \ [0-9]{4} \bx%s
-
-# Type: Foveon X3F
-# URL: http://www.photofo.com/downloads/x3f-raw-format.pdf
-# From: Adam Buchbinder <adam.buchbinder@gmail.com>
-# Note that the MIME type isn't defined anywhere that I can find; if
-# there's a canonical type for this format, it should replace this one.
-0 string FOVb Foveon X3F raw image data
-!:mime image/x-x3f
->6 leshort x \b, version %d.
->4 leshort x \b%d
->28 lelong x \b, %dx
->32 lelong x \b%d
-
-# Paint.NET file
-# From Adam Buchbinder <adam.buchbinder@gmail.com>
-0 string PDN3 Paint.NET image data
-!:mime image/x-paintnet
-
-# Not really an image.
-# From: "Tano M. Fotang" <mfotang@quanteq.com>
-0 string \x46\x4d\x52\x00 ISO/IEC 19794-2 Format Minutiae Record (FMR)
-
-# doc: http://www.shikino.co.jp/eng/products/images/FLOWER.jpg.zip
-# example: http://www.shikino.co.jp/eng/products/images/FLOWER.wdp.zip
-90 bequad 0x574D50484F544F00 JPEG-XR Image
->98 byte&0x08 =0x08 \b, hard tiling
->99 byte&0x80 =0x80 \b, tiling present
->99 byte&0x40 =0x40 \b, codestream present
->99 byte&0x38 x \b, spatial xform=
->99 byte&0x38 0x00 \bTL
->99 byte&0x38 0x08 \bBL
->99 byte&0x38 0x10 \bTR
->99 byte&0x38 0x18 \bBR
->99 byte&0x38 0x20 \bBT
->99 byte&0x38 0x28 \bRB
->99 byte&0x38 0x30 \bLT
->99 byte&0x38 0x38 \bLB
->100 byte&0x80 =0x80 \b, short header
->>102 beshort+1 x \b, %d
->>104 beshort+1 x \bx%d
->100 byte&0x80 =0x00 \b, long header
->>102 belong+1 x \b, %x
->>106 belong+1 x \bx%x
->101 beshort&0xf x \b, bitdepth=
->>101 beshort&0xf 0x0 \b1-WHITE=1
->>101 beshort&0xf 0x1 \b8
->>101 beshort&0xf 0x2 \b16
->>101 beshort&0xf 0x3 \b16-SIGNED
->>101 beshort&0xf 0x4 \b16-FLOAT
->>101 beshort&0xf 0x5 \b(reserved 5)
->>101 beshort&0xf 0x6 \b32-SIGNED
->>101 beshort&0xf 0x7 \b32-FLOAT
->>101 beshort&0xf 0x8 \b5
->>101 beshort&0xf 0x9 \b10
->>101 beshort&0xf 0xa \b5-6-5
->>101 beshort&0xf 0xb \b(reserved %d)
->>101 beshort&0xf 0xc \b(reserved %d)
->>101 beshort&0xf 0xd \b(reserved %d)
->>101 beshort&0xf 0xe \b(reserved %d)
->>101 beshort&0xf 0xf \b1-BLACK=1
->101 beshort&0xf0 x \b, colorfmt=
->>101 beshort&0xf0 0x00 \bYONLY
->>101 beshort&0xf0 0x10 \bYUV240
->>101 beshort&0xf0 0x20 \bYWV422
->>101 beshort&0xf0 0x30 \bYWV444
->>101 beshort&0xf0 0x40 \bCMYK
->>101 beshort&0xf0 0x50 \bCMYKDIRECT
->>101 beshort&0xf0 0x60 \bNCOMPONENT
->>101 beshort&0xf0 0x70 \bRGB
->>101 beshort&0xf0 0x80 \bRGBE
->>101 beshort&0xf0 >0x80 \b(reserved 0x%x)
-
-# From: Johan van der Knijff <johan.vanderknijff@kb.nl>
-#
-# BPG (Better Portable Graphics) format
-# http://bellard.org/bpg/
-# http://fileformats.archiveteam.org/wiki/BPG
-#
-0 string \x42\x50\x47\xFB BPG (Better Portable Graphics)
-!:mime image/bpg
-
-# From: Joerg Jenderek
-# URL: https://en.wikipedia.org/wiki/Apple_Icon_Image_format
-0 string icns Mac OS X icon
-!:mime image/x-icns
-!:apple ????icns
-!:ext icns
->4 ubelong >0
-# file size
->>4 ubelong x \b, %d bytes
-# icon type
->>8 string x \b, "%4.4s" type
-
-# TIM images
-0 lelong 0x00000010 TIM image,
->4 lelong 0x8 4-Bit,
->4 lelong 0x9 8-Bit,
->4 lelong 0x2 15-Bit,
->4 lelong 0x3 24-Bit,
->4 lelong &8
->>(8.l+12) leshort x Pixel at (%d,
->>(8.l+14) leshort x \b%d)
->>(8.l+16) leshort x Size=%dx
->>(8.l+18) leshort x \b%d,
->>4 lelong 0x8 16 CLUT Entries at
->>4 lelong 0x9 256 CLUT Entries at
->>12 leshort x (%d,
->>14 leshort x \b%d)
->4 lelong ^8
->>12 leshort x Pixel at (%d,
->>14 leshort x \b%d)
->>16 leshort x Size=%dx
->>18 leshort x \b%d
-
-# MDEC streams
-0 lelong 0x80010160 MDEC video stream,
->16 leshort x %dx
->18 leshort x \b%d
-#>8 lelong x %d frames
-#>4 leshort x secCount=%d;
-#>6 leshort x nSectors=%d;
-#>12 lelong x frameSize=%d;
-
-# BS encoded bitstreams
-2 leshort 0x3800 BS image,
->6 leshort x Version %d,
->4 leshort x Quantization %d,
->0 leshort x (Decompresses to %d words)
-
-# Type: farbfeld image.
-# Url: http://tools.suckless.org/farbfeld/
-# From: Ian D. Scott <ian@iandouglasscott.com>
-#
-0 string farbfeld farbfeld image data,
->8 ubelong x %dx
->12 ubelong x \b%d
-
-# Type: Sega PVR image.
-# From: David Korth <gerbilsoft@gerbilsoft.com>
-# References:
-# - http://fabiensanglard.net/Mykaruga/tools/segaPVRFormat.txt
-# - https://github.com/yazgoo/pvrx2png
-# - https://github.com/nickworonekin/puyotools
-
-# Sega PVR header.
-0 name sega-pvr-image-header
->0x0C leshort x %d x
->0x0E leshort x %d
-# Image format.
->0x08 byte 0 \b, ARGB1555
->0x08 byte 1 \b, RGB565
->0x08 byte 2 \b, ARGB4444
->0x08 byte 3 \b, YUV442
->0x08 byte 4 \b, Bump
->0x08 byte 5 \b, 4bpp
->0x08 byte 6 \b, 8bpp
-# Image data type.
->0x09 byte 0x01 \b, square twiddled
->0x09 byte 0x02 \b, square twiddled & mipmap
->0x09 byte 0x03 \b, VQ
->0x09 byte 0x04 \b, VQ & mipmap
->0x09 byte 0x05 \b, 8-bit CLUT twiddled
->0x09 byte 0x06 \b, 4-bit CLUT twiddled
->0x09 byte 0x07 \b, 8-bit direct twiddled
->0x09 byte 0x08 \b, 4-bit direct twiddled
->0x09 byte 0x09 \b, rectangle
->0x09 byte 0x0B \b, rectangular stride
->0x09 byte 0x0D \b, rectangular twiddled
->0x09 byte 0x10 \b, small VQ
->0x09 byte 0x11 \b, small VQ & mipmap
->0x09 byte 0x12 \b, square twiddled & mipmap
-
-# Sega PVR (Xbox) image header.
-# Contains an embedded DirectDraw surface instead of PVR data.
-0 name sega-pvr-xbox-dds-header
->16 lelong x %d x
->12 lelong x %d,
->84 string x %.4s
-
-# Sega PVR image.
-0 string PVRT
->0x10 string DDS\040\174\000\000\000 Sega PVR (Xbox) image:
->>0x20 use sega-pvr-xbox-dds-header
->0x10 belong !0x44445320 Sega PVR image:
->>0 use sega-pvr-image-header
-
-# Sega PVR image with GBIX.
-0 string GBIX
->0x10 string PVRT
->>0x10 string DDS\040\174\000\000\000 Sega PVR (Xbox) image:
->>>0x20 use sega-pvr-xbox-dds-header
->>0x10 belong !0x44445320 Sega PVR image:
->>>0x10 use sega-pvr-image-header
->>0x08 lelong x \b, global index = %u
-
-# Sega GVR header.
-0 name sega-gvr-image-header
->0x0C beshort x %d x
->0x0E beshort x %d
-# Image data format.
->0x0B byte 0 \b, I4
->0x0B byte 1 \b, I8
->0x0B byte 2 \b, IA4
->0x0B byte 3 \b, IA8
->0x0B byte 4 \b, RGB565
->0x0B byte 5 \b, RGB5A3
->0x0B byte 6 \b, ARGB8888
->0x0B byte 8 \b, CI4
->0x0B byte 9 \b, CI8
->0x0B byte 14 \b, DXT1
-
-# Sega GVR image.
-0 string GVRT Sega GVR image:
->0x10 use sega-gvr-image-header
-
-# Sega GVR image with GBIX.
-0 string GBIX
->0x10 string GVRT Sega GVR image:
->>0x10 use sega-gvr-image-header
->>0x08 belong x \b, global index = %u
-
-# Light Field Picture
-# Documentation: http://optics.miloush.net/lytro/TheFileFormat.aspx
-# Typical file extensions: .lfp .lfr .lfx
-
-0 belong 0x894C4650
->4 belong 0x0D0A1A0A
->12 belong 0x00000000 Lytro Light Field Picture
->8 belong x \b, version %d
-
-# Type: Vision Research Phantom CINE Format
-# URL: https://www.phantomhighspeed.com/
-# URL2: http://phantomhighspeed.force.com/vriknowledge/servlet/fileField?id=0BEU0000000Cfyk
-# From: Harry Mallon <hjmallon at gmail.com>
-#
-# This has a short "CI" code but the 44 is the size of the struct which is
-# stable
-0 string CI
->2 leshort 44 Vision Research CINE Video,
->>4 leshort 0 Grayscale,
->>4 leshort 1 JPEG Compressed,
->>4 leshort 2 RAW,
->>6 leshort x version %d,
->>20 lelong x %d frames,
->>48 lelong x %dx
->>52 lelong x \b%d
-
-# Type: ARRI Raw Image
-# Info: SMPTE RDD30:2014
-# From: Harry Mallon <hjmallon at gmail.com>
-0 string ARRI ARRI ARI image data,
->4 lelong 0x78563412 little-endian,
->4 lelong 0x12345678 big-endian,
->12 lelong x version %d,
->20 lelong x %dx
->24 lelong x \b%d
-
-#------------------------------------------------------------------------------
# $File: inform,v 1.5 2009/09/19 16:28:09 christos Exp $
# inform: file(1) magic for Inform interactive fiction language
@@ -23720,7 +22207,7 @@
!:mime text/x-python
# import module [as abrev]
-0 regex \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
+0 regex/4096 \^import\ [_[:alpha:]]+\ as\ [[:alpha:]][[:space:]]*$ Python script text executable
!:mime text/x-python
# comments
@@ -23736,7 +22223,7 @@
# except: or finally:
# block
0 search/4096 try:
->&0 regex \^[[:space:]]*except.*:$ Python script text executable
+>&0 regex/4096 \^[[:space:]]*except.*:$ Python script text executable
!:strength + 15
!:mime text/x-python
>&0 search/4096 finally: Python script text executable
@@ -23748,7 +22235,7 @@
!:mime text/x-python
# def name(*args, **kwargs):
-0 regex \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
+0 regex/4096 \^[[:space:]]{0,50}def\ {1,50}[_a-zA-Z]{1,100}
>&0 regex \\(([[:alpha:]*_,\ ]){0,255}\\):$ Python script text executable
!:strength + 15
!:mime text/x-python
@@ -24270,32 +22757,32 @@
# What looks like ruby, but does not have a shebang
# (modules and such)
# From: Lubomir Rintel <lkundrak@v3.sk>
-0 regex \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
+0 regex/4096 \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+'
>0 regex def\ [a-z]|\ do$
->>&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
+>>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
!:strength + 30
!:mime text/x-ruby
-0 regex \^[[:space:]]*(class|module)[[:space:]][A-Z]
+0 regex/4096 \^[[:space:]]*(class|module)[[:space:]][A-Z]
>0 regex (modul|includ)e\ [A-Z]|def\ [a-z]
->>&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
+>>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
!:strength + 30
!:mime text/x-ruby
# Classes with no modules or defs, beats simple ASCII
-0 regex \^[[:space:]]*(class|module)[[:space:]][A-Z]
->&0 regex \^[[:space:]]*end([[:space:]]+[;#if].*)?$ Ruby script text
+0 regex/4096 \^[[:space:]]*(class|module)[[:space:]][A-Z]
+>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#if].*)?$ Ruby script text
!:strength + 10
!:mime text/x-ruby
# Looks for function definition to balance python magic
# def name (args)
# end
-0 regex \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
->&0 regex \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
+0 regex/4096 \^[[:space:]]*def\ [a-z]|def\ [[:alpha:]]+::[a-z]
+>&0 regex/4096 \^[[:space:]]*end([[:space:]]+[;#].*)?$ Ruby script text
!:strength + 10
!:mime text/x-ruby
-0 regex \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+' Ruby script text
+0 regex/4096 \^[[:space:]]*require[[:space:]]'[A-Za-z_/]+' Ruby script text
!:mime text/x-ruby
-0 regex \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+ Ruby script text
+0 regex/4096 \^[[:space:]]*include\ ([A-Z]+[a-z]*(::))+ Ruby script text
!:mime text/x-ruby
#------------------------------------------------------------------------------