[diffoscope] 01/01: Add support for comparing Ogg Vorbis files.

Chris Lamb chris at chris-lamb.co.uk
Wed Apr 26 13:19:46 CEST 2017


This is an automated email from the git hooks/post-receive script.

lamby pushed a commit to branch experimental
in repository diffoscope.

commit 0436f9bdecf660ba7b1ee4156409502eed4163b4
Author: Chris Lamb <lamby at debian.org>
Date:   Wed Apr 26 13:19:08 2017 +0200

    Add support for comparing Ogg Vorbis files.
    
    Signed-off-by: Chris Lamb <lamby at debian.org>
---
 debian/control                     |   1 +
 diffoscope/comparators/__init__.py |   1 +
 diffoscope/comparators/ogg.py      |  44 +++
 diffoscope/external_tools.py       |   3 +
 tests/comparators/test_ogg.py      |  56 ++++
 tests/data/ogg_expected_diff       | 556 +++++++++++++++++++++++++++++++++++++
 tests/data/test1.ogg               | Bin 0 -> 5940 bytes
 tests/data/test2.ogg               | Bin 0 -> 4567 bytes
 8 files changed, 661 insertions(+)

diff --git a/debian/control b/debian/control
index 5ff978f..f4a02a8 100644
--- a/debian/control
+++ b/debian/control
@@ -37,6 +37,7 @@ Build-Depends:
  llvm <!nocheck>,
  mono-utils <!nocheck>,
  odt2txt <!nocheck>,
+ oggvideotools <!nocheck>,
  openssh-client <!nocheck>,
  pdftk <!nocheck>,
  pgpdump <!nocheck>,
diff --git a/diffoscope/comparators/__init__.py b/diffoscope/comparators/__init__.py
index 6527b6d..38d9e58 100644
--- a/diffoscope/comparators/__init__.py
+++ b/diffoscope/comparators/__init__.py
@@ -85,6 +85,7 @@ class ComparatorManager(object):
         ('pcap.PcapFile',),
         ('pgp.PgpFile',),
         ('dtb.DeviceTreeFile',),
+        ('ogg.OggFile',),
     )
 
     _singleton = {}
diff --git a/diffoscope/comparators/ogg.py b/diffoscope/comparators/ogg.py
new file mode 100644
index 0000000..a37f6ed
--- /dev/null
+++ b/diffoscope/comparators/ogg.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+#
+# diffoscope: in-depth comparison of files, archives, and directories
+#
+# Copyright © 2017 Chris Lamb <lamby at debian.org>
+#
+# diffoscope is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# diffoscope is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with diffoscope.  If not, see <https://www.gnu.org/licenses/>.
+
+import re
+
+from diffoscope.tools import tool_required
+from diffoscope.difference import Difference
+
+from .utils.file import File
+from .utils.command import Command
+
+
+class OggDump(Command):
+    @tool_required('oggDump')
+    def cmdline(self):
+        return ('oggDump', '-g', self.path)
+
+
+class OggFile(File):
+    RE_FILE_TYPE = re.compile(r'^Ogg data')
+
+    def compare_details(self, other, source=None):
+        return [Difference.from_command(
+            OggDump,
+            self.path,
+            other.path,
+            source='oggDump',
+       )]
diff --git a/diffoscope/external_tools.py b/diffoscope/external_tools.py
index 8788936..fd1173e 100644
--- a/diffoscope/external_tools.py
+++ b/diffoscope/external_tools.py
@@ -151,6 +151,9 @@ EXTERNAL_TOOLS = {
     'odt2txt': {
         'debian': 'odt2txt',
     },
+    'oggDump': {
+        'debian': 'oggvideotools',
+    },
     'pgpdump': {
         'debian': 'pgpdump',
         'arch': 'pgpdump',
diff --git a/tests/comparators/test_ogg.py b/tests/comparators/test_ogg.py
new file mode 100644
index 0000000..81fa7b2
--- /dev/null
+++ b/tests/comparators/test_ogg.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+#
+# diffoscope: in-depth comparison of files, archives, and directories
+#
+# Copyright © 2017 Chris Lamb <lamby at debian.org>
+#
+# diffoscope is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# diffoscope is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with diffoscope.  If not, see <https://www.gnu.org/licenses/>.
+
+import pytest
+
+from diffoscope.comparators.ogg import OggFile
+
+from utils.data import load_fixture, get_data
+from utils.tools import skip_unless_tools_exist
+from utils.nonexisting import assert_non_existing
+
+ogg1 = load_fixture('test1.ogg')
+ogg2 = load_fixture('test2.ogg')
+
+
+def test_identification(ogg1):
+    assert isinstance(ogg1, OggFile)
+
+
+def test_no_differences(ogg1):
+    difference = ogg1.compare(ogg1)
+    assert difference is None
+
+
+ at pytest.fixture
+def differences(ogg1, ogg2):
+    return ogg1.compare(ogg2).details
+
+
+ at skip_unless_tools_exist('oggDump')
+def test_diff(differences):
+    with open('tests/data/ogg_expected_diff', 'w') as f:
+        f.write(differences[0].unified_diff)
+    expected_diff = get_data('ogg_expected_diff')
+    assert differences[0].unified_diff == expected_diff
+
+
+ at skip_unless_tools_exist('oggDump')
+def test_compare_non_existing(monkeypatch, ogg1):
+    assert_non_existing(monkeypatch, ogg1, has_null_source=False)
diff --git a/tests/data/ogg_expected_diff b/tests/data/ogg_expected_diff
new file mode 100644
index 0000000..8475129
--- /dev/null
+++ b/tests/data/ogg_expected_diff
@@ -0,0 +1,556 @@
+@@ -1,108 +1,102 @@
+-Found vorbis stream with ID= 0x5d79
++Found vorbis stream with ID= 0xeb4dfcaa
+ Ogg Page: header length = 28 and body length = 30
+ Header Information:
+ 	Ogg Version      : 0
+-	Serial No        : 0x5d79
++	Serial No        : 0xeb4dfcaa
+ 	Packet Type      : fresh packet
+ 	Page Type        : begin of stream marker
+ 	Last Page        : normal page
+ 	Granule Position : 0(0x0)
+ 	Page Number      : 0
+-	Checksum         : 0x83300c0a
++	Checksum         : 0x686500e6
+ 	Table Segments   : 1
+ 
+ Segments:
+  1e
+ 
+ Header Hex dump: 
+- 4f 67 67 53 00 02 00 00 00 00 00 00 00 00 79 5d
+- 00 00 00 00 00 00 0a 0c 30 83 01 1e
++ 4f 67 67 53 00 02 00 00 00 00 00 00 00 00 aa fc
++ 4d eb 00 00 00 00 e6 00 65 68 01 1e
+ 
+ Body Hex dump: 
+- 01 76 6f 72 62 69 73 00 00 00 00 02 44 ac 00 00 ff ff ff ff 00 f4 01 00 ff ff ff ff b8 01
+-Ogg Page: header length = 44 and body length = 4153
++ 01 76 6f 72 62 69 73 00 00 00 00 02 44 ac 00 00 00 00 00 00 80 b5 01 00 00 00 00 00 b8 01
++Ogg Page: header length = 44 and body length = 3896
+ Header Information:
+ 	Ogg Version      : 0
+-	Serial No        : 0x5d79
++	Serial No        : 0xeb4dfcaa
+ 	Packet Type      : fresh packet
+ 	Page Type        : normal page
+ 	Last Page        : normal page
+ 	Granule Position : 0(0x0)
+ 	Page Number      : 1
+-	Checksum         : 0x9b00a0ae
++	Checksum         : 0xeafd68da
+ 	Table Segments   : 17
+ 
+ Segments:
+- 49 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+- ff
++ 40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
++ 07
+ 
+ Header Hex dump: 
+- 4f 67 67 53 00 00 00 00 00 00 00 00 00 00 79 5d
+- 00 00 01 00 00 00 ae a0 00 9b 11 49 ff ff ff ff
+- ff ff ff ff ff ff ff ff ff ff ff ff
++ 4f 67 67 53 00 00 00 00 00 00 00 00 00 00 aa fc
++ 4d eb 01 00 00 00 da 68 fd ea 11 40 ff ff ff ff
++ ff ff ff ff ff ff ff ff ff ff ff 07
+ 
+ Body Hex dump: 
+- 03 76 6f 72 62 69 73 39 00 00 00 42 53 3b 20 4c 61 6e 63 65 72 28 53 53 45 29 20 5b 32 30 30 36
+- 31 31 31 30 5d 20 28 62 61 73 65 64 20 6f 6e 20 61 6f 54 75 56 20 62 35 20 5b 32 30 30 36 31 30
+- 32 34 5d 29 00 00 00 00 01 05 76 6f 72 62 69 73 29 42 43 56 01 00 08 00 00 80 22 4c 18 c4 80 d0
+- 90 55 00 00 10 00 00 a0 ac 37 96 7b c8 bd f7 de 7b 81 a8 47 14 7b 88 bd f7 de 7b e3 ac 47 d0 7a
+- 88 b9 f7 de 7b ee bd a7 1a 7b cb bd f7 de 73 20 34 64 15 00 00 04 00 80 29 08 9a 72 e0 42 ea bd
+- f7 1e 19 e6 11 51 1a 2a c7 bd f7 1e 19 85 89 30 94 19 85 3d 95 da 5a eb 21 93 dc 42 ea 3d e7 1e
+- 08 0d 59 05 00 00 02 00 40 08 21 84 14 52 48 21 85 14 52 48 21 85 14 52 48 29 a5 98 62 8a 29 a6
+- 98 62 ca 29 a7 1c 73 cc 31 c7 20 83 0e 3a e8 a4 93 50 42 09 29 a4 50 4a 2a a9 a4 94 52 4a 2d d6
+- 5a 73 ee bd 07 dd 73 ef 41 f8 20 84 10 42 08 21 84 10 42 08 21 84 10 42 08 42 43 56 01 00 20 00
+- 00 04 42 08 21 64 10 42 08 21 84 14 52 48 21 a6 98 62 ca 29 a7 80 d0 90 55 00 00 20 00 80 00 00
+- 00 00 49 91 14 cb b1 1c cd d1 1c cd f1 1c cf 11 25 51 12 25 d1 32 2d d3 52 35 53 33 3d 55 54 45
+- d5 54 55 57 55 5d 5d 77 6d d5 76 6d d5 96 6d d7 56 6d d5 76 6d d5 56 6d 59 b6 6d db b6 6d db b6
+- 6d db b6 6d db b6 6d db b6 6d 20 34 64 15 00 20 01 00 a0 23 39 92 23 29 92 22 29 92 e3 38 92 04
+- 84 86 ac 02 00 64 00 00 04 00 a0 28 8a e3 38 8e e4 48 8e 25 69 92 66 79 96 67 89 9a a8 99 9a e8
+- a9 9e 0a 84 86 ac 02 00 00 01 00 04 00 00 00 00 00 e0 78 8a e7 78 8e 67 79 92 e7 78 8e 67 79 9a
+- a7 69 9a a6 69 9a a6 69 9a a6 69 9a a6 69 9a a6 69 9a a6 69 9a a6 69 9a a6 69 9a a6 69 9a a6 69
+- 9a a6 69 9a a6 69 9a a6 69 9a a6 69 40 68 c8 2a 00 40 02 00 40 c7 71 1c c7 71 1c c7 71 1c 47 72
+- 24 07 08 0d 59 05 00 c8 00 00 08 00 40 52 24 c7 72 2c 47 73 34 c7 73 3c 47 74 44 c7 74 4c c9 94
+- 54 c9 b5 5c 0b 08 0d 59 05 00 00 02 00 08 00 00 00 00 00 40 13 2c 45 53 3c c7 93 3c cf 13 35 cf
+- d3 34 cd 13 4d 51 34 4d d3 34 4d d3 34 4d d3 34 4d d3 34 4d d3 34 4d d3 34 4d d3 34 4d d3 34 4d
+- d3 34 4d d3 34 4d d3 34 4d d3 34 4d 53 14 81 d0 90 55 00 00 04 00 00 21 9d 66 96 6a 80 08 33 90
+- 61 20 34 64 15 00 80 00 00 00 18 a1 08 43 0c 08 0d 59 05 00 00 04 00 00 88 a1 e4 20 9a d0 9a f3
+- cd 39 0e 9a e5 a0 a9 14 9b d3 c1 89 54 9b 27 b9 a9 98 9b 73 ce 39 e7 9c 6c ce 19 e3 9c 73 ce 29
+- ca 99 c5 a0 99 d0 9a 73 ce 49 0c 9a a5 a0 99 d0 9a 73 ce 79 12 9b 07 ad a9 d2 9a 73 ce 19 e7 9c
+- 0e c6 19 61 9c 73 ce 69 d2 9a 07 a9 d9 58 9b 73 ce 59 d0 9a e6 a8 b9 14 9b 73 ce 89 94 9b 27 b5
+- b9 54 9b 73 ce 39 e7 9c 73 ce 39 e7 9c 73 ce a9 5e 9c ce c1 39 e1 9c 73 ce 89 da 9b 6b b9 09 5d
+- 9c 73 ce f9 64 9c ee cd 09 e1 9c 73 ce 39 e7 9c 73 ce 39 e7 9c 73 ce 09 42 43 56 01 00 40 00 00
+- 04 61 d8 18 c6 9d 82 20 7d 8e 06 62 14 21 a6 21 93 1e 74 8f 0e 93 a0 31 c8 29 a4 1e 8d 8e 46 4a
+- a9 83 50 52 19 27 a5 74 82 d0 90 55 00 00 20 00 00 84 10 52 48 21 85 14 52 48 21 85 14 52 48 21
+- 86 18 62 88 21 a7 9c 72 0a 2a a8 a4 92 8a 2a ca 28 b3 cc 32 cb 2c b3 cc 32 cb ac c3 ce 3a eb b0
+- c3 10 43 0c 31 b4 d2 4a 2c 35 d5 56 63 8d b5 e6 9e 73 ae 39 48 6b a5 b5 d6 5a 2b a5 94 52 4a 29
+- a5 20 34 64 15 00 00 02 00 40 20 64 90 41 06 19 85 14 52 48 21 86 98 72 ca 29 a7 a0 82 0a 08 0d
+- 59 05 00 00 02 00 08 00 00 00 f0 24 cf 11 1d d1 11 1d d1 11 1d d1 11 1d d1 11 1d cf f1 1c 51 12
+- 25 51 12 25 d1 32 2d 53 33 3d 55 54 55 57 76 6d 59 97 75 db b7 85 5d d8 75 df d7 7d df d7 8d 5f
+- 17 86 65 59 96 65 59 96 65 59 96 65 59 96 65 59 96 65 09 42 43 56 01 00 20 00 00 00 42 08 21 84
+- 14 52 48 21 85 94 62 8c 31 c7 9c 83 4e 42 09 81 d0 90 55 00 00 20 00 80 00 00 00 00 47 71 14 c7
+- 91 1c c9 91 24 4b b2 24 4d d2 2c cd f2 34 4f f3 34 d1 13 45 51 34 4d 53 15 5d d1 15 75 d3 16 65
+- 53 36 5d d3 35 65 d3 55 65 d5 76 65 d9 b6 65 5b b7 7d 59 b6 7d df f7 7d df f7 7d df f7 7d df f7
+- 7d df d7 75 20 34 64 15 00 20 01 00 a0 23 39 92 22 29 92 22 39 8e e3 48 92 04 84 86 ac 02 00 64
+- 00 00 04 00 a0 28 8e e2 38 8e 23 49 92 24 59 92 26 79 96 67 89 9a a9 99 9e e9 a9 a2 0a 84 86 ac
+- 02 00 00 01 00 04 00 00 00 00 00 a0 68 8a a7 98 8a a7 88 8a e7 88 8e 28 89 96 69 89 9a aa b9 a2
+- 6c ca ae eb ba ae eb ba ae eb ba ae eb ba ae eb ba ae eb ba ae eb ba ae eb ba ae eb ba ae eb ba
+- ae eb ba ae eb ba 40 68 c8 2a 00 40 02 00 40 47 72 24 47 72 24 45 52 24 45 72 24 07 08 0d 59 05
+- 00 c8 00 00 08 00 c0 31 1c 43 52 24 c7 b2 2c 4d f3 34 4f f3 34 d1 13 3d d1 33 3d 55 74 45 17 08
+- 0d 59 05 00 00 02 00 08 00 00 00 00 00 c0 90 0c 4b b1 1c cd d1 24 51 52 2d d5 52 35 d5 52 2d 55
+- 54 3d 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
+- 55 55 55 d5 34 4d d3 34 81 d0 90 95 00 00 19 00 00 c3 b4 e4 d2 72 cf 8d a0 48 2a 47 b5 d6 92 51
+- e5 24 c5 1c 1a 8a a0 82 56 73 0d 15 34 88 49 8b 21 62 0a 21 26 31 96 0e 3a a6 9c d4 1a 53 29 19
+- 73 54 73 6c 21 54 88 49 0d 3a a6 52 29 06 2d 08 42 43 56 08 00 a1 19 00 0e c7 01 24 cb 02 24 4b
+- 03 00 00 00 00 00 00 00 49 d3 00 cd f3 00 cb f3 00 00 00 00 00 00 00 40 d2 34 c0 f2 34 40 f3 3c
+- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+- 00 00 00 00 24 4d 03 34 cf 03 34 cf 03 00 00 00 00 00 00 00 cd f3 00 4f 14 01 4f 14 01 00 00 00
+- 00 00 00 c0 f2 3c c0 13 3d c0 13 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 4d 03 34 cf 03 34 cf 03 00 00 00 00 00 00 00
+- cb f3 00 4f 14 01 cf 13 01 00 00 00 00 00 00 40 f3 3c c0 13 45 c0 13 45 00 00 00 00 00 00 00 00
++ 03 76 6f 72 62 69 73 0d 00 00 00 4c 61 76 66 35 37 2e 35 36 2e 31 30 31 01 00 00 00 1f 00 00 00
++ 65 6e 63 6f 64 65 72 3d 4c 61 76 63 35 37 2e 36 34 2e 31 30 31 20 6c 69 62 76 6f 72 62 69 73 01
++ 05 76 6f 72 62 69 73 25 42 43 56 01 00 40 00 00 24 73 18 2a 46 a5 73 16 84 10 1a 42 50 19 e3 1c
++ 42 ce 6b ec 19 42 4c 11 82 1c 32 4c 5b cb 25 73 90 21 a4 a0 42 88 5b 28 81 d0 90 55 00 00 40 00
++ 00 87 41 78 14 84 8a 41 08 21 84 25 3d 58 92 83 27 3d 08 21 84 88 39 78 14 84 69 41 08 21 84 10
++ 42 08 21 84 10 42 08 21 84 45 39 68 92 83 27 41 08 1d 84 e3 30 38 0c 83 e5 38 f8 1c 84 45 39 58
++ 10 83 27 41 e8 20 84 0f 42 b8 9a 83 ac 39 08 21 84 24 35 48 50 83 06 39 e8 1c 84 c2 2c 28 8a 82
++ c4 30 b8 16 84 04 35 28 8c 82 e4 30 c8 d4 83 0b 42 88 9a 83 49 35 f8 1a 84 67 41 78 16 84 69 41
++ 08 21 84 24 41 48 90 83 06 41 c8 18 84 46 41 58 92 83 06 39 b8 14 84 cb 41 a8 1a 84 2a 39 08 1f
++ 84 20 34 64 15 00 90 00 00 a0 a2 28 8a a2 28 0a 10 1a b2 0a 00 c8 00 00 10 40 51 14 c7 71 1c c9
++ 91 1c c9 b1 1c 0b 08 0d 59 05 00 00 01 00 08 00 00 a0 48 8a a4 48 8e e4 48 92 24 59 92 25 59 92
++ 25 59 92 e6 89 aa 2c cb b2 2c cb b2 2c cb 32 10 1a b2 0a 00 48 00 00 50 51 0c 45 71 14 07 08 0d
++ 59 05 00 64 00 00 08 a0 38 8a a5 58 8a a5 68 8a e7 88 8e 08 84 86 ac 02 00 80 00 00 04 00 00 10
++ 34 43 53 3c 47 94 44 cf 54 55 d7 b6 6d db b6 6d db b6 6d db b6 6d db b6 6d 5b 96 65 19 08 0d 59
++ 05 00 40 00 00 10 d2 69 66 a9 06 88 30 03 19 06 42 43 56 01 00 08 00 00 80 11 8a 30 c4 80 d0 90
++ 55 00 00 40 00 00 80 18 4a 0e a2 09 ad 39 df 9c e3 a0 59 0e 9a 4a b1 39 1d 9c 48 b5 79 92 9b 8a
++ b9 39 e7 9c 73 ce c9 e6 9c 31 ce 39 e7 9c a2 9c 59 0c 9a 09 ad 39 e7 9c c4 a0 59 0a 9a 09 ad 39
++ e7 9c 27 b1 79 d0 9a 2a ad 39 e7 9c 71 ce e9 60 9c 11 c6 39 e7 9c 26 ad 79 90 9a 8d b5 39 e7 9c
++ 05 ad 69 8e 9a 4b b1 39 e7 9c 48 b9 79 52 9b 4b b5 39 e7 9c 73 ce 39 e7 9c 73 ce 39 e7 9c ea c5
++ e9 1c 9c 13 ce 39 e7 9c a8 bd b9 96 9b d0 c5 39 e7 9c 4f c6 e9 de 9c 10 ce 39 e7 9c 73 ce 39 e7
++ 9c 73 ce 39 e7 9c 20 34 64 15 00 00 04 00 40 10 86 8d 61 dc 29 08 d2 e7 68 20 46 11 62 1a 32 e9
++ 41 f7 e8 30 09 1a 83 9c 42 ea d1 e8 68 a4 94 3a 08 25 95 71 52 4a 27 08 0d 59 05 00 00 02 00 40
++ 08 21 85 14 52 48 21 85 14 52 48 21 85 14 62 88 21 86 18 72 ca 29 a7 a0 82 4a 2a a9 a8 a2 8c 32
++ cb 2c b3 cc 32 cb 2c b3 cc 3a ec ac b3 0e 3b 0c 31 c4 10 43 2b ad c4 52 53 6d 35 d6 58 6b ee 39
++ e7 9a 83 b4 56 5a 6b ad b5 52 4a 29 a5 94 52 0a 42 43 56 01 00 20 00 00 04 42 06 19 64 90 51 48
++ 21 85 14 62 88 29 a7 9c 72 0a 2a a8 80 d0 90 55 00 00 20 00 80 00 00 00 00 4f f2 1c d1 11 1d d1
++ 11 1d d1 11 1d d1 11 1d d1 f1 1c cf 11 25 51 12 25 51 12 2d d3 32 35 d3 53 45 55 75 65 d7 96 75
++ 59 b7 7d 5b d8 85 5d f7 7d dd f7 7d dd f8 75 61 58 96 65 59 96 65 59 96 65 59 96 65 59 96 65 59
++ 96 20 34 64 15 00 00 02 00 00 20 84 10 42 48 21 85 14 52 48 29 c6 18 73 cc 39 e8 24 94 10 08 0d
++ 59 05 00 00 02 00 08 00 00 00 70 14 47 71 1c c9 91 1c 49 b2 24 4b d2 24 cd d2 2c 4f f3 34 4f 13
++ 3d 51 14 45 d3 34 55 d1 15 5d 51 37 6d 51 36 65 d3 35 5d 53 36 5d 55 56 6d 57 96 6d 5b b6 75 db
++ 97 65 db f7 7d df f7 7d df f7 7d df f7 7d df f7 7d 5d 07 42 43 56 01 00 12 00 00 3a 92 23 29 92
++ 22 29 92 e3 38 8e 24 49 40 68 c8 2a 00 40 06 00 40 00 00 8a e2 28 8e e3 38 92 24 49 92 25 69 92
++ 67 79 96 a8 99 9a e9 99 9e 2a aa 40 68 c8 2a 00 00 10 00 40 00 00 00 00 00 00 8a a6 78 8a a9 78
++ 8a a8 78 8e e8 88 92 68 99 96 a8 a9 9a 2b ca a6 ec ba ae eb ba ae eb ba ae eb ba ae eb ba ae eb
++ ba ae eb ba ae eb ba ae eb ba ae eb ba ae eb ba ae eb ba ae 0b 84 86 ac 02 00 24 00 00 74 24 47
++ 72 24 47 52 24 45 52 24 47 72 80 d0 90 55 00 80 0c 00 80 00 00 1c c3 31 24 45 72 2c cb d2 34 4f
++ f3 34 4f 13 3d d1 13 3d d3 53 45 57 74 81 d0 90 55 00 00 20 00 80 00 00 00 00 00 00 0c c9 b0 14
++ cb d1 1c 4d 12 25 d5 52 2d 55 53 2d d5 52 45 d5 53 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
++ 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 4d d3 34 4d 13 08 0d 59 09 00 90 01 00 90
++ 10 53 2d 2d c6 9a 09 8b 24 62 d2 6a ab a0 63 0c 52 ec a5 b1 48 2a 67 b5 b7 ca 31 85 18 b5 5e 1a
++ 87 94 51 10 7b a9 24 63 8a 41 cc 2d a4 d0 29 26 ad d6 54 42 85 14 a4 98 63 2a 15 52 0e 52 20 34
++ 64 85 00 10 9a 01 e0 70 1c 40 b2 2c 40 b2 2c 00 00 00 00 00 00 00 90 34 0d d0 3c 0f b0 34 0f 00
++ 00 00 00 00 00 00 24 4d 03 2c 4f 03 34 cf 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
++ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
++ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 d2 34 40 f3 3c 40 f3 3c 00 00 00 00 00
++ 00 00 d0 3c 0f f0 3c 11 f0 44 11 00 00 00 00 00 00 00 2c cf 03 34 d1 03 3c 51 04 00 00 00 00 00
++ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
++ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 d2
++ 34 40 f3 3c 40 f3 3c 00 00 00 00 00 00 00 b0 3c 0f f0 44 11 d0 3c 11 00 00 00 00 00 00 00 2c cf
++ 03 3c 51 04 3c d1 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+@@ -113,261 +107,195 @@
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
+- 00 00 01 0e 00 00 01 16 42 a1 21 2b 02 80 38 01 00 87 24 41 92 20 49 d0 34 80 64 59 d0 34 68 1a
+- 4c 13 20 59 16 34 0d 9a 06 d3 04 00 00 00 00 00 00 00 00 00 40 f2 34 68 1a 34 0d a2 08 90 34 0f
+- 9a 06 4d 83 28 02 00 00 00 00 00 00 00 00 00 20 69 1a 34 0d 9a 06 51 04 48 9a 06 4d 83 a6 41 14
+- 01 00 00 00 00 00 00 00 00 00 d0 4c 13 a2 08 51 84 69 02 3c d3 84 28 42 14 61 9a 00 00 00 00 00
+- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80 01 07 00 80 00 13 ca 40 a1 21 2b
+- 02 80 38 01 00 87 a2 58 16 00 00 38 92 63 59 00 00 e0 38 92 65 01 00 80 65 59 a2 08 00 00 96 a5
+- 89 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+- 00 00 80 00 00 80 01 07 00 80 00 13 ca 40 a1 21 2b 01 80 28 00 00 87 a2 58 16 70 1c cb 02 8e 63
+- 59 40 92 2c 0b 60 59 00 cd 03 68 1a 40 14 01 80 00 00 80 02 07 00 80 00 1b 34 25 16 07 28 34 64
+- 25 00 10 05 00 e0 50 14 cb d2 34 51 e4 38 96 a5 69 a2 c8 91 2c 4b d3 44 91 65 69 9a e7 99 26 34
+- cd f3 4c 11 a2 e7 79 a6 09 cf f3 3c d3 84 69 8a a2 aa 02 51 34 4d 01 00 00 05 0e 00 00 01 36 68
+- 4a 2c 0e 50 68 c8 4a 00 20 24 00 c0 e1 38 96 e5 79 a2 e8 79 a2 68 9a aa ca 71 2c cb f3 44 51 14
+- 4d 53 55 55 95 e3 68 96 e7 89 a2 28 9a a6 aa aa 2a cb d2 34 cf 13 45 51 34 4d 55 55 5d 68 9a e7
+- 89 a2 28 9a a6 aa ba 2e 3c cf f3 44 51 14 4d 53 55 5d 17 9e e7 79 a2 28 8a a6 a9 aa ae 0b 51 14
+- 45 d3 34 4d 55 55 55 d7 05 a2 68 9a a6 a9 aa aa ea ba 40 14 45 d3 34 55 55 55 5d 17 88 a2 28 9a
+- a6 aa aa ae eb 02 d3 34 4d 55 55 55 d7 95 5d 80 69 aa aa aa ba ae eb 02 54 55 55 5d d7 75 65 19
+- a0 aa aa ea ba ae 2b cb 00 d7 75 5d d7 95 65 59 06 e0 ba ae eb ca b2 2c 00 00 e0 c0 01 00 20 c0
+- 08 3a c9 a8 b2 08 1b 4d b8 f0 00 14 1a b2 22 00 88 02 00 00 8c 61 4a 31 a5 0c 63 12 42 0a a1 61
+- 4c 42 48 21 64 52 52 2a 29 a5 0a 42 2a 25 95 52 41 48 a5 a4 52 32 4a 2d a5 96 52 05 21 95 92 4a
+- a9 20 a4 52 52 29 05 00 80 1d 38 00 80 1d 58 08 85 86 ac 04 00 f2 00 00 08 63 94 62 8c 31 e7 24
+- 42 4a 31 e6 9c 73 12 21 a5 18 73 ce 39 a9 14 63 ce 39 e7 9c 94 92 31 e7 9c 73 4e 4a e9 98 73 ce
+- 39 27 a5 64 cc 39 e7 9c 93 52 3a e7 9c 73 ce 49 29 a5 74 ce 39 e7 a4 94 52 42 e8 1c 74 52 4a 29
+- 9d 73 0e 42 01 00 40 05 0e 00 00 01 36 8a 6c 4e 30 12 54 68 c8 4a 00 20 15 00 c0 e0 38 96 a5 69
+- 9e 27 8a a6 69 49 92 a6 79 9e e7 89 a6 aa 6a 92 a4 69 9e 27 8a a6 a9 aa 3c cf f3 44 51 14 4d 53
+- 55 79 9e e7 89 a2 28 9a a6 aa 72 5d 51 14 45 d3 34 4d 55 25 cb a2 68 8a a6 a9 aa aa 0b d3 34 4d
+- d3 54 55 d7 85 69 9a a6 69 aa aa eb c2 b6 55 55 55 5d d7 75 61 db aa aa aa ae eb ca c0 75 5d d7
+- 75 65 19 c8 ae eb ba ae 2c 0b 00 00 4f 70 00 00 2a b0 61 75 84 93 a2 b1 c0 42 43 56 02 00 19 00
+- 00 84 31 08 29 84 10 52 c8 20 a4 10 42 48 29 85 90 00 00 80 01 07 00 80 00 13 ca 40 a1 21 2b 01
+- 80 54 00 00 80 10 6b ad b5 d6 5a 6b 0d 63 d6 5a 6b ad b5 d6 12 e7 ac b5 d6 5a 6b ad b5 d6 5a 6b
++ 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 10 e0 00 00 10 60 21 14 1a b2 22 00 88 13 00 70
++ 48 12 24 09 92 04 cd 03 48 96 05 4d 83 a6 c1 34 01 92 65 41 d3 a0 69 30 4d 00 00 00 00 00 00 00
++ 00 00 00 24 4d 83 a6 41 d3 20 8a 00 49 d3 a0 69 d0 34 88 22 00 00 00 00 00 00 00 00 00 00 92 a6
++ 41 d3 a0 69 10 45 80 a4 69 d0 34 68 1a 44 11 00 00 00 00 00 00 00 00 00 00 cf 34 21 8a 10 45 98
++ 26 c0 33 4d 88 22 44 11 a6 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
++ 08 00 00 18 70 00 00 08 30 a1 0c 14 1a b2 22 00 88 13 00 70 38 8a 65 01 00 80 e3 38 96 05 00 00
++ 8e e3 58 16 00 00 58 96 25 8a 00 00 60 59 9a 28 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
++ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
++ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 18 70 00 00 08 30 a1 0c 14 1a b2 12
++ 00 88 02 00 70 28 8a 65 01 c7 b1 2c e0 38 96 05 24 c9 b2 00 96 05 d0 3c 80 a6 01 44 11 00 08 00
++ 00 28 70 00 00 08 b0 41 53 62 71 80 42 43 56 02 00 51 00 00 06 c5 b1 2c 4d 13 45 92 a4 69 9a 27
++ 8a 24 49 d3 3c 4f 14 69 9a e7 79 9e 69 c2 f3 3c cf 34 21 8a a2 68 9a 10 45 51 34 4d 98 a6 69 aa
++ 2a 30 4d 55 15 00 00 50 e0 00 00 10 60 83 a6 c4 e2 00 85 86 ac 04 00 42 02 00 1c 8a 62 59 9a e6
++ 79 9e 27 8a a6 a9 9a 24 49 d3 3c 4f 14 45 d1 34 4d 53 55 49 92 a6 79 9e 28 8a a2 69 9a a6 aa b2
++ 2c 4d f3 3c 51 14 45 d3 54 55 55 85 a6 79 9e 28 8a a2 69 aa aa ea c2 f3 3c 4f 14 45 d1 34 55 d5
++ 75 e1 79 9e 27 8a a2 68 9a aa ea ba 10 45 51 34 4d d3 54 4d 55 75 5d 20 8a a6 69 9a aa aa aa ae
++ 0b 44 4f 14 4d 53 55 5d d7 75 81 e7 89 a2 69 aa aa ab ba 2e 10 4d d3 54 55 55 75 5d 59 06 98 a6
++ 69 aa aa eb ca 32 40 55 55 d5 75 5d 57 96 01 aa aa aa ae eb ba b2 0c 50 55 d7 75 5d 59 96 65 00
++ ae eb ba b2 2c cb 02 00 00 0e 1c 00 00 02 8c a0 93 8c 2a 8b b0 d1 84 0b 0f 40 a1 21 2b 02 80 28
++ 00 00 c0 18 a6 14 53 ca 30 26 21 a4 10 1a c6 24 84 14 42 26 25 a5 d2 52 aa 20 a4 52 52 29 15 84
++ 54 4a 2a 25 a3 94 52 6a 29 55 10 52 29 a9 94 0a 42 2a 25 95 52 00 00 d8 81 03 00 d8 81 85 50 68
++ c8 4a 00 20 0f 00 80 30 46 29 c6 18 73 4e 22 a4 14 63 ce 39 27 11 52 8a 31 e7 9c 93 4a 31 e6 9c
++ 73 ce 49 29 19 73 cc 39 e7 a4 94 ce 39 e7 9c 73 52 4a e6 9c 73 ce 39 29 a5 73 ce 39 e7 9c 94 52
++ 4a e7 9c 73 4e 4a 29 25 84 ce 41 27 a5 94 d2 39 e7 9c 13 00 00 54 e0 00 00 10 60 a3 c8 e6 04 23
++ 41 85 86 ac 04 00 52 01 00 0c 8e 63 59 9a e6 79 a2 68 9a 96 24 69 9a e7 79 9e 28 9a a6 26 49 9a
++ e6 79 9e 27 8a aa c9 f3 3c 4f 14 45 d1 34 55 95 e7 79 9e 28 8a a2 69 aa 2a d7 15 45 d3 34 4d 55
++ 55 5d b2 2c 8a a6 69 9a aa ea ba 30 4d d3 54 55 d7 75 5d 98 a6 69 aa aa eb ba 2e 6c 5b 55 55 d5
++ 75 65 19 b6 ad aa aa ea ba b2 0c 5c d7 75 65 d9 96 81 2c bb ae ec da b2 00 00 f0 04 07 00 a0 02
++ 1b 56 47 38 29 1a 0b 2c 34 64 25 00 90 01 00 40 18 83 90 42 08 21 65 10 42 0a 21 84 94 52 08 09
++ 00 00 18 70 00 00 08 30 a1 0c 14 1a b2 12 00 48 05 00 00 8c b1 d6 5a 6b ad b5 d6 40 67 ad b5 d6
++ 5a 6b ad 80 cc 5a 6b ad b5 d6 5a 6b ad b5 d6 5a 6b ad b5 d6 52 6b ad b5 d6 5a 6b ad b5 d6 5a 6b
+  ad b5 d6 5a 6b ad b5 d6 5a 6b ad b5 d6 5a 6b ad b5 d6 5a 6b ad b5 d6 5a 6b ad b5 d6 5a 6b ad b5
+- d6 5a 6b ad b5 d6 5a 6b ad b5 d6 5a 6b ad b5 d6 5a 6b ad b5 d6 5a 6b ad b5 d6 5a 6b ad b5 d6 5a
+- 6b ad b5 d6 5a 6b ad b5 d6 5a 6b ad b5 56 00 20 76 85 03 c0 4e 84 0d ab 23 9c 14 8d 05 16 1a b2
+- 12 00 08 07 00 00 8c 41 88 31 e8 24 94 52 4a 85 10 63 d0 49 48 a5 b5 18 2b 84 18 83 50 4a 4a ad
+- b5 98 3c e7 1c 84 52 5a 6a 2d c6 e4 39 e7 20 a4 d4 5a 8c 31 26 d7 42 48 29 a5 96 62 8b b1 b8 16
+- 42 2a 29 b5 d6 62 ac c9 18 95 52 6a 2d b6 18 6b ed c5 a8 94 4a 4b 31 c6 18 6b 30 c6 e6 d4 5a 8c
+- 31 d6 5a 8b 31 3a b7 12 4b 8c 31 c6 5a 84 11 c6 c5 16 63 ac b5 d7 22 8c 11 b2 c5 d2 5a ad b5 06
+- 63 8c b1 b9 b5 d8 6a cd b9 18 23 8c ae 2d b5 56 6b cd 05 00 98 3c 38 00 40 25 d8 38 c3 4a d2 59
+- e1 68 70 a1 21 2b 01 80 dc 00 00 02 21 a5 18 63 cc 39 e7 9c 73 0e 42 08 a9 52 8c 39 e7 1c 84 10
+- 42 08 a1 94 52 52 a5 18 73 ce 39 08 21 84 50 42 29 a5 a4 8c 31 e6 1c 84 10 42 08 a5 94 52 4a 69
+- 29 65 cc 39 08 21 84 50 4a 29 a5 94 d2 52 eb 9c 73 10 42 08 a5 94 52 4a 29 25 a5 d4 39 e7 20 84
+- 50 4a 29 a5 94 52 4a 4a 2d 84 10 42 28 a1 94 52 4a 29 a5 94 94 52 4a 21 84 50 4a 29 a5 94 52 4a
+- 29 a9 a5 94 42 08 a5 94 52 4a 29 a5 94 52 52 4a 29 85 10 42 29 a5 94 52 4a 29 a5 a4 94 5a 2b a5
+- 94 52 4a 29 a5 94 52 4a 49 2d b5 94 52 28 a5 94 52 4a 29 a5 94 92 5a 4a 29 a5 52 4a 29 a5 94 52
+- 4a 29 25 a5 d4 52 4a a5 94 52 4a 29 a5 94 52 4a 4b a9 a5 94 4a 29 a5 94 52 4a 29 a5 94 94 52 4a
+- 29 a5 54 4a 29 a5 94 52 4a 29 29 a5 d4 5a 4a 29 a5 94 4a 29 a5 94 52 5a 6b 29 a5 96 52 2a a5 94
+- 52 4a 29 a5 b4 d4 5a 6b 2d b5 94 4a 29 a5 94 52 4a 69 ad b5 94 52 4a 29 95 52 4a 29 a5 94 52 00
+- 00 d0 81 03 00 40 80 11 95 16 62 a7 19 57 1e 81 23 0a 19 26 a0 42 43 56 02 00 64 00 00 0c a3 94
+- 52 49 2d 45 82 22 a5 18 a4 96 42 25 15 73 50 52 8a 28 73 0e 52 ac a9 42 ce 20 e6 24 95 8a 31 84
+- 94 83 54 32 07 95 52 cc 41 0a 21 65 4c 29 06 ad 95 18 3a c6 98 a3 98 6a 2a a1 63 0c 00 00 00 41
+- 00 00 81 90 09 04 0a a0 c0 40 06 00 1c 20 24 48 01 00 85 05 86 0e 11 22 40 8c 02 03 e3 e2 d2 06
+- 00 20 08 91 19 22 11 b1 18 24 26 54 03 45 c5 74 00 b0 b8 c0 90 0f 00 19 1a 1b 69 17 17 d0 65 80
+- 0b ba b8 eb 40 08 41 08 42 10 8b 03 28 20 01 07 27 dc f0 c4 1b 9e 70 83 13 74 8a 4a 1d 08 00 00
+- 00 00 80 03 00 3c 00 00 24 1b 40 44 44 34 73 1c 1d 1e 1f 20 21 22 23 24 25
+-Ogg Page: header length = 28 and body length = 60
++ d6 5a 6b ad b5 d6 5a 6b 2d a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 29 a5 94 52 4a 05 00 fa 55
++ 38 00 f8 3f d8 b0 3a c2 49 d1 58 60 a1 21 2b 01 80 70 00 00 c0 18 a5 18 73 0c 42 29 a5 54 08 31
++ e6 9c 74 54 5a 8b b1 42 88 31 e7 24 a4 d4 5a 6c c5 73 ce 41 28 21 95 d6 62 2c 9e 73 0e 42 29 29
++ c5 56 63 51 29 84 52 52 4a 2d b6 58 8b 4a a1 a3 92 52 4a ad d5 58 8c 31 a9 a4 d6 5a 8b ad c6 62
++ 8c 49 29 b4 d4 5a 8b 31 16 23 6c 4d a9 b5 d8 6a ab b1 18 63 6b 2a 2d b4 18 63 8c c5 08 5f 64 6c
++ 2d a6 da 6a 0d c6 08 23 5b 2c 2d d5 5a 6b 30 c6 18 dd 5b 8b a5 b6 9a 8b 31 3e f8 da 52 2c 31 d6
++ 5c 00 00 77 83 03 00 44 82 8d 33 ac 24 9d 15 8e 06 17 1a b2 12 00 08 09 00 20 10 52 8a 31 c6 18
++ 73 ce 39 e7 a4 52 8c 39 e6 9c 73 0e 42 08 a1 54 8a 31 c6 9c 73 0e 42 08 21 94 8c 31 e6 9c 73 10
++ 42 08 21 84 52 4a c6 9c 73 10 42 08 21 84 90 52 ea 9c 73 10 42 08 21 84 10 4a 29 9d 73 0e 42 08
++ 21 84 10 42 29 a5 83 10 42 08 21 84 10 4a 28 a5 a4 14 42 08 21 84 10 42 08 a9 a4 94 42 08 21 84
++ 52 42 28 21 95 94 52 08 21 84 10 42 29 25 a4 94 52 0a 21 84 52 42 08 a1 84 94 52 4a 29 85 10 42
++ 08 a5 94 92 52 4a 29 a5 12 4a 09 25 84 12 52 29 29 a5 14 4a 08 21 94 52 4a 4a 29 a5 54 4a 09 a1
++ 84 12 4a 29 25 a5 94 52 4a 21 84 10 4a 29 05 00 00 1c 38 00 00 04 18 41 27 19 55 16 61 a3 09 17
++ 1e 80 42 43 56 02 00 64 00 00 90 a2 94 52 29 2d 45 82 22 a5 18 a4 18 4b 46 15 73 50 5a 8a a8 72
++ 0c 52 cd a9 52 ce 20 e6 24 96 88 31 84 94 93 54 32 e6 14 42 0c 42 ea 1c 75 4c 29 06 2d 95 18 42
++ c6 18 a4 d8 72 4b a1 73 0e 00 00 00 41 00 80 80 90 00 00 03 04 05 33 00 c0 e0 00 e1 73 10 74 02
++ 04 47 1b 00 80 20 44 66 88 44 c3 42 70 78 50 09 10 11 53 01 40 62 82 42 2e 00 54 58 5c a4 5d 5c
++ 40 97 01 2e e8 e2 ae 03 21 04 21 08 41 2c 0e a0 80 04 1c 9c 70 c3 13 6f 78 c2 0d 4e d0 29 2a 75
++ 20 00 00 00 00 00 0d 00 f0 00 00 90 5c 00 11 11 d1 cc 61 64 68 6c 70 74 78 7c 80 84 88 8c 90 08
++ 00 00 00 00 00 19 00 7c 00 00 24 25 40 44 44 34 73 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 01 00
++ 80 00 02 00 00 00 00 20 80 00 04 04 04 00 00 00 00 00 02 00 00 00 04 04
++Ogg Page: header length = 72 and body length = 45
+ Header Information:
+ 	Ogg Version      : 0
+-	Serial No        : 0x5d79
+-	Packet Type      : continued packet
++	Serial No        : 0xeb4dfcaa
++	Packet Type      : fresh packet
+ 	Page Type        : normal page
+ 	Last Page        : normal page
+-	Granule Position : 0(0x0)
++	Granule Position : 44608(0xae40)
+ 	Page Number      : 2
+-	Checksum         : 0x4e614e3c
+-	Table Segments   : 1
++	Checksum         : 0x37286819
++	Table Segments   : 45
+ 
+ Segments:
+- 3c
++ 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
++ 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
++ 01 01 01 01 01 01 01 01 01 01 01 01 01
+ 
+ Header Hex dump: 
+- 4f 67 67 53 00 01 00 00 00 00 00 00 00 00 79 5d
+- 00 00 02 00 00 00 3c 4e 61 4e 01 3c
++ 4f 67 67 53 00 00 40 ae 00 00 00 00 00 00 aa fc
++ 4d eb 02 00 00 00 19 68 28 37 2d 01 01 01 01 01
++ 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
++ 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
++ 01 01 01 01 01 01 01 01
+ 
+ Body Hex dump: 
+- 26 27 28 02 00 00 00 00 c0 06 00 1f 00 00 49 0a 10 11 11 cd 1c 47 87 c7 07 48 88 c8 08 49 89 c9
+- 09 4a 00 00 20 80 00 00 00 00 00 08 20 00 01 01 01 00 00 00 00 80 00 00 00 00 01 01
+-Ogg Page: header length = 282 and body length = 255
++ 00 0a 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
++ 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
++Ogg Page: header length = 71 and body length = 44
+ Header Information:
+ 	Ogg Version      : 0
+-	Serial No        : 0x5d79
++	Serial No        : 0xeb4dfcaa
+ 	Packet Type      : fresh packet
+ 	Page Type        : normal page
+ 	Last Page        : normal page
+-	Granule Position : 259648(0x3f640)
++	Granule Position : 89664(0x15e40)
+ 	Page Number      : 3
+-	Checksum         : 0xb6e62c04
+-	Table Segments   : 255
++	Checksum         : 0x6c6e2dd9
++	Table Segments   : 44
+ 
+ Segments:
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
++ 01 01 01 01 01 01 01 01 01 01 01 01
+ 
+ Header Hex dump: 
+- 4f 67 67 53 00 00 40 f6 03 00 00 00 00 00 79 5d
+- 00 00 03 00 00 00 04 2c e6 b6 ff 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
++ 4f 67 67 53 00 00 40 5e 01 00 00 00 00 00 aa fc
++ 4d eb 03 00 00 00 d9 2d 6e 6c 2c 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01
++ 01 01 01 01 01 01 01
+ 
+ Body Hex dump: 
+- 00 0a 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+  0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+-Ogg Page: header length = 282 and body length = 255
++ 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
++Ogg Page: header length = 71 and body length = 44
+ Header Information:
+ 	Ogg Version      : 0
+-	Serial No        : 0x5d79
++	Serial No        : 0xeb4dfcaa
+ 	Packet Type      : fresh packet
+ 	Page Type        : normal page
+ 	Last Page        : normal page
+-	Granule Position : 520768(0x7f240)
++	Granule Position : 134720(0x20e40)
+ 	Page Number      : 4
+-	Checksum         : 0xe0250709
+-	Table Segments   : 255
++	Checksum         : 0xedb67b43
++	Table Segments   : 44
+ 
+ Segments:
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
++ 01 01 01 01 01 01 01 01 01 01 01 01
+ 
+ Header Hex dump: 
+- 4f 67 67 53 00 00 40 f2 07 00 00 00 00 00 79 5d
+- 00 00 04 00 00 00 09 07 25 e0 ff 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
++ 4f 67 67 53 00 00 40 0e 02 00 00 00 00 00 aa fc
++ 4d eb 04 00 00 00 43 7b b6 ed 2c 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01
++ 01 01 01 01 01 01 01
+ 
+ Body Hex dump: 
+  0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+-Ogg Page: header length = 275 and body length = 248
++ 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
++Ogg Page: header length = 71 and body length = 44
+ Header Information:
+ 	Ogg Version      : 0
+-	Serial No        : 0x5d79
++	Serial No        : 0xeb4dfcaa
+ 	Packet Type      : fresh packet
+ 	Page Type        : normal page
+-	Last Page        : end of stream marker
+-	Granule Position : 774144(0xbd000)
++	Last Page        : normal page
++	Granule Position : 179776(0x2be40)
+ 	Page Number      : 5
+-	Checksum         : 0x809cbe26
+-	Table Segments   : 248
++	Checksum         : 0x90ffbc02
++	Table Segments   : 44
+ 
+ Segments:
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
++ 01 01 01 01 01 01 01 01 01 01 01 01
++
++Header Hex dump: 
++ 4f 67 67 53 00 00 40 be 02 00 00 00 00 00 aa fc
++ 4d eb 05 00 00 00 02 bc ff 90 2c 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
++ 01 01 01 01 01 01 01
++
++Body Hex dump: 
++ 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
++ 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
++Ogg Page: header length = 67 and body length = 40
++Header Information:
++	Ogg Version      : 0
++	Serial No        : 0xeb4dfcaa
++	Packet Type      : fresh packet
++	Page Type        : normal page
++	Last Page        : end of stream marker
++	Granule Position : 220500(0x35d54)
++	Page Number      : 6
++	Checksum         : 0x4f105244
++	Table Segments   : 40
++
++Segments:
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+  01 01 01 01 01 01 01 01
+ 
+ Header Hex dump: 
+- 4f 67 67 53 00 04 00 d0 0b 00 00 00 00 00 79 5d
+- 00 00 05 00 00 00 26 be 9c 80 f8 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
++ 4f 67 67 53 00 04 54 5d 03 00 00 00 00 00 aa fc
++ 4d eb 06 00 00 00 44 52 10 4f 28 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+  01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+  01 01 01
+ 
+ Body Hex dump: 
+  0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
+- 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e 0e
++ 0e 0e 0e 0e 0e 0e 0e 0e
diff --git a/tests/data/test1.ogg b/tests/data/test1.ogg
new file mode 100644
index 0000000..6e0b352
Binary files /dev/null and b/tests/data/test1.ogg differ
diff --git a/tests/data/test2.ogg b/tests/data/test2.ogg
new file mode 100644
index 0000000..561d790
Binary files /dev/null and b/tests/data/test2.ogg differ

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git


More information about the diffoscope mailing list